:root,[data-theme=light]{--bg:#e7f1ea;--bg-deep:#d3e6da;--surface:#ffffff94;--surface-strong:#ffffffc7;--surface-solid:#f4faf6;--ink:#102419;--muted:#5a7364;--brand:#0d6548;--brand-soft:#1b8f67;--water:#1690b4;--water-deep:#0a5a74;--accent:#c9a24d;--danger:#c04545;--line:#1024191a;--line-strong:#10241929;--shadow:0 10px 30px #10241912, 0 2px 8px #1024190a;--shadow-lift:0 18px 40px #1024191f, 0 4px 12px #1024190f;--glow:0 0 0 1px color-mix(in srgb, var(--water) 18%, transparent);--radius-sm:.65rem;--radius-md:1rem;--radius-lg:1.35rem;--radius-xl:1.7rem;--blur:18px;--hero-glow:radial-gradient(ellipse 80% 55% at 12% -10%, #1690b438, transparent 55%), radial-gradient(ellipse 70% 50% at 92% 0%, #0d65482e, transparent 50%), radial-gradient(ellipse 50% 40% at 50% 100%, #c9a24d1a, transparent 55%), linear-gradient(165deg, #f3faf5 0%, #e4f0e8 42%, #d7ebf2 100%);--tank:#0d7a9c;--lawn:#3d9a5f;--flower:#d46a8c;--ease:cubic-bezier(.22, 1, .36, 1)}[data-theme=dark]{--bg:#0a1410;--bg-deep:#07100c;--surface:#12221b9e;--surface-strong:#162820d1;--surface-solid:#101f18;--ink:#e8f4ec;--muted:#93ad9f;--brand:#45d4a0;--brand-soft:#249e72;--water:#45bbe0;--water-deep:#1a8fb5;--accent:#e4c278;--danger:#f07a7a;--line:#e8f4ec1a;--line-strong:#e8f4ec29;--shadow:0 14px 36px #00000061, 0 2px 8px #0003;--shadow-lift:0 22px 50px #00000080;--glow:0 0 0 1px color-mix(in srgb, var(--water) 22%, transparent);--hero-glow:radial-gradient(ellipse 75% 50% at 10% -8%, #45bbe029, transparent 50%), radial-gradient(ellipse 65% 45% at 90% 0%, #45d4a01f, transparent 48%), linear-gradient(168deg, #0a1410 0%, #0e1c16 48%, #0c1a22 100%);--tank:#2aa4c8;--lawn:#4cba76;--flower:#e288a8}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}html,body,#root{min-height:100%;margin:0}body{font-optical-sizing:auto;color:var(--ink);background:var(--hero-glow);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-attachment:fixed;font-family:Figtree,system-ui,sans-serif;font-weight:450;line-height:1.5}body:before{content:"";pointer-events:none;z-index:0;opacity:.35;background-image:radial-gradient(#10241909 .6px,#0000 .6px);background-size:3px 3px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0000 88%);mask-image:linear-gradient(#000 0%,#0000 88%)}[data-theme=dark] body:before{opacity:.22;background-image:radial-gradient(#e8f4ec0d .6px,#0000 .6px)}#root{z-index:1;position:relative}h1,h2,h3,.brand{letter-spacing:-.03em;font-optical-sizing:auto;font-family:Fraunces,Georgia,serif;font-weight:650;line-height:1.1}button,input,select,textarea{font:inherit;letter-spacing:inherit}::selection{background:color-mix(in srgb, var(--water) 28%, transparent);color:var(--ink)}.app{width:min(1220px,100% - 2rem);margin:0 auto;padding:1.35rem 0 4.5rem}.topbar{animation:rise .7s var(--ease) both;justify-content:space-between;align-items:flex-start;gap:1.1rem;margin-bottom:1.5rem;display:flex}.brand-block h1{color:var(--brand);text-wrap:balance;margin:0;font-size:clamp(2.35rem,5vw,3.45rem);line-height:.92}.brand-row{align-items:center;gap:.85rem;display:flex}.brand-logo{width:58px;height:58px;box-shadow:var(--shadow), var(--glow);object-fit:cover;border-radius:16px;flex-shrink:0}.brand-block p{color:var(--muted);text-wrap:pretty;max-width:34ch;margin:.55rem 0 0;font-size:1.02rem;font-weight:500;line-height:1.4}.toggles{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));border-radius:999px;flex-wrap:wrap;gap:.55rem;padding:.35rem;display:flex}.seg{background:color-mix(in srgb, var(--surface-solid) 55%, transparent);border:1px solid var(--line);border-radius:999px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease);background:0 0;border:0;padding:.48rem .85rem;font-size:.86rem;font-weight:600}.seg button:hover{color:var(--ink)}.seg button.active{background:var(--brand);color:#fff;box-shadow:0 4px 12px color-mix(in srgb, var(--brand) 35%, transparent)}.nav{display:none}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));animation:rise .75s var(--ease) both;padding:1.35rem 1.4rem}.panel h2{margin:0 0 .4rem;font-size:1.5rem}.panel .lead{color:var(--muted);text-wrap:pretty;margin:0 0 1.15rem;font-size:.98rem;line-height:1.45}.dropzone{border:1.5px dashed color-mix(in srgb, var(--water) 48%, var(--line));border-radius:var(--radius-md);text-align:center;background:linear-gradient(180deg, color-mix(in srgb, var(--water) 9%, transparent), transparent 70%), var(--surface-solid);transition:border-color .25s var(--ease), transform .25s var(--ease), box-shadow .25s var(--ease);cursor:pointer;padding:1.75rem 1.4rem}.dropzone:hover,.dropzone.drag{border-color:var(--water);box-shadow:var(--shadow);transform:translateY(-2px)}.row-actions,.actions{flex-wrap:wrap;gap:.55rem;margin-top:1rem;display:flex}.btn{cursor:pointer;background:linear-gradient(180deg, color-mix(in srgb, var(--brand) 92%, white), var(--brand));color:#fff;letter-spacing:-.01em;box-shadow:0 8px 18px color-mix(in srgb, var(--brand) 28%, transparent);transition:transform .2s var(--ease), box-shadow .2s var(--ease), filter .2s var(--ease);border:0;border-radius:999px;padding:.72rem 1.2rem;font-weight:650}.btn:hover:not(:disabled){box-shadow:0 12px 24px color-mix(in srgb, var(--brand) 34%, transparent);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn.secondary{background:var(--surface-strong);color:var(--ink);border:1px solid var(--line-strong);box-shadow:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn.secondary:hover:not(:disabled){border-color:color-mix(in srgb, var(--water) 35%, var(--line));box-shadow:var(--shadow)}.btn:disabled{opacity:.5;cursor:wait;box-shadow:none}.table-wrap{border-radius:var(--radius-md);border:1px solid var(--line);margin-top:1rem;overflow:auto;box-shadow:inset 0 1px #ffffff40}table{border-collapse:collapse;background:var(--surface-solid);width:100%;min-width:900px}th,td{border-bottom:1px solid var(--line);text-align:left;padding:.62rem .5rem;font-size:.9rem}th{color:var(--muted);background:var(--surface-solid);font-weight:600;position:sticky;top:0}td input,td select{border:1px solid var(--line);width:100%;min-width:4.5rem;color:var(--ink);background:0 0;border-radius:.45rem;padding:.35rem .4rem}.sliders{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;display:grid}.slider label{color:var(--muted);justify-content:space-between;gap:.5rem;margin-bottom:.4rem;font-size:.88rem;font-weight:600;display:flex}.slider input[type=range]{width:100%;accent-color:var(--water);height:1.35rem}.slider input[type=number]{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-solid);width:100%;color:var(--ink);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);padding:.52rem .65rem}.slider input[type=number]:focus{border-color:color-mix(in srgb, var(--water) 50%, var(--line));box-shadow:0 0 0 3px color-mix(in srgb, var(--water) 18%, transparent);outline:none}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;display:grid}.stat{border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface-solid) 92%, transparent);border:1px solid var(--line);box-shadow:var(--shadow);padding:1.05rem 1.1rem}.stat strong{letter-spacing:-.03em;color:var(--water-deep);font-family:Fraunces,Georgia,serif;font-size:1.5rem;display:block}[data-theme=dark] .stat strong{color:var(--water)}.stat span{color:var(--muted);font-size:.9rem}.gantt{gap:.4rem;margin-top:1rem;display:grid}.gantt-row{grid-template-columns:120px 1fr;align-items:center;gap:.6rem;display:grid}.gantt-track{background:color-mix(in srgb, var(--line) 70%, transparent);border-radius:999px;height:28px;position:relative;overflow:hidden}.gantt-bar{background:linear-gradient(90deg, var(--water), var(--brand-soft));border-radius:999px;min-width:4px;transition:left .3s,width .3s;position:absolute;top:3px;bottom:3px}.gantt-bar.drip{background:linear-gradient(90deg, var(--brand), var(--accent))}.gantt-bar.skipped{opacity:.35;background:var(--muted)}.rationale{border-left:3px solid var(--water);background:color-mix(in srgb, var(--water) 6%, var(--surface-solid));border-radius:0 var(--radius-md) var(--radius-md) 0;margin-top:1rem;padding:1.05rem 1.15rem;line-height:1.5}.sim{grid-template-columns:1.1fr 1fr;gap:1.25rem;display:grid}.tank-scene{background:radial-gradient(circle at 70% 80%, color-mix(in srgb, var(--lawn) 35%, transparent), transparent 40%), linear-gradient(180deg, color-mix(in srgb, var(--water) 18%, transparent), transparent 40%), var(--surface-solid);border:1px solid var(--line);border-radius:1.2rem;min-height:320px;position:relative;overflow:hidden}.tank{border:3px solid color-mix(in srgb, var(--ink) 35%, transparent);background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:.6rem .6rem 1rem 1rem;width:120px;height:180px;position:absolute;top:12%;left:8%;overflow:hidden}.tank-fill{background:linear-gradient(180deg, var(--water), var(--water-deep));transition:height .25s linear;position:absolute;bottom:0;left:0;right:0}.tank-label{color:var(--muted);font-size:.85rem;position:absolute;top:205px;left:8%}.ground{background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--lawn) 40%, transparent));height:38%;position:absolute;bottom:0;left:0;right:0}.spray{background:var(--water);opacity:0;border-radius:50%;width:10px;height:10px;position:absolute}.spray.on{animation:1.2s ease-out infinite spray}.plot{opacity:.55;border-radius:50% 50% 40% 40%;width:70px;height:48px;transition:opacity .3s,filter .3s;position:absolute;bottom:12%}.plot.lawn{background:var(--lawn);right:28%}.plot.flowers{background:var(--flower);right:12%}.plot.drip{background:var(--brand);right:44%}.plot.active{opacity:1;filter:saturate(1.3)brightness(1.05);box-shadow:0 0 24px color-mix(in srgb, var(--water) 50%, transparent)}.bars{gap:.75rem;display:grid}.bar-row label{color:var(--muted);justify-content:space-between;margin-bottom:.25rem;font-size:.9rem;display:flex}.bar-track{background:color-mix(in srgb, var(--line) 80%, transparent);border-radius:999px;height:14px;overflow:hidden}.bar-fill{border-radius:inherit;background:linear-gradient(90deg, var(--water), var(--brand));height:100%}.compare{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.error{color:var(--danger);margin-top:.75rem}.weather{grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:.55rem;margin-top:.55rem;display:grid}.weather-day{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface-solid) 92%, transparent);border:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;gap:.35rem;padding:.65rem .6rem .7rem;font-size:.82rem;display:flex}.weather-date{letter-spacing:.02em;color:var(--ink);font-size:.78rem}.weather-row{background:color-mix(in srgb, var(--surface-solid) 70%, transparent);border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:.55rem;grid-template-columns:auto 1fr auto;align-items:center;gap:.3rem;padding:.28rem .35rem;display:grid}.weather-row.rain{background:color-mix(in srgb, var(--water) 12%, var(--surface-solid))}.weather-row.temp{background:color-mix(in srgb, #e8a45a 12%, var(--surface-solid))}.weather-ico{font-size:.85rem;line-height:1}.weather-label{letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-size:.66rem;font-weight:700}.weather-row b{font-variant-numeric:tabular-nums;font-size:.78rem;font-weight:700}.location-block{border-radius:var(--radius-md);border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 88%, transparent);box-shadow:var(--shadow);margin-bottom:.55rem;padding:1rem 1.05rem}.location-label{color:var(--muted);margin-bottom:.4rem;font-size:.9rem;display:block}.location-row{flex-wrap:wrap;align-items:flex-start;gap:.55rem;display:flex}.location-search{flex:1;min-width:220px;position:relative}.location-search input{border:1px solid var(--line);width:100%;color:var(--ink);background:0 0;border-radius:.7rem;padding:.65rem .8rem}.location-busy{color:var(--muted);position:absolute;top:.65rem;right:.75rem}.location-results{z-index:8;background:var(--surface-solid);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:.75rem;max-height:220px;margin:.25rem 0 0;padding:.35rem;list-style:none;position:absolute;left:0;right:0;overflow:auto}.location-results button{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:.5rem;padding:.55rem .65rem}.location-results button:hover{background:color-mix(in srgb, var(--water) 14%, transparent)}.location-selected{color:var(--muted);margin:.55rem 0 0;font-size:.88rem}.location-map{border:1px solid var(--line);aspect-ratio:16/9;background:color-mix(in srgb, var(--water) 10%, transparent);border-radius:.85rem;margin-top:.75rem;position:relative;overflow:hidden}.location-map iframe{border:0;width:100%;height:100%}.location-map-link{background:var(--surface-solid);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.25rem .5rem;font-size:.75rem;text-decoration:none;position:absolute;bottom:.5rem;right:.5rem}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes spray{0%{opacity:.9;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-40px)scale(.4)}}:root,[data-theme=light]{--iso-sky-top:#dceff7;--iso-sky-mid:#e9f6ef;--iso-sky-bot:#f2f8e9;--iso-glow:#ffeec48c;--iso-cloud:#fff9;--iso-grid:#10241912;--iso-edge:#1024190d;--iso-ao:#10241921;--iso-ground-top:#cdebd6;--iso-ground-left:#8cc79e;--iso-ground-right:#a6d8b4;--iso-path-top:#f0ece0;--iso-path-left:#cdc5b2;--iso-path-right:#e0d9c8;--iso-lawn-top:#cff3d2;--iso-lawn-left:#7fd196;--iso-lawn-right:#a0e4b0;--iso-flower-top:#fce2ec;--iso-flower-left:#dda8be;--iso-flower-right:#efc2d2;--iso-drip-top:#e9d9b8;--iso-drip-left:#c0a078;--iso-drip-right:#d6ba95;--iso-leaf-top:#a6dfb4;--iso-leaf-left:#5cb477;--iso-leaf-right:#7cc993;--iso-leaf-hi-top:#c2eecb;--iso-leaf-hi-left:#74c48c;--iso-leaf-hi-right:#95d9a8;--iso-trunk-top:#cfae8c;--iso-trunk-left:#9a7550;--iso-trunk-right:#b18f67;--iso-palm-top:#86dba4;--iso-palm-left:#45ab6d;--iso-palm-right:#63c489;--iso-wall-top:#fff4de;--iso-wall-left:#e5cfa3;--iso-wall-right:#f3e3bc;--iso-roof-top:#f5a897;--iso-roof-left:#ce7566;--iso-roof-right:#e28f7d;--iso-tank-top:#f9fbfc;--iso-tank-left:#c4d3db;--iso-tank-right:#dbe5eb;--iso-steel-top:#dee8ee;--iso-steel-left:#93a7b3;--iso-steel-right:#aec0c9;--iso-barrel-top:#cbdbe3;--iso-barrel-left:#7f97a4;--iso-barrel-right:#9ab1bc;--iso-pool-top:#a9ebf7;--iso-pool-left:#48b6ce;--iso-pool-right:#6accdf;--iso-umbrella-top:#ffd79b;--iso-umbrella-left:#e8a85a;--iso-umbrella-right:#f5be74;--iso-deck-top:#fff8f0;--iso-deck-left:#ded0bf;--iso-deck-right:#efe3d6;--iso-box-top:#e1eae6;--iso-box-left:#9fb0aa;--iso-box-right:#bcc9c4;--iso-petal-a-top:#ffd2de;--iso-petal-a-left:#e79cb2;--iso-petal-a-right:#f3b6c6;--iso-petal-b-top:#ffe2ca;--iso-petal-b-left:#e7b192;--iso-petal-b-right:#f3c5aa;--iso-petal-c-top:#e9d6ff;--iso-petal-c-left:#c3a9e1;--iso-petal-c-right:#d5bded;--iso-pipe-idle:#9fb0ba;--iso-pipe-live:#4ec3e0;--iso-pipe-casing:#1024191a;--iso-water-top:#bff2ff;--iso-water-bot:#4aa8c8}[data-theme=dark]{--iso-sky-top:#11303c;--iso-sky-mid:#102a26;--iso-sky-bot:#0e2420;--iso-glow:#60c8ce42;--iso-cloud:#b4d8e217;--iso-grid:#d6ffeb1a;--iso-edge:#0000003d;--iso-ao:#00000057;--iso-ground-top:#2c6349;--iso-ground-left:#143d2b;--iso-ground-right:#1f4f38;--iso-path-top:#616d66;--iso-path-left:#333c37;--iso-path-right:#49544d;--iso-lawn-top:#3d8558;--iso-lawn-left:#1f5138;--iso-lawn-right:#2c6a47;--iso-flower-top:#8f6079;--iso-flower-left:#573a4a;--iso-flower-right:#714c60;--iso-drip-top:#746041;--iso-drip-left:#3f3427;--iso-drip-right:#574834;--iso-leaf-top:#3f8a5e;--iso-leaf-left:#1f5238;--iso-leaf-right:#2e6b48;--iso-leaf-hi-top:#4f9f6d;--iso-leaf-hi-left:#275e42;--iso-leaf-hi-right:#367a54;--iso-trunk-top:#6f5439;--iso-trunk-left:#3c2e20;--iso-trunk-right:#53402c;--iso-palm-top:#359c68;--iso-palm-left:#1b5b3e;--iso-palm-right:#267a52;--iso-wall-top:#cdb98f;--iso-wall-left:#6e6249;--iso-wall-right:#9c8d6b;--iso-roof-top:#b46255;--iso-roof-left:#63332c;--iso-roof-right:#8a4a40;--iso-tank-top:#dae5eb;--iso-tank-left:#7d8e99;--iso-tank-right:#a9b9c2;--iso-steel-top:#a0b1bb;--iso-steel-left:#55636b;--iso-steel-right:#77868f;--iso-barrel-top:#91a7b2;--iso-barrel-left:#4a5860;--iso-barrel-right:#6b7c85;--iso-pool-top:#4fb6ce;--iso-pool-left:#1e5e70;--iso-pool-right:#327d93;--iso-umbrella-top:#dda75e;--iso-umbrella-left:#7a5a2e;--iso-umbrella-right:#a87c42;--iso-deck-top:#dccfc0;--iso-deck-left:#6e655a;--iso-deck-right:#a0968a;--iso-box-top:#bcc9c3;--iso-box-left:#5c6a64;--iso-box-right:#8a9a93;--iso-petal-a-top:#e69cb2;--iso-petal-a-left:#7e4a5c;--iso-petal-a-right:#b06e82;--iso-petal-b-top:#e6b694;--iso-petal-b-left:#7e5a42;--iso-petal-b-right:#b08468;--iso-petal-c-top:#c7abe3;--iso-petal-c-left:#5e4a7e;--iso-petal-c-right:#8e74b0;--iso-pipe-idle:#6c7f89;--iso-pipe-live:#4ec3e0;--iso-pipe-casing:#0000004d;--iso-water-top:#8fdcf0;--iso-water-bot:#2a7a99}.dash-app{width:100%}@media (width>=901px){html,body,#root{height:100%;max-height:100dvh;overflow:hidden}.dash-app{box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;padding:.35rem .45rem .4rem;display:flex;overflow:hidden}.dash-app .topbar{flex-shrink:0;margin-bottom:.35rem}.dash-app .brand-block h1{font-size:clamp(1.75rem,2.6vw,2.35rem)}.dash-app .brand-block p{display:none}.dash-app .brand-logo{width:44px;height:44px}.dash-hero{flex:1;grid-template-columns:minmax(0,1fr) minmax(320px,380px);gap:.4rem;min-height:0;margin-bottom:0}.desktop-deck-extra{display:none!important}.iso-wrap{flex-direction:column;gap:.22rem;height:100%;min-height:0;padding:.25rem .3rem;display:flex}.iso-hud-compact{display:none}.mobile-sim-controls{display:none!important}.iso-wrap>.flow-meter{flex-shrink:0;margin:0 0 .2rem}.iso-stage{border-radius:.75rem;flex:1;min-height:0;display:flex}.iso-svg{width:100%;height:100%;min-height:0}.iso-stage .sim-live-legend,.mobile-only-legend{display:none!important}.mini-timeline,.iso-scrub{flex-shrink:0}.dash-command{gap:.35rem;height:100%;min-height:0;padding:.5rem .55rem;overflow:hidden}.dash-command .dash-title{font-size:1.15rem}.command-actions{gap:.4rem;margin-top:0}.command-actions .btn{min-height:38px;padding:.55rem .85rem;font-size:.86rem}.dash-command .dash-title{margin-bottom:.15rem;font-size:1.05rem}.dash-command .dash-meta{font-size:.75rem}.deck-tile{min-height:52px}.sim-rail-hud{display:none}.sim-rail-lines{max-height:88px}.sim-rail-stats{grid-template-columns:repeat(auto-fit,minmax(64px,1fr))}.sim-rail-stats span{font-size:.82rem}.sim-rail .sim-control-group{gap:.3rem}.sim-rail .sim-label{margin:0}.sim-rail-actions .btn{min-height:34px;padding:.4rem .55rem;font-size:.8rem}.sim-rail-root{border-top:1px solid var(--line);flex-direction:column;flex:1;min-height:0;margin-top:.2rem;padding-top:.45rem;display:flex;overflow:hidden}.sim-rail-root .sim-rail{flex:1;min-height:0;padding-right:0;overflow:hidden}.sim-rail-live{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 88%, transparent);border-radius:.75rem;flex-direction:column;flex:1;min-height:0;margin-top:.35rem;padding:.45rem .5rem;display:flex;overflow:auto}.sim-rail-live .sim-live-row{margin-bottom:.35rem}.sim-rail-live .chip{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 88%, transparent);color:var(--ink);border-radius:999px;align-items:center;padding:.14rem .42rem;font-size:.68rem;font-weight:700;display:inline-flex}.sim-rail-live .chip.lawn{background:color-mix(in srgb, #3daa63 28%, var(--surface-solid));border-color:color-mix(in srgb, #3daa63 45%, var(--line))}.sim-rail-live .chip.flower{background:color-mix(in srgb, #c47890 28%, var(--surface-solid));border-color:color-mix(in srgb, #c47890 45%, var(--line))}.sim-rail-live .chip.drip{background:color-mix(in srgb, var(--water) 28%, var(--surface-solid));border-color:color-mix(in srgb, var(--water) 45%, var(--line))}.sim-rail-live .chip.box{font-family:ui-monospace,Menlo,monospace;font-size:.64rem}.sim-rail-live .chip.zone{opacity:.9}.sim-rail-live .sim-live-chips,.sim-rail-live .sim-live-boxes{flex-wrap:wrap;gap:.28rem;margin-top:.28rem;display:flex}.sim-rail-live .sim-live-idle{color:var(--muted);font-size:.78rem}.dash-command .dash-meta{flex-shrink:0;margin:.15rem 0 0}}.dash-hero{animation:rise .75s var(--ease) both;grid-template-columns:minmax(0,1fr) minmax(300px,360px);align-items:stretch;gap:.65rem;margin-bottom:1.15rem;display:grid}.dash-hero-copy{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));flex-direction:column;justify-content:flex-start;gap:.65rem;padding:1.15rem;display:flex}.dash-command .dash-title{margin:0;font-size:clamp(1.2rem,2vw,1.45rem)}.dash-command .lead{margin:0;font-size:.86rem;line-height:1.35}.command-actions{flex-direction:column;align-items:stretch;gap:.5rem;margin-top:.35rem}.command-actions .btn{text-align:center;justify-content:center;width:100%}.command-deck-grid{grid-template-columns:1fr 1fr;gap:.4rem;margin:0;display:grid}.deck-tile{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 88%, transparent);min-height:58px;color:var(--ink);font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:.9rem;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.45rem .35rem;display:flex}.deck-tile span{font-size:1.05rem;line-height:1}.deck-tile em{letter-spacing:.01em;color:var(--muted);font-size:.68rem;font-style:normal;font-weight:700}.deck-tile:hover:not(:disabled){border-color:color-mix(in srgb, var(--brand) 45%, var(--line));transform:translateY(-1px)}.deck-tile:disabled{opacity:.4;cursor:not-allowed}.deck-tile-primary{background:linear-gradient(165deg, color-mix(in srgb, var(--brand) 82%, white), var(--brand));color:#fff;box-shadow:0 6px 14px color-mix(in srgb, var(--brand) 28%, transparent);border-color:#0000}.deck-tile-primary em{color:#ffffffeb}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sim-timeline-row{grid-template-columns:1fr auto;align-items:center;gap:.45rem;display:grid}.sim-timeline-row .iso-scrub{width:100%;margin:0}.sim-speed-select select{appearance:none;border:1px solid var(--line-strong);background-color:var(--surface-solid);color:var(--ink);font:inherit;cursor:pointer;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;border-radius:999px;min-width:3.6rem;min-height:34px;padding:.3rem 1.4rem .3rem .55rem;font-size:.78rem;font-weight:700}.dash-title{color:var(--ink);margin:0 0 .4rem;font-size:clamp(1.55rem,2.8vw,2.15rem)}.dash-meta{color:var(--muted);margin:.85rem 0 0;font-size:.9rem;line-height:1.4}.glass-fallback{isolation:isolate;background:linear-gradient(145deg, #ffffff38, #ffffff0d), color-mix(in srgb, var(--surface) 70%, transparent);border:1px solid color-mix(in srgb, white 28%, var(--line));box-shadow:var(--shadow), inset 0 1px 0 #ffffff59, inset 0 -1px 0 #0000000f;-webkit-backdrop-filter:blur(18px)saturate(1.35);position:relative}[data-theme=dark] .glass-fallback{background:linear-gradient(145deg, #ffffff14, #ffffff05), color-mix(in srgb, var(--surface) 78%, transparent);border-color:color-mix(in srgb, white 14%, var(--line));box-shadow:var(--shadow), inset 0 1px 0 #ffffff1f}.glass-solid,.recent-panel,.flow-hover,.flow-inspect{background:var(--surface-solid)!important;-webkit-backdrop-filter:none!important;border:1px solid var(--line-strong)!important;box-shadow:var(--shadow-lift)!important}[data-theme=dark] .glass-solid,[data-theme=dark] .recent-panel,[data-theme=dark] .flow-hover,[data-theme=dark] .flow-inspect{background:color-mix(in srgb, var(--surface-solid) 96%, black)!important}.glass-panel{border-radius:var(--radius-xl)}.glass-pill,.glass-button{border-radius:999px;align-items:center;display:inline-flex}.glass-dock{border-radius:1.35rem}.iso-glass,.command-glass{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.iso-glass .iso-wrap,.command-glass .dash-command{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;height:100%}.seg-glass{display:inline-flex}.seg-glass .seg{background:0 0;border:0}.recent-wrap{z-index:30;position:relative}.recent-trigger{border:1px solid var(--line);background:var(--surface-solid);color:var(--ink);cursor:pointer;border-radius:999px;place-items:center;width:2.35rem;height:2.35rem;font-size:1rem;display:grid;position:relative}.recent-trigger.active{border-color:var(--brand);box-shadow:0 0 0 2px color-mix(in srgb, var(--brand) 25%, transparent)}.recent-trigger em{background:var(--brand);color:#fff;border-radius:999px;place-items:center;min-width:1rem;height:1rem;padding:0 .2rem;font-size:.62rem;font-style:normal;font-weight:700;display:grid;position:absolute;top:2px;right:2px}.recent-panel-portal{z-index:10000;color:#102018;width:min(360px,100vw - 1.5rem);animation:popIn .18s var(--ease) both;background:#f7fbf8;border:1px solid #c5d6cc;border-radius:1rem;padding:.9rem .95rem;position:fixed;box-shadow:0 18px 40px #08181047}[data-theme=dark] .recent-panel-portal{color:#e8f2ec;background:#12241a;border-color:#2a4638;box-shadow:0 18px 40px #0000008c}.recent-panel-portal .recent-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.45rem;display:flex}.recent-panel-portal .recent-head strong{font-family:Fraunces,Georgia,serif;font-size:1.05rem}.recent-panel-portal .recent-current{opacity:.75;word-break:break-all;margin:0 0 .55rem;font-size:.78rem}.recent-panel-portal .recent-current code{opacity:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.74rem}.recent-panel-portal .recent-empty{opacity:.8;margin:0;font-size:.88rem;line-height:1.45}.recent-panel-portal .recent-list{gap:.25rem;max-height:280px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.recent-panel-portal .recent-list li{align-items:stretch;gap:.3rem;display:flex}.recent-panel-portal .recent-list .recent-open{text-align:left;cursor:pointer;min-width:0;color:inherit;background:#fff;border:1px solid #d5e4db;border-radius:.85rem;flex:1;gap:.15rem;padding:.55rem .65rem;display:grid}.recent-panel-portal .recent-list .recent-copy{cursor:pointer;width:2.35rem;color:inherit;opacity:.72;background:#fff;border:1px solid #d5e4db;border-radius:.85rem;flex:none;place-items:center;display:grid}[data-theme=dark] .recent-panel-portal .recent-list .recent-open,[data-theme=dark] .recent-panel-portal .recent-list .recent-copy{background:#1a3226;border-color:#2f4d3e}.recent-panel-portal .recent-list .recent-open:hover,.recent-panel-portal .recent-list .recent-copy:hover{border-color:var(--brand);opacity:1}.recent-panel-portal .recent-list .recent-copy.done{color:var(--brand);opacity:1}.recent-panel-portal .recent-list strong{font-size:.86rem;font-weight:650}.recent-panel-portal .recent-list .recent-open span{opacity:.7;font-size:.72rem}.kpi-row{animation:rise .85s var(--ease) both;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-bottom:1.05rem;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));transition:transform .25s var(--ease), box-shadow .25s var(--ease);padding:1.05rem 1.1rem}.kpi:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px)}.kpi span{color:var(--muted);letter-spacing:.02em;text-transform:uppercase;font-size:.8rem;font-weight:650}.kpi strong{letter-spacing:-.03em;color:var(--water-deep);margin-top:.35rem;font-family:Fraunces,Georgia,serif;font-size:1.55rem;display:block}[data-theme=dark] .kpi strong{color:var(--water)}.kpi em{color:var(--muted);margin-top:.25rem;font-size:.82rem;font-style:normal;font-weight:500;display:block}.dash-grid{animation:rise .95s var(--ease) both;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;display:grid}.dash-tile{text-align:left;border:1px solid var(--line);border-radius:var(--radius-lg);cursor:pointer;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));transition:transform .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease);align-items:flex-start;gap:.9rem;padding:1.1rem;display:flex;position:relative}.dash-tile:hover{border-color:color-mix(in srgb, var(--water) 40%, var(--line));box-shadow:var(--shadow-lift);transform:translateY(-4px)}.dash-tile-icon{background:color-mix(in srgb, var(--water) 16%, transparent);width:2.55rem;height:2.55rem;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--water) 12%, transparent);border-radius:.9rem;flex-shrink:0;place-items:center;font-size:1.1rem;display:grid}.accent-brand .dash-tile-icon{background:color-mix(in srgb, var(--brand) 18%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 14%, transparent)}.accent-accent .dash-tile-icon{background:color-mix(in srgb, var(--accent) 24%, transparent)}.accent-lawn .dash-tile-icon{background:color-mix(in srgb, var(--lawn) 22%, transparent)}.dash-tile-copy{gap:.28rem;min-width:0;display:grid}.dash-tile-copy strong{letter-spacing:-.025em;font-family:Fraunces,Georgia,serif;font-size:1.18rem}.dash-tile-copy span{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.86rem;line-height:1.35;display:-webkit-box;overflow:hidden}.dash-badge{background:var(--brand);color:#fff;min-width:1.55rem;height:1.55rem;box-shadow:0 6px 14px color-mix(in srgb, var(--brand) 30%, transparent);border-radius:999px;place-items:center;padding:0 .42rem;font-size:.75rem;font-weight:700;display:grid;position:absolute;top:.75rem;right:.75rem}.iso-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-xl);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(var(--blur));min-width:0;padding:1rem 1.05rem 1.1rem}.iso-hud{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.2rem;margin-bottom:.55rem;padding:.1rem .25rem .25rem;display:flex}.iso-hud strong{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;font-size:.7rem;font-weight:700;display:block}.iso-hud span{letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-size:1.1rem}.iso-hud-em{color:var(--muted);font-size:.78rem;font-style:normal;font-weight:600;display:block}.iso-hud-actions{gap:.45rem;display:flex}.sim-controls{border-radius:var(--radius-md);border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 72%, transparent);flex-wrap:wrap;align-items:flex-end;gap:.65rem 1rem;margin:0 0 .65rem;padding:.65rem .75rem;display:flex}.sim-control-group{flex-wrap:wrap;align-items:center;gap:.4rem .55rem;display:flex}.sim-label{letter-spacing:.04em;text-transform:uppercase;width:100%;color:var(--muted);font-size:.68rem;font-weight:700}.sim-seg button{min-height:32px;padding:.38rem .65rem;font-size:.78rem}.sim-valve{min-height:34px;box-shadow:none;padding:.42rem .85rem;font-size:.82rem}.sim-check{color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;font-size:.8rem;display:inline-flex}.sim-check input{accent-color:var(--brand)}.sim-rail{flex-direction:column;flex:1;gap:.55rem;min-height:0;display:flex}.sim-rail-hud{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.sim-rail-hud>div:last-child{grid-column:1/-1}.sim-rail-hud strong{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.62rem;font-weight:700;display:block}.sim-rail-hud span{letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-size:.98rem}.sim-rail-hud em{color:var(--muted);margin-left:.35rem;font-size:.78rem;font-style:normal;font-weight:600;display:inline}.sim-rail-hud span.over{color:var(--danger)}.sim-rail-actions{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.sim-rail-actions .btn{width:100%;min-height:36px;padding:.5rem .65rem;font-size:.84rem}.sim-seg-stack{flex-wrap:wrap;width:100%;display:flex}.sim-seg-stack button{flex:auto;padding:.35rem .45rem;font-size:.72rem}.sim-rail .sim-valve{width:100%}.sim-speed-group{border-top:1px solid var(--line);flex-direction:column;align-items:stretch;gap:.35rem;width:100%;margin-top:.15rem;padding-top:.45rem}.sim-speed-group .sim-label{width:auto}.sim-speed-seg{background:color-mix(in srgb, var(--surface-solid) 88%, transparent);border:1px solid var(--line);border-radius:999px;grid-template-columns:repeat(5,minmax(0,1fr));gap:.25rem;width:100%;padding:.2rem;display:grid!important}.sim-speed-seg button{border-radius:999px;min-width:0;min-height:30px;padding:.35rem .15rem;font-size:.72rem}.sim-rail-stats{grid-template-columns:repeat(auto-fit,minmax(72px,1fr));gap:.35rem;display:grid}.sim-rail-stats div{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 80%, transparent);border-radius:.65rem;padding:.4rem .45rem}.sim-rail-stats strong{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.58rem;display:block}.sim-rail-stats span{font-family:Fraunces,Georgia,serif;font-size:.92rem}.sim-rail-lines{min-height:0;font-size:.78rem;overflow:auto}.sim-rail-lines strong{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25rem;font-size:.72rem;display:block}.sim-rail-lines ul{gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.sim-rail-lines li{border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent);justify-content:space-between;gap:.35rem;padding:.2rem 0;display:flex}.sim-rail-idle{color:var(--muted);margin:0;font-size:.78rem;line-height:1.35}.sim-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:.65rem 0 .55rem;display:grid}.sim-stats div{border-radius:var(--radius-sm);border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 85%, transparent);padding:.55rem .65rem}.sim-stats strong{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.68rem;font-weight:700;display:block}.sim-stats span{letter-spacing:-.02em;font-family:Fraunces,Georgia,serif;font-size:1rem}.iso-stage{border-radius:var(--radius-md);box-shadow:inset 0 0 0 1px var(--line);background:radial-gradient(120% 58% at 50% 26%, var(--iso-glow), transparent 64%), linear-gradient(180deg, var(--iso-sky-top) 0%, var(--iso-sky-mid) 46%, var(--iso-sky-bot) 100%);position:relative;overflow:hidden}.iso-stage-pan{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.iso-stage-pan:active{cursor:grabbing}.iso-viewport{transform-origin:50%;will-change:transform;width:100%;height:100%;min-height:0;display:flex}.iso-viewport .iso-svg{pointer-events:none;flex:1;width:100%;height:100%;min-height:0}.iso-reset-view{z-index:5;border:1px solid var(--line-strong);color:var(--ink);background:color-mix(in srgb, var(--surface-solid) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:.28rem .65rem;font-size:.68rem;font-weight:700;position:absolute;bottom:.45rem;right:.45rem;box-shadow:0 4px 14px #00000029}.iso-pan-hint{z-index:4;letter-spacing:.01em;max-width:calc(100% - 1rem);color:var(--muted);background:color-mix(in srgb, var(--surface-solid) 78%, transparent);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;opacity:.85;border-radius:999px;padding:.22rem .55rem;font-size:.62rem;font-weight:600;position:absolute;bottom:.4rem;left:50%;overflow:hidden;transform:translate(-50%)}.iso-stage-interactive{cursor:pointer}.iso-stage-interactive:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.iso-play-hint{z-index:4;pointer-events:none;background:radial-gradient(38% 46%,#0003,#0000 70%);place-items:center;display:grid;position:absolute;inset:0}.iso-play-hint span{color:#fff;background:color-mix(in srgb, var(--brand) 88%, black);opacity:.92;border-radius:999px;place-items:center;width:4rem;height:4rem;padding-left:.2rem;font-size:1.55rem;display:grid;box-shadow:0 10px 28px #00000059}.iso-svg{width:100%;height:auto;min-height:280px;display:block}.iso-ao{fill:var(--iso-ao);pointer-events:none}.iso-grid-line{stroke:var(--iso-grid);stroke-width:1px;vector-effect:non-scaling-stroke}.iso-solids path,.iso-plate path,.iso-path path{stroke:var(--iso-edge);stroke-width:.4px;vector-effect:non-scaling-stroke}.iso-pipe-casing{stroke:var(--iso-pipe-casing)}.iso-pipe{stroke:var(--iso-pipe-idle);stroke-dasharray:9 7;transition:stroke .3s}.iso-pipe.flow{stroke:var(--iso-pipe-live);animation:.85s linear infinite pipeFlow}.iso-pipe.armed{stroke:color-mix(in srgb, var(--iso-pipe-live) 55%, var(--iso-pipe-idle));stroke-dasharray:5 6;opacity:.95}.iso-pipe-well.armed,.iso-pipe-well.flow{stroke:#4ec3e0}.iso-pipe-muni.armed{stroke:#e0a86a}.iso-pipe-muni.flow{stroke:#e8b87a;animation:.85s linear infinite pipeFlow}.iso-pipe-fill.armed{stroke:#7dcea0}.iso-pipe-fill.flow{stroke:#5ecf8a;animation:.85s linear infinite pipeFlow}.iso-well-led{fill:#5ec4e0;opacity:.85}.iso-pipe.thin{stroke-dasharray:4 5}.iso-well-ring{fill:var(--iso-steel-right);stroke:var(--iso-edge);stroke-width:1px}.iso-well-hole{fill:var(--iso-water-bot);opacity:.85}.iso-threeway-knob{fill:var(--iso-steel-top);stroke:var(--iso-edge);stroke-width:1px}.iso-threeway-led{fill:#a8b8b0}.iso-threeway-led.live{fill:#3ecf8a;animation:1.4s ease-out infinite spray}.iso-fill-src-well .iso-threeway-led{fill:#5ec4e0}.iso-fill-src-municipal .iso-threeway-led{fill:#e8a85a}.iso-fill-src-auto .iso-threeway-led{fill:#3ecf8a}.iso-lamp{fill:var(--iso-umbrella-top);opacity:.75}.iso-pool-shimmer{fill:var(--iso-water-top);opacity:.45;animation:6s ease-in-out infinite floaty}.iso-gauge{stroke:var(--iso-steel-left);stroke-width:1.4px;opacity:.6}.iso-window{fill:var(--iso-water-bot);opacity:.55}.iso-panel{fill:var(--iso-steel-left)}.iso-panel-led{fill:#3ecf8a;animation:1.8s ease-out infinite spray}.iso-downpipe{stroke:var(--iso-steel-right);stroke-width:3.5px;stroke-linecap:round}.iso-valvebox-lid{fill:var(--iso-steel-top);opacity:.8}.iso-barrel-water{fill:var(--iso-water-top);opacity:.8}.iso-water{transition:transform .3s linear}.iso-water-surface{fill:var(--iso-water-top)}.iso-bubble{fill:var(--iso-water-top);opacity:.65}.iso-cloud{fill:var(--iso-cloud)}.iso-emitter{fill:var(--iso-steel-left);opacity:.6}.iso-emitter.on{fill:var(--iso-pipe-live);opacity:1;animation:1.4s ease-in-out infinite dripPulse}.iso-spray-arc{stroke:var(--iso-water-top);stroke-width:1.6px;stroke-linecap:round;opacity:.75;animation:1.3s ease-out infinite spray}.iso-label{fill:var(--ink);opacity:.88;font-family:Figtree,sans-serif;font-size:13px;font-weight:700}.iso-label-sm{fill:var(--ink);opacity:.72;font-family:Figtree,sans-serif;font-size:9px}.iso-plot{opacity:.78;transition:opacity .35s}.iso-plot.on{opacity:1}.iso-chip-body{fill:color-mix(in srgb, var(--surface-solid) 90%, white);stroke:color-mix(in srgb, var(--line-strong) 70%, transparent);stroke-width:1px}[data-theme=dark] .iso-chip-body{fill:color-mix(in srgb, var(--surface-solid) 92%, black);stroke:#ffffff29}.iso-chip-text{fill:var(--ink);letter-spacing:.02em;font-family:Figtree,system-ui,sans-serif;font-size:9px;font-weight:700}.iso-chip-led{fill:#a8b8b0}.iso-leader{stroke:var(--line-strong);stroke-width:1px;stroke-dasharray:3 3;opacity:.5;fill:none}.iso-leader-dot{fill:var(--line-strong);opacity:.7}.iso-callout.live .iso-chip-led,.iso-chip-led.live{fill:#3ecf8a;animation:1.4s ease-out infinite spray}.iso-callout.live .iso-leader{opacity:.85;stroke-dasharray:none}.iso-callout-lawn.live .iso-chip-led{fill:#4cbc6e}.iso-callout-flower.live .iso-chip-led{fill:#e88ab0}.iso-callout-drip.live .iso-chip-led{fill:#5ec4e0}.iso-wifi path,.iso-wifi circle{stroke:var(--iso-pipe-live);fill:none;opacity:.4}.iso-callout.live .iso-wifi path{opacity:.9;animation:2.2s linear infinite pipeFlow}.iso-valve-knob{fill:#8fdfff;stroke:#eefcff;stroke-width:1px;animation:1.2s ease-out infinite spray}.iso-valve-lawn .iso-valve-knob{fill:#7ce39c}.iso-valve-flower .iso-valve-knob{fill:#ffb4cd}.iso-valve-label{fill:#0a1a12;paint-order:stroke;stroke:#ffffffd9;stroke-width:3px;font-family:Figtree,system-ui,sans-serif;font-size:9px;font-weight:800}[data-theme=dark] .iso-valve-label{fill:#f2fff8;stroke:#081410bf}.iso-spray{fill:var(--iso-water-top);animation:1.1s ease-out infinite spray}.iso-palm,.iso-umbrella{transform-box:fill-box;transform-origin:bottom}.iso-scrub{width:100%;accent-color:var(--water);margin-top:.55rem}.flow-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:.65rem;margin:.85rem 0 1rem;display:grid}.flow-cap-note{color:var(--muted);font-size:.75rem;font-style:normal;font-weight:500}.subhead{margin:1.1rem 0 .25rem;font-size:1.1rem}.tiny-lead{color:var(--muted);margin:0 0 .65rem;font-size:.88rem}.flow-profile{border-radius:var(--radius-md);border:1px solid var(--line);background:linear-gradient(180deg, color-mix(in srgb, var(--water) 6%, transparent), transparent 55%), var(--surface-solid);height:160px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff59}.flow-profile-bar.hot{outline:2px solid var(--accent);outline-offset:-1px;z-index:2}.flow-inspect{border-radius:var(--radius-md);max-height:min(42vh,320px);margin-top:.55rem;padding:.7rem .8rem;overflow:auto}.flow-inspect header{background:inherit;border-bottom:1px solid var(--line);z-index:1;flex-wrap:wrap;justify-content:space-between;gap:.75rem;margin-bottom:.45rem;padding-bottom:.35rem;display:flex;position:sticky;top:0}.flow-inspect ul{gap:.28rem;margin:0;padding:0;list-style:none;display:grid}.flow-inspect li{border-bottom:1px solid color-mix(in srgb, var(--line) 65%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:.5rem .85rem;padding:.28rem 0;font-size:.86rem;display:grid}.flow-inspect-meta{color:var(--muted);white-space:nowrap;font-size:.8rem}.flow-inspect footer{color:var(--muted);margin-top:.45rem;font-size:.8rem}.flow-inspect-hint{color:var(--muted);text-align:center;font-size:.86rem}.flow-hover{display:none}.group-dur{color:var(--muted);font-size:.85em;font-style:normal;font-weight:500}.group-card li strong small{color:var(--muted);font-family:Figtree,system-ui,sans-serif;font-size:.78em;font-weight:500}.program-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;margin:.35rem 0 .65rem;display:flex}.program-table-wrap{border-radius:var(--radius-md);border:1px solid var(--line);max-height:min(55vh,480px);overflow:auto}.program-table{border-collapse:collapse;width:100%;min-width:640px;font-size:.86rem}.program-table th,.program-table td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.45rem .55rem}.program-table th{background:var(--surface-solid);z-index:1;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.72rem;position:sticky;top:0}.program-table tbody tr:hover td{background:color-mix(in srgb, var(--brand) 8%, transparent)}.program-table .num{font-variant-numeric:tabular-nums;text-align:right}.flow-profile-cap{border-top:1px dashed color-mix(in srgb, var(--danger) 55%, var(--line));z-index:1;pointer-events:none;position:absolute;top:8%;left:0;right:0}.flow-profile-bar{background:color-mix(in srgb, var(--water) 55%, transparent);border-radius:.25rem .25rem 0 0;min-width:2px;position:absolute;bottom:0}.flow-profile-bar.multi{background:linear-gradient(180deg, var(--brand-soft), var(--water))}.flow-profile-bar.single{opacity:.75}.flow-profile-bar.over{background:linear-gradient(180deg, var(--danger), #e09a3a)}.flow-profile-scale{color:var(--muted);justify-content:space-between;gap:.5rem;margin-top:.35rem;font-size:.78rem;display:flex}.group-list{gap:.65rem;max-height:360px;padding-right:.15rem;display:grid;overflow:auto}.group-card{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface-solid) 88%, transparent);transition:border-color .2s var(--ease), box-shadow .2s var(--ease);padding:.85rem .95rem}.group-card.is-multi{border-color:color-mix(in srgb, var(--water) 42%, var(--line));box-shadow:inset 3px 0 0 var(--water), var(--shadow);background:color-mix(in srgb, var(--water) 5%, var(--surface-solid))}.group-card header{flex-wrap:wrap;justify-content:space-between;gap:.35rem .75rem;display:flex}.group-flow b{color:var(--water-deep)}[data-theme=dark] .group-flow b{color:var(--water)}.group-meta{color:var(--muted);margin:.25rem 0 .45rem;font-size:.82rem}.group-card ul{gap:.25rem;margin:0;padding:0;list-style:none;display:grid}.group-card li{border-top:1px solid color-mix(in srgb, var(--line) 70%, transparent);justify-content:space-between;gap:.75rem;padding:.25rem 0;font-size:.88rem;display:flex}.group-card footer{color:var(--muted);margin-top:.45rem;font-size:.85rem}.iso-flow-live span{font-family:Fraunces,Georgia,serif;font-size:1.25rem}.iso-flow-live span.over{color:var(--danger)}.iso-flow-live em{color:var(--muted);font-size:.78rem;font-style:normal;display:block}.iso-flow-live small{font-family:Figtree,sans-serif;font-size:.75rem;font-weight:600}.flow-meter{margin:.35rem 0 .65rem}.flow-meter-track{background:color-mix(in srgb, var(--line) 80%, transparent);border-radius:999px;height:12px;position:relative;overflow:hidden}.flow-meter-fill{border-radius:inherit;background:linear-gradient(90deg, var(--water), var(--brand-soft));height:100%;transition:width .15s linear}.flow-meter-fill.over{background:linear-gradient(90deg, var(--danger), #e09a3a)}.flow-meter-cap{background:color-mix(in srgb, var(--ink) 35%, transparent);width:2px;position:absolute;top:0;bottom:0;right:0}.flow-meter-labels{color:var(--muted);justify-content:space-between;margin-top:.25rem;font-size:.75rem;display:flex}.live-lines{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface-solid) 90%, transparent);margin-top:.8rem;padding:.8rem .9rem;box-shadow:inset 0 1px #ffffff47}.live-lines-head{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.45rem;display:flex}.live-lines-head span{color:var(--muted);font-size:.85rem}.live-empty{color:var(--muted);margin:0;font-size:.88rem}.live-lines ul{gap:.3rem;max-height:140px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.live-lines li{border-top:1px solid color-mix(in srgb, var(--line) 65%, transparent);justify-content:space-between;gap:.75rem;padding:.3rem 0;font-size:.88rem;display:flex}.live-lines li small{color:var(--muted)}.live-sum{color:var(--muted);margin:.5rem 0 0;font-size:.85rem}.mini-timeline{background:color-mix(in srgb, var(--line) 70%, transparent);border-radius:999px;height:18px;margin-top:0;position:relative;overflow:hidden}.sim-timeline-block{flex-direction:column;gap:.28rem;margin-top:.25rem;display:flex}.sim-timeline-scale{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;font-size:.72rem;display:flex}.sim-timeline-scale span:nth-child(2){color:var(--ink);font-weight:700}.iso-stage{position:relative}.sim-live-legend{z-index:3;background:color-mix(in srgb, var(--surface-solid) 92%, transparent);border:1px solid var(--line-strong);max-width:min(280px,52%);box-shadow:var(--shadow);pointer-events:none;border-radius:.75rem;padding:.45rem .55rem;font-size:.72rem;position:absolute;top:.55rem;left:.55rem}.sim-live-row{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.3rem;display:flex}.sim-live-row em{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.62rem;font-style:normal;font-weight:700}.sim-live-row strong{font-size:.78rem}.sim-live-idle{color:var(--muted)}.sim-live-chips,.sim-live-boxes{flex-wrap:wrap;gap:.25rem;margin-top:.25rem;display:flex}.sim-live-legend .chip{border:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 88%, transparent);color:var(--ink);border-radius:999px;align-items:center;padding:.12rem .4rem;font-size:.66rem;font-weight:700;display:inline-flex}.sim-live-legend .chip.lawn{background:color-mix(in srgb, #3daa63 28%, var(--surface-solid));border-color:color-mix(in srgb, #3daa63 45%, var(--line))}.sim-live-legend .chip.flower{background:color-mix(in srgb, #c47890 28%, var(--surface-solid));border-color:color-mix(in srgb, #c47890 45%, var(--line))}.sim-live-legend .chip.drip{background:color-mix(in srgb, var(--water) 28%, var(--surface-solid));border-color:color-mix(in srgb, var(--water) 45%, var(--line))}.sim-live-legend .chip.box{background:color-mix(in srgb, var(--brand) 18%, var(--surface-solid));border-color:color-mix(in srgb, var(--brand) 40%, var(--line));font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sim-live-legend .chip.zone{opacity:.9}.mini-seg{cursor:pointer;background:color-mix(in srgb, var(--water) 55%, transparent);border:0;border-radius:999px;padding:0;position:absolute;top:3px;bottom:3px}.mini-seg.multi{background:linear-gradient(90deg, var(--brand), var(--water))}.mini-seg.now{outline:2px solid var(--accent);z-index:1}.mini-playhead{background:var(--ink);opacity:.55;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.modal-root{z-index:40;place-items:center;padding:1.25rem;display:grid;position:fixed;inset:0}.modal-backdrop{-webkit-backdrop-filter:blur(8px);cursor:pointer;animation:fadeIn .22s var(--ease) both;background:#08120e7a;border:0;position:absolute;inset:0}.modal-sheet{background:color-mix(in srgb, var(--surface-solid) 78%, transparent);border:1px solid var(--line-strong);border-radius:var(--radius-xl);width:min(740px,100%);max-height:min(88vh,920px);box-shadow:var(--shadow-lift);-webkit-backdrop-filter:blur(22px)saturate(1.25);animation:popIn .32s var(--ease) both;position:relative;overflow:auto}.modal-sheet.wide{width:min(1000px,100%)}.modal-head{z-index:2;background:color-mix(in srgb, var(--surface-solid) 88%, transparent);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);justify-content:space-between;align-items:center;gap:1rem;padding:1.05rem 1.25rem;display:flex;position:sticky;top:0}.modal-head h2{margin:0;font-size:1.35rem}.modal-close{border:1px solid var(--line);background:var(--surface);width:2.35rem;height:2.35rem;color:var(--ink);cursor:pointer;transition:background .2s var(--ease), transform .2s var(--ease);border-radius:999px;font-size:1.35rem;line-height:1}.modal-close:hover{background:var(--surface-strong);transform:scale(1.04)}.modal-body{padding:.45rem 1rem 1.15rem}.modal-body .panel{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:.55rem .2rem 1rem;animation:none}.modal-body .panel>h2,.modal-body .panel>.lead:first-of-type{display:none}@keyframes pipeFlow{to{stroke-dashoffset:-32px}}@keyframes dripPulse{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(4px)}}@keyframes floaty{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes popIn{0%{opacity:0;transform:translateY(16px)scale(.97)}to{opacity:1;transform:none}}@media (width<=1100px) and (width>=821px){.dash-hero{grid-template-columns:1fr}.dash-grid,.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=820px){.stats,.compare,.sim,.gantt-row{grid-template-columns:1fr}}.btn-compact{box-shadow:none;margin-top:.65rem;padding:.55rem .95rem;font-size:.86rem}.stat small{color:var(--muted);margin-left:.15rem;font-family:Figtree,system-ui,sans-serif;font-size:.72rem;font-weight:600}.group-flow small{color:var(--muted);font-weight:500}.group-card li em{color:var(--muted);font-style:normal;font-weight:500}.mobile-only{display:none!important}.mobile-dock{display:none}@media (width<=820px){.desktop-only,.desktop-actions{display:none!important}.mobile-only{display:inline!important}.mobile-only.block,div.mobile-only,p.mobile-only,h3.mobile-only{display:block!important}html,body,#root{overscroll-behavior:none;height:100%;max-height:100dvh;overflow:hidden}body{background:var(--bg)}.app,.dash-app{width:100%;max-width:100%;height:100dvh;max-height:100dvh;padding:0;padding-bottom:calc(3.55rem + env(safe-area-inset-bottom,0px));box-sizing:border-box;flex-direction:column;margin:0;display:flex;overflow:hidden}.topbar{z-index:12;border:0;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--surface-solid) 94%, transparent);-webkit-backdrop-filter:blur(16px);box-shadow:none;border-radius:0;flex-direction:row;flex-shrink:0;justify-content:space-between;align-items:center;gap:.35rem;margin:0;padding:.35rem .45rem;position:relative}.toggles{box-shadow:none;background:0 0;border:0;flex-wrap:nowrap;gap:.2rem;padding:0}.toggles .seg button{min-height:30px;padding:.32rem .45rem;font-size:.72rem}.brand-logo{border-radius:10px;width:34px;height:34px}.brand-block h1{font-size:1.28rem}.brand-block p{display:none}.seg button{min-height:34px;padding:.4rem .55rem;font-size:.78rem}.dash-hero{flex-direction:column;flex:1;gap:0;min-height:0;margin:0;display:flex}.iso-glass{flex:1;order:-1;min-height:0;box-shadow:none!important;-webkit-backdrop-filter:none!important;background:0 0!important;border:0!important;border-radius:0!important}.iso-wrap{box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;border-radius:0;flex-direction:column;order:-1;gap:.15rem;height:100%;min-height:0;padding:.2rem .25rem .15rem;display:flex}.iso-wrap>.iso-hud{flex-shrink:0;order:0;gap:.25rem .45rem;margin:0;padding:.05rem .1rem}.iso-hud strong{font-size:.58rem}.iso-hud span{font-size:.95rem}.iso-wrap>.iso-stage{border-radius:.55rem;flex:auto;order:1;min-height:0;display:flex}.iso-wrap>.flow-meter{flex-shrink:0;order:2;margin:0}.iso-wrap>.sim-timeline-block{flex-shrink:0;order:3;margin:0}.iso-wrap>.mobile-sim-controls,.mobile-sim-controls{display:none!important}.iso-wrap>.live-lines,.live-lines,.iso-stage.is-compact .iso-play-hint{display:none}.iso-viewport{flex:1}.iso-svg{flex:1;width:100%;height:100%;min-height:0}.sim-live-legend.mobile-only-legend{z-index:6;pointer-events:auto;max-width:min(200px,52%);max-height:38%;padding:.3rem .4rem;font-size:.62rem;top:.35rem;left:.35rem;right:auto;overflow:auto;display:block!important}.iso-pan-hint{display:none}.iso-stage.is-compact:not(:active) .iso-pan-hint{animation:4s forwards fadeHint;display:block}@keyframes fadeHint{0%,55%{opacity:.9}to{opacity:0}}.kpi-row,.dash-grid,.desktop-deck-extra{display:none!important}.dash-command{display:none}.command-glass{display:none!important}.sim-live-legend{max-width:min(220px,58%);padding:.35rem .45rem;font-size:.66rem}.sim-live-legend .chip{padding:.1rem .32rem;font-size:.6rem}.sim-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-title{font-size:1.28rem}.mobile-dock{z-index:40;padding:.3rem .25rem calc(.3rem + env(safe-area-inset-bottom,0px));background:color-mix(in srgb, var(--surface-solid) 96%, transparent);border:0;border-top:1px solid var(--line-strong);-webkit-backdrop-filter:blur(22px)saturate(1.2);isolation:isolate;border-radius:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:.1rem;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 20px #0000002e}.mobile-dock button{color:var(--muted);min-width:0;min-height:46px;font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:.75rem;flex-direction:column;justify-content:center;align-items:center;gap:.12rem;padding:.3rem .1rem;display:flex;position:relative;overflow:hidden}.mobile-dock button span{z-index:1;font-size:1rem;line-height:1}.mobile-dock button em{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;z-index:1;max-width:100%;font-size:.62rem;font-style:normal;font-weight:700;line-height:1.1;overflow:hidden}.mobile-dock button:disabled{opacity:.35}.mobile-dock button.dock-active{color:var(--ink)}.mobile-dock button.dock-active:before{content:"";background:color-mix(in srgb, var(--brand) 18%, var(--surface-solid));border:1px solid color-mix(in srgb, var(--brand) 35%, var(--line));z-index:0;border-radius:.65rem;position:absolute;inset:3px;box-shadow:inset 0 1px #fff3}.mobile-dock .dock-primary{color:#fff;box-shadow:none;background:0 0;transform:none}.mobile-dock .dock-primary:before{content:"";background:linear-gradient(165deg, color-mix(in srgb, var(--brand) 78%, white), var(--brand));box-shadow:0 6px 14px color-mix(in srgb, var(--brand) 32%, transparent);z-index:0;border-radius:.65rem;position:absolute;inset:3px}.mobile-dock .dock-primary em,.mobile-dock .dock-primary span{color:#fff}.mobile-dock .dock-primary:disabled:before{opacity:.45}.modal-root{align-items:end;padding:0}.modal-sheet,.modal-sheet.wide{width:100%;max-height:min(93vh,100%);animation:sheetUp .3s var(--ease) both;border-radius:1.45rem 1.45rem 0 0}.modal-head{padding:.9rem 1.05rem}.modal-head h2{font-size:1.18rem}.modal-close{width:2.5rem;height:2.5rem;font-size:1.45rem}.modal-body{padding:.3rem .75rem calc(1.1rem + env(safe-area-inset-bottom,0px))}.iso-hud{grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem .4rem;margin-bottom:0;padding:0;display:grid}.iso-hud>div:not(.iso-hud-actions) span{font-size:.88rem}.iso-hud-actions{display:none}.iso-stage{border-radius:.65rem;min-height:0}.dash-meta{margin-top:.55rem;font-size:.82rem}.kpi em{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dash-tile-icon{border-radius:.75rem;width:2.15rem;height:2.15rem;font-size:.98rem}.dash-tile-copy strong{font-size:1.02rem}.dash-tile-copy span{-webkit-line-clamp:2;font-size:.76rem}.btn{min-height:44px;padding:.7rem 1.05rem}.table-wrap{-webkit-overflow-scrolling:touch;border-radius:.85rem;margin-left:-.15rem;margin-right:-.15rem}table{min-width:720px;font-size:.85rem}th,td{padding:.48rem .38rem}td input,td select{min-height:40px;font-size:16px}.sliders{grid-template-columns:1fr}.location-row{flex-direction:column}.location-row .btn{width:100%}.location-map{aspect-ratio:4/3}.location-search input{min-height:44px;font-size:16px}.gantt-row{gap:.25rem}.weather{grid-template-columns:repeat(3,minmax(0,1fr))}.flow-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.group-list{max-height:280px}.panel{border-radius:1.25rem;padding:1.05rem}.schedule-panel .lead,.schedule-panel .tiny-lead{display:none}.schedule-panel .flow-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem;margin:.35rem 0 .65rem}.schedule-panel .stat{box-shadow:none;border-radius:.85rem;padding:.65rem .55rem}.schedule-panel .stat strong{font-size:1.15rem}.schedule-panel .stat em{font-size:.72rem}.schedule-panel .subhead{margin:.7rem 0 .2rem;font-size:1rem}.schedule-panel .flow-profile{height:120px}.schedule-panel .flow-inspect{max-height:min(36vh,260px)}.schedule-panel .program-table{min-width:560px;font-size:.8rem}.schedule-panel .group-list{gap:.45rem;max-height:42vh}.schedule-panel .group-card{border-radius:.85rem;padding:.65rem .7rem}.schedule-panel .group-card li{padding:.18rem 0;font-size:.82rem}.schedule-panel .btn-compact{width:100%;margin-top:.5rem}.schedule-panel .rationale{padding:.75rem .85rem;font-size:.88rem}}@media (width<=380px){.dash-grid{grid-template-columns:1fr}.kpi-row{grid-template-columns:1fr 1fr}.mobile-dock button em{font-size:.58rem}}@keyframes sheetUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
