:root{--mini-ink: #0b1c30;--mini-ink-2: #40474f;--mini-muted: #5b6b7f;--mini-canvas: #f8fafc;--mini-paper: #ffffff;--mini-line: #e2e8f0;--mini-line-strong: #cbd5e1;--mini-accent: #0369a1;--mini-accent-strong: #00507d;--mini-accent-soft: #e0f2fe;--mini-ok: #047857;--mini-ok-soft: #ecfdf5;--mini-bad: #b91c1c;--mini-bad-soft: #fef2f2;--mini-warn: #92400e;--mini-warn-soft: #fffbeb;--mini-radius: 6px;--mini-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}.mini-body,.mini-body *,.mini-body *:before,.mini-body *:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}.mini-body{margin:0;background:var(--mini-paper);color:var(--mini-ink);font-family:var(--mini-font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.mini{max-width:1280px;margin:0 auto;padding:16px}.mini-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mini-header{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--mini-line)}.mini-logo{display:block;height:36px;width:auto}.mini-header-text{flex:1 1 320px;min-width:0}.mini-h1{margin:0;font-size:1.35rem;line-height:1.2;font-weight:700;letter-spacing:-.02em}.mini-subtitle{margin:4px 0 0;color:var(--mini-ink-2)}.mini-credit{margin:0;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--mini-muted)}.mini-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;border:1px solid #fcd34d;background:var(--mini-warn-soft);color:var(--mini-warn);font-size:11px;font-weight:600;vertical-align:middle}.mini-workspace{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);grid-template-rows:auto auto auto auto 1fr;grid-template-areas:"shape plan" "layer plan" "hydraulics plan" "actions plan" ". plan";gap:16px;align-items:start}.mini-area-shape{grid-area:shape}.mini-area-layer{grid-area:layer}.mini-area-hydraulics{grid-area:hydraulics}.mini-area-actions{grid-area:actions}.mini-area-plan{grid-area:plan}.mini-card{margin:0;padding:14px 16px 16px;border:1px solid var(--mini-line);border-radius:var(--mini-radius);background:var(--mini-paper);min-width:0}fieldset.mini-card{min-inline-size:0}.mini-legend{padding:0 4px;margin-left:-4px;font-weight:700;font-size:.95rem}.mini-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.mini-field{margin-top:10px}.mini-label{display:block;margin-bottom:4px;font-weight:600;font-size:.875rem}.mini-input-unit{display:flex;align-items:stretch}.mini-input{width:100%;min-width:0;height:40px;padding:0 10px;border:1px solid var(--mini-line-strong);border-radius:var(--mini-radius);background:var(--mini-paper);color:var(--mini-ink);font:inherit;font-variant-numeric:tabular-nums}.mini-input-unit .mini-input{border-top-right-radius:0;border-bottom-right-radius:0}.mini-unit{display:inline-flex;align-items:center;padding:0 10px;border:1px solid var(--mini-line-strong);border-left:0;border-radius:0 var(--mini-radius) var(--mini-radius) 0;background:var(--mini-canvas);color:var(--mini-muted);font-size:.875rem;white-space:nowrap}select.mini-input{padding-right:28px}.mini-input:focus-visible,.mini-btn:focus-visible,.mini-btn-icon:focus-visible,.mini-segment:focus-within,.mini-h2:focus-visible{outline:3px solid var(--mini-accent);outline-offset:2px}.is-invalid>.mini-input-unit .mini-input,.mini-input[aria-invalid=true]{border-color:var(--mini-bad)}.mini-hint{margin:4px 0 0;font-size:.8125rem;color:var(--mini-muted)}.mini-error{margin:4px 0 0;font-size:.8125rem;font-weight:500;color:var(--mini-bad)}.mini-segmented{display:inline-flex;margin-top:6px;border:1px solid var(--mini-line-strong);border-radius:var(--mini-radius);overflow:hidden}.mini-segment{position:relative;padding:8px 16px;cursor:pointer;font-weight:600;font-size:.875rem}.mini-segment+.mini-segment{border-left:1px solid var(--mini-line-strong)}.mini-segment input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.mini-segment.is-active{background:var(--mini-accent);color:#fff}.mini-plan-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:10px}.mini-plan-mode{margin:0}.mini-toggle{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:0 14px 0 10px;border:1px solid var(--mini-line-strong);border-radius:999px;background:var(--mini-paper);color:var(--mini-ink);font:inherit;font-weight:600;font-size:.875rem;cursor:pointer}.mini-toggle:hover:not(:disabled){background:#f1f5f9}.mini-toggle:focus-visible{outline:3px solid var(--mini-accent);outline-offset:2px}.mini-toggle:disabled{opacity:.55;cursor:not-allowed}.mini-toggle-track{position:relative;flex:none;width:34px;height:20px;border-radius:999px;background:var(--mini-line-strong);transition:background-color .15s ease}.mini-toggle-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0b1c304d;transition:transform .15s ease}.mini-toggle[aria-pressed=true]{border-color:var(--mini-accent);background:var(--mini-accent-soft);color:var(--mini-accent-strong)}.mini-toggle[aria-pressed=true] .mini-toggle-track{background:var(--mini-accent)}.mini-toggle[aria-pressed=true] .mini-toggle-knob{transform:translate(14px)}.mini-plan{position:relative;margin:10px 0 0;border:1px solid var(--mini-line);border-radius:var(--mini-radius);background:var(--mini-canvas)}.mini-plan-svg{display:block;width:100%;height:auto;max-height:680px;cursor:default;-moz-user-select:none;user-select:none;-webkit-user-select:none}.mini-plan-svg.is-placing{cursor:crosshair}.mini-plan-svg.is-dragging{cursor:grabbing}.mini-plan-start{position:absolute;top:50%;left:50%;z-index:1;width:-moz-max-content;width:max-content;max-width:calc(100% - 32px);margin:0;padding:8px 14px;transform:translate(-50%,-50%);border:1px solid var(--mini-line-strong);border-radius:var(--mini-radius);background:#ffffffeb;color:var(--mini-ink-2);font-size:.875rem;font-weight:500;text-align:center;pointer-events:none}.mini-plan-grid{stroke:#dbe3ec;stroke-width:1;vector-effect:non-scaling-stroke}.mini-plan-roof{fill:#0369a114}.mini-plan-roof-edge{fill:none;stroke:var(--mini-ink);stroke-width:2;vector-effect:non-scaling-stroke}.mini-plan-drain{cursor:grab;touch-action:none;outline:none}.mini-plan-drain.is-dragging{cursor:grabbing}.mini-plan-drain-hit{fill:transparent}.mini-plan-drain-dot{fill:var(--mini-accent);stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}.mini-plan-drain.is-invalid .mini-plan-drain-dot{fill:var(--mini-bad)}.mini-plan-drain:focus-visible .mini-plan-drain-dot{stroke:var(--mini-ink);stroke-width:3}.mini-plan-drain:focus-visible .mini-plan-drain-hit{stroke:var(--mini-accent);stroke-width:3;vector-effect:non-scaling-stroke}.mini-plan-drain-label{fill:var(--mini-ink);font-weight:700}.mini-plan-trial{fill:#0369a140;stroke:var(--mini-accent);stroke-width:1.5;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;pointer-events:none}.mini-plan-cursor-reason{fill:var(--mini-bad);font-weight:600;paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;vector-effect:non-scaling-stroke;pointer-events:none}.mini-sketch{pointer-events:none}.mini-sketch-line{stroke:#6b7280;stroke-width:1.25;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}.mini-sketch-cell{fill:#6b728029;stroke:#9ca3af;stroke-width:1;vector-effect:non-scaling-stroke}.mini-dims{pointer-events:none}.mini-dim-line,.mini-dim-tick{stroke:var(--mini-accent-strong);stroke-width:1;vector-effect:non-scaling-stroke}.mini-dim-label{fill:var(--mini-accent-strong);font-weight:600;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.mini-plan-caption{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;min-height:34px;padding:8px 10px;border-top:1px solid var(--mini-line);font-size:.8125rem;color:var(--mini-ink-2)}.mini-plan-caption.is-empty{min-height:0;padding:0;border-top:0}.mini-sketch-status:empty{display:none}.mini-sketch-status{color:var(--mini-warn);font-weight:500}.mini-swatch.mini-swatch-sketch{border-top:2px dashed #6b7280}.mini-swatch.mini-swatch-sketch-cell{width:12px;height:12px;border:1px solid #9ca3af;background:#6b728029}.mini-plan-empty{margin:0;padding:48px 16px;text-align:center;color:var(--mini-muted)}.mini-drain-list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:6px}.mini-drain-row{display:grid;grid-template-columns:minmax(64px,auto) minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:6px 10px;padding-bottom:6px;border-bottom:1px solid var(--mini-line)}.mini-drain-name{align-self:center;font-weight:600;font-size:.875rem}.mini-drain-coord{display:flex;flex-direction:column;gap:2px;font-size:.75rem;color:var(--mini-muted);min-width:0}.mini-input-sm{height:34px;padding:0 8px}.mini-drain-error{grid-column:1 / -1;margin:0}.mini-drain-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:12px}.mini-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:0 18px;border:1px solid transparent;border-radius:var(--mini-radius);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap}.mini-btn:disabled{opacity:.55;cursor:not-allowed}.mini-btn-primary{background:var(--mini-accent);border-color:#0284c7;color:#fff}.mini-btn-primary:hover:not(:disabled){background:var(--mini-accent-strong)}.mini-btn-secondary{background:var(--mini-paper);border-color:var(--mini-line-strong);color:var(--mini-ink)}.mini-btn-secondary:hover:not(:disabled){background:#f1f5f9}.mini-btn-lg{min-height:48px;padding:0 28px;font-size:1rem}.mini-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--mini-line-strong);border-radius:var(--mini-radius);background:var(--mini-paper);cursor:pointer}.mini-btn-icon svg{width:14px;height:14px;stroke:var(--mini-ink-2);stroke-width:2;stroke-linecap:round;fill:none}.mini-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.mini-status{margin:0;color:var(--mini-ink-2);font-weight:500}.mini-status.is-error{color:var(--mini-bad)}.mini-results{margin-top:24px;display:grid;gap:16px}.mini-h2{margin:0;font-size:1.2rem;font-weight:700}.mini-h3{margin:0 0 8px;font-size:1rem;font-weight:700}.mini-h3:not(:first-child){margin-top:14px}.mini-banner{margin:0;padding:10px 12px;border:1px solid #fcd34d;border-radius:var(--mini-radius);background:var(--mini-warn-soft);color:var(--mini-warn);font-weight:500}.mini-results.is-stale .mini-results-grid,.mini-results.is-stale .mini-card{opacity:.6}.mini-results-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}.mini-results-numbers{display:grid;gap:16px}.mini-dl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;margin:0}.mini-dl dt{color:var(--mini-ink-2)}.mini-dl dd{margin:0;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.mini-table-wrap{overflow-x:auto}.mini-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}.mini-table caption{text-align:left;font-weight:600;padding-bottom:6px;font-size:.875rem}.mini-table th,.mini-table td{padding:6px 8px;border-bottom:1px solid var(--mini-line);text-align:left}.mini-table td{text-align:right;white-space:nowrap}.mini-table thead th{font-size:.8125rem;color:var(--mini-muted);font-weight:600}.mini-table thead th:not(:first-child){text-align:right}.mini-table tbody th{font-weight:500}.mini-total th,.mini-total td{font-weight:700;border-bottom:0}.mini-note{margin:8px 0 0;font-size:.8125rem;color:var(--mini-ink-2)}.mini-note-warn{color:var(--mini-warn)}.mini-order{border-color:#bfdbfe;background:#f8fbff}.mini-check{display:inline-block;white-space:nowrap;padding:1px 8px;border-radius:999px;font-size:.8125rem;font-weight:600;border:1px solid var(--mini-line-strong);background:var(--mini-canvas);color:var(--mini-ink-2)}.mini-check.is-pass{border-color:#a7f3d0;background:var(--mini-ok-soft);color:var(--mini-ok)}.mini-check.is-fail{border-color:#fecaca;background:var(--mini-bad-soft);color:var(--mini-bad)}.mini-warnings,.mini-not-included{margin:0;padding-left:20px;list-style:disc;display:grid;gap:4px}.mini-warnings .is-warning{color:var(--mini-warn);font-weight:500}.mini-algorithm{color:var(--mini-muted)}.mini-preview{margin:0}.mini-preview-svg{display:block;width:100%;height:auto;max-height:460px}.mini-preview-roof{fill:#fff}.mini-preview-drain-square{fill:#e5e5e5;stroke:#000;stroke-width:1;vector-effect:non-scaling-stroke}.mini-preview-outline{fill:none;stroke:#000;stroke-width:3;stroke-linejoin:miter;vector-effect:non-scaling-stroke}.mini-preview-ridge,.mini-preview-valley{stroke:#000;stroke-width:1;vector-effect:non-scaling-stroke}.mini-preview-drain circle{fill:#fff;stroke:#000;stroke-width:1.5;vector-effect:non-scaling-stroke}.mini-preview-drain text{fill:#000;font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke}.mini-preview-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0;font-size:.8125rem;color:var(--mini-ink-2)}.mini-legend-item{display:inline-flex;align-items:center;gap:6px}.mini-swatch{display:inline-block;width:18px;height:0;border-top:2px solid var(--mini-ink)}.mini-swatch-break{border-top:1px solid #000000}.mini-swatch-drain{width:10px;height:10px;border:1.5px solid #000000;border-radius:50%}.mini-swatch-drain-square{width:12px;height:12px;border:1px solid #000000;background:#e5e5e5}.mini-teaser{margin-top:32px;padding:28px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"intro features" "gallery gallery" "cta cta";gap:24px 40px;border-radius:10px;background-color:var(--mini-ink);background-image:linear-gradient(rgb(255 255 255 / .045) 1px,transparent 1px),linear-gradient(90deg,rgb(255 255 255 / .045) 1px,transparent 1px);background-size:24px 24px;color:#fff}.mini-teaser-intro{grid-area:intro}.mini-teaser-eyebrow{margin:0 0 8px;color:#7dd3fc;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.mini-teaser-title{margin:0;font-size:1.6rem;line-height:1.2;font-weight:800;letter-spacing:-.02em}.mini-teaser-lede{margin:12px 0 0;color:#cbd5e1;font-size:.975rem}.mini-teaser-features{grid-area:features;align-self:center;margin:0;padding:0;list-style:none;display:grid;gap:12px}.mini-teaser-feature{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;color:#cbd5e1;font-size:.9rem}.mini-teaser-feature strong{color:#fff;font-weight:700}.mini-teaser-check{width:20px;height:20px;margin-top:1px;padding:3px;border-radius:50%;background:#38bdf82e;fill:none;stroke:#7dd3fc;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.mini-teaser-gallery{grid-area:gallery;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.mini-teaser-shot{display:flex;flex-direction:column;margin:0;min-width:0}.mini-teaser-shot:first-child{grid-column:span 2;grid-row:span 2}.mini-teaser-shot img{display:block;width:100%;height:auto;aspect-ratio:3 / 2;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;border:1px solid rgb(255 255 255 / .18);border-radius:var(--mini-radius);background:#fff;box-shadow:0 8px 24px #00000059}.mini-teaser-shot:first-child img{flex:1 1 0;min-height:0;aspect-ratio:auto}.mini-teaser-shot figcaption{flex:none;margin-top:6px;color:#cbd5e1;font-size:.8125rem;font-weight:600}.mini-teaser-source{grid-column:1 / -1;margin:0;color:#94a3b8;font-size:.75rem}.mini-teaser-cta{grid-area:cta;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.mini-teaser-button{background:#38bdf8;border-color:#7dd3fc;color:var(--mini-ink);font-weight:700}.mini-teaser-button:hover{background:#7dd3fc}.mini-teaser-button:focus-visible{outline:3px solid #ffffff;outline-offset:2px}.mini-teaser-arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.mini-teaser-note{margin:0;color:#94a3b8;font-size:.8125rem}.mini-handoff{display:grid;gap:6px;justify-items:start}.mini-handoff-button{display:inline-flex;align-items:center;gap:8px}.mini-handoff-status,.mini-handoff-fallback,.mini-handoff-note{margin:0;font-size:.8125rem}.mini-handoff-status:empty{display:none}.mini-handoff-status.is-error{color:var(--mini-bad);font-weight:600}.mini-teaser .mini-handoff-status,.mini-teaser .mini-handoff-fallback,.mini-teaser .mini-handoff-note{color:#cbd5e1}.mini-teaser .mini-handoff-status.is-error{color:#fecaca}.mini-teaser .mini-handoff-fallback a{color:#7dd3fc}.mini-handoff-card{margin-top:24px;display:grid;gap:10px}.mini-handoff-card .mini-note{margin:0}.mini-footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--mini-line);display:grid;gap:10px}.mini-disclaimer{margin:0;font-size:.8125rem;color:var(--mini-ink-2)}.mini-portal-note{margin:6px 0 0;padding:12px 16px;border-radius:var(--mini-radius);background:var(--mini-accent-soft);color:var(--mini-accent-strong);font-size:.875rem;font-weight:500;text-align:center}.mini-noscript{padding:16px}.mini-notice{max-width:560px;margin:48px auto;padding:16px;text-align:center}.mini-notice-logo{height:48px;width:auto}.mini-notice h1{margin:20px 0 8px;font-size:1.4rem}.mini-notice p{margin:0 0 20px;color:var(--mini-ink-2)}.mini-notice-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}@media(max-width:880px){.mini-workspace{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"shape" "plan" "layer" "hydraulics" "actions"}.mini-teaser{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "gallery" "features" "cta";gap:20px;padding:22px 18px}.mini-teaser-title{font-size:1.35rem}.mini-teaser-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mini-teaser-shot:first-child{grid-row:auto}.mini-teaser-shot:first-child img{flex:none;aspect-ratio:3 / 2}}@media(max-width:760px){.mini-results-grid{grid-template-columns:minmax(0,1fr)}.mini-drains.mini-card{padding-inline:10px}.mini-h1{font-size:1.2rem}}@media(max-width:420px){.mini-grid-2{grid-template-columns:minmax(0,1fr)}.mini-drain-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.mini-drain-name{grid-column:1 / -1}.mini-teaser-cta .mini-btn,.mini-handoff-card .mini-btn{width:100%;justify-content:center}.mini-handoff{justify-items:stretch}.mini-actions .mini-btn{width:100%}}@media(prefers-reduced-motion:reduce){.mini-body *{transition:none!important}}
