:root{--bg:#f4f7f8;--surface:#fff;--surface-2:#eef3f5;--border:#d9e2e6;--text:#13252d;--muted:#5b6f78;--accent:#0e7490;--accent-strong:#0b5c72;--accent-soft:#e0f2f7;--ok:#15803d;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--crit:#b91c1c;--crit-soft:#fee2e2;--info-soft:#e5e7eb;--radius:10px;--shadow:0 1px 2px #1028320f, 0 2px 8px #1028320d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px}@media (prefers-color-scheme:dark){:root{--bg:#0d171b;--surface:#142228;--surface-2:#1a2c33;--border:#2a3f47;--text:#e3eef1;--muted:#93a8b0;--accent:#22a6c6;--accent-strong:#4cc0dc;--accent-soft:#123842;--ok:#4ade80;--ok-soft:#12351f;--warn:#fbbf24;--warn-soft:#3a2c0b;--crit:#f87171;--crit-soft:#3d1414;--info-soft:#2a3439;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}fieldset{min-width:0}select{max-width:100%}[hidden]{display:none!important}body{background:var(--bg);margin:0}h1{margin:0 0 .25rem;font-size:1.6rem}h2{margin:0 0 .75rem;font-size:1.1rem}a{color:var(--accent)}code{background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.9em}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.6rem 1.5rem;display:flex;position:sticky;top:0}.brand{white-space:nowrap;align-items:center;gap:.5rem;font-weight:700;display:flex}.logo{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:1.1rem;display:inline-grid}.topbar nav{flex-wrap:wrap;flex:1;gap:.25rem;display:flex}.topbar nav a{color:var(--muted);border-radius:6px;padding:.4rem .75rem;text-decoration:none}.topbar nav a:hover{background:var(--surface-2);color:var(--text)}.topbar nav a.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.nav-menu{position:relative}.nav-menu-button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:.45rem;padding:.4rem .75rem;display:inline-flex}.nav-menu-button:hover,.nav-menu-button[aria-expanded=true]{background:var(--surface-2);color:var(--text)}.nav-menu-button.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:600}.nav-chevron{border-bottom:2px solid;border-right:2px solid;width:.4rem;height:.4rem;transition:transform .15s;transform:rotate(45deg)translate(-1px,-2px)}.nav-menu-button[aria-expanded=true] .nav-chevron{transform:rotate(-135deg)translate(-1px,-1px)}.nav-menu-list{z-index:20;background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;min-width:12rem;padding:.3rem;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0000001f}.topbar nav .nav-menu-list a{padding:.5rem .75rem}.topbar nav .nav-menu-list a.separated{margin-top:.3rem;position:relative}.topbar nav .nav-menu-list a.separated:before{content:"";border-top:1px solid var(--border);position:absolute;top:-.2rem;left:.4rem;right:.4rem}.userbox{align-items:center;gap:.75rem;font-size:.9rem;display:flex}.content{max-width:1280px;margin:0 auto;padding:1.5rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.crumbs{color:var(--muted);margin:0 0 .25rem;font-size:.85rem}.crumbs a{color:var(--muted)}.center{place-items:center;min-height:60vh;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;padding:1.1rem 1.25rem}.card.empty{text-align:center;padding:2.5rem 1rem}.card.note{white-space:pre-wrap}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid .card{margin:0}.grid.two{margin-bottom:1rem}.tank-card{color:inherit;text-decoration:none;transition:border-color .15s}.tank-card:hover{border-color:var(--accent)}.tank-card .tank-trend{margin:0 0 .6rem;display:inline-block}.facts{grid-template-columns:auto 1fr;gap:.3rem 1rem;margin:0;font-size:.9rem;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.row.end{justify-content:flex-end}.row.spread{justify-content:space-between;margin-bottom:.5rem}.stack{flex-direction:column;gap:.85rem;display:flex}.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.85rem;display:grid}.span-all{grid-column:1/-1}.span-2{grid-column:span 2}.sticky-actions{background:linear-gradient(transparent, var(--bg) 35%);padding:.75rem 0;position:sticky;bottom:0}label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;font-weight:500;display:flex}label.inline{flex-direction:row;align-items:center;gap:.5rem}label.checkbox{color:var(--text);flex-direction:row;align-items:center;gap:.4rem;margin-bottom:.75rem}input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;min-width:0;padding:.45rem .6rem;font-size:.95rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}input.invalid{border-color:var(--crit);background:var(--crit-soft)}input.narrow{width:6.5rem}input.num{text-align:right}input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--accent)}button,.button{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:6px;padding:.45rem .9rem;font-size:.9rem;font-weight:500;text-decoration:none;display:inline-block}button:hover,.button:hover{background:var(--surface-2)}button:disabled{opacity:.55;cursor:default}button.primary,.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button.primary:hover,.button.primary:hover{background:var(--accent-strong)}button.danger{color:var(--crit)}button.link{color:var(--accent);background:0 0;border:none;padding:0}button.link.danger{color:var(--crit)}button.icon{background:0 0;border:none;padding:0 .3rem;font-size:1.4rem;line-height:1}.alert{border-radius:6px;margin-bottom:1rem;padding:.6rem .85rem;font-size:.9rem}.alert.error{background:var(--crit-soft);color:var(--crit)}.alert.success{background:var(--ok-soft);color:var(--ok)}.muted{color:var(--muted)}.small{font-size:.85rem}.strong{font-weight:600}.warn-text{color:var(--warn);font-size:.8rem;font-weight:500}.ellipsis{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:.45rem .6rem}th{color:var(--muted);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;font-size:.8rem;font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}tr.group-row td{background:var(--surface-2);color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}tr.excluded td{opacity:.5}td.actions{justify-content:flex-end;gap:.75rem;display:flex}.matrix td.num{white-space:nowrap}.cell-ok{background:color-mix(in srgb, var(--ok-soft) 60%, transparent)}.cell-low,.cell-high,.cell-unknown{background:var(--warn-soft);color:var(--warn);font-weight:600}.cell-critical_low,.cell-critical_high{background:var(--crit-soft);color:var(--crit);font-weight:700}.compare tr.row-critical_low td:first-child,.compare tr.row-critical_high td:first-child{box-shadow:inset 3px 0 0 var(--crit)}.compare tr.row-low td:first-child,.compare tr.row-high td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.bar-col{width:180px;min-width:140px}.ref-table td{padding:.25rem .4rem}.ref-table input.field-target{font-weight:600}.badge{white-space:nowrap;border-radius:999px;padding:.15rem .55rem;font-size:.78rem;font-weight:600;display:inline-block}.status-ok{background:var(--ok-soft);color:var(--ok)}.status-low,.status-high{background:var(--warn-soft);color:var(--warn)}.status-critical_low,.status-critical_high{background:var(--crit-soft);color:var(--crit)}.status-unknown,.status-none{background:var(--info-soft);color:var(--muted)}.stats{flex-wrap:wrap;gap:.75rem;margin-bottom:1rem;display:flex}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);padding:.6rem 1rem;font-size:.9rem}.stat span{color:var(--text);margin-right:.35rem;font-size:1.4rem;font-weight:700}.stat.ok span{color:var(--ok)}.stat.warn span{color:var(--warn)}.stat.crit span{color:var(--crit)}.rangebar{border-radius:5px;height:10px;position:relative;overflow:visible}.rb-seg{position:absolute;top:0;bottom:0}.rb-seg:first-child{border-radius:5px}.rb-crit{background:var(--crit-soft)}.rb-warn{background:var(--warn-soft)}.rb-ok{background:color-mix(in srgb, var(--ok) 35%, transparent)}.rb-target{background:var(--ok);width:1px;position:absolute;top:-2px;bottom:-2px}.rb-marker{background:var(--text);border:2px solid var(--surface);border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;top:50%}.tabs{border-bottom:1px solid var(--border);gap:.25rem;margin-bottom:1rem;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;padding:.6rem .9rem}.tabs button.active{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.subtabs{background:var(--surface-2);border-radius:8px;flex-wrap:wrap;gap:.25rem;margin:-.25rem 0 1rem;padding:.25rem;display:inline-flex}.subtabs button{color:var(--muted);background:0 0;border:none;border-radius:6px;padding:.35rem .8rem;font-size:.85rem}.subtabs button:hover{color:var(--text)}.subtabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}fieldset.card{border:1px solid var(--border)}fieldset legend{padding:0 .4rem;font-weight:600}.value-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:.9rem 1.25rem;display:grid}.value-input label{color:var(--text);flex-direction:row;gap:.35rem;margin-bottom:.25rem}.input-unit{align-items:center;gap:.4rem;display:flex}.input-unit input{text-align:right;flex:1}.input-unit span{color:var(--muted);width:2.6rem;font-size:.85rem}.value-hint{align-items:center;gap:.4rem;min-height:1.4rem;margin-top:.25rem;display:flex}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;color:var(--text);align-items:center;padding:2.5rem 1rem;position:relative}.dropzone.over,.dropzone:hover{border-color:var(--accent);background:var(--accent-soft)}.dropzone input{opacity:0;cursor:pointer;position:absolute;inset:0}details summary{cursor:pointer;color:var(--accent)}details li{margin-bottom:.35rem}.chart-scroll{margin-top:.75rem;overflow-x:auto}.trend{width:100%;min-width:520px;height:auto}.trend-band{fill:color-mix(in srgb, var(--ok) 14%, transparent)}.trend-target{stroke:var(--ok);stroke-dasharray:4 4}.trend-grid{stroke:var(--border);stroke-width:.5px}.trend-label{fill:var(--muted);font-size:11px}.trend-line{fill:none;stroke:var(--accent);stroke-width:2px}.trend-dot{stroke:var(--surface);stroke-width:2px;fill:var(--accent)}.dot-ok{fill:var(--ok)}.dot-low,.dot-high{fill:var(--warn)}.dot-critical_low,.dot-critical_high{fill:var(--crit)}:root{--flow-a:#0e7490;--flow-b:#c2410c;--flow-c:#64748b;--flow-water:#e0f2fe;--flow-reef:#d6c3a1;--flow-reef-stroke:#a68a5b;--flow-sand:#efe3c8}@media (prefers-color-scheme:dark){:root{--flow-a:#22d3ee;--flow-b:#fb923c;--flow-c:#94a3b8;--flow-water:#0f2a36;--flow-reef:#6b5a40;--flow-reef-stroke:#a68a5b;--flow-sand:#4a4232}}.flow-layout{grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:1rem;display:grid}.flow-layout>*{min-width:0}@media (width<=960px){.flow-layout{grid-template-columns:minmax(0,1fr)}}.flow-inputs{margin:0}fieldset.plain{border:none;border-top:1px solid var(--border);flex-direction:column;gap:.7rem;margin:0;padding:.75rem 0 0;display:flex}fieldset.plain legend{padding:0 .4rem 0 0;font-weight:600}.hp-field{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.usage-list{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.8rem 1.5rem;margin:0;padding:0;list-style:none;display:grid}.usage-list li{font-size:.9rem}.usage-bar{background:var(--surface-2);border-radius:3px;height:6px;margin-top:.3rem;overflow:hidden}.usage-bar span{background:var(--accent);height:100%;display:block}.usage-list li.near .usage-bar span{background:var(--warn)}.usage-list li.full .usage-bar span{background:var(--crit)}.usage-list li.full .num{color:var(--crit);font-weight:600}.limits-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.8rem 1.25rem;display:grid}.limit-input{flex-direction:column;gap:.3rem;display:flex}.limits-table .limit-value{width:7rem}.code-input{letter-spacing:.15em;max-width:14rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:1.25rem}.totp-setup{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;display:flex}.totp-setup img{border:1px solid var(--border);background:#fff;border-radius:8px}.totp-secret{letter-spacing:.05em;word-break:break-all;margin-top:.35rem;font-size:1rem;display:inline-block}.recovery-codes{background:var(--surface-2);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.4rem 1rem;margin:0;padding:.75rem 1rem;list-style:none;display:grid}.recovery-codes code{font-size:1rem}.disclaimer{border-left:3px solid var(--warn);background:var(--warn-soft);border-radius:4px;margin:.5rem 0 0;padding:.5rem .75rem}.legal-footer{flex-wrap:wrap;justify-content:center;gap:.4rem 1.5rem;padding:.9rem 1rem 1.2rem;font-size:.85rem;display:flex}.legal-footer a{color:var(--muted)}.legal-footer a:hover{color:var(--accent)}.legal-wrap{background:var(--bg);padding:1.5rem 1rem}.legal-page{max-width:760px;margin:0 auto}.legal-text h2{margin:1.2rem 0 .4rem;font-size:1.05rem}.legal-text p,.legal-text ul{margin:0 0 .7rem;line-height:1.55}.legal-text ul{padding-left:1.2rem}label.checkbox.terms{align-items:flex-start;font-size:.9rem;line-height:1.4}label.checkbox.terms input{flex:none;margin-top:.2rem}.danger-zone{border-color:var(--crit-soft)}.danger-zone h3{margin:0;font-size:1rem}.legal-editor textarea{width:100%;min-height:22rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.85rem;line-height:1.45}.flow-draggable{cursor:grab;touch-action:none;outline:none}.flow-draggable.dragging{cursor:grabbing}.flow-draggable:focus-visible .flow-pump,.flow-draggable.dragging .flow-pump{stroke:var(--text);stroke-width:.8px}fieldset.collapsible.collapsed{gap:.2rem}fieldset.collapsible .section-body{flex-direction:column;gap:.7rem;display:flex}.section-toggle{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:.45rem;padding:.15rem .2rem;font-weight:600;display:inline-flex}.section-toggle:hover,.section-toggle:focus-visible,.section-summary:hover{color:var(--accent);background:0 0}.section-toggle .chevron{border-bottom:2px solid;border-right:2px solid;width:.45rem;height:.45rem;transition:transform .15s;transform:rotate(45deg)translate(-2px,-2px)}.section-toggle[aria-expanded=false] .chevron{transform:rotate(-45deg)}.section-summary{text-align:left;white-space:normal;cursor:pointer;color:var(--muted);background:0 0;border:none;padding:0 0 0 1.1rem;font-family:inherit;font-size:.85rem;font-weight:400}@media print{fieldset.collapsible .section-body[hidden]{display:flex!important}}.form-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.field-label{color:var(--muted);font-size:.85rem;font-weight:500}input[type=range]{accent-color:var(--accent);border:none;padding:0}.layout-picker{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.5rem;display:grid}.layout-picker button{white-space:normal;text-align:center;flex-direction:column;align-items:center;gap:.3rem;padding:.45rem;font-size:.78rem;line-height:1.2;display:flex}.layout-picker button.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.layout-icon{width:100%;height:auto}.segmented{border:1px solid var(--border);border-radius:6px;display:inline-flex;overflow:hidden}.segmented button{border:none;border-right:1px solid var(--border);border-radius:0;padding:.35rem .8rem}.segmented button:last-child{border-right:none}.segmented button.active{background:var(--accent);color:#fff}.return-outlet{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;flex-direction:column;gap:.5rem;padding:.6rem .75rem;display:flex}.pump-row{grid-template-columns:minmax(0,1fr) 8.5rem auto;align-items:center;gap:.4rem;display:grid}.flow-result .card,.flow-result .stats{margin-bottom:1rem}.flow-diagrams{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;display:grid}.flow-diagrams figure{margin:0}.flow-diagrams figcaption{color:var(--muted);text-align:center;margin-top:.3rem;font-size:.8rem}.flow-diagram{width:100%;height:auto;display:block}.flow-glass{fill:none;stroke:var(--text);stroke-width:1.5px;vector-effect:non-scaling-stroke}.flow-water{fill:var(--flow-water)}.flow-surface{stroke:var(--flow-a);stroke-width:1.5px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.flow-sand{fill:var(--flow-sand)}.flow-reef{fill:var(--flow-reef);stroke:var(--flow-reef-stroke);stroke-width:1px;vector-effect:non-scaling-stroke}.flow-overflow{fill:var(--surface-2);stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}.flow-jet{stroke-linecap:round;opacity:.75}.flow-ring{fill:none}.flow-stroke-A{stroke:var(--flow-a)}.flow-stroke-B{stroke:var(--flow-b)}.flow-stroke-C{stroke:var(--flow-c)}.flow-fill-A{fill:var(--flow-a);background:var(--flow-a)}.flow-fill-B{fill:var(--flow-b);background:var(--flow-b)}.flow-fill-C{fill:var(--flow-c);background:var(--flow-c)}.flow-pump{stroke:var(--surface);stroke-width:1.5px;vector-effect:non-scaling-stroke}.flow-pump-no{fill:#fff;font-weight:700}.flow-label{fill:var(--muted)}.flow-legend{color:var(--muted);flex-wrap:wrap;gap:1rem;margin-top:.75rem;display:flex}.flow-legend .dot{vertical-align:-.05rem;border-radius:50%;width:.7rem;height:.7rem;margin-right:.3rem;display:inline-block}.pump-badge{color:#fff;border-radius:50%;place-items:center;width:1.6rem;height:1.6rem;font-size:.85rem;font-weight:700;display:inline-grid}.pump-table td{vertical-align:top}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.info{background:var(--info-soft);color:var(--text)}.alert ul{margin:.3rem 0 0;padding-left:1.2rem}ul.hints{margin:0 0 .75rem;padding-left:1.2rem}ul.hints li{margin-bottom:.4rem}:root{--flow-r:#7c3aed}@media (prefers-color-scheme:dark){:root{--flow-r:#a78bfa}}.flow-stroke-R{stroke:var(--flow-r)}.flow-fill-R{fill:var(--flow-r);background:var(--flow-r)}.pump-badge.square,.flow-legend .dot.square{border-radius:4px}.flow-cell{stroke-width:.5px}.flow-grid-empty{fill:none;stroke:var(--border);stroke-width:.6px}.pump-name{flex-direction:column;gap:.3rem;min-width:0;display:flex}.model-suggestions{color:var(--accent-strong);margin-top:.2rem}.reef-grid-wrap{flex-direction:column;align-items:center;gap:.25rem;display:flex}.grid-side{color:var(--muted);font-size:.75rem}.reef-grid{background:var(--flow-water);border:2px solid var(--text);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:4px;gap:2px;width:100%;padding:2px;display:grid}.reef-cell{outline:1px dashed color-mix(in srgb, var(--muted) 35%, transparent);outline-offset:-1px;background:0 0;border:none;border-radius:2px;min-width:0;min-height:0;padding:0}.reef-cell:hover{background:color-mix(in srgb, var(--flow-reef) 30%, transparent)}.reef-cell:focus-visible{outline:2px solid var(--accent)}.level-1{background:color-mix(in srgb, var(--flow-reef) 45%, transparent)}.level-2{background:color-mix(in srgb, var(--flow-reef) 75%, transparent)}.level-3{background:var(--flow-reef)}.reef-cell.level-1,.reef-cell.level-2,.reef-cell.level-3{outline:1px solid var(--flow-reef-stroke)}.swatch{border:1px solid var(--flow-reef-stroke);vertical-align:-.05rem;border-radius:2px;width:.7rem;height:.7rem;display:inline-block}.swatch.level-0{background:var(--flow-water)}:root{--flow-coral:#e0567b}@media (prefers-color-scheme:dark){:root{--flow-coral:#f472b6}}.flow-coral-zone{fill:var(--flow-coral);opacity:.22}.flow-coral-line{stroke:var(--flow-coral);stroke-width:3px;stroke-linecap:round;stroke-dasharray:.1 6;vector-effect:non-scaling-stroke}.flow-hit line{stroke:var(--text);stroke-width:2px;vector-effect:non-scaling-stroke}.flow-hit.close line{stroke:var(--crit);stroke-width:2.5px}.coral-swatch,.hit-swatch{vertical-align:-.02rem;width:.8rem;height:.6rem;margin-right:.3rem;display:inline-block}.coral-swatch{background:color-mix(in srgb, var(--flow-coral) 40%, transparent);border-top:2px dotted var(--flow-coral)}.hit-swatch{background:linear-gradient(45deg, transparent 42%, var(--text) 42% 58%, transparent 58%), linear-gradient(-45deg, transparent 42%, var(--text) 42% 58%, transparent 58%)}.custom-reef-summary{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .75rem;display:flex}.flow-passage{fill:var(--flow-water);stroke:var(--flow-reef-stroke);stroke-width:1px;stroke-dasharray:3 2;vector-effect:non-scaling-stroke;opacity:.85}.editor-backdrop{z-index:60;padding:max(1rem, env(safe-area-inset-top)) 1rem;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.editor-dialog{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;width:min(1400px,100%);height:min(920px,100%);display:flex;overflow:hidden}.editor-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.editor-head h2{margin:0}.editor-body{flex:1;grid-template-columns:120px minmax(0,1fr) 260px;min-height:0;display:grid}.editor-palette,.editor-props{background:var(--surface-2);padding:.75rem;overflow-y:auto}.editor-palette{border-right:1px solid var(--border);flex-direction:column;gap:.4rem;display:flex}.editor-palette button{white-space:normal;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem;font-size:.8rem;display:flex}.rock-icon{width:48px;height:36px}.editor-props{border-left:1px solid var(--border)}.editor-canvas{flex-direction:column;gap:.5rem;padding:.75rem;display:flex;overflow:auto}.editor-svg{touch-action:none;-webkit-user-select:none;user-select:none;border-radius:6px;outline:none;flex:none;width:100%;height:auto;max-height:62vh;margin:0 auto;display:block}.editor-svg:focus-visible{box-shadow:0 0 0 2px var(--accent)}.grid-minor{stroke:color-mix(in srgb, var(--muted) 18%, transparent);stroke-width:.5px;vector-effect:non-scaling-stroke}.grid-major{stroke:color-mix(in srgb, var(--muted) 38%, transparent);stroke-width:.8px;vector-effect:non-scaling-stroke}.editor-rock{cursor:grab}.editor-rock:active{cursor:grabbing}.editor-rock.selected .editor-rock-shape{stroke:var(--accent);stroke-width:2.5px}.editor-rock-label{fill:var(--text);pointer-events:none;opacity:.75;font-weight:600}.editor-handle{fill:var(--surface);stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.editor-handle.resize{cursor:nwse-resize}.editor-handle.rotate{cursor:grab;fill:var(--accent)}.editor-handle-line{stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.editor-front{flex:none;width:min(560px,100%)}.rock-list{flex-direction:column;gap:.3rem;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}@media (width<=900px){.editor-body{grid-template-columns:1fr;overflow-y:auto}.editor-palette{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;overflow-x:auto}.editor-palette .field-label{display:none}.editor-palette button{min-width:76px}.editor-props{border-left:none;border-top:1px solid var(--border)}.editor-canvas{overflow:visible}}.demo-banner{background:var(--accent-soft);color:var(--text);border-bottom:1px solid var(--accent);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem 1rem;padding:.5rem 1.5rem;font-size:.9rem;display:flex}.demo-banner button{padding:.3rem .8rem}.demo-start{flex-direction:column;gap:.5rem;display:flex}.demo-start p{margin:0}.divider-text{color:var(--muted);align-items:center;gap:.75rem;font-size:.85rem;display:flex}.divider-text:before,.divider-text:after{content:"";border-top:1px solid var(--border);flex:1}.acting-banner{background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--warn);flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:.5rem 1.5rem;font-size:.9rem;display:flex}.acting-banner button{border-color:var(--warn);color:var(--warn);background:0 0;padding:.25rem .7rem}tr.selected td{background:var(--accent-soft)}button.danger-fill,button.primary.danger-fill{background:var(--crit);border-color:var(--crit);color:#fff}input[type=search]{width:min(320px,100%)}.trend-dot.dot-hobby{fill:var(--surface);stroke-width:2.5px}.trend-dot.dot-hobby.dot-ok{stroke:var(--ok)}.trend-dot.dot-hobby.dot-low,.trend-dot.dot-hobby.dot-high{stroke:var(--warn)}.trend-dot.dot-hobby.dot-critical_low,.trend-dot.dot-hobby.dot-critical_high{stroke:var(--crit)}.trend-dot.dot-hobby.dot-none,.trend-dot.dot-hobby.dot-unknown{stroke:var(--accent)}.consumption{background:var(--surface-2);border-radius:6px;margin-top:.75rem;padding:.6rem .8rem}.trend-warnings ul{margin:.3rem 0 0;padding-left:1.2rem}.trend-warnings li.trend-critical{color:var(--crit);font-weight:500}.trend-warnings .trend-note{opacity:.85;margin:.4rem 0 0}.trend-fit{stroke:var(--muted);stroke-width:1.5px;opacity:.6}.trend-forecast{stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:6 5}.trend-critical-line{stroke:var(--crit);stroke-width:1px;stroke-dasharray:2 4;opacity:.7}.trend-mark circle{fill:var(--surface);stroke-width:2px}.trend-mark.mark-soll circle{stroke:var(--warn)}.trend-mark.mark-critical circle{stroke:var(--crit)}.trend-mark-label{font-weight:600}.forecast-text{margin:.4rem 0 0}.quick-test{max-width:560px}.quick-field{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 9rem;grid-template-areas:"label input""hint hint";align-items:center;gap:.2rem .75rem;padding:.5rem 0;display:grid}.quick-field label{color:var(--text);flex-direction:row;grid-area:label;gap:.35rem;font-size:.95rem}.quick-field .input-unit{grid-area:input}.quick-field input{padding:.55rem .6rem;font-size:1.1rem}.quick-hint{grid-area:hint;align-items:center;gap:.4rem;display:flex}.dose-sentence{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.compare-two tr.change-better td:first-child{box-shadow:inset 3px 0 0 var(--ok)}.compare-two tr.change-worse td:first-child{box-shadow:inset 3px 0 0 var(--crit)}.compare-two tr.change-better .change-arrow{color:var(--ok)}.compare-two tr.change-worse .change-arrow{color:var(--crit)}.compare-two td .badge{margin-left:.3rem}.report{max-width:1000px;margin:0 auto}.report-toolbar{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.report-head{border-bottom:2px solid var(--accent);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.report-head h1{margin-bottom:.2rem}.report-head p{margin:.15rem 0}.report-summary{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.report section{margin-bottom:1.25rem}.report h2{border-bottom:1px solid var(--border);padding-bottom:.25rem}.report-note{white-space:pre-wrap;font-style:italic}.report-table td,.report-table th{padding:.25rem .5rem}.report-charts{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:.75rem;display:grid}.report-charts figure{break-inside:avoid;margin:0}.report-charts figcaption{font-size:.85rem;font-weight:600}.report-charts .trend{min-width:0}.report-actions li{margin-bottom:.4rem}.report-foot{border-top:1px solid var(--border);text-align:right;padding-top:.5rem}.report-facts th{text-align:left;white-space:nowrap;vertical-align:top;width:11rem;font-weight:600}.report-note-plain{margin-top:.5rem}.flow-report .flow-diagrams{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.flow-report .pump-table td{vertical-align:top}.flow-file-actions .row{flex-wrap:wrap;gap:.5rem}@media print{:root{--bg:#fff;--surface:#fff;--surface-2:#f1f5f6;--border:#cfd8dc;--text:#111;--muted:#555;--accent:#0e7490;--ok:#15803d;--ok-soft:#dcfce7;--warn:#b45309;--warn-soft:#fef3c7;--crit:#b91c1c;--crit-soft:#fee2e2;--flow-a:#0e7490;--flow-b:#c2410c;--flow-c:#64748b;--flow-r:#7c3aed;--flow-water:#e0f2fe;--flow-reef:#d6c3a1;--flow-reef-stroke:#a68a5b;--flow-sand:#efe3c8;--flow-coral:#e0567b;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.report-sketches{break-inside:avoid}@page{margin:14mm 12mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff}.topbar,.acting-banner,.demo-banner,.no-print{display:none!important}.content{max-width:none;padding:0}.report tr,.report li{break-inside:avoid}.report-break{break-before:auto}.stat{padding:.3rem .6rem}}table.audit tr.external td{background:color-mix(in srgb, var(--warn-soft) 60%, transparent)}.nowrap{white-space:nowrap}.modal-backdrop{z-index:50;background:#0006;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal{width:min(480px,100%);max-height:90vh;margin:0;overflow:auto}.modal-head{justify-content:space-between;align-items:center;display:flex}.auth-wrap{background:radial-gradient(circle at 20% 0%, var(--accent-soft), var(--bg) 60%);place-items:center;min-height:calc(100vh - 3rem);padding:1rem;display:grid}.auth-card{flex-direction:column;gap:.85rem;width:min(400px,100%);display:flex}@media (width<=640px){.content{padding:1rem}.userbox .muted{display:none}.span-2{grid-column:1/-1}}
