/* «Нулевой день» — общий стиль (порт StyleBlock концепта + мини-utility) */
:root{
  --bg:#070a12; --panel:#0c111f; --panel2:#111729; --line:#1d2743;
  --ink:#e9effb; --dim:#7d8aad; --amber:#ffb347; --danger:#ff4d6d; --ok:#2ee6a8;
  --tc:#54d6ff;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{min-height:100%}
body{
  color:var(--ink);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  background:
    radial-gradient(900px 460px at 50% -12%, rgba(84,214,255,.07), transparent 60%),
    radial-gradient(rgba(125,138,173,.10) 1px, transparent 1px),
    var(--bg);
  background-size:auto, 26px 26px, auto;
  -webkit-tap-highlight-color:transparent;
}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.disp{letter-spacing:.01em}
.ks-icon{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.16em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

.tc1{--tc:#54d6ff}.tc2{--tc:#c48bff}.tc3{--tc:#2ee6a8}.tc4{--tc:#ff9e64}
.teamink{color:var(--tc)}

.panel{background:var(--panel);border:1px solid var(--line);position:relative;box-shadow:0 10px 26px rgba(0,0,0,.30)}
.panel::before{content:'';position:absolute;top:-1px;left:-1px;width:26px;height:2px;background:var(--amber)}
.panel2{background:var(--panel2);border:1px solid var(--line)}

.flagchip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--line);background:#090d18;
  font-family:ui-monospace,Menlo,monospace;font-size:10.5px;letter-spacing:.05em;text-transform:uppercase}
.flagbad{border-color:#5a2740;background:#241019;color:#ffb3c2}

.opt{position:relative;border:1px solid var(--line);border-left:2px solid #2a3760;background:var(--panel2);
  padding:12px 14px;text-align:left;width:100%;transition:transform .08s ease,border-color .15s;display:block;
  touch-action:manipulation;-webkit-user-select:none;user-select:none}
.opt:active{transform:scale(.99)}
.optsel{border-color:var(--amber);border-left-color:var(--amber);background:#161206}
.optdis{opacity:.4;pointer-events:none}
.optpending{opacity:1;background:#151321;animation:votePending .7s ease-in-out infinite alternate}
.player-module-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border:1px solid rgba(84,214,255,.42);background:#070d18;color:var(--tc);clip-path:polygon(0 0,100% 0,100% 76%,76% 100%,0 100%);box-shadow:inset 0 0 18px rgba(84,214,255,.05)}
.player-module-icon.stop{border-color:rgba(255,179,71,.5);color:var(--amber);background:#171004}
.player-module-icon .ks-icon{width:27px;height:27px}
.optsel .player-module-icon{border-color:var(--amber);color:var(--amber);box-shadow:inset 0 0 0 1px rgba(255,179,71,.25),0 0 16px rgba(255,179,71,.12)}
@keyframes votePending{from{border-color:var(--amber)}to{border-color:var(--tc)}}
.vote-feedback{position:sticky;bottom:8px;z-index:8;padding:11px 12px;border:1px solid var(--line);border-left:3px solid;background:#0b1020;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.vote-pending{border-left-color:var(--amber);color:var(--amber)}
.vote-ok{border-left-color:var(--ok);color:var(--ok)}
.vote-error{border-left-color:var(--danger);color:#ffb3c2}
.check{width:20px;height:20px;border:1.5px solid var(--line);display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;flex:none;background:#090d18;color:var(--amber)}

.btn{position:relative;border:1px solid var(--line);background:var(--panel2);padding:12px 16px;
  font-weight:700;font-size:13.5px;letter-spacing:.03em;color:var(--ink);width:100%;text-align:center;
  clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}
.btnacc{background:var(--amber);border-color:var(--amber);color:#221503}
.btndanger{background:#2a1017;border-color:#5a2740;color:#ffb3c2}
.btn:disabled{opacity:.45;pointer-events:none}
.btnsm{padding:8px 12px;font-size:12px;width:auto}

.cost{font-family:ui-monospace,Menlo,monospace;color:var(--amber);font-size:11.5px;border:1px solid #46381d;background:#171004;padding:2px 8px;flex:none}
.hint{border:1px solid var(--line);border-left:2px solid var(--amber);background:#12100a;padding:10px 12px}
.truth{border-left:2px solid var(--amber);padding:9px 12px;background:#12100a}
.role-card{overflow:hidden}.role-guide{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:left}
.role-guide article{padding:12px;border:1px solid var(--line);background:#090d18}
.role-guide-label{font:800 10px ui-monospace,monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--amber);margin-bottom:6px}
.role-guide p{font-size:13px;line-height:1.48;color:var(--ink)}
.funding-banner{border-color:#5e4824;background:linear-gradient(145deg,#1b1408,#0c111f)}
.funding-banner::before{width:54px}.funding-resources{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.funding-resources span{display:flex;align-items:center;gap:7px;padding:9px;border:1px solid #4b3a20;background:#090d18;font:12px ui-monospace,monospace}
.reveal-deltas{display:flex;align-items:center;flex-wrap:wrap;gap:10px}

.timer{height:4px;background:#0a0f1c;border:1px solid var(--line);overflow:hidden}
.timer>i{display:block;height:100%;background:var(--amber);transition:width .4s linear}

.hpwrap{background:#0a0f1c;border:1px solid var(--line);overflow:hidden;position:relative}
.hpwrap::after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(25% - 1px),var(--line) calc(25% - 1px) 25%)}
.hpbar{height:100%;background:var(--tc);transition:width .8s ease;position:relative;z-index:1}
.player-final-address{border-color:var(--tc);background:linear-gradient(145deg,color-mix(in srgb,var(--tc) 12%,#0d1322),#090d18)}
.player-final-team{font-size:clamp(27px,8vw,42px);font-weight:950;line-height:1.04;color:var(--ink)}
.player-final-rank{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 10px;padding:14px;border:1px solid rgba(255,179,71,.48);background:#171104;text-align:left;color:var(--amber)}
.player-final-rank .ks-icon{grid-row:1/3;width:38px;height:38px}
.player-final-rank span{font-size:12px;font-weight:800;color:var(--dim)}
.player-final-rank strong{font:950 25px/1 ui-monospace,monospace}
.player-final-points{font:900 18px/1 ui-monospace,monospace;color:var(--amber)}

.eyebrow{letter-spacing:.2em;text-transform:uppercase;font-size:10.5px;color:var(--dim);
  font-family:ui-monospace,Menlo,monospace;display:inline-flex;align-items:center;gap:8px}
.eyebrow::before{content:'';width:14px;height:1px;background:var(--amber);flex:none}

.splash{position:fixed;inset:0;z-index:60;cursor:pointer;overflow:hidden;
  background:radial-gradient(700px 420px at 50% 35%, rgba(84,214,255,.06), transparent 70%), rgba(5,7,13,.96);
  backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;animation:fadein .25s ease both}
@keyframes fadein{from{opacity:0}to{opacity:1}}
.stamp{animation:stampin .4s cubic-bezier(.2,1.2,.3,1) both}
@keyframes stampin{from{transform:scale(1.04);opacity:0}to{transform:scale(1);opacity:1}}
.pulse{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:.55}50%{opacity:1}}
.shake{animation:shakex .45s ease both}
@keyframes shakex{10%,50%,90%{transform:translateX(-4px)}30%,70%{transform:translateX(4px)}}
.hitcard{border-color:#5a2740}.hitcard::before{background:var(--danger)}
.okcard{border-color:#1e4a3c}.okcard::before{background:var(--ok)}

.sheet{position:fixed;inset:0;z-index:55;background:rgba(4,6,12,.72);display:flex;align-items:flex-end;justify-content:center;animation:fadein .2s ease both}
.sheetin{width:100%;max-width:28rem;background:var(--panel);border:1px solid var(--line);border-bottom:none;
  padding:16px 16px 20px;max-height:82vh;overflow:auto}
.st{font-family:ui-monospace,Menlo,monospace;font-size:10px;letter-spacing:.04em;padding:2px 7px;border:1px solid;text-transform:uppercase;flex:none}
.st-ok{color:var(--ok);border-color:rgba(46,230,168,.4)}
.st-warn{color:var(--amber);border-color:rgba(255,179,71,.45)}
.st-bad{color:var(--danger);border-color:rgba(255,77,109,.5)}
input.ks{background:#090d18;border:1px solid var(--line);padding:12px 14px;color:var(--ink);width:100%;font-family:ui-monospace,Menlo,monospace;font-size:16px}
input.ks:focus{outline:none;border-color:#54d6ff}
input.codeinput{font-size:30px;letter-spacing:.45em;text-align:center;text-transform:uppercase}
.iconbtn{border:1px solid var(--line);background:var(--panel2);padding:5px 10px;color:var(--dim);display:inline-flex;align-items:center}

.pauseband{position:fixed;top:0;left:0;right:0;z-index:70;background:#2a1017;border-bottom:1px solid #5a2740;
  color:#ffb3c2;text-align:center;padding:8px;font-family:ui-monospace,Menlo,monospace;font-size:12px;letter-spacing:.1em;text-transform:uppercase}

/* utilities */
.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}
.flex-1{flex:1;min-width:0}.flex-none{flex:none}
.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-5{gap:20px}
.p-3{padding:12px}.p-4{padding:16px}.p-5{padding:20px}.p-6{padding:24px}
.px-2{padding-left:8px;padding-right:8px}.px-3{padding-left:12px;padding-right:12px}.px-4{padding-left:16px;padding-right:16px}
.py-1{padding-top:4px;padding-bottom:4px}.py-2{padding-top:8px;padding-bottom:8px}.py-4{padding-top:16px;padding-bottom:16px}.py-6{padding-top:24px;padding-bottom:24px}
.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:20px}.mt-auto{margin-top:auto}
.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mx-auto{margin-left:auto;margin-right:auto}
.text-center{text-align:center}.text-right{text-align:right}
.text-xs{font-size:12px}.text-sm{font-size:14px}.text-base{font-size:15.5px}.text-lg{font-size:18px}
.text-xl{font-size:21px}.text-2xl{font-size:25px}.text-3xl{font-size:30px}.text-5xl{font-size:46px}
.font-bold{font-weight:700}.font-extrabold{font-weight:800}
.w-full{width:100%}.max-w-md{max-width:28rem}.min-h-screen{min-height:100vh}
.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dim{color:var(--dim)}.amber{color:var(--amber)}.danger{color:var(--danger)}.ok{color:var(--ok)}
.leading-relaxed{line-height:1.6}

/* admin dashboard */
.admin-shell{width:min(1920px,100%);min-height:100vh;margin:0 auto;padding:14px;display:flex;flex-direction:column;gap:12px}
.admin-command{position:sticky;top:0;z-index:40;background:rgba(7,10,18,.94);backdrop-filter:blur(12px);border:1px solid var(--line);padding:12px}
.admin-command::before{content:'';position:absolute;inset:-1px auto auto -1px;width:36px;height:2px;background:var(--amber)}
.admin-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-actions .btn{min-height:38px}
.admin-answer-time{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:9px;padding:9px 10px;border:1px solid var(--line);background:#090d18}
.admin-answer-time label{display:flex;align-items:center;gap:7px;font:11px ui-monospace,monospace;color:var(--dim)}
.admin-answer-time input.ks{width:82px;padding:7px 9px;font-size:16px;text-align:center}
.admin-metrics{display:grid;grid-template-columns:repeat(6,minmax(110px,1fr));gap:8px}
.admin-metric{background:var(--panel);border:1px solid var(--line);padding:11px 12px;min-width:0}
.admin-metric-value{font:800 24px/1 ui-monospace,SFMono-Regular,Menlo,monospace;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,.75fr);gap:12px;align-items:start}
.admin-stack{display:flex;flex-direction:column;gap:12px;min-width:0}
.admin-section-head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.admin-section-head h2{font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.admin-section-head .count{font:11px ui-monospace,monospace;color:var(--dim)}
.admin-teams{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.admin-team{background:var(--panel2);border:1px solid var(--line);padding:12px;min-width:0}
.admin-kv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}
.admin-kv>div{background:#090d18;border:1px solid var(--line);padding:7px}
.admin-kv b{display:block;font:700 15px ui-monospace,monospace;margin-top:2px}
.admin-table-wrap{overflow:auto;max-height:60vh;border:1px solid var(--line)}
.admin-table{width:100%;border-collapse:collapse;font-size:12px;white-space:nowrap}
.admin-table th{position:sticky;top:0;z-index:2;background:#0a0f1c;color:var(--dim);font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:7px 8px}
.admin-table td{padding:7px 8px;border-top:1px solid var(--line);vertical-align:middle}
.admin-table tr:hover td{background:#10172a}
.admin-player-mobile{display:none}
.admin-progress{height:5px;background:#070a12;border:1px solid var(--line);overflow:hidden}.admin-progress>i{height:100%;display:block;background:var(--amber)}
.admin-tags{display:flex;flex-wrap:wrap;gap:4px}.admin-tag{font:9.5px ui-monospace,monospace;border:1px solid var(--line);padding:2px 5px;color:var(--dim)}
.admin-log{max-height:150px;overflow:auto;margin-top:8px;padding-left:16px}.admin-log li{font-size:11px;color:var(--dim);margin:3px 0}
.admin-question{background:#12100a;border-left:2px solid var(--amber);padding:10px;margin-top:9px}
.admin-option{display:flex;gap:8px;align-items:center;border-top:1px solid rgba(125,138,173,.14);padding:5px 0;font-size:11px}
.admin-vote{font:10px ui-monospace,monospace;color:var(--amber)}
.admin-detail{border-top:1px solid var(--line);padding:8px 0}.admin-detail summary{cursor:pointer;font-size:11px;color:var(--dim)}
.admin-detail-body{padding:8px 0;display:grid;gap:5px}
.admin-empty{padding:22px;text-align:center;color:var(--dim);font-size:13px}
.mobile-only{display:none}
@media (max-width:1100px){
  .admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .admin-shell{padding:8px;gap:8px}
  .admin-command{top:0;padding:9px}
  .admin-command-title{font-size:15px}.admin-code{font-size:11px!important;letter-spacing:.12em!important}
  .admin-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.admin-actions .btn{width:100%;padding:9px 7px}
  .admin-actions .btnacc{grid-column:span 2;font-size:14px}
  .admin-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .admin-metric{padding:8px}.admin-metric-value{font-size:18px}.admin-metric .eyebrow{font-size:8px;letter-spacing:.08em}.admin-metric .eyebrow::before{display:none}
  .admin-teams{grid-template-columns:1fr}.admin-kv{grid-template-columns:repeat(4,minmax(0,1fr))}
  .desktop-only{display:none!important}.mobile-only{display:block}
  .admin-player-mobile{display:flex;flex-direction:column;gap:6px}
  .admin-table-wrap{max-height:none}
  .panel{box-shadow:0 5px 15px rgba(0,0,0,.24)}
  .role-guide{grid-template-columns:1fr}
  .admin-answer-time{grid-template-columns:1fr auto}.admin-answer-time>div{grid-column:1/-1}.admin-answer-time .btn{width:auto}
}
@media (max-width:380px){
  .opt{padding:10px}
  .player-module-icon{flex-basis:42px;width:42px;height:42px}
  .player-module-icon .ks-icon{width:23px;height:23px}
}
