:root{--bg: #f7f6f4;--surface: #ffffff;--text: #1b1a18;--muted: #8a857e;--border: #e8e5e0;--border-strong: #d8d4cd;--accent: #1b1a18;--accent-hover: #34312d;--radius: 10px;--shadow: 0 1px 2px rgba(27, 26, 24, .05)}*{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}.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}.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}.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:#fbeeec;color:#8c3a2e;border:1px solid #f0d8d3}.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}.migration-banner{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;border:1px solid #d9a53f;border-radius:10px;background:#fdf6e7;font-size:13px;color:#6b4e12}.migration-banner-foreign{border-color:#c05353;background:#fdecec;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:#2f6b43;background:#e7f1ea}.sync-pending,.sync-saving{color:#7a5a17;background:#f5ecd8}.sync-offline,.sync-error{color:#6b665f;background:#efece7}.sync-refused{color:#7a2727;background:#fdecec;border:1px solid #c05353}.offline-tag{font-size:12px;font-weight:600;color:#8c3a2e}.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}.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}.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}.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-top{fill:var(--bench-green, #16a34a);fill-opacity:.22;stroke:var(--bench-green-edge, #15803d);stroke-opacity:.85;stroke-width:1}.gd-glass{fill:#2563eb;fill-opacity:.1;stroke:#2563eb;stroke-width:1.4}.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:#7c3aed;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-ceiling{fill:#7c3aed}.gd-cutpoint-wall{fill:#9333ea}.gd-datum{stroke:#0d9488;stroke-width:1.6;stroke-dasharray:5 4}.gd-datum-dot{fill:#0d9488}.gd-datum-label{fill:#0d9488;font-size:10.5px;font-weight:600;letter-spacing:.5px}.gd-datum-handle{fill:#0d9488;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:#0d9488;stroke-width:1.2}.gd-datum-unpin text{fill:#0d9488;font-size:9px;font-weight:700;letter-spacing:.4px}.gd-floorpoint{fill:#9a5a2b;stroke:#fff;stroke-width:1.5;touch-action:none}.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:#9a5a2b;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:#0d9488;fill-opacity:.06;stroke:#0d9488;stroke-opacity:.3;stroke-width:1}.vd-datum{stroke:#0d9488;stroke-width:1.6;stroke-dasharray:6 5}.vd-datum-label{fill:#0d9488;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}.vd-cut{stroke:#9a5a2b;stroke-width:2.4;stroke-linecap:round}.vd-jog-dot{fill:#9a5a2b}.dim-line{stroke:#b45309;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:#b45309}.dim-derived .dim-pill{fill:#f0fdfa;stroke:#0d9488;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 #99c9c2;border-radius:8px;background:#f0fdfa;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}.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%,-50%);display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:auto}.lean-arrow-btn{width:30px;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:#9a5a2b;border-color:#9a5a2b}.advanced-points>summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);padding:6px 2px;-webkit-user-select:none;user-select:none}.advanced-points>summary:hover{color:var(--text)}.advanced-points-body{display:flex;flex-direction:column;gap:12px;margin-top:10px}@media (max-width: 600px){.pill.pill-input{min-width:44px;min-height:28px;font-size:13px;padding:3px 5px}.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}}.bench-toggle{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer;margin-top:-4px}.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(--accent);border-color:var(--accent);color:#fff}.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 dashed var(--border-strong);border-radius:var(--radius);color:var(--muted);font-weight:600;cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.shower-add>summary::-webkit-details-marker{display:none}.shower-add[open]>summary{border-style:solid;color:var(--text)}.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:#9a5a2b;background:#fff;border:1px solid var(--border-strong);border-radius:999px;padding:3px 9px;cursor:pointer;white-space:nowrap}.dir-toggle:hover{border-color:#9a5a2b}.jogs-block-msg{margin:4px 0 0;font-size:13px;color:#8c3a2e;background:#fbeeec;border:1px solid #f0d8d3;border-radius:8px;padding:9px 12px}.jog-row{display:grid;margin-top:10px;padding:0 1px}.jog-col{grid-area:1 / 1;justify-self:start;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px}.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:#9a5a2b;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:#9a5a2b}.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:#fbeeec}.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:#9a5a2b}.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:#9a5a2b;color:#9a5a2b}.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:#9a5a2b;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.d-jog-riser{stroke:#9a5a2b;stroke-width:3;stroke-linecap:round}.d-jog-mark{fill:#9a5a2b}.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:#9a5a2b;stroke-width:2.5;stroke-linecap:round}.d-jog-pt{fill:#9a5a2b}.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:#9a5a2b;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,.thickness-control{display:flex;flex-direction:column;gap:18px}.thickness-head{display:flex;flex-direction:column;gap:6px}.thickness-head .field-hint{margin:0}.thickness-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.thickness-row-label{font-size:13px;font-weight:600;color:var(--text);min-width:84px}.thickness-pieces{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--border);padding-top:16px}.thickness-piece-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.thickness-piece{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.thickness-piece-id{display:flex;flex-direction:column;gap:2px}.thickness-piece-type{font-size:14px;font-weight:600;text-transform:capitalize}.thickness-piece-spec{font-size:12px;color:var(--muted)}.thickness-nopieces{margin:0;border-top:1px solid var(--border);padding-top:16px}.td-hinge{fill:#1f2937}.td-handle{fill:none;stroke:#1f2937;stroke-width:2.4}.td-clamp,.td-clip{fill:#7c3aed;stroke:#fff;stroke-width:1.4}.td-channel{stroke:#0d9488;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:#7c3aed;stroke-width:1.6}.td-swivel-pin{fill:#7c3aed}.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:#7c3aed;stroke:#fff;stroke-width:1.4}.td-clamp-add{cursor:pointer}.td-clamp-add-hit{fill:transparent}.td-clamp-add-dot{fill:#fff;stroke:#7c3aed;stroke-width:1.6}.td-clamp-add line{stroke:#7c3aed;stroke-width:1.8;stroke-linecap:round}.td-clamp-add:hover .td-clamp-add-dot{fill:#ede9fe}.td-clamp-add-center-dot{fill:#7c3aed}.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}.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:#7c3aed;border:1.5px solid #7c3aed;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:#dc2626;color:#dc2626}.td-channel-live{fill:none;stroke:#0d9488;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:#0d9488;stroke-width:1.6}.td-channel-add line{stroke:#0d9488;stroke-width:1.8;stroke-linecap:round}.td-channel-add:hover .td-channel-add-dot{fill:#ccfbf1}.third-plus-clamp{color:#7c3aed;border-color:#7c3aed}.third-plus-channel{color:#0d9488;border-color:#0d9488}.third-channel-tag{font-size:12px;color:#0d9488;font-weight:600}.td-clip-live .td-clip{fill:#d97706;stroke:#fff;stroke-width:1.4}.td-clip-hand{fill:#d97706}.td-clip-label{fill:#92400e;font-size:10px;font-weight:700}.td-clip-delete{cursor:pointer}.td-clip-hit{fill:transparent}.td-clip-manual .td-clip{stroke:#92400e;stroke-width:2}.td-clip-readd{cursor:pointer}.td-clip-readd-hit{fill:transparent}.td-clip-readd-dot{fill:#fff;stroke:#d97706;stroke-width:1.5;stroke-dasharray:2 2}.td-clip-readd line{stroke:#d97706;stroke-width:1.8;stroke-linecap:round}.td-clip-readd:hover .td-clip-readd-dot{fill:#fef3c7}.third-plus-clip{color:#d97706;border-color:#d97706}.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:#b45309;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:#f0fdfa;border:1px solid #99c9c2;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 svg{display:block;width:100%;height:auto}.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:#f0fdfa;border:1px solid #99c9c2;border-radius:5px;padding:0 4px;margin-left:6px}.td-inset-svg{display:block;width:100%;height:auto}.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}.td-miter-cut{fill:none;stroke:#1d4ed8;stroke-width:1.6;stroke-linecap:round}.third-warn{color:#b45309;font-weight:600}.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 #7c3aed;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;flex-direction:column;gap:3px;margin-bottom:10px}.third-hardware{--cs-ink: #e8eef7;--cs-ink-2: #b9c6d6;--cs-ink-3: #93a3b8;--cs-line: #3d4a5c;--cs-line-soft: #64788f;border:1px solid var(--cs-line);border-radius:10px;background:#10161f;color:var(--cs-ink)}.third-hardware .field-label,.third-hardware .field-hint{color:var(--cs-ink-3)}.third-hardware .field-label{color:var(--cs-ink)}.third-hardware-list{list-style:none;margin:0;padding:0}.third-hardware-list li{display:grid;grid-template-columns:minmax(140px,1fr) 2fr auto;gap:12px;align-items:center;padding:9px 2px;border-top:1px solid var(--cs-line);font-size:13px;color:var(--cs-ink)}.third-hardware-list li:first-child{border-top:0}.thw-det{color:var(--muted)}.third-hardware .thw-det{color:var(--cs-ink-2)}.thw-qty{text-align:right;font-variant-numeric:tabular-nums;color:var(--text)}.third-hardware .thw-qty{color:var(--cs-ink)}.third-hardware .third-warn .thw-det{color:#fbbf24}.third-finish{margin-top:14px;border-top:1px solid var(--cs-line);padding-top:12px}.third-finish .seg-btn{background:#22303f;border-color:var(--cs-line);color:var(--cs-ink)}.third-finish .seg-btn.active{background:var(--cs-ink);color:#10161f}.third-finish-custom{margin-top:8px;width:min(260px,100%);background:#0b1017;color:var(--cs-ink);border:1px solid var(--cs-line);border-radius:6px;padding:4px 8px;font:inherit}.thw-auto{font-size:10px;font-weight:700;color:#0f766e;background:#f0fdfa;border:1px solid #99c9c2;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}.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:#dc2626}.dim-line.dim-yellow{stroke:#ca8a04}.pill.pill-input.pill-red{background:#fecaca;border-color:#dc2626;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:#92400e;border-color:#d97706;background:#fffbeb;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:#92400e;background:#fffbeb;border:1px solid #d97706;border-radius:999px;padding:2px 10px}.diagram-title{position:absolute;top:8px;left:0;right:0;margin:0;text-align:center;font-size:13px;font-weight:700;letter-spacing:.2px;color:var(--muted);pointer-events:none;z-index:1}.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:#92400e;background:#fffbeb;border:1px solid #d97706;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:#b45309}.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{--cs-ink: #e8eef7;--cs-ink-2: #b9c6d6;--cs-ink-3: #93a3b8;--cs-line: #3d4a5c;--cs-line-soft: #64788f;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:baseline}.cs-piece-key{color:#8ea0b8;font-size:.85em}.cs-piece-status{margin-left:auto;font-size:.75em;letter-spacing:.06em;color:#ffd479}.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-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-piece-tappable{cursor:pointer}.cs-piece-tappable:hover{border-color:var(--cs-line-soft)}.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-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: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}.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}@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-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-hardware h3{font-size:9pt;margin:8pt 0 2pt}.fab-hardware ul,.fab-index{list-style:none;margin:0;padding:0;font-size:8.5pt}.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-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:#b91c1c}.fab-nosize,.fab-missing,.fab-flags{font-size:8.5pt;font-weight:700;color:#b91c1c}.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-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:#b91c1c;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-type-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}.glass-selects{display:flex;flex-wrap:wrap;gap:18px 28px}.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:#92400e;opacity:.85}.third-bulk-on-diagram .third-bulk-undo{background:#fffffff0;border-radius:8px;padding:4px 8px;box-shadow:0 2px 6px #1b1a182e}.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:#b45309}.fab-unverified-list{margin:3pt 0 0;padding-left:10pt;font-size:8pt;font-weight:700;color:#b45309}.height-stepper .hs-row{display:flex;align-items:center;gap:6px}.hs-arrow{min-width:34px;min-height:34px;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:#b45309;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}.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:#b45309}.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:#7c2d12;border-color:#b45309;background:#fef3c7}.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;gap:6px}.third-hinge-row .field-hint{max-width:46ch}.third-inset.third-inset-plan{position:static;top:auto;right:auto;width:300px;max-width:100%;flex:0 0 auto;margin-inline:auto}.panel-height-slot{display:flex;flex-direction:column;gap:10px;min-width:0}.panel-optin.active{border-color:#b45309;background:#fef3c7;color:#7c2d12}.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:#7f1d1d;background:#fee2e2;border:1px solid #dc2626;border-radius:6px;cursor:pointer}.panel-warn:hover,.panel-warn:focus-visible{background:#fecaca}.sync-banner{padding:8px 14px;border:1px solid #b7d9cf;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:#d9a53f;background:#fdf6e7;color:#6b4e12}.sync-banner-bad{border-color:#c05353;background:#fdecec;color:#7a2727}.notice-offline{background:#fdf6e7;color:#6b4e12;border:1px solid #d9a53f}.attribution{font-size:13px;margin:-6px 0 10px}.shower-remove{border:1px solid #c05353;color:#7a2727;background:#fdecec;border-radius:8px;padding:5px 10px;font-size:12px;cursor:pointer}.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)}
