:root{--ink:#15212b;--muted:#76838d;--muted2:#9ba6ad;--paper:#f5f7f8;--white:#fff;--line:#e7ecef;--nav:#101a22;--nav2:#182630;--lime:#c5ec67;--teal:#21a68a;--blue:#528fbd;--amber:#e8aa47;--red:#d86d65;--shadow:0 8px 28px rgba(28,49,62,.055);font-family:"DM Sans",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper)}button{font:inherit}.app-shell{min-height:100vh;display:flex}.sidebar{width:255px;position:fixed;inset:0 auto 0 0;background:var(--nav);color:#d9e1e6;padding:27px 17px 16px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:11px;padding:0 10px 35px;text-decoration:none;color:#fff}.brand-mark{width:35px;height:35px;border-radius:10px;background:#d0ed81;display:grid;place-items:center}.brand-mark svg{width:29px;height:29px;fill:none;stroke:#14212b;stroke-width:2}.brand strong{display:block;letter-spacing:2px;font:800 18px Manrope,sans-serif;line-height:1.1}.brand small{display:block;margin-top:4px;color:#8d9ca6;font-size:8px;font-weight:700;letter-spacing:1.45px}.workspace-label{font:500 9px "DM Mono",monospace;color:#71818c;letter-spacing:1.5px;padding:0 11px 11px}.asset-select{height:61px;margin:0 2px 31px;padding:10px 10px;border:1px solid #2b3a44;border-radius:9px;display:flex;align-items:center;gap:9px}.asset-select>span:nth-child(2){flex:1}.asset-select small,.asset-select strong{display:block}.asset-select small{font:9px "DM Mono",monospace;color:#758590;letter-spacing:.8px}.asset-select strong{font-size:12px;margin-top:3px;color:#f1f4f5;font-weight:600}.asset-dot{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px #c5ec671b}.chevron{font-size:14px;color:#81909a}.primary-nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;color:#9eabb3;display:flex;align-items:center;gap:11px;text-align:left;border-radius:7px;height:43px;padding:0 10px;cursor:pointer;font-size:12px;transition:.16s ease}.nav-item:hover{background:#1a2933;color:#f3f6f7}.nav-item.active{background:#22343d;color:#fff;box-shadow:inset 2px 0 var(--lime)}.nav-icon{width:19px;text-align:center;font-size:17px;color:#81949f}.nav-item.active .nav-icon{color:var(--lime)}.nav-trailing{margin-left:auto;color:#63727c;font:9px "DM Mono",monospace}.nav-item.active .nav-trailing{color:#b5c4cd}.sidebar-bottom{margin-top:auto}.sidebar-divider{height:1px;background:#283740;margin:0 8px 15px}.preview-note{display:flex;align-items:flex-start;gap:10px;padding:10px 9px 20px}.preview-dot{width:7px;height:7px;flex:none;margin-top:5px;background:#7db2a5;border-radius:50%;box-shadow:0 0 0 4px #7db2a51c}.preview-note strong,.preview-note small,.profile strong,.profile small{display:block}.preview-note strong{font-size:11px;color:#dfe6e9;font-weight:600}.preview-note small{font-size:9px;color:#778792;margin-top:4px}.profile{border-top:1px solid #283740;padding:15px 6px 0;display:flex;align-items:center;gap:9px}.avatar,.top-avatar{border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700}.avatar{width:29px;height:29px;background:#344750;color:#e1e9ed}.profile strong{font-size:10px;color:#d3dce0}.profile small{font-size:9px;color:#74838d;margin-top:3px}.more{margin-left:auto;font-size:10px;color:#76858f;letter-spacing:2px}.main-area{margin-left:255px;width:calc(100% - 255px);min-height:100vh;display:flex;flex-direction:column}.topbar{height:61px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 35px}.breadcrumb{font-size:11px;color:#98a3aa;display:flex;gap:10px;align-items:center}.breadcrumb b{color:#c2cbd0;font-weight:400}.breadcrumb strong{color:#3b4a54;font-weight:600}.top-actions{display:flex;align-items:center;gap:19px}.demo-pill{display:flex;gap:7px;align-items:center;background:#f2f6e8;color:#68794a;border:1px solid #e3ebd2;padding:6px 9px;border-radius:4px;font:9px "DM Mono",monospace;letter-spacing:.45px}.demo-pill i{width:6px;height:6px;background:#8aae47;border-radius:50%}.icon-button{position:relative;background:transparent;border:0;font-size:18px;color:#76838d;cursor:pointer}.notification{position:absolute;width:5px;height:5px;right:2px;top:4px;background:#e3985d;border-radius:50%}.top-avatar{width:27px;height:27px;background:#d9e7dd;color:#466358}.content{padding:29px 35px 25px;max-width:1640px;width:100%;margin:auto;flex:1}.footer{height:42px;padding:0 35px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #e8edef;color:#9ca7ac;font:8px "DM Mono",monospace;letter-spacing:.6px}.footer b{color:#c1c9cd;font-weight:400}.page-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.eyebrow{font:9px "DM Mono",monospace;color:#8a979f;letter-spacing:1.15px;text-transform:uppercase;margin:0 0 8px}.page-head h1{font:700 25px Manrope,sans-serif;letter-spacing:-.7px;margin:0;color:#17252e}.page-head p.subhead{margin:6px 0 0;color:#849098;font-size:11px}.head-tools{display:flex;gap:8px;align-items:center}.select-like,.button-secondary{height:32px;padding:0 11px;background:#fff;border:1px solid #e0e7ea;border-radius:5px;color:#53616a;font-size:10px}.button-secondary{cursor:pointer;font-weight:600}.button-secondary:hover{border-color:#bac8ce;background:#fbfcfc}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px}.metric,.panel{background:#fff;border:1px solid #e8edef;border-radius:8px;box-shadow:var(--shadow)}.metric{min-height:91px;padding:14px 15px;position:relative;overflow:hidden}.metric-label{font-size:10px;color:#7b8991;display:flex;align-items:center;justify-content:space-between}.metric-label span{font:9px "DM Mono",monospace;color:#a3adb2}.metric-value{font:700 23px Manrope,sans-serif;letter-spacing:-.7px;margin-top:9px;color:#20303a}.metric-unit{font:10px "DM Sans",sans-serif;font-weight:500;color:#7f8c93;letter-spacing:0}.metric-foot{font-size:9px;margin-top:3px;color:#8d999f}.trend{color:#4c9a76}.layout-main{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(255px,.85fr);gap:14px}.panel-head{height:48px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf1f2}.panel-title{font-size:11px;color:#33444e;font-weight:700}.panel-meta{color:#98a4aa;font:9px "DM Mono",monospace}.panel-body{padding:15px}.map-panel{overflow:hidden}.map-controls{display:flex;align-items:center;gap:6px}.map-control{width:25px;height:24px;background:white;border:1px solid #e3e9eb;border-radius:4px;color:#63737c;font-size:13px}.map-canvas{height:342px;position:relative;background:#e9efeb;overflow:hidden}.map-canvas:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 16% 26%,#c9d9cd 0 1px,transparent 1.5px),radial-gradient(ellipse at 80% 68%,#d4dfd8 0 1px,transparent 1.5px);background-size:25px 21px,34px 27px;opacity:.45}.map-svg{display:block;width:100%;height:100%;position:relative}.terrain{fill:#e7eee8}.field{fill:#dfe8dc;opacity:.72}.town{fill:#e2e6dc}.road{fill:none;stroke:#f8f8ef;stroke-width:7}.road-edge{fill:none;stroke:#d0d8cf;stroke-width:1}.water{fill:none;stroke:#c5dfe0;stroke-width:13;opacity:.9}.route-base{fill:none;stroke:#324b56;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}.route{fill:none;stroke:#9ed860;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.route-alt{fill:none;stroke:#49a98f;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.map-label{fill:#71817d;font:9px "DM Mono",monospace;letter-spacing:.4px}.map-label.small{font-size:7px;fill:#8a9791}.map-node{fill:#fff;stroke:#638b4b;stroke-width:3}.map-incident{fill:#e08168;stroke:white;stroke-width:3}.map-legend{position:absolute;bottom:12px;left:12px;background:#ffffffeb;border:1px solid #e3e9e2;border-radius:5px;padding:9px 11px;display:flex;gap:14px;box-shadow:0 4px 14px #283f3210}.legend-item{display:flex;align-items:center;gap:6px;color:#63716f;font-size:8px}.legend-line{width:17px;height:3px;border-radius:2px;background:#94ca57}.legend-line.secondary{background:#49a98f}.legend-dot{width:6px;height:6px;background:#df8068;border-radius:50%}.map-attribution{position:absolute;bottom:8px;right:9px;color:#93a09c;font-size:7px}.right-stack{display:grid;gap:14px;align-content:start}.health-panel{padding-bottom:12px}.health-score{padding:15px;display:flex;align-items:center;gap:13px}.score-ring{width:55px;height:55px;border-radius:50%;background:conic-gradient(#8cbd55 0 88%,#e8eee6 88%);display:grid;place-items:center;position:relative}.score-ring:before{content:"";position:absolute;inset:5px;border-radius:50%;background:#fff}.score-ring strong{position:relative;font:700 14px Manrope,sans-serif;color:#354a3e}.score-text strong{font-size:12px;display:block;color:#33444b}.score-text small{display:block;margin-top:4px;font-size:9px;color:#929ea3}.health-list{border-top:1px solid #eef1f2;padding:5px 14px 0}.health-row{height:28px;display:flex;align-items:center;justify-content:space-between;color:#708089;font-size:9px}.health-row strong{color:#52636b;font:10px "DM Mono",monospace}.status-good{color:#69a469!important}.chart-panel{padding-bottom:10px}.chart-box{height:113px;padding:9px 14px 3px}.chart-svg{width:100%;height:100%;overflow:visible}.grid-line{stroke:#edf1f2;stroke-width:1}.chart-area{fill:url(#chartFill)}.chart-line{fill:none;stroke:#5a9b83;stroke-width:2}.chart-line.alt{stroke:#d4a34d}.chart-axis{fill:#a0aaae;font:8px "DM Mono",monospace}.chart-legend{display:flex;gap:14px;padding:0 15px;color:#8a969c;font-size:8px}.chart-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:#5a9b83}.chart-legend i.gold{background:#d4a34d}.table-wrap{overflow:auto}.data-table{border-collapse:collapse;width:100%;font-size:10px}.data-table th{text-align:left;color:#98a3a9;font:8px "DM Mono",monospace;font-weight:400;letter-spacing:.5px;padding:10px;border-bottom:1px solid #edf1f2}.data-table td{padding:11px 10px;color:#53636a;border-bottom:1px solid #f0f3f4}.data-table tr:last-child td{border-bottom:0}.data-table td strong{color:#33454d;font-weight:600}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:12px;padding:4px 8px;font-size:8px;font-weight:700;letter-spacing:.25px}.badge:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge.stable{color:#5e9873;background:#edf6ef}.badge.watch{color:#ba8b3b;background:#faf3e5}.badge.review{color:#bd7066;background:#fbefed}.content-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,.8fr);gap:14px}.section-title{margin:20px 0 10px;font:700 13px Manrope,sans-serif;color:#31414a}.map-large .map-canvas{height:450px}.map-side-card{padding:15px}.map-side-card h3{font:700 12px Manrope,sans-serif;margin:0 0 6px}.map-side-card p{font-size:10px;line-height:1.65;color:#87949a;margin:0}.detail-row{display:flex;justify-content:space-between;border-top:1px solid #edf0f1;padding:10px 0;font-size:9px;color:#7c8990}.detail-row strong{color:#42535b;font:10px "DM Mono",monospace}.callout{padding:11px 12px;background:#f8f6ef;border:1px solid #efead8;border-radius:5px;font-size:9px;line-height:1.5;color:#8b7c52;margin-top:11px}.sparkline{height:70px;width:100%}.segmented{display:flex;background:#f1f4f4;padding:3px;border-radius:5px;gap:2px}.segmented button{border:0;background:transparent;color:#88949a;font-size:8px;padding:6px 8px;border-radius:3px}.segmented button.selected{background:#fff;color:#45565e;box-shadow:0 1px 4px #1b30320c}.heat-table{border-collapse:separate;border-spacing:5px;width:100%;font-size:9px}.heat-table th{color:#8d989c;font:8px "DM Mono",monospace;font-weight:400;padding:5px}.heat-table td{height:38px;text-align:center;border-radius:4px;font:10px "DM Mono",monospace;color:#42534f}.heat-1{background:#eaf3e4}.heat-2{background:#dbeccf}.heat-3{background:#c4e0b0}.heat-4{background:#f4e5c6}.heat-5{background:#f0d2be}.heat-6{background:#eabbb0}.scenario-form{display:grid;gap:17px;padding:18px}.field-label{display:flex;justify-content:space-between;align-items:center;color:#607079;font-size:10px}.field-label strong{font:11px "DM Mono",monospace;color:#354750}.range{width:100%;accent-color:#83ab50;margin-top:12px}.field-help{font-size:8px;color:#9aa5aa;margin-top:5px}.scenario-result{padding:16px;background:#f7f9f5;border:1px solid #e6ece0;border-radius:6px}.scenario-result .eyebrow{margin-bottom:6px}.scenario-result strong{font:700 20px Manrope,sans-serif;color:#526b45}.scenario-result p{font-size:9px;line-height:1.5;color:#89948c;margin:5px 0 0}.risk-score{font:600 10px "DM Mono",monospace;color:#52636a}.report-preview{padding:20px;min-height:190px;background:linear-gradient(140deg,#20313a,#2f4b4d);color:#fff;position:relative;overflow:hidden}.report-preview:after{content:"";position:absolute;width:210px;height:210px;border:1px solid #c7e77b45;border-radius:50%;right:-72px;top:-45px;box-shadow:0 0 0 30px #c7e77b0c,0 0 0 62px #c7e77b08}.report-preview .eyebrow{color:#b7c9bd}.report-preview h2{font:700 22px Manrope,sans-serif;margin:30px 0 7px;position:relative;z-index:1}.report-preview p{font-size:9px;color:#b8c7c7;margin:0;position:relative;z-index:1}.report-preview small{position:absolute;bottom:16px;left:20px;font:8px "DM Mono",monospace;color:#9fb1ad}.empty-illustration{color:#7d8c93;font-size:10px;padding:24px;line-height:1.6}.toast{position:fixed;bottom:57px;right:28px;background:#20333b;color:#eaf0f0;padding:11px 15px;border-radius:6px;font-size:10px;box-shadow:0 9px 26px #13232c25;z-index:10;opacity:0;transform:translateY(8px);transition:.2s;pointer-events:none}.toast.show{opacity:1;transform:translateY(0)}
.gis-map-wrapper{height:390px;position:relative;background:#263f48}.map-large .gis-map-wrapper{height:575px}.map-host{position:absolute;inset:0}.map-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;background:#eef2f4;z-index:3;color:#647682;font-size:12px;text-align:center;padding:25px}.map-message[hidden]{display:none}.map-failed{background:#f6f0ec;color:#946449}.map-failed .loading-spinner{display:none}.loading-spinner{height:25px;width:25px;border:2px solid #d0d9dd;border-top-color:#59968a;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.viewer-switch{display:flex;border:1px solid #dce5e7;border-radius:5px;padding:2px;gap:2px}.viewer-switch button{border:0;background:transparent;font-size:9px;color:#809098;padding:6px 8px;border-radius:3px;cursor:pointer}.viewer-switch button.selected{background:#233d46;color:white}.map-toolbar{min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 12px;background:#f9fbfb;border-bottom:1px solid #e8eeef}.map-toolbar select{font:9px "DM Sans",sans-serif;color:#637780;border:1px solid #dce4e8;border-radius:4px;padding:4px;background:#fff;max-width:95px}.map-selection-label{font-size:9px;color:#73828a}.map-fit{font:9px "DM Sans",sans-serif;background:#fff;border:1px solid #dce4e8;border-radius:4px;padding:5px 7px;color:#5d707a;cursor:pointer}.map-caption{padding:10px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#829099;font-size:8px;border-top:1px solid #e7ecee}.map-caption>span:first-child{display:flex;align-items:center;gap:6px}.map-color-line{display:inline-block;width:14px;height:3px;background:#fa9a46}.map-color-node,.map-color-origin{display:inline-block;width:6px;height:6px;border-radius:50%;background:#57d5da;margin-left:6px}.map-color-origin{background:#af6bff}.map-help{padding:0 12px 10px;font-size:9px;color:#8c999f;line-height:1.5}.leak-workspace{grid-template-columns:minmax(0,1.7fr) minmax(285px,.85fr)}.origin-selected{font:10px "DM Mono",monospace;color:#935ec7}.selection-instruction{font-size:10px!important;line-height:1.7!important;color:#73858d!important}.node-jump{display:flex;gap:7px;align-items:center;margin:14px 0 16px}.node-jump label{font-size:10px;color:#6e8088;white-space:nowrap}.node-jump input{flex:1;min-width:0;width:110px;border:1px solid #dce4e8;border-radius:4px;padding:8px;font:11px "DM Mono",monospace;color:#34505b}.inspector-tabs{display:flex;gap:4px;border-bottom:1px solid #e7edef;margin:0 -15px 12px;padding:0 12px}.inspector-tabs button{font-size:10px;background:transparent;border:0;color:#8c989d;padding:10px 7px;cursor:pointer;border-bottom:2px solid transparent}.inspector-tabs button.selected{color:#476c73;border-bottom-color:#7cab85}.inspector-content .form-label{display:block;font-size:10px;color:#6e8088;margin-top:15px;margin-bottom:6px}.input-with-unit{display:flex;align-items:center;border:1px solid #dce4e8;border-radius:4px;padding-right:10px;color:#86949b;font-size:10px}.input-with-unit input{width:100%;border:0;background:transparent;padding:9px 10px;font:11px "DM Mono",monospace;color:#34505b}.inspector-content select{width:100%;border:1px solid #dce4e8;border-radius:4px;padding:9px 7px;background:#fff;color:#5e707a;font-size:10px}.selection-actions{display:flex;gap:7px;margin-top:13px}.full-width{width:100%;margin-top:13px}.button-secondary:disabled{opacity:.45;cursor:default}.elevation-profile{width:100%;height:115px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.esri-view .esri-view-surface--inset-outline:focus::after{outline:1px solid #81b999}.map-host .cesium-widget-credits{font-size:10px}.map-control{cursor:pointer}
@media(max-width:1120px){.sidebar{width:218px}.main-area{margin-left:218px;width:calc(100% - 218px)}.content{padding-left:23px;padding-right:23px}.topbar,.footer{padding-left:23px;padding-right:23px}.layout-main,.content-grid{grid-template-columns:minmax(0,1.5fr) minmax(230px,.85fr)}}@media(max-width:820px){.sidebar{width:65px;padding:20px 8px}.brand{padding:0 7px 29px}.brand>span:last-child,.workspace-label,.asset-select,.nav-item:not(.active) span:not(.nav-icon),.nav-item.active span:not(.nav-icon),.sidebar-bottom .preview-note,.profile>span,.sidebar-divider{display:none}.primary-nav{gap:7px}.nav-item{justify-content:center;padding:0;height:43px;font-size:0}.nav-icon{font-size:18px}.nav-trailing{display:none}.profile{justify-content:center;padding-top:14px}.main-area{margin-left:65px;width:calc(100% - 65px)}.content{padding:23px 17px}.topbar{padding:0 17px}.footer{padding:0 17px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.layout-main,.content-grid{grid-template-columns:1fr}.right-stack{grid-template-columns:repeat(2,minmax(0,1fr))}.leak-workspace .right-stack{grid-template-columns:1fr}.map-large .gis-map-wrapper{height:450px}}@media(max-width:560px){.topbar{height:53px}.breadcrumb{font-size:9px}.top-actions{gap:10px}.demo-pill{font-size:7px;padding:5px 6px}.content{padding:19px 12px}.topbar{padding:0 12px}.footer{padding:0 12px;font-size:7px}.footer span:last-child{display:none}.page-head{align-items:flex-start;gap:10px;flex-direction:column}.page-head h1{font-size:21px}.metrics{gap:8px}.metric{padding:11px;min-height:82px}.metric-value{font-size:20px}.right-stack{grid-template-columns:1fr}.gis-map-wrapper,.map-large .gis-map-wrapper{height:390px}.map-toolbar{flex-wrap:wrap}.map-caption{flex-wrap:wrap}.gis-panel-head{padding:0 9px}.head-tools{width:100%}.select-like{flex:1}.data-table{min-width:520px}.content-grid{gap:10px}}
.institution-brand{padding:12px;background:#fff;border-radius:8px;margin-bottom:16px}.institution-brand img{display:block;width:100%;height:auto}.institution-brand small{display:block;color:#64716b;font-size:10px;text-align:center;margin-top:7px}.layer-options{display:grid;gap:12px;margin:18px 0}.layer-options label{display:flex;align-items:center;gap:8px;font-size:12px}.layer-options i{width:9px;height:9px;border-radius:50%}.layer-options input{width:auto}.endpoint{display:grid;grid-template-columns:1fr 90px;gap:7px;margin:14px 0;align-items:center}.endpoint button{grid-column:1/-1}.endpoint label{font-size:12px}.endpoint .selected{border-color:#789b62;background:#eff5e9}.parameter-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.parameter-grid label{font-size:11px}.parameter-grid input{display:block;margin-top:6px;width:100%}#workflow-inspector{align-self:start}#workflow-inspector input[type=number],#workflow-inspector select{width:100%;padding:9px;border:1px solid #dde2df;border-radius:6px;background:white;color:#253932}#workflow-inspector .inspector-tabs button{font-size:11px}#workflow-inspector .callout{margin:16px 0}
.empty-state{padding:28px 24px;color:#58665e}.empty-state strong{font-size:15px}.empty-state p{max-width:62ch;color:#77817a;line-height:1.65}.segment-focus{min-width:72px;padding:5px 8px}.segment-focus.selected{background:#f4edfa;border-color:#b98bda;color:#68438a}.data-table td{white-space:nowrap}.map-caption{gap:10px}.map-caption span:first-child{display:flex;gap:7px;align-items:center}.content>.page-head{margin-bottom:18px}
.zone-note{margin:0 16px 12px}.asset-select .chevron{display:none}
.project-footer-note{display:flex;flex-direction:column;gap:4px;padding:12px 11px 0;color:#c4d0d6;font-size:11px}.project-footer-note small{font-size:9px;color:#82919a}
