:root{color-scheme:light;--ink:#14181f;--muted:#78828d;--line:#e6eaef;--paper:#f7f8fa;--panel:#ffffff;--accent:#111827;--accent-strong:#020617;--warn:#b45309;--bad:#b91c1c;--good:#047857;--shadow:0 18px 45px rgba(15,23,42,0.07)}*{box-sizing:border-box}body,html{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{border:0}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;padding:18px}.app-shell.compact{max-width:980px;margin:0 auto}.request-shell{max-width:1120px;margin:0 auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.brand{display:flex;gap:2px}.brand,.brand-lockup{flex-direction:column}.brand-lockup{display:inline-flex;min-width:0;max-width:100%;align-items:flex-start;gap:4px}.brand-lockup img{width:min(220px,58vw);height:auto;object-fit:contain}.brand-lockup.compact img{width:158px}.brand-lockup span{color:var(--muted);font-size:13px;font-weight:700}.player-page .brand-lockup span{color:#9aa8b6}.brand h1{margin:0;font-size:24px;line-height:1.05;letter-spacing:0}.brand span,.muted{color:var(--muted);font-size:13px}.grid{display:grid;grid-gap:14px;gap:14px}.grid.two{grid-template-columns:minmax(0,1fr)}.grid.two>*,.grid>*,.request-layout>*{min-width:0}@media (min-width:860px){.grid.two{grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr)}}.panel{min-width:0;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:16px}.entry-panel{margin-top:min(18vh,120px);padding:24px}.entry-copy{margin:12px 0 0;color:var(--muted);font-size:14px}.request-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;margin:-18px -18px 16px;padding:14px 18px;background:rgba(247,248,250,.84);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-bottom:1px solid rgba(230,234,239,.8)}.topbar-identity{min-width:0;display:grid;grid-gap:6px;gap:6px}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.nickname-editor{display:grid;grid-template-columns:minmax(120px,190px) 40px 40px;grid-gap:6px;gap:6px;align-items:center}.nickname-editor .input{min-height:38px;padding:8px 10px}.text-button{gap:5px;width:-moz-fit-content;width:fit-content;padding:0;background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.active-users-inline,.text-button{display:inline-flex;align-items:center;font-weight:800}.active-users-inline{min-height:40px;gap:6px;padding:0 11px;border-radius:8px;background:#eef2f5;color:var(--ink)}.request-overview{display:grid;grid-gap:14px;gap:14px}@media (min-width:860px){.request-overview{grid-template-columns:minmax(0,1fr) 300px;align-items:stretch}}.now-panel{padding:18px}.now-panel .now-card{grid-template-columns:180px minmax(0,1fr);align-items:center}.now-panel .artwork{max-width:180px;box-shadow:0 12px 28px rgba(15,23,42,.12)}.now-panel .now-info h2{font-size:clamp(21px,3vw,34px)}@media (max-width:640px){.now-panel .now-card{grid-template-columns:112px minmax(0,1fr);gap:12px}.now-panel .artwork{max-width:112px}.now-panel .now-info h2{font-size:18px}.now-panel .remote-controls{gap:8px}.now-panel .round-control{width:38px;height:38px}.now-panel .round-control.primary{width:48px;height:48px}}.quick-panel{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;padding:10px;box-shadow:none}@media (min-width:860px){.quick-panel{grid-template-columns:1fr}}@media (max-width:560px){.quick-panel{grid-template-columns:repeat(2,1fr)}.request-topbar{align-items:flex-start}.topbar-actions{align-items:flex-end}.nickname-editor{grid-template-columns:minmax(0,1fr) 38px 38px}.brand-lockup img,.player-topbar .brand-lockup img{width:min(160px,42vw)}.player-actions{max-width:154px}}.quick-panel>div{min-width:0;padding:12px;border-radius:8px;background:#f2f5f7}.quick-panel strong{display:block;font-size:25px;line-height:1;letter-spacing:0}.quick-panel span{display:block;margin-top:5px;color:var(--muted);font-size:12px}.active-users-panel{display:flex;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;box-shadow:none}.active-users-head{display:inline-flex;align-items:center;gap:6px;color:#475569;white-space:nowrap}.user-chips{min-width:0;display:flex;gap:7px;overflow-x:auto;padding-bottom:1px}.user-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border-radius:999px;background:#eef2f5;color:#111827;font-size:12px;font-weight:800;white-space:nowrap}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.section-actions{justify-content:flex-end;gap:6px}.section-head h2{margin:0}.search-panel{padding:18px}.search-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-gap:8px;gap:8px;align-items:stretch}.search-field{position:relative;min-width:0}.search-field .input{padding-right:44px}.search-inline-button{position:absolute;top:50%;right:6px;width:34px;height:34px;display:inline-grid;place-items:center;transform:translateY(-50%);border-radius:8px;background:transparent;color:var(--muted);cursor:pointer}.search-inline-button:hover{background:#eef2f5;color:var(--ink)}.search-mode-tabs{display:inline-grid;grid-template-columns:repeat(3,1fr);gap:4px;width:min(360px,100%);margin-bottom:10px;padding:4px;border-radius:8px;background:#eef2f5}.search-mode-tabs button{min-height:32px;border-radius:6px;background:transparent;color:#66717d;cursor:pointer;font-size:13px;font-weight:800}.search-mode-tabs button.active{background:#fff;color:#111827;box-shadow:0 1px 3px rgba(0,0,0,.08)}.search-panel .button{min-width:86px}.search-refresh{width:46px;height:auto}@media (max-width:560px){.search-form{grid-template-columns:minmax(0,1fr) 44px}.search-form .button{grid-column:1/-1}}.suggestion-row{max-width:100%;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-bottom:2px}.chip{min-height:34px;padding:0 12px;border-radius:999px;background:#eef2f5;color:#374151;cursor:pointer;white-space:nowrap}.chip:hover{background:#e1e7ed}.more-chip{background:#111827;color:#fff}.result-list .track{background:#fbfcfd}.recommend-label{display:flex;font-size:13px}.recommend-label,.toggle-row{align-items:center;gap:6px;color:#475569;font-weight:800}.toggle-row{display:inline-flex;font-size:12px;white-space:nowrap}.toggle-row input{width:16px;height:16px;accent-color:#111827}.panel h2,.panel h3{margin:0 0 10px;font-size:16px;letter-spacing:0}.panel h3{font-size:14px}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:10px}.input{width:100%;border:1px solid var(--line);border-radius:8px;padding:13px 14px;background:#fbfcfd;color:var(--ink);outline:none;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.input:focus{background:#fff;border-color:#a8b3bd;box-shadow:0 0 0 4px rgba(15,23,42,.06)}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 15px;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap}.button.secondary{background:#eef2f5;color:var(--ink)}.button.ghost{background:rgba(255,255,255,.1);color:inherit;border:1px solid rgba(255,255,255,.12)}.button.danger{background:var(--bad)}.button.danger.soft{background:rgba(239,68,68,.14);color:#fecaca}.button.hero{min-height:54px;padding:0 24px;background:#f8fafc;color:#0b1118;font-weight:800}.button:disabled{cursor:not-allowed;opacity:.5}.app-alert{border-color:#bbf7d0;background:#ecfdf5;color:#047857;box-shadow:none}.icon-button{width:40px;min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);cursor:pointer}.icon-button,.tabs{border-radius:8px;background:#eef2f5}.tabs{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:6px;gap:6px;padding:4px}.tab{min-height:34px;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08)}.track{display:grid;grid-template-columns:72px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:center;border:1px solid #edf0f3;border-radius:8px;padding:9px;background:#fff}.track.compact{grid-template-columns:52px minmax(0,1fr);gap:8px;padding:7px}.track.compact img{width:52px}.track.compact .stack{gap:6px}.track.compact .track-title{font-size:13px;line-height:1.24;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.track.compact .track-meta{font-size:11px}.track.compact .row.wrap{gap:5px}.track.compact .badge{min-height:20px;padding:0 6px;font-size:11px}.track.compact .icon-button{width:30px;min-width:30px;height:30px}.track.compact .button{min-height:30px;padding:0 9px;font-size:12px}.track .button{min-height:34px;padding:0 12px;white-space:normal;text-align:center}.track img{width:72px;aspect-ratio:16/9;object-fit:cover;border-radius:6px;background:#d9e1e7}.track-title{margin:0;font-weight:750;line-height:1.28;overflow-wrap:anywhere}.now-card{display:grid;grid-gap:16px;gap:16px;color:inherit}.now-card.compact{grid-template-columns:116px minmax(0,1fr);align-items:center}.artwork{width:100%;aspect-ratio:1/1;overflow:hidden;border-radius:8px;background:#e5e9ee;box-shadow:0 18px 40px rgba(15,23,42,.16)}.artwork img{width:100%;height:100%;object-fit:cover;transform:scale(1.38)}.artwork-empty{width:100%;height:100%;background:linear-gradient(135deg,#e5e9ee,#cfd7df)}.now-info{min-width:0}.now-info h2{margin:0;font-size:clamp(18px,4vw,34px);line-height:1.08;overflow-wrap:anywhere}.now-info p:not(.eyebrow){margin:8px 0 0;color:var(--muted);font-size:13px}.player-card .now-info .eyebrow,.player-card .now-info p:not(.eyebrow){color:#9aa8b6}.progress{margin-top:16px}.progress-bar{height:6px;overflow:hidden;border-radius:999px;background:rgba(148,163,184,.26)}.progress-bar span{display:block;height:100%;border-radius:inherit;background:currentColor}.time-row{display:flex;justify-content:space-between;margin-top:7px;color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.player-card .time-row{color:#9aa8b6}.remote-controls{display:flex}.remote-controls,.volume-control{align-items:center;gap:10px;margin-top:14px}.volume-control{display:grid;grid-template-columns:auto minmax(0,1fr) 34px;grid-gap:10px;padding:10px 12px;border-radius:8px;background:#f2f5f7;color:#475569}.volume-control input{width:100%;accent-color:#111827}.volume-control strong{color:#111827;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.round-control{width:42px;height:42px;display:inline-grid;place-items:center;border-radius:50%;background:#eef2f5;color:#111827;cursor:pointer}.round-control.primary{width:54px;height:54px;background:#111827;color:#fff}.player-card .round-control{background:rgba(255,255,255,.12);color:#fff}.player-card .round-control.primary{background:#f8fafc;color:#0b1118}.round-control:disabled{opacity:.42;cursor:not-allowed}.track-meta{line-height:1.35}.badge,.track-meta{color:var(--muted);font-size:12px}.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#eef2f5}.badge.good{background:#dcfce7;color:var(--good)}.badge.warn{background:#fef3c7;color:var(--warn)}.badge.bad{background:#fee2e2;color:var(--bad)}.empty{border:1px dashed #d7dde4;border-radius:8px;padding:20px;color:var(--muted);text-align:center;background:rgba(255,255,255,.42)}.player-page{min-height:100vh;background:radial-gradient(circle at 18% 0,rgba(45,212,191,.15),transparent 30%),linear-gradient(180deg,#0b1118,#111827);color:#f8fafc;padding:18px}.player-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;max-width:1180px;margin:0 auto 18px}.player-topbar h1{margin:0;font-size:clamp(28px,5vw,48px);line-height:.95;letter-spacing:0}.player-topbar .brand-lockup img{width:min(250px,56vw)}@media (max-width:560px){.player-topbar .brand-lockup img{width:min(160px,42vw)}}.eyebrow{margin:0 0 8px;color:#9aa8b6;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.player-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.status-pill{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border-radius:999px;background:rgba(251,191,36,.14);color:#fde68a;font-size:13px;font-weight:700}.status-pill.on{background:rgba(34,197,94,.16);color:#bbf7d0}.player-grid{display:grid;grid-gap:14px;gap:14px;max-width:1180px;margin:0 auto;transition:opacity .18s ease}.player-grid.dimmed{opacity:.42;pointer-events:none}@media (min-width:960px){.player-grid{grid-template-columns:minmax(0,1.4fr) minmax(340px,.6fr)}}.player-card{background:rgba(23,35,45,.82);border:1px solid rgba(148,163,184,.16);border-radius:8px;padding:16px;box-shadow:0 24px 70px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.player-card h2{display:flex;align-items:center;gap:6px;margin:0 0 12px;font-size:15px}.main-player{align-self:start;display:grid;grid-gap:16px;gap:16px}.youtube-visual{min-width:200px;min-height:200px;background:#000}.youtube-visual,.youtube-visual iframe,.youtube-visual>div{width:100%;height:100%}.player-start{max-width:720px;margin:10px auto 18px;padding:28px 18px;display:grid;justify-items:center;text-align:center;border:1px solid rgba(148,163,184,.18);border-radius:8px;background:rgba(255,255,255,.08);box-shadow:0 24px 70px rgba(0,0,0,.24);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.player-start h2{max-width:560px;margin:0;font-size:clamp(26px,7vw,54px);line-height:1.02;letter-spacing:0}.player-start p:not(.eyebrow){max-width:560px;margin:14px 0 22px;color:#b7c2cf;line-height:1.55}.start-orb{width:74px;height:74px;display:grid;place-items:center;margin-bottom:18px;border-radius:50%;background:#f8fafc;color:#0b1118}.transport{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));grid-gap:8px;gap:8px}.stat-grid div{min-width:0;padding:12px;border-radius:8px;background:rgba(255,255,255,.08)}.stat-grid strong{display:block;font-size:18px;overflow-wrap:anywhere}.stat-grid span{color:#9aa8b6;font-size:12px}.admin-shell{max-width:1120px;margin:0 auto;padding:18px}