body{display:flex;flex-direction:column}.site-topbar{flex:none}.studio-main{flex:1;min-height:0;position:relative}:root{--ink: #EDE7DA;--paper: #F8F4EC;--surface: #ffffff;--raised: #F8F4EC;--line: #E5DCC9;--text: #22303A;--muted: #6B6255;--accent: #C75B39;--accent-hover: #A8492C;--accent-ink: #ffffff;--signal: #B3462F;--signal-hover: #9C3B27;--amber: #B98A2E;--teal: #175C55;--teal-dark: #134A45;--teal-light: #9FE1CB;--font-ui: "Public Sans", Inter, system-ui, sans-serif;--font-serif: "Fraunces", Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--radius: 8px;--shadow: 0 10px 28px rgba(34, 48, 58, .14)}*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{font-family:var(--font-ui);background:var(--ink);color:var(--text);font-size:14px;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500}button{font-family:var(--font-ui);font-size:13px;color:var(--text);background:transparent;border:none;border-radius:var(--radius);padding:7px 12px;cursor:pointer;transition:background .15s ease,color .15s ease}button:hover{background:var(--raised)}button:active{background:#000}button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}button.primary{color:var(--accent);font-weight:600}button.danger{color:var(--signal)}button.danger:hover{background:color-mix(in srgb,var(--signal) 12%,transparent)}button.ghost{background:transparent}button:disabled{opacity:.45;cursor:not-allowed}input[type=text],input[type=number],textarea,select{font-family:var(--font-mono);font-size:12.5px;color:var(--text);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:6px 8px;width:100%}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--teal);outline-offset:1px}textarea{font-family:var(--font-ui);resize:vertical}.mono{font-family:var(--font-mono);font-size:12px}.muted{color:var(--muted)}.eyebrow{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}.leaflet-container{background:var(--ink);font-family:var(--font-ui)}.aw-basemap{filter:brightness(.68) saturate(1.12)}.leaflet-control-zoom a{background:var(--surface)!important;color:var(--text)!important;border-color:var(--line)!important}.leaflet-control-attribution{background:#0e1013cc!important;color:var(--muted)!important;font-size:10px!important}.leaflet-control-attribution a{color:var(--accent)!important}.app .pane-left,.app .pane-right,.app .pane-left *,.app .pane-right *{scrollbar-width:thin;scrollbar-color:#6d7580 var(--surface)}.app .pane-left ::-webkit-scrollbar,.app .pane-right ::-webkit-scrollbar{width:12px;height:12px}.app .pane-left ::-webkit-scrollbar-track,.app .pane-left ::-webkit-scrollbar-corner,.app .pane-right ::-webkit-scrollbar-track,.app .pane-right ::-webkit-scrollbar-corner{background:var(--surface)}.app .pane-left ::-webkit-scrollbar-thumb,.app .pane-right ::-webkit-scrollbar-thumb{background:#5c646f;border-radius:7px;border:3px solid var(--surface)}.app .pane-left ::-webkit-scrollbar-thumb:hover,.app .pane-right ::-webkit-scrollbar-thumb:hover{background:#7b838f}.app .pane-left ::-webkit-scrollbar-button,.app .pane-right ::-webkit-scrollbar-button{background:var(--surface);color:#9aa2ad}.leaflet-container,.leaflet-container.leaflet-grab,.leaflet-interactive.aw-shape{cursor:default}.leaflet-container.mode-editor:not(.cursor-draw) .leaflet-interactive.aw-shape{cursor:pointer}.leaflet-container.mode-editor:not(.cursor-draw) .leaflet-interactive.aw-shape.selected{cursor:default}.leaflet-container.cursor-draw,.leaflet-container.cursor-draw .leaflet-interactive{cursor:copy}.leaflet-container.cursor-close,.leaflet-container.cursor-close .leaflet-interactive{cursor:alias}.leaflet-container.mode-explorer,.leaflet-container.mode-explorer .leaflet-interactive{cursor:crosshair}.leaflet-marker-icon.leaflet-marker-draggable,body.leaflet-dragging .leaflet-container .leaflet-drag-target,body.leaflet-dragging .leaflet-container{cursor:pointer}.leaflet-container.cursor-panning,body.leaflet-dragging .leaflet-container.cursor-panning,body.leaflet-dragging .leaflet-container.cursor-panning .leaflet-interactive{cursor:move}.leaflet-marker-icon.aw-midpoint-icon{cursor:copy}.aw-pin{position:relative;width:22px;height:32px;filter:drop-shadow(0 2px 4px rgba(34,48,58,.35))}.aw-pin:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:18px;height:18px;border-radius:50%;background:var(--pin-color, var(--teal));border:2px solid #ffffff}.aw-pin:after{content:"";position:absolute;top:18px;left:50%;transform:translate(-50%);width:0;height:0;border-left:3.5px solid transparent;border-right:3.5px solid transparent;border-top:13px solid #22303A}.aw-pin.beacon:before{background:color-mix(in srgb,var(--pin-color, var(--teal)) 38%,#ffffff);border-color:var(--pin-color, var(--teal));border-width:2.5px}.aw-pin .aw-pin-sound{position:absolute;top:-6px;right:-7px;font-size:10px;line-height:1;background:#fff;border:1px solid var(--line);border-radius:50%;padding:2px}.aw-pin.snap-hint:before{outline:3px solid var(--teal-light);outline-offset:2px}.aw-pin.selected:before{box-shadow:0 0 0 3px #fff,0 0 0 6px color-mix(in srgb,var(--pin-color, var(--teal)) 75%,#ffffff);animation:pin-halo 1.6s infinite}@keyframes pin-halo{0%{box-shadow:0 0 0 3px #fff,0 0 0 6px color-mix(in srgb,var(--pin-color, var(--teal)) 75%,#ffffff)}50%{box-shadow:0 0 0 3px #fff,0 0 0 9px color-mix(in srgb,var(--pin-color, var(--teal)) 45%,#ffffff)}to{box-shadow:0 0 0 3px #fff,0 0 0 6px color-mix(in srgb,var(--pin-color, var(--teal)) 75%,#ffffff)}}.aw-pin.flash{animation:pin-bounce .6s ease;z-index:500}.aw-pin.flash:before{animation:pin-flash 1.5s ease-out}@keyframes pin-bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-7px)}}@keyframes pin-flash{0%{box-shadow:0 0 color-mix(in srgb,var(--pin-color, var(--teal)) 90%,#ffffff)}70%{box-shadow:0 0 0 14px transparent}to{box-shadow:0 0 0 14px transparent}}.aw-move-ghost{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);pointer-events:none}.aw-crosshair{position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-50%);pointer-events:none}.aw-crosshair:before,.aw-crosshair:after{content:"";position:absolute;background:var(--accent)}.aw-crosshair:before{left:50%;top:-6px;bottom:-6px;width:2px;margin-left:-1px}.aw-crosshair:after{top:50%;left:-6px;right:-6px;height:2px;margin-top:-1px}.aw-avatar{width:22px;height:22px;border-radius:50%;background:var(--teal);border:3px solid #F8F4EC;box-shadow:0 0 0 5px color-mix(in srgb,var(--teal) 25%,transparent)}.aw-avatar.walking{animation:avatar-pulse 1.5s infinite}@keyframes avatar-pulse{0%{box-shadow:0 0 0 5px color-mix(in srgb,var(--teal) 35%,transparent)}70%{box-shadow:0 0 0 16px transparent}to{box-shadow:0 0 0 5px transparent}}.aw-user{width:20px;height:20px;border-radius:50%;background:#4aa3ff;border:3px solid #ffffff;box-shadow:0 0 0 6px #4aa3ff4d;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 0 4px #4aa3ff59}70%{box-shadow:0 0 0 14px #4aa3ff00}to{box-shadow:0 0 0 4px #4aa3ff00}}.aw-target{width:18px;height:18px;border-radius:50%;border:3px dashed var(--signal);background:transparent}.aw-vertex{width:12px;height:12px;border-radius:3px;background:#fff;border:2px solid var(--accent);cursor:pointer}.aw-vertex.hl{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 30%,transparent)}.aw-midpoint{width:9px;height:9px;border-radius:50%;background:var(--accent);opacity:.55;cursor:copy}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
