.plant-panel{margin-bottom:24px;background:radial-gradient(ellipse at 75% 12%,#e9f9f5 0,transparent 48%),#fff;border:1px solid #dce8e5;border-radius:18px;overflow:hidden;box-shadow:0 8px 32px #214b4510}.plant-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:25px 28px 2px}.plant-eyebrow{font-size:9px;font-weight:700;letter-spacing:2.3px;color:#36917e;margin-bottom:8px}.plant-heading h2{font-size:25px;letter-spacing:-.7px;color:#143e43}.plant-heading p{margin:7px 0;font-size:12px;color:#78908e}.plant-live{border-radius:20px;padding:8px 12px;background:#eef2f1;color:#73877f;font-size:10px;white-space:nowrap}.plant-live.connected{background:#ddf5e9;color:#197859}.plant-live.connected:before{content:'';display:inline-block;width:6px;height:6px;background:#24a76f;border-radius:50%;margin-right:6px}.plant-panel svg{display:block;width:100%;height:auto;font-family:'Segoe UI',Arial,sans-serif}.ground-line{stroke:#c7d6cd;stroke-width:3}.ground-label{font-size:13px;letter-spacing:2px;fill:#92a89b}.tank-support{stroke:#c8d8d9;stroke-width:9;fill:none}.tank-shell{fill:white;stroke:#9db7bd;stroke-width:3}.tank-threshold{fill:none;stroke:#688d96;stroke-width:1;stroke-dasharray:4 7;opacity:.5}.threshold-text{font-size:12px;fill:#4d727e}.tank-percent{font-size:39px;font-weight:700;letter-spacing:-1.6px;fill:#143e55;paint-order:stroke;stroke:#ffffff77;stroke-width:3px}.tank-reading{font-size:15px;fill:#204e62}.tank-title{font-size:21px;font-weight:650;fill:#234851}.sensor-label{font-size:15px;fill:#547482}.sensor-unit{fill:#2a4856;stroke:#91acb4;stroke-width:2}.sensor-led{fill:#b8c5c9}.is-live .sensor-led{fill:#16a680}.sensor-beam{fill:none;stroke:#62b9c1;stroke-width:1.5;stroke-dasharray:5 8;opacity:0}.is-live .sensor-beam{opacity:.55;animation:sonar-pulse 2s ease-in-out infinite}.is-stale [data-water]{filter:grayscale(.65);opacity:.6}.water-wave{fill:none;stroke:#b5f2fb;stroke-width:3}[data-water]{transition:y 1.2s ease,height 1.2s ease}.pipe-outline,.pipe-empty,.pipe-water,.pipe-dashes,.pour-stream{fill:none;stroke-linecap:round;stroke-linejoin:round}.pipe-outline{stroke:#a5b7bc;stroke-width:19}.pipe-empty{stroke:#f0f4f5;stroke-width:12}.pipe-water{stroke:#32afcf;stroke-width:11;opacity:0}.pipe-dashes{stroke:#c9f7ff;stroke-width:4;stroke-dasharray:4 17;opacity:0}.pour-stream{stroke:#3cb9db;stroke-width:8;stroke-dasharray:8 5;opacity:0}.pump-halo{fill:#e9f0ef;stroke:white;stroke-width:3}.pump-body{fill:#f7fafa;stroke:#94adae;stroke-width:3}.pump-rotor{fill:#91a8aa;transform-box:fill-box;transform-origin:center}.pump-name{font-size:17px;font-weight:600;fill:#35535b;paint-order:stroke;stroke:#ffffffcc;stroke-width:5px}.pump-status-bg{fill:white;stroke:#dce5e3}.pump-status{font-size:13px;fill:#80928e}.is-running .pump-body{fill:#dff7ec;stroke:#35a17e}.is-running .pump-halo{fill:#ddf3e8}.is-running .pump-rotor{fill:#22a384;animation:plant-spin 1.4s linear infinite}.is-running .pump-status{fill:#168366}.is-running .pipe-water,.is-running .pipe-dashes,.is-running .pour-stream{opacity:1}.is-running .pipe-dashes{animation:plant-flow 1.1s linear infinite}.is-running .pour-stream{animation:plant-flow .7s linear infinite}.source-label{font-size:13px;letter-spacing:1.5px;fill:#8a9b92}.plant-footer{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;align-items:center;padding:16px 26px;border-top:1px solid #e9eeeb;font-size:10px;color:#84968e}.plant-key{display:inline-block;width:8px;height:8px;border-radius:50%;margin:0 5px 0 14px}.plant-key:first-child{margin-left:0}.water-key{background:#37b4d0}.idle-key{background:#bccac9}@keyframes plant-flow{to{stroke-dashoffset:-42}}@keyframes plant-spin{to{transform:rotate(360deg)}}@keyframes sonar-pulse{50%{opacity:.16}}@media(max-width:700px){.plant-heading{padding:20px 17px 0;align-items:flex-start}.plant-heading h2{font-size:22px}.plant-heading p{font-size:10px}.plant-live{font-size:9px;padding:7px 8px}.plant-footer{padding:14px 17px;line-height:1.8}.tank-percent{font-size:43px}.sensor-label{font-size:18px}.tank-title{font-size:23px}.pump-name{font-size:20px}.pump-status{font-size:16px}.tank-reading{font-size:18px}.plant-panel{border-radius:13px}.plant-heading .plant-eyebrow{font-size:8px}}@media(prefers-reduced-motion:reduce){.plant-panel *{animation:none!important;transition:none!important}}

.master-plan-heading{display:flex;justify-content:space-between;gap:14px;align-items:start}.master-plan-heading h2{margin:0 0 8px}.master-plan-heading p,.master-plan-legend{font-size:12px;color:#617b7c;line-height:1.6}.master-plan-zoom{display:flex;gap:6px}.master-plan-zoom button{min-width:40px;min-height:40px}.master-plan-viewport{max-height:460px;overflow:auto;background:#f5f9f8;border:1px solid #d6e5e1;border-radius:12px}.master-plan-viewport svg{display:block;max-width:none;height:auto}.master-plan-region rect{fill:#079c9433;stroke:#087e78;stroke-width:3;vector-effect:non-scaling-stroke}.master-plan-region.available{cursor:pointer}.master-plan-region.selected>rect:first-of-type,.master-plan-region.available:focus>rect:first-of-type{fill:#f8c44d55;stroke:#ad6a00;stroke-width:4}.master-plan-region.unavailable>rect{fill:#89949433;stroke:#899494;stroke-dasharray:5 4}.master-plan-region .master-plan-badge{fill:#096f6a;stroke:none}.master-plan-region.selected .master-plan-badge{fill:#9c6500}.master-plan-region.unavailable .master-plan-badge{fill:#687575}.master-plan-region text{font:700 23px sans-serif;fill:white;pointer-events:none}.master-plan-blocks{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.master-plan-blocks button{min-height:40px}.master-plan-blocks button.selected{background:#087f78;color:white}.master-plan-selection{font-weight:600;font-size:13px;margin-bottom:0}
