:root{--bg: #0b0f17;--card: #141a26;--card-2: #1c2433;--line: #263043;--text: #eef1f6;--muted: #8b95a8;--accent: #ffd23f;--danger: #ff4747;--ok: #22c55e;--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--num: "Bahnschrift", "DIN Condensed", "Roboto Condensed", system-ui, sans-serif;color-scheme:dark}*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);font-family:var(--font)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation}button:active:not(:disabled){transform:scale(.97)}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 12px;width:100%;min-width:0}input[type=color]{padding:2px;height:46px;width:56px;flex:none}input[type=checkbox]{width:18px;height:18px;padding:0;accent-color:var(--accent);flex:none}label{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:12px 0 6px}code{font-family:ui-monospace,Consolas,monospace;font-size:.92em}h1{font-size:22px}.num{font-family:var(--num);font-variant-numeric:tabular-nums}.note{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.45}.error{color:#ffb3b3;font-size:14px;margin-top:10px}.ok-text{color:var(--ok)}.muted{color:var(--muted)}.grow{flex:1}.boot{padding:40px;text-align:center;color:var(--muted)}.top{position:sticky;top:0;z-index:5;background:#0b0f17f5;backdrop-filter:blur(8px);border-bottom:1px solid var(--line);padding:calc(10px + env(safe-area-inset-top)) 16px 0}.top>:last-child:not(nav){padding-bottom:10px}.status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--danger);flex:none}.dot.ok{background:var(--ok)}.pill{font-size:12px;font-weight:700;letter-spacing:.1em;padding:4px 10px;border-radius:99px;background:var(--card-2);color:var(--muted)}.pill.live,.pill.rp{background:var(--danger);color:#fff}.who{display:flex;gap:14px;align-items:center;font-size:13px;color:var(--muted);margin-top:6px}.who span{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.linkish{color:var(--accent);font-size:13px;padding:0}.tabs{display:flex;gap:4px;margin-top:10px;overflow-x:auto}.tabs>*{flex:1;text-align:center;padding:10px 6px 12px;font-size:14px;font-weight:600;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}.tabs>*:hover{text-decoration:none;color:var(--text)}.tabs>.on{color:var(--text);border-color:var(--accent)}.offline{background:var(--danger);color:#fff;text-align:center;font-size:13px;padding:6px}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:15px;color:var(--text);letter-spacing:.04em}.brand-dot{width:12px;height:12px;border-radius:50%;background:var(--danger);box-shadow:0 0 0 3px var(--accent)}.wrap{padding:14px 16px;max-width:760px;margin:0 auto}.wrap.wide{max-width:1100px}.control.has-replaybar{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;margin-bottom:14px}.card h3{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;font-weight:600;margin-bottom:10px}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:100%;max-width:380px;padding:24px}.teams{display:grid;grid-template-columns:1fr 1fr;gap:12px}.team{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.team .bar{height:6px}.team .in{padding:12px}.team .nm{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team .sc{font-size:64px;line-height:1;text-align:center;margin:8px 0 10px}.goal{width:100%;padding:16px 0;border-radius:12px;font-weight:800;font-size:18px;letter-spacing:.08em;color:#fff}.scorer{margin-top:8px;font-size:14px;padding:9px 10px}.row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px}.row .lbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex:1 0 100%}.row .v{font-size:24px;min-width:30px;text-align:center}.row .v.warn{color:var(--danger)}.row .sq{flex:1}.sq{height:40px;min-width:40px;border-radius:10px;background:var(--card-2);font-size:20px;font-weight:700}.minus1{width:100%;margin-top:8px;padding:9px;border-radius:10px;background:var(--card-2);font-size:13px;color:var(--muted)}.clock{text-align:center;font-size:72px;line-height:1;padding:6px 0 12px}.clock.final{color:var(--danger)}.big{width:100%;padding:18px;border-radius:14px;font-size:20px;font-weight:800;letter-spacing:.08em}.big.start{background:var(--ok);color:#04210f}.big.stop{background:var(--danger);color:#fff}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn{padding:13px 12px;border-radius:12px;background:var(--card-2);font-weight:600;font-size:15px}.btn.on,.btn.primary{background:var(--accent);color:#111}.btn.warn{background:transparent;border:1px solid var(--danger);color:var(--danger)}.btn.full{width:100%;margin-top:8px}.split{display:flex;gap:8px;align-items:flex-end}.busy{opacity:.5;pointer-events:none}.replaybar{position:fixed;left:0;right:0;bottom:0;z-index:6;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#0b0f17f7;border-top:1px solid var(--line)}.replaybar button{padding:18px 4px;border-radius:14px;font-weight:800;font-size:15px;letter-spacing:.06em}.rp1{background:var(--danger);color:#fff}.rp2{background:#7c2d12;color:#fff}.rpl{background:var(--ok);color:#04210f}.toast{position:fixed;left:16px;right:16px;bottom:calc(100px + env(safe-area-inset-bottom));z-index:9;max-width:560px;margin:0 auto;background:#2a1416;border:1px solid var(--danger);color:#ffd7d7;border-radius:12px;padding:12px 14px;font-size:14px;animation:toast-in .2s ease;pointer-events:none}.toast.good{background:#0f2418;border-color:var(--ok);color:#d4f7e1}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)}}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 14px}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}.filters input,.filters select{max-width:320px}.check{display:flex;align-items:center;gap:10px;margin:0;padding:6px 0;font-size:14px;color:var(--text);text-transform:none;letter-spacing:0;cursor:pointer}.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:0 12px}.list{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden}.list-head,.list-row{display:grid;gap:12px;align-items:center;padding:12px 14px;text-align:left;width:100%}.list-head{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line)}.list-row{border-bottom:1px solid var(--line);font-size:14px}.list-row:last-child{border-bottom:0}.list-row:hover{background:var(--card-2)}.list-row:active{transform:none}.list-row strong{display:block}.list-row small{display:block;color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis}.users-grid{grid-template-columns:2fr 1fr 2fr 90px}.perms-grid{grid-template-columns:1.2fr 2fr 1fr}.matches-grid{grid-template-columns:2fr 1fr 1.2fr 1fr}.score-cell{font-size:20px}.score-cell small{display:inline;font-size:13px}.log-title{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:16px 0 6px}.log{max-height:50vh;overflow-y:auto}.pad{padding:14px;margin:0}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-style:normal;font-size:12px;padding:3px 8px;border-radius:99px;background:var(--card-2);color:var(--muted);border:1px solid var(--line)}.chip.on{background:#ffd23f1f;color:var(--accent);border-color:#ffd23f59}.role-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.role-card{text-align:left;margin:0}.role-card:hover{border-color:var(--accent)}.role-card:active{transform:none}.role-title{display:flex;align-items:center;gap:8px}.grow-right{margin-left:auto;font-size:13px}.perm-group{border:1px solid var(--line);border-radius:12px;padding:4px 12px 8px;margin-top:14px}.perm-group legend{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;padding:0 6px;display:flex;gap:10px;align-items:center}.perm-group .check span{display:flex;flex-direction:column}.split-cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}.kv{display:flex;align-items:baseline;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px;flex-wrap:wrap}.kv:last-child{border-bottom:0}.kv.col{flex-direction:column;align-items:stretch;gap:6px}.modal-back{position:fixed;inset:0;z-index:20;background:#0009;display:grid;place-items:start center;padding:6vh 16px 16px;overflow-y:auto}.modal{width:100%;max-width:560px;padding:20px;margin:0}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.modal-head h2{font-size:18px}.icon{width:36px;height:36px;border-radius:10px;color:var(--muted)}.icon:hover{background:var(--card-2)}.modal-foot{display:flex;gap:8px;align-items:center;margin-top:18px}@media (max-width: 720px){.list-head{display:none}.users-grid,.perms-grid,.matches-grid{grid-template-columns:1fr;gap:6px}.split-cards{grid-template-columns:1fr}.toolbar .btn,.modal-foot .btn{flex:1}.filters input,.filters select{max-width:none}}
