:root{--fs-2xs:9px;--fs-xs:10px;--fs-sm:11px;--fs-md:12px;--fs-lg:13px;--fs-xl:17px;--ui-font:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ink:#0f172a;--ink-soft:#475569;--ink-muted:#64748b;--tone-good:#15803d;--tone-warn:#b45309;--tone-bad:#b91c1c;--tone-info:#0e7490;--tone-violet:#6d28d9;--tone-neutral:#475569;--tone-good-line:#16a34a57;--tone-warn-line:#d977065c;--tone-bad-line:#dc262657;--tone-info-line:#0e749052;--tone-violet-line:#7c3aed4d;--tone-neutral-line:#64748b3d;--tone-good-fill:#16a34a21;--tone-warn-fill:#d9770624;--tone-bad-fill:#dc26261f;--tone-info-fill:#0e74901f;--tone-violet-fill:#7c3aed1f;--tone-neutral-fill:#64748b1f;--line:#0e749029;--line-soft:#64748b29;--radius:6px;--radius-lg:8px;--glass-bg:linear-gradient(160deg, #f8fafcf2, #e2ecf4f0);--glass-line:#0e749047;--glass-line-top:#0e749070;--glass-blur:blur(16px) saturate(1.12);--glass-shadow:0 18px 48px #0f172a4d, 0 2px 10px #0f172a1a, inset 0 1px 0 #ffffffd1;--control-bg:#ffffffbd;--control-line:#64748b3d;--app-bg:#dbe4ec;--menu-bg:radial-gradient(1100px 620px at 14% -14%, #0e74902b, transparent 68%), radial-gradient(940px 560px at 88% 2%, #22c55e24, transparent 70%), linear-gradient(180deg, #eef4f9 0%, #dbe4ec 60%, #ccd9e4 100%);--inspector-h:min(38dvh, 380px);--inspector-side-h:min(42dvh, 420px);--ui-scale:1;--hud-bar-w:min(1000px, calc(100vw - 24px));--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))}.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}#start-screen{z-index:120;box-sizing:border-box;background:var(--menu-bg);color:var(--ink);justify-content:center;align-items:center;padding:28px;font-size:13px;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);background:#ffffff9e;gap:2px;width:max-content;max-width:100%;margin:0 auto 12px;padding:3px;display:flex;box-shadow:inset 0 1px #ffffffb3}.start-tab{min-height:30px;color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:0 16px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.start-tab:hover,.start-tab:focus-visible{color:var(--tone-info);background:#0e749014;outline:none}.start-tab.is-active{border-color:var(--tone-info-line);background:var(--tone-info-fill);color:var(--tone-info);box-shadow:inset 0 -2px #0e749080}.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:uppercase;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;background:#ffffffdb;flex:1;padding:0 11px;font-size:16px}.start-input:focus{border-color:#0e74908c;outline:none;box-shadow:0 0 0 3px #0e74901f}.start-primary{border-radius:var(--radius);min-width:94px;min-height:38px;color:var(--tone-info);font:inherit;cursor:pointer;background:linear-gradient(#ffffffe6,#e2ecf4d9);border:1px solid #0e749066;padding:0 16px;font-weight:800}.start-primary:hover,.start-primary:focus-visible{background:linear-gradient(#fffffff5,#d6e6f0eb);border-color:#0e749099;outline:none}.start-label-size{margin-top:16px}.start-size-options{gap:8px;display:flex}.start-size-option{border:1px solid var(--control-line);border-radius:var(--radius);background:var(--control-bg);color:var(--ink);font:inherit;text-align:left;cursor:pointer;flex-direction:column;flex:1;align-items:flex-start;gap:3px;padding:9px 12px;transition:background-color .15s,border-color .15s,color .15s;display:flex}.start-size-option:hover,.start-size-option:focus-visible{background:#fff;border-color:#0e749052;outline:none}.start-size-option.is-active{background:#0e749017;border-color:#0e749061;box-shadow:inset 0 -2px #0e749061}.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-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{border:1px solid var(--control-line);border-radius:var(--radius);background:var(--control-bg);min-height:32px;color:var(--ink);font:inherit;cursor:pointer;padding:0 12px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.start-map-chip:hover,.start-map-chip:focus-visible{background:#fff;border-color:#0e749052;outline:none}.start-map-chip.is-active{color:var(--tone-info);background:#0e749017;border-color:#0e749061;box-shadow:inset 0 -2px #0e749061}.start-seed-input{height:32px;font-size:var(--fs-md)}.start-map-preview{border:1px solid var(--control-line);border-radius:var(--radius);background:#6c9660;flex:none;width:200px;height:200px;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:uppercase;margin:0;font-weight:800}.start-panel-actions{gap:6px;display:flex}.start-secondary,.start-save-btn{border:1px solid var(--control-line);background:var(--control-bg);color:#1e293b;min-height:32px;font:inherit;font-size:var(--fs-sm);cursor:pointer;border-radius:5px;padding:0 12px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.start-secondary:hover,.start-secondary:focus-visible,.start-save-btn:hover,.start-save-btn:focus-visible{color:var(--ink);background:#fff;border-color:#0e749052;outline:none}.start-secondary:disabled,.start-save-btn:disabled{opacity:.5;cursor:not-allowed}.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{background:#0e749012;border-color:#0e749052;outline:none}.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-btn--load{color:var(--tone-info);background:linear-gradient(#ffffffe6,#e2ecf4d9);border-color:#0e749066;font-weight:800}.start-save-btn--load:hover,.start-save-btn--load:focus-visible{color:var(--tone-info);background:linear-gradient(#fffffff5,#d6e6f0eb);border-color:#0e749099}.start-save-btn--danger{border-color:var(--tone-bad-line);background:var(--tone-bad-fill);color:var(--tone-bad)}.start-save-btn--danger:hover,.start-save-btn--danger:focus-visible{color:var(--tone-bad);background:#dc26262e;border-color:#b91c1c8c}.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{background:var(--tone-info-fill);color:var(--tone-info);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;vertical-align:middle;border-radius:999px;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;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a52;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.start-modal{box-sizing:border-box;border-radius:var(--radius-lg);width:min(420px,100%);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);color:var(--ink);background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749052;border-top-color:#0e749094;padding:20px;box-shadow:0 24px 70px #0f172a57,0 2px 10px #0f172a24,inset 0 1px #ffffffe6}.start-modal-title{color:var(--ink);margin:0 0 8px;font-size:16px;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{border-radius:var(--radius);color:#be123c;min-width:96px;min-height:32px;font:inherit;font-size:var(--fs-sm);cursor:pointer;background:linear-gradient(#fee2e2f2,#fccdd3eb);border:1px solid #be123c99;padding:0 16px;font-weight:800}.start-danger:hover,.start-danger:focus-visible{background:linear-gradient(#fee2e2,#fabec5f5);border-color:#be123ccc;outline:none}.start-danger:disabled{opacity:.5;cursor:not-allowed}@media (max-width:520px){.start-save{grid-template-columns:minmax(0,1fr)}.start-save-actions{justify-content:stretch}.start-save-btn{flex:1}}[data-cursor=grab]{cursor:grab}[data-cursor=grabbing]{cursor:grabbing}[data-cursor=crosshair]{cursor:crosshair}#debug-design-legend{left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:10;width:min(1060px,100vw - 24px);max-height:min(48dvh, calc(100dvh - 24px - env(safe-area-inset-bottom,0px)));box-sizing:border-box;-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);color:#0f172a;pointer-events:auto;-webkit-user-select:none;user-select:none;background:#e5edf6eb;border:1px solid #64748b47;border-radius:6px;flex-direction:column;gap:5px;padding:5px;font:10px/1.2 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:fixed;overflow:auto;transform:translate(-50%);box-shadow:0 16px 42px #0f172a47,inset 0 1px #ffffffbf}.debug-design-legend-header{color:#475569;cursor:pointer;border-bottom:1px solid #64748b33;padding:3px 5px 7px;font-weight:600;text-decoration:none}.debug-design-legend-header:hover{color:#0e7490}.debug-design-legend-random{color:#1e293b;font:inherit;cursor:pointer;background:#ffffffbd;border:1px solid #64748b47;border-radius:4px;justify-self:start;padding:3px 7px;font-weight:600}.debug-design-legend-random:hover{color:#0f172a;background:#fff;border-color:#0e749052}.debug-design-legend-group{display:block}.debug-design-legend-section{color:#475569;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;padding-top:2px;font-weight:700}.debug-design-legend-items{grid-template-columns:repeat(4,max-content);gap:5px 10px;padding-top:5px;display:grid}.debug-design-legend-item{white-space:nowrap;color:#1e293b;cursor:pointer;border-radius:4px;align-items:center;gap:5px;margin:-2px -3px;padding:2px 5px;text-decoration:none;display:inline-flex}.debug-design-legend-item:hover{background:#2563eb24}.debug-design-legend-item.is-active{background:#2563eb3d;font-weight:600}.debug-design-legend-swatch{background:var(--swatch);border:1px solid #0000002e;width:10px;height:10px}#debug-type-labels,#debug-overview-labels{pointer-events:none;z-index:5;position:fixed;inset:0}.debug-type-label{color:#fff;white-space:nowrap;transform-origin:50%;transform:translate(-50%, -50%) translate(var(--x,0), var(--y,0)) scale(var(--label-scale,1));background:#11151cc7;border:1px solid #ffffff59;border-radius:999px;padding:2px 6px;font:700 13px/1 ui-monospace,monospace;position:absolute;top:0;left:0}.debug-overview-label{letter-spacing:0;color:#fff;white-space:nowrap;transform-origin:100%;transform:translate(-100%, -50%) translate(var(--x,0), var(--y,0)) scale(var(--label-scale,1));background:#0d1218e0;border:1px solid #ffffff59;border-radius:4px;padding:3px 6px;font:800 12px/1.1 ui-monospace,monospace;position:absolute;top:0;left:0}.debug-overview-label-detail{color:#b8c6d6;margin-top:2px;font-size:11px;font-weight:600;display:block}#debug-construction-toggle{color:#1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;align-self:flex-start;align-items:center;gap:7px;padding:5px 8px;font:650 11px system-ui,sans-serif;display:inline-flex}#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}#loading-logo{width:min(240px,68vw);height:auto;margin-bottom:8px;display:block}#loading-bar-track{background:#0f172a1f;border-radius:999px;width:200px;height:3px;overflow:hidden}#loading-bar-fill{height:100%;width:var(--load,0%);background:var(--tone-info);border-radius:999px;transition:width 80ms linear}#loading-label{color:var(--ink-muted);letter-spacing:.06em;font:11px/1 ui-monospace,monospace}#loading-timer{color:var(--ink);letter-spacing:.08em;font-variant-numeric:tabular-nums;font:600 15px/1 ui-monospace,monospace}.toolbar-btn{min-height:var(--btn-h);border:1px solid var(--control-line);background:var(--control-bg);color:#1e293b;cursor:pointer;font:inherit;font-size:calc(11px * var(--ui-scale));border-radius:5px;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){color:#0f172a;background:#fff;border-color:#0e749052}.toolbar-btn.is-selected{outline-offset:0;color:#0e7490;background:#0e749017;border-color:#0e749061;outline:1px solid #0e749052;box-shadow:inset 0 -2px #0e749061}.toolbar-btn--size{min-width:var(--size-btn-w);min-height:var(--variant-h);font-size:calc(10px * var(--ui-scale));padding:0 6px;font-weight:800}.toolbar-btn--size.is-selected{color:#0e7490;background:#0e74901a;border-color:#0e749057}.toolbar-btn--variant{--icon-size:calc(13px * var(--ui-scale));gap:4px;padding:0 8px}.toolbar-btn.is-locked{color:#64748b80;opacity:1;cursor:not-allowed;background:#e2e8f08c}.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);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);box-shadow:var(--glass-shadow);color:var(--ink);-webkit-user-select:none;user-select:none;width:var(--hud-bar-w);flex-direction:column;align-items:stretch;gap:4px;padding:5px;font-size:12px;display:flex;position:fixed;left:50%;transform:translate(-50%)}#hud-top{top:calc(10px + 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(10px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 20px - 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);cursor:crosshair;background:#e2ecf499;border:1px solid #0e749033;border-radius:6px;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}.city-stats{grid-template-columns:repeat(3,minmax(54px,1fr));gap:4px;min-width:0;display:grid}.city-stat{background:#ffffffa3;border:1px solid #0e749024;border-radius:5px;min-width:54px;padding:4px 6px;box-shadow:inset 0 1px #ffffff8c}.city-stat__label{color:#64748b;font-size:calc(8px * var(--ui-scale));letter-spacing:.06em;text-transform:uppercase;font-weight:700;line-height:1;display:block}.city-stat__value{color:#0f172a;font-size:calc(11px * var(--ui-scale));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;gap:3px}.city-stats--headline .city-stat{min-width:50px;padding:2px 5px}.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));color:#0f172a;background:#ffffffb3;border:1px solid #0e749033;border-radius:6px;flex:auto;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffa6}.build-status__chip{z-index:2;color:#0e7490;cursor:pointer;font-family:inherit;font-size:calc(8px * var(--ui-scale));letter-spacing:.1em;background:#0e74901a;border:1px solid #0000;border-radius:4px;align-items:center;gap:3px;padding:3px 7px;font-weight:800;line-height:1;display:inline-flex;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.build-status__chip:hover{background:#0e74902e;border-color:#0e749073}.build-status__chip.is-selected{background:#0e74903d;border-color:#0e749099}.build-status__chip.has-unread{border-color:#dc26266b}#build-status:after{content:"";z-index:1;background:linear-gradient(90deg,#fffffffa 0%,#ffffffe0 72%,#0000 100%);width:150px;position:absolute;inset:0 auto 0 0}.build-status__text{white-space:nowrap;font-size:12px;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}@keyframes status-slide{0%{transform:translateY(-50%)}to{transform:translate(calc(-100% - 100vw),-50%)}}.time-controls,.speed-controls{align-items:center;gap:4px;display:flex}.time-controls{background:#ffffff94;border:1px solid #0e749024;border-radius:6px;flex:none;padding:1px}.speed-lag-indicator{cursor:help;background:#f59e0b29;border-radius:5px;justify-content:center;align-items:center;width:24px;height:24px;font-size:16px;line-height:1;display:inline-flex}.speed-lag-indicator.is-hidden{display:none}.music-controls{flex:none;align-items:center;gap:1px;display:flex}.music-controls__btn{color:#94a3b8;background:0 0;border-color:#0000;min-width:18px;padding:0 2px;font-size:10px}.music-controls.is-playing .music-controls__btn{color:#0e7490}#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);background:#ffffff94;border-radius:6px;flex-direction:column;justify-content:center;gap:5px;min-width:0;padding:4px 8px;display:flex}.build-selection.is-hidden{visibility:hidden}.build-category-tabs{border:1px solid var(--line);scrollbar-width:none;background:#ffffff80;border-radius:6px;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);color:var(--ink-soft);cursor:pointer;font:inherit;font-size:calc(11px * var(--ui-scale));background:0 0;border:1px solid #0000;border-radius:5px;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){background:#0e749012;border-color:#0e749029}.build-category-tab.is-selected{color:#0e7490;background:#0e749021;border-color:#0e74904d;box-shadow:inset 0 -3px #0e74909e}.build-variants{min-width:0;display:flex}.build-variant-strip{flex-wrap:wrap;align-items:center;gap:3px;min-width:0;display:flex}.build-variant-strip.is-hidden{display:none}.build-variant-strip__label{color:var(--ink-muted);font-size:calc(8px * var(--ui-scale));letter-spacing:.08em;text-transform:uppercase;font-weight:800}.active-tool-status{color:#0e7490;min-width:0;font-size:calc(11px * var(--ui-scale));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;min-height:var(--tile-size)}.build-tile-grid{grid-auto-flow:column;grid-auto-columns:var(--tile-size);scrollbar-width:none;gap:4px;min-width:0;padding:1px;display:grid;overflow-x:auto}.build-tile-grid::-webkit-scrollbar{display:none}.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);background:var(--control-bg);color:#1e293b;cursor:pointer;font:inherit;font-size:calc(9px * var(--ui-scale));text-align:center;border-radius:6px;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){color:#0f172a;background:#fff;border-color:#0e749052}.build-tile.is-selected{outline-offset:0;color:#0e7490;background:#0e74901f;border-color:#0e749073;outline:1px solid #0e749052;box-shadow:inset 0 -2px #0e749073}.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:#0e7490bf;animation:.85s ease-in-out 3 tile-hint}@keyframes tile-hint{0%,to{box-shadow:0 0 #0e749000}50%{box-shadow:0 0 0 4px #0e749057}}.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)}.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{width:min(420px,100vw - 24px);max-height:min(420px, calc(100dvh - 96px - env(safe-area-inset-top,0px)));box-sizing:border-box;overscroll-behavior:contain;scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749047;border-top-color:#0e749075;border-radius:8px;flex-direction:column;gap:8px;padding:10px;display:flex;overflow:auto;box-shadow:0 18px 44px #0f172a47,inset 0 1px #ffffffd6}#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,.news-feed.is-hidden{display:none}.news-tabs{gap:4px;display:flex}.news-tab{color:#475569;cursor:pointer;background:#fff9;border:1px solid #0e749038;border-radius:5px;align-items:center;gap:2px;padding:4px 9px;font-family:inherit;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.news-tab:hover{color:#0f172a;border-color:#0e749073}.news-tab.is-selected{color:#0e7490;background:#0e749024;border-color:#0e749099}.news-badge{color:#fff;background:#dc2626;border-radius:999px;justify-content:center;align-items:center;min-width:15px;height:15px;margin-left:5px;padding:0 4px;font-size:9px;font-weight:800;line-height:1;display:inline-flex}.news-badge.is-hidden{display:none}.news-badge--cityHall{background:#b45309}.build-status__chip .news-badge{letter-spacing:0;margin-left:0}.news-feed{flex-direction:column;gap:6px;display:flex}.news-empty{color:#64748b;text-align:center;border:1px dashed #64748b4d;border-radius:6px;padding:14px 10px;font-size:11px}.news-item{border:1px solid #0e749029;border-left:4px solid var(--news-severity,#94a3b8);color:#0f172a;font:inherit;text-align:left;cursor:pointer;background:#ffffffc7;border-radius:6px;flex-direction:column;gap:3px;padding:7px 9px 7px 12px;display:flex}.news-item:hover{border-color:#0e749066;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:12px;font-weight:800;line-height:1.2}.news-item__date{color:#94a3b8;letter-spacing:.04em;white-space:nowrap;flex:none;font-size:9px;font-weight:700}.news-item__body{color:#475569;font-size:11px;line-height:1.35}.news-item--static{cursor:default}.news-item--static:hover{background:#ffffffc7;border-color:#0e749029}.news-item__cause{color:#0e7490;letter-spacing:.06em;text-transform:uppercase;background:#0e74901a;border-radius:4px;align-self:flex-start;margin-top:2px;padding:2px 6px;font-size:9px;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:#64748b;letter-spacing:.07em;text-transform:uppercase;font-size:10px;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}.layer-btn{justify-content:flex-start;align-items:center;gap:6px;padding:4px 8px;display:flex;overflow:hidden}.layer-btn__chip{background:var(--layer-gradient,#cbd5e1);border-radius:3px;flex:none;width:14px;height:14px;box-shadow:inset 0 0 0 1px #0f172a38}.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;-webkit-backdrop-filter:blur(16px)saturate(1.12);backdrop-filter:blur(16px)saturate(1.12);color:#0f172a;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(160deg,#f8fafcf2,#e2ecf4f0);border:1px solid #0e749047;border-top-color:#0e749070;border-radius:8px;width:176px;padding:8px 10px;font:12px system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;box-shadow:0 18px 48px #0f172a4d,inset 0 1px #ffffffd1}#map-legend.is-hidden{display:none}.map-legend__title{letter-spacing:.02em;font-size:12px;font-weight:800}.map-legend__bar{background:var(--layer-gradient,#cbd5e1);border-radius:3px;height:10px;margin-top:7px;box-shadow:inset 0 0 0 1px #0f172a2e}.map-legend__scale{justify-content:space-between;gap:6px;margin-top:4px;display:flex}.map-legend__tick{color:#475569;font-size:10px;font-weight:700}.map-legend__readout{color:#1e293b;border-top:1px solid #0f172a24;flex-direction:column;gap:2px;margin-top:8px;padding-top:7px;font-size:11px;font-weight:700;display:flex}.map-legend__readout.is-hidden{display:none}.map-legend__swatches{flex-direction:column;gap:4px;margin-top:7px;display:flex}.map-legend__swatch{color:#334155;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.map-legend__dot{background:var(--swatch,#cbd5e1);border-radius:3px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #0f172a38}.map-legend__shades{background:var(--layer-gradient,#cbd5e1);border-radius:3px;flex:none;width:34px;height:12px;box-shadow:inset 0 0 0 1px #0f172a38}.map-legend__note{color:#475569;margin-top:6px;font-size:10px;font-weight:700}#dock-options-panel::-webkit-scrollbar{width:9px;height:9px}#dock-layers-panel::-webkit-scrollbar{width:9px;height:9px}.debug-bottom-dock::-webkit-scrollbar{width:9px;height:9px}#dock-options-panel::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}#dock-layers-panel::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}.debug-bottom-dock::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}#dock-options-panel::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}#dock-layers-panel::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}.debug-bottom-dock::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}#dock-options-panel::-webkit-scrollbar-thumb:hover{background:#0e7490f0}#dock-layers-panel::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.debug-bottom-dock::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.dock-options__header{border-bottom:1px solid #0e749029;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:#0f172a;letter-spacing:.09em;text-transform:uppercase;margin-left:auto;font-size:12px;font-weight:800}.dock-options__save-load{flex-direction:column;gap:6px;display:flex}.dock-options__save-load .toolbar-btn{width:100%}.dock-options__autosave{color:#334155;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:6px;font-size:11px;display:grid}.dock-options__autosave select{color:#0f172a;width:100%;min-height:26px;font:inherit;background:#fff;border:1px solid #0e749047;border-radius:5px;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{color:#475569;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}.gfx-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__row{color:#334155;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:6px;font-size:11px;display:grid}.gfx-settings__row select{color:#0f172a;width:100%;min-height:26px;font:inherit;background:#fff;border:1px solid #0e749047;border-radius:5px;padding:0 6px}.gfx-settings__row input[type=checkbox]{accent-color:#0e7490;justify-self:start}.gfx-settings__restart{background:#fef3c7b3;border:1px solid #d9770659;border-radius:6px;flex-direction:column;gap:5px;padding:7px;display:flex}.gfx-settings__restart.is-hidden{display:none}.gfx-settings__restart-text{color:#92400e;font-size:10px;line-height:1.35}.audio-settings{border-top:1px solid #0e749029;flex-direction:column;gap:5px;padding-top:8px;display:flex}.audio-settings__slider{color:#334155;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:6px;font-size:11px;display:grid}.audio-settings__slider input[type=range]{accent-color:#0e7490;width:100%}.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{grid-template-columns:110px minmax(0,1fr);font-size:13px}.start-settings .gfx-settings{gap:8px}.start-settings .gfx-settings__presets{grid-template-columns:repeat(4,minmax(0,1fr))}.start-settings .gfx-settings__row{grid-template-columns:110px minmax(0,1fr);font-size:13px}@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}}#sim-panel{gap:calc(4px * var(--ui-scale));width:max-content;height:calc(30px * var(--ui-scale));border:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#ffffff94;border-radius:5px;flex:none;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:calc(8px * var(--ui-scale));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));background:#0f172a1f;border:1px solid #64748b29;border-radius:3px;flex:auto;position:relative;overflow:hidden}.sim-track:after{content:"";background:#0f172a42;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)}@media (max-width:980px){:root{--ui-scale:.92;--hud-bar-w:calc(100vw - 16px)}#hud-top,#hud-bottom,.debug-bottom-dock,#debug-design-legend{padding:6px}}@media (max-width:760px){.minimap{display:none}}@media (max-width:620px){:root{--ui-scale:.85}.dock-options__logo{width:130px}#hud-bottom,.debug-bottom-dock,#debug-design-legend{bottom:calc(8px + env(safe-area-inset-bottom,0px));gap:4px}#hud-top{top:calc(8px + env(safe-area-inset-top,0px));flex-wrap:wrap;justify-content:space-between;gap:4px}.debug-design-legend-items{grid-template-columns:repeat(2,max-content)}.city-stats--headline{grid-template-columns:repeat(3,minmax(52px,1fr))}.city-stat--date,.city-stat--unemployment,.city-stat--migration{display:none}.hud-bottom__body{grid-template-columns:minmax(0,1fr)}.hud-side__buttons{flex:auto;grid-template-rows:auto;grid-auto-flow:column}.build-row{grid-template-columns:minmax(0,1fr)}.build-category-tab__label{display:none}.build-category-tab{--icon-size:calc(18px * var(--ui-scale));min-width:0;padding:0 4px}}@media (pointer:coarse){:root{--btn-h:44px;--tab-h:44px;--variant-h:44px;--size-btn-w:44px;--tile-size:calc(68px * var(--ui-scale))}}#building-info,#car-info,#ped-info{z-index:11;box-sizing:border-box;-webkit-backdrop-filter:blur(16px)saturate(1.12);backdrop-filter:blur(16px)saturate(1.12);color:#0f172a;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749047;border-top-color:#0e749075;border-radius:8px;flex-direction:column;gap:0;font:12px/1.35 system-ui,-apple-system,sans-serif;display:flex;position:fixed;overflow:hidden;box-shadow:0 18px 46px #0f172a47,0 2px 10px #0f172a1a,inset 0 1px #ffffffd6}#building-info{left:50%;top:calc(100dvh - var(--bottom-dock-height,0px) - 24px - var(--inspector-h));width:var(--hud-bar-w);height:var(--inspector-h);transform:translate(-50%)}#building-info.is-hidden{display:none}#car-info,#ped-info{left:12px;top:calc(100dvh - var(--bottom-dock-height,0px) - 24px - 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: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-wrap:wrap;flex:auto;align-items:center;gap:4px 8px;min-width:0;display:flex;overflow:hidden}.info-close{color:#475569;cursor:pointer;background:#ffffffbd;border:1px solid #64748b3d;border-radius:6px;flex:none;width:30px;height:30px;font-weight:800;line-height:1}.info-close:hover{color:#0f172a;background:#fff}#dock-options-panel .info-close{flex:none;width:30px;height:30px}.info-tabs{flex:none;gap:3px;display:flex}.info-tabs.is-hidden{display:none}.info-tab{min-width:0;height:24px;color:var(--ink-muted);font-size:var(--fs-sm);cursor:pointer;background:#ffffff80;border:1px solid #0000;border-radius:999px;padding:0 10px;font-weight:700}.info-tab:hover{color:#0f172a;background:#ffffffd1}.info-tab.is-selected{border-color:var(--tone-info-line);background:var(--tone-info-fill);color:var(--tone-info)}.info-sections{scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-auto-rows:min-content;align-content:start;align-items:start;gap:8px;min-height:0;padding:10px;display:grid;overflow:auto}#car-info .info-sections,#ped-info .info-sections{grid-template-columns:1fr}.info-sections::-webkit-scrollbar{width:9px;height:9px}.info-sections::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}.info-sections::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}.info-sections::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.info-section{background:#ffffff9e;border:1px solid #0e749024;border-radius:7px;min-width:0;overflow:hidden;box-shadow:inset 0 1px #ffffff94}.info-section--wide{grid-column:span 2}#car-info .info-section,#ped-info .info-section{grid-column:auto}.info-section__title{color:var(--tone-info);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;background:#e2ecf48f;border-bottom:1px solid #0e749021;align-items:center;gap:7px;padding:6px 9px;font-weight:750;display:flex}.info-section__title:before{content:"";background:#0e7490b8;flex:none;width:2px;height:.9em}.info-rows,.info-section__rows{grid-template-columns:repeat(auto-fit,minmax(230px,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:2;column-gap:12px;display:block}.info-row{background:#f8fafc94;border:1px solid #0000;border-radius:4px;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:baseline;gap:1px 10px;min-width:0;padding:5px 7px;display:grid}.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);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;font-weight:650}.info-detail{color:var(--ink-muted);font-size:var(--fs-2xs);text-align:right;overflow-wrap:anywhere;grid-column:2;font-weight:550}.info-row--chips{align-items:center}.ui-chip__caption{color:var(--ink-muted);font-size:var(--fs-2xs);letter-spacing:.04em;text-transform:uppercase;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:#64748b99;content:"└";margin-right:5px}.info-row--note{background:#ffffffad;border-color:#0e74901a;grid-column:1/-1;grid-template-columns:minmax(0,1fr)}.info-row--note .info-value{text-align:left}.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);background:var(--tone-neutral-fill);color:var(--tone-neutral);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 6px;font-weight:700;line-height:1.35;display:inline-flex}.ui-badge{letter-spacing:.04em;text-transform:uppercase;font-size:var(--fs-2xs);border-radius:999px;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}.ui-meter{background:#f8fafc94;border-radius:4px;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-2xs);text-align:right;grid-column:1/-1;font-weight:550}.ui-meter__track{background:#0f172a1a;border-radius:999px;grid-column:1/-1;height:6px;position:relative;overflow:hidden}.ui-meter__fill{background:var(--tone-info);width:100%;transform:scaleX(var(--meter-fill,0));transform-origin:0;border-radius:999px;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:#0f172a8c;border-radius:1px;width:2px;position:absolute}.ui-meter__lost{width:calc((1 - var(--meter-limit,1)) * 100%);background:repeating-linear-gradient(-45deg,#0f172a38 0 3px,#0f172a0f 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:#64748b99;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:4px;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:#0f172a0f;border-radius:2px;height:8px;position:relative}.ui-bar__track:before{content:"";background:#64748b73;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)}.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{border-radius:var(--radius);width:100%;color:var(--tone-info);font-size:var(--fs-md);cursor:pointer;background:linear-gradient(#ffffffe6,#e2ecf4d9);border:1px solid #0e749066;padding:8px 12px;font-weight:700}.info-action-btn:hover:not(:disabled){background:linear-gradient(#fffffff5,#d6e6f0eb);border-color:#0e749099}.info-action-btn.is-armed{color:#be123c;background:linear-gradient(#fee2e2f2,#fccdd3eb);border-color:#be123c99}.info-action-btn:disabled{opacity:.55;cursor:not-allowed}.info-action-note{color:#64748b;letter-spacing:.02em;text-align:center;font-size:10px;font-weight:650}@media (max-width:620px){:root{--inspector-h:min(48dvh, 380px);--inspector-side-h:min(48dvh, 380px)}#building-info,#car-info,#ped-info{width:calc(100vw - 16px);left:50%;right:auto;transform:translate(-50%)}.info-sections{grid-template-columns:1fr}.info-section--wide{grid-column:auto}}#accounting-panel{left:50%;top:calc(var(--top-bar-height,0px) + 20px + 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) - 40px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px)));box-sizing:border-box;-webkit-backdrop-filter:blur(16px)saturate(1.12);backdrop-filter:blur(16px)saturate(1.12);color:#0f172a;overscroll-behavior:contain;touch-action:auto;-webkit-user-select:none;user-select:none;background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749052;border-top-color:#0e749094;border-radius:8px;flex-direction:column;gap:0;font:13px/1.38 system-ui,-apple-system,sans-serif;display:flex;position:fixed;overflow:hidden;transform:translate(-50%);box-shadow:0 24px 70px #0f172a57,0 2px 10px #0f172a24,inset 0 1px #ffffffe6}#accounting-panel.is-hidden{display:none}.acct-header{background:linear-gradient(#ffffffd1,#f1f7fbc2);border-bottom:1px solid #0e749033;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{color:#64748b;text-align:center;min-width:92px;font-size:10px}#accounting-panel .info-close{border-radius:var(--radius);color:#334155;width:30px;height:30px;font-size:var(--fs-lg);background:#fffc;border-color:#0e74903d;flex:none;font-weight:800}#accounting-panel .info-close:hover{color:#0e7490;background:#fff;border-color:#0e74906b}.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{background:#fff6;border-bottom:1px solid #64748b29;flex-wrap:wrap;flex:none;gap:4px;padding:6px 14px}.acct-tab{min-width:0;color:var(--ink-muted);cursor:pointer;font:inherit;font-weight:700;font-size:var(--fs-sm);text-align:center;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;flex:none;padding:5px 11px;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s}.acct-tab:hover{color:var(--tone-info);background:#0e749014}.acct-tab.is-active{border-color:var(--tone-info-line);background:var(--tone-info-fill);color:var(--tone-info)}.acct-tabs--child .acct-tab{font-size:var(--fs-xs);border-radius:999px;padding:4px 10px}.acct-content{scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;overscroll-behavior:contain;min-height:0;padding:12px 14px 14px;overflow:auto}.acct-content::-webkit-scrollbar{width:9px;height:9px}.acct-content::-webkit-scrollbar-track{background:#e2e8f0bf;border-left:1px solid #64748b1f}.acct-content::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px;min-height:30px}.acct-content::-webkit-scrollbar-thumb:hover{background:#0e7490f0}.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:#64748b;letter-spacing:.04em;text-transform:uppercase;flex:0 0 56px;font-size:11px;font-weight:700}.acct-control-row--metered .acct-control-row__label{flex:0 0 84px}.acct-rate-bar{background:#0f172a1a;border-radius:999px;flex:90px;min-width:70px;height:7px;position:relative;overflow:hidden}.acct-rate-bar__fill{background:var(--tone-info);width:100%;transform:scaleX(var(--rate-fill,0));transform-origin:0;border-radius:999px;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:#0f172a73;width:2px;position:absolute}.acct-rate-bar__mark--promised{background:var(--tone-info)}.acct-action{color:#0e7490;cursor:pointer;font:inherit;background:#0e74901a;border:1px solid #0e749059;border-radius:6px;flex:none;padding:6px 12px;font-size:11px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s}.acct-action:hover:not(:disabled){background:#0e749033;border-color:#0e74908c}.acct-action:disabled{opacity:.4;cursor:default}.acct-rate-value{color:#0e7490;font-variant-numeric:tabular-nums;text-align:center;flex:0 0 52px;font-size:13px;font-weight:800}.acct-contract-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.acct-contract{background:#ffffffb8;border:1px solid #0e749029;border-top:2px solid #0e749057;border-radius:6px;flex-direction:column;gap:8px;min-width:0;padding:11px 13px;display:flex;box-shadow:0 1px 2px #0f172a0f}.acct-contract__head{justify-content:space-between;align-items:center;gap:8px;display:flex}.acct-contract__title{color:#0f172a;font-size:13px;font-weight:800}.acct-contract__status{letter-spacing:.06em;text-transform:uppercase;border-radius:999px;flex:none;padding:3px 9px;font-size:10px;font-weight:700}.acct-contract__status--good{color:#15803d;background:#16a34a24}.acct-contract__status--info{color:#0e7490;background:#0e749024}.acct-contract__status--warn{color:#b45309;background:#d9770629}.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{color:#64748b;cursor:pointer;font:inherit;background:#f8fafc99;border:1px solid #64748b3d;border-radius:999px;padding:5px 12px;font-size:11px;font-weight:700}.acct-choice:hover{color:#0e7490;border-color:#0e749073}.acct-choice.is-active{color:#0e7490;background:#0e749024;border-color:#0e74908c}.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:#64748b;margin:0 0 0 114px;font-size:11px}.acct-slider{accent-color:#0e7490;cursor:pointer;flex:160px;min-width:140px}.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{accent-color:#0e7490;cursor:pointer;flex:120px;min-width:120px}.acct-ordinance__summary{flex-direction:column;display:flex}.acct-stack{grid-template-columns:repeat(auto-fit,minmax(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-top:2px solid var(--tone-info-line);border-radius:var(--radius);background:#ffffffb8;flex-direction:column;min-width:0;padding:8px 10px;display:flex;box-shadow:0 1px 2px #0f172a0f}.acct-card__label{color:var(--ink-muted);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;order:-1;font-weight:700}.acct-card__value{color:var(--ink);font-size:var(--fs-xl);font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:3px;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}.ui-chip-row--cell{justify-content:flex-end;display:inline-flex}.acct-rate-tolerance{flex-direction:column;align-items:center;gap:3px;display:flex}.acct-card--good{border-top-color:var(--tone-good-line)}.acct-card--good .acct-card__value{color:var(--tone-good)}.acct-card--bad{border-top-color:var(--tone-bad-line)}.acct-card--bad .acct-card__value{color:var(--tone-bad)}.acct-card--warn{border-top-color:var(--tone-warn-line)}.acct-card--warn .acct-card__value{color:var(--tone-warn)}.acct-card--info{border-top-color:var(--tone-info-line)}.acct-card--info .acct-card__value{color:var(--tone-info)}.acct-card--violet{border-top-color:var(--tone-violet-line)}.acct-card--violet .acct-card__value{color:var(--tone-violet)}.acct-section{background:#ffffff94;border:1px solid #0e749026;border-radius:7px;flex-direction:column;gap:10px;min-width:0;padding:10px;display:flex;box-shadow:inset 0 1px #ffffff9e}.acct-section__title{border-bottom:1px solid var(--line);color:var(--tone-info);font-size:var(--fs-2xs);letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:8px;padding-bottom:6px;font-weight:750;display:flex}.acct-section__title:before{content:"";background:#0e7490b3;flex:none;width:2px;height:.85em;display:block}#accounting-panel .info-rows{padding:0}#accounting-panel .info-row{background:#f8fafcb8;border-color:#64748b24}.acct-two-col{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.acct-row-group{min-width:0}.acct-row-group__title{color:var(--ink-muted);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px;font-weight:700}.acct-table-wrap{scrollbar-color:#0e7490b3 #e2e8f0bf;scrollbar-width:thin;width:100%;overflow-x:auto}.acct-table-wrap::-webkit-scrollbar{height:9px}.acct-table-wrap::-webkit-scrollbar-track{background:#e2e8f0bf}.acct-table-wrap::-webkit-scrollbar-thumb{background:#0e7490b8;border:2px solid #e2e8f0bf;border-radius:999px}.acct-table{border-collapse:collapse;font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text;width:100%;min-width:720px;font-size:12px}.acct-table th,.acct-info{color:#0e7490;cursor:pointer;background:#0e749014;border:1px solid #0e749066;border-radius:50%;flex:none;width:15px;height:15px;padding:0;font-size:9px;font-weight:800;line-height:1}.acct-info:hover{background:#0e749033}.acct-section__note{color:#475569;text-transform:none;letter-spacing:0;margin:0 0 10px;font-size:11px;line-height:1.45}.acct-section__note.is-hidden{display:none}.acct-links{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.acct-link{color:#0e7490;cursor:pointer;background:#0e74900f;border:1px solid #0e749047;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:650}.acct-link:hover{background:#0e749029}.acct-card__delta{vertical-align:middle;font-size:var(--fs-2xs);margin-left:6px}.acct-card__label--defined,.info-label--defined{cursor:help;border-bottom:1px dotted}.acct-drilldown{min-width:0}.acct-drilldown__summary{color:var(--ink-muted);font-size:var(--fs-2xs);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;padding:4px 0;font-weight:700}.acct-drilldown__summary:hover{color:var(--tone-info)}.acct-drilldown[open] .acct-drilldown__summary{margin-bottom:6px}.acct-table tbody tr.is-activatable{cursor:pointer}.acct-table tbody tr.is-activatable:hover,.acct-table tbody tr.is-activatable:focus-visible{background:#0e74901a;outline:none}.acct-table td{text-align:right;white-space:nowrap;border-bottom:1px solid #64748b24;padding:7px 10px}.acct-table th:first-child,.acct-table td:first-child{text-align:left}.acct-table th{color:#64748b;letter-spacing:.07em;text-transform:uppercase;background:#0e74900f;font-size:10px;font-weight:800}.acct-table tr:hover{background:#0e74900d}.acct-chart-container{min-width:0}.acct-chart-header{border-bottom:1px solid #0e749029;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 #0e749029;padding-left:8px}.acct-chart-range__btn,.acct-chart-resolution__btn{color:#64748b;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:4px;padding:4px 7px;font-size:11px;font-weight:700}.acct-chart-range__btn:hover,.acct-chart-resolution__btn:hover:not(:disabled){color:#0e7490;background:#0e749014}.acct-chart-range__btn.is-active,.acct-chart-resolution__btn.is-active{color:#0e7490;background:#0e749024}.acct-chart-resolution__btn:disabled{cursor:default;opacity:.32}.chart-canvas-wrapper{box-sizing:border-box;background:linear-gradient(#0e749009 1px,#0000 1px) 0 0/100% 42px,linear-gradient(90deg,#0e749009 1px,#0000 1px) 0 0/80px 100%,#ffffffbd;border:1px solid #0e749024;border-radius:6px;width:100%;min-width:0;height:270px;padding:7px;position:relative}.chart-canvas-wrapper--compact{height:210px}.acct-empty{color:#64748b;background:#f8fafcc7;border:1px solid #0e74902e;border-radius:6px;padding:14px}@media (max-width:680px){.acct-header,.acct-tabs--parent,.acct-tabs--child,.acct-content{padding-left:10px;padding-right:10px}.acct-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.acct-two-col{grid-template-columns:1fr}.acct-card__value{font-size:18px}.acct-chart-header{flex-direction:column;align-items:flex-start}.acct-chart-selectors{justify-content:flex-start}}#scene-controls{color:#dcecff;background:#080d14e0;width:min(420px,100vw - 16px);max-height:calc(100vh - 52px);font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.scene-controls-head{border-bottom:1px solid #64748b33;align-items:center;gap:6px;padding:2px 3px 5px;display:flex}.scene-controls-title{letter-spacing:.04em;text-transform:uppercase;color:#475569;flex:1;font-size:10px;font-weight:700}.scene-controls-body.is-hidden{display:none}.scene-controls-body{grid-template-columns:1fr;gap:4px;padding-top:4px;display:grid}.scene-controls-section-panel{background:#0f172ab8;border:1px solid #64748b38;border-radius:4px;min-width:0;padding:5px 6px 6px}.scene-controls-section{color:#7dd3fc;letter-spacing:.05em;text-transform:uppercase;margin:0 0 4px;font-size:10px;font-weight:700}.scene-controls-row{margin:5px 0 0}.scene-controls-label-row{justify-content:space-between;gap:6px;display:flex}.scene-controls-val{color:#94a3b8}.scene-controls-slider{accent-color:#0e7490;width:100%;margin:1px 0 0}.scene-controls-toggle{cursor:pointer;align-items:center;gap:7px;margin:4px 0;display:flex}.scene-controls-checkbox{accent-color:#0e7490;cursor:pointer;margin:0}.scene-controls-btn{color:#dcecff;cursor:pointer;font:inherit;background:#1e293be6;border:1px solid #64748b47;border-radius:4px;padding:1px 7px}#selection-panel{left:50%;bottom:calc(var(--bottom-dock-height,0px) + 24px + env(safe-area-inset-bottom,0px));width:min(760px,100vw - 24px);max-height:min(32dvh, calc(100dvh - var(--bottom-dock-height,0px) - 48px));box-sizing:border-box;-webkit-backdrop-filter:blur(14px)saturate(1.1);backdrop-filter:blur(14px)saturate(1.1);color:#0f172a;z-index:11;-webkit-user-select:none;user-select:none;background:#e5edf6f0;border:1px solid #64748b47;border-radius:6px;padding:7px 9px;font:12px/1.35 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;position:fixed;overflow:auto;transform:translate(-50%);box-shadow:0 14px 34px #0f172a3d,inset 0 1px #ffffffbf}.selection-head{align-items:center;gap:6px;margin-bottom:5px;display:flex}.selection-title{letter-spacing:.05em;text-transform:uppercase;color:#0e7490;flex:1;font-size:10px;font-weight:700}.selection-btn{color:#1e293b;cursor:pointer;font:inherit;background:#ffffffbd;border:1px solid #64748b47;border-radius:4px;padding:1px 8px}.selection-body{-webkit-user-select:text;user-select:text;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:4px;display:grid}.selection-row{background:#f8fafcb8;border:1px solid #64748b2e;border-radius:4px;justify-content:space-between;gap:14px;min-width:0;padding:3px 6px;display:flex}.selection-row-key{color:#64748b;flex:none}.selection-row span:last-child{overflow-wrap:anywhere;text-align:right;min-width:0}.selection-hint{color:#64748b;grid-column:1/-1}#terrain-debug{font:12px/1.35 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.terrain-debug-title{letter-spacing:.04em;text-transform:uppercase;color:#475569;margin-bottom:7px;font-size:10px;font-weight:700}.terrain-debug-tools{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.terrain-debug-btn{color:#1e293b;cursor:pointer;min-height:22px;font:inherit;background:#ffffffbd;border:1px solid #64748b47;border-radius:4px;padding:0 7px;font-size:11px;font-weight:650}.terrain-debug-btn--active{background:#fff2a0;border-color:#ca8a04b3;box-shadow:inset 0 0 0 1px #ca8a0480}.terrain-debug-btn--full{width:auto}.terrain-debug-btn--regen{margin-bottom:6px}.terrain-debug-btn--flat{margin-bottom:7px}.terrain-debug-status{color:#475569;background:#ffffffb8;border:1px solid #0e74902e;border-radius:4px;padding:4px 6px}body.debug-index{background:var(--menu-bg);min-height:100%;color:var(--ink);background-attachment:fixed;font:13px/1.45 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:auto}#debug-index{width:min(1120px,100% - 32px);margin:0 auto;padding:44px 0 64px}.debug-index-header{margin-bottom:28px}.debug-index-logo{width:min(380px,100%);height:auto;margin-bottom:18px;display:block}.debug-index-header h1{color:var(--ink);letter-spacing:0;margin:0 0 8px;font-size:30px;font-weight:800;line-height:1.1}.debug-index-header p{max-width:620px;color:var(--ink-soft);margin:0}.debug-index-section{margin-top:30px}.debug-index-section h2{font-size:var(--fs-md);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 10px;font-weight:800;line-height:1}.debug-index-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.debug-index-link{border:1px solid var(--glass-line);border-top-color:var(--glass-line-top);border-radius:var(--radius-lg);background:var(--glass-bg);min-height:104px;box-shadow:var(--glass-shadow);color:inherit;gap:5px;padding:13px 14px;text-decoration:none;transition:background-color .15s,border-color .15s;display:grid}.debug-index-link:hover,.debug-index-link:focus-visible{background:linear-gradient(160deg,#fffffffa,#dbe9f3f5);border-color:#0e749080;outline:none}.debug-index-link-title{color:var(--ink);font-weight:800}.debug-index-link-detail{color:var(--ink-soft);font-size:var(--fs-md)}.debug-index-link code{overflow-wrap:anywhere;min-width:0;color:var(--tone-info);align-self:end;font:12px/1.25 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}body.debug-textures{color:#d9e2ec;background:#10141a;min-height:100%;font:13px/1.4 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:auto}#texture-debug{width:min(1500px,100vw - 32px);margin:0 auto;padding:16px 0 28px}.texture-toolbar{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#10141af0;border-bottom:1px solid #ffffff1a;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 0 12px;display:flex;position:sticky;top:0}.texture-toolbar h1{margin:0 10px 0 0;font-size:18px;font-weight:700;line-height:1}.texture-toolbar select,.texture-toolbar input,.texture-toolbar button{color:#e5edf5;height:30px;font:inherit;background:#17202b;border:1px solid #a0aec061;border-radius:6px}.texture-toolbar select{min-width:220px;padding:0 8px}.texture-toolbar button{cursor:pointer;padding:0 10px}.texture-field{color:#9fb1c5;align-items:center;gap:6px;font-size:12px;display:inline-flex}.texture-field input{width:76px;padding:0 7px}#debug-construction-toggle input{cursor:pointer}.texture-meta{color:#9fb1c5;padding:10px 0 12px;font:12px/1.3 ui-monospace,Menlo,Consolas,monospace}.texture-sections{gap:22px;display:grid}.texture-section h2{color:#d9e2ec;text-transform:uppercase;margin:0 0 8px;font:700 13px/1.2 ui-monospace,Menlo,Consolas,monospace}.texture-grid{grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:10px;display:grid}.texture-card{background:#151c25;border:1px solid #ffffff1c;border-radius:8px;min-width:0;overflow:hidden}.texture-card.is-wide{grid-column:span 2}.texture-canvas{aspect-ratio:1;object-fit:contain;background:#0b0f14;width:100%;display:block}.texture-card.is-wide .texture-canvas{aspect-ratio:5}.texture-label{color:#9fb1c5;border-top:1px solid #ffffff14;padding:6px 8px;font:11px/1 ui-monospace,Menlo,Consolas,monospace}body.debug-sound{color:#d9e2ec;background:#10141a;min-height:100%;font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:auto}#sound-debug{width:min(880px,100vw - 32px);margin:0 auto;padding:32px 0}.sound-debug-header{border-bottom:1px solid #ffffff1c;grid-template-columns:1fr auto;align-items:end;gap:8px 16px;padding-bottom:18px;display:grid}.sound-debug-header h1{color:#f8fafc;margin:0;font-size:28px;font-weight:800;line-height:1}.sound-debug-header p{color:#9fb1c5;margin:0}.sound-debug-play-all,.sound-debug-button{color:#e5edf5;font:inherit;cursor:pointer;background:#17202b;border:1px solid #a0aec05c;border-radius:7px}.sound-debug-play-all{min-height:38px;padding:0 14px;font-weight:800}.sound-debug-actions{gap:8px;display:flex}.sound-debug-section{color:#cbd5e1;letter-spacing:.1em;text-transform:uppercase;margin:22px 0 0;font-size:13px;font-weight:800}.sound-debug-panel{background:#141c25;border:1px solid #a0aec03d;border-radius:9px;flex-direction:column;gap:6px;margin-top:8px;padding:14px 16px;display:flex}.sound-debug-slider{color:#cbd5e1;grid-template-columns:150px minmax(0,1fr) 150px;align-items:center;gap:10px;font-size:12px;display:grid}.sound-debug-slider input[type=range]{accent-color:#5eead4;width:100%}.sound-debug-slider__value{color:#9fb1c5;font-variant-numeric:tabular-nums;text-align:right}.sound-debug-controls{align-items:center;gap:8px;padding-top:4px;display:flex}.sound-debug-readout{color:#7f93a8;font-variant-numeric:tabular-nums;margin:0;font-size:11px}.sound-debug-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding-top:18px;display:grid}.sound-debug-button{text-align:left;grid-template-rows:auto 1fr;gap:7px;min-height:112px;padding:14px;display:grid}.sound-debug-play-all:hover,.sound-debug-button:hover{background:#1d2a35;border-color:#5eead494}.sound-debug-button__label{color:#f8fafc;font-size:17px;font-weight:800;line-height:1.15}.sound-debug-button__detail{color:#9fb1c5;font-size:12px}@media (max-width:560px){.sound-debug-header{grid-template-columns:1fr}.sound-debug-play-all{width:100%}}.gpu-timing{color:#dcecff;-webkit-user-select:none;user-select:none;background:#080d14d1;max-width:min(420px,100vw - 16px);font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}.sim-performance-timing{color:#dcfce7;-webkit-user-select:none;user-select:none;background:#08140de0;max-width:min(760px,70vw);max-height:calc(100vh - 52px);font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace}#debug-panel-dock{top:calc(var(--top-bar-height,0px) + 20px + env(safe-area-inset-top,0px));left:calc(92px + env(safe-area-inset-left,0px));right:calc(12px + env(safe-area-inset-right,0px));z-index:9;pointer-events:none;flex-wrap:nowrap;justify-content:flex-start;align-items:flex-start;gap:8px;min-width:0;display:flex;position:fixed;overflow-x:auto}#debug-panel-dock>*{pointer-events:auto}body>.movable-panel{z-index:1000}#debug-panel-dock>.movable-panel{pointer-events:auto;flex:0 auto;position:relative;top:auto;left:auto;right:auto}#debug-panel-dock>.movable-panel.is-folded{flex:none;width:auto;max-width:none}.sim-timing-summary{white-space:pre-wrap;gap:2px;padding-bottom:6px;display:grid}.sim-timing-log{width:max-content;color:inherit;font:inherit;cursor:pointer;background:#ffffff12;border:1px solid #dcfce747;border-radius:3px;margin-top:4px;padding:2px 6px}.sim-timing-section{border-top:1px solid #dcfce724}.sim-timing-section>summary{cursor:pointer;padding:4px 2px;font-weight:700}.sim-timing-section .sim-timing-section{border-top-color:#dcfce714;margin-left:12px}.sim-timing-section table{border-collapse:collapse;width:100%;font:inherit;font-variant-numeric:tabular-nums;margin:0 0 6px}.sim-timing-section th,.sim-timing-section td{text-align:right;white-space:nowrap;border-bottom:1px solid #dcfce712;padding:1px 6px}.sim-timing-section th:first-child,.sim-timing-section td:first-child{text-align:left}.sim-timing-section th{color:#dcfce7b3;font-weight:400}.movable-panel-header{width:100%;color:inherit;font:inherit;text-align:left;cursor:grab;background:0 0;border:0;padding:5px 9px;display:block}.movable-panel-header:active{cursor:grabbing}.movable-panel-content{white-space:pre;cursor:copy;max-height:calc(100vh - 60px);padding:2px 9px 7px;overflow:auto}.movable-panel.is-folded .movable-panel-content{display:none}.sim-performance-timing .movable-panel-content{white-space:normal;cursor:default;min-width:min(680px,68vw)}.benchmark-report{z-index:200;color:#dcecff;background:#080d14f0;border:1px solid #60a5fa66;border-radius:6px;flex-direction:column;max-width:min(760px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;position:fixed;inset:16px auto auto 16px;box-shadow:0 10px 30px #00000073}.benchmark-report.invalid{border-color:#f8717199}.benchmark-report-header{letter-spacing:.04em;text-transform:uppercase;color:#86efac;border-bottom:1px solid #64748b40;padding:8px 12px;font:700 12px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace}.benchmark-report.invalid .benchmark-report-header{color:#fca5a5}.benchmark-report-body{white-space:pre;flex:1;margin:0;padding:10px 12px;font:11px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.benchmark-report-actions{border-top:1px solid #64748b40;gap:6px;padding:8px 12px;display:flex}.benchmark-report-button{color:#dcecff;cursor:pointer;background:#1e293be6;border:1px solid #60a5fa66;border-radius:4px;padding:4px 10px;font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.benchmark-report-button:hover{background:#334155f2}.welcome-overlay,.save-as-overlay,.quit-overlay,.sheet-overlay{z-index:140;box-sizing:border-box;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a61;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-radius:var(--radius-lg);width:min(520px,100%);max-height:calc(100vh - 40px);color:var(--ink);background:linear-gradient(160deg,#f8fafcfa,#e2ecf4f7);border:1px solid #0e749052;border-top-color:#0e749094;padding:22px 24px;overflow-y:auto;box-shadow:0 24px 70px #0f172a57,0 2px 10px #0f172a24,inset 0 1px #ffffffe6}.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{color:var(--ink-soft);font-size:var(--fs-lg);border-left:3px solid #0e749057;margin-bottom:12px;padding-left:14px;line-height:1.5}.welcome-points strong{color:var(--ink)}.welcome-modal__footer{border-radius:var(--radius);color:var(--tone-info);font-size:var(--fs-lg);background:#0e74901a;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-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,.sheet__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:uppercase;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-offset:1px;outline:2px solid #0e74908c}.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}.save-as-confirm:disabled,.sheet__confirm:disabled{opacity:.5;cursor:not-allowed}.welcome-start,.save-as-confirm,.quit-confirm,.sheet__confirm{border-radius:var(--radius);color:#0e7490;cursor:pointer;min-height:34px;font:inherit;font-size:var(--fs-lg);background:linear-gradient(#e0f2f7f5,#bae0ebf0);border:1px solid #0e74908c;padding:0 20px;font-weight:800}.welcome-start:hover,.quit-confirm:hover,.sheet__confirm:hover:not(:disabled){background:linear-gradient(#e8f8fcfa,#c4e9f3f5)}.sheet{width:min(680px,100%)}.sheet .acct-loan,.sheet .acct-stack{gap:12px}.sheet-amount{flex-direction:column;gap:8px;display:flex}.sheet-amount__line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sheet-amount__line .acct-slider{flex:140px}.sheet-input{border:1px solid var(--control-line);border-radius:var(--radius);min-height:32px;color:var(--ink);font:inherit;font-size:var(--fs-lg);font-variant-numeric:tabular-nums;background:#ffffffeb;padding:0 10px}.sheet-input:focus-visible{outline-offset:1px;outline:2px solid #0e74908c}.sheet-input--amount{width:150px}.sheet-quote{border-top:1px solid #64748b2e;padding-top:10px}.sheet__hint{color:var(--ink-soft);font-size:var(--fs-md);margin:0;line-height:1.45}.sheet__problem{color:#b91c1c;font-size:var(--fs-md);margin:0;font-weight:700}
