:root{--bg:#1b1e24;--panel:#262b33;--panel-2:#2f353f;--line:#3a4150;--text:#e6e8ec;--muted:#9aa3b2;--accent:#ffcf33;--accent-2:#4f9dde;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html,body,#root{background:var(--bg);height:100%;color:var(--text);margin:0}.app{flex-direction:column;height:100vh;display:flex}.topbar{background:var(--panel);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:8px 14px;display:flex}.brand{letter-spacing:.3px;font-weight:700}.tag{color:var(--muted);border:1px solid var(--line);border-radius:10px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:500}.topbar-actions button{margin-left:6px}.body{flex:1;min-height:0;display:flex}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;width:320px;min-height:0;display:flex}.tabs{border-bottom:1px solid var(--line);display:flex}.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:0;flex:1;padding:10px}.tabs button.active{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.sidebar-scroll{padding:12px;overflow-y:auto}.stage{flex:1;min-width:0;position:relative}.map-canvas-container{position:absolute;inset:0}.map-canvas-container .gl-layer,.map-canvas-container .overlay-layer{width:100%;height:100%;display:block;position:absolute;inset:0}.map-canvas-container .gl-layer{pointer-events:none}.map-canvas-container .overlay-layer{touch-action:none;cursor:crosshair}.map-canvas-container .overlay-layer:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.map-overlay{background:color-mix(in srgb, var(--bg) 72%, transparent);z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.map-overlay-card{background:var(--panel-2);border:1px solid var(--line);color:var(--text);text-align:center;border-radius:10px;align-items:center;gap:10px;max-width:80%;padding:14px 18px;font-size:13px;display:flex;box-shadow:0 8px 28px #0006}.map-overlay-card.error{color:#ffd9c8;border-color:#a8412f}.spinner{border:2.5px solid var(--line);border-top-color:var(--accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}.panel-actions{margin:0 0 14px}.panel-actions .primary{width:100%}.panel{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;margin-bottom:12px;padding:12px}.section{border-bottom:1px solid var(--line);margin-bottom:6px}.section[open]{border-bottom-color:#0000}.section>summary{cursor:pointer;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:7px;padding:9px 2px;font-size:12px;font-weight:600;list-style:none;display:flex}.section>summary::-webkit-details-marker{display:none}.section>summary:before{content:"▸";color:var(--accent);font-size:10px;transition:transform .15s}.section[open]>summary:before{transform:rotate(90deg)}.section>summary:hover{color:var(--text)}.section>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.section-body{padding:0 0 4px}.panel h2{text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin:0 0 10px;font-size:14px}.panel h3{color:var(--muted);margin:12px 0 6px;font-size:12px}button{background:var(--panel);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:6px 10px;font-size:13px}button:hover{border-color:var(--accent-2)}button.primary{background:var(--accent-2);border-color:var(--accent-2);color:#0d1b27;width:100%;margin-top:10px;padding:9px;font-weight:700}button.primary:disabled{opacity:.6;cursor:progress}.tool-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.tool{text-align:left}.tool.active{border-color:var(--accent);color:var(--accent);font-weight:700}.swatches{margin-top:8px}.swatch{text-align:left;align-items:center;gap:8px;width:100%;margin-bottom:4px;display:flex}.swatch.active{border-color:var(--accent);font-weight:700}.swatch-color{border:1px solid #0006;border-radius:3px;width:16px;height:16px}.field{color:var(--muted);flex-direction:column;gap:5px;margin-bottom:12px;font-size:13px;display:flex}.knob-label,.field>label,.toggle-row{color:var(--text);font-weight:600}.field.small{flex:1}.field select,.field input{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:6px;padding:6px;font-size:13px}.field input[type=range]{padding:0}.nudge{align-items:center;gap:6px;display:flex}.nudge button{background:var(--panel);color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:4px 10px;font-size:13px}.nudge button.linklike{color:var(--muted);background:0 0;border:none;padding:4px;text-decoration:underline}.nudge button:disabled{opacity:.4;cursor:default}.row{align-items:center;gap:8px;display:flex}.row input{flex:1}.checkbox{align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.toggle-field{margin-bottom:12px}.toggle-row{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;font-size:13px;font-weight:600;display:flex}.toggle-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-2);cursor:pointer;flex:none;margin:0}.toggle-field .hint{margin-top:4px}fieldset.field{border:1px solid var(--line);border-radius:6px}fieldset.field legend{padding:0 6px}.knob-label{justify-content:space-between;gap:8px;display:flex}.knob-label em{color:var(--accent-2);font-variant-numeric:tabular-nums;font-style:normal;font-weight:600}.gen-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.gen-head h2{margin:0}.toggle{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12px;display:flex}.gen-card{background:var(--panel);border:1px solid var(--line);border-radius:6px;margin:10px 0;padding:9px 11px}.gen-card .field,.gen-card .toggle-field{margin-bottom:0}.gen-card .field+.field,.gen-card .toggle-field+.field{margin-top:9px}.field-hint{color:var(--muted);border-top:1px solid var(--line);margin:8px 0 0;padding:7px 0 0 10px;font-size:11px;line-height:1.4;display:block}.hint{color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.4}.muted{color:var(--muted);font-size:.85em;font-weight:400}.hint.warn{color:#ffcf9a}.estimate{background:var(--panel);border:1px solid var(--line);border-radius:6px;margin-top:10px;padding:8px 10px;font-size:13px;line-height:1.5}.toast-region{z-index:50;max-width:min(90vw,460px);position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{background:var(--panel-2);color:#ffd9c8;border:1px solid #a8412f;border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;font-size:13px;line-height:1.45;display:flex;box-shadow:0 8px 28px #00000073}.toast-dismiss{color:inherit;cursor:pointer;opacity:.8;background:0 0;border:none;flex:none;padding:0 2px;font-size:18px;line-height:1}.toast-dismiss:hover{opacity:1}
