:root{--bg:#0b0e13;--bg-1:#11151c;--bg-2:#161b24;--bg-3:#1c2330;--line:#ffffff14;--line-2:#ffffff24;--text:#d6dde8;--text-2:#9aa6b8;--text-3:#66738a;--accent:#3b82f6;--accent-2:#22d3ee;--accent-bg:#3b82f624;--ok:#22c55e;--warn:#f59e0b;--bad:#ef4444;--team1:#3b82f6;--team2:#ef4444;--radius:2px;--rail:76px;--cmd:48px;--font:"Inter", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 var(--font);-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}b{font-weight:600}small{font-size:11px}.mono,.num,input[type=number],.kpi b,.ind b{font-family:var(--mono);font-variant-numeric:tabular-nums}.dim{color:var(--text-3)}.err{color:var(--bad)}.up{color:var(--ok)}.down{color:var(--bad)}.team1{color:var(--team1)}.team2{color:var(--team2)}.lbl{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:600}.note{color:var(--text-2);margin:0 0 10px;font-size:12px}[hidden]{display:none!important}button{cursor:pointer}.primary,.ghost,.seg,select,input{border-radius:var(--radius);border:1px solid var(--line-2);background:var(--bg-2);padding:5px 10px}.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.primary:hover{filter:brightness(1.1)}.ghost:hover,.seg:hover{border-color:var(--text-3)}.sm{padding:3px 8px;font-size:12px}.seg{color:var(--text-2);align-items:center;gap:6px;padding:3px 9px;font-size:12px;display:inline-flex;position:relative}.seg.on{background:var(--accent-bg);border-color:var(--accent);color:var(--text)}.segs{flex-wrap:wrap;gap:6px;display:flex}.link{color:var(--text);text-align:left;background:0 0;border:0;padding:0}.link:hover{color:var(--accent-2);text-decoration:underline}input:focus,select:focus{outline:1px solid var(--accent);outline-offset:-1px}.chk{color:var(--text-2);align-items:center;gap:5px;font-size:12px;display:inline-flex}.chk input{padding:0}.dot{background:var(--warn);border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}#login-screen{place-items:center;min-height:100%;display:grid}#login-screen:has(>.login[hidden]){display:none}.login{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);gap:14px;width:320px;padding:28px;display:grid}.login h2{color:var(--text-2);margin:0;font-size:14px;font-weight:600}.login label{color:var(--text-2);gap:5px;font-size:12px;display:grid}.brand{font:600 13px var(--mono);letter-spacing:.18em;align-items:center;gap:10px;display:flex}.brand small{color:var(--accent);letter-spacing:.1em}.mark{border:2px solid var(--accent);width:14px;height:14px;display:inline-block;transform:rotate(45deg)}.message{background:var(--bg-3);border:1px solid var(--line-2);border-radius:var(--radius);z-index:30;margin:0;padding:8px 14px;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.message.error{border-color:var(--bad);color:#fecaca}.app{grid-template-columns:var(--rail) 1fr;grid-template-rows:var(--cmd) 1fr;height:100vh;display:grid}.rail{background:var(--bg-1);border-right:1px solid var(--line);flex-direction:column;grid-row:1/3;align-items:stretch;display:flex}.rail-brand{height:var(--cmd);border-bottom:1px solid var(--line);place-items:center;display:grid}#tabs{flex-direction:column;padding:6px 0;display:flex}#tabs button{color:var(--text-3);letter-spacing:.04em;background:0 0;border:0;border-left:2px solid #0000;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:10px;display:flex;position:relative}#tabs button:hover{color:var(--text);background:var(--bg-2)}#tabs button.on{color:var(--text);border-left-color:var(--accent);background:var(--accent-bg)}#tabs button.on .ic{color:var(--accent)}.cmd{background:var(--bg-1);border-bottom:1px solid var(--line);align-items:center;gap:16px;min-width:0;padding:0 16px;display:flex}.cmd-search{flex:0 440px;position:relative}#search{background:var(--bg);width:100%;padding:6px 10px}.suggest{background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius);z-index:40;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 12px 30px #00000080}.suggest button{text-align:left;background:0 0;border:0;grid-template-columns:76px auto 1fr;align-items:center;gap:10px;width:100%;padding:6px 10px;display:grid}.suggest button.on,.suggest button:hover{background:var(--accent-bg)}.suggest .dim{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.kind{font:600 10px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}.kind.resident{color:var(--accent-2)}.kind.player{color:var(--ok)}.kind.param{color:var(--warn)}.ind{white-space:nowrap;gap:18px;margin-left:auto;display:flex}.ind-i{flex-direction:column;line-height:1.2;display:flex}.ind-i .lbl{font-size:9px}.ind-i b{font-size:12px;font-weight:500}.ind-i.live b{color:var(--accent-2)}.ind-i.bad b{color:var(--bad)}.who{color:var(--text-2);font-family:var(--mono);align-items:center;gap:8px;font-size:12px;display:flex}.who select{padding:3px 6px}.who .ghost{font-size:12px;font-family:var(--font);padding:3px 8px}#content{min-width:0;padding:12px 16px 64px;overflow:auto}#content.view-live{padding-bottom:12px}.pnl{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;min-width:0;margin-bottom:12px;display:flex}.pnl-h{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;min-height:34px;padding:4px 10px;display:flex}.pnl-x{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.pnl-b{flex:1;min-height:0;padding:10px}.scroll{min-height:0;overflow:auto}h3.sub,h4.sub{text-transform:uppercase;letter-spacing:.08em;color:var(--text-2);margin:14px 0 6px;font-size:11px;font-weight:600}h3.sub:first-child,h4.sub:first-child{margin-top:0}.tbl{border-collapse:collapse;width:100%;font-size:12px}.tbl th,.tbl td{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;padding:4px 8px}.tbl thead th{background:var(--bg-1);color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;z-index:1;white-space:nowrap;font-size:10px;font-weight:600;position:sticky;top:0}.tbl tbody tr:hover{background:var(--bg-2)}.tbl .num{text-align:right;white-space:nowrap}.tbl small{display:block}.tbl td small.dim,.tbl td small.up,.tbl td small.down{display:inline}.tbl tr.bot,.tbl tr.off{color:var(--text-2)}th.sort{cursor:pointer}th.sort:hover,th.sort.on{color:var(--text)}.none{color:var(--text-3)}.pill{border-radius:var(--radius);font:500 10px/18px var(--mono);text-transform:uppercase;letter-spacing:.06em;border:1px solid;padding:0 6px;display:inline-block}.pill.ok{color:var(--ok);background:#22c55e14;border-color:#22c55e66}.pill.warn{color:var(--warn);background:#f59e0b14;border-color:#f59e0b66}.pill.bad{color:var(--bad);background:#ef444414;border-color:#ef444466}.pill.live{color:var(--accent-2);background:#22d3ee14;border-color:#22d3ee66}.pill.off{color:var(--text-3);border-color:var(--line-2)}.st,.doing{font:500 11px var(--mono)}.st.world,.st.arena,.doing.fighting{color:var(--warn)}.st.online,.doing.roaming{color:var(--ok)}.st.idle,.st.offline,.doing.dead{color:var(--text-3)}.doing.camp{color:var(--accent)}.ev{font:500 10px/16px var(--mono);border-radius:var(--radius);background:var(--bg-3);color:var(--text-2);white-space:nowrap;padding:0 5px}.ev-kill,.ev-hourly{color:var(--ok)}.ev-death{color:var(--bad)}.ev-arena{color:var(--accent-2)}.ev-upgrade,.ev-stones,.ev-tuning{color:var(--warn)}.ev-session,.ev-join,.ev-quest{color:var(--accent)}.chips{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.chip{border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:5px;padding:1px 6px 1px 1px;font-size:11px;display:inline-flex}.meter,.bar,.hpbar{background:var(--bg-3);vertical-align:middle;border-radius:1px;height:4px;display:inline-block;overflow:hidden}.meter{width:56px;margin-right:6px}.meter i,.bar i,.hpbar i{background:var(--accent);height:100%;display:block}.meter.weak i{background:var(--text-3)}.meter.good i{background:var(--ok)}.hpbar{width:64px}.hpbar i{background:var(--ok)}.kpis{background:var(--line);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:1px;margin-bottom:12px;display:grid}.kpi{background:var(--bg-1);flex-direction:column;gap:2px;min-width:0;padding:8px 10px;display:flex}.kpi .lbl{white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;overflow:hidden}.kpi b{font-size:20px;font-weight:500;line-height:1.1}.kpi.live b{color:var(--accent-2)}.kpi.warn b{color:var(--warn)}.kpi.bad b{color:var(--bad)}.kpis.sm .kpi b{font-size:15px}.spks{grid-template-columns:1fr 1fr;gap:10px;display:grid}.spk{grid-template-columns:1fr auto;align-items:baseline;gap:2px 8px;display:grid}.spk b{font-size:14px;font-weight:500}.spk .spark{grid-column:1/3;width:100%}.spark .line{fill:none;stroke:var(--accent-2);stroke-width:1.3px}.spark .area{fill:#22d3ee14}.spark circle{fill:var(--accent-2)}.board{flex-direction:column;height:100%;min-height:0;display:flex}.board .kpis{flex:none}.board-grid{flex:1;grid-template-columns:minmax(0,1fr) 360px;gap:12px;min-height:0;display:grid}.board-main,.board-side{flex-direction:column;gap:12px;min-height:0;display:flex}.board-main .pnl,.board-side .pnl{margin:0}.pnl.rooms{flex:none}.pnl.accounts{flex:1;min-height:160px}.pnl.accounts .pnl-b{padding:0;overflow:auto}.pnl.accounts .note{padding:10px}.pnl.stream-pnl{flex:1;min-height:0}.pnl.stream-pnl .pnl-b{padding:0;overflow:auto}.live-dot{background:var(--ok);border-radius:50%;width:7px;height:7px;animation:2s infinite pulse;box-shadow:0 0 0 3px #22c55e2e}@keyframes pulse{50%{box-shadow:0 0 0 5px #22c55e0d}}.room-cards{gap:6px;margin-bottom:10px;display:flex;overflow-x:auto}.room-card{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);text-align:left;flex:none;align-items:center;gap:8px;padding:4px 10px 4px 4px;display:flex}.room-card.on{border-color:var(--accent);background:var(--accent-bg)}.room-card canvas{border:1px solid var(--line);width:40px;height:40px}.room-card span{flex-direction:column;font-size:12px;line-height:1.3;display:flex}.room-card small{color:var(--text-3)}.room-main{grid-template-columns:440px minmax(0,1fr);gap:12px;display:grid}.map-wrap{border:1px solid var(--line);width:440px;height:440px;position:relative}.map-wrap canvas{cursor:crosshair;width:100%;height:100%;display:block}.map-tip{pointer-events:none;border:1px solid var(--line-2);border-radius:var(--radius);white-space:nowrap;z-index:2;background:#0b0e13f0;padding:4px 8px;font-size:12px;position:absolute}.room-side{flex-direction:column;min-height:0;max-height:440px;display:flex}.room-side .scroll{flex:1}.room-meta{border-bottom:1px solid var(--line);margin-bottom:4px;padding-bottom:8px}.room-meta .perf{white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10.5px;overflow:hidden}.stream{margin:0;padding:0;font-size:12px;list-style:none}.stream li{border-bottom:1px solid var(--line);grid-template-columns:62px auto auto 1fr;align-items:center;gap:6px;padding:3px 10px;display:grid}.stream li .dim:last-child{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.stream li.admin{background:#f59e0b0d}.stream b{white-space:nowrap}.res-pnl select{padding:3px 6px;font-size:12px}.dossier-h{border-bottom:1px solid var(--line);align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.dossier-h h2{margin:0;font-size:20px;font-weight:600}.dossier{grid-template-columns:1fr 1fr;align-items:start;gap:12px;display:grid}.dossier .col{min-width:0}.kv{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr;gap:10px;padding:3px 0;font-size:12px;display:grid}.kv:last-child{border-bottom:0}.kv .k{color:var(--text-3)}.quests{margin:0 0 6px;padding:0;list-style:none}.quests li{grid-template-columns:1fr auto;gap:2px 10px;padding:4px 0;font-size:12px;display:grid}.quests li .bar{grid-column:1/3;width:100%;height:3px}.quests li.done{color:var(--text-2)}.quests li.done .bar i{background:var(--ok)}.tiers{gap:3px;display:inline-flex}.tiers i{border:1px solid var(--line-2);border-radius:1px;width:8px;height:8px}.tiers i.on{background:var(--accent);border-color:var(--accent)}.timeline{border-left:1px solid var(--line-2);margin:0;padding:0 0 0 10px;font-size:12px;list-style:none}.timeline li{grid-template-columns:150px auto 1fr auto;align-items:start;gap:8px;padding:3px 0 3px 8px;display:grid;position:relative}.timeline li:before{content:"";background:var(--bg);border:1px solid var(--accent);border-radius:50%;width:7px;height:7px;position:absolute;top:9px;left:-14px}.timeline .det{word-break:break-word;color:var(--text-2)}.timeline .ctx{white-space:nowrap}td.det{text-overflow:ellipsis;white-space:nowrap;max-width:480px;overflow:hidden}.groups{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.tbl.grid td,.tbl.grid th{padding:3px 6px}.tbl.grid tbody th{color:var(--text-2);white-space:nowrap;font-weight:500}.tbl.rules{width:auto;min-width:640px}.tbl.rules th{font-weight:500}.tbl.rules th small{font-size:10.5px;display:block}.cell{flex-direction:column;gap:2px;display:flex}.cell input{background:var(--bg);text-align:right;width:96px;padding:2px 6px;font-size:12px}.cell.overridden input{border-color:var(--accent);color:#bfdbfe}.cell.edited input{border-color:var(--warn);color:#fde68a;background:#f59e0b14}.cell.invalid input{border-color:var(--bad);background:#ef44441a}.cell.flash input{animation:1.6s ease-out 2 flash}@keyframes flash{0%{box-shadow:0 0 0 3px var(--accent-2)}to{box-shadow:0 0 #0000}}.def{color:var(--text-3);font-family:var(--mono);font-size:10.5px}.reset{color:var(--accent-2);background:0 0;border:0;padding:0 2px}#savebar{left:calc(var(--rail) + 16px);background:var(--bg-3);border:1px solid var(--warn);border-radius:var(--radius);z-index:20;justify-content:flex-end;align-items:center;gap:10px;padding:8px 12px;display:flex;position:fixed;bottom:12px;right:16px;box-shadow:0 10px 30px #00000080}#pending{font-family:var(--mono);color:var(--warn);margin-right:auto}.feedback .fb-text{white-space:pre-wrap;max-width:640px}.feedback tr.fb-new td:first-child{box-shadow:inset 2px 0 var(--accent-2)}.feedback tr.fb-fixed,.feedback tr.fb-wontfix{color:var(--text-3)}.feedback select{padding:2px 6px;font-size:12px}@media (width<=1200px){.board-grid,.room-main{grid-template-columns:1fr}.map-wrap{aspect-ratio:1;width:100%;max-width:440px;height:auto}.dossier{grid-template-columns:1fr}.ind-i:nth-child(-n+2){display:none}}
