:root{--bg: #f4efe3;--panel: #fffaf0;--ink: #2b2620;--muted: #7a6f60;--line: #d8ccb2;--accent: #9a5a32;--error: #b3261e;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #1d1b18;--panel: #26231f;--ink: #ece4d4;--muted: #a59a88;--line: #3d382f;--accent: #d08a5a;--error: #ff8a80}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button{font:inherit;padding:6px 12px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:6px;cursor:pointer}button:disabled{opacity:.5;cursor:default}.muted{color:var(--muted)}.error{color:var(--error);margin-top:6px}.page-msg{padding:32px}.lobby{max-width:640px;margin:0 auto;padding:32px 16px;display:flex;flex-direction:column;gap:12px}.lobby label{display:flex;flex-direction:column;gap:4px}.lobby label.check{flex-direction:row;align-items:center;gap:8px}.lobby select{font:inherit;padding:6px}.invites code{font-size:12px;word-break:break-all;color:var(--muted)}.game{display:grid;grid-template-columns:1fr 360px;grid-template-rows:auto 1fr;height:100vh}.topbar{grid-column:1 / 3;display:flex;gap:16px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}.topbar .grow{flex:1}.topbar .seat{color:#fff;padding:2px 8px;border-radius:4px}.topbar .turn.mine{color:var(--accent);font-weight:600}.board{position:relative;overflow:hidden}.map-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.side{border-left:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}.prompt{padding:10px 12px;border-bottom:1px solid var(--line)}.prompt .label{font-size:12px;color:var(--muted);text-transform:uppercase}.actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tabs{display:flex;border-bottom:1px solid var(--line)}.tabs button{flex:1;border:none;border-radius:0;background:none}.tabs button.on{border-bottom:2px solid var(--accent);font-weight:600}.panel{padding:10px 12px;overflow:auto;flex:1;min-height:0}.panel h3{margin:0 0 8px}.panel h3 small{color:var(--muted);font-weight:400}.stack{margin-bottom:12px}.stack-head{border-left:4px solid;padding-left:6px;font-weight:600;margin-bottom:4px}.unit{padding:4px 0 4px 6px;border-bottom:1px solid var(--line)}.unit.attached{padding-left:18px}.unit-detail{font-size:12px;color:var(--muted)}.dump{font-size:13px;padding:4px 0}.log-entry{font-size:12px;padding:3px 0;border-bottom:1px solid var(--line);word-break:break-word}.log-when{color:var(--muted)}.log-kind{font-weight:600}.report{padding:8px 12px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:6px}.report textarea{width:100%;min-height:60px;font:inherit}@media(max-width:800px){.game{grid-template-columns:1fr;grid-template-rows:auto 55vh 1fr}.topbar{grid-column:1}.side{border-left:none;border-top:1px solid var(--line)}}.orders{padding:10px 12px;border-bottom:1px solid var(--line)}.orders .label{font-size:12px;color:var(--muted);text-transform:uppercase}.tracing{margin:6px 0}.draft-row{font-size:13px;padding:3px 0}button.small{padding:1px 6px;font-size:12px;margin-left:6px}.verdict{margin-top:8px;font-size:13px}.unit-name{display:flex;align-items:center;justify-content:space-between}.row{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:13px}.row input[type=number]{width:64px;font:inherit}.row select{font:inherit;max-width:220px}label.inline{display:inline-flex;align-items:center;gap:4px;margin-right:10px;font-size:13px}.pick-list{max-height:240px;overflow:auto;margin:6px 0}.force-row{display:flex;justify-content:space-between;width:100%;border:none;border-bottom:1px solid var(--line);border-radius:0;background:none;text-align:left;padding:5px 2px}.force-row:hover{background:var(--bg)}.side>.verdict{padding:6px 12px;border-bottom:1px solid var(--line);font-size:13px}.outcome{padding:10px 12px;border-bottom:1px solid var(--line)}.outcome.won{background:#2e7d32;color:#fff}.outcome.lost{background:#8e2a1e;color:#fff}.outcome.drawn{background:#5d5a52;color:#fff}.convoy{border-top:1px solid var(--line, #ccc);padding:6px 0}.convoy.here{background:#d18b0014}.load-row{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;margin:4px 0}.load-row input{width:4.5em}.force-line{display:flex;gap:6px;align-items:center}.force-line .force-row{flex:1}.formation-sheet{overflow-x:auto;margin:4px 0 10px;font-size:12px}.formation-sheet table{border-collapse:collapse;width:100%}.formation-sheet th,.formation-sheet td{border-bottom:1px solid var(--line);padding:2px 4px;text-align:left;white-space:nowrap}
