:root{--ink:#17202b;--ink-2:#4a5563;--ink-3:#7b8594;--line:#d9dde3;--line-2:#e9ecf0;--bg:#f4f5f7;--panel:#fff;--bar:#1c2530;--bar-2:#283341;--accent:#0e7490;--accent-2:#0b5d73;--sel:#e8590c;--danger:#b42318;--warn:#9a6700;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Mono", Consolas, "Liberation Mono", Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font:13px/1.4 var(--font);margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}.muted{color:var(--ink-3)}.small{font-size:12px}.pad{padding:12px}.grow{flex:1}.error{color:var(--danger)}.warn{color:var(--warn)}.hidden-file{display:none}[hidden]{display:none!important}.app{grid-template-columns:230px minmax(300px,1fr) 310px;grid-template-rows:minmax(46px, auto) minmax(160px, 1fr) var(--bottom-h,310px) 26px;grid-template-areas:"tb tb tb""left center right""bottom bottom bottom""status status status";width:100vw;height:100vh;display:grid}.toolbar{grid-area:tb}.left{border-right:1px solid var(--line);grid-area:left}.center{grid-area:center;min-width:0;min-height:0;position:relative}.right{border-left:1px solid var(--line);grid-area:right}.bottom{border-top:1px solid var(--line);background:var(--panel);flex-direction:column;grid-area:bottom;min-height:0;display:flex;position:relative}.statusbar{grid-area:status}.app.dropping .center:after{content:"Drop .inp and data files to open";border:2px dashed var(--accent);color:var(--accent);pointer-events:none;background:#0e74900f;border-radius:10px;place-items:center;font-size:16px;display:grid;position:absolute;inset:12px}.toolbar{background:var(--bar);color:#e7ecf2;flex-wrap:wrap;align-items:center;gap:6px 10px;min-width:0;padding:6px 10px;display:flex}.brand{letter-spacing:.2px;white-space:nowrap;align-items:center;gap:8px;margin-right:6px;font-weight:650;display:flex}.brand-mark{background:linear-gradient(#5eead4 0 45%,#0e7490 45% 100%);border-radius:4px;width:18px;height:18px;box-shadow:inset 0 0 0 1.5px #ffffff59}.tb-group{background:var(--bar-2);border-radius:7px;align-items:center;gap:2px;padding:3px;display:flex}.tb{color:#dfe6ee;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:5px;align-items:center;height:28px;padding:0 10px;font-size:12.5px;display:inline-flex}.tb:hover{background:#364253}.tb:disabled{opacity:.4;cursor:default;background:0 0}.tb.icon{padding:0 8px;font-size:16px}.tb.mode.active{color:var(--bar);background:#e7ecf2}.tb.primary{background:var(--accent);color:#fff;font-weight:600}.tb.primary:hover{background:#118aab}.panel{background:var(--panel);flex-direction:column;min-height:0;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);border-bottom:1px solid var(--line-2);padding:9px 12px 6px;font-size:11px;font-weight:600}.panel-body{flex:1;min-height:0;overflow:auto}.tree-wrap{flex-direction:column;display:flex}.tree-filter{border:1px solid var(--line);background:#fbfbfc;border-radius:6px;margin:8px 10px;padding:5px 8px}.tree{flex:1;padding-bottom:12px;overflow:auto}.tree-group{cursor:pointer;color:var(--ink-2);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:5px 10px;font-weight:600;display:flex}.tree-group:hover{background:var(--line-2)}.tree-group .caret{width:10px;color:var(--ink-3)}.tree-group .count{color:var(--ink-3);background:var(--line-2);border-radius:9px;margin-left:auto;padding:0 7px;font-size:11.5px;font-weight:500}.tree-item{cursor:pointer;font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;padding:2px 10px 2px 28px;font-size:12px;overflow:hidden}.tree-item:hover{background:#eef3f7}.tree-item.sel{color:#8a2f05;box-shadow:inset 3px 0 0 var(--sel);background:#fde8dc}.tree-more{color:var(--ink-3);padding:4px 28px;font-style:italic}.props{padding:10px 12px 20px}.props-head{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.props-head h3{font-size:16px;font-family:var(--mono);word-break:break-all;margin:0}.kicker{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);font-size:11px;font-weight:650}.props-sec{border:1px solid var(--line-2);border-radius:8px;margin:0 0 10px;padding:6px 8px 8px}.props-sec legend{color:var(--ink-3);font-size:11px;font-family:var(--mono);padding:0 4px}.prop{grid-template-columns:44% 56%;align-items:center;gap:6px;margin:2px 0;display:grid}.prop-label{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.prop input{border:1px solid var(--line);width:100%;font-family:var(--mono);background:#fff;border-radius:5px;padding:3px 6px;font-size:12px}.prop input:focus{border-color:var(--accent);outline:2px solid #0e749059}.prop input[readonly]{background:var(--line-2);color:var(--ink-3)}.props h4,.summary h4{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);margin:14px 0 6px;font-size:12px}.model-title{color:var(--ink-2);margin:0 0 8px}table.mini{border-collapse:collapse;width:100%;font-size:12px}table.mini td,table.mini th{border-bottom:1px solid var(--line-2);text-align:left;padding:3px 4px}table.mini th{color:var(--ink-3);font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--mono)}ul.plain{font-family:var(--mono);margin:0;padding:0;list-style:none}.btn{border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:#fff;border-radius:6px;align-items:center;gap:6px;height:28px;padding:0 12px;display:inline-flex}.btn:hover{background:#f8f9fa;border-color:#b8c0ca}.btn:disabled{opacity:.45;cursor:default}.btn.small{height:24px;padding:0 8px;font-size:12px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-2)}.btn.danger{color:var(--danger)}.icon-btn{cursor:pointer;color:var(--ink-3);background:0 0;border:0;font-size:20px;line-height:1}.statusbar{border-top:1px solid var(--line);color:var(--ink-2);white-space:nowrap;background:#eceef1;align-items:center;gap:14px;padding:0 10px;font-size:12px;display:flex;overflow:hidden}.status-file{font-weight:600}.status-msg{text-overflow:ellipsis;overflow:hidden}.run-status{background:#dfe3e8;border-radius:9px;padding:1px 8px}.run-status[data-state=running]{color:var(--accent-2);background:#d7eef5}.run-status[data-state=done]{color:#1d6b3a;background:#dcefe3}.run-status[data-state=error]{color:var(--danger);background:#fbe3e1}.engine{color:var(--ink-3)}.netview{background-color:#fbfcfd;background-image:linear-gradient(#eef1f4 1px,#0000 1px),linear-gradient(90deg,#eef1f4 1px,#0000 1px);background-size:40px 40px;outline:none;position:absolute;inset:0;overflow:hidden}.netview[data-mode]:not([data-mode=select]) .netsvg{cursor:crosshair}.netsvg{cursor:default;-webkit-user-select:none;user-select:none;touch-action:none;width:100%;height:100%;display:block}.netsvg .sub{fill:#e3ece1;fill-opacity:.75;stroke:#86a083;stroke-width:1.2px}.netsvg .sub.sel{stroke:var(--sel);stroke-width:2.5px;fill:#fde8dc}.netsvg .subline{stroke:#86a083;stroke-width:1.2px;stroke-dasharray:5 4}.netsvg .link,.plan .link{fill:none;stroke:#4b5563;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.netsvg .k-pump,.plan .k-pump{stroke-dasharray:9 3}.netsvg .k-orifice,.plan .k-orifice{stroke-dasharray:3 3}.netsvg .k-weir,.plan .k-weir{stroke-dasharray:1 4;stroke-width:3.2px}.netsvg .k-outlet,.plan .k-outlet{stroke-dasharray:10 3 2 3}.netview.coloured .link{stroke-width:3.5px}.netsvg .link.sel{stroke-width:5px;stroke:var(--sel)!important}.netsvg .glyph{fill:#fff;stroke:#374151;stroke-width:1.3px}.netsvg .node,.plan .node{fill:#fff;stroke:#1f2937;stroke-width:1.5px}.netsvg .node.k-outfall,.plan .node.k-outfall{fill:#374151}.netsvg .node.k-storage,.plan .node.k-storage{fill:#cfd8e3}.netsvg .node.k-divider,.plan .node.k-divider{fill:#e5e7eb}.netsvg .node.sel{stroke:var(--sel);stroke-width:3.5px}.netsvg .gage,.plan .gage{fill:#fff;stroke:var(--accent);stroke-width:1.6px}.netsvg .gage.sel{stroke:var(--sel);stroke-width:3px}.netsvg .lbl,.plan .lbl{font:11px var(--font);fill:var(--ink-2);paint-order:stroke;stroke:#fff;stroke-width:3px}.netsvg .lbl-link{fill:var(--ink-3)}.netsvg .lbl-sub{fill:#5d7a5a;font-style:italic}.netsvg .boxsel{fill:#e8590c12;stroke:var(--sel);stroke-dasharray:4 3}.netsvg .pending{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4}.netsvg .pending-poly{fill:#0e749014}.plan .sub{fill:#e3ece1;stroke:#86a083;stroke-width:1px}.net-hint{background:var(--bar);color:#fff;pointer-events:none;border-radius:16px;padding:5px 12px;font-size:12px;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 2px 8px #00000026}.net-tools{flex-direction:column;gap:4px;display:flex;position:absolute;top:10px;right:10px}.net-tools button{border:1px solid var(--line);cursor:pointer;background:#fffffff2;border-radius:6px;min-width:34px;height:28px;font-size:12px}.net-tools button:hover{border-color:#b8c0ca}.net-tools button.on{background:var(--ink);color:#fff}.net-legend{border:1px solid var(--line);background:#fffffff2;border-radius:8px;flex-direction:column;gap:8px;min-width:220px;padding:8px 10px;font-size:11.5px;display:flex;position:absolute;bottom:10px;left:10px}.legend-title{color:var(--ink-2);margin-bottom:3px;font-weight:600}.legend-row{align-items:center;gap:4px;display:flex}.legend-zero{border-radius:2px;width:14px;height:10px}.legend-ramp{border-radius:2px;flex:1;height:10px}.legend-ticks{color:var(--ink-3);font-variant-numeric:tabular-nums;justify-content:space-between;display:flex}.splitter{cursor:ns-resize;z-index:2;height:7px;position:absolute;top:-4px;left:0;right:0}.results{flex-direction:column;flex:1;min-height:0;display:flex}.results-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:0 8px;display:flex}.tabs{gap:2px;display:flex}.tab{cursor:pointer;color:var(--ink-2);background:0 0;border:0;border-bottom:2px solid #0000;padding:9px 12px 7px;font-weight:550}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent-2);border-bottom-color:var(--accent)}.results-bar{color:var(--ink-2);align-items:center;gap:8px;margin-left:auto;padding:4px 0;font-size:12px;display:flex}.results-bar select{border:1px solid var(--line);background:#fff;border-radius:5px;max-width:170px;padding:2px 4px}.results-bar .chk{align-items:center;gap:4px;display:inline-flex}.results-bar .sep{background:var(--line);width:1px;height:18px}.slider{width:180px;accent-color:var(--accent)}.period{font-family:var(--mono);min-width:210px;color:var(--ink);font-size:11.5px}.tab-body{flex:1;min-height:0;padding:6px 8px;overflow:auto}.tab-body[data-tab=chart],.tab-body[data-tab=profile]{overflow:hidden}.tab-tools{flex-wrap:wrap;align-items:center;gap:10px;padding:2px 0 6px;font-size:12px;display:flex}.tab-tools select{border:1px solid var(--line);background:#fff;border-radius:5px;max-width:160px;padding:2px 4px}.chart-box{line-height:0}.rpt-text{font:12px/1.35 var(--mono);white-space:pre;margin:0}.summary .msgs{flex-direction:column;gap:3px;margin-bottom:6px;display:flex}table.rpt{border-collapse:collapse;margin-bottom:8px;font-size:12px}table.rpt th{color:var(--ink-2);text-align:left;border-bottom:1px solid var(--line);vertical-align:bottom;background:#f1f3f6;padding:4px 8px;font-weight:600}table.rpt td{border-bottom:1px solid var(--line-2);font-family:var(--mono);white-space:nowrap;padding:3px 8px}table.rpt tbody tr:hover{background:#f7f9fb}svg.chart{font-family:var(--font);display:block}.chart-grid line{stroke:#e9ecf0;stroke-width:1px}.chart-axis{stroke:#9aa3ae;stroke-width:1px}.chart-tick{fill:var(--ink-3);font-variant-numeric:tabular-nums;font-size:10.5px}.chart-label{fill:var(--ink-2);font-size:11.5px}.chart-title{fill:var(--ink);font-size:13px;font-weight:600}.chart-legend{fill:var(--ink-2);font-size:11.5px}.chart-marker{stroke:var(--ink-2);stroke-width:1px;stroke-dasharray:3 3}.chart-cross{stroke:var(--ink-3);stroke-width:1px}.chart-tip rect{fill:#fffffff7;stroke:var(--line)}.chart-tip text{fill:var(--ink);font-variant-numeric:tabular-nums;font-size:11.5px}.chart-tip-head{font-weight:600}.modal-back{z-index:50;background:#141c2673;place-items:center;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:12px;flex-direction:column;width:min(680px,94vw);max-height:92vh;display:flex;box-shadow:0 20px 60px #00000040}.modal-head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:12px;padding:14px 18px 10px;display:flex}.modal-head h2{margin:0;font-size:16px}.modal-body{padding:14px 18px;overflow:auto}.modal-foot{border-top:1px solid var(--line-2);justify-content:flex-end;gap:8px;padding:10px 18px 14px;display:flex}.form label{color:var(--ink-2);flex-direction:column;gap:3px;font-size:12px;display:flex}.form input[type=number],.form input[type=text],.form select{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:6px;padding:5px 8px}.form .label{color:var(--ink-2);margin:10px 0 4px;font-size:12px}.grid2{grid-template-columns:1fr 1fr;gap:10px 14px;display:grid}.checks{flex-wrap:wrap;gap:4px 14px;display:flex}.checks .chk{font-family:var(--mono);flex-direction:row;align-items:center;gap:4px}.storm-preview{margin-top:12px;line-height:0}.notice{color:#6b4b00;background:#fff7e0;border:1px solid #f0d58a;border-radius:7px;padding:8px 10px}.import-out ul{margin:4px 0 8px;padding-left:20px}.report-view{z-index:40;background:#d9dde3;position:fixed;inset:0;overflow:auto}.report-bar{z-index:2;background:var(--bar);color:#e7ecf2;align-items:center;gap:12px;padding:8px 16px;display:flex;position:sticky;top:0}.report-bar .muted{color:#a9b4c2}.report-doc{color:#111;background:#fff;width:210mm;margin:18px auto 40px;padding:16mm 15mm;font-size:10.5pt;line-height:1.4;box-shadow:0 4px 24px #00000026}.report-doc h1{letter-spacing:-.3px;margin:6mm 0 2mm;font-size:26pt}.report-doc h2{border-bottom:1.5px solid #222;margin:0 0 3mm;padding-bottom:1.5mm;font-size:14pt}.r-title h2{color:#333;border:0;margin-bottom:8mm;font-weight:500}.report-doc h3{margin:5mm 0 2mm;font-size:11pt}.r-brand{text-transform:uppercase;letter-spacing:.14em;color:var(--accent-2);margin-top:20mm;font-size:10pt;font-weight:700}.r-statement{border-left:3px solid var(--accent);background:#f2f8fa;margin-top:10mm;padding:4mm 5mm}.r-warn{color:var(--warn)}.r-import{background:#fffaf0;border:1px solid #f0d58a;margin-top:8mm;padding:3mm 5mm}.r-import h3{margin-top:1mm}.r-sec{margin-top:8mm}table.r-kv{border-collapse:collapse;width:100%}table.r-kv th{text-align:left;color:#333;border-bottom:.5px solid #ccc;width:45%;padding:1.2mm 2mm;font-weight:600}table.r-kv td{border-bottom:.5px solid #ccc;padding:1.2mm 2mm}.report-doc table.rpt{width:100%;font-size:8pt}.report-doc table.rpt th{background:#eef0f3;border-bottom:1px solid #999;padding:1.2mm 1.5mm;font-size:7.6pt}.report-doc table.rpt td{border-bottom:.4px solid #ddd;padding:.8mm 1.5mm;font-size:8pt}.r-fig{break-inside:avoid;margin:4mm 0}.r-fig svg{max-width:100%;height:auto}.r-caption{color:#444;margin:1.5mm 0 0;font-size:9pt}.r-msgs{font-size:9pt}.r-foot{color:#555;border-top:.5px solid #aaa;margin-top:12mm;padding-top:3mm;font-size:8.5pt}@page{size:A4;margin:14mm 12mm 16mm}@media print{html,body{background:#fff;height:auto;overflow:visible}body.print-report .app,body.print-report .modal-back{display:none!important}.report-view{background:#fff;position:static;overflow:visible}.no-print{display:none!important}.report-doc{width:auto;box-shadow:none;margin:0;padding:0}.r-title{break-after:page}.r-break{break-before:page}.r-table,.r-fig{break-inside:avoid-page}table.rpt thead{display:table-header-group}table.rpt tr{break-inside:avoid}.report-doc h2,.report-doc h3{break-after:avoid}}.report-bar .btn:not(.primary){color:#1d2430}.view-note{border:1px solid var(--line);border-left:3px solid var(--accent);z-index:3;background:#fff;border-radius:6px;flex-wrap:wrap;align-items:center;gap:8px;max-width:460px;padding:8px 12px;font-size:13px;display:flex;position:absolute;top:12px;left:12px}.view-note[hidden]{display:none}.exp .exp-kinds{flex-direction:column;gap:6px;margin:12px 0;display:flex}.exp .exp-kind{border:1px solid var(--line);cursor:pointer;border-radius:7px;flex-direction:row;align-items:flex-start;gap:8px;padding:7px 9px}.exp .exp-kind:has(input:checked){border-color:var(--accent);background:#f3f7fd}.exp .exp-kind>span{flex-direction:column;gap:2px;display:flex}.exp .exp-kind b{color:var(--ink);font-size:13px}.exp .exp-opts,.exp .exp-opts>div{flex-direction:column;gap:8px;display:flex}.exp .exp-opts .grid2{display:grid}.exp label.chk.row{flex-direction:row;align-items:center;gap:6px}.exp .exp-out{margin-top:10px}.exp .exp-notes{max-height:160px;margin:4px 0 0;padding-left:18px;font-size:12px;overflow:auto}.modal.gis-modal{width:min(1040px,96vw)}.gis-form{flex-direction:column;gap:10px;display:flex}.gis-form .gis-wide{box-sizing:border-box;width:100%}.gis-layers{flex-direction:column;gap:12px;display:flex}.gis-layer{border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.gis-layer-head{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.gis-layer-head .gis-role{flex-direction:row;align-items:center;gap:6px;margin-left:auto}.gis-crs details summary{color:var(--ink-2);cursor:pointer;margin-top:4px;font-size:12px}.gis-map,.gis-preview{border-collapse:collapse;width:100%;font-size:12px}.gis-map th,.gis-map td,.gis-preview th,.gis-preview td{border-bottom:1px solid var(--line-2);text-align:left;vertical-align:middle;padding:3px 6px}.gis-map th,.gis-preview th{color:var(--ink-2);font-weight:600}.gis-map select{max-width:180px}.gis-map input[type=text],.gis-map input[type=number]{width:90px}.gis-map input[data-testid=gis-prefix]{width:48px}.gis-preview-box{overflow-x:auto}.gis-target{border-top:1px solid var(--line-2);flex-direction:column;gap:6px;padding-top:10px;display:flex}.gis-custom{gap:10px;display:flex}.gis-custom .grow{flex:1}.form label.gis-snap{flex-direction:row;align-items:center;gap:6px}.gis-snap input{width:80px}.gis-report h4{margin:10px 0 4px}.gis-report ul{margin:0;padding-left:18px}.gis-report details{margin:6px 0}.gis-report summary{cursor:pointer;font-size:13px}.tb.lic-btn{gap:6px}.lic-badge{color:#cfe8ef;background:#364253;border-radius:9px;padding:1px 6px;font-size:11px}.lic-badge[data-tone=ok]{color:#e3f6ea;background:#1f5f3a}.lic-badge[data-tone=warn]{color:#fff4d6;background:#7a5a00}.lic-badge[data-tone=error]{background:var(--danger);color:#fff}.lic-form{flex-direction:column;gap:10px;display:flex}.lic-status{color:var(--accent-2);background:#eef6f8;border-radius:7px;padding:8px 10px}.lic-status.warn{color:var(--warn);background:#fff7e0}.lic-status.error{color:var(--danger);background:#fdecea}.lic-status.ok{color:#1f5f3a;background:#e9f6ee}.lic-input{font:12px/1.35 var(--mono);border:1px solid var(--line);resize:vertical;word-break:break-all;color:var(--ink);border-radius:6px;padding:6px 8px}.lic-result{border:1px solid var(--line);border-left-width:4px;border-radius:7px;padding:8px 10px}.lic-result.ok{border-left-color:#2f8a55}.lic-result.warn{border-left-color:var(--warn)}.lic-result.error{border-left-color:var(--danger)}.lic-result.error .lic-verdict{color:var(--danger)}.lic-verdict{margin-bottom:6px;font-weight:600}.lic-fields{grid-template-columns:max-content 1fr;gap:2px 14px;margin:0 0 6px;display:grid}.lic-fields dt{color:var(--ink-3)}.lic-fields dd{word-break:break-all;margin:0}.lic-nag{z-index:40;color:var(--warn);background:#fff7e0;border:1px solid #ecd9a0;border-radius:8px;align-items:center;gap:10px;max-width:80vw;padding:6px 8px 6px 12px;display:flex;position:fixed;top:52px;left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0000001f}.lic-nag.error{color:var(--danger);background:#fdecea;border-color:#f2c4bf}@media print{.lic-nag{display:none!important}}.fb-map{transform-origin:50%;position:absolute}.fb-map .maplibregl-canvas{outline:none}.netview.map-on{background-image:none}.netview.map-on .netsvg .sub{fill-opacity:.45}.fb-map-info{border:1px solid var(--line);max-width:360px;color:var(--ink-2);background:#ffffffeb;border-radius:6px;flex-direction:column;align-items:flex-end;gap:2px;padding:4px 8px;font-size:11px;display:flex;position:absolute;bottom:10px;right:10px}.fb-map-info[hidden]{display:none}.fb-map-row{align-items:center;gap:8px;display:flex}.fb-map-link{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;font-size:11px;text-decoration:underline}.fb-map-note{color:#9a3412}.fb-map-attr a{color:inherit}.fb-map-form label{flex-direction:column;gap:3px;display:flex}.fb-map-form textarea{resize:vertical;font:12px ui-monospace,Consolas,monospace}.fb-map-check{min-height:2.6em;font-size:12px}.net-tools .fb-map-toggle[data-state=offline],.net-tools .fb-map-toggle[data-state=nowebgl]{white-space:normal;color:#9a3412;max-width:74px;height:auto;padding:3px 4px;font-size:11px;line-height:1.15}.noaa{border:1px solid var(--line-2);background:#fafbfc;border-radius:8px;margin-bottom:12px;padding:6px 10px}.noaa>summary{cursor:pointer;color:var(--ink-2);padding:2px 0;font-size:13px;font-weight:600}.noaa[open]>summary{margin-bottom:8px}.noaa-body{flex-direction:column;gap:8px;display:flex}.noaa-row{flex-wrap:wrap;align-items:flex-end;gap:8px 12px;display:flex}.noaa-row label{min-width:0}.noaa-row input[type=number]{width:130px}.noaa-row label.chk{flex-direction:row;align-items:center;gap:4px}.noaa textarea{border:1px solid var(--line);resize:vertical;border-radius:6px;padding:5px 8px;font:11px/1.35 ui-monospace,Consolas,monospace}.noaa .notice{margin:0}.noaa-status{min-height:16px;color:var(--ink-2)}.noaa-status[data-state=offline],.noaa-status[data-state=blocked],.noaa-status[data-state=error]{color:var(--danger)}.noaa-status[data-state=filled]{color:var(--ok,#1a7f37)}.noaa-picker{border-top:1px solid var(--line-2);flex-direction:column;gap:6px;padding-top:8px;display:flex}.noaa-picker[hidden]{display:none}.noaa-value{padding-bottom:6px;font-weight:600}.noaa span[hidden]{display:none}.modal.swa-modal{width:min(1100px,96vw)}.swa{flex-direction:column;gap:8px;font-size:13px;display:flex}.swa .swa-tabs{border-bottom:1px solid var(--line);flex-wrap:wrap;gap:2px;display:flex}.swa .swa-msg{min-height:0;font-size:12px}.swa .swa-msg:empty{display:none}.swa .swa-msg.warn{color:var(--warn)}.swa .swa-label{color:var(--ink-2);margin-top:4px;font-size:12px;font-weight:600}.swa .swa-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.swa .swa-field{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:flex}.swa .swa-type{font-weight:600}.swa .swa-in{border:1px solid var(--line);font:inherit;font-family:var(--mono);color:var(--ink);background:#fff;border-radius:5px;min-width:0;padding:3px 6px;font-size:12px}.swa .swa-in:focus{outline:2px solid var(--accent);outline-offset:-1px}.swa .swa-in.invalid{border-color:var(--danger);background:#fff4f2}.swa .swa-split{grid-template-columns:220px 1fr;align-items:start;gap:14px;display:grid}.swa .swa-side{flex-direction:column;gap:3px;max-height:58vh;display:flex;overflow:auto}.swa .swa-item{text-align:left;border:1px solid var(--line);cursor:pointer;font:inherit;background:#fff;border-radius:6px;grid-template-columns:1fr auto;padding:5px 8px;display:grid}.swa .swa-item:hover{background:var(--bg)}.swa .swa-item.sel{border-color:var(--accent);background:#e6f4f7}.swa .swa-item-name{font-family:var(--mono);font-weight:600}.swa .swa-item-sub{color:var(--ink-2);grid-column:1;font-size:11px}.swa .swa-badge{color:var(--danger);grid-area:1/2/span 2;align-self:center;font-size:11px;font-weight:700}.swa .swa-new{border-top:1px dashed var(--line);flex-direction:column;gap:4px;margin-top:8px;padding-top:8px;display:flex}.swa .swa-new-row{flex-flow:wrap;align-items:center;gap:8px}.swa .swa-new-row label{color:var(--ink-2);align-items:center;gap:4px;font-size:12px;display:flex}.swa .swa-main{flex-direction:column;gap:8px;max-height:58vh;padding-right:4px;display:flex;overflow:auto}.swa .swa-layer{border:1px solid var(--line);border-radius:8px;margin:0;padding:6px 10px 8px;position:relative}.swa .swa-layer legend{padding:0 4px;font-size:12px;font-weight:600}.swa .swa-layer-btn{position:absolute;top:-2px;right:8px}.swa .swa-params{grid-template-columns:minmax(150px,1.4fr) 110px minmax(70px,auto) minmax(90px,1fr);align-items:center;gap:4px 10px;display:grid}.swa .swa-plabel{cursor:help;font-size:12px}.swa .swa-unit{color:var(--ink-2);font-size:11px;font-weight:400}.swa .swa-range{color:var(--ink-2);font-size:11px}.swa .swa-scroll{border:1px solid var(--line);border-radius:6px;max-height:50vh;overflow:auto}.swa .swa-table{border-collapse:collapse;width:100%;font-size:12px}.swa .swa-table th{background:var(--bg);text-align:left;border-bottom:1px solid var(--line);vertical-align:bottom;padding:4px 6px;font-weight:600;position:sticky;top:0}.swa .swa-table td{border-bottom:1px solid var(--line-2,#eef0f3);vertical-align:middle;padding:2px 6px}.swa .swa-table tr.hl td{background:#fff7e6}.swa .swa-table tr.swa-absent td{color:var(--ink-2)}.swa .swa-table tr.swa-absent .swa-in{background:#f7f8fa}.swa .swa-totals{flex-direction:column;gap:2px;display:flex}.swa .swa-mono{font-family:var(--mono)}.swa .swa-ro{border-left:3px solid var(--accent);background:#f1f5f9;border-radius:4px;padding:6px 10px;font-size:12px}.swa .swa-issues{max-height:18vh;font-size:12px;overflow:auto}.swa .swa-ok{color:#1a7f37}.swa .swa-issues-head{color:var(--ink-2);margin-bottom:2px}.swa .swa-issue-list{margin:0;padding:0;list-style:none}.swa .swa-issue{padding:1px 0}.swa .swa-issue.link{cursor:pointer}.swa .swa-issue.link:hover{text-decoration:underline}.swa .swa-issue .swa-sev{font-weight:700}.swa .swa-issue.error .swa-sev{color:var(--danger)}.swa .swa-issue.warning .swa-sev{color:var(--warn)}.swa .swa-where{font-family:var(--mono)}.swa .swa-note{color:var(--ink-2);margin:4px 0 0;font-size:11px}.swa .swa-ref summary{cursor:pointer;color:var(--ink-2);font-size:12px}.swa .swa-ref pre{white-space:pre;margin:4px 0;overflow:auto}.swa .swa-code{border:1px solid var(--line);background:#fbfcfd;border-radius:6px;grid-template-columns:auto 1fr;height:46vh;min-height:220px;display:grid;overflow:hidden}.swa .swa-gutter,.swa .swa-hl,.swa .swa-text{font-family:var(--mono);tab-size:8;white-space:pre;margin:0;padding:6px 8px;font-size:12.5px;line-height:18px}.swa .swa-gutter{color:#9aa3ae;text-align:right;border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#f1f3f5;overflow:hidden}.swa .swa-code-main{position:relative;overflow:hidden}.swa .swa-hl,.swa .swa-text{box-sizing:border-box;border:0;position:absolute;inset:0;overflow:auto}.swa .swa-hl{pointer-events:none;color:var(--ink);scrollbar-width:none}.swa .swa-hl::-webkit-scrollbar{display:none}.swa .swa-text{color:#0000;caret-color:var(--ink);resize:none;background:0 0;outline:none;width:100%;height:100%}.swa .swa-text::selection{background:#0e749040}.swa .swa-line.error{-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;background:#fde8e6}.swa .swa-line.warning{background:#fff6dc}.swa .tk-kw{color:#7c3aed;font-weight:700}.swa .tk-obj{color:#0e7490;font-weight:600}.swa .tk-id{color:#b45309}.swa .tk-attr{color:#1d4ed8}.swa .tk-rel{color:#be185d}.swa .tk-num{color:#047857}.swa .tk-val{color:#0f766e;font-weight:600}.swa .tk-name{color:#9a3412;font-style:italic}.swa .tk-comment{color:#6b7280;font-style:italic}.swa .tk-bad{color:var(--danger);-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger)}.props-sec.swa-props .swa-props-line{font-family:var(--mono);color:var(--ink-2);white-space:pre;text-overflow:ellipsis;font-size:11px;overflow:hidden}.water-ws{z-index:30;background:var(--bg);position:fixed;inset:0}.water-ws[hidden]{display:none}.water-mark{background:linear-gradient(#bae6fd 0 45%,#0369a1 45% 100%)}.water-select{color:#dfe6ee;background:#364253;border:0;border-radius:5px;height:26px;padding:0 6px;font-size:12px}.water-ws .toolbar{overflow-x:auto}.water-netview .netsvg .link.wk-pump{stroke-dasharray:9 3}.water-netview .netsvg .link.wk-valve{stroke-dasharray:3 3}.water-netview .netsvg .wglyph circle,.water-netview .netsvg .wglyph path{fill:#fff;stroke:#374151;stroke-width:1.3px}.water-netview .netsvg .node.wk-reservoir{fill:#93c5fd}.water-netview .netsvg .node.wk-tank{fill:#dbeafe}.water-netview .netsvg .node.picked{stroke:#0369a1;stroke-width:2.5px}.water-netview .netsvg .node.sel{stroke:var(--sel);stroke-width:3.5px}.water-netview .netsvg .fail-ring{fill:none;stroke:var(--danger);stroke-width:2.5px}.water-netview .netsvg .wlabel{fill:var(--ink);font-weight:600}.water-netview[data-mode]:not([data-mode=select]) .netsvg{cursor:crosshair}.legend-fail{border:2.5px solid var(--danger);border-radius:50%;width:12px;height:12px;margin-right:4px;display:inline-block}.water-ws table.rpt tr.sel td{background:#fde8dc}.water-ws table.rpt tbody tr{cursor:pointer}.water-charts{flex-wrap:wrap;gap:8px;display:flex}table.rpt tr.fail td{color:var(--danger)}.check-banner{border:1px solid;border-radius:7px;margin:2px 0 8px;padding:8px 12px;font-size:12.5px}.check-banner.pass{color:#1d6b3a;background:#e8f5ec;border-color:#9fd3b0}.check-banner.fail{color:#8c1d13;background:#fbe9e7;border-color:#f0b4ad}.check-msg{min-height:1.4em;margin-top:8px}.report-doc .r-pass{background:#e8f5ec;border-left:3px solid #1d6b3a;padding:3mm 4mm}.report-doc .r-fail{border-left:3px solid var(--danger);background:#fbe9e7;padding:3mm 4mm}.water-report{z-index:45}@media print{body.print-report .water-ws,body.print-water .report-view:not(.water-report){display:none!important}}
