.geometry-canvas .target-polygon,.geometry-canvas .target-line,.geometry-canvas .axis-line,.geometry-canvas .axis-tick,.geometry-canvas .vertex,.geometry-canvas .side-selection-path,.geometry-canvas .side-insert-halo,.geometry-canvas .side-insert-button,.geometry-canvas .side-insert-plus,.geometry-canvas .curve-bend-control line,.geometry-canvas .curve-bend-point,.geometry-canvas .square-corner-mark,.geometry-canvas .water-supply-ring,.geometry-canvas .water-supply-marker line,.geometry-canvas .water-supply-marker>circle,.geometry-canvas .draft-layer path,.geometry-canvas .draft-layer circle,.geometry-canvas .draft-layer rect{vector-effect:non-scaling-stroke}.geometry-canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.geometry-canvas .target-polygon{stroke:#14532d;stroke-linejoin:round;stroke-width:2px}.geometry-canvas .target-line{stroke-width:2px}.geometry-canvas .target-polygon.is-invalid{stroke:#dc2626;stroke-dasharray:6px 4px;stroke-width:2.5px}.geometry-canvas .target-polygon.is-ghost,.geometry-canvas .target-line.is-ghost{opacity:.32;pointer-events:none}.geometry-canvas .axis-line,.geometry-canvas .axis-tick{stroke:#9aa59f;stroke-width:1px}.geometry-canvas .axis-label{fill:#66756c;font-weight:600}.geometry-canvas .axis-label-y{dominant-baseline:middle;text-anchor:end}.geometry-canvas .vertex{fill:#fff;stroke:#14532d;stroke-width:2px}.geometry-canvas .vertex.is-selected{fill:#2563eb;stroke:#fff;stroke-width:2.5px}@media(hover:hover){.geometry-canvas .vertex-hit-target:hover+.vertex:not(.is-selected){fill:#dcfce7}.geometry-canvas .side-hit-target:hover{stroke:#2563eb24}.geometry-canvas .editable-label:hover{fill:#2563eb;text-decoration:underline}.geometry-canvas .square-corner-mark:hover{stroke:#93c5fd}}@media(hover:none){.geometry-canvas .vertex-hit-target:active+.vertex:not(.is-selected){fill:#dcfce7}.geometry-canvas .side-hit-target:active{stroke:#2563eb24}.geometry-canvas .editable-label:active{fill:#2563eb}}.geometry-canvas .vertex-label{fill:#33443a;font-weight:700;paint-order:stroke;pointer-events:none;stroke:#fff;stroke-linejoin:round;stroke-width:.3em}.geometry-canvas .side-selection-path{stroke:#2563eb;stroke-dasharray:none;stroke-width:4px}.geometry-canvas .side-insert-halo{fill:#ffffffe6;stroke:#2563eb40;stroke-width:1px}.geometry-canvas .side-insert-button{fill:#2563eb;stroke:#fff;stroke-width:1.5px}.geometry-canvas .side-insert-plus{fill:none;pointer-events:none;stroke:#fff;stroke-linecap:round;stroke-width:2px}.geometry-canvas .side-label,.geometry-canvas .angle-label{dominant-baseline:central;paint-order:stroke;stroke:#fff;stroke-linejoin:round;stroke-width:.35em;text-anchor:middle}.geometry-canvas .side-label{fill:#1e3a5f;font-weight:700}.geometry-canvas .side-label.is-selected{fill:#2563eb}.geometry-canvas .arc-radius-label{fill:#2563eb;font-weight:650}.geometry-canvas .angle-label{fill:#8a4b0f;font-weight:700}.geometry-canvas .editable-label{cursor:pointer}.geometry-canvas .square-corner-mark{fill:none;pointer-events:bounding-box;stroke:#ffffffeb;stroke-width:2px}.geometry-canvas .curve-bend-control line{stroke-dasharray:4px 4px;stroke-width:1px}.geometry-canvas .curve-bend-point{stroke-width:2px}.geometry-canvas .water-supply-ring{stroke-width:1px}.geometry-canvas .water-supply-marker line{stroke-width:2px}.geometry-canvas .water-supply-marker>circle:not(.water-supply-hit-target):not(.water-supply-ring){stroke-width:2px}.geometry-canvas .water-supply-label{stroke-width:.3em}.geometry-canvas .draft-layer{pointer-events:none}.geometry-canvas .draft-outline{fill:none;stroke:#14532d;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.5px}.geometry-canvas .draft-preview-line{fill:none;stroke:#2563eb;stroke-dasharray:7px 5px;stroke-linecap:round;stroke-width:2px}.geometry-canvas .draft-preview.is-direction .draft-preview-line{opacity:.6}.geometry-canvas .draft-preview-tip,.geometry-canvas .draft-preview-label{fill:#2563eb}.geometry-canvas .draft-vertex{fill:#fff;stroke:#14532d;stroke-width:2px}.geometry-canvas .draft-vertex.is-closing{fill:#16a34a;stroke:#fff;stroke-width:3px}.geometry-canvas .draft-shape{fill:#16653429;stroke:#14532d;stroke-dasharray:7px 5px;stroke-width:2px}.canvas-shell .canvas-editor{align-items:center;background:#fff;border:1px solid #2563eb;border-radius:8px;box-shadow:0 6px 18px #1f2a242e;display:flex;gap:4px;height:auto;padding:3px 8px 3px 3px;position:absolute;width:auto;z-index:3}.canvas-shell .canvas-editor input{border:0;border-radius:5px;color:#1f2a24;font-size:16px;font-weight:600;outline:none;padding:6px;width:84px}.canvas-shell .canvas-editor span{color:#617068;font-weight:600}.draw-bar{background:#f8faf8;border-top:1px solid #d7ddd8;display:grid;gap:10px;padding:12px 14px}.draw-bar-hint{color:#33443a;font-size:14px;margin:0}.draw-bar-controls{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.draw-length-field{align-items:center;background:#fff;border:1px solid #c8d1ca;border-radius:8px;display:inline-flex;gap:6px;min-height:40px;padding:0 10px}.draw-length-field:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.draw-length-field span{color:#617068;font-size:13px;font-weight:600;white-space:nowrap}.draw-length-field input{border:0;font-size:16px;font-weight:600;outline:none;padding:6px 0;width:72px}.draw-turn{border:1px solid #c8d1ca;border-radius:8px;display:inline-flex;overflow:hidden}.draw-turn button,.draw-bar-button{align-items:center;background:#fff;border:0;color:#223026;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:6px;min-height:40px;padding:0 12px}.draw-turn button+button{border-left:1px solid #c8d1ca}.draw-turn button.active{background:#e8f0ff;color:#1d4ed8}.draw-bar-button{border:1px solid #c8d1ca;border-radius:8px}.draw-bar-button:hover:not(:disabled),.draw-turn button:hover:not(.active){background:#f1f5f2}.draw-bar-button.primary{background:#14532d;border-color:#14532d;color:#fff}.draw-bar-button.primary:hover:not(:disabled){background:#0f3f22}.draw-bar-button:disabled{cursor:not-allowed;opacity:.45}.canvas-status.is-warning{background:#fff7ed;color:#9a3412}@media(pointer:coarse){.draw-turn button,.draw-bar-button,.draw-length-field{min-height:44px}}@media(max-width:560px){.draw-bar-controls>*{flex:1 1 auto;justify-content:center}.draw-length-field input{width:100%}}.toolbar .tool-button{aspect-ratio:auto;font-size:13px;font-weight:600;gap:6px;padding:0 10px;width:auto}.split-tool{display:inline-flex}.toolbar .split-tool .split-tool-main{border-bottom-right-radius:0;border-top-right-radius:0}.toolbar .split-tool .split-tool-toggle{aspect-ratio:auto;border-bottom-left-radius:0;border-left-color:#e3e8e4;border-top-left-radius:0;margin-left:-1px;width:22px}.toolbar .split-tool.active .split-tool-toggle{border-left-color:#ffffff47}.toolbar .split-tool .split-tool-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.shape-menu{background:#fff;border:1px solid #c8d1ca;border-radius:8px;box-shadow:0 10px 28px #1f2a242e;display:grid;gap:2px;padding:4px;position:fixed;width:200px;z-index:40}.toolbar .shape-menu button,.canvas-shell>.shape-menu button{align-items:center;aspect-ratio:auto;background:transparent;border:0;border-radius:6px;color:#223026;cursor:pointer;display:flex;font:inherit;font-size:13px;font-weight:600;gap:10px;justify-content:flex-start;min-height:36px;padding:0 10px;text-align:left;width:100%}.toolbar .shape-menu button:hover,.toolbar .shape-menu button:focus-visible,.canvas-shell>.shape-menu button:hover,.canvas-shell>.shape-menu button:focus-visible{background:#edf3ee;outline:none}.toolbar .shape-menu button[aria-checked=true],.canvas-shell>.shape-menu button[aria-checked=true]{color:#14532d}.shape-menu-check{margin-left:auto}@media(pointer:coarse){.toolbar button,.canvas-controls button,.display-controls label{min-height:40px;min-width:40px}.toolbar .split-tool .split-tool-toggle{min-width:32px}.toolbar .shape-menu button,.canvas-shell>.shape-menu button{min-height:44px}}.lawn-inspector .measure-list{display:grid;gap:6px;list-style:none;margin:0;padding:0}.lawn-inspector .measure-row{align-items:center;border:1px solid transparent;border-radius:8px;display:grid;gap:8px;grid-template-columns:minmax(84px,1fr) minmax(104px,128px) auto;padding:4px 6px}.lawn-inspector .measure-row.is-selected{background:#eff6ff;border-color:#bfdbfe}.lawn-inspector .measure-name{background:none;border:0;color:#223026;cursor:pointer;font-weight:600;padding:6px 0;text-align:left}.lawn-inspector .measure-actions{align-items:center;display:inline-flex;gap:4px}.lawn-inspector .measure-chip{align-items:center;background:#fff;border:1px solid #c8d1ca;border-radius:999px;color:#33443a;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:4px;min-height:30px;padding:0 10px;white-space:nowrap}.lawn-inspector .measure-chip.active{background:#f0fdf4;border-color:#86efac;color:#166534}.lawn-inspector .measure-chip:disabled{cursor:default}.lawn-inspector .measure-select{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none' stroke='%2333443a' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m1 1 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid #c8d1ca;border-radius:999px;color:#33443a;cursor:pointer;font:inherit;font-size:12px;font-weight:600;min-height:30px;padding:0 26px 0 10px}.lawn-inspector .measure-select.active{background-color:#f0fdf4;border-color:#86efac;color:#166534}.lawn-inspector .measure-icon{align-items:center;background:none;border:1px solid transparent;border-radius:6px;color:#617068;cursor:pointer;display:inline-flex;height:30px;justify-content:center;width:30px}.lawn-inspector .measure-icon:hover:not(:disabled){background:#fef2f2;color:#b91c1c}.lawn-inspector .measure-icon:disabled{cursor:not-allowed;opacity:.35}.number-field{align-items:center;background:#fff;border:1px solid #c8d1ca;border-radius:8px;display:inline-flex;min-height:36px;min-width:0;padding:0 8px 0 0}.number-field:focus-within{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.number-field input{background:transparent;border:0;font-size:15px;font-variant-numeric:tabular-nums;font-weight:600;min-width:0;outline:none;padding:6px 4px 6px 10px;width:100%}.number-field-unit{color:#7a877f;font-size:13px;font-weight:600}.lawn-inspector .segmented{background:#eef2ef;border-radius:8px;display:inline-flex;gap:2px;margin-bottom:10px;padding:3px}.lawn-inspector .segmented button{background:transparent;border:0;border-radius:6px;color:#33443a;cursor:pointer;font-weight:600;min-height:32px;padding:0 14px}.lawn-inspector .segmented button.active{background:#fff;box-shadow:0 1px 2px #1f2a241f;color:#14532d}.lawn-inspector .template-fields{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.lawn-inspector .template-fields label,.lawn-inspector .coordinate-row label{display:grid;gap:4px}.lawn-inspector .template-fields label>span:first-child,.lawn-inspector .coordinate-row label>span:first-child{color:#617068;font-size:12px;font-weight:600}.lawn-inspector .template-note{font-size:13px;margin:8px 0 0}.lawn-inspector .template-submit{background:#14532d;border:0;border-radius:8px;color:#fff;cursor:pointer;font-weight:700;margin-top:10px;min-height:40px;width:100%}.lawn-inspector .template-submit:disabled{cursor:not-allowed;opacity:.45}.lawn-inspector .advanced-coordinates>summary{align-items:center;color:#33443a;cursor:pointer;display:flex;font-weight:600;gap:6px}.lawn-inspector .coordinate-list{display:grid;gap:10px}.lawn-inspector .coordinate-row{align-items:end;display:grid;gap:8px;grid-template-columns:76px repeat(2,minmax(0,1fr))}.lawn-inspector .coordinate-row>span{font-size:13px;font-weight:600;padding-bottom:9px}@media(max-width:420px){.lawn-inspector .measure-row{grid-template-columns:minmax(70px,1fr) minmax(96px,1.2fr)}.lawn-inspector .measure-row>:last-child{grid-column:1 / -1;justify-self:end}}.geometry-canvas .touch-loupe-backdrop{fill:#fff;filter:drop-shadow(0 4px 10px rgba(31,42,36,.28))}.geometry-canvas .touch-loupe-ring{fill:none;stroke:#244c3a;stroke-width:2px;vector-effect:non-scaling-stroke}.geometry-canvas .touch-loupe-mark{stroke:#2563eb;stroke-width:1.5px;vector-effect:non-scaling-stroke}:root{color:#1f2a24;background:#f4f6f2;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.app{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;overflow:hidden}.topbar{flex:none;align-items:center;background:#fff;border-bottom:1px solid #d7ddd8;display:flex;gap:24px;justify-content:space-between;padding:18px 24px}.topbar h1{font-size:24px;line-height:1;margin:0 0 6px}.topbar p{color:#617068;margin:0}.app-home-link{align-items:center;color:#244c3a;display:inline-flex;font-size:14px;gap:8px;min-height:44px;text-underline-offset:4px;white-space:nowrap}.app-home-link:focus-visible{outline:2px solid #244c3a;outline-offset:5px}.visually-hidden{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.toolbar-group{align-items:center;display:flex;gap:4px}.toolbar-group+.toolbar-group,.canvas-control-group+.canvas-control-group{border-left:1px solid #dfe5e1;margin-left:2px;padding-left:8px}.toolbar button,.icon-text,.primary{align-items:center;border:1px solid #c8d1ca;border-radius:8px;background:#fff;color:#223026;cursor:pointer;display:inline-flex;min-height:38px;justify-content:center;padding:8px 10px}.toolbar button{aspect-ratio:1;min-height:34px;padding:0;width:34px}.toolbar .text-button{aspect-ratio:auto;width:auto}.toolbar-toggle{align-items:center;border:1px solid #c8d1ca;border-radius:8px;color:#223026;display:inline-flex;gap:8px;min-height:38px;padding:8px 10px}.toolbar-toggle input{accent-color:#244c3a}.project-file-input{display:none}.toolbar button.active{background:#244c3a;border-color:#244c3a;color:#fff}.toolbar button:disabled,.icon-text:disabled{cursor:not-allowed;opacity:.45}.toolbar button[data-tooltip],.canvas-controls button[data-tooltip],.display-controls label[data-tooltip],.grid-step-field[data-tooltip]{position:relative}.toolbar button[data-tooltip]:after,.canvas-controls button[data-tooltip]:after,.display-controls label[data-tooltip]:after,.grid-step-field[data-tooltip]:after{background:#1f2a24f0;border-radius:5px;box-shadow:0 6px 18px #1f2a242e;color:#fff;content:attr(data-tooltip);font-size:11px;font-weight:750;left:50%;letter-spacing:0;line-height:1;opacity:0;padding:6px 7px;pointer-events:none;position:absolute;top:calc(100% + 7px);transform:translate(-50%) translateY(-2px);transition:opacity .12s ease,transform .12s ease;white-space:nowrap;z-index:5}@media(hover:hover){.toolbar button[data-tooltip]:hover:after,.canvas-controls button[data-tooltip]:hover:after,.display-controls label[data-tooltip]:hover:after,.grid-step-field[data-tooltip]:hover:after{opacity:1;transform:translate(-50%) translateY(0)}}.primary{background:#244c3a;border-color:#244c3a;color:#fff;width:100%}.primary.analyze-action{background:#2563eb;border-color:#2563eb}.primary.optimize-action{background:#0f766e;border-color:#0f766e}.primary:disabled{cursor:not-allowed;opacity:.55}.workspace{align-items:stretch;flex:1;min-height:0;overflow:hidden;display:grid;gap:0;padding:18px}.workspace-main{align-self:start;display:grid;gap:10px;min-width:0}.app:not(.is-compact) .workspace-main{align-self:stretch;display:flex;flex-direction:column;min-height:0;overflow-y:auto;overscroll-behavior:contain}.app:not(.is-compact) .canvas-workbench,.desktop-output-panel{flex:none}.desktop-side:not(.is-collapsed){display:flex;flex-direction:column;min-height:0}.desktop-side>.panel-collapse,.desktop-side>.tab-bar{flex:none}.desktop-side>.tab-panel{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.canvas-workbench{min-width:0}.workspace.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.resize-divider{align-self:stretch;background:transparent;border:0;cursor:col-resize;margin:0;min-width:14px;padding:0;position:relative}.resize-divider:before{background:#c8d1ca;border-radius:999px;content:"";inset:14px 6px;opacity:.7;position:absolute;transition:background .15s ease,opacity .15s ease,transform .15s ease}.resize-divider:hover:before,.workspace.is-resizing .resize-divider:before{background:#244c3a;opacity:1;transform:scaleX(1.4)}.canvas-shell,.panel{background:#fff;border:1px solid #d7ddd8;border-radius:8px}.canvas-shell{min-width:0;overflow:hidden;position:relative}.canvas-toolbar{align-items:center;border-bottom:1px solid #d7ddd8;display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;padding:10px}.canvas-controls{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.canvas-control-group{align-items:center;display:flex;flex:0 0 auto;gap:4px}.canvas-controls button,.display-controls label{align-items:center;background:#fff;border:1px solid #c8d1ca;border-radius:6px;color:#223026;cursor:pointer;display:inline-flex;height:32px;justify-content:center;padding:0;width:32px}.canvas-controls button.active,.display-controls label:has(input:checked){background:#244c3a;border-color:#244c3a;color:#fff}.canvas-controls button:not(.active):hover,.display-controls label:not(:has(input:checked)):hover{background:#f6faf7;border-color:#b8c4bd;color:#223026}.canvas-controls button.active:hover,.display-controls label:has(input:checked):hover{background:#1d3f30;border-color:#1d3f30;color:#fff}.display-controls input[type=checkbox]{opacity:0;pointer-events:none;position:absolute}.grid-step-field{cursor:default;flex:0 0 78px;padding:0 6px;width:78px}.grid-step-field input[type=number]{background:#fff;border:1px solid #c8d1ca;border-radius:5px;color:#223026;height:24px;padding:2px 4px;width:62px}.grid-step-field.is-invalid input[type=number]{background:#fdf0f0;border-color:#c53030;color:#9b1c1c;outline-color:#c53030}.grid-step-field.is-invalid[data-tooltip]:after{background:#9b1c1c;line-height:1.35;opacity:1;transform:translate(-50%) translateY(0);white-space:normal;width:220px}.geometry-canvas{cursor:crosshair;display:block;height:clamp(240px,calc(100dvh - 270px),680px);min-height:240px;touch-action:none;user-select:none;-webkit-user-select:none;width:100%}.geometry-canvas.is-panning{cursor:grab}.geometry-canvas.is-panning:active{cursor:grabbing}.replace-lawn-dialog{border:1px solid #c8d1ca;border-radius:12px;box-shadow:0 12px 48px #1f2a2433;color:#1f2a24;max-width:min(460px,calc(100vw - 32px));padding:24px}.replace-lawn-dialog::backdrop{background:#172b2266}.replace-lawn-dialog h2{font-size:20px;margin:0 0 12px}.replace-lawn-dialog p{line-height:1.5;margin:0 0 20px}.replace-lawn-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.replace-lawn-actions .primary{width:auto}.coverage-legend{align-items:flex-start;background:#f8fbf8;border:1px solid #e2e8e3;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;padding:7px 9px}.legend-group{align-items:center;display:flex;gap:6px}.legend-title{color:#4d5b53;font-size:12px;font-weight:800}.legend-item{align-items:center;color:#26332b;display:inline-flex;font-size:12px;font-weight:700;gap:4px}.legend-swatch{border:1px solid rgba(255,255,255,.76);border-radius:999px;box-shadow:inset 0 1px 3px #ffffff70;display:inline-block;height:12px;width:12px}.legend-inside-0{background-image:url(/assets/grass-texture-a6YFdvh3.png);background-size:cover;border-color:#56994675}.legend-inside-1{background:#7dd3fc80}.legend-inside-2{background:#2dd4bf9e}.legend-inside-3{background:#818cf8ad}.legend-inside-4{background:#a855f7b8}.legend-inside-5{background:#ec4899c2}.legend-outside-1{background:#fb718570}.legend-outside-2{background:#f8717199}.legend-outside-3{background:#f97316ad}.legend-outside-4{background:#dc2626bd}.legend-outside-5{background:#7f1d1dcc}.target-polygon{fill:url(#grass-fill);stroke:#0f766e;stroke-width:.03}.target-polygon.is-invalid{fill-opacity:.62;stroke:#dc2626;stroke-dasharray:.08 .045;stroke-width:.045}.target-line{fill:none;stroke:#1d6b49;stroke-width:.03}.axis-layer{pointer-events:none}.axis-line{stroke:#6f7f76;stroke-width:.018}.axis-tick{stroke:#8b9690;stroke-width:.012}.axis-label{fill:#4d5b53;font-weight:650}.axis-title{fill:#26332b}.coverage-layer,.pipe-layer{pointer-events:none}.placement-layer{pointer-events:auto}.pipe-casing,.pipe-core{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.pipe-casing{stroke:#fffffff5;stroke-width:10}.pipe-core{filter:drop-shadow(0 1px 2px rgba(15,23,42,.28));stroke-width:5}.pipe-main{stroke:#dc2626;stroke-width:7}.pipe-branch{stroke:#f59e0b}.pipe-daisy_chain{stroke:#f59e0b;stroke-width:5}.pipe-interior_spur{stroke:#7c3aed;stroke-dasharray:5 5;stroke-width:4}.pipe-splitter{fill:#fff;filter:drop-shadow(0 1px 2px rgba(15,23,42,.3));pointer-events:none;stroke:#dc2626;stroke-width:4;vector-effect:non-scaling-stroke}.pipe-sprinkler-marker circle{fill:#fff;pointer-events:none;stroke:#0f172a;stroke-width:4;vector-effect:non-scaling-stroke}.pipe-sprinkler-marker text{fill:#0f172a;font-weight:900;paint-order:stroke;pointer-events:none;stroke:#fff;stroke-linejoin:round;stroke-width:.04;text-anchor:middle}.water-supply-marker{cursor:grab}.water-supply-hit-target{fill:#fff0;pointer-events:auto}.water-supply-ring{fill:#ffffffd1;pointer-events:none;stroke:#7f1d1d47;stroke-width:.018}.water-supply-marker line{cursor:grab;pointer-events:none;stroke:#7f1d1d;stroke-linecap:round;stroke-width:.03}.water-supply-marker circle{cursor:grab}.water-supply-marker>circle:not(.water-supply-hit-target):not(.water-supply-ring){fill:#fff;pointer-events:none;stroke:#7f1d1d;stroke-width:.026}.water-supply-marker:active line,.water-supply-marker:active circle{cursor:grabbing}.water-supply-label{fill:#7f1d1d;font-weight:800;paint-order:stroke;stroke:#fff;stroke-linejoin:round;stroke-width:.035}.coverage-segment-outline{fill:none;pointer-events:none;shape-rendering:geometricPrecision;stroke:var(--sprinkler-color);stroke-linecap:round;stroke-linejoin:round;stroke-opacity:.66;stroke-width:.025}.sprinkler-placement{pointer-events:none;vector-effect:non-scaling-stroke}.sprinkler-placement.is-selected .coverage-segment-outline{stroke-opacity:.9;stroke-width:.04}.sprinkler-arm{fill:none;pointer-events:none;stroke:var(--sprinkler-color);stroke-linecap:round;stroke-opacity:.94;stroke-width:.035}.sprinkler-arm-tip{fill:#fff;pointer-events:none;stroke:var(--sprinkler-color);stroke-width:.018}.sprinkler-full-circle-crosshair line{pointer-events:none;stroke:var(--sprinkler-color);stroke-linecap:round;stroke-width:.028}.sprinkler-angle-reference{fill:#ffffffdb;pointer-events:none;shape-rendering:geometricPrecision;stroke:#26322ba8;stroke-width:.018}.sprinkler-angle-segment{fill:var(--sprinkler-color);fill-opacity:.32;pointer-events:none;shape-rendering:geometricPrecision;stroke:var(--sprinkler-color);stroke-linejoin:round;stroke-width:.016}.sprinkler-edit-handles{pointer-events:none}.sprinkler-selection-ring{fill:none;pointer-events:none;stroke:#1f2a24b3;stroke-dasharray:.045 .035;stroke-width:.018}.sprinkler-radius-guide{pointer-events:none;stroke:#1f2a249e;stroke-dasharray:.05 .04;stroke-linecap:round;stroke-width:.018}.sprinkler-hit-target{cursor:grab;fill:#fff0;pointer-events:auto}.sprinkler-center-halo{cursor:grab;fill:#ffffffe6;pointer-events:auto;stroke:var(--sprinkler-color);stroke-width:.022}.sprinkler-center{cursor:grab;fill:var(--sprinkler-color);pointer-events:auto;stroke:#fff;stroke-width:.018}.sprinkler-center-halo:active,.sprinkler-center:active,.sprinkler-hit-target:active{cursor:grabbing}.sprinkler-radius-handle,.sprinkler-angle-handle{fill:#fff;pointer-events:auto;stroke:var(--sprinkler-color);stroke-width:.026}.sprinkler-radius-handle{cursor:nwse-resize}.sprinkler-angle-handle{cursor:grab}.sprinkler-angle-handle.start{fill:#ecfeff}.sprinkler-angle-handle.end{fill:#fff7ed}.sprinkler-radius-handle:active,.sprinkler-angle-handle:active{cursor:grabbing}.coverage-region{mix-blend-mode:multiply;stroke-width:.012}.coverage-inside{stroke:#ffffff9e}.coverage-outside{stroke:#7f1d1d6b}.coverage-inside.coverage-region-1{fill:#7dd3fc47}.coverage-inside.coverage-region-2{fill:#2dd4bf6b}.coverage-inside.coverage-region-3{fill:#818cf880}.coverage-inside.coverage-region-4{fill:#a855f78f}.coverage-inside.coverage-region-5{fill:#ec489999}.coverage-outside.coverage-region-1{fill:#fb718538}.coverage-outside.coverage-region-2{fill:#f8717161}.coverage-outside.coverage-region-3{fill:#f973167a}.coverage-outside.coverage-region-4{fill:#dc26268f}.coverage-outside.coverage-region-5{fill:#7f1d1da3}.vertex{cursor:grab;fill:#fff;stroke:#164633;stroke-width:.022}.side-edit-target{pointer-events:auto}.side-hit-target{cursor:pointer;fill:none;pointer-events:stroke;stroke:#fff0;stroke-linecap:round;stroke-linejoin:round}.side-selection-path{fill:none;pointer-events:none;stroke:#2563eb;stroke-dasharray:.06 .04;stroke-linecap:round;stroke-linejoin:round;stroke-width:.045}.side-insert-control{cursor:copy;pointer-events:auto}.side-insert-halo{fill:#ffffffeb;stroke:#2563eb2e;stroke-width:.018}.side-insert-button{fill:#2563eb;stroke:#fff;stroke-width:.018}.side-insert-plus{fill:#fff;font-weight:900;pointer-events:none;text-anchor:middle;-webkit-user-select:none;user-select:none}.vertex-hit-target{cursor:grab;fill:#fff0;pointer-events:auto}.vertex:active{cursor:grabbing}.vertex.is-selected{fill:#ecfeff;stroke:#2563eb;stroke-width:.035}.vertex-hit-target:active{cursor:grabbing}.curve-bend-control line{pointer-events:none;stroke:#8b9690;stroke-dasharray:.05 .05;stroke-width:.015}.curve-bend-hit-target{cursor:grab;fill:#fff0;pointer-events:auto}.curve-bend-point{cursor:grab;fill:#fff;stroke:#2a5f8f;stroke-width:.03}.curve-bend-control.is-selected .curve-bend-point{fill:#eff6ff;stroke:#2563eb;stroke-width:.038}.curve-bend-hit-target:active,.curve-bend-point:active{cursor:grabbing}.vertex-label{fill:#26332b;font-weight:700}.side-label,.angle-label{paint-order:stroke;stroke:#fff;stroke-linejoin:round;stroke-width:.04}.side-label{fill:#2a5f8f;font-weight:700}.angle-label{fill:#7b4a12;font-weight:700}.editable-label{cursor:text}.canvas-editor{background:#fff;border:1px solid #2a5f8f;border-radius:6px;box-shadow:0 4px 12px #1f2a2424;color:#1f2a24;font-size:13px;height:30px;padding:4px 7px;position:absolute;width:82px;z-index:3}.canvas-status{border-top:1px solid #d7ddd8;color:#617068;padding:12px 14px}.side{min-width:0;overflow:hidden}.panel{min-width:0;overflow:hidden;padding:16px}.panel.is-collapsed{align-items:center;display:flex;justify-content:center;padding:8px}.panel-collapse{background:#fff;border:1px solid #c8d1ca;border-radius:7px;color:#223026;cursor:pointer;font-weight:700;min-height:34px;padding:7px 10px}.panel.is-collapsed .panel-collapse{writing-mode:vertical-rl}.tab-bar{background:#eef3ef;border:1px solid #d7ddd8;border-radius:8px;display:grid;gap:4px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px;padding:4px}.tab-bar button{background:transparent;border:0;border-radius:6px;color:#4d5b53;cursor:pointer;min-height:36px;padding:8px 10px}.tab-bar button.active{background:#fff;color:#1f2a24;font-weight:700;box-shadow:0 1px 3px #1f2a2414}.tab-panel{min-width:0}.panel h2{font-size:18px;margin:0 0 6px}.panel h3{font-size:13px;margin:0 0 10px;text-transform:uppercase}.muted,.empty{color:#617068;margin:0 0 14px}.inspector-section{border-top:1px solid #e5e9e6;margin-top:14px;padding-top:14px}.vertex-list{display:flex;flex-direction:column;gap:10px;max-height:230px;overflow-x:hidden;overflow-y:auto}.vertex-row{align-items:end;display:grid;gap:8px;grid-template-columns:24px minmax(0,1fr) minmax(0,1fr)}.vertex-row span{align-self:center;color:#617068;font-weight:700}.vertex-row label{color:#617068;display:flex;flex-direction:column;font-size:12px;gap:4px}.vertex-row input{border:1px solid #c8d1ca;border-radius:6px;min-width:0;padding:8px;width:100%}.vertex-row .icon-text{grid-column:2 / 4;width:100%}.measurement-list{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow-x:hidden;overflow-y:auto}.measurement-row{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(120px,1fr) 110px}.measurement-row span{color:#617068;font-size:13px}.measurement-row input{border:1px solid #c8d1ca;border-radius:6px;min-width:0;padding:8px;width:100%}.connection-list{display:flex;flex-direction:column;gap:10px;max-height:230px;overflow-x:hidden;overflow-y:auto}.connection-row{border:1px solid #e5e9e6;border-radius:8px;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,116px);min-width:0;padding:10px}.connection-row>span{align-self:center;color:#617068;font-size:13px}.connection-row select,.connection-row input{border:1px solid #c8d1ca;border-radius:6px;min-width:0;padding:8px;width:100%}.connection-row label{color:#617068;display:flex;flex-direction:column;font-size:12px;gap:4px}.icon-text{min-height:35px}.error{background:#fff1f0;border:1px solid #e7b2ad;border-radius:8px;color:#8a3028;margin-top:12px;padding:10px}.run-note{color:#617068;margin:12px 0 0}.run-actions{display:grid;gap:8px;margin:14px 0 16px}.manual-evaluate-action{gap:8px}.form-section{border-top:1px solid #e5e9e6;display:grid;gap:12px;margin:14px 0 18px;padding-top:14px}.advanced-settings{border-top:1px solid #e5e9e6;margin:8px 0 18px;padding-top:12px}.advanced-settings summary{color:#26332b;cursor:pointer;font-size:13px;font-weight:800}.advanced-settings-body{border-top:0;margin-bottom:0;padding-top:12px}.section-title-row{align-items:center;display:flex;gap:8px;justify-content:space-between}.section-title-row h3{margin:0}.manual-status{border-radius:999px;font-size:11px;font-weight:800;padding:4px 8px}.manual-status.is-current{background:#0f766e1f;color:#0f766e}.manual-status.needs-update{background:#2563eb1f;color:#1d4ed8}.placement-selector{display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(86px,1fr))}.placement-selector button{background:#fff;border:1px solid #d7ddd8;border-radius:8px;color:#26332b;cursor:pointer;display:grid;gap:2px;justify-items:start;min-height:58px;padding:8px}.placement-selector button.active{background:#0f766e1a;border-color:#0f766e5c}.placement-selector span{align-items:center;background:#244c3a;border-radius:999px;color:#fff;display:inline-flex;font-size:11px;font-weight:800;height:18px;justify-content:center;width:18px}.placement-selector strong{font-size:13px;line-height:1.1}.placement-selector small{color:#617068;font-size:12px;font-weight:700}.manual-editor{display:grid;gap:12px}.range-input-pair{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 86px}.range-input-pair input[type=range]{accent-color:#0f766e;padding:0}.manual-field input[type=number]{padding:7px 8px}.advanced-subsection{display:grid;gap:12px}.advanced-subsection+.advanced-subsection{border-top:1px solid #edf0ee;padding-top:14px}.advanced-subsection h3{margin:0}.field-row{display:grid;gap:6px}.field-row span{color:#617068;font-size:13px}.field-row input{border:1px solid #c8d1ca;border-radius:6px;min-width:0;padding:9px;width:100%}.output-panel{background:#fff;border:1px solid #d7ddd8;border-radius:8px;min-width:0;padding:14px}.output-panel.is-collapsed{padding:10px 14px}.output-header{align-items:center;display:flex;gap:16px;justify-content:space-between}.output-header h2{font-size:16px;margin:0 0 3px}.output-header p{color:#617068;margin:0}.output-collapse{align-items:center;background:#fff;border:1px solid #c8d1ca;border-radius:7px;cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.output-tabs{background:#eef3ef;border:1px solid #d7ddd8;border-radius:8px;display:inline-grid;gap:4px;grid-template-columns:repeat(4,minmax(110px,1fr));margin:14px 0;padding:4px}.output-tabs button{background:transparent;border:0;border-radius:6px;color:#4d5b53;cursor:pointer;min-height:32px;padding:7px 10px}.output-tabs button.active{background:#fff;box-shadow:0 1px 3px #1f2a2414;color:#1f2a24;font-weight:700}.output-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.output-message{grid-column:1 / -1;margin:0}.output-card{border:1px solid #e5e9e6;border-radius:8px;min-width:0;padding:12px}.output-card h3,.coverage-output h3{font-size:12px;margin:0 0 10px;text-transform:uppercase}.output-metrics{display:grid;gap:8px;margin:0}.output-metrics div{display:grid;gap:8px;grid-template-columns:104px minmax(0,1fr)}.output-metrics dt{color:#617068}.output-metrics dd{margin:0;min-width:0}.output-table-wrap{max-height:220px;overflow:auto}.output-table{border-collapse:collapse;font-size:13px;min-width:560px;width:100%}.output-table th,.output-table td{border-bottom:1px solid #e5e9e6;padding:8px 7px;text-align:left}.output-table th{color:#617068;font-weight:800}.coverage-output{display:grid;gap:12px}.coverage-table{min-width:420px}.eyebrow{color:#0f766e;display:inline-block;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.realistic-design-panel{display:grid;gap:14px}.realistic-stepper{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.realistic-step{align-items:center;background:#f8faf8;border:1px solid #dfe6e1;border-radius:9px;color:#223026;cursor:pointer;display:grid;gap:8px;grid-template-columns:26px minmax(0,1fr);min-width:0;padding:8px;text-align:left}.realistic-step>span:last-child{display:grid;gap:2px;min-width:0}.realistic-step strong{font-size:12px}.realistic-step small{color:#6a786f;font-size:10px}.realistic-step-number{align-items:center;background:#e8eeea;border-radius:999px;display:inline-flex;font-size:11px;font-weight:850;height:26px;justify-content:center;width:26px}.realistic-step.active{background:#effaf5;border-color:#0f766e;box-shadow:inset 0 -2px #0f766e}.realistic-step.active .realistic-step-number{background:#0f766e;color:#fff}.realistic-step[data-state=blocked] small{color:#b91c1c}.realistic-step[data-state=attention] small{color:#a16207}.supply-evidence-summary{align-items:start;background:#fffbeb;border:1px solid #fde68a;border-radius:9px;display:grid;gap:4px 8px;grid-template-columns:auto minmax(0,1fr) auto;padding:10px}.supply-evidence-summary>strong{align-self:center;font-size:12px}.supply-evidence-summary>p{color:#76530a;font-size:11px;grid-column:1 / 3;line-height:1.4;margin:1px 0 0}.supply-evidence-summary>button{align-self:center;background:transparent;border:0;color:#6b4a06;cursor:pointer;font-size:11px;font-weight:800;grid-column:3;grid-row:1 / 3;padding:5px}.supply-evidence-summary.state-ready{background:#ecfdf5;border-color:#a7f3d0}.supply-evidence-summary.state-ready>p,.supply-evidence-summary.state-ready>button{color:#166534}.supply-evidence-summary.state-blocked{background:#fef2f2;border-color:#fecaca}.supply-evidence-summary.state-blocked>p,.supply-evidence-summary.state-blocked>button{color:#991b1b}.realistic-intro h2{margin:4px 0 7px}.realistic-intro p,.realistic-section p{line-height:1.45}.realistic-section{border:1px solid #e1e7e2;border-radius:9px;display:grid;gap:11px;padding:12px}.realistic-section>h3{font-size:14px;margin:0}.realistic-stage-section{animation:realistic-stage-enter .16s ease-out}@keyframes realistic-stage-enter{0%{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}.realistic-stage-heading{border-bottom:1px solid #e8ede9;display:grid;gap:4px;padding-bottom:10px}.realistic-stage-heading h3{font-size:16px;margin:0}.realistic-stage-heading p{color:#617068;font-size:12px;margin:0}.realistic-stage-actions{align-items:center;border-top:1px solid #e8ede9;display:flex;gap:9px;justify-content:space-between;padding-top:11px}.realistic-stage-actions>span{color:#617068;font-size:11px;line-height:1.35}.realistic-stage-actions button,.supply-evidence-summary button,.wizard-progress button{font:inherit}.realistic-stage-actions button{background:#fff;border:1px solid #bfcac2;border-radius:7px;color:#244c3a;cursor:pointer;font-size:12px;font-weight:750;min-height:34px;padding:7px 10px}.realistic-stage-actions button:last-child:not(:only-child),.realistic-stage-actions:not(.split) button:last-child{background:#244c3a;border-color:#244c3a;color:#fff}.realistic-stage-actions button:disabled{cursor:not-allowed;opacity:.5}.section-note{color:#617068;font-size:12px;margin:0}.preset-grid{display:grid;gap:7px}.preset-card{background:#fff;border:1px solid #d7ddd8;border-radius:8px;color:#223026;cursor:pointer;display:grid;gap:3px;padding:9px 10px;text-align:left}.preset-card span,.preset-card small{color:#617068;line-height:1.35}.preset-card.active{background:#effaf5;border-color:#0f766e;box-shadow:inset 3px 0 #0f766e}.two-column-fields{display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.two-column-fields label,.water-supply-wizard label{color:#4d5b53;display:grid;font-size:12px;gap:5px}.two-column-fields input,.two-column-fields select,.water-supply-wizard input,.water-supply-wizard select,.realistic-section .field-row input,.realistic-section .field-row select{background:#fff;border:1px solid #c8d1ca;border-radius:6px;color:#1f2a24;min-height:34px;padding:6px 7px;width:100%}.nozzle-family-card{background:#f8fbf8;border:1px solid #e2e8e3;border-radius:8px;display:grid;gap:9px;padding:10px}.family-toggle{align-items:flex-start;display:flex;gap:8px}.family-toggle span{display:grid;gap:2px}.family-toggle small{color:#617068;line-height:1.35}.model-checks{display:flex;flex-wrap:wrap;gap:6px}.model-checks label{align-items:center;background:#fff;border:1px solid #d7ddd8;border-radius:999px;display:inline-flex;font-size:11px;gap:5px;padding:5px 8px}.check-row{align-items:flex-start;display:flex;font-size:12px;gap:8px;line-height:1.4}.input-advisory,.fallback-notice{border-radius:7px;font-size:12px;line-height:1.4;margin:0;padding:8px 9px}.input-advisory.warning,.fallback-notice{background:#fffbeb;border:1px solid #fde68a;color:#854d0e}.input-advisory.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.water-supply-wizard{display:grid;gap:10px}.wizard-heading{align-items:start;display:flex;gap:10px;justify-content:space-between}.wizard-heading h2{font-size:14px;margin:0 0 2px}.wizard-heading p{color:#617068;font-size:11px;margin:0}.wizard-evidence-badge{background:#fffbeb;border:1px solid #fde68a;border-radius:999px;color:#854d0e;flex:0 0 auto;font-size:9px;font-weight:850;padding:4px 7px;text-transform:uppercase}.wizard-evidence-badge.state-ready{background:#ecfdf5;border-color:#a7f3d0;color:#166534}.wizard-evidence-badge.state-blocked{background:#fef2f2;border-color:#fecaca;color:#991b1b}.wizard-progress{display:grid;gap:5px;grid-template-columns:repeat(3,minmax(0,1fr))}.wizard-progress button{align-items:center;background:#f8faf8;border:1px solid #dfe6e1;border-radius:7px;color:#526158;cursor:pointer;display:flex;font-size:10px;gap:5px;min-height:31px;padding:5px 6px}.wizard-progress button span{align-items:center;background:#e7ece8;border-radius:999px;display:inline-flex;font-size:9px;font-weight:800;height:18px;justify-content:center;width:18px}.wizard-progress button.active{background:#effaf5;border-color:#0f766e;color:#174b39;font-weight:800}.water-supply-wizard>h2{font-size:14px;margin:0}.water-supply-wizard>p{color:#617068;font-size:12px;margin:0}.water-supply-wizard fieldset{border:0;display:grid;gap:10px;margin:0;padding:0}.measurement-empty-state{background:#f8faf8;border:1px dashed #c8d1ca;border-radius:8px;display:grid;gap:3px;padding:10px}.measurement-empty-state strong{font-size:12px}.measurement-empty-state span{color:#617068;font-size:11px;line-height:1.4}.water-supply-wizard legend{font-size:12px;font-weight:800;margin-bottom:8px}.wizard-measurement-row{align-items:end;border-bottom:1px solid #e5e9e6;display:grid;gap:7px;grid-template-columns:1fr 1fr auto;padding-bottom:9px}.wizard-measurement-row button,.water-supply-wizard fieldset>button,.wizard-actions button{background:#fff;border:1px solid #c8d1ca;border-radius:6px;color:#223026;cursor:pointer;min-height:34px;padding:6px 9px}.wizard-issues{background:#f8fbf8;border:1px solid #e2e8e3;border-radius:7px;padding:9px}.wizard-issues h3{font-size:12px;margin:0 0 6px}.wizard-issues ul{display:grid;font-size:11px;gap:6px;line-height:1.4;list-style:none;margin:0;padding:0}.wizard-issues li{align-items:start;display:grid;gap:6px;grid-template-columns:auto minmax(0,1fr)}.wizard-issues li>span{background:#fff7dd;border-radius:999px;color:#854d0e;font-size:8px;font-weight:850;padding:2px 5px;text-transform:uppercase}.wizard-issues li.severity-error>span{background:#fee2e2;color:#991b1b}.wizard-complete-note{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:7px;color:#166534;font-size:11px;margin:0;padding:8px 9px}.wizard-actions{display:flex;gap:7px;justify-content:flex-end}.realistic-generate-block{background:#f7faf8;border:1px solid #dce5de;border-radius:10px;display:grid;gap:10px;padding:11px}.realistic-run-summary{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.realistic-run-summary>div{display:grid;gap:2px}.realistic-run-summary span{color:#6b786f;font-size:9px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.realistic-run-summary strong{font-size:11px;line-height:1.35}.primary.realistic-generate{background:#0f766e;border-color:#0f766e}.result-expectation{color:#76530a;font-size:11px;line-height:1.4;margin:0}.result-expectation.state-ready{color:#166534}.result-expectation.state-blocked{color:#991b1b}.realistic-results-empty{padding:14px 0}.realistic-results{display:grid;gap:14px}.realistic-empty-state{background:#f8faf8;border:1px dashed #cbd5ce;border-radius:9px;display:grid;gap:5px;padding:18px}.realistic-empty-state h3,.realistic-empty-state p{margin:0}.realistic-empty-state h3{font-size:16px}.realistic-empty-state p{color:#617068;line-height:1.45}.readiness-hero{background:#f8faf8;border:1px solid #d7ddd8;border-top:5px solid #64748b;border-radius:11px;display:grid;gap:13px;grid-template-columns:minmax(0,1fr) minmax(250px,290px);padding:16px}.readiness-hero.readiness-installation_ready{background:#f0fdf4;border-top-color:#15803d}.readiness-hero.readiness-preliminary,.readiness-hero.readiness-limited{background:#fffbeb;border-top-color:#d97706}.readiness-hero.readiness-blocked{background:#fff7f7;border-top-color:#dc2626}.readiness-copy{display:grid;gap:5px}.readiness-copy h3{font-size:22px;line-height:1.12;margin:0}.readiness-copy p{color:#56655c;line-height:1.5;margin:0;max-width:70ch}.readiness-statuses{display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr))}.readiness-statuses>div{background:#ffffffb8;border:1px solid rgba(200,209,202,.8);border-radius:8px;display:grid;gap:2px;padding:8px}.readiness-statuses span{color:#68756d;font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.readiness-statuses strong{font-size:12px;text-transform:capitalize}.result-identity-row{border-top:1px solid rgba(200,209,202,.75);color:#68756d;display:flex;flex-wrap:wrap;font-size:10px;gap:6px 14px;grid-column:1 / -1;padding-top:10px}.result-section-heading{display:grid;gap:4px;margin-bottom:11px}.result-section-heading h3,.result-section-heading p{margin:0}.result-section-heading h3{font-size:16px}.result-section-heading p{color:#617068;line-height:1.45}.decision-section,.remedy-section{border:1px solid #e1e7e2;border-radius:10px;padding:14px}.blocked-decision{background:snow;border-color:#fecaca}.remedy-section{background:#f7fbf8}.remedy-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.remedy-grid article{background:#fff;border:1px solid #dce5de;border-radius:8px;display:grid;gap:5px;padding:10px}.remedy-grid article>span{color:#0f766e;font-size:9px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.remedy-grid article>strong{line-height:1.4}.remedy-grid article>small{color:#617068}.result-overview-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.result-overview-grid>article{background:#fff;border:1px solid #dfe6e1;border-radius:10px;min-width:0;padding:12px}.result-overview-grid h3{font-size:19px;line-height:1.2;margin:5px 0 11px}.result-overview-grid dl{display:grid;gap:7px;margin:0}.result-overview-grid dl>div{align-items:baseline;border-top:1px solid #edf1ee;display:flex;gap:8px;justify-content:space-between;padding-top:6px}.result-overview-grid dt{color:#68756d}.result-overview-grid dd{font-weight:750;margin:0;text-align:right}.zone-section .result-section-heading,.comparison-section .result-section-heading{margin-bottom:13px}.comparison-disclosure{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#854d0e;line-height:1.45;margin:0 0 11px;padding:9px 10px}.comparison-table-wrap{overflow-x:auto}.comparison-table{border-collapse:collapse;font-size:12px;min-width:920px;width:100%}.comparison-table th,.comparison-table td{border-bottom:1px solid #e5e9e6;padding:9px 8px;text-align:left;vertical-align:top}.comparison-table th{color:#617068;font-size:10px;letter-spacing:.03em;text-transform:uppercase}.comparison-table td small{color:#68756d;display:block;margin-top:3px;max-width:230px}.comparison-empty-state{align-items:baseline;background:#f8faf8;border:1px dashed #cbd5ce;border-radius:9px;display:flex;flex-wrap:wrap;gap:5px 12px;padding:12px}.comparison-empty-state p{color:#617068;flex-basis:100%;margin:0}.result-detail-stack{display:grid;gap:8px}.realistic-result-detail{background:#fff;border:1px solid #dfe6e1;border-radius:9px;overflow:hidden}.realistic-result-detail>summary{align-items:center;cursor:pointer;display:flex;gap:10px;justify-content:space-between;list-style:none;padding:11px 13px}.realistic-result-detail>summary::-webkit-details-marker{display:none}.realistic-result-detail>summary:after{color:#0f766e;content:"+";font-size:18px;font-weight:700;order:3}.realistic-result-detail[open]>summary:after{content:"−"}.realistic-result-detail>summary>span{font-weight:800}.realistic-result-detail>summary>small{color:#68756d;margin-left:auto;text-align:right}.realistic-result-detail-body{border-top:1px solid #e8ede9;padding:13px}.assumption-list{line-height:1.5;padding-left:20px}.design-status-banner{align-items:center;background:#f8fbf8;border:1px solid #d7ddd8;border-left-width:5px;border-radius:9px;display:flex;justify-content:space-between;padding:14px}.design-status-banner h3{font-size:23px;margin:3px 0;text-transform:capitalize}.design-status-banner p{color:#617068;margin:0}.design-status-banner.design-compliant{border-left-color:#15803d}.design-status-banner.design-marginal{border-left-color:#d97706}.design-status-banner.design-noncompliant,.design-status-banner.design-infeasible{border-left-color:#dc2626}.status-counts{display:grid;grid-template-columns:auto auto;gap:2px 6px;text-align:right}.status-counts strong{font-size:20px}.status-counts span{align-self:center;color:#617068;font-size:12px}.realistic-result-section{border:1px solid #e5e9e6;border-radius:9px;padding:13px}.realistic-result-section>h3,.two-result-columns h3{font-size:14px;margin:0 0 11px}.result-kpi-grid{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:12px}.result-kpi-grid>div{background:#f8fbf8;border-radius:7px;display:grid;gap:3px;padding:9px}.result-kpi-grid span{color:#617068;font-size:11px}.result-kpi-grid strong{font-size:16px}.constraint-list{display:grid;gap:7px}.constraint-row{border-left:3px solid #94a3b8;padding:6px 9px}.constraint-row.status-pass{border-left-color:#16a34a}.constraint-row.status-warning{border-left-color:#d97706}.constraint-row.status-fail{border-left-color:#dc2626}.constraint-row>div{align-items:center;display:flex;gap:7px}.constraint-row p{margin:4px 0}.constraint-row small{color:#617068;display:block;margin-top:2px}.constraint-row ul{margin:5px 0 0;padding-left:18px}.status-chip{background:#eef3ef;border-radius:999px;color:#4d5b53;display:inline-block;font-size:10px;font-weight:800;padding:3px 7px;text-transform:uppercase}.status-chip.status-pass{background:#dcfce7;color:#166534}.status-chip.status-warning{background:#fef3c7;color:#92400e}.status-chip.status-fail{background:#fee2e2;color:#991b1b}.status-chip.status-not_evaluated{background:#e2e8f0;color:#475569}.realistic-results .output-table-wrap{max-height:360px}.realistic-table{min-width:1050px}.pipe-table{min-width:900px}.realistic-table td small,.output-table td small{color:#617068;display:block;margin-top:3px}.zone-result-grid,.alternative-grid,.provenance-grid{display:grid;gap:9px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.zone-card,.alternative-grid article,.provenance-grid article{background:#f8fbf8;border:1px solid #e2e8e3;border-radius:8px;padding:10px}.zone-card.status-fail{border-color:#fecaca}.zone-card.status-warning{border-color:#fde68a}.zone-card-header{align-items:center;display:flex;justify-content:space-between}.zone-card-header>div{display:grid;gap:2px}.zone-card-header span{color:#617068;font-size:11px}.zone-card>p{color:#617068;margin:8px 0}.zone-card dl,.alternative-grid dl{display:grid;gap:5px;margin:0}.zone-card dl div,.alternative-grid dl div{display:flex;gap:8px;justify-content:space-between}.zone-card dt,.alternative-grid dt{color:#617068}.zone-card dd,.alternative-grid dd{margin:0}.data-confidence{color:#4d5b53;font-size:12px;margin:10px 0 0}.two-result-columns{display:grid;gap:20px;grid-template-columns:repeat(2,minmax(0,1fr))}.pipe-segment-summary{max-height:160px;overflow:auto}.pipe-segment-summary p{border-top:1px solid #e5e9e6;font-size:11px;margin:0;padding:6px 0}.alternative-grid h4{margin:8px 0 4px}.alternative-grid p{color:#4d5b53;min-height:36px}.alternative-grid small{color:#617068;display:block;margin-top:7px}.cost-total{align-items:baseline;display:flex;gap:9px}.cost-total strong{font-size:21px}.cost-total span{color:#617068;font-size:12px}.provenance-section>ul{line-height:1.5}.provenance-grid article{display:grid;gap:3px}.provenance-grid span,.provenance-grid small{color:#617068}@media(max-width:980px){.output-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.result-kpi-grid,.two-result-columns,.result-overview-grid,.readiness-hero{grid-template-columns:1fr}.readiness-statuses{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:560px){.two-column-fields,.wizard-measurement-row{grid-template-columns:1fr}.design-status-banner{align-items:flex-start;flex-direction:column;gap:10px}.status-counts{text-align:left}.realistic-stepper,.realistic-run-summary,.readiness-statuses{grid-template-columns:repeat(2,minmax(0,1fr))}.supply-evidence-summary{grid-template-columns:auto minmax(0,1fr)}.supply-evidence-summary>p{grid-column:1 / -1}.supply-evidence-summary>button{grid-column:1 / -1;grid-row:auto;justify-self:start;padding-left:0}.readiness-copy h3{font-size:19px}.realistic-result-detail>summary{align-items:flex-start;flex-wrap:wrap}.realistic-result-detail>summary>small{flex-basis:calc(100% - 28px);margin:0;text-align:left}}.app.is-compact{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;overflow:hidden;overscroll-behavior:none}.app.is-compact input:not([type=checkbox]):not([type=radio]):not([type=range]),.app.is-compact select,.app.is-compact textarea{font-size:16px}.app.is-compact .topbar{flex:none;min-height:48px;padding:8px 16px}.app.is-compact .topbar h1{font-size:18px;margin:0}.app.is-compact .topbar p,.app.is-compact .app-home-link{display:none}.app.is-compact .workspace{display:flex;flex:1;flex-direction:column;min-height:0;padding:0;position:relative}.app.is-compact .workspace-main,.app.is-compact .canvas-workbench{display:flex;flex:1;flex-direction:column;gap:0;min-height:0}.app.is-compact .canvas-shell{border:0;border-radius:0;display:flex;flex:1;flex-direction:column;min-height:0}.app.is-compact .geometry-canvas{flex:1;height:auto;min-height:0}.app.is-compact .canvas-shell>.draw-bar{order:1}.app.is-compact .canvas-shell>.canvas-status{order:2}.app.is-compact .canvas-shell>.canvas-toolbar{border-bottom:0;border-top:1px solid #d7ddd8;display:block;order:3;padding:4px 8px}.app.is-compact .canvas-status{font-size:12px;line-height:1.35;padding:6px 14px}.app.is-compact .draw-bar{gap:8px;padding:8px 12px}.app.is-compact .draw-bar-hint{font-size:13px}.app.is-compact .draw-bar-controls{display:grid;gap:6px;grid-auto-flow:dense;grid-template-columns:repeat(6,minmax(0,1fr))}.app.is-compact .draw-bar-controls>*{grid-column:span 2;min-width:0}.app.is-compact .draw-bar-controls>.draw-length-field{grid-column:span 4}.app.is-compact form.draw-bar-controls>.draw-length-field{grid-column:span 3}.app.is-compact .draw-bar-controls>.draw-turn{grid-column:1 / -1}.app.is-compact form.draw-bar-controls>.draw-bar-button.primary{grid-column:span 4}.app.is-compact .draw-bar-button{font-size:13px;gap:4px;overflow:hidden;padding:0 6px;white-space:nowrap}.toolbar.is-compact{display:block}.compact-tools{display:grid;gap:2px;grid-template-columns:repeat(6,minmax(0,1fr));margin:0 auto;max-width:480px}.toolbar .compact-tool{aspect-ratio:auto;background:transparent;border:0;border-radius:10px;color:#3b4a41;flex-direction:column;font-size:11px;font-weight:600;gap:3px;height:52px;padding:4px 2px;width:100%}.toolbar .compact-tool.active{background:#e3eee6;color:#14532d}.toolbar .compact-tool:disabled{opacity:.38}.compact-selection{align-items:center;display:flex;gap:8px;margin:0 auto;max-width:480px;overflow-x:auto;padding:4px 2px 6px;scrollbar-width:none}.compact-selection::-webkit-scrollbar{display:none}.compact-selection strong{font-size:13px;margin-right:auto;padding-left:4px;white-space:nowrap}.toolbar .compact-action{aspect-ratio:auto;border-radius:999px;flex:none;font-size:13px;font-weight:600;gap:6px;min-height:40px;padding:0 14px;width:auto}.toolbar .compact-action.is-danger:not(:disabled){border-color:#f1c4c4;color:#b91c1c}.canvas-float-controls{align-items:flex-end;bottom:12px;display:flex;flex-direction:column;gap:8px;pointer-events:none;position:absolute;right:12px;top:12px;z-index:6}.canvas-float-controls>*{pointer-events:auto}.canvas-float-button{align-items:center;background:#fffffff2;border:1px solid #d7ddd8;border-radius:12px;box-shadow:0 2px 8px #1f2a241f;color:#223026;cursor:pointer;display:inline-flex;height:44px;justify-content:center;padding:0;width:44px}.canvas-float-button.active{background:#e3eee6;border-color:#9fbfa9;color:#14532d}.canvas-view-panel{background:#fff;border:1px solid #d7ddd8;border-radius:12px;box-shadow:0 12px 32px #1f2a242e;max-height:100%;overflow-y:auto;overscroll-behavior:contain;padding:4px 14px 8px;position:absolute;right:54px;top:0;width:min(280px,calc(100vw - 92px))}.canvas-view-heading{color:#617068;font-size:11px;font-weight:700;letter-spacing:.04em;margin:10px 0 0;text-transform:uppercase}.view-switch{align-items:center;color:#223026;display:flex;font-size:14px;gap:12px;justify-content:space-between;min-height:44px}.view-switch input[type=checkbox]{appearance:none;background:#cfd8d2;border-radius:999px;cursor:pointer;flex:none;height:24px;margin:0;position:relative;transition:background .15s ease;width:40px}.view-switch input[type=checkbox]:before{background:#fff;border-radius:50%;box-shadow:0 1px 3px #1f2a2440;content:"";height:18px;left:3px;position:absolute;top:3px;transition:transform .15s ease;width:18px}.view-switch input[type=checkbox]:checked{background:#2f6b4f}.view-switch input[type=checkbox]:checked:before{transform:translate(16px)}.view-switch input[type=checkbox]:focus-visible{outline:2px solid #244c3a;outline-offset:2px}.canvas-view-panel .grid-step-field{flex:none;padding:0;width:auto}.canvas-view-panel .grid-step-field input[type=number]{height:36px;padding:4px 8px;width:76px}.canvas-view-panel .grid-step-field[data-tooltip]:after{display:none}.sheet-slot{flex:none;transition:height .24s cubic-bezier(.2,.8,.2,1)}.sheet{background:#fff;border-radius:16px 16px 0 0;bottom:0;box-shadow:0 -1px #d7ddd8,0 -8px 24px #1f2a241a;display:flex;flex-direction:column;left:0;position:absolute;right:0;transition:height .24s cubic-bezier(.2,.8,.2,1);z-index:20}.sheet-slot.is-dragging,.sheet.is-dragging{transition:none}.sheet-handle{align-items:center;background:transparent;border:0;cursor:grab;display:flex;flex:none;height:26px;justify-content:center;padding:0;touch-action:none;width:100%}.sheet-handle:focus-visible{outline:2px solid #244c3a;outline-offset:-4px}.sheet-grip{background:#c3ccc6;border-radius:999px;height:5px;width:40px}.sheet .tab-bar{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 auto 8px;max-width:640px;width:calc(100% - 24px)}.sheet .tab-bar button{min-height:40px;padding:6px 4px;position:relative}.tab-badge{background:#244c3a;border-radius:999px;color:#fff;font-size:10px;font-weight:700;line-height:1;padding:3px 6px;position:absolute;right:2px;top:-7px}.sheet-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:4px 16px calc(16px + env(safe-area-inset-bottom))}.sheet-content>.tab-panel{margin:0 auto;max-width:640px}.sheet.is-peek:not(.is-dragging) .sheet-content{visibility:hidden}.sheet .output-panel{border:0;padding:0}@media(max-height:520px){.app.is-compact .topbar{display:none}}
