:root{--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, monospace;--font-size:13px;--font-size-sm:12px;--font-size-xs:11px;--font-size-lg:15px;--radius:3px;--radius-lg:6px;--nav-w:200px;--subnav-w:170px;--panel-w:420px;--sheet-panel-w:360px;--header-h:40px;--field-label-w:130px;--stock-card-w:300px;--embedded-screen-h:260px;--login-w:340px;--tool-btn:28px;--tool-icon:18px;--tool-sub-btn:22px;--tool-sub-icon:14px;--tool-sub-font:11px;--tool-sub-weight:500;--tool-sub-gap:2px;--tool-sub-pad-x:5px;--tool-sub-inset:3px;--tool-sub-radius:2px;--tool-sub-menu-max-h:40vh;--title-fade-w:28px;--title-fade-mask:linear-gradient(to right, #000 calc(100% - var(--title-fade-w)), transparent 100%);--index-max-h:60vh;--thumb-w:200px;--thumb-h:140px;--review-crop-h:120px;--review-crop-zoom-h:560px;--review-crop-zoom-gap:8px;--quick-view-w:84vw;--quick-view-h:84vh;--sheet-menu-w:240px;--set-history-w:440px;--folder-menu-w:180px;--spec-pane-w:780px;--spec-card-min:230px;--spec-code-w:84px;--spec-part-size:15px;--spec-options-max-h:240px;--products-search-w:260px;--popup-w:940px;--popup-h:84vh;--popup-col-mfr:150px;--popup-col-form:110px;--popup-col-base:170px;--popup-col-n:64px;--cfg-field-min:300px;--import-dialog-w:980px;--import-doc-h:320px;--import-doc-h-planned:120px;--import-col-action-w:76px;--import-drop-outline:2px;--submittal-w:860px;--submittal-title-size:20px;--submittal-part-size:17px;--share-url-max-w:320px;--public-main-pad:24px;--bar-h:10px;--bar-label-w:160px;--bar-value-w:56px;--landing-card-min:320px;--sketch-slot-h:74px;--sketch-col-w:300px;--space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:16px;--paper:#fff;--overlay-select:#1f6feb;--overlay-select-fill:#1f6feb40;--overlay-select-faint:#1f6feb14;--overlay-cut:#b42318;--overlay-tape:#0a7d3a;--overlay-label:#333;--overlay-handle:#fff;--overlay-room:#8a5a00;--overlay-room-fill:#d496141a;--overlay-room-fill-active:#d4961447;--hue-sat:70%;--hue-light:38%;--swatch-sat:60%;--swatch-light:72%;--sketch-control:#1a8f3c;--sketch-power:#7a2fbf;--sketch-led:#e0479e;--sketch-zero-ten:#e07b1a;--sketch-ink:#222;--sketch-muted:#666;--sketch-paper:#fff;--sketch-board:#f7f7f5;--sketch-page-w:792px;--sketch-page-h:612px}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#16191d;--bg-muted:#1e2228;--bg-elevated:#22262c;--bg-hover:#262b33;--bg-selected:#1d3358;--border:#343a43;--border-strong:#4a515c;--text:#e6e8eb;--text-muted:#9aa3ad;--accent:#4c8dff;--accent-contrast:#fff;--danger:#f0655a;--danger-bg:#3a1f1c;--danger-border:#6b2f29;--warn:#f2a33a;--warn-bg:#3b2a10;--success:#3fbf6f;--success-bg:#163a25;--diff-added:#3fbf6f;--lock-bg:#3b2f10;--lock-border:#6b5620;--lock-text:#f2c96b;--viewport-bg:#2a2e35;--shadow:#0009;--shadow-soft:#00000073;--backdrop:#00000080;--tool-sub-bg:#191c21;--tool-sub-border:#2c323b;--tool-sub-text:#aab3bd;--tool-sub-text-active:#e6e8eb;--tool-sub-bg-active:#24375a;--tool-sub-bg-hover:#23272e}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--bg-muted:#f4f5f7;--bg-elevated:#fff;--bg-hover:#e9ebef;--bg-selected:#e6efff;--border:#d9dce1;--border-strong:#b8bec8;--text:#1f2328;--text-muted:#636c76;--accent:#1f6feb;--accent-contrast:#fff;--danger:#b42318;--danger-bg:#fff5f4;--danger-border:#f3c2bd;--warn:#b45309;--warn-bg:#fef3c7;--success:#15803d;--success-bg:#dcfce7;--diff-added:#1a7f37;--lock-bg:#fff4d6;--lock-border:#f0d28a;--lock-text:#7a4d00;--viewport-bg:#8a8f98;--shadow:#0006;--shadow-soft:#0003;--backdrop:#1f232859;--tool-sub-bg:#eaecf0;--tool-sub-border:#d3d7dd;--tool-sub-text:#4f5863;--tool-sub-text-active:#1f2328;--tool-sub-bg-active:#d2e2ff;--tool-sub-bg-hover:#dfe2e7}:root{font-family:var(--font-sans);font-size:var(--font-size);color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}a{color:inherit;text-decoration:none}.app{grid-template-rows:var(--header-h) 1fr;grid-template-columns:var(--nav-w) 1fr;height:100%;display:grid}.header{border-bottom:1px solid var(--border);background:var(--bg-muted);grid-column:1/-1;align-items:center;gap:16px;padding:0 12px;display:flex}.header .brand{letter-spacing:.02em;font-weight:600}.header .spacer{flex:1}.header label{color:var(--text-muted);align-items:center;gap:6px;display:flex}.nav{border-right:1px solid var(--border);padding:8px 0;overflow:auto}.nav h3{text-transform:uppercase;color:var(--text-muted);margin:10px 12px 4px;font-size:11px;font-weight:600}.nav a{padding:5px 12px;display:block}.nav a:hover{background:var(--bg-muted)}.nav a.active{background:var(--bg-selected);color:var(--accent);font-weight:600}.main{min-width:0;min-height:0;display:flex}.screen{flex-direction:column;flex:1;min-width:0;display:flex}.toolbar{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;display:flex}.toolbar h2{margin:0;font-size:15px}.toolbar .spacer{flex:1}.grid{flex:1;min-height:0}.panel{width:var(--panel-w);border-left:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.panel-head{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;display:flex}.panel-head h3{flex:1;margin:0;font-size:14px}.panel-body{flex:1;padding:10px;overflow:auto}.panel-foot{border-top:1px solid var(--border);gap:8px;padding:8px 10px;display:flex}.field{grid-template-columns:var(--field-label-w) 1fr;align-items:center;gap:6px 8px;margin-bottom:6px;display:grid}.field label{color:var(--text-muted)}.field .error{color:var(--danger);grid-column:2;font-size:12px}.field-check{grid-template-columns:var(--field-label-w) auto}input,select,textarea,button{font:inherit}input[type=text],input[type=number],input[type=url],select,textarea{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;padding:4px 6px}textarea{min-height:60px;font-family:var(--font-mono);font-size:12px}button{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-muted);cursor:pointer;padding:4px 10px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}button:disabled{opacity:.5;cursor:default}.error-banner{color:var(--danger);border:1px solid var(--danger-border);background:var(--danger-bg);border-radius:var(--radius);white-space:pre-wrap;margin-bottom:8px;padding:6px 10px}.muted{color:var(--text-muted)}.subsection{border-top:1px solid var(--border);margin-top:14px;padding-top:8px}.subsection h4{margin:0 0 6px;font-size:13px}.mode{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;padding:6px 8px}.mode-head{align-items:center;gap:8px;display:flex}.mode-head strong{flex:1}table.dense{border-collapse:collapse;width:100%;margin-top:4px}table.dense th,table.dense td{text-align:left;border-bottom:1px solid var(--border);padding:2px 4px}table.dense th{color:var(--text-muted);font-size:12px;font-weight:500}.inline-form{flex-wrap:wrap;align-items:center;gap:4px;margin-top:6px;display:flex}.inline-form input,.inline-form select{width:auto}.inline-form input.narrow{width:64px}.placeholder{color:var(--text-muted);padding:24px}.subnav{width:var(--subnav-w);border-right:1px solid var(--border);background:var(--bg-muted);flex:none;padding:8px 0;overflow:auto}.subnav h3{text-transform:uppercase;color:var(--text-muted);margin:10px 12px 4px;font-size:11px;font-weight:600}.subnav a{padding:4px 12px;display:block}.subnav a:hover{background:var(--bg-hover)}.subnav a.active{background:var(--bg-selected);color:var(--accent);font-weight:600}.subnav .subnav-title{border-bottom:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;padding:6px 12px 8px;font-weight:600;overflow:hidden}.content{flex:1;padding:12px;overflow:auto}.content.narrow-form{max-width:620px}.stats{gap:12px;margin:0 0 12px;display:flex}.stat{border:1px solid var(--border);border-radius:4px;min-width:110px;padding:8px 14px}.stat dt{color:var(--text-muted);font-size:12px}.stat dd{margin:2px 0 0;font-size:20px;font-weight:600}.readonly{padding:4px 0}.hint{margin-bottom:8px}.toolbar-filter{color:var(--text-muted);align-items:center;gap:6px;display:flex}.toolbar-filter select{width:auto;max-width:260px}.subsection-top{border-bottom:1px solid var(--border);align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;display:flex}.subsection-top select{flex:1;width:auto}.subsection-top.stack{display:block}.subsection-top.stack select{width:100%}.field-check-inline{white-space:nowrap;align-items:center;gap:4px;display:flex}ul.tree{margin:0;padding:0;list-style:none}.tree-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:3px 8px;display:flex}.tree-row.selected{background:var(--bg-selected)}.tree-row .spacer{flex:1}.tree-kind{text-transform:uppercase;color:var(--text-muted);width:62px;font-size:10px}.tree-path{font-family:var(--font-mono);font-size:12px}.tree-row{position:relative}.tree-row.dragging{opacity:.4}.tree-grip{cursor:grab;-webkit-user-select:none;user-select:none;font-size:var(--font-size-xs)}.tree-drop-before{height:6px;position:absolute;top:-3px;left:0;right:0}.tree-drop-before:hover{background:var(--accent)}button.link{cursor:pointer;color:inherit;text-align:left;background:0 0;border:none;padding:0}button.link:hover{color:var(--accent)}.drawings-screen .drawings-body{flex:1;min-height:0;display:flex}.drawings-new{gap:var(--space-1)}.drawings-new input{width:11em}.drawings-new select{width:auto}.drawings-note{padding:var(--space-1) var(--space-4)}.drawings-content{gap:var(--space-6);flex-direction:column;display:flex}.drawings-folder{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated)}.drawings-folder.drop-target{border-color:var(--accent)}.folder-head{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);background:var(--bg-muted);border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-direction:column;display:flex}.folder-title{align-items:center;gap:var(--space-3);font-size:var(--font-size-lg);display:flex}.folder-title .tool-icon{font-size:var(--tool-icon);color:var(--text-muted)}.folder-title input{width:14em}.folder-sets{gap:var(--space-3);flex-wrap:wrap;display:flex}.set-chip{align-items:center;gap:var(--space-2);padding:2px var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);display:inline-flex}.set-chip.selected{border-color:var(--accent)}.set-chip input{width:12em}.sheet-grid{grid-template-columns:repeat(auto-fill, minmax(var(--thumb-w), 1fr));gap:var(--space-4);padding:var(--space-4);display:grid}.sheet-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);cursor:grab;flex-direction:column;display:flex;overflow:hidden}.sheet-card.dragging{opacity:.4}.sheet-card.drop-before,tr.drop-before td{box-shadow:inset 3px 0 0 var(--accent)}tr.dragging td{opacity:.4}.sheet-thumb-link{display:block}.sheet-thumb{height:var(--thumb-h);background:var(--paper);border-bottom:1px solid var(--border);justify-content:center;align-items:center;display:flex;overflow:hidden}.sheet-thumb img{max-width:100%;max-height:100%;display:block}.sheet-card-body{padding:var(--space-2) var(--space-3);flex-direction:column;gap:2px;display:flex}.sheet-card-body input{width:100%}.sheet-card-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sheet-card-meta{gap:var(--space-1);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.drawings-empty{padding:var(--space-4);grid-column:1/-1}.drag-handle{cursor:grab;width:1.5em}.sheets-table tr[draggable]{cursor:default}.set-list{border-right:1px solid var(--border);flex:none;width:240px;overflow:auto}.set-list .set-new{border-bottom:1px solid var(--border);gap:6px;padding:8px;display:flex}.set-list .set-new input{flex:1;min-width:0}.set-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}table.dense tr.clickable{cursor:pointer}table.dense tr.clickable:hover td{background:var(--bg-hover)}.sheets-table input[type=text]{min-width:90px}.sheets-table td{vertical-align:top}.sheet-screen{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.sheet-screen .toolbar a{color:var(--accent)}.tool-group{gap:var(--space-3);display:flex}.sheet-toolbar{flex-wrap:nowrap}.sheet-toolbar>*{flex:none}.sheet-toolbar>.spacer{flex:1 1 0;min-width:0}.sheet-toolbar>h2.sheet-title{white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.sheet-toolbar>h2.sheet-title[data-truncated="1"]{-webkit-mask-image:var(--title-fade-mask);-webkit-mask-image:var(--title-fade-mask);mask-image:var(--title-fade-mask)}.tool-set{gap:var(--space-1);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-muted);padding:2px;display:inline-flex}.tool-nav{align-items:center;gap:var(--space-1);display:inline-flex}.tool-nav .muted{text-align:center;min-width:3em;font-family:var(--font-mono);font-size:var(--font-size-sm)}button.tool-btn{width:var(--tool-btn);height:var(--tool-btn);font-size:var(--tool-icon);justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}button.tool-btn:disabled{opacity:.35}.tool-icon{display:block}.scale-actions{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap}.sheet-body{flex:1;min-height:0;display:flex}.sheet-tools{gap:var(--space-3);padding:var(--space-1);border-right:1px solid var(--border);background:var(--bg-muted);flex-direction:column;align-items:flex-start;display:flex;overflow:visible}.sheet-tools .tool-group,.sheet-tools .tool-set{flex-direction:column}.tool-sub{gap:var(--tool-sub-gap);padding:var(--tool-sub-inset);margin:0 0 var(--space-1);border:1px solid var(--tool-sub-border);border-radius:var(--tool-sub-radius);background:var(--tool-sub-bg);flex-direction:column;display:flex}button.tool-sub-btn{min-height:var(--tool-sub-btn);min-width:var(--tool-sub-btn);padding:0 var(--tool-sub-pad-x);justify-content:center;align-items:center;gap:var(--space-1);font-size:var(--tool-sub-font);font-weight:var(--tool-sub-weight);border-radius:var(--tool-sub-radius);color:var(--tool-sub-text);white-space:nowrap;background:0 0;border:1px solid #0000;line-height:1;display:inline-flex}button.tool-sub-btn .tool-icon{font-size:var(--tool-sub-icon)}button.tool-sub-btn:hover:not(:disabled){background:var(--tool-sub-bg-hover);border-color:var(--tool-sub-border)}button.tool-sub-btn.active{background:var(--tool-sub-bg-active);color:var(--tool-sub-text-active)}button.tool-sub-btn:disabled{opacity:.5}.tool-sub-rule{height:1px;margin:var(--tool-sub-gap) 0;background:var(--tool-sub-border)}.tool-sub-menu{gap:var(--tool-sub-gap);max-height:var(--tool-sub-menu-max-h);border-top:1px solid var(--tool-sub-border);padding-top:var(--tool-sub-gap);flex-direction:column;display:flex;overflow-y:auto}.tool-sub-menu>button.tool-sub-btn{justify-content:flex-start;width:100%}.tool-sub-head{font-size:var(--font-size-xs);color:var(--text-muted);padding:var(--tool-sub-gap) var(--tool-sub-pad-x) 0;white-space:nowrap}.tool-nav{position:relative}.tool-nav .context-menu{top:calc(var(--tool-btn) + var(--space-1));max-height:var(--index-max-h);min-width:260px;left:auto;right:0;overflow-y:auto}.sheet-index .index-folder{padding:var(--space-1) var(--space-3);color:var(--text-muted);font-weight:600}.sheet-index button.index-set{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);color:var(--text-muted);font-size:var(--font-size-sm);display:flex}.sheet-index button.index-set .tool-icon{font-size:var(--font-size-sm)}.sheet-index button.index-set[data-collapsed="1"] .tool-icon{transform:rotate(-90deg)}.sheet-index button.index-sheet{padding-left:var(--space-6)}.sheet-index button.index-sheet.current{color:var(--accent)}.layers-menu label{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);cursor:pointer;display:flex}.sheet-canvas-wrap{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.viewport{background:var(--viewport-bg);touch-action:none;-webkit-user-select:none;user-select:none;flex:1;min-height:0;position:relative;overflow:hidden}.viewport-page{background:var(--paper);box-shadow:0 0 12px var(--shadow);position:absolute;top:0;left:0}.viewport-canvas{display:block;position:absolute;top:0;left:0}.viewport-overlay{pointer-events:none;display:block;position:absolute;top:0;left:0;overflow:visible}.statusbar{border-top:1px solid var(--border);background:var(--bg-muted);font-family:var(--font-mono);gap:16px;padding:3px 10px;font-size:12px;display:flex}.sheet-panel{width:var(--sheet-panel-w)}.sheet-panel .field label,.sheet-panel .field>span:first-child{color:var(--text-muted)}button.link.danger{color:var(--danger)}.sheet-panel .inline-form{min-width:0;display:flex}.sheet-panel .inline-form input{flex:1;min-width:0}.sheet-panel .inline-form select{flex:none}.sheet-canvas-wrap{position:relative}.toast{z-index:2;box-shadow:0 2px 8px var(--shadow-soft);position:absolute;bottom:36px;left:12px;right:12px}.toast button.toast-action{border:1px solid var(--accent);cursor:pointer;color:var(--accent);background:0 0;border-radius:4px;margin:0 2px;padding:2px 8px;font-weight:600;text-decoration:underline}.toast button.toast-action:hover{background:var(--bg-selected)}.tabs{border-bottom:1px solid var(--border);gap:4px;padding:6px 10px;display:flex}.fixture-panel{flex-direction:column;flex:1;min-height:0;display:flex}.warn{color:var(--warn);font-weight:600}ul.palette{margin:0;padding:0;list-style:none}.palette-item{text-align:left;background:var(--bg-elevated);align-items:center;gap:6px;width:100%;margin-bottom:4px;display:flex}.palette-item.active{border-color:var(--accent);background:var(--bg-selected)}.palette-item .swatch{border-radius:2px;flex:none;width:12px;height:12px}.palette-item .palette-product{margin-left:auto;font-size:11px}table.dense tr.selected td{background:var(--bg-selected)}button.danger{color:var(--danger)}.enclosure-body{flex:1;min-height:0;display:flex}.enclosure-body .content h3{margin:14px 0 4px;font-size:13px}.enclosure-body .content h3:first-child{margin-top:0}.bar-row{margin-bottom:10px}.bar-label{margin-bottom:2px}.bar{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-muted);height:10px;overflow:hidden}.bar-thin{height:5px;margin-top:3px}.bar-fill{background:var(--accent);height:100%}.bar-warn{border-color:var(--warn)}.bar-warn .bar-fill,.bar-fill-warn{background:var(--warn)}.bar-numbers{margin-top:2px;font-size:12px}.ok{color:var(--success);font-weight:600}tr.derived td{color:var(--text-muted);font-style:italic}.small{font-size:11px}ul.plain{margin:0;padding:0;list-style:none}ul.plain li{padding:2px 0}a.link{color:var(--accent)}.schedule-screen{position:relative}.schedule-body{flex:1;min-height:0;display:flex}.column-chooser{width:260px}.column-choice{padding:2px 0;display:flex}.muted-banner{color:var(--text-muted);border:1px solid var(--border);background:var(--bg-muted);border-radius:var(--radius);padding:6px 10px}.bom-content section{margin-bottom:8px}.bom-table{border-collapse:collapse;width:100%;max-width:980px}.bom-table th,.bom-table td{border-bottom:1px solid var(--border);text-align:left;padding:4px 8px}.bom-table th.num,.bom-table td.num{text-align:right;font-variant-numeric:tabular-nums}.bom-table .bom-section td{background:var(--bg-muted);text-transform:uppercase;color:var(--text-muted);font-size:12px;font-weight:600}.diff-added{color:var(--diff-added);font-weight:600}.diff-removed{color:var(--danger);font-weight:600}.diff-changed{color:var(--accent);font-weight:600}.patch-content{flex-direction:column;gap:8px;display:flex}.patch-table{table-layout:auto;width:100%;min-width:0}.patch-table .group-profile{margin-top:2px}.patch-table-wrap{overflow-x:auto}.patch-table th.num,.patch-table td.num{text-align:right;font-variant-numeric:tabular-nums}.patch-table tr[data-testid=group-row]{cursor:pointer}.patch-table tr[data-testid=group-row]:hover td{background:var(--bg-muted)}.patch-table tr.selected td{background:var(--bg-selected)}.patch-table select,.patch-table input.cell-input{width:auto}.patch-table input.cell-input.narrow{width:64px}.patch-table input.cell-input.name{background:0 0;border-color:#0000;width:260px;max-width:100%}.patch-table input.cell-input.name:hover,.patch-table input.cell-input.name:focus{border-color:var(--border);background:var(--bg)}.patch-table tr.row-error td{color:var(--danger);background:var(--danger-bg);font-size:var(--font-size-sm)}.swatch{vertical-align:middle;border-radius:2px;width:10px;height:10px;margin-right:6px;display:inline-block}.tag{border-radius:var(--radius);background:var(--warn-bg);margin-left:6px;padding:0 5px;font-size:11px;display:inline-block}.patch-summary{width:460px}.patch-summary .panel-head select{width:auto}.summary-stats{margin-bottom:8px}.summary-stats .stat{min-width:80px;padding:6px 10px}.summary-stats .stat dd{font-size:16px}.universe-grid{background:var(--border);border:1px solid var(--border);gap:1px;display:grid}.ucell{aspect-ratio:1;background:var(--bg);min-width:0}.ucell.reserved{cursor:pointer}.ucell.selected{outline:2px solid var(--accent);outline-offset:-2px}.block-legend{margin-top:8px}.block-legend li.selected{background:var(--bg-selected)}.block-legend code{margin:0 4px}.releases-screen{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.releases-body{flex:1;min-height:0;display:flex}.releases-body .content{flex:1;padding:10px;overflow:auto}.releases-body tr[data-testid=release-row]{cursor:pointer}.releases-body tr.selected td{background:var(--bg-selected)}.field-app{grid-template-rows:44px 1fr;height:100%;display:grid}.field-header{grid-column:1}.field-main{min-width:0;min-height:0;display:flex}.field-project{flex-direction:column;flex:1;width:100%;min-width:0;max-width:720px;min-height:0;margin:0 auto;display:flex}.field-title{border-bottom:1px solid var(--border);padding:10px 14px;font-size:16px;font-weight:600}.field-content{flex-direction:column;flex:1;min-height:0;padding:10px 14px;display:flex;overflow:auto}.field-toolbar{border-top:1px solid var(--border);background:var(--bg-muted);display:flex}.field-toolbar a{text-align:center;color:var(--text-muted);flex:1;padding:14px 0;font-size:15px;font-weight:600}.field-toolbar a.active{color:var(--accent);border-top:3px solid var(--accent)}.field-h2{margin:4px 0 10px;font-size:18px}.field-h3{color:var(--text-muted);margin:12px 0 6px;font-size:14px}ul.field-list{margin:0;padding:0;list-style:none}ul.field-list>li{margin-bottom:8px}.field-row{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg);text-align:left;cursor:pointer;align-items:center;gap:10px;width:100%;min-height:48px;padding:10px 12px;font-size:15px;display:flex}.field-row:hover{background:var(--bg-muted)}.field-row.static{cursor:default;flex-wrap:wrap}.field-row.static:hover{background:var(--bg)}.field-detail{border:1px solid var(--border);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:none;padding:10px 12px}.field-actions{gap:8px;margin:8px 0;display:flex}.field-actions input{flex:1}button.big,input.big{min-height:44px;padding:8px 14px;font-size:15px}button.link.big{min-height:0;padding:0 8px;font-size:22px}.pill{background:var(--bg-muted);border-radius:10px;padding:2px 8px;font-size:12px;display:inline-block}.pill-ready{background:var(--warn-bg)}.pill-verified,.pill-closed{background:var(--success-bg)}.field-dl{grid-template-columns:120px 1fr;gap:6px 10px;margin:0;font-size:14px;display:grid}.field-dl dt{color:var(--text-muted)}.field-dl dd{margin:0}.field-sheet{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.field-sheet-bar{align-items:center;gap:10px;padding:6px 0 8px;display:flex}.field-sheet-bar a{color:var(--accent);font-size:15px}.field-sheet-bar .spacer{flex:1}.field-sheet-canvas{border:1px solid var(--border);flex-direction:column;flex:1;min-height:320px;display:flex;position:relative}.field-popover{background:var(--bg);border-top:2px solid var(--accent);max-height:60%;box-shadow:0 -4px 16px var(--shadow-soft);z-index:3;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.field-popover .fixture-panel{min-height:0}.field-popover .tabs button{min-height:40px}.project-area{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.project-content{flex:1;min-width:0;min-height:0;display:flex}.locked-banner{background:var(--lock-bg);border-bottom:1px solid var(--lock-border);color:var(--lock-text);align-items:center;gap:10px;padding:6px 12px;display:flex}.badge{background:var(--bg-muted);color:var(--text-muted);border-radius:10px;padding:1px 6px;font-size:11px;font-weight:600;display:inline-block}.badge.locked{background:var(--lock-bg);color:var(--lock-text);border:1px solid var(--lock-border)}.diff-field{font-family:var(--font-mono);font-size:12px}.diff-value{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;max-width:320px;font-size:12px}.revisions-content{padding:10px;overflow:auto}.theme-toggle{white-space:nowrap}.context-menu{z-index:5;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);min-width:200px;max-width:320px;max-height:70%;box-shadow:0 4px 16px var(--shadow);padding:4px 0;position:absolute;overflow:auto}.context-menu-head{padding:4px 10px;font-size:11px}.context-menu>button{text-align:left;background:0 0;border:none;border-radius:0;width:100%;padding:5px 12px;display:block}.context-menu>button:hover:not(:disabled){background:var(--bg-hover)}.context-submenu{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-muted);max-height:260px;padding:4px 8px;overflow:auto}.context-submenu>button{text-align:left;background:0 0;border:none;border-radius:0;width:100%;padding:4px 8px;display:block}.context-submenu>button:hover:not(:disabled){background:var(--bg-hover)}.zone-picker{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:2px;max-height:240px;padding:4px;display:flex;overflow:auto}.zone-picker-head{text-transform:uppercase;padding:4px 6px 2px;font-size:11px}.zone-pick{text-align:left;background:0 0;border:1px solid #0000;width:100%;padding:3px 6px;display:block}.zone-pick:hover:not(:disabled){background:var(--bg-hover)}.zone-pick.picked{background:var(--bg-selected);border-color:var(--accent)}.zone-code{font-family:var(--font-mono);font-size:12px}.selection-bar{z-index:3;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 8px var(--shadow-soft);align-items:center;gap:8px;padding:6px 10px;display:flex;position:absolute;top:12px;left:12px}.selection-bar.static{margin:6px 10px 0;position:static}.selection-popover{z-index:4;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);min-width:260px;box-shadow:0 4px 16px var(--shadow);margin-top:4px;padding:8px;position:absolute;top:100%;left:0}.selection-bar{position:relative}.sheet-canvas-wrap .selection-bar{position:absolute}.app.nav-collapsed{grid-template-columns:48px 1fr}.app.nav-collapsed .nav a{text-align:center;padding:6px 0}.app.nav-collapsed .nav h3{text-align:center;margin:8px 0 2px}.nav .glyph{border-radius:var(--radius);background:var(--bg-muted);min-width:28px;padding:2px 0;font-size:11px;font-weight:600;display:inline-block}.nav a.active .glyph{background:var(--accent);color:var(--accent-contrast)}.spaces-picker{position:relative}.spaces-picker .chips{flex-wrap:wrap;align-items:center;gap:4px;display:inline-flex}.chip{border:1px solid var(--border);background:var(--bg-muted);border-radius:10px;align-items:center;gap:4px;padding:1px 6px;font-size:12px;display:inline-flex}.spaces-popover{min-width:280px;max-height:260px;overflow:auto}.spaces-option{gap:6px;padding:2px 0;display:flex}.toolbar h2,.toolbar button,.toolbar-filter{white-space:nowrap}.toolbar select[data-testid=goto-fixture],.toolbar select[data-testid=room-filter]{flex:none;width:auto;max-width:220px}.toolbar .muted[data-testid=sheet-size]{white-space:nowrap}.fixture-panel .inline-form>select{flex:1;min-width:0}.fixture-panel .inline-form>button{flex:none}.details-stack{flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}.details-stack>.screen{min-height:var(--embedded-screen-h);flex:none}.embedded-screen{min-height:var(--embedded-screen-h);border-bottom:1px solid var(--border);flex:none;display:flex}.embedded-screen>.screen{min-height:var(--embedded-screen-h);flex:1}.embedded-screen>.panel{height:auto;min-height:var(--embedded-screen-h);flex:none}.details-stack>.hint{padding:0 var(--space-5)}.stock-grid{grid-template-columns:repeat(auto-fill, minmax(var(--stock-card-w), 1fr));gap:var(--space-5);display:grid}.stock-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);flex-direction:column;display:flex}.stock-card .stock-head{align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.stock-card .stock-head h4{margin:0}.stock-card .stock-remnant{font-variant-numeric:tabular-nums;margin-left:auto}.stock-card table{width:100%}.stock-bar{height:var(--space-2);background:var(--bg-muted);position:relative}.stock-bar>span{background:var(--accent);position:absolute;top:0;bottom:0}.piece-manual{color:var(--accent);font-weight:600}.provisioned-gear{padding:var(--space-3) var(--space-5) 0;flex:none}.provisioned-gear h3{margin:0 0 var(--space-3)}.login{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{width:var(--login-w);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated)}.login-card h2{margin:0 0 var(--space-2)}.login-card .muted{margin:0 0 var(--space-6)}.login-card .error{color:var(--danger);margin-bottom:var(--space-4)}.login-actions{justify-content:flex-end;gap:var(--space-3);display:flex}input[type=password]{width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}.header .user-menu{align-items:center;gap:var(--space-3);color:var(--text-muted);white-space:nowrap;display:flex}.header .actor-role{white-space:nowrap}.landing-body{gap:var(--space-6);flex-direction:column;display:flex}.landing-columns{grid-template-columns:repeat(auto-fit, minmax(var(--landing-card-min), 1fr));gap:var(--space-5);display:grid}.landing-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);padding:var(--space-4) var(--space-5)}.landing-card h3,.landing .content>section>h3{margin:0 0 var(--space-3);font-size:var(--font-size-lg)}.stage-strip{gap:var(--space-2);flex-direction:column;display:flex}.stages{gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.stage{text-align:center;padding:var(--space-1) 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-muted);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-sm);flex:1}.stage.done{background:var(--bg-selected);color:var(--text)}.stage.current{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.next-steps{gap:var(--space-2);flex-direction:column;margin:0;padding-left:1.4em;display:flex}.next-step{align-items:center;gap:var(--space-2);color:var(--accent);display:inline-flex}.tips{color:var(--text-muted);gap:var(--space-1);flex-direction:column;margin:0;padding-left:1.2em;display:flex}.landing-stats{flex-wrap:wrap}.bars{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.bar-row{grid-template-columns:var(--bar-label-w) 1fr var(--bar-value-w);align-items:center;gap:var(--space-3);display:grid}.bar-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bar-track{height:var(--bar-h);background:var(--bg-muted);border-radius:var(--radius);overflow:hidden}.bar-fill{background:var(--accent);border-radius:0 var(--radius) var(--radius) 0;height:100%;display:block}.bar-value{text-align:right;font-family:var(--font-mono);font-size:var(--font-size-sm)}.sketch{margin-bottom:var(--space-4);position:relative}.sketch-box{grid-template-columns:var(--sketch-col-w) var(--sketch-col-w);gap:var(--space-5);padding:var(--space-4);border:2px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);max-width:100%;display:inline-grid}.sketch-column{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.sketch-column-title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em}.sketch-slot{min-height:var(--sketch-slot-h);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);text-align:left;padding:var(--space-2) var(--space-3);flex-direction:column;gap:2px;display:flex}.sketch-slot.empty{color:var(--text-muted);font-size:var(--font-size-lg);cursor:pointer;background:var(--bg-muted);border-style:dashed;justify-content:center;align-items:center}.sketch-slot.empty.drop{border-color:var(--accent)}.sketch-slot.device{cursor:grab}.sketch-slot.device.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.sketch-slot.device.warn{border-color:var(--danger)}.sketch-slot.device.dragging{opacity:.4}.sketch-device-head{gap:var(--space-2);align-items:baseline;display:flex}.sketch-device-meta{font-size:var(--font-size-xs);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sketch-bar{height:4px;display:block}.sketch-labels{font-family:var(--font-mono);font-size:var(--font-size-xs);flex-direction:column;gap:1px;display:flex}.sketch-leads{font-size:var(--font-size-xs);color:var(--text-muted);border-top:1px dashed var(--border);flex-direction:column;gap:1px;margin-top:2px;padding-top:2px;display:flex}.sketch-label{white-space:nowrap;text-overflow:ellipsis;font:inherit;overflow:hidden}.sketch-menu{flex-direction:column;gap:2px;max-height:320px;display:flex;position:absolute;overflow:auto}.sketch-menu button{text-align:left}.sketch-menu-list{flex-direction:column;gap:2px;max-height:200px;display:flex;overflow:auto}.defaults-content .subsection:first-child{border-top:0;margin-top:0;padding-top:0}.defaults-content table.dense select{width:auto;max-width:240px}.defaults-pick{flex-wrap:wrap;margin-top:0}.defaults-pick select{max-width:260px}ul.template-list{margin:0 0 var(--space-3);padding:0;list-style:none}ul.template-list li{align-items:center;gap:var(--space-3);padding:var(--space-1) 0;border-bottom:1px solid var(--border);display:flex}ul.template-list li strong{min-width:120px}ul.template-list li .muted{flex:1}.wizard-steps{gap:var(--space-4)}.wizard-step{color:var(--text-muted);padding:var(--space-1) var(--space-3);border-radius:var(--radius)}.wizard-step.active{color:var(--accent-contrast);background:var(--accent)}.wizard-step.done{color:var(--text)}.wizard-choice{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-3);cursor:pointer;display:flex}.wizard-choice input{margin-top:2px}.wizard-actions{gap:var(--space-3);margin-top:var(--space-5);display:flex}.wizard-summary{grid-column:2;margin:0}a.button-link{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-muted);color:var(--text);padding:4px 10px;text-decoration:none;display:inline-block}.place-id-fields{margin-top:0}.place-id-fields input.narrow{width:72px}.place-id-fields input::placeholder{color:var(--text-muted);opacity:1}.sheet-tools{position:relative}.upload-dialog-host{padding:var(--space-4)}.upload-dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-elevated);max-width:560px;box-shadow:0 4px 16px var(--shadow)}.upload-dialog.inline{margin:0 auto}.upload-dialog .field input[type=text]{margin-top:var(--space-1)}.review-crop{gap:var(--space-1);flex-direction:column;align-items:flex-start;display:flex}button.review-crop-frame{height:var(--review-crop-h);min-width:var(--review-crop-h);background:var(--paper);border:1px solid var(--border);border-radius:var(--radius);cursor:zoom-in;justify-content:center;align-items:center;padding:0;display:flex;overflow:hidden}button.review-crop-frame:hover{border-color:var(--accent)}.review-crop-frame img{width:auto;height:100%;display:block}.review-crop-zoom{left:calc(var(--crop-x) + var(--review-crop-zoom-gap));top:max(var(--space-4), min(var(--crop-y), calc(100vh - var(--review-crop-zoom-h) - var(--space-4))));height:var(--review-crop-zoom-h);max-width:calc(100vw - var(--crop-x) - var(--review-crop-zoom-gap) - var(--space-4));object-fit:contain;object-position:left top;z-index:6;pointer-events:none;background:var(--paper);border:1px solid var(--border-strong);box-shadow:0 4px 16px var(--shadow);position:fixed}.quick-view{width:var(--quick-view-w);height:var(--quick-view-h);z-index:6;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 16px var(--shadow);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.quick-view-head{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);white-space:nowrap;display:flex}.quick-view-head .spacer{flex:1}.quick-view-head strong{text-overflow:ellipsis;overflow:hidden}.quick-view .viewport{flex:1}.folder-caret{padding:0;line-height:1}.folder-caret .tool-icon{font-size:var(--tool-icon)}.badge.scale-pill{color:var(--accent);align-items:center;gap:2px;display:inline-flex}.badge.partner-pill{color:var(--accent);font-family:var(--font-mono)}.sheet-menu{margin-left:auto;display:inline-flex;position:relative}.sheet-menu .context-menu{min-width:var(--sheet-menu-w);padding:var(--space-2) var(--space-3);gap:var(--space-2);flex-direction:column;display:flex;top:100%;left:auto;right:0}.sheet-menu .context-menu>button{padding:var(--space-1) 0}.sheet-menu .context-menu select{width:100%}.sheets-table td.sheet-actions{white-space:nowrap}.sheets-table td.sheet-actions .sheet-menu{margin-left:var(--space-2)}.set-line{gap:var(--space-3)}.set-line .set-current{width:auto}.set-line .sheet-menu{margin-left:0}.sheet-menu.set-history .context-menu{min-width:var(--set-history-w);max-width:none;left:0;right:auto}.sheet-menu.folder-upload .context-menu{min-width:var(--folder-menu-w)}.history-row{align-items:center;gap:var(--space-3);padding:var(--space-1) 0;border-top:1px solid var(--border);display:flex}.history-row .history-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.history-row .history-meta{white-space:nowrap;font-size:var(--font-size-sm)}.history-row .history-actions{align-items:center;gap:var(--space-3);white-space:nowrap;display:inline-flex}.history-row .tree-kind{width:auto}.history-error{margin-bottom:0}.partner-toggle{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--accent);white-space:nowrap;padding:0 var(--space-2)}.badge.scale-pill .tool-icon{font-size:var(--font-size-xs)}.cut-table .cut-enclosure{margin:var(--space-3) 0 var(--space-5)}.cut-table .cut-enclosure h4{margin:0 0 var(--space-2)}.cut-table table.dense select{width:auto;max-width:var(--stock-card-w)}.tag.warn{color:var(--warn)}table.dense tr.over-cap td{background:var(--warn-bg)}.stock-card.over-cap{border-color:var(--warn)}.toolbar .tabs{border-bottom:none;padding:0}.perm-matrix th{text-align:left;vertical-align:top}.perm-matrix tr.perm-area th{background:var(--bg-muted);color:var(--text-muted);padding-top:var(--space-3);font-size:12px}.perm-matrix td.perm-cell{white-space:nowrap}.perm-matrix .perm-bit{margin-right:var(--space-3);color:var(--text-muted);align-items:center;gap:2px;font-size:12px;display:inline-flex}.perm-matrix th.preset-head{min-width:160px}.perm-matrix .preset-settings{gap:var(--space-1);color:var(--text-muted);margin-top:var(--space-1);flex-direction:column;font-size:12px;font-weight:400;display:flex}.perm-matrix .preset-settings select{font-size:12px}.perm-matrix td.perm-cell input:disabled+span{opacity:.5}button.link.small{font-size:11px}.products-toolbar{row-gap:var(--space-2);flex-wrap:wrap}.products-search{width:var(--products-search-w)}.products-group{padding:0 var(--space-4);color:var(--text-muted);background:var(--bg-muted);border-bottom:1px solid var(--border);font-weight:600;line-height:28px}.ag-row.row-group{cursor:default}.ag-row.row-variant .ag-cell{color:var(--text-muted)}.ag-row.row-variant .variant-part{color:var(--text);font-family:var(--font-mono);font-size:var(--font-size-sm)}.ag-row.row-family .family-name{font-weight:600}.expand-toggle{text-align:center;width:100%;color:var(--text-muted)}.expand-toggle:hover{color:var(--accent)}.panel.spec-pane{width:var(--spec-pane-w)}.spec-head{align-items:flex-start}.spec-title{flex:1;min-width:0}.spec-title h3{font-size:var(--font-size-lg);margin:0}.spec-sub{font-size:var(--font-size-sm);margin-top:2px}.spec-body{gap:var(--space-3);flex-direction:column;display:flex}.spec-h{margin:var(--space-4) 0 0;font-size:var(--font-size)}.spec-header-edit{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);background:var(--bg-elevated)}.spec-part{border:1px solid var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:var(--bg-elevated);gap:var(--space-2);flex-direction:column;display:flex}.spec-part-number{font-family:var(--font-mono);font-size:var(--spec-part-size);word-break:break-word}.spec-part-number.open{color:var(--text-muted)}.spec-part-actions{align-items:center;gap:var(--space-3);display:flex}.spec-rules{font-size:var(--font-size-sm)}.spec-rules.violated{color:var(--danger)}.spec-outside{background:var(--bg-muted);color:var(--text-muted);font-size:var(--font-size-xs)}.spec-rule-when,.spec-rule-then{font-family:var(--font-mono);font-size:var(--font-size-sm)}.spec-option.ruled-out .spec-note{color:var(--warn)}select option:disabled{color:var(--text-muted)}.spec-cards{grid-template-columns:repeat(auto-fill, minmax(var(--spec-card-min), 1fr));gap:var(--space-3);display:grid}.spec-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elevated);flex-direction:column;min-width:0;display:flex}.spec-card.kind-fixed{background:var(--bg-muted)}.spec-card-head{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);display:flex}.spec-card-head .spacer{flex:1}.spec-card.kind-fixed .spec-card-head{border-bottom:none}.spec-current{font-family:var(--font-mono);font-size:var(--font-size-sm);color:var(--accent)}.spec-options{max-height:var(--spec-options-max-h);margin:0;padding:0;list-style:none;overflow:auto}.spec-option{align-items:baseline;gap:var(--space-2);padding:2px var(--space-3);cursor:pointer;border-left:3px solid #0000;display:flex}.spec-option:hover{background:var(--bg-hover)}.spec-option.picked{background:var(--bg-selected);border-left-color:var(--accent)}.spec-option.ruled-out .spec-code,.spec-option.ruled-out .spec-label{color:var(--text-muted);text-decoration:line-through}.spec-code{font-family:var(--font-mono);font-size:var(--font-size-sm);width:var(--spec-code-w);flex:none}.spec-label{flex:1;min-width:0}.spec-attrs,.spec-note{font-size:var(--font-size-xs)}.spec-card-foot{padding:2px var(--space-3) var(--space-2);font-size:var(--font-size-xs)}.spec-card .inline-form{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border);margin-top:0}.spec-card input[type=text][data-testid=model-pick]{margin:var(--space-2) var(--space-3);width:auto}button.small{padding:0 var(--space-2);font-size:var(--font-size-xs)}.spec-specs{gap:2px var(--space-4);grid-template-columns:max-content 1fr;margin:0;display:grid}.spec-specs dt{color:var(--text-muted)}.spec-specs dd{font-variant-numeric:tabular-nums;margin:0}.spec-notes{white-space:pre-wrap;margin:0}.spec-foot select{width:auto;max-width:260px}.spec-foot input.narrow{width:6em;font-family:var(--font-mono)}.popup-backdrop{background:var(--backdrop);z-index:5;position:fixed;inset:0}.add-fixture{width:var(--popup-w);max-width:calc(100vw - 2 * var(--space-6));height:var(--popup-h);max-height:calc(100vh - 2 * var(--space-6));z-index:6;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 16px var(--shadow);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.add-fixture-head{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);display:flex}.add-fixture-head h3{font-size:var(--font-size-lg);white-space:nowrap;margin:0}.add-fixture-part{font-family:var(--font-mono);font-size:var(--spec-part-size);flex:1}.add-fixture-hint{padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);border-bottom:1px solid var(--border)}.add-fixture-hint.flagged{color:var(--danger)}.add-fixture-body{min-height:0;padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow:auto}.add-fixture-toolbar{row-gap:var(--space-2);border-bottom:0;flex-wrap:wrap;padding:0}.add-fixture-list{border:1px solid var(--border);border-radius:var(--radius);margin:0;padding:0;list-style:none}.add-fixture-list li{grid-template-columns:var(--popup-col-mfr) 1fr var(--popup-col-form) var(--popup-col-base) var(--popup-col-n);gap:var(--space-3);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);cursor:pointer;align-items:baseline;display:grid}.add-fixture-list li:last-child{border-bottom:0}.add-fixture-list li:hover{background:var(--bg-hover)}.add-fixture-list li.head,.add-fixture-list li.head:hover{cursor:default;color:var(--text-muted);font-size:var(--font-size-sm);background:var(--bg-muted)}.add-fixture-list .num{text-align:right;font-variant-numeric:tabular-nums}.add-fixture-list .family-name{font-weight:600}.add-fixture-foot{gap:var(--space-3);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);align-items:center;display:flex}.add-fixture-foot input.narrow{width:6em;font-family:var(--font-mono)}.add-fixture-foot .spacer{flex:1}.add-fixture .panel.spec-pane.embedded{border-left:0;flex:1;width:auto;min-height:0}.cfg{gap:var(--space-2);flex-direction:column;display:flex}.cfg-part .spec-part-number{font-size:var(--font-size)}.cfg-grid{grid-template-columns:repeat(auto-fill, minmax(var(--cfg-field-min), 1fr));gap:var(--space-1) var(--space-4);display:grid}.cfg-field{margin-bottom:0}.cfg-field.flagged select,.cfg-field.flagged input{border-color:var(--danger)}.cfg-field.partial select,.cfg-field.partial input{border-color:var(--warn)}.cfg-flag{font-size:var(--font-size-sm);color:var(--danger);grid-column:2}.cfg-flag.muted{color:var(--text-muted)}.cfg-recommend{font-family:var(--font-mono);color:var(--accent)}.cfg-checks{gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.cfg-violations,.cfg-open{font-size:var(--font-size-sm)}.import-dialog{width:var(--import-dialog-w);max-width:calc(100vw - 2 * var(--space-6));height:var(--popup-h);max-height:calc(100vh - 2 * var(--space-6));z-index:6;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 16px var(--shadow);flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.import-dialog.dragging{outline:var(--import-drop-outline) dashed var(--accent);outline-offset:calc(-1 * var(--import-drop-outline))}.import-hint{font-size:var(--font-size-sm);flex:1}.import-body{min-height:0;padding:var(--space-4);gap:var(--space-3);flex-direction:column;flex:1;display:flex;overflow:auto}.import-doc{gap:var(--space-2);flex-direction:column;display:flex}.import-label{font-weight:600}.import-doc textarea{width:100%;height:var(--import-doc-h);font-family:var(--font-mono);font-size:var(--font-size-sm);resize:vertical}.import-doc.planned textarea{height:var(--import-doc-h-planned)}.import-files{align-items:center;gap:var(--space-3);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.import-file-list{gap:var(--space-3);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.import-file-list li{gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-muted);align-items:baseline;display:inline-flex}.import-review{gap:var(--space-3);flex-direction:column;display:flex}.import-counts{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.import-filter{padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-size:var(--font-size-sm)}.import-filter.on{outline:1px solid var(--accent)}.import-filter.action-create,.import-badge.action-create{color:var(--success);background:var(--success-bg)}.import-filter.action-update,.import-badge.action-update{color:var(--accent);background:var(--bg-selected)}.import-filter.action-skip,.import-badge.action-skip{color:var(--text-muted);background:var(--bg-muted)}.import-filter.action-reject,.import-badge.action-reject{color:var(--danger);background:var(--danger-bg)}.import-rejects{padding:var(--space-3) var(--space-4);border:1px solid var(--danger-border);border-radius:var(--radius);background:var(--danger-bg)}.import-rejects ul{margin:var(--space-2) 0 0;padding-left:var(--space-6)}.import-open{gap:var(--space-3);flex-wrap:wrap;display:flex}.import-table{width:100%}.import-table .import-col-action{width:var(--import-col-action-w)}.import-table .import-group td{padding-top:var(--space-4);background:var(--bg-muted);font-weight:600}.import-badge{padding:0 var(--space-2);border-radius:var(--radius);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.04em;display:inline-block}.import-row.action-reject td{color:var(--danger)}.import-row.action-skip td{color:var(--text-muted)}.import-reason{white-space:pre-wrap}.doc-kind{white-space:nowrap;margin-left:0}.doc-actions{gap:var(--space-3);white-space:nowrap;align-items:center;display:flex}.fixture-links{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);font-size:var(--font-size-sm);flex-wrap:wrap;display:flex}.fixture-links .spacer{flex:1}.share-link{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.share-link .share-url{font-family:var(--font-mono);font-size:var(--font-size-xs);max-width:var(--share-url-max-w);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.share-link .error{color:var(--danger);font-size:var(--font-size-xs)}.type-submittal{margin-top:var(--space-4)}.submittal-page{max-width:var(--submittal-w);padding:var(--space-4) var(--space-6);margin:0 auto}.submittal-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);display:flex}.submittal-bar .spacer{flex:1}.submittal{gap:var(--space-4);flex-direction:column;display:flex}.submittal-head{align-items:flex-start;gap:var(--space-6);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-strong);flex-wrap:wrap;display:flex}.submittal-head>div:first-child{flex:1;min-width:0}.submittal-title{font-size:var(--submittal-title-size);margin:0}.submittal-designator{font-weight:600}.submittal-sub,.submittal-project{font-size:var(--font-size-sm)}.submittal-part{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.submittal-part .spec-part-number{font-size:var(--submittal-part-size)}.submittal-section .spec-h{margin-top:0}.submittal-picks th{text-align:left;color:var(--text-muted);font-weight:500}.submittal-docs{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.submittal-docs li{align-items:baseline;gap:var(--space-3);display:flex}.public-app{background:var(--bg);min-height:100vh;color:var(--text);flex-direction:column;display:flex}.public-header{height:var(--header-h)}.public-main{padding:var(--public-main-pad) var(--space-6);flex:1}.public-missing{text-align:center;font-size:var(--font-size-lg)}@media print{.header,.nav,.subnav,.submittal-bar,.fixture-links,.field-header{display:none!important}.app,.public-app,.field-app{min-height:0;display:block}.main,.public-main,.field-main{padding:0;overflow:visible}.submittal-page{max-width:none;color:var(--text);background:var(--bg);margin:0;padding:0}.submittal-head{border-bottom-color:var(--border-strong)}.submittal a{color:var(--text);text-decoration:none}.submittal-section{break-inside:avoid}}
