@font-face{font-family:system;src:local("Segoe UI")}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;font-family:system,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#f6f8f5;background:#102624}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer;color:inherit;border:0;background:none}button:focus-visible,a:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #c9ed88;outline-offset:3px}button:disabled{opacity:.4;cursor:default}#viewer,#scene{width:100%;height:100%;position:absolute;inset:0}#scene{touch-action:none;display:block;cursor:grab}#scene:active{cursor:grabbing}header{position:absolute;top:0;left:0;right:0;height:110px;padding:24px 32px;display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(#071310a6,transparent);pointer-events:none}.brand{display:flex;gap:10px;align-items:center;text-decoration:none;color:white;font-size:22px;font-weight:750;letter-spacing:2px;line-height:1;pointer-events:auto}.brand-mark{display:flex;align-items:center;justify-content:center;background:#c9ed88;width:45px;height:45px;border-radius:12px;color:#142b28;font-size:39px;letter-spacing:-4px;padding-right:4px}.brand-mark span{font-size:26px;align-self:flex-end;margin-bottom:5px}.brand-sub{display:block;font-size:9px;letter-spacing:2.5px;margin-top:6px;font-weight:500}.header-actions{display:flex;gap:12px;align-items:center;pointer-events:auto}.preview-label{font-size:10px;letter-spacing:1.5px;font-weight:650;border:1px solid #ffffff45;padding:8px 10px;border-radius:4px;background:#10262440}.icon-button{width:36px;height:36px;border:1px solid #ffffff35;border-radius:50%;background:#10262480;font-size:20px;display:grid;place-items:center;line-height:1}.icon-button:hover{background:#c9ed88;color:#17332b}.project-card{position:absolute;top:115px;left:32px;pointer-events:none;text-shadow:0 1px 12px #071310}.eyebrow{font-size:10px;letter-spacing:1.8px;margin:0 0 8px;color:#c9ed88;font-weight:650}h1{font-size:28px;font-weight:580;margin:0 0 8px;letter-spacing:-.7px}.subtle{font-size:12px;color:#f1f6e9d0;margin:0}h2{margin:0;font-weight:550;letter-spacing:-.4px}.map-panel{position:absolute;left:32px;bottom:72px;width:256px;background:#102624ed;backdrop-filter:blur(16px);border:1px solid #ffffff26;border-radius:17px;box-shadow:0 8px 32px #06110e40;overflow:hidden}.map-heading{padding:18px 18px 0;display:flex;justify-content:space-between;align-items:center}.map-heading h2{font-size:19px}.map-heading .eyebrow{font-size:9px;margin-bottom:5px}.map-heading .icon-button{width:28px;height:28px;font-size:22px;border:0;background:#ffffff0c}#map{display:block;width:100%;height:245px;background:radial-gradient(#bde58e0c 1px,transparent 1px);background-size:12px 12px}.map-dot{cursor:pointer;stroke:#162f29;stroke-width:2;fill:#8aa69a;transition:fill .2s}.map-dot:hover{fill:#fff}.map-dot.active{fill:#c9ed88;stroke:#e5ffba;stroke-width:2}.map-number{font-size:8px;fill:#18392f;pointer-events:none;font-weight:bold}.map-footer{display:flex;justify-content:space-between;font-size:10px;color:#aec1b7;margin:0 18px 15px}.legend-dot{display:inline-block;width:6px;height:6px;background:#c9ed88;border-radius:50%;margin-right:4px}.station-select-label{position:absolute;width:1px;height:1px;overflow:hidden}#station-select{color:#e8f2e9;background:#18352e;border:0;border-top:1px solid #ffffff15;padding:10px 18px;width:100%;font-size:12px}#status{position:absolute;bottom:26px;left:32px;display:flex;align-items:center;gap:8px;font-size:11px;color:#edf6e8;text-shadow:0 1px 5px #000;background:#10262470;border-radius:12px;padding:6px 10px;max-width:270px}.status-dot{width:5px;height:5px;background:#c9ed88;flex-shrink:0;border-radius:50%}.toolbar{position:absolute;left:50%;transform:translateX(-50%);bottom:64px;display:flex;align-items:center;gap:4px;padding:7px;background:#102624f2;border:1px solid #ffffff28;border-radius:14px;box-shadow:0 5px 30px #0003;white-space:nowrap}.toolbar button{padding:10px 12px;font-size:12px;font-weight:520;border-radius:8px}.toolbar button:hover{background:#ffffff18}.segmented{display:flex;gap:3px}.toolbar .selected{background:#c9ed88;color:#143329}.toolbar .selected:hover{background:#d9f5a7}.toolbar-divider{width:1px;height:25px;background:#ffffff20;margin:0 3px}#floor[aria-pressed=true]{color:#d1efab}#hint{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);font-size:11px;white-space:nowrap;text-shadow:0 2px 6px #000;margin:0;padding:5px 10px;border-radius:20px;background:#10262455}#hint span{padding:0 10px;color:#c9ed88}#loading{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#102624;z-index:10;transition:opacity .25s}#loading p{font-size:13px;letter-spacing:.3px}.spinner{width:32px;height:32px;border:2px solid #ffffff25;border-top-color:#c9ed88;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#loading.loaded{opacity:0;pointer-events:none}#hotspots{position:absolute;inset:0;pointer-events:none;overflow:hidden}.hotspot{position:absolute;width:44px;height:28px;border:2px solid #ffffffe0;background:#f5fff04a;box-shadow:0 3px 12px #061b1655;border-radius:50%;pointer-events:auto;transform:translate(-50%,-50%);transition:background .15s;font-size:11px;font-weight:700;text-shadow:0 1px 3px #0009}.hotspot:hover{background:#c9ed88aa;border-color:#c9ed88;transform:translate(-50%,-50%) scale(1.15)}.hotspot span{position:absolute;left:50%;top:-28px;transform:translateX(-50%);background:#102624ed;padding:6px 8px;border-radius:5px;opacity:0;font-size:10px;white-space:nowrap}.hotspot:hover span,.hotspot:focus-visible span{opacity:1}dialog{background:#102624;color:#e7efe9;border:1px solid #7c9a8a;width:min(480px,90vw);border-radius:20px;padding:30px;box-shadow:0 25px 150px #0009}dialog::backdrop{background:#02191099;backdrop-filter:blur(5px)}dialog h2{font-size:25px;margin:12px 0 20px}dialog p{line-height:1.6;font-size:14px}.dialog-close{position:absolute;right:16px;top:16px}.fineprint{font-size:12px!important;color:#aec1b7}dl{border-top:1px solid #ffffff25;border-bottom:1px solid #ffffff25;padding:12px 0}dl div{display:flex;justify-content:space-between;gap:15px;margin:10px 0;font-size:12px}dt{color:#aec1b7}dd{text-align:right;margin:0}#error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#102624f5;padding:30px;border-radius:15px;max-width:90vw;z-index:20}#error button{background:#c9ed88;color:#102624;padding:10px 20px;border-radius:6px}#error p{font-size:14px;line-height:1.5}#map-panel[hidden],#error[hidden]{display:none}
@media(max-width:1150px){.map-panel{width:220px;left:20px;bottom:140px}.map-heading{padding:14px 14px 0}#map{height:205px}.project-card{left:24px}#status{left:20px;bottom:22px;font-size:10px;max-width:200px}#hint{bottom:31px}.toolbar{bottom:66px}header{padding:22px 24px}}
@media(max-width:680px){header{padding:18px 18px;height:100px}.brand{font-size:18px}.brand-mark{width:38px;height:38px;font-size:32px;border-radius:10px}.brand-sub{font-size:8px}.header-actions{gap:8px}.preview-label{display:none}.project-card{top:91px;left:20px}h1{font-size:23px}.project-card .eyebrow{font-size:9px}.map-panel{left:16px;bottom:140px;width:182px}.map-heading h2{font-size:16px}.map-heading .eyebrow{font-size:8px}#map{height:180px}.map-footer{margin:0 12px 10px;font-size:9px}.toolbar{bottom:52px;max-width:calc(100vw - 20px);padding:5px;gap:1px}.toolbar button{font-size:11px;padding:10px 8px}.toolbar-divider{margin:0 1px}.segmented button{padding:10px 8px}.segmented button span{display:none}#hint{font-size:10px;bottom:19px;padding:5px 6px}#hint span{padding:0 4px}#status{bottom:auto;top:181px;left:16px;font-size:10px;max-width:260px}.map-panel[hidden]{display:none}.hotspot{width:38px;height:25px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.spinner{animation:none}}
/* Branded controls and geometry tools */
.company-brand{width:155px;height:64px;position:relative;overflow:hidden;border-radius:5px;background:#efd216;box-shadow:0 3px 15px #0003;flex-shrink:0}.company-brand img{position:absolute;height:64px;width:auto;max-width:none;right:0;top:0}.header-actions{margin-left:12px}.hotspot{width:66px;height:43px;color:#092a38;font-size:15px;font-weight:800;background:#23d5f5e8;border:3px solid #fff;box-shadow:0 0 0 5px #02bdd345,0 5px 20px #001e2eaa;text-shadow:none}.hotspot:hover,.hotspot:focus-visible{background:#f6da24;border-color:#fff;box-shadow:0 0 0 8px #f6da2450,0 6px 20px #001e2eaa}.hotspot span{color:white}.tool-strip{position:absolute;right:24px;bottom:130px;display:flex;gap:7px}.tool-strip button{padding:11px 14px;border:1px solid #ffffff45;background:#102624ee;border-radius:10px;font-size:13px;box-shadow:0 4px 16px #0003}.tool-strip button[aria-expanded=true]{background:#efd216;color:#142a29;border-color:#efd216}.tool-panel{position:absolute;right:24px;bottom:186px;width:350px;max-height:calc(100vh - 280px);overflow:auto;background:#102624f5;border:1px solid #ffffff40;border-radius:15px;padding:18px;box-shadow:0 10px 35px #0005;backdrop-filter:blur(12px);z-index:5}.tool-panel[hidden],.tool-strip [hidden]{display:none}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.panel-heading h2{font-size:18px}.panel-heading button{font-size:26px;width:30px;height:30px}.measure-types{display:flex;gap:4px}.measure-types button{padding:9px 7px;font-size:12px;border:1px solid #ffffff40;border-radius:6px;flex:1}.measure-types button[aria-pressed=true]{background:#efd216;color:#132c28;border-color:#efd216}.tool-panel p{font-size:12px;line-height:1.5;margin:12px 0}.tool-panel .tool-note{color:#acbdb8;font-size:11px;margin-bottom:0}.tool-panel label{font-size:12px;display:block;margin:14px 0}.tool-panel input[type=range]{display:block;width:100%;margin:12px 0 6px;accent-color:#efd216}.tool-panel output{float:right;color:#f6da24}.tool-panel select{display:block;width:100%;background:#1d3a33;color:white;border:1px solid #ffffff40;border-radius:5px;padding:7px;margin-top:5px}.measure-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.measure-actions button{font-size:11px;border:1px solid #ffffff40;border-radius:5px;padding:8px 9px}.measure-actions label{margin:0 0 0 auto;font-size:10px}.measure-actions select{font-size:11px;padding:4px}.measure-actions button:hover{background:#ffffff20}#measure-status{color:#9cebf5;min-height:36px}#measure-result:empty{display:none}#measure-result{font-size:27px;color:#f6da24;font-weight:650;padding:12px 0;border-top:1px solid #ffffff25;margin-top:10px}#measure-result small{display:block;font-size:11px;font-weight:400;color:#bdcdc7;margin-top:5px}#measure-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}#measure-overlay line{stroke:#ffe22b;stroke-width:3;filter:drop-shadow(0 1px 2px #000)}#measure-overlay circle{fill:#23d5f5;stroke:#fff;stroke-width:2}#measure-overlay text{fill:white;stroke:#102624;stroke-width:4px;paint-order:stroke;font-size:14px;font-weight:700}.measuring #scene{cursor:crosshair}.measuring .hotspot{display:none!important}#transition-view{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}.map-trace{stroke:#c6dad1;stroke-width:1.4;stroke-linecap:round;fill:none;opacity:.75}.map-trace-note{font-size:9px;color:#adc4b8;padding:0 16px 8px}.toolbar{z-index:6}.tool-strip{z-index:6}
@media(max-width:680px){.company-brand{width:126px;height:50px}.company-brand img{height:50px}.hotspot{width:61px;height:41px;font-size:14px}.tool-strip{bottom:111px;right:12px;gap:5px}.tool-strip button{font-size:12px;padding:9px 11px}.tool-panel{right:12px;bottom:161px;width:min(350px,calc(100vw - 24px));max-height:calc(100dvh - 240px);padding:14px}.measure-types button{font-size:11px}.map-panel{bottom:165px}.project-card{top:92px}#status{top:178px}.header-actions{gap:5px}.header-actions .icon-button{width:32px;height:32px}.tool-panel .tool-note{font-size:10px}.tool-panel p{margin:9px 0}#measure-result{font-size:24px}}

.toolbar [hidden]{display:none!important}
@media(max-width:680px){#measure-panel{padding:12px}#measure-panel .panel-heading{margin-bottom:6px}#measure-panel .panel-heading h2{font-size:15px}#measure-panel .panel-heading button{height:24px}#measure-panel .tool-note{display:none}#measure-panel p{font-size:11px;margin:8px 0}#measure-status{min-height:0}#measure-panel .measure-actions button{padding:7px;font-size:10px}#measure-panel .measure-actions select{font-size:10px}#measure-panel .measure-types button{padding:8px 6px}#measure-result{padding:7px 0;font-size:22px}#measure-result small{font-size:10px}}

.walking #hotspots,.walking #annotations,.walking #measure-overlay{visibility:hidden}.walking #scene{pointer-events:none}
#annotations{position:absolute;inset:0;pointer-events:none}.annotation{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:2px solid white;border-radius:5px;background:#f3d623;color:#122824;padding:8px 12px;box-shadow:0 3px 14px #0008;font-size:13px;font-weight:750;white-space:nowrap}.annotation.photo{background:#48dce8}.annotation:hover{background:white}
#share-panel,#conversation-panel{z-index:5;max-height:calc(100dvh - 220px);overflow:auto}#shared-list,#dimension-list{max-height:190px;overflow:auto;margin:10px 0}.saved-row{display:flex;gap:8px;justify-content:space-between;align-items:center;border-bottom:1px solid #ffffff22}.saved-row button{padding:9px 3px;text-align:left;font-size:12px}.saved-row button:last-child{font-size:20px;flex-shrink:0}#dimension-list .saved-row button:first-child{flex:1}.text-action{font-size:12px;text-decoration:underline;padding:6px 0}.tool-panel input[type=text],.tool-panel input:not([type]),.tool-panel textarea{width:100%;margin-top:7px;padding:10px;background:#09221c;color:white;border:1px solid #7d9b90;border-radius:6px;font:inherit}.tool-panel textarea{min-height:90px;resize:vertical;font-size:13px}.tool-panel [hidden]{display:none!important}#conversation-log{max-height:230px;overflow:auto}#conversation-log article{border-bottom:1px solid #ffffff25;padding:9px 0}#conversation-log p{white-space:pre-wrap;overflow-wrap:anywhere}.message-heading{display:flex;gap:8px;justify-content:space-between;font-size:10px;color:#bdd0c8}.message-heading button{font-size:20px}#attached-photo{width:100%;max-height:240px;object-fit:contain;margin:12px 0}#download-photo{color:#f6dc26;font-size:12px}#share-status,#message-status,#image-save-status{font-size:11px;color:#c9e3d8}.placing #scene{cursor:crosshair}.placing #hotspots{display:none}#snapshot-dialog{width:min(920px,94vw);max-height:94vh;overflow:auto}#snapshot-image{width:100%;max-height:70vh;object-fit:contain;margin:12px 0}#snapshot-download{display:inline-block;background:#f3d623;color:#102624;padding:10px 18px;border-radius:6px;text-decoration:none}#snapshot-dialog .panel-heading h2{margin:0}#snapshot-dialog .panel-heading button{font-size:26px}
@media(max-width:680px){.tool-strip{left:12px;right:12px;justify-content:center;gap:4px}.tool-strip button{font-size:11px;padding:9px 7px}.measure-types button{font-size:10px;padding:8px 4px}#share-panel,#conversation-panel{max-height:calc(100dvh - 245px)}#conversation-log{max-height:160px}#dimension-list{max-height:110px}.annotation{font-size:12px;padding:7px 9px}}

.project-detail{font-size:12px;margin:5px 0;color:#fff;max-width:min(450px,80vw)}#project-panel label{display:block;margin:14px 0}#project-save-status{font-size:11px}#project-panel{z-index:6}

/* Compact viewer controls and conversations. */
#status[hidden]{display:none!important}.project-card{background:#c9ed88cf;color:#123329;text-shadow:none;padding:9px 13px;border-radius:9px;max-width:min(420px,calc(100vw - 40px));backdrop-filter:blur(8px);border:1px solid #ecffd199}.project-card h1{font-size:25px;line-height:1.16;white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0}.project-card .project-detail{color:#15392d;font-size:11px;line-height:1.25;margin:4px 0 0}.project-card .project-detail[hidden]{display:none}#edit-name{min-height:52px;height:58px;resize:none;line-height:1.3}
.toolbar{bottom:54px;width:max-content;max-width:calc(100vw - 32px);flex-wrap:wrap;justify-content:center;gap:4px;padding:7px}.toolbar .tool-strip{display:contents;position:static}.toolbar button,.toolbar .tool-strip button{padding:10px 11px;font-size:12px;border:0;box-shadow:none;background:transparent;border-radius:7px}.toolbar .tool-strip button[aria-expanded=true],.toolbar .selected{background:#c9ed88db;color:#143329}.toolbar .tool-strip button:hover{background:#c9ed8844}.toolbar .tool-strip button[aria-expanded=true]:hover{background:#c9ed88}.toolbar .segmented{gap:3px}.toolbar .segmented span{display:inline}.tool-panel{bottom:116px;width:320px;max-height:calc(100dvh - 220px);padding:12px 16px 12px 12px;scrollbar-gutter:stable}.map-panel{bottom:124px}.panel-heading{margin-bottom:6px}.panel-heading h2{font-size:16px}.panel-heading button{width:26px;height:26px;font-size:23px;flex-shrink:0}.tool-panel label{margin:8px 0;font-size:11px}.tool-panel p{margin:6px 0;line-height:1.3;font-size:11px}.tool-panel input:not([type]),.tool-panel textarea{padding:7px;margin-top:4px;font-size:12px}.tool-panel .measure-actions{gap:5px}.tool-panel .measure-actions button{padding:6px 8px}.tool-panel #share-status{margin:7px 0;font-size:10px}
#share-panel,#conversation-panel{max-height:calc(100dvh - 220px)}#shared-list,#dimension-list{margin:6px 0;max-height:175px;scrollbar-gutter:stable;padding-right:7px;overflow-x:hidden}.saved-row{gap:6px}.saved-row button{padding:5px 2px;font-size:11px;overflow-wrap:anywhere}.saved-row button:first-child{flex:1;min-width:0}.saved-row button:last-child{font-size:18px;flex:0 0 26px;text-align:center;margin-right:4px;min-height:28px}#conversation-log{max-height:170px;padding-right:8px;scrollbar-gutter:stable;overflow-x:hidden}#conversation-log article{padding:5px 0}#conversation-log p{margin:3px 0 0;font-size:12px;line-height:1.25}.message-heading{font-size:9px;line-height:1.2;align-items:center}.message-heading button{font-size:18px;width:24px;min-width:24px;margin-right:4px;padding:0;line-height:1}#attached-photo{height:auto;max-height:145px;width:100%;object-fit:contain;margin:5px 0}#download-photo{font-size:10px}#reply-editor[hidden]{display:none}#reply-editor label{margin:7px 0 2px}#reply-editor textarea{min-height:48px;height:52px;max-height:110px;resize:vertical}#message-status:empty{display:none}#message-status{font-size:10px;margin:5px 0}.tool-panel #delete-location{margin-left:auto}
#reply-name-dialog{padding:18px;width:min(330px,90vw)}#reply-name-dialog h2{font-size:18px;margin:0}#reply-name-dialog label{font-size:12px}#reply-name{display:block;width:100%;background:#09221c;color:white;border:1px solid #8da999;border-radius:6px;padding:10px;margin:8px 0;font:inherit}#reply-name-confirm{background:#c9ed88;color:#143329;padding:8px 16px;border-radius:6px}#reply-name-error{font-size:11px;margin:5px 0}#reply-name-error:empty{display:none}
@media(max-width:800px){.toolbar{gap:3px}.toolbar button,.toolbar .tool-strip button{font-size:11px;padding:9px 8px}.toolbar-divider{margin:0 1px}.tool-panel{bottom:112px}}
@media(max-width:680px){.project-card{left:16px;top:84px;max-width:calc(100vw - 32px);padding:7px 10px}.project-card h1{font-size:21px}.toolbar{bottom:48px;max-width:calc(100vw - 20px);padding:5px;gap:3px}.toolbar button,.toolbar .tool-strip button{font-size:11px;padding:9px 8px}.toolbar .segmented span{display:inline}.tool-panel{bottom:146px;right:12px;width:min(320px,calc(100vw - 24px));max-height:calc(100dvh - 240px);padding:10px 15px 10px 10px}.map-panel{bottom:150px}#share-panel,#conversation-panel{max-height:calc(100dvh - 240px)}#conversation-log{max-height:140px}#attached-photo{max-height:115px}#hint{font-size:9px}#status{top:auto;bottom:24px;max-width:160px}}
/* Pannable map aligned with the control dock. */
:root{--dock-bottom:54px;--map-right:288px}
.map-panel,.toolbar{bottom:var(--dock-bottom)}
.map-open .toolbar{left:calc((100vw + var(--map-right) - 10px)/2);right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100vw - var(--map-right) - 38px)}
.map-panel,.project-card,header{z-index:3}
#map{touch-action:none;cursor:grab;user-select:none}#map.panning{cursor:grabbing}#map.panning .map-dot{cursor:grabbing}
#project-card{pointer-events:auto;padding-right:42px}#project-minimize{position:absolute;right:7px;top:7px;width:27px;height:27px;border-radius:50%;background:#1233291c;color:#123329;font-size:22px;line-height:1}
#project-label[hidden]{display:none}#project-card.minimized{padding:5px}#project-card.minimized #project-minimize{position:static;width:auto;height:auto;padding:5px 8px;border-radius:5px;font-size:12px;background:transparent}
#measure-units{width:auto;margin:0 0 0 auto;max-width:120px}#image-save-status:empty{display:none}
.photo-actions{display:flex;align-items:center;gap:14px;margin:4px 0 7px}.photo-actions a{color:#f6dc26;font-size:11px}#save-photo{padding:6px 9px;border:1px solid #ffffff45;border-radius:5px;text-decoration:none}
#hint{max-width:calc(100vw - 24px);width:max-content;white-space:normal;text-align:center;line-height:1.35;bottom:15px}
@media(max-width:1150px){:root{--map-right:240px}}
@media(max-width:680px){:root{--dock-bottom:64px;--map-right:198px}.map-panel,.toolbar{bottom:var(--dock-bottom)}.map-open .toolbar{left:calc((100vw + var(--map-right) - 2px)/2);max-width:calc(100vw - var(--map-right) - 22px)}.map-open .toolbar .segmented{flex-wrap:wrap;justify-content:center}.map-open .toolbar-divider{display:none}.tool-panel{bottom:220px}#project-card{padding-right:40px}#hint{bottom:10px}}
@media(max-width:480px){:root{--map-right:156px}.map-panel{width:140px}.map-heading{padding:10px 9px 0}.map-heading h2{font-size:14px}.map-footer{margin:0 8px 9px;font-size:8px}.map-trace-note{font-size:8px;padding:0 9px 7px}#map{height:160px}}
/* Keep the controls and their hint centered on the full view. */
.toolbar,.map-open .toolbar{left:50%;right:auto;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px)}
#hint{left:50%;right:auto;transform:translateX(-50%);text-align:center}
.tool-panel{bottom:var(--tool-bottom,116px)}
@media(max-width:680px){.toolbar,.map-open .toolbar{max-width:calc(100vw - 20px)}.map-open .toolbar .segmented{flex-wrap:nowrap}.map-open .toolbar-divider{display:block}}
#measure-result:has(>div){display:grid;grid-template-columns:1fr 1fr;gap:10px}
#measure-result>div{font-size:21px;white-space:nowrap}#measure-result>div small{margin:0 0 4px;font-size:11px}
#measure-result:has(>div){display:block}#measure-result{font-size:27px}#measure-result>small{font-size:12px;margin:0 0 5px;color:#d4e6de}#measure-result .ruler-explanation{font-size:11px;font-weight:400;color:#d4e6de;margin:5px 0 8px}#measure-result details{font-size:11px;font-weight:400;color:#d4e6de;margin-top:10px}#measure-result summary{cursor:pointer;color:#b8e6ed;font-size:11px}#measure-result details p{font-size:11px;margin:7px 0}
#dimension-actions{position:absolute;z-index:8;display:flex;align-items:center;gap:6px;background:#102624f5;border:1px solid #c9ed88;border-radius:8px;padding:5px 7px;box-shadow:0 3px 15px #0006}#dimension-actions[hidden]{display:none}#delete-selected-dimension{font-size:12px;padding:6px;color:#fff}#close-dimension-actions{font-size:20px;padding:2px 5px;color:#c9ed88}#measure-overlay g.is-selected line:not(.dimension-hit){stroke-width:4px;filter:drop-shadow(0 0 3px #23d5f5)}#measure-overlay g:focus-visible{outline:none;filter:drop-shadow(0 0 4px #23d5f5)}

/* Nearly invisible space label, with text contrast independent of the photograph. */
.project-card{background:rgba(10,28,24,.10);border:1px solid #ffffff12;backdrop-filter:none;box-shadow:none;color:#fff;text-shadow:0 1px 2px #000,0 0 4px #000c}
.project-card .project-detail{color:#fff;text-shadow:0 1px 2px #000,0 0 4px #000c}
#project-minimize{color:#fff;background:#10262430;text-shadow:0 1px 2px #000}
.project-card h1{-webkit-text-stroke:.3px #0008}

/* All destinations remain clickable; blocked sightlines are intentionally quiet. */
.hotspot{transition:background .15s,opacity .15s;font-size:13px}
.hotspot.obstructed{opacity:.30;background:#23d5f599;box-shadow:0 0 0 2px #02bdd322,0 2px 6px #001e2e55;border-style:dashed}
.hotspot.uncertain{opacity:.55}
.hotspot:hover,.hotspot:focus-visible{opacity:1;z-index:2000!important}
.hotspot-leader{position:absolute;height:1px;background:#a4f4ff;transform-origin:0 50%;pointer-events:none}
.hotspot[hidden],.hotspot-leader[hidden]{display:none!important}
.measuring .hotspot-leader,.placing .hotspot-leader{display:none}
#hotspots{z-index:1}#measure-overlay,#annotations{z-index:2}

/* Circles are projected from horizontal geometry at the actual floor position. */
.hotspot.floor-circle,.hotspot.floor-circle:hover,.hotspot.floor-circle:focus-visible{padding:0;border:0;border-radius:0;background:none;box-shadow:none;transform:none;transition:opacity .15s;pointer-events:none;opacity:1}
.floor-circle svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.floor-circle-hit{fill:transparent;stroke:transparent;stroke-width:9px;pointer-events:all}
.floor-circle-ring{fill:#75e8ef30;stroke:#75e8ef;stroke-width:2px;pointer-events:none}
.floor-circle.obstructed,.floor-circle.obstructed:hover{opacity:.28}
.floor-circle.obstructed .floor-circle-ring{fill:#efffff30;stroke:#efffff;stroke-width:1.5px}
.floor-circle:hover .floor-circle-ring,.floor-circle:focus-visible .floor-circle-ring{stroke:#fff;fill:#a3edf350}
.floor-circle:focus-visible{outline:none}.floor-circle:focus-visible .floor-circle-ring{stroke-width:3px}

/* Fine continuous cross: both strokes meet at the exact pointer pixel. */
.measuring #scene,.measuring #scene:active{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25' viewBox='0 0 25 25'%3E%3Cpath d='M12 2V22M2 12H22' fill='none' stroke='%23000' stroke-opacity='.65' stroke-width='2'/%3E%3Cpath d='M12 2V22M2 12H22' fill='none' stroke='%23fff' stroke-width='.8'/%3E%3C/svg%3E") 12 12,crosshair}

.floor-circle-number{fill:#efffff;stroke:#103b43;stroke-width:.6px;paint-order:stroke;stroke-linejoin:round;font-weight:700;pointer-events:none;text-shadow:none}
.floor-circle.obstructed .floor-circle-number{fill:#efffff;stroke:#163c4266}

.start-view-control{border-top:1px solid #ffffff25;margin-top:12px;padding-top:12px}.start-view-control button{width:100%;padding:10px 14px;background:#267d86;color:white;border:1px solid #7be2ea70;border-radius:8px;font:inherit;cursor:pointer}.start-view-control button:disabled{opacity:.5;cursor:default}.start-view-control .tool-note{margin-bottom:0}

#project-edit{font-size:24px}.image-settings{border-top:1px solid #ffffff25;margin-top:12px;padding-top:12px}.image-settings summary{cursor:pointer;font-size:14px;font-weight:600;padding:5px 0}.image-settings label{margin:12px 0}

.visitor-privacy{position:fixed;right:12px;bottom:8px;border:0;background:#10262470;color:white;font:10px system-ui;border-radius:5px;padding:5px;z-index:12;cursor:pointer}.visitor-privacy-dialog{max-width:420px;background:#102624;color:white;border:1px solid #ffffff50;border-radius:12px;padding:24px}.visitor-privacy-dialog p{line-height:1.6}
