:root{color:#174f80;background:#e7f1fa;font-family:Work Sans,Helvetica Neue,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #4387c5;--ink-dark: #0a5598;--muted: #7ba6cb;--pale: #eff6fd;--panel: #ffffff;--border: #cfe1f2;--track: #bbd5ec;--focus: #f1a61c;--map-width: 434px;--shadow: 0 24px 70px rgba(53, 104, 149, .16)}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:radial-gradient(circle at 15% 0%,rgba(255,255,255,.9),transparent 35rem),#e7f1fa}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,.map-canvas:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.loading-screen{min-height:100vh;display:grid;place-content:center;gap:14px;color:var(--ink);text-align:center}.loading-mark{width:32px;height:32px;margin:auto;border:3px solid var(--border);border-top-color:var(--ink);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.site{min-height:100vh;display:flex;flex-direction:column}.masthead{position:sticky;top:0;z-index:30;background:#fffffff0;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.masthead-inner{width:min(100% - 36px,1120px);min-height:66px;margin:0 auto;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:26px}.wordmark{font-size:24px;font-weight:520;letter-spacing:-.04em;color:var(--ink)}.masthead-copy{margin:0;color:var(--muted);font-size:13px;text-align:center}.button{appearance:none;border:0;border-radius:2px;min-height:34px;padding:8px 15px;background:var(--ink);color:#fff;cursor:pointer;transition:background .15s ease,transform .15s ease}.button:hover{background:var(--ink-dark)}.button:active{transform:translateY(1px)}.button.secondary{background:#e5f0f9;color:var(--ink-dark)}.button.secondary:hover{background:#d3e6f5}.button.ghost{background:transparent;color:var(--ink);border:1px solid var(--border)}.button.ghost:hover{background:var(--pale)}.button.small{min-height:28px;padding:5px 11px;font-size:12px}.button[disabled]{opacity:.46;cursor:not-allowed}.workspace-shell{width:min(100% - 36px,1120px);margin:30px auto 22px;background:var(--panel);border:1px solid rgba(207,225,242,.9);box-shadow:var(--shadow)}.sim-header{display:grid;grid-template-columns:118px minmax(180px,1fr) auto;align-items:center;min-height:58px;border-bottom:1px solid var(--border)}.run-block{align-self:stretch;display:grid;grid-template-rows:1fr 5px;border-right:1px solid var(--border)}.run-button{border-radius:0;min-height:52px}.progress-track{background:#e4eef7;overflow:hidden}.progress-bar{height:100%;width:0;background:#7e98de;transition:width .12s linear}.simulation-status{min-width:0;padding:0 20px}.status-title,.status-subtitle{margin:0}.status-title{color:#234f75;font-size:14px;font-weight:600}.status-subtitle{margin-top:4px;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.speed-controls{display:flex;align-items:center;gap:4px;padding-right:15px}.speed-label{margin-right:7px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.segmented{appearance:none;border:1px solid var(--border);min-width:48px;min-height:27px;padding:4px 8px;background:#fff;color:var(--ink);cursor:pointer}.segmented+.segmented{margin-left:-5px}.segmented.active{position:relative;z-index:1;border-color:var(--ink);background:var(--ink);color:#fff}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 470px;min-height:826px}.map-section{min-width:0;padding:18px 18px 14px;border-right:1px solid var(--border);background:linear-gradient(180deg,#eff6fd7a,#fff0 180px),#fff}.map-frame{width:var(--map-width);max-width:100%;margin:0 auto;position:relative;background:#a6cee3;box-shadow:0 0 0 1px var(--border);overflow:hidden}.map-canvas{display:block;width:100%;height:auto;aspect-ratio:31 / 59;image-rendering:pixelated;cursor:default;touch-action:none}.map-canvas.drawing{cursor:crosshair}.map-help{position:absolute;right:8px;bottom:8px;max-width:190px;padding:7px 9px;background:#ffffffeb;border:1px solid var(--border);color:#557f9f;font-size:11px;line-height:1.35;pointer-events:none}.legend{width:var(--map-width);max-width:100%;min-height:34px;margin:10px auto 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;color:var(--ink);font-size:11px}.legend-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.legend-swatch{width:10px;height:10px;background:var(--swatch);border:1px solid rgba(255,255,255,.8);box-shadow:0 0 0 1px #4387c52e}.map-layer-control{width:var(--map-width);max-width:100%;margin:6px auto 0;padding-top:10px;border-top:1px solid var(--border)}.control-kicker{margin:0 0 7px;color:var(--muted);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.layer-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.layer-tab{appearance:none;min-height:30px;padding:5px;border:1px solid var(--border);background:#fff;color:var(--ink);font-size:11px;cursor:pointer}.layer-tab:hover{background:var(--pale)}.layer-tab.active{border-color:var(--ink);background:var(--ink);color:#fff}.panels{min-width:0;background:#fbfdff}.panel{background:#fff;border-bottom:1px solid var(--border)}.panel-heading{appearance:none;width:100%;min-height:52px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 14px;border:0;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.panel-heading:hover{background:#f7fbfe}.panel-chevron{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .16s ease}.panel.expanded .panel-chevron{transform:rotate(45deg) translateY(-2px)}.panel-name{font-size:13px;font-weight:600}.stars{display:inline-flex;align-items:center;gap:1px;color:#d1e1ef;font-size:13px;letter-spacing:.04em}.star.filled{color:var(--ink)}.score-value{margin-left:4px;color:var(--muted);font-size:10px;min-width:26px;text-align:right}.panel-body{display:none;padding:3px 14px 18px 42px;background:#fff}.panel.expanded .panel-body{display:block}.panel-intro{margin:0 0 12px;color:#6f9bbf;font-size:12px;line-height:1.45}.policy-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:15px}.tool-button{appearance:none;min-height:32px;padding:5px 8px;border:1px solid var(--border);background:#f7fbfe;color:var(--ink);font-size:11px;cursor:pointer}.tool-button:hover{border-color:#a9cae5;background:#edf6fc}.tool-button.active{border-color:var(--ink);background:var(--ink);color:#fff}.slider-control{margin:13px 0 17px}.slider-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:7px;color:#5c8db5;font-size:11px}.slider-value{color:var(--ink-dark);font-variant-numeric:tabular-nums}.slider{appearance:none;width:100%;height:4px;border-radius:0;background:var(--track)}.slider::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink);cursor:pointer}.slider::-moz-range-thumb{width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:var(--ink);box-shadow:0 0 0 1px var(--ink);cursor:pointer}.slider:disabled{opacity:.45}.graphs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px}.graph.large{grid-column:1 / -1}.graph-title{min-height:27px;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin:0 0 4px;color:#5f8db1;font-size:10px;line-height:1.25}.graph-current{color:var(--ink-dark);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.graph-svg{display:block;width:100%;height:74px;overflow:visible}.graph-grid{stroke:#d9e7f3;stroke-width:1}.graph-target{stroke:#9b9b9b;stroke-width:1;stroke-dasharray:3 3}.graph-bar{fill:var(--ink)}.graph-empty{fill:#e7f0f8}.file-actions{min-height:54px;display:flex;align-items:center;gap:8px;padding:10px 14px;background:#fbfdff;border-top:1px solid var(--border)}.file-actions-note{margin-left:auto;color:var(--muted);font-size:10px}.tutorial-overlay{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#0f2d486b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tutorial-dialog{width:min(100%,520px);padding:26px;background:#fff;border:1px solid var(--border);box-shadow:0 30px 90px #0d325257}.tutorial-step{margin:0 0 12px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.tutorial-title{margin:0;color:#275f90;font-size:clamp(24px,5vw,34px);font-weight:520;letter-spacing:-.035em}.tutorial-copy{min-height:76px;margin:14px 0 20px;color:#557f9f;font-size:15px;line-height:1.55}.tutorial-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.tutorial-dots{display:flex;gap:5px}.tutorial-dot{width:6px;height:6px;border-radius:50%;background:var(--border)}.tutorial-dot.active{background:var(--ink)}.toast{position:fixed;right:22px;bottom:22px;z-index:120;max-width:min(360px,calc(100vw - 44px));padding:11px 14px;background:#174f80;color:#fff;box-shadow:0 12px 36px #0e375947;font-size:12px;line-height:1.4;animation:toast-in .18s ease both}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.site-footer{width:min(100% - 36px,1120px);margin:auto auto 0;padding:5px 0 28px;display:flex;justify-content:space-between;gap:24px;color:#739cbd;font-size:11px;line-height:1.5}.site-footer p{max-width:660px;margin:0}.footer-meta{white-space:nowrap}@media(max-width:980px){.workspace{grid-template-columns:minmax(0,1fr) 420px}.workspace-shell{width:min(100% - 24px,940px)}.map-section{padding-inline:12px}}@media(max-width:820px){.masthead-inner{width:min(100% - 24px,700px);grid-template-columns:1fr auto}.masthead-copy{display:none}.workspace-shell{width:min(100% - 20px,700px);margin-top:16px}.workspace{grid-template-columns:1fr}.map-section{border-right:0;border-bottom:1px solid var(--border)}.map-frame,.legend,.map-layer-control{--map-width: min(100%, 496px)}.panels{min-height:0}.site-footer{width:min(100% - 24px,700px);flex-direction:column;gap:7px}}@media(max-width:560px){.masthead-inner{min-height:58px}.wordmark{font-size:22px}.sim-header{grid-template-columns:106px 1fr}.simulation-status{padding-inline:14px}.speed-controls{grid-column:1 / -1;justify-content:flex-end;min-height:42px;padding:7px 10px;border-top:1px solid var(--border)}.workspace{min-height:0}.map-section{padding:12px 10px}.layer-tabs{grid-template-columns:repeat(2,1fr)}.panel-body{padding-left:28px;padding-right:12px}.graphs{grid-template-columns:1fr}.graph.large{grid-column:auto}.file-actions{flex-wrap:wrap}.file-actions-note{width:100%;margin:2px 0 0}.tutorial-dialog{padding:22px 18px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
