@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root{font-family:Manrope,Arial,sans-serif;color:#222b26;background:#eceae3;font-synthesis:none;text-rendering:optimizeLegibility;--ink:#202824;--paper:#f7f6f1;--muted:#878c83;--line:#deded5;--green:#438567;--orange:#d88360;--mono:'DM Mono',monospace}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}.editor{height:100dvh;min-height:590px;display:grid;grid-template-columns:330px minmax(0,1fr);gap:1px;background:#d6d5ce}.sidebar{z-index:2;min-height:0;display:flex;flex-direction:column;padding:0 22px;background:var(--paper)}.masthead{height:62px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:9px;color:var(--ink);font-size:9px;font-weight:800;letter-spacing:.095em;text-decoration:none}.wordmark i{font-style:normal;color:var(--orange)}.mark{width:25px;height:25px;display:grid;place-items:center;background:transparent;font-size:21px;line-height:1;letter-spacing:0}.saved-state{display:flex;align-items:center;gap:5px;color:#788379;font:8px var(--mono);letter-spacing:.02em}.saved-state i,.context-dot{width:6px;height:6px;border-radius:50%;background:#548d6e}.saved-state.unsaved i{background:var(--orange)}.project{padding:26px 0 21px}.eyebrow,.section-cap,.editor-heading,.shape-tools>span{margin:0;color:#8c8e84;font:9px var(--mono);letter-spacing:.08em}.event-label{display:block;margin-top:19px;color:#404b43;font-size:19px;font-weight:600;letter-spacing:-.045em}.event-input{width:100%;height:35px;margin-top:8px;padding:0 10px;border:1px solid #d8d9cf;border-radius:2px;background:#fffefa;color:var(--ink);font:11px Manrope;outline:none}.event-input:focus,.shape-name:focus{border-color:#6a987b}.event-input::placeholder,.shape-name::placeholder{color:#aaa99f}.address{margin:9px 0 0;color:#85877d;font-size:9px}.address span{padding:0 4px;color:#b5b4aa}.floor-section{padding:15px 0 20px;border-top:1px solid var(--line)}.section-cap{display:flex;justify-content:space-between;align-items:center}.section-cap span:last-child{font-size:8px;color:#999b92}.floor-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.floor-button{height:38px;display:flex;align-items:center;gap:8px;padding:0 9px;border:1px solid #dcddd4;border-radius:2px;background:transparent;color:#777b72;text-align:left;font:10px Manrope;cursor:pointer}.floor-button b{color:#9a9d93;font:10px var(--mono)}.floor-button.active{border-color:#427e60;background:#e9efe8;color:#294d39}.floor-button.active b{color:#397653}.objects-section{min-height:90px;padding-top:15px;border-top:1px solid var(--line)}.add-shape{width:100%;min-height:55px;display:flex;align-items:center;gap:10px;margin-top:9px;padding:8px 9px;border:1px solid #427e60;border-radius:2px;background:#e9efe8;color:#315940;text-align:left;cursor:pointer}.add-shape:hover{background:#e1ebdf}.add-icon{width:25px;height:25px;display:grid;place-items:center;border:1px solid #b4cbbc;border-radius:2px;font-size:18px}.add-shape span:nth-child(2){flex:1;display:grid;gap:2px}.add-shape b{font-size:10px;font-weight:700}.add-shape small{color:#778779;font-size:8px}.add-shape kbd{padding:3px 5px;border:1px solid #ced9cd;border-radius:2px;color:#758476;font:8px var(--mono)}.shape-list{max-height:240px;overflow-y:auto}.empty-state{margin:13px 0 2px;color:#888a81;font-size:10px;line-height:1.6}.shape-row{width:100%;display:flex;align-items:center;gap:8px;padding:10px 4px;border:0;border-bottom:1px solid #e7e6df;background:transparent;color:#3c453e;text-align:left;font:10px Manrope;cursor:pointer}.shape-row:hover,.shape-row.active{background:#eeeee7}.shape-color{width:10px;height:10px;flex:none;border:1px solid #334b3a}.shape-row-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shape-row-floor{color:#92948c;font:8px var(--mono)}.shape-editor{padding:14px 0 0;border-top:1px solid var(--line)}.editor-heading{display:flex;align-items:center;justify-content:space-between}.delete-shape{width:22px;height:22px;border:1px solid var(--line);background:transparent;color:#777;font-size:16px;cursor:pointer}.shape-name{width:100%;height:34px;margin-top:9px;padding:0 9px;border:1px solid #d8d9cf;border-radius:2px;background:#fffefa;font:10px Manrope;outline:none}.shape-tools{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.color-options{display:flex;gap:7px}.color-swatch{width:17px;height:17px;border:2px solid transparent;border-radius:50%;cursor:pointer}.color-swatch.active{outline:1px solid #28362d;outline-offset:2px}.edit-hint{margin:12px 0 0;color:#81857b;font-size:9px;line-height:1.5}.edit-hint>span{padding-right:4px;color:#437f60;font-size:13px}.edit-hint b{color:#475b4c}.sidebar-spacer{flex:1;min-height:16px}.sidebar-footer{padding:13px 0 12px;border-top:1px solid var(--line)}.footer-line{display:flex;align-items:center;gap:6px;color:#7d8179;font-size:8px}.legend-swatch{width:9px;height:9px;margin-left:8px;border:1px solid #babdb2;background:#e6e6dc}.legend-swatch:first-child{margin-left:0}.legend-swatch.zone{border-color:#5c9b76;background:#8bbb9c}.footer-actions{display:flex;align-items:center;justify-content:space-between;margin-top:11px}.quiet-button,.export-button{height:30px;border:0;border-radius:2px;font:600 9px Manrope;cursor:pointer}.quiet-button{padding:0 8px;background:transparent;color:#687067}.export-button{padding:0 10px;background:var(--ink);color:#f4f3ed}.export-button:hover{background:#34483b}.export-button span{padding-left:8px;color:#adc7b1}.attribution{margin-top:12px;color:#9a9b93;font:8px var(--mono)}.attribution a{color:#6c756d;text-decoration:none}.attribution span{padding:0 4px;color:#bbb9ae}.map-stage{position:relative;min-width:0;overflow:hidden;background:#e7e5dc}.map-stage #map{position:absolute;inset:0}.map-toolbar{position:absolute;z-index:5;top:14px;left:15px;right:15px;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.map-context,.map-button,.help-button{height:32px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid #d8d8cf;border-radius:2px;background:#f8f7f1;color:#545e55;font:9px Manrope;box-shadow:0 1px 4px #1b2a1c0b}.map-context{pointer-events:none}.map-actions{display:flex;gap:6px;pointer-events:auto}.map-button,.help-button{cursor:pointer}.map-button:hover,.help-button:hover{border-color:#759780;color:#315941}.map-button span{color:#547b60;font-size:14px}.help-button{width:32px;justify-content:center;padding:0;font:12px var(--mono)}.map-instruction{position:absolute;z-index:4;bottom:16px;left:15px;display:flex;align-items:center;gap:8px;padding:9px 11px;border:1px solid #d8d8cf;border-radius:2px;background:#f8f7f1eF;color:#6e756c;font-size:9px;pointer-events:none}.instruction-mark{color:#4b8260;font-size:14px}.map-message{position:absolute;z-index:7;left:50%;top:50%;max-width:340px;transform:translate(-50%,-50%);padding:12px 15px;border:1px solid #d7d8ce;border-radius:2px;background:#f8f7f1;color:#4b544c;box-shadow:0 3px 16px #2028241b;font-size:10px;line-height:1.6}.maplibregl-ctrl-group{border:1px solid #d5d6cc!important;border-radius:2px!important;box-shadow:0 1px 4px #1b2a1c0b!important}.maplibregl-ctrl-bottom-right{right:12px!important;bottom:12px!important}.maplibregl-ctrl-bottom-left{left:12px!important;bottom:10px!important}.maplibregl-ctrl-attrib{font:8px Manrope!important}.vertex-marker,.insert-marker{display:grid;place-items:center;border:0;border-radius:50%;cursor:grab}.vertex-marker{width:13px;height:13px;border:2px solid #f8f7f1;box-shadow:0 0 0 1px #34493a,0 1px 4px #1c2b2055}.vertex-marker:active{cursor:grabbing;transform:scale(1.15)}.insert-marker{width:17px;height:17px;border:1px solid #55785e;background:#f8f7f1;color:#426d50;font:12px var(--mono);opacity:.8}.insert-marker:hover{opacity:1;transform:scale(1.12)}.map-drawing{cursor:crosshair!important}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:880px){.editor{grid-template-columns:290px minmax(0,1fr)}.sidebar{padding:0 16px}}
@media(max-width:620px){.editor{height:auto;min-height:100dvh;display:flex;flex-direction:column;gap:0}.map-stage{height:56dvh;min-height:340px;order:1}.sidebar{order:2;padding:0 15px}.masthead{height:51px}.project{padding:18px 0 14px}.event-label{margin-top:12px;font-size:17px}.floor-section{padding:11px 0 14px}.objects-section{padding-top:12px}.shape-list{max-height:170px}.shape-editor{padding:11px 0}.sidebar-spacer{display:none}.sidebar-footer{margin-top:13px}.map-instruction{bottom:10px;left:10px;font-size:8px}.map-toolbar{top:9px;left:9px;right:9px}.maplibregl-ctrl-bottom-right{bottom:9px!important;right:9px!important}.maplibregl-ctrl-bottom-left{left:9px!important;bottom:8px!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.zone-label{max-width:150px;padding:4px 7px;border:1px solid #738978;background:#f8f7f1ef;color:#2f4636;font:600 10px Manrope;white-space:nowrap;pointer-events:none}.zone-label.active{border-color:#283a2e;box-shadow:0 1px 4px #20282425}
.build-version{margin-top:6px;color:#9a9b93;font:8px var(--mono)}.build-version a{color:#6c756d;text-decoration:none}.build-version a:hover{text-decoration:underline}

.history-actions{display:flex;gap:6px;margin-top:8px}.history-actions button{height:26px;min-width:82px;border:1px solid var(--line);border-radius:2px;background:transparent;color:#687067;text-align:center;font:9px Manrope;cursor:pointer}.history-actions button:hover:not(:disabled){border-color:#759780;color:#315941}.history-actions button:disabled{opacity:.42;cursor:default}
