:root{
  --bg:#faf9f6; --ink:#1f2328; --muted:#6b7280; --line:#e5e2da;
  --panel:#ffffff; --accent:#3a5a78; --accent-ink:#fff;
  --shadow:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --r:10px; --gap:16px;
  font-synthesis:none;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--ink); background:var(--bg);
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
h1,h2{font-weight:600;letter-spacing:-.01em}
.muted{color:var(--muted)}
.small{font-size:12.5px}

/* Topbar */
.topbar{display:flex;align-items:center;gap:24px;padding:12px 22px;
  border-bottom:1px solid var(--line);background:var(--panel);position:sticky;top:0;z-index:20}
.brand{font-weight:600;font-size:17px}
.logo{color:var(--accent);font-size:20px}
.topbar nav{display:flex;gap:18px}
.topbar nav a{color:var(--ink);padding:4px 2px;border-bottom:2px solid transparent}
.topbar nav a.active,.topbar nav a:hover{border-color:var(--accent);text-decoration:none}
.intro{max-width:none;margin:0;padding:12px 22px;background:#f3f1ea;
  border-bottom:1px solid var(--line);color:#3a3f46;font-size:14px}
.intro strong{color:var(--ink)}

/* Layout */
.layout{display:grid;grid-template-columns:248px 1fr 300px;gap:var(--gap);
  padding:var(--gap);align-items:start;height:calc(100vh - 118px)}
.col-left,.col-right{display:flex;flex-direction:column;gap:var(--gap);height:100%}
.col-left{overflow:auto}
.col-right{overflow:hidden}
.col-right #neigh-panel{flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column}
.col-right #neigh-panel .neighbors{overflow:auto;flex:1 1 auto}
.col-center{display:flex;flex-direction:column;gap:var(--gap);height:100%;overflow:hidden}
#card{flex:0 0 auto;max-height:44%;overflow:auto}
.card-grid{display:flex;gap:20px;align-items:flex-start}
.card-left{flex:0 0 270px}
.card-right{flex:1 1 auto;min-width:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);
  padding:14px 15px;box-shadow:var(--shadow)}
.panel h2{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}

/* Controls */
label{display:block;font-size:12.5px;color:var(--muted);margin-bottom:9px}
select{display:block;width:100%;margin-top:3px;padding:6px 8px;border:1px solid var(--line);
  border-radius:7px;background:#fff;font-size:13.5px;color:var(--ink)}
button,.ghost{font:inherit;cursor:pointer}
button.ghost,.ghost{background:#fff;border:1px solid var(--line);border-radius:7px;
  padding:6px 11px;color:var(--ink);font-size:13px}
button.ghost:hover,.ghost:hover{background:#f3f1ea;text-decoration:none}
button.primary{background:var(--accent);color:var(--accent-ink);border:0;border-radius:7px;
  padding:7px 13px;font-size:13.5px}
button.primary:hover{filter:brightness(1.08)}
#f-count{margin:8px 0 0}

/* Legend */
#legend{display:flex;flex-direction:column;gap:5px;font-size:13px;margin-bottom:8px}
.lg{display:flex;align-items:center;gap:8px}
.lg .sw{width:14px;height:14px;border-radius:50%;border:2px solid;flex:0 0 auto}

/* Canvas */
.canvas-wrap{position:relative;flex:1 1 auto;min-height:0;background:var(--panel);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden}
#bogen{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
#bogen.grabbing{cursor:grabbing}
.tooltip{position:absolute;pointer-events:none;background:#1f2328;color:#fff;
  padding:5px 9px;border-radius:6px;font-size:12.5px;max-width:240px;z-index:6;
  box-shadow:0 2px 8px rgba(0,0,0,.25)}
.hint{position:absolute;left:12px;bottom:10px;font-size:11.5px;color:var(--muted);
  background:rgba(255,255,255,.8);padding:3px 8px;border-radius:6px}
.zr{position:absolute;right:12px;top:12px}

/* Card */
.meta{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:4px 0 12px;font-size:13px}
.meta dt{color:var(--muted)}
.meta dd{margin:0}
.card-actions{display:flex;gap:8px;margin-bottom:10px}
.card-actions.to-center-wrap{justify-content:flex-end;margin:10px 0 0}
.transpose{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:13px}
.transpose button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:3px 8px}
#card-title{color:var(--ink);text-transform:none;font-size:16px;letter-spacing:-.01em}
.note-h{margin:14px 0 2px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}
.notation{margin-top:4px;overflow-x:auto;overflow-y:hidden;min-height:120px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px}
.notation svg{height:150px;width:auto;max-width:none;display:block}
/* Browser-Verovio: SVG hat viewBox -> füllt die Panelbreite, Höhe folgt proportional */
.notation.vrv{overflow-x:hidden}
.notation.vrv svg{width:100%;height:auto;max-width:100%}
.note-hint{font-size:11px;color:var(--muted);margin:2px 0 0}
.playbar{display:flex;align-items:center;gap:8px;margin:6px 0;flex-wrap:wrap}
.playbar button:disabled{opacity:.5;cursor:default}
#instrument{width:auto;margin:0;padding:5px 7px}
#search{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;font-size:13.5px}
#search-results{margin:8px 0 0;padding-left:20px;max-height:240px;overflow:auto}
#search-results:empty{display:none}
.linkout{margin-top:10px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* Neighbors */
.neighbors{margin:0;padding-left:22px}
.neighbors li{margin:3px 0;font-size:13.5px;cursor:pointer}
.neighbors li:hover{color:var(--accent)}
.neighbors .sim{color:var(--muted);font-size:11.5px;margin-left:4px}

/* Content pages */
.page{max-width:760px;margin:0 auto;padding:28px 22px 60px}
.page h1{font-size:26px;margin:.2em 0 .4em}
.page h2{font-size:19px;margin:1.6em 0 .4em;color:var(--ink);text-transform:none;letter-spacing:-.01em}
.page p,.page li{font-size:15.5px;color:#2b3036}
.page code,pre{font-family:"SFMono-Regular",ui-monospace,Menlo,Consolas,monospace}
pre{background:#1f2328;color:#e6e6e6;padding:14px 16px;border-radius:8px;overflow:auto;font-size:13px;line-height:1.5}
.page .lead{font-size:17px;color:#3a3f46}
.callout{background:#f3f1ea;border-left:3px solid var(--accent);padding:12px 16px;border-radius:0 8px 8px 0;margin:16px 0}
