/* Private studio: the same quiet night-radio vocabulary as the public room. */
body.admin{display:flex;flex-direction:column;position:relative;isolation:isolate;background:var(--ink-000)}
body.admin::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 9% 32%,color-mix(in oklch,var(--accent) 7%,transparent),transparent 45%),linear-gradient(155deg,var(--ink-100),var(--ink-000) 70%)}
body.admin::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-image:linear-gradient(color-mix(in oklch,var(--grey-100) 3%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in oklch,var(--grey-100) 3%,transparent) 1px,transparent 1px);background-size:4rem 4rem;mask-image:linear-gradient(to bottom,transparent 5%,#000 90%);opacity:.28}
.admin header,.admin main,.admin footer{position:relative}
.admin main{flex:1;max-width:80rem;padding-top:2rem;padding-bottom:4rem}
.admin-top{width:100%;max-width:none;padding:1rem clamp(1rem,5vw,3.5rem);background:var(--topbar);border-bottom:1px solid var(--rule);backdrop-filter:blur(14px)}
.admin-top .brand{gap:.85rem;text-decoration:none;font-weight:500}
.admin-top .mark{width:38px;height:38px;border-radius:.2rem;background:var(--ink-300);border:1px solid var(--rule-strong);color:var(--accent);font-family:var(--font-cjk);font-size:1.25rem;line-height:1}
.admin-top .brand-lockup{display:flex;flex-direction:column;gap:.05rem;line-height:1.15}
.admin-top .brand-lockup strong{font-weight:600;font-size:.88rem;letter-spacing:.015em;color:var(--grey-100)}
.admin-top .brand-sub{font-size:var(--text-hud);letter-spacing:.12em;color:var(--grey-500)}
.admin-top nav a{border:1px solid var(--rule);border-radius:.2rem;font-family:var(--font-pixel);font-size:var(--text-hud);letter-spacing:.04em;color:var(--grey-300);padding:.4rem .8rem}
.admin-top nav a:hover{border-color:var(--rule-accent);color:var(--grey-100)}
.admin-title{max-width:42rem;padding:1rem 0 2rem}
.admin-title .studio-eyebrow,.admin .login-index{margin:0 0 1.25rem;font-family:var(--font-pixel);font-size:var(--text-hud);letter-spacing:.11em;text-transform:uppercase;color:var(--grey-400)}
.admin-title .studio-eyebrow span{color:var(--accent);margin:0 .35rem}
.admin-title h1{font-size:clamp(2.2rem,4.3vw,4rem);font-weight:500;line-height:1.12;letter-spacing:-.045em;max-width:11ch;margin:0 0 1rem;color:var(--heading)}
.admin-title>p:not(.studio-eyebrow){max-width:30rem;color:var(--grey-300);line-height:1.65}
.studio-title-rule{display:block;width:4.5rem;height:1px;background:var(--accent);margin-top:2rem;opacity:.7}
.admin .panel{background:var(--panel);border:1px solid var(--rule-strong);border-radius:.45rem;box-shadow:none;padding:1.7rem}
.admin .panel h2{font-weight:550;letter-spacing:-.025em}
.admin .panel h3{font-weight:550}
.admin .panel .muted{color:var(--grey-400);line-height:1.6}
.admin .panel-quiet{background:var(--panel-quiet)}
.admin .login{margin:0;width:100%;max-width:none;padding:2.3rem}
.admin .login-index{color:var(--accent);margin-bottom:2rem}
.admin .login h2{font-size:1.6rem;font-weight:500;margin-bottom:.4rem}
.admin .login .muted{font-size:.84rem;margin:0 0 1.5rem}
.admin label{font-size:.8rem;font-weight:500;letter-spacing:0;color:var(--grey-300)}
.admin input:not([type=checkbox]),.admin textarea,.admin select{background:var(--field);border-color:var(--rule-strong);border-radius:.25rem;color:var(--grey-100)}
.admin input:focus-visible,.admin textarea:focus-visible,.admin select:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)}
.admin input[type=checkbox]{accent-color:var(--accent)}
.admin .actions button:first-child{background:var(--ink-400);border:1px solid var(--tone-200);color:var(--grey-100);border-radius:.25rem}
.admin .actions button:first-child:hover{background:var(--ink-500);border-color:var(--accent);color:var(--grey-100)}
.admin .actions button:not(:first-child),.admin .btn-quiet{background:transparent;border-color:var(--rule-strong);border-radius:.25rem}
.admin .actions button:not(:first-child):hover,.admin .btn-quiet:hover{background:var(--ink-400);border-color:var(--accent)}
.admin .btn-danger{color:var(--danger)}
.admin .btn-danger:hover{border-color:var(--danger-rule);color:var(--danger-strong)}
.admin .login .actions button{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:.4rem}
.admin .login .actions button span{font-size:1.1rem;font-weight:400;color:var(--accent)}
.admin .login-safety{margin:1.4rem 0 0;padding:1rem 0 0;border-top:1px solid var(--rule);font-size:.79rem;color:var(--grey-300)}
.admin .login-security{margin-top:.25rem;color:var(--grey-500)}
.admin .login-security summary{font-size:.74rem;min-height:36px;font-weight:500;color:var(--grey-400)}
.admin .login-security p{font-size:.75rem;color:var(--grey-400)}
body.admin:has(#login-panel:not([hidden])) main{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,27rem);align-content:center;align-items:center;column-gap:clamp(2rem,7vw,7rem);min-height:calc(100dvh - 10rem)}
body.admin:has(#login-panel:not([hidden])) .admin-title{padding:0}
body.admin:has(#login-panel:not([hidden])) #message,body.admin:has(#login-panel:not([hidden])) noscript{grid-column:1/-1}
.admin #message{border-radius:.25rem;background:var(--ink-300);border-color:var(--rule-accent);box-shadow:none}
.admin .section-head{margin:0 0 1.3rem;padding-bottom:1rem;border-bottom:1px solid var(--rule)}
.admin .section-head h2{margin:0;font-size:1.2rem;font-weight:600;letter-spacing:-.015em;color:var(--grey-100)}
.admin .studio-layout{grid-template-columns:12.5rem minmax(0,1fr);gap:1.2rem}
.admin .studio-nav{top:5.5rem;padding:.55rem;border-radius:.35rem;background:var(--ink-200);border-color:var(--rule-strong);box-shadow:none}
.admin .studio-nav-title{margin:0;display:block;padding:.8rem .8rem .6rem;font-family:var(--font-pixel);font-size:var(--text-hud);letter-spacing:.09em;text-transform:uppercase;color:var(--grey-500)}
.admin .studio-nav a{font-size:.81rem;border-radius:.2rem;color:var(--grey-400);border-left:2px solid transparent;padding:.55rem .75rem}
.admin .studio-nav a:hover,.admin .studio-nav a:focus-visible{background:var(--ink-400);border-left-color:var(--accent);color:var(--grey-100)}
.admin .studio-content{gap:1.2rem}
.admin .duo{gap:1.2rem}
.admin .studio-content .panel{scroll-margin-top:6rem}
.admin .studio-content .panel:target{border-color:var(--tone-200)}
.admin .broadcast-panel{background:color-mix(in srgb,var(--ink-200) 93%,var(--tone-100) 7%);border-left:2px solid var(--tone-200)}
.admin .onair-status{align-items:center;gap:1rem}
.admin .onair-status .live-dot{margin:0;box-shadow:0 0 0 4px color-mix(in oklch,var(--accent) 7%,transparent)}
.admin .rows{border-radius:.25rem;background:var(--ink-000)}
.admin .rows li{line-height:1.5}
.admin .rows button{border-radius:.2rem}
.admin .fields{gap:.8rem 1rem}
.admin .fields>div{min-width:0}
.admin details summary{color:var(--grey-200)}
.admin footer{width:min(80rem,100%);font-family:var(--font-pixel);font-size:var(--text-hud);letter-spacing:.05em;color:var(--grey-500);border-top:1px solid var(--rule)}
.admin footer>span:first-child{font-family:var(--font-cjk);font-size:.8rem;color:var(--accent)}
.admin footer .footer-roman{font-family:var(--font-pixel);font-size:var(--text-hud);color:var(--grey-400);margin-left:.5rem}
@media(max-width:1024px){.admin .studio-layout{grid-template-columns:1fr}.admin .studio-nav{position:sticky;top:4.75rem;flex-direction:row;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;z-index:5;padding:.35rem}.admin .studio-nav-title{display:none}.admin .studio-nav a{flex:0 0 auto;min-height:40px;border-left:0;border-bottom:2px solid transparent}.admin .studio-nav a:hover,.admin .studio-nav a:focus-visible{border-bottom-color:var(--accent);border-left:0}.admin .studio-content .panel{scroll-margin-top:9rem}}
@media(max-width:860px){body.admin:has(#login-panel:not([hidden])) main{display:block;min-height:0;max-width:38rem;padding-top:3rem}.admin-title{max-width:34rem}.admin-title h1{max-width:12ch;font-size:clamp(2rem,6vw,3rem)}.admin .login{max-width:30rem;margin:0 0 2rem}.admin .studio-title-rule{margin:1.2rem 0 1.8rem}.admin .duo{grid-template-columns:1fr}}
@media(max-width:560px){.admin-top{padding:.7rem 1rem}.admin-top .brand-lockup strong{font-size:.78rem}.admin-top .brand-sub{font-size:var(--text-hud)}.admin-top nav a{padding:.4rem .5rem;font-size:var(--text-hud)}.admin main{padding-top:1.2rem;padding-bottom:2rem}.admin .panel{padding:1.2rem}.admin .login{padding:1.4rem}.admin .fields{grid-template-columns:1fr}.admin .studio-nav{top:4.2rem}.admin footer{gap:.4rem}}
@media(prefers-reduced-motion:reduce){body.admin::before,body.admin::after{animation:none}}
@media(forced-colors:active){.admin .panel,.admin .studio-nav,.admin .rows{border:1px solid CanvasText}.admin .actions button:first-child{box-shadow:none}}
