@import url('data:text/css,');
:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;background:#0b0c0c;color:#f3f1eb}*{box-sizing:border-box}body{margin:0}header,footer{max-width:1220px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:30px 36px}header{border-bottom:1px solid #242625}.brand{font-size:22px;font-weight:850;letter-spacing:-1px}.brand-icon{color:#f5a663;font-size:27px;margin-right:6px}.brand small{font-size:9px;letter-spacing:1.7px;color:#7d817d;margin-left:12px}.tag,.count{font-size:10px;letter-spacing:1.5px;color:#a9aaa1;border:1px solid #343630;border-radius:30px;padding:8px 12px}main{max-width:1148px;margin:auto;padding:48px 36px 75px}.intro h1{font-size:clamp(42px,6vw,72px);line-height:1.02;letter-spacing:-3.5px;margin:12px 0}.intro h1 span{color:#edaa70}.eyebrow{font-size:10px;font-weight:800;color:#d99a66;letter-spacing:2px;margin:0 0 10px}.sub,.hint{color:#959991;font-size:14px}.notice{margin:26px 0 22px;background:#282117;border:1px solid #59422b;border-radius:10px;padding:13px 16px;font-size:13px;color:#dbc3a9}.notice strong{color:#f7c58b;margin-right:8px}.station,.player,.up-next{border:1px solid #2b2e2b;background:#151716;border-radius:16px}.station{padding:24px;margin-bottom:16px}.station h2,.section-head h2,.history-head h2{margin:0;font-size:22px;letter-spacing:-.6px}form{margin-top:20px}label{display:block;font-size:12px;color:#b2b5ad;margin-bottom:8px}.input-row{display:flex;gap:10px}input{flex:1;min-width:0;background:#0e100f;border:1px solid #3a3d39;border-radius:8px;padding:14px;color:#f0efe9;font:inherit;font-size:14px}button{cursor:pointer;font:inherit}.primary{background:#eda66c;color:#17110b;border:0;border-radius:8px;font-weight:750;padding:0 19px;white-space:nowrap}.primary span{margin-left:14px}.hint{font-size:12px}.example{color:#eeb27e;background:none;border:0;padding:0;text-decoration:underline;text-underline-offset:3px}details{color:#a9ada5;font-size:12px}summary{cursor:pointer;color:#d1d3cc}details p{line-height:1.7;max-width:800px}#status{min-height:32px;padding:3px 0 10px;color:#c5b19c;font-size:13px}.layout{display:grid;grid-template-columns:1fr 1fr;gap:16px}.player,.up-next{padding:24px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.live{font-size:10px;letter-spacing:1.3px;color:#efa569}.art{height:250px;overflow:hidden;border-radius:10px;background:radial-gradient(circle at 33% 45%,#b16c43 0,#854e34 31%,#45312b 66%,#202522 100%);position:relative;display:flex;align-items:center;justify-content:center}.art:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(110deg,transparent,transparent 26px,#ffffff08 27px,#ffffff08 28px)}.disc{height:205px;width:205px;border-radius:50%;background:repeating-radial-gradient(#171917 0,#171917 3px,#292925 4px,#181a18 5px);box-shadow:0 12px 35px #0008;display:grid;place-items:center;border:1px solid #5b554d}.disc span{display:grid;place-items:center;width:70px;height:70px;background:#e8a36d;border-radius:50%;font-weight:900;color:#271b16;font-size:18px}.orange{display:inline!important;color:#271b16!important;width:auto!important;height:auto!important;font-size:18px!important}.art-label{position:absolute;right:17px;bottom:14px;font-size:9px;font-weight:800;letter-spacing:2px;line-height:1.5;color:#ebc7a4}.track{display:flex;align-items:center;justify-content:space-between;margin-top:22px}.track h3{font-size:20px;margin:0 0 5px}.track p{color:#989d95;margin:0;font-size:13px}.track-icon{font-size:23px;color:#df9b66}.progress{display:flex;align-items:center;gap:10px;font-size:11px;color:#858a83;margin-top:24px}.bar{height:3px;background:#3c403b;flex:1;border-radius:5px}.bar div{height:3px;background:#efa76e;width:0}.controls{display:flex;align-items:center;justify-content:center;gap:20px;margin:22px 0 14px}.play{width:53px;height:53px;border-radius:50%;border:0;background:#f0aa72;color:#16120f;font-size:19px}.skip{color:#d1d3cb;border:0;background:none;font-size:22px}.controls button:disabled{opacity:.35;cursor:default}.player-caption{text-align:center;color:#797e76;letter-spacing:1.3px;font-size:9px}.list{display:flex;flex-direction:column}.empty{font-size:13px;color:#777d75;padding:22px 0}.list-item{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid #292c29}.number{color:#74796f;font-size:12px;width:17px}.mini{width:40px;height:40px;border-radius:7px;background:linear-gradient(130deg,#9d674c,#343d36);display:grid;place-items:center;color:#e9c4a4}.song{min-width:0}.song strong,.song small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.song strong{font-size:13px}.song small{font-size:11px;color:#8a8f86;margin-top:5px}.history-head{margin-top:42px}footer{border-top:1px solid #242625;color:#bbbfb7;font-size:14px;font-weight:800}footer span{font-size:9px;letter-spacing:1.4px;color:#777c74;font-weight:600}@media(max-width:700px){header{padding:20px}.brand small{display:none}main{padding:35px 20px}.layout{grid-template-columns:1fr}.input-row{flex-direction:column}.primary{padding:14px}.art{height:220px}footer{padding:25px 20px}footer span:first-of-type{display:none}}

