:root{color-scheme:light dark;--bg:#f4f5f7;--surface:rgba(255,255,255,.82);--surface-solid:#fff;--text:#10131a;--muted:#6d7480;--line:rgba(20,26,38,.11);--accent:#0a84ff;--green:#24d983;--danger:#ff453a;--shadow:0 22px 70px rgba(17,24,39,.09);font:16px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif}
:root[data-theme=dark]{--bg:#080b12;--surface:rgba(19,24,34,.86);--surface-solid:#141923;--text:#f5f7fb;--muted:#98a2b2;--line:rgba(235,240,248,.11);--accent:#55aaff;--green:#38e893;--danger:#ff6961;--shadow:0 28px 90px rgba(0,0,0,.3)}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% -20%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 45%),var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.shell{width:min(980px,calc(100% - 28px));margin:auto;padding:calc(26px + env(safe-area-inset-top)) 0 calc(92px + env(safe-area-inset-bottom))}.topbar,.status-row,.section-head,.button-row,.top-actions,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:14px}.topbar{margin-bottom:24px}.eyebrow{margin:0 0 4px;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.13em}.topbar h1{margin:0;font-size:clamp(2rem,7vw,3.5rem);letter-spacing:-.05em}.card{border:1px solid var(--line);border-radius:24px;background:var(--surface);box-shadow:var(--shadow);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:22px}.login-card{max-width:520px;margin:7vh auto}.login-card form{display:grid;gap:14px;margin-top:24px}h2,p{margin-top:0}h2{letter-spacing:-.03em}.muted{color:var(--muted);font-size:.92rem}label{display:grid;gap:7px;font-size:.85rem;font-weight:650;color:var(--muted)}input,select,button{font:inherit}input,select{width:100%;min-height:48px;border:1px solid var(--line);border-radius:13px;background:var(--surface-solid);color:var(--text);padding:10px 13px;outline:none}input:focus,select:focus,button:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent);border-color:var(--accent)}button{min-height:44px;border:1px solid var(--line);border-radius:13px;background:var(--surface-solid);color:var(--text);padding:10px 15px;font-weight:700;cursor:pointer;touch-action:manipulation}button:disabled{opacity:.5;cursor:wait}.primary{background:var(--accent);color:white;border-color:transparent}.icon-button{width:44px;padding:0;font-size:1.2rem}.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:7px 11px;color:var(--muted);font-size:.83rem;background:var(--surface)}.pill.online{color:color-mix(in srgb,var(--green) 75%,var(--text));border-color:color-mix(in srgb,var(--green) 45%,transparent)}.tabs{display:flex;gap:6px;overflow-x:auto;margin:-4px 0 20px;padding:4px 1px 9px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{white-space:nowrap;border-radius:999px;background:transparent;color:var(--muted)}.tabs button.active{background:var(--text);color:var(--bg);border-color:var(--text)}.notice{min-height:24px;margin:0 0 10px;color:var(--muted)}.notice.error{color:var(--danger)}.status-card{padding:24px}.status-row h2{font-size:2rem;margin-bottom:0;text-transform:capitalize}.label{margin:0;color:var(--muted);font-size:.8rem}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}.stats div{display:grid;gap:4px;padding:13px;border-radius:15px;background:color-mix(in srgb,var(--surface-solid) 68%,transparent)}.stats span,.details dt{font-size:.75rem;color:var(--muted)}.stats strong{font-size:1.05rem;overflow-wrap:anywhere}.countdown{margin-top:16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--danger) 35%,transparent);border-radius:15px;display:flex;justify-content:space-between;color:var(--danger)}.countdown strong{font-variant-numeric:tabular-nums}.scene-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:14px 0}.scene-button{position:relative;min-height:72px;overflow:hidden;background:var(--surface)}.scene-button.active{border-color:color-mix(in srgb,var(--green) 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 35%,transparent)}.scene-button.switching{color:var(--muted)}.scene-button.confirmed::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid var(--green);clip-path:inset(0 100% 0 0);animation:ring .75s linear forwards}.scene-button.confirmed{animation:glow .55s .7s}.scene-button.failed{animation:fail .35s}.finish-button{width:100%;min-height:58px;margin-top:12px;border-color:color-mix(in srgb,var(--danger) 40%,transparent);color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,var(--surface))}.section-head{margin:14px 0}.section-head h2{margin-bottom:4px}.list{display:grid;gap:10px}.list-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--line);border-radius:17px;background:var(--surface)}.list-item h3{margin:0 0 3px;font-size:1rem}.list-item p{margin:0}.item-actions{display:flex;align-items:center;gap:8px}.switch{position:relative;width:52px;height:30px;border:0;border-radius:999px;background:#787880;padding:2px;min-height:30px}.switch::after{content:"";display:block;width:26px;height:26px;border-radius:50%;background:white;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:transform .2s}.switch.on{background:var(--green)}.switch.on::after{transform:translateX(22px)}.secret-mask{font:700 clamp(1rem,4vw,1.4rem) ui-monospace,SFMono-Regular,monospace;overflow-wrap:anywhere;padding:16px;border-radius:15px;background:var(--surface-solid)}.danger-subtle{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.details{display:grid;grid-template-columns:1fr auto;gap:10px;margin:22px 0 0}.details dd{margin:0;text-align:right}.timeline{display:grid;gap:0}.timeline-item{border-left:2px solid var(--line);padding:0 0 18px 17px;margin-left:6px}.timeline-item::before{content:"";display:block;width:10px;height:10px;border-radius:50%;background:var(--accent);margin-left:-23px;transform:translateY(14px)}.timeline-item p{margin:0}.timeline-item time{color:var(--muted);font-size:.78rem}.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.admin-grid .card h3{margin-top:0}.metric{font-size:2rem;font-weight:750}.metric.good{color:var(--green)}.metric.bad{color:var(--danger)}dialog{width:min(460px,calc(100% - 28px));border:1px solid var(--line);border-radius:24px;background:var(--surface-solid);color:var(--text);padding:22px;box-shadow:0 30px 100px rgba(0,0,0,.45)}dialog::backdrop{background:rgba(0,0,0,.58);backdrop-filter:blur(6px)}#dialog-fields{display:grid;gap:12px}.dialog-actions{justify-content:flex-end;margin-top:20px}.hold-button{position:relative;width:100%;min-height:64px;overflow:hidden;color:white;background:color-mix(in srgb,var(--danger) 75%,#59100c);border:0;margin:14px 0}.hold-button i{position:absolute;inset:0 auto 0 0;width:0;background:rgba(255,255,255,.25)}.hold-button.holding i{animation:hold 2s linear forwards}.hold-button span{position:relative;z-index:1}.file-button input{display:none}.file-button{display:inline-flex;align-items:center;min-height:44px;border:1px solid var(--line);border-radius:13px;padding:10px 14px;font-weight:700;cursor:pointer}
@keyframes ring{to{clip-path:inset(0)}}@keyframes glow{50%{box-shadow:0 0 22px color-mix(in srgb,var(--green) 70%,transparent)}}@keyframes fail{50%{box-shadow:0 0 20px color-mix(in srgb,var(--danger) 70%,transparent)}}@keyframes hold{to{width:100%}}
@media(max-width:720px){.shell{width:min(100% - 20px,980px)}.scene-grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr 1fr}.stats div:first-child{grid-column:1/-1}.section-head{align-items:flex-start}.admin-grid{grid-template-columns:1fr}.list-item{grid-template-columns:1fr}.item-actions{justify-content:flex-start;flex-wrap:wrap}.topbar{align-items:flex-end}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}.scene-button.confirmed{box-shadow:0 0 0 2px var(--green)}}
.admin-section{grid-column:1/-1}.admin-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.admin-row>span{overflow-wrap:anywhere}.admin-defaults{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
