:root{--bg: #f4f6f8;--panel: #ffffff;--panel-2: #e9edf2;--line: #d3d9e0;--text: #171b21;--muted: #5b6673;--accent: #2563a8;--accent-text: #ffffff;--warn: #9c6317;--danger: #b03a32;--ok: #2c7049;--fill-own: rgba(0, 0, 0, .04);--fill-accent: rgba(37, 99, 168, .1);--fill-warn: rgba(156, 99, 23, .12);--fill-warn-line: rgba(156, 99, 23, .35);--fill-ok: rgba(44, 112, 73, .14);--fill-danger: rgba(176, 58, 50, .14);--scrim: rgba(20, 24, 30, .45);--map-sea: #dfe6ee;--map-line: #56606d;--map-link: #8c97a5;--map-unowned: #b9c2cd;--radius: 10px;--tap: 44px;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #16181c;--panel: #1f2228;--panel-2: #272b33;--line: #343943;--text: #e8eaee;--muted: #9aa3b2;--accent: #4c8fd6;--accent-text: #0d1620;--warn: #d98c3f;--danger: #c9524a;--ok: #4f9d69;--fill-own: rgba(255, 255, 255, .035);--fill-accent: rgba(76, 143, 214, .12);--fill-warn: rgba(217, 140, 63, .14);--fill-warn-line: rgba(217, 140, 63, .4);--fill-ok: rgba(79, 157, 105, .18);--fill-danger: rgba(201, 82, 74, .18);--scrim: rgba(0, 0, 0, .55);--map-sea: #11151b;--map-line: #0c0e12;--map-link: #5b6675;--map-unowned: #444c58;color-scheme:dark}}:root[data-theme=dark]{--bg: #16181c;--panel: #1f2228;--panel-2: #272b33;--line: #343943;--text: #e8eaee;--muted: #9aa3b2;--accent: #4c8fd6;--accent-text: #0d1620;--warn: #d98c3f;--danger: #c9524a;--ok: #4f9d69;--fill-own: rgba(255, 255, 255, .035);--fill-accent: rgba(76, 143, 214, .12);--fill-warn: rgba(217, 140, 63, .14);--fill-warn-line: rgba(217, 140, 63, .4);--fill-ok: rgba(79, 157, 105, .18);--fill-danger: rgba(201, 82, 74, .18);--scrim: rgba(0, 0, 0, .55);--map-sea: #11151b;--map-line: #0c0e12;--map-link: #5b6675;--map-unowned: #444c58;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}#root{min-height:100vh;padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}.app{max-width:720px;margin:0 auto;padding:12px 14px 96px}h1,h2,h3{margin:0 0 8px;line-height:1.2}h1{font-size:22px}h2{font-size:17px}h3{font-size:14px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}button{min-height:var(--tap);padding:10px 14px;font:inherit;font-weight:600;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{background:transparent}button.small{min-height:34px;padding:4px 10px;font-size:13px}input,select{min-height:var(--tap);width:100%;padding:8px 10px;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius)}input[type=number]{-moz-appearance:textfield}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.row{display:flex;gap:8px;align-items:center}.row.wrap{flex-wrap:wrap}.row.between{justify-content:space-between}.grow{flex:1 1 auto;min-width:0}.stack{display:flex;flex-direction:column;gap:10px}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code{font:700 30px/1 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.22em;padding:10px 0 4px}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;border-radius:999px;background:var(--panel-2);border:1px solid var(--line)}.dot{width:11px;height:11px;border-radius:50%;flex:none}.statusbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;gap:8px;align-items:center;padding:8px 4px;background:var(--bg);border-bottom:1px solid var(--line);margin-bottom:12px}.statusbar .state{font-size:12px;font-weight:700;padding:3px 8px;border-radius:999px}.state.open{background:var(--fill-ok);color:var(--ok)}.state.connecting,.state.reconnecting{background:var(--fill-warn);color:var(--warn)}.state.offline{background:var(--fill-danger);color:var(--danger)}.themetoggle{min-height:30px;padding:2px 8px;font-size:14px;line-height:1;background:transparent;border-color:transparent}.themetoggle:hover{border-color:var(--line)}.phases{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px}.phases .step{flex:none;font-size:12px;font-weight:600;padding:6px 10px;border-radius:999px;background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.phases .step.now{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.phases .step.done{color:var(--text)}.continent{margin-bottom:14px}.continent>header{display:flex;justify-content:space-between;align-items:baseline;padding:6px 2px;border-bottom:1px solid var(--line);margin-bottom:4px}".terr { display: flex"; align-items: center; gap: 10px; width: 100%; min-height: var(--tap); padding: 6px 8px; border-radius: 8px; background: transparent; border: 1px solid transparent; text-align: left; } .terr:hover{background:var(--panel-2)}.terr.selected{border-color:var(--accent);background:var(--fill-accent)}.terr.mine{background:var(--fill-own)}.terr .name{flex:1 1 auto;min-width:0}.terr .armies{min-width:34px;text-align:right;font-weight:700}.terr.target{border-color:var(--warn)}.stepper{display:flex;align-items:center;gap:6px}.stepper button{min-width:40px;min-height:40px;padding:0;font-size:19px;font-weight:700}.stepper .value{min-width:40px;text-align:center;font-weight:700;font-size:17px}.sheet-scrim{position:fixed;inset:0;background:var(--scrim);z-index:50;display:flex;align-items:flex-end}.sheet{width:100%;max-width:720px;margin:0 auto;background:var(--panel);border-radius:16px 16px 0 0;border-top:1px solid var(--line);padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px))}.warnrow{padding:8px 0;border-bottom:1px solid var(--line)}.warnrow:last-of-type{border-bottom:0}.sev{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.sev.illegal{color:var(--danger)}.sev.unusual{color:var(--warn)}.notice{display:flex;gap:8px;align-items:center;padding:10px 12px;margin-bottom:12px;border-radius:var(--radius);background:var(--fill-warn);border:1px solid var(--fill-warn-line);font-size:14px}.odds{display:flex;gap:14px;flex-wrap:wrap;padding:10px 12px;border-radius:var(--radius);background:var(--panel-2)}.odds .figure{font-size:20px;font-weight:700}.odds .label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.dicerow{display:flex;gap:6px;flex-wrap:wrap}.die{width:44px;height:44px;font-size:18px;font-weight:700;text-align:center;padding:0}.breakdown{display:grid;grid-template-columns:1fr auto;gap:2px 12px;font-size:14px}.breakdown .total{border-top:1px solid var(--line);padding-top:6px;margin-top:4px;font-weight:700}.bar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--panel);border-top:1px solid var(--line);padding:10px 14px calc(10px + env(safe-area-inset-bottom,0px))}.bar .inner{max-width:720px;margin:0 auto;display:flex;gap:8px;align-items:center}.mapwrap{position:relative;margin-bottom:12px}.map{display:block;width:100%;height:auto;background:var(--map-sea);border:1px solid var(--line);border-radius:var(--radius);touch-action:none;-webkit-user-select:none;user-select:none}.terrshape path{stroke:var(--map-line);stroke-width:1}.terrshape .hit{fill:transparent}.terrshape.mine path:first-child{stroke-width:1.6}.terrshape.selected path:first-child{stroke:var(--accent);stroke-width:3.5}.terrshape.target path:first-child{stroke:var(--warn);stroke-width:2.5}.terrshape path:first-child{transition:stroke-width .12s ease}.links line{stroke:var(--map-link);stroke-width:1.4;stroke-dasharray:6 6;opacity:.85}.badge circle{fill:var(--panel);stroke:var(--map-line);stroke-width:1.2}.badge text{text-anchor:middle}.badge .tcount{font-size:13px;font-weight:700;fill:var(--text);font-variant-numeric:tabular-nums}.badge .tname{font-size:11px;font-weight:600;fill:var(--text);paint-order:stroke;stroke:var(--map-sea);stroke-width:3px;stroke-linejoin:round}.mapzoom{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:4px}.mapzoom button{min-width:36px;min-height:36px;padding:0;background:var(--panel);opacity:.94}.viewtoggle{display:flex;gap:4px;margin-bottom:10px}.viewtoggle button{flex:1 1 0;min-height:36px;font-size:13px}.viewtoggle button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}
