:root{
  --red:#e30613;--red-dark:#b8000a;--ink:#1d2329;--muted:#66707a;
  --bg:#f3f4f5;--panel:#ffffff;--line:#d9dde1;--line-strong:#aeb5bc;
  --ok:#16794d;--warn:#8a6400;--danger:#b42318;--header-bg:#ffffff;--display-bg:#ffffff;
  --sidebar:#e30613;--sidebar-text:#ffffff;--sidebar-icon:#f1f3f5;--sidebar-icon-active:#ffffff;--sidebar-icon-hover:#d9dee3;--sidebar-active:#b8000a;
  --sidebar-width:272px;--sidebar-icon-size:22px;--sidebar-item-height:44px;--sidebar-radius:10px;
  --radius:12px;--shadow:0 5px 18px rgba(20,28,36,.065);--soft:#f7f8f9;
}
*{box-sizing:border-box}
html{font-size:16px;scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}
body.brand-bg{background-image:linear-gradient(rgba(243,244,245,.93),rgba(243,244,245,.96)),var(--brand-bg-image);background-size:cover;background-position:center;background-attachment:fixed}
a{color:inherit;text-decoration:none}img{max-width:100%}button,input,select,textarea{font:inherit}.hidden{display:none!important}
.muted{color:var(--muted)}.small{font-size:.86rem}.eyebrow{display:block;color:var(--red);font-size:.72rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase;margin-bottom:4px}
.nav-svg{width:1em;height:1em;fill:currentColor;stroke:currentColor;flex:none}

