@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url("./inter-400-YXL756U5.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url("./inter-500-7LCCITHF.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url("./inter-600-TRGXC5T2.woff") format("woff")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url("./inter-700-MP3UG7AA.woff") format("woff")}@font-face{font-family:Tektur;font-style:normal;font-weight:500;font-display:swap;src:url("./tektur-500-AW73BQL3.woff") format("woff")}:root{--bg-0: #050a08;--bg-1: #0a1310;--bg-2: #0f1a16;--bg-3: #15231e;--bg-4: #1c2e27;--field: #08110e;--line: rgba(153, 226, 147, .09);--line-2: rgba(153, 226, 147, .16);--line-3: rgba(153, 226, 147, .3);--ink: #e8f3ed;--ink-2: #bdd2c6;--muted: #7f9a8c;--faint: #587063;--brand: #41bf3d;--brand-bright: #5ad455;--mint: #99e293;--brand-ink: #03140a;--brand-wash: rgba(65, 191, 61, .13);--brand-glow: 0 0 0 1px rgba(65, 191, 61, .6), 0 0 18px rgba(65, 191, 61, .3);--ok: #5ad455;--ok-wash: rgba(90, 212, 85, .1);--warn: #f0a63a;--warn-wash: rgba(240, 166, 58, .11);--error: #ff6f61;--error-wash: rgba(255, 111, 97, .11);--info: #5cb8ea;--info-wash: rgba(92, 184, 234, .1);--magenta: #ff4f9a;--glass: rgba(7, 14, 11, .68);--glass-strong: rgba(7, 14, 11, .86);--glass-border: rgba(153, 226, 147, .18);--blur: blur(14px) saturate(150%);--shadow: 0 12px 32px rgba(0, 0, 0, .45);--font-ui: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--font-figure: var(--font-ui);--font-display: "Tektur", "Bahnschrift", "DIN Alternate", var(--font-ui);--rail-w: 72px;--inspector-w: 412px;--top-h: 52px;--status-h: 34px;--radius-s: 6px;--radius-m: 10px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:13px;line-height:1.45;color:var(--ink);background:var(--bg-0);-webkit-font-smoothing:antialiased;font-feature-settings:"cv05","ss01";overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--mint);outline-offset:1px}::selection{background:#41bf3d59}h1,h2,h3{font-family:var(--font-ui);font-weight:600;margin:0;letter-spacing:-.01em}*{scrollbar-width:thin;scrollbar-color:var(--bg-4) transparent}.app{display:grid;grid-template-rows:var(--top-h) 1fr var(--status-h);height:100%}.topbar{position:relative;display:flex;align-items:center;gap:10px;padding:0 12px 0 16px;background:var(--bg-0);color:var(--ink)}.topbar:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,var(--brand) 0,rgba(153,226,147,.35) 22%,var(--line) 55%,var(--line) 100%)}.brand{display:flex;align-items:center;gap:12px;padding-right:14px;margin-right:2px;border-right:1px solid var(--line-2);white-space:nowrap}.brand-logo{display:block;height:30px;width:auto}.brand-product{display:flex;flex-direction:column;gap:4px;color:var(--ink);line-height:1}.brand-product .cre8-mark{display:block;filter:drop-shadow(0 0 8px rgba(90,212,85,.25))}.brand-product small{display:block;font-family:var(--font-display);font-size:8.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.project-switch{display:flex;align-items:center;gap:8px;max-width:360px;padding:6px 10px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;cursor:pointer;color:var(--ink-2)}.project-switch:hover{border-color:var(--line-2);background:var(--bg-2);color:var(--ink)}.project-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.save-state{font-size:11.5px;color:var(--muted);min-width:52px;padding:3px 6px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;cursor:pointer;white-space:nowrap}.save-state:hover{border-color:var(--line-2);color:var(--ink-2)}.save-error,.save-conflict{color:var(--error)}.topbar-group{display:flex;gap:2px}.topbar-spacer{flex:1}.data-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:999px;border:1px solid;background:transparent;cursor:pointer;font-size:12px;font-weight:500}.data-chip.warn{border-color:#f0a63a73;color:#ffc677;background:#f0a63a0f}.data-chip.ok{border-color:#5ad45573;color:var(--mint);background:var(--brand-wash)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border-radius:var(--radius-s);border:1px solid var(--line-2);background:var(--bg-2);color:var(--ink);cursor:pointer;white-space:nowrap;text-decoration:none;font-weight:500;transition:border-color .15s,background-color .15s,box-shadow .15s}.btn:hover:not(:disabled){border-color:var(--line-3);background:var(--bg-3)}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:linear-gradient(180deg,var(--brand-bright),var(--brand));border-color:#99e29380;color:var(--brand-ink);font-weight:600;box-shadow:0 0 18px #41bf3d47}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#6fe26a,var(--brand-bright));border-color:var(--mint);box-shadow:0 0 24px #41bf3d73}.btn-quiet{border-color:transparent;background:transparent}.btn-danger{color:var(--error)}.btn-small{padding:3px 9px;font-size:12px}.btn-wide{width:100%;padding:9px 12px}.btn-on{background:var(--brand-wash);border-color:var(--brand);color:var(--mint);box-shadow:var(--brand-glow)}.icon-btn{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-s);border:1px solid transparent;background:transparent;cursor:pointer;color:var(--muted)}.icon-btn:hover:not(:disabled){background:var(--bg-3);color:var(--ink)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.dark{color:var(--ink-2)}.icon-btn.dark:hover:not(:disabled){background:var(--bg-3);color:var(--mint)}.link{border:0;background:none;padding:0;color:var(--mint);text-decoration:underline;text-decoration-color:#99e29366;text-underline-offset:3px;cursor:pointer}.link:hover{text-decoration-color:var(--mint)}.danger{color:var(--error)}.workspace{display:grid;grid-template-columns:var(--rail-w) 1fr var(--inspector-w);min-height:0}.toolrail{display:flex;flex-direction:column;gap:3px;padding:10px 7px;background:var(--bg-1);border-right:1px solid var(--line);overflow-y:auto}.tool{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px 6px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;cursor:pointer;color:var(--muted);font-size:10.5px;font-weight:500;letter-spacing:.01em;transition:color .15s,background-color .15s}.tool:hover{background:var(--bg-3);color:var(--ink)}.tool.on{background:var(--brand-wash);border-color:#41bf3d80;color:var(--mint);box-shadow:inset 0 0 14px #41bf3d24}.tool.on:before{content:"";position:absolute;left:-8px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--brand-bright);box-shadow:0 0 10px var(--brand)}.tool-gap{margin-top:14px}.tool-gap:after{content:"";position:absolute;top:-9px;left:12px;right:12px;border-top:1px solid var(--line-2)}.stage{position:relative;min-width:0;min-height:0}.viewport{position:absolute;inset:0;overflow:hidden;background:#0d1512}.viewport:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,transparent 62%,rgba(2,8,5,.42) 100%),linear-gradient(180deg,rgba(2,8,5,.18),transparent 14%)}.viewport-canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}.viewport-top{position:absolute;top:12px;left:50%;transform:translate(-50%);width:min(640px,calc(100% - 180px));display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.hint{padding:6px 14px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);color:var(--ink-2);font-size:12px;text-align:center;pointer-events:none}.hover-badge{padding:4px 12px;border-radius:999px;background:var(--glass-strong);border:1px solid var(--brand);color:var(--mint);font-size:12px;pointer-events:none;box-shadow:0 0 14px #41bf3d40}.draw-label,.measure-label,.wire-tip{position:absolute;padding:4px 10px;border-radius:var(--radius-s);background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;pointer-events:none;box-shadow:var(--shadow)}.draw-label{color:var(--mint);font-weight:600}.measure-label{visibility:hidden;transform:translate(-50%,calc(-100% - 10px));color:var(--mint);font-weight:600}.empty-state{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);width:min(440px,calc(100% - 40px));padding:24px 26px 22px;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);border-radius:14px;box-shadow:var(--shadow),inset 0 1px #99e2931f}.empty-state:before{content:"";position:absolute;left:22px;right:22px;top:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--brand-bright),var(--mint),transparent);box-shadow:0 0 12px var(--brand)}.empty-mark{display:block;width:44px;height:44px;margin-bottom:12px;filter:drop-shadow(0 0 12px rgba(65,191,61,.45))}.empty-state h2{font-size:21px;margin-bottom:6px}.empty-state p{margin:0 0 18px;color:var(--ink-2)}.empty-actions{display:flex;flex-wrap:wrap;gap:8px}.gl-error{position:absolute;inset:0;display:grid;place-content:center;padding:40px;text-align:center;background:var(--bg-1)}.gl-error p{max-width:460px;color:var(--muted)}.view-controls{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;align-items:flex-end;gap:8px}.compass{cursor:pointer;filter:drop-shadow(0 4px 14px rgba(0,0,0,.45))}.compass circle{fill:#070e0bc7;stroke:var(--line-3)}.compass .needle-n{fill:var(--brand-bright)}.compass .needle-s{fill:#3f5249}.compass text{font-family:var(--font-ui);font-size:8.5px;font-weight:700;fill:var(--brand-ink)}.view-buttons{display:flex;flex-direction:column;border:1px solid var(--glass-border);border-radius:var(--radius-m);overflow:hidden;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow)}.view-buttons button{width:44px;height:28px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink-2);font-size:11.5px;font-weight:600;letter-spacing:.04em;cursor:pointer;display:grid;place-items:center}.view-buttons button:last-child{border-bottom:0}.view-buttons button:hover{background:var(--brand-wash);color:var(--mint)}.view-buttons .projection-toggle{border-top:1px solid var(--glass-border)}.view-buttons .projection-toggle[aria-pressed=true]{background:var(--brand-wash);color:var(--mint);box-shadow:inset 2px 0 0 var(--brand)}.sunbar{position:absolute;left:12px;bottom:12px;right:12px;max-width:940px;display:flex;align-items:center;gap:12px;padding:7px 14px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);border-radius:var(--radius-m);box-shadow:var(--shadow);color:var(--ink-2)}.sun-slider{display:flex;align-items:center;gap:8px;flex:1;min-width:120px}.sun-slider span{flex:none;min-width:70px;font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);white-space:nowrap}.sun-slider input{flex:1;min-width:50px;accent-color:var(--brand)}.sun-readout{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.sunbar-sep{align-self:stretch;width:1px;background:var(--line-2)}.inspector{display:flex;flex-direction:column;min-height:0;background:var(--bg-1);border-left:1px solid var(--line)}.tabs{display:flex;border-bottom:1px solid var(--line);padding:0 6px;background:var(--bg-0)}.tabs button{position:relative;flex:1;min-width:0;padding:12px 1px 10px;border:0;background:transparent;cursor:pointer;color:var(--muted);font-weight:600;font-size:12px;letter-spacing:.01em}.tabs button:hover{color:var(--ink)}.tabs button.on{color:var(--mint)}.tabs button.on:after{content:"";position:absolute;left:8px;right:8px;bottom:-1px;height:2px;border-radius:2px;background:var(--brand-bright);box-shadow:0 0 10px var(--brand)}.inspector-body{flex:1;overflow-y:auto;min-height:0}.panel{padding-bottom:24px}.section{padding:16px 16px 14px;border-bottom:1px solid var(--line)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;min-height:24px}.section-head h3{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mint)}.section-head h3:before{content:"";width:6px;height:6px;border-radius:1px;background:var(--brand-bright);box-shadow:0 0 8px var(--brand)}.section-body{display:flex;flex-direction:column;gap:10px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 8px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field-label{font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.01em}.field input[type=text],.field input[type=email],.field input[type=password],.field select,.field textarea,.postcode-row input,.string-table select{width:100%;padding:5px 9px;border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--field);min-height:32px;color:var(--ink);transition:border-color .15s,box-shadow .15s}.field select,.string-table select{cursor:pointer}.field textarea{resize:vertical}.field input:hover,.field select:hover,.field textarea:hover,.string-table select:hover{border-color:var(--line-3)}.field input[type=text]:focus,.field input[type=email]:focus,.field input[type=password]:focus,.field select:focus,.field textarea:focus,.postcode-row input:focus,.string-table select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #41bf3d2e}.field-input{display:flex;align-items:center;border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--field);min-height:32px;transition:border-color .15s,box-shadow .15s}.field-input:hover{border-color:var(--line-3)}.field-input:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #41bf3d2e}.field-input input{flex:1;min-width:0;width:100%;padding:5px 0 5px 9px;border:0!important;outline:none;background:transparent;font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:500;color:var(--ink)}.field-input.invalid{border-color:var(--error)}.unit{padding:0 9px 0 4px;color:var(--muted);font-size:11.5px}.field-note{margin:0;color:var(--muted);font-size:12px}.field-note.pad{padding:12px 16px}.check{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.check input{margin-top:2px;accent-color:var(--brand)}.check-compact{align-items:center;white-space:nowrap}.check-compact input{margin-top:0}.segmented{display:flex;padding:3px;gap:3px;border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--field)}.segmented button{flex:1;padding:4px 6px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ink-2);cursor:pointer;font-weight:500}.segmented button:hover{background:var(--bg-3);color:var(--ink)}.segmented button.on{background:var(--brand-wash);border-color:#41bf3d8c;color:var(--mint);box-shadow:0 0 12px #41bf3d2e}.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.row-actions .spacer{flex:1}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line-2);border-radius:var(--radius-s);overflow:hidden}.stat{display:flex;flex-direction:column;padding:8px 10px;background:var(--bg-2)}.stat-label{font-size:10.5px;font-weight:500;color:var(--muted);letter-spacing:.02em}.stat-value{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.25;color:var(--ink);letter-spacing:-.01em}.stat-value small{font-size:11px;font-weight:500;color:var(--muted);margin-left:3px;letter-spacing:0}.stat-ok .stat-value{color:var(--mint)}.stat-warn .stat-value{color:var(--warn)}.notice{padding:8px 11px;border-radius:var(--radius-s);border:1px solid;border-left-width:3px;font-size:12.5px;white-space:pre-line;color:var(--ink)}.notice-info{background:var(--info-wash);border-color:#5cb8ea4d;border-left-color:var(--info)}.notice-warning{background:var(--warn-wash);border-color:#f0a63a4d;border-left-color:var(--warn)}.notice-error{background:var(--error-wash);border-color:#ff6f614d;border-left-color:var(--error)}.notice-ok{background:var(--ok-wash);border-color:#5ad4554d;border-left-color:var(--ok)}.muted{color:var(--muted)}.small{font-size:11.5px}.warn-text{color:var(--warn)}.prose{margin:0;max-width:68ch;color:var(--ink-2)}.updating{margin:8px 16px 0;color:var(--mint);font-size:12px}.updating:before{content:"";display:inline-block;width:6px;height:6px;margin-right:7px;border-radius:50%;background:var(--brand-bright);box-shadow:0 0 8px var(--brand);vertical-align:1px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.3}}.outline{list-style:none;margin:0;padding:0}.outline button{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:8px;width:100%;padding:8px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;text-align:left;cursor:pointer;color:var(--ink)}.outline button:hover{background:var(--bg-3);border-color:var(--line)}.outline button.on{background:var(--brand-wash);border-color:#41bf3d66}.outline-name{font-weight:600}.outline-detail{color:var(--muted);font-size:12px}.dot{width:10px;height:10px;border-radius:2px}.dot-building{background:#a08a7c}.dot-array{background:#4f7bd9}.dot-obstruction{background:#c27357}.dot-sign{background:var(--mint)}.dot-scaffold{background:#9aa2aa}.dot-edge{background:#e8b90c}.faces{list-style:none;margin:0;padding:0}.faces li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}.faces li:last-child{border-bottom:0}.faces li span{display:flex;flex-direction:column}.faces small{color:var(--muted)}.postcode-row{display:flex;align-items:flex-end;gap:8px}.postcode-row .field{flex:1}.sunpath{display:block;max-width:100%;height:auto}.sp-grid line{stroke:#99e29314;stroke-width:1}.sp-grid line.major{stroke:#99e2932e;stroke-dasharray:3 3}.sp-grid text{font-size:9.5px;fill:var(--muted)}.sp-grid .sp-dir{font-size:10.5px;font-weight:600;fill:var(--ink-2)}.sp-grey{fill:#1c2823}.sp-seg{fill:#12201b;stroke:#99e29366;stroke-width:.7}.sp-seg.counted{fill:#f5b301;stroke:#ffdc78e6}.sp-horizon{fill:#e8f3ed24;stroke:#cfe3d8;stroke-width:1.2;stroke-linejoin:round}.sp-circle circle{fill:#ff4f9a14;stroke:var(--magenta);stroke-width:1.3}.sp-circle .apex{fill:var(--magenta)}.sunpath-compact .sp-seg{stroke-width:.5}.chart-button{display:flex;flex-direction:column;gap:4px;padding:8px;border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--bg-2);cursor:pointer;text-align:left;color:var(--ink)}.chart-button:hover{border-color:var(--brand);box-shadow:0 0 14px #41bf3d2e}.chart-button strong{font-size:16px;font-variant-numeric:tabular-nums}.sf-head{display:flex;gap:14px;align-items:flex-start}.sf-value{display:flex;flex-direction:column;font-size:34px;font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;padding:2px 14px 2px 0;border-right:2px solid var(--brand-bright);color:var(--mint);text-shadow:0 0 18px rgba(65,191,61,.35)}.sf-value small{font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-shadow:none;margin-bottom:6px}.sf-detail{font-size:12.5px;color:var(--ink-2)}.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:5px}.legend i{display:inline-block;width:12px;height:10px;border:1px solid rgba(153,226,147,.4)}.lg-counted{background:#f5b301}.lg-horizon{background:#e8f3ed33}.lg-circle{border-color:var(--magenta)!important;border-radius:50%}.lg-grey{background:#1c2823;border-color:#2a3a33!important}.table{width:100%;border-collapse:collapse;font-size:12.5px}.table th{text-align:left;font-weight:600;color:var(--muted);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px;border-bottom:1px solid var(--line-2)}.table td{padding:7px 6px;border-bottom:1px solid var(--line)}.table tbody tr:hover td{background:#99e29308}.table .num{text-align:right;font-variant-numeric:tabular-nums}.table .strong{font-weight:700}.table tfoot td{border-bottom:0;border-top:1px solid var(--line-2);font-weight:700;color:var(--mint)}.table.compact th,.table.compact td{padding:5px}.estimate-table td:first-child{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-warn td{background:var(--warn-wash)}.row-current td{background:var(--brand-wash)}.dno{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:var(--radius-s);border:1px solid;border-left-width:3px}.dno strong{font-size:14.5px;font-weight:600}.dno-g98{background:var(--ok-wash);border-color:#5ad4554d;border-left-color:var(--ok)}.dno-g98 strong{color:var(--mint)}.dno-g99,.dno-g100{background:var(--warn-wash);border-color:#f0a63a4d;border-left-color:var(--warn)}.dno-g99 strong,.dno-g100 strong{color:#ffc677}.inverter{border:1px solid var(--line-2);border-radius:var(--radius-m);background:var(--bg-2);padding:12px;display:flex;flex-direction:column;gap:9px}.inverter-head{display:flex;align-items:flex-end;gap:6px}.inverter-head .field{flex:1}.mppt{border-top:1px dashed var(--line-2);padding-top:9px;display:flex;flex-direction:column;gap:6px}.mppt-head{display:flex;justify-content:space-between;gap:8px;font-weight:600}.mppt-figures{font-weight:500;color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums;text-align:right}.checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.checks li{padding:5px 9px;border-radius:var(--radius-s);font-size:12px;border:1px solid;border-left-width:3px}.checks .check-error{background:var(--error-wash);border-color:#ff6f6140;border-left-color:var(--error)}.checks .check-warning{background:var(--warn-wash);border-color:#f0a63a40;border-left-color:var(--warn)}.checks .check-info{background:var(--info-wash);border-color:#5cb8ea40;border-left-color:var(--info)}.add-row{display:flex;align-items:flex-end;gap:8px;margin-top:4px}.add-row .field{flex:1}.statusbar{display:flex;align-items:stretch;background:var(--bg-0);border-top:1px solid var(--line);font-size:12px}.metric{display:flex;align-items:center;gap:8px;padding:0 16px;border-right:1px solid var(--line);white-space:nowrap}.metric span{color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.metric strong{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.metric em{font-style:normal;font-size:11px;font-weight:500;color:var(--warn);margin-left:4px}.metric-spacer{flex:1}.statusbar .updating{margin:0 16px;align-self:center}.modal-backdrop{position:fixed;inset:0;background:#0206049e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:grid;place-items:center;z-index:50;padding:20px}.modal{position:relative;width:min(560px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:var(--bg-1);border:1px solid var(--line-2);border-radius:14px;box-shadow:0 30px 80px #0009,inset 0 1px #99e29314;outline:none}.modal:before{content:"";position:absolute;left:24px;right:24px;top:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--brand-bright),var(--mint),transparent);box-shadow:0 0 12px var(--brand)}.modal-wide{width:min(900px,100%)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.modal-head h2{font-family:var(--font-display);font-weight:500;font-size:18px;letter-spacing:.01em}.modal-body{padding:16px 20px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.dataset-status{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-radius:var(--radius-s);border:1px solid;border-left-width:3px}.dataset-status.mcs{background:var(--ok-wash);border-color:#5ad4554d;border-left-color:var(--ok)}.dataset-status.indicative{background:var(--warn-wash);border-color:#f0a63a4d;border-left-color:var(--warn)}.library{display:grid;grid-template-columns:1fr 1fr;gap:24px}.library h3{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mint);margin-bottom:8px}.lib-list{list-style:none;margin:0 0 10px;padding:0}.lib-list li{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line)}.lib-form{border:1px solid var(--line-2);border-radius:var(--radius-m);background:var(--bg-2);padding:12px;display:flex;flex-direction:column;gap:10px}kbd{display:inline-block;padding:1px 7px;border:1px solid var(--line-3);border-bottom-width:2px;border-radius:var(--radius-s);background:var(--bg-3);color:var(--mint);font-family:var(--font-ui);font-size:11.5px;font-weight:600;white-space:nowrap}.shortcuts td:first-child{width:34%}.toast{position:fixed;left:50%;bottom:54px;transform:translate(-50%);max-width:min(560px,calc(100vw - 32px));padding:10px 16px;border-radius:var(--radius-m);background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);border-left:3px solid var(--brand-bright);color:var(--ink);box-shadow:var(--shadow);z-index:60;white-space:pre-line}.toast-error{border-color:#ff6f6159;border-left-color:var(--error);background:#280a08e6}@media(max-width:1100px){:root{--inspector-w: 344px}.sun-readout,.brand-product{display:none}}@media(max-width:820px){:root{--rail-w: 56px}.workspace{grid-template-columns:var(--rail-w) 1fr;grid-template-rows:1fr 46%}.inspector{grid-column:1 / -1;border-left:0;border-top:1px solid var(--line-2)}.tool span{display:none}.brand-logo{height:24px}.save-state,.data-chip{display:none}.statusbar .metric:nth-child(n+4){display:none}.viewport-top{display:none}.library{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.file-btn{position:relative;overflow:hidden;cursor:pointer}.file-btn input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.scale-box{display:flex;flex-direction:column;gap:6px;margin:10px 0;padding:10px;border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--bg-2)}.field input[type=range]{accent-color:var(--brand)}.monthly{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.monthly-chart{width:100%;height:auto;overflow:visible}.monthly-bar{fill:var(--brand)}.monthly-bar.on{fill:var(--mint)}.monthly-grid{stroke:var(--line);stroke-width:1}.monthly-base{stroke:var(--line-3);stroke-width:1}.monthly-axis{fill:var(--muted);font-size:9px}.monthly-value{fill:var(--ink);font-size:10px;font-weight:600}.monthly-table td{padding:3px 4px;font-size:12px}.monthly-table small{color:var(--muted)}.check-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.check-list li{display:grid;grid-template-columns:18px 1fr;gap:7px;font-size:12.5px;line-height:1.4}.check-icon{width:16px;height:16px;margin-top:1px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:var(--bg-0);background:var(--muted)}.level-ok .check-icon{background:var(--ok);box-shadow:0 0 8px #5ad45580}.level-warning .check-icon{background:var(--warn)}.level-error .check-icon{background:var(--error)}.level-info .check-icon{background:var(--info)}.check-ref{color:var(--muted)}.check-list+.check-list{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.wall-picks{border:0;margin:6px 0;padding:0;display:flex;flex-direction:column;gap:4px}.run-extents{display:flex;flex-direction:column;gap:6px;margin:4px 0 6px}.run-extent .grid2{margin-top:4px}.scaffold-status{margin:8px 0 0;padding:7px 11px;border-radius:var(--radius-s);border:1px solid;font-weight:600;font-size:12.5px}.scaffold-status.good{background:var(--ok-wash);border-color:#5ad45559;color:var(--mint)}.scaffold-status.warn{background:var(--warn-wash);border-color:#f0a63a59;color:#ffc677}.scaffold-status.bad{background:var(--error-wash);border-color:#ff6f6159;color:#ff9d93}.qty-table td{font-size:12.5px;padding:4px 6px}.brief{margin:8px 0 0;display:flex;flex-direction:column;gap:6px}.brief div{display:grid;grid-template-columns:120px 1fr;gap:8px;font-size:12.5px}.brief dt{color:var(--muted);font-weight:600}.brief dd{margin:0}.scaffold-foot{padding:0 16px 16px}.type-picker{display:flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);box-shadow:var(--shadow);pointer-events:auto}.type-picker button{border:1px solid transparent;background:transparent;border-radius:999px;padding:4px 11px;font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer}.type-picker button:hover{background:var(--bg-3);color:var(--ink)}.type-picker button.on{background:var(--brand-wash);border-color:var(--brand);color:var(--mint);box-shadow:0 0 12px #41bf3d4d}.type-picker .shape-pick{display:inline-flex;gap:2px;padding-right:6px;margin-right:2px;border-right:1px solid var(--line)}.outline-editor{position:absolute;inset:0;pointer-events:none;overflow:hidden}.corner-handle,.mid-handle{position:absolute;left:0;top:0;visibility:hidden;pointer-events:auto;padding:0;touch-action:none}.corner-handle{width:13px;height:13px;margin:-6.5px 0 0 -6.5px;border-radius:3px;border:2px solid #fff;background:var(--brand);box-shadow:0 0 0 1px #00000073,0 0 10px #41bf3d8c;cursor:move}.corner-handle:hover,.corner-handle:focus-visible{background:var(--mint);transform-origin:center;outline:none;box-shadow:0 0 0 1px #00000073,0 0 14px #99e293e6}.mid-handle{width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;border:1.5px solid var(--brand);background:#ffffffe6;box-shadow:0 0 0 1px #00000059;cursor:copy;opacity:.85}.mid-handle:after{content:"";position:absolute;inset:2px;background:linear-gradient(var(--brand),var(--brand)) center / 100% 1.5px no-repeat,linear-gradient(var(--brand),var(--brand)) center / 1.5px 100% no-repeat}.mid-handle:hover{opacity:1;background:var(--mint)}.colour-row{display:flex;align-items:center;gap:6px}.colour-row select{flex:1;min-width:0}.swatch{width:22px;height:22px;flex:none;border-radius:var(--radius-s);border:1px solid var(--line-3)}.end-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.end-label{position:absolute;left:0;top:0;margin:-24px 0 0 -14px;padding:1px 7px 1px 6px;border-radius:4px;border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--c, var(--brand));background:#050a08d1;color:var(--ink);font-size:10.5px;font-weight:600;white-space:nowrap;will-change:transform}.wire-tip{display:flex;align-items:center;gap:6px}.wire-tip .swatch{width:12px;height:12px;border:0}.wire-warning{border-color:#f0a63a99;box-shadow:0 0 16px #f0a63a40}.wire-error{border-color:#ff6f61b3;box-shadow:0 0 16px #ff6f614d}.chips{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px 2px 7px;border:1px solid var(--line-2);border-radius:999px;background:var(--bg-3);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.chip:hover{border-color:var(--line-3)}.chip.on{border-color:var(--brand);background:var(--brand-wash);box-shadow:0 0 10px #41bf3d40}.chip-dot{display:inline-block;width:10px;height:10px;flex:none;border-radius:2px}.auto-row{display:flex;align-items:flex-end;gap:8px}.auto-row .field{flex:1}.plan-tabs{display:flex;flex-wrap:wrap;gap:4px}.plan-tabs button{padding:3px 11px;border:1px solid var(--line-2);border-radius:999px;background:var(--bg-2);color:var(--ink-2);font-size:12px;cursor:pointer}.plan-tabs button.on{border-color:var(--brand);background:var(--brand-wash);color:var(--mint)}.string-plan{margin:0;display:flex;flex-direction:column;align-items:center;gap:5px}.string-plan svg{max-width:100%;height:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;border-radius:var(--radius-s);border:1px solid var(--line);background:linear-gradient(var(--line) 1px,transparent 1px) 0 0 / 16px 16px,linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0 / 16px 16px,var(--field)}.string-plan figcaption{font-size:11px;color:var(--muted);text-align:center}.spl-face{fill:#99e2930f;stroke:#99e29359;stroke-width:1}.spl-keepout{fill:#ff4f9a1f;stroke:var(--magenta);stroke-width:1;stroke-dasharray:3 2}.spl-module{fill:#23332d;stroke:#050a08;stroke-width:.8}.spl-module.sel{stroke:#fff;stroke-width:1.4}.spl-num{fill:#fff;font-weight:700;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#00000080;stroke-width:2px}.spl-name{fill:#fff;font-weight:700;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:#04120ad9;stroke-width:2.5px;stroke-linejoin:round}.spl-name.sel{fill:var(--mint)}.spl-path{fill:none;stroke:#030c0899;stroke-width:1.5;stroke-linejoin:round;pointer-events:none}.spl-path.sel{stroke:#03140a;stroke-width:2.4}.spl-end circle{fill:#03140a;stroke:#ffffffb3;stroke-width:.8}.spl-end text{fill:#fff;font-weight:700;text-anchor:middle}.spl-end{pointer-events:none}.string-table select{max-width:150px;min-height:28px;padding:3px 6px;font-size:12px}.string-name{display:inline-flex;align-items:center;gap:6px;font-weight:600;text-decoration:none;color:var(--ink)}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%}.status-ok{background:var(--ok);box-shadow:0 0 8px #5ad45599}.status-warning{background:var(--warn);box-shadow:0 0 8px #f0a63a80}.status-error{background:var(--error);box-shadow:0 0 8px #ff6f6199}.string-inspector{border:1px solid rgba(65,191,61,.5);border-radius:var(--radius-m);background:linear-gradient(180deg,#41bf3d14,#41bf3d05);box-shadow:0 0 22px #41bf3d1a;padding:12px;display:flex;flex-direction:column;gap:9px}.string-inspector-head{display:grid;grid-template-columns:22px 1fr 1.6fr;align-items:end;gap:8px}.string-inspector-head .swatch{margin-bottom:5px;border:0}.wire-tip{flex-wrap:wrap;max-width:420px;white-space:normal}.wire-tip small{flex-basis:100%;color:var(--muted);font-size:11px}.wire-tip-2{flex-direction:column;align-items:flex-start;gap:1px}.plan-zoom{align-self:flex-end;display:flex;gap:2px;padding:2px;border:1px solid var(--line-2);border-radius:999px;background:var(--field)}.plan-zoom button{padding:1px 9px;border:0;border-radius:999px;background:transparent;color:var(--muted);font-size:11px;font-weight:600;cursor:pointer}.plan-zoom button.on{background:var(--brand-wash);color:var(--mint)}.plan-scroll{max-width:100%;display:flex;justify-content:center}.plan-scroll.zoomed{justify-content:flex-start;max-height:420px;overflow:auto;border-radius:var(--radius-s)}.string-plan svg:focus-visible{outline:2px solid var(--mint);outline-offset:2px}.spl-head{fill:none;stroke:#fff;stroke-width:2;pointer-events:none}.spl-head-outer{fill:none;stroke:var(--brand-bright);stroke-width:1.5;pointer-events:none}.field-label.scrub{cursor:ew-resize;-webkit-user-select:none;user-select:none;touch-action:none}.field-label.scrub:hover{color:var(--mint)}.stepper{display:flex;flex-direction:column;align-self:stretch;border-left:1px solid var(--line);opacity:0;transition:opacity .12s}.field-input:hover .stepper,.field-input:focus-within .stepper{opacity:1}.stepper button{flex:1;display:grid;place-items:center;width:18px;padding:0;border:0;background:transparent;color:var(--muted);cursor:pointer}.stepper button:hover{background:var(--brand-wash);color:var(--mint)}.stepper button+button{border-top:1px solid var(--line)}.offset-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:8px}.shortcuts th[colspan]{padding-top:14px;color:var(--mint)}.corner-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px}.corner-list li{display:grid;grid-template-columns:20px minmax(0,1fr) minmax(0,1fr) 56px 26px;align-items:end;gap:6px}.corner-list .field{margin:0}.corner-list li:not(:first-child) .field-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.corner-no{align-self:center;justify-self:center;width:20px;height:20px;border-radius:4px;display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--mint);background:var(--brand-wash);border:1px solid rgba(65,191,61,.45)}.corner-wall{align-self:center;font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}.sign-preview{display:grid;place-items:center;height:96px;margin-bottom:10px;border-radius:var(--radius-s);border:1px solid var(--line);background:repeating-conic-gradient(#2a332e 0% 25%,#1c231f 0% 50%) 50% / 14px 14px;overflow:hidden}.sign-preview img{max-width:92%;max-height:84px;object-fit:contain}.colour-input input[type=color]{width:36px;height:28px;padding:0;border:1px solid var(--line);border-radius:4px;background:transparent;cursor:pointer}.colour-input code{font-size:11.5px;color:var(--muted)}.viewport.dropping:after{content:"";position:absolute;inset:6px;border:2px dashed rgba(153,226,147,.75);border-radius:10px;pointer-events:none;box-shadow:inset 0 0 40px #41bf3d2e}.drop-label{border-color:#99e29399}.drop-label.no{color:#ffb4a8;border-color:#ff786480}.stage-switch{position:absolute;top:12px;left:12px;z-index:6;display:flex;padding:3px;gap:2px;border:1px solid var(--glass-border);border-radius:999px;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow)}.stage-switch button{border:0;border-radius:999px;padding:5px 12px;background:transparent;color:var(--ink-2);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}.stage-switch button:hover{color:var(--mint)}.stage-switch button.on{background:var(--brand);color:var(--brand-ink)}.stage-switch button:focus-visible,.sld-group button:focus-visible{outline:2px solid var(--mint);outline-offset:1px}.sld-view{position:absolute;inset:0;z-index:5;overflow:hidden;background:radial-gradient(circle at 50% 40%,rgba(65,191,61,.07),transparent 60%),linear-gradient(var(--bg-1),var(--bg-0));-webkit-user-select:none;user-select:none}.sld-canvas{display:block;cursor:grab;touch-action:none}.sld-canvas:active{cursor:grabbing}.sld-paper-shadow{fill:#fff;filter:drop-shadow(0 18px 40px rgba(0,0,0,.55)) drop-shadow(0 0 1px rgba(153,226,147,.4))}.sld-hit{fill:transparent;cursor:pointer}.sld-hover{fill:#41bf3d14;stroke:#41bf3d8c;stroke-width:.8;pointer-events:none}.sld-sel{fill:#41bf3d21;stroke:#2f9a2b;stroke-width:1.4;pointer-events:none}.sld-toolbar{position:absolute;top:12px;right:12px;left:330px;display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;pointer-events:none}.sld-group{pointer-events:auto;display:flex;align-items:center;border:1px solid var(--glass-border);border-radius:var(--radius-m);overflow:hidden;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow)}.sld-group button{min-width:34px;height:30px;padding:0 10px;border:0;border-left:1px solid var(--line);background:transparent;color:var(--ink-2);font:inherit;font-size:12px;font-weight:600;letter-spacing:.03em;cursor:pointer;display:grid;place-items:center}.sld-group>:first-child{border-left:0}.sld-group button:hover:not(:disabled){background:var(--brand-wash);color:var(--mint)}.sld-group button.on{background:var(--brand-wash);color:var(--mint);box-shadow:inset 0 -2px 0 var(--brand)}.sld-group button:disabled{opacity:.5;cursor:progress}.sld-zoom{min-width:52px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-2);border-left:1px solid var(--line);line-height:30px}.sld-group-label{padding:0 10px;font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.sld-downloads button{color:var(--mint)}.sld-foot{position:absolute;left:50%;bottom:10px;transform:translate(-50%);width:max-content;max-width:calc(100% - 24px);margin:0;padding:4px 12px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--line);text-align:center;font-size:12px;color:var(--ink-2);pointer-events:none}.ac-fields{border-top:1px dashed var(--line-2);padding-top:9px;display:flex;flex-direction:column;gap:8px}.check-row{display:flex;flex-wrap:wrap;gap:6px 16px}.sld-formats .btn{min-width:52px}.auth{position:fixed;inset:0;z-index:90;display:flex;padding:32px 20px 44px;overflow-y:auto;background:radial-gradient(1100px 560px at 50% -12%,rgba(65,191,61,.2),transparent 62%),radial-gradient(760px 480px at 88% 112%,rgba(92,184,234,.08),transparent 60%),var(--bg-0);transition:opacity .55s ease,visibility .55s}.auth.auth-out{opacity:0;visibility:hidden;pointer-events:none}.auth-overlay{z-index:95;background:#020604bd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-scene{position:fixed;inset:0;overflow:hidden;perspective:560px;pointer-events:none}.auth-floor{position:absolute;left:-60%;right:-60%;bottom:-8%;height:64%;background-image:linear-gradient(rgba(153,226,147,.17) 1px,transparent 1px),linear-gradient(90deg,rgba(153,226,147,.17) 1px,transparent 1px);background-size:64px 64px;transform:rotateX(74deg);transform-origin:50% 100%;-webkit-mask-image:linear-gradient(to top,#000 8%,transparent 82%);mask-image:linear-gradient(to top,#000 8%,transparent 82%);animation:auth-floor 5s linear infinite}.auth-sun{position:absolute;left:50%;top:12%;width:560px;height:560px;margin-left:-280px;border-radius:50%;background:radial-gradient(circle,rgba(90,212,85,.22),rgba(65,191,61,.06) 45%,transparent 70%);animation:auth-breathe 7s ease-in-out infinite}.auth-scan{position:absolute;inset:0;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.016) 0 1px,transparent 1px 3px)}.auth-card{position:relative;margin:auto;width:min(400px,100%);display:flex;flex-direction:column;gap:22px;padding:30px 30px 20px;background:linear-gradient(180deg,#0f1a16e0,#070e0beb);border:1px solid var(--glass-border);border-radius:18px;box-shadow:0 40px 120px #0009,inset 0 1px #99e2931a;-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);animation:auth-in .6s cubic-bezier(.2,.8,.2,1) both}.auth-card:before{content:"";position:absolute;left:30px;right:30px;top:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--brand-bright),var(--mint),transparent);box-shadow:0 0 14px var(--brand)}.auth-head{display:flex;flex-direction:column;align-items:center;gap:10px}.auth-mark{color:var(--ink);filter:drop-shadow(0 0 18px rgba(90,212,85,.35))}.auth-tag{font-family:var(--font-display);font-size:10.5px;letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;color:var(--mint)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-form h1{font-family:var(--font-display);font-weight:500;font-size:20px;letter-spacing:.01em}.auth-lede{margin:-6px 0 0;color:var(--ink-2);font-size:12.5px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-field label{font-size:10.5px;font-weight:600;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.auth-field input{width:100%;height:40px;padding:8px 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--field);color:var(--ink);font-size:14px;transition:border-color .15s,box-shadow .15s}.auth-field input:hover{border-color:var(--line-3)}.auth-field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #41bf3d2e}.auth-field input[readonly]{background:transparent;color:var(--ink-2)}.auth-code{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase}.auth-password{position:relative}.auth-password input{padding-right:42px}.auth-reveal{position:absolute;right:4px;top:4px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--muted);cursor:pointer}.auth-reveal:hover,.auth-reveal.on{color:var(--mint)}.auth-note{font-size:11.5px;color:var(--muted)}.auth-warn{color:var(--warn)}.auth-submit{height:42px;margin-top:4px;font-size:14px}.auth-hint{margin:0;font-size:11.5px;color:var(--muted);text-align:center}.auth-alt{align-self:center;font-size:12px}.auth-foot{display:flex;justify-content:center;padding-top:16px;border-top:1px solid var(--line)}.auth-foot img{height:26px;width:auto;opacity:.92}.auth-version{position:fixed;left:0;right:0;bottom:14px;text-align:center;font-family:var(--font-display);font-size:10px;letter-spacing:.32em;color:var(--faint);pointer-events:none}.auth-entering{align-items:center;text-align:center;padding:6px 0 4px}.auth-progress{width:100%;height:3px;border-radius:2px;background:#99e2931f;overflow:hidden}.auth-progress-bar{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--mint));box-shadow:0 0 10px var(--brand);transform-origin:left center;transition:transform .4s ease}.auth-step{margin:0;font-size:12px;color:var(--muted)}@keyframes auth-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@keyframes auth-floor{0%{background-position:0 0,0 0}to{background-position:0 64px,0 0}}@keyframes auth-breathe{0%,to{transform:scale(.95);opacity:.8}50%{transform:scale(1.05);opacity:1}}@media(prefers-reduced-motion:reduce){.auth-floor,.auth-sun,.auth-card{animation:none}}@media(max-height:720px){.auth-card{gap:16px;padding:22px 24px 16px}}.account{position:relative;margin-left:4px}.account-btn{display:flex;align-items:center;gap:8px;padding:3px 11px 3px 3px;border:1px solid var(--line-2);border-radius:999px;background:var(--bg-2);color:var(--ink-2);cursor:pointer}.account-btn:hover,.account-btn[aria-expanded=true]{border-color:var(--line-3);color:var(--ink)}.account-name{font-size:12px;font-weight:500}.avatar{display:inline-grid;place-items:center;flex:none;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#2a6b28,#123f12);border:1px solid rgba(153,226,147,.45);color:var(--mint);font-family:var(--font-display);font-size:10px;letter-spacing:.04em;line-height:1}.avatar-s{width:22px;height:22px;font-size:8.5px}.account-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:260px;display:flex;flex-direction:column;padding:6px;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow)}.account-who{display:grid;gap:2px;padding:8px 10px 10px;margin-bottom:4px;border-bottom:1px solid var(--line)}.account-who span{overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:12px}.role-badge{justify-self:start;margin-top:5px;padding:2px 8px;border:1px solid var(--line-3);border-radius:999px;font-family:var(--font-display);font-size:9.5px;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--mint)}.role-admin{border-color:#f0a63a80;color:var(--warn)}.account-menu button{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink-2);cursor:pointer;text-align:left}.account-menu button:hover,.account-menu button:focus-visible{background:var(--bg-3);color:var(--ink)}.viewers{display:inline-flex;align-items:center;padding-left:2px}.viewers .avatar{margin-left:-6px;box-shadow:0 0 0 2px var(--bg-0);background:linear-gradient(135deg,#1d4f6b,#0e2a3b);border-color:#5cb8ea8c;color:#c5e9fb}.viewers .avatar:first-child{margin-left:0}.user-add{display:grid;grid-template-columns:1.1fr 1.4fr .8fr auto;gap:10px;align-items:end}.temp-password{display:flex;flex-direction:column;gap:8px}.temp-password-row{display:flex;align-items:center;gap:8px}.temp-password code{padding:4px 10px;border:1px solid var(--line-2);border-radius:6px;background:var(--field);color:var(--mint);font-family:ui-monospace,Cascadia Mono,Consolas,SFMono-Regular,Menlo,monospace;font-size:15px;letter-spacing:.04em;-webkit-user-select:all;user-select:all}.users-table td{vertical-align:middle}.user-cell{display:inline-flex;align-items:center;gap:8px}.user-actions{white-space:nowrap}.user-actions .btn+.btn{margin-left:6px}.status-pill{display:inline-block;padding:1px 8px;border:1px solid;border-radius:999px;font-size:11px;white-space:nowrap}.status-pill.on{color:var(--ok);border-color:#5ad45559;background:var(--ok-wash)}.status-pill.off{color:var(--muted);border-color:var(--line-2)}.status-pill.temp{color:var(--warn);border-color:#f0a63a59;background:var(--warn-wash)}.row-disabled td{opacity:.55}.inline-select{padding:3px 6px;border:1px solid var(--line-2);border-radius:6px;background:var(--field);color:var(--ink);cursor:pointer}.form-stack{display:flex;flex-direction:column;gap:12px}.projects-filter{display:flex;align-items:center;gap:10px}.search{flex:1;height:32px;padding:5px 10px;border:1px solid var(--line-2);border-radius:var(--radius-s);background:var(--field);color:var(--ink)}.search:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #41bf3d2e}.projects-filter .segmented{flex:none}.projects-filter .segmented button{padding:4px 12px}.project-title{font-weight:600}.project-ref{display:block;margin-top:1px;color:var(--muted);font-size:11px}.confirm-delete{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}.local-upload{display:flex;align-items:center;justify-content:space-between;gap:12px;white-space:normal}.field-note .link{display:inline-flex;align-items:center;gap:4px}.history{display:flex;flex-direction:column;margin:0;padding:0;list-style:none;border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden}.history li{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line)}.history li:last-child{border-bottom:0}.history li>span:nth-child(2){display:flex;flex-direction:column}.history small{color:var(--muted);font-size:11.5px}.history-v{font-family:var(--font-display);font-size:12px;color:var(--mint)}.history-current{background:var(--brand-wash)}.conflict-choices{display:flex;flex-direction:column;align-items:stretch;gap:8px}.conflict-choices .btn{justify-content:flex-start;padding:9px 14px}.newer-notice{position:absolute;top:12px;left:50%;z-index:20;transform:translate(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);padding:7px 8px 7px 14px;border:1px solid rgba(92,184,234,.42);border-radius:999px;background:var(--glass-strong);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:var(--shadow);font-size:12.5px}.newer-notice svg{flex:none;color:var(--info)}@media(max-width:900px){.account-name{display:none}.user-add{grid-template-columns:1fr 1fr}}.account-section+.account-section{padding-top:16px;border-top:1px solid var(--line)}.account-section h3{font-family:var(--font-display);font-weight:500;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--mint)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.inline-input{width:100%;min-width:0;height:28px;padding:3px 8px;border:1px solid var(--line-3);border-radius:6px;background:var(--field);color:var(--ink)}.inline-input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px #41bf3d2e}.row-editing td{background:var(--brand-wash)}@media(max-width:700px){.form-row{grid-template-columns:1fr}}.ld{position:fixed;inset:0;z-index:1000;display:grid;place-content:center;justify-items:center;gap:26px;overflow:hidden;pointer-events:none;color:#e8f3ed;font-family:Inter,Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;background:radial-gradient(circle at 50% 42%,rgba(65,191,61,.2),transparent 38%),radial-gradient(ellipse at 50% 120%,rgba(65,191,61,.16),transparent 55%),#050a08;transition:opacity .6s ease,visibility 0s linear .6s}.ld.ld-out{opacity:0;visibility:hidden}.ld.ld-out .ld-core{transform:scale(1.6);filter:blur(6px);opacity:0}.ld.ld-out .ld-text{transform:translateY(14px);opacity:0}.ld-grid{position:absolute;left:-50%;right:-50%;bottom:-10%;height:60%;background-image:linear-gradient(rgba(153,226,147,.16) 1px,transparent 1px),linear-gradient(90deg,rgba(153,226,147,.16) 1px,transparent 1px);background-size:56px 56px;transform:perspective(420px) rotateX(64deg);transform-origin:50% 0;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 35%,#000 70%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 35%,#000 70%,transparent);animation:ld-grid 1.6s linear infinite}@keyframes ld-grid{to{background-position:0 56px}}.ld-core{position:relative;width:min(300px,62vw);aspect-ratio:1;transition:transform .6s cubic-bezier(.5,0,.75,0),opacity .5s ease,filter .6s ease}.ld-rings{position:relative;width:100%;height:100%;overflow:visible}.ld-sweep{position:absolute;inset:6%;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,transparent 290deg,rgba(90,212,85,.05) 320deg,rgba(153,226,147,.32) 360deg);-webkit-mask-image:radial-gradient(circle,transparent 28%,#000 30%);mask-image:radial-gradient(circle,transparent 28%,#000 30%);animation:ld-spin 2.4s linear infinite}.ld-rings g,.ld-rings circle,.ld-rings image{transform-box:view-box;transform-origin:50% 50%}.ld-ticks line{stroke:#99e29361;stroke-width:1.2}.ld-ticks{animation:ld-spin 24s linear infinite}.ld-arcs circle{fill:none;stroke-width:3.6;stroke-linecap:round}.ld-arcs{filter:drop-shadow(0 0 6px rgba(90,212,85,.9));animation:ld-spin 1.5s cubic-bezier(.55,.15,.45,.85) infinite}.ld-inner{fill:none;stroke:#99e29373;stroke-width:1;animation:ld-spin 9s linear infinite reverse}.ld-cell{fill:#41bf3d1a;stroke:#99e29359;stroke-width:.8;animation:ld-cell 1.8s ease-in-out infinite}.ld-cell:nth-child(1){animation-delay:0s}.ld-cell:nth-child(2){animation-delay:75ms}.ld-cell:nth-child(3){animation-delay:.15s}.ld-cell:nth-child(4){animation-delay:.225s}.ld-cell:nth-child(5){animation-delay:.3s}.ld-cell:nth-child(6){animation-delay:.375s}.ld-cell:nth-child(7){animation-delay:.45s}.ld-cell:nth-child(8){animation-delay:.525s}.ld-cell:nth-child(9){animation-delay:.6s}.ld-cell:nth-child(10){animation-delay:.675s}.ld-cell:nth-child(11){animation-delay:.75s}.ld-cell:nth-child(12){animation-delay:.825s}.ld-cell:nth-child(13){animation-delay:.9s}.ld-cell:nth-child(14){animation-delay:.975s}.ld-cell:nth-child(15){animation-delay:1.05s}.ld-cell:nth-child(16){animation-delay:1.125s}.ld-cell:nth-child(17){animation-delay:1.2s}.ld-cell:nth-child(18){animation-delay:1.275s}.ld-cell:nth-child(19){animation-delay:1.35s}.ld-cell:nth-child(20){animation-delay:1.425s}.ld-cell:nth-child(21){animation-delay:1.5s}.ld-cell:nth-child(22){animation-delay:1.575s}.ld-cell:nth-child(23){animation-delay:1.65s}.ld-cell:nth-child(24){animation-delay:1.725s}@keyframes ld-cell{0%,to{fill:#41bf3d14;stroke:#99e2934d}12%{fill:#99e293f2;stroke:#e8ffe4}40%{fill:#41bf3d59;stroke:#99e29399}}.ld-cells{filter:drop-shadow(0 0 3px rgba(90,212,85,.55))}.ld-orbit{animation:ld-spin 1.8s linear infinite}.ld-sun{fill:#f4ffd9;filter:drop-shadow(0 0 6px #fff7b0) drop-shadow(0 0 14px rgba(255,220,120,.9))}.ld-sun-trail{fill:none;stroke:#f4ffd959;stroke-width:1.5;stroke-linecap:round;transform:rotate(-90deg) scaleY(-1)}.ld-ripple{fill:none;stroke:#99e29380;stroke-width:1;opacity:0;animation:ld-ripple 3.6s cubic-bezier(.2,.6,.3,1) infinite}.ld-ripple-2{animation-delay:1.8s}@keyframes ld-ripple{0%{opacity:.7;transform:scale(.62)}to{opacity:0;transform:scale(1.45)}}.ld-halo{animation:ld-pulse 1.8s ease-in-out infinite}.ld-mark{animation:ld-breathe 1.8s ease-in-out infinite}@keyframes ld-spin{to{transform:rotate(360deg)}}@keyframes ld-pulse{0%,to{opacity:.55;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes ld-breathe{0%,to{transform:scale(.96)}50%{transform:scale(1.04)}}.ld-text{position:relative;display:grid;justify-items:center;gap:12px;transition:transform .5s ease,opacity .4s ease}.ld-title{display:grid;justify-items:center;gap:8px}.ld-wordmark{display:block;fill:#e8f3ed;filter:drop-shadow(0 0 16px rgba(90,212,85,.45))}.ld-sub{font-family:Tektur,Bahnschrift,Inter,Segoe UI,system-ui,sans-serif;font-size:10.5px;font-weight:500;letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;color:#99e293;text-shadow:0 0 14px rgba(90,212,85,.65)}.ld-bar{position:relative;width:220px;height:3px;border-radius:2px;background:#99e2931f;overflow:hidden}.ld-bar i{position:absolute;inset:0;transform-origin:0 50%;transform:scaleX(.12);background:linear-gradient(90deg,#41bf3d,#99e293);box-shadow:0 0 12px #5ad455e6;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.ld-bar:after{content:"";position:absolute;top:0;bottom:0;width:60px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:ld-glint 1.3s ease-in-out infinite}@keyframes ld-glint{0%{transform:translate(-70px)}to{transform:translate(230px)}}.ld-status{font-size:11.5px;letter-spacing:.08em;color:#7f9a8c;font-variant-numeric:tabular-nums}.ld-dots:after{content:"";display:inline-block;width:1.4em;text-align:left;animation:ld-dots 1.2s steps(4,end) infinite}@keyframes ld-dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.ld-slow{max-width:300px;font-size:12px;line-height:1.45;text-align:center;color:#f0a63a;opacity:0;animation:ld-slow .4s ease 15s forwards}@keyframes ld-slow{to{opacity:1}}@media(prefers-reduced-motion:reduce){.ld-grid,.ld-sweep,.ld-ticks,.ld-inner,.ld-bar:after,.ld-ripple,.ld-dots:after{animation:none}.ld-arcs,.ld-orbit{animation-duration:6s}.ld-cell{animation-duration:4s}}
/*# sourceMappingURL=main-TWPXQERA.css.map */
