:root{--bg:#10151a;--panel:#1a222b;--panel-border:#2c3a47;--text:#e6edf3;--text-dim:#8b9aa7;--accent:#4ade80;--accent-dim:#14532d;--danger:#f87171;--footer-height:0px;--z-chrome:10;--z-panel:20;--z-sheet:28;--z-chip:30;--z-menu:40;--z-dropzone:50;--z-modal:100;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);--footer-h:30px;--dock-gap:8px;--dock-btn:44px;--dock-slot:calc(var(--dock-btn) + 6px);--rail-b:calc(var(--footer-h) + var(--safe-b) + var(--dock-gap));--slider-b:64px;--slider-h:48px;--rail-2-b:calc(var(--slider-b) + var(--slider-h) + var(--dock-gap));--dock-left-w:62px;--commandbar-h:0px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text);margin:0;padding:0;overflow:hidden}#root{flex-direction:column;height:100dvh;display:flex}.app{isolation:isolate;flex:1;position:relative;overflow:hidden}.brand-mark{vertical-align:-.22em;width:1.15em;height:1.15em;display:inline-block}.presence-bar,.toolbar,.layer-panel,.time-slider{z-index:10;background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;position:absolute;box-shadow:0 4px 16px #00000059}.presence-bar{flex-direction:column;align-items:flex-start;gap:4px;padding:6px 10px;font-size:13px;display:flex;top:12px;left:12px}.presence-row-2{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.presence-room-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;max-width:200px;padding:2px 6px;font-weight:600}.presence-room-btn:hover{background:#ffffff0f}.presence-room{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.presence-avatars-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px}.presence-avatars-btn:hover{background:#ffffff0f}.presence-avatars{pointer-events:none;display:flex;position:relative}.avatar{color:#10151a;border:2px solid var(--panel);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;margin-left:-6px;font-size:11px;font-weight:700;display:inline-flex}.avatar:first-child{margin-left:0}.presence-share{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:3px 10px;font-size:12px}.presence-share:hover{background:var(--accent);color:#10151a}.presence-export,.presence-build,.presence-account{border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:6px;padding:3px 8px;font-size:12px}.presence-export:hover,.presence-build:hover,.presence-account:hover{border-color:var(--accent)}.share-build .help-body h3{margin-top:18px}.share-build-list{margin:8px 0 0;padding:0;list-style:none}.share-build-row{cursor:pointer;align-items:flex-start;gap:10px;padding:6px 0;display:flex}.share-build-row input{flex:none;margin-top:2px}.share-build-label{flex-direction:column;gap:2px;min-width:0;display:flex}.share-build-detail{color:var(--text-dim);overflow-wrap:anywhere;font-size:11.5px;line-height:1.4}.share-build-refused{cursor:default;opacity:.7}.share-build-refused>span:first-child{color:var(--danger,#e06c75)}.share-build-input,.share-build-url{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--panel-border);resize:vertical;border-radius:8px;margin-top:8px;padding:8px 10px;font-family:inherit;font-size:16px;display:block}.share-build-url{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.share-build-query{align-items:flex-start;gap:6px;display:flex}.share-build-drop{min-width:var(--dock-btn);min-height:var(--dock-btn);border:1px solid var(--panel-border);color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border-radius:8px;flex:none;margin-top:8px}.share-build-drop:hover{border-color:var(--accent);color:var(--accent)}.share-build-add{margin-top:8px}.share-build-warning{background:var(--bg);border-left:3px solid var(--accent-dim);color:var(--text-dim);border-radius:0 8px 8px 0;margin:10px 0 0;padding:8px 10px;font-size:12px;line-height:1.5}.share-build-actions{justify-content:space-between;align-items:center;margin-top:12px}@media (pointer:coarse){.share-build-row,.share-build-add,.share-build-actions button{min-height:var(--dock-btn)}.share-build .layer-panel-close{min-width:var(--dock-btn);min-height:var(--dock-btn)}}.export-modal{width:min(480px,100% - 32px)}.export-row{flex-wrap:wrap;gap:6px;margin:4px 0;display:flex}.export-hint{color:var(--text-dim);margin:4px 0 0;font-size:11px}.export-status{background:var(--bg);color:var(--accent);border-radius:6px;margin-top:10px;padding:6px 10px;font-size:12px}.toolbar{flex-direction:column;gap:2px;padding:4px;display:flex;top:60px;left:12px}.left-dock{z-index:var(--z-chrome);max-height:calc(100dvh - 12px - var(--rail-b));pointer-events:none;flex-direction:column;align-items:flex-start;gap:12px;display:flex;position:absolute;top:12px;left:12px}.left-dock>*{pointer-events:auto}:where(.left-dock) .presence-bar,:where(.left-dock) .toolbar{position:relative;top:auto;left:auto}:where(.left-dock) .toolbar{overscroll-behavior-y:contain;scrollbar-width:none;min-height:0;overflow-y:auto}:where(.left-dock) .toolbar::-webkit-scrollbar{display:none}.tool{width:52px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:7px;flex-direction:column;align-items:center;gap:1px;padding:5px 2px;font-size:10px;display:flex}.tool:hover{background:var(--panel-border);color:var(--text)}.tool.active{background:var(--accent-dim);color:var(--accent)}.tool-icon{font-size:15px;line-height:1}.layer-panel{width:290px;max-height:calc(100% - 120px);padding:10px;font-size:13px;top:12px;right:12px;overflow-y:auto}.layer-panel-title{justify-content:space-between;align-items:center;margin-bottom:8px;font-weight:600;display:flex}.layer-panel-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:16px;line-height:1}.layer-panel-close:hover{color:var(--text)}.layer-panel-toggle{z-index:10;background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:5px;padding:8px 12px;font-size:15px;display:flex;position:absolute;top:12px;right:12px;box-shadow:0 4px 16px #00000059}.layer-count{background:var(--accent-dim);color:var(--accent);border-radius:8px;padding:1px 6px;font-size:11px;font-weight:700}.layer-panel-modal{z-index:35;width:min(420px,100vw - 32px);max-height:calc(100dvh - 80px);margin:auto;position:relative;top:auto;left:auto;right:auto}.layer-url-row{gap:6px;margin-bottom:8px;display:flex}.layer-url-row input{background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;flex:1;padding:5px 8px;font-size:12px}.layer-url-row button{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent);cursor:pointer;border-radius:6px;padding:0 12px}.layer-url-row button:disabled{opacity:.4;cursor:default}.sparql-toggle{color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;border:none;padding:2px 0 6px;font-size:12px}.sparql-toggle:hover{color:var(--text)}.sparql-form{flex-direction:column;gap:5px;padding-bottom:8px;display:flex}.sparql-form input,.sparql-form textarea{background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:5px 8px;font-size:11px}.sparql-form textarea{resize:vertical;font-family:ui-monospace,monospace}.layer-status{color:var(--text-dim);padding:4px 0;font-size:12px}.layer-status.error{color:var(--danger);cursor:pointer}.layer-empty{color:var(--text-dim);padding:6px 0;font-size:12px;line-height:1.5}.layer-list{margin:0;padding:0;list-style:none}.layer-list li{border-top:1px solid var(--panel-border);padding:5px 0 7px}.layer-row{align-items:center;gap:5px;display:flex}.layer-opacity-row{align-items:center;gap:8px;padding:3px 0 0 26px;display:flex}.layer-opacity-row input[type=range]{height:14px;accent-color:var(--accent);flex:1}.layer-opacity-value{color:var(--text-dim);text-align:right;width:30px;font-size:10px}.layer-clip{color:var(--accent);margin-right:4px}.layer-btn:disabled{opacity:.25;cursor:default}.layer-badge{background:var(--panel-border);color:var(--text);border-radius:4px;flex-shrink:0;padding:2px 5px;font-size:9px;font-weight:700}.layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.layer-annotations{border-top:1px solid var(--panel-border);align-items:center;gap:5px;padding:6px 0 7px;display:flex}.annotations-badge{background:var(--accent-dim);border-radius:4px;flex-shrink:0;padding:2px 5px;font-size:11px}.annotations-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.annotations-name em{color:var(--text-dim);font-size:11px}.annotations-toggle,.annotations-edit{cursor:pointer;color:var(--text-dim);background:0 0;border:none;padding:2px;font-size:12px}.annotations-toggle:hover,.annotations-edit:hover{color:var(--text)}.annotations-hidden .sticky-note{display:none}.annotation-list{border-left:1px solid var(--panel-border);max-height:190px;margin:0 0 4px 6px;padding:0 0 0 10px;list-style:none;overflow-y:auto}.annotation-row{gap:5px}.annotation-row.is-hidden .layer-name,.annotation-row.is-hidden .layer-badge{opacity:.45}.annotation-row .layer-name{cursor:default}.layer-badge.annotation{color:#10151a;font-weight:700}.layer-name em{color:var(--text-dim);font-size:11px}.layer-btn{cursor:pointer;color:var(--text-dim);background:0 0;border:none;padding:2px;font-size:12px}.layer-btn:hover{color:var(--text)}.footer-bar{z-index:20;height:30px;padding:0 12px calc(env(safe-area-inset-bottom,0px) / 2);background:color-mix(in srgb, var(--panel) 96%, transparent);border-top:1px solid var(--panel-border);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;font-size:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.footer-handle{color:var(--text-dim)}.footer-title{font-weight:600}.footer-status{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.footer-members{display:flex}.avatar.mini{border-width:1px;width:16px;height:16px;margin-left:-4px;font-size:9px}.temporal-panel{z-index:20;bottom:var(--rail-b);background:color-mix(in srgb, var(--panel) 96%, transparent);border-top:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);flex-direction:column;gap:10px;max-height:46%;padding:10px 14px;font-size:12px;display:flex;position:absolute;left:0;right:0;overflow-y:auto}.temporal-section{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.temporal-label{min-width:90px;color:var(--text-dim);padding-top:4px;font-weight:600}.temporal-chips{flex-wrap:wrap;flex:1;align-items:center;gap:6px;display:flex}.temporal-chip{background:var(--bg);border:1px solid var(--panel-border);border-radius:14px;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}.temporal-chip.active,.temporal-chip.followed{background:var(--accent-dim)}.temporal-chip-name{font-weight:600}.temporal-chip-members{display:flex}.temporal-chip-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:11px}.temporal-chip-btn:hover{color:var(--text)}.temporal-new{gap:4px;display:inline-flex}.temporal-new input{background:var(--bg);width:110px;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:3px 7px;font-size:12px}.temporal-peer{background:var(--bg);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:14px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;display:inline-flex}.temporal-peer.active{background:var(--accent-dim)}.temporal-empty{color:var(--text-dim);padding-top:4px;font-style:italic}.footer-help{border:1px solid var(--panel-border);background:var(--bg);width:20px;height:20px;color:var(--text-dim);cursor:pointer;border-radius:50%;font-size:12px;font-weight:700;line-height:1}.footer-help:hover{color:var(--accent);border-color:var(--accent)}.help-overlay{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10151aa6;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.help-modal{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;width:min(560px,100% - 32px);max-height:calc(100% - 64px);display:flex;box-shadow:0 12px 40px #00000080}.help-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.help-title{font-size:16px;font-weight:700}.help-body{padding:4px 16px 16px;font-size:13px;line-height:1.55;overflow-y:auto}.help-body h3{color:var(--accent);margin:14px 0 6px;font-size:13px}.help-body blockquote{border-left:3px solid var(--accent-dim);background:var(--bg);color:var(--text-dim);border-radius:0 8px 8px 0;margin:10px 0;padding:8px 12px;font-style:italic}.help-body blockquote cite{margin-top:6px;font-size:11px;font-style:normal;display:block}.help-body a{color:var(--accent)}.help-figure{text-align:center;margin:12px auto}.help-figure img{border:1px solid var(--panel-border);border-radius:8px;max-width:min(320px,100%)}.help-figure figcaption{color:var(--text-dim);margin-top:5px;font-size:11px}.help-body ul{margin:6px 0;padding-left:18px}.help-body li{margin:5px 0}.help-body code{background:var(--bg);border-radius:4px;padding:1px 4px;font-size:11px}.time-slider.following input,.time-slider.following .time-live{opacity:.55}.time-slider{bottom:var(--slider-b);align-items:center;gap:6px;width:min(620px,100% - 40px);padding:4px 8px;display:flex;left:50%;transform:translate(-50%)}.time-slider input[type=range]{accent-color:var(--accent);flex:1}.time-slider-track-wrap{flex:1;align-items:center;display:flex;position:relative}.time-slider-bubble{display:none}.time-label{color:var(--text-dim);white-space:nowrap;font-size:12px}.time-live{border:1px solid var(--panel-border);color:var(--text-dim);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:3px 8px;font-size:11px}.time-live.active{color:var(--accent);border-color:var(--accent)}.app .maplibregl-ctrl-bottom-right,.app .maplibregl-ctrl-bottom-left{bottom:var(--rail-b)}.app.drawing-active .maplibregl-canvas-container{cursor:crosshair!important}@media (width<=640px){.app.drawing-active .maplibregl-canvas-container{touch-action:none!important}}.dropzone-overlay{z-index:50;border:3px dashed var(--accent);pointer-events:none;background:#10151ab3;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dropzone-box{flex-direction:column;align-items:center;gap:6px;font-size:18px;display:flex}.dropzone-box span{color:var(--text-dim);font-size:13px}.dropzone-hint{font-style:italic}.dropzone-overlay.over-area{background:#10151a59;justify-content:center;align-items:flex-start;padding-top:72px}.dropzone-overlay.over-area .dropzone-box{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--accent);border-radius:10px;padding:10px 18px}.annotation-marker>*{transform:scale(var(--annotation-scale,1))}.annotation-marker>.sticky-note{transform-origin:0 0}.annotation-marker>.map-caption,.annotation-marker>.feature-label{transform-origin:50%}.sticky-note{background:color-mix(in srgb, var(--note-color) 18%, var(--panel));border:1px solid var(--note-color);border-radius:8px;width:180px;font-family:inherit;overflow:hidden;box-shadow:0 4px 12px #0006}.sticky-note-header{color:var(--note-color);cursor:grab;background:#00000040;justify-content:space-between;align-items:center;padding:3px 8px;font-size:10px;font-weight:600;display:flex}.sticky-note-remove{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px}.sticky-note-remove:hover{color:var(--danger)}.sticky-note-body{resize:vertical;width:100%;min-height:56px;color:var(--text);background:0 0;border:none;outline:none;padding:6px 8px;font-family:inherit;font-size:12px;display:block}.sequence-toggle.playing{border-color:var(--accent);color:var(--accent)}.agent-fab{z-index:25;right:12px;bottom:calc(var(--footer-height) + 72px);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:linear-gradient(135deg,#a78bfa,#8b5cf6);border:2px solid #10151a99;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;line-height:1;transition:transform .12s,box-shadow .15s;display:none;position:absolute;box-shadow:0 4px 16px #00000073}.agent-fab:active{transform:scale(.92)}.agent-fab.open{background:linear-gradient(135deg,#f87171,#ef4444)}.agent-fab-unread{color:#fff;text-align:center;background:#f87171;border:2px solid #10151ab3;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-2px;right:-2px}.converse-choice{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;flex-direction:column;gap:10px;width:min(360px,100vw - 40px);padding:16px;display:flex;box-shadow:0 16px 50px #0000008c}.converse-choice-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 2px;font-size:13px;font-weight:600}.converse-option{border:1px solid var(--panel-border);background:var(--surface-2,#ffffff0a);min-height:64px;color:var(--text);text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:12px 14px;display:flex}.converse-option:hover,.converse-option:focus-visible{border-color:var(--accent)}.converse-option-icon{font-size:26px;line-height:1}.converse-option-text{flex-direction:column;gap:3px;min-width:0;display:flex}.converse-option-text strong{font-size:14px;font-weight:600}.converse-option-text small{color:var(--muted);font-size:12px}.converse-option-unread{color:#fff;text-align:center;background:#f87171;border-radius:8px;min-width:16px;margin-left:6px;padding:0 5px;font-size:11px;line-height:16px;display:inline-block}.agent-overlay{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#10151a99;animation:.15s ease-out fade-in;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.agent-modal-wrap{z-index:41;pointer-events:none;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.agent-modal-wrap>*{pointer-events:auto}.agent-modal{background:var(--panel);border:1px solid var(--panel-border);border-radius:16px;flex-direction:column;width:min(460px,100vw - 40px);max-height:min(540px,100dvh - 80px);font-size:13px;animation:.2s ease-out fab-in;display:flex;overflow:hidden;box-shadow:0 16px 50px #0000008c}.agent-header{border-bottom:1px solid var(--panel-border);background:#ffffff05;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.agent-title{font-size:14px;font-weight:700}.agent-status{color:var(--text-dim);font-size:11px}.agent-chat{flex-direction:column;flex:1;gap:10px;padding:12px 14px;display:flex;overflow-y:auto}.agent-message{align-items:flex-start;gap:8px;animation:.2s ease-out fab-in;display:flex}.agent-message.user{flex-direction:row-reverse}.agent-avatar{background:var(--bg);border:1px solid var(--panel-border);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:14px;display:flex}.agent-bubble{background:var(--bg);border:1px solid var(--panel-border);border-radius:12px;max-width:calc(100% - 40px);padding:8px 12px;line-height:1.45}.agent-message.user .agent-bubble{color:#e6edf3;background:#4ade801a;border-color:#4ade8040}.agent-bubble p{margin:0}.agent-thinking{align-items:center;gap:4px;padding:10px 14px;display:flex}.agent-dot{background:var(--text-dim);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite agent-bounce}.agent-dot:nth-child(2){animation-delay:.15s}.agent-dot:nth-child(3){animation-delay:.3s}@keyframes agent-bounce{0%,80%,to{opacity:.4;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}.agent-action-btn{border:1px solid var(--accent-dim);color:var(--accent);cursor:pointer;background:#4ade801a;border-radius:6px;align-items:center;gap:4px;margin-top:8px;padding:5px 10px;font-size:12px;transition:background .12s;display:inline-flex}.agent-action-btn:hover{background:#4ade802e}.agent-input-row{border-top:1px solid var(--panel-border);flex-shrink:0;gap:6px;padding:10px 14px;display:flex}.agent-input{background:var(--bg);border:1px solid var(--panel-border);color:var(--text);font:inherit;border-radius:8px;outline:none;flex:1;padding:7px 10px;font-size:13px}.agent-input:focus{border-color:var(--accent-dim)}.agent-send{background:var(--accent);color:#10151a;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:opacity .12s;display:flex}.agent-send:disabled{opacity:.4;cursor:not-allowed}.agent-hints{flex-wrap:wrap;flex-shrink:0;gap:6px;padding:0 14px 10px;display:flex}.agent-chip{border:1px solid var(--panel-border);color:var(--text-dim);cursor:pointer;background:#ffffff0a;border-radius:14px;padding:3px 10px;font-size:11px;transition:background .12s,color .12s}.agent-chip:hover{color:var(--text);background:#ffffff14}.agent-header-actions{align-items:center;gap:8px;display:flex}.agent-llm-badge{border:1px solid var(--panel-border);color:var(--text-dim);cursor:default;background:#ffffff0a;border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600;transition:background .12s,color .12s,border-color .12s}.agent-llm-badge.active{border-color:var(--accent-dim);color:var(--accent);background:#4ade801a}.agent-settings-btn{cursor:pointer;opacity:.7;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:14px;transition:opacity .12s,background .12s}.agent-settings-btn:hover{opacity:1;background:#ffffff0f}.agent-settings-grid{flex-direction:column;gap:12px;margin-top:12px;display:flex}.agent-setting-row{flex-direction:column;gap:4px;display:flex}.agent-setting-row input[type=text],.agent-setting-row input[type=url],.agent-setting-row input[type=password],.agent-setting-row input[type=number]{background:var(--bg);border:1px solid var(--panel-border);color:var(--text);font:inherit;border-radius:8px;outline:none;width:100%;padding:7px 10px;font-size:13px}.agent-setting-row input:focus{border-color:var(--accent-dim)}.agent-setting-label{color:var(--text-dim);font-size:12px;font-weight:600}.agent-setting-hint{color:var(--text-dim);font-size:11px;line-height:1.35}.agent-setting-toggle{flex-flow:wrap;align-items:center;gap:8px;padding:6px 0}.agent-setting-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.agent-setting-toggle .agent-setting-label{color:var(--text);flex:1}.agent-settings-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.sequence-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sequence-title{white-space:nowrap;font-weight:600}.sequence-controls{flex-wrap:wrap;flex:1;align-items:center;gap:5px;min-width:0;display:flex}.seq-btn{background:var(--bg);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:6px;min-height:26px;padding:3px 9px;font-size:12px}.seq-btn.active{border-color:var(--accent);color:var(--accent)}.seq-btn:disabled{opacity:.35;cursor:default}.seq-step{color:var(--text-dim);align-items:center;gap:4px;font-size:11px;display:flex}.seq-step input{background:var(--bg);width:52px;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:3px 5px;font-size:12px}.sequence-empty{color:var(--text-dim);padding:8px 2px 4px;line-height:1.5}.sequence-track{gap:6px;padding:8px 2px 4px;display:flex;overflow-x:auto}.sequence-frame{background:var(--bg);border:1px solid var(--panel-border);cursor:pointer;border-radius:8px;flex-direction:column;flex-shrink:0;gap:3px;min-width:96px;max-width:140px;padding:5px 7px;display:flex}.sequence-frame.active{border-color:var(--accent);background:var(--accent-dim)}.sequence-frame-index{color:var(--text-dim);font-size:9px;font-weight:700}.sequence-frame.active .sequence-frame-index{color:var(--accent)}.sequence-frame-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sequence-frame-actions{gap:3px;display:flex}.sequence-frame-actions button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:1px 4px;font-size:10px}.sequence-frame-actions button:hover{color:var(--text)}.sequence-frame-actions button:disabled{opacity:.25;cursor:default}.sequence-add select{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--panel-border);border-radius:6px;margin-top:4px;padding:4px 6px;font-size:12px}.jobs-toggle.running{color:#fbbf24;border-color:#fbbf24}.jobs-count{color:var(--text-dim);flex:1;font-size:11px}.jobs-endpoints{flex-wrap:wrap;align-items:center;gap:5px;padding:6px 0;display:flex}.jobs-endpoint{background:var(--bg);border:1px solid var(--panel-border);border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;display:inline-flex}.jobs-endpoint button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:9px}.jobs-add-endpoint{flex-direction:column;gap:4px;padding:4px 0 8px;display:flex}.jobs-add-endpoint input,.jobs-add-endpoint select,.jobs-new select{background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:4px 7px;font-size:12px}.jobs-new{gap:6px;padding:4px 0;display:flex}.jobs-new select{flex:1}.jobs-inputs{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--panel-border);resize:vertical;border-radius:6px;padding:6px;font-family:ui-monospace,monospace;font-size:10px}.jobs-list{margin:4px 0 0;padding:0;list-style:none}.jobs-list li{border-top:1px solid var(--panel-border)}.jobs-row{cursor:pointer;align-items:center;gap:6px;padding:6px 0;display:flex}.jobs-name{font-weight:600}.jobs-meta{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.jobs-detail{background:var(--bg);white-space:pre-wrap;word-break:break-all;border-radius:6px;max-height:160px;margin:0 0 8px;padding:6px;font-size:10px;overflow-y:auto}.sql-sources{flex-wrap:wrap;align-items:center;gap:5px;padding:6px 0;display:flex}.sql-sources select{background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;padding:3px 7px;font-size:11px}.sql-editor{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--panel-border);resize:vertical;border-radius:6px;margin-bottom:6px;padding:6px 8px;font-family:ui-monospace,monospace;font-size:11px}.sql-status{color:var(--accent);margin-top:6px;font-size:11px}.sql-result{margin-top:8px;overflow-x:auto}.sql-result table{border-collapse:collapse;width:100%;font-size:10px}.sql-result th,.sql-result td{border:1px solid var(--panel-border);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:180px;padding:2px 6px;overflow:hidden}.sql-result th{background:var(--bg);color:var(--accent)}.sql-more{color:var(--text-dim);padding:4px 0;font-size:10px}@media (width<=640px){.toolbar{top:auto;bottom:calc(env(safe-area-inset-bottom,0px) + 40px);flex-direction:row;max-width:calc(100% - 16px);left:50%;overflow-x:auto;transform:translate(-50%)}.tool{width:46px;min-width:46px;min-height:44px;padding:6px 2px}.time-slider{bottom:calc(env(safe-area-inset-bottom,0px) + 106px);gap:8px;width:calc(100% - 20px);padding:6px 10px}.time-label{font-size:10px}.left-dock{display:contents}.left-dock .presence-bar{position:absolute}.presence-bar{top:calc(env(safe-area-inset-top,0px) + 8px);left:max(8px, env(safe-area-inset-left,0px));flex-direction:column;align-items:flex-start;gap:4px;max-width:calc(100% - 88px);padding:5px 8px}.presence-room{white-space:normal;max-width:none;overflow:visible}.presence-share{min-height:32px}.layer-panel{top:calc(env(safe-area-inset-top,0px) + 8px);right:max(8px, env(safe-area-inset-right,0px));width:min(300px,100vw - 16px);max-height:calc(100dvh - 180px)}.layer-panel-toggle{top:calc(env(safe-area-inset-top,0px) + 8px);right:max(8px, env(safe-area-inset-right,0px));min-height:40px}.layer-btn{min-width:36px;min-height:36px;font-size:14px}.sticky-note{width:150px}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{bottom:calc(env(safe-area-inset-bottom,0px) + 154px)}.sequence-toggle,.sequence-panel{bottom:calc(env(safe-area-inset-bottom,0px) + 154px);left:8px}.sequence-panel{width:calc(100% - 16px)}.jobs-toggle{bottom:calc(env(safe-area-inset-bottom,0px) + 154px);left:66px}.jobs-panel{bottom:calc(env(safe-area-inset-bottom,0px) + 154px);width:calc(100% - 16px);left:8px}.sql-toggle{bottom:calc(env(safe-area-inset-bottom,0px) + 154px);left:124px}.sql-panel{bottom:calc(env(safe-area-inset-bottom,0px) + 154px);width:calc(100% - 16px);left:8px}.temporal-label{min-width:100%;padding-top:0}}.peer-cursor{pointer-events:none;filter:drop-shadow(0 1px 2px #00000080);align-items:flex-start;display:flex}.peer-cursor span{background:var(--peer-color);color:#10151a;white-space:nowrap;border-radius:8px;margin-top:12px;margin-left:-2px;padding:1px 6px;font-size:10px;font-weight:600}.peer-cursor-agent span{outline-offset:-1px;outline:1px dashed #10151a8c}.presence-bar .avatar{cursor:pointer;font:inherit;border:none;padding:0}.presence-bar .avatar.following{box-shadow:0 0 0 2px #10151a,0 0 0 4px #4ade80}.follow-chip{color:#4ade80;cursor:pointer;white-space:nowrap;background:#4ade801f;border:1px solid #4ade8080;border-radius:999px;padding:3px 10px;font-size:11px}.people-list{flex-direction:column;gap:6px;display:flex}.people-row{border:1px solid var(--panel-border);background:#ffffff08;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;display:flex}.people-info{cursor:pointer;flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.people-info:hover .people-name{color:var(--accent)}.people-name{font-size:13px;font-weight:600}.people-name em{color:var(--text-dim);font-size:11px;font-weight:400}.people-meta{color:var(--text-dim);font-size:11px}.measure-chip{left:12px;bottom:calc(var(--rail-b) + 48px);z-index:30;color:#e5ecf2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#10151aeb;border:1px solid #ffffff1f;border-radius:10px;min-width:220px;padding:8px 10px;position:absolute;box-shadow:0 4px 16px #0006}.measure-chip-header{align-items:center;gap:6px;margin-bottom:6px;display:flex}.measure-chip-label{color:inherit;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:6px;flex:1;padding:4px 8px;font-size:12px}.measure-chip-close{color:#9fb0bf;cursor:pointer;background:0 0;border:none;font-size:16px;line-height:1}.measure-chip-delete{color:#9fb0bf;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1}.measure-chip-delete:hover{color:var(--danger,#f87171)}.context-menu{z-index:30;background:color-mix(in srgb, var(--panel) 97%, transparent);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;min-width:190px;padding:5px;position:absolute;box-shadow:0 8px 28px #00000080}.context-menu-title{border-bottom:1px solid var(--panel-border);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:240px;margin-bottom:3px;padding:4px 9px 6px;font-size:11px;font-weight:600;overflow:hidden}.context-menu-item{width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;padding:6px 9px;font-size:12px;display:flex}.context-menu-item:hover{background:#ffffff12}.context-menu-item.danger{color:var(--danger,#f87171)}.context-menu-item.danger:hover{background:color-mix(in srgb, var(--danger,#f87171) 16%, transparent)}.context-menu-icon{text-align:center;width:15px}.context-menu-check{color:var(--accent);margin-left:auto;padding-left:10px}.map-caption{display:inline-block;position:relative}.map-caption-text{font:inherit;text-align:center;color:var(--text);resize:none;text-shadow:0 1px 2px #000000e6,0 0 6px #000000b3;background:0 0;border:1px solid #0000;border-radius:5px;padding:2px 4px;font-size:14px;font-weight:600;line-height:1.25;display:block;overflow:hidden}.map-caption:hover .map-caption-text,.map-caption-text:focus{background:color-mix(in srgb, var(--panel) 88%, transparent);border-color:var(--panel-border);text-shadow:none;outline:none}.map-caption-bar{opacity:0;transition:opacity .12s;position:absolute;top:-9px;right:-9px}.map-caption:hover .map-caption-bar{opacity:1}.map-caption-remove{width:18px;height:18px;color:var(--text-dim);background:var(--panel);border:1px solid var(--panel-border);cursor:pointer;border-radius:50%;padding:0;font-size:12px;line-height:1}.map-caption-remove:hover{color:var(--danger,#f87171)}.feature-label{white-space:nowrap;color:var(--label-color,#4ade80);text-shadow:0 1px 2px #000000e6,0 0 6px #000000bf;padding:1px 6px;font-size:12px;font-weight:600}.annotations-hidden .map-caption,.annotations-hidden .feature-label{display:none}.image-handle{color:#10151a;background:var(--accent);cursor:grab;border:2px solid #10151a;border-radius:3px;justify-content:center;align-items:center;width:16px;height:16px;font-size:11px;line-height:1;display:flex;box-shadow:0 1px 6px #0009}.image-handle:active{cursor:grabbing}.image-handle-move{border-radius:50%;width:26px;height:26px;font-size:14px}.image-placer{z-index:20;left:50%;bottom:var(--rail-b);color:var(--text);background:color-mix(in srgb, var(--panel) 95%, transparent);border:1px solid var(--accent);border-radius:999px;align-items:center;gap:10px;padding:7px 10px 7px 14px;font-size:12px;display:flex;position:absolute;transform:translate(-50%);box-shadow:0 4px 18px #00000073}.image-placer-name{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.image-placer-done{font:inherit;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent);cursor:pointer;border-radius:999px;padding:3px 12px;font-size:12px}.layer-btn.active{color:var(--accent)}.walk-control{z-index:10;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:448px;right:12px}.walk-toggle{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 12px;font-size:14px;box-shadow:0 4px 16px #00000059}.walk-control.active .walk-toggle{border-color:var(--accent);color:var(--accent)}.walk-keys{background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid var(--panel-border);border-radius:10px;grid-template-columns:auto auto;gap:3px 8px;padding:8px 10px;font-size:11px;display:grid;box-shadow:0 4px 16px #0006}.walk-key{display:contents}.walk-key kbd{color:var(--accent);text-align:right;white-space:nowrap;font-family:ui-monospace,monospace;font-size:10px}.walk-key span{color:var(--text-dim);white-space:nowrap}.range-dialog{z-index:31;background:color-mix(in srgb, var(--panel) 97%, transparent);border:1px solid var(--panel-border);border-radius:10px;width:230px;padding:10px;position:absolute;box-shadow:0 8px 28px #00000080}.range-dialog-title{color:var(--text-dim);margin-bottom:8px;font-size:11px;font-weight:600}.range-field{color:var(--text-dim);align-items:center;gap:8px;margin-bottom:6px;font-size:11px;display:flex}.range-field span{width:32px}.range-field input{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--panel-border);border-radius:6px;flex:1;padding:4px 6px;font-size:11px}.range-hint{color:var(--text-dim);margin:6px 0 8px;font-size:10px;line-height:1.4}.range-actions{justify-content:flex-end;gap:6px;display:flex}.range-actions button{font:inherit;cursor:pointer;border-radius:6px;padding:4px 10px;font-size:11px}.range-cancel{color:var(--text-dim);border:1px solid var(--panel-border);background:0 0}.range-apply{color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent)}.context-menu-toast{z-index:30;left:50%;bottom:calc(var(--rail-b) + 8px);color:var(--text);background:color-mix(in srgb, var(--panel) 96%, transparent);border:1px solid var(--panel-border);border-radius:999px;padding:7px 14px;font-size:12px;position:absolute;transform:translate(-50%);box-shadow:0 4px 16px #0006}.measure-chip-body{flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:12px;display:flex}.measure-metric{font-variant-numeric:tabular-nums}.measure-author{color:#9fb0bf;margin-left:auto;font-size:11px}.library-import{align-items:center;gap:8px;margin:6px 0 8px;display:flex}.library-import-btn{color:#4ade80;cursor:pointer;background:#4ade801f;border:1px solid #4ade8080;border-radius:8px;padding:5px 10px;font-size:12px}.library-hint{color:var(--muted,#9fb0bf);font-size:11px}.library-empty{color:var(--muted,#9fb0bf);padding:10px 4px}.library-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.library-item{border:1px solid var(--panel-border);background:#ffffff08;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;display:flex}.library-item-main{flex-direction:column;flex:1;min-width:0;display:flex}.library-item-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.library-item-meta{color:var(--muted,#9fb0bf);font-size:11px}.library-action{border:1px solid var(--panel-border);color:var(--text);cursor:pointer;background:#ffffff0f;border-radius:6px;padding:4px 7px;font-size:11px}.library-action:disabled{opacity:.4;cursor:default}.library-remove:hover{border-color:#f87171}@media (width<=720px){.library-toggle{bottom:178px;left:12px}}.history-filters{flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 8px;display:flex}.history-filters select{border:1px solid var(--panel-border);color:var(--text);background:#ffffff0f;border-radius:6px;max-width:150px;padding:4px 6px;font-size:11.5px}.history-inview{color:var(--muted,#9fb0bf);cursor:pointer;align-items:center;gap:4px;font-size:11.5px;display:flex}.history-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.history-item{border-radius:6px;align-items:baseline;gap:7px;padding:4px 6px;display:flex}.history-item.has-place{cursor:pointer}.history-item.has-place:hover{background:#ffffff0d}.history-icon{flex-shrink:0}.history-user{white-space:nowrap;font-weight:600}.history-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);flex:1;overflow:hidden}.history-time{color:var(--muted,#9fb0bf);flex-shrink:0;font-size:11px}.toolbar-sep{background:var(--panel-border);align-self:stretch;width:1px;margin:2px}.tool:disabled{opacity:.35;cursor:default}.threed-control{z-index:10;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:300px;right:12px}.threed-toggle{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 12px;font-size:14px;box-shadow:0 4px 16px #00000059}.threed-control.active .threed-toggle{border-color:var(--accent);color:var(--accent)}.threed-exaggeration{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--panel-border);color:var(--muted,#9fb0bf);border-radius:10px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;display:flex}.threed-exaggeration input{width:90px}.basemap-control{z-index:10;flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;bottom:392px;right:12px}.basemap-toggle{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 12px;font-size:14px;box-shadow:0 4px 16px #00000059}.basemap-options{background:color-mix(in srgb, var(--panel) 96%, transparent);border:1px solid var(--panel-border);border-radius:10px;flex-direction:column;align-items:stretch;gap:2px;padding:6px;display:flex;box-shadow:0 4px 16px #00000073}.agent-toggle{z-index:10;background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--panel-border);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 12px;font-size:14px;position:absolute;bottom:40px;left:12px;box-shadow:0 4px 16px #00000059}.basemap-option{font:inherit;text-align:left;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.basemap-option:hover{background:#ffffff0f}.basemap-option.active{border-color:var(--accent);color:var(--accent)}.basemap-icon{text-align:center;width:16px}.basemap-note{color:var(--text-dim,#9fb0bf);padding:4px 10px 1px;font-size:10px}.welcome-page{background:var(--bg);height:100dvh;max-height:100dvh;color:var(--text);-webkit-overflow-scrolling:touch;flex-direction:column;display:flex;overflow-y:auto}.welcome-header{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.welcome-brand{align-items:center;gap:10px;display:flex}.welcome-logo{border-radius:12px;flex:none;width:44px;height:44px;display:block}.welcome-brand h1{letter-spacing:-.3px;margin:0;font-size:20px;font-weight:700}.install-banner{background:var(--accent-dim);border:1px solid var(--accent);border-radius:14px;align-items:center;gap:14px;padding:16px 18px;animation:.4s ease-out banner-in;display:flex}@keyframes banner-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.install-banner-icon{flex-shrink:0;font-size:32px;line-height:1}.install-banner-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.install-banner-text strong{color:var(--accent);font-size:15px;font-weight:700}.install-banner-text span{color:var(--text-dim);font-size:13px}.install-banner .welcome-btn{flex-shrink:0;padding:9px 16px;font-size:14px}@media (width<=480px){.install-banner{text-align:center;flex-direction:column;gap:10px;padding:18px 16px}.install-banner .welcome-btn{width:100%}}.welcome-main{flex-direction:column;flex:1;gap:32px;width:100%;max-width:720px;margin:0 auto;padding:28px 20px 40px;display:flex}.welcome-hero{flex-direction:column;gap:14px;display:flex}.welcome-hero h2{letter-spacing:-.5px;margin:0;font-size:28px;font-weight:800;line-height:1.2}.welcome-hero p{color:var(--text-dim);max-width:560px;margin:0;font-size:15px;line-height:1.55}.welcome-cta-row{flex-wrap:wrap;gap:10px;padding-top:6px;display:flex}.welcome-btn{font:inherit;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:11px 18px;font-size:14px;font-weight:600;text-decoration:none;transition:transform 80ms,box-shadow .15s;display:inline-flex}.welcome-btn:active{transform:scale(.98)}.welcome-btn-primary{color:#10151a;background:var(--accent);box-shadow:0 2px 10px #4ade8040}.welcome-btn-primary:hover{background:#5ee78f;box-shadow:0 4px 14px #4ade8059}.welcome-btn-secondary{color:var(--text);border:1px solid var(--panel-border);background:#ffffff0d}.welcome-btn-secondary:hover{border-color:var(--accent);color:var(--accent)}.welcome-section h3{text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);margin:0 0 12px;font-size:13px;font-weight:700}.welcome-empty{color:var(--text-dim);margin:0;font-size:14px}.welcome-canvas-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.welcome-canvas-card{border:1px solid var(--panel-border);background:#ffffff08;border-radius:10px;align-items:center;gap:8px;padding:4px;transition:border-color .15s,background .15s;display:flex}.welcome-canvas-card:hover{border-color:var(--accent);background:#ffffff0d}.welcome-canvas-enter{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;padding:8px 10px;display:flex}.welcome-canvas-name{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:14px;font-weight:600;overflow:hidden}.welcome-canvas-meta{color:var(--text-dim);font-size:12px}.welcome-canvas-delete{width:32px;height:32px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;display:flex}.welcome-canvas-delete:hover{color:var(--danger);background:#f871711a}.welcome-join-row{gap:8px;display:flex}.welcome-join-row input{min-width:0;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--panel-border);border-radius:8px;outline:none;flex:1;padding:10px 12px;font-size:14px}.welcome-join-row input:focus{border-color:var(--accent)}.welcome-footer{padding:18px 20px calc(18px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--panel-border);color:var(--text-dim);flex-direction:column;gap:10px;font-size:13px;display:flex}.welcome-footer a{color:var(--text-dim);text-decoration:none}.welcome-footer a:hover{color:var(--accent)}.welcome-loading{background:var(--bg);min-height:100dvh;color:var(--text);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.welcome-loading-logo{width:128px;height:128px;animation:1.6s ease-in-out infinite welcome-pulse;display:block}.welcome-loading p{color:var(--text-dim);margin:0;font-size:14px}@keyframes welcome-pulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.waiting-hero{gap:18px}.waiting-form{border:1px solid var(--panel-border);background:#ffffff05;border-radius:12px;flex-direction:column;gap:8px;padding:16px;display:flex}.waiting-form label{color:var(--text-dim);font-size:13px;font-weight:600}.waiting-success{text-align:center;background:var(--accent-dim);border:1px solid var(--accent);border-radius:12px;flex-direction:column;align-items:center;gap:10px;padding:20px;display:flex}.waiting-success span{font-size:32px}.waiting-success p{color:var(--text);margin:0;font-size:14px}.waiting-exists{color:var(--danger);margin:0;font-size:12px}.waiting-features{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;padding-top:8px;display:grid}.waiting-feature{border:1px solid var(--panel-border);background:#ffffff05;border-radius:10px;flex-direction:column;gap:4px;padding:14px;display:flex}.waiting-feature span{font-size:22px}.waiting-feature b{font-size:13px}.waiting-feature p{color:var(--text-dim);margin:0;font-size:12px}.draw-fab{z-index:25;left:12px;bottom:calc(var(--footer-height) + 8px);color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#3b82f6;border:2px solid #10151a99;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;line-height:1;transition:transform .12s,box-shadow .15s;display:none;position:absolute;box-shadow:0 4px 16px #00000073}.draw-fab:active{transform:scale(.92)}.draw-fab.active{background:var(--accent);color:#10151a}.draw-fab-backdrop{z-index:24;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#10151a8c;position:absolute;inset:0}.draw-fab-menu{z-index:26;left:12px;bottom:calc(var(--footer-height) + 72px);background:color-mix(in srgb, var(--panel) 96%, transparent);border:1px solid var(--panel-border);border-radius:16px;width:min(340px,100vw - 24px);padding:14px;animation:.18s ease-out fab-in;position:absolute;box-shadow:0 12px 40px #0000008c}.draw-fab-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.draw-fab-undo-row{display:contents}@media (width<=640px){.toolbar{display:none!important}.draw-fab{left:auto;right:12px;top:calc(env(safe-area-inset-top,0px) + 176px);display:flex;bottom:auto}.agent-fab{left:auto;right:12px;top:calc(env(safe-area-inset-top,0px) + 116px);display:flex;bottom:auto}.tools-fab{left:auto;right:12px;top:calc(env(safe-area-inset-top,0px) + 56px);display:flex;bottom:auto}.draw-fab-menu{left:auto;right:12px;top:calc(env(safe-area-inset-top,0px) + 236px);bottom:auto}.tools-fab-menu{left:auto;right:12px;top:calc(env(safe-area-inset-top,0px) + 116px);bottom:auto}.time-slider{left:50%;right:auto;bottom:calc(var(--footer-height) + 8px);flex-direction:row;gap:10px;width:min(100vw - 80px,620px);height:auto;max-height:none;padding:8px 14px;top:auto;transform:translate(-50%)}.time-slider input[type=range]{writing-mode:horizontal-tb;direction:ltr;flex:1;width:auto;min-height:auto}.time-slider-track-wrap{flex:1;align-items:center;display:flex;position:relative}.time-slider-bubble{z-index:5;color:var(--accent);border:1px solid var(--accent);white-space:nowrap;pointer-events:none;background:#10151ae6;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;animation:.2s ease-out bubble-pop;position:absolute;top:auto;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}@keyframes bubble-pop{0%{opacity:0;transform:translate(-50%)translateY(8px)scale(.85)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}.time-label{writing-mode:horizontal-tb;white-space:nowrap;color:var(--text-dim);font-size:11px;transform:none}.time-live{letter-spacing:0;white-space:nowrap;text-transform:none;flex-direction:row;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:700;display:flex}.time-live-dot{font-size:10px}.time-live-text{writing-mode:horizontal-tb;transform:none}:root{--footer-height:calc(36px + env(safe-area-inset-bottom,0px))}.footer-bar{width:100%;padding:0 12px calc(env(safe-area-inset-bottom,0px) + 4px);border:none;border-top:1px solid var(--panel-border);background:var(--panel);z-index:30;border-radius:0;gap:8px;height:auto;min-height:36px;bottom:0;left:0;right:0;transform:none}.temporal-panel{border-top:1px solid var(--panel-border);border-radius:12px;width:min(340px,100vw - 60px);max-height:calc(100dvh - 80px);inset:50px auto auto 8px}.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-bottom-left{bottom:calc(var(--footer-height) + 56px)}.maplibregl-ctrl-top-left{top:calc(env(safe-area-inset-top,0px) + 8px);left:max(8px, env(safe-area-inset-left,0px))}.maplibregl-ctrl-top-right{top:calc(env(safe-area-inset-top,0px) + 8px);right:calc(60px + env(safe-area-inset-right,0px))}}@media (width<=640px) and (orientation:landscape){.tools-fab-menu,.draw-fab-menu{left:auto;right:12px;top:calc(env(safe-area-inset-top,0px) + 116px);width:min(480px,100vw - 24px);padding:10px;bottom:auto}.tools-fab-grid,.draw-fab-grid{grid-template-columns:repeat(4,1fr);gap:6px}.tools-fab-item,.draw-fab-menu .tools-fab-item{gap:2px;padding:6px 2px;font-size:10px}.time-slider{width:min(100vw - 120px,620px)}}@media (width<=380px){.draw-fab,.agent-fab,.tools-fab{width:46px;height:46px;font-size:20px}.draw-fab{top:calc(env(safe-area-inset-top,0px) + 164px)}.agent-fab{top:calc(env(safe-area-inset-top,0px) + 110px)}.tools-fab{top:calc(env(safe-area-inset-top,0px) + 56px)}.draw-fab-menu{top:calc(env(safe-area-inset-top,0px) + 218px)}.tools-fab-menu{top:calc(env(safe-area-inset-top,0px) + 110px)}.time-slider{width:min(100vw - 24px,620px);padding:6px 10px}.time-slider-bubble{padding:6px 10px;font-size:11px}}.tools-fab{z-index:25;right:12px;bottom:calc(var(--footer-height) + 8px);background:var(--accent);color:#10151a;cursor:pointer;-webkit-tap-highlight-color:transparent;border:2px solid #10151a99;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;line-height:1;transition:transform .12s,box-shadow .15s;display:none;position:absolute;box-shadow:0 4px 16px #00000073}.tools-fab:active{transform:scale(.92)}.tools-fab.has-panel{background:var(--panel);color:var(--accent);border-color:var(--accent)}.tools-fab-backdrop{z-index:24;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#10151a8c;position:absolute;inset:0}.tools-fab-menu{z-index:26;right:12px;bottom:calc(var(--footer-height) + 72px);background:color-mix(in srgb, var(--panel) 96%, transparent);border:1px solid var(--panel-border);border-radius:16px;width:min(340px,100vw - 24px);padding:14px;animation:.18s ease-out fab-in;position:absolute;box-shadow:0 12px 40px #0000008c}.fab-menu-handle{background:var(--text-dim);opacity:.45;cursor:grab;touch-action:none;border-radius:3px;flex-shrink:0;width:36px;height:5px;margin:0 auto 10px}.fab-menu-handle:active{cursor:grabbing;opacity:.7}@keyframes fab-in{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.tools-fab-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tools-fab-item{border:1px solid var(--panel-border);color:var(--text);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#ffffff08;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;font-size:11px;transition:border-color .12s,background .12s;display:flex}.tools-fab-item:active{transform:scale(.96)}.tools-fab-item.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.tools-fab-item-icon{font-size:22px;line-height:1}.tools-fab-item-label{font-weight:600}@media (width<=640px){.tools-fab{display:flex}.tools-fab-menu{bottom:calc(var(--footer-height) + 72px)}.sequence-panel,.jobs-panel,.sql-panel,.library-panel,.history-panel,.basemap-control{width:min(380px,100vw - 24px)!important;max-height:min(520px,100dvh - 200px)!important;inset:56px 12px auto auto!important}.agent-fab{display:flex}.desktop-toggle,.threed-control,.walk-control{display:none!important}.basemap-control .basemap-options{max-height:calc(100dvh - 180px)!important;inset:56px 12px auto auto!important}.help-modal{width:calc(100vw - 24px);max-height:calc(100dvh - 40px)}}@media (width>=641px){.tools-fab,.tools-fab-backdrop,.tools-fab-menu,.agent-fab{display:none!important}}.location-main{flex-direction:column;gap:10px;padding:4px 2px 8px;display:flex}.location-status{background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.location-dot{background:var(--accent);border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite loc-pulse}@keyframes loc-pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.location-error{border:1px solid var(--danger);color:var(--danger);background:#f871711f;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.location-trace-controls{flex-wrap:wrap;gap:6px;display:flex}.location-traces h4{text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);margin:4px 0 8px;font-size:11px;font-weight:700}.location-hint{color:var(--text-dim);margin:2px 0 0;font-size:11px;line-height:1.4}.live-loc-marker{width:22px;height:22px;position:relative}.live-loc-dot{background:var(--accent);z-index:2;border:2px solid #10151a;border-radius:50%;position:absolute;inset:0}.live-loc-pulse{background:var(--accent);opacity:.25;z-index:1;border-radius:50%;animation:2s ease-out infinite marker-pulse;position:absolute;inset:-8px}@keyframes marker-pulse{0%{opacity:.4;transform:scale(.5)}to{opacity:0;transform:scale(1.6)}}.peer-loc-marker{pointer-events:none;flex-direction:column;align-items:center;display:flex}.peer-loc-dot{border:2px solid #10151a;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 4px #00000080}.peer-loc-label{white-space:nowrap;color:var(--text);background:#10151abf;border-radius:6px;margin-top:2px;padding:1px 6px;font-size:10px;font-weight:600}@media (pointer:coarse){.tool,.layer-panel-toggle,.sequence-toggle,.jobs-toggle,.sql-toggle,.library-toggle,.history-toggle,.threed-toggle,.basemap-toggle,.walk-toggle,.presence-share,.presence-export,.presence-build,.presence-account,.presence-settings,.presence-fold,.draw-hud-btn{min-width:var(--dock-btn);min-height:var(--dock-btn)}.layer-btn,.annotations-toggle,.annotations-edit,.sticky-note-remove,.measure-chip-close,.measure-chip-delete,.layer-panel-close,.sequence-frame-actions button,.context-menu-item{min-width:36px;min-height:36px}.footer-help{width:28px;height:28px;font-size:14px}.maplibregl-canvas-container,.layer-row,.annotation-row,.layer-annotations,.sticky-note,.map-caption{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.sticky-note-body,.map-caption-text,input,textarea{-webkit-user-select:text;user-select:text}.layer-row,.annotation-row{touch-action:pan-y}:where(.app)>:not(:where(.maplibregl-map)),:where(.help-overlay,.context-menu,.popup-menu),:where(.sticky-note,.map-caption){touch-action:manipulation}.time-slider,.footer-bar,.presence-bar,.toolbar,.draw-hud,.measure-chip,.tools-fab,.draw-fab,.agent-fab,.layer-panel-toggle,.sequence-toggle,.jobs-toggle,.sql-toggle,.library-toggle,.history-toggle,.threed-toggle,.basemap-toggle,.walk-toggle,.cmd-group-btn,.sticky-note-header,.image-handle,input[type=range],.maplibregl-ctrl-group{touch-action:none}}.draw-crosshair{pointer-events:none;width:30px;height:30px;z-index:var(--z-chrome);margin:-15px 0 0 -15px;position:absolute;top:50%;left:50%}.draw-crosshair:before,.draw-crosshair:after{content:"";background:#fff;position:absolute;box-shadow:0 0 0 1px #000000a6}.draw-crosshair:before{width:1px;height:100%;top:0;left:50%}.draw-crosshair:after{width:100%;height:1px;top:50%;left:0}.draw-crosshair-dot{background:var(--accent);border-radius:50%;position:absolute;inset:11px;box-shadow:0 0 0 1px #000000a6}.draw-hud{z-index:var(--z-chip);left:8px;right:8px;bottom:calc(var(--dock-time,152px) + 46px + var(--dock-gap));flex-wrap:wrap;justify-content:center;gap:6px;display:flex;position:absolute}.draw-hud-btn{min-height:var(--dock-btn);border:1px solid var(--panel-border);background:color-mix(in srgb, var(--panel) 94%, transparent);color:var(--text);font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;padding:0 14px;font-size:13px;box-shadow:0 4px 16px #00000059}.draw-hud-btn.primary{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}.draw-hud-btn:disabled{opacity:.35;cursor:default}.draw-hud-count{color:var(--text-dim);background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid var(--panel-border);border-radius:999px;align-self:center;padding:4px 10px;font-size:11px}.layer-rename{background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--accent);font:inherit;border-radius:6px;flex:1;padding:4px 8px;font-size:13px}.account-panel{z-index:var(--z-sheet);background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;width:min(340px,100% - 24px);max-height:calc(100% - 120px);padding:12px;font-size:13px;position:absolute;top:12px;left:12px;overflow-y:auto;box-shadow:0 4px 16px #00000059}.account-field{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.account-field span{color:var(--text-dim);font-size:11px}.account-field input{background:var(--bg);color:var(--text);border:1px solid var(--panel-border);font:inherit;border-radius:6px;padding:8px;font-size:14px}.account-hint{color:var(--text-dim);margin:6px 0;font-size:11px;line-height:1.5}.account-heading{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);border-top:1px solid var(--panel-border);margin:14px 0 8px;padding-top:10px;font-size:12px}.account-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.account-stat{border:1px solid var(--panel-border);background:#ffffff0a;border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.account-stat-value{color:var(--accent);font-size:19px;font-weight:700;line-height:1.1}.account-stat-label{color:var(--text-dim);font-size:10px}.account-days{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.account-days li{align-items:center;gap:8px;font-size:11px;display:flex}.account-day-date{width:38px;color:var(--text-dim);font-variant-numeric:tabular-nums}.account-day-bar{background:#ffffff0f;border-radius:999px;flex:1;height:8px;overflow:hidden}.account-day-bar span{background:var(--accent);border-radius:999px;height:100%;display:block}.account-day-value{text-align:right;width:68px;color:var(--text-dim);font-variant-numeric:tabular-nums}.account-links{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.account-link{border:1px solid var(--panel-border);min-height:38px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;align-items:center;padding:0 12px;font-size:12px;text-decoration:none;display:inline-flex}.account-link:hover{border-color:var(--accent);color:var(--accent)}.account-link.primary{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.account-link:disabled{opacity:.4;cursor:default}.account-message{background:var(--bg);width:100%;color:var(--text);border:1px solid var(--panel-border);font:inherit;resize:vertical;border-radius:6px;margin-bottom:8px;padding:8px;font-size:13px}@media (width<=640px),(height<=480px) and (pointer:coarse){.account-panel{width:100%;max-height:min(80dvh,100dvh - 60px);padding:14px 12px calc(var(--safe-b) + 14px);border-radius:14px 14px 0 0;inset:auto 0 0}.account-panel:before{content:"";background:var(--panel-border);border-radius:999px;width:38px;height:4px;margin:-6px auto 10px;display:block}}@media (pointer:coarse){.app .maplibregl-ctrl button{width:36px;height:36px}.maplibregl-ctrl-group{border-radius:8px}.presence-bar .avatar{width:34px;height:34px;font-size:14px}.avatar.mini{width:20px;height:20px;font-size:10px}.time-live,.time-label{min-height:var(--dock-btn)}.time-live{padding:0 10px}:root,.app{--footer-height:calc(48px + env(safe-area-inset-bottom,0px));--footer-h:48px;--rail-b:calc(var(--footer-h) + var(--safe-b) + var(--dock-gap));--slider-h:62px}.footer-bar{height:calc(48px + env(safe-area-inset-bottom,0px))}.footer-help{width:var(--dock-btn);height:var(--dock-btn);font-size:16px}input:not([type=range]):not([type=checkbox]):not([type=color]),textarea,select{font-size:16px}.tools-fab-item,.presence-room-btn,.presence-avatars-btn,.agent-send,.agent-settings-btn,.agent-close,.agent-chip,.fab-menu-handle{min-height:var(--dock-btn)}.presence-avatars-btn,.agent-send,.agent-settings-btn,.agent-close{min-width:var(--dock-btn)}.layer-panel-toggle,.location-toggle,.agent-toggle{min-width:var(--dock-btn);min-height:var(--dock-btn)}.seq-btn,.sparql-toggle,.library-action,.history-filters select{min-height:40px}.footer-handle{justify-content:center;align-items:center;min-width:40px;min-height:32px;display:inline-flex}.temporal-chip-btn,.annotations-toggle{min-width:32px;min-height:32px}}@media (width<=640px) and (pointer:coarse){.app{--slider-h:62px}.app .maplibregl-ctrl-bottom-right,.app .maplibregl-ctrl-bottom-left{bottom:calc(var(--footer-height) + 8px + var(--slider-h) + var(--dock-gap))}:is(.app:has(.time-slider.time-collapsed) .maplibregl-ctrl-bottom-right,.app:has(.time-slider.time-collapsed) .maplibregl-ctrl-bottom-left){bottom:calc(var(--footer-height) + var(--dock-gap))}.app .maplibregl-ctrl-bottom-right .maplibregl-ctrl,.app .maplibregl-ctrl-top-right .maplibregl-ctrl{margin-right:6px}}@media (height<=480px) and (pointer:coarse){.walk-control,.basemap-control,.threed-control{top:calc(env(safe-area-inset-top,0px) + 64px);bottom:auto;right:calc(var(--ctrl-channel,52px) + 12px);flex-direction:row;align-items:flex-start}.basemap-control{top:calc(env(safe-area-inset-top,0px) + 64px + var(--dock-btn) + var(--dock-gap))}.threed-control{top:calc(env(safe-area-inset-top,0px) + 64px + 2 * (var(--dock-btn) + var(--dock-gap)))}.app .maplibregl-ctrl-bottom-right,.app .maplibregl-ctrl-bottom-left{bottom:calc(var(--footer-height) + var(--dock-gap))}}@media (width<=640px) and (pointer:coarse){.sequence-header,.jobs-panel .layer-panel-title,.sql-panel .layer-panel-title,.library-panel .layer-panel-title,.history-panel .layer-panel-title{padding-right:64px}}.command-bar{left:0;right:0;bottom:calc(var(--footer-h) + var(--safe-b));z-index:22;height:var(--commandbar-h);background:var(--panel);border-top:1px solid var(--panel-border);align-items:stretch;gap:6px;padding:6px 10px;display:none;position:absolute;box-shadow:0 -4px 18px #00000059}.cmd-brand{border-right:1px solid var(--panel-border);flex-direction:column;justify-content:center;min-width:0;margin-right:4px;padding:0 14px 0 4px;display:flex}.cmd-brand-name{letter-spacing:.02em;white-space:nowrap;font-size:13px;font-weight:700}.cmd-brand-room{color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:11px;overflow:hidden}.cmd-group{display:flex;position:relative}.cmd-group-btn{min-width:var(--dock-btn);color:var(--text);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:7px;padding:0 12px;font-size:12px;display:flex}.cmd-group-btn:hover{border-color:var(--panel-border);background:#ffffff0f}.cmd-group-btn.open{border-color:var(--accent);color:var(--accent);background:#ffffff17}.cmd-group-icon{font-size:16px;line-height:1}.cmd-badge{background:var(--accent-dim);min-width:18px;color:var(--accent);text-align:center;border-radius:999px;padding:1px 5px;font-size:10px;font-weight:700}.cmd-menu{z-index:41;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;flex-direction:column;gap:2px;min-width:230px;max-height:60vh;padding:6px;display:flex;position:absolute;bottom:calc(100% + 8px);left:0;overflow-y:auto;box-shadow:0 8px 28px #00000073}.cmd-menu-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;padding:6px 8px 2px;font-size:10px}.cmd-item{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:9px;padding:8px 10px;font-size:12px;display:flex}.cmd-item:hover:not(:disabled){background:#ffffff12}.cmd-item.active{border-color:var(--accent);color:var(--accent)}.cmd-item:disabled{opacity:.4;cursor:default}.cmd-item-icon{text-align:center;width:20px;font-size:15px}.cmd-item-main{flex-direction:column;min-width:0;display:flex}.cmd-item-main small{color:var(--text-dim);font-size:10px}.cmd-item-open{color:var(--accent);margin-left:auto;font-size:10px}.cmd-menu-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.cmd-menu-row{border-top:1px solid var(--panel-border);gap:4px;margin-top:4px;padding-top:6px;display:flex}.cmd-tool{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;font-size:10px;display:flex}.cmd-tool:hover{color:var(--text);background:#ffffff12}.cmd-tool.active{border-color:var(--accent);color:var(--accent)}.cmd-tool-icon{font-size:17px;line-height:1}.cmd-slider{color:var(--text-dim);align-items:center;gap:8px;padding:4px 10px 8px;font-size:11px;display:flex}.cmd-slider input{accent-color:var(--accent);flex:1}.cmd-spacer{flex:1}.cmd-close-all{width:auto;color:var(--text-dim);align-self:center}.panel-frame{background:color-mix(in srgb, var(--panel) 96%, transparent);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;flex-direction:column;display:flex;position:absolute;overflow:hidden;box-shadow:0 6px 24px #0000006b}.panel-frame-bar{border-bottom:1px solid var(--panel-border);cursor:move;touch-action:none;-webkit-user-select:none;user-select:none;background:#ffffff0a;align-items:center;gap:8px;padding:7px 8px 7px 11px;display:flex}.panel-frame.minimized .panel-frame-bar{border-bottom:none}.panel-frame-title{white-space:nowrap;font-size:12px;font-weight:600}.panel-frame-meta{min-width:0;color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;overflow:hidden}.panel-frame-title+.panel-frame-btn{margin-left:auto}.panel-frame-btn{width:22px;height:22px;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;font-size:13px;line-height:1;display:flex}.panel-frame-btn:hover{color:var(--text);background:#ffffff17}.panel-frame-close:hover{color:var(--danger)}.panel-frame-body{flex:1;min-height:0;padding:8px 10px;font-size:12px;overflow-y:auto}.panel-frame-grip{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg, transparent 0 50%, var(--panel-border) 50% 62%, transparent 62% 74%, var(--panel-border) 74% 86%, transparent 86%);width:16px;height:16px;position:absolute;bottom:0;right:0}@media (width>=641px) and (height>=481px){:root,.app{--commandbar-h:56px;--rail-b:calc(var(--footer-h) + var(--commandbar-h) + var(--safe-b) + var(--dock-gap));--slider-b:calc(64px + var(--commandbar-h))}.command-bar{display:flex}.left-dock .toolbar,.layer-panel-toggle,.basemap-control,.walk-control .walk-toggle,.threed-control,.agent-toggle,.tools-fab,.draw-fab{display:none}}@media (width<=640px),(height<=480px){.panel-frame{right:0;bottom:calc(var(--footer-h,0px) + var(--safe-b,0px));border-radius:14px 14px 0 0;max-height:min(80dvh,100dvh - 60px);position:fixed;z-index:28!important;width:100%!important;height:auto!important;top:auto!important;left:0!important}.panel-frame-bar{cursor:default}.panel-frame-grip{display:none}.panel-frame-body{padding-bottom:calc(var(--safe-b) + 14px)}}.layer-add{align-items:center;gap:8px;margin-bottom:6px;display:flex}.layer-add-btn{background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;border-radius:8px;padding:8px 12px;font-size:12px;font-weight:600}.layer-add-btn:hover{background:color-mix(in srgb, var(--accent) 26%, transparent)}.layer-add-hint{color:var(--text-dim);font-size:11px}.layer-list .layer-row{border-radius:8px;gap:8px;min-height:40px;padding:6px 8px}.layer-list>li{border-radius:8px}.layer-list .layer-name{font-size:12.5px}.layer-group-row{border-bottom:1px solid var(--panel-border);align-items:center;gap:8px;min-height:40px;margin-bottom:2px;padding:6px 8px;display:flex}.layer-dragging{opacity:.45}.layer-item .layer-badge,.layer-folder-item .layer-badge{cursor:grab}.onboarding-modal{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;flex-direction:column;width:min(560px,100vw - 32px);max-height:min(90dvh,720px);display:flex;overflow:hidden;box-shadow:0 18px 60px #0009}.onboarding-head{border-bottom:1px solid var(--panel-border);align-items:center;padding:12px 12px 12px 16px;display:flex}.onboarding-brand{flex:1;font-size:14px;font-weight:700}.onboarding-slide{padding:18px 20px 6px;overflow-y:auto}.onboarding-slide h2{margin:0 0 6px;font-size:18px}.onboarding-lead{color:var(--text-dim);margin:0 0 14px;font-size:13px}.onboarding-points{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.onboarding-points li{gap:12px;font-size:13px;line-height:1.45;display:flex}.onboarding-point-icon{text-align:center;flex:none;width:26px;font-size:18px}.onboarding-examples{border:1px solid var(--panel-border);background:#ffffff0a;border-radius:10px;margin:14px 20px 0;padding:12px 14px}.onboarding-examples-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.onboarding-download{background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:600;text-decoration:none}.onboarding-download:hover{background:color-mix(in srgb, var(--accent) 26%, transparent)}.onboarding-examples ul{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.onboarding-examples li{gap:10px;font-size:12px;display:flex}.onboarding-example-main{flex-direction:column;display:flex}.onboarding-example-main small{color:var(--text-dim);font-size:11px}.onboarding-foot{align-items:center;gap:10px;margin-top:auto;padding:14px 20px 18px;display:flex}.onboarding-dots{flex:1;gap:6px;display:flex}.onboarding-dot{background:var(--panel-border);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0}.onboarding-dot.active{background:var(--accent)}.onboarding-skip{width:auto;color:var(--text-dim)}@media (pointer:coarse){.panel-frame-btn{min-width:var(--dock-btn);min-height:var(--dock-btn)}.onboarding-dots{gap:0}.onboarding-dot{box-sizing:content-box;background-clip:content-box;padding:18px}}.footer-version{color:var(--text-dim);font-variant-numeric:tabular-nums;opacity:.75;cursor:help;font-size:10px}.footer-version:hover{opacity:1}.presence-fold{width:26px;height:26px;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:4px;right:4px}.presence-fold:hover{color:var(--text);background:#ffffff14}.presence-bar.presence-collapsed{color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:6px;padding:8px 12px;font-size:15px;display:flex}.presence-collapsed-count{background:var(--accent-dim);color:var(--accent);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.presence-settings{border:1px solid var(--panel-border);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:6px;padding:3px 8px;font-size:12px}.presence-settings:hover{border-color:var(--accent)}.basemap-overlay{z-index:var(--z-modal)}.basemap-control .basemap-options{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;flex-direction:column;gap:4px;width:min(360px,100vw - 32px);max-height:min(80dvh,560px);padding:12px;display:flex;position:static;overflow-y:auto;box-shadow:0 18px 60px #0009}.basemap-sheet-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;font-size:14px;font-weight:700;display:flex}.basemap-control .basemap-option{width:100%;min-height:var(--dock-btn);border:1px solid var(--panel-border);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:flex}.basemap-control .basemap-option.active{border-color:var(--accent);color:var(--accent)}.settings-modal{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;flex-direction:column;width:min(520px,100vw - 32px);max-height:min(88dvh,700px);display:flex;overflow:hidden;box-shadow:0 18px 60px #0009}.settings-body{padding:4px 18px 18px;overflow-y:auto}.settings-section{margin-top:16px}.settings-section h3{margin:0 0 4px;font-size:13px}.settings-hint{color:var(--text-dim);margin:0 0 10px;font-size:12px;line-height:1.45}.settings-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.settings-list li{min-height:var(--dock-btn);border:1px solid var(--panel-border);border-radius:10px;align-items:center;gap:10px;padding:6px 10px;font-size:12px;display:flex}.settings-item-main{flex-direction:column;flex:1;min-width:0;display:flex}.settings-item-main small{color:var(--text-dim);font-size:11px}.settings-size{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:11px}.settings-danger{min-height:var(--dock-btn);background:color-mix(in srgb, var(--danger) 16%, transparent);border:1px solid var(--danger);color:var(--danger);font:inherit;cursor:pointer;border-radius:10px;padding:9px 14px;font-size:12px;font-weight:600}.settings-danger:disabled{opacity:.45;cursor:default}.settings-confirm{align-items:center;gap:8px;display:flex}.layer-media-btn,.layer-catalogue-btn,.layer-folder-btn{min-height:var(--dock-btn);border:1px solid var(--panel-border);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:8px;padding:8px 12px;font-size:12px}.layer-media-btn:hover,.layer-catalogue-btn:hover,.layer-folder-btn:hover{border-color:var(--accent);color:var(--accent)}@media (width<=640px){.layer-add{flex-wrap:wrap}}.undo-fab,.active-tool-chip{display:none}@media (width<=640px){.undo-fab{z-index:25;right:12px;top:calc(env(safe-area-inset-top,0px) + 236px);background:color-mix(in srgb, var(--panel) 96%, transparent);border:1px solid var(--panel-border);width:52px;height:52px;color:var(--text);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex;position:absolute;box-shadow:0 4px 18px #00000073}.undo-fab:disabled{opacity:.35;cursor:default}.undo-fab:active:not(:disabled){transform:scale(.94)}.active-tool-chip{z-index:25;right:12px;top:calc(env(safe-area-inset-top,0px) + 300px);min-height:var(--dock-btn);background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;font-weight:600;display:flex;position:absolute;box-shadow:0 4px 18px #00000073}.active-tool-stop{opacity:.75;font-size:12px}.tools-fab-menu,.draw-fab-menu{width:min(340px,100vw - 32px);height:auto;max-height:min(80dvh,620px);inset:50% auto auto 50%;overflow-y:auto;translate:-50% -50%}.fab-menu-handle{display:none}.tools-fab-backdrop,.draw-fab-backdrop{z-index:24;background:#00000073;position:fixed;inset:0}}.time-play,.time-range-btn{border:1px solid var(--panel-border);width:26px;height:22px;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:flex}.time-play:hover:not(:disabled),.time-range-btn:hover:not(:disabled),.time-play.active{border-color:var(--accent);color:var(--accent)}.time-play:disabled,.time-range-btn:disabled{opacity:.4;cursor:default}@media (pointer:coarse){.time-play,.time-range-btn{min-width:var(--dock-btn);min-height:var(--dock-btn)}}.range-menu{background:var(--panel);border:1px solid var(--panel-border);border-radius:14px;flex-direction:column;width:min(420px,100vw - 32px);max-height:min(88dvh,620px);display:flex;overflow:hidden;box-shadow:0 18px 60px #0009}.range-body{flex-direction:column;gap:10px;padding:14px 18px 18px;display:flex;overflow-y:auto}.range-presets{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px;display:grid}.range-presets .cmd-item{border:1px solid var(--panel-border);justify-content:center}.range-field{color:var(--text-dim);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.range-field input{min-height:var(--dock-btn);background:var(--bg);border:1px solid var(--panel-border);max-width:260px;color:var(--text);font:inherit;border-radius:8px;flex:1;padding:6px 10px;font-size:16px}.range-apply{align-self:flex-start}@media (width<=640px){.measure-chip:focus-within,.temporal-panel{width:min(340px,100vw - 32px);max-width:none;max-height:min(80dvh,620px);z-index:var(--z-modal);border-radius:14px;position:fixed;inset:50% auto auto 50%;overflow-y:auto;translate:-50% -50%;box-shadow:0 18px 60px #0009}.measure-chip:focus-within:before,.temporal-panel:before{content:"";z-index:-1;pointer-events:none;background:#00000080;position:fixed;inset:0}.measure-chip:focus-within .measure-chip-header{flex-wrap:wrap;gap:8px}.measure-chip-label{min-height:var(--dock-btn);flex:100%;font-size:16px}.measure-chip:focus-within .measure-chip-done,.temporal-done{width:100%;min-height:var(--dock-btn);background:var(--accent-dim);border:1px solid var(--accent);color:var(--accent);font:inherit;cursor:pointer;border-radius:10px;margin-top:10px;padding:10px 14px;font-size:13px;font-weight:600;display:block}.temporal-head{border-bottom:1px solid var(--panel-border);justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding-bottom:8px;display:flex}.temporal-head-title{font-size:14px;font-weight:700}}@media (width>=641px){.measure-chip-done,.temporal-head,.temporal-done{display:none}}@media (width<=640px){.context-menu-item{min-height:var(--dock-btn)}}.time-slider input[type=range]{min-width:0}@media (width<=640px){.time-slider{gap:4px}.time-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:84px;overflow:hidden}}.welcome-wordmark{flex-direction:column;gap:2px;display:flex}.welcome-wordmark span{color:var(--text-dim);font-size:12px}.welcome-about h3{margin:0 0 12px;font-size:15px}.welcome-features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.welcome-features li{border:1px solid var(--panel-border);background:#ffffff08;border-radius:12px;gap:12px;padding:14px;display:flex}.welcome-features li>span[aria-hidden=true]{flex:none;width:24px;font-size:19px;line-height:1.3}.welcome-features li div{flex-direction:column;gap:3px;min-width:0;display:flex}.welcome-features strong{font-size:13px}.welcome-features li div span{color:var(--text-dim);font-size:12.5px;line-height:1.5}.welcome-features code{background:#ffffff12;border-radius:5px;padding:1px 5px;font-size:11.5px}.welcome-note{color:var(--text-dim);margin:14px 0 0;font-size:12.5px}.welcome-note a{color:var(--accent)}.welcome-example-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin:14px 0 0;padding:0;list-style:none;display:grid}.welcome-example-card{text-align:left;width:100%;height:100%;color:inherit;font:inherit;border:1px solid var(--panel-border);cursor:pointer;background:#ffffff08;border-radius:12px;flex-direction:column;padding:0;transition:border-color .15s,background .15s;display:flex;overflow:hidden}.welcome-example-card:hover,.welcome-example-card:focus-visible{border-color:var(--accent);background:#ffffff0f}.welcome-example-thumb{aspect-ratio:3/2;object-fit:cover;border-bottom:1px solid var(--panel-border);background:#ffffff0a;width:100%;height:auto;display:block}.welcome-example-text{flex-direction:column;gap:4px;padding:12px 14px 14px;display:flex}.welcome-example-text strong{color:var(--text);font-size:13px}.welcome-example-text>span{color:var(--text-dim);font-size:12.5px;line-height:1.5}@media (width<=640px){.welcome-example-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.welcome-example-text{padding:8px 10px 10px}.welcome-example-text strong{font-size:12.5px;line-height:1.3}.welcome-example-text>span{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;font-size:11.5px;line-height:1.4;display:-webkit-box;overflow:hidden}}.welcome-example-credit{opacity:.75;font-size:11.5px}.welcome-footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.welcome-footer-brand{color:var(--text);align-items:center;gap:8px;font-weight:600;display:flex}.welcome-footer-brand img{border-radius:6px}.welcome-footer-links{flex-wrap:wrap;gap:16px;display:flex}.welcome-footer-fine{border-top:1px solid var(--panel-border);padding-top:10px;font-size:12px}.welcome-footer-version{font-variant-numeric:tabular-nums;cursor:help}@media (width<=640px){.welcome-footer-row{flex-direction:column;align-items:flex-start;gap:10px}.welcome-footer-links{gap:12px 18px}.welcome-footer-links a{min-height:var(--dock-btn);align-items:center;display:flex}}.time-fold{border:1px solid var(--panel-border);width:26px;height:22px;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;display:flex}.time-fold:hover{border-color:var(--accent);color:var(--accent)}@media (pointer:coarse){.time-fold{min-width:var(--dock-btn);min-height:var(--dock-btn)}}@media (width<=640px){.time-slider{width:100%;padding:4px calc(8px + env(safe-area-inset-left,0px)) calc(4px + env(safe-area-inset-bottom,0px)) calc(8px + env(safe-area-inset-right,0px));border-bottom:none;border-left:none;border-right:none;border-radius:12px 12px 0 0;left:0;right:0;transform:none}.time-label{max-width:110px}.time-slider.time-collapsed{width:auto;min-height:var(--dock-btn);border:1px solid var(--panel-border);color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:600;display:flex;left:12px;right:auto}.time-collapsed .time-live-dot{color:var(--text-dim);font-size:10px}.time-collapsed .time-live-dot.live{color:var(--accent)}}.measure-chip-colors{gap:6px;padding:6px 0 2px;display:flex}.measure-chip-color{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0}.measure-chip-color.active{border-color:var(--text)}@media (pointer:coarse){.measure-chip-color{width:var(--dock-btn);height:var(--dock-btn);box-sizing:border-box;background-clip:content-box;padding:12px}}.settings-toggle{min-height:var(--dock-btn);align-items:center;gap:10px;font-size:12.5px;display:flex}.settings-toggle small{color:var(--text-dim)}.time-slider{flex-direction:column;align-items:stretch}.time-readout{text-align:center;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.4;overflow:hidden}.time-row{align-items:center;gap:6px;display:flex}.time-step-btn{border:1px solid var(--panel-border);width:26px;height:22px;color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;justify-content:center;align-items:center;padding:0;font-size:11px;line-height:1;display:flex}.time-step-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.time-step-btn:disabled,.time-step-picker select:disabled{opacity:.4;cursor:default}.time-step-picker select{background:var(--bg);border:1px solid var(--panel-border);min-height:22px;color:var(--text-dim);font:inherit;cursor:pointer;border-radius:6px;padding:2px 4px;font-size:11px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (pointer:coarse){.time-step-btn{min-width:var(--dock-btn);min-height:var(--dock-btn)}.time-step-picker select{min-height:var(--dock-btn);font-size:16px}}@media (width<=640px){.time-readout{font-size:12px}.time-row{flex-wrap:wrap;justify-content:space-between;gap:4px}.time-row>.time-slider-track-wrap{flex:100%;order:-1}}.feature-editor{z-index:12;bottom:var(--rail-2-b);background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid var(--panel-border);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:10px;width:min(640px,100% - 24px);max-height:min(560px,100% - 180px);padding:8px 10px;font-size:12px;position:absolute;left:12px;overflow-y:auto;box-shadow:0 4px 16px #00000059}.feature-editor-header{border-bottom:1px solid var(--panel-border);align-items:center;gap:6px;padding-bottom:6px;display:flex}.feature-editor-title{font-weight:600}.feature-editor-target{background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;max-width:200px;padding:3px 7px;font-size:11px}.feature-editor-local{color:var(--danger,#f87171);border:1px solid color-mix(in srgb, var(--danger,#f87171) 45%, transparent);cursor:help;border-radius:5px;padding:1px 5px;font-size:10px}.feature-editor-count{color:var(--text-dim);margin-left:auto;font-size:11px}.feature-editor-empty,.feature-editor-hint{color:var(--text-dim);flex-direction:column;align-items:flex-start;gap:6px;padding:10px 2px;font-size:11px;display:flex}.feature-editor-error{color:var(--danger,#f87171);padding:4px 0;font-family:ui-monospace,monospace;font-size:11px}.feature-editor-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding-top:8px;display:grid}.feature-properties-head{color:var(--accent);justify-content:space-between;align-items:center;gap:8px;padding-bottom:4px;font-size:11px;display:flex}.feature-properties-head label{color:var(--text-dim);cursor:pointer;align-items:center;gap:4px;display:flex}.feature-properties-grid{flex-direction:column;gap:4px;display:flex}.feature-property{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:4px;display:grid}.feature-property input{background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--panel-border);border-radius:5px;padding:3px 6px;font-size:11px}.feature-property .feature-key{color:var(--accent)}.feature-property-new{border-top:1px dashed var(--panel-border);padding-top:4px}.feature-editor-side{flex-direction:column;gap:6px;min-width:0;display:flex}.feature-editor-tabs,.feature-editor-toolbar{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.feature-editor-toolbar{padding:8px 0}.feature-tab{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:3px 8px;font-size:11px}.feature-tab.active{color:var(--text);border-color:var(--panel-border);background:var(--bg)}.feature-style-row{color:var(--text-dim);grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) auto;align-items:center;gap:6px;font-size:11px;display:grid}.feature-style-row input[type=number],.feature-style-row input[type=text],.feature-style-row input:not([type]){background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--panel-border);border-radius:5px;padding:3px 6px;font-size:11px}.feature-style-row input[type=color]{border:1px solid var(--panel-border);background:0 0;border-radius:5px;width:100%;height:22px;padding:0}.feature-export,.feature-geometry,.feature-json{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.feature-json textarea{resize:vertical}.feature-search{background:var(--bg);color:var(--text);border:1px solid var(--panel-border);border-radius:6px;min-width:140px;padding:3px 7px;font-size:11px}.feature-editor-stats-toggle{color:var(--text-dim);cursor:pointer;align-items:center;gap:4px;font-size:11px;display:flex}.feature-editor-overlay{z-index:var(--z-modal);background:#00000073;padding:24px;display:flex;position:absolute;inset:0}.feature-editor-expanded{flex-direction:column;width:100%;max-height:100%;display:flex;position:relative;inset:auto;overflow:hidden}.feature-json-full{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex}.feature-json-full textarea{resize:none;flex:1;min-height:200px}.feature-table{flex:1;min-height:0;overflow:auto}.feature-table table{border-collapse:collapse;width:100%;font-size:10px}.feature-table th,.feature-table td{border:1px solid var(--panel-border);text-align:left;white-space:nowrap;padding:1px 4px}.feature-table th{background:var(--bg);color:var(--accent);z-index:1;position:sticky;top:0}.feature-table-stats th{color:var(--text-dim);font-weight:400;top:20px}.feature-table td input{width:100%;min-width:60px;max-width:220px;color:var(--text);font:inherit;background:0 0;border:none;padding:2px}.feature-table td input:focus{background:var(--bg);outline:1px solid var(--accent);border-radius:3px}.feature-table tr.is-selected td{background:color-mix(in srgb, var(--accent) 14%, transparent)}.feature-table-tick{text-align:center;width:24px}.feature-table-geometry .layer-btn{white-space:nowrap;font-size:10px}@media (width<=640px){.feature-editor-body{grid-template-columns:minmax(0,1fr)}.feature-editor-overlay{padding:8px}.feature-editor{max-height:calc(100dvh - 180px);inset:56px 12px auto auto}.feature-editor-expanded{max-height:100%;top:auto;right:auto}}.trace-data{margin-top:8px;font-size:12px}.trace-data>summary{cursor:pointer;color:var(--text-dim);padding:6px 0}.trace-table{margin-top:6px}.trace-table-summary{color:var(--text-dim);flex-wrap:wrap;gap:4px 10px;padding-bottom:6px;font-size:11px;display:flex}.trace-table-scroll{border:1px solid var(--panel-border);border-radius:8px;max-height:220px;overflow:auto}.trace-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:11px}.trace-table th{z-index:1;text-align:left;color:var(--text-dim);background:var(--panel);border-bottom:1px solid var(--panel-border);padding:5px 6px;font-weight:600;position:sticky;top:0}.trace-table td{border-bottom:1px solid #ffffff0a;padding:5px 6px}.trace-table tbody tr{cursor:pointer}.trace-table tbody tr:hover{background:#ffffff0d}.trace-table .trace-poor{color:#fbbf24}.trace-table-foot{color:var(--text-dim);justify-content:space-between;align-items:center;gap:8px;padding-top:6px;font-size:11px;display:flex}.trace-row-data{color:var(--text-dim);cursor:pointer;background:0 0;border:0;padding:4px;font-size:13px}@media (pointer:coarse){.trace-row-data{min-width:44px;min-height:44px}.trace-table-scroll{max-height:40dvh}}.location-traces .welcome-canvas-card{flex-wrap:wrap}.location-traces .welcome-canvas-card .trace-table{flex:1 0 100%;min-width:0}.location-traces .welcome-canvas-name{flex:1 0 100%}.location-traces .welcome-canvas-meta{flex:auto;min-width:0}.presence-locked{cursor:help;opacity:.9;align-items:center;padding:0 4px;font-size:13px;display:inline-flex}.welcome-footer .welcome-footer-quiet{font:inherit;color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit;cursor:help}.welcome-footer .welcome-footer-quiet:hover,.welcome-footer .welcome-footer-quiet:focus-visible{color:var(--accent)}.cmd-colours{color:var(--text-dim);gap:10px;padding:6px 10px 8px;font-size:11px;display:flex}.cmd-colours label{cursor:pointer;align-items:center;gap:6px;display:flex}.cmd-colours input[type=color]{border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:6px;width:30px;height:24px;padding:0}.time-rate{border:1px solid var(--panel-border);min-height:44px;color:var(--text);cursor:pointer;background:#ffffff0f;border-radius:6px;flex:none;padding:2px 6px;font-size:11px}@media (width<=720px),(height<=520px){.help-overlay>:not(.terminal),.tools-fab-menu,.popup-menu{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:82dvh;overflow-y:auto}.panel-frame-body,.layer-panel,.cmd-menu{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.cmd-bar{overscroll-behavior-x:contain;scrollbar-width:none;overflow-x:auto}.cmd-bar::-webkit-scrollbar{display:none}}.lock-gate{background:var(--bg);color:var(--text);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;overflow:auto}.lock-gate-card{background:var(--panel);border:1px solid var(--panel-border);border-radius:12px;flex-direction:column;gap:12px;width:min(460px,100%);padding:28px;display:flex}.lock-gate-icon{font-size:32px;line-height:1}.lock-gate-card h1{margin:0;font-size:20px;font-weight:600}.lock-gate-room{color:var(--text-dim);margin:0;font-size:13px}.lock-gate-field{color:var(--text-dim);flex-direction:column;gap:6px;font-size:13px;display:flex}.lock-gate-field input{color:var(--text);background:var(--bg);border:1px solid var(--panel-border);border-radius:8px;padding:10px 12px;font-size:15px}.lock-gate-field input:focus{border-color:var(--accent);outline:none}.lock-gate-problem{color:var(--danger);margin:0;font-size:13px}.lock-gate-submit{color:#05230f;background:var(--accent);cursor:pointer;border:none;border-radius:8px;padding:11px 16px;font-size:15px;font-weight:600}.lock-gate-submit:disabled{opacity:.6;cursor:progress}.lock-gate-truth{border-top:1px solid var(--panel-border);color:var(--text-dim);flex-direction:column;gap:8px;padding-top:8px;font-size:12.5px;line-height:1.5;display:flex}.lock-gate-truth p{margin:0}.lock-gate-leave{color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:13px;text-decoration:underline}.lock-gate-refusal{border:1px solid var(--danger);background:#f8717114;border-left-width:3px;border-radius:8px;flex-direction:column;gap:8px;padding:12px;font-size:13px;line-height:1.5;display:flex}.lock-gate-caution{background:#fbbf2414;border-color:#fbbf24}.lock-gate-refusal p{margin:0}.lock-gate-refusal code{word-break:break-all}.lock-gate-anyway{color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:0;font-size:12.5px;text-decoration:underline}.top-notices{z-index:20;pointer-events:none;flex-direction:column;align-items:center;gap:8px;width:min(500px,100vw - 32px);display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.top-notices>*{pointer-events:auto}:where(.top-notices) .lock-watch,:where(.top-notices) .net-banner{width:100%;position:relative;top:auto;left:auto;transform:none}@media (width<=640px){.top-notices{top:calc(env(safe-area-inset-top,0px) + var(--presence-h,104px) + 16px);width:calc(100vw - 20px)}}.lock-watch{z-index:20;background:var(--panel);border:1px solid var(--panel-border);border-left:3px solid var(--text-dim);width:min(500px,100vw - 32px);color:var(--text);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000073}.lock-watch-joined{border-left-color:var(--accent)}.lock-watch-unreachable{border-left-color:var(--danger)}.lock-watch-alone{border-left-color:#fbbf24}.lock-watch-line{margin:0}.lock-watch-fine{color:var(--text-dim);margin:0;font-size:12.5px}.lock-watch-actions{flex-wrap:wrap;gap:8px;display:flex}.lock-watch-primary{color:#05230f;background:var(--accent);cursor:pointer;border:none;border-radius:7px;padding:7px 12px;font-size:13px;font-weight:600}.lock-watch-quiet{color:var(--text-dim);border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:7px;padding:7px 12px;font-size:13px}.lock-watch-spinner{vertical-align:-1px;border:2px solid var(--panel-border);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;margin-right:6px;animation:.8s linear infinite lock-watch-spin;display:inline-block}@keyframes lock-watch-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.lock-watch-spinner{animation:none}}.personal-view{z-index:19;background:var(--panel);border:1px solid var(--panel-border);width:min(460px,100vw - 24px);color:var(--text);border-left:3px solid #fbbf24;border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;font-size:13px;line-height:1.5;display:flex;position:absolute;top:96px;left:12px;box-shadow:0 6px 24px #00000073}.personal-view-line{margin:0}.personal-view-fine{color:var(--text-dim);margin:0;font-size:12.5px}.personal-view-verdict{background:#fbbf2414;border-radius:7px;margin:0;padding:8px 10px;font-size:12.5px}.personal-view-verdict[data-verdict=fast-forward]{background:#4ade8014}.personal-view-verdict[data-verdict=discard]{background:#f871711a}.personal-view-actions{flex-wrap:wrap;gap:8px;display:flex}.personal-view-primary{color:#05230f;background:var(--accent);cursor:pointer;border:none;border-radius:7px;padding:7px 12px;font-size:13px;font-weight:600}.personal-view-primary:disabled{opacity:.45;cursor:default}.personal-view-danger{color:#2a0707;background:var(--danger);cursor:pointer;border:none;border-radius:7px;padding:7px 12px;font-size:13px;font-weight:600}.personal-view-quiet{color:var(--text-dim);border:1px solid var(--panel-border);cursor:pointer;background:0 0;border-radius:7px;padding:7px 12px;font-size:13px}@media (width<=640px){.personal-view{width:calc(100vw - 20px);padding:11px 12px;font-size:12.5px;top:auto;bottom:96px;left:10px}.personal-view-actions{flex-direction:column}.personal-view-actions button{width:100%;min-height:44px}}.avatar-personal{box-shadow:0 0 0 2px var(--panel), 0 0 0 3.5px #fbbf24}.net-banner{z-index:20;background:color-mix(in srgb, var(--panel) 94%, transparent);border:1px solid var(--panel-border);border-left:3px solid var(--text-dim);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:min(500px,100vw - 32px);color:var(--text);border-radius:9px;align-items:flex-start;gap:8px;padding:8px 10px;font-size:12.5px;line-height:1.45;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000059}.net-banner-offline{border-left-color:#fbbf24}.net-banner-poor{border-left-color:var(--text-dim)}.net-banner-mark{flex:none;font-size:13px;line-height:1.35}.net-banner-line{flex:1;min-width:0;margin:0}.net-banner-close{width:22px;height:22px;color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:none;padding:0;font-size:12px;line-height:1}.net-banner-close:hover{color:var(--text);background:#ffffff14}@media (width<=640px){.net-banner{width:calc(100vw - 20px);font-size:12px}.net-banner-close{width:44px;height:44px;margin:-10px -6px -10px 0}}