/* ===== PraxisTracker-inspired permanent admin workspace ===== */
.admin-body{min-height:100vh;background:var(--bg)}
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);height:100dvh;z-index:50;display:flex;flex-direction:column;overflow:hidden;color:var(--sidebar-text);background:linear-gradient(180deg,var(--sidebar) 0%,color-mix(in srgb,var(--sidebar) 90%,#760008) 72%,color-mix(in srgb,var(--sidebar) 74%,#5c0006) 100%);border-right:1px solid rgba(90,0,6,.18);box-shadow:7px 0 24px rgba(104,0,7,.13)}
.sidebar-brand{display:grid;grid-template-columns:48px minmax(0,1fr);gap:12px;align-items:center;margin:0 12px;padding:18px 8px 17px;border-bottom:1px solid rgba(255,255,255,.23);min-width:0;border-radius:9px 9px 0 0}
.sidebar-brand:hover{background:rgba(90,0,7,.13)}
.sidebar-brand:focus-visible{outline:3px solid rgba(255,255,255,.72);outline-offset:-2px}
.sidebar-logo-wrap{width:46px;height:46px;border-radius:9px;background:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.1)}
.sidebar-logo{max-width:41px;max-height:41px;object-fit:contain}.sidebar-logo-fallback{width:100%;height:100%;display:grid;place-items:center;background:#fff;color:var(--red-dark);font-weight:900;letter-spacing:.04em}
.sidebar-brand-copy{min-width:0;line-height:1.08}.sidebar-brand-copy strong,.sidebar-brand-copy span,.sidebar-brand-copy small{display:block;text-align:left}.sidebar-brand-copy strong{font-size:.96rem;color:#fff}.sidebar-brand-copy span{margin-top:4px;font-size:.81rem;color:rgba(255,255,255,.88)}.sidebar-brand-copy small{margin-top:4px;font-size:.68rem;color:rgba(255,255,255,.68);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-nav{width:100%;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;padding:5px 12px 10px;scrollbar-color:rgba(255,255,255,.34) transparent}
.sidebar-nav::-webkit-scrollbar{width:7px}.sidebar-nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.3);border-radius:999px}
.nav-label{padding:15px 10px 5px;color:rgba(255,255,255,.69);font-size:.62rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase;text-align:left}
.sidebar-nav a{width:100%;min-height:var(--sidebar-item-height);display:grid;grid-template-columns:var(--sidebar-icon-size) minmax(0,1fr);gap:12px;align-items:center;margin:1px 0;padding:8px 10px;border-radius:var(--sidebar-radius);color:var(--sidebar-text);font-size:.9rem;font-weight:670;background:transparent;transition:background .14s ease,color .14s ease}
.sidebar-nav a .nav-icon-slot{width:var(--sidebar-icon-size);height:var(--sidebar-icon-size);display:grid;place-items:center;color:var(--sidebar-icon)}
.sidebar-nav a .nav-icon-slot .nav-svg{width:100%;height:100%}
.sidebar-nav a:hover{background:rgba(95,0,6,.18);color:#fff}.sidebar-nav a:hover .nav-icon-slot{color:var(--sidebar-icon-hover)}
.sidebar-nav a.active{background:var(--sidebar-active);color:#fff;font-weight:820;box-shadow:none}.sidebar-nav a.active .nav-icon-slot{color:var(--sidebar-icon-active)}
.sidebar-footer{padding:10px 12px 12px;border-top:1px solid rgba(255,255,255,.18)}
.user-chip{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;padding:7px 8px;margin-bottom:5px}.user-chip>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(95,0,6,.22);color:#fff;font-weight:850}.user-chip strong,.user-chip small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip strong{font-size:.84rem}.user-chip small{font-size:.7rem;color:rgba(255,255,255,.67);margin-top:2px}
.sidebar-logout{width:100%;min-height:42px;display:grid;grid-template-columns:var(--sidebar-icon-size) 1fr;gap:12px;align-items:center;border:0;background:transparent;color:#fff;padding:8px 10px;border-radius:var(--sidebar-radius);text-align:left;cursor:pointer}.sidebar-logout:hover{background:rgba(95,0,6,.18)}.sidebar-logout .nav-svg{width:var(--sidebar-icon-size);height:var(--sidebar-icon-size);color:var(--sidebar-icon)}
.sidebar-support{display:grid;grid-template-columns:var(--sidebar-icon-size) 1fr;gap:12px;align-items:center;margin-top:6px;padding:9px 10px;border-radius:var(--sidebar-radius);background:rgba(95,0,6,.11)}.sidebar-support .nav-svg{width:var(--sidebar-icon-size);height:var(--sidebar-icon-size);color:var(--sidebar-icon)}.sidebar-support strong,.sidebar-support small{display:block}.sidebar-support strong{font-size:.78rem}.sidebar-support small{font-size:.67rem;color:rgba(255,255,255,.67)}
.admin-main{margin-left:var(--sidebar-width);min-height:100vh;min-width:0}
.admin-topline{min-height:70px;background:var(--header-bg);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 30px;position:sticky;top:0;z-index:30;box-shadow:0 3px 12px rgba(20,28,36,.045)}
.topline-brand{min-width:0}.topline-brand .eyebrow{margin-bottom:1px}.topline-brand strong{display:block;font-size:.94rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-status{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem;white-space:nowrap}.status-dot{width:8px;height:8px;border-radius:50%;background:#2a9d66}.top-role{padding:3px 8px;border-radius:999px;background:#f0f1f2;color:#47505a}
.content-shell{width:100%;max-width:1500px;padding:28px 30px 48px;min-width:0}.sidebar-toggle,.sidebar-backdrop,.mobile-bottom-nav{display:none}

/* ===== Page contract ===== */
h1,h2,h3{line-height:1.18;margin-top:0;color:var(--ink)}h1{font-size:clamp(1.65rem,2.5vw,2.25rem);letter-spacing:-.025em;margin-bottom:6px}h2{font-size:1.18rem;margin-bottom:11px}h3{font-size:1rem;margin-bottom:9px}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 16px;padding:17px 18px;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 16px rgba(20,28,36,.035);min-width:0}.page-head>div{min-width:0}.page-head p{margin:5px 0 0}.page-actions,.button-row{display:flex;gap:8px;flex-wrap:wrap}.page-actions{justify-content:flex-end}
.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px;box-shadow:0 4px 16px rgba(20,28,36,.04);min-width:0}.card.flat{box-shadow:none}.card>h2:first-child,.card>h3:first-child{margin-top:0}.section{margin-top:22px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.section-head>div{min-width:0}.section-head h2,.section-head h3{margin-bottom:3px}.divider{height:1px;background:var(--line);margin:18px 0}.metric{font-size:2rem;font-weight:870;letter-spacing:-.045em}.metric-label{font-size:.72rem;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.07em}

/* Forms */
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 15px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px 15px}.full-width{grid-column:1/-1}
label{display:grid;gap:6px;font-size:.86rem;font-weight:690;min-width:0}input,select,textarea{width:100%;min-width:0;padding:10px 11px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;color:var(--ink);outline:none}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 17%,transparent)}input[type=file]{padding:8px;background:#f9fafb}.checkbox-row{display:flex;align-items:center;gap:8px;font-weight:600}.checkbox-row input{width:auto;margin:0;accent-color:var(--red)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 13px;border:1px solid var(--red);border-radius:7px;background:var(--red);color:#fff;font-weight:750;cursor:pointer;text-decoration:none}.btn:hover{background:var(--red-dark);border-color:var(--red-dark)}.btn.secondary{background:#40464d;border-color:#40464d}.btn.secondary:hover{background:#2d3237}.btn.ghost{background:#f3f4f5;color:#22282e;border-color:#d8dde2}.btn.ghost:hover{background:#e8ebee}.btn.outline{background:#fff;color:var(--ink);border-color:var(--line-strong)}.btn.outline:hover{background:#f7f8f9;color:var(--ink);border-color:#8f989f}.btn.danger{background:var(--danger);border-color:var(--danger)}.btn.large,.btn-large{min-height:48px;padding:12px 17px;font-size:.98rem}.btn:disabled{opacity:.46;cursor:not-allowed}.compact-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.compact-form input,.compact-form select{min-width:135px;flex:1}.inline{display:inline}.inline form{display:inline}

/* State and tables */
.table-wrap{max-width:100%;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:11px}.table-wrap table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;padding:10px 11px;border-bottom:1px solid #eceeef;vertical-align:middle}th{position:sticky;top:0;background:#f6f7f8;color:#53606a;font-size:.74rem;font-weight:820;text-transform:uppercase;letter-spacing:.045em;z-index:1}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fafbfb}.compact-table table{min-width:0}
.badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#eceff1;color:#4b555f;font-size:.73rem;font-weight:800}.badge.ok{background:#ddf1e4;color:#176137}.badge.lock{background:#ffdfe1;color:#841820}.badge.warn{background:#fff0c2;color:#745300}
.alert{padding:11px 13px;border-radius:7px;margin:12px 0;background:#e9f6ed;color:#205c36;border:1px solid #cbe6d4;border-left:4px solid #2a8b50}.alert.error{background:#fdebed;color:#85131a;border-color:#f0c4c7;border-left-color:#c62828}.alert.warning{background:#fff4ce;color:#735200;border-color:#f0d889;border-left-color:#cf8500}.alert.info{background:#edf5fb;color:#31536e;border-color:#d2e5f2;border-left-color:#4382ad}.alert.compact{font-size:.86rem;padding:9px 11px}
.logo-thumb-wrap{display:flex;align-items:center;justify-content:center;min-height:110px;background:#fafbfb;border:1px solid var(--line);border-radius:8px;padding:10px}.logo-thumb{max-height:90px;max-width:220px;object-fit:contain}.logo-thumb-wide{max-width:360px}.empty-state{padding:28px;text-align:center;color:var(--muted)}

/* Dashboard */
.dashboard-kpis .card{padding:16px 17px;box-shadow:none}.kpi-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.kpi-accent{width:9px;height:9px;border-radius:50%;background:var(--red)}.kpi-accent.ok{background:var(--ok)}.dashboard-rank td:first-child{font-weight:850;width:62px}.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,.7fr);gap:16px;align-items:start}.ops-list{display:grid;gap:8px}.ops-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf0f2}.ops-row:last-child{border-bottom:0}.ops-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#f2f3f4;color:var(--red-dark)}.ops-icon .nav-svg{width:18px;height:18px}.ops-row strong,.ops-row small{display:block}.ops-row small{color:var(--muted);margin-top:2px}.common-progress{padding:12px 13px;border-radius:9px;background:#f7f8f9;border:1px solid #e4e7ea}.common-progress strong{font-size:1.12rem}

/* Settings: flat second rail next to main red sidebar, PraxisTracker/Nextcloud principle */
.content-shell:has(.settings-workspace-stage){max-width:none;padding:0}
.settings-workspace-layout{display:grid;grid-template-columns:276px minmax(0,1fr);min-height:calc(100dvh - 70px);align-items:stretch}
.settings-workspace-nav{position:sticky;top:70px;align-self:start;height:calc(100dvh - 70px);overflow-y:auto;background:#eef1f3;border-right:1px solid #d6dce1;padding:12px 10px 28px;box-shadow:none}
.settings-home-link,.settings-workspace-nav a{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;width:100%;padding:8px 9px;border-radius:8px;color:#26323d;margin:1px 0}
.settings-home-link{margin-bottom:8px;padding-bottom:12px;border-bottom:1px solid #d8dde2;border-radius:8px 8px 0 0}.settings-workspace-nav a:hover{background:#e1e6ea}.settings-workspace-nav a.active{background:#fff;color:#171d22;box-shadow:inset 3px 0 0 var(--red)}
.settings-nav-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:#52616d}.settings-nav-icon .nav-svg{width:19px;height:19px}.settings-workspace-nav a.active .settings-nav-icon{color:var(--red-dark);background:#fff1f2}
.settings-workspace-nav strong,.settings-workspace-nav small{display:block}.settings-workspace-nav strong{font-size:.82rem}.settings-workspace-nav small{font-size:.67rem;color:#74808a;margin-top:2px}.settings-nav-group>span{display:block;padding:15px 9px 5px;color:#7b858e;font-size:.62rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}
.settings-workspace-stage{min-width:0;padding:22px 24px 52px;max-width:1180px;width:100%}.settings-workspace-topbar{padding:0 0 12px;margin-bottom:12px;border-bottom:1px solid #dfe3e7}.settings-workspace-topbar h1{margin:2px 0 3px}.settings-workspace-topbar p{margin:0;color:var(--muted)}.settings-section-card{margin-bottom:14px;box-shadow:none}.settings-savebar{position:sticky;bottom:12px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:15px;padding:11px 12px;background:rgba(255,255,255,.94);border:1px solid #d9dde1;border-radius:10px;box-shadow:0 7px 24px rgba(20,28,36,.1);backdrop-filter:blur(9px);z-index:5}.settings-reset-form{margin-top:12px}.branding-assets-v32{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.branding-asset-v32{display:grid;gap:10px;padding:13px;border:1px solid var(--line);border-radius:10px;background:#fafbfb}.background-preview{min-height:140px;display:grid;place-items:center;background-color:#f0f2f4;background-size:cover;background-position:center;border:1px dashed #b9c0c7;border-radius:8px;color:var(--muted);overflow:hidden}.branding-grid-v32{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px}.branding-grid-v32 input[type=color]{height:46px;padding:3px}.branding-live-preview{display:grid;grid-template-columns:110px 1fr;height:180px;margin-top:16px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}.preview-sidebar{background:var(--sidebar);padding:16px 12px}.preview-sidebar span{display:block;height:13px;margin:8px 0;border-radius:5px;background:rgba(255,255,255,.5)}.preview-sidebar span.selected{background:var(--sidebar-active)}.preview-stage{padding:14px}.preview-top{height:28px;border-radius:6px;background:var(--header-bg);border:1px solid var(--line);margin-bottom:12px}.preview-card{height:55px;border-radius:8px;background:var(--panel);border:1px solid var(--line);margin-bottom:9px}.preview-card.small{width:65%;height:32px}

/* Games / station admin */
.game-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.game-card{display:block}.game-card:hover{border-color:#adb5bd}.station-title-row{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.station-kicker{font-size:.71rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:var(--red-dark)}.station-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-edit-details{margin-top:12px;border-top:1px solid var(--line)}.admin-edit-details summary{cursor:pointer;padding:12px 0;font-weight:750}.admin-detail-form{display:grid;gap:12px;padding-top:7px}.large-textarea{min-height:240px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.83rem}.qr-admin-row{display:grid;grid-template-columns:118px minmax(0,1fr);gap:14px;align-items:center;margin-top:12px}.qr{width:110px;height:110px}.danger-zone{border:1px solid #efb8b4;background:#fff8f7}

/* Roles, users, displays */
.role-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.permission-list{display:grid;gap:7px}.permission-item{display:grid;grid-template-columns:24px 1fr;gap:9px;align-items:start;padding:9px;border:1px solid var(--line);border-radius:8px;background:#fff}.permission-item input{width:auto;margin-top:3px}.permission-item strong,.permission-item small{display:block}.permission-item small{color:var(--muted);margin-top:2px;font-size:.76rem}.display-link{display:flex;gap:7px;align-items:center}.display-link input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;background:#f6f7f8}.screen-card{border-left:4px solid var(--red)}.playlist-grid{display:grid;grid-template-columns:1fr 100px;gap:8px;align-items:center}.playlist-grid label{display:contents}.playlist-grid label>span{padding:9px 0}.mini-logo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.mini-logo-grid>div{min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px;border:1px solid var(--line);border-radius:8px;background:#fff;text-align:center;font-size:.72rem}.mini-logo-grid img{max-width:100%;max-height:45px;object-fit:contain}

/* Public shell */
.public-body{background:var(--bg)}.public-header{min-height:76px;background:var(--header-bg);border-top:7px solid var(--red);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:12px max(18px,4vw)}.public-brand{display:flex;align-items:center;gap:12px;font-weight:850}.public-brand img{width:48px;height:48px;object-fit:contain}.public-brand>span strong,.public-brand>span small{display:block}.public-brand>span small{font-size:.76rem;color:var(--muted);margin-top:2px}.brand-square{width:43px;height:43px;border-radius:6px;background:var(--red);color:#fff;display:grid;place-items:center;font-size:.72rem}.public-main{padding:24px 16px 58px}.public-shell{width:min(1180px,100%);margin:auto}

/* Login */
.login-body{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--bg)}.login-body.brand-bg{background-image:linear-gradient(rgba(243,244,245,.82),rgba(243,244,245,.9)),var(--brand-bg-image)}.login-workspace{width:min(1060px,100%)}.login-card-v32{display:grid;grid-template-columns:minmax(0,.88fr) minmax(340px,1.12fr);overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 22px 70px rgba(20,28,36,.16)}.login-form-side{padding:38px 40px}.login-logo-link{display:inline-flex;align-items:center;margin-bottom:30px}.login-logo-link img{max-width:190px;max-height:84px;object-fit:contain}.login-fallback-mark{display:grid;place-items:center;width:60px;height:60px;background:var(--red);color:#fff;border-radius:8px;font-weight:900}.login-copy h1{font-size:2rem}.login-copy p{color:var(--muted);margin:0 0 18px}.login-form{display:grid;gap:14px}.login-form .btn{margin-top:3px;width:100%}.login-security-hint{display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:start;margin-top:22px;padding:11px 12px;border-radius:9px;background:#f6f7f8;color:#4a555e}.login-security-hint .nav-svg{width:22px;height:22px;color:var(--red-dark)}.login-security-hint strong,.login-security-hint small{display:block}.login-security-hint small{margin-top:2px;color:var(--muted)}.login-visual-v32{position:relative;min-height:600px;padding:42px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:linear-gradient(155deg,var(--red) 0%,var(--red-dark) 72%,#7e0008 100%);overflow:hidden}.login-visual-v32:before,.login-visual-v32:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.2);transform:rotate(-14deg)}.login-visual-v32:before{width:520px;height:200px;right:-140px;top:90px}.login-visual-v32:after{width:430px;height:160px;right:-40px;top:210px}.login-visual-motto{position:absolute;top:42px;right:42px;text-align:right;font-size:1.1rem;font-weight:800;line-height:1.2;color:rgba(255,255,255,.88)}.login-visual-motto i{display:block;width:60px;height:4px;background:#fff;margin:10px 0 0 auto}.login-visual-copy{position:relative;z-index:1}.login-visual-copy>span{font-size:.71rem;font-weight:850;letter-spacing:.12em;color:rgba(255,255,255,.72)}.login-visual-copy h2{font-size:clamp(2.6rem,4vw,4.3rem);line-height:.98;color:#fff;margin:11px 0 16px;letter-spacing:-.04em}.login-visual-copy p{max-width:520px;font-size:1rem;color:rgba(255,255,255,.8)}.login-benefits{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:24px}.login-benefits span{padding:8px 10px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:rgba(90,0,7,.14);font-size:.81rem}.login-benefits b{margin-right:6px}

/* Judge/station: deliberately simpler */
.station-page{background:#f3f4f5;min-height:100vh}.station-page.brand-bg{background-image:linear-gradient(rgba(243,244,245,.88),rgba(243,244,245,.94)),var(--brand-bg-image)}.station-shell{max-width:760px;margin:0 auto;padding:17px 14px 52px}.station-brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}.station-brand img{width:52px;height:52px;object-fit:contain;background:#fff;border-radius:8px;padding:4px}.station-brand-copy strong,.station-brand-copy span{display:block}.station-brand-copy span{font-size:.78rem;color:var(--muted)}.station-head{border-top:5px solid var(--red)}.station-head h1{margin:5px 0 10px}.station-meta{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 12px;background:#f6f7f8;border-radius:8px;margin:12px 0}.station-score{font-size:1.08rem}.lead{font-size:1rem;line-height:1.55}.info-details{padding:0;overflow:hidden;margin-top:12px}.info-details summary{cursor:pointer;font-weight:780;padding:15px 17px;list-style:none}.info-details summary:after{content:"⌄";float:right;color:var(--muted)}.info-details[open] summary:after{content:"⌃"}.info-details[open] summary{border-bottom:1px solid var(--line)}.preline{white-space:pre-wrap;line-height:1.55;padding:17px;overflow-wrap:anywhere}.info-details .table-wrap{margin:0 17px 17px}.section-heading{margin:24px 2px 10px}.section-heading h2{margin-bottom:5px}.station-entry-form{display:grid;gap:14px}.station-entry-form select,.station-entry-form input{min-height:50px;font-size:1rem}.station-entry-form .btn{min-height:52px}.review-card{border:2px solid var(--red)}.review-kicker{font-size:.72rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:var(--red-dark)}.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:15px 0}.review-grid div{background:#f5f6f7;padding:12px;border-radius:8px}.review-grid span,.review-grid strong{display:block}.review-grid strong{font-size:1.35rem;margin-top:3px}

/* Secure TV/display */
.live-v4,.live-v3{margin:0;overflow:hidden;background:var(--display-bg)}.kiosk-screen{width:100vw;height:100vh;padding:3vh 4vw;display:flex;flex-direction:column;background:var(--display-bg);color:var(--ink)}.kiosk-loading{margin:auto;font-size:2.3rem;font-weight:800}.kiosk-top{display:flex;justify-content:space-between;align-items:center;gap:2vw;border-bottom:.65vh solid var(--red);padding-bottom:1.4vh;flex:none}.kiosk-brandline{display:flex;align-items:center;gap:1.1vw;min-width:0}.kiosk-event-logo{width:clamp(54px,5.4vw,110px);height:clamp(54px,5.4vw,110px);object-fit:contain;flex:none}.kiosk-top h1{font-size:clamp(2rem,3.1vw,4rem);margin:.1em 0 0;line-height:1}.kiosk-kicker{font-size:clamp(.85rem,1.1vw,1.3rem);font-weight:900;letter-spacing:.07em;text-transform:uppercase;color:var(--red-dark)}.kiosk-meta{font-size:clamp(1rem,1.35vw,1.7rem);font-weight:700;white-space:nowrap}.kiosk-hero{text-align:center;margin:2vh 0 1.3vh;flex:none}.kiosk-hero h2{font-size:clamp(2rem,3vw,3.8rem);margin:.2em 0}.kiosk-hero p{font-size:clamp(1rem,1.4vw,1.7rem)}.kiosk-motto{font-size:clamp(1.3rem,1.9vw,2.3rem);color:var(--red-dark);font-weight:800}.kiosk-logo-grid{display:grid;flex:1;min-height:0;gap:1.4vh 1.2vw}.schools-grid{grid-template-columns:repeat(4,1fr)}.sponsor-grid{grid-template-columns:repeat(5,1fr)}.kiosk-logo-card{border:1px solid #dde0e3;border-radius:.8vw;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1vh 1vw;overflow:hidden}.kiosk-logo-card img{max-width:92%;max-height:70%;object-fit:contain}.kiosk-logo-name{text-align:center;font-size:clamp(.7rem,.85vw,1.05rem);font-weight:700;margin-top:.6vh}.logo-fallback{font-size:clamp(1rem,1.4vw,1.7rem);font-weight:900;text-align:center}.kiosk-empty{grid-column:1/-1;display:grid;place-items:center;font-size:2rem;color:var(--muted)}.kiosk-results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin:1.2vh 0}.kiosk-results-heading h2{font-size:clamp(1.7rem,2.4vw,2.9rem);margin:0}.kiosk-results-heading>div{font-size:clamp(.9rem,1.05vw,1.2rem);color:var(--muted);font-weight:650}.chart-list{display:grid;gap:.45vh;flex:1;min-height:0}.chart-row{display:grid;grid-template-columns:minmax(300px,34%) 1fr;gap:1vw;align-items:center}.chart-label{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:.55vw;min-width:0}.chart-label>div{min-width:0}.chart-label b{display:block;font-size:clamp(.82rem,1.1vw,1.35rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-label small{display:block;color:var(--muted);font-size:clamp(.64rem,.76vw,.92rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chart-place{font-size:clamp(1rem,1.3vw,1.5rem);font-weight:900;min-width:2.2em}.chart-logo{width:clamp(28px,2.4vw,52px);height:clamp(28px,2.4vw,52px);object-fit:contain}.chart-progress{font-size:clamp(.7rem,.84vw,1rem);font-weight:800;color:var(--muted)}.chart-track{position:relative;height:clamp(24px,2.3vh,38px);background:#eceff1;border-radius:999px;overflow:hidden}.chart-bar{height:100%;background:linear-gradient(90deg,var(--red),var(--red-dark));border-radius:999px}.chart-value{position:absolute;right:.7vw;top:50%;transform:translateY(-50%);font-size:clamp(.78rem,1vw,1.2rem);font-weight:900;color:#111;text-shadow:0 1px 2px #fff,0 0 4px #fff}.kiosk-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.kiosk-center h2{font-size:clamp(2.3rem,5vw,6rem);max-width:82vw}.kiosk-center p{font-size:clamp(1.1rem,1.7vw,2rem);color:var(--muted)}.program-focus{display:grid;grid-template-columns:2fr 1fr;gap:3vw}.kiosk-program{flex:1;align-items:center;padding-top:5vh}.program-big{font-size:clamp(2rem,6vw,5.5rem);font-weight:850}.score{font-weight:900}.score-small{font-size:clamp(1.5rem,3vw,3rem);font-weight:800}.podium-v2{display:flex;align-items:flex-end;justify-content:center;gap:2vw;flex:1;padding:4vh 6vw}.podium-card{width:28%;text-align:center;border:1px solid #ddd;border-radius:1vw;padding:2vh 1vw;background:#fff}.podium-card.p1{min-height:48vh}.podium-card.p2{min-height:38vh}.podium-card.p3{min-height:32vh}.podium-place{font-size:clamp(3rem,6vw,7rem);font-weight:900;color:var(--red)}

/* Responsive: desktop sidebar stays permanent; mobile is intentionally simpler. */
@media(max-width:1180px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.branding-grid-v32{grid-template-columns:repeat(3,minmax(140px,1fr))}.dashboard-layout{grid-template-columns:1fr}.station-admin-grid{grid-template-columns:1fr}.role-tabs{grid-template-columns:1fr}}
@media(max-width:980px){.content-shell{padding:22px 18px 44px}.settings-workspace-layout{grid-template-columns:238px minmax(0,1fr)}.settings-workspace-stage{padding:18px 16px 44px}.branding-grid-v32{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media(max-width:820px){.grid-2,.grid-3,.game-grid{grid-template-columns:1fr}.form-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-workspace-layout{display:block;min-height:0}.settings-workspace-nav{position:sticky;top:70px;z-index:22;width:100%;height:auto;display:flex;align-items:stretch;gap:5px;overflow-x:auto;overflow-y:hidden;padding:8px;background:#eef1f3;border-right:0;border-bottom:1px solid #d6dce1}.settings-nav-group{display:contents}.settings-nav-group>span{display:none}.settings-workspace-nav a{flex:0 0 184px;min-height:52px}.settings-home-link{flex-basis:150px;margin:0;border:0;border-right:1px solid #d6dce1;border-radius:7px}.settings-workspace-stage{padding:16px 12px 46px}.branding-assets-v32{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}.page-actions{justify-content:flex-start}.program-focus{grid-template-columns:1fr}}
@media(max-width:760px){
  html{font-size:15px}.admin-body{padding-bottom:66px}.sidebar{width:min(294px,88vw);transform:translateX(-102%);transition:transform .2s ease;box-shadow:12px 0 34px rgba(0,0,0,.22)}.nav-open .sidebar{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(20,25,30,.38);z-index:45;opacity:0;pointer-events:none;transition:opacity .2s}.nav-open .sidebar-backdrop{opacity:1;pointer-events:auto}.sidebar-toggle{display:none}.admin-main{margin-left:0}.admin-topline{min-height:60px;padding:9px 14px}.topline-brand strong{font-size:.84rem}.top-status{display:none}.content-shell{padding:14px 10px 28px}.mobile-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:42;display:flex;align-items:stretch;justify-content:space-around;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 18px rgba(20,28,36,.09);padding:5px 4px calc(5px + env(safe-area-inset-bottom))}.mobile-bottom-nav a,.mobile-bottom-nav button{flex:1;min-width:0;min-height:52px;border:0;background:transparent;color:#68717a;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.68rem;font-weight:720;padding:4px 2px}.mobile-bottom-nav .nav-svg{width:21px;height:21px}.mobile-bottom-nav a.active{color:var(--red-dark)}.mobile-bottom-nav button{cursor:pointer}.page-head{padding:14px;margin-bottom:12px}.card{padding:14px;border-radius:10px}.form-grid,.form-grid-3{grid-template-columns:1fr}.full-width{grid-column:auto}.button-row .btn{flex:1 1 145px}.compact-form{align-items:stretch;flex-direction:column}.compact-form>*{width:100%}.table-wrap{border-radius:8px}.table-wrap table{min-width:680px}.settings-workspace-nav{top:60px}.settings-workspace-stage{padding:12px 8px 76px}.branding-grid-v32{grid-template-columns:1fr}.settings-savebar{bottom:72px}.review-grid{grid-template-columns:1fr}.station-shell{padding:10px 9px 36px}.station-head{padding:14px}.station-meta{display:grid}.station-entry-form .btn{width:100%}.display-link{align-items:stretch;flex-direction:column}.login-body{padding:10px}.login-card-v32{grid-template-columns:1fr}.login-visual-v32{display:none}.login-form-side{padding:25px 20px}.schools-grid,.sponsor-grid{grid-template-columns:repeat(2,1fr)}.kiosk-top{align-items:flex-start}.kiosk-meta{white-space:normal}.chart-row{grid-template-columns:1fr}
}
@media(max-width:430px){.grid-4{grid-template-columns:1fr}.content-shell{padding-left:8px;padding-right:8px}.settings-workspace-nav a{flex-basis:164px}.metric{font-size:1.75rem}.station-brand-copy strong{font-size:.9rem}.playlist-grid{grid-template-columns:1fr 80px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* V4 workspace refinements */
.content-shell.settings-shell-host{max-width:none;padding:0}
.dashboard-head{border-top:3px solid var(--red)}
.kpi-card{box-shadow:none}.kpi-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.kpi-accent{width:10px;height:10px;border-radius:50%;background:#88929b}.kpi-accent.ok{background:var(--ok)}.kpi-accent.wait{background:#d09b1d}
.dashboard-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(290px,.92fr);gap:16px;align-items:start}.dashboard-primary,.dashboard-status-card{box-shadow:none}.text-link{color:var(--red-dark);font-weight:750;font-size:.84rem}.rank-pill{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;background:#f1f3f4;font-weight:850}.common-progress{padding:13px 14px;border-left:4px solid var(--ok);background:#f1f8f5;border-radius:0 8px 8px 0}.common-progress.blocked{border-left-color:#d09b1d;background:#fff9e9}.common-progress strong{display:block;margin-bottom:4px}.common-progress p{margin:0;color:var(--muted);font-size:.85rem}.ops-list{margin:14px 0;border-top:1px solid var(--line)}.ops-list>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.85rem}.ops-list span{color:var(--muted)}.full-action{width:100%}.quick-workspace{margin-top:16px}.quick-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px;box-shadow:none;transition:border-color .15s ease,background .15s ease}.quick-card:hover{border-color:#bbc1c6;background:#fafbfb}.quick-card>.nav-svg{width:28px;height:28px;color:var(--red-dark)}.quick-card strong,.quick-card span{display:block}.quick-card div span{margin-top:3px;color:var(--muted);font-size:.78rem}
.kiosk-event-mark{width:clamp(54px,5.4vw,110px);height:clamp(54px,5.4vw,110px);border-radius:.55vw;background:var(--red);color:#fff;display:grid;place-items:center;font-size:clamp(.9rem,1.4vw,1.8rem);font-weight:900;letter-spacing:.05em;flex:none}
@media(max-width:1180px){.dashboard-layout{grid-template-columns:1fr}}

/* V4.1: single-sidebar release workflow */
.release-workflow{padding:22px}.release-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.release-status-grid>div{padding:16px 18px;background:#f6f7f8;border:1px solid var(--line);border-radius:10px}.release-big{font-size:2.8rem;line-height:1;font-weight:850;letter-spacing:-.04em;color:var(--red-dark);margin:7px 0}.release-big.secondary{color:#28323a}.final-release-banner{display:flex;flex-direction:column;gap:5px;padding:17px 18px;border-left:5px solid var(--red);background:#fff4f4;border-radius:9px;margin:16px 0}.final-release-banner strong{font-size:1.05rem}.final-release-banner span{font-weight:750}.final-release-banner small{color:#626c75}.final-release-banner.active{background:#fff8e7;border-left-color:#c27a00}.release-primary-action{margin:20px 0}.release-primary-action form{margin:0}.release-primary-action .btn{min-height:54px;font-size:1rem;padding-inline:24px}.release-meta-row{border-top:1px solid var(--line);padding-top:16px;display:grid;gap:12px}.release-meta-row details summary,.release-secondary summary,.release-advanced>summary{cursor:pointer;font-weight:750}.release-secondary{padding-top:4px}.release-secondary[open]{padding-top:12px}.release-settings-grid{margin-top:18px}.release-advanced{margin-top:18px}.inline-block{display:inline-block;margin-left:12px}.kiosk-countdown{min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px}.kiosk-countdown-label{text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--red-dark);font-size:1.15rem}.kiosk-countdown-number{font-size:clamp(8rem,22vw,19rem);line-height:.85;font-weight:900;letter-spacing:-.08em;color:var(--red);font-variant-numeric:tabular-nums}.kiosk-countdown h2{font-size:clamp(2rem,4vw,4.5rem);margin:6px 0}.kiosk-countdown p{font-size:clamp(1.1rem,2vw,2rem);color:#606a72;margin:0}
@media(max-width:820px){.release-workflow{padding:14px}.release-status-grid{grid-template-columns:1fr 1fr;gap:10px}.release-status-grid>div{padding:12px}.release-big{font-size:2.15rem}.release-primary-action .btn{width:100%}.release-settings-grid{grid-template-columns:1fr}.inline-block{display:block;margin:12px 0 0}.kiosk-countdown{min-height:52vh}}
@media(max-width:480px){.release-status-grid{grid-template-columns:1fr}.release-big{font-size:2rem}}

/* V4.2 staged release console + side-by-side result overview */
.release-console{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:18px;align-items:start}.release-console-main,.release-console-side{min-width:0}.countdown-panel{display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center;padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}.countdown-dial{display:grid;place-items:center;width:118px;height:118px;border-radius:50%;border:8px solid #eef0f2;background:#fff;font-size:2.35rem;font-weight:900;color:var(--red-dark)}.countdown-copy h2{margin:.1rem 0 .4rem}.release-mode-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.release-progress-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.release-progress-strip>div{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f7f8f9}.release-progress-strip strong{display:block;font-size:1.45rem}.release-team-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.release-team-card{padding:12px 13px;border:1px solid var(--line);border-radius:10px;background:#fff}.release-team-card b{display:block;font-size:1rem}.release-team-card span{color:var(--muted);font-size:.82rem}.result-tile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1vh 1vw;flex:1;min-height:0;align-content:start}.result-tile{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;align-items:center;gap:.8vw;padding:1.1vh 1vw;border:1px solid #dfe3e6;border-radius:.7vw;background:#fff}.result-tile-place{font-size:clamp(1.4rem,2.1vw,2.5rem);font-weight:900;color:var(--red-dark);min-width:2.2em}.result-tile-logo{width:clamp(34px,3vw,62px);height:clamp(34px,3vw,62px);object-fit:contain}.result-tile-copy{min-width:0}.result-tile-copy b{display:block;font-size:clamp(.95rem,1.25vw,1.45rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-tile-copy small{display:block;color:var(--muted);font-size:clamp(.68rem,.82vw,.95rem);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.result-tile-score{font-size:clamp(1rem,1.45vw,1.7rem);font-weight:900;white-space:nowrap}.reveal-grid{align-content:center}.top3-lock{grid-column:1/-1;padding:2vh 2vw;border:2px dashed var(--red);border-radius:1vw;text-align:center;font-size:clamp(2rem,3vw,4rem);font-weight:900;color:var(--red-dark);background:#fff8f8}.top3-lock span{display:block;font-size:clamp(.9rem,1.2vw,1.4rem);font-weight:700;color:var(--muted)}
@media(max-width:900px){.release-console{grid-template-columns:1fr}.release-team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.countdown-panel{grid-template-columns:1fr}.countdown-dial{width:92px;height:92px}.result-tile-grid{grid-template-columns:1fr}}

/* V4.3 isolated result demo mode */
.global-demo-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:11px 14px;border:1px solid #e1a900;border-left:5px solid #d99000;border-radius:10px;background:#fff7dc;color:#4b3b00}.global-demo-banner strong{font-size:.78rem;letter-spacing:.08em}.global-demo-banner span{flex:1 1 360px;font-size:.86rem}.global-demo-banner a{font-weight:800;text-decoration:underline}.demo-mode-card{margin-bottom:18px;border-left:5px solid #c5cbd0}.demo-mode-card.active{border-left-color:#d99000;background:#fffdf7}.demo-start-row{display:grid;grid-template-columns:minmax(220px,360px) auto;gap:12px;align-items:end}.demo-stage-toolbar{display:grid;gap:14px}.demo-stage-buttons{display:flex;flex-wrap:wrap;gap:7px}.demo-stage-buttons form{margin:0}.demo-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:16px}.demo-preview-card{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 11px;border:1px solid var(--line);border-radius:9px;background:#fff}.demo-preview-card>span{display:grid;place-items:center;width:26px;height:26px;border-radius:6px;background:#f1f2f3;font-weight:850}.demo-preview-card strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.demo-preview-card b{white-space:nowrap}.danger-outline{background:#fff!important;color:var(--danger)!important;border-color:var(--danger)!important}.danger-outline:hover{background:#fff0ef!important}.kiosk-demo-badge{display:inline-flex;align-items:center;justify-content:center;margin-right:.8vw;padding:.35em .7em;border-radius:.35em;background:#f0a000;color:#231900;font-weight:900;letter-spacing:.08em;font-size:.8em}
@media(max-width:800px){.demo-start-row{grid-template-columns:1fr}.demo-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.demo-preview-grid{grid-template-columns:1fr}}
