:root{
    --bg:#0b0c0e;
    --bg-elev:#121317;
    --bg-elev-2:#181a20;
    --border:#23252c;
    --border-strong:#2f323b;
    --ink:#eaeaea;
    --ink-dim:#a1a4ad;
    --ink-faint:#6b6e78;
    --accent:#d7ff3a;
    --accent-ink:#0b0c0e;
    --glow:#6ee7a8;
    --theme-halo-a:rgba(215,255,58,0.05);
    --theme-halo-b:rgba(110,231,168,0.04);
    --warn:#ffb454;
    --bad:#ff5a6a;
    --good:#6ee7a8;
    --radius:6px;
    --sans:"Inter Tight", system-ui, sans-serif;
    --mono:"JetBrains Mono", ui-monospace, monospace;
    --serif:"Fraunces", serif;
  }
  *{box-sizing:border-box}
  html,body{margin:0;background:#08080a;color:var(--ink);font-family:var(--sans);}
  body{
    min-height:100vh;
    background:
      radial-gradient(1200px 600px at 80% -10%, var(--theme-halo-a) 0%, transparent 60%),
      radial-gradient(900px 500px at -10% 110%, var(--theme-halo-b) 0%, transparent 60%),
      #08080a;
  }
  body[data-theme="sunset"]{
    --accent:#ffb454;--accent-ink:#18110a;--glow:#ff5a6a;
    --theme-halo-a:rgba(255,180,84,.075);--theme-halo-b:rgba(255,90,106,.055);
  }
  body[data-theme="ocean"]{
    --accent:#67e8f9;--accent-ink:#061216;--glow:#6ee7a8;
    --theme-halo-a:rgba(103,232,249,.07);--theme-halo-b:rgba(110,231,168,.05);
  }
  body[data-theme="forest"]{
    --accent:#a7f3d0;--accent-ink:#06140e;--glow:#facc15;
    --theme-halo-a:rgba(167,243,208,.065);--theme-halo-b:rgba(250,204,21,.04);
  }
  body[data-theme="midnight"]{
    --accent:#c4b5fd;--accent-ink:#100f1f;--glow:#60a5fa;
    --theme-halo-a:rgba(196,181,253,.07);--theme-halo-b:rgba(96,165,250,.045);
  }
  body[data-theme="custom"]{
    --accent:var(--custom-accent,#d7ff3a);--glow:var(--custom-glow,#6ee7a8);
    --theme-halo-a:var(--custom-halo-a,rgba(215,255,58,.065));
    --theme-halo-b:var(--custom-halo-b,rgba(110,231,168,.045));
  }
  button,input{font:inherit;color:inherit}
  button{border:0;cursor:pointer;background:transparent}

  .topbar{
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 24px;border-bottom:1px solid var(--border);
    position:sticky;top:0;z-index:30;
    background:rgba(11,12,14,.88);backdrop-filter:blur(14px);
  }
  .tl{display:flex;align-items:center;gap:22px}
  .brand{display:flex;align-items:center;gap:10px}
  .brand-mark{
    width:26px;height:26px;border-radius:6px;background:var(--accent);
    display:grid;place-items:center;color:var(--accent-ink);
    font-family:var(--mono);font-weight:600;font-size:13px;
  }
  .brand-name{font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:-.01em}
  .brand-tag{
    font-family:var(--mono);font-size:11px;color:var(--ink-faint);
    padding-left:12px;margin-left:4px;border-left:1px solid var(--border);
    text-transform:uppercase;letter-spacing:.08em;
  }
  .nav{display:flex;gap:22px}
  .nav a{color:var(--ink-dim);text-decoration:none;font-size:13.5px}
  .nav a.on{color:var(--ink)}
  .nav a:hover{color:var(--ink)}
  .tr{display:flex;align-items:center;gap:12px}
  .runtime{
    font-family:var(--mono);font-size:11px;color:var(--ink-faint);
    display:flex;align-items:center;gap:8px;padding:5px 10px;
    border:1px solid var(--border);border-radius:999px;background:var(--bg-elev);
  }
  .dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
  .btn{
    font-family:var(--sans);font-weight:500;font-size:13px;
    padding:8px 12px;border-radius:var(--radius);
    border:1px solid var(--border-strong);color:var(--ink);
    display:inline-flex;gap:8px;align-items:center;transition:all .15s;
  }
  .btn:hover{background:var(--bg-elev)}
  .btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
  .btn.primary:hover{background:#e1ff55}
  .themeBtn{padding:7px 11px}
  .themeBtnSwatch{
    width:12px;height:12px;border-radius:3px;
    background:linear-gradient(135deg,var(--accent),var(--glow));
    box-shadow:0 0 10px color-mix(in srgb, var(--accent) 55%, transparent);
  }

  .stage{
    display:grid;grid-template-columns:1fr 340px;gap:18px;
    max-width:1520px;margin:18px auto 0;padding:0 24px;
  }
  @media (max-width:1100px){.stage{grid-template-columns:1fr}}

  .window{
    position:relative;border-radius:14px;overflow:hidden;
    border:1px solid var(--border);background:#000;
    box-shadow:0 30px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.02);
    aspect-ratio:16/10;min-height:600px;
  }
  .chrome{
    position:absolute;inset:0 0 auto 0;height:38px;z-index:5;
    display:flex;align-items:center;gap:12px;padding:0 14px;
    background:linear-gradient(180deg, rgba(15,15,18,.85), rgba(15,15,18,.4) 70%, transparent);
    backdrop-filter:blur(14px) saturate(140%);
    border-bottom:1px solid rgba(255,255,255,.05);
  }
  .traffic{display:flex;gap:7px}
  .traffic i{width:11px;height:11px;border-radius:50%;display:block}
  .traffic i:nth-child(1){background:#ff5f57}
  .traffic i:nth-child(2){background:#febc2e}
  .traffic i:nth-child(3){background:#28c840}
  .chrome .title{
    font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.55);
    letter-spacing:.06em;text-transform:uppercase;flex:1;text-align:center;
  }
  .chrome .title b{color:#fff;font-weight:500}
  .chrome .right{display:flex;gap:8px;font-family:var(--mono);font-size:10.5px;color:rgba(255,255,255,.55)}
  .chrome .right .k{padding:3px 7px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:rgba(0,0,0,.25)}

  canvas.main{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:crosshair}

  .searchBlock{
    position:absolute;left:18px;right:18px;top:52px;z-index:6;
    display:flex;justify-content:center;pointer-events:none;
  }
  .searchAnchor{position:relative;width:min(560px, 70%);pointer-events:auto}
  .searchBar{
    display:flex;align-items:center;gap:10px;padding:11px 14px;
    background:rgba(14,14,16,.6);backdrop-filter:blur(28px) saturate(180%);
    border:1px solid rgba(255,255,255,.07);border-radius:12px;
    box-shadow:0 20px 60px rgba(0,0,0,.4);
  }
  .searchBar .prompt{font-family:var(--mono);font-size:12px;color:var(--accent)}
  .searchBar input{flex:1;border:0;outline:0;background:transparent;color:#fff;font-size:14px}
  .searchBar input::placeholder{color:rgba(255,255,255,.45)}
  .searchBar .endpoint{font-family:var(--mono);font-size:10px;color:rgba(255,255,255,.4);letter-spacing:.06em}
  .searchBar .endpoint b{color:rgba(255,255,255,.7);font-weight:500}
  .suggestions{
    position:absolute;left:0;right:0;top:calc(100% + 8px);
    background:rgba(14,14,16,.85);backdrop-filter:blur(28px) saturate(180%);
    border:1px solid rgba(255,255,255,.08);border-radius:12px;
    box-shadow:0 30px 80px rgba(0,0,0,.5);
    overflow:hidden;max-height:360px;overflow-y:auto;
    opacity:0;transform:translateY(-4px);pointer-events:none;transition:all .18s ease;
  }
  .suggestions.open{opacity:1;transform:none;pointer-events:auto}
  .sugg{
    display:grid;grid-template-columns:40px 1fr auto;gap:12px;align-items:center;
    padding:10px 14px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);
  }
  .sugg:hover,.sugg.active{background:rgba(255,255,255,.05)}
  .sugg-art{
    width:40px;height:40px;border-radius:6px;background:#1a1a1e;
    position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.05);
    display:grid;place-items:center;
  }
  .sugg-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .sugg-art .placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:rgba(255,255,255,.25);background:linear-gradient(135deg,#1a1a2e,#0f3460)}
  .sugg-art .src{
    position:absolute;bottom:2px;right:2px;
    font-family:var(--mono);font-size:8px;letter-spacing:.04em;
    padding:1px 3px;border-radius:3px;background:rgba(0,0,0,.6);color:#fff;
    text-transform:uppercase;line-height:1.2;
  }
  .sugg .name{font-size:13.5px;color:#fff;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sugg .meta{font-family:var(--mono);font-size:10px;color:rgba(255,255,255,.55);margin-top:2px;letter-spacing:.04em;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  .sugg .meta .sep{color:rgba(255,255,255,.2)}
  .sugg .meta .yr{color:rgba(255,255,255,.85)}
  .sugg .score{font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.7);text-align:right;min-width:46px}
  .sugg .score .pct{font-weight:600;font-size:13px;color:#fff;display:block;line-height:1}
  .sugg .score.high .pct{color:var(--good)}
  .sugg .score.mid  .pct{color:var(--warn)}
  .sugg .score.low  .pct{color:var(--bad)}
  .sugg .score .lbl{font-size:9px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.1em;margin-top:2px;display:block}

  .heroArt{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    z-index:3;pointer-events:none;
    width:min(320px,38%);aspect-ratio:1/1;
    border-radius:16px;overflow:hidden;
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 30px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.03) inset;
  }
  .heroArt img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none;
  }
  .heroArt .ph{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-size:88px;color:rgba(255,255,255,.35);
    background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);
    letter-spacing:.05em;
  }
  .heroArt.hasImg .ph{display:none}
  .heroArt.hasImg img{display:block}

  .lyricsBlock{
    position:absolute;left:50%;top:78%;transform:translate(-50%,-50%);
    z-index:4;text-align:center;pointer-events:none;width:min(720px,80%);
    text-shadow:0 2px 18px rgba(0,0,0,.7), 0 0 36px rgba(0,0,0,.4);
  }
  .lyricsBlock .row{
    font-family:var(--serif);font-weight:400;letter-spacing:-.01em;
    transition:opacity .35s, transform .35s, color .35s;
  }
  .lyricsBlock .prev{font-size:18px;color:rgba(255,255,255,.32);font-style:italic}
  .lyricsBlock .cur{font-size:38px;color:#fff;margin:8px 0;line-height:1.15}
  .lyricsBlock .next{font-size:16px;color:rgba(255,255,255,.42)}
  .lyricsBlock .meta{
    margin-top:14px;font-family:var(--mono);font-size:10px;
    color:rgba(255,255,255,.45);letter-spacing:.14em;text-transform:uppercase;
    display:inline-flex;gap:10px;align-items:center;
    padding:5px 11px;border:1px solid rgba(255,255,255,.1);border-radius:999px;
    background:rgba(0,0,0,.25);backdrop-filter:blur(8px);
  }
  .lyricsBlock .meta .live{width:5px;height:5px;border-radius:50%;background:var(--good);box-shadow:0 0 8px var(--good)}

  .eqOverlay{
    position:absolute;left:18px;right:18px;bottom:152px;z-index:5;height:56px;
    pointer-events:none;display:flex;align-items:flex-end;justify-content:space-between;
    gap:3px;mix-blend-mode:screen;opacity:.95;
  }
  .eqOverlay canvas{position:absolute;inset:0;width:100%;height:100%}
  .eqOverlay .eqLabel{
    position:absolute;left:0;top:-14px;
    font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;color:rgba(255,255,255,.55);
    text-transform:uppercase;display:flex;gap:8px;align-items:center;
    text-shadow:0 1px 4px rgba(0,0,0,.6);
  }
  .eqOverlay .eqLabel .dot{width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}

  .miniEq{
    position:absolute;right:3px;top:3px;display:flex;gap:1.5px;align-items:flex-end;
    width:18px;height:14px;padding:1px;border-radius:3px;
    background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.12);
  }
  .miniEq i{flex:1;background:var(--accent);border-radius:.5px;transform-origin:bottom;display:block;height:100%}

  .eqCard{position:relative}
  .eqCard canvas{display:block;width:100%;height:104px;border-radius:6px;background:#0a0a0c;border:1px solid var(--border)}
  .eqLegend{
    display:flex;justify-content:space-between;margin-top:8px;
    font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.06em;
  }
  .eqLegend b{color:var(--ink);font-weight:600}
  .eqControls{display:flex;flex-direction:column;gap:8px;margin-top:10px}
  .eqRow{display:flex;align-items:center;gap:8px}
  .eqRow .lbl{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;
    color:var(--ink-faint);text-transform:uppercase;width:40px;flex:none;
  }
  .eqChips{display:flex;gap:4px;flex-wrap:wrap;flex:1}
  .eqChip{
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;
    padding:4px 8px;border-radius:4px;cursor:pointer;
    background:#0d0d10;border:1px solid var(--border);
    color:var(--ink-faint);text-transform:uppercase;
    transition:all .12s ease;user-select:none;
  }
  .eqChip:hover{color:var(--ink);border-color:#2a2a30}
  .eqChip.on{
    background:rgba(215,255,58,0.10);border-color:var(--accent);color:var(--accent);
    box-shadow:inset 0 0 0 1px rgba(215,255,58,0.25);
  }
  .eqChip .sw{
    display:inline-block;width:8px;height:8px;border-radius:50%;
    vertical-align:-1px;margin-right:5px;border:1px solid rgba(255,255,255,0.15);
  }

  .scrubArea{
    position:absolute;left:18px;right:18px;bottom:128px;z-index:5;height:18px;
    display:flex;align-items:center;gap:10px;
    font-family:var(--mono);font-size:10.5px;color:rgba(255,255,255,.65);
    text-shadow:0 1px 4px rgba(0,0,0,.6);
  }
  .scrubArea .bar{flex:1;height:3px;background:rgba(255,255,255,.14);border-radius:2px;position:relative;cursor:pointer}
  .scrubArea .bar .fill{position:absolute;left:0;top:0;bottom:0;background:#fff;width:0%;border-radius:2px}
  .scrubArea .bar .head{position:absolute;top:50%;width:9px;height:9px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);left:0%}

  .nowPlaying{
    position:absolute;left:18px;right:18px;bottom:18px;z-index:6;
    display:grid;grid-template-columns:1fr auto 1fr;gap:18px;
    padding:14px 16px;border-radius:14px;color:#f4f4f0;
    background:rgba(14,14,16,.55);backdrop-filter:blur(28px) saturate(180%);
    border:1px solid rgba(255,255,255,.07);
    box-shadow:0 30px 80px rgba(0,0,0,.4), 0 1px 0 rgba(255,255,255,.05) inset;
  }
  .np-track{display:flex;gap:14px;align-items:center;min-width:0}
  .np-art{
    width:56px;height:56px;border-radius:10px;flex:none;position:relative;overflow:hidden;
    border:1px solid rgba(255,255,255,.08);background:#111;
  }
  .np-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:none}
  #artPlaceholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.6rem;color:var(--fg-dim);background:linear-gradient(135deg,#1a1a2e 0%,#16213e 50%,#0f3460 100%);letter-spacing:.05em}
  .np-art .srcBadge{
    position:absolute;left:4px;bottom:4px;
    font-family:var(--mono);font-size:8.5px;letter-spacing:.06em;text-transform:uppercase;
    padding:1.5px 5px;border-radius:4px;background:rgba(0,0,0,.55);color:#fff;
    border:1px solid rgba(255,255,255,.12);
  }
  .np-meta{min-width:0}
  .np-meta .name{font-weight:600;font-size:15.5px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--serif);font-weight:500}
  .np-meta .sub{font-family:var(--mono);font-size:11px;color:rgba(255,255,255,.6);letter-spacing:.04em;margin-top:4px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
  .np-meta .sub .sep{color:rgba(255,255,255,.18)}
  .np-meta .sub .alb{color:rgba(255,255,255,.85)}
  .np-meta .sub .yr{padding:1px 5px;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:rgba(255,255,255,.85)}

  .np-controls{display:flex;align-items:center;gap:6px}
  .np-controls button{
    width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.12);
    background:rgba(255,255,255,.04);color:#fff;cursor:pointer;
    display:flex;align-items:center;justify-content:center;transition:transform .15s,background .15s;
  }
  .np-controls button:hover{background:rgba(255,255,255,.1)}
  .np-controls button:active{transform:scale(.94)}
  .np-controls .play{width:52px;height:52px;background:var(--accent);color:var(--accent-ink);border:none;box-shadow:0 6px 24px rgba(215,255,58,.25)}
  .np-controls .play:hover{background:#e1ff55}
  .np-controls svg{width:16px;height:16px}
  .np-controls .play svg{width:18px;height:18px}

  .np-right{display:flex;align-items:center;justify-content:flex-end;gap:12px}
  .bpmCard{
    display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:10px;
    background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.08);
  }
  .bpmCard .num{font-family:var(--mono);font-weight:600;font-size:22px;letter-spacing:-.02em;color:#fff;font-variant-numeric:tabular-nums;line-height:1;min-width:46px;text-align:right}
  .bpmCard .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:rgba(255,255,255,.55);text-transform:uppercase}
  .bpmCard .heart{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 14px var(--accent);transform-origin:center}

  .modeToggle{
    position:absolute;left:18px;top:52px;z-index:5;display:flex;gap:0;
    background:rgba(14,14,16,.6);backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:3px;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;
    box-shadow:0 12px 30px rgba(0,0,0,.4);
  }
  .modeToggle button{
    padding:5px 10px;border-radius:5px;color:rgba(255,255,255,.55);text-transform:uppercase;
  }
  .modeToggle button.on{background:rgba(215,255,58,.18);color:var(--accent)}

  .endpointPill{
    position:absolute;right:18px;top:52px;z-index:5;
    font-family:var(--mono);font-size:10.5px;letter-spacing:.04em;
    padding:6px 10px;border-radius:8px;
    background:rgba(14,14,16,.6);backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.65);
    display:flex;align-items:center;gap:6px;
  }
  .endpointPill .verb{color:var(--accent);font-weight:600}

  .side{display:flex;flex-direction:column;gap:14px;min-width:0}
  .card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:14px}
  .card h4{
    margin:0 0 10px;font-family:var(--mono);font-size:10.5px;
    letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);font-weight:500;
    display:flex;align-items:center;justify-content:space-between;
  }
  .card h4 .ix{color:var(--ink-faint)}
  .card h4 .ix.live{color:var(--good);display:inline-flex;gap:6px;align-items:center}
  .card h4 .ix.live::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--good);box-shadow:0 0 8px var(--good)}

  .picker{display:flex;flex-direction:column;gap:6px}
  .wp{
    display:grid;grid-template-columns:78px 1fr auto;gap:12px;align-items:center;
    padding:6px;border-radius:8px;border:1px solid transparent;cursor:pointer;transition:all .15s;
  }
  .wp:hover{background:var(--bg-elev-2)}
  .wp.active{border-color:var(--accent);background:rgba(215,255,58,.04)}
  .wp .thumb{
    width:78px;height:48px;border-radius:6px;background:#000;position:relative;overflow:hidden;
    border:1px solid var(--border-strong);
  }
  .wp .thumb canvas{position:absolute;inset:0;width:100%;height:100%}
  .wp .info .name{font-size:13.5px;font-weight:500;letter-spacing:-.005em;font-family:var(--serif);font-weight:500}
  .wp .info .sub{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.05em;margin-top:2px;text-transform:uppercase}
  .wp .ix{font-family:var(--mono);font-size:10px;color:var(--ink-faint)}
  .wp.active .ix{color:var(--accent)}

  .lyricsCard .row{display:grid;grid-template-columns:54px 1fr;gap:10px;padding:5px 0;font-size:13px;color:var(--ink-dim);font-family:var(--sans)}
  .lyricsCard .row .ts{font-family:var(--mono);font-size:10.5px;color:var(--ink-faint);padding-top:2px;letter-spacing:.04em}
  .lyricsCard .row.is-cur{color:var(--ink)}
  .lyricsCard .row.is-cur .ts{color:var(--accent)}
  .lyricsCard .row.is-cur .ln{font-weight:500}
  #lyricsList{max-height:220px;overflow-y:auto;scrollbar-width:thin;pointer-events:none;user-select:none}
  #lyricsList::-webkit-scrollbar{width:4px}
  #lyricsList::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}
  .lyricsCard .source{
    margin-top:10px;padding-top:10px;border-top:1px solid var(--border);
    font-family:var(--mono);font-size:10px;color:var(--ink-faint);
    display:flex;justify-content:space-between;letter-spacing:.06em;
  }

  .spotify .head{
    display:flex;align-items:center;gap:10px;margin-bottom:10px;
  }
  .spotify .head .icon{
    width:26px;height:26px;border-radius:50%;background:#1ed760;
    display:grid;place-items:center;color:#000;font-weight:700;font-size:13px;font-family:var(--mono);
    flex:none;
  }
  .spotify .head .who{flex:1;min-width:0}
  .spotify .head .who b{display:block;font-size:13px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .spotify .head .who span{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.04em}
  .spotify .head .conn{
    font-family:var(--mono);font-size:10px;color:var(--good);
    padding:3px 7px;border:1px solid rgba(110,231,168,.3);border-radius:999px;
    display:inline-flex;align-items:center;gap:5px;white-space:nowrap;
  }
  .spotify .head .conn .dot{width:5px;height:5px;background:var(--good);box-shadow:0 0 8px var(--good)}
  .spotify .head .conn[data-state="disconnected"]{color:var(--warn);border-color:rgba(255,180,84,.3)}
  .spotify .head .conn[data-state="disconnected"] .dot{background:var(--warn);box-shadow:0 0 8px var(--warn)}
  .spotify .head .conn[data-state="loading"]{color:var(--ink-faint);border-color:var(--border)}
  .spotify .head .conn[data-state="loading"] .dot{background:var(--ink-faint);box-shadow:none}
  .spotifyViews{
    display:flex;gap:6px;margin:0 0 10px;
  }
  .spotifyView{
    padding:4px 8px;border-radius:4px;border:1px solid var(--border);
    background:#0d0d10;color:var(--ink-faint);font-family:var(--mono);
    font-size:10px;letter-spacing:.06em;text-transform:uppercase;
  }
  .spotifyView.on{
    background:rgba(215,255,58,.10);border-color:var(--accent);color:var(--accent);
  }
  #plList{max-height:260px;overflow-y:auto;scrollbar-width:thin}
  #plList::-webkit-scrollbar{width:4px}
  #plList::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}
  #plList .empty{
    padding:12px;border:1px dashed var(--border);border-radius:8px;
    color:var(--ink-faint);font-family:var(--mono);font-size:10.5px;
    letter-spacing:.06em;text-transform:uppercase;text-align:center;
  }
  .spotifyLoadMore{
    display:block;width:100%;background:transparent;cursor:pointer;
    padding:10px 12px;margin-top:6px;border:1px dashed var(--border);
    border-radius:8px;color:var(--ink-faint);font-family:var(--mono);
    font-size:10px;letter-spacing:.06em;text-transform:uppercase;text-align:center;
  }
  .spotifyLoadMore:hover{border-color:var(--accent);color:var(--accent)}
  .spotifyNote{
    font-family:var(--mono);font-size:10px;color:var(--ink-faint);
    letter-spacing:.04em;margin:8px 0 0;line-height:1.6;
  }
  .spotifyPreviewHead{
    display:flex;align-items:flex-start;gap:8px;margin:0 0 8px;padding:8px 10px;
    border:1px solid var(--border);border-radius:8px;background:var(--bg-elev-2);
  }
  .spotifyBack{
    flex:none;
    padding:4px 7px;border-radius:4px;border:1px solid var(--border-strong);
    background:#0d0d10;color:var(--ink);font-family:var(--mono);font-size:9.5px;
    letter-spacing:.08em;text-transform:uppercase;
  }
  .spotifyBack:hover{border-color:var(--accent);color:var(--accent)}
  .spotifyPreviewMeta{min-width:0;flex:1}
  .spotifyPreviewTitle{
    font-size:13px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }
  .spotifyPreviewSub{
    margin-top:2px;font-family:var(--mono);font-size:10px;color:var(--ink-faint);
    letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  }

  .plRow{
    display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;
    padding:9px 10px;border:1px solid var(--border);border-radius:8px;margin-bottom:6px;
    cursor:pointer;transition:all .15s;
  }
  .plRow:hover{border-color:var(--border-strong);background:var(--bg-elev-2)}
  .plRow .pl-name{font-size:13px;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .plRow .pl-sub{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.04em;margin-top:2px}
  .plRow .match{display:flex;gap:4px;font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;}
  .plRow .match span{padding:2px 5px;border-radius:3px;line-height:1.4}
  .plRow .match .ok{background:rgba(110,231,168,.12);color:var(--good)}
  .plRow .match .mid{background:rgba(255,180,84,.12);color:var(--warn)}
  .plRow .match .bad{background:rgba(255,90,106,.12);color:var(--bad)}
  .likedRow{
    display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;
    padding:9px 10px;border:1px solid var(--border);border-radius:8px;margin-bottom:6px;
  }
  .likedRow.playable{cursor:pointer}
  .likedRow.playable:hover{border-color:var(--accent);background:rgba(215,255,58,.04)}
  .likedRow .playHint{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--accent);white-space:nowrap;
  }
  .likedRow .title{font-size:13px;color:var(--ink);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .likedRow .meta{font-family:var(--mono);font-size:10px;color:var(--ink-faint);letter-spacing:.04em;margin-top:2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  .likedRow .meta .sep{color:rgba(255,255,255,.18)}
  .likedRow .saved{font-family:var(--mono);font-size:9.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-faint);white-space:nowrap}

  .knobs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .knob{
    background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px;padding:9px;
    display:flex;flex-direction:column;gap:5px;cursor:ns-resize;user-select:none;
  }
  .knob .lbl{font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;color:var(--ink-faint);text-transform:uppercase}
  .knob .val{font-family:var(--mono);font-size:16px;font-weight:600;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}
  .knob .track{height:3px;border-radius:2px;background:#0a0a0c;overflow:hidden}
  .knob .track i{display:block;height:100%;background:var(--accent);width:50%}

  .bpmPresets{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:4px}
  .bpmPresets button{
    background:var(--bg-elev-2);border:1px solid var(--border);color:var(--ink-dim);
    font-family:var(--mono);font-size:10px;padding:7px 8px;border-radius:6px;
    text-align:left;letter-spacing:.04em;
  }
  .bpmPresets button:hover{border-color:var(--border-strong);color:var(--ink)}
  .bpmPresets button.on{border-color:var(--accent);color:var(--accent);background:rgba(215,255,58,.06)}
  .bpmPresets b{display:block;font-weight:600;color:inherit;font-size:11px;margin-bottom:2px}
  .bpmPresets span{display:block;color:var(--ink-faint);font-size:9px;letter-spacing:.08em;text-transform:uppercase}

  .endpoints .ep{
    display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;
    padding:6px 0;border-bottom:1px solid var(--border);
    font-family:var(--mono);font-size:11px;color:var(--ink-dim);
  }
  .endpoints .ep:last-child{border-bottom:0}
  .endpoints .ep .verb{color:var(--accent);font-weight:600;font-size:10px;text-transform:uppercase}
  .endpoints .ep .path{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .endpoints .ep .lat{color:var(--ink-faint);font-size:10px}
  .endpoints .ep.warn .lat{color:var(--warn)}
  .endpoints .ep.bad  .lat{color:var(--bad)}

  .below{
    max-width:1520px;margin:18px auto 50px;padding:0 24px;
    display:grid;grid-template-columns:repeat(4,1fr);gap:18px;
  }
  .blip{border:1px solid var(--border);border-radius:12px;padding:14px;background:linear-gradient(180deg,#111114,#0c0c0e)}
  .blip .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:var(--ink-faint);text-transform:uppercase}
  .blip .v{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:-.01em;color:var(--ink);margin-top:6px;line-height:1}
  .blip .v em{font-style:italic;color:var(--accent)}
  .blip .d{font-size:12px;color:var(--ink-dim);margin-top:8px;line-height:1.5}

  @media (max-width:880px){
    .below{grid-template-columns:repeat(2,1fr)}
    .nowPlaying{grid-template-columns:1fr;gap:12px}
    .np-right{justify-content:flex-start}
    .searchAnchor{width:100%}
    .themeBtn span:last-child{display:none}
  }

  .themeScrim{
    position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:78;
    opacity:0;pointer-events:none;transition:opacity .18s ease;
  }
  .themeScrim.open{opacity:1;pointer-events:auto}
  .themeModal{
    position:fixed;top:68px;right:24px;width:min(360px,calc(100vw - 32px));z-index:80;
    background:rgba(18,19,23,.96);border:1px solid var(--border-strong);
    border-radius:8px;box-shadow:0 24px 80px rgba(0,0,0,.55);
    transform:translateY(-8px);opacity:0;pointer-events:none;transition:all .18s ease;
    overflow:hidden;
  }
  .themeModal.open{transform:none;opacity:1;pointer-events:auto}
  .themeHead{
    display:flex;align-items:flex-start;justify-content:space-between;
    gap:14px;padding:16px 16px 12px;border-bottom:1px solid var(--border);
  }
  .themeCrumb{
    font-family:var(--mono);font-size:9.5px;color:var(--ink-faint);
    letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;
  }
  .themeHead h2{font-family:var(--serif);font-size:22px;font-weight:400;margin:0}
  .themeClose{
    width:28px;height:28px;border:1px solid var(--border);border-radius:6px;
    color:var(--ink-dim);display:grid;place-items:center;background:var(--bg-elev);
  }
  .themeClose:hover{color:var(--ink);background:var(--bg-elev-2)}
  .themeBody{padding:14px 16px 16px}
  .themePresetGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .themePreset{
    min-height:42px;display:flex;align-items:center;gap:10px;padding:8px;
    border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);
    color:var(--ink-dim);font-size:13px;text-align:left;
  }
  .themePreset:hover,.themePreset.on{border-color:var(--border-strong);color:var(--ink);background:var(--bg-elev-2)}
  .themePreset.on{box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent) inset}
  .themeSwatch{
    width:22px;height:22px;border-radius:5px;border:1px solid rgba(255,255,255,.12);
    box-shadow:0 8px 18px rgba(0,0,0,.2);
  }
  .themeSwatch.default{background:linear-gradient(135deg,#d7ff3a,#6ee7a8)}
  .themeSwatch.sunset{background:linear-gradient(135deg,#ffb454,#ff5a6a)}
  .themeSwatch.ocean{background:linear-gradient(135deg,#67e8f9,#6ee7a8)}
  .themeSwatch.forest{background:linear-gradient(135deg,#a7f3d0,#facc15)}
  .themeSwatch.midnight{background:linear-gradient(135deg,#c4b5fd,#60a5fa)}
  .themeCustom{
    margin-top:14px;padding-top:14px;border-top:1px solid var(--border);
  }
  .themeCustomHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
  .themeCustomHead span{
    font-family:var(--mono);font-size:10px;color:var(--ink-faint);
    letter-spacing:.08em;text-transform:uppercase;
  }
  .themeMiniBtn{
    padding:5px 9px;border:1px solid var(--border-strong);border-radius:5px;
    color:var(--ink);font-size:12px;background:var(--bg-elev);
  }
  .themeMiniBtn:hover{background:var(--bg-elev-2)}
  .themeColorRow{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .themeColorRow label{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    border:1px solid var(--border);border-radius:6px;background:#0a0b0d;
    padding:8px 9px;font-size:12px;color:var(--ink-dim);
  }
  .themeColorRow input{
    width:34px;height:26px;border:0;padding:0;background:transparent;
  }

  /* ── MCP Pill + Drawer ── */
  .mcpPill{
    font-family:var(--mono);font-size:11px;color:var(--ink-dim);
    display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 9px;
    border:1px solid var(--border);border-radius:4px;background:var(--bg-elev);
    cursor:pointer;transition:all .15s;letter-spacing:.04em;
  }
  .mcpPill:hover{border-color:var(--border-strong);color:var(--ink)}
  .mcpPill .lbl{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:var(--ink-faint)}
  .mcpPill .stat{color:var(--ink);font-variant-numeric:tabular-nums}
  .mcpPill .chev{opacity:.5}
  .mcpDot{
    position:relative;width:7px;height:7px;border-radius:50%;
    background:var(--ink-faint);transition:background .3s, box-shadow .3s;flex-shrink:0;
  }
  .mcpDot::after{
    content:'';position:absolute;inset:-3px;border-radius:50%;
    border:1px solid currentColor;opacity:0;
  }
  .mcpDot.running{background:var(--good);box-shadow:0 0 10px var(--good);color:var(--good)}
  .mcpDot.running::after{animation:mcpPulse 1.8s ease-out infinite}
  .mcpDot.starting{background:var(--warn);box-shadow:0 0 10px var(--warn);color:var(--warn)}
  .mcpDot.starting::after{animation:mcpPulse 1s ease-out infinite}
  .mcpDot.stopped{background:#5a5d66;box-shadow:none;color:#5a5d66}
  @keyframes mcpPulse{
    0%{opacity:.6;transform:scale(.6)}
    100%{opacity:0;transform:scale(2.2)}
  }
  .mcpScrim{
    position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.42);
    backdrop-filter:blur(2px);opacity:0;pointer-events:none;
    transition:opacity .25s ease;
  }
  .mcpScrim.open{opacity:1;pointer-events:auto}
  .mcpDrawer{
    position:fixed;top:0;right:0;bottom:0;width:var(--mcp-w,360px);z-index:90;
    background:var(--bg-elev);border-left:1px solid var(--border-strong);
    display:flex;flex-direction:column;transform:translateX(110%);
    transition:transform .35s cubic-bezier(.5,.1,.2,1), width .25s ease;
    box-shadow:-30px 0 80px rgba(0,0,0,.5);
  }
  .mcpDrawer.open{transform:translateX(0)}
  .mcpHead{
    display:flex;align-items:flex-start;justify-content:space-between;
    padding:18px 18px 14px;border-bottom:1px solid var(--border);
  }
  .mcpHead .crumb{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
    color:var(--ink-faint);text-transform:uppercase;
  }
  .mcpHead h2{
    margin:6px 0 0;font-family:var(--serif);font-weight:400;
    font-size:22px;letter-spacing:-.01em;color:var(--ink);
  }
  .mcpClose{
    width:26px;height:26px;border-radius:4px;border:1px solid var(--border);
    background:transparent;color:var(--ink-dim);cursor:pointer;
    display:grid;place-items:center;font-family:var(--mono);font-size:14px;
  }
  .mcpClose:hover{background:var(--bg-elev-2);color:var(--ink)}
  .mcpBody{flex:1;overflow-y:auto;padding:0}
  .mcpBody::-webkit-scrollbar{width:6px}
  .mcpBody::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}
  .mcpSection{padding:16px 18px;border-bottom:1px solid var(--border)}
  .mcpSection:last-child{border-bottom:0}
  .mcpSection .h{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;
    text-transform:uppercase;color:var(--ink-faint);margin-bottom:10px;
    display:flex;justify-content:space-between;align-items:center;
  }
  .mcpStatus{display:flex;align-items:center;gap:12px}
  .mcpStatus .big{
    width:32px;height:32px;display:grid;place-items:center;flex:none;
    border-radius:4px;background:var(--bg-elev-2);border:1px solid var(--border);
  }
  .mcpStatus .big .mcpDot{width:10px;height:10px}
  .mcpStatus .lbl{
    font-family:var(--serif);font-size:19px;letter-spacing:-.01em;color:var(--ink);
    line-height:1.1;
  }
  .mcpStatus.starting .lbl{color:var(--warn)}
  .mcpStatus.running .lbl{color:var(--good)}
  .mcpStatus.stopped .lbl{color:var(--ink-dim)}
  .mcpStatus .meta{
    margin-top:5px;font-family:var(--mono);font-size:10.5px;
    color:var(--ink-faint);letter-spacing:.04em;display:flex;gap:10px;
  }
  .mcpStatus .meta b{color:var(--ink-dim);font-weight:500}
  .mcpStatus .meta .sep{color:var(--border-strong)}
  .mcpCtrls{display:flex;gap:8px;margin-top:14px}
  .mcpBtn{
    flex:1;font-family:var(--sans);font-weight:500;font-size:12.5px;
    padding:8px 12px;border-radius:4px;cursor:pointer;
    border:1px solid var(--border-strong);background:transparent;color:var(--ink);
    transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  }
  .mcpBtn:hover:not(:disabled){background:var(--bg-elev-2)}
  .mcpBtn:disabled{opacity:.35;cursor:not-allowed}
  .mcpBtn.start{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
  .mcpBtn.start:hover:not(:disabled){background:#e1ff55}
  .mcpBtn.stop{border-color:var(--bad);color:var(--bad)}
  .mcpBtn.stop:hover:not(:disabled){background:rgba(255,90,106,.08)}
  .mcpKv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-family:var(--mono);font-size:11px}
  .mcpKv dt{color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;font-size:9.5px;padding-top:2px}
  .mcpKv dd{margin:0;color:var(--ink);word-break:break-all;letter-spacing:.02em}
  .mcpKv dd .tag{display:inline-block;padding:1px 5px;border-radius:3px;background:var(--bg-elev-2);border:1px solid var(--border);font-size:10px;color:var(--ink-dim)}
  .mcpTools{display:flex;flex-direction:column;gap:1px}
  .mcpTool{
    padding:9px 0;display:grid;grid-template-columns:1fr auto;gap:4px 10px;
    border-bottom:1px solid var(--border);align-items:start;
  }
  .mcpTool:last-child{border-bottom:0}
  .mcpTool .name{font-family:var(--mono);font-size:12px;color:var(--ink);font-weight:500;letter-spacing:.01em}
  .mcpTool .desc{font-size:11.5px;color:var(--ink-dim);grid-column:1;line-height:1.45}
  .mcpTool .arity{
    font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
    padding:2px 6px;border-radius:3px;background:var(--bg-elev-2);border:1px solid var(--border);
    color:var(--ink-faint);white-space:nowrap;align-self:start;
  }
  .mcpTool .arity.has{color:var(--accent);border-color:rgba(215,255,58,.3);background:rgba(215,255,58,.06)}
  .mcpToolsEmpty{font-family:var(--mono);font-size:11px;color:var(--ink-faint);padding:14px 0;text-align:center;border:1px dashed var(--border);border-radius:4px}
  .mcpLog{display:flex;flex-direction:column;background:#0a0b0d;border:1px solid var(--border);border-radius:4px;padding:6px 8px}
  .mcpLogRow{
    display:grid;grid-template-columns:62px 1fr auto;gap:8px;align-items:center;
    padding:3px 0;font-family:var(--mono);font-size:10.5px;
  }
  .mcpLogRow .ts{color:var(--ink-faint);letter-spacing:.02em}
  .mcpLogRow .nm{color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mcpLogRow .bd{font-size:9px;padding:1px 5px;border-radius:3px;letter-spacing:.08em;text-transform:uppercase}
  .mcpLogRow .bd.ok{color:var(--good);border:1px solid rgba(110,231,168,.3);background:rgba(110,231,168,.06)}
  .mcpLogRow .bd.err{color:var(--bad);border:1px solid rgba(255,90,106,.3);background:rgba(255,90,106,.06)}
  .mcpCallout{
    display:flex;gap:10px;align-items:flex-start;
    padding:10px 12px;border-radius:4px;
    background:rgba(255,180,84,.06);border:1px solid rgba(255,180,84,.3);
  }
  .mcpCallout .ic{color:var(--warn);font-family:var(--mono);flex:none;line-height:1.2;font-size:14px}
  .mcpCallout .tx{font-size:11.5px;color:var(--ink);line-height:1.5;flex:1}
  .mcpCallout .tx b{color:var(--warn);font-weight:600}
  .mcpCallout button{
    background:transparent;border:0;color:var(--warn);opacity:.6;
    cursor:pointer;font-family:var(--mono);font-size:13px;line-height:1;padding:0 2px;
  }
  .mcpCallout button:hover{opacity:1}
  .mcpDrawer[data-trans="1"] .mcpBtn{opacity:.35;pointer-events:none}

  .mcpTweakRow{
    display:flex;align-items:center;justify-content:space-between;gap:10px;
    font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;
    text-transform:uppercase;color:var(--ink-faint);
  }
  .mcpTweakGroup{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
  .mcpSwatch{
    width:15px;height:15px;border-radius:3px;border:1px solid rgba(255,255,255,.22);
    cursor:pointer;box-shadow:0 6px 14px rgba(0,0,0,.25);
  }
  .mcpWidthBtn{
    padding:3px 7px;border-radius:3px;border:1px solid var(--border);
    background:#0d0d10;color:var(--ink-dim);font-family:var(--mono);
    font-size:9.5px;letter-spacing:.08em;cursor:pointer;
  }
  .mcpWidthBtn.on{
    background:rgba(215,255,58,.10);border-color:var(--accent);color:var(--accent);
  }

  /* ── Focus panel ── */
  .focus-panel {
    max-width: 1280px; margin: 0 auto; padding: 32px 40px 48px;
    border-top: 1px solid var(--border);
    display: none;
  }
  .focus-panel.visible { display: block; }

  .focus-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 24px;
  }
  .focus-title {
    font-family: 'Fraunces', serif; font-size: 28px; font-weight: 300;
    letter-spacing: -0.02em; color: var(--ink);
  }
  .focus-title em { font-style: italic; color: var(--accent); font-weight: 400; }

  /* Profile editor */
  .profile-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px;
    margin-bottom: 24px;
  }
  .profile-field {
    background: var(--bg-elev); border: 1px solid var(--border);
    border-radius: var(--radius); padding: 14px 16px;
  }
  .profile-field label {
    font-family: 'JetBrains Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-faint);
    display: block; margin-bottom: 10px;
  }
  .bpm-row { display: flex; align-items: center; gap: 8px; }
  .bpm-input {
    background: var(--bg); border: 1px solid var(--border-strong);
    border-radius: var(--radius); padding: 6px 10px;
    font-family: 'JetBrains Mono', monospace; font-size: 14px;
    color: var(--ink); width: 64px; text-align: center;
  }
  .bpm-input:focus { outline: none; border-color: var(--accent); }
  .bpm-sep { color: var(--ink-faint); font-family: 'JetBrains Mono', monospace; font-size: 12px; }
  .range-wrap { display: flex; flex-direction: column; gap: 6px; }
  .range-wrap input[type=range] {
    -webkit-appearance: none; width: 100%; height: 3px;
    background: var(--border); border-radius: 2px; outline: none;
  }
  .range-wrap input[type=range]::-webkit-slider-thumb {
    -webkit-appearance: none; width: 14px; height: 14px;
    border-radius: 50%; background: var(--accent); cursor: pointer;
  }
  .range-val {
    font-family: 'JetBrains Mono', monospace; font-size: 12px;
    color: var(--ink); text-align: right;
  }
  .profile-actions { display: flex; gap: 8px; margin-bottom: 24px; }

  /* BPM insight callout */
  .insight-bar {
    padding: 12px 16px; border-radius: var(--radius);
    border: 1px solid var(--border); border-left: 2px solid var(--accent);
    background: var(--bg-elev); font-size: 13px; color: var(--ink-dim);
    font-family: 'JetBrains Mono', monospace;
    margin-bottom: 20px; display: none;
  }
  .insight-bar.visible { display: block; }
  .insight-bar b { color: var(--ink); font-weight: 500; }

  /* Focus track list */
  .focus-stats {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px;
    margin-bottom: 20px;
  }
  .focus-stat {
    padding: 12px; border: 1px solid var(--border);
    border-radius: var(--radius); background: var(--bg);
  }
  .focus-stat span {
    font-family: 'JetBrains Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-faint);
  }
  .focus-stat strong {
    display: block; font-family: 'Fraunces', serif; font-size: 22px;
    font-weight: 400; margin-top: 4px; color: var(--ink);
  }

  .focus-track {
    display: grid; grid-template-columns: 40px 1fr 60px 60px 60px 60px auto;
    gap: 10px; align-items: center;
    padding: 10px 8px; border-bottom: 1px solid var(--border);
    font-size: 12px; cursor: pointer; transition: background .1s;
  }
  .focus-track:hover { background: var(--bg-elev-2); }
  .focus-track .t { color: var(--ink); font-size: 12px; margin: 0; }
  .focus-track .a {
    font-family: 'JetBrains Mono', monospace; font-size: 10px;
    color: var(--ink-faint); margin-top: 2px;
  }
  .focus-track .bpm-pill {
    font-family: 'JetBrains Mono', monospace; font-size: 11px;
    font-weight: 600; color: var(--accent); text-align: center;
  }
  .focus-track .feat-val {
    font-family: 'JetBrains Mono', monospace; font-size: 10px;
    color: var(--ink-dim); text-align: center;
  }
  .focus-bar-wrap { height: 3px; background: var(--border); border-radius: 2px; overflow: hidden; }
  .focus-bar-fill { height: 100%; border-radius: 2px; background: var(--accent); }

  /* Column headers */
  .focus-track-head {
    display: grid; grid-template-columns: 40px 1fr 60px 60px 60px 60px auto;
    gap: 10px; align-items: center;
    padding: 6px 8px; border-bottom: 1px solid var(--border-strong);
    font-family: 'JetBrains Mono', monospace; font-size: 9px;
    text-transform: uppercase; letter-spacing: 0.1em; color: var(--ink-faint);
    margin-bottom: 0;
  }

  /* Time range tabs */
  .time-tabs { display: flex; gap: 6px; margin-bottom: 20px; }
  .time-tab {
    font-family: 'JetBrains Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.08em;
    padding: 5px 10px; border-radius: var(--radius);
    border: 1px solid var(--border-strong); background: transparent;
    color: var(--ink-faint); cursor: pointer; transition: all .12s;
  }
  .time-tab:hover { color: var(--ink); border-color: var(--ink-dim); }
  .time-tab.active { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }

  /* Rejected section */
  .rejected-toggle {
    font-family: 'JetBrains Mono', monospace; font-size: 10px;
    text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-faint);
    background: none; border: none; cursor: pointer; padding: 8px 0;
    display: flex; align-items: center; gap: 6px;
  }
  .rejected-toggle:hover { color: var(--ink-dim); }
  .rejected-list { display: none; }
  .rejected-list.visible { display: block; }
  .rejected-track {
    display: grid; grid-template-columns: 40px 1fr 60px 60px;
    gap: 10px; align-items: center;
    padding: 8px; border-bottom: 1px solid var(--border);
    font-size: 12px; opacity: 0.5;
  }
  .reject-reason {
    font-family: 'JetBrains Mono', monospace; font-size: 10px;
    color: var(--bad); text-align: right;
  }
  .focus-art {
    width: 40px; height: 40px; border-radius: 6px; background: var(--bg-elev-2);
    border: 1px solid var(--border); overflow: hidden; position: relative;
    display: grid; place-items: center; flex: none;
  }
  .focus-art img {
    position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  }
  .focus-art .ph {
    font-size: 14px; color: var(--ink-faint);
  }
  .focus-skeleton {
    padding: 20px; text-align: center;
    font-family: var(--mono); font-size: 11px; color: var(--ink-faint);
    letter-spacing: 0.08em; text-transform: uppercase;
  }
  @media (max-width: 960px) {
    .profile-grid { grid-template-columns: 1fr; }
    .focus-stats { grid-template-columns: repeat(2, 1fr); }
    .focus-track { grid-template-columns: 36px 1fr 50px auto; }
    .focus-track .feat-val, .focus-track-head .feat-val { display: none; }
  }
