:root{--bg: #f7f6f4;--surface: #ffffff;--text: #1b1a18;--muted: #8a857e;--border: #e8e5e0;--border-strong: #d8d4cd;--accent: #1b1a18;--accent-hover: #34312d;--action-blue: #2563eb;--action-blue-hover: #1d4ed8;--tab-current-fill: #dbeafe;--tab-current-ink: #1e40af;--radius: 10px;--shadow: 0 1px 2px rgba(27, 26, 24, .05);--canvas-1: #fbfcfe;--canvas-2: #f1f6fc;--canvas-3: #e5edf8;--canvas-dark: #10161f;--glass-1-line: #84acda;--glass-1-fill: #dfeaf8;--glass-2-line: #5286c6;--glass-2-fill: #cddff2;--glass-3-line: #2f65aa;--glass-3-fill: #b6cee9;--glass-dark-line: #7aa8e0;--glass-dark-fill: #1b2734;--datum: #0d9488;--datum-soft: #99c9c2;--datum-bg: #f0fdfa;--handle: #7c3aed;--handle-wall: #9333ea;--clip: #d97706;--clip-bg: #fef3c7;--lean: #9a5a2b;--mark-answered: #7a5aa8;--bench-green: #16a34a;--bench-green-edge: #15803d;--opening: #15803d;--dim-plain: #b45309;--dim-opening: #a8443a;--dim-jog: #ca8a04;--warn: #b45309;--warn-bg: #fef3c7;--warn-border: #fde68a;--warn-border-strong: #d9a53f;--warn-text: #7c2d12;--danger: #dc2626;--danger-bg: #fdecec;--danger-bg-hover: #fecaca;--danger-border: #fecaca;--danger-border-strong: #c05353;--danger-text: #7f1d1d;--ok: #2f6b43;--ok-bg: #e7f1ea;--ok-border: #bbf7d0;--ok-border-strong: #b7d9cf;--ok-text: #14532d;--lean-unanswered: #d97706;--lean-unanswered-bg: #fffbeb;--lean-unanswered-text: #92400e;--selected: #b45309;--selected-bg: #fef3c7;--selected-text: #7c2d12;--selected-ok: #2f6b43}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1{font-size:24px;font-weight:600;letter-spacing:-.015em;margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}h2{font-size:17px;font-weight:600;margin:0}a{color:inherit}.shell{display:flex;min-height:100vh}.sidebar{width:230px;flex-shrink:0;display:flex;flex-direction:column;padding:28px 18px 22px;border-right:1px solid var(--border);background:var(--surface);position:sticky;top:0;height:100vh}.brand-block{display:flex;flex-direction:column;gap:2px;padding:0 10px;text-decoration:none;margin-bottom:36px}.brand{font-size:17px;font-weight:600;letter-spacing:-.01em}.brand-sub{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.side-nav{display:flex;flex-direction:column;gap:2px}.side-nav a{padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--muted);font-weight:500}.side-nav a:hover,.side-nav a.active{color:var(--text);background:var(--bg)}.sidebar-foot{margin-top:auto;padding:14px 10px 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px}.sidebar-user{color:var(--muted);overflow:hidden;text-overflow:ellipsis}.sidebar-who{display:flex;flex-direction:column;gap:1px;min-width:0}.sidebar-build{font-size:12px;color:var(--muted)}.link-button{background:none;border:none;padding:0;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;text-decoration:underline;text-underline-offset:3px}.link-button:hover{color:var(--text)}.main{flex:1;min-width:0}.page{max-width:880px;padding:44px 48px 64px;margin:0 auto}.page-narrow{max-width:720px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px}.page-sub{margin:6px 0 0;color:var(--muted);font-size:14px}.crumb{margin:0 0 8px;font-size:13px;color:var(--muted)}.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--text)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:9px 16px;border-radius:8px;border:1px solid transparent;font:inherit;font-size:14px;font-weight:500;text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .12s ease,border-color .12s ease}.btn:disabled{opacity:.45;cursor:default}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-ghost:hover{border-color:var(--muted)}.btn-block{width:100%}.btn-row{display:flex;gap:8px}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:12px 18px;border-bottom:1px solid var(--border)}.table td{padding:14px 18px;border-bottom:1px solid var(--border)}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:#fbfaf8}.cell-strong{font-weight:600}.job-nickname,.job-nickname-static{display:inline-block;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;font-size:.8em;font-weight:500;color:var(--muted, #6b665f)}.job-nickname{border:none;background:none;padding:2px 4px;border-radius:6px;cursor:text;font-family:inherit}.job-nickname:hover{background:#efece7;color:#33312e}.job-nickname-add{border:1px dashed var(--border, #d8d2c8);background:none;color:var(--muted, #948d82);font-size:.72em;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:999px;cursor:pointer}.job-nickname-add:hover:not(:disabled){border-color:var(--border-strong, #b8b0a4);color:#6b665f}.job-nickname-add:disabled{cursor:not-allowed;opacity:.4}.job-nickname-input{font:inherit;font-size:.8em;font-weight:500;padding:2px 6px;border:1px solid var(--border-strong, #b8b0a4);border-radius:6px;min-width:14ch;max-width:26ch}.job-nickname-sub{display:block;max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:15px;color:var(--text, #1b1a18)}.job-who{display:block}.job-when{display:block;font-size:12px;color:var(--muted, #948d82)}.job-pkg-btn{letter-spacing:.04em;font-variant-numeric:tabular-nums;white-space:nowrap}.chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:#efece7;color:#6b665f}.chip-outline{background:transparent;border:1px solid var(--border-strong);color:var(--muted)}.chip-archived{background:#f3e9d9;color:#7a5a1e}.chip-warn{background:#f7e3be;color:#7a5a1e}.table .cell-actions{width:1%;white-space:nowrap;text-align:right;padding-top:8px;padding-bottom:8px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;transition:background-color .12s ease,color .12s ease,border-color .12s ease}.icon-btn:hover:not(:disabled){background:#f6f1ea;border-color:var(--border);color:#7a5a1e}.icon-btn:disabled{opacity:.45;cursor:default}.archived-jobs{margin-top:22px}.archived-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.archived-head h2{margin:0;font-size:15px;font-weight:600;letter-spacing:.02em}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px 24px}.empty-state{background:var(--surface);border:1px dashed var(--border-strong);border-radius:var(--radius);padding:56px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.empty-state p{margin:0 0 16px;color:var(--muted)}.placeholder{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:48px 24px;text-align:center;color:var(--muted);background:#ffffff80}.placeholder p{margin:12px auto 0;max-width:460px}.tag-soon{display:inline-flex;align-self:flex-start;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:#efece7;border-radius:999px;padding:3px 8px}.notice{border-radius:8px;padding:11px 14px;font-size:14px;margin-bottom:18px}.notice-error{background:var(--danger-bg);color:#8c3a2e;border:1px solid var(--danger-border)}.notice-warning{background:#fbf3e2;color:#7a5a1e;border:1px solid #ecdcb8}.muted{color:var(--muted)}.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:24px}.type-card{display:flex;flex-direction:column;gap:5px;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 18px 16px;cursor:pointer;font:inherit;color:inherit;box-shadow:var(--shadow);transition:border-color .12s ease,box-shadow .12s ease}.type-card:hover{border-color:var(--border-strong)}.type-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),var(--shadow)}.type-card-title{font-weight:600}.type-card-desc{font-size:13px;color:var(--muted)}.actions-row{display:flex;justify-content:flex-end;gap:8px}.diagram-canvas{height:380px;border:1px dashed var(--border-strong);border-radius:var(--radius);background-color:#fff9;background-image:linear-gradient(rgba(27,26,24,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(27,26,24,.03) 1px,transparent 1px);background-size:24px 24px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.cost-rows{display:flex;flex-direction:column}.cost-row{display:flex;justify-content:space-between;padding:12px 2px;border-bottom:1px solid var(--border)}.cost-row:last-child{border-bottom:none}.cost-row.total{font-weight:600}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.settings-card{display:flex;flex-direction:column;gap:6px}.settings-card h2{font-size:15px}.settings-card p{margin:0;font-size:13px;color:var(--muted)}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:360px;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 10px 30px #1b1a180f;padding:36px 32px 32px;display:flex;flex-direction:column;gap:14px}.login-brand{display:flex;flex-direction:column;align-items:center;gap:2px;margin-bottom:14px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500}.input{font:inherit;padding:10px 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);color:var(--text)}.input:focus{outline:2px solid rgba(27,26,24,.14);outline-offset:1px;border-color:var(--muted)}.form-error{color:#8c3a2e;font-size:13px}.boot-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600}.measure{display:flex;flex-direction:column;gap:22px}.measure-status{display:flex;align-items:center;gap:10px;margin-top:-6px}.working-dim{position:absolute;transform:translate(-50%,-50%);font-size:12px;font-weight:600;color:#6b6254;background:#f4f1ec;border:1px dashed #b8ae9f;border-radius:999px;padding:2px 8px;white-space:nowrap;pointer-events:auto}.working-note{margin:2px 0 0;font-size:12px;color:#8a8073;font-style:italic}.working-note-corner{font-style:normal;color:var(--ink, #1b1a18)}.migration-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--warn-border-strong);border-radius:10px;background:var(--warn-bg);font-size:13px;color:#6b4e12}.migration-banner-foreign{border-color:var(--danger-border-strong);background:var(--danger-bg);color:#7a2727}.migration-banner-text{flex:1 1 260px;line-height:1.45}.migration-banner-actions{display:flex;gap:8px}.migration-banner-btn{font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;border:1px solid currentColor;background:#fff;color:inherit;cursor:pointer}.migration-banner-raw{flex-basis:100%;margin:2px 0 0;padding-left:20px;font-size:12.5px;line-height:1.6}.sync-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);background:#efece7;border-radius:999px;padding:4px 11px}.sync-synced{color:var(--ok);background:var(--ok-bg)}.sync-pending,.sync-saving{color:#7a5a17;background:#f5ecd8}.sync-offline,.sync-error{color:#6b665f;background:#efece7}.sync-refused{color:#7a2727;background:var(--danger-bg);border:1px solid var(--danger-border-strong)}.offline-tag{font-size:12px;font-weight:600;color:#8c3a2e}.sync-recover{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.sync-recover .btn-small{font-size:12px;padding:4px 12px}.sync-recover-note{font-size:11px;color:var(--muted)}.measure-ref{display:flex;flex-direction:column;gap:20px}.field{display:flex;flex-direction:column;gap:8px}.field-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.field-hint{font-size:13px;color:var(--muted)}.seg{display:inline-flex;flex-wrap:wrap;gap:6px}.seg-btn{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;font:inherit;font-size:14px;font-weight:500;padding:9px 14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.seg-btn:hover:not(:disabled):not(.active){border-color:var(--muted)}.seg-btn.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.seg-btn:disabled{opacity:.5;cursor:not-allowed;position:relative}.method-btn{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;font:inherit;font-size:14px;font-weight:500;padding:9px 14px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;transition:border-color .12s ease,box-shadow .12s ease,background-color .12s ease}.method-btn:hover:not(:disabled):not(.active){border-color:var(--muted)}.method-btn.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.method-btn:disabled{opacity:.5;cursor:not-allowed;position:relative}.seg-sub{font-size:11px;font-weight:500;color:var(--muted)}.frac-input{width:110px}.switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none;margin-left:8px}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:38px;height:22px;border-radius:999px;background:var(--border-strong);position:relative;transition:background-color .14s ease;flex-shrink:0}.switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #1b1a1840;transition:transform .14s ease}.switch input:checked+.switch-track{background:var(--accent)}.switch input:checked+.switch-track .switch-thumb{transform:translate(16px)}.switch input:focus-visible+.switch-track{outline:2px solid rgba(27,26,24,.25);outline-offset:2px}.switch-label{font-size:14px;font-weight:500}.measure-diagram{display:flex;flex-direction:column;gap:12px}.step-panes{display:grid}.step-pane{grid-area:1 / 1;align-self:start;min-width:0;display:flex;flex-direction:column;gap:22px}.step-pane-off{visibility:hidden;pointer-events:none}.step-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px}.step-switch-btn{font:inherit;font-size:16px;font-weight:700;min-height:52px;padding:0 12px;color:var(--muted);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.step-switch-btn:hover{color:var(--text);border-color:var(--accent)}.step-switch-on,.step-switch-on:hover{color:var(--tab-current-ink);background:var(--tab-current-fill);border-color:var(--tab-current-ink)}.step-switch-owing,.step-switch-owing:hover,.step-switch-on.step-switch-owing,.step-switch-on.step-switch-owing:hover{border-color:var(--lean-unanswered);box-shadow:0 0 0 1px var(--lean-unanswered)}@media screen{.measure-diagram.third-mock{background:var(--canvas-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px}}.measure-h2{font-size:15px;font-weight:600;letter-spacing:.01em}.diagram-slot{border:1px dashed var(--border-strong);border-radius:var(--radius);padding:40px 24px;text-align:center;background:#ffffff80}.diagram-3d{background:#fff;background-image:none}.diagram-step-1{background:var(--canvas-1)}.diagram-step-2{background:var(--canvas-2)}.diagram-step-3{background:#fff}.diagram-step-1 .gd-glass{fill:var(--glass-1-fill);fill-opacity:1;stroke:var(--glass-1-line)}.diagram-step-2 .gd-glass{fill:var(--glass-2-fill);fill-opacity:1;stroke:var(--glass-2-line)}.diagram-step-3 .gd-glass{fill:var(--glass-3-fill);fill-opacity:1;stroke:var(--glass-3-line)}.diagram-step-1 .gd-corner-edge{stroke:var(--glass-1-line)}.diagram-step-2 .gd-corner-edge{stroke:var(--glass-2-line)}.diagram-step-3 .gd-corner-edge{stroke:var(--glass-3-line)}.gd-floor{fill:#f3f4f6;stroke:#d1d5db;stroke-width:1}.gd-return{fill:#2563eb;fill-opacity:.07;stroke:#2563eb;stroke-opacity:.45;stroke-width:1}.gd-bench-front{fill:var(--bench-green, #16a34a);fill-opacity:.3;stroke:var(--bench-green-edge, #15803d);stroke-opacity:.85;stroke-width:1}.gd-bench-sketch{fill-opacity:1;stroke-dasharray:4 3;stroke-opacity:.9}.gd-bench-hatch{stroke:var(--bench-green-edge, #15803d);stroke-width:1.6;stroke-opacity:.55}.gd-bench-top{fill:var(--bench-green, #16a34a);fill-opacity:.22;stroke:var(--bench-green-edge, #15803d);stroke-opacity:.85;stroke-width:1}.gd-opening{fill:none;stroke:#15803d;stroke-width:.8;stroke-linejoin:round}.gd-panel-wall{fill:var(--opening, #15803d);fill-opacity:.12;stroke:var(--opening, #15803d);stroke-width:.8;stroke-linejoin:round}.gd-glass{fill:#2563eb;fill-opacity:.1;stroke:#2563eb;stroke-width:1.4}.gd-void{fill:var(--danger, #dc2626);fill-opacity:.28;stroke:var(--danger, #dc2626);stroke-width:1.2;stroke-dasharray:4 3}.gd-corner-edge{fill:none;stroke:#2563eb;stroke-width:2.4;stroke-linecap:round}.gd-glass-top{fill:#2563eb;fill-opacity:.18;stroke:#2563eb;stroke-width:1.2}.gd-cut{stroke:#1f2937;stroke-width:2.4;stroke-linecap:round}.gd-cut-dot{fill:#1f2937}.gd-handle{touch-action:none;cursor:grab}.gd-handle:active{cursor:grabbing}.gd-handle-hit{fill:transparent}.gd-cutpoint{fill:var(--handle);stroke:#fff;stroke-width:1.5;touch-action:none}.gd-cutpoint-drag{cursor:grab}.gd-cutpoint-drag:active{cursor:grabbing}.gd-cutpoint-static{opacity:.55}.gd-cutpoint-unpositioned{fill:none;stroke-dasharray:3 2}.gd-cutpoint-ceiling{fill:var(--handle)}.gd-cutpoint-wall{fill:var(--handle-wall)}.gd-datum{stroke:var(--datum);stroke-width:1.6;stroke-dasharray:5 4}.gd-datum-dot{fill:var(--datum)}.gd-datum-label{fill:var(--datum);font-size:10.5px;font-weight:600;letter-spacing:.5px}.gd-datum-handle{fill:var(--datum);stroke:#fff;stroke-width:1.5;touch-action:none}.gd-datum-handle-drag{cursor:grab}.gd-datum-handle-drag:active{cursor:grabbing}.gd-datum-unpin{cursor:pointer}.gd-datum-unpin rect{fill:#fff;stroke:var(--datum);stroke-width:1.2}.gd-datum-unpin text{fill:var(--datum);font-size:9px;font-weight:700;letter-spacing:.4px}.gd-floorpoint{fill:var(--lean);stroke:#fff;stroke-width:1.5;touch-action:none}.fp-mode{font:inherit;font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--muted);background:#fff;border:1px solid var(--border-strong);border-radius:999px;padding:1px 7px;cursor:pointer}.fp-mode-on{color:var(--text);border-color:var(--muted)}.gd-floorpoint-snapped{fill:var(--surface);stroke:var(--muted);stroke-width:1.5}.gd-floorpoint-drag{cursor:grab}.gd-floorpoint-drag:active{cursor:grabbing}.gd-walltaper{fill:#c2703a;stroke:#fff;stroke-width:1.5;touch-action:none}.gd-walltaper-drag{cursor:grab}.gd-walltaper-drag:active{cursor:grabbing}.vd-floor-ref{stroke:var(--lean);stroke-width:1;stroke-dasharray:2 3;opacity:.5}.vd-wall{fill:#2563eb;fill-opacity:.05;stroke:#2563eb;stroke-opacity:.4;stroke-width:1.2}.vd-datum-plane{fill:var(--datum);fill-opacity:.06;stroke:var(--datum);stroke-opacity:.3;stroke-width:1}.vd-datum{stroke:var(--datum);stroke-width:1.6;stroke-dasharray:6 5}.vd-datum-label{fill:var(--datum);font-size:11px;font-weight:700;letter-spacing:.6px}.vd-floor-band{fill:#f3f4f6;stroke:#e5e7eb;stroke-width:1}.vd-floorline{fill:none;stroke:#9ca3af;stroke-width:2}.vd-ceilline{fill:none;stroke:#9aa6b2;stroke-width:2}.vd-ceil-dot{fill:#5a6b7a}.vd-base-dot{fill:#1f2937}.vd-base-name{fill:var(--muted);font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase}.station-row{position:absolute;left:0;right:0;bottom:39px;margin:0;height:12px;pointer-events:none}.station-name{position:absolute;transform:translate(-50%);color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;white-space:nowrap}.vd-cut{stroke:var(--lean);stroke-width:2.4;stroke-linecap:round}.vd-jog-dot{fill:var(--lean)}.dim-line{stroke:var(--dim-plain);stroke-width:1.4}.dim-leader{stroke:#d8b78a;stroke-width:1;stroke-dasharray:2 2}.dim-label{fill:#92400e;font-size:9px;letter-spacing:.3px}.dim-pill{fill:#fff;stroke:#d1d5db;stroke-width:1}.dim-value{fill:#374151;font-size:11.5px;font-weight:500}.dim-tappable{cursor:pointer}.dim-tappable:hover .dim-pill{stroke:var(--dim-plain)}.dim-derived .dim-pill{fill:var(--datum-bg);stroke:var(--datum);stroke-dasharray:3 2}.dim-derived .dim-value{fill:#0f766e}.width-split{grid-column:1 / -1;display:flex;flex-direction:column;gap:6px}.width-split-row{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap}.width-split-row .mini-field{flex:1 1 130px}.width-plus,.width-eq{font-size:16px;font-weight:600;color:var(--muted);padding-bottom:8px}.derived-field{font:inherit;padding:7px 8px;border:1px dashed var(--datum-soft);border-radius:8px;background:var(--datum-bg);color:#0f766e;font-weight:600}.pill-overlay,.split-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.cut-arrow-btn{position:absolute;transform:translate(-50%,-50%);font-size:18px;line-height:1;font-weight:800;color:#b45309;background:#ffffffc7;border:1px solid var(--border-strong);border-radius:7px;padding:4px 9px;cursor:pointer;pointer-events:auto}.cut-arrow-l{transform:translate(-72%,-50%)}.cut-arrow-r{transform:translate(-28%,-50%)}.cut-ref-btm{position:absolute;transform:translate(-50%,-50%);pointer-events:none;font-size:8px;font-weight:700;line-height:1;letter-spacing:.02em;color:var(--muted);border-bottom:2px solid var(--border-strong);padding:0 1px 1px;text-transform:uppercase}.pill{position:absolute;transform:translate(-50%,-50%);pointer-events:auto}.pill.pill-input{width:var(--rest-w, 38px);min-width:0;min-height:19px;padding:1px 4px;text-align:center;font-size:11px;font-weight:600;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:5px;box-shadow:0 1px 1px #1b1a181a;cursor:text;transition:width 90ms ease,min-height 90ms ease,padding 90ms ease,font-size 90ms ease}.pill.pill-input:focus,.pill.pill-input.frac-editing{width:64px;min-height:34px;padding:6px;font-size:14px;border-color:#b45309;outline:2px solid rgba(180,83,9,.25);outline-offset:0;z-index:6;box-shadow:0 3px 8px #1b1a182e}.pill.pill-input::placeholder{color:#6b7280;opacity:1;font-weight:700}.frac-steps{position:absolute;transform:translate(-50%,-50%);z-index:7;display:flex;align-items:center;justify-content:space-between;width:164px;pointer-events:none}.frac-step{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:20px;font-weight:700;line-height:1;color:var(--selected-text);background:#fff;border:1px solid var(--selected);border-radius:8px;box-shadow:0 2px 6px #1b1a182e;cursor:pointer;pointer-events:auto}.frac-step:active{background:var(--selected-bg)}.frac-range-msg{position:absolute;transform:translate(-50%,18px);z-index:7;max-width:150px;padding:3px 7px;font-size:10.5px;font-weight:600;line-height:1.25;text-align:center;color:var(--danger-text);background:#fef2f2;border:1px solid var(--danger-border);border-radius:6px;box-shadow:0 2px 6px #1b1a1829;pointer-events:none;white-space:normal}.derived-total{position:absolute;transform:translate(-50%,-50%);pointer-events:none;font-size:11px;font-weight:700;color:#78716c;white-space:nowrap;background:none;border:none;padding:0}.lean-group{position:absolute;transform:translate(-50%,6px);display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:auto}.lean-arrow-btn{width:auto;min-width:30px;padding:0 7px;height:26px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:var(--muted);background:#fff;border:1px solid var(--border-strong);border-radius:7px;cursor:pointer;box-shadow:0 1px 2px #1b1a181f}.lean-arrow-btn.on{color:var(--lean);border-color:var(--lean)}.advanced-points>summary{cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text);background:var(--bg);border:1.5px solid var(--text);border-radius:8px;padding:7px 14px;box-shadow:0 1px 2px #1b1a181f;-webkit-user-select:none;user-select:none;list-style:none}.advanced-points>summary::-webkit-details-marker{display:none}.advanced-points-refused{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.advanced-points-refused-label{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:var(--muted);background:var(--bg);border:1.5px dashed var(--border-strong);border-radius:8px;padding:7px 14px;cursor:not-allowed;-webkit-user-select:none;user-select:none}.advanced-points>summary:after{content:"▾";font-size:11px;line-height:1;transition:transform .12s ease}.advanced-points[open]>summary:after{transform:rotate(180deg)}.advanced-points>summary:hover{color:var(--text);background:var(--surface);box-shadow:0 1px 3px #1b1a1833}.advanced-points>summary:active{box-shadow:none;transform:translateY(1px)}.advanced-points-body{display:flex;flex-direction:column;gap:12px;margin-top:10px}.advanced-group+.advanced-group{border-top:1px solid var(--border);padding-top:12px}.advanced-group-head{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}@media (max-width: 600px){.pill.pill-input{min-width:44px;min-height:28px;font-size:13px;padding:3px 5px}.frac-steps{width:174px}.pill.pill-input:focus,.pill.pill-input.frac-editing{width:74px;min-height:42px;font-size:15px;padding:8px 6px}.derived-total{font-size:13px}.lean-arrow-btn{width:38px;height:34px;font-size:17px}}.cap-cards{display:flex;flex-direction:column;gap:8px;margin-top:4px}.acc{border:1px solid var(--border);border-radius:8px;background:var(--surface)}.acc-summary,.jog-detail-summary{cursor:pointer;list-style:none;font-size:13px;font-weight:600;color:var(--muted);padding:10px 14px;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:8px}.acc-summary:before,.jog-detail-summary:before{content:"▸";font-size:11px;transition:transform .12s ease}.acc[open]>.acc-summary:before,.jog-detail[open]>.jog-detail-summary:before{transform:rotate(90deg)}.acc-summary::-webkit-details-marker,.jog-detail-summary::-webkit-details-marker{display:none}.acc-body{padding:0 14px 14px}.cap-sublabel{display:block;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:6px 0}.shower-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--border)}.shower-tab{min-height:44px;padding:0 16px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--muted);font:inherit;font-weight:600;cursor:pointer}.shower-tab:hover{color:var(--text)}.shower-tab.is-current{background:var(--tab-current-fill);border-color:var(--tab-current-ink);color:var(--tab-current-ink)}.shower-tab-split{display:inline-flex;align-items:stretch}.shower-tab-split>.shower-tab{border-top-right-radius:0;border-bottom-right-radius:0}.shower-tab-menu{position:relative;display:flex}.shower-tab-menu>summary{display:flex;align-items:center;justify-content:center;min-height:44px;width:36px;border:1px solid var(--lean-unanswered);border-left:0;border-radius:0 var(--radius) var(--radius) 0;background:var(--lean-unanswered-bg);color:var(--lean-unanswered-text);font-size:14px;font-weight:700;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.shower-tab-menu>summary::-webkit-details-marker{display:none}.shower-tab-menu-list{position:absolute;z-index:20;top:calc(100% + 6px);right:0;min-width:210px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 6px 20px #1b1a1824}.rev-cut{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:18px 0 0;padding:12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.rev-cut-now{color:var(--muted);font-size:14px}.rev-cut-now strong{color:var(--text);font-size:16px}.rev-cut-btn{min-height:44px;padding:0 18px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.rev-cut-btn:hover:not(:disabled){background:var(--bg)}.rev-cut-btn:disabled{opacity:.45;cursor:default}.rev-cut-block{flex:1 1 100%}.rev-cut-why{margin:0 0 6px;font-size:14px;font-weight:600}.rev-cut-items{margin:0;padding-left:20px;color:var(--muted);font-size:13px;line-height:1.6}.shower-empty{color:var(--muted);font-size:14px}.shower-add,.shower-building{position:relative}.shower-building{margin-left:4px}.shower-building>summary{display:flex;align-items:center;min-height:44px;padding:0 12px;border:0;color:var(--muted);font-size:14px;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.shower-building>summary::-webkit-details-marker{display:none}.shower-building[open]>summary{color:var(--text)}.shower-building-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:170px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 6px 20px #1b1a1824}.shower-add-group+.shower-add-group{margin-top:4px;padding-top:4px;border-top:1px solid var(--border)}.shower-add-loc{margin:0;padding:6px 12px 2px;color:var(--muted);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.shower-add-types{display:flex;gap:4px}.shower-add-types .shower-add-name{flex:1}.shower-add>summary{display:flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--action-blue);border-radius:var(--radius);background:var(--action-blue);color:#fff;font-weight:600;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.shower-add>summary:hover{background:var(--action-blue-hover)}.shower-add>summary::-webkit-details-marker{display:none}.shower-add[open]>summary{background:var(--action-blue-hover)}.shower-add-menu{position:absolute;z-index:20;top:calc(100% + 6px);left:0;min-width:180px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 6px 20px #1b1a1824}.shower-add-name{min-height:44px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;text-align:left;cursor:pointer}.shower-add-name:hover{background:var(--bg)}.jog-row-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.jog-row-actions{display:flex;align-items:center;gap:12px}.dir-toggle{font:inherit;font-size:12px;font-weight:600;color:var(--lean);background:#fff;border:1px solid var(--border-strong);border-radius:999px;padding:3px 9px;cursor:pointer;white-space:nowrap}.dir-toggle:hover{border-color:var(--lean)}.jogs-block-msg,.third-block-msg,.thickness-block-msg{margin:4px 0 0;font-size:13px;color:#8c3a2e;background:var(--danger-bg);border:1px solid var(--danger-border);border-radius:8px;padding:9px 12px}.pre-diagram{display:flex;flex-direction:column}.jog-row{display:grid;margin-top:10px;padding:0 1px}.jog-col{grid-row:1;grid-column:1;justify-self:start;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.jog-ghost-col{grid-row:2;grid-column:1;justify-self:start;transform:translate(-50%);margin-top:8px;max-width:190px}.jog-ghost{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 8px;padding:5px 9px;border:1px dashed var(--border-strong);border-radius:8px;background:#fcfbf9;font-size:12px;line-height:1.35;text-align:center}.jog-ghost-label{font-weight:600;color:var(--text)}.jog-ghost-readings{color:var(--muted)}.jog-ghost-restore{font:inherit;font-weight:600;color:var(--text);background:#fff;border:1px solid var(--muted);border-radius:999px;padding:1px 9px;cursor:pointer}.jog-ghost-restore:hover{background:var(--bg)}.jog-add{background:var(--bg);border:1.5px solid var(--text);border-color:var(--text);font-weight:600;box-shadow:0 1px 2px #1b1a181f}.jog-add:hover{background:var(--surface);border-color:var(--text);box-shadow:0 1px 3px #1b1a1833}.jog-add:active{box-shadow:none;transform:translateY(1px)}.jog-chips{display:flex;flex-wrap:wrap;gap:8px}.jog-chip{display:inline-flex;align-items:center;gap:7px;padding:4px 6px 4px 10px;border:1px solid var(--border-strong);border-radius:999px;background:#fcfbf9;font-size:13px;font-weight:600}.jog-chip-n{color:var(--text)}.jog-chip-dir{font:inherit;font-size:14px;line-height:1;color:var(--lean);background:#fff;border:1px solid var(--border-strong);border-radius:50%;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.jog-chip-dir:hover{border-color:var(--lean)}.jog-chip-x{font:inherit;font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer;padding:2px 4px;border-radius:50%}.jog-chip-x:hover{color:#8c3a2e;background:var(--danger-bg)}.jog-detail{margin-top:4px}.jog-detail-summary{padding:5px 0;font-size:12px}.jog-detail-body{padding:2px 0 6px}.cap-card{border:1px solid var(--border);border-radius:8px;padding:12px 14px;background:var(--surface)}.cap-card-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:10px}.cap-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px}.lean-row{display:flex;flex-direction:column;gap:5px}.lean-row-controls{display:flex;align-items:center;gap:8px}.lean-amt{width:72px}.diagram{position:relative;width:100%;border:1px solid var(--border);border-radius:var(--radius);background:#fcfbf9;background-image:linear-gradient(rgba(27,26,24,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(27,26,24,.025) 1px,transparent 1px);background-size:26px 26px;box-shadow:var(--shadow);overflow:hidden}.diagram-svg{display:block;width:100%;height:100%}.reshape-gate{margin-top:10px;padding:10px 12px;border-left:3px solid var(--warn, #b8860b);background:#b8860b0f;border-radius:0 var(--radius) var(--radius) 0}.reshape-gate-target>summary{cursor:pointer;font-size:13px;font-weight:600;padding:4px 0}.reshape-gate-groups{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 2px}.d-floor{fill:#efece7;stroke:var(--border-strong);stroke-width:1.5}.d-wall{fill:#fbfaf8;stroke:#bdb8b0;stroke-width:2}.d-wall-top{fill:#f2efea;stroke:#bdb8b0;stroke-width:1.5}.d-corner{stroke:#8a857e;stroke-width:2.5;stroke-linecap:round}.d-end{stroke:#6b665f;stroke-width:3.5;stroke-linecap:round}.d-end.leaning{stroke:var(--lean)}.d-end-guide{stroke:#c9a06a;stroke-width:1.5;stroke-dasharray:5 5}.d-datum{stroke:#6b665f;stroke-width:1.5;stroke-dasharray:8 6}.d-floorline{fill:none;stroke:#bdb8b0;stroke-width:2}.d-drop{stroke:#a8a39b;stroke-width:1.5}.d-base{fill:var(--accent)}.d-datum-dot{fill:#8a857e}.d-datum-label-svg{fill:#6b665f;font-size:12px;font-weight:700;letter-spacing:.08em}.bubble{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;z-index:1}.bubble-label{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap}.frac-bubble{width:62px;padding:5px 6px;text-align:center;font-size:13px;background:var(--surface);box-shadow:var(--shadow)}.datum-label,.base-name{pointer-events:none}.lean-btn{display:inline-flex;align-items:center;gap:5px;font:inherit;font-size:11px;font-weight:600;padding:4px 9px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;box-shadow:var(--shadow)}.lean-btn.on{border-color:var(--lean);color:var(--lean)}.lean-arrow{font-size:13px;line-height:1}.d-datum-plumb{stroke:#2f6b8c;stroke-width:1.5;stroke-dasharray:7 5}.d-datum-text{fill:#2f6b8c;font-size:13px;font-weight:700;letter-spacing:.1em}.d-jog-stair{fill:none;stroke:var(--lean);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.d-jog-riser{stroke:var(--lean);stroke-width:3;stroke-linecap:round}.d-jog-mark{fill:var(--lean)}.d-jog-num{fill:#fff;font-size:11px;font-weight:700}.d-jog-drop{stroke:#2f6b8c;stroke-width:1.25;stroke-dasharray:4 4}.d-jog-cut{stroke:var(--lean);stroke-width:2.5;stroke-linecap:round}.d-jog-pt{fill:var(--lean)}.d-jog-tag{fill:#6b665f;font-size:13px;font-weight:700}.d-ceiling-run{stroke:#5a6b7a;stroke-width:2.5;stroke-linecap:round}.d-ceiling-link{stroke:#b9c2cb;stroke-width:1.25;stroke-dasharray:4 5}.d-ceilline{fill:none;stroke:#9aa6b2;stroke-width:2}.d-ceildrop{stroke:#5a6b7a;stroke-width:1.5}.d-ceilpt{fill:#5a6b7a}.jogs-control{display:flex;flex-direction:column;gap:16px}.jogs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.jogs-head .field-hint{margin:6px 0 0;max-width:460px}.jogs-total{font-size:13px;font-weight:600;white-space:nowrap}.jogs-walls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.jog-wall{border:1px solid var(--border);border-radius:8px;padding:12px 14px;background:#fcfbf9}.jog-wall-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.jog-wall-name{font-size:13px;font-weight:600}.btn-sm{padding:5px 10px;font-size:13px}.jog-none{font-size:13px}.jog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.jog-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.jog-chain{color:var(--muted);font-size:12px}.jog-captures{display:flex;flex-direction:column;gap:8px;margin-top:12px}.jog-capture{border:1px solid var(--border);border-radius:8px;padding:10px 12px;background:var(--surface)}.jog-capture-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--muted);margin-bottom:8px}.jog-pip{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--lean);color:#fff;font-size:11px;font-weight:700}.jog-capture-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px}.mini-field{display:flex;flex-direction:column;gap:4px}.mini-field-label{font-size:11px;font-weight:600;color:var(--muted)}.frac-mini{width:100%;padding:7px 8px;text-align:left;font-size:14px}@media (max-width: 860px){.shell{flex-direction:column}.sidebar{width:auto;height:auto;position:static;flex-direction:row;align-items:center;padding:12px 16px;gap:16px}.brand-block{margin-bottom:0}.side-nav{flex-direction:row}.sidebar-foot{margin-top:0;margin-left:auto;border-top:none;padding:0}.page{padding:24px 18px 48px}.type-grid,.settings-grid{grid-template-columns:1fr}}.order-editor{display:flex;flex-direction:column;gap:18px}.thickness-slot{display:block}.thickness-row{display:grid;margin:10px 0 2px;padding:0 1px}.thickness-col{grid-area:1 / 1;justify-self:start;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px}.thickness-block-msg{max-width:720px}.thickness-col-name{font-size:12px;font-weight:600;color:var(--muted)}.seg-tight .seg-btn{padding:4px 10px;font-size:13px}.td-hinge{fill:#1f2937}.td-handle{fill:none;stroke:#1f2937;stroke-width:2.4;stroke-linecap:round}.td-handle-post{fill:#1f2937;stroke:none}.td-handle-placed .td-handle{stroke:#92400e}.td-handle-placed .td-handle-post{fill:#92400e}.td-handle-tap{fill:transparent;cursor:pointer}.td-clamp,.td-clip{fill:var(--handle);stroke:#fff;stroke-width:1.4}.td-channel{stroke:var(--datum);stroke-width:6;stroke-linecap:round;stroke-opacity:.9}.td-door{stroke-width:2}.td-transom{fill-opacity:.05}.td-swivel-body{fill:#ede9fe;stroke:var(--handle);stroke-width:1.6}.td-swivel-unknown .td-swivel-body{fill:#fffbeb;stroke:#b45309;stroke-dasharray:3 2}.td-swivel-unknown .td-swivel-pin{fill:#b45309}.td-swivel-pin{fill:var(--handle)}.td-door-drag,.td-grip-drag{cursor:grab;touch-action:none}.td-door-drag:active,.td-grip-drag:active{cursor:grabbing}.td-grip-bg{fill:#fff;fill-opacity:.9;stroke:#2563eb;stroke-width:1.2}.td-grip line{stroke:#2563eb;stroke-width:1.5;stroke-linecap:round}.td-clamp-live .td-clamp{fill:var(--handle);stroke:#fff;stroke-width:1.4}.td-clamp-add{cursor:pointer}.td-clamp-add-hit{fill:transparent}.td-clamp-add-dot{fill:#fff;stroke:var(--handle);stroke-width:1.6}.td-clamp-add line{stroke:var(--handle);stroke-width:1.8;stroke-linecap:round}.td-clamp-add:hover .td-clamp-add-dot{fill:#ede9fe}.td-clamp-add-center-dot{fill:var(--handle)}.td-clamp-drag{cursor:grab;touch-action:none}.td-clamp-drag:active{cursor:grabbing}.td-clamp-hit{fill:transparent}.td-clamp-keyhole{fill:none;stroke:#fff;stroke-width:1;stroke-opacity:.9}.td-clamp-del{cursor:pointer}.td-clamp-del-hit{fill:transparent}.td-clamp-del-dot{fill:#c05353;stroke:#fff;stroke-width:1}.td-clamp-del-x{stroke:#fff;stroke-width:1.6;stroke-linecap:round;fill:none}.third-hw-controls{margin-top:12px}.third-hw-head{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.third-plus{display:inline-block;font-weight:800;color:var(--handle);border:1.5px solid var(--handle);border-radius:50%;width:15px;height:15px;line-height:13px;text-align:center;font-size:11px}.third-clamp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.third-clamp-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.third-clamp-list .thw-name{min-width:120px;font-weight:600}.third-clamp-inset{display:inline-flex;align-items:center;gap:5px}.third-clamp-inset input{width:56px;padding:3px 6px;border:1px solid var(--border, #d8d2c8);border-radius:6px;font:inherit}.third-clamp-remove{margin-left:auto;border:1px solid var(--border, #d8d2c8);background:#fff;border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:16px;line-height:1;color:var(--muted)}.third-clamp-remove:hover{border-color:var(--danger);color:var(--danger)}.td-channel-live{fill:none;stroke:var(--datum);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:.9}.td-channel-add{cursor:pointer}.td-channel-add-hit{fill:transparent}.td-channel-add-dot{fill:#fff;stroke:var(--datum);stroke-width:1.6}.td-channel-add line{stroke:var(--datum);stroke-width:1.8;stroke-linecap:round}.td-channel-add:hover .td-channel-add-dot{fill:#ccfbf1}.third-plus-clamp{color:var(--handle);border-color:var(--handle)}.third-plus-channel{color:var(--datum);border-color:var(--datum)}.third-channel-tag{font-size:12px;color:var(--datum);font-weight:600}.td-clip-live .td-clip{fill:var(--clip);stroke:#fff;stroke-width:1.4}.td-clip-hand{fill:var(--clip)}.td-clip-label{fill:#92400e;font-size:10px;font-weight:700}.td-floorpoint-mark{fill:var(--lean);stroke:#fff;stroke-width:1.5}.td-floorpoint-label{fill:var(--lean);font-size:9px;font-weight:700}.td-floorpoint-snapped .td-floorpoint-mark{fill:var(--surface);stroke:var(--muted)}.td-floorpoint-snapped .td-floorpoint-label{fill:var(--muted);font-weight:600}.td-clip-delete{cursor:pointer}.td-clip-hit{fill:transparent}.td-clip-manual .td-clip,.td-hinge-placed{stroke:#92400e;stroke-width:2}.td-hinge-tap,.td-hinge-arrow{cursor:pointer}.nudge-arrow-hit{fill:transparent}.nudge-arrow-mark{fill:none;stroke:#92400e;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.nudge-arrow-tap:hover .nudge-arrow-mark{stroke:#b45309}.lean-dir-arrow{display:block;overflow:visible}.lean-steps{display:flex;align-items:center;gap:2px;pointer-events:none}.lean-steps>*{pointer-events:auto}.lean-step{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;cursor:pointer}.lean-step-gap{pointer-events:none;cursor:default}.lean-step-pill{display:inline-flex;align-items:center;justify-content:center;width:26px;height:20px;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow)}.lean-dir-arrow{cursor:default}.lean-word,.lean-plumb-mark{font-size:12px;font-weight:600;line-height:1;white-space:nowrap}.lean-dir-arrow .lean-step-pill,.lean-step:hover .lean-step-pill{border-color:var(--lean)}.lean-plumb-check{display:flex;align-items:center;gap:5px;font-size:.82em;color:#5c5347;cursor:pointer;white-space:nowrap}.tilt-glyph-ref{fill:none;stroke:#92400e;stroke-opacity:.35;stroke-width:1.2;stroke-dasharray:2 2;stroke-linecap:round}.tilt-glyph-bar{fill:none;stroke:#92400e;stroke-width:2.4;stroke-linecap:round}.lean-step:hover .tilt-glyph-bar{stroke:#b45309}.mark-group{transform:translate(-50%,calc(-1 * var(--mark-half, 22px)));pointer-events:none}.mark-group .surface-mark,.mark-group .surface-cluster{pointer-events:auto}.mark-group.mark-open,.lean-group.lean-open{z-index:3}.mark-group.cluster-up{flex-direction:column-reverse;transform:translate(-50%,calc(-100% + var(--mark-half, 22px)))}.mark-group.cluster-up .mark-warn{top:auto;bottom:calc(var(--mark-half, 22px) * 2 - 8px)}.surface-mark{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0;border:0;background:none;cursor:pointer}.mark-svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.mark-ref{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-dasharray:3 3;stroke-linecap:round}.surface-mark-unset .mark-ref{stroke:var(--lean-unanswered);stroke-width:2}.mark-bar{fill:none;stroke:var(--mark-answered);stroke-width:3;stroke-linecap:round}.mark-head{fill:var(--mark-answered);stroke:none}.surface-mark:hover .mark-head{fill:var(--accent)}.surface-mark:hover .mark-bar,.surface-mark:hover .mark-ref{stroke:var(--accent)}.mark-word{position:absolute;transform:translate(-50%,-50%);font-size:11px;font-weight:700;line-height:1;white-space:nowrap;color:var(--lean-unanswered-text);pointer-events:auto}.mark-amount{position:absolute;transform:translate(-50%,-50%);font-size:10px;font-weight:600;line-height:1;white-space:nowrap;color:var(--mark-answered);pointer-events:auto}.mark-warn{position:absolute;left:calc(50% + var(--mark-half, 22px) / 2);top:-6px;font-size:14px;line-height:1;color:var(--warn);pointer-events:none}.surface-warn-text{margin:0 0 2px;max-width:180px;font-size:11px;line-height:1.25;text-align:center;color:var(--warn)}.surface-cluster{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:auto}.surface-row{display:flex;align-items:flex-end;gap:6px}.surface-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:2px;min-height:70px}.surface-col .lean-amt{position:static;transform:none}.ring-btn{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;background:none;cursor:pointer}.ring-face{fill:var(--surface);stroke:var(--border-strong);stroke-width:1}.ring-btn:hover .ring-face{stroke:var(--lean)}.ring-sign{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}.ring-arc,.ring-head{fill:none;stroke:#92400e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ring-btn:hover .ring-arc,.ring-btn:hover .ring-head{stroke:#b45309}.surface-true-btn{font:inherit;font-size:12px;font-weight:600;color:#1e3a8a;background:#fff;border:1px solid #1d4ed8;border-radius:7px;padding:3px 10px;cursor:pointer;box-shadow:0 1px 2px #1b1a181f}.surface-true-btn.on{background:#dbeafe}.td-dimline{stroke:var(--cs-ink-2, #6b7280);stroke-width:1}.td-dimtext{fill:var(--cs-ink-2, #6b7280);font-weight:600;paint-order:stroke fill;stroke:#fff;stroke-width:2.5}.td-dim-outside .td-dimline{stroke-dasharray:3 2}.td-clip-readd{cursor:pointer}.td-clip-readd-hit{fill:transparent}.td-clip-readd-dot{fill:#fff;stroke:var(--clip);stroke-width:1.5;stroke-dasharray:2 2}.td-clip-readd line{stroke:var(--clip);stroke-width:1.8;stroke-linecap:round}.td-clip-readd:hover .td-clip-readd-dot{fill:var(--clip-bg)}.third-plus-clip{color:var(--lean-unanswered);border-color:var(--lean-unanswered)}.third-clip-reset,.third-opening-toggle{margin-left:auto;border:1px solid var(--border, #d8d2c8);background:#fff;border-radius:6px;padding:3px 9px;font:inherit;font-size:13px;cursor:pointer;color:var(--muted)}.third-opening-toggle[aria-pressed=true]{border-color:var(--accent, #2563eb);color:var(--accent, #2563eb)}.third-readout-list .thw-det{font-size:12px;color:var(--muted)}.third-opening-val{flex-basis:100%;font-size:12px;color:var(--accent, #2563eb);padding-left:2px}.third-clip-reset:hover{border-color:var(--muted);color:var(--text)}.third-clip-warn{font-size:12px;color:var(--warn);font-weight:600}.third-inert-tag{font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted);background:#efece7;border-radius:5px;padding:1px 5px;margin-left:6px;vertical-align:middle}.third-mock-tag{font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#7c2d12;background:#ffedd5;border:1px solid #fed7aa;border-radius:999px;padding:1px 8px;vertical-align:middle}.third-selects,.third-controls{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start}.third-controls{padding-top:4px}.third-sel{display:flex;flex-direction:column;gap:8px;max-width:420px}.third-upsell{font-size:10px;font-weight:700;color:#0f766e;background:var(--datum-bg);border:1px solid var(--datum-soft);border-radius:5px;padding:1px 5px;margin-left:4px;letter-spacing:.3px}.third-coat{display:flex;align-items:center;gap:8px}.third-coat input{width:74px;padding:7px 8px;border:1px solid var(--border-strong);border-radius:6px;font:inherit;background:var(--surface);color:var(--text)}.fh-custom{display:flex;align-items:baseline;gap:8px;margin-top:6px}.fh-transom{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.fh-transom .field-label{display:block;margin-bottom:4px}.fh-custom input{width:74px;padding:7px 8px;border:1px solid var(--border-strong);border-radius:6px;font:inherit;background:var(--surface);color:var(--text)}.fh-custom .field-hint{margin:0}.third-inset{position:absolute;top:14px;right:14px;width:216px;max-width:42%;background:#fffffff2;border:1px solid var(--border-strong);border-radius:8px;padding:7px 8px 8px;box-shadow:0 2px 6px #1b1a1814}.third-inset-cap{margin:0 0 4px;font-size:10.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--muted);text-align:center}.third-inset-plan svg{display:block;width:100%;height:100%}.third-inset-lbl{fill:var(--muted);font-size:10px}.third-inset-sub{font-size:9.5px;font-weight:700;letter-spacing:.2px;color:#0f766e;background:var(--datum-bg);border:1px solid var(--datum-soft);border-radius:5px;padding:0 4px;margin-left:6px}.td-run{fill:#2563eb;fill-opacity:.14;stroke:#2563eb;stroke-width:1}.td-corner-dot{fill:#1f2937}.td-jog-cut{stroke:#1f2937;stroke-width:2;stroke-linecap:round}.gd-wall-len{fill:#1f2937;font-weight:600;letter-spacing:.02em}.gd-wall-unmeasured{font-weight:500;letter-spacing:.06em}.td-miter-cut{fill:none;stroke:#1d4ed8;stroke-width:1.6;stroke-linecap:round}.td-miter-face{fill:none;stroke:#0f766e;stroke-width:1.6;stroke-linecap:butt}.third-warn{color:var(--warn);font-weight:600}.third-warnings{min-height:24px;margin:10px 0;display:flex;flex-direction:column;gap:4px}.third-warnings .third-warn,.third-warnings .lean-warning{max-width:720px}.third-warnings .lean-warning{background:none;border:none;border-radius:0;padding:0;align-self:flex-start}.third-leftover{display:flex;align-items:flex-start;gap:8px;max-width:640px;margin-top:2px}.third-leftover-dismiss{flex:0 0 auto;border:none;background:none;color:inherit;font-size:16px;line-height:1;padding:0 2px;cursor:pointer}.third-fill-btn{border-color:#8c93b5}.third-readout{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.third-readout-unit{position:absolute;transform:translate(-50%,6px);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:auto}.third-readout-side{font-size:9px;font-weight:700;letter-spacing:.2px;color:var(--muted);text-transform:uppercase}.third-readout-pill{font-size:12px;font-weight:600;color:#374151;background:#fff;border:1px solid #b45309;border-radius:5px;padding:1px 6px;box-shadow:0 1px 1px #1b1a181a}.third-clamp-pill{position:absolute;transform:translate(-50%,-30px);white-space:nowrap;pointer-events:none;font-size:12px;font-weight:600;color:#4c1d95;background:#fff;border:1px solid var(--handle);border-radius:5px;padding:1px 6px;box-shadow:0 1px 2px #1b1a1824}.third-clamp-pill-ref{font-weight:500;color:var(--muted)}.third-readout-swap{font:inherit;font-size:12px;line-height:1;color:#b45309;background:#ffffffd9;border:1px solid var(--border-strong);border-radius:6px;padding:2px 6px;cursor:pointer}.td-door-plan{fill:#2563eb;fill-opacity:.5;stroke:#1d4ed8;stroke-width:1.3}.td-swing{fill:none;stroke:#8a857e;stroke-width:1;stroke-dasharray:3 3}.third-hardware.card{padding:14px 16px}.third-hardware-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.thw-title{font-size:12px;font-weight:700;letter-spacing:.08em;color:var(--text)}.thw-ordering{font-size:13px;color:var(--muted)}.third-hardware{border-radius:10px}.third-hardware-list{list-style:none;margin:0;padding:0}.third-hardware-list li{display:flex;flex-direction:column;gap:4px;padding:10px 2px;border-top:1px solid var(--border);font-size:13px;color:var(--text)}.third-hardware-list li:first-child{border-top:0}.thw-l1{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.thw-name{font-weight:600}.thw-det{color:var(--muted)}.thw-qty{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}.thw-l3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.thw-l3-part{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.thw-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.thw-code-none{font-family:inherit;font-style:italic;color:var(--muted)}.thw-pending,.thw-code-default{font-size:11px;color:var(--muted)}.thw-off-finish{font-size:11px;font-weight:600;color:var(--warn-text)}.thw-finish{display:inline-flex;align-items:center;gap:5px;color:var(--muted)}.thw-finish-own{color:var(--text);font-weight:600}.thw-dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;border:1px solid var(--border-strong)}.thw-dot-none{background:transparent}.thw-price{font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.third-hardware .third-warn .thw-det{color:var(--warn)}.third-finish{max-width:none;margin:0 0 4px;padding-bottom:10px;border-bottom:1px solid var(--border)}.third-finish .seg-btn{flex-direction:row;align-items:center;gap:6px}.seg-other{display:inline-flex;align-items:center;padding:0 10px;border:1px dashed var(--border-strong);border-radius:999px;font-size:12px;font-weight:600;color:var(--muted)}.thw-auto{font-size:10px;font-weight:700;color:#0f766e;background:var(--datum-bg);border:1px solid var(--datum-soft);border-radius:5px;padding:1px 5px;margin-left:6px;letter-spacing:.3px}.thw-add .thw-name{color:#b45309;font-weight:600}.thw-add .thw-det{color:#b45309}.thw-change{position:relative;margin-left:auto}.thw-change>summary{display:inline-flex;align-items:center;min-height:34px;padding:0 12px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font-size:12.5px;font-weight:600;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.thw-change>summary::-webkit-details-marker{display:none}.thw-change[open]>summary{background:var(--bg)}.thw-change-panel{position:absolute;z-index:20;top:calc(100% + 6px);right:0;width:min(440px,88vw);max-height:380px;overflow:auto;display:flex;flex-direction:column;gap:12px;padding:10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);box-shadow:0 6px 20px #1b1a1824}.thw-change-sec{display:flex;flex-direction:column;gap:6px}.thw-change-h{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.thw-change-note{margin:0;font-size:12px;color:var(--muted)}.thw-chips{display:flex;flex-wrap:wrap;gap:6px}.thw-opt{min-height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:8px;background:var(--surface);font:inherit;font-size:12.5px;cursor:pointer}.thw-opt.on{border-color:var(--tab-current-ink);background:var(--tab-current-fill);color:var(--tab-current-ink);font-weight:600}.thw-models{display:flex;flex-direction:column;gap:4px}.thw-model-opt{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:40px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--surface);font:inherit;font-size:12.5px;text-align:left;cursor:pointer}.thw-model-opt.on{border-color:var(--tab-current-ink);background:var(--tab-current-fill)}.thw-model-opt:disabled{cursor:default;opacity:.55}.thw-model-app{font-size:11.5px;color:var(--muted)}.thw-finish-pick{display:flex;flex-direction:column;gap:6px}.thw-finish-pick select{min-height:36px;font:inherit}.thw-note{font-size:12px;color:var(--muted)}.thw-under{color:var(--warn)}.thw-fab-note{align-self:flex-start;padding:2px 8px;border:1px solid var(--warn-border);border-radius:6px;background:var(--warn-bg);color:var(--warn-text)}.third-hardware-list li.thw-unavailable{background:var(--danger-bg);border-left:3px solid var(--danger);padding-left:8px}.thw-unavail-msg{font-weight:600;color:var(--danger-text)}.thw-resolve{margin-left:6px;min-height:30px;padding:0 10px;border:1px solid var(--danger-border-strong);border-radius:6px;background:var(--surface);color:var(--danger-text);font:inherit;font-weight:600;cursor:pointer}.thw-datum{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.third-hardware-list li.thw-none{display:block;font-size:12.5px;color:var(--muted)}.scale-preview .sp-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:6px}.sp-note{font-size:12px}.sp-base{stroke:#6b7280;stroke-width:1.4}.sp-topline{stroke:#9333ea;stroke-width:1.2;stroke-dasharray:6 4}.gd-nosing{fill:#4ade80;fill-opacity:.45;stroke:#14532d;stroke-width:1.4}.jog-chip-nose{border:none;background:none;cursor:pointer;font-size:13px;line-height:1;padding:0 3px;color:#9ca3af}.jog-chip-nose-on{color:#854d0e;font-weight:700}.pill.pill-nosing{font-size:11px;padding:1px 6px;min-width:26px}.dim-line.dim-red{stroke:var(--dim-opening)}.dim-line.dim-yellow{stroke:var(--dim-jog)}.pill.pill-input.pill-red{background:#fecaca;border-color:#a8443a;color:#7f1d1d}.pill.pill-input.pill-red::placeholder{color:#b91c1c}.pill.pill-input.pill-yellow{background:#fde68a;border-color:#ca8a04;color:#713f12}.pill.pill-input.pill-yellow::placeholder{color:#a16207}.pill.pill-input.pill-green{background:#bbf7d0;border-color:#15803d;color:#14532d}.pill.pill-input.pill-green::placeholder{color:#15803d}.pill.pill-input.pill-blue{background:#dbeafe;border-color:#1d4ed8;color:#1e3a8a}.pill.pill-input.pill-blue::placeholder{color:#1d4ed8}.lean-arrow-btn.on.lean-blue{color:#1d4ed8;border-color:#1d4ed8}.lean-arrow-btn.lean-ask,.lean-btn.lean-ask{color:var(--lean-unanswered-text);border-color:var(--lean-unanswered);background:var(--lean-unanswered-bg);font-size:12px;width:auto;padding:0 7px;font-weight:700}.lean-plumb-btn{font:inherit;font-size:12px;font-weight:600;color:#1e3a8a;background:#fff;border:1px solid #1d4ed8;border-radius:7px;padding:3px 8px;margin-left:4px;cursor:pointer;box-shadow:0 1px 2px #1b1a181f}.lean-warning{font-size:12px;font-weight:700;color:var(--lean-unanswered-text);background:var(--lean-unanswered-bg);border:1px solid var(--lean-unanswered);border-radius:999px;padding:2px 10px}.diagram-frame{display:flex;flex-direction:column;gap:6px}.diagram-title{position:static;margin:0;text-align:center;font-size:13px;font-weight:700;letter-spacing:.2px;color:var(--muted)}.third-corner-block{display:flex;flex-direction:column;width:100%}.third-corner-row{display:flex;flex:1 1 100%;width:100%;flex-wrap:nowrap;gap:6px;align-items:center;justify-content:center}.third-corner-sels{display:flex;flex-wrap:wrap;gap:22px;align-items:flex-start;flex:1 1 auto;min-width:0}.third-inset.third-inset-beside{position:static;width:300px;max-width:100%;top:auto;right:auto;flex:0 0 auto}@media (max-width: 600px){.third-corner-row{flex-wrap:wrap}.third-inset.third-inset-beside{width:100%}}.td-edge-tap{fill:none;stroke:transparent;stroke-width:16;stroke-linecap:round;pointer-events:stroke;cursor:pointer}.td-edge-tap:hover,.td-edge-tap:active{stroke:#0d948838}.td-channel-live.td-channel-tap{cursor:pointer}.third-bulk{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:8px 0 4px}.third-bulk-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;font:inherit;font-size:13px;font-weight:700;color:var(--lean-unanswered-text);background:var(--lean-unanswered-bg);border:1px solid var(--lean-unanswered);border-radius:8px;padding:6px 12px;cursor:pointer}.third-bulk-warn{font-size:10.5px;font-weight:600;letter-spacing:.2px;text-transform:uppercase;color:var(--warn)}.third-bulk-undo{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.third-bulk-undo-btn{font:inherit;font-weight:700;color:#1d4ed8;background:none;border:none;border-bottom:1px solid currentColor;padding:0;cursor:pointer}.cutsheets,.labour-breakdown{--cs-ink: #e8eef7;--cs-ink-2: #b9c6d6;--cs-ink-3: #93a3b8;--cs-line: #3d4a5c;--cs-line-soft: #64788f}.cutsheets{margin-top:28px;padding:16px;border:1px solid var(--cs-line);border-radius:10px;background:#10161f;color:var(--cs-ink)}.cutsheets .field-hint{color:var(--cs-ink-3)}.cs-title{margin:0 0 4px;letter-spacing:.08em;color:var(--cs-ink)}.cs-settings{margin:10px 0}.cs-settings summary{cursor:pointer;font-weight:600;color:var(--cs-ink)}.cs-settings-body{padding:8px 0 4px;display:grid;gap:8px}.cs-setting{display:grid;grid-template-columns:130px 90px 1fr;gap:8px;align-items:baseline}.cs-setting .field-hint{grid-column:1 / -1;margin:0}.cs-setting input{width:80px;background:#0b1017;color:var(--cs-ink);border:1px solid var(--cs-line);border-radius:6px;padding:2px 6px}.cs-setting-modified .cs-setting-name,.cs-setting-modified input{color:#ffd479;border-color:#a97a1e}.cs-setting-meta{color:var(--cs-ink-3)}.cs-setting-derived{opacity:.85}.cs-jobflags,.cs-flags,.cs-missing{margin:6px 0;padding-left:18px;color:#ffd479;font-size:.9em}.cs-missing{color:#ff9d9d}.cs-pieces{display:grid;gap:12px;margin-top:10px}.cs-piece{border:1px solid var(--cs-line);border-radius:8px;padding:10px}.cs-piece-incomplete{border-color:#7a3a3a}.cs-piece-rule-not-set{border-color:#a97a1e}.cs-piece-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cs-edit-sizes{min-height:44px;min-width:44px;padding:0 14px}.cs-piece-key{color:#8ea0b8;font-size:.85em}.cs-piece-status{margin-left:auto;font-size:.75em;letter-spacing:.06em;color:#ffd479}.cs-piece-adjusted{font-size:.72em;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#e05a5a;border:1px solid #e05a5a66;border-radius:999px;padding:1px 8px;white-space:nowrap}.cs-adjusted-note{color:#e05a5a;font-weight:600;font-size:.9em;margin:4px 0 10px}.cs-remake-check{display:inline-flex;align-items:center;gap:6px;font-size:.8em;letter-spacing:.04em;color:var(--muted);cursor:pointer;padding:2px 6px}.cs-remake-check input{width:18px;height:18px;accent-color:#2f6b43}.cs-piece-incomplete .cs-piece-status{color:#ff9d9d}.cs-piece-body{display:flex;gap:14px;align-items:flex-start;margin-top:6px}.cs-preview{width:120px;max-height:160px;flex:0 0 auto}.cs-preview-outline{fill:#7aa8e040;stroke:#7aa8e0;stroke-width:3;vector-effect:non-scaling-stroke}.cs-preview-derived{fill:none;stroke:#46586e;stroke-dasharray:6 4;stroke-width:2;vector-effect:non-scaling-stroke}.cs-preview-red{fill:#e05a5a33;stroke:#e05a5a}.cs-piece-facts{display:grid;gap:4px;font-size:.95em;color:var(--cs-ink)}.cs-piece-thickness{font-weight:600}.cs-piece-thickness-in{font-weight:400;color:var(--cs-ink-2)}.cs-red{color:#e05a5a;font-weight:600}.cs-flag{color:#ffd479;font-size:.85em}.cs-override-btn{margin-top:8px;background:#22303f;border:1px solid var(--cs-line);color:var(--cs-ink);border-radius:6px;padding:4px 12px;cursor:pointer;letter-spacing:.05em}.cs-override{margin-top:8px;border-top:1px dashed #2b3442;padding-top:8px;display:grid;gap:4px}.cs-corner{display:grid;grid-template-columns:80px 1fr 1fr;gap:6px;align-items:center}.cs-corner-label{color:#8ea0b8;font-size:.85em}.cs-dim{display:flex;gap:8px;align-items:center}.cs-dim-label{width:44px;color:#8ea0b8;font-size:.85em}.cs-dim-value{min-width:90px}.cs-delta{font-style:normal;font-size:.85em}.cs-dim-arrows button{background:#22303f;border:1px solid var(--cs-line);color:var(--cs-ink);border-radius:4px;padding:0 6px;cursor:pointer}.cs-dim-clear{color:#8ea0b8}.cs-override-actions{display:flex;gap:8px;margin-top:6px}.cs-override-actions button{background:#22303f;border:1px solid var(--cs-line);color:var(--cs-ink);border-radius:6px;padding:4px 12px;cursor:pointer}.cs-total{margin-top:12px;border-top:1px solid var(--cs-line);padding-top:8px;color:var(--cs-ink)}.cs-editor-head{display:flex;gap:14px;align-items:baseline;flex-wrap:wrap}.cs-editor-back{background:none;border:none;color:#7aa8e0;cursor:pointer;padding:0;font-size:1em}.cs-editor-actions{margin-left:auto;display:flex;gap:8px}.cs-editor-actions button{background:#22303f;border:1px solid var(--cs-line);color:var(--cs-ink);border-radius:6px;padding:4px 12px;cursor:pointer}.cs-editor-svg{width:100%;max-height:72vh;display:block;margin-top:8px}.cs-ghost{fill:none;stroke:var(--cs-line-soft);stroke-dasharray:8 5;stroke-width:2.5;vector-effect:non-scaling-stroke}.cs-working-fill{fill:#7aa8e029;stroke:none}.cs-working-seg{stroke:#7aa8e0;stroke-width:3;vector-effect:non-scaling-stroke}.cs-seg-red{stroke:#e05a5a}.cs-vertex{fill:#7aa8e0}.cs-vertex-red{fill:#e05a5a}.cs-leader{stroke:var(--cs-line-soft);stroke-width:1.5;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.cs-arrow{cursor:pointer}.cs-arrow-hit{fill:#22303f;stroke:var(--cs-line)}.cs-arrow:hover .cs-arrow-hit{stroke:#7aa8e0}.cs-arrow-glyph{fill:#b9c6d6;-webkit-user-select:none;user-select:none;pointer-events:none}.cs-pill{fill:#e05a5a;font-weight:600;paint-order:stroke;stroke:#10161f;stroke-width:4}.cs-piece-body{flex-direction:column}.cs-drawing{width:100%;display:block}.cs-drawing-list{max-height:52vh}.cs-drawings{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.cs-drawings>.cs-drawing-list{flex:1 1 320px;min-width:0}.cs-secondary-thumb{flex:0 0 150px;padding:4px;background:none;border:1px solid #2c3a4f;border-radius:8px;cursor:pointer;min-height:44px}.cs-secondary-thumb .cs-drawing{width:100%;display:block;max-height:none}.cs-drawings-open .cs-secondary-thumb{flex:1 1 100%}.cs-drawings-open .cs-secondary-thumb .cs-drawing{max-height:52vh}.cs-secondary-switch{min-height:44px}ONE INK FOR BOTH SURFACES,deliberately. The `.fab-sheet .cs-*` block is a closed contract — the three MEASUREMENT text classes and their knockout,pinned by fab-sheet-ink-guard — and drawing ink does not belong in it. So these are chosen to carry on the dark panel AND on white paper,the same posture `.cs-blank` already takes at this grey. The hatch is drawn heavier than a hairline for exactly the paper case: a 1px light rule is the first thing a shop printer loses. */ .cs-secondary-fill{stroke:none}.cs-secondary-hatch{stroke:#7d8fa6;stroke-width:1.6}.cs-secondary-seg{stroke:#7d8fa6;stroke-width:2.5;vector-effect:non-scaling-stroke}.cs-secondary-caveat{letter-spacing:.04em}.cs-blank{fill:none;stroke:#8ea0b8;stroke-width:1.5;stroke-dasharray:10 6;vector-effect:non-scaling-stroke}.cs-origin{fill:#8ea0b8}.cs-ordinate{stroke:#8ea0b8;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.cs-secondary-title{letter-spacing:.04em}.cs-dimline{stroke:#8ea0b8;stroke-width:1.5;vector-effect:non-scaling-stroke}.cs-dimext{stroke:#8ea0b8;stroke-width:1;vector-effect:non-scaling-stroke}.cs-dimtext{fill:#d5deea;font-family:inherit;paint-order:stroke;stroke:#10161f;stroke-width:4}.cs-plumb{stroke:#8ea0b8;stroke-width:2;stroke-dasharray:10 6;vector-effect:non-scaling-stroke}.cs-taper-arrow{stroke:#d5deea;stroke-width:3.2;vector-effect:non-scaling-stroke}.cs-taper-head{fill:#d5deea}.cs-cutout-body,.cs-cutout-ear,.cs-hole-circle{fill:#10161f;stroke:#7aa8e0;stroke-width:2;vector-effect:non-scaling-stroke}.cs-verify-note{fill:#ffd479;font-weight:700;letter-spacing:.04em;paint-order:stroke;stroke:#10161f;stroke-width:4}.cs-spacing{cursor:pointer}.cs-spacing-circle{fill:#22303f;stroke:#7aa8e0;stroke-width:2;vector-effect:non-scaling-stroke}.cs-spacing:hover .cs-spacing-circle{stroke:#d5deea}.cs-place-adjusted{fill:#e05a5a!important}.cs-place-value{fill:#d5deea}.cs-flagnote{fill:#ffd479;font-weight:700;paint-order:stroke;stroke:#10161f;stroke-width:4}.pkg-section{display:flex;flex-direction:column;gap:8px}.pkg-section-quote{align-items:flex-start}.quote-pdf-row{display:flex;align-items:center;gap:10px;margin-top:8px}.quote-pdf-markup{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.quote-pdf-pct{width:58px;padding:3px 6px;font:inherit;font-size:12px;border:1px solid var(--border-strong);border-radius:6px;background:#fff}.quote-pdf-costs{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.quote-pdf-open{font-size:12px;font-weight:600;padding:4px 10px;border:1px solid var(--border-strong);border-radius:6px;text-decoration:none;color:inherit}.quote-pdf-open[aria-disabled=true]{opacity:.4;pointer-events:none}.pkg-label{display:flex;align-items:baseline;gap:8px;margin:4px 0 0;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pkg-label-sub{font-size:10px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted);opacity:.85}.third-quote-split{display:flex;flex-direction:column;max-width:22rem;align-self:center;margin-left:14px;border:1px solid var(--cs-line, #2a3546);border-radius:8px;overflow:hidden}.third-quote-split button{display:block;width:100%;text-align:left;padding:8px 12px;border:0;cursor:pointer;font:inherit;color:var(--cs-ink-2, #b9c6d6);background:#1a2331}.third-quote-split button:hover:not(:disabled){background:#22303f}.third-quote-split button:disabled{opacity:.5;cursor:default}.third-quote-main{font-weight:600}.third-quote-all{border-top:1px solid var(--cs-line, #2a3546)!important;font-size:.92em}.third-quote-warn{display:block;margin-top:2px;font-size:inherit;font-weight:600;color:inherit}.third-quote-sub{display:block;margin-top:2px;font-size:11px;font-weight:400;color:var(--cs-ink-3, #93a3b8)}.third-quote-estimate{font-weight:400;border-top:1px solid var(--cs-line, #2a3546)!important}.cs-working-seg.cs-bevel-edge{stroke:#c25e00;stroke-width:3.5;stroke-dasharray:1 4;stroke-linecap:round}.cs-nts{fill:#8ea0b8;font-weight:700;letter-spacing:.06em;paint-order:stroke;stroke:#10161f;stroke-width:4}.cs-keyhole{fill:#0b1017;stroke:var(--cs-ink-2);stroke-width:2;vector-effect:non-scaling-stroke}.cs-fab-note{fill:#fbbf24;font-weight:600;letter-spacing:.04em}.cs-keyhole-dim{fill:var(--cs-ink-2);letter-spacing:.03em}.cs-vdim-leg{stroke:#8ea0b8;stroke-width:1.5;vector-effect:non-scaling-stroke}.cs-detail-box,.cs-detail-key{fill:none;stroke:#8ea0b8;stroke-width:1.5;vector-effect:non-scaling-stroke}.cs-detail-face{stroke:#7aa8e0;stroke-width:2.5;vector-effect:non-scaling-stroke}.cs-detail-break{fill:none;stroke:#7aa8e0;stroke-width:2.5;vector-effect:non-scaling-stroke}.cs-detail-join{fill:var(--muted, #8a857e)}.cs-detail-loc-part{fill:#eef3f9;stroke:#8ea0b8;stroke-width:1;vector-effect:non-scaling-stroke}.cs-detail-loc-here{stroke:#7aa8e0;stroke-width:2.5;vector-effect:non-scaling-stroke}.cs-vdim-dot{fill:#d5deea}.cs-dim-hot text{user-select:none;-webkit-user-select:none}.cs-dim-hot{cursor:pointer}.cs-dim-hit{fill:#7aa8e01f;pointer-events:all}.cs-dim-hot:hover .cs-dim-hit{fill:#7aa8e03d}.cs-dim-relocated .cs-dim-hit{fill:#7aa8e02e}.cs-dim-knockout{fill:none}.fab-sheet .cs-dim-knockout{fill:#fff}.cs-dim-draggable text{cursor:grab;touch-action:none}.cs-dim-dragging text{cursor:grabbing}.cs-dim-leader{stroke:#8ea0b8;stroke-width:1.5;vector-effect:non-scaling-stroke}.cs-dim-leader-dot{fill:#d5deea}.cs-callout-line{stroke:none}.cs-vdim-text{fill:#d5deea;font-family:inherit;paint-order:stroke;stroke:#10161f;stroke-width:4;letter-spacing:.02em}.cs-refdim{fill:#8ea0b8;font-style:italic;font-family:inherit;letter-spacing:.02em}.cs-taper .cs-refdim{paint-order:stroke;stroke:#10161f;stroke-width:3.5}@page{size:letter;margin:.5in}.fab-package{display:none}.fab-sheet{width:7.5in;min-height:10in;box-sizing:border-box;background:#fff;color:#000;padding:0;display:flex;flex-direction:column;break-after:page;page-break-after:always}.fab-sheet:last-child{break-after:auto;page-break-after:auto}.fab-bevel-plan{border:1px solid #d8dde4;border-radius:4px;padding:6px 8px 4px;margin:0 0 8px;max-width:2.6in}.fab-bevel-head{font-size:9px;font-weight:700;letter-spacing:.08em;display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.fab-bevel-angle{font-weight:700;color:#c25e00}.fab-bevel-svg{width:100%;height:auto;display:block}.fab-bevel-pane{fill:#eef2f7;stroke:#44506180;stroke-width:1;vector-effect:non-scaling-stroke}.fab-bevel-door{fill:#dfe8f2;stroke:#445061;stroke-width:1;vector-effect:non-scaling-stroke}.fab-bevel-centre{stroke:#7a8494;stroke-width:1;stroke-dasharray:9 3 2 3;vector-effect:non-scaling-stroke}.fab-bevel-seam{fill:none;stroke:#c25e00;stroke-width:2;vector-effect:non-scaling-stroke}.fab-bevel-datum{fill:#c25e00}.fab-bevel-detail-row{display:flex;gap:6px;margin-top:4px}.fab-bevel-detail{flex:0 0 auto;text-align:center}.fab-bevel-detail-svg{width:.62in;height:.62in;display:block;border:1px solid #e3e7ec;border-radius:3px;background:#fbfcfd}.fab-bevel-detail-cap{font-size:7px;font-weight:700;letter-spacing:.04em;color:#445061}.fab-bevel-out{fill:#8a929c;font-weight:700;letter-spacing:.06em}.fab-bevel-note{margin:3px 0 0;font-size:8px;font-weight:700;letter-spacing:.04em}.fab-bevel-nts{margin:1px 0 0;font-size:8px;color:#6b7480;letter-spacing:.04em}.fab-sheet-body{flex:1}.fab-head{display:grid;grid-template-columns:1fr auto;gap:2pt 12pt;border-bottom:1pt solid #000;padding-bottom:4pt;font-size:8pt}.fab-head-l{display:flex;flex-direction:column}.fab-head-r{display:flex;gap:10pt;align-items:baseline;font-variant-numeric:tabular-nums}.fab-order,.fab-rev{font-weight:700;letter-spacing:.06em}.fab-hand{grid-column:1 / -1;font-size:7.5pt;font-weight:700;letter-spacing:.14em;border-top:.5pt solid #999;margin-top:3pt;padding-top:3pt}.fab-title{margin:10pt 0 6pt;font-size:12pt;letter-spacing:.1em}.fab-job{display:grid;grid-template-columns:auto 1fr;gap:1pt 12pt;margin:0 0 8pt;font-size:9pt}.fab-job dt{font-weight:700}.fab-job dd{margin:0}.fab-warn{border:1pt solid #000;padding:4pt 6pt;font-size:9pt;font-weight:700}.fab-index{list-style:none;margin:0;padding:0;font-size:8.5pt}.fab-install{margin-top:10pt;break-inside:avoid}.fab-install-head{font-size:9pt;margin:0 0 2pt}.fab-hardware-list{width:100%;border-collapse:collapse;font-size:8.5pt}.fab-hardware-list th{text-align:left;font-weight:700;border-bottom:.5pt solid #999;padding:1pt 6pt 1pt 0}.fab-hardware-list td{padding:1.5pt 6pt 1.5pt 0;border-bottom:.5pt solid #eee;vertical-align:top}.fab-hw-qty{width:.5in;font-variant-numeric:tabular-nums}.fab-hw-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.fab-hw-pending,.fab-hw-none{font-family:inherit;font-size:7.5pt;color:#666}.fab-install-figs{display:grid;grid-template-columns:1fr 1fr;gap:.25in;margin-top:8pt;grid-template-rows:minmax(min-content,1fr)}.fab-fig{margin:0}.fab-fig-stage{position:relative;height:2.6in;display:flex;align-items:center;justify-content:center}.fab-fig-stage>svg{width:100%;height:100%;display:block}.fab-sheet:has(.fab-install){height:10in}.fab-sheet:has(.fab-install) .fab-sheet-body{display:flex;flex-direction:column;min-height:0}.fab-sheet:has(.fab-install) .fab-install{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}.fab-sheet:has(.fab-install) .fab-install-figs{flex:1 1 auto;min-height:0}.fab-sheet:has(.fab-install) .fab-fig{display:flex;flex-direction:column}.fab-sheet:has(.fab-install) .fab-fig figcaption{flex:0 0 auto}.fab-sheet:has(.fab-install) .fab-fig-stage{flex:1 1 auto;height:1.8in;min-height:1.8in;max-height:3.4in}.fab-fig-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.fab-fig-code{font-weight:700;fill:#1b1a18;paint-order:stroke;stroke:#fff}.fab-fig figcaption{font-size:8pt;margin-top:2pt}.fab-fig-lap{display:block;font-size:7.5pt;color:#333}.fab-index li{display:grid;grid-template-columns:1in 1fr auto auto;gap:8pt;padding:2pt 0;border-top:.5pt solid #ddd}.fab-pieces{display:grid;gap:.35in;align-content:start}.fab-pieces-2{grid-template-columns:3.5in 3.5in}.fab-pieces-1{grid-template-columns:7.5in}.fab-piece-head{display:flex;align-items:baseline;gap:8pt;font-size:9.5pt;margin:6pt 0 3pt}.fab-piece-key{font-weight:400}.fab-drawing{width:100%;max-height:8in}.fab-piece-pair{display:grid;grid-template-columns:3.5in 3.5in;column-gap:.35in;align-items:start}.fab-piece-pair>:not(.fab-drawing){grid-column:1 / -1}.fab-sheet .cs-dimtext,.fab-sheet .cs-vdim-text,.fab-sheet .cs-refdim{fill:#000;paint-order:stroke;stroke:#fff;stroke-width:4}.fab-sheet .cs-nts,.fab-sheet .cs-verify-note,.fab-sheet .cs-flagnote,.fab-sheet .cs-fab-note{fill:#000;stroke:none}.fab-sheet .cs-taper-arrow{stroke:#000}.fab-sheet .cs-taper-head{fill:#000}.fab-final-sizes{margin:6pt 0 0;font-size:10pt;font-weight:700;letter-spacing:.03em;color:#000}.fab-piece-facts{display:flex;flex-wrap:wrap;gap:10pt;font-size:8.5pt;margin-top:3pt}.fab-adjusted,.fab-changed{font-weight:700;letter-spacing:.04em;color:var(--danger)}.fab-nosize,.fab-missing,.fab-flags{font-size:8.5pt;font-weight:700;color:var(--danger)}.fab-missing,.fab-flags{list-style:none;margin:4pt 0 0;padding:0}.fab-spec{font-size:8.5pt;font-weight:700;margin-top:4pt}.fab-remake{font-weight:800;letter-spacing:.08em;border:2pt solid #111;padding:1pt 6pt}.fab-remake-tag{font-weight:700;letter-spacing:.06em;border:1pt solid #111;padding:0 4pt;font-size:8pt}.fab-issued-by{font-size:8.5pt}.fab-subtitle{margin:0 0 6pt;font-size:10pt;font-weight:700;letter-spacing:.08em}.fab-shower{font-weight:700;letter-spacing:.06em}.fab-cover-sub{margin:0 0 10pt;font-size:9pt}.fab-cover-list{list-style:none;margin:0;padding:0;font-size:9.5pt}.fab-cover-list li{display:grid;grid-template-columns:1.1in 2.6in auto 1fr;gap:10pt;padding:4pt 0;border-top:.5pt solid #ddd;align-items:baseline}.fab-cover-code{font-weight:700;letter-spacing:.06em}.fab-cover-rev{font-variant-numeric:tabular-nums}.fab-cover-missing .fab-cover-code,.fab-cover-nosize{color:var(--danger);font-weight:700}.fab-cover-nosize{grid-column:3 / -1;font-size:8.5pt}.fab-toggle{margin-top:14px}#print-root{display:none}@media print{#root{display:none}#print-root{display:block}.fab-package{display:block;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.ref-method-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:18px 28px}.ref-type-main{display:flex;flex-direction:column;gap:6px}.ref-ceiling{display:flex;flex-direction:column;gap:6px;max-width:320px;padding-top:22px}.ref-method{display:flex;flex-direction:column;gap:6px;max-width:360px}.method-hint{max-width:360px}.glass-selects{display:flex;flex-direction:column;gap:18px}.glass-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:18px 28px}.glass-row-shape{border-top:1px solid var(--border);padding-top:16px}.third-bulk-on-diagram{position:absolute;left:12px;bottom:12px;z-index:5;margin:0;max-width:calc(100% - 24px)}.third-bulk-on-diagram .third-bulk-btn{background:#fffbebf0;box-shadow:0 2px 6px #1b1a182e}.third-bulk-next{font-size:11px;font-weight:600;color:var(--lean-unanswered-text);opacity:.85}.third-bulk-on-diagram .third-bulk-undo{background:#fffffff0;border-radius:8px;padding:4px 8px;box-shadow:0 2px 6px #1b1a182e}.diagram-controls{position:absolute;left:10px;bottom:10px;z-index:5;display:flex;gap:6px}.diagram-ctl{font:inherit;font-size:12px;font-weight:700;color:#33406b;background:#ffffffeb;border:1px solid var(--border);border-radius:8px;padding:4px 10px;box-shadow:0 2px 6px #1b1a1824;cursor:pointer}.diagram-ctl:disabled{opacity:.4;cursor:default;box-shadow:none}.diagram-controls-right{left:auto;right:10px;align-items:flex-end;flex-direction:column-reverse;gap:4px;max-width:152px}.diagram-controls-right .diagram-ctl{max-width:152px}.diagram-controls-right .third-bulk-diagram-btn .third-bulk-next,.diagram-controls-right .third-bulk-diagram-btn .third-bulk-warn{display:none}.third-bulk-diagram-btn{display:flex;flex-direction:column;align-items:flex-end;gap:1px;line-height:1.2;text-align:right}.third-bulk-diagram-main{font-size:12px;font-weight:700}.third-bulk-diagram-btn .third-bulk-next{font-size:10px}.third-header-btn.on{border-color:var(--selected-ok);color:var(--selected-ok)}.third-bulk-diagram-btn .third-bulk-warn{font-size:10px;font-weight:700;color:#5a648c;letter-spacing:.02em;text-transform:uppercase}.third-bulk-diagram-btn .third-bulk-next{color:#5a648c}@media (max-width: 600px){.diagram-controls-right{flex-direction:column-reverse;gap:4px}.diagram-controls-right .diagram-ctl{max-width:132px;padding:3px 8px}.third-bulk-diagram-btn .third-bulk-main,.third-bulk-diagram-btn .third-bulk-diagram-main{font-size:11px}.third-bulk-diagram-btn .third-bulk-next,.third-bulk-diagram-btn .third-bulk-warn{display:none}}.fab-toggle-big{display:flex;justify-content:center;margin:28px 0 8px}.fab-toggle-big .third-bulk-btn{align-items:center;font-size:17px;padding:16px 40px;border-radius:12px;min-height:56px}.fab-toggle-big .third-bulk-warn{font-size:11.5px}.pill.pill-input.pill-unverified{display:inline-flex;align-items:center;justify-content:center;font-family:inherit;background:transparent;border-style:dashed;border-width:2px;padding:0 3px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.pill.pill-input.pill-unverified:not(.pill-red):not(.pill-yellow):not(.pill-green):not(.pill-blue){border-color:#b45309;color:#92400e}.pill.pill-input.pill-unverified:hover,.pill.pill-input.pill-unverified:focus-visible{border-style:solid;outline:2px solid rgba(180,83,9,.25);outline-offset:0}.type-hold-line{margin:6px 0 0;font-size:12px;line-height:1.45;color:#57534e}.type-hold-line strong{color:#1c1917}.fab-unverified{font-weight:700;letter-spacing:.04em;color:var(--warn)}.fab-unverified-list{margin:3pt 0 0;padding-left:10pt;font-size:8pt;font-weight:700;color:var(--warn)}.height-stepper .hs-row{display:flex;align-items:center;gap:6px}.hs-arrow{min-width:44px;min-height:44px;align-items:center;justify-content:center;font-size:17px;line-height:1;padding:0}.hs-arrow:disabled{opacity:.35;cursor:default}.hs-value{min-width:74px;min-height:34px;padding:0 8px;text-align:center;font-size:15px;font-weight:700;font-family:inherit;color:#1c1917;background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer}.hs-value:hover,.hs-value:focus-visible{border-color:#d1d5db;background:#fff}.hs-value.hs-input{cursor:text;border-color:var(--selected);background:#fff;outline:2px solid rgba(180,83,9,.25)}.hs-topout{margin-left:8px}.height-stepper.panel-height .hs-value{color:#3f3b36}.door-block{display:flex;flex-direction:column;gap:14px;flex:1 1 100%;width:100%}.door-row{display:flex;flex-wrap:nowrap;gap:14px 26px;align-items:flex-start}.door-row>*{min-width:0;flex:1 1 0}.td-inset-stage{position:relative;height:300px;overflow:hidden;display:flex;align-items:center;justify-content:center}.td-flank{flex:0 0 160px;display:flex;align-items:center;justify-content:center;min-height:1px}.td-corner-ctl{display:flex;align-items:stretch;gap:6px}.td-lap-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;padding:9px 14px;font-family:inherit;font-size:14px;font-weight:700;line-height:1.15;color:#1c1917;background:#fff;border:1px solid var(--border-strong, #d1d5db);border-radius:6px;cursor:pointer}.td-lap-toggle .seg-sub{font-size:11px;font-weight:600;opacity:.7}.td-lap-toggle:hover:not(:disabled){border-color:var(--selected)}.td-lap-toggle:disabled{opacity:.55;cursor:default}.td-lap-toggle.is-mitred .td-lap-wall{text-decoration:line-through;opacity:.6}.td-miter-btn{font-size:14px;font-weight:700;font-family:inherit;min-height:48px;padding:9px 10px;color:#57534e;background:#fff;border:1px solid #d1d5db;border-radius:5px;cursor:pointer}.td-miter-btn.active{color:var(--selected-text);border-color:var(--selected);background:var(--selected-bg)}.td-miter-flag{color:#b45309}.door-mode-col{display:flex;flex-direction:column;gap:12px;min-width:0}.third-hinge-row{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}.hinge-seg{justify-content:flex-start}.hinge-btn{min-width:72px;min-height:44px;align-items:center;justify-content:center;padding:0 12px}.third-hinge-state{font-size:12px;color:var(--muted, #6b7280)}.third-hinge-note{max-width:none}.third-inset.third-inset-plan{position:relative;top:auto;right:auto;width:300px;max-width:100%;flex:0 1 300px}.td-msg-col{flex:0 0 auto;width:100%;max-width:632px;margin-inline:auto;align-self:stretch;display:flex;flex-direction:column;gap:6px;padding-top:6px;min-width:0;font-size:13px;line-height:1.5;min-height:calc(var(--td-notes, 1) * 3em + (var(--td-notes, 1) - 1) * 6px)}.td-msg-col .td-corner-note{margin:0}.panel-height-slot{display:flex;flex-direction:column;gap:10px;min-width:0}.panel-optin.active{border-color:var(--selected);background:var(--selected-bg);color:var(--selected-text)}.panel-warn{display:block;width:100%;text-align:left;font-family:inherit;font-size:12px;font-weight:700;line-height:1.35;padding:7px 9px;color:var(--danger-text);background:#fee2e2;border:1px solid var(--danger);border-radius:6px;cursor:pointer}.panel-warn:hover,.panel-warn:focus-visible{background:var(--danger-bg-hover)}.sync-banner{padding:8px 14px;border:1px solid var(--ok-border-strong);border-radius:10px;background:#eef7f4;color:#1f4d43;font-size:13px;line-height:1.45;margin-bottom:12px}.sync-banner p{margin:0}.sync-banner p+p{margin-top:4px}.sync-banner-wait{border-color:var(--warn-border-strong);background:var(--warn-bg);color:#6b4e12}.sync-banner-bad{border-color:var(--danger-border-strong);background:var(--danger-bg);color:#7a2727}.notice-offline{background:var(--warn-bg);color:#6b4e12;border:1px solid var(--warn-border-strong)}.notice-converted{background:#eef2fb;color:#2c3e6b;border:1px solid #c9d5ef}.converted-line{color:#2c3e6b}.ref-convert .method-current{margin:0;font-size:13px}.ref-convert .convert-arm{display:flex;gap:8px;align-items:center}.ref-convert .convert-confirm{border-color:#2c3e6b;color:#2c3e6b}.attribution{font-size:13px;margin:-6px 0 10px}.notice-issued{background:#eef2fb;color:#33406b;border:1px solid #c3cee8}.cat-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.cat-tab{font:inherit;font-size:14px;font-weight:600;min-height:44px;padding:0 16px;color:var(--muted);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);cursor:pointer}.cat-tab:hover{color:var(--text);border-color:var(--accent)}.cat-tab-on,.cat-tab-on:hover{color:var(--tab-current-ink);background:var(--tab-current-fill);border-color:var(--tab-current-ink)}.notice-method{background:#eef2fb;color:#33406b;border:1px solid #c3cee8;max-width:62ch}.rev-cut-edits{margin-top:4px}.rev-cut-edits-toggle{background:none;border:none;padding:0;font:inherit;font-size:13px;color:#7a5a17;font-weight:600;cursor:pointer;text-align:left}.rev-cut-edits-list{list-style:none;margin:6px 0 0;padding:6px 10px;border-left:2px solid #e0d8c8;font-size:12.5px;color:var(--muted);display:flex;flex-direction:column;gap:3px}.shower-remove{border:1px dashed var(--border-strong);color:var(--muted);background:transparent;border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer}.shower-remove:hover{color:var(--danger-text);border-color:var(--danger-border-strong)}.shower-archived summary{cursor:pointer;font-size:12px;color:var(--muted)}.shower-archived-row{display:flex;align-items:center;gap:8px;padding:3px 0}.shower-archived-name{flex:1 1 auto;color:var(--muted)}.pkg-rows{margin-top:28px;padding-top:16px;border-top:1px solid #e3ded6;display:flex;flex-direction:column;gap:12px}.pkg-row{display:flex;align-items:flex-start;gap:12px}.pkg-row-title{flex:0 0 84px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:8px}.pkg-row-btns{display:flex;flex-wrap:wrap;gap:8px}.pkg-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;background:#fff;border:1px solid #cfc9bf;border-radius:8px;cursor:pointer;font:inherit}.pkg-btn strong{font-size:13px}.pkg-btn-meta{font-size:11px;color:var(--muted)}.pkg-btn-newest{background:#f7e08a;border-color:#d9b93c}.pkg-btn{cursor:default}.pkg-btn-acts{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.pkg-act{padding:4px 10px;font:inherit;font-size:12px;background:#fff;border:1px solid #cfc9bf;border-radius:6px;cursor:pointer}.pkg-act:disabled{opacity:.55;cursor:default}.pkg-act-quiet{border-color:transparent;color:var(--muted)}.pkg-btn-sent{font-size:11px;color:var(--muted);font-style:italic}.pkg-send{display:inline-flex;flex-direction:column;gap:4px}.pkg-send-picker{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:8px 10px;background:#fff;border:1px solid #cfc9bf;border-radius:8px}.pkg-send-head{margin:0;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.pkg-send-choice{display:flex;align-items:baseline;gap:6px;font-size:12px;cursor:pointer}.pkg-send-name{font-weight:600}.pkg-send-addr{font-size:11px;color:var(--muted)}.pkg-send-acts{display:flex;gap:6px;margin-top:4px}.pkg-send-note{font-size:11px;max-width:260px}.pkg-send-ok{color:var(--muted)}.pkg-send-bad{color:var(--warn);font-weight:600}.pkg-send-preview{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding:10px 12px;width:min(520px,80vw);background:#fff;border:1px solid #cfc9bf;border-radius:8px}.pkg-prev-line{display:flex;gap:8px;font-size:12px;line-height:1.4}.pkg-prev-label{flex:0 0 68px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding-top:2px}.pkg-prev-value{flex:1 1 auto;word-break:break-word}.pkg-prev-note{color:var(--muted);font-style:italic}.pkg-prev-field{display:flex;gap:8px;align-items:flex-start;margin-top:2px}.pkg-prev-subject,.pkg-prev-body{flex:1 1 auto;width:100%;font:inherit;font-size:12px;padding:4px 6px;border:1px solid #cfc9bf;border-radius:6px;background:#fff}.pkg-prev-body{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.45;resize:vertical}.pkg-prev-subject:disabled,.pkg-prev-body:disabled{background:#f6f4f1;color:var(--muted)}.third-blocking{display:flex;flex-direction:column;gap:4px}.third-blocking-head{font-size:10.5px;font-weight:700;letter-spacing:.2px;text-transform:uppercase;color:var(--warn)}.third-blocking-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:2px;font-size:12px;line-height:1.35;color:var(--text)}.pkg-btn-current{padding:12px 20px;border-width:2px;border-color:#c9a52b;box-shadow:0 1px 3px #0000001f}.pkg-btn-current strong{font-size:17px}.pkg-btn-current .pkg-btn-meta{font-size:12px}.pkg-btn-current-tag{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6b5410}.rev-cut-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.rev-cut-act{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;background:#fff;border:1px solid #cfc9bf;border-radius:8px;cursor:pointer;font:inherit;font-weight:600;font-size:13px;text-align:left;color:inherit}.rev-cut-act:disabled{cursor:default;opacity:.55}.rev-cut-act-ready{border-color:var(--glass-2-line);box-shadow:0 0 0 1px var(--glass-2-line)}.rev-cut-act-ready:hover{border-color:var(--glass-3-line);box-shadow:0 0 0 1px var(--glass-3-line)}.rev-cut-act-sub{font-size:11px;font-weight:400;color:var(--muted)}.rev-cut-cleared{margin:8px 0 0;font-size:12px;font-weight:600;color:var(--ok)}.rev-cut-clear-error{margin:8px 0 0;font-size:12px;color:#9a3412;max-width:62ch}.clear-back-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.clear-back-undo{min-height:32px;padding:2px 12px;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer}.shower-tab-menu-list .shower-tab-clear:hover,.shower-tab-menu-list .shower-tab-clear:focus-visible{color:var(--danger-text)}.third-remake-btn{background:#fff;border:2px solid var(--selected-ok);color:var(--selected-ok)}.update-toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:#263039;color:#fff;border:none;cursor:pointer;font-family:inherit;font-weight:600;font-size:14px;padding:12px 20px;border-radius:999px;box-shadow:0 6px 20px #14233a4d;z-index:1200;white-space:nowrap;animation:update-toast-in .18s ease-out}.update-toast:hover{background:#1b232a}@keyframes update-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.td-transom-top{fill-opacity:.03}.td-divider-line{stroke:var(--handle);stroke-width:1;stroke-dasharray:4 3;pointer-events:none}.td-divider-grip{fill:#ede9fe;stroke:var(--handle);stroke-width:1.4}.td-divider line:not(.td-divider-line){stroke:var(--handle);stroke-width:1.2;pointer-events:none}.td-divider-drag{cursor:ns-resize;touch-action:none}.td-divider-collapsed .td-divider-grip{stroke-dasharray:3 2}.thw-restore{font:inherit;font-size:.9em;color:#6d28d9;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}.third-quote-btn{border-color:#c7d2fe;background:#eef2ff}.third-quote-note{display:block;margin-top:6px}.third-quote-note-line{display:block;margin-top:4px;color:var(--warn);font-weight:600}.third-quote-unpriced,.third-quote-mirrors{align-self:center;max-width:22rem;margin:0 0 0 14px;color:var(--warn);font-weight:600}.third-quote-text{display:block;width:100%;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.4;border:1px solid var(--border, #e5e2dc);border-radius:6px;padding:6px;resize:vertical}.cat-asof{display:flex;align-items:center;gap:8px}.cat-error{background:#fef2f2;border:1px solid var(--danger-border);color:#991b1b;border-radius:8px;padding:10px 12px;margin-bottom:12px}.cat-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:8px;padding:10px 12px;margin-bottom:12px;font-size:14px}.cat-banner-drift{background:var(--warn-bg);border:1px solid var(--warn-border);color:#78350f}.cat-banner-estimate{background:#f5f3ff;border:1px solid #ddd6fe;color:#4c1d95}.cat-estimated{display:inline-block;margin-top:2px;padding:1px 6px;border-radius:999px;background:#ede9fe;color:#4c1d95;border:1px solid #ddd6fe;font-size:10px;font-weight:700;letter-spacing:.06em}.cat-banner-past{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a}.cat-banner-saved{background:#f0fdf4;border:1px solid #bbf7d0;color:#14532d}.cat-section{margin-bottom:18px;padding:14px 16px 10px}.cat-section-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}.cat-section-head h2{font-size:16px;margin:0}.cat-unit-suffix{color:var(--muted, #8a857e);font-size:.85em;font-weight:400}.cat-table{width:100%;border-collapse:collapse;font-size:14px}.cat-table th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted, #8a857e);border-bottom:1px solid var(--border, #e5e2dc);padding:6px 8px;vertical-align:bottom}.cat-table th.cat-ours{color:#1b1a18}.cat-source{display:block;text-transform:none;letter-spacing:0;font-weight:400;font-size:11px}.cat-table-wrap{overflow-x:auto}.cat-table{min-width:930px}.cat-col-name{min-width:190px}.cat-col-price{width:112px;min-width:112px}.cat-col-state{width:180px}.cat-row td{border-bottom:1px solid var(--border, #e5e2dc);padding:8px;vertical-align:top}.cat-row-drift{background:#fffdf5}.cat-name{display:block;font-weight:600}.cat-row-unit,.cat-slug,.cat-noref,.cat-from,.cat-hint{display:block;color:var(--muted, #8a857e);font-size:11px}.cat-rule{display:block;font-size:11px;color:#6d28d9;margin-top:2px}.cat-subsection+.cat-subsection{margin-top:22px;padding-top:18px;border-top:1px solid var(--border, #e5e2dc)}.cat-subsection-head{margin:0 0 8px;font-size:13px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted, #8a857e)}.cat-spec{display:block;font-size:12px;line-height:1.5}.cat-spec-series{display:block;font-weight:600;text-transform:capitalize}.cat-spec-rung,.cat-spec-min{display:block;color:var(--muted, #8a857e);font-variant-numeric:tabular-nums}.cat-spec-min{margin-top:3px;font-variant-numeric:normal}.cat-spec-none{display:block;font-size:12px;color:var(--warn-text)}.cat-spec-row td{padding:2px 8px 10px;border-bottom:1px solid var(--border, #e5e2dc)}.cat-price{cursor:pointer;border-radius:6px}.cat-price:hover{background:#f5f3ff}.cat-price:focus-visible{outline:2px solid #7c3aed;outline-offset:-2px}.cat-amount{font-variant-numeric:tabular-nums}.cat-price.cat-ours{background:#fafaf9}.cat-price.cat-ours .cat-amount{font-weight:700;font-size:15px}.cat-editing{background:#f5f3ff;cursor:default}.cat-input,.cat-date{width:100%;margin-bottom:4px}.cat-edit-actions{display:flex;gap:6px}.cat-flag{display:block;color:var(--warn-text);font-weight:600;font-size:12px;margin-bottom:4px}.cat-off{display:block;color:var(--muted, #8a857e);font-size:12px;margin-bottom:4px}.cat-history-row td{background:#fafaf9;padding:8px 12px;border-bottom:1px solid var(--border, #e5e2dc)}.cat-history{margin:0;padding-left:18px;font-size:13px}.cat-history li{display:flex;gap:10px;align-items:baseline;padding:2px 0}.cat-history-series{min-width:90px;color:var(--muted, #8a857e)}.cat-history-amount{font-variant-numeric:tabular-nums;font-weight:600;min-width:70px}.cat-history-when,.cat-history-note,.cat-history-who{color:var(--muted, #8a857e);font-size:12px}.cat-add{margin-top:8px}.cat-add-form{padding:14px 16px}.cat-add-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);gap:10px;margin:10px 0}.cat-add-grid label{display:flex;flex-direction:column;gap:4px}@media (max-width: 900px){.cat-add-grid{grid-template-columns:1fr 1fr}.cat-col-state{width:auto}}.cat-landed{background:#fbfaf8;cursor:default}.cat-landed:hover{background:#fbfaf8}.cat-col-landed{font-weight:400}.labour-breakdown{margin:18px 0 0;padding:12px 16px;border:1px solid var(--cs-line);border-radius:10px;background:#10161f;color:var(--cs-ink)}.labour-breakdown>summary{cursor:pointer;font-weight:600;letter-spacing:.04em}.lb-total{margin-left:8px}.lb-partial{color:#ffd479;font-weight:700}.lb-unpriced-cats{display:block;margin-top:2px;color:#ffd479;font-size:.85em;font-weight:600;letter-spacing:.02em}.lb-summary-hint{display:block;font-size:.85em;color:var(--cs-ink-3);font-weight:400;margin-top:2px}.lb-body{padding:10px 0 2px;display:grid;gap:10px}.lb-reason{margin:0;color:var(--cs-ink-2)}.lb-lines{list-style:none;margin:0;padding:0;display:grid;gap:4px}.lb-line{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:baseline}.lb-line-basis{color:var(--cs-ink-3);font-variant-numeric:tabular-nums}.lb-line-amount{font-variant-numeric:tabular-nums;min-width:90px;text-align:right}.lb-total-row{margin:0;padding-top:8px;border-top:1px solid var(--cs-line);display:flex;justify-content:space-between;font-variant-numeric:tabular-nums}.lb-refusals{margin:0;padding-left:18px;color:#ffd479;display:grid;gap:4px}.lb-unpriced{color:var(--cs-ink-2)}.lb-unpriced-head{margin:0 0 4px}.lb-unpriced ul{margin:0;padding-left:18px;display:grid;gap:3px}.lb-notes{margin:0;padding-left:18px;color:var(--cs-ink-3);display:grid;gap:4px}.lb-section{display:grid;gap:6px}.lb-section-title{margin:0;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.82em;color:var(--cs-ink-3)}.lb-line-sub{color:var(--cs-ink-3);font-weight:400}.lb-unapplied{color:var(--cs-ink-2)}.lb-unapplied-head{margin:0 0 4px}.lb-unapplied ul{margin:0;padding-left:18px;display:grid;gap:4px}.lb-unapplied-effect{color:var(--cs-ink-3)}.lb-unapplied-scope{color:var(--cs-ink-3);font-style:italic}.lb-sections{display:grid;gap:6px}.lb-section-blocked{margin:0;color:var(--cs-ink-3)}.lb-estimate-tag{display:inline-block;margin-left:6px;padding:0 5px;border-radius:999px;background:#7c3aed38;color:#c4b5fd;border:1px solid rgba(196,181,253,.45);font-size:10px;font-weight:700;letter-spacing:.06em;vertical-align:middle;white-space:nowrap}.lb-over,.lb-over strong,.lb-over .lb-amount-btn{color:#e05a5a}.lb-line-calc{color:var(--cs-ink-3);margin-right:8px;font-variant-numeric:tabular-nums;font-weight:400}.lb-override-tag{display:inline-block;margin-left:6px;padding:0 5px;border-radius:999px;background:#e05a5a2e;color:#e05a5a;border:1px solid rgba(224,90,90,.5);font-size:10px;font-weight:700;letter-spacing:.06em;vertical-align:middle;white-space:nowrap}.lb-amount-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;padding:2px 0;margin:0;font:inherit;color:var(--cs-ink);font-variant-numeric:tabular-nums;cursor:pointer;border-bottom:1px dotted var(--cs-ink-3)}.lb-amount-btn:hover,.lb-amount-btn:focus-visible{border-bottom-style:solid}.lb-amount-edit{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.lb-amount-label{display:inline-flex;align-items:center;gap:2px}.lb-amount-cur{color:var(--cs-ink-3)}.lb-amount-input{width:92px;padding:3px 6px;border:1px solid var(--cs-line);border-radius:6px;background:#0a0f16;color:var(--cs-ink);font:inherit;font-variant-numeric:tabular-nums;text-align:right}.lb-amount-edit button{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:3px 8px;border-radius:6px;border:1px solid var(--cs-line);background:#1b2430;color:var(--cs-ink);font:inherit;cursor:pointer}.lb-amount-edit button:disabled{opacity:.45;cursor:default}.lb-amount-clear{color:#e05a5a}.lb-override-head{margin:0;color:var(--cs-ink-2)}.lb-override-head strong{color:#e05a5a}.lb-override-clear-all{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:6px;padding:2px 8px;border-radius:6px;border:1px solid rgba(224,90,90,.5);background:none;color:#e05a5a;font:inherit;cursor:pointer}.lb-override-stale{margin:0;color:#ffd479}.lb-inherited-tag{display:inline-block;margin-left:6px;color:var(--cs-ink-2);font-size:10px;font-style:italic;vertical-align:middle;white-space:nowrap}.lb-section-elsewhere{margin:0;color:var(--cs-ink-2)}.lb-provisional{display:grid;gap:8px}.lb-provisional-head{margin:6px 0 0;color:var(--cs-ink);font-weight:600}.lb-provisional-kind{display:grid;gap:2px}.lb-provisional-kind-head{margin:0;color:var(--cs-ink)}.lb-provisional-note{margin:0;color:var(--cs-ink-3)}.lb-provisional-kind ul{margin:0;padding-left:18px;display:grid;gap:2px;color:var(--cs-ink-2)}.lb-boundaries{display:grid;gap:4px}.lb-boundary-head{margin:6px 0 0;color:var(--cs-ink);font-weight:600}.lb-boundary-body{margin:0;color:var(--cs-ink-2)}.lb-boundary-list{margin:0;padding-left:18px;display:grid;gap:4px;color:var(--cs-ink-2)}.lb-provenance{margin:0;color:var(--cs-ink-3);font-size:.9em}.lb-frozen{margin:0;color:var(--cs-ink-2);font-size:.9em}@media print{.labour-breakdown{display:none!important}}.chip.chip-estimate{background:#b45309;border-color:#b45309;color:#fff;cursor:pointer}.chip.chip-estimate-off{cursor:pointer;opacity:.75}.chip.chip-estimate-off:disabled{cursor:not-allowed;opacity:.4}.third-estimate-list{margin:2px 0 0;padding-left:18px;list-style:disc}.third-estimate-list li{display:list-item}.third-readout-tilde{opacity:.7;margin-right:1px}.third-readout-input{width:4.5em;text-align:center}.third-readout-clear{margin-left:2px;border:none;background:transparent;cursor:pointer;font-size:1.1em;line-height:1;padding:0 3px;color:#b45309}.side-figure{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:row;align-items:center;gap:3px;pointer-events:auto;z-index:6}.side-figure .side-figure-pill{position:static;transform:none;width:4.5em;border:1px dashed #b8ae9f;background:#f4f1ec;text-align:center}.side-figure .side-figure-locked{border:2px solid #b45309;color:#92400e}.side-figure .side-figure-unbind{position:absolute;left:calc(100% + 4px);top:50%;transform:translateY(-50%);border:1px solid #b45309;border-radius:8px;background:#ffffffeb;color:#b45309;font-size:11px;font-weight:700;line-height:1;padding:3px 7px;cursor:pointer;white-space:nowrap}@media (max-width: 600px){.side-figure{gap:5px}.side-figure .side-figure-pill{width:4em}}.cat-count{color:var(--muted);font-size:12px}.cat-note{margin:0 0 10px;color:var(--text);font-size:13px;line-height:1.45}.cat-note-quiet{color:var(--muted)}.cat-empty{color:var(--muted);font-size:13px}.pc-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:12px}.pc-search{display:flex;flex-direction:column;gap:4px}.pc-search input{min-width:260px;min-height:36px;padding:0 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.pc-cats{display:flex;flex-wrap:wrap;gap:6px}.pc-cat{min-height:32px;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--text);font-size:12.5px;cursor:pointer}.pc-cat-on{background:var(--tab-current-fill);color:var(--tab-current-ink);border-color:var(--tab-current-fill)}.pc-n{margin-left:4px;opacity:.7;font-variant-numeric:tabular-nums}.pc-table td{vertical-align:top}.pc-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px}.pc-kind{white-space:nowrap}.pc-series{display:block;color:var(--muted);font-size:11.5px}.pc-tier{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px}.pc-default{display:block;color:var(--muted);font-size:11px}.pc-none{color:var(--muted)}.mirror-page{display:flex;flex-direction:column;gap:16px}.mirror-panel{display:flex;flex-direction:column;gap:16px;max-width:44rem;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.mirror-title{margin:0;font-size:1.15rem}.mirror-code{color:var(--muted);font-weight:500}.mirror-field{display:flex;flex-direction:column;gap:4px}.mirror-label{font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.mirror-location input,.mirror-location select{max-width:22rem;padding:8px 10px;font:inherit;border:1px solid var(--border-strong);border-radius:8px}.mirror-choice{display:flex;flex-wrap:wrap;gap:8px 16px;margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:8px}.mirror-choice legend{padding:0 4px;font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.mirror-option{display:inline-flex;align-items:center;gap:6px;min-height:36px}.mirror-cutout-outside{flex-basis:100%;color:var(--dim-plain);font-weight:600}.mirror-add-cutout,.mirror-remove-cutout{align-self:flex-start;min-height:36px;padding:6px 12px;font:inherit;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer}.mirror-costs{margin:16px 0 0}.mirror-preview{margin:16px 0 0;padding:12px 14px;max-width:760px;background:#fff;color:#000;border-radius:8px}.mirror-preview .mirror-label{color:#333}.mirror-preview-empty{margin:4px 0;color:#555}.mirror-drawing{display:block;width:100%;height:auto}.mirror-glass{fill:#eef6fb;stroke:#1c2733;stroke-width:2}.mirror-dim,.mirror-dim-tick{stroke:#1c2733;stroke-width:1}.mirror-dim-text{font-size:15px;font-weight:600;fill:#000}.mirror-place{stroke:#6b7886;stroke-width:1;stroke-dasharray:4 3}.mirror-place-text{font-size:12px;fill:#222}.mirror-cutout-dot{fill:#fff;stroke:#b3261e;stroke-width:2}.mirror-cutout-cross{stroke:#b3261e;stroke-width:1.5}.mirror-cutout-n{font-size:13px;font-weight:700;fill:#b3261e}.mirror-cutout-mark-outside .mirror-cutout-dot{stroke-dasharray:3 2}.mirror-sheet-datum{margin:6px 0;font-size:12px;color:#222}.mirror-cutout-table{width:100%;border-collapse:collapse;font-size:13px;color:#000}.mirror-cutout-table th,.mirror-cutout-table td{padding:4px 6px;text-align:left;border-bottom:1px solid #ccd3db}.mirror-cutout-none{margin:4px 0;font-size:13px;color:#222}.mirror-sheet{min-height:0}.mirror-sheet .fab-rev{text-transform:uppercase}.mirror-sheet .mirror-drawing{max-height:4in}.mirror-sheet .mirror-cutout-table th,.mirror-sheet .mirror-cutout-table td{padding:2px 6px;font-size:12px}.mirror-issue{margin:16px 0 0}.mirror-issue-current{margin:4px 0}.mirror-issue-refusal{margin:4px 0;color:var(--dim-plain);font-weight:600}.mirror-issue-btn{min-height:40px;margin:6px 0 2px;padding:8px 14px;font:inherit;font-weight:600;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer}.mirror-issue-btn:disabled{cursor:default;opacity:.6}.mirror-issue-sub{margin:0;font-size:12px;color:var(--muted)}.mirror-issue-done{margin:6px 0 0;font-weight:600}.mirror-cutout-hole,.mirror-cutout-box{fill:none;stroke:#b3261e;stroke-width:2}.mirror-cutout-mark-outside .mirror-cutout-hole,.mirror-cutout-mark-outside .mirror-cutout-box{stroke-dasharray:3 2}.mirror-cutout-table td{white-space:nowrap}.mirror-cutout-table td:last-child{white-space:normal}.mirror-plug-note{margin:4px 0 0;font-size:12px;color:#222}.mirror-sheet .mirror-drawing{max-height:3.5in}.item-sections{display:inline-flex;margin-top:12px;border:1px solid var(--action-blue);border-radius:var(--radius);overflow:hidden}.item-section{min-height:40px;padding:0 20px;border:0;background:var(--surface);color:var(--action-blue);font:inherit;font-weight:600;cursor:pointer}.item-section+.item-section{border-left:1px solid var(--action-blue)}.item-section.is-current{background:var(--action-blue);color:#fff}.item-add-mirror{display:flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid var(--action-blue);border-radius:var(--radius);background:var(--action-blue);color:#fff;font:inherit;font-weight:600;cursor:pointer}.item-add-mirror:hover{background:var(--action-blue-hover)}.table tbody tr.job-row-lined td{border-bottom:none}.table tbody tr.job-line-row td{padding-top:0}.job-line-label{display:inline-block;min-width:5.5em;margin-right:8px;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.mirror-adjust-row{display:flex;align-items:center;gap:10px}.mirror-adjust{min-height:36px;padding:6px 12px;font:inherit;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer}.mirror-adjusted-chip{text-transform:uppercase;color:var(--dim-plain);border-color:var(--dim-plain)}.mirror-adjust-editor{padding:10px 12px;background:#fff;color:#000;border:1px solid var(--border);border-radius:8px}.mirror-adjust-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.mirror-adjust-actions{display:flex;gap:8px;margin-left:auto}.mirror-adjust-actions button{min-height:36px;padding:4px 12px;font:inherit;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer}.mirror-adjust-moved{color:#b3261e}.mirror-adjust-svg{display:block;width:100%;height:auto;max-height:60vh}.mirror-adjust-ghost{fill:none;stroke:#6b7886;stroke-width:1.5;stroke-dasharray:6 4}.mirror-adjust-glass{fill:#eef6fb;stroke:#1c2733;stroke-width:2}.mirror-adjust-arrow{cursor:pointer}.mirror-adjust-arrow circle{fill:#fff;stroke:var(--action-blue);stroke-width:1.5}.mirror-adjust-arrow text{font-size:12px;fill:var(--action-blue)}.mirror-adjust-corner{fill:#1c2733}.mirror-adjust-corner.mirror-adjust-moved{fill:#b3261e}.mirror-adjust-pill{font-size:12px;font-weight:700;fill:#b3261e}.mirror-envelope{fill:none;stroke:#6b7886;stroke-width:1;stroke-dasharray:5 4}polygon.mirror-glass{fill:#eef6fb;stroke:#1c2733;stroke-width:2}.mirror-inset{font-size:12px;font-weight:600;fill:#1c2733}.fab-job .mirror-adjusted{font-weight:700;color:#b3261e}.mirror-sheet .fab-job{line-height:1.3}.mirror-sheet .mirror-cutout-table th,.mirror-sheet .mirror-cutout-table td{line-height:1.25}.mirror-sheet .mirror-sheet-datum,.mirror-sheet .mirror-plug-note{line-height:1.35}.mirror-sheet.mirror-sheet-crowded .mirror-drawing{max-height:3in}.mirror-diagram-frame{display:flex;flex-direction:column;gap:6px}.mirror-diagram-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.mirror-diagram-head .diagram-title{text-align:left}.mirror-diagram{background:#fff;background-image:none}.mirror-diagram .mirror-drawing{height:100%;overflow:visible}.mirror-wall-line{fill:none;stroke:#6b7886;stroke-width:1.5;stroke-dasharray:6 4}.mirror-glass.mirror-ghost{fill:#f6f9fc;stroke:#9aa7b4;stroke-dasharray:6 4}.mirror-size-label{font-size:15px;font-weight:700;fill:#1c2733}.mirror-ghost-hint{font-size:14px;fill:#6b7886}.mirror-side{stroke:transparent;stroke-width:28;stroke-linecap:round;cursor:pointer;pointer-events:stroke}.mirror-side:hover,.mirror-side-open{stroke:#2563eb24}.mirror-cutout-hit{fill:transparent;cursor:pointer}.mirror-cutout-selected .mirror-cutout-cross{stroke-width:2.5}.mirror-cutout-selected .mirror-cutout-hole,.mirror-cutout-selected .mirror-cutout-box{stroke-width:3}.mirror-diagram-placing .mirror-glass{cursor:crosshair}.mirror-pill{font-size:12px}.mirror-pill-across,.mirror-pill-up{--rest-w: 46px}.mirror-tag{position:absolute;transform:translate(-50%,-50%);padding:2px 8px;font:inherit;font-size:11px;font-weight:700;color:#92400e;background:#fffbebf2;border:1px solid #f59e0b;border-radius:999px;white-space:nowrap;cursor:pointer;pointer-events:auto}.mirror-tag-left{transform:translateY(-50%)}.mirror-tag-right{transform:translate(-100%,-50%)}.mirror-mark{position:absolute;display:flex;flex-direction:column;align-items:center}.mirror-tag-beside{transform:translateY(-50%)}.pill-overlay .mirror-cutout-outside{position:absolute;transform:translate(-50%);flex-basis:auto;padding:2px 8px;font-size:11px;background:#ffffffeb;border-radius:999px;white-space:nowrap}.mirror-cluster{position:absolute;display:flex;flex-direction:column;gap:6px;max-width:calc(100% - 16px);padding:8px 10px;background:#fff;border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 4px 14px #1b1a182e;pointer-events:auto;z-index:8}.mirror-cluster-cutout{transform:translate(-50%)}.mirror-cluster .pill{position:static;transform:none;--rest-w: 52px}.mirror-cluster-row{display:flex;align-items:center;flex-wrap:nowrap;gap:6px}.mirror-word{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase}.mirror-chip{min-height:30px;padding:2px 8px;font:inherit;font-size:12px;font-weight:600;background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;cursor:pointer}.mirror-chip[aria-pressed=true]{background:var(--action-blue);border-color:var(--action-blue);color:#fff}.mirror-link{padding:0;font:inherit;font-size:12px;color:var(--action-blue);background:none;border:0;text-decoration:underline;cursor:pointer}.mirror-cluster .mirror-remove-cutout{min-height:0;margin-left:6px;padding:0;color:#b3261e;background:none;border:0;border-radius:0;text-decoration:underline}.mirror-cluster-cutout .mirror-cluster-row{flex-wrap:wrap}.mirror-cluster-cutout select{min-height:30px;font:inherit;font-size:12px}.mirror-status,.mirror-shape-status{margin:0;font-size:.9rem;font-weight:600;color:var(--muted)}.mirror-shape-status{color:#374151}.mirror-placing-hint{position:absolute;left:50%;bottom:8px;transform:translate(-50%);padding:4px 12px;font-size:12px;font-weight:600;color:#1e3a8a;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;white-space:nowrap}.mirror-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.mirror-add .mirror-add-cutout[aria-pressed=true]{background:var(--action-blue);border-color:var(--action-blue);color:#fff}.mirror-add .mirror-add-cutout:disabled{cursor:default;opacity:.6}.mirror-unplaced{margin:0;font-size:.9rem;font-weight:600;color:var(--dim-plain)}.mirror-choices{display:flex;flex-wrap:wrap;gap:12px}.mirror-choices .mirror-choice{flex:1 1 260px}.mirror-place-tick{stroke:#6b7886;stroke-width:1}.mirror-gap-line{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.mirror-gap-line .pill{position:static;transform:none;--rest-w: 52px}.mirror-gaps-note{font-size:12px;color:var(--muted)}.mirror-reading{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;pointer-events:none}.mirror-reading .pill{position:static;transform:none;pointer-events:auto}.mirror-reading-datum{font-size:10px;font-weight:600;line-height:1.2;color:#6b7886;white-space:nowrap}.mirror-cutout-datum{margin:0;font-size:.85rem;color:#374151}.mirror-reading[data-kind=across]{flex-direction:row;gap:4px}.mirror-reading[data-kind=up] .mirror-reading-datum{max-width:100%;white-space:normal;text-align:center}.mirror-location{margin:0;padding:0;border:0}.mirror-place-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}.mirror-place-row input,.mirror-place-row select{min-width:12em}.mirror-reading .mirror-reading-side{padding:0;font:inherit;font-size:10px;font-weight:600;color:#1e40af;background:none;border:0;border-bottom:1px dotted #1e40af;cursor:pointer;pointer-events:auto}.shower-mirrors-here-list{display:flex;flex-wrap:wrap;gap:6px 14px}.shower-mirrors-here{margin:0;font-size:.9rem;font-weight:600;color:#374151}.mirror-lean.lean-group{flex-direction:row;align-items:center;gap:6px;white-space:nowrap;padding:2px 6px;background:#ffffffeb;border-radius:999px}.mirror-lean .lean-amt{position:static;transform:none}.mirror-lean-left{transform:translateY(-100%)}.mirror-lean-right{transform:translate(-100%,-100%)}.mirror-lean-top{transform:translate(-50%,-100%)}.mirror-lean-bottom{transform:translate(-50%)}.mirror-side-line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;margin:6px 0 0;font-size:12px;color:#374151}.mirror-side-line .mirror-gap-row,.mirror-side-line .mirror-datum-row{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px}.mirror-side-line .pill.pill-input{position:static;transform:none;--rest-w: 52px}.mirror-fit-says{white-space:nowrap}.mirror-gap-note{margin:4px 0 0;font-size:11px;color:var(--muted)}.mirror-diagram-head .diagram-controls{position:static}
