:root{--bg:#0b0f17;--panel:#131a26;--panel-2:#1a2333;--border:#26314a;--text:#e6edf7;--muted:#8b98ad;--accent:#c8a94f;--p1:#4f9cf8;--p2:#f8674f;--good:#4fc88a;--bad:#f8674f}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px}body,button,html{color:var(--text)}button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);border-radius:8px;padding:8px 14px;transition:background .15s ease,border-color .15s ease}button:hover:not(:disabled){background:#232f47;border-color:#3a4a6e}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#1a1405;font-weight:600}button.primary:hover:not(:disabled){background:#dabb66}input,select{font:inherit;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px}.app{max-width:1400px;margin:0 auto;padding:20px}.header{display:flex;align-items:baseline;gap:12px;margin-bottom:16px}.header h1{font-size:22px;margin:0;letter-spacing:.5px}.header .sub{color:var(--muted)}.setup{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:16px}.setup .field{display:flex;flex-direction:column;gap:6px;min-width:240px;flex:1 1}.setup .field.small{min-width:120px;flex:0 0 auto}.setup label{font-size:12px;text-transform:uppercase;letter-spacing:.5px}.setup label,.vs{color:var(--muted)}.vs{font-weight:700;padding-bottom:8px}.layout{display:grid;grid-template-columns:1fr 360px;grid-gap:16px;gap:16px}@media (max-width:1000px){.layout{grid-template-columns:1fr}}.board{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}.scoreboard{display:flex;justify-content:space-between;align-items:center;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:10px 14px}.score{display:flex;flex-direction:column;gap:2px}.score .who{font-weight:700;font-size:13px}.score .pts{font-size:24px;font-weight:800}.score .meta{color:var(--muted);font-size:12px}.score.p1 .who{color:var(--p1)}.score.p2 .who{color:var(--p2);text-align:right}.score.p2{align-items:flex-end}.turninfo{text-align:center;color:var(--muted);font-size:12px}.turninfo .phase{color:var(--text);font-weight:600;font-size:14px;text-transform:capitalize}.battlefields{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:10px;gap:10px}.bf{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--panel-2)}.bf .bfname{font-weight:700;font-size:13px;margin-bottom:6px}.bf .ctrl{font-size:11px;margin-bottom:8px;color:var(--muted)}.bf .ctrl.p1{color:var(--p1)}.bf .ctrl.p2{color:var(--p2)}.bf .ctrl.contested{color:var(--accent)}.zone-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.cards{display:flex;flex-wrap:wrap;gap:6px;min-height:10px}.card{width:118px;border:1px solid var(--border);border-radius:8px;background:#10182a;padding:6px 8px;display:flex;flex-direction:column;gap:3px;position:relative}.card .cname{font-size:11px;font-weight:700;line-height:1.15}.card .cstats{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.card .ctext{font-size:10px;color:#9fb0c9;line-height:1.2;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card .flags{display:flex;gap:4px;flex-wrap:wrap}.badge{font-size:9px;padding:1px 4px;border-radius:4px;background:#22304b;color:#b8c6de}.badge.exhausted{background:#3a2b12;color:#e0b46a}.badge.dmg{background:#4a1c1c;color:#f0a0a0}.badge.buffed{background:#153a26;color:#7fd9a8}.card.exhausted{opacity:.6}.card.mine-p1{border-left:3px solid var(--p1)}.card.mine-p2{border-left:3px solid var(--p2)}.player-strip{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--panel-2)}.player-strip .pheader{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.player-strip .pname{font-weight:700;font-size:13px}.player-strip.p1 .pname{color:var(--p1)}.player-strip.p2 .pname{color:var(--p2)}.player-strip .pmeta{color:var(--muted);font-size:11px}.player-strip.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.controls{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.controls .spacer{flex:1 1}.status{color:var(--muted);font-size:13px}.sidebar{display:flex;flex-direction:column;gap:12px;min-height:0}.reasoning{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px;min-height:80px}.reasoning .who{font-weight:700;font-size:12px;margin-bottom:6px}.reasoning .body{white-space:pre-wrap;color:#c7d3e6;font-size:12.5px;line-height:1.45}.log{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:12px;overflow-y:auto;max-height:60vh;display:flex;flex-direction:column;gap:6px}.log .entry{font-size:12px;line-height:1.35;padding:6px 8px;border-radius:6px;background:var(--panel-2)}.log .entry .who{font-weight:700;margin-right:6px}.log .entry.p1 .who{color:var(--p1)}.log .entry.p2 .who{color:var(--p2)}.log .entry.auto{color:var(--muted);background:transparent;padding:2px 8px}.log .entry.system{color:var(--accent);font-weight:600}.log .entry.error{color:var(--bad)}.log .entry details{margin-top:4px}.log .entry summary{cursor:pointer;color:var(--muted);font-size:11px}.log .entry pre{white-space:pre-wrap;font-size:11px;color:#aebcd4;margin:6px 0 0}.empty{background:var(--panel);border:1px dashed var(--border);border-radius:12px;padding:60px 20px;text-align:center;color:var(--muted)}