:root{--modal-duration:.16s;--modal-easing:cubic-bezier(.2, .8, .2, 1);--modal-closed-scale:.97;--fs-xs:10px;--fs-sm:11px;--fs-md:12px;--fs-lg:13px;--fs-xl:17px;--fs-2xl:21px;--hud-fs-caps:calc(9px * var(--ui-scale));--hud-fs-sm:calc(10px * var(--ui-scale));--hud-fs-md:calc(11px * var(--ui-scale));--ui-font:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", "PingFang SC", "Hiragino Sans", "Microsoft YaHei", "Malgun Gothic", "Noto Sans CJK SC", sans-serif;--mono-font:ui-monospace, "SF Mono", Menlo, Consolas, "DejaVu Sans Mono", "Noto Sans Mono", monospace;--ui-caps:uppercase;--ui-row-min:20rem;--accent-rgb:14 116 144;--ink-rgb:15 23 42;--tutorial-rgb:245 158 11;--slate-rgb:100 116 139;--ink:rgb(var(--ink-rgb));--ink-strong:#1e293b;--ink-soft:#475569;--ink-muted:#64748b;--tone-good:#15803d;--tone-warn:#b45309;--tone-bad:#b91c1c;--tone-info:rgb(var(--accent-rgb));--tone-violet:#6d28d9;--brand:#0284c7;--tone-neutral:#475569;--debt-bank:#3b82f6;--debt-bond:#0e7490;--tone-good-line:#16a34a57;--tone-warn-line:#d977065c;--tone-bad-line:#dc262657;--tone-info-line:rgb(var(--accent-rgb) / .32);--tone-violet-line:#7c3aed4d;--tone-neutral-line:rgb(var(--slate-rgb) / .24);--tone-good-fill:#16a34a21;--tone-warn-fill:#d9770624;--tone-bad-fill:#dc26261f;--tone-info-fill:rgb(var(--accent-rgb) / .12);--tone-violet-fill:#7c3aed1f;--tone-neutral-fill:rgb(var(--slate-rgb) / .12);--line:rgb(var(--accent-rgb) / .16);--line-soft:rgb(var(--slate-rgb) / .16);--radius-sm:4px;--radius:6px;--radius-lg:8px;--radius-pill:999px;--focus-ring:2px solid rgb(var(--accent-rgb) / .75);--scroll-track:#e2e8f0bf;--scroll-thumb:rgb(var(--accent-rgb) / .72);--scroll-thumb-hover:rgb(var(--accent-rgb) / .94);--surface:#ffffff9e;--surface-raised:#ffffffc7;--surface-row:#f8fafc94;--glass-bg:linear-gradient(160deg, #f8fafcf2, #e2ecf4f0);--glass-line:rgb(var(--accent-rgb) / .28);--glass-line-top:rgb(var(--accent-rgb) / .44);--glass-blur:blur(16px) saturate(1.12);--glass-shadow:0 18px 48px rgb(var(--ink-rgb) / .3), 0 2px 10px rgb(var(--ink-rgb) / .1), inset 0 1px 0 #ffffffd1;--control-bg:#ffffffbd;--control-line:rgb(var(--slate-rgb) / .24);--map-label-bg:#0c1218e6;--map-label-ink:#f8fbff;--map-label-warn:#ffb454;--cash-gain:#4ade80;--cash-loss:#f87171;--cash-popup-duration:1.6s;--app-bg:#dbe4ec;--menu-bg:radial-gradient(1100px 620px at 14% -14%, rgb(var(--accent-rgb) / .17), transparent 68%), radial-gradient(940px 560px at 88% 2%, #22c55e24, transparent 70%), linear-gradient(180deg, #eef4f9 0%, #dbe4ec 60%, #ccd9e4 100%);--inspector-h:min(48dvh, 380px);--inspector-side-h:min(42dvh, 420px);--ui-scale:1;--hud-edge:10px;--hud-bar-w:min(1000px, calc(100vw - 2 * var(--hud-edge)));--tile-size:calc(56px * var(--ui-scale));--tab-h:calc(24px * var(--ui-scale));--variant-h:calc(22px * var(--ui-scale));--btn-h:calc(22px * var(--ui-scale));--size-btn-w:calc(30px * var(--ui-scale));--minimap-size:calc(84px * var(--ui-scale))}@media (prefers-reduced-motion:reduce){:root{--modal-duration:0s;--modal-closed-scale:1}}.ui-icon{width:var(--icon-size,16px);height:var(--icon-size,16px);flex:none;display:block}html,body{background:var(--app-bg);height:100%;font-family:var(--ui-font);margin:0;overflow:hidden}canvas{touch-action:none;display:block}body.start-screen-open{background:var(--app-bg);overflow:auto}[data-cursor=grab]{cursor:grab}[data-cursor=grabbing]{cursor:grabbing}[data-cursor=crosshair]{cursor:crosshair}*{scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-track{background:var(--scroll-track)}::-webkit-scrollbar-thumb{border:2px solid var(--scroll-track);border-radius:var(--radius-pill);background:var(--scroll-thumb);min-height:30px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}:focus-visible{outline:var(--focus-ring);outline-offset:2px}.info-section,.acct-section{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);min-width:0;box-shadow:inset 0 1px 0 #fff9, 0 1px 2px rgb(var(--ink-rgb) / .05);overflow:hidden}.info-section__title,.acct-section__title{border-bottom:1px solid var(--line);background:rgb(var(--accent-rgb) / .06);min-height:16px;color:var(--tone-info);font-size:var(--fs-xs);letter-spacing:.09em;text-transform:var(--ui-caps);align-items:center;gap:7px;padding:7px 10px;font-weight:750;display:flex}.info-section__title:before,.acct-section__title:before{border-radius:var(--radius-pill);background:var(--tone-info);content:"";flex:none;width:3px;height:.95em}.acct-section{flex-direction:column;gap:10px;padding:0 12px 12px;display:flex}.acct-section__title{margin:0 -12px}.start-secondary,.start-save-btn,.acct-action,.info-stepper__step,.info-stepper__reset,.info-close,.start-primary,.start-save-btn--load,.info-action-btn,.welcome-start,.save-as-confirm,.quit-confirm,.sheet__confirm,.build-status__action,.finance-actions__button,.amount-entry__nudge,.tax-row__step,.debt-line__open,.fin-way,.vote-list__more,.start-danger,.start-save-btn--danger,.start-tab,.acct-tab,.news-tab,.acct-chart-range__btn,.acct-chart-resolution__btn,.acct-choice,.start-map-chip,.start-size-option{border-radius:var(--radius);font:inherit;cursor:pointer;border:1px solid #0000;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s}.start-secondary,.start-save-btn,.acct-action,.info-stepper__step,.info-stepper__reset,.info-close,.amount-entry__nudge,.tax-row__step,.debt-line__open,.fin-way{border-color:var(--control-line);background:var(--control-bg);color:var(--ink-strong)}.start-secondary:hover:not(:disabled),.start-save-btn:hover:not(:disabled),.acct-action:hover:not(:disabled),.info-stepper__step:hover:not(:disabled),.info-stepper__reset:hover,.info-close:hover,.amount-entry__nudge:hover:not(:disabled,[aria-disabled=true]),.tax-row__step:hover:not(:disabled),.debt-line__open:hover:not(:disabled),.fin-way:hover:not(:disabled,.is-active){border-color:var(--tone-info-line);color:var(--tone-info);background:#fff}.start-primary,.start-save-btn--load,.info-action-btn,.welcome-start,.save-as-confirm,.quit-confirm,.sheet__confirm,.build-status__action,.finance-actions__button{border-color:rgb(var(--accent-rgb) / .5);color:var(--tone-info);background:linear-gradient(#e5f5f9fa,#bfe3edf2);font-weight:800;box-shadow:inset 0 1px #fffc}.start-primary:hover:not(:disabled),.start-save-btn--load:hover:not(:disabled),.info-action-btn:hover:not(:disabled),.welcome-start:hover:not(:disabled),.save-as-confirm:hover:not(:disabled),.quit-confirm:hover:not(:disabled),.sheet__confirm:hover:not(:disabled),.build-status__action:hover:not(:disabled),.finance-actions__button:hover:not(:disabled){border-color:rgb(var(--accent-rgb) / .75);color:var(--tone-info);background:linear-gradient(#eefafd,#cbecf5fa)}.start-danger,.start-save-btn--danger,.info-action-btn.is-armed{color:#be123c;background:linear-gradient(#feececfa,#fcd0d6f0);border-color:#be123c80;font-weight:800}.start-danger:hover:not(:disabled),.start-save-btn--danger:hover:not(:disabled),.info-action-btn.is-armed:hover:not(:disabled){color:#be123c;background:linear-gradient(#fef2f2,#fac0c7fa);border-color:#be123cbf}.start-tab,.acct-tab,.news-tab,.acct-chart-range__btn,.acct-chart-resolution__btn,.vote-list__more{color:var(--ink-muted);background:0 0}.acct-choice,.start-map-chip,.start-size-option{border-color:var(--control-line);background:var(--control-bg);color:var(--ink-strong)}.start-tab:hover:not(:disabled,.is-active,.is-selected),.acct-tab:hover:not(:disabled,.is-active,.is-selected),.news-tab:hover:not(:disabled,.is-active,.is-selected),.acct-chart-range__btn:hover:not(:disabled,.is-active,.is-selected),.acct-chart-resolution__btn:hover:not(:disabled,.is-active,.is-selected),.vote-list__more:hover{background:rgb(var(--accent-rgb) / .08);color:var(--tone-info)}.acct-choice:hover:not(:disabled,.is-active,.is-selected),.start-map-chip:hover:not(:disabled,.is-active,.is-selected),.start-size-option:hover:not(:disabled,.is-active,.is-selected){border-color:var(--tone-info-line);background:#fff}.start-tab.is-active,.acct-tab.is-active,.news-tab.is-selected,.acct-chart-range__btn.is-active,.acct-chart-resolution__btn.is-active,.acct-choice.is-active,.fin-way.is-active,.start-map-chip.is-active,.start-size-option.is-active{border-color:var(--tone-info-line);background:var(--tone-info-fill);color:var(--tone-info)}.start-secondary:disabled,.start-save-btn:disabled,.acct-action:disabled,.info-stepper__step:disabled,.amount-entry__nudge[aria-disabled=true],.tax-row__step:disabled,.debt-line__open:disabled,.fin-way:disabled,.finance-actions__button:disabled,.start-primary:disabled,.info-action-btn:disabled,.save-as-confirm:disabled,.sheet__confirm:disabled,.start-danger:disabled,.acct-chart-resolution__btn:disabled,.start-size-option:disabled{opacity:.45;cursor:not-allowed}#start-screen{z-index:120;box-sizing:border-box;background:var(--menu-bg);color:var(--ink);font-size:var(--fs-lg);justify-content:center;align-items:safe center;padding:28px;line-height:1.45;display:flex;position:fixed;inset:0;overflow:auto}.start-shell{width:min(760px,100%)}.start-header{justify-content:center;margin-bottom:20px;display:flex}.start-logo{width:min(264px,68vw);height:auto;display:block}.start-tabs{border:1px solid var(--line);border-radius:var(--radius);scrollbar-width:none;background:#ffffff9e;gap:2px;width:max-content;max-width:100%;margin:0 auto 12px;padding:3px;display:flex;overflow-x:auto;box-shadow:inset 0 1px #ffffffb3}.start-tabs::-webkit-scrollbar{display:none}.start-tab{white-space:nowrap;flex:none;min-height:30px;padding:0 16px}.start-tab--exit{color:var(--tone-bad)}.start-tab--exit:hover:not(:disabled){background:var(--tone-bad-fill);color:var(--tone-bad)}.start-scroller{overscroll-behavior:contain;scrollbar-gutter:stable;overflow-y:auto}.start-scroller:focus-visible{outline:2px solid var(--tone-info);outline-offset:2px}.start-save-list.start-scroller,.start-debug-list.start-scroller{max-height:min(52dvh,460px)}.start-settings.start-scroller{max-height:min(68dvh,620px)}.start-error{border:1px solid var(--tone-bad-line);border-radius:var(--radius);background:var(--tone-bad-fill);color:var(--tone-bad);margin:0 0 10px;padding:8px 10px;font-weight:700}.start-panel{border:1px solid var(--glass-line);border-top-color:var(--glass-line-top);border-radius:var(--radius-lg);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);padding:16px}.start-label{color:var(--ink-muted);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:var(--ui-caps);margin-bottom:6px;font-weight:800;display:block}.start-entry{gap:8px;display:flex}.start-input{box-sizing:border-box;border:1px solid var(--control-line);border-radius:var(--radius);min-width:0;height:38px;color:var(--ink);font:inherit;font-size:var(--fs-xl);background:#ffffffdb;flex:1;padding:0 11px}.start-input:focus{border-color:rgb(var(--accent-rgb) / .55);box-shadow:0 0 0 3px var(--tone-info-fill);outline:none}.start-primary{min-width:94px;min-height:38px;padding:0 16px}.start-label-size{margin-top:16px}.start-size-options{gap:8px;display:flex}.start-size-option{text-align:left;flex-direction:column;flex:1;align-items:flex-start;gap:3px;padding:9px 12px;display:flex}.start-size-option-title{color:var(--ink);font-weight:800}.start-size-option.is-active .start-size-option-title{color:var(--tone-info)}.start-size-option-detail{color:var(--ink-muted);font-size:var(--fs-md)}.start-size-option-edition{color:var(--tone-info);font-size:var(--fs-md);text-transform:var(--ui-caps);letter-spacing:.04em;font-weight:700}.start-map{align-items:flex-start;gap:12px;display:flex}.start-map-options{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.start-map-row{align-items:center;gap:6px;display:flex}.start-map-row-label{color:var(--ink-muted);font-size:var(--fs-md);flex:0 0 54px;font-weight:700}.start-map-chip{min-height:32px;padding:0 12px}.start-seed-input{height:32px;font-size:var(--fs-md)}.start-map-preview{aspect-ratio:1;border:1px solid var(--control-line);border-radius:var(--radius);background:#6c9660;flex:none;width:clamp(120px,26vw,200px);height:auto;transition:opacity .15s}.start-map-preview.is-drawing{opacity:.55}.start-panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.start-panel-head h2{color:var(--ink);font-size:var(--fs-md);letter-spacing:.08em;text-transform:var(--ui-caps);margin:0;font-weight:800}.start-panel-actions{gap:6px;display:flex}.start-secondary,.start-save-btn{min-height:32px;font-size:var(--fs-sm);padding:0 12px}.start-empty{color:var(--ink-muted);margin:0}.start-note{border:1px solid var(--tone-warn-line);border-radius:var(--radius);background:var(--tone-warn-fill);color:var(--tone-warn);font-size:var(--fs-md);margin:0 0 10px;padding:8px 10px}.start-save-list,.start-debug-list{grid-template-columns:minmax(0,1fr);gap:6px;display:grid}.start-save,.start-debug{box-sizing:border-box;border:1px solid var(--line-soft);border-radius:var(--radius);width:100%;color:var(--ink);font:inherit;text-align:left;background:#ffffff9e;padding:10px 12px;box-shadow:inset 0 1px #fff9}.start-save{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;display:grid}.start-debug{cursor:pointer;gap:4px;min-height:60px;transition:background-color .15s,border-color .15s;display:grid}.start-debug:hover,.start-debug:focus-visible{border-color:var(--tone-info-line);background:rgb(var(--accent-rgb) / .07)}.start-debug--back{min-height:0;box-shadow:none;background:0 0}.start-save-info{gap:3px;min-width:0;display:grid}.start-save-actions{flex-wrap:wrap;justify-content:flex-end;gap:5px;display:flex}.start-save-title,.start-debug-title{color:var(--ink);font-weight:800}.start-save-title{align-items:center;gap:6px;min-width:0;display:flex}.start-save-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.start-save-meta,.start-debug-detail{color:var(--ink-muted);font-size:var(--fs-md);gap:12px;display:flex}.start-save-meta{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px;min-width:0}.start-save-saved{color:var(--ink-muted);font-size:var(--fs-sm)}.start-save-city,.start-save-gamedate{color:var(--ink);font-weight:700}.start-save-city{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.start-save-city:after{content:" ·";color:var(--ink-muted);font-weight:400}.start-save-tag{border-radius:var(--radius-pill);background:var(--tone-info-fill);color:var(--tone-info);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:var(--ui-caps);vertical-align:middle;flex-shrink:0;padding:1px 6px;font-weight:800}.start-import-label{cursor:pointer;align-items:center;display:inline-flex;position:relative}.start-import-label.is-busy{opacity:.5;pointer-events:none}.start-file-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.start-modal-overlay{z-index:130;box-sizing:border-box;background:rgb(var(--ink-rgb) / .32);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.start-modal{box-sizing:border-box;border:1px solid var(--tone-info-line);border-top-color:rgb(var(--accent-rgb) / .58);border-radius:var(--radius-lg);width:min(420px,100%);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:0 24px 70px rgb(var(--ink-rgb) / .34), 0 2px 10px rgb(var(--ink-rgb) / .14), inset 0 1px 0 #ffffffe6;color:var(--ink);background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);padding:20px}.start-modal-title{color:var(--ink);font-size:var(--fs-xl);margin:0 0 8px;font-weight:800}.start-modal-text{color:var(--ink-soft);margin:0 0 18px;line-height:1.5}.start-modal-text strong{color:var(--ink)}.start-modal-actions{justify-content:flex-end;gap:8px;display:flex}.start-danger{min-width:96px;min-height:32px;font-size:var(--fs-sm);padding:0 16px}@media (max-width:520px){.start-save{grid-template-columns:minmax(0,1fr)}.start-save-actions{justify-content:stretch}.start-save-btn{flex:1}}@media (max-width:560px),(max-height:500px){#start-screen{padding:12px}.start-header{margin-bottom:10px}.start-logo{width:min(220px,64vw)}.start-panel{padding:12px}}@media (max-width:560px){.start-map{flex-direction:column;align-items:stretch}.start-map-preview{align-self:center;width:min(100%,280px)}}@media (max-width:620px){.start-modal-overlay{padding:8px}.start-modal{padding:14px}}#loading{background:var(--menu-bg);z-index:100;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;transition:opacity .4s;display:flex;position:fixed;inset:0}#loading.done{opacity:0;visibility:hidden;transition:opacity .4s,visibility 0s .4s}#loading-logo{width:min(240px,68vw);height:auto;margin-bottom:8px;display:block}#loading-skyline{align-items:flex-end;gap:3px;width:200px;height:34px;display:flex}.loading-tower{--built:clamp(0, var(--load,0) * 9 - var(--slot,0), 1);height:var(--tower,60%);background:repeating-linear-gradient(to bottom, transparent 0 3px, #ffffff8c 3px 5px, transparent 5px 7px) center / 50% 100% no-repeat, var(--brand);transform-origin:bottom;transform:scaleY(calc(.12 + .88 * var(--built)));opacity:calc(.3 + .55 * var(--built));border-radius:2px 2px 0 0;flex:1;transition:transform .4s ease-out,opacity .4s ease-out;position:relative}.loading-tower:before{content:"";opacity:0;background:repeating-linear-gradient(#0000 0 3px,#fde68a 3px 5px,#0000 5px 7px) 50%/50% 100% no-repeat;transition:opacity .35s ease-out;position:absolute;inset:0}.loading-tower.rising{animation:1.4s ease-in-out infinite loading-breathe}.loading-tower:first-child{--tower:45%;--slot:0}.loading-tower:nth-child(2){--tower:70%;--slot:1}.loading-tower:nth-child(3){--tower:55%;--slot:2}.loading-tower:nth-child(4){--tower:90%;--slot:3}.loading-tower:nth-child(5){--tower:100%;--slot:4}.loading-tower:nth-child(6){--tower:75%;--slot:5}.loading-tower:nth-child(7){--tower:50%;--slot:6}.loading-tower:nth-child(8){--tower:80%;--slot:7}.loading-tower:nth-child(9){--tower:40%;--slot:8}@keyframes loading-breathe{50%{opacity:.95}}#loading.lit .loading-tower{opacity:1;transition-duration:.35s;animation:none;transform:none}#loading.lit .loading-tower:before{opacity:1}#loading-bar-track{border-radius:var(--radius-pill);background:#0284c729;width:200px;height:3px;position:relative;overflow:hidden}#loading-bar-fill{background:var(--brand);height:100%;transform:scaleX(var(--load,0));transform-origin:0;transition:transform .25s ease-out}#loading-bar-track:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb3,#0000);width:40%;transition:opacity .35s ease-out;animation:1.4s ease-in-out infinite loading-glint;position:absolute;inset:0;transform:translate(-100%)}#loading.lit #loading-bar-track:after{opacity:0}@keyframes loading-glint{to{transform:translate(250%)}}#loading-label{min-height:1em;font:11px / 1 var(--mono-font);color:var(--ink-muted);letter-spacing:.06em;font-variant-numeric:tabular-nums}#loading-timer{font:300 28px / 1.15 var(--ui-font);color:var(--ink);letter-spacing:.01em;font-variant-numeric:tabular-nums lining-nums;opacity:0;margin-top:6px;transition:opacity .5s ease-out,transform .6s cubic-bezier(.2,.8,.2,1);display:none;transform:translateY(8px)}#loading.timing #loading-timer{opacity:1;display:flex;transform:none}.loading-timer-cell{height:1.15em;display:inline-block;overflow:hidden}.loading-timer-count,.loading-timer-strip{animation-delay:calc(var(--elapsed,0) * -1s);animation-iteration-count:infinite;animation-fill-mode:both;display:block}.loading-timer-count{animation-timing-function:steps(10,end)}.loading-timer-strip{animation-timing-function:linear}.loading-timer-strip>span{height:1.15em;display:block}.loading-timer-s1 .loading-timer-count{animation-name:loading-count-10;animation-duration:10s}.loading-timer-s1 .loading-timer-strip{animation-name:loading-roll-1s;animation-duration:1s}.loading-timer-s10 .loading-timer-count{animation-name:loading-count-6;animation-duration:60s;animation-timing-function:steps(6,end)}.loading-timer-s10 .loading-timer-strip{animation-name:loading-roll-10s;animation-duration:10s}.loading-timer-m1 .loading-timer-count{animation-name:loading-count-10;animation-duration:600s}.loading-timer-m1 .loading-timer-strip{animation-name:loading-roll-1m;animation-duration:60s}.loading-timer-m10 .loading-timer-count{animation-name:loading-count-10;animation-duration:6000s}.loading-timer-m10 .loading-timer-strip{animation-name:loading-roll-10m;animation-duration:600s}.loading-timer-m10{max-width:0;animation:1ms step-start both loading-timer-reveal;animation-delay:calc((600 - var(--elapsed,0)) * 1s)}@keyframes loading-timer-reveal{to{max-width:1ch}}@keyframes loading-count-10{to{transform:translateY(-11.5em)}}@keyframes loading-count-6{to{transform:translateY(-6.9em)}}@keyframes loading-roll-1s{0%{animation-timing-function:cubic-bezier(.2,.8,.2,1);transform:none}45%,to{transform:translateY(-1.15em)}}@keyframes loading-roll-10s{0%{animation-timing-function:cubic-bezier(.2,.8,.2,1);transform:none}4.5%,to{transform:translateY(-1.15em)}}@keyframes loading-roll-1m{0%{animation-timing-function:cubic-bezier(.2,.8,.2,1);transform:none}.75%,to{transform:translateY(-1.15em)}}@keyframes loading-roll-10m{0%{animation-timing-function:cubic-bezier(.2,.8,.2,1);transform:none}.075%,to{transform:translateY(-1.15em)}}#loading-timer.stopped .loading-timer-count{transform:translateY(calc((var(--digit,0) + 1) * -1.15em));animation:none}#loading-timer.stopped .loading-timer-strip{animation:none;transform:none}#loading-timer.stopped .loading-timer-m10{max-width:calc(min(var(--digit,0), 1) * 1ch);animation:none}.loading-timer-colon{color:var(--brand);padding:0 2px;animation:1s ease-in-out infinite loading-colon}@keyframes loading-colon{50%{opacity:.25}}#loading.failed #loading-timer{color:var(--ink-muted)}#loading.done .loading-tower,#loading.done #loading-bar-track:after,#loading.done .loading-timer-colon,#loading.failed .loading-tower,#loading.failed .loading-timer-colon{animation-play-state:paused}#loading.failed #loading-bar-track:after{content:none}#loading.failed #loading-bar-fill{background:var(--tone-bad)}#loading.failed #loading-label{max-width:min(420px,80vw);color:var(--tone-bad);text-align:center;line-height:1.5}@media (prefers-reduced-motion:reduce){#loading .loading-tower,#loading-bar-track:after,.loading-timer-colon{animation:none}#loading-timer .loading-timer-strip{animation:none;transform:translateY(-1.15em)}}.flat-map{width:100vw;height:100vh;image-rendering:pixelated;position:fixed;inset:0}.flat-cost-label{z-index:2;border-radius:var(--radius-lg);background:var(--map-label-bg);color:var(--map-label-ink);font:700 var(--fs-xl) var(--ui-font);text-align:center;pointer-events:none;white-space:nowrap;transform:translate(calc(var(--label-x,0px) + 18px), calc(var(--label-y,0px) - 40px));padding:4px 10px;position:fixed;top:0;left:0}.flat-cost-label__warning{color:var(--map-label-warn);font-size:var(--fs-lg)}.toolbar-btn{min-height:var(--btn-h);border:1px solid var(--control-line);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--ink-strong);cursor:pointer;font:inherit;font-size:var(--hud-fs-md);justify-content:center;align-items:center;padding:0 6px;font-weight:700;line-height:1;transition:background-color .15s,border-color .15s,color .15s,opacity .15s;display:inline-flex}.toolbar-btn:hover:not(:disabled){border-color:var(--tone-info-line);color:var(--ink);background:#fff}.toolbar-btn.is-selected{outline:1px solid var(--tone-info-line);outline-offset:0;border-color:rgb(var(--accent-rgb) / .38);background:rgb(var(--accent-rgb) / .09);color:var(--tone-info);box-shadow:inset 0 -2px 0 rgb(var(--accent-rgb) / .38)}.toolbar-btn--size{min-width:var(--size-btn-w);min-height:var(--variant-h);font-size:var(--hud-fs-sm);padding:0 6px;font-weight:800}.toolbar-btn--size.is-selected{border-color:rgb(var(--accent-rgb) / .34);background:rgb(var(--accent-rgb) / .1);color:var(--tone-info)}.toolbar-btn--icon{--icon-size:calc(16px * var(--ui-scale));gap:4px}.toolbar-btn--icon .ui-icon{display:none}.toolbar-btn.is-locked{color:rgb(var(--slate-rgb) / .5);opacity:1;cursor:not-allowed;background:#e2e8f08c}.toolbar-btn.is-hidden{display:none}.speed-controls .toolbar-btn.is-paused:not(.is-selected){opacity:.5}#hud-top,#hud-bottom,.debug-bottom-dock{z-index:10;box-sizing:border-box;border:1px solid var(--glass-line);border-top-color:var(--glass-line-top);border-radius:var(--radius-lg);background:var(--glass-bg);box-shadow:var(--glass-shadow);color:var(--ink);font-size:var(--fs-md);-webkit-user-select:none;user-select:none;width:var(--hud-bar-w);flex-direction:column;align-items:stretch;gap:4px;padding:5px;display:flex;position:fixed;left:50%;transform:translate(-50%)}#hud-top{top:calc(var(--hud-edge) + env(safe-area-inset-top,0px));flex-direction:row;align-items:center;gap:8px}#hud-top.hud-top--debug{justify-content:space-between}#hud-bottom{z-index:12}#hud-bottom,.debug-bottom-dock{bottom:calc(var(--hud-edge) + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 2 * var(--hud-edge) - env(safe-area-inset-bottom,0px))}.debug-bottom-dock{max-height:min(48dvh, calc(100dvh - 24px - env(safe-area-inset-bottom,0px)));overflow:auto}.hud-bottom__body{grid-template-columns:minmax(0,1fr) max-content;gap:6px;min-width:0;display:grid}.hud-side{gap:5px;min-width:0;display:flex}.hud-side__buttons{flex:none;grid-template-rows:1fr 1fr;gap:4px;min-width:0;display:grid}.hud-side__buttons .toolbar-btn{min-width:calc(78px * var(--ui-scale))}.toolbar-btn.hud-top__menu{flex:none;align-self:stretch;padding:0 12px}.minimap{width:var(--minimap-size);height:var(--minimap-size);border:1px solid rgb(var(--accent-rgb) / .2);border-radius:var(--radius);cursor:crosshair;background:#e2ecf499;flex:none;align-self:center;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff94}.minimap__canvas{touch-action:none;width:100%;height:100%;display:block}.minimap__view{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.city-stats{grid-template-columns:repeat(3,minmax(54px,1fr));gap:4px;min-width:0;display:grid}.city-stat{border:1px solid rgb(var(--accent-rgb) / .14);border-radius:var(--radius-sm);background:#ffffffa3;min-width:54px;padding:4px 6px;box-shadow:inset 0 1px #ffffff8c}.city-stat__label{color:var(--ink-muted);font-size:var(--hud-fs-caps);letter-spacing:.06em;text-transform:var(--ui-caps);font-weight:700;line-height:1;display:block}.city-stat__value{color:var(--ink);font-size:var(--hud-fs-md);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:2px;font-weight:800;line-height:1.1;display:block}.city-stats--headline{flex:auto;grid-template-columns:repeat(6,minmax(50px,max-content));justify-content:center;align-self:stretch;gap:3px}.city-stats--headline .city-stat{flex-direction:column;justify-content:center;min-width:50px;padding:2px 5px;display:flex}.city-stat__date-short{display:none}.city-stat--cash .city-stat__value,.city-stat--mood.is-good .city-stat__value,.city-stat--migration.is-good .city-stat__value{color:var(--tone-good)}.city-stat--cash.is-warning .city-stat__value,.city-stat--mood.is-warning .city-stat__value,.city-stat--migration.is-warning .city-stat__value{color:var(--tone-warn)}.city-stat--cash.is-negative .city-stat__value,.city-stat--mood.is-negative .city-stat__value,.city-stat--migration.is-negative .city-stat__value{color:var(--tone-bad)}#build-status-lane{flex:none;min-width:0;display:flex}#build-status{min-width:0;height:calc(26px * var(--ui-scale));border:1px solid rgb(var(--accent-rgb) / .2);border-radius:var(--radius);color:var(--ink);background:#ffffffb3;flex:auto;align-items:center;gap:8px;padding:0 3px 0 10px;display:flex;overflow:hidden;box-shadow:inset 0 1px #ffffffa6}.build-status__chip{border-radius:var(--radius-sm);background:rgb(var(--accent-rgb) / .1);color:var(--tone-info);cursor:pointer;font-family:inherit;font-size:var(--hud-fs-caps);letter-spacing:.1em;white-space:nowrap;border:1px solid #0000;flex:none;align-items:center;gap:3px;padding:3px 7px;font-weight:800;line-height:1;display:inline-flex}.build-status__chip:hover{border-color:rgb(var(--accent-rgb) / .45);background:rgb(var(--accent-rgb) / .18)}.build-status__chip.is-selected{border-color:rgb(var(--accent-rgb) / .6);background:rgb(var(--accent-rgb) / .24)}.build-status__chip.has-unread{border-color:#dc26266b}.build-status__viewport{flex:1 1 0;min-width:0;height:100%;position:relative;overflow:hidden;container-type:inline-size}.build-status__text{white-space:nowrap;font-size:var(--fs-md);font-weight:700;line-height:1;position:absolute;top:50%;left:100%;transform:translateY(-50%)}.build-status__text.is-sliding{animation:12s linear infinite status-slide}.build-status__item+.build-status__item{margin-left:48px}.build-status__action{border-radius:var(--radius-sm);font-size:var(--hud-fs-md);white-space:nowrap;flex:none;padding:3px 10px;line-height:1.2}.build-status__action.is-hidden{display:none}.build-status__item.is-urgent:before{content:"";vertical-align:middle;background:#dc2626;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}@keyframes status-slide{0%{transform:translateY(-50%)}to{transform:translate(calc(-100% - 100cqw),-50%)}}.time-controls,.speed-controls{align-items:center;gap:4px;display:flex}.time-controls{border:1px solid rgb(var(--accent-rgb) / .14);border-radius:var(--radius);background:#ffffff94;flex:none;padding:1px}.speed-lag-indicator{border-radius:var(--radius-sm);width:24px;height:24px;font-size:var(--fs-xl);cursor:help;background:#f59e0b29;justify-content:center;align-items:center;line-height:1;display:inline-flex}.speed-lag-indicator.is-hidden{display:none}.save-indicator{border-radius:var(--radius-sm);background:var(--tone-info-fill);height:24px;font-size:var(--fs-md);white-space:nowrap;align-items:center;gap:5px;padding:0 7px;display:inline-flex}.save-indicator.is-hidden{display:none}.save-indicator__spinner{border:2px solid rgb(var(--accent-rgb) / .25);border-top-color:#0e7490;border-radius:50%;width:11px;height:11px;animation:.8s linear infinite save-indicator-spin}@keyframes save-indicator-spin{to{transform:rotate(360deg)}}.log-badges{align-items:center;gap:3px;padding:0 2px;display:inline-flex}.log-badges.is-hidden,.log-badge.is-hidden,.log-panel.is-hidden,.log-panel__note.is-hidden{display:none}.log-badge{border-radius:var(--radius-pill);color:#fff;min-width:18px;height:18px;font-family:inherit;font-size:var(--fs-xs);cursor:pointer;background:#dc2626;border:0;padding:0 5px;font-weight:800;line-height:1}.log-badge--warn{background:var(--tone-warn)}.log-badge.is-selected{box-shadow:0 0 0 2px rgb(var(--ink-rgb) / .4)}.log-panel{position:absolute;top:calc(100% + 10px);right:0}.log-panel__note{color:var(--ink-muted);font-size:var(--fs-sm)}.log-panel__list{-webkit-user-select:text;user-select:text;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.log-panel__row{border-radius:var(--radius-sm);font-family:var(--mono-font);font-size:var(--fs-sm);background:#fff9;grid-template-columns:minmax(0,max-content) minmax(0,1fr);gap:8px;padding:5px 6px;display:grid}.log-panel__time{color:var(--ink-muted);white-space:nowrap}.log-panel__text{color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere}.music-controls{flex:none;align-items:center;gap:1px;display:flex}.music-controls__btn{color:#94a3b8;min-width:18px;font-size:var(--fs-xs);background:0 0;border-color:#0000;padding:0 2px}.music-controls.is-playing .music-controls__btn{color:var(--tone-info)}#build-menu{flex-direction:column;gap:4px;min-width:0;min-height:0;display:flex}.build-row{grid-template-columns:minmax(0, 1fr) calc(228px * var(--ui-scale));align-items:stretch;gap:6px;min-width:0;display:grid}.build-selection{border:1px solid var(--line-soft);border-radius:var(--radius);box-sizing:border-box;min-width:0;height:calc(var(--tile-size) + 2px);background:#ffffff94;flex-direction:column;justify-content:center;gap:3px;padding:3px 8px;display:flex}.build-selection.is-hidden{visibility:hidden}.build-category-tabs{border:1px solid var(--line);border-radius:var(--radius);scrollbar-width:none;background:#ffffff80;gap:2px;min-width:0;padding:2px;display:flex;overflow-x:auto}.build-category-tabs::-webkit-scrollbar{display:none}.build-category-tab{--icon-size:calc(15px * var(--ui-scale));min-width:max-content;min-height:var(--tab-h);border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:var(--hud-fs-md);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;gap:5px;padding:0 8px;font-weight:700;line-height:1;display:inline-flex}.build-category-tab:hover:not(:disabled){border-color:var(--line);background:rgb(var(--accent-rgb) / .07)}.build-category-tab.is-selected{border-color:rgb(var(--accent-rgb) / .3);background:rgb(var(--accent-rgb) / .13);color:var(--tone-info);box-shadow:inset 0 -3px 0 rgb(var(--accent-rgb) / .62)}.build-variants{min-width:0;display:flex}.variant-picker{flex:auto;min-width:0;display:flex;position:relative}.variant-picker.is-hidden{display:none}.toolbar-btn.variant-picker__trigger{--icon-size:calc(14px * var(--ui-scale));min-width:0;min-height:var(--variant-h);border-color:rgb(var(--accent-rgb) / .34);background:#fff;flex:auto;justify-content:flex-start;gap:6px;padding:0 8px}.variant-picker.is-open .variant-picker__trigger{border-color:rgb(var(--accent-rgb) / .6);background:rgb(var(--accent-rgb) / .1)}.variant-picker__name{color:var(--ink-muted);font-size:var(--hud-fs-caps);letter-spacing:.08em;text-transform:var(--ui-caps);flex:none;font-weight:800}.variant-picker__current{min-width:0;color:var(--tone-info);text-overflow:ellipsis;white-space:nowrap;flex:auto;align-items:center;gap:4px;font-weight:800;display:flex;overflow:hidden}.variant-picker__chevron{color:var(--tone-info);transition:transform .15s}.variant-picker.is-open .variant-picker__chevron{transform:rotate(180deg)}.variant-picker__lock,.variant-picker.is-locked .variant-picker__chevron{display:none}.variant-picker.is-locked .variant-picker__lock{color:var(--ink-muted);display:block}.variant-picker.is-locked .variant-picker__trigger{border-color:var(--control-line);cursor:help;background:#e2e8f08c}.variant-picker.is-locked .variant-picker__current{color:rgb(var(--slate-rgb) / .6)}.variant-picker__menu{z-index:14;box-sizing:border-box;min-width:100%;max-width:calc(100vw - 4 * var(--hud-edge));border:1px solid rgb(var(--accent-rgb) / .28);border-top-color:rgb(var(--accent-rgb) / .46);border-radius:var(--radius-lg);max-height:min(60dvh,340px);box-shadow:0 14px 36px rgb(var(--ink-rgb) / .3), inset 0 1px 0 #ffffffd6;overscroll-behavior:contain;background:linear-gradient(160deg,#f8fafcfc,#e2ecf4fa);flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;bottom:calc(100% + 6px);right:0;overflow-y:auto}.variant-picker__menu.is-hidden{display:none}.variant-picker__option{--icon-size:16px;min-height:max(30px, var(--btn-h));border-radius:var(--radius-sm);color:var(--ink-strong);cursor:pointer;font:inherit;font-size:var(--fs-md);text-align:left;white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 12px 0 8px;font-weight:700;display:flex}.variant-picker__option:hover,.variant-picker__option:focus-visible{border-color:var(--tone-info-line);background:#fff;outline:none}.variant-picker__option.is-selected{background:var(--tone-info-fill);color:var(--tone-info)}.variant-picker__check{flex:none;width:12px;height:12px}.variant-picker__option.is-selected .variant-picker__check:before{content:"";border:2px solid;border-width:0 2px 2px 0;width:4px;height:8px;margin-left:4px;display:block;transform:rotate(45deg)}.active-tool-status{min-width:0;color:var(--tone-info);font-size:var(--hud-fs-md);white-space:nowrap;justify-content:space-between;align-items:baseline;gap:8px;font-weight:750;display:flex}.build-selection.is-unaffordable .active-tool-status{color:var(--tone-bad)}.active-tool-status__name{min-width:0;color:inherit;text-overflow:ellipsis;overflow:hidden}.active-tool-status__price{color:inherit;font-variant-numeric:tabular-nums;flex:none;font-weight:800}.build-tile-grids{min-width:0;height:calc(var(--tile-size) + 2px);scrollbar-width:none;overflow-x:auto}.build-tile-grids::-webkit-scrollbar{display:none}.build-tile-grid{grid-auto-flow:column;grid-auto-columns:var(--tile-size);gap:4px;width:max-content;padding:1px;display:grid}.build-tile-grid.is-hidden{display:none}.build-tile{--icon-size:calc(22px * var(--ui-scale));height:var(--tile-size);border:1px solid var(--control-line);border-radius:var(--radius);background:var(--control-bg);color:var(--ink-strong);cursor:pointer;font:inherit;font-size:var(--hud-fs-caps);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:3px;padding:4px 2px;font-weight:700;line-height:1.08;transition:background-color .15s,border-color .15s,color .15s,opacity .15s;display:flex;position:relative;overflow:hidden}.build-tile__label{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;width:100%;display:-webkit-box;overflow:hidden}.build-tile:hover:not(:disabled){border-color:var(--tone-info-line);color:var(--ink);background:#fff}.build-tile.is-selected{outline:1px solid var(--tone-info-line);outline-offset:0;border-color:rgb(var(--accent-rgb) / .45);background:var(--tone-info-fill);color:var(--tone-info);box-shadow:inset 0 -2px 0 rgb(var(--accent-rgb) / .45)}.build-tile.is-unaffordable{opacity:.45}.build-tile.is-locked{opacity:.55;cursor:help;filter:grayscale(.85)}.build-tile__lock,.build-category-tab__lock{display:none}.build-tile.is-locked .build-tile__lock{--icon-size:calc(11px * var(--ui-scale));color:var(--ink-muted);display:block;position:absolute;top:3px;right:3px}.build-category-tab.is-locked .build-category-tab__lock{--icon-size:calc(11px * var(--ui-scale));color:var(--ink-muted);align-items:center;display:inline-flex}.build-tile.is-hinted{border-color:rgb(var(--accent-rgb) / .75);animation:.85s ease-in-out 3 tile-hint}@keyframes tile-hint{0%,to{box-shadow:0 0 0 0 rgb(var(--accent-rgb) / 0)}50%{box-shadow:0 0 0 4px rgb(var(--accent-rgb) / .34)}}.build-category-tab--terrain,.build-tile--tool-raise,.build-tile--tool-lower,.build-tile--tool-level{--tool-tone:var(--tone-good);--tool-tone-line:var(--tone-good-line);--tool-tone-fill:var(--tone-good-fill)}.build-category-tab--bulldoze{--tool-tone:var(--tone-bad);--tool-tone-line:var(--tone-bad-line);--tool-tone-fill:var(--tone-bad-fill)}.build-category-tab--terrain .ui-icon,.build-category-tab--bulldoze .ui-icon,.build-tile--tool-raise .ui-icon,.build-tile--tool-lower .ui-icon,.build-tile--tool-level .ui-icon{color:var(--tool-tone)}.build-category-tab--terrain:hover:not(:disabled),.build-category-tab--bulldoze:hover:not(:disabled),.build-tile--tool-raise:hover:not(:disabled),.build-tile--tool-lower:hover:not(:disabled),.build-tile--tool-level:hover:not(:disabled){border-color:var(--tool-tone-line)}.build-category-tab--terrain.is-selected,.build-category-tab--bulldoze.is-selected{border-color:var(--tool-tone-line);background:var(--tool-tone-fill);color:var(--tool-tone);box-shadow:inset 0 -3px 0 var(--tool-tone)}.build-tile--tool-raise.is-selected,.build-tile--tool-lower.is-selected,.build-tile--tool-level.is-selected{outline-color:var(--tool-tone-line);border-color:var(--tool-tone-line);background:var(--tool-tone-fill);color:var(--tool-tone);box-shadow:inset 0 -2px 0 var(--tool-tone)}.build-tile--zone-res{--zone-line:#16a34a47;--zone-ink:#166534;--zone-low:#ecfdf3d1;--zone-med:#cbf6dbdb;--zone-high:#97e2b7eb}.build-tile--zone-com{--zone-line:#2563eb47;--zone-ink:#1d4ed8;--zone-low:#eef5ffd1;--zone-med:#cee2fddb;--zone-high:#9bc3faeb}.build-tile--zone-off{--zone-line:#7e22ce47;--zone-ink:#7e22ce;--zone-low:#f9f3ffd1;--zone-med:#ebd9fddb;--zone-high:#d3b2f8eb}.build-tile--zone-ind{--zone-line:#ca8a044d;--zone-ink:#854d0e;--zone-low:#fefbe2d1;--zone-med:#fcf0b3db;--zone-high:#f6dc7ceb}.build-tile--zone{border-color:var(--zone-line);background:var(--zone-low);color:var(--zone-ink)}.build-tile--zone.is-density-2{background:var(--zone-med)}.build-tile--zone.is-density-3{background:var(--zone-high)}.scroll-cues{--cue-inset:0px;min-width:0;display:flex;position:relative}.build-tab-cues{--cue-inset:3px}.build-tile-cues{--cue-inset:1px;align-self:start}.scroll-cues__scroller{--fade-l:0px;--fade-r:0px;-webkit-mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);mask-image:linear-gradient(90deg, transparent 0, #000 var(--fade-l), #000 calc(100% - var(--fade-r)), transparent 100%);flex:auto}.scroll-cues.has-prev .scroll-cues__scroller{--fade-l:40px}.scroll-cues.has-next .scroll-cues__scroller{--fade-r:40px}.scroll-cues__arrow{--icon-size:16px;top:var(--cue-inset);bottom:var(--cue-inset);z-index:2;border:1px solid var(--tone-info-line);border-radius:var(--radius);width:26px;box-shadow:0 2px 8px rgb(var(--ink-rgb) / .18);color:var(--tone-info);cursor:pointer;background:#fffffff0;justify-content:center;align-items:center;padding:0;display:none;position:absolute}.scroll-cues__arrow:hover{border-color:rgb(var(--accent-rgb) / .6);background:#fff}.scroll-cues__arrow--prev{left:var(--cue-inset)}.scroll-cues__arrow--prev .ui-icon{transform:rotate(90deg)}.scroll-cues__arrow--next{right:var(--cue-inset)}.scroll-cues__arrow--next .ui-icon{transform:rotate(-90deg)}.scroll-cues.has-prev .scroll-cues__arrow--prev,.scroll-cues.has-next .scroll-cues__arrow--next{display:flex}@media (pointer:coarse){.scroll-cues__arrow{width:32px}}.build-tile.is-hidden,.build-category-tab.is-hidden{display:none}.variant-picker__option.is-locked{opacity:.5;cursor:help}.dock-menu-btn{position:relative}#dock-options-panel{z-index:12;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}#dock-layers-panel{z-index:12;position:absolute;bottom:calc(100% + 10px);right:0}#dock-news-panel{z-index:13;position:absolute;bottom:calc(100% + 10px);left:0}#dock-options-panel,#dock-layers-panel,#dock-news-panel,#demand-panel,.log-panel{width:min(420px,100vw - 24px);max-height:min(420px, calc(100dvh - 96px - env(safe-area-inset-top,0px)));box-sizing:border-box;border:1px solid rgb(var(--accent-rgb) / .28);border-top-color:rgb(var(--accent-rgb) / .46);border-radius:var(--radius-lg);box-shadow:0 18px 44px rgb(var(--ink-rgb) / .28), inset 0 1px 0 #ffffffd6;overscroll-behavior:contain;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);flex-direction:column;gap:8px;padding:10px;display:flex;overflow:auto}#dock-layers-panel{width:min(340px,100vw - 24px)}#dock-news-panel{width:min(420px,100vw - 24px);max-height:min(460px, calc(100dvh - 96px - env(safe-area-inset-top,0px)))}#dock-options-panel.is-hidden,#dock-layers-panel.is-hidden,#dock-news-panel.is-hidden,#demand-panel.is-hidden,.news-feed.is-hidden,.dock-layers-mini{display:none}.news-tabs{gap:4px;display:flex}.news-tab{font-size:var(--fs-sm);align-items:center;gap:2px;padding:4px 9px;line-height:1;display:inline-flex}.news-badge{border-radius:var(--radius-pill);color:#fff;min-width:15px;height:15px;font-size:var(--fs-xs);background:#dc2626;justify-content:center;align-items:center;margin-left:5px;padding:0 4px;font-weight:800;line-height:1;display:inline-flex}.news-badge.is-hidden{display:none}.news-badge--cityHall{background:var(--tone-warn)}.build-status__chip .news-badge{letter-spacing:0;margin-left:0}.news-feed{flex-direction:column;gap:6px;display:flex}.news-empty{border:1px dashed rgb(var(--slate-rgb) / .3);border-radius:var(--radius);color:var(--ink-muted);font-size:var(--fs-sm);text-align:center;padding:14px 10px}.news-item{border:1px solid var(--line);border-left:4px solid var(--news-severity,#94a3b8);border-radius:var(--radius);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:#ffffffc7;flex-direction:column;gap:3px;padding:7px 9px 7px 12px;display:flex}.news-item:hover{border-color:rgb(var(--accent-rgb) / .4);border-left-color:var(--news-severity,#94a3b8);background:#fff}.news-item__top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.news-item__headline{font-size:var(--fs-md);font-weight:800;line-height:1.2}.news-item__date{color:#94a3b8;font-size:var(--fs-xs);letter-spacing:.04em;white-space:nowrap;flex:none;font-weight:700}.news-item__body{color:var(--ink-soft);font-size:var(--fs-sm);line-height:1.35}.news-item--static{cursor:default}.news-item--static:hover{border-color:var(--line);background:#ffffffc7}.news-item__cause{border-radius:var(--radius-sm);background:rgb(var(--accent-rgb) / .1);color:var(--tone-info);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:var(--ui-caps);align-self:flex-start;margin-top:2px;padding:2px 6px;font-weight:800}.dock-layers-section{flex-direction:column;gap:4px;display:flex}.dock-layers-section+.dock-layers-section{margin-top:8px}.dock-layers-section__title{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:var(--ui-caps);font-weight:800}.dock-layers{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.dock-layers .toolbar-btn{width:100%;min-width:0}.dock-layers .toolbar-btn.view-toggle .ui-icon{flex:none;display:block}.dock-layers .toolbar-btn.view-toggle .toolbar-btn__label{text-overflow:ellipsis;white-space:nowrap;display:inline;overflow:hidden}.layer-btn{justify-content:flex-start;align-items:center;gap:6px;padding:4px 8px;display:flex;overflow:hidden}.layer-btn__chip{border-radius:var(--radius-sm);background:var(--layer-gradient,#cbd5e1);width:14px;height:14px;box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .22);flex:none}.layer-btn__label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#map-legend{z-index:9;top:calc(66px + env(safe-area-inset-top,0px));left:calc(92px + env(safe-area-inset-left,0px));box-sizing:border-box;border:1px solid rgb(var(--accent-rgb) / .28);border-top-color:rgb(var(--accent-rgb) / .44);border-radius:var(--radius-lg);width:176px;box-shadow:0 18px 48px rgb(var(--ink-rgb) / .3), inset 0 1px 0 #ffffffd1;color:var(--ink);-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(160deg,#f8fafcf2,#e2ecf4f0);padding:8px 10px;font:12px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed}#map-legend.is-hidden{display:none}.map-legend__title{font-size:var(--fs-md);letter-spacing:.02em;font-weight:800}.map-legend__bar{border-radius:var(--radius-sm);background:var(--layer-gradient,#cbd5e1);height:10px;box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .18);margin-top:7px}.map-legend__scale{justify-content:space-between;gap:6px;margin-top:4px;display:flex}.map-legend__tick{color:var(--ink-soft);font-size:var(--fs-xs);font-weight:700}.map-legend__readout{border-top:1px solid rgb(var(--ink-rgb) / .14);color:var(--ink-strong);font-size:var(--fs-sm);flex-direction:column;gap:2px;margin-top:8px;padding-top:7px;font-weight:700;display:flex}.map-legend__readout.is-hidden{display:none}.map-legend__swatches{flex-direction:column;gap:5px;margin-top:7px;display:flex}.map-legend__swatch{font-size:var(--fs-sm);color:var(--ink-strong);align-items:center;gap:6px;font-weight:600;display:flex}.map-legend__dot{border-radius:var(--radius-sm);background:var(--swatch,#cbd5e1);width:12px;height:12px;box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .22);flex:none}.map-legend__shades{border-radius:var(--radius-sm);background:var(--layer-gradient,#cbd5e1);width:34px;height:12px;box-shadow:inset 0 0 0 1px rgb(var(--ink-rgb) / .22);flex:none}.map-legend__note{color:var(--ink-soft);font-size:var(--fs-xs);margin-top:6px;font-weight:700}.map-legend__bar,.map-legend__shades,.map-legend__dot{position:relative}.map-legend__mark{bottom:100%;left:calc(var(--mark,.5) * 100%);border-top:6px solid var(--ink);filter:drop-shadow(0 0 1px #ffffffe6);border-left:5px solid #0000;border-right:5px solid #0000;width:0;height:0;margin-bottom:1px;position:absolute;transform:translate(-50%)}.map-legend__shades>.map-legend__mark{border-top-width:5px;border-left-width:4px;border-right-width:4px;margin-bottom:0}.map-legend__dot>.map-legend__mark{border-top:5px solid #0000;border-bottom:5px solid #0000;border-right:0;border-left:6px solid var(--ink);margin:0 3px 0 0;inset:50% 100% auto auto;transform:translateY(-50%)}.dock-options__header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.dock-options__logo{width:172px;height:auto;display:block}.dock-options__title{color:var(--ink);font-size:var(--fs-md);letter-spacing:.09em;text-transform:var(--ui-caps);margin-left:auto;font-weight:800}#demand-panel .dock-options__title,#dock-layers-panel .dock-options__title{font-size:var(--fs-md);letter-spacing:.01em;text-transform:none;margin-left:0;margin-right:auto;font-weight:600}#demand-panel>.dock-options__header,#dock-layers-panel>.dock-options__header,#dock-news-panel>.dock-options__header{border-bottom:1px solid rgb(var(--accent-rgb) / .2);border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0;background:linear-gradient(#ffffffd1,#f1f7fbc2);flex:none;margin:-10px -10px 0;padding:10px 14px}.dock-options__save-load{flex-direction:column;gap:6px;display:flex}.dock-options__save-load .toolbar-btn{width:100%}.dock-options__autosave{color:var(--ink-strong);font-size:var(--fs-sm);grid-template-columns:minmax(58px,max-content) minmax(0,1fr);align-items:center;gap:6px;display:grid}.dock-options__autosave select,.language-settings select{border:1px solid rgb(var(--accent-rgb) / .28);border-radius:var(--radius-sm);width:100%;min-height:26px;color:var(--ink);font:inherit;background:#fff;padding:0 6px}.dock-options__tabs{flex-direction:column;gap:8px;display:flex}.dock-options__tabstrip{gap:4px;display:flex}.dock-options__tab{flex:1 1 0;padding:0 4px}.dock-options__tabbody>.is-hidden{display:none}.gfx-settings__title,.language-settings__title{color:var(--ink-soft);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:var(--ui-caps);font-weight:800}.gfx-settings,.language-settings{flex-direction:column;gap:5px;display:flex}.gfx-settings__presets{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.gfx-settings__preset{width:100%;padding:0 4px}.gfx-settings__preset:disabled{cursor:default}.gfx-settings__row{color:var(--ink-strong);font-size:var(--fs-sm);grid-template-columns:minmax(74px,max-content) minmax(0,1fr);align-items:center;gap:6px;display:grid}.gfx-settings__row select{border:1px solid rgb(var(--accent-rgb) / .28);border-radius:var(--radius-sm);width:100%;min-height:26px;color:var(--ink);font:inherit;background:#fff;padding:0 6px}.gfx-settings__row input[type=checkbox]{accent-color:var(--tone-info);justify-self:start}.gfx-settings__advanced>summary{cursor:pointer}.gfx-settings__advanced-rows{flex-direction:column;gap:5px;margin-top:5px;display:flex}.gfx-settings__restart,.language-settings__restart{border-radius:var(--radius);background:#fef3c7b3;border:1px solid #d9770659;flex-direction:column;gap:5px;padding:7px;display:flex}.gfx-settings__restart.is-hidden,.language-settings__restart.is-hidden{display:none}.gfx-settings__restart-text,.language-settings__restart-text{color:#92400e;font-size:var(--fs-xs);line-height:1.35}.audio-settings{border-top:1px solid var(--line);flex-direction:column;gap:5px;padding-top:8px;display:flex}.audio-settings__slider{color:var(--ink-strong);font-size:var(--fs-sm);grid-template-columns:minmax(58px,max-content) minmax(0,1fr);align-items:center;gap:6px;display:grid}.audio-settings__slider input[type=range]{width:100%;accent-color:var(--tone-info)}.audio-settings__controls{align-items:center;gap:6px;display:flex}.audio-settings__controls .toolbar-btn{flex:auto}.start-settings .audio-settings{border-top:1px solid var(--glass-line);margin-top:14px;padding-top:12px}.start-settings .audio-settings__slider{font-size:var(--fs-lg);grid-template-columns:minmax(110px,max-content) minmax(0,1fr)}.start-settings .gfx-settings{gap:8px}.start-settings .gfx-settings__presets{grid-template-columns:repeat(5,minmax(0,1fr))}.start-settings .gfx-settings__row{font-size:var(--fs-lg);grid-template-columns:minmax(110px,max-content) minmax(0,1fr)}@media (min-width:620px){.start-settings .gfx-settings{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:20px;display:grid}.start-settings .gfx-settings__title,.start-settings .gfx-settings__presets{grid-column:1/-1}}#tutorial-card{left:16px;bottom:calc(var(--bottom-dock-height,160px) + var(--hud-edge) + env(safe-area-inset-bottom,0px) + 12px);z-index:30;box-sizing:border-box;width:min(340px,100vw - 32px);max-height:calc(100dvh - var(--top-bar-height,0px) - var(--bottom-dock-height,160px) - 2 * var(--hud-edge) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 24px);border:1px solid var(--glass-line);border-top-color:var(--glass-line-top);border-radius:var(--radius-lg);background:var(--glass-bg);box-shadow:var(--glass-shadow);color:var(--ink);padding:12px 14px;position:fixed;overflow:auto}#tutorial-card.is-hidden{display:none}@media (max-width:620px),(max-height:500px){body:has(#dock-news-panel:not(.is-hidden)) #tutorial-card{display:none}}.tutorial-card__title{font-size:var(--fs-lg);margin-bottom:6px;font-weight:800}.tutorial-card__body{color:var(--ink-soft);font-size:var(--fs-md);line-height:1.45}.tutorial-card__body p{margin:0 0 6px}.tutorial-card__steps{color:var(--ink-strong);margin:0 0 8px;padding-left:20px;font-weight:700}.tutorial-card__footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;display:flex}.tutorial-card__off{color:var(--ink-muted);cursor:pointer;font-size:var(--fs-sm);align-items:center;gap:6px;display:flex}.tutorial-card__next.is-hidden{display:none}.dock-options__tutorials{color:var(--ink-strong);cursor:pointer;font-size:var(--fs-sm);align-items:center;gap:8px;display:flex}.is-tutorial-target{outline:4px solid rgb(var(--tutorial-rgb));outline-offset:-4px;box-shadow:inset 0 0 18px 4px rgb(var(--tutorial-rgb) / .75);animation:1s ease-in-out infinite tutorial-pulse}@keyframes tutorial-pulse{50%{outline-color:rgb(var(--tutorial-rgb) / .35);box-shadow:inset 0 0 8px 1px rgb(var(--tutorial-rgb) / .3)}}@media (prefers-reduced-motion:reduce){.is-tutorial-target{animation:none}}#sim-panel{gap:calc(4px * var(--ui-scale));width:max-content;min-height:calc(30px * var(--ui-scale));border:1px solid var(--line);border-radius:var(--radius-sm);-webkit-user-select:none;user-select:none;cursor:pointer;background:#ffffff94;flex:none;align-self:stretch;align-items:stretch;padding:3px 5px;display:flex}.sim-column{flex-direction:column;flex:none;align-items:center;gap:1px;min-width:0;display:flex}.sim-label{font-size:var(--hud-fs-caps);font-weight:800;line-height:1}.sim-label--res{color:#16a34a}.sim-label--com{color:#2563eb}.sim-label--ind{color:#ca8a04}.sim-label--off{color:#9333ea}.sim-track{width:calc(6px * var(--ui-scale));border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:rgb(var(--ink-rgb) / .12);flex:auto;position:relative;overflow:hidden}.sim-track:after{content:"";background:rgb(var(--ink-rgb) / .26);width:100%;height:1px;position:absolute;top:50%;left:0}.sim-track-fill{width:100%;height:50%;transition:transform .18s;position:absolute;left:0;transform:scaleY(0)}.sim-track-fill.is-positive{transform-origin:bottom;bottom:50%}.sim-track-fill.is-negative{transform-origin:top;background:#dc2626;top:50%}.sim-track-fill--res{background:#22c55e}.sim-track-fill--com{background:#3b82f6}.sim-track-fill--ind{background:#eab308}.sim-track-fill--off{background:#a855f7}.sim-track-fill--level-0{transform:scaleY(0)}.sim-track-fill--level-1{transform:scaleY(.1)}.sim-track-fill--level-2{transform:scaleY(.2)}.sim-track-fill--level-3{transform:scaleY(.3)}.sim-track-fill--level-4{transform:scaleY(.4)}.sim-track-fill--level-5{transform:scaleY(.5)}.sim-track-fill--level-6{transform:scaleY(.6)}.sim-track-fill--level-7{transform:scaleY(.7)}.sim-track-fill--level-8{transform:scaleY(.8)}.sim-track-fill--level-9{transform:scaleY(.9)}.sim-track-fill--level-10{transform:scaleY(1)}#demand-panel{z-index:12;color:var(--ink);font-size:var(--fs-md);-webkit-user-select:none;user-select:none;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@media (min-width:621px){#demand-panel{top:calc(var(--top-bar-height,0px) + 2 * var(--hud-edge) + env(safe-area-inset-top,0px));left:auto;right:calc((100vw - var(--hud-bar-w)) / 2);transform:none}}.demand-panel__explanation{color:var(--ink-soft);font-size:var(--fs-lg);gap:8px;line-height:1.5;display:grid}.demand-panel__explanation p{margin:0}.demand-panel__chart{grid-template-columns:repeat(4,minmax(max-content,1fr));gap:12px;padding:8px 0;display:grid;overflow-x:auto}.demand-panel__chart .sim-column{gap:8px}.demand-panel__chart .sim-track{flex:none;width:28px;height:150px}.demand-panel__chart .sim-label{font-size:var(--fs-lg);text-align:center;white-space:nowrap;font-weight:600;line-height:1.5}.cash-popups{z-index:2;pointer-events:none;position:fixed;inset:0;overflow:hidden}.cash-popup{font:800 var(--fs-xl) var(--ui-font);white-space:nowrap;text-shadow:0 1px 2px #000000d9,0 0 6px #00000073;transform:translate(calc(var(--popup-x,0px) - 50%), calc(var(--popup-y,0px) - 100%));animation:cash-popup-rise var(--cash-popup-duration) ease-out forwards;position:absolute;top:0;left:0}.cash-popup--gain{color:var(--cash-gain)}.cash-popup--loss{color:var(--cash-loss)}@keyframes cash-popup-rise{0%{opacity:1;translate:0}60%{opacity:1}to{opacity:0;translate:0 -56px}}@media (prefers-reduced-motion:reduce){@keyframes cash-popup-rise{0%,60%{opacity:1}to{opacity:0}}}@media (pointer:coarse){:root{--btn-h:40px;--tab-h:40px;--variant-h:32px;--size-btn-w:32px;--tile-size:calc(64px * var(--ui-scale))}}@media (max-width:980px){:root{--ui-scale:.92;--hud-edge:6px}#hud-top,#hud-bottom,.debug-bottom-dock{padding:4px}}@media (max-width:760px){.minimap{display:none}}@media (max-width:620px){:root{--ui-scale:.85;--hud-edge:4px}.dock-options__logo{width:130px}#hud-bottom,.debug-bottom-dock{gap:4px}#hud-top{justify-content:space-between;gap:4px}.city-stats--headline{grid-template-columns:repeat(4,minmax(0,auto));justify-content:stretch;gap:2px}.city-stats--headline .city-stat{min-width:0;padding:2px 3px;overflow:hidden}.city-stats--headline .city-stat__value{text-overflow:ellipsis;overflow:hidden}.city-stat__date-long{display:none}.city-stat__date-short{display:inline}.city-stats--headline .city-stat--unemployment,.city-stats--headline .city-stat--migration{display:none}.speed-controls{gap:2px}.toolbar-btn.toolbar-btn--icon{min-width:var(--size-btn-w);padding:0}.toolbar-btn--icon .ui-icon{display:block}.toolbar-btn--icon .toolbar-btn__label,.save-indicator__label{display:none}#build-status{height:22px}#build-menu{display:contents}.hud-bottom__body{grid-template-columns:minmax(0,1fr) auto;gap:4px}.build-tab-cues{grid-area:1/1}.hud-side{grid-area:1/2}.build-row.is-hidden{display:none}.build-row{grid-area:2/1/auto/-1;grid-template-columns:minmax(0,1fr);gap:4px}.hud-side__buttons{grid-template-rows:auto;grid-auto-flow:column}.hud-side__buttons .toolbar-btn{min-width:var(--size-btn-w)}.build-category-tab__label{display:none}.build-category-tab{--icon-size:calc(18px * var(--ui-scale));min-width:0;padding:0 6px}.build-selection{height:calc(var(--variant-h) + 10px);flex-direction:row;align-items:center;gap:8px;padding:4px 6px}.active-tool-status{flex:0 auto;max-width:45%}.build-variants{flex:auto}.variant-picker{position:static}.variant-picker__menu{max-width:none;bottom:calc(100% + 6px);left:0;right:0}}@media (max-width:620px) and (pointer:coarse){:root{--tab-h:36px;--variant-h:36px}}@media (max-height:500px){:root{--ui-scale:.85;--hud-edge:4px}#hud-top,#hud-bottom,.debug-bottom-dock{padding:4px}.minimap{display:none}}@media (max-height:500px) and (pointer:coarse){:root{--tab-h:36px;--variant-h:28px;--tile-size:calc(60px * var(--ui-scale))}}@media (max-width:620px),(max-height:500px){#dock-layers-panel{width:auto;max-height:calc(100dvh - var(--top-bar-height,0px) - var(--bottom-dock-height,0px) - 2 * var(--hud-edge) - 12px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));bottom:calc(100% + 6px);left:0;right:0}#dock-layers-panel.is-collapsed{padding:4px}#dock-layers-panel.is-collapsed>:not(.dock-layers-mini){display:none}#dock-layers-panel.is-collapsed .dock-layers-mini{align-items:center;gap:4px;display:flex}.toolbar-btn.dock-layers-mini__pick{--icon-size:16px;min-width:0;min-height:max(32px, var(--btn-h));border-color:rgb(var(--accent-rgb) / .34);font-size:var(--fs-md);background:#fff;flex:auto;justify-content:flex-start;gap:8px;padding:0 10px}.dock-layers-mini__label{min-width:0;color:var(--tone-info);text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.dock-layers-mini__chevron{color:var(--tone-info);transform:rotate(180deg)}.dock-layers-mini .info-close{width:max(32px, var(--btn-h));height:max(32px, var(--btn-h));align-self:center}}#building-info,#car-info,#ped-info{z-index:11;box-sizing:border-box;border:1px solid rgb(var(--accent-rgb) / .28);border-top-color:rgb(var(--accent-rgb) / .46);border-radius:var(--radius-lg);box-shadow:0 18px 46px rgb(var(--ink-rgb) / .28), 0 2px 10px rgb(var(--ink-rgb) / .1), inset 0 1px 0 #ffffffd6;color:var(--ink);overscroll-behavior:contain;-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);flex-direction:column;gap:0;font:12px/1.35 system-ui,-apple-system,sans-serif;display:flex;position:fixed;overflow:hidden}#building-info{top:calc(var(--top-bar-height,0px) + var(--hud-edge) + 12px + env(safe-area-inset-top,0px));right:calc(var(--hud-edge) + 2px + env(safe-area-inset-right,0px));width:min(380px,40vw);height:calc(100dvh - var(--top-bar-height,0px) - var(--bottom-dock-height,0px) - 2 * var(--hud-edge) - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}#building-info.is-hidden{display:none}#car-info,#ped-info{left:12px;top:calc(100dvh - var(--bottom-dock-height,0px) - var(--hud-edge) - 14px - var(--inspector-side-h));width:min(380px,100vw - 24px);max-width:calc(100vw - 24px);max-height:var(--inspector-side-h)}#car-info.is-hidden,#ped-info.is-hidden{display:none}.info-header{border-bottom:1px solid var(--line);background:linear-gradient(#ffffffc7,#f1f7fbad);flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.info-title{min-width:0;color:var(--ink);font-size:var(--fs-lg);letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;font-weight:750;overflow:hidden}.info-headline{flex-direction:column;flex:1 1 0;gap:6px;min-width:0;display:flex;overflow:hidden}.info-headline .ui-chip-row:empty,.info-facts:empty{display:none}.info-facts{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:4px;display:grid}.info-fact{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#fff9;flex-direction:column;gap:1px;min-width:0;padding:4px 7px;display:flex}.info-fact__label{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:var(--ui-caps);font-weight:650}.info-fact__value{color:var(--ink);font-size:var(--fs-md);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-weight:750}.info-close{flex:none;align-self:flex-start;width:30px;height:30px;line-height:1}#dock-options-panel .info-close{flex:none;width:30px;height:30px}.info-tabs.is-hidden{display:none}.info-sections{grid-template-columns:minmax(0,1fr);grid-auto-rows:min-content;align-content:start;align-items:start;gap:8px;min-height:0;padding:10px;display:grid;overflow:auto}@media (max-width:620px){:root{--inspector-side-h:min(48dvh, 380px)}#building-info,#car-info,#ped-info{width:var(--hud-bar-w);left:50%;transform:translate(-50%)}#building-info{top:calc(100dvh - var(--bottom-dock-height,0px) - var(--hud-edge) - 14px - var(--inspector-h));height:var(--inspector-h);right:auto}}.info-rows,.info-section__rows{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--ui-row-min)), 1fr));align-content:start;gap:2px;min-width:0;padding:4px;display:grid}.info-section__rows{grid-template-columns:minmax(0,1fr)}.info-rows--split{columns:var(--ui-row-min) 2;column-gap:12px;display:block}.info-row{border-radius:var(--radius-sm);background:#f8fafc94;border:1px solid #0000;flex-wrap:wrap;align-items:baseline;gap:1px 10px;min-width:0;padding:5px 7px;display:flex}.info-rows--split .info-row{break-inside:avoid;margin-bottom:2px}.info-label{min-width:0;color:var(--ink-muted);font-size:var(--fs-sm);flex:auto;font-weight:600}.info-value{min-width:0;color:var(--ink);font-size:var(--fs-md);font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere;flex:0 auto;margin-left:auto;font-weight:650}.info-detail{color:var(--ink-muted);font-size:var(--fs-xs);text-align:right;overflow-wrap:anywhere;flex:1 0 100%;font-weight:550}.info-row--chips{align-items:center}.ui-chip__caption{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:var(--ui-caps);font-weight:650}.info-row--sub{background:0 0;margin-left:10px}.info-row--sub .info-label,.info-row--sub .info-value{font-size:var(--fs-sm);font-weight:550}.info-row--sub .info-label:before{color:rgb(var(--slate-rgb) / .6);content:"└";margin-right:5px}.info-row--note{border-color:rgb(var(--accent-rgb) / .1);background:#ffffffad;grid-column:1/-1}.info-row--note .info-value{text-align:left;flex-grow:1;margin-left:0}.info-stepper{flex:none;align-items:center;gap:6px;margin-left:auto;display:inline-flex}.info-stepper .info-value{text-align:center;min-width:3.5em;margin-left:0}.info-stepper__step,.info-stepper__reset{font-size:var(--fs-sm)}.info-stepper__step{width:24px;height:22px;padding:0}.info-stepper__reset{margin-left:auto;padding:3px 10px}.info-value--good{color:var(--tone-good)}.info-value--warn{color:var(--tone-warn)}.info-value--bad{color:var(--tone-bad)}.info-value--info{color:var(--tone-info)}.ui-chip,.ui-badge{border:1px solid var(--tone-neutral-line);border-radius:var(--radius-sm);background:var(--tone-neutral-fill);color:var(--tone-neutral);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:4px;padding:2px 6px;font-weight:700;line-height:1.35;display:inline-flex}.ui-badge{border-radius:var(--radius-pill);letter-spacing:.04em;text-transform:var(--ui-caps);font-size:var(--fs-xs);padding:2px 8px}.ui-badge:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.ui-chip--good,.ui-badge--good{border-color:var(--tone-good-line);background:var(--tone-good-fill);color:var(--tone-good)}.ui-chip--warn,.ui-badge--warn{border-color:var(--tone-warn-line);background:var(--tone-warn-fill);color:var(--tone-warn)}.ui-chip--bad,.ui-badge--bad{border-color:var(--tone-bad-line);background:var(--tone-bad-fill);color:var(--tone-bad)}.ui-chip--info,.ui-badge--info{border-color:var(--tone-info-line);background:var(--tone-info-fill);color:var(--tone-info)}.ui-chip--violet,.ui-badge--violet{border-color:var(--tone-violet-line);background:var(--tone-violet-fill);color:var(--tone-violet)}.ui-chip-row{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.info-row--chips .ui-chip-row{justify-content:flex-end;margin-left:auto}.ui-meter{border-radius:var(--radius-sm);background:var(--surface-row);grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:5px 7px;display:grid}.ui-meter__label{color:var(--ink-muted);font-size:var(--fs-sm);font-weight:600}.ui-meter__value{color:var(--ink);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.ui-meter__detail{color:var(--ink-muted);font-size:var(--fs-xs);text-align:right;grid-column:1/-1;font-weight:550}.ui-meter__track{border-radius:var(--radius-pill);background:rgb(var(--ink-rgb) / .1);grid-column:1/-1;height:6px;position:relative;overflow:hidden}.ui-meter__fill{border-radius:var(--radius-pill);background:var(--tone-info);width:100%;transform:scaleX(var(--meter-fill,0));transform-origin:0;transition:transform .18s;position:absolute;inset:0 auto 0 0}.ui-meter__marker{top:0;bottom:0;left:clamp(0px, calc(var(--meter-limit,1) * 100% - 1px), calc(100% - 2px));background:rgb(var(--ink-rgb) / .55);border-radius:1px;width:2px;position:absolute}.ui-meter__lost{width:calc((1 - var(--meter-limit,1)) * 100%);background:repeating-linear-gradient(-45deg, rgb(var(--ink-rgb) / .22) 0 3px, rgb(var(--ink-rgb) / .06) 3px 6px);position:absolute;inset:0 0 0 auto}.ui-meter--good .ui-meter__fill{background:var(--tone-good)}.ui-meter--warn .ui-meter__fill{background:var(--tone-warn)}.ui-meter--bad .ui-meter__fill{background:var(--tone-bad)}.ui-meter--good .ui-meter__value{color:var(--tone-good)}.ui-meter--warn .ui-meter__value{color:var(--tone-warn)}.ui-meter--bad .ui-meter__value{color:var(--tone-bad)}.ui-meter--sub{background:0 0;margin-left:10px;padding:2px 7px}.ui-meter--sub .ui-meter__label:before{color:rgb(var(--slate-rgb) / .6);content:"└";margin-right:5px}.ui-meter--sub .ui-meter__label,.ui-meter--sub .ui-meter__value{font-weight:550}.ui-meter--sub .ui-meter__track{height:4px}.ui-bars{gap:2px;padding:4px;display:grid}.ui-bar{border-radius:var(--radius-sm);grid-template-columns:minmax(72px,1fr) minmax(80px,1.2fr) 46px;align-items:center;gap:8px;padding:3px 7px;display:grid}.ui-bar:hover{background:#f8fafcb8}.ui-bar__label{min-width:0;color:var(--ink-muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.ui-bar__track{background:rgb(var(--ink-rgb) / .06);border-radius:2px;height:8px;position:relative}.ui-bar__track:before{background:rgb(var(--slate-rgb) / .45);content:"";width:1px;height:calc(100% + 2px);position:absolute;top:-1px;left:50%}.ui-bar__fill{background:var(--tone-good);width:50%;transform:scaleX(var(--bar-fill,0));transform-origin:0;border-radius:2px;position:absolute;top:1px;bottom:1px;left:50%}.ui-bar--negative .ui-bar__fill{background:var(--tone-bad);transform-origin:100%;left:auto;right:50%}.ui-bar__value{color:var(--ink);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.ui-bar--negative .ui-bar__value{color:var(--tone-bad)}.ui-bar--positive .ui-bar__value{color:var(--tone-good)}.ui-group__head{cursor:pointer;grid-template-columns:12px minmax(0,1fr);align-items:center;list-style:none;display:grid}.ui-group__head::-webkit-details-marker{display:none}.ui-group__head:before{content:"▸";color:var(--ink-muted);font-size:var(--fs-xs);transition:transform .15s}.ui-group[open]>.ui-group__head:before{transform:rotate(90deg)}.ui-group__body{gap:4px;margin:4px 0 0 12px;display:grid}.ui-dials{border-radius:var(--radius-sm);background:var(--surface-row);align-items:center;gap:14px;padding:5px 7px;display:flex}.ui-dials__label{color:var(--ink-muted);font-size:var(--fs-sm);flex:1;font-weight:600}.ui-dial{justify-items:center;gap:2px;display:grid}.ui-dial__face{--dial-tone:var(--tone-info);background:conic-gradient(var(--dial-tone) calc(var(--dial-fill,0) * 1turn), rgb(var(--ink-rgb) / .1) 0);border-radius:50%;place-items:center;width:38px;height:38px;display:grid;position:relative}.ui-dial__face--good{--dial-tone:var(--tone-good)}.ui-dial__face--warn{--dial-tone:var(--tone-warn)}.ui-dial__face--bad{--dial-tone:var(--tone-bad)}.ui-dial__face--clock:after{content:"";background:var(--control-bg);border-radius:50%;position:absolute;inset:5px}.ui-dial__text{z-index:1;color:var(--ink);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;font-weight:700;position:relative}.ui-dial__caption{color:var(--ink-muted);font-size:var(--fs-xs)}.info-action{border-top:1px solid var(--line);background:#f1f7fb99;flex-direction:column;flex:none;gap:5px;padding:8px 10px;display:flex}.info-action.is-hidden{display:none}.info-action-btn{width:100%;font-size:var(--fs-md);padding:8px 12px}.info-action-note{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.02em;text-align:center;font-weight:650}#accounting-panel{left:50%;top:calc(var(--top-bar-height,0px) + 2 * var(--hud-edge) + env(safe-area-inset-top,0px));z-index:11;width:var(--hud-bar-w);height:min(820px, calc(100dvh - var(--top-bar-height,0px) - var(--bottom-dock-height,0px) - 4 * var(--hud-edge) - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));box-sizing:border-box;border:1px solid var(--tone-info-line);border-top-color:rgb(var(--accent-rgb) / .58);border-radius:var(--radius-lg);box-shadow:0 24px 70px rgb(var(--ink-rgb) / .34), 0 2px 10px rgb(var(--ink-rgb) / .14), inset 0 1px 0 #ffffffe6;font:var(--fs-lg) / 1.38 var(--ui-font);color:var(--ink);overscroll-behavior:contain;touch-action:auto;-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);flex-direction:column;gap:0;display:flex;position:fixed;overflow:hidden;transform:translate(-50%)}#accounting-panel.is-hidden{display:none}.acct-header{border-bottom:1px solid rgb(var(--accent-rgb) / .2);background:linear-gradient(#ffffffd1,#f1f7fbc2);flex-wrap:wrap;flex:none;align-items:center;gap:8px 16px;padding:10px 14px;display:flex}.acct-header__titles{min-width:0;margin-right:auto}#accounting-panel .info-title{color:var(--ink);font-size:var(--fs-lg);letter-spacing:.01em}.acct-subtitle{color:var(--ink-muted);font-size:var(--fs-xs);margin-top:1px}.acct-rate-tolerance{min-width:92px;color:var(--ink-muted);font-size:var(--fs-xs);text-align:center}#accounting-panel .info-close{width:30px;height:30px;font-size:var(--fs-lg);flex:none}.acct-tabs{scrollbar-width:none;overscroll-behavior-x:contain;gap:2px;display:flex;overflow:visible}.acct-tabs::-webkit-scrollbar{display:none}.acct-tabs--parent{border:1px solid var(--line);border-radius:var(--radius);background:#fff9;flex:none;gap:2px;padding:2px}.acct-tabs--child{border-bottom:1px solid var(--line-soft);background:#fff6;flex-wrap:wrap;flex:none;gap:4px;padding:6px 14px}.acct-tab{min-width:0;font-size:var(--fs-sm);text-align:center;white-space:nowrap;flex:none;padding:5px 11px;line-height:1.2}.acct-tabs--child .acct-tab{border-radius:var(--radius-pill);font-size:var(--fs-xs);padding:4px 10px}.acct-content{overscroll-behavior:contain;min-height:0;padding:12px 14px 14px;overflow:auto}.acct-loan{flex-direction:column;gap:10px;display:flex}.acct-control-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.acct-control-row__label{color:var(--ink-muted);font-size:var(--fs-sm);letter-spacing:.04em;text-transform:var(--ui-caps);flex:0 0 56px;font-weight:700}.acct-control-row--metered .acct-control-row__label{flex:0 0 84px}.acct-rate-bar{border-radius:var(--radius-pill);background:rgb(var(--ink-rgb) / .1);flex:90px;min-width:70px;height:7px;position:relative;overflow:hidden}.acct-rate-bar__fill{border-radius:var(--radius-pill);background:var(--tone-info);width:100%;transform:scaleX(var(--rate-fill,0));transform-origin:0;transition:transform .18s;position:absolute;inset:0 auto 0 0}.acct-rate-bar.is-over .acct-rate-bar__fill{background:var(--tone-warn)}.acct-rate-bar__mark{top:-1px;bottom:-1px;left:calc(var(--rate-mark,0) * 100%);background:rgb(var(--ink-rgb) / .45);width:2px;position:absolute}.acct-rate-bar__mark--promised{background:var(--tone-info)}.acct-action{font-size:var(--fs-sm);flex:none;padding:6px 12px}.acct-rate-value{color:var(--tone-info);font-size:var(--fs-lg);font-variant-numeric:tabular-nums;text-align:center;flex:0 0 52px;font-weight:800}.acct-contract-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.acct-contract{border:1px solid var(--line);border-top:2px solid rgb(var(--accent-rgb) / .34);border-radius:var(--radius);min-width:0;box-shadow:0 1px 2px rgb(var(--ink-rgb) / .06);background:#ffffffb8;flex-direction:column;gap:8px;padding:11px 13px;display:flex}.acct-contract__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.acct-contract__title{color:var(--ink);font-size:var(--fs-lg);font-weight:800}.acct-contract__actions{flex-wrap:wrap;gap:6px;display:flex}.acct-negotiate{flex-direction:column;gap:10px;display:flex}.acct-choice-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.acct-choice{border-radius:var(--radius-pill);font-size:var(--fs-sm);padding:5px 12px}.acct-slider-stack{flex-direction:column;gap:8px;display:flex}.acct-slider-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.acct-slider-row .acct-control-row__label{flex:0 0 104px}.acct-slider-row .acct-rate-value{text-align:right;flex:none;min-width:148px}.acct-slider-group{flex-direction:column;gap:2px;display:flex}.acct-slider-hint{color:var(--ink-muted);font-size:var(--fs-sm);margin:0 0 0 114px}.acct-slider{min-width:140px;accent-color:var(--tone-info);cursor:pointer;flex:160px}.acct-ordinance{flex-direction:column;gap:10px;display:flex}.acct-ordinance .acct-rate-value{text-align:right;flex:none;min-width:96px}.acct-ordinance__slider{min-width:120px;accent-color:var(--tone-info);cursor:pointer;flex:120px}.acct-ordinance__summary{flex-direction:column;display:flex}.acct-funding-overrides{border-left:3px solid var(--tone-warn);color:var(--ink-muted);font-size:var(--fs-sm);padding:6px 10px;font-weight:600}.acct-stack{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start;gap:12px;display:grid}.acct-card-grid,.acct-section--wide{grid-column:1/-1}.acct-card-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;display:grid}.acct-card{border:1px solid var(--line);border-left:3px solid rgb(var(--slate-rgb) / .4);border-radius:var(--radius);background:var(--surface-raised);min-width:0;box-shadow:0 1px 2px rgb(var(--ink-rgb) / .06);flex-direction:column;padding:9px 12px 10px;display:flex}.acct-card__label{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:var(--ui-caps);order:-1;font-weight:700}.acct-card__value{color:var(--ink);font-size:var(--fs-2xl);letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:4px;font-weight:750;line-height:1.15}.acct-card__detail{color:var(--ink-soft);font-size:var(--fs-xs);overflow-wrap:anywhere;margin-top:2px}.acct-card .ui-chip-row{margin-top:5px}.acct-card__meter{margin-top:6px}.acct-card--good .acct-card__meter .ui-meter__fill{background:var(--tone-good)}.acct-card--warn .acct-card__meter .ui-meter__fill{background:var(--tone-warn)}.acct-card--bad .acct-card__meter .ui-meter__fill{background:var(--tone-bad)}.acct-card--violet .acct-card__meter .ui-meter__fill{background:var(--tone-violet)}.acct-rate-tolerance{flex-direction:column;align-items:center;gap:3px;display:flex}.acct-card--good{border-left-color:var(--tone-good)}.acct-card--good .acct-card__value{color:var(--tone-good)}.acct-card--bad{border-left-color:var(--tone-bad)}.acct-card--bad .acct-card__value{color:var(--tone-bad)}.acct-card--warn{border-left-color:var(--tone-warn)}.acct-card--warn .acct-card__value{color:var(--tone-warn)}.acct-card--info{border-left-color:var(--tone-info)}.acct-card--info .acct-card__value{color:var(--tone-info)}.acct-card--violet{border-left-color:var(--tone-violet)}.acct-card--violet .acct-card__value{color:var(--tone-violet)}#accounting-panel .info-rows{padding:0}#accounting-panel .info-row{border-color:rgb(var(--slate-rgb) / .14);background:#f8fafcb8}.acct-two-col{grid-template-columns:repeat(auto-fit, minmax(min(100%, var(--ui-row-min)), 1fr));gap:12px;display:grid}.acct-row-group{min-width:0}.acct-row-group__title{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:var(--ui-caps);margin-bottom:6px;font-weight:700}.acct-info{border:1px solid rgb(var(--accent-rgb) / .4);background:rgb(var(--accent-rgb) / .08);width:15px;height:15px;color:var(--tone-info);font-size:var(--fs-xs);cursor:pointer;border-radius:50%;flex:none;padding:0;font-weight:800;line-height:1}.acct-info:hover{background:rgb(var(--accent-rgb) / .2)}.acct-section__note{color:var(--ink-soft);font-size:var(--fs-sm);text-transform:none;letter-spacing:0;margin:0 0 10px;line-height:1.45}.acct-section__note.is-hidden{display:none}.acct-card__delta{vertical-align:middle;font-size:var(--fs-xs);margin-left:6px}.acct-empty{--icon-size:22px;border:1px dashed rgb(var(--slate-rgb) / .35);border-radius:var(--radius);background:var(--surface-row);min-height:72px;color:var(--ink-muted);font-size:var(--fs-md);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px;display:flex}.acct-empty .ui-icon{color:rgb(var(--accent-rgb) / .55)}.acct-table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-raised);width:100%;overflow-x:auto}.acct-table{border-collapse:collapse;width:100%;font-size:var(--fs-md);font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text}.acct-table th,.acct-table td{text-align:right;vertical-align:top;white-space:nowrap;padding:7px 12px}.acct-table .is-words{text-align:left;white-space:normal;min-width:7em;max-width:22em}.acct-table td:first-child{color:var(--ink);white-space:nowrap;font-weight:650}.acct-table th{border-bottom:1px solid var(--tone-info-line);background:rgb(var(--accent-rgb) / .07);color:var(--ink-soft);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:var(--ui-caps);vertical-align:bottom;font-weight:800}.acct-table__sort{color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.acct-table__sort:hover{color:var(--tone-info)}.acct-table__sort:after{color:rgb(var(--slate-rgb) / .55);content:"↕"}.acct-table th[aria-sort]{color:var(--tone-info)}.acct-table th[aria-sort=ascending] .acct-table__sort:after{color:inherit;content:"↑"}.acct-table th[aria-sort=descending] .acct-table__sort:after{color:inherit;content:"↓"}.acct-table tbody td{border-bottom:1px solid var(--line-soft)}.acct-table tbody tr:last-child td{border-bottom:0}.acct-table tbody tr:nth-child(2n){background:rgb(var(--slate-rgb) / .045)}.acct-table tbody tr:hover{background:rgb(var(--accent-rgb) / .07)}.acct-table tbody tr.is-group-start td{border-top:1px solid rgb(var(--slate-rgb) / .32)}.acct-table tbody tr.is-activatable{cursor:pointer}.acct-table tbody tr.is-activatable:hover,.acct-table tbody tr.is-activatable:focus-visible{background:rgb(var(--accent-rgb) / .12)}.acct-table tbody tr.is-activatable:focus-visible{outline-offset:-2px}.acct-table.has-activatable th:last-child,.acct-table.has-activatable td:last-child{padding-right:26px}.acct-table tbody tr.is-activatable td:last-child{position:relative}.acct-table tbody tr.is-activatable td:last-child:after{color:var(--tone-info);font-size:var(--fs-lg);content:"›";font-weight:800;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.acct-table tfoot td{border-top:2px solid rgb(var(--slate-rgb) / .35);background:rgb(var(--accent-rgb) / .05);color:var(--ink);font-weight:800}.acct-cell__value--good{color:var(--tone-good);font-weight:700}.acct-cell__value--bad{color:var(--tone-bad);font-weight:700}.acct-cell__value--warn{color:var(--tone-warn);font-weight:700}.acct-cell__value--info{color:var(--tone-info);font-weight:700}.acct-cell__detail{color:var(--ink-muted);font-size:var(--fs-xs);margin-top:1px;font-weight:600;display:block}.acct-cell__meter{border-radius:var(--radius-pill);background:rgb(var(--ink-rgb) / .1);min-width:56px;height:4px;margin-top:4px;display:block;position:relative;overflow:hidden}.acct-cell__meter-fill{border-radius:var(--radius-pill);background:var(--tone-info);transform:scaleX(var(--meter-fill,0));transform-origin:0;position:absolute;inset:0}.acct-cell__meter--good .acct-cell__meter-fill{background:var(--tone-good)}.acct-cell__meter--warn .acct-cell__meter-fill{background:var(--tone-warn)}.acct-cell__meter--bad .acct-cell__meter-fill{background:var(--tone-bad)}.ui-chip-row--cell{justify-content:flex-end;display:inline-flex}.acct-table td .ui-badge{white-space:normal}.acct-chart-container{min-width:0}.acct-chart-header{border-bottom:1px solid var(--line);justify-content:flex-end;align-items:center;gap:12px;margin-bottom:8px;padding-bottom:7px;display:flex}.acct-chart-selectors,.acct-chart-range,.acct-chart-resolution{flex:none;gap:2px;display:flex}.acct-chart-selectors{flex-wrap:wrap;justify-content:flex-end;gap:4px 10px}.acct-chart-resolution{border-left:1px solid var(--line);padding-left:8px}.acct-chart-range__btn,.acct-chart-resolution__btn{font-size:var(--fs-sm);padding:4px 7px}.chart-canvas-wrapper{border:1px solid rgb(var(--accent-rgb) / .14);border-radius:var(--radius);background:linear-gradient(rgb(var(--accent-rgb) / .035) 1px, transparent 1px), linear-gradient(90deg, rgb(var(--accent-rgb) / .035) 1px, transparent 1px), #ffffffbd;box-sizing:border-box;background-size:100% 42px,80px 100%,auto;width:100%;min-width:0;height:270px;padding:7px;position:relative}.chart-canvas-wrapper--compact{height:210px}.acct-chart-figure{gap:4px;min-width:0;margin:0;display:grid}.acct-chart-figure__title{color:var(--ink-muted);font-size:var(--fs-sm);font-weight:700}.finance-hint{color:var(--ink-muted);font-size:var(--fs-sm);margin:0;line-height:1.45}.amount-entry{flex-direction:column;gap:8px;display:flex}.amount-entry__line{align-items:stretch;gap:4px;display:flex}.amount-entry__nudge{min-width:46px;font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex:none;padding:0 7px}.amount-entry__field{border:1px solid var(--tone-info-line);border-radius:var(--radius);min-width:0;box-shadow:inset 0 1px 2px rgb(var(--ink-rgb) / .06);background:#ffffffe6;flex-direction:column;flex:120px;justify-content:center;align-items:center;padding:4px 8px 5px;display:flex}.amount-entry__field:focus-within{border-color:rgb(var(--accent-rgb) / .7);box-shadow:0 0 0 3px rgb(var(--accent-rgb) / .14)}.amount-entry__input{width:100%;min-width:0;color:var(--tone-info);font:inherit;font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;letter-spacing:-.01em;text-align:center;-webkit-user-select:text;user-select:text;background:0 0;border:0;padding:0;font-weight:800}.amount-entry__input:focus{outline:none}.amount-entry__ceiling{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:var(--ui-caps);font-weight:700}.amount-entry__presets{flex-wrap:wrap;gap:6px;display:flex}.finance-actions{flex-wrap:wrap;gap:8px;display:flex}.finance-actions__button{min-height:40px;font-size:var(--fs-lg);flex:180px;padding:0 18px}.tax-rows{flex-direction:column;display:flex}.tax-row{border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(70px,max-content) minmax(118px,1fr) minmax(86px,max-content);grid-template-areas:"name value revenue""name bar revenue";align-items:center;gap:4px 12px;padding:7px 0;display:grid}.tax-row:last-child{border-bottom:0}.tax-row__name{flex-direction:column;grid-area:name;gap:1px;min-width:0;display:flex}.tax-row__label{color:var(--ink);font-size:var(--fs-lg);font-weight:800}.tax-row__base{color:var(--ink-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.tax-row__value{color:var(--tone-info);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;grid-area:value;font-weight:800}.tax-row__bar{grid-area:bar;min-width:0}.tax-row__revenue{text-align:right;flex-direction:column;grid-area:revenue;align-items:flex-end;gap:3px;display:flex}.tax-row__now{color:var(--ink-strong);font-size:var(--fs-md);font-variant-numeric:tabular-nums;font-weight:700}.tax-row__note{color:var(--ink-muted);font-size:var(--fs-xs);font-weight:600}.debt-layout{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start;gap:12px;display:grid}.debt-lines{flex-direction:column;gap:10px;min-width:0;display:flex}.debt-line{border:1px solid var(--line);border-left:3px solid var(--debt-bank);border-radius:var(--radius);background:var(--surface-raised);box-shadow:0 1px 2px rgb(var(--ink-rgb) / .06);flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.debt-line--bond{border-left-color:var(--debt-bond)}.debt-line__head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.debt-line__title{color:var(--ink-muted);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:var(--ui-caps);font-weight:750}.debt-line__owed{color:var(--ink);font-size:var(--fs-2xl);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:800}.debt-line__open{font-size:var(--fs-sm);align-self:flex-start;padding:5px 12px}.debt-deals{border:1px solid var(--line-soft);border-radius:var(--radius-sm);flex-direction:column;display:flex;overflow:hidden}.debt-deal{color:var(--ink-strong);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;text-align:right;grid-template-columns:minmax(0,1fr) repeat(3,max-content);align-items:center;gap:12px;padding:5px 8px;display:grid}.debt-deal:nth-child(2n){background:var(--surface-row)}.debt-deal__name{color:var(--ink-soft);text-align:left;text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.promise-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,210px),1fr));gap:8px;display:grid}.promise-card{border:1px solid var(--line);border-left:3px solid var(--tone-warn);border-radius:var(--radius);background:var(--surface-raised);flex-direction:column;gap:6px;min-width:0;padding:9px 11px;display:flex}.promise-card.is-kept{border-left-color:var(--tone-good)}.promise-card__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.promise-card__title{color:var(--ink);font-size:var(--fs-lg);font-weight:800}.promise-card__progress{color:var(--ink-soft);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;display:flex}.promise-card.is-kept .ui-meter__fill{background:var(--tone-good)}.promise-card__when{color:var(--ink-muted);font-size:var(--fs-xs)}.vote-list{flex-direction:column;align-items:stretch;display:flex}.vote-row{border-bottom:1px solid var(--line-soft);font-size:var(--fs-md);flex-wrap:wrap;align-items:center;gap:4px 12px;padding:7px 4px;display:flex}.vote-row:last-of-type{border-bottom:0}.vote-row__what{flex-direction:column;flex:180px;min-width:0;display:flex}.vote-row__purpose{color:var(--ink);font-weight:750}.vote-row__ask{color:var(--ink-soft);font-size:var(--fs-sm)}.vote-row__support{min-width:52px;color:var(--ink-strong);font-variant-numeric:tabular-nums;text-align:right;font-weight:750}.vote-row__day{min-width:64px;color:var(--ink-muted);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;text-align:right}.vote-list__more{border-radius:var(--radius-pill);font-size:var(--fs-sm);align-self:flex-start;margin-top:6px;padding:4px 10px}.sheet.sheet--finance{flex-direction:column;width:min(560px,100%);display:flex;overflow:hidden}.sheet.sheet--finance-wide{width:min(1000px,100%)}.fin-sheet{overscroll-behavior:contain;flex:auto;grid-template-columns:minmax(0,1fr);align-items:start;gap:14px;min-height:0;margin:0 -24px;padding:2px 24px 4px;display:grid;overflow-y:auto}.fin-sheet__form{flex-direction:column;gap:14px;min-width:0;display:flex}.fin-sheet__summary{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-raised);min-width:0;box-shadow:0 1px 3px rgb(var(--ink-rgb) / .08);flex-direction:column;gap:12px;padding:12px 14px;display:flex;position:sticky;top:0}.fin-sheet--split{grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:18px}@media (max-width:760px){.fin-sheet--split{grid-template-columns:minmax(0,1fr)}.fin-sheet__summary{position:static}}.fin-part{flex-direction:column;gap:8px;display:flex}.fin-part+.fin-part{border-top:1px solid var(--line-soft);padding-top:12px}.fin-part__title{color:var(--ink);font-size:var(--fs-lg);margin:0;font-weight:800}.fin-ways{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));gap:6px;display:grid}.fin-way{text-align:left;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;padding:7px 10px;display:flex}.fin-way__title{font-size:var(--fs-md);font-weight:800}.fin-way__detail{color:var(--ink-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums;font-weight:600}.fin-way.is-active .fin-way__detail{color:inherit}.fin-target{border-left:3px solid var(--tone-warn);border-radius:var(--radius-sm);background:var(--tone-warn-fill);color:var(--ink-strong);font-size:var(--fs-md);margin:0;padding:7px 10px;font-weight:700}.fin-tax{border-radius:var(--radius-sm);border-left:3px solid #0000;grid-template-columns:minmax(70px,max-content) minmax(150px,1fr) minmax(96px,max-content);align-items:center;gap:4px 12px;margin:0 -8px;padding:5px 8px;display:grid}.fin-tax.is-moved{border-left-color:var(--tone-info);background:var(--tone-info-fill)}.fin-tax__name{flex-direction:column;min-width:0;display:flex}.fin-tax__label{color:var(--ink);font-size:var(--fs-md);font-weight:800}.fin-tax__base{color:var(--ink-muted);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.fin-tax__stepper{align-items:center;gap:4px;display:flex}.tax-row__step{width:26px;height:26px;font-size:var(--fs-xl);flex:none;padding:0;line-height:1}.fin-tax__value{color:var(--tone-info);font-size:var(--fs-lg);font-variant-numeric:tabular-nums;flex:auto;justify-content:center;align-items:baseline;gap:6px;font-weight:800;display:flex}.fin-tax__from{color:var(--ink-muted);font-size:var(--fs-sm);font-weight:600;text-decoration:line-through}.fin-tax__from:after{content:" →";margin-left:4px;text-decoration:none;display:inline-block}.fin-tax__effect{text-align:right;flex-direction:column;align-items:flex-end;gap:2px;display:flex}.fin-tax__now{color:var(--ink-soft);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;font-weight:700}.fin-tax__note{color:var(--ink-muted);font-size:var(--fs-xs);font-weight:600}.fin-tax__note.is-warn{color:var(--tone-warn);font-weight:700}.fin-select{border:1px solid var(--control-line);border-radius:var(--radius);min-width:220px;min-height:30px;color:var(--ink);font:inherit;font-size:var(--fs-md);cursor:pointer;background:#ffffffeb;align-self:flex-start;padding:0 8px;font-weight:700}.fin-select:focus-visible{outline:var(--focus-ring);outline-offset:1px}.fin-verdict{flex-direction:column;gap:5px;display:flex}.fin-verdict__headline{color:var(--ink-strong);font-size:var(--fs-xl);font-weight:800}.fin-verdict__headline.is-good{color:var(--tone-good)}.fin-verdict__headline.is-bad{color:var(--tone-bad)}.fin-verdict__sub{color:var(--ink-soft);font-size:var(--fs-sm)}.fin-support{border-radius:var(--radius-pill);background:rgb(var(--ink-rgb) / .1);height:8px;position:relative}.fin-support__fill{border-radius:var(--radius-pill);background:var(--tone-good);transform:scaleX(var(--support,0));transform-origin:0;transition:transform .2s;position:absolute;inset:0}.fin-support.is-failing .fin-support__fill{background:var(--tone-bad)}.fin-support__mark{top:-3px;bottom:-3px;left:calc(var(--threshold,.5) * 100%);background:var(--ink-strong);border-radius:1px;width:2px;position:absolute}.fin-why summary{width:-moz-fit-content;width:fit-content;color:var(--tone-info);cursor:pointer;font-size:var(--fs-md);font-weight:700}.fin-why[open] summary{margin-bottom:6px}.fin-problem{color:var(--tone-bad);font-size:var(--fs-md);margin:0;font-weight:700}.sheet__confirm.is-failing{border-color:var(--tone-warn-line);color:var(--tone-warn);background:linear-gradient(#fff7edfa,#fee4c4f2)}.sheet__confirm.is-failing:hover:not(:disabled){color:var(--tone-warn);background:linear-gradient(#fffbf5,#fddcb4fa);border-color:#d9770699}@media (max-width:680px){.acct-header,.acct-tabs--child,.acct-content{padding-left:10px;padding-right:10px}.acct-header{grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;padding-top:8px;padding-bottom:8px;display:grid}.acct-header__titles{grid-area:1/1;margin-right:0}#accounting-panel .info-close{grid-area:1/2}.acct-tabs--parent{grid-area:2/1/auto/-1;overflow-x:auto}.acct-subtitle{display:none}.acct-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.acct-card__value{font-size:var(--fs-xl)}.acct-chart-header{flex-direction:column;align-items:flex-start}.acct-chart-selectors{justify-content:flex-start}}.welcome-overlay,.save-as-overlay,.quit-overlay,.sheet-overlay{z-index:140;box-sizing:border-box;background:rgb(var(--ink-rgb) / .38);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.welcome-modal,.save-as-modal,.quit-modal,.sheet{box-sizing:border-box;border:1px solid var(--tone-info-line);border-top-color:rgb(var(--accent-rgb) / .58);border-radius:var(--radius-lg);width:min(520px,100%);max-height:calc(100vh - 40px);box-shadow:0 24px 70px rgb(var(--ink-rgb) / .34), 0 2px 10px rgb(var(--ink-rgb) / .14), inset 0 1px 0 #ffffffe6;color:var(--ink);background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);padding:22px 24px;overflow-y:auto}.welcome-modal__title,.save-as-modal__title,.quit-modal__title,.sheet__title{font-size:var(--fs-xl);margin:0 0 14px;font-weight:800}.welcome-points{margin:0;padding:0;list-style:none}.welcome-points li{border-left:3px solid rgb(var(--accent-rgb) / .34);color:var(--ink-soft);font-size:var(--fs-lg);margin-bottom:12px;padding-left:14px;line-height:1.5}.welcome-points strong{color:var(--ink)}.welcome-modal__footer{border-radius:var(--radius);background:rgb(var(--accent-rgb) / .1);color:var(--tone-info);font-size:var(--fs-lg);margin:16px 0 0;padding:10px 12px;font-weight:700}.welcome-dismiss{color:var(--ink-soft);cursor:pointer;font-size:var(--fs-md);align-items:center;gap:8px;margin-top:16px;display:flex}.welcome-dismiss+.welcome-dismiss{margin-top:8px}.welcome-modal__actions,.save-as-modal__actions,.quit-modal__actions,.sheet__actions{justify-content:flex-end;margin-top:14px;display:flex}.save-as-modal__actions,.quit-modal__actions,.sheet__actions{gap:8px}.save-as-modal__note,.quit-modal__note{color:var(--ink-soft);font-size:var(--fs-md);margin:0 0 14px}.save-as-field{color:var(--ink-muted);font-size:var(--fs-md);letter-spacing:.06em;text-transform:var(--ui-caps);flex-direction:column;gap:5px;font-weight:700;display:flex}.save-as-input{border:1px solid var(--control-line);border-radius:var(--radius);min-height:34px;color:var(--ink);font:inherit;font-size:var(--fs-lg);background:#ffffffeb;padding:0 10px}.save-as-input:focus-visible{outline:2px solid rgb(var(--accent-rgb) / .55);outline-offset:1px}.save-as-modal__warning{color:var(--tone-warn);font-size:var(--fs-md);margin:10px 0 0;font-weight:700}.save-as-modal__warning.is-hidden{display:none}.error-report-sheet__note{color:var(--ink-soft);font-size:var(--fs-md);margin:0 0 10px}.error-report-sheet__id{color:var(--ink);font-size:var(--fs-md);flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px;font-weight:700;display:flex}.error-report-sheet__details{border:1px solid var(--control-line);border-radius:var(--radius);max-height:40vh;font-family:var(--mono-font);font-size:var(--fs-sm);white-space:pre-wrap;word-break:break-word;background:#ffffffb3;margin:0;padding:8px 10px;overflow:auto}.welcome-start,.save-as-confirm,.quit-confirm,.sheet__confirm{min-height:34px;font-size:var(--fs-lg);padding:0 20px}@media (max-width:620px){.welcome-overlay,.save-as-overlay,.quit-overlay,.sheet-overlay{padding:8px}.welcome-modal,.save-as-modal,.quit-modal,.sheet{max-height:calc(100dvh - 16px);padding:14px 16px}}:is(.welcome-overlay,.save-as-overlay,.quit-overlay,.sheet-overlay,.start-modal-overlay),#dock-options-panel,#dock-news-panel,#demand-panel,#dock-layers-panel,#building-info,#car-info,#ped-info,#tutorial-card,#map-legend,.log-panel,.variant-picker__menu,#accounting-panel{opacity:1;transition:opacity var(--modal-duration) var(--modal-easing), scale var(--modal-duration) var(--modal-easing), display var(--modal-duration) allow-discrete}:is(.welcome-modal,.save-as-modal,.quit-modal,.sheet,.start-modal){transition:scale var(--modal-duration) var(--modal-easing);scale:1}:is(.welcome-overlay,.save-as-overlay,.quit-overlay,.sheet-overlay,.start-modal-overlay).is-closing,#dock-options-panel.is-hidden,#dock-news-panel.is-hidden,#demand-panel.is-hidden,#dock-layers-panel.is-hidden,#building-info.is-hidden,#car-info.is-hidden,#ped-info.is-hidden,#tutorial-card.is-hidden,#map-legend.is-hidden,.log-panel.is-hidden,.variant-picker__menu.is-hidden,#accounting-panel.is-hidden{opacity:0}:is(.welcome-overlay,.save-as-overlay,.quit-overlay,.sheet-overlay,.start-modal-overlay).is-closing>:is(.welcome-modal,.save-as-modal,.quit-modal,.sheet,.start-modal),#dock-options-panel.is-hidden,#dock-news-panel.is-hidden,#demand-panel.is-hidden,#dock-layers-panel.is-hidden,#building-info.is-hidden,#car-info.is-hidden,#ped-info.is-hidden,#tutorial-card.is-hidden,#map-legend.is-hidden,.log-panel.is-hidden,.variant-picker__menu.is-hidden,#accounting-panel.is-hidden{scale:var(--modal-closed-scale)}#dock-options-panel.is-hidden,#dock-news-panel.is-hidden,#demand-panel.is-hidden,#dock-layers-panel.is-hidden,#building-info.is-hidden,#car-info.is-hidden,#ped-info.is-hidden,#tutorial-card.is-hidden,#map-legend.is-hidden,.log-panel.is-hidden,.variant-picker__menu.is-hidden,#accounting-panel.is-hidden{pointer-events:none}@starting-style{:is(.welcome-overlay,.save-as-overlay,.quit-overlay,.sheet-overlay,.start-modal-overlay),#dock-options-panel,#dock-news-panel,#demand-panel,#dock-layers-panel,#building-info,#car-info,#ped-info,#tutorial-card,#map-legend,.log-panel,.variant-picker__menu,#accounting-panel{opacity:0}:is(.welcome-modal,.save-as-modal,.quit-modal,.sheet,.start-modal),#dock-options-panel,#dock-news-panel,#demand-panel,#dock-layers-panel,#building-info,#car-info,#ped-info,#tutorial-card,#map-legend,.log-panel,.variant-picker__menu,#accounting-panel{scale:var(--modal-closed-scale)}}