#review{margin-top:22px;border-top:1px solid #343630;padding-top:12px}#review pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#0e100f;border:1px solid #333831;border-radius:8px;padding:12px;color:#eee;font-size:13px}#review .confirmation{display:flex;gap:10px;align-items:center;margin:18px 0}#review .confirmation input{flex:none;width:auto}#confirm-proposal{padding:12px 16px}#confirm-proposal:disabled{opacity:.4;cursor:default}

#catalog-source{background:#0e100f;border:1px solid #3a3d39;border-radius:8px;padding:10px;color:#f0efe9;max-width:100%}
.catalog-fit{margin:14px 0 4px;padding:13px 15px;border:1px solid #383d37;border-radius:9px;background:#101310;color:#d4d8cd;font-size:12px;line-height:1.6;white-space:pre-line}

.seek{flex:1;min-width:0;height:4px;accent-color:#efa76e;padding:0;cursor:pointer}.seek:disabled{cursor:default;opacity:.5}

#music-login input:not([type=checkbox]){display:block;width:100%;margin-bottom:14px}#music-login .confirmation{display:flex;gap:10px;align-items:start;margin:16px 0}#music-login input[type=checkbox]{flex:none;width:auto}.secondary{background:#252824;border:1px solid #50564d;border-radius:8px;color:#e6e9e1;padding:12px 18px}.primary{min-height:43px}

.station > .confirmation{display:flex;gap:10px;align-items:start;margin:16px 0}.station > .confirmation input{flex:none;width:auto}

#music-import-limit{display:block;max-width:110px;margin-top:8px}

.music-panel{margin:22px 0 4px;padding:17px 19px;border:1px solid #434940;border-radius:12px;background:#1b1e1b}
.music-panel[data-state=success]{border-color:#537861;background:#19251e}
.music-panel[data-state=error]{border-color:#936353;background:#2a1d19}
.music-panel[data-state=working]{border-color:#987349;background:#292218}
.music-panel-label{margin:0 0 7px;font-size:10px;font-weight:800;letter-spacing:1.4px;color:#cbb59c}
.music-panel-title{margin:0;color:#f5f3ec;font-size:16px;font-weight:750;line-height:1.4}
.music-panel-detail{margin:6px 0 0;color:#d0d4ca;font-size:13px;line-height:1.5}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f2bd8b;outline-offset:3px}
#music-import:disabled{opacity:.5;cursor:not-allowed}

/* Family view is opt-in at backend startup; /admin retains the full controls. */
.family main{display:flex;flex-direction:column;max-width:1000px;padding-top:34px}
.family .intro,.family .notice,.family #station-builder,.family #keyset-import-section,
.family #catalog-retirement-section,.family #catalog-growth-section,.family #music-progress-section,
.family #prose-section,.family #restore-section,.family #music-admin,.family #music-panel,
.family #family-catalog-growth,
.family #music-origin-field,.family #music-confirm-field,.family #music-logout,
.family #source-label,.family #player-caption,.family #targeted-section,
.family #voice-controls,.family #fixture-voice-controls,.family #background-voice-controls,
.family label:has(> #voice-enabled),.family footer,.family .tag{display:none!important}
.family #music-section{max-width:480px;width:100%;align-self:center;margin:8vh 0 0}
.family #music-section > .eyebrow,.family #music-section > .hint{display:none}
.family #music-section h2{font-size:28px}
.family .layout,.family #family-setup{display:none}
.family.family-signed-in #music-section{display:none}
.family.family-signed-in .layout{display:grid;order:1}
.family.family-signed-in #family-setup{display:block;order:2;margin-top:16px}
.family.family-signed-in #status{order:3}
.family #family-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:end}
.family #family-form label{grid-column:auto}
.family #family-form select,.family #family-name,.family #family-artist-query,.family #family-station-choice{width:100%;background:#0e100f;border:1px solid #3a3d39;border-radius:8px;padding:12px;color:#f0efe9}
.family #background-voice-controls label:has(> #background-voice-enabled){display:none}
.family #family-dj-status:empty{display:none}
.family #family-form .confirmation{display:flex;align-items:center;gap:8px;grid-column:1 / -1}
.family #family-fit-status{grid-column:1 / -1;margin:0}
.family #family-form button{justify-self:start}
.family #family-form .confirmation input{flex:none}
.family #family-signout{margin-top:12px}
.family a{color:#eab383;font-size:13px}
@media(max-width:700px){.family #family-form{display:flex;flex-direction:column;align-items:stretch}.family #family-form .confirmation{margin:0}}
