.three-canvas[data-v-cd53e904]{width:100%;height:100%;display:block}.app-icon[data-v-f625b07f]{display:inline-block;vertical-align:middle;flex-shrink:0}.hud[data-v-d6994722]{display:contents}.hud-card[data-v-d6994722]{pointer-events:auto;display:flex;flex-direction:column;gap:12px;padding:16px 18px;background:var(--color-panel-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-panel-border);border-radius:14px;box-shadow:0 10px 30px #00000038;font-family:monospace;font-size:14px;color:var(--color-text-primary);-webkit-user-select:none;user-select:none}.hud-card--metrics[data-v-d6994722]{flex:0 0 auto}.hud-metrics[data-v-d6994722]{display:flex;gap:20px;flex:1;flex-wrap:wrap}.metric[data-v-d6994722]{display:flex;flex-direction:column;align-items:center}.label[data-v-d6994722]{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:var(--color-label);letter-spacing:.05em}.label .app-icon[data-v-d6994722]{opacity:.85}.value[data-v-d6994722]{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.bar-value[data-v-d6994722]{width:90px;height:20px;position:relative;display:flex;align-items:center;justify-content:center}.bar-track[data-v-d6994722]{width:100%;height:9px;border-radius:999px;overflow:hidden;background:var(--color-panel-border);border:1px solid var(--color-panel-border);transition:opacity .18s ease}.bar-fill[data-v-d6994722]{display:block;height:100%;border-radius:inherit;transition:width .18s ease}.bar-percent[data-v-d6994722]{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:700;line-height:1;opacity:0;transition:opacity .18s ease;pointer-events:none}.bar-value:hover .bar-track[data-v-d6994722],.bar-value.is-zero .bar-track[data-v-d6994722]{opacity:0}.bar-value:hover .bar-percent[data-v-d6994722],.bar-value.is-zero .bar-percent[data-v-d6994722]{opacity:1}.bar-fill.happiness[data-v-d6994722]{background:linear-gradient(90deg,#28d8c9,#1e90ff)}.bar-fill.environment[data-v-d6994722]{background:linear-gradient(90deg,#b7f18a,#4caf50)}.bar-fill.health[data-v-d6994722]{background:linear-gradient(90deg,#f44336,#ffb74d,#4caf50)}.bar-fill.unemployment[data-v-d6994722]{background:linear-gradient(90deg,#7b61ff,#1e90ff)}.money.negative[data-v-d6994722]{color:var(--color-negative)}.good[data-v-d6994722]{color:var(--color-good)}.warn[data-v-d6994722]{color:var(--color-warn)}.bad[data-v-d6994722]{color:var(--color-bad)}.disconnected[data-v-d6994722]{font-size:11px;color:var(--color-negative);animation:blink-d6994722 1s step-end infinite}@keyframes blink-d6994722{50%{opacity:0}}@media(max-width:900px){.hud-card[data-v-d6994722]{padding:10px 12px;font-size:12px}.hud-metrics[data-v-d6994722]{gap:12px}.value[data-v-d6994722]{font-size:13px}.label[data-v-d6994722]{font-size:9px}.bar-value[data-v-d6994722]{width:70px}}@media(max-width:640px){.hud-card[data-v-d6994722]{padding:8px 10px}.hud-metrics[data-v-d6994722]{gap:8px}.value[data-v-d6994722]{font-size:12px}.tick[data-v-d6994722]{display:none}}.speed-card[data-v-882e3dc8]{position:relative;pointer-events:auto;padding:8px 12px;background:var(--color-panel-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-panel-border);border-radius:12px;box-shadow:0 8px 24px #0003;-webkit-user-select:none;user-select:none}.speed-controls[data-v-882e3dc8]{display:flex;gap:6px;align-items:center;flex-wrap:wrap;position:relative}.ctrl-btn[data-v-882e3dc8]{background:var(--color-ctrl-bg);border:1px solid var(--color-ctrl-border);color:var(--color-accent-hex);border-radius:6px;padding:5px 12px;cursor:pointer;font-size:13px;font-family:monospace}.ctrl-btn[data-v-882e3dc8]:hover{background:var(--color-ctrl-hover)}.ctrl-btn.active[data-v-882e3dc8]{background:var(--color-ctrl-active);border-color:var(--color-accent-hex)}.ctrl-btn--icon[data-v-882e3dc8]{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px}@media(max-width:900px){.speed-card[data-v-882e3dc8]{padding:10px 12px}.ctrl-btn[data-v-882e3dc8]{padding:4px 9px;font-size:12px}.speed-controls[data-v-882e3dc8]{flex-wrap:nowrap}}@media(max-width:640px){.speed-card[data-v-882e3dc8]{padding:8px 10px}.ctrl-btn[data-v-882e3dc8]{padding:3px 7px;font-size:11px}}.ctrl-btn[data-v-3f75f686]{background:var(--color-ctrl-bg);border:1px solid var(--color-ctrl-border);color:var(--color-accent-hex);border-radius:6px;padding:5px 12px;cursor:pointer;font-size:13px;font-family:monospace}.ctrl-btn[data-v-3f75f686]:hover{background:var(--color-ctrl-hover)}.ctrl-btn.active[data-v-3f75f686]{background:var(--color-ctrl-active);border-color:var(--color-accent-hex)}@media(max-width:900px){.ctrl-btn[data-v-3f75f686]{padding:4px 9px;font-size:12px}}@media(max-width:640px){.ctrl-btn[data-v-3f75f686]{padding:3px 7px;font-size:11px}}.settings-wrap[data-v-3f75f686]{position:relative;display:flex;align-items:center;justify-content:center;align-self:center;-webkit-user-select:none;user-select:none;pointer-events:auto}.settings-btn[data-v-3f75f686]{min-width:36px}.settings-menu[data-v-3f75f686]{position:absolute;right:0;top:calc(100% + 8px);z-index:30;display:flex;flex-direction:column;gap:6px;min-width:170px;padding:10px;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:12px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 40px #0000004d}.menu-btn[data-v-3f75f686]{width:100%;text-align:left;background:var(--color-ctrl-bg);border:1px solid var(--color-ctrl-border);color:var(--color-text-primary);border-radius:6px;padding:8px 10px;cursor:pointer;font-size:12px;font-family:monospace}.menu-btn[data-v-3f75f686]:hover:not(:disabled){background:var(--color-ctrl-hover)}.menu-btn[data-v-3f75f686]:disabled{opacity:.45;cursor:not-allowed}.file-input[data-v-3f75f686]{display:none}.menu-fade-enter-active[data-v-3f75f686],.menu-fade-leave-active[data-v-3f75f686]{transition:opacity .15s ease,transform .15s ease}.menu-fade-enter-from[data-v-3f75f686],.menu-fade-leave-to[data-v-3f75f686]{opacity:0;transform:translateY(-6px)}@media(max-width:900px){.settings-menu[data-v-3f75f686]{min-width:156px}}.sparkline[data-v-89c886ff]{display:block;width:100%;height:100%;overflow:visible}.ctrl-btn[data-v-d3fff7d2]{background:var(--color-ctrl-bg);border:1px solid var(--color-ctrl-border);color:var(--color-accent-hex);border-radius:6px;padding:5px 12px;cursor:pointer;font-size:13px;font-family:monospace}.ctrl-btn[data-v-d3fff7d2]:hover{background:var(--color-ctrl-hover)}.ctrl-btn.active[data-v-d3fff7d2]{background:var(--color-ctrl-active);border-color:var(--color-accent-hex)}.graph-btn[data-v-d3fff7d2]{min-width:36px}.graph-wrap[data-v-d3fff7d2]{position:relative;display:flex;align-items:center;justify-content:center;align-self:center;-webkit-user-select:none;user-select:none;pointer-events:auto}.graph-panel[data-v-d3fff7d2]{position:absolute;right:0;top:calc(100% + 10px);z-index:30;width:560px;max-width:calc(100vw - 24px);max-height:min(78vh,640px);overflow-y:auto;padding:14px 16px;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:16px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 20px 56px #00000052}.graph-header[data-v-d3fff7d2]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px}.header-text[data-v-d3fff7d2]{display:flex;flex-direction:column;gap:3px}.graph-title[data-v-d3fff7d2]{font-family:monospace;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-primary)}.graph-window[data-v-d3fff7d2]{font-family:monospace;font-size:10px;color:var(--color-muted)}.close-btn[data-v-d3fff7d2]{background:none;border:none;color:var(--color-text-secondary);font-size:15px;cursor:pointer;padding:2px 7px;border-radius:6px}.close-btn[data-v-d3fff7d2]:hover{background:var(--color-ctrl-hover)}.chart[data-v-d3fff7d2]{background:var(--color-surface-variant);border-radius:12px;padding:14px 16px 12px}.chart-head[data-v-d3fff7d2]{display:flex;align-items:baseline;gap:9px;margin-bottom:10px;font-family:monospace}.chart-dot[data-v-d3fff7d2]{width:11px;height:11px;border-radius:50%;background:currentColor;align-self:center}.chart-metric[data-v-d3fff7d2]{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-label)}.chart-current[data-v-d3fff7d2]{font-size:24px;font-weight:800;color:currentColor;font-variant-numeric:tabular-nums}.chart-delta[data-v-d3fff7d2]{font-size:13px;font-weight:700;margin-left:auto}.chart-delta.up[data-v-d3fff7d2]{color:var(--color-good)}.chart-delta.down[data-v-d3fff7d2]{color:var(--color-bad)}.chart-delta.flat[data-v-d3fff7d2]{color:var(--color-muted)}.plot[data-v-d3fff7d2]{position:relative;display:flex;gap:8px;height:200px;cursor:crosshair}.y-axis[data-v-d3fff7d2]{position:relative;width:46px;flex:0 0 auto;font-family:monospace;font-size:10px;color:var(--color-muted);font-variant-numeric:tabular-nums}.y-tick[data-v-d3fff7d2]{position:absolute;right:0;transform:translateY(-50%);white-space:nowrap}.plot-area[data-v-d3fff7d2]{position:relative;flex:1;min-width:0;padding-bottom:18px}.plot-svg[data-v-d3fff7d2]{display:block;width:100%;height:calc(100% - 18px);overflow:visible}.gridline[data-v-d3fff7d2]{stroke:var(--color-panel-border);stroke-width:1}.crosshair[data-v-d3fff7d2]{stroke:currentColor;stroke-width:1;stroke-dasharray:4 4;opacity:.6}.x-axis[data-v-d3fff7d2]{position:absolute;left:0;right:0;bottom:0;height:14px;font-family:monospace;font-size:10px;color:var(--color-muted)}.x-tick[data-v-d3fff7d2]{position:absolute;transform:translate(-50%);white-space:nowrap}.x-tick[data-v-d3fff7d2]:first-child{transform:translate(0)}.x-tick[data-v-d3fff7d2]:last-child{transform:translate(-100%)}.readout[data-v-d3fff7d2]{position:absolute;top:-4px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 9px;background:var(--color-surface);border:1px solid var(--color-panel-border);border-radius:7px;box-shadow:0 5px 16px #0003;font-family:monospace;white-space:nowrap;pointer-events:none;z-index:2}.readout.flip[data-v-d3fff7d2]{transform:translate(-100%)}.readout-tick[data-v-d3fff7d2]{font-size:9px;color:var(--color-muted)}.readout-val[data-v-d3fff7d2]{font-size:13px;font-weight:800;color:currentColor}.empty[data-v-d3fff7d2]{height:200px;display:flex;align-items:center;justify-content:center;font-family:monospace;font-size:13px;color:var(--color-muted)}.summary[data-v-d3fff7d2]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--color-panel-border)}.summary-item[data-v-d3fff7d2]{display:flex;flex-direction:column;gap:2px}.summary-label[data-v-d3fff7d2]{font-family:monospace;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted)}.summary-value[data-v-d3fff7d2]{font-family:monospace;font-size:15px;font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.summary-value.up[data-v-d3fff7d2]{color:var(--color-good)}.summary-value.down[data-v-d3fff7d2]{color:var(--color-bad)}.summary-value.flat[data-v-d3fff7d2]{color:var(--color-muted)}.chips[data-v-d3fff7d2]{margin-top:14px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.chip[data-v-d3fff7d2]{--chip-color: var(--color-accent-hex);display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:var(--color-ctrl-bg);border:1px solid var(--color-ctrl-border);border-radius:11px;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease}.chip[data-v-d3fff7d2]:hover{background:var(--color-ctrl-hover)}.chip.selected[data-v-d3fff7d2]{border-color:var(--chip-color);background:var(--color-ctrl-active)}.chip-top[data-v-d3fff7d2]{display:flex;align-items:center;gap:7px}.chip-dot[data-v-d3fff7d2]{width:9px;height:9px;border-radius:50%;background:var(--chip-color);flex:0 0 auto}.chip-label[data-v-d3fff7d2]{font-family:monospace;font-size:11px;letter-spacing:.04em;color:var(--color-label);text-transform:uppercase}.chip-value[data-v-d3fff7d2]{font-family:monospace;font-size:19px;font-weight:800;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.chip-spark[data-v-d3fff7d2]{height:28px;color:var(--chip-color)}.menu-fade-enter-active[data-v-d3fff7d2],.menu-fade-leave-active[data-v-d3fff7d2]{transition:opacity .16s ease,transform .16s ease}.menu-fade-enter-from[data-v-d3fff7d2],.menu-fade-leave-to[data-v-d3fff7d2]{opacity:0;transform:translateY(-8px)}@media(max-width:760px){.graph-panel[data-v-d3fff7d2]{width:calc(100vw - 24px);padding:14px}.chips[data-v-d3fff7d2]{grid-template-columns:repeat(2,1fr)}.summary[data-v-d3fff7d2]{grid-template-columns:repeat(3,1fr);row-gap:10px}.chart-current[data-v-d3fff7d2]{font-size:22px}.plot[data-v-d3fff7d2]{height:180px}}.toolbar-wrap[data-v-659c8f19]{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:calc(100vw - 32px)}.tool-info-strip[data-v-659c8f19]{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--color-panel-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-panel-border);border-radius:14px;box-shadow:0 14px 38px #0000003d;font-family:monospace;color:var(--color-accent-hex);white-space:nowrap;max-width:560px}.info-icon[data-v-659c8f19]{font-size:20px;flex-shrink:0}.info-body[data-v-659c8f19]{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.info-name[data-v-659c8f19]{font-size:12px;font-weight:700;color:var(--color-text-primary)}.info-stats[data-v-659c8f19]{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.info-stat[data-v-659c8f19]{display:flex;gap:3px;font-size:10px;border-radius:4px;padding:1px 5px;background:#0000000f}.stat-key[data-v-659c8f19]{color:#0000008a}.info-stat.stat-pos .stat-val[data-v-659c8f19]{color:#388e3c;font-weight:600}.info-stat.stat-neg .stat-val[data-v-659c8f19]{color:#c62828;font-weight:600}.info-cost[data-v-659c8f19]{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;gap:1px}.cost-label[data-v-659c8f19]{font-size:9px;letter-spacing:.05em}.cost-val[data-v-659c8f19]{font-size:14px;font-weight:700;color:var(--color-text-primary)}.info-slide-enter-active[data-v-659c8f19],.info-slide-leave-active[data-v-659c8f19]{transition:opacity .15s ease,transform .15s ease}.info-slide-enter-from[data-v-659c8f19],.info-slide-leave-to[data-v-659c8f19]{opacity:0;transform:translateY(6px)}.toolbar[data-v-659c8f19]{display:inline-flex;align-items:center;-webkit-user-select:none;user-select:none;position:relative;gap:12px}.tool-btn[data-v-659c8f19]{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 12px;justify-content:center;height:56px;box-sizing:border-box;border:1px solid var(--color-tool-btn-border);border-radius:8px;background:transparent;color:var(--color-tool-btn-text);cursor:pointer;font-family:monospace;font-size:12px;min-width:62px;transition:background .1s,border-color .1s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-btn[data-v-659c8f19]:hover{background:var(--color-tool-btn-hover)}.tool-btn.active[data-v-659c8f19]{background:color-mix(in srgb,var(--tool-color, var(--tool-demolish)) 12%,#FFFFFF);border-color:var(--tool-color, var(--tool-demolish));color:var(--tool-color, var(--color-text-primary))}.tool-btn.demolish.active[data-v-659c8f19]{border-color:var(--tool-demolish)}.tool-icon[data-v-659c8f19]{font-size:18px}.tool-name[data-v-659c8f19]{font-size:11px;color:inherit;opacity:.9;line-height:1}.toolbar-inner[data-v-659c8f19]{display:flex;align-items:center;gap:6px;background:var(--color-panel-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-panel-border);padding:10px 14px;box-shadow:0 14px 38px #0000003d;border-radius:16px}.reset-cam-btn[data-v-659c8f19],.side-btn[data-v-659c8f19]{width:44px;height:44px;border-radius:50%;border:1px solid var(--color-panel-border);background:var(--color-panel-bg);color:var(--color-accent-hex);box-shadow:0 10px 30px #00000038;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}.reset-cam-btn[data-v-659c8f19]:hover,.side-btn[data-v-659c8f19]:hover{background:var(--color-tool-btn-hover)}.side-btn.active[data-v-659c8f19]{border-color:var(--color-accent-hex);background:var(--color-ctrl-active)}@media(max-width:640px){.reset-cam-btn[data-v-659c8f19]{bottom:-18px;right:8px;width:40px;height:40px}.tool-btn[data-v-659c8f19]{height:50px;padding:6px 10px;min-width:54px}}.modal-enter-active[data-v-c9fc397f]{transition:opacity .28s cubic-bezier(.34,1.56,.64,1)}.modal-leave-active[data-v-c9fc397f]{transition:opacity .18s ease}.modal-enter-from[data-v-c9fc397f],.modal-leave-to[data-v-c9fc397f]{opacity:0}.modal-enter-from .policy-modal[data-v-c9fc397f]{transform:scale(.88);filter:blur(4px)}.modal-enter-active .policy-modal[data-v-c9fc397f]{transition:transform .28s cubic-bezier(.34,1.56,.64,1),filter .22s ease}.modal-leave-active .policy-modal[data-v-c9fc397f]{transition:transform .18s ease,filter .18s ease}.modal-leave-to .policy-modal[data-v-c9fc397f]{transform:scale(.92);filter:blur(3px)}.modal-backdrop[data-v-c9fc397f]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#00000061;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.policy-modal[data-v-c9fc397f]{width:min(860px,calc(100vw - 32px));max-height:min(640px,calc(100vh - 48px));background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:20px;box-shadow:0 24px 64px #00000061;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);display:flex;flex-direction:column;overflow:hidden}.modal-header[data-v-c9fc397f]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 14px;border-bottom:1px solid var(--color-panel-border)}.modal-title[data-v-c9fc397f]{display:flex;align-items:center;gap:8px;font-family:monospace;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-primary)}.modal-close[data-v-c9fc397f]{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;transition:background .15s,color .15s}.modal-close[data-v-c9fc397f]:hover{background:var(--color-ctrl-hover);color:var(--color-text-primary)}.modal-body[data-v-c9fc397f]{display:flex;flex:1;min-height:0;overflow:hidden}.col-left[data-v-c9fc397f]{flex:0 0 auto;width:340px;padding:16px;overflow-y:auto}.col-divider[data-v-c9fc397f]{width:1px;background:var(--color-panel-border);flex-shrink:0;margin:12px 0}.col-right[data-v-c9fc397f]{flex:1;padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.col-heading[data-v-c9fc397f]{display:flex;align-items:center;gap:6px;font-family:monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-label);margin-bottom:10px}.policy-grid[data-v-c9fc397f]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.policy-card[data-v-c9fc397f]{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 10px 10px;background:var(--color-ctrl-bg);border:1.5px solid var(--color-ctrl-border);border-radius:12px;cursor:pointer;text-align:left;font-family:monospace;position:relative;transition:border-color .15s,background .15s,box-shadow .15s}.policy-card[data-v-c9fc397f]:hover{background:var(--color-ctrl-hover);border-color:var(--color-text-secondary)}.policy-card.selected[data-v-c9fc397f]{border-color:var(--md-primary);background:var(--color-policy-btn-active-bg);box-shadow:0 0 0 3px color-mix(in srgb,var(--md-primary) 18%,transparent)}.card-icon[data-v-c9fc397f]{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:var(--color-ctrl-border);color:var(--color-text-primary);transition:background .15s}.policy-card.selected .card-icon[data-v-c9fc397f]{background:color-mix(in srgb,var(--md-primary) 20%,transparent);color:var(--md-primary)}.card-body[data-v-c9fc397f]{display:flex;flex-direction:column;gap:3px;min-width:0}.card-label[data-v-c9fc397f]{font-size:11px;font-weight:700;color:var(--color-text-primary)}.card-desc[data-v-c9fc397f]{font-size:9.5px;line-height:1.35;color:var(--color-label)}.card-check[data-v-c9fc397f]{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--md-primary);color:var(--md-on-primary)}.settings-section[data-v-c9fc397f]{display:flex;flex-direction:column}.slider-row[data-v-c9fc397f]{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-family:monospace;font-size:12px;color:var(--color-accent-hex)}.slider-label[data-v-c9fc397f]{width:72px;flex-shrink:0;color:var(--color-label)}.slider[data-v-c9fc397f]{flex:1;accent-color:var(--md-primary)}.slider-value[data-v-c9fc397f]{width:36px;text-align:right;font-weight:600}.apply-btn[data-v-c9fc397f]{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:6px 14px;margin-top:2px;background:var(--color-apply-btn-bg);border:1px solid var(--color-apply-btn-border);border-radius:8px;color:var(--md-on-primary);font-family:monospace;font-size:11px;cursor:pointer;transition:background .15s,opacity .15s}.apply-btn[data-v-c9fc397f]:hover:not(:disabled){background:var(--color-apply-btn-hover)}.apply-btn[data-v-c9fc397f]:disabled{opacity:.55;cursor:default}@media(max-width:640px){.modal-body[data-v-c9fc397f]{flex-direction:column}.col-left[data-v-c9fc397f]{width:100%;border-right:none;border-bottom:1px solid var(--color-panel-border)}.col-divider[data-v-c9fc397f]{display:none}.policy-grid[data-v-c9fc397f]{grid-template-columns:1fr}}.toast-container[data-v-2fc3812a]{display:flex;flex-direction:column;gap:6px;max-width:320px;align-items:flex-end}.toast[data-v-2fc3812a]{display:flex;align-items:center;gap:9px;padding:10px 12px 10px 10px;border-radius:10px;font-family:monospace;font-size:12px;border:1px solid var(--toast-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 16px #0000002e;max-width:320px}.toast-icon[data-v-2fc3812a]{flex-shrink:0;display:flex;align-items:center;opacity:.9}.toast-info[data-v-2fc3812a]{background:var(--toast-info-bg);color:var(--toast-info-color)}.toast-warn[data-v-2fc3812a]{background:var(--toast-warn-bg);color:var(--toast-warn-color)}.toast-error[data-v-2fc3812a]{background:var(--toast-error-bg);color:var(--toast-error-color)}.toast.permanent[data-v-2fc3812a]{border-color:var(--color-error-border);animation:pulse-2fc3812a 1s ease-in-out infinite alternate}@keyframes pulse-2fc3812a{0%{box-shadow:0 0 #0000}to{box-shadow:0 0 8px var(--color-error-shadow)}}.toast-msg[data-v-2fc3812a]{flex:1}.toast-close[data-v-2fc3812a]{display:inline-flex;align-items:center;background:none;border:none;color:inherit;cursor:pointer;opacity:.55;padding:0 2px;flex-shrink:0}.toast-close[data-v-2fc3812a]:hover{opacity:1}.toast-enter-active[data-v-2fc3812a],.toast-leave-active[data-v-2fc3812a]{transition:all .25s ease}.toast-enter-from[data-v-2fc3812a],.toast-leave-to[data-v-2fc3812a]{opacity:0;transform:translate(-20px)}.building-tooltip[data-v-c3eafe59]{position:fixed;z-index:100;min-width:160px;padding:8px 10px;background:#0f1720eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.14);border-radius:8px;color:#e8edf2;font-family:monospace;font-size:11px;box-shadow:0 4px 20px #00000080;animation:tt-in-c3eafe59 .12s ease}@keyframes tt-in-c3eafe59{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.tt-close[data-v-c3eafe59]{position:absolute;top:5px;right:6px;background:none;border:none;color:#ffffff59;font-size:10px;cursor:pointer;padding:0 2px;line-height:1}.tt-close[data-v-c3eafe59]:hover{color:#fffc}.tt-header[data-v-c3eafe59]{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding-bottom:6px;padding-right:14px;border-bottom:1px solid rgba(255,255,255,.1)}.tt-icon[data-v-c3eafe59]{font-size:16px}.tt-type[data-v-c3eafe59]{font-size:12px;font-weight:700;color:#fff;letter-spacing:.03em}.tt-row[data-v-c3eafe59]{display:flex;justify-content:space-between;gap:12px;margin-top:3px}.tt-key[data-v-c3eafe59]{color:#ffffff73}.tt-val[data-v-c3eafe59]{color:#cfe2f3;font-weight:600}.tt-cost[data-v-c3eafe59]{color:#f5a623}.tt-divider[data-v-c3eafe59]{border-top:1px solid rgba(255,255,255,.1);margin:6px 0}.tt-damaged-badge[data-v-c3eafe59]{color:#ff6b35;font-weight:700;font-size:11px;margin-bottom:4px}.tt-repair-btn[data-v-c3eafe59]{width:100%;padding:5px 8px;background:#f403;border:1px solid rgba(255,68,0,.5);border-radius:4px;color:#f96;font-family:monospace;font-size:11px;cursor:pointer;text-align:center}.tt-repair-btn[data-v-c3eafe59]:hover:not(:disabled){background:#ff440059}.tt-repair-btn[data-v-c3eafe59]:disabled{opacity:.4;cursor:not-allowed}.road-confirm[data-v-aae912ea]{position:fixed;z-index:150;display:flex;gap:6px;transform:translate(-50%,-120%);pointer-events:auto}.rc-btn[data-v-aae912ea]{width:34px;height:34px;border-radius:50%;border:none;font-size:16px;font-weight:700;cursor:pointer;color:#fff;box-shadow:0 4px 14px #00000059;display:flex;align-items:center;justify-content:center;transition:transform .1s,filter .1s}.rc-btn[data-v-aae912ea]:hover{transform:scale(1.1);filter:brightness(1.1)}.rc-btn.cancel[data-v-aae912ea]{background:var(--tool-demolish, #B71C1C)}.rc-btn.ok[data-v-aae912ea]{background:var(--color-good, #2E7D32)}.confirm-backdrop[data-v-fc6cdd9e]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;background:#00000047;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.confirm-dialog[data-v-fc6cdd9e]{position:relative;background:var(--color-surface);border:1px solid var(--color-panel-border);border-radius:12px;padding:20px 24px;min-width:280px;max-width:340px;font-family:monospace;color:var(--color-text-primary);box-shadow:0 8px 32px #00000024}.close-btn[data-v-fc6cdd9e]{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--color-muted);font-size:11px;cursor:pointer;padding:0 2px}.close-btn[data-v-fc6cdd9e]:hover{color:var(--color-text-primary)}.confirm-header[data-v-fc6cdd9e]{display:flex;align-items:center;gap:8px;margin-bottom:16px}.confirm-icon[data-v-fc6cdd9e]{font-size:18px}.confirm-title[data-v-fc6cdd9e]{font-size:14px;font-weight:700}.confirm-building[data-v-fc6cdd9e]{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--color-surface-variant);border-radius:8px;margin-bottom:12px}.cb-icon[data-v-fc6cdd9e]{font-size:22px}.cb-name[data-v-fc6cdd9e]{font-size:13px;font-weight:700;color:var(--color-text-primary)}.cb-pos[data-v-fc6cdd9e]{font-size:10px;color:var(--color-text-secondary);margin-top:2px}.confirm-stats[data-v-fc6cdd9e]{display:flex;flex-direction:column;gap:3px;margin-bottom:12px;padding:0 2px}.stat-row[data-v-fc6cdd9e]{display:flex;justify-content:space-between;font-size:11px}.stat-label[data-v-fc6cdd9e]{color:var(--color-text-secondary)}.stat-val[data-v-fc6cdd9e]{font-weight:600}.stat-val.pos[data-v-fc6cdd9e]{color:var(--color-good)}.stat-val.neg[data-v-fc6cdd9e]{color:var(--color-bad)}.money-row[data-v-fc6cdd9e]{display:flex;justify-content:space-between;align-items:flex-end;padding:10px 12px;background:var(--color-surface-variant);border-radius:8px;margin-bottom:6px}.money-block[data-v-fc6cdd9e]{display:flex;flex-direction:column;gap:1px}.money-block.right[data-v-fc6cdd9e]{align-items:flex-end}.money-label[data-v-fc6cdd9e]{font-size:9px;color:var(--color-muted);letter-spacing:.05em;text-transform:uppercase}.money-val[data-v-fc6cdd9e]{font-size:18px;font-weight:700}.money-val.cost[data-v-fc6cdd9e]{color:var(--color-bad)}.money-val.cost.unaffordable[data-v-fc6cdd9e]{opacity:.45}.money-val.refund[data-v-fc6cdd9e]{color:var(--color-good)}.money-val.budget[data-v-fc6cdd9e]{font-size:13px;color:var(--color-text-primary)}.warn-msg[data-v-fc6cdd9e]{font-size:10px;color:var(--color-bad);text-align:center;margin-bottom:6px}.confirm-actions[data-v-fc6cdd9e]{display:flex;gap:8px;margin-top:14px}.btn-cancel[data-v-fc6cdd9e],.btn-confirm[data-v-fc6cdd9e]{flex:1;padding:9px 0;border-radius:7px;border:1px solid transparent;font-family:monospace;font-size:12px;font-weight:700;cursor:pointer;transition:background .12s}.btn-cancel[data-v-fc6cdd9e]{background:var(--color-ctrl-bg);border-color:var(--color-ctrl-border);color:var(--color-text-secondary)}.btn-cancel[data-v-fc6cdd9e]:hover{background:var(--color-ctrl-hover)}.btn-confirm.place[data-v-fc6cdd9e]{background:var(--md-primary);color:#fff}.btn-confirm.place[data-v-fc6cdd9e]:hover:not(:disabled){background:var(--md-primary-variant)}.btn-confirm.demolish[data-v-fc6cdd9e]{background:var(--tool-demolish);color:#fff}.btn-confirm.demolish[data-v-fc6cdd9e]:hover{background:var(--color-bad)}.btn-confirm[data-v-fc6cdd9e]:disabled{opacity:.45;cursor:not-allowed}.confirm-fade-enter-active[data-v-fc6cdd9e],.confirm-fade-leave-active[data-v-fc6cdd9e]{transition:opacity .15s ease}.confirm-fade-enter-from[data-v-fc6cdd9e],.confirm-fade-leave-to[data-v-fc6cdd9e]{opacity:0}.confirm-fade-enter-active .confirm-dialog[data-v-fc6cdd9e]{transition:transform .15s ease}.confirm-fade-enter-from .confirm-dialog[data-v-fc6cdd9e]{transform:scale(.94)}.lds-grid[data-v-5d37f339]{display:inline-block;position:relative;width:var(--loader-size, 72px);height:var(--loader-size, 72px);--loader-dot-size: calc(var(--loader-size, 72px) * .2222);--loader-step: calc(var(--loader-size, 72px) * .3333);--loader-offset: calc(var(--loader-size, 72px) * .1111)}.lds-grid div[data-v-5d37f339]{position:absolute;width:var(--loader-dot-size);height:var(--loader-dot-size);border-radius:50%;background:var(--color-accent-hex);animation:lds-grid-5d37f339 1.2s linear infinite}.lds-grid div[data-v-5d37f339]:nth-child(1){left:var(--loader-offset);top:var(--loader-offset);animation-delay:0s}.lds-grid div[data-v-5d37f339]:nth-child(2){left:calc(var(--loader-offset) + var(--loader-step));top:var(--loader-offset);animation-delay:-.4s}.lds-grid div[data-v-5d37f339]:nth-child(3){left:calc(var(--loader-offset) + var(--loader-step) * 2);top:var(--loader-offset);animation-delay:-.8s}.lds-grid div[data-v-5d37f339]:nth-child(4){left:var(--loader-offset);top:calc(var(--loader-offset) + var(--loader-step));animation-delay:-.4s}.lds-grid div[data-v-5d37f339]:nth-child(5){left:calc(var(--loader-offset) + var(--loader-step));top:calc(var(--loader-offset) + var(--loader-step));animation-delay:-.8s}.lds-grid div[data-v-5d37f339]:nth-child(6){left:calc(var(--loader-offset) + var(--loader-step) * 2);top:calc(var(--loader-offset) + var(--loader-step));animation-delay:-1.2s}.lds-grid div[data-v-5d37f339]:nth-child(7){left:var(--loader-offset);top:calc(var(--loader-offset) + var(--loader-step) * 2);animation-delay:-.8s}.lds-grid div[data-v-5d37f339]:nth-child(8){left:calc(var(--loader-offset) + var(--loader-step));top:calc(var(--loader-offset) + var(--loader-step) * 2);animation-delay:-1.2s}.lds-grid div[data-v-5d37f339]:nth-child(9){left:calc(var(--loader-offset) + var(--loader-step) * 2);top:calc(var(--loader-offset) + var(--loader-step) * 2);animation-delay:-1.6s}@keyframes lds-grid-5d37f339{0%,to{opacity:1}33.33%{opacity:.5}66.66%{opacity:.1}}.loading-screen[data-v-69d8737c]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:20px;background:var(--color-background);--loader-size: 40px}.loading-text[data-v-69d8737c]{font-family:monospace;font-size:14px;color:var(--color-text-secondary);text-align:center;margin:0}.loading-retry[data-v-69d8737c]{margin-top:4px;padding:8px 24px;font-family:monospace;font-size:13px;font-weight:600;color:var(--md-on-primary);background:var(--md-primary);border:none;border-radius:8px;cursor:pointer;transition:opacity .15s ease}.loading-retry[data-v-69d8737c]:hover{opacity:.88}.loading-retry[data-v-69d8737c]:active{opacity:.76}.loading-fade-leave-active[data-v-69d8737c]{transition:opacity .3s ease}.loading-fade-leave-to[data-v-69d8737c]{opacity:0}.logo[data-v-69d8737c]{width:10vw;margin-bottom:10px}.logo.failed[data-v-69d8737c]{filter:grayscale(100%) brightness(120%)}.pulse[data-v-69d8737c]{animation:pulse-69d8737c 2s infinite}@keyframes pulse-69d8737c{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.loader[data-v-69d8737c]{width:var(--loader-size);height:var(--loader-size)}.login-screen[data-v-35cd6875]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:var(--color-background);overflow:hidden}.grid-bg[data-v-35cd6875]{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--color-panel-border) 1px,transparent 1px),linear-gradient(90deg,var(--color-panel-border) 1px,transparent 1px);background-size:48px 48px;opacity:.35;-webkit-mask-image:radial-gradient(circle at center,black,transparent 75%);mask-image:radial-gradient(circle at center,black,transparent 75%)}.login-content[data-v-35cd6875]{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 48px;background:var(--color-panel-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-panel-border);border-radius:20px;box-shadow:0 24px 64px #0000002e;text-align:center;max-width:360px}.logo[data-v-35cd6875]{width:96px;margin-bottom:4px}.title[data-v-35cd6875]{font-family:monospace;font-size:28px;letter-spacing:.12em;color:var(--color-text-primary)}.subtitle[data-v-35cd6875]{font-family:monospace;font-size:13px;color:var(--color-text-secondary);margin-bottom:6px}.google-button-host[data-v-35cd6875]{min-height:44px;display:flex;align-items:center;justify-content:center}.error-msg[data-v-35cd6875]{display:flex;align-items:center;gap:6px;font-family:monospace;font-size:12px;color:var(--color-bad);margin-top:4px}.start-menu[data-v-4a201935]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:var(--color-background);overflow:hidden}.grid-bg[data-v-4a201935]{position:absolute;top:-60px;right:-60px;bottom:-60px;left:-60px;background-image:linear-gradient(rgba(25,118,210,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(25,118,210,.07) 1px,transparent 1px);background-size:48px 48px;animation:scrollGrid-4a201935 28s linear infinite;pointer-events:none}@keyframes scrollGrid-4a201935{0%{transform:translate(0)}to{transform:translate(48px,48px)}}.menu-content[data-v-4a201935]{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center}.logo[data-v-4a201935]{width:clamp(80px,10vw,130px);margin-bottom:24px;filter:drop-shadow(0 4px 18px rgba(25,118,210,.22))}.title[data-v-4a201935]{font-family:monospace;font-size:clamp(2.6rem,7vw,5.5rem);font-weight:900;letter-spacing:.32em;color:var(--color-accent-hex);margin:0 0 14px;line-height:1;text-shadow:0 2px 20px rgba(25,118,210,.16)}.subtitle[data-v-4a201935]{font-family:monospace;font-size:clamp(.75rem,1.4vw,.95rem);color:var(--color-text-secondary);letter-spacing:.1em;margin:0 0 32px}.features[data-v-4a201935]{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:40px;max-width:520px}.feature-chip[data-v-4a201935]{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:99px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:monospace;font-size:11px;color:var(--color-text-secondary);letter-spacing:.04em;-webkit-user-select:none;user-select:none}.feature-icon[data-v-4a201935]{display:flex;align-items:center;color:var(--color-accent-hex);opacity:.8}.menu-actions[data-v-4a201935]{display:flex;flex-direction:column;align-items:center;gap:14px}.btn-play[data-v-4a201935]{display:inline-flex;align-items:center;gap:12px;padding:18px 68px;font-family:monospace;font-size:1.05rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--md-on-primary);background:var(--md-primary);border:none;border-radius:14px;cursor:pointer;box-shadow:0 4px 26px #1976d25c;transition:background .16s ease,transform .16s ease,box-shadow .16s ease;-webkit-user-select:none;user-select:none}.btn-play[data-v-4a201935]:hover{background:var(--md-primary-variant);transform:translateY(-3px);box-shadow:0 8px 36px #1976d280}.btn-play[data-v-4a201935]:active{transform:translateY(0);box-shadow:0 2px 14px #1976d242}.btn-resume[data-v-4a201935]{display:inline-flex;align-items:center;gap:12px;padding:14px 56px;font-family:monospace;font-size:.95rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--color-accent-hex);background:transparent;border:1px solid var(--color-ctrl-border);border-radius:14px;cursor:pointer;transition:background .16s ease,transform .16s ease,border-color .16s ease,opacity .16s ease;-webkit-user-select:none;user-select:none}.btn-resume[data-v-4a201935]:hover{background:var(--color-ctrl-hover);border-color:var(--color-accent-hex);transform:translateY(-2px)}.btn-resume.disabled[data-v-4a201935]{opacity:.5;cursor:not-allowed}.lang-toggle[data-v-4a201935]{position:absolute;bottom:24px;right:28px;display:flex;align-items:center;gap:2px;font-family:monospace;font-size:12px}.lang-btn[data-v-4a201935]{background:none;border:none;padding:4px 7px;cursor:pointer;font-family:inherit;font-size:inherit;font-weight:600;color:var(--color-muted);border-radius:4px;transition:color .12s ease,background .12s ease}.lang-btn[data-v-4a201935]:hover{color:var(--color-accent-hex)}.lang-btn.active[data-v-4a201935]{color:var(--color-accent-hex);background:var(--color-ctrl-hover)}.lang-sep[data-v-4a201935]{color:var(--color-muted);-webkit-user-select:none;user-select:none}.modal-overlay[data-v-4a201935]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;align-items:center;justify-content:center;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal[data-v-4a201935]{max-width:360px;margin:0 24px;padding:28px 24px 24px;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:16px;box-shadow:0 14px 40px #0006;text-align:center;font-family:monospace}.modal-icon-wrap[data-v-4a201935]{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:50%;background:#f9a82524;border:1.5px solid rgba(249,168,37,.35);color:#f9a825;margin:0 auto 16px}.modal-title[data-v-4a201935]{margin:0 0 10px;font-size:1rem;font-weight:700;color:var(--color-text-primary)}.modal-body[data-v-4a201935]{margin:0 0 22px;font-size:.85rem;line-height:1.5;color:var(--color-text-secondary)}.modal-actions[data-v-4a201935]{display:flex;gap:10px;justify-content:center}.modal-btn[data-v-4a201935]{display:inline-flex;align-items:center;gap:7px;padding:10px 20px;font-family:monospace;font-size:.85rem;font-weight:700;border-radius:10px;cursor:pointer;border:1px solid var(--color-ctrl-border);transition:background .14s ease,border-color .14s ease,opacity .14s ease}.modal-btn.cancel[data-v-4a201935]{background:transparent;color:var(--color-text-secondary)}.modal-btn.cancel[data-v-4a201935]:hover{background:var(--color-ctrl-hover)}.modal-btn.confirm[data-v-4a201935]{background:var(--md-primary);border-color:var(--md-primary);color:var(--md-on-primary)}.modal-btn.confirm[data-v-4a201935]:hover{background:var(--md-primary-variant)}.overlay-fade-enter-active[data-v-4a201935],.overlay-fade-leave-active[data-v-4a201935]{transition:opacity .18s ease}.overlay-fade-enter-from[data-v-4a201935],.overlay-fade-leave-to[data-v-4a201935]{opacity:0}.warning-banner[data-v-9babd3df]{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;width:min(560px,calc(100vw - 24px));padding:12px 16px;border-radius:14px;border:1px solid;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 28px #00000038;font-family:monospace;-webkit-user-select:none;user-select:none}.banner-icon[data-v-9babd3df]{flex-shrink:0;display:flex;align-items:center;padding-top:1px}.banner-content[data-v-9babd3df]{display:flex;flex-direction:column;gap:5px;flex:1;min-width:0}.warning-row[data-v-9babd3df]{display:flex;flex-direction:column;gap:1px}.warning-line[data-v-9babd3df]{font-size:13px;font-weight:700}.warning-tip[data-v-9babd3df]{font-size:11px;opacity:.85}.sev-yellow[data-v-9babd3df]{background:#fff8e1f5;border-color:#f9a825;color:#5d4200}.sev-orange[data-v-9babd3df]{background:#ffecd9f5;border-color:#e65100;color:#6b2c00}.sev-red[data-v-9babd3df]{background:#ffe6e6f7;border-color:#c62828;color:#7f1414;animation:pulse-9babd3df 1.1s ease-in-out infinite alternate}@keyframes pulse-9babd3df{0%{box-shadow:0 10px 28px #00000038}to{box-shadow:0 0 0 3px #c6282847,0 10px 28px #00000038}}.banner-fade-enter-active[data-v-9babd3df],.banner-fade-leave-active[data-v-9babd3df]{transition:opacity .25s ease,transform .25s ease}.banner-fade-enter-from[data-v-9babd3df],.banner-fade-leave-to[data-v-9babd3df]{opacity:0;transform:translateY(-8px)}@media(max-width:640px){.warning-line[data-v-9babd3df]{font-size:12px}.warning-tip[data-v-9babd3df]{font-size:10px}}.collapse-overlay[data-v-73529b22]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;background:#0a141e73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.collapse-card[data-v-73529b22]{width:min(420px,calc(100vw - 40px));padding:28px 26px;text-align:center;background:var(--color-surface);border:1px solid var(--color-panel-border);border-radius:18px;box-shadow:0 24px 60px #0006}.collapse-icon[data-v-73529b22]{font-size:44px;line-height:1;margin-bottom:8px}.collapse-title[data-v-73529b22]{font-size:22px;font-weight:800;color:var(--color-bad);margin-bottom:8px}.collapse-cause[data-v-73529b22]{font-size:14px;color:var(--color-text-secondary);margin-bottom:4px}.collapse-paused[data-v-73529b22]{font-size:12.5px;color:var(--color-text-secondary);opacity:.8;margin-bottom:22px}.collapse-actions[data-v-73529b22]{display:flex;flex-direction:column;gap:10px}.collapse-btn[data-v-73529b22]{width:100%;padding:12px;font-size:15px;font-weight:700;border:none;border-radius:10px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.collapse-btn[data-v-73529b22]:disabled{opacity:.6;cursor:default}.collapse-btn--new[data-v-73529b22]{color:var(--md-on-primary);background:var(--md-primary)}.collapse-btn--new[data-v-73529b22]:hover:not(:disabled){background:var(--md-primary-variant)}.collapse-btn--revert[data-v-73529b22]{color:var(--color-text-primary);background:var(--color-surface-variant);border:1px solid var(--color-panel-border)}.collapse-btn--revert[data-v-73529b22]:hover:not(:disabled){background:var(--color-panel-border)}.collapse-fade-enter-active[data-v-73529b22],.collapse-fade-leave-active[data-v-73529b22]{transition:opacity .3s ease}.collapse-fade-enter-from[data-v-73529b22],.collapse-fade-leave-to[data-v-73529b22]{opacity:0}.damage-panel[data-v-53affa36]{position:fixed;bottom:80px;left:16px;min-width:180px;max-width:240px;background:#0f1720eb;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,68,0,.4);border-radius:8px;padding:8px 10px;font-family:monospace;font-size:11px;color:#e8edf2;z-index:50}.dp-title[data-v-53affa36]{font-weight:700;color:#f96;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid rgba(255,68,0,.3)}.dp-entry[data-v-53affa36]{display:flex;align-items:center;gap:6px;padding:3px 0;cursor:pointer;border-radius:4px}.dp-entry[data-v-53affa36]:hover{background:#ff44001a}.dp-icon[data-v-53affa36]{font-size:14px}.dp-coords[data-v-53affa36]{flex:1;color:#fff9}.dp-repair[data-v-53affa36]{padding:2px 6px;background:#f403;border:1px solid rgba(255,68,0,.4);border-radius:3px;color:#f96;font-family:monospace;font-size:10px;cursor:pointer;white-space:nowrap}.dp-repair[data-v-53affa36]:hover:not(:disabled){background:#ff440059}.dp-repair[data-v-53affa36]:disabled{opacity:.4;cursor:not-allowed}.modal-overlay[data-v-774eed2d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-card[data-v-774eed2d]{width:min(560px,calc(100vw - 32px));max-height:min(680px,calc(100vh - 60px));padding:24px 28px 20px;display:flex;flex-direction:column;font-family:monospace;background:var(--color-panel-bg);border:1px solid var(--color-panel-border);border-radius:20px;box-shadow:0 24px 60px #00000061;overflow:hidden}.modal-progress[data-v-774eed2d]{display:flex;justify-content:center;gap:6px;margin-bottom:22px;flex-shrink:0}.modal-dot[data-v-774eed2d]{width:7px;height:7px;border-radius:50%;border:none;padding:0;cursor:pointer;background:var(--color-ctrl-border);transition:background .2s ease,transform .2s ease,width .2s ease}.modal-dot.active[data-v-774eed2d]{transform:scale(1.25);width:20px;border-radius:4px}.modal-page[data-v-774eed2d]{flex:1;overflow-y:auto;text-align:center;padding-bottom:6px;scrollbar-width:thin}.page-icon-wrap[data-v-774eed2d]{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:18px;border:1.5px solid;margin-bottom:16px;transition:background .3s ease,border-color .3s ease}.modal-title[data-v-774eed2d]{font-size:1.15rem;font-weight:800;color:var(--color-text-primary);margin:0 0 10px;letter-spacing:.02em}.modal-body[data-v-774eed2d]{font-size:.83rem;line-height:1.6;color:var(--color-text-secondary);max-width:420px;display:block;margin:0 auto 16px}.modal-tips[data-v-774eed2d]{list-style:none;padding:0;margin:0;text-align:left;display:flex;flex-direction:column;gap:6px}.modal-tip[data-v-774eed2d]{display:flex;align-items:flex-start;gap:9px;font-size:.8rem;color:var(--color-text-secondary);background:var(--color-surface-variant);border-radius:9px;padding:8px 12px;line-height:1.45}.tip-icon[data-v-774eed2d]{display:flex;align-items:center;flex-shrink:0;margin-top:2px;opacity:.9}.tip-text[data-v-774eed2d]{flex:1;min-width:0}.modal-nav[data-v-774eed2d]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:18px;flex-shrink:0;border-top:1px solid var(--color-panel-border);margin-top:16px}.modal-btn[data-v-774eed2d]{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;font-family:monospace;font-size:.82rem;font-weight:700;border-radius:10px;cursor:pointer;border:1px solid var(--color-ctrl-border);transition:background .14s ease,border-color .14s ease,opacity .14s ease;white-space:nowrap}.modal-btn--secondary[data-v-774eed2d]{background:transparent;color:var(--color-text-secondary)}.modal-btn--secondary[data-v-774eed2d]:hover{background:var(--color-ctrl-hover)}.modal-btn--ghost[data-v-774eed2d]{background:transparent;color:var(--color-muted);border-color:transparent}.modal-btn--ghost[data-v-774eed2d]:hover{color:var(--color-text-secondary);background:var(--color-ctrl-hover)}.modal-btn--primary[data-v-774eed2d]{background:var(--md-primary);border-color:var(--md-primary);color:#fff;transition:opacity .14s ease,background .3s ease,border-color .3s ease}.modal-btn--primary[data-v-774eed2d]:hover{opacity:.88}.play-btn[data-v-774eed2d]{background:var(--md-primary)!important;border-color:var(--md-primary)!important;padding:10px 20px;font-size:.9rem}.start-modal-fade-enter-active[data-v-774eed2d],.start-modal-fade-leave-active[data-v-774eed2d]{transition:opacity .22s ease}.start-modal-fade-enter-from[data-v-774eed2d],.start-modal-fade-leave-to[data-v-774eed2d]{opacity:0}.page-forward-enter-active[data-v-774eed2d],.page-forward-leave-active[data-v-774eed2d],.page-backward-enter-active[data-v-774eed2d],.page-backward-leave-active[data-v-774eed2d]{transition:transform .18s ease,opacity .18s ease}.page-forward-enter-from[data-v-774eed2d]{transform:translate(32px);opacity:0}.page-forward-leave-to[data-v-774eed2d],.page-backward-enter-from[data-v-774eed2d]{transform:translate(-32px);opacity:0}.page-backward-leave-to[data-v-774eed2d]{transform:translate(32px);opacity:0}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--color-background)}#app{width:100vw;height:100vh;position:relative;overflow:hidden}.auth-checking{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:var(--color-background)}.canvas-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.ui-grid{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;pointer-events:none;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr auto;padding:12px;gap:8px}.hud-slot{grid-column:1;grid-row:1;align-self:start;pointer-events:auto}.speed-slot{grid-column:3;grid-row:1;align-self:start;pointer-events:auto}.policy-slot{grid-column:1;grid-row:2;align-self:start;justify-self:start;pointer-events:none}.policy-slot>*{pointer-events:auto}.policy-slide-enter-active,.policy-slide-leave-active{transition:opacity .2s ease,transform .2s ease}.policy-slide-enter-from,.policy-slide-leave-to{opacity:0;transform:translate(-12px)}.toast-slot{grid-column:3;grid-row:2;align-self:start;justify-self:end;pointer-events:auto}.toolbar-slot{grid-column:1 / -1;grid-row:3;justify-self:center;align-self:end;pointer-events:auto}.speed-slot{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.aux-cluster{display:flex;align-items:center;gap:6px;pointer-events:auto;padding:6px 8px;background:var(--color-panel-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-panel-border);border-radius:12px;box-shadow:0 8px 24px #0003}.warning-area{position:fixed;top:90px;left:50%;transform:translate(-50%);z-index:25;display:flex;justify-content:center;pointer-events:none}.menu-fade-enter-active{transition:opacity .5s ease}.menu-fade-enter-from{opacity:0}.menu-fade-leave-active{transition:opacity .38s ease}.menu-fade-leave-to{opacity:0}:root{--md-primary: #1976D2;--md-primary-variant: #1565C0;--md-on-primary: #FFFFFF;--md-primary-container: #D0E4FF;--md-on-primary-container: #001C3A;--color-background: #FAFCFF;--color-surface: #FFFFFF;--color-surface-variant: #E3F2FD;--color-panel-bg: rgba(255, 255, 255, .97);--color-panel-border: rgba(0, 0, 0, .12);--color-text-primary: rgba(0, 0, 0, .87);--color-text-secondary: rgba(0, 0, 0, .6);--color-muted: rgba(0, 0, 0, .38);--color-label: rgba(0, 0, 0, .6);--color-accent: var(--md-primary);--color-accent-hex: #1976D2;--color-ctrl-bg: #FFFFFF;--color-ctrl-border: rgba(0, 0, 0, .12);--color-ctrl-hover: rgba(25, 118, 210, .08);--color-ctrl-active: rgba(25, 118, 210, .12);--color-good: #2E7D32;--color-warn: #E65100;--color-bad: #C62828;--color-negative: var(--color-bad);--toast-info-bg: var(--md-primary);--toast-info-color: var(--md-on-primary);--toast-warn-bg: #FFF8E1;--toast-warn-color: rgba(0, 0, 0, .87);--toast-error-bg: #FFEBEE;--toast-error-color: #B71C1C;--toast-border: rgba(0, 0, 0, .08);--color-scrollbar-track: rgba(0, 0, 0, .06);--color-scrollbar-thumb: rgba(25, 118, 210, .3);--color-policy-btn-bg: #FFFFFF;--color-policy-btn-border: rgba(0, 0, 0, .12);--color-policy-btn-hover: rgba(25, 118, 210, .08);--color-policy-btn-active-bg: var(--md-primary-container);--color-policy-btn-active-border: var(--md-primary);--color-policy-btn-active-color: var(--md-on-primary-container);--color-apply-btn-bg: var(--md-primary);--color-apply-btn-border: transparent;--color-apply-btn-hover: var(--md-primary-variant);--color-error-border: #C62828;--color-error-shadow: rgba(198, 40, 40, .4);--color-toolbar-bg: #FFFFFF;--color-toolbar-border: rgba(0, 0, 0, .12);--color-tool-btn-bg: #FAFAFA;--color-tool-btn-border: rgba(0, 0, 0, .08);--color-tool-btn-hover: rgba(0, 0, 0, .04);--color-tool-btn-text: rgba(0, 0, 0, .6);--metric-population: #2E7D32;--metric-jobs: #1976D2;--metric-budget: #00838F;--metric-happiness: #D81B60;--metric-env: #43A047;--metric-health: #7B1FA2;--tool-residential: #388E3C;--tool-commercial: #1976D2;--tool-industrial: #E64A19;--tool-power-plant: #D32F2F;--tool-solar-panel: #F9A825;--tool-road: #546E7A;--tool-park: #558B2F;--tool-hospital: #7B1FA2;--tool-school: #EF6C00;--tool-stadium: #00838F;--tool-demolish: #B71C1C}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:3px}html,body{width:100%;height:100%;margin:0;padding:0;background:var(--color-background);color:var(--color-text-primary);font-family:Inter,Roboto,system-ui,-apple-system,Segoe UI,Helvetica Neue,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{color:inherit;font:inherit}*{box-sizing:border-box}:focus{outline:2px solid color-mix(in srgb,var(--md-primary) 40%,transparent);outline-offset:2px}#app{min-height:100vh}
