:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color), 0 1.5px var(--ol-partial-background-color), 1.5px 0 var(--ol-partial-background-color), 0 -1.5px var(--ol-partial-background-color);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{color:#e7edf4;font-synthesis:none;--panel:#111f30;--panel-soft:#17283b;--line:#ffffff1a;--muted:#91a1b4;--text:#eef4fa;--yellow:#f4c64f;--cyan:#48d6d2;--green:#51d39b;--danger:#ff867d;background:#0b1624;font-family:Segoe UI Variable,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:1040px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.topbar{border-bottom:1px solid var(--line);background:#0b1624;grid-template-columns:minmax(215px,auto) minmax(120px,1fr) auto;align-items:center;gap:24px;height:72px;padding:0 22px;display:grid}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#112033;background:var(--yellow);border-radius:12px;place-items:center;width:40px;height:40px;font:800 14px/1 Segoe UI Variable,Segoe UI,sans-serif;display:grid;box-shadow:0 8px 28px #f4c64f38}.brand h1{letter-spacing:-.02em;margin:0;font:700 17px/1.2 Segoe UI Variable,Segoe UI,sans-serif}.brand p{color:var(--muted);margin:3px 0 0;font-size:12px}.year-switch{scrollbar-width:thin;border:1px solid var(--line);background:#ffffff09;border-radius:12px;min-width:0;max-width:100%;padding:4px;display:flex;overflow-x:auto}.year-button{min-width:68px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;flex:none;padding:8px 14px;font-weight:700}.year-button:hover{color:var(--text)}.year-button:disabled{opacity:.3;cursor:not-allowed}.year-button.active{color:#102035;background:var(--yellow)}.year-button.validated:after{content:" ✓"}.top-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}#open-devis{background:var(--yellow);color:#102035;border-color:var(--yellow);white-space:nowrap}.devis-view-actions{z-index:5;text-align:center;background:#102035f2;border:1px solid #415267;border-radius:9px;flex-direction:column;align-items:center;gap:7px;max-width:calc(100% - 32px);padding:10px 16px;display:flex;position:absolute;bottom:45px;left:50%;transform:translate(-50%);box-shadow:0 3px 15px #0004}.devis-view-actions[hidden]{display:none}#save-devis-view{background:var(--yellow);color:#102035;white-space:nowrap}#devis-view-status{color:#d1e0ec;max-width:460px;font-size:12px}.connection-state{color:#9ad8bf;margin-left:6px;padding-left:14px;font-size:12px;position:relative}.connection-state:before{content:"";background:var(--green);border-radius:50%;width:7px;height:7px;position:absolute;top:50%;left:0;transform:translateY(-50%);box-shadow:0 0 0 4px #51d39b1f}.layout{grid-template-columns:minmax(0,1fr) 370px;height:calc(100% - 72px);display:grid}.map-shell{background:#132132;min-width:0;position:relative;overflow:hidden}.map{position:absolute;inset:0}.map-layer-actions{z-index:6;gap:7px;display:flex;position:absolute;top:12px;left:55px}.map-layer-toggle{color:#d9e4ee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;background:#08121de6;border:1px solid #ffffff29;border-radius:10px;align-items:center;gap:8px;min-height:34px;padding:7px 10px;font-size:11px;font-weight:700;display:inline-flex;box-shadow:0 8px 28px #0000003d}.map-layer-toggle:hover:not(:disabled){border-color:#ff5b52a6}.map-layer-toggle.active{color:#fff;background:#4a1418eb;border-color:#ff5b52}.map-layer-toggle:disabled{opacity:.5;cursor:not-allowed}.map-layer-toggle[aria-busy=true]{cursor:progress}.building-outline-swatch{background:0 0;border:1px solid #ff4038;width:13px;height:11px}.parcel-outline-swatch{background:0 0;border:1px solid #ffd166;width:13px;height:11px;transform:skew(-8deg)}.address-query-swatch{border:1px solid var(--yellow);width:15px;height:15px;color:var(--yellow);border-radius:50%;place-items:center;font:800 10px/1 Segoe UI,sans-serif;display:grid}.building-address-popup{overscroll-behavior:contain;scrollbar-gutter:stable;color:#f3f7fa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#08121df5;border:1px solid #ff5b529e;border-radius:12px;width:min(390px,100vw - 40px);max-height:min(100vh - 120px,680px);padding:12px;font-size:11px;overflow:hidden auto;box-shadow:0 16px 42px #0000006b}.building-address-popup:after{content:"";background:#08121df5;border-bottom:1px solid #ff5b529e;border-right:1px solid #ff5b529e;width:12px;height:12px;position:absolute;bottom:-7px;left:calc(50% - 7px);transform:rotate(45deg)}.building-address-popup.is-below-anchor:after{border:0;border-top:1px solid #ff5b529e;border-left:1px solid #ff5b529e;top:-7px;bottom:auto}.building-address-heading{z-index:2;background:#08121dfa;justify-content:space-between;align-items:center;gap:12px;margin:-12px -12px 0;padding:12px 12px 8px;display:flex;position:sticky;top:-12px}.building-address-heading strong{color:#fff;font-size:13px}.building-address-heading button{color:#aebccd;cursor:pointer;background:0 0;border:0;font-size:19px;line-height:1}.building-address-popup ul{gap:6px;margin:9px 0;padding:0;list-style:none;display:grid}.building-address-popup li{color:#fff;background:#ffffff0e;border-radius:7px;padding:7px 8px;line-height:1.35}.building-address-popup p{color:#d3dde7;margin:9px 0;line-height:1.45}.building-address-popup small{color:#7f90a4;margin-top:8px;font-size:9px;display:block}.bce-businesses{border-top:1px solid #ffffff21;gap:8px;margin-top:12px;padding-top:10px;display:grid}.bce-businesses h4{color:var(--yellow);margin:0;font-size:12px}.bce-business-card{background:#ffffff0b;border:1px solid #ffffff1c;border-radius:9px;gap:5px;padding:9px;display:grid}.bce-business-card>strong{color:#fff;font-size:12px}.bce-enterprise-number{color:#93a6ba;font-size:9px}.bce-contact-actions{flex-wrap:wrap;gap:5px;display:flex}.bce-contact-actions a{color:#fff1ad;text-overflow:ellipsis;white-space:nowrap;background:#ffd34d17;border:1px solid #ffd34d52;border-radius:7px;max-width:100%;padding:5px 7px;text-decoration:none;overflow:hidden}.bce-contact-actions a:hover{border-color:var(--yellow);background:#ffd34d2b}.building-address-popup .bce-no-contact,.building-address-popup .bce-empty{color:#aebccd;margin:0;font-size:10px}.building-address-popup .bce-licence-warning{color:#ffb3ad;margin-top:2px}.zoning-jump{z-index:6;color:#d9e4ee;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#08121de6;border:1px solid #ffffff29;border-radius:11px;grid-template-columns:auto minmax(230px,360px);align-items:center;gap:9px;padding:7px 9px 7px 11px;font-size:11px;font-weight:700;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 8px 28px #0000003d}.zoning-jump select{width:min(360px,36vw);min-height:32px;color:var(--text);cursor:pointer;background:#102033;border:1px solid #48d6d24d;border-radius:8px;outline:none;padding:5px 30px 5px 8px;font-size:11px}.zoning-jump select:focus{border-color:var(--cyan)}.zoning-jump select:disabled{opacity:.55;cursor:default}.address-search{z-index:7;justify-items:end;width:min(390px,100% - 24px);display:grid;position:absolute;top:64px;right:12px}.address-search-toggle,.address-search-submit{color:#fff0bd;cursor:pointer;background:#08121deb;border:1px solid #f4c64f6b;border-radius:9px;min-height:34px;padding:7px 12px;font-size:11px;font-weight:800;box-shadow:0 8px 28px #0000003d}.address-search-toggle:disabled,.address-search-submit:disabled{opacity:.5;cursor:default}.address-search-panel{color:#e6edf5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#08121df7;border:1px solid #f4c64f59;border-radius:12px;gap:9px;width:100%;margin-top:7px;padding:12px;display:grid;box-shadow:0 18px 48px #0000006b}.address-search-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.address-search-heading strong{color:#fff;font-size:13px}.address-search-heading button{color:#aebccd;cursor:pointer;background:0 0;border:0;font-size:19px}.address-search-panel label{grid-template-columns:92px minmax(0,1fr);align-items:center;gap:8px;font-size:10px;font-weight:750;display:grid}.address-search-panel select{width:100%;min-height:34px;color:var(--text);background:#102033;border:1px solid #48d6d24d;border-radius:8px;outline:none;padding:5px 28px 5px 8px;font-size:11px}.address-search-panel select:focus{border-color:var(--cyan)}.address-search-panel select:disabled{opacity:.5}.address-search-submit{color:#102035;background:var(--yellow);width:100%;box-shadow:none}.address-search-panel small{color:#8fa0b4;font-size:9px;line-height:1.4}.map.is-drawing{cursor:crosshair}.map.is-erasing{cursor:cell}.map.is-moving{cursor:move}.map.is-editing-roi{cursor:default}.map.is-address-lookup{cursor:pointer}.map-info{z-index:4;color:#ffffffe0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);pointer-events:none;background:#08121dc7;border:1px solid #ffffff1f;border-radius:8px;gap:12px;padding:7px 10px;font-size:11px;display:flex;position:absolute;bottom:34px}.map-info-left{left:12px}.map-info-right{right:12px}.attribution{z-index:4;color:#ffffffad;text-shadow:0 1px 2px #000;pointer-events:none;font-size:10px;position:absolute;bottom:10px;right:12px}.sidebar{border-left:1px solid var(--line);background:#0f1b2a;padding:18px;overflow-y:auto}.workflow-card,.library-card,.shortcut-card{border:1px solid var(--line);background:var(--panel);border-radius:16px}.workflow-card{padding:18px}.workflow-heading{justify-content:space-between;align-items:center;display:flex}.step-badge,.eyebrow{color:var(--yellow);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.workflow-card h2{letter-spacing:-.025em;margin:12px 0 6px;font:700 20px/1.25 Segoe UI Variable,Segoe UI,sans-serif}.workflow-card>p{color:var(--muted);margin:0 0 18px;font-size:13px;line-height:1.5}.button{min-height:36px;color:var(--text);background:var(--panel-soft);cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:8px 13px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.button:hover:not(:disabled){filter:brightness(1.08)}.button:disabled{opacity:.42;cursor:not-allowed}.button-large{width:100%;min-height:44px;font-size:13px}.button-small{min-height:32px;padding:6px 9px;font-size:11px}.button-primary{color:#102035;background:var(--yellow)}.button-secondary{color:#b9f5f0;background:#48d6d214;border-color:#48d6d261}.button-success{color:#09231a;background:var(--green)}.button-danger{color:#ffd5d1;background:#ff867d17;border-color:#ff867d5c}.button-absence{color:#2d0b08;background:#ff9a91;border-color:#ff867d94;width:100%;margin-top:9px;box-shadow:0 7px 22px #ff867d29}.button-skip{color:#ffe8a2;background:#f4c64f1c;border-color:#f4c64f7a;width:100%;margin-top:8px}.button-ai{color:#e4dcff;background:#a084ff1f;border-color:#a084ff6b}.button-training{color:#c9f5df;background:#51d39b1a;border-color:#51d39b6b}.button-ghost{border-color:var(--line);background:#ffffff09}.session-cancel{color:#ffd5d1;flex:none}.icon-button{border:1px solid var(--line);width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border-radius:9px;font-size:19px}.stack{gap:9px;display:grid}.ai-start-card{background:#a084ff0e;border:1px solid #a084ff40;border-radius:12px;margin-top:5px;padding:12px}.ordered-start-card{background:#f4c64f0e;border:1px solid #f4c64f47;border-radius:12px;margin-top:5px;padding:12px}.ordered-start-card p{color:var(--muted);margin:9px 0;font-size:10px;line-height:1.45}.ordered-start-card small{color:#7f90a4;margin-top:8px;font-size:9px;line-height:1.4;display:block}.zone-progress-track{background:#ffffff14;border-radius:999px;height:6px;margin:9px 0 11px;overflow:hidden}.zone-progress-track span{border-radius:inherit;background:linear-gradient(90deg, var(--yellow), var(--green));width:0;height:100%;transition:width .25s;display:block}.ordered-zone-banner{background:#f4c64f0f;border:1px solid #f4c64f40;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;padding:10px;display:flex}.ordered-zone-banner strong{color:#fff0bd;margin-top:3px;font-size:12px;display:block}.ai-start-heading,.ai-review-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.ai-state,.confidence-chip{color:#d9ceff;text-transform:uppercase;letter-spacing:.04em;background:#a084ff14;border:1px solid #a084ff4d;border-radius:999px;flex:none;padding:4px 7px;font-size:9px;font-weight:800}.ai-state.ready{color:#bdf1d8;background:#51d39b14;border-color:#51d39b59}.ai-start-card p,.ai-review-panel p{color:var(--muted);margin:9px 0;font-size:10px;line-height:1.45}.ai-start-card small{color:#7f90a4;margin-top:8px;font-size:9px;line-height:1.4;display:block}.ai-progress{grid-template-columns:repeat(3,1fr);gap:5px;margin:9px 0;display:grid}.ai-progress span{color:#aebccd;text-align:center;background:#ffffff09;border-radius:7px;padding:6px 5px;font-size:9px;line-height:1.3}.ai-progress strong{color:#e6edf5;font-size:11px;display:block}.training-progress-track{background:#ffffff14;border-radius:999px;height:6px;margin:2px 0 0;overflow:hidden}.training-progress-track span{border-radius:inherit;background:linear-gradient(90deg, #a084ff, var(--green));width:0;height:100%;transition:width .4s;display:block}.ai-review-panel{background:#a084ff11;border:1px solid #a084ff4d;border-radius:12px;margin-top:6px;padding:12px}.ai-review-heading strong{margin-top:3px;font-size:13px;display:block}.confidence-chip{font-size:11px}.ai-mask-overview{gap:5px;margin:10px 0;display:grid}.ai-mask-overview small{color:#9eacbd;font-size:9px;line-height:1.4}.candidate-group-panel{background:#48d6d211;border:1px solid #48d6d257;border-radius:10px;gap:7px;margin:10px 0;padding:10px;display:grid}.candidate-group-panel strong{color:#bdf8f3;font-size:11px}.candidate-group-panel small{color:#9bb1bd;font-size:9px;line-height:1.45}.session-years{scrollbar-width:thin;gap:7px;margin:6px 0 16px;padding:1px 1px 5px;display:flex;overflow-x:auto}.session-year{min-width:68px;color:var(--muted);text-align:center;background:#ffffff09;border-radius:8px;flex:none;padding:7px;font-size:11px;font-weight:700}.session-year.active{color:var(--yellow);outline:1px solid #f4c64f61}.session-year.validated{color:var(--green)}.candidate-workflow{background:#f4c64f11;border:1px solid #f4c64f57;border-radius:12px;margin:7px 0 14px;padding:12px}.candidate-steps{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.candidate-step{color:#7f90a4;background:#ffffff06;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:6px;min-width:0;padding:7px 6px;font-size:9px;display:flex}.candidate-step span{color:#9baabd;background:#ffffff12;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;font-weight:800;display:grid}.candidate-step strong{text-overflow:ellipsis;overflow:hidden}.candidate-step.active{color:#fff0bd;background:#f4c64f1c;border-color:#f4c64f7a}.candidate-step.active span{color:#102035;background:var(--yellow)}.candidate-step.done{color:#bcefd6}.candidate-step.done span{color:#09231a;background:var(--green)}.candidate-workflow p{color:#c7d2de;margin:10px 0;font-size:10px;line-height:1.48}.candidate-workflow small{color:#8f9fb1;margin-top:8px;font-size:9px;line-height:1.4;display:block}.candidate-pre-mask #mask-tools-section,.candidate-pre-mask #observation-section,.candidate-pre-mask #obstacles-section,.candidate-pre-mask #annotation-details,.candidate-pre-mask #classification-summary,.candidate-pre-mask #action-footer{display:none!important}.tool-section{border-top:1px solid var(--line);margin:14px 0;padding-top:14px}.tool-section h3{color:#dce6ef;margin:0 0 9px;font-size:12px}.tool-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.tool-button{border:1px solid var(--line);color:#c9d5e2;cursor:pointer;background:#ffffff09;border-radius:9px;min-height:36px;padding:7px 8px;font-size:11px;font-weight:700}.tool-button:hover{border-color:#48d6d266}.tool-button.active{color:#092526;border-color:var(--cyan);background:var(--cyan)}.annotation-hint{color:var(--muted);background:#48d6d20e;border-left:3px solid #48d6d2ad;border-radius:0 8px 8px 0;margin:10px 0 0;padding:9px 10px;font-size:10px;line-height:1.45}.annotation-hint strong{color:#c7f5f1}.brush-row{color:var(--muted);grid-template-columns:1fr 100px 42px;align-items:center;gap:8px;margin-top:10px;font-size:11px;display:grid}.brush-row input{width:100%;accent-color:var(--cyan)}.brush-row output{text-align:right}.inline-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.field-label{color:#cbd7e3;margin:0 0 6px;font-size:11px;font-weight:700;display:block}.field-control{border:1px solid var(--line);width:100%;color:var(--text);background:#0e1b2a;border-radius:9px;outline:none;padding:9px 10px;font-size:12px}.field-control:focus{border-color:#48d6d2a6}textarea.field-control{resize:vertical;min-height:52px}.check-list{grid-template-columns:1fr 1fr;gap:6px 8px;display:grid}.check-list label{color:var(--muted);align-items:flex-start;gap:6px;font-size:10px;line-height:1.35;display:flex}.check-list input{accent-color:var(--cyan);margin:1px 0 0}.metrics{grid-template-columns:1fr 1fr;gap:8px;margin:13px 0;display:grid}.metrics div{background:#ffffff09;border-radius:10px;padding:10px}.metrics span{color:var(--muted);font-size:10px;display:block}.metrics strong{color:#f3f7fa;margin-top:3px;font:700 15px/1.2 Segoe UI Variable,Segoe UI,sans-serif;display:block}.action-footer{margin-top:14px}.classification-summary{background:#51d39b0f;border:1px solid #51d39b38;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px;display:flex}.classification-summary span{color:var(--muted);font-size:10px;display:block}.classification-summary strong{color:#c7f7df;margin-top:3px;font-size:11px;line-height:1.35;display:block}.library-card{grid-template-columns:minmax(110px,.8fr) minmax(150px,1.2fr);gap:12px;margin-top:12px;padding:14px;display:grid}.library-card strong{margin-top:4px;font-size:14px;display:block}.library-card p{color:var(--muted);margin:0 0 8px;font-size:10px;line-height:1.4}.library-review{align-content:start;gap:7px;display:grid}.saved-review-controls{grid-template-columns:1fr 1fr;gap:6px;display:grid}.saved-review-controls #close-saved-review{grid-column:1/-1}.saved-review-detail{color:#f6d985;margin-top:6px;font-size:10px;line-height:1.45;display:block}.shortcut-card{color:var(--muted);gap:5px;margin-top:12px;padding:12px 14px;font-size:10px;display:grid}kbd{color:#c9d5e2;background:#ffffff0d;border:1px solid #ffffff29;border-radius:4px;padding:2px 5px}.toast{z-index:20;max-width:520px;color:var(--text);opacity:0;pointer-events:none;background:#08121df0;border:1px solid #ffffff24;border-radius:10px;padding:11px 16px;font-size:12px;transition:all .22s;position:fixed;bottom:28px;left:50%;transform:translate(-50%,12px);box-shadow:0 12px 42px #00000061}.toast.visible{opacity:1;transform:translate(-50%)}.toast.error{color:#ffd5d1;border-color:#ff867d8c}.hidden{display:none!important}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040a11c7;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.classification-popover{z-index:30;pointer-events:none;width:min(430px,100vw - 36px);max-height:calc(100vh - 94px);position:fixed;top:76px;right:18px}.modal-card.classification-card{pointer-events:auto;background:#111f30f7;width:100%;max-height:calc(100vh - 94px);overflow-y:auto;box-shadow:0 22px 70px #0000006b}.modal-card{background:#111f30;border:1px solid #ffffff24;border-radius:18px;width:min(700px,100vw - 48px);max-height:calc(100vh - 48px);padding:22px;overflow-y:auto;box-shadow:0 28px 90px #00000085}.modal-card-compact{width:min(560px,100vw - 48px)}.decision-note{border-left:3px solid var(--yellow);color:#d8e2ec;background:#f4c64f12;border-radius:0 9px 9px 0;margin:0;padding:11px 12px;font-size:12px;line-height:1.5}.result-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.result-grid>div{background:#48d6d20e;border:1px solid #48d6d233;border-radius:12px;padding:14px}.result-grid span,.result-grid small{color:var(--muted);font-size:10px;line-height:1.4;display:block}.result-grid strong{color:#d9fffc;margin:5px 0 3px;font-size:20px;display:block}.result-grid .result-center{grid-column:1/-1}.result-grid .result-center strong{letter-spacing:.015em;font-size:17px}.modal-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.modal-heading h2{letter-spacing:-.025em;margin:8px 0 0;font-size:22px}.modal-intro{color:var(--muted);margin:10px 0 18px;font-size:12px;line-height:1.5}.choice-columns{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;display:grid}.choice-group{border:1px solid var(--line);border-radius:12px;gap:7px;margin:0;padding:13px;display:grid}.choice-group+.choice-group{margin-top:12px}.choice-group legend{color:var(--yellow);padding:0 6px;font-size:11px;font-weight:700}.choice-group label{color:#cbd6e1;cursor:pointer;background:#ffffff06;border-radius:8px;align-items:flex-start;gap:8px;padding:7px 8px;font-size:11px;line-height:1.35;display:flex}.choice-group label:hover{background:#48d6d212}.choice-group label:has(input:checked){color:#d9fffc;background:#48d6d21a;outline:1px solid #48d6d280}.choice-group input{accent-color:var(--cyan);margin:1px 0 0}.modal-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.cad-export-card{width:min(650px,100vw - 48px)}.cad-export-center{background:#48d6d20e;border:1px solid #48d6d238;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 12px;display:flex}.cad-export-center span{color:var(--muted);font-size:10px;font-weight:750}.cad-export-center strong{color:#d9fffc;font-size:13px}.cad-export-fields{grid-template-columns:1fr 1fr;gap:12px;display:grid}.cad-export-fields label{border:1px solid var(--line);background:#ffffff06;border-radius:12px;gap:7px;padding:12px;display:grid}.cad-export-fields label>span{color:#eef4fa;font-size:11px;font-weight:800}.cad-export-fields input[type=number]{width:100%;min-height:38px;color:var(--text);background:#102033;border:1px solid #48d6d24d;border-radius:8px;outline:none;padding:7px 9px;font-size:13px;font-weight:750}.cad-export-fields input[type=number]:focus{border-color:var(--cyan)}.cad-export-fields small{color:var(--muted);font-size:9px;line-height:1.4}.cad-export-options{gap:8px;margin-top:12px;display:grid}.cad-export-options label{color:#d5dfe8;align-items:center;gap:8px;font-size:11px;display:flex}.cad-export-options input{accent-color:var(--cyan)}.export-property-picker{background:#f4c64f0d;border:1px solid #f4c64f3d;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;display:flex}.export-property-picker small{color:#e8edf2;text-align:right;font-size:10px;line-height:1.4}.export-property-picker .button:disabled{opacity:.42;cursor:not-allowed}.export-frame-summary{background:#48d6d20d;border:1px solid #48d6d23d;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:10px 12px;display:flex}.export-frame-summary small{color:#d9fffc;text-align:right;font-size:10px;line-height:1.4}.export-frame-panel{z-index:1210;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#091422f5;border:1px solid #f4c64f7a;border-radius:16px;width:min(470px,100vw - 44px);padding:18px;position:fixed;top:22px;right:22px;box-shadow:0 18px 55px #00000080}.export-frame-panel h2{color:#f4f8fb;margin:9px 0 8px;font-size:19px}.export-frame-panel>p{color:#c4cfda;margin:0 0 12px;font-size:11px;line-height:1.55}.export-frame-targets{gap:8px;margin:12px 0;display:flex}.export-frame-targets .active{box-shadow:0 0 0 2px #f4c64f47}.export-frame-legend{color:#d8e2ec;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:10px;display:flex}.export-frame-legend span{align-items:center;gap:7px;display:inline-flex}.export-frame-help{color:#e8edf2!important;margin-top:12px!important}.legend-frame-global{background:#f4c64f2e;border:2px solid #ffe07d}.legend-frame-background{background:#48d6d21f;border:2px solid #62eee7}body.export-frame-active #map{cursor:move}body.export-frame-awaiting-center #map{cursor:crosshair}.export-selection-panel{z-index:1200;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#091422f5;border:1px solid #48d6d26b;border-radius:16px;width:min(440px,100vw - 44px);padding:18px;position:fixed;top:22px;right:22px;box-shadow:0 18px 55px #00000080}.export-selection-panel h2{color:#f4f8fb;margin:9px 0 8px;font-size:19px}.export-selection-panel>p{color:#c4cfda;margin:0 0 12px;font-size:11px;line-height:1.55}.export-selection-panel .decision-note{margin-top:10px}.export-selection-legend{color:#d8e2ec;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:10px;display:flex}.export-selection-legend span{align-items:center;gap:7px;display:inline-flex}.legend-swatch{border:2px solid;border-radius:3px;width:18px;height:13px;display:inline-block}.legend-clicked{background:#f4c64f6b;border-color:#ffe07d}.legend-linked{background:#48d6d24d;border-color:#62eee7}body.export-parcel-selection-active #map{cursor:crosshair}.cad-export-progress{gap:7px;margin-top:14px;display:grid}.cad-export-progress>span{background:linear-gradient(90deg, var(--yellow), var(--cyan), var(--yellow));background-size:200% 100%;border-radius:999px;height:7px;animation:1.4s linear infinite cad-export-progress;display:block;overflow:hidden}.cad-export-progress small{color:var(--muted);font-size:10px}@keyframes cad-export-progress{to{background-position:-200% 0}}.ol-control button{color:#eef4fa!important;background:#08121dd1!important}.ol-control button:hover{background:#1b2f44f2!important}.ol-zoom{top:12px!important;left:12px!important}.ol-scale-line{background:#08121db8!important;bottom:66px!important;left:12px!important}@media (height<=820px){.sidebar{padding:12px}.workflow-card{padding:14px}.workflow-card h2{font-size:17px}.tool-section{margin:10px 0;padding-top:10px}.check-list{gap:4px 8px}}@media (width<=720px){.classification-popover{width:calc(100vw - 20px);max-height:calc(100vh - 76px);top:66px;right:10px}.classification-card{max-height:calc(100vh - 76px)}.cad-export-fields{grid-template-columns:1fr}.export-frame-summary{flex-direction:column;align-items:stretch}.export-frame-summary small{text-align:left}.export-property-picker{flex-direction:column;align-items:stretch}.export-property-picker small{text-align:left}.export-frame-panel,.export-selection-panel{width:calc(100vw - 24px);top:12px;right:12px}}.pv-editor-sidebar>section:not(#pv-zones-editor){display:none}.pv-editor-sidebar{width:390px;min-width:0}.layout:has(.pv-editor-sidebar){grid-template-columns:minmax(0,1fr) 410px}#pv-zones-editor{color:#dce8ee;padding:18px}#pv-zones-editor h2{color:#fff;margin:8px 0 16px;font-size:21px}.pv-eyebrow{color:#ffcd1c;letter-spacing:.08em;font-size:11px;font-weight:700}.pv-actions,.pv-zone-tools,.pv-fields{grid-template-columns:1fr 1fr;gap:9px;display:grid}.pv-actions{margin:14px 0}.pv-actions button{color:#142030;background:#ffcd1c}.pv-zone-tools{margin:14px 0 8px}.pv-zone-tools button,.pv-zone-list button,.pv-secondary{color:#eaf7fc;background:#173440;border:1px solid #356773}.pv-zone-tools button[aria-pressed=true],.pv-zone-list button[aria-pressed=true]{color:#ffdc65;background:#344b43;border-color:#ffcd1c}.pv-zone-list{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.pv-zone-list button{padding:8px;font-size:12px}#pv-zones-editor button{cursor:pointer;border-radius:5px;min-height:36px;font-size:12px;font-weight:600}#pv-zones-editor button:disabled{opacity:.55;cursor:wait}.pv-tool-hint{background:#233a49;border-left:3px solid #ffcd1c;padding:10px;font-size:12px;line-height:1.55}.pv-fields{margin-top:12px}.pv-fields[hidden]{display:none}.pv-fields label{flex-direction:column;gap:5px;font-size:12px;line-height:1.4;display:flex}.pv-fields input,.pv-fields select{box-sizing:border-box;color:#fff;background:#0c1b29;border:1px solid #3d5767;border-radius:4px;width:100%;min-width:0;padding:8px;font-size:13px}:is(.pv-fields label:has(select[data-pv-field=coverage_mode]),.pv-fields label:has(select[data-pv-field=span_convention])){grid-column:1/-1}.pv-rows-fields{border-top:1px solid #426170;padding-top:12px}.pv-metrics{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.pv-metrics>div{background:#19303e;border-radius:5px;padding:10px}.pv-metrics strong{color:#ffdc65;font-size:18px;display:block}.pv-metrics span{margin-top:4px;font-size:11px;display:block}.pv-note{color:#a5becb;line-height:1.6;font-size:11px!important}.pv-error{color:#ffc5b8;font-size:12px}.pv-known{margin-top:12px;font-size:12px}.pv-known small{font-size:11px}.pv-remove{color:#ffc5b8;background:0 0;border:1px solid #77535a;padding:8px 12px}#pv-editor-status{color:#d7efec;overflow-wrap:anywhere;font-size:12px;line-height:1.5}@media (width<=900px){.layout:has(.pv-editor-sidebar){grid-template-columns:minmax(0,1fr) 335px}.pv-editor-sidebar{width:315px}#pv-zones-editor{padding:12px}}
