:root{color-scheme:dark;font-family:Inter,"Segoe UI",Arial,sans-serif;--bg:#15171a;--sidebar:#1b1d21;--panel:#202328;--panel-alt:#292d33;--input:#181a1e;--line:#383c43;--text:#f5f6f8;--muted:#b6bbc3;--subtle:#89909a;--accent:#f4f5f7;--accent-text:#17191d;--hover:#343941;--danger:#ffb6bb;--danger-hover:#782d37;--shadow:#0003}
:root[data-theme=light]{color-scheme:light;--bg:#f1f2f4;--sidebar:#fff;--panel:#fff;--panel-alt:#f0f2f5;--input:#f8f9fa;--line:#d7dbe0;--text:#20242a;--muted:#555d67;--subtle:#747d88;--accent:#23272d;--accent-text:#fff;--hover:#e8ebef;--danger:#9b2a37;--danger-hover:#fce4e6;--shadow:#15171a12}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}a{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--text);outline-offset:2px}[hidden]{display:none!important}
.app-layout{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100vh}.sidebar{display:flex;flex-direction:column;position:sticky;top:0;height:100vh;padding:25px 15px;border-right:1px solid var(--line);background:var(--sidebar)}.brand{display:flex;align-items:center;gap:11px;padding:4px 9px;text-decoration:none;font-size:15px;font-weight:900;letter-spacing:.06em;white-space:nowrap}.brand-icon{display:grid;place-items:center;width:37px;height:37px;border-radius:9px;background:var(--accent);color:var(--accent-text);font-size:25px}.sidebar-label{margin:46px 12px 12px;color:var(--subtle);font-size:10px;font-weight:850;letter-spacing:.16em}.side-nav,.sidebar-bottom{display:grid;gap:6px}.sidebar-bottom{margin-top:auto;padding-top:12px;border-top:1px solid var(--line)}.nav-item{display:flex;align-items:center;gap:12px;width:100%;min-height:43px;padding:0 13px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--muted);font-size:12px;font-weight:750;text-align:left;text-decoration:none}.nav-item span:first-child{font-size:17px}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{border-color:var(--line);background:var(--panel-alt);color:var(--text)}.workspace{min-width:0;padding:0 clamp(18px,3vw,42px) 24px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:112px;border-bottom:1px solid var(--line);margin-bottom:24px}.topbar h1{margin:0;font-size:clamp(28px,3vw,38px);letter-spacing:-.05em}.header-note{color:var(--muted);font-size:12px;text-align:right}.eyebrow{margin:0 0 7px;color:var(--subtle);font-size:10px;font-weight:850;letter-spacing:.15em}h2{margin:0;font-size:23px;letter-spacing:-.04em}p{margin-top:0}.section-copy{margin:13px 0 21px;color:var(--muted);font-size:12px;line-height:1.65}.panel{min-width:0;padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--panel);box-shadow:0 12px 32px var(--shadow)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.small-pill{padding:7px 10px;border:1px solid var(--line);border-radius:99px;color:var(--muted);font-size:10px;font-weight:750;white-space:nowrap}.request-layout{display:grid;grid-template-columns:minmax(290px,.78fr) minmax(360px,1.22fr);gap:17px}.data-panel{display:flex;flex-direction:column;height:clamp(540px,calc(100vh - 165px),760px);min-height:0}.request-form-panel{height:fit-content;min-height:540px}form{display:grid;gap:15px}form label{display:grid;gap:7px;color:var(--text);font-size:12px;font-weight:700}.title-field{position:relative}input[type=text],input[type=password],input[type=search],form input{width:100%;height:43px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--input);color:var(--text)}input::placeholder{color:var(--subtle)}input:focus{outline:0;border-color:var(--muted)}.search{display:flex;align-items:center;gap:7px;width:100%;padding-left:12px;border:1px solid var(--line);border-radius:9px;background:var(--input);color:var(--subtle)}.search:focus-within{border-color:var(--muted)}.search input{border:0!important;background:transparent!important}.full-search{flex:none;margin:0 0 14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:0 13px;border:1px solid var(--line);border-radius:9px;background:var(--panel-alt);color:var(--text);font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}.button:not(:disabled):hover{background:var(--hover);border-color:var(--muted);color:var(--text)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.button.primary:not(:disabled):hover{opacity:.82;background:var(--accent);color:var(--accent-text)}.button.subtle{background:transparent}.button.danger{color:var(--danger);border-color:var(--danger)}.button.danger:not(:disabled):hover{background:var(--danger-hover);color:var(--danger);border-color:var(--danger)}.form-message,.admin-message{min-height:18px;margin:0;color:var(--muted);font-size:11px}.form-message.error,.admin-message.error{color:var(--danger)}.list-scroll,.admin-table-scroll{flex:1;min-height:0;overflow:auto}.empty{padding:35px 12px;color:var(--muted);font-size:12px;text-align:center}.pages{display:flex;align-items:center;justify-content:center;gap:13px;flex:none;min-height:57px;margin-top:auto;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);font-size:11px}.request-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 0;border-top:1px solid var(--line)}.request-rank{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:var(--panel-alt);color:var(--muted);font-size:12px;font-weight:850}.request-main{min-width:0}.request-main strong,.request-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-main strong{font-size:12px}.request-main small{margin-top:4px;color:var(--muted);font-size:10px}.vote-button{display:flex;align-items:center;gap:5px;min-width:56px;height:34px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel-alt);color:var(--text);font-size:11px;font-weight:800}.vote-button:not(:disabled):hover{background:var(--hover)}.vote-button.voted{background:var(--accent);color:var(--accent-text)}.vote-button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.request-status{display:inline-block;margin-left:6px;color:var(--subtle);font-size:10px}.catalog-columns,.song-row{display:grid;grid-template-columns:76px minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:14px;padding:10px 12px}.catalog-columns{color:var(--subtle);font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.song-row,.added-row{border-top:1px solid var(--line);font-size:12px}.song-row:nth-child(even),.added-row:nth-child(even),.admin-row:nth-child(even){background:var(--panel-alt)}.song-number{font-weight:850}.song-title{font-weight:750}.song-artist{color:var(--muted)}.added-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 12px}.added-row strong,.added-row small{display:block}.added-row small{margin-top:4px;color:var(--muted)}.added-date{color:var(--muted);font-size:10px;white-space:nowrap}.suggestions{position:absolute;z-index:10;top:calc(100% + 5px);left:0;right:0;max-height:300px;overflow:auto;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);box-shadow:0 20px 35px var(--shadow)}.suggestions-heading{display:block;padding:8px;color:var(--subtle);font-size:10px;font-weight:850;text-transform:uppercase}.suggestion-row{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px;width:100%;padding:9px;border:0;border-radius:7px;background:transparent;color:var(--text);text-align:left}.suggestion-row:hover{background:var(--hover)}.suggestion-number{font-size:11px;font-weight:850}.suggestion-row strong,.suggestion-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-row strong{font-size:11px}.suggestion-row small{margin-top:3px;color:var(--muted);font-size:10px}
.admin-login{max-width:460px;margin:45px auto;padding:28px}.admin-login h2{font-size:30px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:18px}.stat{padding:20px}.stat strong{display:block;font-size:32px;letter-spacing:-.04em}.stat small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.overview-panel{min-height:275px}.overview-panel h2{font-size:30px}.overview-panel .section-copy{max-width:570px}.overview-actions{display:flex;flex-wrap:wrap;gap:9px}.admin-panel{height:clamp(540px,calc(100vh - 165px),760px)}.admin-table-scroll{overflow:auto}.admin-head,.admin-row{display:grid;align-items:center;gap:12px;min-width:790px;padding:11px 12px}.admin-head{color:var(--subtle);font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.admin-row{border-top:1px solid var(--line);font-size:11px}.ranking-grid{grid-template-columns:42px minmax(150px,1.5fr) minmax(100px,1fr) minmax(120px,1fr) 55px 92px}.database-grid{grid-template-columns:22px minmax(140px,1.4fr) minmax(95px,.8fr) minmax(125px,1fr) 45px 70px 96px}.added-grid{grid-template-columns:minmax(160px,1.5fr) minmax(110px,1fr) 100px 65px 95px}.admin-row strong,.admin-row small{display:block}.admin-row small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.3}.admin-row .button{min-height:30px;padding:0 8px;font-size:10px}.admin-row input[type=checkbox],.admin-head input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--text)}.status-pill{display:inline-block;padding:4px 6px;border:1px solid var(--line);border-radius:99px;font-size:10px;text-transform:capitalize}.admin-danger-tools{display:flex;flex-wrap:wrap;gap:8px;flex:none;padding-top:13px;border-top:1px solid var(--line)}.admin-message{margin-top:12px}
@media(max-width:1120px){.request-layout{grid-template-columns:1fr}.request-form-panel{min-height:0}.ranking-panel{height:620px}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.app-layout{display:block}.sidebar{position:relative;z-index:2;height:auto;padding:12px 14px;border-right:0;border-bottom:1px solid var(--line)}.sidebar-label{display:none}.brand{margin-bottom:9px}.side-nav{display:flex;overflow-x:auto;white-space:nowrap}.side-nav .nav-item{width:auto;min-width:max-content}.sidebar-bottom{display:flex;gap:6px;margin:8px 0 0;padding:8px 0 0}.sidebar-bottom .nav-item{width:auto;min-height:34px}.workspace{padding:0 14px 25px}.topbar{min-height:95px;margin-bottom:15px}.header-note{display:none}.data-panel,.admin-panel{height:clamp(470px,calc(100vh - 215px),700px)}.request-form-panel{min-height:0}.request-layout{gap:14px}.small-pill{display:none}}@media(max-width:480px){.panel{padding:14px}.request-main small{white-space:normal}.catalog-columns,.song-row{grid-template-columns:55px minmax(0,1fr);gap:8px}.catalog-columns span:last-child{display:none}.song-artist{grid-column:2;margin-top:-5px;font-size:10px}.added-row{align-items:flex-start}.pages{gap:7px}.button{padding:0 9px}}
.confirm-dialog{width:min(420px,calc(100% - 30px));padding:24px;border:1px solid var(--line);border-radius:15px;background:var(--panel);color:var(--text);box-shadow:0 22px 80px #0009}.confirm-dialog::backdrop{background:#000a}.dialog-actions{display:flex;justify-content:flex-end;gap:9px}.confirm-dialog .section-copy{margin:13px 0 22px}
.added-grid{grid-template-columns:minmax(170px,1.7fr) minmax(120px,1fr) 110px 100px}
#databaseView .admin-danger-tools{order:1;margin-top:auto}#databaseView .pages{order:2;margin-top:0}
.topbar,.workspace main{width:min(100%,1440px);margin-left:auto;margin-right:auto}
.app-layout{max-width:1800px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}@media(max-width:1800px){.app-layout{border-left:0;border-right:0}}
body{font-size:14px}.brand{font-size:17px}.nav-item{font-size:13px}.eyebrow{font-size:11px}.topbar h1{font-size:clamp(31px,3vw,42px)}h2{font-size:25px}.section-copy{font-size:13px}.form-message,.admin-message{font-size:12px}form label{font-size:13px}.button{font-size:12px}.request-main strong{font-size:14px}.request-main small{font-size:11px}.song-row,.added-row,.admin-row{font-size:13px}.empty{font-size:13px}.pages{font-size:12px}.admin-head,.catalog-columns{font-size:11px}

/* Unified interface: stable data surfaces and accessible controls. */
:root{--accent:#b8eb86;--accent-text:#172510;--line:#343b36;--panel:#202622;--sidebar:#191e1b;--panel-alt:#262e28;--input:#191f1b;--hover:#323e34;--muted:#b9c4bb;--subtle:#98a69b}
:root[data-theme=light]{--bg:#f4f6f2;--sidebar:#fff;--panel:#fff;--panel-alt:#f4f7f1;--input:#fafbf9;--line:#dee5da;--text:#202b23;--muted:#59665c;--subtle:#657269;--accent:#315c29;--accent-text:#fff;--hover:#e9f0e4;--shadow:#23371d08}
body{line-height:1.5}.app-layout{grid-template-columns:224px minmax(0,1fr);max-width:none}.sidebar{padding:30px 18px}.brand{letter-spacing:.08em}.brand-icon{border-radius:12px}.sidebar-label{margin-top:42px}.nav-item{min-height:46px;font-weight:600;border-radius:8px}.nav-item.active{background:var(--panel-alt);border-color:var(--line);box-shadow:inset 3px 0 var(--accent)}.nav-item:disabled{opacity:.45}.sidebar-bottom{gap:5px;padding-top:18px}.workspace{padding:0 clamp(20px,3vw,48px) 28px}.topbar{min-height:110px;margin-bottom:26px}.topbar h1{font-size:30px;letter-spacing:-.04em;font-weight:700}.header-note{font-size:13px}.eyebrow{font-size:10px;letter-spacing:.13em;color:var(--subtle)}h2{font-size:23px;letter-spacing:-.035em}.panel{padding:24px;border-radius:16px;box-shadow:0 4px 18px var(--shadow)}.section-title{flex-shrink:0;margin-bottom:18px}.section-copy{font-size:14px;line-height:1.7}.small-pill{font-size:11px;font-weight:500;background:var(--panel-alt)}
.welcome-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;margin-bottom:22px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(110deg,var(--panel-alt),var(--panel))}.welcome-banner h2{font-size:28px}.welcome-banner p:last-child{margin:7px 0 0;color:var(--muted);font-size:14px}.welcome-banner .button{flex-shrink:0}.request-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);gap:22px;align-items:start}.request-form-panel{min-height:0}.request-form-panel .button{margin-top:4px;min-height:46px}.request-form-panel form{gap:18px}form label{font-size:13px;font-weight:600}input[type=text],input[type=password],input[type=search],form input{height:46px;font-size:14px}.button{min-height:40px;padding:0 15px;font-size:12px;font-weight:600;border-radius:8px;transition:background .15s,border-color .15s}.button:disabled{opacity:.4;cursor:not-allowed}.button.primary:not(:disabled):hover{opacity:1;filter:brightness(.94)}.search{border-radius:9px}.search input{min-width:0}.full-search{margin-bottom:16px}.search:focus-within{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,input:focus-visible,a:focus-visible,[tabindex="0"]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.data-panel,.admin-panel{height:clamp(480px,calc(100dvh - 168px),850px);overflow:hidden;gap:0}.ranking-panel{height:clamp(480px,calc(100dvh - 316px),720px)}.list-scroll,.admin-table-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.pages{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:12px;min-height:68px;margin-top:0;padding-top:16px;flex-shrink:0;background:var(--panel);font-size:12px}.result-count{font-size:12px;color:var(--muted)}.pages>span:not(.result-count){text-align:center;white-space:nowrap;min-width:82px;font-variant-numeric:tabular-nums}.pages .button{min-width:76px}.request-row{min-height:76px;padding:14px 5px;gap:13px}.request-main strong{font-size:14px;font-weight:600;white-space:normal;overflow-wrap:anywhere}.request-main small{font-size:12px;line-height:1.5;white-space:normal;overflow-wrap:anywhere}.request-rank{background:transparent;color:var(--subtle);font-variant-numeric:tabular-nums}.vote-button{height:40px;min-width:62px;justify-content:center;font-size:12px}.catalog-columns{flex-shrink:0;background:var(--panel-alt);border-radius:8px 8px 0 0}.song-row{min-height:56px}.song-row>span,.admin-row>*,.added-row strong,.added-row small{min-width:0;overflow-wrap:anywhere}.song-number{color:var(--muted);font-weight:500;font-variant-numeric:tabular-nums}.song-title{font-weight:600}.song-row:hover,.admin-row:hover,.request-row:hover{background:var(--hover)}.added-row{min-height:70px}.added-date{font-size:12px}.empty{display:grid;place-content:center;min-height:190px;padding:32px;line-height:1.8}.admin-head{position:sticky;top:0;z-index:1;min-height:44px;background:var(--panel-alt);border-bottom:1px solid var(--line);color:var(--muted);font-size:10px}.admin-row{min-height:70px;font-size:13px}.admin-row strong{font-weight:600}.admin-row small{font-size:11px}.admin-row .button{min-height:36px;font-size:11px}.admin-head,.admin-row{padding:12px 14px;gap:16px}.ranking-grid{grid-template-columns:40px minmax(160px,1.5fr) minmax(110px,1fr) minmax(130px,1fr) 45px 100px}.database-grid{grid-template-columns:22px minmax(160px,1.4fr) minmax(110px,1fr) minmax(130px,1fr) 45px 75px 100px;min-width:880px}.added-grid{grid-template-columns:minmax(170px,1.7fr) minmax(120px,1fr) 110px 100px;min-width:600px}.status-pill{justify-self:start;padding:4px 9px;font-size:11px}.status-added{color:var(--accent);background:var(--panel-alt)}:root[data-theme=light] .status-added{color:#315c29;background:#edf6e7}.admin-danger-tools{padding:12px 0;gap:8px}.admin-danger-tools .button{min-height:34px;font-size:11px}#databaseView .admin-danger-tools{margin-top:0}.stats{gap:18px;margin-bottom:22px}.stat{display:flex;flex-direction:column-reverse;gap:12px;padding:24px}.stat strong{font-size:36px;font-weight:650;line-height:1.2;font-variant-numeric:tabular-nums}.stat small{font-size:13px;margin:0}.stat:nth-child(2){border-color:var(--accent)}.overview-panel{min-height:260px;padding:32px;background:linear-gradient(110deg,var(--panel-alt),var(--panel))}.overview-badge{display:inline-block;margin-bottom:18px;font-size:10px;letter-spacing:.14em;color:var(--muted)}.overview-panel h2{font-size:32px}.overview-panel .section-copy{max-width:660px}.overview-actions{margin-top:24px;gap:12px}.workflow-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}.workflow-cards button{padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);text-align:left}.workflow-cards button:hover{border-color:var(--accent);background:var(--panel-alt)}.workflow-cards span{display:block;color:var(--subtle);font-size:10px;letter-spacing:.12em;margin-bottom:18px}.workflow-cards strong{font-size:17px;font-weight:600}.workflow-cards p{font-size:13px;color:var(--muted);line-height:1.7;margin:10px 0 22px}.workflow-cards b{font-size:12px;font-weight:600;color:var(--accent)}.admin-login{margin:60px auto;padding:32px}.skip-link{position:fixed;top:-100px;left:20px;z-index:100;background:var(--accent);color:var(--accent-text);padding:12px 20px;border-radius:8px}.skip-link:focus{top:12px}
@media(min-width:1800px){.topbar,.workspace main{max-width:1520px}}
@media(max-width:1150px){.app-layout{grid-template-columns:195px minmax(0,1fr)}.workspace{padding-left:24px;padding-right:24px}.request-layout{grid-template-columns:minmax(240px,.8fr) minmax(0,1.2fr)}.panel{padding:20px}.pages{gap:8px}.pages .button{min-width:62px;padding:0 10px}.result-count{grid-column:1/-1}.pages{grid-template-columns:1fr auto 1fr;min-height:96px;padding-top:12px;row-gap:8px}.pages>.button:last-child{justify-self:end}.pages>.button:first-of-type{justify-self:start}.result-count{text-align:center}.workflow-cards{gap:12px}.workflow-cards button{padding:18px}}
@media(max-width:900px){.request-layout{grid-template-columns:1fr}.request-form-panel form{grid-template-columns:1fr 1fr}.title-field,.request-form-panel .form-message{grid-column:1/-1}.request-form-panel .button{align-self:end}.ranking-panel{height:560px}.welcome-banner{padding:22px}.welcome-banner h2{font-size:24px}.workflow-cards{grid-template-columns:1fr}.workflow-cards p{margin-bottom:12px}}
@media(max-width:760px){.app-layout{display:block}.sidebar{height:auto;padding:14px 16px}.brand{font-size:15px;margin-bottom:12px}.brand-icon{width:32px;height:32px}.side-nav{gap:4px}.side-nav .nav-item{font-size:12px;min-height:42px;padding:0 11px}.sidebar-bottom{padding-top:10px;margin-top:10px;flex-wrap:wrap}.sidebar-bottom .nav-item{font-size:12px;min-height:36px}.workspace{padding:0 16px 24px}.topbar{min-height:90px;margin-bottom:18px}.topbar h1{font-size:27px}.welcome-banner{align-items:flex-start;flex-direction:column;gap:16px;margin-bottom:18px}.welcome-banner p:last-child{font-size:13px}.panel{padding:18px;border-radius:12px}.data-panel,.admin-panel{height:580px;max-height:none}.stats{gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat{padding:18px}.stat strong{font-size:30px}.overview-panel{padding:24px}.overview-panel h2{font-size:26px}.small-pill{display:inline-block}.pages{grid-template-columns:1fr auto 1fr;min-height:96px}.admin-danger-tools{gap:6px}.admin-danger-tools .button{padding:0 8px;font-size:10px}}
@media(max-width:480px){.request-form-panel form{grid-template-columns:1fr}.section-title{align-items:flex-start;flex-wrap:wrap;gap:8px}h2{font-size:21px}.small-pill{font-size:10px}.catalog-columns,.song-row{grid-template-columns:58px minmax(0,1fr)}.song-row{padding:12px 8px}.song-artist{font-size:12px}.request-row{grid-template-columns:25px minmax(0,1fr) auto;gap:8px}.request-rank{width:24px}.vote-button{min-width:53px}.overview-actions .button{width:100%}.added-row{flex-direction:column;gap:8px}.pages{gap:8px}.data-panel,.admin-panel{height:560px}.admin-login{margin:26px auto}.admin-danger-tools{display:grid;grid-template-columns:1fr 1fr}.admin-danger-tools #deleteSelected{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Public landing page. Admin keeps its independent dashboard layout. */
.public-site{--landing-ink:#d8f5a4;background:var(--bg)}.public-site .app-layout{display:block;max-width:1920px;margin:auto;border:0}.landing-nav{height:104px;max-width:1664px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.landing-nav .brand{padding:0;font-size:19px}.landing-nav nav{display:flex;align-items:center;gap:32px}.landing-nav .nav-item{width:auto;padding:8px 0;border-radius:0;font-size:14px;background:none;border:0;box-shadow:none;min-height:44px}.landing-nav .nav-item.active{color:var(--text);box-shadow:0 2px var(--accent)}.landing-nav .theme-toggle{font-size:12px;min-width:112px}.public-site .workspace{padding:0 64px 28px}.public-site .workspace main,.public-site .topbar{max-width:1664px;width:100%}.public-site .topbar{min-height:104px;margin-bottom:24px}.landing-hero{min-height:680px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:60px;padding:42px 0 38px}.hero-kicker{font-size:11px;font-weight:650;letter-spacing:.18em;display:flex;align-items:center;gap:10px;color:var(--muted);margin-bottom:26px}.hero-kicker span,.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);display:inline-block}.hero-copy h1{font-size:clamp(66px,5.65vw,108px);font-weight:600;line-height:.99;letter-spacing:-.065em;margin:0 0 28px}.hero-copy h1 em{color:var(--landing-ink);font-family:Georgia,serif;font-weight:400}.hero-description{max-width:475px;font-size:16px;line-height:1.8;color:var(--muted);margin-bottom:28px}.hero-actions{display:flex;gap:28px;align-items:center}.hero-actions .button{min-height:52px;font-size:14px;padding:0 24px;border-radius:7px}.hero-actions .button span{margin-left:18px;font-size:21px}.hero-secondary{border:0;background:none;color:var(--text);font:inherit;font-size:14px;padding:14px 0}.hero-secondary span{margin-left:12px}.hero-secondary:hover{text-decoration:underline}.hero-footnote{font-size:12px;color:var(--subtle);margin:21px 0 0}.record-scene{position:relative;height:570px;width:100%;isolation:isolate;display:flex;align-items:center}.record-orbit{position:absolute;width:540px;height:540px;border:1px solid var(--line);border-radius:50%;right:0;top:10px}.record-orbit:after{content:'';position:absolute;inset:28px;border:1px dashed var(--line);border-radius:50%}.album-sleeve{width:365px;height:440px;padding:26px;position:relative;z-index:2;transform:rotate(-9deg);background:#d5ebaa;color:#273822;box-shadow:10px 24px 50px #0004;display:flex;flex-direction:column;justify-content:space-between;background-image:radial-gradient(ellipse at 110% 10%,#f2f4cf 0,transparent 55%),repeating-linear-gradient(0deg,transparent 0px,transparent 3px,#364f2410 4px)}.album-edition{font-size:8px;font-weight:700;letter-spacing:.16em}.album-wordmark{font-size:76px;line-height:.91;font-weight:850;letter-spacing:-.065em}.album-wordmark i{font-family:Georgia,serif;font-weight:400}.album-bottom{display:flex;align-items:center;justify-content:space-between}.album-bottom>span:first-child{font-size:9px;line-height:1.5;letter-spacing:.15em;font-weight:700}.album-star{font-size:60px;line-height:1}.vinyl{position:absolute;width:455px;height:455px;right:0;top:55px;border-radius:50%;background:repeating-radial-gradient(circle,#191d1a 0px,#191d1a 2px,#323833 3px,#161a18 4px);box-shadow:14px 22px 40px #0004;display:grid;place-items:center}.vinyl:after{content:'';position:absolute;inset:0;border-radius:50%;background:conic-gradient(transparent 0deg,#ffffff18 50deg,transparent 95deg,transparent 170deg,#ffffff15 230deg,transparent 280deg);pointer-events:none}.vinyl-label{width:155px;height:155px;border-radius:50%;background:#df9671;color:#28261d;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;transform:rotate(18deg)}.vinyl-label span{font-size:12px;letter-spacing:.16em;font-weight:800}.vinyl-label b{font-size:35px;line-height:1}.vinyl-label small{font-size:7px;letter-spacing:.1em}.record-caption{position:absolute;bottom:5px;right:35px;font-size:12px;color:var(--muted);display:flex;align-items:center;gap:9px}.landing-bottom{display:grid;grid-template-columns:1.15fr 1fr 1fr 1fr;border-top:1px solid var(--line);padding:32px 0 18px;gap:0}.landing-intro{padding-right:25px}.landing-intro h2{font-size:23px;font-weight:500;line-height:1.4;margin-top:12px}.landing-feature{border:0;border-left:1px solid var(--line);padding:3px 30px;background:none;text-align:left;color:var(--text)}.landing-feature>span{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.12em;color:var(--subtle);margin-bottom:19px}.landing-feature b{font-size:17px;font-weight:400}.landing-feature strong{font-size:17px;font-weight:550}.landing-feature p{color:var(--muted);font-size:13px;line-height:1.8;margin:9px 0 0}.landing-feature:hover strong{color:var(--accent)}.public-site .ranking-panel{height:clamp(480px,calc(100dvh - 270px),760px)}.public-site .data-panel{height:clamp(480px,calc(100dvh - 270px),760px)}:root[data-theme=light] .public-site{--landing-ink:#456530}
@media(min-width:1600px){.landing-hero{min-height:710px}.record-scene{max-width:670px;margin-left:auto}.album-sleeve{width:395px;height:470px}.album-wordmark{font-size:84px}.vinyl{width:480px;height:480px;top:45px}.landing-nav{margin-left:128px;margin-right:128px}.public-site .workspace{padding-left:128px;padding-right:128px}}
@media(max-width:1200px){.landing-nav{margin:0 40px}.public-site .workspace{padding-left:40px;padding-right:40px}.landing-hero{gap:20px;min-height:620px}.record-scene{height:470px}.album-sleeve{width:280px;height:350px;padding:20px}.album-wordmark{font-size:60px}.vinyl{width:340px;height:340px;top:60px}.record-orbit{width:400px;height:400px}.hero-description{font-size:14px}.hero-actions{gap:16px}.landing-nav nav{gap:20px}.landing-feature{padding:3px 20px}.landing-intro h2{font-size:20px}}
@media(max-width:900px){.landing-nav{height:auto;min-height:100px;flex-wrap:wrap;padding:20px 0;gap:18px}.landing-nav nav{order:3;width:100%;justify-content:space-between;gap:12px}.landing-hero{grid-template-columns:1fr;gap:10px;padding-top:45px}.hero-copy h1{font-size:80px}.hero-description{max-width:500px}.record-scene{width:min(100%,550px);margin:0 auto;height:470px}.album-sleeve{width:310px;height:365px}.vinyl{width:370px;height:370px}.record-orbit{width:430px;height:430px}.landing-bottom{grid-template-columns:1fr 1fr;gap:28px}.landing-intro{padding:0}.landing-feature:nth-child(3){border-left:0;padding-left:0}.landing-feature{min-height:145px}}
@media(max-width:520px){.landing-nav{margin:0 22px}.landing-nav .brand{font-size:16px}.landing-nav .nav-item{font-size:11px}.landing-nav .theme-toggle{min-width:90px;padding:0 10px;font-size:11px}.public-site .workspace{padding:0 22px 24px}.hero-copy h1{font-size:67px}.hero-kicker{font-size:9px;letter-spacing:.13em}.hero-actions{align-items:flex-start;flex-direction:column;gap:5px}.hero-actions .button{width:100%;justify-content:space-between}.hero-description{font-size:14px}.record-scene{height:380px;margin-top:20px}.album-sleeve{width:225px;height:290px;padding:17px}.album-wordmark{font-size:49px}.album-edition{font-size:6px}.album-star{font-size:40px}.album-bottom>span:first-child{font-size:7px}.vinyl{width:270px;height:270px;top:49px;right:0}.vinyl-label{width:100px;height:100px}.vinyl-label span{font-size:9px}.vinyl-label small{font-size:5px}.record-orbit{width:300px;height:300px;top:30px}.record-caption{right:0;font-size:10px;bottom:12px}.landing-bottom{grid-template-columns:1fr;gap:22px;padding-top:26px}.landing-feature,.landing-feature:nth-child(3){border-left:0;border-top:1px solid var(--line);padding:22px 0 0;min-height:0}.landing-feature>span{margin-bottom:10px}.landing-feature p br{display:none}.landing-intro h2{font-size:24px}.public-site .data-panel{height:560px}.public-site .topbar{min-height:100px}.public-site .topbar h1{font-size:24px}.public-site .topbar .button{font-size:10px;padding:0 8px}}

/* One focus indicator on the complete search control, including its icon. */
.search input:focus,.search input:focus-visible{outline:none;box-shadow:none}
.search:focus-within{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px}
.home-community{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px;align-items:center;padding:54px 0 64px;border-top:1px solid var(--line)}
.community-intro h2{font-size:clamp(32px,3vw,50px);line-height:1.15;letter-spacing:-.045em;margin:16px 0 22px;font-weight:550}
.community-intro>p:not(.eyebrow){max-width:380px;font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:26px}
.community-intro .button{min-height:48px;padding:0 22px}
#homeCommunitySlot,#requestCommunitySlot{min-width:0}
.public-site .home-community .ranking-panel{height:540px}
#requestListMessage:not([hidden]){padding:10px 0;flex-shrink:0}
@media(max-width:900px){.home-community{grid-template-columns:1fr;gap:28px;padding:36px 0}.community-intro>p:not(.eyebrow){max-width:550px}.public-site .home-community .ranking-panel{height:540px}}
@media(max-width:520px){.home-community{padding:28px 0 36px}.community-intro h2{font-size:34px}.public-site .home-community .ranking-panel{height:520px}}
.search:focus-within{border-color:transparent;outline:2px solid var(--accent);outline-offset:-1px}
/* Authentication view contains only the sign-in panel. */
.admin-site.signed-out .sidebar,.admin-site.signed-out .topbar{display:none}
.admin-site.signed-out .app-layout{display:block}
.admin-site.signed-out .workspace{min-height:100dvh;display:grid;place-items:center;padding:24px}
.admin-site.signed-out .admin-login{width:min(460px,100%);margin:auto}

.presence-line{position:relative;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px;color:var(--muted);margin:16px 0}.presence-line[hidden]{display:none}.presence-info{position:static}.presence-info summary{display:grid;place-items:center;list-style:none;width:16px;height:16px;border:1px solid var(--subtle);border-radius:50%;cursor:pointer;font-size:10px;line-height:1;font-weight:600;color:var(--muted)}.presence-info summary::-webkit-details-marker{display:none}.presence-info p{position:absolute;bottom:32px;left:0;width:min(290px,65vw);padding:14px;border-radius:10px;background:var(--panel);color:var(--muted);border:1px solid var(--line);box-shadow:0 5px 24px #0004;z-index:10;font-size:13px;line-height:1.5;margin:0}.presence-info:not([open]) p{display:none}.presence-info:hover p,.presence-info:focus-within p{display:block}.presence-info summary:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.presence-number{color:#b8eb86;font-weight:750;font-variant-numeric:tabular-nums}:root[data-theme=light] .presence-number{color:#315c29}.presence-divider{padding:0 3px;color:var(--subtle)}

.review-actions{display:flex;flex-direction:column;gap:6px}.review-actions .button{white-space:normal;padding:8px;font-size:11px}.duplicate-filter{display:flex;align-items:center;gap:8px;padding:12px 0;font-size:13px}.duplicate-filter input{width:17px;height:17px;accent-color:var(--accent)}.duplicate-notice{margin-top:8px;font-size:11px;color:var(--accent)}.duplicate-notice summary{cursor:pointer}.review-status-filter{display:flex;align-items:center;gap:10px;font-size:13px}.review-status-filter select{padding:8px;border-radius:8px;background:var(--surface);color:var(--text);border:1px solid var(--line)}.admin-danger-tools{flex-wrap:wrap}.status-approved{color:#46752f}.status-rejected{color:#bd5555}
.request-notice{box-sizing:border-box;width:min(460px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;padding:30px;border:1px solid var(--line);border-radius:20px;background:var(--panel);color:var(--text);box-shadow:0 24px 90px #0006}.request-notice::backdrop{background:#0009;backdrop-filter:blur(4px)}.request-notice .eyebrow{margin:0 0 12px;color:var(--accent)}.request-notice h2{font-size:25px;line-height:1.2;margin:0 0 14px}.request-notice #requestNoticeText{font-size:15px;line-height:1.7;color:var(--muted);margin:0 0 24px}.request-notice .button{width:100%;justify-content:center;min-height:44px}.request-notice.request-limit{border-top:4px solid var(--accent)}

.access-pause{box-sizing:border-box;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;border:0;padding:24px;background:var(--bg);color:var(--text);overflow:auto}.access-pause[open]{display:flex;align-items:safe center;justify-content:center}.access-pause::backdrop{background:var(--bg)}.access-pause-card{width:min(100%,480px);padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--panel)}.access-pause h2{font-size:28px;line-height:1.2}.access-pause p{font-size:14px;color:var(--muted);line-height:1.7}.access-pause .eyebrow{color:var(--accent)}#accessPauseTimer{display:block;font-size:44px;color:var(--accent);font-variant-numeric:tabular-nums;margin:24px 0}.access-pause .button{width:100%;justify-content:center}.request-flags{border-left:3px solid #c99844;padding-left:8px;margin-top:9px;color:var(--text)}.request-flags>strong{font-size:11px;color:#c99844}.request-flags small{white-space:normal}@media(max-width:480px){.access-pause{padding:16px}.access-pause-card{padding:22px}}
.access-pause-card{box-sizing:border-box;min-width:0}.access-pause{width:100%}

/* Compact moderation rows; details expand only on demand. */
.database-grid{grid-template-columns:20px minmax(140px,1.4fr) minmax(100px,1fr) minmax(100px,.8fr) 145px 40px 65px 155px;min-width:920px}
.admin-head,.admin-row{padding:8px 12px;gap:12px}.admin-row{min-height:60px;font-size:12px}
.review-actions{flex-direction:row;flex-wrap:wrap;gap:5px}.review-actions .button,.request-ip .button{min-height:30px;padding:4px 8px;font-size:11px;white-space:nowrap}
.duplicate-filter{padding:5px 0;margin:0;font-size:12px}.request-ip{display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:3px 0}.request-ip small{width:100%;font-variant-numeric:tabular-nums}.request-flags summary{cursor:pointer;font-size:11px}

.bans-grid{grid-template-columns:20px minmax(150px,1.2fr) minmax(150px,1.2fr) minmax(130px,1fr) minmax(130px,1fr) 75px;min-width:850px}

/* Neutral admin palette and consistent table controls. */
body.admin-site{--bg:#141414;--sidebar:#191919;--panel:#202020;--panel-alt:#292929;--input:#181818;--line:#3b3b3b;--text:#f5f5f5;--muted:#bdbdbd;--subtle:#999;--accent:#ededed;--accent-text:#171717;--hover:#343434;--danger:#dedede;--danger-hover:#404040;--shadow:#0003}
:root[data-theme=light] body.admin-site{--bg:#f2f2f2;--sidebar:#fff;--panel:#fff;--panel-alt:#f1f1f1;--input:#fafafa;--line:#d4d4d4;--text:#202020;--muted:#555;--subtle:#707070;--accent:#252525;--accent-text:#fff;--hover:#e8e8e8;--danger:#333;--danger-hover:#e1e1e1;--shadow:#0000000c}
.admin-site .table-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 14px;flex-shrink:0}
.admin-site .duplicate-filter{display:inline-flex;align-items:center;gap:8px;margin:0;padding:8px 11px;background:var(--input);border:1px solid var(--line);border-radius:7px;font-size:12px;cursor:pointer;line-height:1.4}
.admin-site input[type=checkbox]{appearance:auto;width:16px;height:16px;flex:0 0 16px;padding:0;margin:0;accent-color:var(--accent)}
.admin-site .admin-head,.admin-site .admin-row{gap:12px;padding:10px 12px}
.admin-site .admin-head>input,.admin-site .admin-row>input{justify-self:center}
.admin-site .admin-head{border-radius:7px 7px 0 0;min-height:42px}
.admin-site .admin-row{min-height:64px;align-items:center}
.admin-site .admin-danger-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 0 0;flex-shrink:0}
.admin-site .selection-actions,.admin-site .table-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.admin-site .table-actions{padding-left:12px;border-left:1px solid var(--line)}
.admin-site .admin-danger-tools .button{min-height:36px;padding:7px 11px;white-space:normal;text-align:center}
.admin-site .status-approved,.admin-site .status-rejected,.admin-site .status-added{color:var(--text);background:var(--panel-alt)}
.admin-site .request-flags{color:var(--muted);border-color:var(--line);background:var(--panel-alt)}
.admin-site .request-flags strong,.admin-site .request-flags small{color:var(--muted)}
.admin-site .review-status-filter{margin-bottom:12px}.admin-site .review-status-filter select{background:var(--input);border-color:var(--line)}
@media(max-width:1100px){.admin-site .admin-danger-tools{align-items:stretch;flex-direction:column}.admin-site .table-actions{padding:10px 0 0;border-left:0;border-top:1px solid var(--line)}}
