:root{--ink:#e8edf2;--ink-soft:#9fb0c0;--surface:#1d2733;--surface-raised:#283545;--surface-line:#3a4a5c;--accent:#e0b04a;--accent-ink:#2a2110;--good:#6fbf73;--bad:#e2695c;--radius:8px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);overscroll-behavior:none;background:#a8cde0;margin:0;overflow:hidden}#app{position:fixed;inset:0}canvas{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#loading{background:var(--surface);place-items:center;margin:0;font-size:1.1rem;display:grid;position:absolute;inset:0}#version{right:calc(6px + env(safe-area-inset-right));bottom:calc(4px + env(safe-area-inset-bottom));color:#1e283299;pointer-events:none;font-size:.65rem;position:absolute}#hud{pointer-events:none;font-size:.875rem;line-height:1.4;position:absolute;inset:0}#hud>*{pointer-events:auto}button,select{font:inherit;color:inherit}button{background:var(--surface-raised);border:1px solid var(--surface-line);cursor:pointer;border-radius:6px;min-height:32px;padding:6px 10px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.danger{background:#8f342c;border-color:#b5463b}button.big{padding:12px 18px;font-size:1rem}button.link{color:#8fc4ee;text-align:left;text-underline-offset:2px;background:0 0;border:none;min-height:0;padding:0;text-decoration:underline}.icon{vertical-align:-3px;flex:none}.muted{color:var(--ink-soft)}.small{font-size:.78rem}.number{font-variant-numeric:tabular-nums}.is-bad{color:var(--bad)}.row{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0;display:flex}.spacer{flex:1}.top-bar{padding:calc(6px + env(safe-area-inset-top)) calc(8px + env(safe-area-inset-right)) 6px calc(8px + env(safe-area-inset-left));border-bottom:1px solid var(--surface-line);background:#1d2733f0;flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex;position:absolute;top:0;left:0;right:0}.is-choosing .top-bar .resources,.is-choosing .top-bar .status,.is-choosing .map-controls{visibility:hidden}.resources,.status,.menu,.speeds{align-items:center;gap:4px;display:flex}.resources{scrollbar-width:none;flex:auto;min-width:0;overflow-x:auto}.resource{white-space:nowrap;background:#ffffff0d;border:1px solid #0000;border-radius:6px;align-items:center;gap:4px;min-height:28px;padding:3px 7px;display:inline-flex}.resource .flow{color:var(--good);font-size:.75rem}.resource .flow.is-bad,.resource.is-bad{color:var(--bad)}.speed{min-width:34px;min-height:28px;padding:4px 6px}.speed.is-on,.chip.is-on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.menu-button{min-height:28px;padding:4px 9px;position:relative}.dot:not(:empty){background:var(--bad);color:#fff;border-radius:9px;margin-left:5px;padding:0 5px;font-size:.7rem;display:inline-block}.map-controls{left:calc(8px + env(safe-area-inset-left));bottom:calc(10px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:4px;max-width:min(520px,100% - 16px);display:flex;position:absolute}.chip{background:#1d2733eb;align-items:center;min-height:28px;padding:4px 9px;display:inline-flex}.panel{top:92px;right:calc(8px + env(safe-area-inset-right));bottom:calc(10px + env(safe-area-inset-bottom));border:1px solid var(--surface-line);border-radius:var(--radius);background:#1d2733f7;flex-direction:column;width:min(370px,100% - 16px);display:none;position:absolute;box-shadow:0 8px 28px #00000059}.panel.is-open{display:flex}.panel-close{z-index:1;width:32px;padding:0;font-size:1.2rem;line-height:1;position:absolute;top:6px;right:6px}.panel-content{overscroll-behavior:contain;padding:12px 14px 16px;overflow-y:auto}.panel-body h2{margin:0 40px 4px 0;font-size:1.2rem}.panel-body p{margin:4px 0}.section{border-top:1px solid var(--surface-line);margin-top:14px;padding-top:10px}.section h3{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 6px;font-size:.78rem}.section h4{color:var(--ink-soft);margin:10px 0 4px;font-size:.78rem;font-weight:600}.loyalty{margin-top:8px}.loyalty-head{align-items:center;gap:6px;display:flex}.bar{background:#ffffff1a;border-radius:3px;height:6px;margin:5px 0;overflow:hidden}.bar-fill{background:var(--good);width:0;height:100%;transition:width .2s linear}.bar-fill.is-middling{background:var(--accent)}.bar-fill.is-low{background:var(--bad)}details summary{cursor:pointer;color:var(--ink-soft);font-size:.78rem}.reasons{margin:4px 0 0;padding:0;font-size:.8rem;list-style:none}.reasons li{justify-content:space-between;padding:1px 0;display:flex}.stat{align-items:center;gap:6px;display:flex}.cost{font-variant-numeric:tabular-nums;gap:8px;font-size:.8rem;display:inline-flex}.cost-part{align-items:center;gap:2px;display:inline-flex}.recruits{gap:4px;display:grid}.recruit-row{gap:4px;display:flex}.recruit{text-align:left;flex:1;align-items:center;gap:8px;display:flex}.recruit-name{flex:1}.recruit-more{min-width:40px}.building,.route,.card,.grid-row{align-items:center;gap:8px;padding:5px 0;display:flex}.building-text,.route-text,.card-text{flex:1;min-width:0}.route-text{flex-direction:column;display:flex}.building-name{justify-content:space-between;gap:8px;font-weight:600;display:flex}.level{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-weight:400}.build{min-width:86px}.small-button{white-space:nowrap;min-height:28px;padding:3px 7px;font-size:.78rem}.card{border:1px solid var(--surface-line);border-radius:6px;margin:4px 0;padding:8px}.card.is-on{border-color:var(--accent);background:#e0b04a14}.grid-row{justify-content:space-between;padding:3px 0}.select{background:var(--surface-raised);border:1px solid var(--surface-line);border-radius:6px;width:100%;margin:4px 0;padding:6px}.market-head,.market-numbers{text-align:right;grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.market-head{color:var(--ink-soft);margin:10px 0 0 96px;font-size:.72rem}.market-row{border-bottom:1px solid var(--surface-line);grid-template-columns:90px 1fr;align-items:center;gap:4px 6px;padding:8px 0;display:grid}.market-name{align-items:center;gap:6px;font-weight:600;display:flex}.market-buttons{grid-column:1/-1;grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.auto{color:var(--ink-soft);grid-column:1/-1;align-items:center;gap:6px;font-size:.78rem;display:flex}.faction-list,.news{gap:3px;display:grid}.faction-row,.news-row{text-align:left;align-items:center;gap:8px;min-height:30px;padding:4px 8px;display:flex}.faction-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.badge{white-space:nowrap;background:#ffffff1a;border-radius:9px;padding:1px 6px;font-size:.72rem}.faction-row.is-war .badge{background:#8f342c}.faction-row.is-pact .badge{background:#2f6f4a}.news-row{opacity:.75;flex-direction:column;align-items:flex-start;gap:0}.news-row.is-mine{opacity:1;border-color:var(--accent)}.toasts{left:calc(8px + env(safe-area-inset-left));bottom:calc(84px + env(safe-area-inset-bottom));flex-direction:column;gap:6px;width:min(360px,100% - 16px);display:flex;position:absolute}.toast{text-align:left;border-left:4px solid var(--accent);background:#1d2733f5;box-shadow:0 4px 14px #0000004d}.banner{background:var(--accent);max-width:calc(100% - 16px);color:var(--accent-ink);border-radius:var(--radius);align-items:center;gap:10px;padding:8px 12px;font-weight:600;display:none;position:absolute;top:100px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000004d}.banner.is-open{display:flex}.banner .small-button{color:var(--ink)}.is-choosing .banner .small-button{display:none}.overlay,.modal-backdrop{background:#0f161eb8;place-items:center;padding:16px;display:none;position:absolute;inset:0;overflow-y:auto}.overlay.is-open,.modal-backdrop.is-open{display:grid}.start,.modal{background:var(--surface);border:1px solid var(--surface-line);border-radius:12px;width:min(560px,100%);padding:24px;box-shadow:0 16px 48px #00000080}.modal{width:min(420px,100%)}.start h1{letter-spacing:.01em;margin:0 0 8px;font-size:clamp(1.7rem,6vw,2.4rem)}.start h3{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:18px 0 8px;font-size:.8rem}.lead{color:var(--ink-soft);font-size:1.02rem}.difficulties{gap:8px;display:grid}.difficulty{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;display:flex}.start .primary.big{margin:10px 8px 0 0}@media (width<=760px){.menu{scrollbar-width:none;width:100%;overflow-x:auto}.menu-button{flex:none}.panel{width:auto;max-height:56%;padding-bottom:env(safe-area-inset-bottom);border-radius:14px 14px 0 0;inset:auto 0 0}.map-controls{scrollbar-width:none;flex-wrap:nowrap;max-width:calc(100% - 16px);top:124px;bottom:auto;overflow-x:auto}.map-controls .chip{flex:none}.banner{width:max-content;top:160px}.toasts{top:204px;bottom:auto}}@media (prefers-reduced-motion:reduce){.bar-fill{transition:none}}
