:root{color-scheme:dark;--bg: #08090b;--panel: rgba(16, 18, 22, .72);--panel-strong: rgba(10, 12, 15, .88);--line: rgba(255, 255, 255, .14);--text: #f5f6f7;--muted: rgba(245, 246, 247, .64);--quiet: rgba(245, 246, 247, .4);--gold: #f5b942;--green: #32d583;--red: #f04438;--blue: #7dd3fc}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}html{scroll-behavior:smooth}button,input,select{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,.85fr);align-items:start;background:radial-gradient(circle at 74% 16%,rgba(245,185,66,.16),transparent 22%),#07080a}.app-nav{position:fixed;top:8px;left:50%;z-index:10;display:flex;gap:4px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#08090bb8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform:translate(-50%)}.app-nav a{min-width:92px;min-height:34px;display:grid;place-items:center;border-radius:6px;color:var(--muted);font-size:.82rem;text-decoration:none}.app-nav a:hover{background:#ffffff14;color:var(--text)}.api-status-pill{position:fixed;right:14px;bottom:14px;z-index:80;min-height:30px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:#050608c2;color:var(--muted);padding:0 12px;font-size:.72rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.api-status-pill[data-state=live]{border-color:#32d58357;color:#c8ffd9}.api-status-pill[data-state=offline]{border-color:#ff5c484d;color:#ffb8b0}.hero{position:relative;min-height:100vh;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;padding:34px}.scene,.scene-filter{position:absolute;top:0;right:0;bottom:0;left:0}.scene{width:100%;height:100%;object-fit:cover;transform:scale(1.04);filter:blur(4px) saturate(.72) brightness(.72)}.scene-filter{background:radial-gradient(circle at 51% 23%,rgba(245,185,66,.32),transparent 18%),linear-gradient(180deg,#0000006b,#0000002e 40%,#000000b8),radial-gradient(circle at center,transparent 44%,rgba(0,0,0,.54))}.app-shell[data-state=idle] .scene-filter{background:radial-gradient(circle at 51% 23%,rgba(190,196,204,.16),transparent 17%),linear-gradient(180deg,#00000080,#090c0f40 40%,#000000c2),radial-gradient(circle at center,transparent 44%,rgba(0,0,0,.6))}.app-shell[data-state=freeze] .scene-filter{background:radial-gradient(circle at 51% 22%,rgba(125,211,252,.18),transparent 16%),linear-gradient(180deg,#030812b8,#060c186b 40%,#000000d1),radial-gradient(circle at center,transparent 38%,rgba(0,0,0,.68))}.app-shell[data-state=boil] .scene-filter{background:radial-gradient(circle at 51% 23%,rgba(240,68,56,.24),transparent 17%),linear-gradient(180deg,#1a0504ad,#1409054d 40%,#000c),radial-gradient(circle at center,transparent 40%,rgba(0,0,0,.64))}.topbar,.readout,.output-strip,.sun-state{position:relative;z-index:1}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.eyebrow{margin:0 0 8px;color:var(--quiet);font-size:.72rem;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.45rem,2vw,2.2rem);font-weight:500}.controller-id,.customer-link{margin:10px 0 0;color:var(--quiet);font-size:.82rem}.controller-id strong,.customer-link strong{color:var(--muted);font-weight:500}.customer-link{margin-top:6px}h2{margin-bottom:0;font-size:1.5rem;font-weight:500}h3{margin-bottom:12px;font-size:1.24rem;font-weight:500}.hero-actions{display:flex;gap:8px}.top-action{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#00000047;color:var(--muted);cursor:pointer;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);text-decoration:none}.top-action input{position:absolute;opacity:0;pointer-events:none}.top-action,.top-action span{font-size:.74rem}.sun-state{position:absolute;top:15vh;left:50%;width:190px;height:190px;transform:translate(-50%);display:grid;place-items:center;pointer-events:none}.solar-core{width:122px;height:122px;border-radius:50%;background:radial-gradient(circle at 38% 34%,#fff4bd 0 8%,#f5b942 32%,#b87418 70%,#f5b94233);box-shadow:0 0 42px #f5b942a8,0 0 110px #f5b9424d;animation:pulse 3.8s ease-in-out infinite}.app-shell[data-state=idle] .solar-core{background:radial-gradient(circle at 38% 34%,#e5e7eb 0 8%,#9299a3 40%,#424852);box-shadow:0 0 34px #e5e7eb29;animation:none}.app-shell[data-state=freeze] .solar-core{width:112px;height:112px;background:transparent;box-shadow:inset -24px 0 #d9f3ff,0 0 46px #7dd3fc42;animation:none}.app-shell[data-state=boil] .solar-core{background:radial-gradient(circle at 38% 34%,#ffe7d6 0 8%,#f04438 34%,#7f1d1d);box-shadow:0 0 44px #f044389e,0 0 120px #f0443847;animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(.96);opacity:.9}50%{transform:scale(1.04);opacity:1}}.readout{align-self:center;justify-self:center;text-align:center;margin-top:26vh}.status-pill{display:inline-flex;margin-bottom:18px;padding:8px 12px;border:1px solid rgba(245,185,66,.32);border-radius:999px;background:#00000038;color:#ffecb8e0;font-size:.78rem;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.temperature{line-height:.88}.temperature span:first-child{font-size:clamp(5.6rem,14vw,12rem);font-weight:300}.unit{margin-left:8px;color:var(--muted);font-size:clamp(1.4rem,3vw,2.4rem);vertical-align:top}.readout-label{margin-top:14px;color:var(--muted);font-size:1rem}.output-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.metric,.arc-panel,.buddy-output,.savings-panel,.chart-panel,.chemistry-history-panel,.service-progress-panel,.recommendation-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.metric{min-height:78px;padding:16px}.hero{grid-column:1;grid-row:1}.dashboard-trend{grid-column:2;grid-row:1;align-self:start;max-height:calc(100vh - 106px);margin:58px 34px 34px 0;overflow:auto}.dashboard-trend .forecast-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-forecast{grid-column:1 / -1;grid-row:2;width:auto;margin:34px}.chemistry-history-panel{grid-column:1 / -1;grid-row:3;width:auto;margin:0 34px 34px}.service-progress-panel{grid-column:1 / -1;grid-row:4;width:auto;margin:0 34px 34px;padding:22px}.service-progress-panel .chart-heading{align-items:flex-start;flex-wrap:wrap}.service-progress-panel .chart-heading>div{min-width:0}.service-progress-panel .book-button{flex:0 0 auto}.metric span,.savings-panel span{display:block;color:var(--quiet);font-size:.75rem}.metric strong{display:block;margin-top:10px;font-size:1.05rem;font-weight:500}.control-panel{grid-column:1 / -1;grid-row:4;min-height:100vh;padding:34px;display:flex;flex-direction:column;gap:18px;border-left:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#0e1013f0,#060709fa)}.panel-heading{display:flex;justify-content:space-between;gap:18px}.segmented{display:grid;grid-template-columns:repeat(3,76px);align-self:flex-start;padding:4px;border:1px solid var(--line);border-radius:8px;background:#ffffff0a}.state-button{height:34px;border:0;border-radius:6px;background:transparent;color:var(--quiet);cursor:pointer}.state-button.active{background:#ffffff1f;color:var(--text)}.system-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:12px}.arc-panel{min-height:220px;display:grid;place-items:center;padding:20px}.temp-arc{width:min(152px,100%);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,#111418 0 58%,transparent 59%),conic-gradient(var(--gold) 0 var(--arc),rgba(255,255,255,.12) var(--arc) 100%)}.temp-arc span{font-size:2rem;font-weight:300}.arc-panel p{margin:10px 0 0;color:var(--muted)}.buddy-output,.savings-panel,.local-panel,.hardware-panel,.intelligence-panel,.safety-panel,.performance-chart,.chart-panel,.chemistry-history-panel,.service-progress-panel{padding:22px}.local-panel{grid-column:span 2;border:1px solid var(--line);border-radius:8px;background:var(--panel);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.buddy-output p:last-child{margin-bottom:0;color:var(--muted);line-height:1.55}.local-panel p:last-child,.safety-panel p:last-child{margin-bottom:0;color:var(--muted);line-height:1.55}.safety-panel{display:grid;grid-template-columns:1fr;gap:18px;border:1px solid rgba(245,185,66,.22);border-radius:8px;background:radial-gradient(circle at 12% 8%,rgba(245,185,66,.1),transparent 32%),var(--panel-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.safety-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.safety-grid article{min-height:84px;padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#ffffff0b}.safety-grid span{display:block;color:var(--quiet);font-size:.72rem}.safety-grid strong{display:block;margin-top:9px;font-size:1.1rem;font-weight:500}.app-shell[data-state=freeze] .safety-panel{border-color:#7dd3fc59;background:radial-gradient(circle at 12% 8%,rgba(125,211,252,.14),transparent 32%),var(--panel-strong)}.app-shell[data-state=boil] .safety-panel{border-color:#f044385c;background:radial-gradient(circle at 12% 8%,rgba(240,68,56,.14),transparent 32%),var(--panel-strong)}.hardware-panel{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.hardware-card{min-height:74px;display:grid;align-content:center;gap:8px;padding:14px;border-radius:6px;background:#ffffff0b}.expansion-card{border:1px solid rgba(125,211,252,.18);background:#7dd3fc0e}.hardware-card span{color:var(--quiet);font-size:.73rem}.hardware-card strong{font-size:1.08rem;font-weight:500}.savings-panel{min-height:142px}.savings-panel strong{display:block;margin-bottom:8px;font-size:2.45rem;font-weight:300}.rate-control{display:grid;grid-template-columns:1fr 76px auto;align-items:center;gap:8px;margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1);color:var(--muted);font-size:.76rem}.rate-control input,.rate-control select{width:100%;height:34px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text)}.rate-control input{text-align:right;padding:0 9px}.rate-control select{-webkit-appearance:none;appearance:none;padding:0 24px 0 9px}.rate-control small{color:var(--quiet)}.performance-chart{border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.performance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.performance-summary article{min-height:82px;padding:14px;border-radius:6px;background:#ffffff0b}.performance-summary span{display:block;color:var(--quiet);font-size:.72rem}.performance-summary strong{display:block;margin-top:9px;font-size:1.42rem;font-weight:300}.intelligence-panel{display:grid;grid-template-columns:1fr;gap:18px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#12151ae0,#080a0ce0);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.intelligence-panel p:last-child{margin-bottom:0;color:var(--muted);line-height:1.55}.performance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.performance-grid article{min-height:92px;padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#ffffff0b}.performance-grid span,.performance-grid small{display:block;color:var(--quiet);font-size:.72rem}.performance-grid strong{display:block;margin:8px 0 4px;font-size:1.48rem;font-weight:300}.chart-heading{display:flex;justify-content:space-between;align-items:center;gap:14px;color:var(--muted);font-size:.8rem}.share-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.share-actions button{min-height:32px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0e;color:var(--muted);padding:0 10px;cursor:pointer;font-size:.74rem}.share-actions button:hover,.share-actions button:focus{border-color:#f5b94257;color:#ffe7aa}.range-heading{align-items:flex-start}.range-heading>div:first-child{display:grid;gap:6px}.range-controls{display:grid;grid-template-columns:100px 132px 132px;gap:8px}.range-controls select,.range-controls input{min-height:34px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 9px}svg{width:100%;height:auto;margin-top:14px}.grid-line{fill:none;stroke:#ffffff14;stroke-width:1}.chart-fill{fill:#f5b9421a}.chart-line{fill:none;stroke:var(--gold);stroke-linecap:round;stroke-width:4;filter:drop-shadow(0 0 10px rgba(245,185,66,.46))}.kw-area{fill:#f5b9421f}.kw-line,.temp-line{fill:none;stroke-linecap:round;stroke-width:4}.kw-line{stroke:var(--gold);filter:drop-shadow(0 0 10px rgba(245,185,66,.34))}.temp-line{stroke:var(--blue);stroke-width:3}.chart-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;color:var(--muted);font-size:.76rem}.chart-legend span{display:inline-flex;align-items:center;gap:7px}.chart-legend i{width:7px;height:7px;border-radius:50%}.gold-dot{background:var(--gold)}.blue-dot{background:var(--blue)}.red-dot{background:var(--red)}.cyan-dot{background:#67e8f9}.green-dot{background:var(--green)}.white-dot{background:#ffffffc7}.roof-trend-line,.pool-trend-line,.return-trend-line,.boil-limit-line,.freeze-limit-line,.forecast-roof-line,.forecast-pool-line{fill:none;stroke-linecap:round}.roof-trend-line{stroke:var(--gold);stroke-width:4;filter:drop-shadow(0 0 10px rgba(245,185,66,.34))}.pool-trend-line{stroke:#67e8f9;stroke-width:3}.return-trend-line{stroke:var(--green);stroke-width:3}.forecast-roof-line,.forecast-pool-line{stroke:#ffffffad;stroke-width:2;stroke-dasharray:6 10}.forecast-pool-line{stroke:#67e8f999}.boil-limit-line,.freeze-limit-line{stroke-width:2;stroke-dasharray:8 8}.boil-limit-line{stroke:#f04438b8}.freeze-limit-line{stroke:#7dd3fcb8}.issue-marker{stroke:#ffffffb8;stroke-width:2}.boil-marker{fill:var(--red)}.freeze-marker{fill:var(--blue)}.orp-line,.chlorine-line,.ph-line,.chem-ph-line,.chem-chlorine-line,.chem-salt-line,.chem-orp-line{fill:none;stroke-linecap:round;stroke-width:4}.orp-line{stroke:var(--green);filter:drop-shadow(0 0 10px rgba(50,213,131,.28))}.chlorine-line{stroke:var(--gold);filter:drop-shadow(0 0 10px rgba(245,185,66,.24))}.ph-line,.chem-ph-line{stroke:var(--blue)}.chem-chlorine-line{stroke:var(--gold)}.chem-salt-line{stroke:var(--green)}.chem-orp-line{stroke:#ffffffb8;stroke-dasharray:7 9}.chem-latest-point{fill:var(--blue);stroke:#ffffffc7;stroke-width:2}.chart-axis-label{fill:#f5f6f780;font-size:14px;letter-spacing:0}.app-shell[data-state=idle] .chart-line{stroke:#b9c0c9;filter:none}.app-shell[data-state=freeze] .chart-line{stroke:var(--blue);filter:drop-shadow(0 0 10px rgba(125,211,252,.34))}.app-shell[data-state=boil] .chart-line{stroke:var(--red);filter:drop-shadow(0 0 10px rgba(240,68,56,.34))}.service-page{min-height:100vh;padding:72px 34px 34px;background:radial-gradient(circle at 76% 12%,rgba(125,211,252,.1),transparent 24%),linear-gradient(180deg,#0a0c0f,#060709)}.profile-page{min-height:100vh;padding:72px 34px 34px;background:radial-gradient(circle at 20% 10%,rgba(50,213,131,.08),transparent 24%),linear-gradient(180deg,#080a0b,#060709)}.commission-page{min-height:100vh;padding:72px 34px 34px;background:radial-gradient(circle at 72% 12%,rgba(50,213,131,.09),transparent 24%),linear-gradient(180deg,#080a0b,#050607)}.admin-page{min-height:100vh;padding:72px 34px 34px;background:radial-gradient(circle at 84% 10%,rgba(245,185,66,.11),transparent 24%),linear-gradient(180deg,#090b0e,#050608)}body:not(.admin-portal) .admin-page{display:none}.admin-portal.auth-locked .admin-page,.admin-portal.auth-unlocked .backend-login-panel{display:none}.backend-login-panel{min-height:100vh;display:grid;place-items:center;padding:82px 34px 34px;background:radial-gradient(circle at 78% 12%,rgba(245,185,66,.13),transparent 24%),linear-gradient(180deg,#090b0e,#050608)}.login-card{width:min(920px,100%);display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:22px;padding:28px;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.login-card h1{margin:8px 0 12px;font-size:clamp(2.1rem,5vw,4.4rem);line-height:.95;font-weight:400}.login-card p:last-child{color:var(--muted);line-height:1.55}.login-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.login-form label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.login-form input,.login-form select{min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.login-form article{min-height:76px;padding:14px;border-radius:8px;background:#ffffff0b}.login-form span,.login-form small{display:block;color:var(--muted);font-size:.76rem}.login-form strong{display:block;margin:6px 0 3px;font-size:1.1rem;font-weight:500}.login-help-panel{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) repeat(3,minmax(118px,.26fr));gap:10px;align-items:center;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09}.login-help-panel span,.login-help-panel small{display:block;color:var(--muted);font-size:.76rem;line-height:1.35}.login-help-panel strong{display:block;margin:5px 0 3px;color:var(--text);font-size:.98rem;font-weight:500}.service-header,.service-overview,.service-tech-dashboard,.admin-overview,.admin-map-panel,.admin-table,.admin-drilldown,.backend-panel,.service-command-panel,.field-service-panel,.catalogue-admin-panel,.learning-admin-panel,.virtual-sensor-panel,.product-drilldown-panel,.profile-command-panel,.care-guidance-panel,.shopping-panel,.system-profile,.reporting-panel,.profile-panel,.service-company-panel,.commission-panel,.commission-grid,.commission-actions,.customer-access-panel,.forecast-panel,.water-panel,.sanitising-panel{width:min(1180px,100%);margin:0 auto}.service-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.book-button{min-height:42px;display:inline-grid;place-items:center;border:1px solid rgba(245,185,66,.34);border-radius:8px;background:#f5b9421f;color:#ffe7aa;padding:0 16px;cursor:pointer;text-decoration:none}.book-button.wide{width:100%;margin-top:16px}.profile-command-panel{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:10px}.profile-command-panel article{min-height:98px;padding:16px;border-radius:8px;background:#ffffff0b}.profile-command-panel span,.profile-command-panel small{display:block;color:var(--muted);font-size:.76rem}.profile-command-panel strong{display:block;margin:8px 0 4px;font-size:1.44rem;font-weight:300}.profile-primary-actions{display:grid;gap:8px;align-content:center;min-width:148px}.service-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:22px}.service-overview article,.service-tech-dashboard,.system-profile,.reporting-panel,.product-db-panel,.profile-panel,.service-company-panel,.commission-panel,.commission-grid,.commission-actions,.forecast-panel,.care-guidance-panel,.water-panel,.sanitising-panel,.admin-map-panel,.admin-table,.admin-drilldown,.backend-panel,.service-command-panel,.field-service-panel,.catalogue-admin-panel,.learning-admin-panel,.virtual-sensor-panel,.product-drilldown-panel,.profile-command-panel,.shopping-panel{border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.system-profile,.reporting-panel,.product-db-panel,.service-tech-dashboard,.profile-panel,.service-company-panel,.customer-access-panel,.forecast-panel,.care-guidance-panel,.water-panel,.sanitising-panel,.admin-map-panel,.admin-table,.admin-drilldown,.backend-panel,.service-command-panel,.field-service-panel,.catalogue-admin-panel,.learning-admin-panel,.virtual-sensor-panel,.product-drilldown-panel,.profile-command-panel{margin-top:14px;padding:22px}.system-profile,.profile-panel,.service-company-panel,.customer-access-panel,.care-guidance-panel,.shopping-panel,.water-panel,.admin-map-panel{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:18px}.system-profile{align-items:start}.system-profile-head{max-width:360px}.system-profile-body{display:grid;gap:12px}.customer-access-panel{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1fr) auto;gap:18px}.customer-access-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.customer-access-grid article{min-height:92px;padding:14px;border-radius:6px;background:#ffffff0b}.customer-access-grid span{display:block;color:var(--quiet);font-size:.72rem}.customer-access-grid strong{display:block;margin-top:8px;font-size:1.12rem;font-weight:500}.customer-access-actions{display:grid;gap:8px;align-content:center;min-width:190px}.commission-panel{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:18px}.commission-steps,.commission-grid,.commission-actions{display:grid;gap:10px}.commission-steps{grid-template-columns:repeat(4,minmax(0,1fr))}.commission-grid,.commission-actions{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:14px}.product-db-panel{display:block}.system-profile p:last-child,.product-db-panel p:last-child,.profile-panel p:last-child,.service-company-panel p:last-child,.commission-panel p:last-child,.water-panel p:last-child,.admin-map-panel p:last-child,.admin-drilldown p:last-child{margin-bottom:0;color:var(--muted);line-height:1.55}.profile-grid,.report-grid,.forecast-grid,.advice-grid,.sanitising-grid,.chemistry-summary-grid,.recommendation-grid,.care-guidance-grid{display:grid;gap:10px}.profile-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.system-input-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.system-flow-summary{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:10px}.report-grid,.forecast-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}.forecast-model-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.advice-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:10px}.sanitising-grid,.chemistry-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:16px}.service-progress-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.service-progress-grid article{min-height:96px;padding:14px;border-radius:6px;background:#ffffff0b;min-width:0}.service-progress-grid span,.service-progress-grid small,.service-log-row span{display:block;color:var(--quiet);font-size:.74rem;min-width:0;overflow-wrap:anywhere;line-height:1.35}.service-progress-grid strong{display:block;margin:8px 0 4px;font-size:1.34rem;font-weight:300;min-width:0;overflow-wrap:anywhere;line-height:1.15}.service-progress-log{margin-top:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px}.service-log-row{display:grid;grid-template-columns:minmax(64px,.56fr) minmax(180px,1.55fr) minmax(112px,.8fr) minmax(140px,.92fr) minmax(86px,.58fr);gap:10px;align-items:start;min-height:46px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.07)}.service-log-row:first-child{border-top:0}.service-log-head{min-height:42px;background:#ffffff0a;text-transform:uppercase}.service-log-row .ok,.service-log-row .watch,.service-log-row .alert{font-weight:500}.service-log-row .ok{color:var(--green)}.service-log-row .watch{color:var(--gold)}.service-log-row .alert{color:var(--red)}.recommendation-panel{padding:22px}.recommendation-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.care-guidance-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-grid article,.report-grid article,.forecast-grid article,.forecast-model-grid article,.advice-grid article,.sanitising-grid article,.chemistry-summary-grid article,.recommendation-grid article,.care-guidance-grid article,.water-result{min-height:92px;padding:14px;border-radius:6px;background:#ffffff0b}.system-input-grid label,.system-flow-summary article{min-height:92px;display:grid;align-content:center;gap:8px;padding:14px;border-radius:6px;background:#ffffff0b}.system-flow-summary .flow-status-card{border:1px solid rgba(50,213,131,.18);background:#32d58313}.system-input-grid input{min-height:36px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.profile-grid span,.report-grid span,.report-grid small,.forecast-grid span,.forecast-grid small,.forecast-model-grid span,.forecast-model-grid small,.advice-grid span,.advice-grid p,.sanitising-grid span,.sanitising-grid small,.chemistry-summary-grid span,.chemistry-summary-grid small,.recommendation-grid span,.recommendation-grid p,.care-guidance-grid span,.care-guidance-grid p,.water-result span,.water-result p{display:block;color:var(--quiet);font-size:.72rem}.system-input-grid small{color:var(--quiet);font-size:.72rem}.system-flow-summary article span,.system-flow-summary article small{display:block;color:var(--quiet);font-size:.72rem}.system-flow-summary article strong{display:block;margin:6px 0 2px;font-size:1.48rem;font-weight:300}.profile-grid strong,.report-grid strong,.forecast-grid strong,.forecast-model-grid strong,.advice-grid strong,.sanitising-grid strong,.chemistry-summary-grid strong,.recommendation-grid strong,.care-guidance-grid strong,.water-result strong{display:block;margin:8px 0 4px;font-size:1.42rem;font-weight:300}.advice-grid p,.recommendation-grid p,.care-guidance-grid p,.water-result p{margin-bottom:0;line-height:1.45}.recommendation-grid .book-button{margin-top:14px}.profile-form,.chem-form,.shopping-form,.product-form,.product-tools,.photo-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-form label,.chem-form label,.shopping-form label,.product-form label,.product-tools label,.photo-upload-grid label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.profile-form input,.profile-form select,.chem-form input,.chem-form textarea,.shopping-form input,.shopping-form textarea,.commission-grid input,.product-form input,.product-form select,.product-tools input,.product-tools select,.photo-upload-grid input,.photo-upload-grid select{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.photo-reference-panel,.job-photo-panel{margin-top:16px;padding:22px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}.photo-reference-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.42fr);gap:18px;align-items:start}.photo-reference-head p:last-child{max-width:720px;color:var(--muted);line-height:1.55}.photo-reference-head article{min-height:102px;padding:16px;border-radius:8px;background:#ffffff0b}.photo-reference-head span,.photo-reference-head small,.photo-empty-state span,.photo-empty-state small,.photo-card span,.photo-card small{display:block;color:var(--muted);font-size:.76rem}.photo-reference-head strong{display:block;margin:8px 0 4px;font-size:1rem;font-weight:500;word-break:break-word}.photo-upload-grid{grid-template-columns:.72fr minmax(0,1fr) .78fr 136px;align-items:end;margin-top:16px}.photo-file-control input{padding-top:8px}.photo-reference-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.photo-empty-state{grid-column:1 / -1;min-height:82px;display:grid;align-content:center;gap:4px;padding:16px;border:1px dashed rgba(255,255,255,.16);border-radius:8px;background:#ffffff08}.photo-card{overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0b}.photo-card img{display:block;width:100%;aspect-ratio:4 / 3;object-fit:cover;background:#ffffff0a}.photo-card div{display:grid;gap:4px;padding:10px}.photo-card strong{display:block;color:var(--text);font-size:.9rem;font-weight:500}.compact-photo-list{grid-template-columns:repeat(3,minmax(0,1fr))}.chem-form textarea,.shopping-form textarea,.tech-entry-grid textarea{min-height:76px;resize:vertical;padding:10px}.wide-field{grid-column:span 2}.commission-steps article,.commission-grid article{min-height:116px;padding:16px;border-radius:6px;background:#ffffff0b}.commission-steps span,.commission-grid span{color:var(--quiet);font-size:.74rem}.commission-steps strong,.commission-grid strong{display:block;margin:8px 0 4px;font-size:1.24rem;font-weight:500}.commission-steps small,.commission-grid small,.status-list span{color:var(--muted);font-size:.76rem}.commission-grid label{display:grid;gap:8px;margin-top:10px;color:var(--muted);font-size:.76rem}.status-list{display:grid;gap:10px}.status-list strong{display:inline;margin-right:8px;font-size:inherit}.product-form .book-button{align-self:end}.product-page-head{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:18px;align-items:start}.product-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.product-summary article{min-height:92px;padding:14px;border-radius:6px;background:#ffffff0b}.product-summary span{display:block;color:var(--quiet);font-size:.72rem}.product-summary strong{display:block;margin-top:8px;font-size:1.42rem;font-weight:300}.product-tools{grid-template-columns:minmax(0,1.2fr) minmax(220px,.58fr) 110px;margin-top:16px}.clear-products-button{align-self:end;min-height:38px;border:1px solid rgba(240,68,56,.28);border-radius:6px;background:#f0443814;color:#ffb8b0;cursor:pointer}.clear-products-button:hover,.clear-products-button:focus{background:#f0443829;color:#ffd6d2}.product-add-panel{margin-top:10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09}.product-add-panel summary{min-height:44px;display:flex;align-items:center;padding:0 14px;color:#ffe7aa;cursor:pointer}.product-add-panel .product-form{padding:0 14px 14px}.product-db-list{margin-top:10px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px}.product-db-row{display:grid;grid-template-columns:.56fr .76fr .86fr .96fr .5fr .58fr .68fr .52fr .6fr .92fr 62px;gap:8px;align-items:center;min-height:42px;padding:0 12px;border-top:1px solid rgba(255,255,255,.07)}.product-db-row:first-child{border-top:0}.product-db-row.row-updated{background:#32d5831f}.product-db-head{min-height:40px;background:#ffffff0a}.product-db-row span{color:var(--muted);font-size:.76rem}.product-db-head span{color:var(--quiet);text-transform:uppercase}.product-delete-button{min-height:30px;border:1px solid rgba(240,68,56,.26);border-radius:6px;background:#f0443814;color:#ffb8b0;cursor:pointer;font-size:.72rem}.product-delete-button:hover,.product-delete-button:focus{background:#f0443829;color:#ffd6d2}.dip-upload{min-height:42px;width:max-content;display:inline-grid;place-items:center;margin-top:18px;border:1px solid rgba(125,211,252,.3);border-radius:8px;background:#7dd3fc1a;color:#d9f3ff;padding:0 14px;cursor:pointer}.dip-upload input{position:absolute;opacity:0;pointer-events:none}.water-result,.chem-form .wide{grid-column:span 2}.result-action{margin-top:14px}.service-overview article{min-height:98px;padding:18px}.admin-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-filter select{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.session-badge,.session-button{min-height:38px;display:inline-grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0e;color:var(--muted);padding:0 10px;font-size:.76rem}.session-button{cursor:pointer}.session-button:hover,.session-button:focus{border-color:#f5b94261;color:#ffe7aa;outline:none}.admin-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:22px}.admin-access-panel{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr);gap:14px;margin-top:22px;padding:22px}.licensing-panel{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.35fr);gap:14px;margin-top:14px;padding:22px}.access-grid,.license-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.admin-overview article,.admin-insights article,.admin-drilldown article,.access-grid article,.license-grid article{min-height:98px;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px)}.admin-overview span,.admin-insights span,.admin-insights small,.admin-drilldown span,.admin-drilldown small,.access-grid span,.license-grid span,.license-grid small,.license-row span,.admin-row span{color:var(--muted);font-size:.78rem}.admin-overview strong,.admin-insights strong,.admin-drilldown strong,.access-grid strong,.license-grid strong{display:block;margin-top:10px;font-size:1.9rem;font-weight:300}.admin-access-panel p:last-child,.licensing-panel p:last-child{margin-bottom:0;color:var(--muted);line-height:1.55}.backend-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.service-tech-dashboard{margin-top:22px;padding:22px}.tech-dashboard-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.tech-dashboard-head p:last-child{max-width:680px;margin-bottom:0;color:var(--muted);line-height:1.55}.tech-job-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.tech-job-summary article{min-height:94px;padding:16px;border-radius:8px;background:#ffffff0b}.tech-job-summary span,.tech-job-summary small{display:block;color:var(--muted);font-size:.76rem}.tech-job-summary strong{display:block;margin:8px 0 4px;font-size:1.44rem;font-weight:300}.white-label-profile-panel{margin-top:14px}.white-label-summary,.white-label-form,.white-label-actions{display:grid;gap:10px;margin-top:16px}.white-label-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.white-label-summary article{min-height:104px;padding:16px;border-radius:8px;background:#ffffff0b;min-width:0}.white-label-summary span,.white-label-summary small{display:block;color:var(--muted);font-size:.76rem;line-height:1.35}.white-label-summary strong{display:block;margin:8px 0 4px;font-size:1.22rem;font-weight:400;overflow-wrap:anywhere}.white-label-form{grid-template-columns:repeat(4,minmax(0,1fr))}.white-label-form label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.white-label-form input,.white-label-form select{min-height:40px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px;min-width:0}.white-label-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.job-id-loader{display:grid;grid-template-columns:minmax(0,1.1fr) 132px minmax(220px,.7fr);gap:10px;align-items:end;margin-top:14px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09}.job-id-loader label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.job-id-loader input{min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 12px;text-transform:uppercase}.job-id-loader article{min-height:72px;padding:12px;border-radius:8px;background:#ffffff0b}.job-id-loader span,.job-id-loader small{display:block;color:var(--muted);font-size:.76rem}.job-id-loader strong{display:block;margin:6px 0 3px;font-size:1.16rem;font-weight:400}.calendar-dispatch-panel{display:grid;grid-template-columns:minmax(0,1fr) 136px 136px minmax(170px,.72fr) 126px;gap:10px;align-items:end;margin-top:12px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09}.calendar-dispatch-panel>div,.calendar-dispatch-panel article{min-height:72px;padding:12px;border-radius:8px;background:#ffffff0b}.calendar-dispatch-panel label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.calendar-dispatch-panel input{min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 12px}.calendar-dispatch-panel span,.calendar-dispatch-panel small{display:block;color:var(--muted);font-size:.76rem}.calendar-dispatch-panel strong{display:block;margin:6px 0 3px;font-size:1.12rem;font-weight:400}.calendar-dispatch-panel .book-button{min-height:44px;justify-content:center;text-align:center}.service-calendar-board{margin-top:12px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff09}.calendar-board-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);gap:14px;align-items:end}.calendar-board-head span,.calendar-board-head small,.calendar-lane span,.calendar-lane small,.calendar-job-card span,.calendar-job-card small{display:block;color:var(--muted);font-size:.76rem}.calendar-board-head strong{display:block;margin:6px 0 3px;font-size:1.18rem;font-weight:500}.calendar-board-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.calendar-board-controls label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.calendar-board-controls input,.calendar-board-controls select{min-height:40px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.calendar-lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.calendar-lane{min-height:196px;padding:12px;border-radius:8px;background:#ffffff0b}.calendar-lane header{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.calendar-lane header strong{color:var(--text);font-size:.88rem;font-weight:500}.calendar-job-card{display:grid;gap:5px;width:100%;min-height:92px;margin-top:8px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0000003d;color:var(--text);text-align:left;cursor:pointer}.calendar-job-card:hover,.calendar-job-card:focus{border-color:#f4b04870;background:#f4b04814;outline:none}.calendar-job-card strong{font-size:.96rem;font-weight:600}.calendar-job-card i{justify-self:start;margin-top:3px;font-style:normal}.calendar-job-pending{opacity:.72}.job-pill-stack{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.active-state{border-color:#32d58352;background:#32d5831a;color:#c8ffd9}.job-context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.job-context-grid label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.job-context-grid input,.job-context-grid select{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.compact-job-actions .book-button{width:100%}.compact-assignment{grid-template-columns:.8fr .9fr .7fr 120px minmax(0,1.05fr)}.backend-head p:last-child{margin-bottom:0;color:var(--muted);line-height:1.55}.backend-pill{min-height:38px;display:inline-grid;place-items:center;border:1px solid rgba(125,211,252,.24);border-radius:999px;background:#7dd3fc14;color:#d9f3ff;padding:0 14px;white-space:nowrap}.backend-grid,.learning-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.backend-grid article,.learning-grid article{min-height:98px;padding:16px;border-radius:8px;background:#ffffff0b}.backend-grid span,.backend-grid small,.learning-grid span,.learning-grid small,.service-job-row span,.product-issue-row span{color:var(--muted);font-size:.78rem}.backend-grid strong,.learning-grid strong{display:block;margin:8px 0 4px;font-size:1.48rem;font-weight:300}.service-job-table{margin-top:12px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px}.service-job-row{display:grid;grid-template-columns:.78fr .95fr 1fr .78fr .82fr .72fr;gap:10px;align-items:center;min-height:46px;padding:0 14px;border-top:1px solid rgba(255,255,255,.07);color:inherit;text-align:left;width:100%}.service-job-select{border-right:0;border-bottom:0;border-left:0;background:transparent;cursor:pointer}.service-job-select:hover,.service-job-select:focus,.service-job-select.active{background:#f5b94214;outline:0}.service-job-select.active{box-shadow:inset 3px 0 #f5b942d6}.service-job-row:first-child,.product-issue-row:first-child{border-top:0}.service-job-head,.product-issue-head{background:#ffffff0a;text-transform:uppercase}.job-detail-panel[hidden]{display:none}.tech-entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.service-command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.service-command-grid label,.tech-entry-grid label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.service-command-grid input,.service-command-grid textarea,.service-command-grid select,.tech-entry-grid input,.tech-entry-grid textarea,.tech-entry-grid select{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.service-command-actions,.service-state-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.service-state-grid article{min-height:96px;padding:16px;border-radius:8px;background:#ffffff0b}.service-state-grid span,.service-state-grid small{display:block;color:var(--muted);font-size:.76rem}.service-state-grid strong{display:block;margin:8px 0 4px;font-size:1.4rem;font-weight:300}.job-pipeline-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:16px}.job-pipeline-grid article,.assignment-panel article{min-height:96px;padding:16px;border-radius:8px;background:#ffffff0b}.job-pipeline-grid span,.job-pipeline-grid small,.assignment-panel article span,.assignment-panel article small,.catalogue-row span{color:var(--muted);font-size:.76rem}.job-pipeline-grid strong,.assignment-panel article strong{display:block;margin:8px 0 4px;font-size:1.42rem;font-weight:300}.dispatch-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.dispatch-column{min-height:220px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff08}.dispatch-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.dispatch-head span,.dispatch-card span,.dispatch-card small{color:var(--muted);font-size:.76rem}.dispatch-card{display:grid;gap:5px;min-height:78px;margin-top:8px;padding:12px;border-radius:8px;background:#7dd3fc14}.dispatch-card strong{font-weight:500}.muted-card{background:#ffffff0a}.assignment-panel,.catalogue-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.catalogue-form{grid-template-columns:repeat(5,minmax(0,1fr)) 140px}.assignment-panel label,.catalogue-form label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.assignment-panel input,.assignment-panel select,.catalogue-form input,.catalogue-form select{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.catalogue-table{margin-top:14px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px}.catalogue-row{display:grid;grid-template-columns:.8fr .9fr 1.2fr .8fr .55fr .55fr;gap:10px;align-items:center;min-height:46px;padding:0 14px;border-top:1px solid rgba(255,255,255,.07)}.catalogue-row:first-child{border-top:0}.virtual-sensor-grid,.virtual-sensor-action{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.virtual-sensor-action{grid-template-columns:repeat(2,minmax(0,1fr))}.virtual-sensor-grid article,.virtual-sensor-action article{min-height:96px;padding:16px;border-radius:8px;background:#ffffff0b}.virtual-sensor-grid span,.virtual-sensor-grid small,.virtual-sensor-action span,.virtual-sensor-action small,.virtual-source-row span{color:var(--muted);font-size:.76rem}.virtual-sensor-grid strong,.virtual-sensor-action strong{display:block;margin:8px 0 4px;font-size:1.42rem;font-weight:300}.virtual-source-row{display:grid;grid-template-columns:.92fr .62fr .68fr .86fr .82fr 1fr;gap:10px;align-items:center;min-height:46px;padding:0 14px;border-top:1px solid rgba(255,255,255,.07)}.virtual-source-head{margin-top:14px;min-height:42px;background:#ffffff0a;text-transform:uppercase;border-top:0}.catalogue-head{min-height:42px;background:#ffffff0a;text-transform:uppercase}.quote-builder{margin-top:16px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px}.owner-care-feedback{margin-top:16px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff06}.owner-care-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.owner-care-grid article{min-height:118px;padding:14px;border-radius:8px;background:#ffffff0b}.owner-care-grid span,.owner-care-grid p,.owner-care-note span{color:var(--muted);font-size:.76rem}.owner-care-grid strong{display:block;margin:8px 0 4px;font-size:1.22rem;font-weight:300}.owner-care-grid p{margin-bottom:0;line-height:1.45}.owner-care-note{display:grid;gap:8px;margin-top:14px}.owner-care-note textarea{min-height:86px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:10px;resize:vertical}.solar-quote-page{min-height:100vh;padding:92px 34px 34px;background:radial-gradient(circle at 18% 18%,rgba(245,174,64,.16),transparent 28%),linear-gradient(135deg,#071015,#111412 52%,#17110a)}.quote-hero-panel{display:grid;grid-template-columns:minmax(0,.92fr) minmax(320px,.58fr);gap:18px;margin-top:18px}.quote-map-preview,.quote-report-card,.solar-quote-form,.solar-quote-results article,.solar-season-panel,.heat-pump-comparison-panel,.solar-cop-panel,.solar-quote-actions article{border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#ffffff0b;box-shadow:0 18px 50px #00000038}.quote-map-preview{position:relative;min-height:330px;overflow:hidden;background:linear-gradient(35deg,rgba(255,255,255,.06) 0 12%,transparent 12% 100%),linear-gradient(145deg,#76a4b12e,#1f2c2d5c),#0e1617}.quote-map-preview:before{content:"";position:absolute;top:24px;right:24px;bottom:24px;left:24px;border:1px solid rgba(255,255,255,.08);transform:skewY(-10deg) rotate(-2deg)}.quote-roof,.quote-pool,.quote-sun-path{position:absolute;display:block}.quote-roof{left:14%;top:23%;width:58%;height:38%;border-radius:8px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.18) 0 2px,transparent 2px 34px),linear-gradient(135deg,#243940f2,#0a1418f2);transform:perspective(560px) rotateX(58deg) rotate(-16deg);box-shadow:0 24px 46px #00000052}.quote-pool{right:9%;bottom:14%;width:30%;height:20%;border-radius:42% 58% 48% 52%;background:linear-gradient(135deg,#46c9d8d1,#1b5e79eb)}.quote-sun-path{left:8%;top:14%;width:78%;height:58%;border-top:2px dashed rgba(245,174,64,.7);border-radius:50% 50% 0 0}.quote-report-card{display:grid;align-content:center;gap:14px;min-height:330px;padding:24px}.quote-report-card h3{margin:0;font-size:clamp(2rem,5vw,4.7rem);font-weight:300;letter-spacing:0}.quote-report-card p{margin:0;color:var(--muted);line-height:1.55}.quote-confidence-row,.solar-quote-workbench,.solar-quote-results,.solar-quote-actions{display:grid;gap:12px}.quote-confidence-row{grid-template-columns:repeat(3,minmax(0,1fr))}.quote-confidence-row article,.solar-quote-results article{min-height:92px;padding:15px;border-radius:8px;background:#0000002e}.quote-confidence-row span,.solar-quote-results span,.solar-quote-results small,.solar-quote-actions span,.solar-quote-actions p,.solar-quote-form span,.solar-quote-form small{color:var(--muted);font-size:.78rem}.quote-confidence-row strong,.solar-quote-results strong,.solar-quote-actions strong{display:block;margin-top:8px;color:var(--text);font-size:1.45rem;font-weight:300}.solar-quote-workbench{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);margin-top:18px}.solar-quote-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px}.quote-input-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#00000029}.quote-input-group h3{grid-column:1 / -1;margin:0 0 2px;color:var(--text);font-size:1rem;font-weight:500}.wide-group{grid-column:1 / -1}.solar-quote-form label{display:grid;gap:8px}.solar-quote-form input,.solar-quote-form select{min-height:42px;width:100%;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff12;color:var(--text);padding:0 10px}.address-lookup-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px;align-items:stretch}.address-lookup-row article{display:grid;gap:3px;min-height:64px;padding:10px 12px;border-radius:8px;background:#ffffff0b}.address-lookup-row article span,.address-lookup-row article small{color:var(--muted);font-size:.76rem}.address-lookup-row article strong{color:var(--text);font-weight:500}.google-map-preview{position:relative;min-height:260px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:linear-gradient(135deg,#7dd3fc1f,#f5ae4014),#0000002e}.google-map-preview iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.map-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;align-content:center;justify-items:center;gap:8px;padding:20px;text-align:center}.map-empty-state span,.map-empty-state small{color:var(--muted);font-size:.78rem}.map-empty-state strong{color:var(--text);font-size:1.2rem;font-weight:400}.google-map-preview .session-button{position:absolute;right:12px;bottom:12px;z-index:2;background:#000000b8}.solar-quote-results{grid-template-columns:repeat(2,minmax(0,1fr))}.solar-quote-results article{display:grid;align-content:start;gap:3px}.solar-quote-results strong{overflow-wrap:anywhere}.solar-season-panel{margin-top:18px;overflow:hidden}.solar-season-panel .chart-heading,.heat-pump-comparison-panel .chart-heading,.solar-cop-panel .chart-heading,.solar-local-model-panel .chart-heading{padding:14px}.solar-season-chart,.heat-pump-chart,.solar-cop-chart,.local-model-chart{display:block;width:100%;height:auto;min-height:230px;padding:0 14px 12px}.solar-local-model-panel{margin-top:18px;overflow:hidden;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#ffffff0b}.heat-pump-comparison-panel,.solar-cop-panel{margin-top:18px;overflow:hidden}.heat-pump-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;padding:0 14px 12px}.heat-pump-kpi-grid article{min-height:88px;padding:14px;border-radius:8px;background:#0000002e}.heat-pump-kpi-grid span{color:var(--muted);font-size:.78rem}.heat-pump-kpi-grid strong{display:block;margin-top:8px;color:var(--text);font-size:1.35rem;font-weight:300}.heat-pump-chart{min-height:230px}.solar-cop-chart{min-height:280px}.solar-cost-bar,.heat-pump-cost-bar,.hybrid-cost-bar{rx:7px;transition:y .28s ease,height .28s ease,opacity .28s ease}.solar-cost-bar{fill:#27e8a273}.heat-pump-cost-bar{fill:#f5ae4080}.hybrid-cost-bar{fill:#7dd3fc6b}.local-model-chart{min-height:280px}.solar-cop-bar{fill:#7dd3fc3d}.heat-cop-bar{fill:#f5ae4033}.solar-scop-bar{fill:#27e8a257;rx:6px}.peak-scop-bar{fill:#f5ae409e}.local-model-point{fill:currentColor}.season-comfort-band{fill:#27e8a214}.season-temp-guide rect{fill:#00000061;stroke:#ffffff1f}.season-temp-guide path{fill:none;stroke:#ffffff42;stroke-width:1}.season-temp-guide text{fill:#ffffffb8;font-size:12px;letter-spacing:0}.pool-trend-line,.roof-trend-line,.forecast-pool-line,.local-model-point,.solar-cop-bar,.heat-cop-bar,.solar-scop-bar{transition:opacity .24s ease,transform .24s ease}.value-updated{animation:value-pop .34s ease}.chart-updated .pool-trend-line,.chart-updated .roof-trend-line,.chart-updated .forecast-pool-line{animation:chart-glow .42s ease}@keyframes value-pop{0%{color:var(--gold);transform:translateY(-1px)}to{color:var(--text);transform:translateY(0)}}@keyframes chart-glow{0%{filter:drop-shadow(0 0 0 rgba(245,174,64,0));opacity:.78}45%{filter:drop-shadow(0 0 10px rgba(245,174,64,.36));opacity:1}to{filter:drop-shadow(0 0 0 rgba(245,174,64,0));opacity:1}}.solar-quote-actions{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:18px}.solar-quote-actions article{min-height:150px;padding:18px}.solar-quote-actions p{margin-bottom:0;line-height:1.5}.chemistry-capture{margin-top:16px;overflow:hidden;border:1px solid rgba(255,255,255,.08);border-radius:8px}.chemistry-capture .chart-heading{padding:14px}.chemistry-target-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:0 14px 14px}.chemistry-target-grid label{display:grid;gap:8px;color:var(--muted);font-size:.74rem}.chemistry-target-grid input{min-height:36px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0e;color:var(--text);padding:0 10px}.chemistry-capture-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:0 14px 14px}.chemistry-capture-grid label{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.chemistry-capture-grid input{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.chemistry-capture-grid article{min-height:84px;padding:14px;border-radius:8px;background:#ffffff0b}.chemistry-capture-grid article span,.chemistry-capture-grid article small,.chemistry-log-row span{color:var(--muted);font-size:.76rem}.chemistry-capture-grid article strong{display:block;margin:8px 0 4px;font-size:1.24rem;font-weight:300}.chemistry-guidance-panel{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:14px;margin:0 14px 14px;padding:14px;border-radius:8px;background:#ffffff09}.chemistry-guidance-panel span,.chemistry-guidance-panel p,.chemistry-guidance-panel small{color:var(--muted);font-size:.76rem}.chemistry-guidance-panel strong{display:block;margin:8px 0 4px;font-size:1.24rem;font-weight:300}.chemistry-guidance-panel p{margin-bottom:0;line-height:1.45}.chemistry-guidance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.chemistry-guidance-grid article{min-height:88px;padding:12px;border-radius:8px;background:#ffffff0b}.service-chemistry-chart{display:block;padding:0 14px 12px}.chem-target-band{fill:#32d58314}.chem-alk-line{fill:none;stroke:var(--green);stroke-linecap:round;stroke-width:4}.service-chemistry-legend{padding:0 14px 14px}.chemistry-log{border-top:1px solid rgba(255,255,255,.08)}.chemistry-log-row{display:grid;grid-template-columns:.82fr .42fr .44fr .46fr .52fr .46fr .58fr .68fr .78fr .58fr .62fr;gap:10px;align-items:center;min-height:44px;padding:0 14px;border-top:1px solid rgba(255,255,255,.07)}.chemistry-log-row:first-child{border-top:0}.chemistry-log-head{min-height:40px;background:#ffffff0a;text-transform:uppercase}.quote-builder .chart-heading{padding:14px}.quote-contact-grid,.quote-line-form{display:grid;gap:10px;padding:0 14px 14px}.quote-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-line-form{grid-template-columns:.64fr 1.05fr .72fr .35fr 1.25fr 118px;align-items:end}.quote-contact-grid label,.quote-line-form label,.quote-notes{display:grid;gap:8px;color:var(--muted);font-size:.76rem}.quote-contact-grid input,.quote-line-form input,.quote-line-form select,.quote-notes textarea{min-height:38px;border:1px solid rgba(255,255,255,.12);border-radius:6px;background:#ffffff0f;color:var(--text);padding:0 10px}.quote-notes{padding:0 14px 14px}.quote-notes textarea{min-height:82px;padding:10px;resize:vertical}.quote-row{display:grid;grid-template-columns:.58fr .96fr .68fr .32fr 1.18fr .62fr 86px;gap:10px;align-items:center;min-height:46px;padding:0 14px;border-top:1px solid rgba(255,255,255,.07)}.quote-head{min-height:42px;background:#ffffff0a;text-transform:uppercase}.quote-row span{color:var(--muted);font-size:.78rem}.quote-delete-button{min-height:32px;border:1px solid rgba(255,92,72,.28);border-radius:6px;background:#ff5c4814;color:#ff8a7a;font:inherit;font-size:.76rem;cursor:pointer}.quote-delete-button:hover,.quote-delete-button:focus{border-color:#ff5c487a;background:#ff5c4824;outline:none}.learning-admin-panel{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:18px}.product-issue-row{display:grid;grid-template-columns:.9fr 1fr .5fr 1.1fr 1.12fr;gap:10px;align-items:center;min-height:46px;padding:0 14px;border-top:1px solid rgba(255,255,255,.07)}.product-issue-row small{display:block;margin-top:4px;color:#ffffff80;font-size:.78rem;line-height:1.3}.admin-page[data-access=service] .owner-only,.admin-page[data-access=whiteLabel] .owner-only,.admin-page[data-access=tech] .owner-only,.admin-page[data-access=installer] .owner-only,.admin-page[data-access=tech] .staff-only,.admin-page[data-access=installer] .staff-only{display:none}.admin-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.license-table{margin-top:14px;overflow:hidden}.license-row{display:grid;grid-template-columns:1fr .95fr 1fr .7fr 1fr .62fr;gap:12px;align-items:center;min-height:48px;padding:0 16px;border-top:1px solid rgba(255,255,255,.07)}.license-row:first-child{border-top:0}.license-head{min-height:42px;background:#ffffff0a}.license-head span{color:var(--quiet);text-transform:uppercase}.admin-row{display:grid;grid-template-columns:1.15fr 1fr .78fr .62fr .62fr .72fr .78fr .64fr;gap:12px;align-items:center;min-height:48px;padding:0 16px;border-top:1px solid rgba(255,255,255,.07)}.admin-row:first-child{border-top:0}.admin-head{min-height:42px;background:#ffffff0a}.admin-head span{color:var(--quiet);text-transform:uppercase}.admin-row .ok,.admin-row .watch,.admin-row .alert,.license-row .ok,.license-row .watch,.license-row .alert,.service-job-row .ok,.service-job-row .watch,.service-job-row .alert,.product-issue-row .ok,.product-issue-row .watch,.product-issue-row .alert,.quote-row .ok,.quote-row .watch,.quote-row .alert,.virtual-source-row .ok,.virtual-source-row .watch,.virtual-source-row .alert,.chemistry-log-row .ok,.chemistry-log-row .watch,.chemistry-log-row .alert{font-weight:500}.admin-row .ok,.license-row .ok,.service-job-row .ok,.product-issue-row .ok,.quote-row .ok,.virtual-source-row .ok,.chemistry-log-row .ok{color:var(--green)}.admin-row .watch,.license-row .watch,.service-job-row .watch,.product-issue-row .watch,.quote-row .watch,.virtual-source-row .watch,.chemistry-log-row .watch{color:var(--gold)}.admin-row .alert,.license-row .alert,.service-job-row .alert,.product-issue-row .alert,.quote-row .alert,.virtual-source-row .alert,.chemistry-log-row .alert{color:var(--red)}.admin-drilldown{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,.6fr));gap:10px}.service-overview span,.flag-row span{color:var(--muted);font-size:.78rem}.service-overview strong{display:block;margin-top:10px;font-size:2rem;font-weight:300}.product-db-input{width:100%;min-width:0;min-height:34px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:.78rem;outline:none}.product-db-input{padding:0 8px}.product-db-input:hover,.product-db-input:focus{border-color:#ffffff24;background:#ffffff0e;color:var(--text)}@media(max-width:980px){.app-shell{display:block}.dashboard-trend{margin:68px 24px 0}.hero,.control-panel{min-height:auto}.hero{min-height:760px;padding:24px}.control-panel{padding:24px;border-left:0}.service-overview,.tech-job-summary,.white-label-summary,.admin-overview,.profile-command-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-primary-actions{grid-column:span 2;grid-template-columns:repeat(3,minmax(0,1fr))}.system-profile,.service-company-panel,.customer-access-panel,.care-guidance-panel,.photo-reference-head,.login-card,.commission-panel,.commission-grid,.admin-map-panel,.admin-drilldown,.backend-head,.learning-admin-panel{grid-template-columns:1fr}.backend-head{display:grid}.commission-steps,.commission-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-panel,.care-guidance-panel,.water-panel,.product-page-head,.product-tools,.photo-upload-grid,.tech-dashboard-head,.calendar-board-head,.calendar-board-controls,.white-label-actions,.login-form,.login-help-panel,.job-id-loader,.calendar-dispatch-panel{grid-template-columns:1fr}.tech-dashboard-head{display:grid}.profile-grid,.system-input-grid,.system-flow-summary,.report-grid,.forecast-grid,.advice-grid,.sanitising-grid,.chemistry-summary-grid,.service-progress-grid,.photo-reference-list,.compact-photo-list,.calendar-lanes,.white-label-form,.recommendation-grid,.care-guidance-grid,.owner-care-grid,.job-context-grid,.backend-grid,.learning-grid,.job-pipeline-grid,.dispatch-board,.service-state-grid,.service-command-actions,.assignment-panel,.catalogue-form,.virtual-sensor-grid,.virtual-sensor-action,.chemistry-capture-grid,.chemistry-target-grid,.chemistry-guidance-panel,.chemistry-guidance-grid,.quote-contact-grid,.quote-line-form{grid-template-columns:repeat(2,minmax(0,1fr))}.service-job-row,.product-issue-row,.quote-row,.catalogue-row,.virtual-source-row,.service-log-row,.chemistry-log-row{grid-template-columns:1fr 1fr;padding:12px 14px}}@media(max-width:640px){.app-nav{top:10px}.hero{min-height:720px;padding:18px}.topbar,.panel-heading{align-items:flex-start}.sun-state{top:16vh;width:150px;height:150px}.solar-core{width:94px;height:94px}.readout{margin-top:22vh}.output-strip,.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.buddy-output,.local-panel{grid-column:span 2}.hardware-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.safety-grid,.performance-grid,.performance-summary,.range-heading,.range-controls{grid-template-columns:1fr}.chart-heading{flex-direction:column}.segmented{grid-template-columns:repeat(3,64px)}.state-button{font-size:.82rem}.service-page,.solar-quote-page,.profile-page,.commission-page,.admin-page,.backend-login-panel{padding:68px 18px 24px}.service-header{align-items:flex-start;flex-direction:column}.admin-filter{width:100%;flex-direction:column}.service-overview,.tech-job-summary,.quote-hero-panel,.quote-confidence-row,.solar-quote-workbench,.solar-quote-form,.quote-input-group,.address-lookup-row,.solar-quote-results,.solar-quote-actions,.heat-pump-kpi-grid,.white-label-summary,.admin-overview,.admin-insights,.profile-command-panel,.profile-grid,.system-input-grid,.system-flow-summary,.report-grid,.forecast-grid,.advice-grid,.sanitising-grid,.chemistry-summary-grid,.service-progress-grid,.recommendation-grid,.care-guidance-grid,.owner-care-grid,.customer-access-grid,.job-context-grid,.backend-grid,.learning-grid,.job-pipeline-grid,.dispatch-board,.service-command-grid,.white-label-form,.white-label-actions,.service-command-actions,.service-state-grid,.assignment-panel,.catalogue-form,.virtual-sensor-grid,.virtual-sensor-action,.chemistry-capture-grid,.chemistry-target-grid,.chemistry-guidance-panel,.chemistry-guidance-grid,.quote-contact-grid,.quote-line-form,.login-form,.login-help-panel,.tech-entry-grid,.commission-steps,.commission-actions,.profile-form,.chem-form,.shopping-form,.product-form,.admin-row,.service-job-row,.product-issue-row,.quote-row,.catalogue-row,.virtual-source-row,.service-log-row,.chemistry-log-row{grid-template-columns:1fr}.profile-primary-actions{grid-column:auto;grid-template-columns:1fr}.product-db-list{overflow:visible}.product-db-head{display:none}.product-db-row{min-width:0;grid-template-columns:1fr;align-items:stretch;gap:8px;padding:12px}.product-db-input,.product-delete-button{width:100%}.water-result,.chem-form .wide,.shopping-form .wide,.wide-field,.product-db-list{grid-column:auto}}
/*# sourceMappingURL=/cdn/shop/t/4/assets/psh-solar-quote.css.map */
