/* Workspace presentation. Keep map controls independent of form field sizing. */
:root{--bg:#f2f6f8;--line:#dde7eb;--muted:#607780;--shadow:0 4px 20px #183f5107}
body{background:radial-gradient(ellipse at 95% 0,#d5eee950,transparent 48%),var(--bg)}
body.dark{--bg:#101f29;--line:#304752;--muted:#a4b9c1;background:var(--bg)}
main{padding:24px 32px 28px;max-width:1680px}
.topbar{height:64px;padding:0 32px}
.breadcrumb{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.page-heading{margin-bottom:14px}
.page-heading h1{font-size:28px;letter-spacing:-1px}
.page-heading p{font-size:13px;line-height:1.6;margin-top:7px}
.project-details{margin-bottom:18px;border-radius:10px}
.project-details>summary{padding:11px 15px}
.sidebar{background:radial-gradient(ellipse at top left,#22556788,transparent 65%),#122f3d}
.sidebar .brand{gap:8px;font-size:21px}
.sidebar .brand-mark{font-size:34px}
.sidebar .nav-group{margin-bottom:9px;padding-bottom:9px}
.sidebar .nav-group-heading{margin-bottom:5px}
.sidebar .nav-item{min-height:35px;padding:8px 9px;transition:background .18s,color .18s,transform .18s}
.sidebar .nav-item:hover{background:#ffffff10;transform:translateX(2px);color:white}
.sidebar .nav-item.active{background:linear-gradient(100deg,#197e75aa,#285563);box-shadow:inset 0 0 0 1px #69ddc222}
.sidebar .nav-group:nth-child(2) .nav-icon{color:#9daedb}
.sidebar .nav-group:nth-child(3) .nav-icon{color:#e8b475}
.sidebar .nav-item.active .nav-icon{color:#8ff4d6}
.sidebar nav{overscroll-behavior:contain;scrollbar-gutter:stable}
.sidebar .side-action{min-height:32px;padding:6px 10px}
.sidebar .side-action:hover{color:white;background:#ffffff0b;border-radius:6px}
.sidebar .side-footer{padding-top:9px;margin-top:6px}
.panel{border-radius:12px;box-shadow:var(--shadow)}
.button{border-radius:8px;transition:box-shadow .18s,background .18s,transform .18s}
.button:hover{box-shadow:0 4px 12px #173b4212}
.button.primary{background:linear-gradient(120deg,#008e82,#087c75);border-color:#00887d}
.button.primary:hover{box-shadow:0 5px 16px #008c8030}
input:not([type=checkbox]):not([type=color]):focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px #008c8012}
/* Compact project overview with a survey-inspired contour motif. */
.workspace-intro{position:relative;isolation:isolate;overflow:hidden;margin:0 0 16px;padding:24px 27px;border-radius:14px;background:linear-gradient(105deg,#103d4a,#16645e);color:#fff;min-height:160px;gap:20px}
.workspace-intro:before{content:'';position:absolute;z-index:-1;inset:-140px -30px -150px 40%;opacity:.17;background:repeating-radial-gradient(ellipse at 80% 55%,transparent 0 21px,#90e9ca 22px 23px,transparent 24px 42px);transform:rotate(-19deg);pointer-events:none}
.workspace-intro .eyebrow{font-size:9px;letter-spacing:1.6px;color:#a5ead4;margin:0 0 12px;display:block}
.workspace-intro .status-dot{background:#7ce9bf;box-shadow:0 0 0 4px #74e3bb18;margin-right:7px}
.workspace-intro h2{font-size:32px;font-weight:750;letter-spacing:-1px;line-height:1.2}
.workspace-intro p{font-size:13px;line-height:1.7;color:#c2ddd9;max-width:480px;margin-top:9px}
.workspace-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}
.workspace-tags span{padding:5px 9px;border:1px solid #b3e5d728;background:#ffffff08;border-radius:5px;color:#c2e8df;font-size:10px}
.workspace-intro>div:last-child{flex-direction:column;flex:none;min-width:196px;gap:8px;align-items:stretch}
.workspace-intro .button{min-height:42px;text-align:center;background:#ffffff0d;color:white;border:1px solid #ccece744}
.workspace-intro .button.primary{background:#c5f0d9;color:#164e43;border-color:#c5f0d9}
.hero-field{color:#c7e9df;background:none;border:0;padding:5px 0;font-size:11px;min-height:32px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.hero-field:hover{color:white}
.project-metrics{gap:12px;margin-bottom:16px}
.project-metric{--metric-color:#138d7f;position:relative;align-items:center;padding:16px;text-align:left;border-radius:11px;gap:12px;min-height:88px;color:var(--text);cursor:pointer;overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s}
.project-metric:nth-child(2){--metric-color:#467cbd}.project-metric:nth-child(3){--metric-color:#8360b6}.project-metric:nth-child(4){--metric-color:#b27a35}
.project-metric:before{content:'';position:absolute;left:0;top:18px;bottom:18px;width:3px;background:var(--metric-color);border-radius:0 3px 3px 0}
.project-metric:hover{border-color:color-mix(in srgb,var(--metric-color) 45%,var(--line));transform:translateY(-2px);box-shadow:0 6px 16px #173b4212}
.project-metric .metric-icon{display:grid;background:color-mix(in srgb,var(--metric-color) 10%,var(--panel));color:var(--metric-color);width:38px;height:38px;font-size:24px;border-radius:10px}
.metric-copy{display:block;min-width:0}.metric-copy>span{display:block;font-size:11px;color:var(--muted);font-weight:500}
.project-metric b{font-size:26px;line-height:1.4;display:block;color:var(--text)}
.project-metric small{display:none}.metric-arrow{color:var(--metric-color);margin-left:auto;font-size:15px;opacity:.65}
.workspace-shortcuts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 18px}
.workspace-shortcuts>span{font-size:9px;letter-spacing:1px;color:var(--muted);margin-right:4px;font-weight:700}
.workspace-shortcuts button{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:20px;font-size:11px;min-height:34px;padding:7px 12px}
.workspace-shortcuts button:hover{border-color:var(--teal);background:var(--tint);color:var(--teal)}
/* Bound both map and layers: long legends must not stretch the map. */
.spatial-panel .panel-header{padding:16px 18px;gap:14px;flex-wrap:wrap}
.spatial-panel .panel-header p{font-size:11px;line-height:1.5;max-width:530px;margin-top:6px}
.spatial-panel .panel-title h3{font-size:15px}
.spatial-layout{grid-template-columns:230px minmax(0,1fr);height:clamp(460px,62vh,650px);min-height:0;align-items:stretch}
.layers-disclosure{display:flex;flex-direction:column;overflow:hidden;min-height:0}
.layers-disclosure>summary{flex:none;list-style:none;padding:15px;font-size:11px;display:flex;gap:8px;align-items:center;background:var(--bg);border-bottom:1px solid var(--line)}
.layers-disclosure>summary::-webkit-details-marker{display:none}
.layers-disclosure>summary:before{content:'☷';color:var(--teal);font-size:19px;line-height:20px}
.layers-disclosure>summary:after{content:'−';margin-left:auto;color:var(--teal);font-size:16px}
.layers-disclosure:not([open])>summary:after{content:'+'}
.layers-disclosure>summary span{display:none}
.layers-disclosure .layer-panel{flex:1;overflow:auto;min-height:0;max-height:none;padding:15px 12px;scrollbar-width:thin;scrollbar-color:#bccdca transparent;overscroll-behavior:contain}
.layer-row{gap:8px;min-height:32px;margin:0 0 4px;padding:3px;border-radius:5px}
.layer-row:hover{background:var(--bg)}
.layer-row label{font-size:11px;gap:7px;min-height:28px;line-height:1.4}
.layer-row label>span:not(.layer-symbol){flex:1;min-width:0}
.layer-row label small{flex:none;min-width:16px;text-align:right;font-size:10px;font-variant-numeric:tabular-nums}
.layer-symbol{flex:none;width:16px;font-size:15px}
.layer-row input[type=checkbox],.map-setting input[type=checkbox]{width:15px;height:15px;min-height:0;min-width:15px;flex:0 0 15px;padding:0;margin:0}
.layer-row input[type=color]{display:block;flex:0 0 22px;width:22px;height:22px;min-height:22px;max-height:22px;min-width:22px;padding:2px;margin:0;border:1px solid var(--line);border-radius:6px;opacity:1;background:var(--panel)}
.layer-row input[type=color]::-webkit-color-swatch-wrapper{padding:2px}
.layer-row input[type=color]::-webkit-color-swatch{border:0;border-radius:3px}
.layer-row input[type=color]::-moz-color-swatch{border:0;border-radius:3px}
.layer-subheading{font-size:9px;letter-spacing:.7px;margin:18px 3px 9px}
.layers-heading h3{font-size:12px}.map-setting{min-height:30px;font-size:11px;margin:4px 3px}
.basemap-select{display:block;font-size:11px;margin-top:13px}.basemap-select select{width:100%;font-size:12px}
.layer-tip{font-size:10px;line-height:1.6}.symbol-key{font-size:10px;line-height:1.5}
.spatial-main{min-height:0;height:100%}.global-map{height:100%;min-height:0!important}
.map-status{padding:9px 12px;font-size:10px;min-height:33px;flex-wrap:wrap;align-items:center}
.map-status #measureValue:empty{display:none}
.map-floating-tools button{width:36px;height:36px;min-height:36px;border-radius:8px;box-shadow:0 3px 10px #1232}
.map-floating-tools{top:85px}.map-north{color:#fff;background:#143c4eaa;border:1px solid #ffffff44;border-radius:9px;padding:5px 9px;right:15px;top:14px;line-height:1}
.map-north span{font-size:23px;line-height:25px}.map-header-actions select{font-size:12px;max-width:240px}
.map-inspector{bottom:54px;max-height:calc(100% - 74px);overflow:auto;box-shadow:0 5px 24px #173b4240}
.survey-point-label.leaflet-tooltip{font-size:10px;background:#fffffff0;padding:3px 5px;box-shadow:0 1px 4px #1232}
.overview-bottom{margin-top:18px}.recent-record{padding:15px 18px}.recent-record:hover{background:var(--tint)}
.task-card{border-top:3px solid #139388;transition:transform .18s,box-shadow .18s}.task-card:nth-child(3n+2){border-top-color:#5c86bc}.task-card:nth-child(3n){border-top-color:#a180c2}
.task-card:hover{transform:translateY(-2px);box-shadow:0 6px 20px #183f5112}
.data-import-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.data-intro{align-items:flex-start}
.data-tabs{scrollbar-width:thin}.data-tab.active{box-shadow:inset 0 -3px var(--teal)}
.field-banner{background:linear-gradient(110deg,var(--tint),var(--panel));border-left:4px solid var(--teal)}
/* Measured motion; geospatial content and printed plans remain still. */
@keyframes workspace-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
#moduleContent>.workspace-intro,#moduleContent>.task-hub{animation:workspace-enter .28s ease-out}
@media(min-width:901px){
 .spatial-layout:has(.layers-disclosure:not([open])){grid-template-columns:52px minmax(0,1fr)}
 .layers-disclosure:not([open])>summary{font-size:0;padding:14px 10px;justify-content:center;gap:0}
 .layers-disclosure:not([open])>summary:after{display:none}
 .layers-disclosure:not([open])>summary:before{font-size:24px}
}
@media(min-width:1500px){main{padding:26px 40px}.topbar{padding:0 40px}.spatial-layout{grid-template-columns:245px minmax(0,1fr)}.sidebar .nav-item{font-size:13px;min-height:37px}.workspace-intro{padding:26px 30px}}
@media(max-width:1150px) and (min-width:901px){main{padding:22px}.spatial-layout{grid-template-columns:215px minmax(0,1fr)}.metric-arrow{display:none}.project-metric{gap:8px;padding:13px}.workspace-intro h2{font-size:29px}}
@media(max-width:900px){
 main{padding:22px 20px 100px}.topbar{padding:0 20px}.sidebar .nav-item{min-height:44px;padding:10px;font-size:13px}
 .sidebar .nav-group{margin-bottom:10px;padding-bottom:10px}.sidebar .side-action{min-height:40px}
 .spatial-layout{display:flex;flex-direction:column;height:auto;min-height:0}
 .layers-disclosure{display:block;flex:none;overflow:visible;border-right:0}
 .layers-disclosure>summary{font-size:12px;min-height:48px}
 .layers-disclosure .layer-panel{display:grid;grid-template-columns:1fr 1fr;gap:5px 16px;max-height:300px;overflow:auto;padding:12px}
 .layer-row label{font-size:12px}.layer-row{min-height:36px}.layer-row input[type=color]{flex-basis:28px;min-width:28px;width:28px;height:28px;min-height:28px;max-height:28px}
 .spatial-main{height:460px;min-height:0;flex:none}.global-map{height:100%;min-height:0}
 .mobile-nav{box-shadow:0 -4px 18px #173b4210}.mobile-nav .selected{box-shadow:inset 0 2px var(--teal)}
 .top-actions{flex-shrink:0}.map-header-actions{flex-wrap:wrap}
}
@media(max-width:600px){
 main{padding:18px 14px 96px}.topbar{padding:0 14px;gap:8px}.breadcrumb{flex:1;max-width:none;font-size:11px}.breadcrumb span{padding:0 5px}.breadcrumb b{font-size:11px}
 .project-menu>summary{font-size:12px;padding:10px}.project-menu>div{max-width:calc(100vw - 28px)}
 .page-heading h1{font-size:25px}.page-heading p{font-size:12px}.page-heading{margin-bottom:12px}.project-details{margin-bottom:14px}
 .workspace-intro{padding:21px 18px;gap:18px;min-height:0;border-radius:12px;margin-top:0;align-items:stretch}
 .workspace-intro h2{font-size:29px}.workspace-intro p{font-size:12px}.workspace-intro .eyebrow{font-size:8px;letter-spacing:1px}
 .workspace-intro>div:last-child{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-width:0}
 .workspace-intro .button{font-size:10px;padding:10px 7px;min-width:0;min-height:44px;white-space:normal;line-height:1.4}
 .hero-field{grid-column:1/-1;min-height:36px;font-size:12px;padding:3px 6px}
 .workspace-tags{margin-top:12px}.workspace-tags span{font-size:9px}
 .project-metrics{grid-template-columns:1fr 1fr;gap:9px;margin-bottom:14px}.project-metric{padding:13px 11px;gap:9px;min-height:78px}
 .project-metric .metric-icon{display:grid;flex:none;width:29px;height:29px;font-size:20px;border-radius:8px}
 .metric-copy>span{font-size:10px;line-height:1.4}.project-metric b{font-size:23px;line-height:1.4}.metric-arrow{display:none}
 .workspace-shortcuts{flex-wrap:nowrap;overflow-x:auto;gap:7px;max-width:100%;padding-bottom:6px;margin-bottom:12px;scrollbar-width:thin}
 .workspace-shortcuts>span{display:none}.workspace-shortcuts button{flex:none;font-size:11px;min-height:40px;padding:8px 12px}
 .spatial-panel .panel-header{padding:15px;gap:10px}.spatial-panel .panel-header p{font-size:11px}.map-header-actions{width:100%;display:flex;flex-wrap:nowrap;gap:8px}.map-header-actions select{flex:1;min-width:0;max-width:none;width:0;font-size:11px;min-height:44px}.map-header-actions .button{flex:none;font-size:11px;padding:9px}
 .layers-disclosure .layer-panel{display:block;max-height:310px}.layer-row{min-height:40px;margin-bottom:3px}.layer-row label{min-height:36px;font-size:12px}
 .layer-row input[type=checkbox],.map-setting input[type=checkbox]{width:18px;min-width:18px;height:18px;min-height:18px;flex-basis:18px}
 .spatial-main{height:420px}.map-status{font-size:9px;gap:6px;padding:8px}.map-floating-tools button{width:40px;height:40px;min-height:40px}.map-inspector{right:10px;width:220px;max-width:calc(100% - 20px)}
 .data-import-actions{justify-content:stretch}.data-import-actions .button{flex:1;white-space:normal}.data-toolbar>div:last-child{width:100%}.data-toolbar .table-search{max-width:none;width:100%}
 .plan-intro .button{white-space:normal}.plan-preview-actions{gap:6px}.main-footer{line-height:1.6}
}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{body{background:white}.workspace-intro{background:white;color:black}.workspace-shortcuts{display:none}.project-metric,.task-card{box-shadow:none;transform:none}.spatial-layout{height:600px}}
.projection-notice{display:flex;flex-direction:column;gap:9px;font-size:11px;line-height:1.65;padding:14px 16px;margin-bottom:18px;background:var(--tint);border:1px solid var(--line);border-left:3px solid var(--teal);border-radius:8px}.projection-notice span{color:var(--muted)}.projection-notice .link-btn{align-self:flex-start;min-height:32px;font-size:12px}.crs-confirm{display:flex;align-items:flex-start;gap:10px;margin:18px 0;font-size:12px;line-height:1.6}.crs-confirm input{width:18px;height:18px;flex:none;margin:3px 0}.lambert-tables{margin:16px 0}.lambert-tables summary{padding:12px 0;color:var(--teal);font-size:13px;font-weight:700;cursor:pointer}.lambert-tables p{font-size:12px;line-height:1.6;color:var(--muted)}.lambert-tables h3{margin-top:20px}.lambert-tables table{width:100%;font-size:12px;border-collapse:collapse}.lambert-tables td,.lambert-tables th{padding:8px;text-align:right;border-bottom:1px solid var(--line)}#pointOriginFilter{max-width:220px;margin:0;min-width:150px}.dark .restore-targets{border-color:var(--line)}@media(max-width:600px){#pointOriginFilter{max-width:none;width:100%}.projection-notice{font-size:12px}}
/* Compact technical explanations stay available on demand and in exports. */
.correction-disclosure{border:1px solid var(--line);border-radius:8px;background:var(--bg);margin:0 0 18px;font-size:11px;line-height:1.65}
.correction-disclosure>summary{display:flex;align-items:center;gap:12px;padding:10px 12px;cursor:pointer;list-style:none;min-height:42px}
.correction-disclosure>summary::-webkit-details-marker{display:none}.correction-disclosure>summary>span:first-child{font-weight:650;color:var(--text)}.correction-disclosure>summary>span:nth-child(2){color:var(--muted);margin-left:auto;font-size:10px}.correction-disclosure>summary:after{content:'⌄';color:var(--teal);font-size:15px}.correction-disclosure[open]>summary:after{content:'⌃'}.correction-disclosure>div{border-top:1px solid var(--line);padding:12px;color:var(--muted)}.correction-disclosure p{margin:0 0 6px}
.calculation-details{border-top:1px solid var(--line)}.calculation-details>summary{padding:15px 18px;font-size:12px;color:var(--muted);cursor:pointer}.calculation-details[open]>summary{color:var(--teal)}.calculation-details .subnote{font-size:11px;line-height:1.8;overflow-wrap:anywhere}.calculation-details .formula{font-size:11px;white-space:normal;overflow-wrap:anywhere}
.map-panel .panel-header{padding:15px 18px;gap:10px;flex-wrap:wrap}.map-tabs{background:var(--bg);padding:3px;border:1px solid var(--line);border-radius:8px;gap:2px}.map-tabs .tab{min-height:34px;padding:7px 13px;font-size:12px;border-radius:6px}.map-tabs .tab.active{background:var(--panel);box-shadow:0 2px 5px #1231;color:var(--teal);font-weight:650}
.plan-wrap{--xy-grid:#c7d9df;--xy-line:#008c80;background:#f7fafc;min-height:440px}.dark .plan-wrap{--xy-grid:#304e5b;--xy-line:#5bc8b3;background:#142b36}.plan-wrap>.north{display:flex;flex-direction:column;align-items:center;gap:4px;position:absolute;top:15px;right:17px;color:var(--text);z-index:10;font-size:11px;pointer-events:none}.plan-wrap>.north svg{position:static;inset:auto;width:21px;height:29px;cursor:default}.plan-wrap .map-top-label{font-size:10px;letter-spacing:.3px;padding:7px 9px;box-shadow:0 2px 8px #12306}
.map-controls{gap:6px;right:15px;bottom:18px}.map-controls button{height:38px;width:38px;min-height:38px;border-radius:8px;font-size:23px;display:grid;place-items:center;box-shadow:0 2px 8px #12315}.map-controls button svg{position:static;inset:auto;width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none;pointer-events:none}.map-controls button:hover{background:var(--tint);border-color:var(--teal)}.xy-point{cursor:pointer}.xy-point:focus-visible{outline:2px solid #dca443;outline-offset:2px}.map-layer-controls{gap:7px 12px;padding:12px 15px}.map-layer-controls strong{display:none}.map-layer-controls label{min-height:28px;font-size:10px}.map-layer-controls input[type=checkbox]{height:14px;width:14px;min-height:14px}.map-layer-controls #scaleLabel{font-size:10px;white-space:nowrap}.shared-source-note{padding-bottom:12px;margin-bottom:14px}.shared-source-note>span:nth-child(2){font-size:11px}.shared-source-note b{font-size:10px}
@media(max-width:600px){.correction-disclosure>summary{font-size:12px;gap:6px}.correction-disclosure>summary>span:nth-child(2){font-size:9px}.calculation-details>summary{min-height:44px}.plan-wrap{min-height:380px}.map-panel .panel-header{padding:13px}.map-tabs .tab{font-size:11px;min-height:38px}.map-controls button{height:42px;width:42px;min-height:42px}.map-layer-controls label{min-height:36px;font-size:11px}.map-layer-controls input[type=checkbox]{height:17px;width:17px;min-height:17px}.map-layer-controls #scaleLabel{margin-left:0}.map-top-label{max-width:calc(100% - 70px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
@media print{.calculation-details>summary{display:none}.calculation-details:not([open])>*:not(summary){display:block!important}}
.dark .plan-wrap{--xy-reference:#83bce9;--xy-terrain:#4dd4b9;--xy-calculated:#bb9ae8}
/* Visibility controls belong above the canvas, within immediate reach. */
/* Compact legend stays outside the drawing; the view keeps its full height. */
.map-panel>.map-layer-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:2px 12px;padding:6px 13px;border-top:1px solid var(--line);border-bottom:0;background:var(--panel);flex:none}
.map-panel>.map-layer-controls strong{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.map-panel>.map-layer-controls label{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:10px;line-height:1.3;cursor:pointer}
.map-panel>.map-layer-controls label:has(input:checked){color:var(--text);background:transparent}
.map-panel>.map-layer-controls label:hover{color:var(--teal)}
.map-panel>.map-layer-controls input[type=checkbox]{display:inline-block;width:12px;height:12px;min-height:12px;flex:0 0 12px;appearance:auto;accent-color:var(--teal);margin:0 1px 0 0;padding:0}
.map-panel>.map-layer-controls #scaleLabel{font-size:9px;color:var(--muted);margin-left:auto;white-space:nowrap}
@media(max-width:600px){.map-panel>.map-layer-controls{gap:0 12px;padding:5px 10px}.map-panel>.map-layer-controls label{min-height:30px;font-size:10px}.map-panel>.map-layer-controls input[type=checkbox]{width:13px;height:13px;min-height:13px;flex-basis:13px}.map-panel>.map-layer-controls #scaleLabel{font-size:9px}}
/* Project map: floating compact layers leave the map at full width. */
.spatial-panel .spatial-layout{position:relative;display:block;height:clamp(460px,62vh,650px);min-height:0}
.spatial-panel .spatial-main{height:100%;width:100%;min-height:0}
.spatial-panel .layers-disclosure{position:absolute;top:12px;left:12px;z-index:600;width:210px;max-width:calc(100% - 80px);max-height:calc(100% - 62px);display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px;background:var(--panel);box-shadow:0 3px 15px #102e3b26;overflow:hidden}
.spatial-panel .layers-disclosure>summary{padding:8px 10px;min-height:34px;font-size:10px;gap:6px;cursor:pointer;background:var(--panel)}
.spatial-panel .layers-disclosure>summary:before{font-size:15px;line-height:16px}
.spatial-panel .layers-disclosure>summary:after{font-size:14px}
.spatial-panel .layers-disclosure>summary span{display:none}
.spatial-panel .layers-disclosure:not([open])>.layer-panel{display:none}
.spatial-panel .layers-disclosure .layer-panel{display:block;padding:9px 10px;border:0;overflow:auto;max-height:none;min-height:0}
.spatial-panel .layers-heading{padding-bottom:0}.spatial-panel .layers-heading h3{font-size:10px}
.spatial-panel .layer-subheading{font-size:8px;letter-spacing:.6px;margin:12px 0 5px}
.spatial-panel .layer-row{min-height:25px;margin:0;gap:5px;padding:1px 0}
.spatial-panel .layer-row label{font-size:10px;min-height:23px;gap:5px;line-height:1.3}
.spatial-panel .layer-row label small{font-size:9px;min-width:12px}
.spatial-panel .layer-symbol{width:13px;min-width:13px;font-size:13px}
.spatial-panel .layer-row input[type=checkbox],.spatial-panel .map-setting input[type=checkbox]{width:12px;height:12px;min-width:12px;min-height:12px;flex:0 0 12px}
.spatial-panel .layer-row input[type=color]{width:13px;height:13px;min-width:13px;min-height:13px;max-height:13px;flex:0 0 13px;border:0;border-radius:50%;padding:0;opacity:.9}
.spatial-panel .layer-row input[type=color]::-webkit-color-swatch-wrapper{padding:0}
.spatial-panel .layer-row input[type=color]::-webkit-color-swatch{border:0;border-radius:50%}
.spatial-panel .layer-row input[type=color]::-moz-color-swatch{border:0;border-radius:50%}
.spatial-panel .map-setting{font-size:10px;min-height:25px;margin:0;gap:6px}
.spatial-panel .basemap-select{font-size:9px;margin-top:8px}.spatial-panel .basemap-select select{min-height:30px;font-size:10px;padding:5px;margin-top:4px}
.spatial-panel .layer-tip{font-size:9px;line-height:1.4;margin:7px 0}.spatial-panel .symbol-key{font-size:8px;gap:5px}
.spatial-panel .leaflet-top.leaflet-left{left:auto;right:60px}
@media(max-width:600px){.spatial-panel .layers-disclosure{top:9px;left:9px;width:205px}.spatial-panel .layer-row label,.spatial-panel .map-setting{min-height:30px}.spatial-panel .layers-disclosure .layer-panel{max-height:315px}}
/* Project GIS workspace */
.gis-view{isolation:isolate}.gis-view>.panel-header{align-items:center;gap:12px;flex-wrap:wrap}.gis-view>.panel-header p{margin:5px 0 0;font-size:11px;line-height:1.5;color:var(--muted)}
.gis-view .map-header-actions{gap:6px;flex-wrap:wrap}.gis-view button,.gis-view summary{touch-action:manipulation}
.gis-toolbar{position:relative;z-index:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--line);background:var(--panel)}
.gis-search{position:relative;flex:1 1 230px;min-width:0;display:flex;align-items:center;border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:0 8px;gap:6px}.gis-search>span{font-size:22px;color:var(--teal)}
.gis-search input{flex:1;min-width:0;width:100%;border:0;background:none!important;color:var(--text);min-height:36px!important;font-size:12px!important;margin:0;padding:8px 2px!important;outline-offset:0}
.gis-search>button,.gis-tool-button{border:0;background:transparent;color:var(--text);min-width:34px;min-height:36px;border-radius:6px;font-size:20px;padding:2px 6px}
.gis-toolbar>select{width:190px;max-width:26%;min-height:36px;font-size:11px;padding:7px;margin:0}
.gis-search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:min(340px,50vh);overflow:auto;overscroll-behavior:contain;z-index:1000;border:1px solid var(--line);background:var(--panel);border-radius:9px;box-shadow:0 8px 28px #1233;padding:5px}
.gis-result-count{font-size:10px;color:var(--muted);padding:7px 9px}.gis-search-results>p{font-size:12px;padding:8px}
.gis-search-results>button{width:100%;border:0;background:none;color:var(--text);text-align:left;display:flex;gap:9px;align-items:center;padding:10px 8px;min-height:48px;border-radius:6px}.gis-search-results>button:hover,.gis-search-results>button.is-current{background:var(--tint)}
.gis-search-results>button>span:nth-child(2){flex:1;min-width:0}.gis-search-results b{font-size:12px;display:block}.gis-search-results small{display:block;font-size:10px;color:var(--muted);white-space:normal;overflow-wrap:anywhere;line-height:1.4;margin-top:3px}.gis-result-icon{color:var(--teal);font-size:18px}
.gis-locate,.gis-export{position:relative}.gis-locate>summary,.gis-export>summary{list-style:none;cursor:pointer;white-space:nowrap}.gis-locate>summary::-webkit-details-marker,.gis-export>summary::-webkit-details-marker{display:none}.gis-locate>summary{font-size:11px;padding:10px;border:1px solid var(--line);border-radius:6px}
.gis-locate form,.gis-export>div{position:absolute;top:calc(100% + 7px);right:0;width:250px;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--panel);box-shadow:0 6px 22px #1233;z-index:1100}
.gis-locate form{display:grid;gap:9px}.gis-locate label{font-size:11px}.gis-locate input{font-size:13px;min-height:36px;margin:4px 0 0}.gis-locate small{font-size:10px;color:var(--muted)}.gis-locate p{font-size:11px;color:#ba533e;line-height:1.4;margin:0}
.gis-export>div{width:190px;padding:5px}.gis-export>div button{display:block;width:100%;text-align:left;padding:11px;border:0;background:none;color:var(--text);font-size:12px;border-radius:5px}.gis-export button:hover{background:var(--tint)}
.gis-view .spatial-layout{height:clamp(480px,66vh,760px)}
.gis-view .layers-disclosure{z-index:650;max-height:calc(100% - 65px)}
.gis-view .layer-row label{font-size:11px}.gis-view .layer-subheading{font-size:8px}.gis-view .layer-tip{display:none}.gis-view .layers-heading{display:none}
.gis-layer-actions{display:flex;gap:5px;margin:0 0 8px}.gis-layer-actions button{flex:1;border:1px solid var(--line);border-radius:4px;padding:5px 3px;font-size:9px;color:var(--teal);background:var(--bg)}
.gis-opacity{display:flex;align-items:center;gap:8px;font-size:10px;margin:8px 0}.gis-opacity input[type=range]{min-height:20px;width:80px;min-width:0;flex:1;padding:0;margin:0;accent-color:var(--teal)}
.gis-view .map-setting{font-size:10px;line-height:1.4}.gis-view .symbol-key{display:grid;font-size:8px}.gis-view .map-floating-tools{top:83px;right:13px;gap:6px}.gis-view .map-floating-tools button{width:36px;height:36px;min-height:36px;font-size:21px}
.gis-view .map-floating-tools button:disabled{opacity:.45;cursor:default}.gis-view .map-floating-tools button.active{color:#fff;background:var(--teal)}
.gis-view .map-inspector{right:62px;bottom:46px;width:270px;max-width:calc(100% - 84px);max-height:280px;padding:18px;z-index:700;overflow:auto}.gis-view .map-inspector .eyebrow{padding-right:20px}.gis-view .map-inspector .button{white-space:normal;width:100%;font-size:11px;line-height:1.5}.gis-view .map-inspector h3{overflow-wrap:anywhere}.gis-view .map-inspector dd{font-variant-numeric:tabular-nums;white-space:nowrap}
.gis-close-inspector{position:absolute;top:5px;right:6px;min-height:30px;min-width:30px;font-size:21px;background:none;border:0;color:var(--muted);border-radius:5px}.gis-close-inspector:hover{background:var(--bg)}
.gis-tool-status{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:9px 13px;font-size:11px;color:var(--muted);border-top:1px solid var(--line);min-height:36px;line-height:1.5;background:var(--panel)}.gis-tool-status>span{flex:1 1 230px}.gis-tool-status button{font-size:10px;border:0;background:var(--bg);color:var(--teal);border-radius:5px;padding:5px 8px}
.gis-measuring,.gis-measuring .leaflet-interactive{cursor:crosshair!important}
.gis-view .leaflet-control-scale{margin-bottom:42px!important}.gis-view .leaflet-top.leaflet-left{right:61px}.gis-view .map-status{font-variant-numeric:tabular-nums}
body.gis-map-expanded{overflow:hidden}.gis-view.gis-expanded{position:fixed;inset:12px;z-index:100;display:flex;flex-direction:column;margin:0;max-height:none;box-shadow:0 0 0 20px #102b3c88}.gis-expanded>.panel-header,.gis-expanded>.gis-toolbar,.gis-expanded>.gis-tool-status{flex:none}.gis-view.gis-expanded .spatial-layout{height:auto;flex:1;min-height:160px}
body[data-screen=map] .workspace-intro,body[data-screen=overview] .workspace-intro{min-height:0;padding:18px 23px;margin-bottom:16px}body[data-screen=map] .workspace-intro h2,body[data-screen=overview] .workspace-intro h2{font-size:25px}body[data-screen=map] .workspace-intro p,body[data-screen=overview] .workspace-intro p{font-size:12px;margin:7px 0}.gis-view .leaflet-control-attribution{max-width:100%;overflow-wrap:anywhere}
@media(max-width:900px){.gis-view>.panel-header{flex-direction:row;align-items:center}.gis-view .map-header-actions{width:auto}.gis-toolbar{padding:9px;gap:7px}.gis-view .spatial-layout{height:520px}.gis-view.gis-expanded{inset:6px}.gis-view .layers-disclosure .layer-panel{display:block}.gis-view .layer-row{min-height:29px}.gis-view .layer-row label{min-height:27px}.gis-view .layers-disclosure{width:215px}.gis-view .map-header-actions .button{min-height:36px;padding:7px 9px}}
@media(max-width:600px){.gis-view>.panel-header{padding:12px}.gis-view>.panel-header>div:first-child{flex-basis:100%}.gis-view>.panel-header p{display:none}.gis-view .map-header-actions{width:100%;justify-content:space-between}.gis-view .map-header-actions>.button,.gis-view .gis-export{flex:1;text-align:center}.gis-export>summary{font-size:11px;min-height:36px;padding:8px}.gis-search{flex-basis:100%}.gis-search-results{max-height:280px}.gis-toolbar>select{flex:1;width:auto;max-width:none;font-size:11px;min-height:36px!important;padding:7px!important}.gis-locate>summary{padding:9px;font-size:10px}.gis-locate form{right:0;width:230px}.gis-view .spatial-layout{height:480px}.gis-view .layers-disclosure{width:210px;max-width:calc(100% - 70px)}.gis-view .layers-disclosure .layer-panel{max-height:335px}.gis-view .map-inspector{left:10px;right:59px;bottom:46px;width:auto;max-width:none;max-height:45%;padding:14px}.gis-view .map-inspector dl{margin:9px 0}.gis-view .map-inspector dl>div{margin:6px 0}.gis-view .map-status{font-size:9px;padding:7px;gap:4px}.gis-view .map-status>span:first-child{flex:1}.gis-view .map-status>span:last-child{font-size:8px}.gis-view .gis-tool-status{font-size:10px;padding:8px}.gis-expanded>.panel-header>div:first-child{display:none}.gis-view.gis-expanded>.panel-header{padding:7px 10px}.gis-view.gis-expanded .spatial-layout{min-height:150px}.gis-expanded .layers-disclosure .layer-panel{max-height:calc(100dvh - 310px)}.gis-view .layer-row input[type=checkbox],.gis-view .map-setting input[type=checkbox]{width:14px;height:14px;min-width:14px;flex-basis:14px}}
.gis-import>div{left:0;right:auto}
.dark .gis-layer-actions button{color:#78d9c2}
.gis-import-dialog{width:min(670px,95vw);border:1px solid var(--line);border-radius:12px;padding:24px;background:var(--panel);color:var(--text);max-height:88dvh;overflow:auto}.gis-dialog-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.gis-dialog-heading h2{margin:5px 0 10px}.gis-dialog-heading small{font-size:9px;letter-spacing:1.2px;color:var(--teal)}.gis-dialog-heading button{font-size:24px;border:0;background:transparent;color:var(--text);cursor:pointer}.gis-import-dialog p,.gis-import-dialog li{font-size:12px;line-height:1.6}.gis-import-dialog fieldset{border:1px solid var(--line);border-radius:8px;margin:15px 0;padding:14px;display:grid;gap:10px;min-width:0}.gis-import-dialog legend{font-size:12px;font-weight:700;overflow-wrap:anywhere;max-width:100%}.gis-import-dialog label{font-size:12px;min-width:0}.gis-import-dialog select,.gis-import-dialog input:not([type=checkbox]),.gis-import-dialog textarea{width:100%;min-width:0}.gis-confirm{display:flex;gap:10px;align-items:flex-start;line-height:1.6}.gis-confirm input{flex:none;accent-color:var(--teal);margin-top:3px}.gis-dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.gis-error{color:#ba5b36}.gis-layer-fit{border:0;background:transparent;color:var(--teal);font-size:17px;min-height:25px;min-width:22px;padding:0;cursor:pointer}.gis-import-dialog::backdrop{background:#102c3c88}.gis-view .map-inspector dd{white-space:normal;overflow-wrap:anywhere;max-width:62%}
.map-point-picking{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:7px 13px;font-size:11px;color:var(--muted);border-bottom:1px solid var(--line)}.map-point-picking button{border:1px solid var(--line);border-radius:5px;padding:5px 10px;background:var(--panel);color:var(--text);font-size:11px;min-height:28px}.map-point-picking button.active{background:var(--tint);color:var(--teal);border-color:var(--teal)}

/* Full project workspace and accessible layer manager. */
body[data-screen=map] main{max-width:none;padding:22px 24px}body[data-screen=map] .workspace-intro{display:none}body[data-screen=map] .project-metrics{margin-bottom:16px}.gis-view .spatial-layout{height:clamp(620px,76dvh,1050px)}
.gis-view .layers-disclosure{position:absolute;top:12px;left:12px;width:242px;max-height:calc(100% - 65px);overflow:hidden;border-radius:10px;box-shadow:0 5px 22px #102f3d26;background:var(--panel)}
.gis-view .layers-disclosure[open]{display:flex;flex-direction:column}.gis-view .layers-disclosure:not([open]){display:block}.gis-view .layers-disclosure>summary{flex-shrink:0;padding:12px;font-size:12px;cursor:pointer}.gis-view .layers-disclosure .layer-panel{flex:1;min-height:0;max-height:calc(76dvh - 120px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:10px 12px 18px}.gis-view .layer-row{min-height:30px;gap:7px}.gis-view .layer-row label{min-width:0;overflow-wrap:anywhere}.gis-view .layer-row label>span{min-width:0}.gis-view .layer-row small{flex-shrink:0}.gis-view .layer-row input[type=color]{appearance:none;width:18px;height:18px;min-width:18px;flex:0 0 18px;border-radius:4px}.gis-view .layer-row input[type=color]::-webkit-color-swatch{border-radius:4px}.gis-view .layer-subheading{margin-top:17px;letter-spacing:.8px}.gis-view .gis-layer-actions{position:sticky;top:-10px;z-index:1;background:var(--panel);padding:5px 0}.gis-view .layer-panel .basemap-select{margin-bottom:12px}.gis-view .layer-panel .symbol-key{padding-bottom:8px}.gis-view .map-inspector{max-height:min(380px,55%)}
@media(min-width:901px){body[data-screen=map] .project-metrics{grid-template-columns:repeat(4,1fr)}body[data-screen=map] .project-metric{padding:12px 16px}body[data-screen=map] .project-metric b{font-size:23px}.gis-view .global-map{min-height:0;height:100%}}
@media(max-width:900px){body[data-screen=map] main{padding:18px 14px}.gis-view .spatial-layout{height:640px;height:clamp(510px,73dvh,800px)}.gis-view .layers-disclosure{width:230px;max-width:calc(100% - 75px)}.gis-view .layers-disclosure .layer-panel{max-height:calc(73dvh - 135px)}.gis-view .layer-row input[type=color]{width:18px;height:18px;min-height:18px}.gis-view .global-map{min-height:0;height:100%}}

.gis-feature-label.leaflet-tooltip{font:600 11px Arial,sans-serif;color:#173b47;background:#ffffffea;border:1px solid #c8d8da;border-radius:5px;padding:4px 7px;box-shadow:0 2px 8px #1232}.gis-feature-label:before{display:none}
.tools-hero{display:flex;align-items:center;justify-content:space-between;gap:25px;background:linear-gradient(115deg,#143d4a,#156e68);color:white;border-radius:14px;padding:28px 30px;margin-bottom:20px;overflow:hidden}.tools-hero .eyebrow{color:#87e0ce}.tools-hero h2{font-size:25px;line-height:1.3}.tools-hero p{font-size:13px;color:#c4e3e0;line-height:1.6;margin:10px 0 0}.tools-flow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.tools-flow span{padding:12px;border:1px solid #ffffff35;border-radius:9px;background:#ffffff10;font-size:14px;font-weight:700}.tools-flow b{color:#86ddc6}.tools-nav{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.tools-nav button{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel);color:var(--muted);padding:12px 18px;border-radius:8px;font-size:12px;font-weight:600;min-height:44px}.tools-nav button[aria-selected=true]{background:var(--teal);border-color:var(--teal);color:white;box-shadow:0 4px 14px #008c8020}.converter-grid{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(300px,1.05fr);gap:22px;align-items:start}.converter-form label{margin-bottom:15px}.converter-form .step-label{margin-top:22px}.converter-form .step-label:first-child{margin-top:0}.converter-drop{display:flex;align-items:center;flex-direction:column;gap:9px;border:1px dashed var(--teal);background:var(--tint);border-radius:10px;padding:22px;text-align:center;cursor:pointer}.converter-drop .ui-icon{height:28px;width:28px;color:var(--teal)}.converter-drop span{font-size:11px;color:var(--muted)}.converter-drop input{font-size:12px;margin:8px 0 0;padding:8px;background:var(--panel)}.conversion-summary{font-size:12px;padding:12px;background:var(--bg);border:1px solid var(--line);border-radius:7px;margin:12px 0 20px;line-height:1.7;overflow-wrap:anywhere}.conversion-summary span{display:block;color:var(--muted)}.conversion-submit{width:100%;min-height:44px}.conversion-error{color:#b54c35;line-height:1.6;font-size:12px}.converter-side{display:grid;gap:20px;min-width:0}.converter-empty{min-height:230px;display:grid;place-content:center;text-align:center;justify-items:center;color:var(--muted);padding:25px;font-size:13px;line-height:1.6}.converter-empty .ui-icon{height:48px;width:48px;color:var(--teal);margin-bottom:10px}.converter-notes{padding:22px}.converter-notes p{font-size:12px;color:var(--muted);line-height:1.8;margin:15px 0 0}.conversion-layer{padding:20px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.conversion-layer>small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.conversion-layer ul{padding:0;list-style:none;margin:12px 0}.conversion-layer li{font-size:12px;padding:9px 0;border-bottom:1px solid var(--line)}.conversion-layer li>span{display:inline-block;min-width:85px;font-size:10px;color:var(--teal);font-weight:600}.converter-warning{font-size:11px;line-height:1.7;color:#a06a30}#converterPreview{max-height:550px;overflow:auto}#tools-measures .toolcards{grid-template-columns:repeat(3,minmax(0,1fr))}.converter-form .check-label{display:flex;gap:8px;align-items:flex-start;line-height:1.6}.converter-form .check-label input{width:16px;height:16px;min-height:16px;margin:2px 0 0;flex:none}
@media(max-width:1000px){.converter-grid{grid-template-columns:minmax(0,1fr)}.tools-flow{display:none}#tools-measures .toolcards{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.tools-hero{padding:23px 19px}.tools-hero h2{font-size:21px}.tools-nav{display:grid;grid-template-columns:1fr}.tools-nav button{padding:12px}.converter-grid{gap:16px}.converter-drop{padding:16px}.converter-drop input{max-width:100%}.converter-form .panel-body{padding:17px}.converter-notes{padding:18px}}
.converter-sketch{width:100%;height:190px;background:linear-gradient(120deg,var(--bg),var(--tint));border:1px solid var(--line);border-radius:8px;margin-top:15px;display:block}.conversion-download{display:inline-block;margin-top:8px;color:var(--teal);font-weight:600;text-decoration:underline}
.gis-layer-delete,.row-delete{display:inline-grid;place-items:center;border:1px solid #bd55402b;background:var(--panel);color:#bb513b;border-radius:5px;width:27px;height:27px;min-width:27px;font-size:19px;line-height:1;cursor:pointer}.gis-layer-delete:hover,.row-delete:hover{background:#bb513b12;border-color:#bb513b}.deletion-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--tint);border:1px solid var(--line);border-radius:8px;padding:12px 15px;margin-bottom:16px;font-size:12px;color:var(--text)}.danger-button{color:#ad4938}.gis-view .layer-row input[type=color]{width:15px;height:15px;min-width:15px;flex-basis:15px}.data-toolbar #deleteSelectedRows{white-space:normal}.gis-view .gis-layer-delete{flex:none}@media(max-width:600px){.deletion-notice{font-size:11px}.row-delete,.gis-layer-delete{height:32px;width:32px;min-width:32px}}

/* TechGeo identity: survey parcel, contour lines and north arrow. */
.sidebar .brand{gap:10px;align-items:center}
.sidebar .brand-mark{display:block;width:44px;height:44px;flex:0 0 44px;object-fit:contain}
.sidebar .brand>span{min-width:0}
.sidebar .brand small{letter-spacing:1.35px;font-size:7px}
@media(max-width:1150px){.sidebar .brand{font-size:19px;gap:8px}.sidebar .brand-mark{width:38px;height:38px;flex-basis:38px}.sidebar .brand small{font-size:6px;letter-spacing:1px}}

.gis-label-field{display:block;font-size:10px;color:var(--muted);padding:0 0 9px 20px}.gis-label-field select{display:block;width:100%;min-height:30px;font-size:11px;margin-top:4px;padding:5px 7px}
.contour-settings{border:1px solid var(--line);border-radius:9px;background:var(--tint);margin-bottom:20px}.contour-settings>summary{padding:14px;cursor:pointer;font-size:11px;font-weight:750;color:var(--teal)}.contour-settings-body{padding:0 14px 14px}.contour-settings .plan-form-grid{gap:12px}.contour-settings label{font-size:12px}
#recoveryDialog .dialog-actions{flex-wrap:wrap;justify-content:flex-start}#recoveryDialog .button{white-space:normal;max-width:100%}#recoveryDialog select{width:100%;margin:14px 0}.recovery-error{color:var(--muted);overflow-wrap:anywhere}

.gis-window-zoom{position:absolute;inset:0;z-index:650;cursor:crosshair;touch-action:none;user-select:none}.gis-window-rectangle{position:absolute;pointer-events:none;border:2px solid #008c80;background:#008c8022;box-sizing:border-box}.map-floating-tools #gisWindowZoom{display:grid;place-items:center}
/* Accessible, scrollable user guide with compact task-based sections. */
#helpDialog{padding:0;width:min(780px,94vw);max-height:90dvh;overflow:auto}#helpDialog .dialog-header{position:sticky;top:0;z-index:2;background:var(--panel);padding:18px 24px;margin:0;border-bottom:1px solid var(--line)}#helpDialog h2{font-size:22px;margin:4px 0 0}.guide-kicker{font-size:10px;letter-spacing:1.5px;color:var(--teal);font-weight:700}.guide-body{padding:20px 24px 24px}.guide-intro{color:var(--muted);line-height:1.7;font-size:13px;margin:0 0 18px}.guide-section{border:1px solid var(--line);border-radius:9px;margin:9px 0;background:var(--panel)}.guide-section summary{padding:14px;cursor:pointer;font-weight:650;font-size:13px;line-height:1.6}.guide-section summary>span{display:inline-block;color:var(--teal);margin-right:12px;font-size:11px}.guide-section>div{padding:0 18px 8px}.guide-body p{font-size:13px;line-height:1.75;overflow-wrap:anywhere}.guide-body h3{font-size:15px;margin:0 0 10px}.guide-disclaimer{margin-top:24px;padding:18px;border:1px solid var(--line);border-left:4px solid #bc853b;border-radius:9px;background:var(--bg)}.guide-disclaimer p:last-child{margin-bottom:0}.guide-contact{margin-top:22px;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--tint)}.guide-contact>strong{font-size:16px}.guide-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin:14px 0 18px}.guide-links a{color:var(--teal);font-size:13px;text-underline-offset:3px}.guide-contact>.button{display:inline-flex;text-decoration:none;align-items:center;justify-content:center;max-width:100%;white-space:normal;min-height:42px}.guide-section summary:focus-visible,.guide-links a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}@media(max-width:600px){#helpDialog .dialog-header{padding:15px 16px}#helpDialog h2{font-size:19px}.guide-body{padding:16px}.guide-disclaimer,.guide-contact{padding:15px}.guide-links{flex-direction:column;gap:10px}}
/* ST25 / ST26 editor: the drawing uses millimetres and stays on a white sheet. */
.cad-intro{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 20px}.cad-intro p{font-size:13px;line-height:1.7;color:var(--muted);max-width:650px}.cad-intro>div{display:flex;gap:8px;flex-wrap:wrap}.cad-editor{display:grid;grid-template-columns:330px minmax(0,1fr);gap:20px;align-items:start}.cad-editor>*{min-width:0}.cad-options .panel-body{padding:16px}.cad-options details{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:12px}.cad-options summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--teal);padding:8px 0 12px}.cad-options label{display:block;margin:10px 0;font-size:12px;line-height:1.6}.cad-options input,.cad-options select,.cad-options textarea{max-width:100%;min-width:0}.cad-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cad-options .cad-check{display:flex;align-items:center;gap:8px}.cad-check input{width:16px;min-height:16px;flex:none;margin:0}.cad-status{padding:12px 18px;font-size:12px;color:var(--teal);margin:0;border-bottom:1px solid var(--line)}.cad-status.cad-error{color:#ae572e}.cad-preview{padding:20px;background:#e4eaed;max-height:85dvh;overflow:auto;overscroll-behavior:contain}.cad-preview svg{display:block;width:100%;height:auto;background:white;box-shadow:0 3px 18px #1232;max-width:900px;margin:auto}.cad-preview.cad-large svg{width:1050px;max-width:none}.cad-preview.cad-editing svg{cursor:crosshair}.cad-preview-column{position:sticky;top:18px}.cad-annotation,#cadBoundary li{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--line);font-size:12px}.cad-annotation>span,#cadBoundary li>span{flex:1;min-width:0;overflow-wrap:anywhere}#cadBoundary{padding-left:0;list-style:none}.cad-preview-column .panel-header{flex-wrap:wrap;gap:10px}@media(max-width:1000px){.cad-editor{grid-template-columns:290px minmax(0,1fr)}}@media(max-width:780px){.cad-editor{grid-template-columns:1fr}.cad-intro{align-items:flex-start;flex-direction:column}.cad-preview-column{position:static}.cad-preview{padding:10px;max-height:none}.cad-options .panel-body{padding:14px}.cad-preview.cad-large{max-height:80dvh}.cad-preview-column .panel-header{padding:15px}}
.cad-drawing-ui{padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}.cad-draw-toolbar{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.cad-tool-group{font-size:9px;color:var(--muted);margin:0 3px 0 6px}.cad-draw-button{width:34px;height:34px;min-height:34px;display:grid;place-items:center;padding:4px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--text);cursor:pointer}.cad-draw-button[aria-pressed=true]{background:var(--tint);border-color:var(--teal);box-shadow:inset 0 -2px var(--teal)}.cad-draw-button:hover{border-color:var(--teal)}.cad-draw-properties{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding-top:8px}.cad-draw-properties label{font-size:10px;display:flex;align-items:center;gap:4px}.cad-draw-properties input{margin:0;min-height:32px;font-size:12px;padding:6px}.cad-draw-properties input[type=number]{width:58px}.cad-draw-properties>#cadText{width:160px;flex:1;min-width:120px}.cad-inline-check input{width:14px;height:14px;min-height:14px;accent-color:var(--teal)}.cad-drawing-ui .hint{margin:7px 0 0;font-size:11px}.cad-preview.cad-moving svg{cursor:grab;touch-action:none}.cad-preview [data-cad-annotation]{pointer-events:all}.cad-preview.cad-moving [data-cad-annotation]{cursor:move;filter:drop-shadow(0 0 .25px #008c80)}.cad-preview .cad-selected{filter:drop-shadow(0 0 .6px #008c80)!important}.cad-preview:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}.cad-preview-column .panel-header{padding:12px 16px}@media(max-width:600px){.cad-tool-group{font-size:8px}.cad-draw-button{width:36px;height:36px}.cad-draw-properties{gap:6px}.cad-preview{max-height:70dvh}.cad-drawing-ui{padding:8px}.cad-preview-column .panel-header{position:static}}
.cad-preview-column.cad-fullscreen{position:fixed;inset:8px;z-index:120;overflow:hidden;background:var(--panel);box-shadow:0 0 0 100vmax #102c3c88;border-radius:10px}.cad-fullscreen>.panel{height:100%;display:flex;flex-direction:column;margin:0}.cad-fullscreen .panel-header,.cad-fullscreen .cad-drawing-ui,.cad-fullscreen .cad-status{flex-shrink:0}.cad-fullscreen .cad-preview{flex:1;min-height:0;max-height:none;overflow:auto;padding:15px}.cad-fullscreen .cad-preview:not(.cad-large) svg{width:auto;height:calc(100dvh - 245px);max-width:100%;margin-left:auto;margin-right:auto}.cad-fullscreen .cad-preview.cad-large svg{width:1050px;height:auto;max-width:none}.cad-fullscreen .cad-draw-properties>#cadText{max-width:330px}@media(max-width:700px){.cad-preview-column.cad-fullscreen{inset:0;border-radius:0}.cad-fullscreen .cad-preview:not(.cad-large) svg{height:calc(100dvh - 330px)}}
.cad-fullscreen .cad-preview:not(.cad-large) svg{height:calc(100dvh - 285px)}@media(max-width:700px){.cad-fullscreen .cad-preview:not(.cad-large) svg{height:max(150px,calc(100dvh - 390px))}}

/* Project command bar: clear hierarchy, bounded title and consistent controls. */
.topbar{height:76px;gap:18px;background:var(--panel);border-bottom:1px solid var(--line);box-shadow:0 3px 16px #122f3d05}.topbar .breadcrumb{display:flex;align-items:center;gap:12px;flex:1;min-width:0;max-width:none;margin-right:auto;overflow:hidden;white-space:normal}.workspace-emblem{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--tint);color:var(--teal);border:1px solid var(--line)}.workspace-emblem svg{width:24px;height:24px}.workspace-heading{display:flex;flex-direction:column;gap:4px;min-width:0;overflow:hidden}.workspace-caption{display:block;font-size:10px;font-weight:600;letter-spacing:.35px;color:var(--muted);white-space:nowrap}.workspace-caption>span{margin:0 6px;opacity:.5}.topbar #projectBreadcrumb{display:block;max-width:100%;font-size:14px;line-height:1.35;font-weight:650;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .top-actions{gap:10px;flex:none}.topbar .save-status{font-size:10px;white-space:nowrap;color:var(--muted);padding:6px 10px;background:var(--bg);border-radius:20px}.topbar .demo-tag{font-size:9px;max-width:120px}.project-menu>summary{display:flex;align-items:center;gap:8px;padding:10px 13px;min-height:42px;border-radius:10px;background:var(--panel);color:var(--text);font-weight:600;list-style:none}.project-menu>summary::-webkit-details-marker{display:none}.project-menu>summary .ui-icon{width:18px;height:18px;color:var(--teal)}.project-chevron{width:14px;height:14px;transition:transform .15s}.project-menu[open] .project-chevron{transform:rotate(180deg)}.project-menu[open]>summary{background:var(--tint);border-color:var(--teal)}.project-menu>div{top:calc(100% + 9px);border-radius:12px;padding:8px;box-shadow:0 12px 35px #1233;max-width:calc(100vw - 24px)}.project-menu button{line-height:1.5}.topbar .avatar{width:38px;height:38px;margin:0;background:var(--tint);color:var(--teal);border:1px solid var(--line);border-radius:12px}.topbar #mobileMenu{width:40px;height:40px;min-height:40px;padding:9px;border-radius:10px;flex:none}.gis-tool-button .ui-icon,.map-floating-tools .ui-icon{width:21px;height:21px;display:block;pointer-events:none}.map-floating-tools button{display:grid;place-items:center}.layers-disclosure>summary{display:flex;align-items:center;gap:8px;list-style:none}.layers-disclosure>summary::-webkit-details-marker{display:none}.layers-disclosure>summary>.ui-icon{flex:none;width:19px;height:19px;color:var(--teal)}.layers-disclosure>summary .layer-toggle-label{display:block;float:none;font-size:11px;flex:1;min-width:0;color:var(--text)}.layer-toggle-chevron{width:14px;height:14px;flex:none;transition:transform .15s}.layers-disclosure[open] .layer-toggle-chevron{transform:rotate(180deg)}
@media(max-width:1100px){.topbar .save-status{display:none}}
@media(max-width:900px){.topbar{height:68px;gap:10px}.topbar .demo-tag{display:none}.workspace-emblem{display:none}.topbar .top-actions{gap:6px}.workspace-caption{font-size:9px}.topbar #projectBreadcrumb{font-size:13px}.project-menu>summary{padding:9px 10px;gap:6px}.topbar .breadcrumb{gap:0}.workspace-caption>span{padding:0;margin:0 4px}}
@media(max-width:480px){.topbar{padding:0 10px;gap:8px}.project-menu>summary>.ui-icon{display:none}.topbar #projectBreadcrumb{font-size:12px}.workspace-caption{font-size:9px;letter-spacing:0}.topbar .top-actions{gap:0}.project-menu>summary{font-size:12px;min-height:40px;padding:8px}.project-menu>div{width:245px}}

.spatial-panel .layers-disclosure>summary::before,.spatial-panel .layers-disclosure>summary::after{content:none;display:none}.spatial-panel .layers-disclosure>summary .layer-toggle-label{display:block;font-size:11px;float:none;color:var(--text)}.spatial-panel .layers-disclosure>summary{display:flex;gap:8px;min-height:42px}.spatial-panel .layers-disclosure>summary>.ui-icon{width:19px;height:19px;flex:none}.spatial-panel .layers-disclosure:not([open]){width:235px}
/* The breadcrumb separator padding must never shrink the emblem's SVG slot. */
.topbar .breadcrumb>.workspace-emblem{box-sizing:border-box;padding:0;margin:0;flex:0 0 40px;width:40px;min-width:40px;height:40px;line-height:1;place-items:center;overflow:hidden}
.topbar .breadcrumb>.workspace-emblem>svg{display:block;position:static;flex:none;width:24px;height:24px;max-width:none;margin:0;padding:0;overflow:visible}
@media(max-width:900px){.topbar .breadcrumb>.workspace-emblem{display:none}}
.topbar .breadcrumb>.workspace-emblem{color:var(--teal)}

/* Place project shortcuts immediately after the map, with a little more map height. */
.spatial-panel+.workspace-shortcuts{margin:16px 0 20px}
@media(min-width:901px){.gis-view:not(.gis-expanded) .spatial-layout{height:clamp(660px,80dvh,1100px)}}

/* Distance survey: confirmed sides and rubber-band preview remain non-interactive. */
.gis-distance-label{pointer-events:none!important;background:var(--panel);color:var(--text);border:1px solid #df9c48;border-radius:5px;padding:3px 7px;font-size:11px;font-weight:650;box-shadow:0 2px 7px #1232;white-space:nowrap}.gis-distance-label::before{display:none}.gis-distance-pending{border-style:dashed;color:var(--teal)}.gis-tool-status .gis-live-measure-option{display:flex;align-items:center;gap:6px;font-size:11px;white-space:nowrap;margin:0}.gis-live-measure-option input{width:16px;height:16px;min-height:16px;margin:0;flex:none}.gis-live-measure-readout{font-variant-numeric:tabular-nums;font-size:11px;color:var(--teal)}.gis-tool-status [hidden]{display:none!important}.gis-tool-status{flex-wrap:wrap;gap:8px 12px}

.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 24px;padding:18px 16px;border-top:1px solid var(--border,#dce7eb);font-size:12px}.legal-links a{color:var(--text-muted,#56717b);text-underline-offset:3px}@media(max-width:900px){.legal-links{padding-bottom:24px}}
