:root{--paper:#e9ede6;--sheet:#f7f9f5;--ink:#16241b;--ink-2:#4a5a4f;--ink-3:#7d8a80;--rule:#c9d1c6;--grid:#dbe1d7;--hsc-green:#295100;--hsc-yellow:#feae1e;--sys-canopy:#3d7a12;--sys-canopy-tint:#dcebcd;--phase-mother:#7b4b94;--phase-clone:#1f7f86;--phase-flower:#b0670c;--sys-light:#c98500;--sys-light-tint:#fdedc8;--sys-climate:#3c5fb3;--sys-climate-tint:#dbe3f6;--sys-water:#0e7c86;--sys-water-tint:#d2ecee;--ok:#2f7d32;--warn:#b5530f;--danger:#a3261c;--font:"Archivo", system-ui, sans-serif;--w-condensed:72;--w-normal:100;--w-wide:118;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-lg:1.125rem;--text-xl:1.5rem;--text-display:clamp(2.25rem, 1.4rem + 3.2vw, 4rem);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:40px;--radius-sm:3px;--radius-md:6px;--shadow-sheet:0 1px 0 #16241b0f, 0 8px 24px -12px #16241b40;--duration-fast:.12s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--text-base);font-variation-settings:"wdth" var(--w-normal);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}h1,h2,h3{margin:0;line-height:1.1}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--hsc-yellow);outline-offset:2px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.btn-primary,.btn-quiet,.btn-danger{border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-sm);transition:background var(--duration-fast), border-color var(--duration-fast), transform var(--duration-fast);border:1px solid #0000;padding:7px 14px}.btn-primary{background:var(--hsc-green);color:#fff}.btn-primary:hover:not(:disabled){background:#1f3d00}.btn-primary:active:not(:disabled){transform:translateY(1px)}.btn-quiet{border-color:var(--rule);background:0 0}.btn-quiet:hover:not(:disabled){border-color:var(--ink-2);background:var(--sheet)}.btn-danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 35%, transparent);background:0 0}.btn-danger:hover{background:color-mix(in srgb, var(--danger) 8%, transparent)}.btn-link{color:var(--hsc-green);text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline;text-decoration-thickness:1px}.btn-link.danger{color:var(--danger)}.btn-icon{border:1px solid var(--rule);background:var(--sheet);border-radius:var(--radius-sm);align-self:end;width:30px;height:30px;margin-bottom:2px;font-size:18px;line-height:1}.btn-icon:hover{border-color:var(--danger);color:var(--danger)}.muted{color:var(--ink-2);font-size:var(--text-sm);margin:0}.error{color:var(--danger);font-size:var(--text-sm);margin:0}.empty{color:var(--ink-2);padding:var(--space-5);border:1px dashed var(--rule);border-radius:var(--radius-md)}.loading{padding:var(--space-6);color:var(--ink-2)}.banner-error{padding:10px var(--space-4);color:var(--danger);background:#fbe3df;margin:0;font-weight:600}.row-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.scroll-x{overflow-x:auto}.home{max-width:980px;padding:var(--space-6) var(--space-4) 80px;margin:0 auto}.home-brand{margin:0 0 var(--space-2);color:var(--hsc-green);font-weight:700;font-size:var(--text-sm)}.home-head h1{font-size:var(--text-display);font-variation-settings:"wdth" var(--w-condensed);letter-spacing:-.01em;font-weight:800}.home-lede{max-width:62ch;color:var(--ink-2);font-size:var(--text-lg);margin:var(--space-3) 0 0}.home-new{margin-top:var(--space-6);padding:var(--space-5);background:var(--sheet);border:1px solid var(--rule);border-left:6px solid var(--hsc-green);box-shadow:var(--shadow-sheet)}.home-new-row{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.home-new-row input{border:1px solid var(--rule);border-radius:var(--radius-sm);background:#fff;flex:260px;padding:10px 12px}.home-new-alt{gap:var(--space-5);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.upload-inline{cursor:pointer}.upload-inline input{opacity:0;width:1px;height:1px;position:absolute}.home-list{margin-top:var(--space-6)}.home-list h2{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);margin-bottom:var(--space-3)}.home-list ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.home-card{background:var(--sheet);border:1px solid var(--rule);align-items:stretch;display:flex}.home-card-open{text-align:left;padding:var(--space-4);background:0 0;border:0;flex:1;gap:2px;display:grid}.home-card-open:hover{background:#fff}.home-card-open strong{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed)}.home-card-open span{color:var(--ink-2);font-size:var(--text-sm)}.home-card-stats{color:var(--ink)!important}.home-card-actions{justify-content:center;gap:var(--space-2);padding:0 var(--space-4);border-left:1px solid var(--rule);flex-direction:column;display:flex}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.home-intake{margin-top:var(--space-5);padding:var(--space-4);border:1px solid var(--rule);border-left:4px solid var(--hsc-yellow);background:#fff}.home-intake h2{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);font-weight:800}.home-intake p{color:var(--ink-2);margin:var(--space-2) 0 var(--space-3);max-width:68ch}.home-sync{margin-top:var(--space-5);padding:var(--space-4);border:1px solid var(--rule);border-left:4px solid var(--hsc-green);gap:var(--space-2);background:#fff;display:grid}.home-sync h2{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);font-weight:800}.home-sync p{color:var(--ink-2);max-width:68ch;margin:0}.home-sync.is-error{border-left-color:var(--warn)}.home-sync.is-error [role=status]{color:var(--warn);font-weight:600}.home-sync .row-actions{justify-content:flex-start}.home-intake-row{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.home-intake-row a{color:var(--ink);text-decoration:none}.home-intake-row code{font-size:var(--text-xs);color:var(--ink-3);overflow-wrap:anywhere}.send-intake{gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--rule);display:grid}.send-intake-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.send-intake textarea{font:inherit;font-size:var(--text-sm);width:100%;line-height:1.5}.send-intake-subject{font-size:var(--text-sm);margin:0}.send-intake-ok{color:var(--ok);margin:0;font-weight:600}@media (width<=760px){.send-intake-grid{grid-template-columns:1fr}}.new-version{z-index:50;gap:var(--space-3);padding:var(--space-2) var(--space-3);color:#4a3b00;background:#fff4d6;border-bottom:1px solid #e6c56b;flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.workspace{flex-direction:column;height:100%;display:flex}.topbar{align-items:center;gap:var(--space-4);padding:8px var(--space-4);background:var(--ink);color:#eef2ec;flex-wrap:wrap;display:flex}.topbar .back{color:#eef2ec;border-color:#3b4a40}.topbar .back:hover{background:#24362a;border-color:#5c6e62}.topbar-title{font-size:var(--text-xl);font-variation-settings:"wdth" var(--w-condensed);text-overflow:ellipsis;white-space:nowrap;flex:200px;min-width:0;font-weight:800;overflow:hidden}.section-tabs{border-radius:var(--radius-md);background:#24362a;gap:2px;padding:3px;display:flex}.section-tabs button{color:#c6d0c8;border-radius:var(--radius-sm);font-weight:600;font-size:var(--text-sm);background:0 0;border:0;padding:6px 14px}.section-tabs button:hover{color:#fff}.section-tabs button.is-on{background:var(--hsc-yellow);color:var(--ink)}.design-grid{flex:1;grid-template-columns:250px minmax(0,1fr) 390px;min-height:0;display:grid}.room-list{border-right:1px solid var(--rule);background:var(--paper);flex-direction:column;display:flex;overflow-y:auto}.room-add{gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--rule);background:var(--paper);z-index:1;display:flex;position:sticky;top:0}.room-add select{border:1px solid var(--rule);border-radius:var(--radius-sm);background:#fff;flex:1;min-width:0;padding:6px}.room-empty{padding:var(--space-4)}.room-list ul{padding:var(--space-2);gap:2px;margin:0;list-style:none;display:grid}.room-item{text-align:left;border:0;border-left:4px solid var(--rule);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:0 0;gap:1px;width:100%;padding:8px 10px;display:grid}.room-item.type-grow{border-left-color:var(--sys-canopy)}.room-item.type-fertigation{border-left-color:var(--sys-water)}.room-item.type-mechanical{border-left-color:var(--sys-climate)}.room-item:hover{background:var(--sheet)}.room-item.is-selected{box-shadow:var(--shadow-sheet);background:#fff}.room-item-name{font-weight:700}.room-item-meta{font-size:var(--text-xs);color:var(--ink-2)}.stage{background:var(--sheet);min-width:0;min-height:0;position:relative}.view-switch{top:var(--space-3);right:var(--space-3);z-index:3;background:var(--ink);border-radius:999px;padding:3px;display:flex;position:absolute}.view-switch button{color:#c6d0c8;font-weight:700;font-size:var(--text-sm);background:0 0;border:0;border-radius:999px;padding:5px 18px}.view-switch button[aria-selected=true]{color:var(--ink);background:#fff}.plan-canvas,.three-wrap{position:absolute;inset:0}.plan-canvas svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.plan-canvas.tool-select svg{cursor:grab}.plan-canvas.tool-draw svg,.plan-canvas.tool-calibrate svg{cursor:crosshair}.plan-room-body{stroke:var(--ink);cursor:move}.tool-draw .plan-room-body,.tool-calibrate .plan-room-body,.tool-align .plan-room-body{pointer-events:none}.plan-room.is-selected .plan-room-body{stroke:var(--hsc-green)}.plan-bench{fill:var(--sys-canopy-tint);stroke:var(--sys-canopy);pointer-events:none}.plan-track{fill:var(--ink-2);fill-opacity:.55;pointer-events:none}.plan-dims{pointer-events:none}.plan-dims line{stroke:var(--ink-2)}.plan-dims text{fill:var(--ink);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--sheet);stroke-width:.3em;stroke-linejoin:round;font-weight:600}.plan-dims .is-overall line{stroke:var(--ink)}.plan-dims .is-overall text{font-weight:800}.plan-fixture{fill:var(--sys-light-tint);stroke:var(--sys-light);pointer-events:none}.plan-fixture.is-alt{fill:var(--sys-light);fill-opacity:.55}.plan-room-name{fill:var(--ink);font-variation-settings:"wdth" var(--w-condensed);paint-order:stroke;stroke:var(--sheet);stroke-width:.25em;font-weight:800}.plan-room-dims{fill:var(--ink-2);paint-order:stroke;stroke:var(--sheet);stroke-width:.25em;font-size:.78em}.plan-handle{fill:var(--hsc-yellow);stroke:var(--ink);cursor:nwse-resize}.plan-room.is-locked .plan-room-body{cursor:grab}.plan-draft{fill:color-mix(in srgb, var(--hsc-green) 12%, transparent);stroke:var(--hsc-green);stroke-dasharray:1 .5}.plan-calib line{stroke:var(--danger)}.plan-calib circle{fill:var(--danger)}.plan-tools{left:var(--space-3);top:var(--space-3);z-index:2;border:1px solid var(--rule);border-radius:var(--radius-md);box-shadow:var(--shadow-sheet);background:#fff;flex-wrap:wrap;gap:2px;max-width:calc(100% - 180px);padding:3px;display:flex;position:absolute}.plan-tools button{border-radius:var(--radius-sm);font-size:var(--text-sm);background:0 0;border:0;min-width:30px;padding:5px 10px;font-weight:600}.plan-tools button:hover:not(:disabled){background:var(--paper)}.plan-tools button.is-on{background:var(--ink);color:#fff}.plan-tools-gap{background:var(--rule);width:1px;margin:4px}.three-tools{top:auto;bottom:var(--space-3)}.plan-hint{z-index:2;background:var(--ink);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);max-width:min(520px,90%);margin:0;padding:8px 14px;position:absolute;top:56px;left:50%;transform:translate(-50%)}.plan-calib-form{z-index:4;border:1px solid var(--rule);border-top:4px solid var(--danger);width:min(360px,92%);padding:var(--space-4);box-shadow:var(--shadow-sheet);gap:var(--space-3);font-size:var(--text-sm);background:#fff;font-weight:600;display:grid;position:absolute;top:56px;left:50%;transform:translate(-50%)}.plan-calib-form label{gap:6px;display:grid}.title-block{right:var(--space-3);bottom:var(--space-3);z-index:2;border:2px solid var(--ink);width:330px;font-size:var(--text-sm);box-shadow:var(--shadow-sheet);background:#fff;position:absolute}.tb-head{border-bottom:2px solid var(--ink);padding:8px 10px;display:grid}.tb-head strong{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);font-weight:800;line-height:1.1}.tb-head span{color:var(--ink-2);font-size:var(--text-xs)}.tb-grid{grid-template-columns:repeat(3,1fr);margin:0;display:grid}.tb-grid div{border-right:1px solid var(--rule);border-bottom:1px solid var(--rule);border-top:3px solid var(--rule);padding:6px 10px}.tb-grid div:nth-child(3n){border-right:0}.tb-grid dt{font-size:var(--text-xs);color:var(--ink-2)}.tb-grid dd{font-weight:800;font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);margin:0}.tb-grid small{font-weight:500;font-size:var(--text-xs);color:var(--ink-2);margin-left:3px}.tb-grid .sys-canopy{border-top-color:var(--sys-canopy)}.tb-grid .sys-light{border-top-color:var(--sys-light)}.tb-grid .sys-climate{border-top-color:var(--sys-climate)}.tb-grid .sys-water{border-top-color:var(--sys-water)}.tb-foot{font-size:var(--text-xs);color:var(--ink-2);justify-content:space-between;align-items:center;padding:6px 10px;display:flex}.tb-scale{align-items:center;gap:6px;display:flex}.tb-scale-bar{border:1.5px solid var(--ink);border-top:0;height:6px;display:inline-block}.three-added{left:var(--space-3);bottom:calc(var(--space-3) + 48px);font-size:var(--text-sm);color:var(--ok);border-radius:var(--radius-sm);background:#fff;margin:0;padding:6px 10px;position:absolute;box-shadow:0 1px 3px #00000026}.three-note{right:var(--space-3);bottom:var(--space-3);font-size:var(--text-xs);color:var(--ink-2);border-radius:var(--radius-sm);background:#fffc;margin:0;padding:4px 8px;position:absolute}.room-tag3d span{background:var(--ink);color:#fff;font:700 12px var(--font);white-space:nowrap;pointer-events:none;border-radius:999px;padding:2px 8px}@media (width<=1100px){.design-grid{grid-template-columns:210px minmax(0,1fr) 330px}.title-block{width:280px}}@media (width<=860px){.design-grid{flex-direction:column;display:flex;overflow-y:auto}.room-list{border-right:0;border-bottom:1px solid var(--rule);max-height:none;overflow:visible}.room-list ul{grid-auto-columns:minmax(170px,60%);grid-auto-flow:column;overflow-x:auto}.design-grid>*{flex:none}.stage{height:70vh;min-height:520px}.title-block{border-width:0 0 2px;width:auto;margin:0;position:static}.plan-canvas{flex-direction:column;display:flex}.plan-canvas svg{flex:1;min-height:0}.plan-tools{right:var(--space-3);left:var(--space-3);flex-wrap:nowrap;max-width:none;top:52px;overflow-x:auto}.plan-tools button{white-space:nowrap}.three-tools{top:auto}.view-switch{top:8px;left:50%;right:auto;transform:translate(-50%)}.plan-hint,.plan-calib-form{top:100px}.section-tabs{width:100%;overflow-x:auto}.topbar-title{font-size:var(--text-lg)}}.three-error{place-content:center;gap:var(--space-3);padding:var(--space-5);text-align:left;max-width:520px;margin:0 auto;display:grid;position:absolute;inset:0}.three-error h2{font-size:var(--text-xl);font-variation-settings:"wdth" var(--w-condensed)}.three-error p{margin:0}.three-error .btn-primary{justify-self:start}.plan-hint p{margin:0}.plan-hint .row-actions{justify-content:flex-start;margin-top:8px}.btn-hint{color:var(--ink);border-radius:var(--radius-sm);font-weight:700;font-size:var(--text-xs);background:#fff;border:0;padding:4px 10px}.btn-hint:hover{background:var(--hsc-yellow)}.guide-toggle{border:1px solid var(--hsc-yellow);color:var(--hsc-yellow);border-radius:var(--radius-sm);font-weight:700;font-size:var(--text-sm);background:0 0;padding:6px 14px}.guide-toggle:hover,.guide-toggle.is-on{background:var(--hsc-yellow);color:var(--ink)}.guide{z-index:20;border-left:2px solid var(--ink);background:#fff;flex-direction:column;width:min(400px,100vw);display:flex;position:fixed;top:53px;bottom:0;right:0;overflow-y:auto;box-shadow:-12px 0 32px -16px #16241b59}.guide-head{justify-content:space-between;gap:var(--space-3);padding:var(--space-4);align-items:start;display:flex}.guide-head h2{font-size:var(--text-xl);font-variation-settings:"wdth" var(--w-condensed);font-weight:800}.guide-head p{color:var(--ink-2);font-size:var(--text-sm);margin:4px 0 0}.guide-bar{background:var(--paper);height:4px;margin:0 var(--space-4)}.guide-bar span{background:var(--hsc-green);transform-origin:0;height:100%;transition:transform var(--duration-normal,.3s) var(--ease-out-expo);display:block}.guide-steps{counter-reset:step;padding:var(--space-3) var(--space-4);gap:2px;margin:0;list-style:none;display:grid}.guide-steps li{counter-increment:step;border-left:3px solid var(--rule);gap:4px;padding:10px 12px;display:grid}.guide-steps li.is-next{border-left-color:var(--hsc-yellow);background:#fff8e8}.guide-steps li.is-done{border-left-color:var(--hsc-green)}.guide-steps li.is-done strong{color:var(--ink-2)}.guide-step-head{align-items:center;gap:10px;display:flex}.guide-step-head strong:before{content:counter(step) ". ";color:var(--ink-3)}.guide-step-head input{width:18px;height:18px;accent-color:var(--hsc-green);margin:0}.guide-check{border:1.5px solid var(--rule);color:#fff;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;font-size:12px;font-weight:800;display:grid}.is-done .guide-check{background:var(--hsc-green);border-color:var(--hsc-green)}.guide-steps p{font-size:var(--text-sm);color:var(--ink-2);margin:0 0 0 28px}.guide-steps .btn-link{font-size:var(--text-sm);justify-self:start}.guide-controls{padding:var(--space-4);border-top:1px solid var(--rule);background:var(--sheet);margin-top:auto}.guide-controls h3{font-size:var(--text-base);margin-bottom:var(--space-2);font-weight:800}.guide-controls dl{font-size:var(--text-sm);gap:6px;margin:0;display:grid}.guide-controls dl div{gap:var(--space-2);grid-template-columns:9.5em 1fr;display:grid}.guide-controls dt{font-weight:700}.guide-controls dd{color:var(--ink-2);margin:0}@media (width<=860px){.guide{border-left:0;top:0}}.siteplan-controls{gap:var(--space-3);display:grid}.slider{gap:4px var(--space-2);grid-template-columns:1fr auto;align-items:center;display:grid}.slider .field-label{grid-column:1/-1}.slider input[type=range]{width:100%;accent-color:var(--hsc-green)}.slider output{font-size:var(--text-sm);text-align:right;min-width:3.2em;font-weight:700}.siteplan-controls .btn-link{font-size:var(--text-sm);justify-self:start}.plan-popover{left:var(--space-3);z-index:4;border:1px solid var(--rule);border-top:3px solid var(--ink);width:300px;box-shadow:var(--shadow-sheet);padding:var(--space-4);gap:var(--space-3);background:#fff;display:grid;position:absolute;top:58px}.plan-popover>.btn-quiet{justify-self:end}@media (width<=860px){.plan-popover{top:100px;right:var(--space-3);width:auto}}.guide-step-actions{gap:var(--space-3);flex-wrap:wrap;align-items:center;margin-left:28px;display:flex}.guide-step-actions .btn-link{margin-left:0}.guide-video-btn{background:var(--ink);color:#fff;font-weight:700;font-size:var(--text-sm);border:0;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;display:inline-flex}.guide-video-btn span{color:var(--hsc-yellow);font-size:11px}.guide-video-btn:hover{background:var(--hsc-green)}.video-modal{z-index:60;padding:var(--space-4);background:#16241bd1;place-items:center;display:grid;position:fixed;inset:0}.video-modal-body{width:min(1100px,100%);padding:var(--space-4);gap:var(--space-3);border-top:4px solid var(--hsc-yellow);background:#fff;display:grid}.video-modal-body header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.video-modal-body h2{font-size:var(--text-xl);font-variation-settings:"wdth" var(--w-condensed);font-weight:800}.video-modal-body video{background:#000;width:100%;max-height:75vh;display:block}.plan-room.is-section .plan-room-body{stroke:var(--ink-2);stroke-dasharray:1.2 .6;stroke-opacity:.55}.plan-room.is-section:hover .plan-room-body{stroke-opacity:1}.plan-room.is-section.is-selected .plan-room-body{stroke:var(--hsc-green);stroke-opacity:1}.room-list li.is-section .room-item{margin-left:1rem}.plan-lines-over{mix-blend-mode:multiply}.plan-bench.is-blocked{fill:color-mix(in srgb, var(--danger) 30%, transparent);stroke:var(--danger)}.plan-door-gap{stroke:var(--sheet);stroke-linecap:butt}.plan-door-leaf{stroke:var(--ink);stroke-linecap:round}.plan-door-arc{fill:none;stroke:var(--ink-2)}.plan-door-jamb{fill:var(--ink)}.plan-door-hit{stroke:#0000}.plan-door.is-draggable{cursor:grab}.tool-draw .plan-door,.tool-calibrate .plan-door{pointer-events:none}.tool-door .plan-room-body{cursor:crosshair;pointer-events:none}.tool-door svg{cursor:crosshair}.plan-dryrack rect{fill:color-mix(in srgb, var(--sys-canopy-tint) 60%, transparent);stroke:var(--sys-canopy);stroke-dasharray:.6 .4}.plan-dryrack line{stroke:var(--sys-canopy)}.plan-dryrack path{stroke:var(--sys-canopy);fill:none}.plan-dryrack.is-floor rect{stroke-dasharray:none}.plan-dryrack .plan-dryrack-bar{stroke:var(--ink);stroke-linecap:round}.plan-dryrack.is-blocked rect{fill:color-mix(in srgb, var(--danger) 30%, transparent);stroke:var(--danger)}.tool-align .plan-room{opacity:.3}.tool-align .plan-room.is-selected{opacity:1}.tool-align .plan-room.is-selected .plan-room-body{fill:none;stroke-dasharray:2 1}.tool-align .plan-room.is-selected>:not(.plan-room-body){display:none}.plan-fan circle{fill:var(--sheet);stroke:var(--sys-climate)}.plan-fan path{stroke:var(--sys-climate);fill:none}.plan-fan.is-rack circle{fill:color-mix(in srgb, var(--sys-climate) 18%, var(--sheet))}.plan-fan.is-draggable{cursor:grab}.tool-draw .plan-fan,.tool-calibrate .plan-fan,.tool-door .plan-fan,.tool-align .plan-fan,.plan-fan:not(.is-draggable){pointer-events:none}.plan-fan-count{fill:var(--sys-climate);paint-order:stroke;stroke:var(--sheet);stroke-width:.25em;pointer-events:none;font-weight:800}.plan-fan-aim path:first-child{stroke:var(--sys-climate);fill:none}.plan-fan-aim path:last-child{fill:var(--sys-climate);stroke:none}.plan-under{fill:#8b3fd1;stroke:#5d2390;pointer-events:none;opacity:.85}.plan-rackshare{--phase:var(--sys-canopy)}.plan-rackshare.phase-mother{--phase:var(--phase-mother)}.plan-rackshare.phase-clone{--phase:var(--phase-clone)}.plan-rackshare.phase-flower{--phase:var(--phase-flower)}.plan-rackshare rect{stroke:var(--phase);cursor:pointer}.plan-rackshare.is-bottom rect{fill:color-mix(in srgb, var(--phase) 22%, transparent)}.plan-rackshare.is-upper rect{fill:none;stroke-dasharray:1.4 .7;pointer-events:visibleStroke}.plan-rackshare.is-bottom.is-alt rect{fill:color-mix(in srgb, var(--phase) 42%, transparent)}.plan-rackshare-hatch{stroke:var(--phase);stroke-opacity:.55;fill:none}.plan-rackshare.is-selected rect{stroke:var(--hsc-green)}.plan-rackshare-name{fill:var(--phase);font-variation-settings:"wdth" var(--w-condensed);paint-order:stroke;stroke:var(--sheet);stroke-width:.3em;font-weight:800}.plan-fert-item circle,.plan-fert-item rect{fill:#fff;stroke:var(--sys-water)}.plan-fert-item.kind-storage circle{fill:color-mix(in srgb, var(--sys-water-tint) 70%, #fff)}.plan-fert-item.kind-batch circle,.plan-fert-item.kind-stock circle{fill:color-mix(in srgb, var(--hsc-yellow) 25%, #fff)}.plan-fert-item.kind-ro rect,.plan-fert-item.kind-pump rect,.plan-fert-item.kind-injector rect{fill:var(--sys-water);fill-opacity:.25}.plan-fert-item.kind-extra rect{stroke-dasharray:.6 .4}.plan-fert-item text{fill:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.demo-viewer{background:var(--paper,#e9ebe6);grid-template-rows:auto 1fr;display:grid;position:fixed;inset:0}.demo-bar{color:#f2f0e6;background:#13200f;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;display:flex}.demo-bar strong{font-family:var(--font-display,inherit);font-size:17px}.demo-bar span{color:#c8cfbf;flex:1;font-size:14px}.demo-bar .btn-primary{color:#13200f;white-space:nowrap;background:#feae1e;border-radius:8px;padding:8px 14px;font-weight:700;text-decoration:none}.demo-stage{min-height:0;position:relative}.demo-room{z-index:5;background:#fff;border-radius:12px;width:min(320px,100% - 24px);padding:14px 16px;position:absolute;top:12px;right:12px;box-shadow:0 10px 30px #0000002e}.demo-room h2{margin:0 24px 8px 0;font-size:18px}.demo-room .btn-icon{position:absolute;top:8px;right:8px}.demo-room dl{gap:6px;margin:0;font-size:14px;display:grid}.demo-room dl div{grid-template-columns:76px 1fr;gap:8px;display:grid}.demo-room dt{color:var(--ink-2,#555)}.demo-room dd{margin:0}@media (width<=600px){.demo-room{top:auto;bottom:64px}}.demo-viewer .three-note{max-width:min(420px,45%);left:auto;right:12px}@media (width<=700px){.demo-viewer .three-note{display:none}}.inspector{border-left:1px solid var(--rule);background:#fff;flex-direction:column;min-height:0;display:flex}.inspector-tabs{border-bottom:1px solid var(--rule);background:var(--paper);gap:0;display:flex;overflow-x:auto}.tab{font-weight:700;font-size:var(--text-sm);color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;flex:1 0 auto;padding:10px 8px 8px}.tab:hover{color:var(--ink)}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--ink);background:#fff}.tab.sys-canopy[aria-selected=true]{border-bottom-color:var(--sys-canopy)}.tab.sys-light[aria-selected=true]{border-bottom-color:var(--sys-light)}.tab.sys-climate[aria-selected=true]{border-bottom-color:var(--sys-climate)}.tab.sys-water[aria-selected=true]{border-bottom-color:var(--sys-water)}.inspector-body{flex:1;overflow-y:auto}.panel{padding:var(--space-4);gap:var(--space-3);--sys:var(--ink);--sys-tint:var(--paper);align-content:start;display:grid}.panel.sys-canopy{--sys:var(--sys-canopy);--sys-tint:var(--sys-canopy-tint)}.panel.sys-light{--sys:var(--sys-light);--sys-tint:var(--sys-light-tint)}.panel.sys-climate{--sys:var(--sys-climate);--sys-tint:var(--sys-climate-tint)}.panel.sys-water{--sys:var(--sys-water);--sys-tint:var(--sys-water-tint)}.panel-title{font-size:var(--text-xl);font-variation-settings:"wdth" var(--w-condensed);font-weight:800}.panel-h{font-size:var(--text-base);font-variation-settings:"wdth" var(--w-condensed);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--rule);font-weight:800}.field{gap:4px;min-width:0;display:grid}.field-label{font-size:var(--text-xs);color:var(--ink-2);font-weight:600}.field-hint{font-size:var(--text-xs);color:var(--ink-3)}.field-input{border:1px solid var(--rule);border-radius:var(--radius-sm);transition:border-color var(--duration-fast);background:#fff;align-items:center;display:flex}.field-input:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--hsc-yellow) 45%, transparent)}.field-input.is-invalid{border-color:var(--danger)}.field-input:has(input:disabled){background:var(--paper);color:var(--ink-3)}.field-input input:disabled{cursor:not-allowed}.field-input input,.field-input select{background:0 0;border:0;outline:none;flex:1;width:100%;min-width:0;padding:7px 8px}.field-unit{font-size:var(--text-xs);color:var(--ink-3);white-space:nowrap;padding:0 8px}.field textarea{border:1px solid var(--rule);border-radius:var(--radius-sm);resize:vertical;padding:8px}.field-grid{gap:var(--space-3);display:grid}.field-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.toggle{font-size:var(--text-sm);align-items:center;gap:8px;display:flex}.toggle input{accent-color:var(--hsc-green);width:16px;height:16px}.readouts{background:var(--rule);border:1px solid var(--rule);border-left:4px solid var(--sys,var(--ink));grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.readouts>*{background:var(--sys-tint,var(--paper));gap:1px;padding:8px 10px;display:grid}.readout-value{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);font-weight:800}.readout-value small{font-size:var(--text-xs);color:var(--ink-2);margin-left:4px;font-weight:500}.readout-label{font-size:var(--text-xs);color:var(--ink-2)}.readout-sub{font-size:var(--text-xs);color:var(--ink-2);font-variant-numeric:tabular-nums}.readout.tone-ok .readout-value{color:var(--ok)}.readout.tone-warn .readout-value{color:var(--warn)}.readout.tone-warn{box-shadow:inset 3px 0 0 var(--warn)}.compare{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.compare th{text-align:left;font-size:var(--text-xs);color:var(--ink-2);border-bottom:1px solid var(--rule);padding:4px 6px;font-weight:600}.compare td{border-bottom:1px solid var(--grid);padding:6px}.compare .pos{color:var(--ok);font-weight:700}.compare .neg{color:var(--warn);font-weight:700}.equip-row{grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr)) auto;align-items:end;gap:6px;display:grid}.equip-row.cols-3{grid-template-columns:minmax(0,1.6fr) repeat(2,minmax(0,1fr)) auto}.setpoints{gap:var(--space-3);display:grid}.setpoint-step{gap:var(--space-2);min-width:0;padding:var(--space-2) var(--space-3) var(--space-3);border:1px solid var(--rule);border-left:3px solid var(--sys,var(--ink-3));border-radius:var(--radius-sm);margin:0;display:grid}.setpoint-step legend{font-weight:700;font-size:var(--text-sm);padding:0 4px}.setpoint-table caption{text-align:left;font-weight:700;font-size:var(--text-sm);padding-bottom:4px}.setpoint-table th[scope=row]{color:var(--ink);font-weight:600;font-size:var(--text-sm)}.setpoint-table .is-sizing{box-shadow:inset 0 -2px 0 var(--sys,var(--ink));font-weight:800}.setpoint-step .field-grid{align-items:start}.setpoint-scroll{max-width:100%;overflow-x:auto}.assumptions[open]{grid-template-columns:minmax(0,1fr)}.setpoint-table{font-size:var(--text-xs)}.setpoint-table td{white-space:nowrap;font-variant-numeric:tabular-nums}.setpoint-head{grid-template-columns:minmax(0,1fr) 76px auto;align-items:end;gap:6px;display:grid}.assumptions{border:1px dashed var(--rule);border-radius:var(--radius-sm);padding:8px 10px}.assumptions summary{cursor:pointer;font-weight:700;font-size:var(--text-sm)}.assumptions[open]{gap:var(--space-3);display:grid}.upload{cursor:pointer;border:1.5px dashed var(--sys,var(--ink-3));border-radius:var(--radius-md);background:var(--sys-tint,var(--paper));font-weight:700;font-size:var(--text-sm);justify-content:center;align-items:center;padding:14px;display:flex}.upload:hover{background:#fff}.upload:focus-within{outline:2px solid var(--hsc-yellow)}.upload input{opacity:0;width:1px;height:1px;position:absolute}.page-picker{gap:var(--space-3);display:grid}.page-grid{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(96px,1fr));max-height:420px;padding:2px;display:grid;overflow-y:auto}.page-thumb{cursor:pointer;font-size:var(--text-xs);text-align:center;border:1px solid var(--rule);border-radius:var(--radius-sm);background:#fff;gap:4px;padding:4px;display:grid;position:relative}.page-thumb input{accent-color:var(--hsc-green);width:16px;height:16px;position:absolute;top:6px;left:6px}.page-thumb img,.page-wait{aspect-ratio:8.5/11;object-fit:contain;background:var(--paper);width:100%}.page-thumb.is-on{border-color:var(--hsc-green);box-shadow:0 0 0 2px var(--hsc-green)}.page-thumb:focus-within{outline:2px solid var(--hsc-yellow)}.map-card{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--rule);border-top:3px solid var(--sys-light);display:grid}.map-thumb{border:1px solid var(--rule);cursor:zoom-in;background:#fff;padding:0}.map-thumb img{object-fit:contain;width:100%;max-height:240px;display:block}.lightbox{z-index:50;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-4);background:#16241bd9;flex-direction:column;display:flex;position:fixed;inset:0}.lightbox img{background:#fff;max-width:100%;max-height:85vh}@media (width<=860px){.inspector{border-left:0;border-top:1px solid var(--rule)}.inspector-body{overflow:visible}.equip-row,.equip-row.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.equip-row .btn-icon{justify-self:start}}.copy-layout{border-top:1px solid var(--rule);margin-top:1.25rem;padding-top:.75rem}.copy-layout summary{cursor:pointer;color:var(--hsc-green);padding:.25rem 0;font-weight:700}.copy-layout summary:focus-visible{outline:2px solid var(--hsc-yellow);outline-offset:2px}.copy-layout fieldset{border:0;gap:.35rem;margin:.6rem 0;padding:0;display:grid}.copy-layout legend{margin-bottom:.3rem;font-size:.8rem;font-weight:700}.sizing-check{border-left:3px solid var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent);margin:0;padding:.5rem .75rem}.sizing-check.is-short{border-left-color:var(--warn);background:color-mix(in srgb, var(--warn) 9%, transparent)}.sizing-check.is-short strong{color:var(--warn)}.sizing-check ul{gap:2px;margin:.25rem 0 0;padding-left:1.1rem;display:grid}.section-note{background:var(--sys-canopy-tint);border-left:3px solid var(--sys-canopy);margin:0 0 .75rem;padding:.5rem .75rem}.section-list{gap:.25rem;margin:0 0 .6rem;padding:0;list-style:none;display:grid}.fixture-picker{margin-bottom:.5rem}.fixture-picker .fixture-source{margin:.25rem 0 .4rem;font-size:.8rem}.door-item{border:1px solid var(--rule);border-radius:6px;min-width:0;margin:0 0 .6rem;padding:.5rem .75rem .6rem}.door-item legend{padding:0 .25rem;font-weight:700}.load-breakdown h4{margin:.75rem 0 .35rem;font-size:.9rem}.load-table{margin:0;padding:0;list-style:none}.load-table li{border-bottom:1px solid var(--rule);grid-template-columns:1fr auto;column-gap:.75rem;padding:.4rem 0;display:grid}.load-table .load-label{font-weight:600}.load-table .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.load-table .load-basis{color:var(--ink-2);overflow-wrap:anywhere;grid-column:1/-1;font-size:.82rem}.load-table li.is-total{border-top:2px solid var(--ink);border-bottom:0}.load-table li.is-total .load-label,.load-table li.is-total .num{font-weight:800}.fan-item{border:1px solid var(--rule);border-radius:6px;min-width:0;margin:0 0 .6rem;padding:.5rem .75rem}.fan-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;display:grid}.report-load,.report-fert{break-inside:avoid;margin-bottom:1rem}.report-load h3,.report-fert h3{margin:.5rem 0 0}.fan-row>*,.fan-item .field{min-width:0}.fan-power{align-content:start;gap:4px;display:grid}.fan-power strong{font-variant-numeric:tabular-nums;padding:8px 0}.fan-basis{margin:0 0 .4rem;font-size:.82rem}.fan-add{justify-content:flex-start;align-items:end}.fan-add .field{flex:220px;min-width:0}.fert-zone{border:1px solid var(--rule);border-left:3px solid var(--sys-water);border-radius:var(--radius-sm);gap:var(--space-2);min-width:0;padding:8px 10px;display:grid}.fert-zone legend{font-weight:700;font-size:var(--text-sm);padding:0 4px}.fert-zone legend .muted{margin-left:4px;font-weight:500}.fert-serves{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-left:24px;display:grid}.fert-panel .field-grid{align-items:start}.weather-lookup{gap:var(--space-2);margin-bottom:var(--space-2);grid-template-columns:1fr auto;align-items:end;display:grid}.weather-lookup>p{grid-column:1/-1;margin:0}.sheet{width:100%;max-width:1100px;padding:var(--space-6) var(--space-4) 80px;gap:var(--space-4);flex:1;grid-auto-rows:max-content;align-content:start;margin:0 auto;display:grid;overflow-y:auto}.sheet-head h1,.report-head h1{font-variation-settings:"wdth" var(--w-condensed);font-size:clamp(1.75rem,1.2rem + 2vw,2.75rem);font-weight:800}.sheet-head p{color:var(--ink-2);max-width:70ch;margin:var(--space-2) 0 0}.sheet-h{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);border-bottom:2px solid var(--ink);margin-top:var(--space-4);padding-bottom:6px;font-weight:800}.sheet-h.sys-water{border-bottom-color:var(--sys-water)}.sheet-controls{gap:var(--space-3);flex-wrap:wrap;align-items:end;display:flex}.sheet-controls .field{min-width:240px}.sheet-fields{max-width:820px}.data{border-collapse:collapse;width:100%;font-size:var(--text-sm);background:#fff}.data th{text-align:left;font-size:var(--text-xs);color:var(--ink-2);border-bottom:2px solid var(--ink);background:var(--sheet);white-space:nowrap;padding:8px 10px;font-weight:600}.data td{border-bottom:1px solid var(--grid);padding:8px 10px}.data td:first-child{font-weight:700}.data th.num,.data td.num{text-align:right;font-variant-numeric:tabular-nums}.report-views{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.report-views figure{break-inside:avoid;margin:0}.report-views img{border:1px solid var(--rule);width:100%;height:auto;display:block}.report-views figcaption{gap:var(--space-2);font-size:var(--text-sm);align-items:center;margin-top:4px;display:flex}.report-views figcaption input{font:inherit;flex:1}@media (width<=760px){.report-views{grid-template-columns:1fr}}.report-check{background:var(--sheet);border-left:3px solid var(--warn);padding:0 var(--space-3) var(--space-3);margin:var(--space-4) 0}.data .not-named{color:var(--warn);font-style:italic}.climate-check .is-short{color:var(--warn)}.climate-check .is-ok{color:var(--ok);font-weight:600}.climate-check-sum{font-weight:600}.climate-check-sum.is-short{color:var(--warn)}.data.equipment tr.group-start td{border-top:2px solid var(--rule)}.sheet-sub{font-size:var(--text-base);font-variation-settings:"wdth" var(--w-condensed);margin:var(--space-4) 0 var(--space-2);font-weight:800}.data.compact td,.data.compact th{padding:5px 8px}.data.weeks td{white-space:nowrap}.room-nutrients{border:1px solid var(--rule);border-left:4px solid var(--sys-water);background:#fff}.room-nutrients-head{text-align:left;gap:var(--space-3);background:0 0;border:0;flex-wrap:wrap;align-items:baseline;width:100%;padding:10px 12px;display:flex}.room-nutrients-head strong{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed)}.room-nutrients-head span{color:var(--ink-2);font-size:var(--text-sm)}.room-nutrients-head:after{content:"Show weekly schedule";color:var(--hsc-green);font-weight:700;font-size:var(--text-sm);margin-left:auto}.room-nutrients-head[aria-expanded=true]:after{content:"Hide weekly schedule"}.price-rows{background:var(--rule);border:1px solid var(--rule);gap:1px;display:grid}.price-row{gap:var(--space-3);background:#fff;grid-template-columns:160px 130px 90px 130px minmax(120px,1fr);align-items:end;padding:8px 12px;display:grid}.price-name{font-variation-settings:"wdth" var(--w-condensed);font-size:var(--text-base);align-self:center}.price-each{font-size:var(--text-sm);color:var(--ink-2);text-align:right;align-self:center}.data tfoot th,.data tfoot td{border-top:2px solid var(--ink);text-align:left;padding:8px 10px}.readouts.big{grid-template-columns:repeat(4,minmax(0,1fr))}.readouts.big>div{background:#fff;gap:2px;padding:12px 14px;display:grid}.readouts.big .readout-value{font-size:var(--text-xl)}.readouts.big .sys-canopy{box-shadow:inset 0 3px 0 var(--sys-canopy)}.readouts.big .sys-light{box-shadow:inset 0 3px 0 var(--sys-light)}.readouts.big .sys-climate{box-shadow:inset 0 3px 0 var(--sys-climate)}.readouts.big .sys-water{box-shadow:inset 0 3px 0 var(--sys-water)}.notes{background:var(--sheet);border:1px solid var(--rule);padding:var(--space-4);font-size:var(--text-sm);color:var(--ink-2)}.notes h3{font-size:var(--text-base);color:var(--ink);margin-bottom:var(--space-2)}.notes ul{gap:4px;margin:0;padding-left:18px;display:grid}.report{box-shadow:var(--shadow-sheet);margin-top:var(--space-5);margin-bottom:var(--space-6);background:#fff}.report-head{justify-content:space-between;gap:var(--space-4);padding-bottom:var(--space-3);border-bottom:3px solid var(--ink);flex-wrap:wrap;display:flex}.report-head p{color:var(--ink-2);margin:4px 0 0}.report-meta{font-size:var(--text-sm);color:var(--ink-2);justify-items:end;gap:4px;display:grid}.report-plan{border:1px solid var(--rule);background:var(--sheet);width:100%;max-height:560px;position:relative;overflow:hidden}.report-plan svg{width:100%;height:100%;position:absolute;inset:0}.siteplan-sheet{margin-top:var(--space-4);border:2px solid var(--ink);background:#fff;grid-template-columns:minmax(0,1fr) 290px;display:grid}.siteplan-sheet .report-plan{background:#fff;border:0;align-self:center;max-height:640px}.sp-scale rect{fill:#fff;stroke:var(--ink)}.sp-scale rect.is-dark{fill:var(--ink)}.sp-scale text{fill:var(--ink);stroke:none;font-weight:600}.sp-block{border-left:2px solid var(--ink);font-size:var(--text-xs);flex-direction:column;display:flex}.sp-group{border-bottom:1px solid var(--ink);flex-direction:column;display:flex}.sp-group:last-child{border-bottom:0}.sp-group>*{border-bottom:1px solid var(--rule);margin:0;padding:8px 10px}.sp-group>:last-child{border-bottom:0}.sp-brand{background:var(--hsc-green);color:#fff;align-items:center;gap:10px;display:flex}.sp-brand img{width:52px;height:52px;display:block}.sp-brand div{display:grid}.sp-brand strong{font-size:var(--text-base);font-variation-settings:"wdth" var(--w-condensed);font-weight:800}.sp-brand span{color:var(--hsc-yellow);font-weight:600}.sp-title{gap:2px;display:grid}.sp-title h2{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);margin:0;font-weight:800;line-height:1.1}.sp-title span{color:var(--ink-2);font-weight:600}.sp-facts,.sp-totals{gap:4px;display:grid}.sp-totals{grid-template-columns:1fr 1fr}.sp-facts div,.sp-totals div{gap:0;display:grid}.sp-block dt{color:var(--ink-3);font-weight:600}.sp-block dd{color:var(--ink);overflow-wrap:anywhere;margin:0;font-weight:600}.sp-rooms{border-collapse:collapse;width:100%}.sp-rooms th{text-align:left;color:var(--ink-3);padding:0 4px 2px 0;font-weight:600}.sp-rooms td{border-top:1px solid var(--rule);padding:1px 4px 1px 0}.sp-rooms{table-layout:fixed}.sp-rooms th:first-child{width:32%}.sp-rooms th:nth-child(2){width:22%}.sp-rooms th:nth-child(4){width:13%}.sp-rooms td{overflow-wrap:anywhere;vertical-align:top}.sp-rooms .num{text-align:right;font-variant-numeric:tabular-nums}.sp-rooms .num.is-dims{white-space:nowrap}.sp-rooms tr.is-section td:first-child{color:var(--ink-2);padding-left:10px}.sp-legend{grid-template-columns:1fr 1fr;gap:4px;list-style:none;display:grid}.sp-legend li{align-items:center;gap:6px;display:flex}.sp-legend svg{flex:none;width:22px;height:14px;overflow:visible}.sp-note{color:var(--ink-2);font-style:italic}@media (width<=860px){.siteplan-sheet{grid-template-columns:1fr}.sp-block{border-left:0;border-top:2px solid var(--ink)}}.report-nutrient-table{max-width:560px}.report-nutrient-note{font-size:var(--text-sm);margin:var(--space-2) 0 0;max-width:72ch}.report-maps{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.report-maps figure{border:1px solid var(--rule);margin:0}.report-maps img{width:100%;display:block}.report-maps figcaption{font-size:var(--text-sm);padding:8px 10px}.report-notes{white-space:pre-wrap;margin:0}.disclaimer{font-size:var(--text-xs);color:var(--ink-3);border-top:1px solid var(--rule);padding-top:var(--space-3);margin:0}@media (width<=760px){.readouts.big{grid-template-columns:repeat(2,minmax(0,1fr))}.sheet{padding-top:var(--space-5)}.report-meta{justify-items:start}.price-row{grid-template-columns:1fr 1fr}.price-name{grid-column:1/-1}.price-each{text-align:left}}@media print{@page{margin:12mm}body{background:#fff}.topbar,.no-print,.banner-error{display:none!important}.workspace,.sheet{height:auto;overflow:visible}.report{box-shadow:none;max-width:none;margin:0;padding:0}.data,.report-plan,.report-maps figure{break-inside:avoid}.siteplan-sheet{break-before:page;break-after:page;break-inside:avoid;grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;height:232mm;margin:0}.siteplan-sheet .report-plan{height:100%;max-height:none;aspect-ratio:auto!important}.siteplan-sheet .report-plan svg{width:calc(100% - 8mm);height:calc(100% - 8mm);inset:4mm}.sp-block{border-left:0;border-top:2px solid var(--ink);grid-template-columns:minmax(0,1fr) minmax(0,.9fr) minmax(0,1.4fr);font-size:7pt;display:grid}.sp-rooms{font-size:6.5pt}.sp-group{border-bottom:0;border-left:1px solid var(--ink)}.sp-group:first-child{border-left:0}.sp-group>*{padding:4px 7px}.sp-brand img{width:40px;height:40px}.sp-title h2{font-size:12pt}.sp-brand,.sp-scale rect.is-dark{-webkit-print-color-adjust:exact;print-color-adjust:exact}.sheet-h,.sheet-sub{break-after:avoid}.scroll-x{overflow:visible}.data.compact{font-size:7pt}.data.compact th{white-space:normal;font-size:6.5pt}.data.compact th,.data.compact td{padding:3px 4px}}.render-bar{gap:var(--space-2) var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;align-items:end;display:flex}.render-bar>p{flex:320px;margin:0}.report-views figure[aria-busy=true] img{opacity:.55;transition:opacity var(--duration-normal,.3s) ease}.render-row{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.render-pick{border:1px solid var(--rule);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.render-pick button{font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:5px 10px}.render-pick button+button{border-left:1px solid var(--rule)}.render-pick button[aria-checked=true]{background:var(--hsc-green);color:#fff;font-weight:700}.render-pick button:focus-visible{outline:2px solid var(--hsc-yellow);outline-offset:-2px}.render-note{font-size:var(--text-sm);margin-top:var(--space-2)}.cell-sub{color:var(--ink-2);white-space:nowrap;font-size:.85em}.intake{max-width:980px;padding:var(--space-6) var(--space-4) 80px;margin:0 auto}.intake-head{border-bottom:3px solid var(--ink);padding-bottom:var(--space-4)}.intake-head h1{font-size:var(--text-display);font-variation-settings:"wdth" var(--w-condensed);font-weight:800;line-height:.95}.intake-lede{color:var(--ink-2);max-width:66ch;margin:var(--space-3) 0;font-size:var(--text-base)}.intake-steps{margin:0 0 var(--space-4);font-size:var(--text-sm);gap:4px;padding-left:20px;display:grid}.intake-actions,.intake-foot{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.intake-saved{color:var(--ok);margin:var(--space-3) 0 0;font-weight:600}.intake-foot{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--rule);font-size:var(--text-sm)}.intake-section{padding:var(--space-5) 0 var(--space-2);border-bottom:1px solid var(--rule);break-inside:avoid-page}.intake-section h2{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-xl);font-variation-settings:"wdth" var(--w-condensed);font-weight:800;display:flex}.intake-num{background:var(--hsc-green);color:#fff;width:1.6em;height:1.6em;font-size:var(--text-base);border-radius:50%;flex:none;place-items:center;display:inline-grid}.intake-section>summary{cursor:pointer;padding-bottom:var(--space-3);gap:4px;padding-right:36px;list-style:none;display:grid;position:relative}.intake-section>summary::-webkit-details-marker{display:none}.intake-section>summary:after{content:"+";color:var(--hsc-green);font-size:26px;font-weight:700;line-height:1;position:absolute;top:2px;right:4px}.intake-section[open]>summary:after{content:"–"}.intake-section>summary h2{margin-bottom:0}.intake-section>summary:focus-visible{outline:2px solid var(--hsc-yellow);outline-offset:4px;border-radius:var(--radius-sm)}.intake-section:not([open])>summary:hover h2{color:var(--hsc-green)}.intake-about{color:var(--ink-2);font-size:var(--text-sm);padding-left:calc(1.6em + var(--space-3));flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.intake-essential{background:var(--hsc-yellow);color:#13200f;font-weight:700;font-size:var(--text-xs);border-radius:999px;padding:2px 8px}.intake-count{color:var(--ok);font-weight:600}.intake-next{margin:var(--space-4) 0 var(--space-2)}.intake-help{color:var(--ink-2);font-size:var(--text-sm);margin:0 0 var(--space-3);max-width:70ch}.intake-grid{gap:var(--space-3) var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.intake-q{align-content:start;gap:4px;min-width:0;display:grid}.intake-q.is-long{grid-column:1/-1}.intake-q label{font-size:var(--text-sm);font-weight:600}.intake-q small{color:var(--ink-3);font-size:var(--text-xs)}.intake-line{border-bottom:1.5px solid var(--ink-2);background:#fff;align-items:center;display:flex}.intake-line:focus-within,.intake-q select:focus,.intake-q textarea:focus{outline:2px solid var(--hsc-yellow);outline-offset:1px}.intake-line input{min-width:0;font:inherit;background:0 0;border:0;outline:none;flex:1;padding:7px 8px}.intake-unit{color:var(--ink-3);font-size:var(--text-sm);white-space:nowrap;padding:0 8px}.intake-q select,.intake-q textarea,.intake-room input,.intake-room select,.intake-price input,.intake-price select{font:inherit;border:1px solid var(--rule);border-radius:var(--radius-sm);background:#fff;width:100%;min-width:0;padding:7px 8px}.intake-choices{font-size:var(--text-sm);flex-wrap:wrap;gap:6px 14px;display:flex}.intake-choices span:before{content:"○ "}.intake-choices .is-picked:before{content:"● "}.intake-checks{gap:var(--space-2);display:grid}.intake-check{gap:var(--space-2);font-size:var(--text-base);align-items:center;display:flex}.intake-check input{width:18px;height:18px;accent-color:var(--hsc-green)}.intake-rooms,.intake-prices{margin-bottom:var(--space-3);gap:6px;display:grid}.intake-room{grid-template-columns:minmax(110px,1.6fr) minmax(96px,1.2fr) repeat(8,minmax(52px,1fr)) 64px;align-items:center;gap:6px;display:grid}.intake-room.is-head,.intake-price.is-head{font-size:var(--text-xs);color:var(--ink-2);align-items:end;font-weight:600}.intake-rooms>.btn-quiet{justify-self:start}.intake-price{grid-template-columns:minmax(110px,1.5fr) 1fr 1fr 1fr;align-items:center;gap:6px;max-width:640px;display:grid}@media screen{.print-only{display:none!important}}.intake-cell{gap:2px;min-width:0;display:grid}.intake-cell-label{font-size:var(--text-xs);color:var(--ink-2);font-weight:600;display:none}@media (width<=900px){.intake-room.is-head{display:none}.intake-room{padding:var(--space-3);border:1px solid var(--rule);background:#fff;grid-template-columns:repeat(2,minmax(0,1fr))}.intake-cell-label{display:block}}@media (width<=560px){.intake-grid{grid-template-columns:1fr}.intake-price{grid-template-columns:1fr 1fr}.intake-price strong{grid-column:1/-1}.intake-price.is-head{display:none}}@media print{.intake{max-width:none;padding:0}.intake-head h1{font-size:28pt}.print-only{display:block}.intake-choices.print-only{display:flex}.intake-section{padding-top:14pt}.intake-section>summary:after,.intake-about .intake-count,.intake-q select{display:none}.intake-q textarea{resize:none;min-height:60pt}.intake-room,.intake-price{break-inside:avoid}.intake-room input,.intake-room select,.intake-price input,.intake-price select{appearance:none;border:0;border-bottom:1px solid #555;border-radius:0}}.intake-needs{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.intake-need{min-width:0;padding:var(--space-3) var(--space-4) var(--space-4);gap:var(--space-3);border:1px solid var(--rule);border-top:4px solid var(--rule);border-radius:var(--radius-sm);background:#fff;align-content:start;margin:0;display:grid}.intake-need.is-help{border-top-color:var(--hsc-yellow)}.intake-need.is-decided{border-top-color:var(--sys-climate)}.intake-need.is-set{border-top-color:var(--hsc-green)}.intake-need.is-none{opacity:.6}.intake-need legend{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);margin-left:-4px;padding:0 4px;font-weight:800}.intake-need-status{flex-wrap:wrap;gap:6px;display:flex}.intake-need-status label{font-size:var(--text-sm);cursor:pointer;border:1px solid var(--rule);background:var(--sheet);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;display:inline-flex}.intake-need-status label:hover{border-color:var(--ink-2)}.intake-need-status label.is-on{background:var(--ink);border-color:var(--ink);color:#fff}.intake-need-status label:focus-within{outline:2px solid var(--hsc-yellow);outline-offset:1px}.intake-need-status input{opacity:0;width:1px;height:1px;position:absolute}.intake-need .intake-q>span{font-size:var(--text-sm);font-weight:600}.intake-plain{font:inherit;border:1px solid var(--rule);border-radius:var(--radius-sm);width:100%;min-width:0;padding:7px 8px}.intake-need-brands{gap:6px;display:grid}.intake-need-brands>span{font-size:var(--text-sm);font-weight:600}.intake-need-brands>div{flex-wrap:wrap;gap:6px 16px;display:flex}.intake-need-brands .intake-check{font-size:var(--text-sm)}@media (width<=760px){.intake-needs{grid-template-columns:1fr}}@media print{.intake-needs{grid-template-columns:1fr 1fr}.intake-need{break-inside:avoid;opacity:1}.intake-need .print-only{display:grid}.intake-need-status label{color:var(--ink);background:0 0}.intake-need-status label:before{content:"○"}.intake-need-status label.is-on:before{content:"●"}}.intake-checks+.intake-grid{margin-top:var(--space-4)}.intake-check-row{align-items:center;gap:4px var(--space-3);flex-wrap:wrap;display:flex}.intake-link{font-size:var(--text-sm);color:var(--hsc-green);text-underline-offset:2px}.intake-link:hover{color:var(--ink)}.intake-link:focus-visible{outline:2px solid var(--hsc-yellow);outline-offset:2px}.intake-needs:has(>:only-child){grid-template-columns:1fr}.intake-needs+.intake-checks,.intake-needs+.intake-grid{margin-top:var(--space-4)}.intake-need-label{font-size:var(--text-sm);align-self:center;margin-right:4px;font-weight:600}.intake-grid+.intake-checks{margin-top:var(--space-4)}.intake-submit{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--rule);border-top:4px solid var(--hsc-green);border-radius:var(--radius-sm);gap:var(--space-3);background:#fff;display:grid}.intake-submit h2{font-size:var(--text-xl);font-variation-settings:"wdth" var(--w-condensed);margin:0;font-weight:800}.intake-submit input[type=file]{font:inherit}.intake-review{max-width:900px;padding:var(--space-5) var(--space-4) 80px;background:#fff;margin:0 auto}.intake-review-bar{gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;align-items:center;display:flex}.intake-review-head{border-bottom:3px solid var(--hsc-green);padding-bottom:var(--space-3);margin-bottom:var(--space-4)}.intake-review-head p{color:var(--ink-2);margin:4px 0 0}.intake-review-kicker{font-weight:700;font-size:var(--text-sm);color:var(--hsc-green)!important}.intake-review-head h1{font-size:var(--text-display);font-variation-settings:"wdth" var(--w-condensed);margin:2px 0 6px;font-weight:800;line-height:1.05}.intake-review-section{margin-top:var(--space-5);break-inside:avoid-page}.intake-review-section h2{font-size:var(--text-lg);font-variation-settings:"wdth" var(--w-condensed);margin:0 0 var(--space-2);border-bottom:1px solid var(--ink);break-after:avoid;padding-bottom:6px;font-weight:800}.intake-review-section dl{margin:0}.intake-review-section dl>div{gap:var(--space-3);border-bottom:1px solid var(--rule);break-inside:avoid;grid-template-columns:minmax(160px,34%) 1fr;padding:7px 0;display:grid}.intake-review-section dt{color:var(--ink-2);font-weight:600}.intake-review-section dd{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.intake-review-prices{max-width:520px}@media (width<=640px){.intake-review-section dl>div{grid-template-columns:1fr;gap:2px}}@media print{.intake-review{max-width:none;padding:0}.intake-review-section dl>div{padding:4px 0;font-size:9.5pt}}
