:root{--color-primary:#303d52;--color-primary-text:#fff;--color-primary-light:#5a6f8f;--color-primary-lighter:#7f94b0;--color-primary-dark:#001f3f;--color-quaternary:#5c677b;--color-quaternary-dark:#3b4455;--color-success:#4caf50;--color-warning:#ffc107;--color-error:#f44336;--color-info:#2196f3;--color-info-light:#64b5f6;--bg:#0b1728;--bg-elev:#14253b;--bg-card:var(--surface-field);--line:#2c415b;--text:#edf3fb;--muted:#a1b1c5;--accent:var(--color-info);--accent-2:var(--color-info-light);--danger:var(--color-error);--ok:var(--color-success);--header-height:calc(58px + env(safe-area-inset-top));--toolbar-height:calc(66px + env(safe-area-inset-top));--panel-width:320px;--radius:8px;--shadow:0 8px 24px #030c1838;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;--surface-soft:#1b2e46;--surface-field:#0f2035;--action-bg:#1769aa;--action-hover:#1b77b8;--icon-filter:invert(1);font-family:Inter,Avenir Next,Segoe UI,Roboto,Helvetica,Arial,sans-serif}:root[data-theme=light]{--bg:#edf2f7;--bg-elev:#f8fbff;--surface-soft:#eef3f7;--surface-field:#fff;--line:#c3cedd;--text:#172234;--muted:#51627b;--accent:#1d4ed8;--accent-2:#4f7af0;--action-bg:#123455;--action-hover:#1a4873;--danger:#c62828;--ok:#2e7d32;--shadow:0 8px 24px #0f172a24;--icon-filter:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-card:var(--surface-field)}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter-variable.ttf)format("truetype")}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;min-height:100%;margin:0}body{min-height:100dvh;color:var(--text);background:radial-gradient(circle at 12% -5%, #2196f338, transparent 32rem), radial-gradient(circle at 95% 105%, #4caf501a, transparent 28rem), var(--bg)}button,input,select{font:inherit}button,select,label[for]{-webkit-tap-highlight-color:transparent}button{color:inherit}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.live-app{grid-template-rows:var(--header-height) minmax(0, 1fr) auto;min-height:100dvh;display:grid}.live-app--view{grid-template-rows:minmax(0,1fr);height:100dvh;overflow:hidden}.app-header{z-index:20;min-height:var(--header-height);padding:max(8px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 8px max(18px, env(safe-area-inset-left));border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(18px)saturate(130%);backdrop-filter:blur(18px)saturate(130%);background:#061f3bdb;align-items:center;gap:22px;display:flex;position:relative}.brand-lockup{flex:none;align-items:center;gap:10px;display:inline-flex}.brand-mark{object-fit:cover;border:1px solid #64b5f69e;border-radius:10px;flex:none;width:36px;height:36px;display:block;box-shadow:0 0 0 3px #2196f31a,0 7px 16px #000a1947}.brand-name{letter-spacing:.06em;white-space:nowrap;font-size:14px;font-weight:700}.brand-name strong{color:var(--accent-2);font-weight:900}.brand-tagline{color:var(--muted);flex:1;margin:0;font-size:13px}.language-control{margin-left:auto}.app-header__actions{align-items:center;gap:8px;margin-left:auto;display:flex}.app-header__actions .language-control{margin-left:0}.app-header .install-app-button{width:44px;min-height:44px;color:var(--accent-2);background:#2196f31a;border-color:#64b5f67a;flex:none}.language-control select,.viewer-controls select{min-height:36px;color:var(--text);border:1px solid var(--line);cursor:pointer;background:#0f2947e6;border-radius:9px;outline:0;padding:0 32px 0 11px}.language-control select:focus-visible,.viewer-controls select:focus-visible,button:focus-visible,input:focus-visible,.manual-entry summary:focus-visible{outline-offset:2px;outline:3px solid #64b5f68c}.scan-page,.state-page{place-items:center;width:100%;padding:36px 18px;display:grid}.scan-card,.state-card{border:1px solid var(--line);width:min(100%,680px);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(165deg,#303d52e0,#0a2542f2);border-radius:22px;padding:clamp(22px,5vw,38px)}.scan-card{border-radius:18px;width:min(100%,480px);padding:clamp(18px,3vw,22px)}.scan-card__copy{text-align:center}.scan-card h1,.state-card h1{letter-spacing:-.035em;margin:0;font-size:clamp(26px,5vw,38px);line-height:1.1}.scan-card h1{font-size:clamp(24px,4vw,30px)}.state-card p{max-width:54ch;color:var(--muted);margin:12px auto 0;line-height:1.55}.camera-stage{aspect-ratio:4/3;border:1px solid var(--line);background:linear-gradient(#2196f30f,#2196f305),repeating-linear-gradient(0deg,#0000,#0000 22px,#94a3b80a 23px);border-radius:14px;place-items:center;width:min(100%,360px);margin:14px auto 10px;display:grid;position:relative;overflow:hidden}.camera-stage[hidden]{display:none}.camera-stage[hidden]+.scan-methods{margin-top:14px}.camera-stage video{object-fit:cover;opacity:0;width:100%;height:100%;display:block}.camera-stage--active video{opacity:1}.camera-stage__placeholder{color:var(--muted);place-content:center;justify-items:center;gap:12px;font-size:13px;display:grid;position:absolute;inset:0}.camera-reticle{border:2px solid #64b5f6b8;border-radius:24px;place-items:center;width:88px;height:88px;display:grid;position:relative;box-shadow:inset 0 0 26px #2196f31f,0 0 32px #2196f31f}.camera-reticle>svg{width:38px;color:var(--accent-2);opacity:.38}.camera-reticle .spinner{border-width:3px;width:30px;height:30px;position:absolute}.state-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.scan-methods{gap:8px;display:grid}.scan-method{border:1px solid var(--line);width:100%;min-height:48px;color:var(--text);box-shadow:none;text-align:left;cursor:pointer;background:#0f2947c2;border-radius:11px;align-items:center;gap:9px;padding:6px 10px;transition:transform .14s,border-color .14s,background .14s,box-shadow .14s;display:flex}.scan-method:hover{background:#1d3c5cf0;border-color:#64b5f694;transform:translateY(-1px);box-shadow:0 10px 24px #000a193d}.scan-method:active{transform:translateY(0)}.scan-method:disabled{opacity:.58;cursor:wait;transform:none}.scan-method--camera{background:linear-gradient(135deg,#2196f33d,#0f3254eb);border-color:#64b5f694;min-height:56px}.scan-method--import{border-style:dashed}.scan-method--dragging{border-color:var(--accent-2);background:#2196f32e;box-shadow:inset 0 0 0 2px #64b5f626,0 10px 26px #000a193d}.scan-method--stop{background:#f443361a;border-color:#f4433666}.scan-method__icon{width:34px;height:34px;color:var(--accent-2);background:#64b5f61a;border-radius:10px;flex:none;place-items:center;display:grid}.scan-method--camera .scan-method__icon{color:#00182f;background:linear-gradient(135deg,#8bd0ff,#2196f3);box-shadow:0 7px 18px #2196f347}.scan-method--stop .scan-method__icon{color:#fff;box-shadow:none;background:#f44336b8}.scan-method__icon svg{width:18px;height:18px}.scan-method__icon .spinner{border-color:#00182f #00182f38 #00182f38;width:18px;height:18px}.scan-method--import .scan-method__icon .spinner{border-color:#ffffff38;border-top-color:var(--accent-2)}.scan-method__copy{gap:2px;min-width:0;display:grid}.scan-method strong{min-width:0;font-size:13px}.button,.icon-button{border:1px solid var(--line);min-height:40px;color:var(--text);cursor:pointer;background:#0f2947e0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 15px;transition:transform .12s,border-color .12s,background .12s;display:inline-flex;box-shadow:0 6px 14px #000a1929}.button:hover,.icon-button:hover{background:#244363f5;border-color:#64b5f68c;transform:translateY(-1px)}.button:active,.icon-button:active{transform:translateY(0)}.button:disabled{opacity:.48;cursor:not-allowed;transform:none}.button svg,.icon-button svg{width:18px;height:18px}.button--primary{color:#001225;background:linear-gradient(135deg, var(--accent-2), var(--accent));border-color:#64b5f6bf;font-weight:800}.button--primary:hover{background:linear-gradient(135deg,#83c6fa,#2b9ef2)}.button--quiet{min-height:34px;box-shadow:none;padding-inline:10px;font-size:12px}.manual-entry{margin-top:6px}.manual-entry summary{width:fit-content;min-height:44px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:7px;margin:0 auto;padding:0 8px;font-size:12px;font-weight:700;list-style:none;display:flex}.manual-entry summary::-webkit-details-marker{display:none}.manual-entry summary:hover{color:var(--text);background:#64b5f614}.manual-entry summary svg{width:15px;color:var(--accent-2)}.manual-entry summary .manual-entry__chevron{width:14px;transition:transform .14s}.manual-entry[open] .manual-entry__chevron{transform:rotate(180deg)}.manual-entry[open] summary{margin-bottom:8px}.manual-entry__form{margin:0}.manual-entry__row{grid-template-columns:minmax(0,1fr) auto;gap:8px;display:grid}.manual-entry input{border:1px solid var(--line);width:100%;min-height:44px;color:var(--text);background:#00142bb8;border-radius:10px;outline:0;padding:0 12px}.manual-entry input::placeholder{color:#6f849e}.manual-entry input[aria-invalid=true]{border-color:#f44336b8}.inline-error{color:#ffc1bc;text-align:center;background:#f443361a;border:1px solid #f4433666;border-radius:10px;margin:14px 0 0;padding:10px 12px;font-size:12px}.app-footer{padding:12px 18px max(12px, env(safe-area-inset-bottom));color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:8px;font-size:11px;display:flex}.app-footer svg{flex:none;width:15px}.state-card{text-align:center;justify-items:center;gap:12px;max-width:520px;display:grid;position:relative}.state-icon{width:70px;height:70px;color:var(--accent-2);background:#2196f31f;border:1px solid #64b5f659;border-radius:22px;place-items:center;display:grid}.state-icon svg{width:32px;height:32px}.state-card--error .state-icon{color:#ff8d85;background:#f443361a;border-color:#f4433657}.state-card .state-actions{margin-top:8px}.spinner{border:2px solid #ffffff38;border-top-color:var(--accent-2);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}.spinner--large{width:30px;height:30px;margin-top:-33px}@keyframes spin{to{transform:rotate(360deg)}}.command-icon{width:20px;height:20px;filter:var(--icon-filter);flex:none;display:block}.viewer{grid-template-rows:var(--toolbar-height) minmax(0, 1fr) auto;min-height:0;display:grid;overflow:hidden}.viewer-toolbar{z-index:15;min-width:0;padding:max(6px, env(safe-area-inset-top)) 12px 6px 0;background:var(--bg-elev);border-bottom:1px solid var(--line);align-items:center;gap:14px;display:flex}.viewer-controls{flex:none;align-items:center;height:100%;display:flex}.viewer-tool-group{border-right:1px solid var(--line);align-items:center;gap:6px;height:100%;padding:18px 10px 4px;display:flex;position:relative}.tool-group-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:700;line-height:1;position:absolute;top:2px;left:10px}.icon-button{border:1px solid var(--line);width:35px;height:35px;min-height:35px;color:var(--text);background:var(--surface-field);box-shadow:none;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-button:hover{border-color:var(--accent);background:var(--surface-soft)}.icon-button[aria-pressed=true]{background:var(--action-bg);color:#fff;border-color:#0000}.icon-button[aria-pressed=true] .command-icon{filter:brightness(0)invert()}.viewer-title{flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;display:flex}.viewer-title>div{min-width:0}.viewer-title h1{text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin:0;font-size:15px;font-weight:650;overflow:hidden}.viewer-title span:not(.live-pulse){color:var(--muted);letter-spacing:.02em;font-size:11px}.live-pulse{flex:none;place-items:center;width:18px;height:18px;display:grid;position:relative}.live-pulse:before,.live-pulse i{content:"";background:var(--ok);border-radius:50%;width:7px;height:7px}.live-pulse:before{animation:2s ease-out infinite pulse;position:absolute}.live-pulse--ended:before{display:none}.live-pulse--ended i{background:var(--muted)}@keyframes pulse{0%{opacity:.85;transform:scale(.8)}to{opacity:0;transform:scale(2.7)}}.viewer-read-only{color:var(--muted);background:var(--surface-field);border:1px solid var(--line);white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:5px 8px;font-size:11px;display:inline-flex}.viewer-read-only svg{width:14px;height:14px}.viewer-toolbar-actions{flex:none;gap:8px;display:flex}.config-button{border-radius:50%}.viewer-toolbar-actions .icon-button{width:36px;height:36px}.close-session-button{color:var(--muted)}.close-session-button:hover{border-color:var(--danger)}.viewer-content{grid-template-columns:300px minmax(0, 1fr) var(--panel-width);min-height:0;display:grid;position:relative;overflow:hidden}.viewer--features-closed .viewer-content{grid-template-columns:minmax(0, 1fr) var(--panel-width)}.viewer--teams-closed .viewer-content{grid-template-columns:300px minmax(0,1fr)}.viewer--features-closed.viewer--teams-closed .viewer-content{grid-template-columns:minmax(0,1fr)}.map-shell{background:#0a1626;min-width:0;min-height:0;position:relative}.map-canvas{position:absolute;inset:0}.viewer-footer{min-width:0;min-height:40px;padding:7px max(12px, env(safe-area-inset-right)) max(7px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));border-top:1px solid var(--line);background:var(--bg-elev);color:var(--muted);align-items:center;gap:18px;font-size:11px;display:flex}.viewer-footer>span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.viewer-footer svg{flex:none;width:14px;height:14px}.viewer-footer-brand{color:var(--text);font-weight:800}.viewer-footer-brand img{border-radius:5px;width:22px;height:22px}.viewer-footer__session{min-width:0}.viewer-footer__session strong{text-overflow:ellipsis;max-width:190px;color:var(--text);font-weight:500;overflow:hidden}.viewer-footer__status{margin-left:auto}.viewer-footer .is-stale{color:#d59a31;white-space:normal}.map-status,.map-fallback{z-index:5;color:var(--muted);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00142bb8;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.map-fallback{min-height:0;position:relative}.map-status--error,.map-fallback{color:#ffc1bc}.confirm-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000c1cbd;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.confirm-dialog{background:var(--bg-elev);border:1px solid #94a3b84d;border-radius:8px;grid-template-columns:auto minmax(0,1fr);gap:14px;width:min(100%,470px);padding:22px;display:grid;box-shadow:0 26px 70px #00081494}.confirm-dialog__icon{color:#ffd15c;background:#ffc1071a;border:1px solid #ffc10761;border-radius:14px;place-items:center;width:44px;height:44px;display:grid}.confirm-dialog__icon svg{width:22px;height:22px}.confirm-dialog__copy{min-width:0}.confirm-dialog h2{letter-spacing:-.02em;margin:1px 0 7px;font-size:19px}.confirm-dialog p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.confirm-dialog__actions{grid-column:1/-1;justify-content:flex-end;gap:9px;margin-top:5px;display:flex}.install-dialog{width:min(100%,420px)}.install-dialog .confirm-dialog__icon{color:var(--accent-2);background:#2196f31f;border-color:#64b5f673}.button--danger{color:#fff;background:linear-gradient(135deg,#e94236,#bd2d28);border-color:#f4433694;font-weight:800}.button--danger:hover{background:linear-gradient(135deg,#f15a50,#cf3932);border-color:#ffb4aed1}.mapboxgl-ctrl-group{overflow:hidden;background:#0f2947eb!important;border:1px solid #94a3b842!important;border-radius:10px!important;box-shadow:0 8px 18px #000a1940!important}.mapboxgl-ctrl-scale{color:#fff;background:#001f3fc2!important;border-color:#ffffffb3!important}.mapboxgl-ctrl-attrib{color:#1f2937}.info-panel{z-index:6;background:var(--bg-elev);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.info-panel--features{border-right:1px solid var(--line)}.info-panel--teams{border-left:1px solid var(--line)}.panel-heading{border-bottom:1px solid var(--line);align-items:center;gap:8px;min-height:49px;padding:10px 14px;display:flex}.panel-heading>svg{display:none}.panel-heading h2{margin:0;font-size:14px;font-weight:650}.panel-count{color:var(--muted);margin-left:auto;font-size:11px}.panel-collapse{width:28px;height:28px;min-height:28px}.panel-collapse .command-icon{width:16px;height:16px}.panel-tabs{background:color-mix(in srgb, var(--bg-elev) 92%, #000 8%);border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:4px;padding:8px;display:grid}.panel-tabs button{border:1px solid var(--line);min-height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:5px 8px;font-size:12px;font-weight:700;display:flex}.panel-tabs .tab-features{display:none}.panel-tabs button:hover{background:var(--bg-card)}.panel-tabs button.is-active{color:#fff;background:var(--action-bg);border-color:#0000}.panel-tabs button.is-active>span{color:inherit}.panel-tabs svg{width:14px;height:14px}.panel-tabs button>span{color:var(--muted);font-size:10px}.panel-list{overscroll-behavior:contain;scrollbar-color:var(--line) transparent;flex:1;min-height:0;padding:10px;overflow:auto}.info-card{border:1px solid var(--line);width:100%;min-height:62px;color:inherit;background:var(--bg-card);text-align:left;cursor:pointer;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;margin:0 0 8px;padding:10px;display:grid}.info-card:hover,.team-card:hover{border-color:#4a6380}.info-card.is-selected,.team-card.is-selected{border-color:var(--accent);background:color-mix(in srgb, var(--surface-field) 90%, var(--accent) 10%)}.info-card__marker{width:30px;height:30px;color:var(--marker-color,#64b5f6);background:color-mix(in srgb, var(--marker-color,#64b5f6) 14%, transparent);border-radius:6px;flex:none;place-items:center;display:grid}.info-card__marker svg{width:17px;height:17px}.info-card__copy{gap:4px;min-width:0;display:grid}.info-card__copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.info-card__copy span,.info-card__copy small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px;overflow:hidden}.tracker-dot{place-items:center;width:30px;height:30px;display:grid;position:relative}.tracker-dot:before{content:"";background:color-mix(in srgb, var(--marker-color,#f59e0b) 18%, transparent);border-radius:50%;width:26px;height:26px;position:absolute}.tracker-dot i{background:var(--marker-color,#f59e0b);border:2px solid #fff;border-radius:50%;width:11px;height:11px;position:relative}.tracker-metrics{color:var(--muted);font-variant-numeric:tabular-nums;font-size:10px}.team-card{border:1px solid var(--line);background:var(--bg-card);border-radius:8px;gap:10px;margin-bottom:10px;padding:12px;display:grid}.team-card-header{min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}.team-focus-icon{width:15px;height:15px;color:var(--muted);flex:none;margin-left:auto}.team-areas{flex-wrap:wrap;gap:5px;display:flex}.team-areas button{background:color-mix(in srgb, var(--area-color) 15%, transparent);max-width:100%;color:var(--area-color);border:1px solid #3c638b;border-color:color-mix(in srgb, var(--area-color) 50%, var(--line));cursor:pointer;text-align:left;border-radius:4px;align-items:center;gap:5px;padding:4px 6px;font-size:10px;display:inline-flex}.team-areas svg{flex:none;width:12px;height:12px}.team-members{gap:3px;display:grid}.team-members:empty{display:none}.team-members button{border:1px solid var(--line);border-left:4px solid var(--tracker-color);background:var(--bg);width:100%;color:var(--text);cursor:pointer;text-align:left;border-radius:6px;grid-template-columns:22px minmax(0,1fr) 26px;align-items:center;gap:3px 7px;padding:6px 6px 6px 8px;display:grid}.team-members button:hover{background:var(--bg-elev)}.team-members i{border-radius:50%;width:7px;height:7px}.team-members span{text-overflow:ellipsis;font-size:11px;overflow:hidden}.team-members small{color:var(--muted);grid-area:2/2;font-size:9px}.team-position-note{color:var(--muted);margin:0;font-size:10px;line-height:1.5}.selection-details{border-top:1px solid var(--line);background:var(--bg-card);flex:none;gap:7px;max-height:30%;padding:14px;font-size:12px;display:grid;overflow:auto}.selection-details p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.5}.selection-details>span{color:var(--muted);font-size:10px}.empty-message{color:var(--muted);text-align:center;padding:22px 12px;font-size:12px}button:focus-visible,select:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}.info-card--feature{min-height:0;padding:0;display:block;overflow:hidden}.drawing-card-copy{gap:7px;padding:10px 12px}.drawing-card-copy strong{font-size:13px}.drawing-card-copy>span{font-size:12px}.drawing-card-tools{border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg-elev) 72%, #000 28%);align-items:center;gap:8px;padding:6px 10px;display:flex}.drawing-color-swatch{border:1px solid #ffffff1a;border-radius:6px;width:28px;height:28px}.drawing-symbol{object-fit:contain;width:28px;height:28px}.drawing-kind{color:var(--muted);margin-left:auto}.drawing-kind .command-icon{opacity:.7;width:17px;height:17px}.drawing-focus{border:1px solid var(--line);background:var(--surface-field);border-radius:6px;flex:none;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.drawing-focus .command-icon{width:15px;height:15px}.team-title{border-radius:999px;place-self:start;max-width:100%;padding:3px 9px;display:inline-block;font-size:13px!important}.team-title.is-area-linked{background:var(--team-color);color:var(--team-text,#fff);box-shadow:0 0 0 1px color-mix(in srgb, var(--team-color) 70%, #fff 30%), 0 0 0 4px color-mix(in srgb, var(--team-color) 22%, transparent)}.team-card-header>.info-card__copy{flex:1;gap:6px}.team-card-header>.info-card__copy>span{padding-left:9px}.team-members button>.command-icon{grid-row:1/3;width:20px;height:20px}.team-members button>span:not(.team-member-focus){grid-area:1/2;font-size:12px;font-weight:600}.team-member-focus{border:1px solid var(--line);border-radius:6px;grid-area:1/3/3;place-items:center;width:26px;height:26px;display:grid}.team-member-focus .command-icon{width:15px;height:15px}.info-card--tracker{border-left:4px solid var(--tracker-color,var(--line))}.tracker-device-icon{place-items:center;width:24px;height:30px;display:grid}.tracker-device-icon .command-icon{width:21px;height:21px}.mapboxgl-ctrl-group{background:var(--surface-field)!important;border-color:var(--line)!important;border-radius:8px!important}.mapboxgl-ctrl-group button{filter:var(--icon-filter)}.settings-backdrop{z-index:150;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050e1ab8;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.settings-dialog{border:1px solid var(--line);background:var(--bg-elev);width:min(560px,100%);max-height:calc(100dvh - 48px);color:var(--text);border-radius:8px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 24px 64px #030c1861}.settings-dialog__header{border-bottom:1px solid var(--line);align-items:center;gap:10px;min-height:60px;padding:12px 18px;display:flex}.settings-dialog__header h2{flex:1;margin:0;font-size:20px;font-weight:650}.settings-dialog__header>.command-icon{width:22px;height:22px}.settings-dialog__body{overscroll-behavior:contain;gap:22px;padding:20px;display:grid;overflow:auto}.settings-section{border:0;min-width:0;margin:0;padding:0}.settings-section legend{color:var(--text);align-items:center;gap:8px;margin-bottom:12px;padding:0;font-size:13px;font-weight:700;display:flex}.settings-section legend .command-icon{opacity:.75;width:17px;height:17px}.language-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.language-option{border:1px solid var(--line);background:var(--surface-field);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:5px;min-height:38px;padding:8px 10px;font-size:12px;display:flex;position:relative}.language-option input{opacity:0;width:1px;height:1px;position:absolute}.language-option.is-selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--surface-field))}.language-option:focus-within{outline:2px solid var(--accent);outline-offset:2px}.language-option .command-icon{width:15px;height:15px}.settings-theme-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.settings-theme-options button{border:1px solid var(--line);background:var(--surface-field);min-height:38px;color:var(--text);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;font-size:12px;display:flex}.settings-theme-options button.is-selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, var(--surface-field))}.settings-theme-options .command-icon{width:17px;height:17px}.settings-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:42px;font-size:12px;display:flex}.settings-switch{border:1px solid var(--line);background:var(--surface-field);cursor:pointer;border-radius:12px;flex:none;align-items:center;width:36px;height:21px;padding:2px;display:inline-flex}.settings-switch>span{background:var(--muted);border-radius:50%;width:15px;height:15px;transition:transform .15s}.settings-switch[aria-checked=true]{border-color:var(--action-bg);background:var(--action-bg)}.settings-switch[aria-checked=true]>span{background:#fff;transform:translate(15px)}.settings-label-scale{grid-template-columns:1fr auto;gap:10px;margin-top:16px;font-size:12px;display:grid}.settings-label-scale output{color:var(--muted);font-variant-numeric:tabular-nums}.settings-label-scale input{width:100%;accent-color:var(--accent);grid-column:1/-1}.settings-dialog__footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.settings-dialog__footer>span{color:var(--muted);font-size:11px}.settings-dialog__footer .button--primary{color:#fff;background:var(--action-bg);border-color:#0000}.settings-dialog__footer .button{border-radius:6px;min-height:34px;font-size:12px}:root[data-theme=light] .app-header,:root[data-theme=light] .scan-card,:root[data-theme=light] .state-card{background:var(--bg-elev);border-color:var(--line)}:root[data-theme=light] .drawing-card-tools,:root[data-theme=light] .panel-tabs{background:var(--surface-soft)}@media (width<=1350px){.viewer-read-only{display:none}}@media (width<=1100px){.viewer-content,.viewer--features-closed .viewer-content{grid-template-columns:minmax(0, 1fr) var(--panel-width)}.viewer--teams-closed .viewer-content{grid-template-columns:minmax(0,1fr)}.info-panel--features{display:none}.panel-tabs{grid-template-columns:1fr 1fr 1fr}.panel-tabs .tab-features{display:flex}.viewer-footer{gap:10px}.viewer-footer__session strong{max-width:140px}.viewer-toolbar{gap:8px}.viewer-title h1{font-size:13px}.viewer-tool-group{padding-inline:8px}}@media (width<=700px){.brand-tagline{display:none}.app-header{gap:10px;padding-inline:12px}.brand-mark{width:34px;height:34px}.scan-page{align-items:start;padding:14px 12px}.state-page{align-items:start;padding:18px 10px}.scan-card{border-radius:15px;padding:16px 14px}.state-card{border-radius:17px;padding:20px 15px}.scan-card h1{font-size:24px}.state-card h1{font-size:27px}.viewer{grid-template-rows:calc(103px + env(safe-area-inset-top)) minmax(0, 1fr) auto}.viewer-toolbar{padding:max(5px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) 5px max(8px, env(safe-area-inset-left));grid-template-rows:36px 48px;grid-template-columns:minmax(0,1fr) auto;gap:4px 7px;display:grid}.viewer-title{grid-area:1/1;justify-content:start}.viewer-title h1{font-size:13px}.viewer-title>div>span{font-size:10px}.viewer-title .live-pulse{display:none}.viewer-controls{grid-area:2/1/auto/-1;justify-content:space-between}.viewer-tool-group{border:0;gap:5px;height:100%;padding:14px 6px 0}.viewer-tool-group--navigation{padding-left:0}.viewer-tool-group--map{padding-right:0}.tool-group-label{font-size:9px;top:1px;left:6px}.viewer-tool-group--navigation .tool-group-label{left:0}.viewer-toolbar-actions{grid-area:1/2;gap:6px}.viewer .icon-button{width:31px;height:31px;min-height:31px}.viewer .icon-button .command-icon{width:18px;height:18px}.viewer-content{display:block}.map-shell{position:absolute;inset:0}.info-panel--teams{z-index:10;border-top:1px solid var(--line);border-left:0;width:auto;max-height:43%;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -4px 18px #000a1933}.info-panel--teams>.panel-heading{display:none}.panel-tabs{padding:5px 8px}.panel-list{max-height:210px;padding:8px}.selection-details{max-height:90px;padding:10px}.viewer-footer{flex-wrap:wrap;gap:8px;min-height:32px;font-size:9px}.viewer-footer__session{flex:auto}.viewer-footer__session strong{max-width:100px}.viewer-footer>span:not(.viewer-footer__session):not(.viewer-footer__status){display:none}.viewer-footer__status{max-width:55%}.viewer:not(.viewer--teams-closed) .mapboxgl-ctrl-bottom-right,.viewer:not(.viewer--teams-closed) .mapboxgl-ctrl-bottom-left{bottom:calc(43% + 4px)}.settings-backdrop{padding:12px}.settings-dialog{max-height:calc(100dvh - 24px)}.settings-dialog__body{gap:18px;padding:16px}.language-options{grid-template-columns:1fr 1fr}}@media (width<=360px){.viewer .icon-button{width:28px;height:28px;min-height:28px}.viewer-tool-group{gap:3px;padding-inline:4px}}@media (width<=420px){.brand-name{font-size:12px}.language-control select{width:108px;min-height:34px;font-size:12px}.scan-method{min-height:48px;padding:6px 10px}.scan-method--camera{min-height:56px}.scan-method__icon{width:34px;height:34px}.confirm-dialog{padding:18px}.confirm-dialog__actions{grid-template-columns:1fr 1fr;display:grid}.confirm-dialog__actions .button{padding-inline:10px}.install-dialog .confirm-dialog__actions{grid-template-columns:1fr}}@media (width<=360px){.app-header--installable .brand-name{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.live-message-launcher{z-index:18;left:calc(50% - 10px);bottom:max(16px, env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:28px;width:min(280px,100% - 32px);display:flex;position:absolute;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 18px #0000004d}.live-message-launcher>button{color:#fff;cursor:pointer;letter-spacing:.05em;border:0;border-radius:0;flex:1;justify-content:center;align-items:center;gap:8px;min-width:0;min-height:46px;padding:10px 12px;font-size:12px;font-weight:750;display:inline-flex}.live-message-launcher .command-icon{filter:brightness(0)invert();width:21px;height:21px}.live-text-launcher{background:var(--action-bg)}.live-text-launcher:hover{background:color-mix(in srgb, var(--action-bg), white 12%)}.live-message-launcher .live-record-launcher{background:#b3261e;border-left:1px solid #ffffff4d}.live-message-launcher .live-record-launcher:hover{background:#cb332a}.live-message-launcher>button:disabled{opacity:.5;cursor:default}.live-message-launcher>button:focus-visible{outline-offset:-5px;outline:2px solid #fff}.viewer--features-closed .live-message-launcher{left:calc(50% - 160px)}.viewer--teams-closed .live-message-launcher{left:calc(50% + 150px)}.viewer--features-closed.viewer--teams-closed .live-message-launcher{left:50%}.voice-backdrop{z-index:160;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#050e1ab8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.voice-dialog{border:1px solid var(--line);width:min(480px,100%);max-height:calc(100dvh - 40px);color:var(--text);background:var(--bg-elev);border-radius:8px;flex-direction:column;display:flex;overflow:auto;box-shadow:0 24px 64px #030c1861}.voice-dialog__body{padding:24px 20px}.voice-dialog__body>p[role=status]{color:var(--muted);align-items:center;gap:12px;font-size:13px;display:flex}.voice-dialog .settings-dialog__footer{flex-wrap:wrap;justify-content:flex-end}.voice-dialog .button{border-radius:6px;min-height:38px;font-size:12px}.voice-dialog .button--primary{background:var(--action-bg);color:#fff;border-color:#0000}.voice-dialog .button--primary .command-icon{filter:brightness(0)invert()}.voice-dialog button:disabled{opacity:.5;cursor:default}.voice-recording-state{flex-direction:column;align-items:center;gap:14px;display:flex}.voice-recording-pulse{color:#fff;background:#b3261e;border-radius:50%;place-items:center;width:64px;height:64px;animation:1.6s ease-in-out infinite voice-record-pulse;display:grid;box-shadow:0 0 0 8px #b3261e1f}.voice-recording-pulse .command-icon{filter:brightness(0)invert();width:28px;height:28px}.voice-recording-state>strong{font-variant-numeric:tabular-nums;font-size:32px}.voice-recording-state>span:not(.voice-recording-pulse){color:var(--muted);font-size:12px}.voice-stop-button{margin-top:8px}.voice-review{gap:12px;display:grid}.voice-review p{color:var(--muted);margin:0;font-size:13px}.voice-review audio{width:100%}.voice-review label{margin-top:6px;font-size:12px}.voice-review input{border:1px solid var(--line);width:100%;min-width:0;color:var(--text);background:var(--surface-field);border-radius:6px;padding:10px}.voice-sent{text-align:center;justify-items:center;gap:12px;display:grid}.voice-sent>.command-icon{filter:none;background:#4caf50;border-radius:50%;width:44px;height:44px;padding:5px}.voice-sent h3{margin:0;font-size:20px}.voice-sent p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}@keyframes voice-record-pulse{50%{box-shadow:0 0 0 14px #b3261e0f}}@media (width<=1100px){.viewer .live-message-launcher{left:calc(50% - 160px)}.viewer--teams-closed .live-message-launcher{left:50%}}@media (width<=700px){.viewer .live-message-launcher{left:50%;bottom:calc(var(--live-bottom-panel-height,43%) + 12px);min-height:44px}.viewer--teams-closed .live-message-launcher{bottom:16px}.voice-backdrop{padding:12px}.voice-dialog{max-height:calc(100dvh - 24px)}.voice-dialog__body{padding:20px 16px}.voice-dialog .settings-dialog__footer{gap:8px}.voice-dialog .button{padding-inline:12px}}@media (prefers-reduced-motion:reduce){.voice-recording-pulse{animation:none}}.text-message-dialog textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:140px;max-height:35dvh;color:var(--text);background:var(--surface-field);font:inherit;border-radius:6px;padding:12px;font-size:14px;line-height:1.5;display:block}.text-message-dialog textarea:focus-visible{outline:2px solid var(--action-bg);outline-offset:1px}.text-character-count{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;font-size:11px}@media (width<=700px){.text-message-dialog textarea,.text-message-dialog input{font-size:16px}}
