:root{--c-bg:#f5f7fa;--c-surface:#fff;--c-surface-2:#f0f3f7;--c-border:#d9e0e8;--c-border-strong:#b8c2ce;--c-text:#1e2a36;--c-text-dim:#5b6b7b;--c-text-faint:#93a1b0;--c-primary:#1f6feb;--c-primary-hover:#185bc4;--c-primary-soft:#e3edfd;--c-draft:#b45309;--c-draft-bg:#fef3c7;--c-review:#1d4ed8;--c-review-bg:#dbeafe;--c-published:#15803d;--c-published-bg:#dcfce7;--c-archived:#4b5563;--c-archived-bg:#e5e7eb;--c-req:#1f6feb;--c-req-bg:#1f6feb;--c-opt:#1f6feb;--c-out:#7c3aed;--c-out-bg:#ede9fe;--c-tbd:#dc2626;--c-tbd-bg:#fee2e2;--c-na:#c3ccd6;--c-critical:#dc2626;--c-error:#ea580c;--c-warning:#d97706;--c-conflict:#a855f7;--c-dirty:#f59e0b;--shadow-1:0 1px 3px #14212e17;--shadow-2:0 6px 24px #14212e24;--radius:8px;--radius-sm:5px;--topbar-h:52px;--font:"Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;--mono:"Cascadia Code", "Consolas", monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--c-text);background:var(--c-bg);font-size:14px}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:13px}h1,h2,h3{margin:0}.btn{border-radius:var(--radius-sm);border:1px solid var(--c-border-strong);background:var(--c-surface);color:var(--c-text);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--c-surface-2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--c-primary-hover)}.btn-danger{border-color:var(--c-critical);color:var(--c-critical)}.btn-sm{padding:4px 10px;font-size:12px}.field{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.field label{color:var(--c-text-dim);font-size:12px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-text);padding:7px 10px}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--c-primary-soft);border-color:var(--c-primary)}.field-row{gap:10px;display:flex}.field-row .field{flex:1}.badge{letter-spacing:.4px;text-transform:uppercase;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.badge-draft{background:var(--c-draft-bg);color:var(--c-draft)}.badge-review{background:var(--c-review-bg);color:var(--c-review)}.badge-published{background:var(--c-published-bg);color:var(--c-published)}.badge-archived{background:var(--c-archived-bg);color:var(--c-archived)}.chip{border-radius:999px;align-items:center;gap:3px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-flex}.chip-critical{background:var(--c-tbd-bg);color:var(--c-critical)}.chip-error{color:var(--c-error);background:#ffedd5}.chip-warning{background:var(--c-draft-bg);color:var(--c-warning)}.chip-ok{background:var(--c-published-bg);color:var(--c-published)}.login-page{background:linear-gradient(150deg,#eef3fa 0%,#dde7f3 100%);justify-content:center;align-items:center;height:100%;display:flex}.login-card{background:var(--c-surface);border:1px solid var(--c-border);width:360px;box-shadow:var(--shadow-2);border-radius:12px;padding:32px}.login-logo{color:var(--c-primary);margin-bottom:4px;font-size:26px;font-weight:800}.login-sub{color:var(--c-text-dim);margin-bottom:24px;font-size:13px}.login-error{background:var(--c-tbd-bg);color:var(--c-critical);border-radius:var(--radius-sm);margin-bottom:12px;padding:8px 12px;font-size:13px}.login-hint{color:var(--c-text-faint);text-align:center;margin-top:16px;font-size:12px}.shell{flex-direction:column;height:100%;display:flex}.topbar{height:var(--topbar-h);background:var(--c-surface);border-bottom:1px solid var(--c-border);box-shadow:var(--shadow-1);z-index:20;flex:none;align-items:center;gap:18px;padding:0 16px;display:flex}.topbar-logo{color:var(--c-primary);letter-spacing:-.3px;font-size:19px;font-weight:800}.topbar-menu-toggle{align-items:center;gap:5px;display:inline-flex}.topbar-spacer{flex:1}.topbar select{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);padding:5px 8px;font-size:13px}.topbar-company{color:var(--c-text-dim);align-items:center;gap:6px;font-size:13px;display:flex}.topbar-user{color:var(--c-text-dim);align-items:center;gap:8px;font-size:13px;display:flex}.avatar{background:var(--c-primary-soft);width:30px;height:30px;color:var(--c-primary);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.shell-body{flex:1;min-height:0;display:flex;position:relative}.sidenav{width:var(--sidenav-width,216px);background:var(--c-surface);border-right:1px solid var(--c-border);flex:none;padding:14px 10px;overflow-y:auto}.shell-nav-divider{z-index:4;cursor:col-resize;touch-action:none;outline:none;flex:0 0 10px;margin:0 -5px;position:relative}.shell-nav-divider:before{content:"";background:0 0;transition:background .15s,box-shadow .15s;position:absolute;inset:0 4px}.shell-nav-divider>span{border:1px solid var(--c-border-strong);background:radial-gradient(circle, var(--c-text-faint) 1px, transparent 1.5px) center / 4px 6px, var(--c-surface);width:8px;height:42px;box-shadow:var(--shadow-1);border-radius:5px;margin-left:1px;display:block;position:sticky;top:46%}.shell-nav-divider:hover:before,.shell-nav-divider:focus-visible:before,.shell-body.is-resizing-nav .shell-nav-divider:before{background:var(--c-primary);box-shadow:0 0 0 2px var(--c-primary-soft)}.shell-body.nav-collapsed .sidenav,.shell-body.nav-collapsed .shell-nav-divider{display:none}.sidenav-group{margin-bottom:18px}.sidenav-group-title{text-transform:uppercase;letter-spacing:.7px;color:var(--c-text-faint);padding:0 10px 6px;font-size:11px;font-weight:700}.sidenav a{border-radius:var(--radius-sm);color:var(--c-text-dim);margin-bottom:1px;padding:7px 10px;font-size:13.5px;text-decoration:none;display:block}.sidenav a:hover{background:var(--c-surface-2);color:var(--c-text)}.sidenav a.active{background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}@media (width<=900px){.shell-body:not(.nav-collapsed) .sidenav{z-index:14;width:min(var(--sidenav-width,216px), calc(100vw - 48px));box-shadow:var(--shadow-2);position:absolute;inset:0 auto 0 0}.shell-nav-divider{display:none}.topbar{gap:9px;padding:0 10px}.topbar-user>span{display:none}}@media (width<=560px){.topbar-menu-toggle>span:last-child,.topbar-company>span,.topbar-logo{display:none}}.page{padding:20px 24px}.page-header{align-items:center;gap:14px;margin-bottom:18px;display:flex}.page-title{font-size:20px;font-weight:700}.placeholder{text-align:center;max-width:420px;color:var(--c-text-dim);margin:60px auto}.placeholder-icon{margin-bottom:12px;font-size:42px}.placeholder h2{color:var(--c-text);margin-bottom:8px;font-size:18px}.table-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-1);overflow:hidden}.data-table{border-collapse:collapse;width:100%;font-size:13.5px}.data-table th{text-align:left;background:var(--c-surface-2);color:var(--c-text-dim);text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--c-border);padding:10px 14px;font-size:12px}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.data-table th.sortable:hover{color:var(--c-text)}.data-table td{border-bottom:1px solid var(--c-border);padding:10px 14px}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.clickable{cursor:pointer}.data-table tbody tr.clickable:hover{background:var(--c-primary-soft)}.code-text{font-family:var(--mono);font-size:12.5px}.irsaliye-no{color:var(--c-text);font-weight:700}.ws{flex-direction:column;height:100%;min-height:0;display:flex}.ws-header{background:var(--c-surface);border-bottom:1px solid var(--c-border);flex:none;padding:12px 18px 10px}.ws-title-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;display:flex}.ws-title{font-size:17px;font-weight:700}.ws-version{color:var(--c-text-dim);font-weight:600}.ws-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ws-dirty-info{color:var(--c-warning);margin-left:6px;font-size:12px;font-weight:600}.readonly-banner{background:var(--c-published-bg);color:var(--c-published);border-bottom:1px solid var(--c-border);padding:8px 18px;font-size:13px;font-weight:600}.readonly-banner.archived{background:var(--c-archived-bg);color:var(--c-archived)}.readonly-banner.review{background:var(--c-review-bg);color:var(--c-review)}.ws-main{flex:1;min-height:0;display:flex}.ws-grid-wrap{background:var(--c-surface);flex:1;min-width:0;overflow:auto}.matrix-table{border-collapse:separate;border-spacing:0;font-size:13px}.matrix-table th,.matrix-table td{border-bottom:1px solid var(--c-border);border-right:1px solid var(--c-border)}.matrix-table thead th{z-index:5;background:var(--c-surface-2);text-align:center;vertical-align:bottom;min-width:74px;padding:8px 6px;position:sticky;top:0}.matrix-table thead th.tree-head{z-index:6;text-align:left;min-width:240px;padding-left:12px;left:0}.col-code{font-size:12.5px;font-weight:700}.col-name{color:var(--c-text-dim);margin-top:2px;font-size:10.5px;font-weight:400;display:block}.col-gate{color:var(--c-published);margin-left:3px}.tree-cell{z-index:4;background:var(--c-surface);white-space:nowrap;text-overflow:ellipsis;min-width:240px;max-width:320px;padding:5px 8px 5px 6px;position:sticky;left:0;overflow:hidden}.tree-row-inner{align-items:center;gap:5px;display:flex}.tree-toggle{cursor:pointer;width:18px;height:18px;color:var(--c-text-dim);background:0 0;border:none;flex:0 0 18px;padding:0;font-size:10px}.tree-toggle.leaf{visibility:hidden}.node-type-tag{background:var(--c-surface-2);color:var(--c-text-faint);border-radius:4px;flex:none;padding:1px 5px;font-size:9.5px;font-weight:700}.node-code{font-family:var(--mono);font-size:12px;font-weight:600}.node-name{color:var(--c-text-dim);text-overflow:ellipsis;overflow:hidden}.mx-cell{text-align:center;cursor:pointer;background:var(--c-surface);-webkit-user-select:none;user-select:none;min-width:74px;height:34px;padding:0;position:relative}.mx-cell:hover{background:var(--c-primary-soft)}.mx-cell.selected{outline:2px solid var(--c-primary);outline-offset:-2px}.mx-cell.readonly{cursor:default}.mx-cell.val-critical{box-shadow:inset 3px 0 0 var(--c-critical)}.mx-cell.val-error{box-shadow:inset 3px 0 0 var(--c-error)}.mx-cell.val-warning{box-shadow:inset 3px 0 0 var(--c-warning)}.mx-cell.conflict{outline:2px solid var(--c-conflict);outline-offset:-2px}.cell-token{border-radius:4px;justify-content:center;align-items:center;min-width:26px;height:20px;padding:0 6px;font-size:11.5px;font-weight:700;line-height:1;display:inline-flex}.tok-R{background:var(--c-req-bg);color:#fff}.tok-O{color:var(--c-opt);border:1.5px solid var(--c-opt);background:0 0}.tok-D{background:var(--c-out-bg);color:var(--c-out);border:1px solid var(--c-out)}.tok-TBD{background:var(--c-tbd-bg);color:var(--c-tbd);border:1px solid var(--c-tbd)}.tok-NA{color:var(--c-na);background:0 0;font-weight:600}.tok-empty{color:var(--c-na)}.mx-cell.inherited .cell-token{opacity:.45}.inherit-arrow{color:var(--c-text-faint);margin-left:2px;font-size:10px}.override-corner{border-style:solid;border-width:0 8px 8px 0;border-color:transparent var(--c-primary) transparent transparent;width:0;height:0;position:absolute;top:0;right:0}.dirty-dot{background:var(--c-dirty);border-radius:50%;width:7px;height:7px;position:absolute;top:3px;left:3px}.side-panel{background:var(--c-surface);border-left:1px solid var(--c-border);flex:none;width:300px;padding:14px 16px;overflow-y:auto}.side-panel h3{margin-bottom:4px;font-size:14px}.side-panel-sub{color:var(--c-text-dim);margin-bottom:14px;font-size:12px}.side-panel-empty{color:var(--c-text-faint);text-align:center;margin-top:48px;font-size:13px}.side-panel-actions{flex-direction:column;gap:8px;margin-top:14px;display:flex}.inherit-info{border-radius:var(--radius-sm);background:var(--c-surface-2);color:var(--c-text-dim);margin-bottom:12px;padding:6px 10px;font-size:12px}.bottom-panel{border-top:1px solid var(--c-border);background:var(--c-surface);flex-direction:column;flex:none;height:220px;display:flex}.tab-bar{border-bottom:1px solid var(--c-border);flex:none;gap:2px;padding:0 12px;display:flex}.tab-bar button{color:var(--c-text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:9px 14px;font-size:13px;font-weight:600}.tab-bar button.active{color:var(--c-primary);border-bottom-color:var(--c-primary)}.tab-body{flex:1;padding:10px 16px;overflow-y:auto}.val-item{border-radius:var(--radius-sm);cursor:pointer;align-items:baseline;gap:8px;padding:6px 8px;font-size:13px;display:flex}.val-item:hover{background:var(--c-surface-2)}.val-code{font-family:var(--mono);flex:none;font-size:11.5px;font-weight:700}.val-empty{color:var(--c-text-faint);padding:12px 4px;font-size:13px}.log-item{border-bottom:1px solid var(--c-surface-2);padding:7px 4px;font-size:13px}.log-meta{color:var(--c-text-faint);font-size:11.5px}.task-item{border-bottom:1px solid var(--c-surface-2);align-items:center;gap:10px;padding:8px 4px;font-size:13px;display:flex}.task-status{border-radius:999px;flex:none;padding:2px 8px;font-size:10.5px;font-weight:700}.task-Open{background:var(--c-tbd-bg);color:var(--c-critical)}.task-InProgress{background:var(--c-review-bg);color:var(--c-review)}.task-Done{background:var(--c-published-bg);color:var(--c-published)}.task-desc{color:var(--c-text-dim);font-size:12px}.modal-backdrop{z-index:100;background:#0f192373;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--c-surface);width:640px;max-width:94vw;max-height:84vh;box-shadow:var(--shadow-2);border-radius:10px;flex-direction:column;display:flex}.modal-header{border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.modal-header h3{font-size:15px}.modal-close{cursor:pointer;color:var(--c-text-dim);background:0 0;border:none;font-size:18px}.modal-body{padding:16px 20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--c-border);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.import-summary{gap:8px;margin:12px 0;display:flex}.import-row-changed{background:var(--c-published-bg)}.import-row-error{background:var(--c-tbd-bg)}.rfq-import-modal{width:min(1180px,96vw);max-height:92vh}.rfq-import-tabs{border-bottom:1px solid var(--c-border);gap:4px;margin-bottom:14px;display:flex}.rfq-import-tabs button{color:var(--c-text-dim);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px}.rfq-import-tabs button.active{border-bottom-color:var(--c-primary);color:var(--c-primary);font-weight:600}.rfq-import-paste-area{resize:vertical;white-space:pre;width:100%;font-family:Consolas,monospace}.rfq-import-actions{justify-content:space-between;align-items:center;gap:12px;margin-top:6px;display:flex}.rfq-import-file-box{border:2px dashed var(--c-border-strong);border-radius:var(--radius);text-align:center;gap:8px;padding:22px;display:grid}.rfq-import-file-box input{margin:4px auto 0}.rfq-import-preview-wrap{border:1px solid var(--c-border);border-radius:var(--radius);max-height:44vh;overflow:auto}.rfq-import-preview-wrap .data-table{margin:0}.rfq-import-error{color:var(--c-critical);margin-top:3px;font-size:11px}.rfq-import-warning{color:var(--c-review);margin-top:3px;font-size:11px}.pager{align-items:center;gap:10px;padding:10px 4px 4px;font-size:12.5px;display:flex}.cad-dropzone{border:2px dashed var(--c-border-strong);border-radius:var(--radius);text-align:center;color:var(--c-text-dim);background:var(--c-surface);margin-bottom:16px;padding:18px;font-size:13px;transition:border-color .12s,background .12s}.cad-dropzone.dragover{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary)}.cad-layout{align-items:flex-start;gap:16px;display:flex}.cad-table-wrap{flex:1;min-width:0}.data-table tbody tr.cad-row-active{background:var(--c-primary-soft)}.data-table tbody tr.cad-row-clickable{cursor:pointer}.data-table tbody tr.cad-row-clickable:focus-visible{outline:2px solid var(--c-primary);outline-offset:-2px}.kind-badge{font-family:var(--mono);letter-spacing:.3px;background:var(--c-surface-2);color:var(--c-text-dim);border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.kind-STEP{background:var(--c-published-bg);color:var(--c-published)}.kind-DXF{background:var(--c-review-bg);color:var(--c-review)}.kind-DFT{background:var(--c-surface-2);color:var(--c-text-dim)}.kind-DWG{background:var(--c-review-bg);color:var(--c-review)}.kind-SLDPRT,.kind-SLDASM{background:var(--c-out-bg);color:var(--c-out)}.kind-PDF{background:var(--c-draft-bg);color:var(--c-draft)}.cad-status{border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.cad-status-Uploaded{background:var(--c-surface-2);color:var(--c-text-dim)}.cad-status-Linked{background:var(--c-review-bg);color:var(--c-review)}.cad-status-Processing{background:var(--c-draft-bg);color:var(--c-draft)}.cad-status-Processed{background:var(--c-published-bg);color:var(--c-published)}.cad-status-Failed{background:var(--c-tbd-bg);color:var(--c-critical)}.bom-panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);width:420px;box-shadow:var(--shadow-1);flex:none;max-height:70vh;padding:12px 14px;overflow-y:auto}.bom-panel-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.bom-panel-header h3{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.bom-panel-info{color:var(--c-text-dim);padding:12px 4px;font-size:13px}.bom-panel-error{background:var(--c-tbd-bg);color:var(--c-critical);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px}.bom-tree{font-size:13px}.bom-row{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:6px;padding:4px;display:flex;overflow:hidden}.bom-row:hover{background:var(--c-surface-2)}.bom-row.assembly .bom-label{font-weight:700}.bom-icon{flex:none}.bom-label{text-overflow:ellipsis;overflow:hidden}.bom-qty{color:var(--c-text-dim);flex:none;font-weight:600}.bom-meta{color:var(--c-text-faint);flex:none;font-size:11.5px}.tree-picker{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);max-height:260px;padding:6px;overflow-y:auto}.tree-pick-row{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;padding:4px 6px;display:flex;overflow:hidden}.tree-pick-row:hover{background:var(--c-surface-2)}.tree-pick-row.selected{background:var(--c-primary-soft)}.tree-pick-row input[type=radio]{flex:none;margin:0}.ptree-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-1);padding:8px;overflow:hidden}.ptree-row{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:8px;padding:5px 8px;display:flex}.ptree-row:hover{background:var(--c-surface-2)}.ptree-row .node-name{flex:0 auto}.ptree-actions{align-items:center;gap:6px;margin-left:auto;padding-left:12px;display:none}.ptree-row:hover .ptree-actions{display:inline-flex}.badge-s-draft{color:#4b5563;background:#e5e7eb}.badge-s-received,.badge-s-open{color:#1d4ed8;background:#dbeafe}.badge-s-quoting,.badge-s-confirmed{color:#4338ca;background:#e0e7ff}.badge-s-quoted,.badge-s-sent{color:#b45309;background:#fef3c7}.badge-s-won,.badge-s-accepted,.badge-s-ready{color:#15803d;background:#dcfce7}.badge-s-lost,.badge-s-rejected{color:#dc2626;background:#fee2e2}.badge-s-cancelled{color:#374151;background:#d1d5db}.badge-s-inproduction{color:#7c3aed;background:#ede9fe}.badge-s-shipped{color:#0f766e;background:#ccfbf1}.badge-s-closed{color:#475569;background:#e2e8f0}.badge-s-expired{color:#9d174d;background:#fce7f3}.rev-badge{background:var(--c-primary-soft);color:var(--c-primary);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:10.5px;font-weight:700;display:inline-block}.rev-badge-lg{padding:2px 9px;font-size:12px}.filter-chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.filter-chip{border:1px solid var(--c-border-strong);background:var(--c-surface);color:var(--c-text-dim);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600;transition:background .12s,color .12s,border-color .12s}.filter-chip:hover{background:var(--c-surface-2)}.filter-chip.active{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.search-form{align-items:center;gap:6px;display:flex}.search-input{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);width:240px;color:var(--c-text);padding:6px 10px}.search-input:focus{outline:2px solid var(--c-primary-soft);border-color:var(--c-primary)}.detail-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);box-shadow:var(--shadow-1);margin-bottom:16px;padding:16px 18px}.detail-card-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.detail-card-head h3{font-size:14.5px}.detail-card .data-table{border:1px solid var(--c-border);border-radius:var(--radius-sm)}.detail-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 18px;font-size:13.5px;display:grid}.detail-label{text-transform:uppercase;letter-spacing:.4px;color:var(--c-text-faint);margin-bottom:2px;font-size:11px;font-weight:700;display:block}.inline-input{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);width:100%;color:var(--c-text);padding:5px 8px;font-size:13px}.inline-input:focus{outline:2px solid var(--c-primary-soft);border-color:var(--c-primary)}.inline-input.num{text-align:right}.line-actions{white-space:nowrap}.inline-lines-table td{padding:6px 8px}.rfq-modal-lines-head{justify-content:space-between;align-items:center;margin:14px 0 8px;display:flex}.rfq-modal-lines-head label{color:var(--c-text-dim);font-size:12px;font-weight:600}.attachment-dropzone{border:1px dashed var(--c-border-strong);border-radius:var(--radius-sm);text-align:center;color:var(--c-text-dim);background:var(--c-surface-2);margin-bottom:12px;padding:14px;transition:border-color .12s,background .12s}.cad-pdf-panel{width:min(600px,45vw);max-height:calc(100vh - 92px);position:sticky;top:72px}.cad-pdf-panel-body{padding-top:4px}@media (width<=1100px){.cad-layout{flex-direction:column}.cad-table-wrap,.bom-panel,.cad-pdf-panel{width:100%}.bom-panel,.cad-pdf-panel{max-height:none;position:static}}.reconstruction-modal{width:min(680px,100vw - 32px)}.reconstruction-status-card{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px;padding:12px 14px;display:flex}.reconstruction-status-card span{color:var(--c-text-dim);font-size:13px}.reconstruction-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin-top:16px;display:grid}.reconstruction-progress{text-align:center;color:var(--c-text-dim);padding:20px 0}.reconstruction-output-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.reconstruction-warnings{color:var(--c-text-dim);margin:14px 0 0;padding-left:20px;font-size:13px}.reconstruction-bends{border-top:1px solid var(--c-border);margin-top:16px;padding-top:14px}.reconstruction-bends-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:10px;display:flex}.reconstruction-bends-header p{color:var(--c-text-dim);margin:3px 0 0;font-size:12px}.dxf-bend-editor{border:1px solid var(--c-border);background:#fff;border-radius:8px;margin:12px 0;overflow:hidden}.dxf-bend-toolbar{border-bottom:1px solid var(--c-border);background:var(--c-surface-2);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.dxf-bend-toolbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:flex}.segmented-control{gap:2px;display:inline-flex}.segmented-control button{border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text-dim);cursor:pointer;padding:5px 9px}.segmented-control button:first-child{border-radius:6px 0 0 6px}.segmented-control button:last-child{border-radius:0 6px 6px 0}.segmented-control button.active{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary)}.dxf-bend-editor>svg{cursor:crosshair;touch-action:none;width:100%;height:360px;padding:12px;display:block}.dxf-bend-editor>svg.dxf-tool-select{cursor:default}.dxf-bend-editor>svg.dxf-tool-measure{cursor:crosshair}.dxf-bend-editor>svg.disabled{cursor:default}.user-bend-line{cursor:pointer;pointer-events:bounding-box}.dxf-tool-select .user-bend-line{cursor:grab}.dxf-tool-select .user-bend-line:active{cursor:grabbing}.user-bend-line line{stroke:#2563eb;stroke-width:1.8px;stroke-dasharray:7 4;vector-effect:non-scaling-stroke}.user-bend-line.selected line{stroke:#f59e0b;stroke-width:2.6px}.user-bend-line.selected text{fill:#b45309}.dxf-measure-line{stroke:#dc2626;stroke-width:2px;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.dxf-measure-point{fill:#fff;stroke:#dc2626;stroke-width:2px;vector-effect:non-scaling-stroke;pointer-events:none}.dxf-measure-result{color:#b91c1c;margin-left:auto;font-size:12px}.user-bend-line text{fill:#1d4ed8;paint-order:stroke;stroke:#fff;stroke-width:3px;font-size:10px;font-weight:700}.reconstruction-bend-row{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:8px;grid-template-columns:1.5fr .8fr .7fr 1fr .7fr auto;align-items:end;gap:8px;margin-top:8px;padding:10px;display:grid}.reconstruction-bend-summary{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:9px 11px;font-size:12px;display:flex}.reconstruction-bend-summary>span:not(.faint){background:var(--c-primary-soft);color:var(--c-primary);border-radius:999px;padding:4px 7px;font-weight:700}@media (width<=640px){.reconstruction-grid{grid-template-columns:1fr}.reconstruction-bend-row{grid-template-columns:1fr 1fr}.dxf-bend-toolbar{flex-direction:column;align-items:stretch}.dxf-bend-toolbar-actions{justify-content:flex-start}.dxf-bend-editor>svg{height:260px}}.attachment-dropzone.is-over{border-color:var(--c-primary);background:var(--c-primary-soft)}.attachment-table-wrap{overflow-x:auto}.attachment-tree-table{min-width:920px}.attachment-workspace{min-width:0}.attachment-workspace.has-preview{grid-template-columns:minmax(580px,1fr) minmax(380px,.8fr);align-items:start;gap:14px;display:grid}.attachment-tree-table tbody tr[tabindex]{cursor:pointer}.attachment-tree-table tbody tr.selected td{background:var(--c-review-bg)}.attachment-tree-table tbody tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--c-primary)}.attachment-tree-table tbody tr[tabindex]:focus-visible{outline:2px solid var(--c-primary);outline-offset:-2px}.attachment-preview-panel{border:1px solid var(--c-border);background:var(--c-surface);border-radius:8px;min-width:0;max-height:calc(100vh - 92px);position:sticky;top:72px;overflow:auto}.attachment-preview-head{border-bottom:1px solid var(--c-border);justify-content:space-between;gap:10px;padding:12px 14px;display:flex}.attachment-preview-head>div{min-width:0}.attachment-preview-head strong{overflow-wrap:anywhere;display:block}.attachment-preview-body{padding:12px}.attachment-empty{padding:10px 2px}.attachment-tree-source td{background:var(--c-surface-2);color:var(--c-text-dim);font-weight:700}.attachment-tree-folder td{background:color-mix(in srgb, var(--c-surface-2) 55%, transparent);font-weight:600}.attachment-tree-toggle{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:5px;padding:0;display:inline-flex}.attachment-tree-toggle:disabled{cursor:default;opacity:1}.attachment-tree-toggle-inline{flex:0 0 16px}.attachment-tree-chevron{width:14px;color:var(--c-text-faint);text-align:center;display:inline-block}.attachment-tree-file-row{align-items:center;gap:3px;display:inline-flex}.attachment-actions{text-align:right}.attachment-file-link{color:var(--c-primary);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.attachment-file-link:hover{text-decoration:underline}.attachment-badge{background:var(--c-primary-soft);color:var(--c-primary);white-space:nowrap;border-radius:999px;margin-left:7px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-block}@media (width<=1180px){.attachment-workspace.has-preview{grid-template-columns:1fr}.attachment-preview-panel{max-height:none;position:static}}.totals-wrap{justify-content:flex-end;margin-top:14px;display:flex}.totals-panel{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2);min-width:300px;padding:10px 14px;font-size:13.5px}.totals-row{color:var(--c-text-dim);justify-content:space-between;gap:24px;padding:4px 0;display:flex}.totals-row.grand{border-top:1px solid var(--c-border-strong);color:var(--c-text);margin-top:6px;padding-top:8px;font-size:15px;font-weight:800}.notes-area{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-text);resize:vertical;padding:8px 10px}.notes-area:focus{outline:2px solid var(--c-primary-soft);border-color:var(--c-primary)}.print-area{display:none}@media print{.topbar,.sidenav,.screen-only,.toast,.modal-backdrop{display:none!important}.shell,.shell-body,.main-content{height:auto!important;display:block!important;overflow:visible!important}body{background:#fff}.print-area{color:#111;padding:24px;font-size:12.5px;display:block}.print-header{border-bottom:2px solid #111;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:12px;display:flex}.print-logo{letter-spacing:-.4px;font-size:26px;font-weight:800}.print-doc-title{text-align:right;font-size:16px;font-weight:800}.print-doc-no{font-size:13px;font-weight:600;font-family:var(--mono);margin-top:4px}.print-meta{border-collapse:collapse;margin-bottom:16px}.print-meta td{padding:3px 18px 3px 0}.print-meta td:nth-child(odd){color:#444;font-weight:700}.print-table{border-collapse:collapse;width:100%;margin-bottom:12px}.print-table th,.print-table td{text-align:left;border:1px solid #999;padding:5px 8px}.print-table th{text-transform:uppercase;background:#eee;font-size:11px}.print-table .num{text-align:right}.print-totals{flex-direction:column;align-items:flex-end;gap:2px;margin-bottom:18px;display:flex}.print-totals>div{justify-content:space-between;width:280px;padding:2px 0;display:flex}.print-totals .grand{border-top:2px solid #111;margin-top:4px;padding-top:6px;font-size:14px;font-weight:800}.print-terms p{margin:4px 0}}.badge-w-draft{color:#4b5563;background:#e5e7eb}.badge-w-released{color:#1d4ed8;background:#dbeafe}.badge-w-inprogress{color:#7c3aed;background:#ede9fe}.badge-w-completed{color:#15803d;background:#dcfce7}.badge-w-cancelled{color:#374151;background:#d1d5db}.badge-o-pending{color:#4b5563;background:#e5e7eb}.badge-o-started{color:#7c3aed;background:#ede9fe}.badge-o-paused{color:#b45309;background:#fef3c7}.badge-o-completed{color:#15803d;background:#dcfce7}.badge-o-skipped{color:#475569;background:#e2e8f0}.outsource-tag{letter-spacing:.4px;background:var(--c-out-bg);color:var(--c-out);border:1px solid var(--c-out);vertical-align:middle;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.mbom-stage-tag{color:#0f766e;vertical-align:middle;white-space:nowrap;background:#ccfbf1;border:1px solid #99f6e4;border-radius:4px;margin-left:6px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.mbom-actual-tag{color:#6d28d9;vertical-align:middle;white-space:nowrap;background:#ede9fe;border-radius:999px;margin-left:4px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.capture-node{border:1px solid var(--c-border);border-radius:8px;margin-bottom:10px;padding:12px}.capture-node-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.capture-badge{border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.capture-badge-ok{color:#15803d;background:#dcfce7}.capture-badge-dev{color:#b45309;background:#fef3c7}.capture-badge-wait{color:#4b5563;background:#e5e7eb}.capture-order-diff{color:#b45309;font-weight:700}.wo-snapshot-table td{vertical-align:top}.wo-snapshot-subline{margin-top:3px;font-size:11px}.wo-snapshot-empty{text-align:center;padding:20px}.wo-stage-inputs{gap:6px;display:grid}.wo-stage-input{line-height:1.45}.wo-input-kind{white-space:nowrap;border-radius:999px;margin-right:6px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-block}.wo-input-kind-item{color:#0369a1;background:#e0f2fe}.wo-input-kind-wip{color:#6d28d9;background:#ede9fe}.wo-progress-cell{white-space:nowrap;align-items:center;gap:8px;display:flex}.wo-progress{background:var(--c-border);border-radius:999px;flex:none;width:90px;height:6px;overflow:hidden}.wo-progress-fill{background:var(--c-primary);border-radius:999px;height:100%;transition:width .25s}.op-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.queue-toolbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.queue-toolbar select{min-width:260px}.queue-refresh{color:var(--c-text-faint);font-size:12px}.shopfloor-table td{padding:14px 12px;font-size:15px}.shopfloor-table .btn{padding:10px 18px;font-size:15px}.shopfloor-table .badge{padding:4px 12px;font-size:12.5px}.muted{color:var(--c-text-dim)}.faint{color:var(--c-text-faint)}.spinner{text-align:center;color:var(--c-text-dim);padding:40px}.toast{background:var(--c-text);color:#fff;border-radius:var(--radius);box-shadow:var(--shadow-2);z-index:200;padding:10px 18px;font-size:13px;position:fixed;bottom:20px;right:20px}.badge-l-instock{color:#15803d;background:#dcfce7}.badge-l-shipped{color:#0f766e;background:#ccfbf1}.badge-l-cancelled{color:#374151;background:#d1d5db}.qty-positive{color:#15803d;font-weight:600}.qty-negative{color:#dc2626;font-weight:600}.trace-chain{flex-wrap:wrap;align-items:center;gap:14px;padding:4px 2px;display:flex}.trace-step{flex-direction:column;gap:2px;min-width:120px;display:flex}.trace-arrow{color:var(--c-text-faint);flex:none;font-size:18px}@media print{.lot-label{color:#111;box-sizing:border-box;page-break-inside:avoid;border:1.5px solid #111;border-radius:3mm;flex-direction:column;align-items:center;gap:2.5mm;width:100mm;height:100mm;padding:5mm 6mm;display:flex}.lot-label-head{letter-spacing:-.3px;border-bottom:1.5px solid #111;align-self:stretch;padding-bottom:2mm;font-size:15px;font-weight:800}.lot-label-qr svg{width:32mm;height:32mm;display:block}.lot-label-qr-fallback{width:32mm;height:32mm;font-family:var(--mono);text-align:center;word-break:break-all;box-sizing:border-box;border:1px dashed #999;justify-content:center;align-items:center;padding:2mm;font-size:8px;display:flex}.lot-label-no{font-family:var(--mono);letter-spacing:.5px;font-size:23px;font-weight:800}.lot-label-product{text-align:center;font-size:12.5px}.lot-label-product .lot-label-code{font-family:var(--mono);font-weight:700}.lot-label-meta{border-top:1px solid #999;justify-content:space-between;align-self:stretch;margin-top:auto;padding-top:2mm;font-size:12px;font-weight:600;display:flex}}.op-label{color:#111;box-sizing:border-box;page-break-inside:avoid;background:#fff;border:1.5px solid #111;border-radius:3mm;flex-direction:column;gap:2mm;width:100mm;height:60mm;margin:0 auto;padding:4mm 5mm;display:flex;overflow:hidden}.op-label-head{letter-spacing:-.3px;border-bottom:1.5px solid #111;align-self:stretch;padding-bottom:1.5mm;font-size:14px;font-weight:800}.op-label-body{flex:1;align-items:center;gap:5mm;min-height:0;display:flex}.op-label-fields{flex-direction:column;flex:1;gap:1.8mm;min-width:0;display:flex}.op-label-qr{flex:none}.op-label-qr svg{width:28mm;height:28mm;display:block}.op-label-qr-fallback{width:28mm;height:28mm;font-family:var(--mono);text-align:center;word-break:break-all;box-sizing:border-box;border:1px dashed #999;justify-content:center;align-items:center;padding:1.5mm;font-size:7px;display:flex}.op-label-row{justify-content:space-between;gap:4mm;font-size:11px;display:flex}.op-label-key{color:#444;flex:none;font-weight:700}.op-label-val{text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.op-label-val .code-text{font-family:var(--mono);font-weight:700}.op-print-root{display:none}@media print{body:has(.op-print-root)>#root{display:none!important}.op-print-root{display:block}}.package-label-workspace{grid-template-columns:minmax(320px,1fr) minmax(260px,1fr);align-items:start;gap:18px;display:grid}.package-label-form,.package-label-preview-panel{padding:16px}.package-label-form{flex-direction:column;gap:12px;display:flex}.package-label-preview-panel{flex-direction:column;align-items:center;gap:14px;display:flex}.package-label-print-hint{text-align:center;max-width:50mm;font-size:11px}.package-label-approval{align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.package-label-approval input{width:17px;height:17px}.package-label-display-option{align-self:center}.package-label-empty{text-align:center;align-items:center;min-height:50mm;display:flex}.package-label-history-head{margin-top:22px}.package-label-history-head h2{margin:0;font-size:16px}.package-label-form-note{font-size:12px;line-height:1.45}.package-label-list-detail{margin-top:18px;padding:16px}.package-label-list-toolbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.package-label-list-toolbar h3{margin:0 0 4px}.package-label-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.package-label-weight-editor{align-items:center;gap:6px;min-width:170px;display:flex}.package-label-weight-editor input{width:90px}.package-label-selected-row{background:#eff6ff}.package-label-status{border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.package-label-status-ready{color:#15803d;background:#dcfce7}.package-label-status-pendingweight{color:#b45309;background:#fef3c7}.package-label-status-voided{color:#4b5563;background:#e5e7eb}.package-label-table-empty{text-align:center;padding:24px!important}.package-label-legacy{margin-top:18px;padding:14px 16px}.package-label-legacy summary{cursor:pointer;font-weight:700}.package-label-legacy .table-card{margin-top:12px}.package-label-card{box-sizing:border-box;color:#111;page:package-label;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;border:.35mm solid #111;width:50mm;height:50mm;font-family:Arial,Helvetica,sans-serif;position:relative;overflow:hidden}.package-label-supplier{text-align:center;border:.25mm solid #111;border-radius:1.2mm;min-width:8mm;padding:.5mm 1mm;font-size:8pt;font-weight:700;position:absolute;top:2.5mm;left:2.5mm}.package-label-date{flex-direction:column;align-items:flex-end;font-size:6.5pt;font-weight:600;line-height:1.15;display:flex;position:absolute;top:2.2mm;right:2.5mm}.package-label-package-no{text-align:center;border:.25mm solid #777;border-radius:1mm;min-width:6mm;padding:.35mm .8mm;font-size:7pt;font-weight:700;position:absolute;top:7mm;left:50%;transform:translate(-50%)}.package-label-qr{width:18mm;height:18mm;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.package-label-qr div,.package-label-qr svg{shape-rendering:crispedges;width:18mm;height:18mm;display:block}.package-label-qr>span{color:#555;font-size:5.5pt}.package-label-part{white-space:nowrap;text-overflow:ellipsis;text-align:center;font-size:7pt;font-weight:700;line-height:1.2;position:absolute;top:35mm;left:2.5mm;right:2.5mm;overflow:hidden}.package-label-weight{text-align:center;border:.25mm solid #555;border-radius:1.2mm;min-width:13mm;padding:.7mm 1mm;font-size:7pt;font-weight:700;position:absolute;bottom:2.5mm;left:2.5mm}.package-label-checked{border:.25mm solid #777;border-radius:1.2mm;align-items:center;gap:1mm;padding:.6mm 1mm;font-size:6.5pt;font-weight:700;display:flex;position:absolute;bottom:2.5mm;right:2.5mm}.package-label-checked span{box-sizing:border-box;color:#111;background:#fff;border:.3mm solid #111;border-radius:50%;justify-content:center;align-items:center;width:4.5mm;height:4.5mm;display:inline-flex}.package-label-checked span svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:3.2mm;height:3.2mm}.package-label-print-root{display:none}@page package-label{size:50mm 50mm;margin:0}@media print{:is(html:has(.package-label-print-root),body:has(.package-label-print-root)){margin:0!important;padding:0!important}body:has(.package-label-print-root)>#root{display:none!important}.package-label-print-root{width:50mm;margin:0;padding:0;display:block}.package-label-print-root .package-label-card{break-after:page;page-break-after:always;border:none;width:50mm;height:50mm;margin:0}.package-label-print-root .package-label-card:last-child{break-after:auto;page-break-after:auto}.package-label-print-root .package-label-checked span{color:#111!important;background:#fff!important;border-color:#111!important}}@media (width<=820px){.package-label-workspace{grid-template-columns:1fr}.package-label-list-toolbar{flex-direction:column}.package-label-actions{justify-content:flex-start}}.badge-sh-draft{color:#4b5563;background:#e5e7eb}.badge-sh-shipped{color:#1d4ed8;background:#dbeafe}.badge-sh-delivered{color:#15803d;background:#dcfce7}.badge-sh-cancelled{color:#374151;background:#d1d5db}.badge-ed-draft{color:#4b5563;background:#e5e7eb}.badge-ed-queued{color:#b45309;background:#fef3c7}.badge-ed-sent{color:#0f766e;background:#ccfbf1}.badge-ed-accepted{color:#15803d;background:#dcfce7}.badge-ed-rejected{color:#dc2626;background:#fee2e2}.badge-ed-failed{color:#374151;background:#d1d5db}.badge-ed-cancelled,.badge-inv-draft{color:#4b5563;background:#e5e7eb}.badge-inv-issued{color:#1d4ed8;background:#dbeafe}.badge-inv-partiallypaid{color:#b45309;background:#fef3c7}.badge-inv-paid{color:#15803d;background:#dcfce7}.badge-inv-cancelled{color:#374151;background:#d1d5db}.acct-balance-debt{color:#dc2626;font-weight:700}.acct-balance-credit{color:#15803d;font-weight:700}.acct-balance-zero{color:var(--c-text-faint);font-weight:600}.edoc-provider{color:var(--c-text-dim);font-size:12px}@media print{.print-parties{justify-content:space-between;gap:24px;margin-bottom:16px;display:flex}.print-party{border:1px solid #999;border-radius:4px;flex:1;padding:8px 10px}.print-party h4{text-transform:uppercase;letter-spacing:.4px;color:#444;border-bottom:1px solid #ccc;margin:0 0 6px;padding-bottom:3px;font-size:11px}.print-party-line{margin:2px 0;font-size:12px}.print-sign-row{justify-content:space-between;gap:40px;margin-top:40px;display:flex}.print-sign-box{text-align:center;color:#444;border-top:1px solid #111;flex:1;padding-top:6px;font-size:11px}.print-amount-words{margin:10px 0 16px;font-size:12px;font-style:italic}}.ptree-layout{align-items:flex-start;gap:16px;display:flex}.ptree-layout .ptree-card{flex:46%;min-width:340px}.ptree-select{cursor:pointer;text-align:left;font:inherit;color:inherit;background:0 0;border:none;align-items:center;gap:8px;margin:0;padding:0;display:inline-flex}.ptree-row.selected{background:var(--c-primary-soft);box-shadow:inset 3px 0 0 var(--c-primary)}.insight-panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);min-width:380px;box-shadow:var(--shadow-1);flex:54%;padding:16px 18px}.insight-panel-empty{color:var(--c-text-faint);text-align:center;padding:48px 18px;font-size:13px}.insight-head{border-bottom:1px solid var(--c-border);align-items:center;gap:8px;margin-bottom:6px;padding-bottom:12px;display:flex}.insight-head .node-name{font-weight:600}.insight-section{border-bottom:1px solid var(--c-border);padding:14px 0}.insight-section:last-child{border-bottom:none}.insight-section-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.insight-section-head h3{text-transform:uppercase;letter-spacing:.4px;color:var(--c-text-dim);margin:0;font-size:13px}.geo-grid{grid-template-columns:1fr 1fr;gap:8px 18px;display:grid}.geo-metric{flex-direction:column;gap:2px;padding:4px 0;display:flex}.geo-metric-label{color:var(--c-text-faint);font-size:11.5px}.geo-metric-value{color:var(--c-text);font-size:13px;font-weight:500}.dxf-metrics{grid-template-columns:1fr 1fr;gap:8px 18px;display:grid}.dxf-analysis-modal{width:min(780px,100vw - 32px)}.dxf-preview{border:1px solid var(--c-border);background:#fff;border-radius:8px;margin-bottom:16px;overflow:hidden}.dxf-preview>a{cursor:zoom-in;justify-content:center;align-items:center;min-height:280px;padding:16px;display:flex}.dxf-preview img{object-fit:contain;width:100%;height:280px;display:block}.dxf-preview-legend{border-top:1px solid var(--c-border);background:var(--c-surface-2);color:var(--c-text-dim);align-items:center;gap:16px;padding:8px 12px;font-size:11.5px;display:flex}.dxf-preview-legend span{align-items:center;gap:6px;display:inline-flex}.dxf-preview-legend small{color:var(--c-text-faint);margin-left:auto}.dxf-preview-legend i{border-top:2px solid #1f2937;width:20px;height:0}.dxf-preview-legend .dxf-preview-bend{border-color:#dc2626;border-top-style:dashed}@media (width<=640px){.dxf-preview>a{min-height:210px}.dxf-preview img{height:210px}.dxf-preview-legend small{display:none}}.suggest-list{margin:6px 0 0;padding:0;list-style:none}.suggest-list li{border-top:1px dashed var(--c-border);align-items:baseline;gap:8px;padding:6px 0;font-size:13px;display:flex}.suggest-list li:first-child{border-top:none}.suggest-seq{background:var(--c-primary-soft);min-width:24px;height:20px;color:var(--c-primary);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:600;display:inline-flex}.suggest-name{font-weight:600}.suggest-reason{color:var(--c-text-dim);text-align:right;margin-left:auto;font-size:12px}.notice-ok,.notice-warn{border-radius:var(--radius-sm);margin:8px 0;padding:8px 12px;font-size:13px}.notice-ok{background:var(--c-published-bg);color:var(--c-published)}.notice-warn{background:var(--c-draft-bg);color:var(--c-draft)}.notice-warn ul{margin:6px 0 0;padding-left:18px}.notice-warn li{margin:2px 0}.rate-select{max-width:240px;font-size:12.5px}.cost-table{font-size:12px}.cost-table th,.cost-table td{white-space:nowrap;padding:5px 8px}.cost-table tfoot td{border-top:2px solid var(--c-border-strong);background:var(--c-surface-2)}.cost-table tr.cost-grand td{background:var(--c-primary-soft);color:var(--c-primary);font-size:13px}.form-subheading{text-transform:uppercase;letter-spacing:.04em;color:var(--c-text-dim);border-top:1px solid var(--c-border);margin:14px 0 8px;padding-top:10px;font-size:12px;font-weight:600}.time-summary{flex-wrap:wrap;gap:16px;margin-top:10px;display:flex}.time-summary .time-summary-item{flex-direction:column;gap:2px;display:flex}.time-summary .time-summary-label{color:var(--c-text-dim);font-size:11px}.time-summary .time-summary-value{color:var(--c-primary);font-size:15px;font-weight:700}.wc-load-table{margin-top:10px;font-size:12px}.wc-load-table th,.wc-load-table td{white-space:nowrap;padding:5px 8px}.cad-chip{letter-spacing:.3px;background:var(--c-primary-soft);color:var(--c-primary);vertical-align:middle;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:10.5px;font-weight:700;display:inline-block}.cad-hint{color:var(--c-text-faint);margin-top:2px;font-size:11px}.cad-price-summary{flex-wrap:wrap;align-items:stretch;gap:14px;margin-top:12px;display:flex}.cad-breakdown{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2);flex:320px;padding:8px 12px}.cad-breakdown>div{justify-content:space-between;gap:12px;padding:3px 0;font-size:12.5px;display:flex}.cad-breakdown-grand{border-top:1px solid var(--c-border-strong);margin-top:4px;font-weight:700;padding-top:6px!important}.cad-unit-price{border-radius:var(--radius-sm);background:var(--c-primary-soft);min-width:200px;color:var(--c-primary);flex-direction:column;flex:none;justify-content:center;gap:4px;padding:12px 16px;display:flex}.cad-unit-price-label{font-size:12px;font-weight:600}.cad-unit-price-value{font-size:22px;font-weight:700}.cad-price-selection-workspace{grid-template-columns:minmax(340px,.8fr) minmax(480px,1.2fr);align-items:stretch;gap:14px;display:grid}.cad-price-model-preview{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface-2);min-height:360px;overflow:hidden}@media (width<=900px){.cad-price-selection-workspace{grid-template-columns:1fr}}.badge-manufactured{color:#1d4ed8;background:#dbeafe}.badge-purchased{color:#b45309;background:#fef3c7}.source-notice{color:#b45309;border-radius:var(--radius-sm);background:#fef3c7;margin:4px 0 10px;padding:8px 12px;font-size:13px}.purchase-price{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:4px 0;display:flex}.purchase-price-view,.purchase-price-edit{align-items:center;gap:8px;display:flex}.purchase-price-edit input{width:120px}.material-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:2px 0;display:flex}.material-current{align-items:center;gap:8px;min-width:0;display:flex}.material-weight{text-align:right;flex-direction:column;flex:none;gap:2px;display:flex}.material-chip{font-family:var(--mono);letter-spacing:.3px;background:var(--c-primary-soft);color:var(--c-primary);border-radius:999px;flex:none;padding:2px 8px;font-size:11.5px;font-weight:700;display:inline-block}.material-unassigned{background:var(--c-draft-bg);color:var(--c-draft);border-radius:var(--radius-sm);margin:4px 0;padding:8px 12px;font-size:13px}.material-editor{flex-direction:column;gap:8px;display:flex}.material-hint{color:var(--c-text-faint);margin:0;font-size:11.5px}.material-check{cursor:pointer;align-items:center;gap:8px;font-size:13px;display:flex}.material-actions{gap:8px;margin-top:2px;display:flex}.material-tag{font-family:var(--mono);background:var(--c-primary-soft);color:var(--c-primary);border-radius:4px;flex:none;padding:1px 6px;font-size:10.5px;font-weight:700;display:inline-block}.material-tag-none{color:var(--c-text-faint);flex:none;font-size:10.5px;font-style:italic}.route-editor{flex-direction:column;gap:10px;display:flex}.route-src{letter-spacing:.4px;text-transform:uppercase;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.route-src-library{background:var(--c-published-bg);color:var(--c-published);box-shadow:inset 0 0 0 1px var(--c-published)}.route-src-rule{background:var(--c-surface-2);color:var(--c-text-dim)}.route-src-none{background:var(--c-tbd-bg);color:var(--c-tbd)}.route-master{color:var(--c-text-dim);flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:12.5px;display:flex}.route-master-hint{color:var(--c-published);font-size:11.5px;font-weight:600}.route-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.route-step{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.route-seq{background:var(--c-primary-soft);min-width:26px;height:20px;color:var(--c-primary);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.route-step-code{flex:none;font-weight:700}.route-step-name{flex:auto;min-width:0;font-weight:600}.route-outsource{color:var(--c-text-dim);cursor:pointer;background:var(--c-surface-2);border-radius:999px;flex:none;align-items:center;gap:5px;padding:2px 8px;font-size:11.5px;display:inline-flex}.route-outsource.on{background:var(--c-out-bg);color:var(--c-out);font-weight:600}.route-outsource input{accent-color:var(--c-out)}.route-step-actions{flex:none;gap:4px;display:inline-flex}.route-btn{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);width:24px;height:24px;color:var(--c-text-dim);cursor:pointer;justify-content:center;align-items:center;font-size:13px;line-height:1;display:inline-flex}.route-btn:hover:not(:disabled){background:var(--c-surface-2);color:var(--c-text)}.route-btn:disabled{opacity:.4;cursor:not-allowed}.route-btn-remove{color:var(--c-critical);border-color:var(--c-border-strong)}.route-btn-remove:hover:not(:disabled){background:var(--c-tbd-bg);border-color:var(--c-critical)}.route-add{align-items:center;gap:8px;display:flex}.route-add select{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-text);flex:auto;padding:6px 10px;font-size:12.5px}.route-actions{gap:8px;margin-top:2px;display:flex}.scope-selector{flex-direction:column;gap:4px;display:flex}.scope-options{flex-wrap:wrap;gap:6px;display:flex}.scope-option{border:1px solid var(--c-border-strong);color:var(--c-text-dim);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;display:inline-flex}.scope-option.active{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}.scope-option input{accent-color:var(--c-primary)}.scope-help{color:var(--c-text-faint);margin:0;font-size:11.5px}.data-table tbody tr.pm-row{cursor:pointer}.data-table tbody tr.pm-row:hover{background:var(--c-surface-2)}.data-table tbody tr.pm-row.selected{background:var(--c-primary-soft);box-shadow:inset 3px 0 0 var(--c-primary)}.pm-inline-edit{align-items:center;gap:8px;display:flex}.pm-inline-edit input{flex:1}.pm-usage{flex-direction:column;gap:12px;display:flex}.pm-usage-root{color:var(--c-text-dim);margin-bottom:4px;font-size:12px;font-weight:600}.pm-usage-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.pm-usage-row{border:1px solid var(--c-border);border-radius:var(--radius-sm,6px);background:var(--c-surface);align-items:center;gap:8px;padding:4px 8px;font-size:13px;display:flex}.viewer3d-box{border:1px solid var(--c-border);border-radius:var(--radius);background:linear-gradient(160deg,#eef2f7 0%,#e2e8f0 100%);width:100%;height:380px;position:relative;overflow:hidden}.viewer3d-msg{color:var(--c-text-dim);text-align:center;justify-content:center;align-items:center;padding:0 20px;font-size:13px;display:flex;position:absolute;inset:0}.viewer3d-overlay{border:1px solid var(--c-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);background:#ffffffe6;flex-wrap:wrap;align-items:center;gap:12px;max-width:calc(100% - 20px);padding:6px 10px;font-size:12px;display:flex;position:absolute;bottom:10px;left:10px}.viewer3d-toggle{cursor:pointer;align-items:center;gap:6px;font-weight:600;display:inline-flex}.viewer3d-legend{color:var(--c-text-dim);align-items:center;gap:6px;display:inline-flex}.viewer3d-swatch{background:#f59e0b;border-radius:3px;width:12px;height:12px;display:inline-block}.viewer3d-diag{border-radius:var(--radius-sm);color:#7a5b12;text-overflow:ellipsis;background:#fef3c7f5;border:1px solid #f0c36d;padding:5px 9px;font-size:11px;position:absolute;top:8px;left:8px;right:8px;overflow:hidden}.viewer3d-diag code{font-family:var(--mono);background:#0000000f;border-radius:3px;padding:0 3px}.viewer3d-btn{border:1px solid var(--c-border-strong);border-radius:var(--radius-sm);background:var(--c-surface);cursor:pointer;padding:3px 10px;font-size:11.5px;font-weight:700}.viewer3d-btn:hover:not(:disabled){background:var(--c-surface-2)}.viewer3d-btn.active{color:#b91c1c;background:#fee2e2;border-color:#dc2626}.viewer3d-btn:disabled{opacity:.45;cursor:not-allowed}.viewer3d-measurement{z-index:2;border-radius:var(--radius-sm);color:#991b1b;white-space:nowrap;max-width:calc(100% - 24px);box-shadow:var(--shadow-1);background:#fef2f2f0;border:1px solid #fca5a5;padding:7px 11px;font-size:12px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.viewer3d-backdrop{z-index:900;background:#0f17208c;position:fixed;inset:0}.viewer3d-expanded{z-index:901;box-shadow:var(--shadow-2);background:linear-gradient(160deg,#eef2f7 0%,#e2e8f0 100%);height:auto!important;position:fixed!important;inset:28px!important}.wcl-note{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--radius-sm);color:var(--c-text-dim);margin-bottom:14px;padding:10px 12px;font-size:12.5px}.wcl-table td{vertical-align:middle}.wcl-table tr.wcl-busy td{background:var(--c-surface)}.wcl-table tr.wcl-idle td{background:var(--c-surface-2);color:var(--c-text-dim)}.wcl-table tr.wcl-over td{border-left:3px solid var(--c-critical)}.wcl-table tr.wcl-over td:first-child{box-shadow:inset 3px 0 #0000}.wcl-type-badge{background:var(--c-primary-soft);color:var(--c-primary);vertical-align:middle;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px;font-weight:700;display:inline-block}.wcl-remaining{flex-direction:column;align-items:flex-end;line-height:1.25;display:inline-flex}.wcl-remaining .faint{font-size:11.5px}.wcl-util{align-items:center;gap:10px;display:flex}.wcl-track{background:var(--c-border);border-radius:999px;flex:1;min-width:90px;height:10px;overflow:hidden}.wcl-fill{border-radius:999px;height:100%;transition:width .25s}.wcl-fill-green{background:var(--c-published)}.wcl-fill-amber{background:var(--c-warning)}.wcl-fill-red{background:var(--c-critical)}.wcl-util-meta{white-space:nowrap;flex-direction:column;align-items:flex-end;line-height:1.2;display:flex}.wcl-util-pct{font-size:13px;font-weight:700}.wcl-util-over{color:var(--c-critical)}.wcl-util-meta .faint{font-size:11.5px}.planner-metrics{grid-template-columns:repeat(5,minmax(140px,1fr));gap:10px;margin-bottom:14px;display:grid}.rfq-detail-tabs{border-bottom:1px solid var(--c-border);gap:4px;margin:4px 0 16px;display:flex}.rfq-detail-tabs button{color:var(--c-text-dim);font:inherit;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;padding:10px 16px;font-weight:600}.rfq-detail-tabs button.active{border-bottom-color:var(--c-primary);color:var(--c-primary)}.rfq-cad-card{min-height:280px}.rfq-cad-toolbar{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:8px;grid-template-columns:minmax(220px,1.4fr) minmax(150px,.8fr) auto auto;align-items:end;gap:12px;margin-bottom:14px;padding:14px;display:grid}.rfq-cad-toolbar label:not(.rfq-cad-primary){color:var(--c-text-dim);gap:5px;font-size:12px;font-weight:600;display:grid}.rfq-cad-toolbar select,.rfq-cad-candidates select,.rfq-cad-card td select{max-width:230px}.rfq-cad-primary{white-space:nowrap;align-items:center;gap:7px;min-height:35px;display:flex}.rfq-cad-toolbar-actions{gap:8px;display:flex}.rfq-cad-candidates,.rfq-cad-message{background:var(--c-review-bg);border-radius:6px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;display:flex}.rfq-cad-empty{border:1px dashed var(--c-border);color:var(--c-text-dim);text-align:center;border-radius:8px;padding:34px}.rfq-cad-workspace{align-items:start}.resizable-split-pane{grid-template-columns:minmax(0, var(--split-left)) 12px minmax(0, calc(100% - var(--split-left) - 12px));min-width:0;display:grid}.split-pane-left,.split-pane-right{min-width:0}.resizable-split-pane.is-left-collapsed{grid-template-columns:0 12px minmax(0,1fr)}.resizable-split-pane.is-left-collapsed>.split-pane-left{visibility:hidden;overflow:hidden}.split-pane-divider{cursor:col-resize;touch-action:none;outline:none;align-self:stretch;min-height:280px;position:relative}.split-pane-divider:before{content:"";background:var(--c-border);border-radius:3px;transition:background .15s,box-shadow .15s;position:absolute;inset:0 5px}.split-pane-divider>span{border:1px solid var(--c-border-strong);background:radial-gradient(circle, var(--c-text-faint) 1px, transparent 1.5px) center / 4px 6px, var(--c-surface);width:8px;height:42px;box-shadow:var(--shadow-1);border-radius:5px;margin-left:2px;display:block;position:sticky;top:46%}.split-pane-divider:hover:before,.split-pane-divider:focus-visible:before,.resizable-split-pane.is-dragging .split-pane-divider:before{background:var(--c-primary);box-shadow:0 0 0 2px var(--c-primary-soft)}.rfq-cad-list{min-width:0}.rfq-cad-list tbody tr{cursor:pointer}.rfq-cad-list tbody tr:focus-visible{outline:2px solid var(--c-primary);outline-offset:-2px}.rfq-cad-list tr.selected td{background:var(--c-review-bg)}.rfq-cad-list tr.selected td:first-child{box-shadow:inset 3px 0 0 var(--c-primary)}.rfq-cad-link-fields{gap:5px;min-width:150px;display:grid}.rfq-cad-link-fields select{width:100%}.rfq-cad-link-fields label{align-items:center;gap:5px;font-size:12px;display:flex}.rfq-cad-actions{flex-wrap:wrap;gap:5px;min-width:225px;display:flex}.rfq-cad-workbench{border:1px solid var(--c-border);background:var(--c-surface);max-height:calc(100vh - 92px);box-shadow:var(--shadow-sm);border-radius:9px;position:sticky;top:72px;overflow:auto}.rfq-cad-workbench-head{border-bottom:1px solid var(--c-border);justify-content:space-between;gap:12px;padding:14px 16px;display:flex}.rfq-cad-workbench-head>div{min-width:0}.rfq-cad-workbench-head strong{overflow-wrap:anywhere;margin:7px 0 3px;display:block}.rfq-cad-workbench-head-actions{flex:none;gap:6px;display:flex}.rfq-line-binding-workspace.no-selection{display:block}.rfq-line-binding-workspace.no-selection>.split-pane-divider,.rfq-line-binding-workspace.no-selection>.split-pane-right{display:none}.rfq-line-binding-workspace.no-selection.is-left-collapsed>.split-pane-left{visibility:visible;display:block;overflow:visible}.rfq-line-table-wrap{min-width:0;overflow-x:auto}.rfq-line-technical-panel{min-width:0;max-height:calc(100dvh - var(--topbar-h) - 92px);border:1px solid var(--c-border);background:var(--c-surface);box-shadow:var(--shadow-1);border-radius:9px;flex-direction:column;display:flex;position:sticky;top:72px;overflow:hidden}.rfq-line-technical-panel>.rfq-cad-workbench-head{flex:none}.rfq-cad-workbench.is-focus-mode,.rfq-line-technical-panel.is-focus-mode{z-index:850;max-height:none;box-shadow:var(--shadow-2);border-radius:10px;position:fixed;inset:8px;overflow:auto}.is-focus-mode>.rfq-cad-workbench-head{z-index:12;background:var(--c-surface);position:sticky;top:0}.is-focus-mode .viewer3d{min-height:calc(100vh - 220px)}.is-focus-mode .blob-file-preview iframe{height:calc(100vh - 230px);min-height:620px}.is-focus-mode .assembly-matrix-table-wrap{max-height:calc(100vh - 330px)}.rfq-line-technical-panel.is-focus-mode{overflow:hidden}.rfq-line-technical-body{scrollbar-gutter:stable;flex:auto;gap:12px;min-height:0;padding:12px;display:grid;overflow-y:auto}.technical-upload-box,.technical-new-part-box{border:1px dashed var(--c-border-strong);background:var(--c-surface-subtle);border-radius:8px;gap:10px;padding:12px;display:grid}.technical-upload-box{grid-template-columns:minmax(0,1fr) auto;align-items:center}.technical-new-part-box{border-style:solid}.technical-new-part-box .field-row{margin:0}.technical-candidate-list{gap:6px;max-height:260px;display:grid;overflow:auto}.technical-candidate-list>button{border:1px solid var(--c-border);background:var(--c-surface);color:inherit;text-align:left;cursor:pointer;border-radius:6px;grid-template-columns:auto minmax(0,1fr) auto;gap:3px 8px;padding:9px 10px;display:grid}.technical-candidate-list>button:hover{border-color:var(--c-primary)}.technical-candidate-list>button.selected{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:inset 3px 0 0 var(--c-primary)}.technical-candidate-list>button.technical-load-more{text-align:center;width:100%;color:var(--c-primary);font-weight:700;display:block}.technical-candidate-list small{color:var(--c-text-dim);grid-column:1/-1}.technical-confidence{color:var(--c-primary);font-weight:700}.technical-selection-summary{gap:10px;display:grid}.line-technical-workspace{gap:12px;min-width:0;display:grid}.line-technical-summary{border:1px solid var(--c-border);background:var(--c-surface-subtle);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:11px;display:grid}.line-technical-summary>div{overflow-wrap:anywhere;min-width:0}.line-technical-file-picker{gap:5px;font-size:12px;font-weight:600;display:grid}.line-technical-file-picker select{width:100%}.line-technical-tabs{margin:0 -12px;padding-left:12px;padding-right:12px}.line-technical-workbody{min-width:0}.line-technical-workbody .viewer3d{min-height:420px}.rfq-line-technical-actions{border-top:1px solid var(--c-border);background:var(--c-surface);flex-wrap:wrap;flex:none;justify-content:flex-end;gap:7px;padding:12px;display:flex}.technical-match-badge{cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;min-height:24px;padding:3px 8px;font-size:12px;font-weight:700;display:inline-flex}.technical-match-badge.status-Unmatched{background:var(--c-archived-bg);color:var(--c-archived)}.technical-match-badge.status-Suggested{background:var(--c-draft-bg);color:var(--c-draft)}.technical-match-badge.status-Confirmed{background:var(--c-published-bg);color:var(--c-published)}.technical-match-badge.status-NotRequired{background:var(--c-review-bg);color:var(--c-review)}@media (width<=1350px){.rfq-line-binding-workspace.has-selection{grid-template-columns:1fr;gap:14px}.rfq-line-binding-workspace.has-selection>.split-pane-divider,.rfq-line-binding-workspace.has-selection.is-left-collapsed>.split-pane-left{display:none}.rfq-line-technical-panel{max-height:none;position:static}}@media (width<=720px){.technical-upload-box,.line-technical-summary{grid-template-columns:1fr}}.rfq-cad-workbench-tabs{border-bottom:1px solid var(--c-border);flex-wrap:wrap;gap:4px;padding:8px 12px 0;display:flex}.rfq-cad-workbench-tabs button{color:var(--c-text-dim);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 12px;font-weight:600}.rfq-cad-workbench-tabs button.active{border-bottom-color:var(--c-primary);color:var(--c-primary)}.rfq-cad-workbench-body{padding:14px}.rfq-cad-workbench-empty{min-height:300px;color:var(--c-text-dim);text-align:center;place-items:center;padding:28px;display:grid}.rfq-cad-workbench-empty.compact{min-height:150px}.rfq-cad-workbench-empty p{max-width:360px;margin:8px 0 0;line-height:1.5}.rfq-cad-workbench-icon{color:var(--c-primary);font-size:42px}.rfq-cad-metrics{margin-top:14px}.cad-matrix-panel{gap:12px;display:grid}.cad-matrix-summary,.cad-matrix-geometry{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;display:grid}.cad-matrix-summary{border:1px solid var(--c-border);background:var(--c-surface-subtle);border-radius:8px;padding:12px}.cad-matrix-summary>div,.cad-matrix-draft-status>div{overflow-wrap:anywhere;min-width:0}.cad-matrix-section{border:1px solid var(--c-border);border-radius:8px;gap:10px;padding:12px;display:grid}.cad-matrix-section-head,.cad-matrix-draft-status{justify-content:space-between;align-items:center;gap:10px;display:flex}.cad-matrix-geometry span{background:var(--c-surface-2);color:var(--c-text-dim);border-radius:6px;padding:7px 9px;font-size:12px}.cad-matrix-geometry strong{color:var(--c-text)}.cad-matrix-actions{flex-wrap:wrap;justify-content:flex-start}.cad-matrix-validation{border:1px solid var(--c-border);background:var(--c-published-bg);border-radius:6px;gap:5px;padding:10px;font-size:12px;display:grid}.cad-matrix-validation.has-critical{border-color:var(--c-critical);background:var(--c-tbd-bg)}.cad-matrix-validation span{font-weight:700}.cad-matrix-link-row{gap:8px;display:flex}.cad-matrix-link-row select{flex:auto;min-width:0}.assembly-matrix-panel{gap:12px;display:grid}.assembly-matrix-head,.assembly-matrix-toolbar,.assembly-matrix-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.assembly-matrix-head>div:first-child{gap:5px;min-width:0;display:grid}.assembly-matrix-head strong{overflow-wrap:anywhere}.assembly-matrix-head-actions,.assembly-matrix-toolbar>div,.assembly-matrix-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.assembly-readiness-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.assembly-readiness-grid>div{border:1px solid var(--c-border);background:var(--c-surface-subtle);border-radius:7px;gap:3px;padding:10px;display:grid}.assembly-readiness-grid .text-danger{color:var(--c-critical)}.assembly-matrix-picker{color:var(--c-text-dim);gap:5px;font-size:12px;display:grid}.assembly-matrix-picker select{width:100%}.assembly-matrix-table-wrap{border:1px solid var(--c-border);border-radius:7px;max-height:520px;overflow:auto}.assembly-matrix-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.assembly-matrix-table th,.assembly-matrix-table td{border-right:1px solid var(--c-border);border-bottom:1px solid var(--c-border);text-align:center;background:var(--c-surface);padding:5px}.assembly-matrix-table thead th{z-index:2;background:var(--c-surface-2);position:sticky;top:0}.assembly-matrix-table th:first-child,.assembly-matrix-table td:first-child{z-index:1;text-align:left;min-width:250px;max-width:340px;position:sticky;left:0}.assembly-matrix-table thead th:first-child{z-index:3;background:var(--c-surface-2)}.assembly-matrix-table td:first-child small{color:var(--c-text-dim);margin-top:2px;display:block}.assembly-matrix-node-cell{cursor:pointer}.assembly-matrix-node-cell:focus-visible{outline:2px solid var(--c-primary);outline-offset:-2px}.assembly-matrix-table tr.preview-selected td:first-child{background:var(--c-primary-soft);box-shadow:inset 3px 0 0 var(--c-primary)}.assembly-matrix-preview-badge{background:var(--c-primary-soft);color:var(--c-primary);vertical-align:middle;border-radius:4px;margin-left:7px;padding:1px 5px;font-size:10px;font-weight:700;display:inline-flex}.assembly-matrix-workspace{min-width:0}.assembly-matrix-workspace.has-preview{grid-template-columns:minmax(0,1fr) minmax(330px,38%);gap:10px;display:grid}.assembly-matrix-inline-preview{border:1px solid var(--c-border);background:var(--c-surface);min-width:0;min-height:520px;box-shadow:var(--shadow-1);border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.assembly-matrix-preview-head{border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;gap:8px;padding:9px 10px;display:flex}.assembly-matrix-preview-head>div{align-items:center;gap:7px;min-width:0;display:flex}.assembly-matrix-preview-head>div:first-child{flex-wrap:wrap}.assembly-matrix-preview-head strong,.assembly-matrix-preview-head small{overflow-wrap:anywhere}.assembly-matrix-preview-head small{color:var(--c-text-dim);flex-basis:100%}.assembly-matrix-preview-viewer{min-height:0;padding:8px;display:grid;overflow:auto}.assembly-matrix-preview-viewer .viewer3d{min-height:430px}.assembly-matrix-preview-help{border-top:1px solid var(--c-border);color:var(--c-text-dim);padding:7px 10px;font-size:11px}.assembly-matrix-preview-backdrop{z-index:950;background:#0f17208c;border:0;position:fixed;inset:0}.assembly-matrix-inline-preview.is-expanded{z-index:951;min-height:0;box-shadow:var(--shadow-2);position:fixed;inset:22px}.assembly-matrix-inline-preview.is-expanded .assembly-matrix-preview-viewer .viewer3d{min-height:calc(100vh - 150px)}.assembly-matrix-cell{width:30px;height:28px;color:var(--c-text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px}.assembly-matrix-cell:hover:not(:disabled){border-color:var(--c-primary);background:var(--c-primary-soft)}.assembly-matrix-cell.required{background:var(--c-primary);color:#fff;font-weight:700}.assembly-matrix-cell:disabled{cursor:default}.assembly-matrix-foot{color:var(--c-text-dim);justify-content:flex-start;font-size:12px}.assembly-matrix-foot .btn{margin-left:auto}@media (width<=720px){.cad-matrix-summary,.cad-matrix-geometry{grid-template-columns:1fr}.cad-matrix-section-head,.cad-matrix-draft-status,.cad-matrix-link-row,.assembly-matrix-head,.assembly-matrix-toolbar{flex-direction:column;align-items:stretch}.assembly-readiness-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.assembly-matrix-workspace.has-preview{grid-template-columns:1fr}.assembly-matrix-foot .btn{margin-left:0}}.rfq-cad-progress{min-height:180px;color:var(--c-text-dim);place-items:center;gap:6px;display:grid}.rfq-cad-panel-actions{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.rfq-cad-bom-tree{overflow-x:auto}.rfq-part-list-summary{margin-bottom:10px}.rfq-cad-part-list{overflow-x:auto}.rfq-cad-part-list .data-table{min-width:820px}.rfq-cad-part-list td{vertical-align:top}.rfq-cad-part-list td small{margin-top:3px;display:block}.cad-part-validation-list .data-table{min-width:1280px}.cad-part-validation-list select{min-width:130px;max-width:220px}.cad-part-validation-list details{margin-top:5px}.cad-decision-lock{margin:8px 0 4px;font-size:12px;display:block}.cad-decision-reason{width:100%;min-width:170px;margin:4px 0 6px;display:block}.cad-item-master-picker{gap:5px;min-width:240px;display:grid}.cad-item-master-search{gap:5px;display:flex}.cad-item-master-search input{width:100%;min-width:0}.cad-item-master-results{border:1px solid var(--c-border);border-radius:var(--radius-sm);max-height:190px;display:grid;overflow-y:auto}.cad-item-master-results button{border:0;border-bottom:1px solid var(--c-border);background:var(--c-surface);color:inherit;text-align:left;cursor:pointer;gap:2px;padding:7px 8px;display:grid}.cad-item-master-results button:last-child{border-bottom:0}.cad-item-master-results button:hover{background:var(--c-primary-soft)}.cad-item-master-results small{color:var(--c-text-muted)}.validation-blocker{color:var(--c-critical)}.technical-release-card{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface-2);margin:10px 0;padding:12px}.technical-release-card.released{border-color:var(--c-published);background:var(--c-published-bg);justify-content:space-between;gap:18px;display:flex}.technical-release-card small{color:var(--c-text-dim);margin-top:3px;display:block}.technical-release-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.technical-release-checks{color:var(--c-text-dim);flex-wrap:wrap;gap:8px 16px;margin-top:10px;font-size:12px;display:flex}.technical-release-checks .ready{color:var(--c-published);font-weight:600}.technical-release-hash{min-width:180px;font-family:var(--mono);font-size:12px}.rfq-material-category{margin-top:18px}.rfq-material-category h4{margin:0 0 3px}.rfq-material-category>p{margin:0 0 8px}.rfq-material-category details{margin-top:5px}.rfq-material-category summary{cursor:pointer}.part-signature{white-space:nowrap;border-radius:999px;padding:2px 7px;font-size:12px;font-weight:700;display:inline-flex}.part-signature.identified{color:#166534;background:#dcfce7}.part-signature.unidentified{color:#92400e;background:#fef3c7}.rfq-cad-file-summary{gap:14px;display:grid}.blob-file-preview{gap:10px;display:grid}.blob-file-preview-actions{align-items:center;gap:8px;display:flex}.blob-file-preview-actions>span{overflow-wrap:anywhere;flex:1;min-width:0}.blob-file-preview iframe{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:6px;width:100%;height:min(680px,100vh - 250px);min-height:460px}.wo-technical-workspace{grid-template-columns:minmax(260px,.42fr) minmax(520px,1fr);gap:14px;min-height:430px;display:grid}.wo-technical-list{flex-direction:column;gap:6px;min-width:0;display:flex}.wo-technical-file{border:1px solid var(--c-border);background:var(--c-surface);width:100%;color:inherit;text-align:left;cursor:pointer;border-radius:7px;grid-template-columns:auto minmax(0,1fr);gap:4px 8px;padding:10px;display:grid}.wo-technical-file:hover{border-color:var(--c-primary)}.wo-technical-file.selected{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:inset 3px 0 0 var(--c-primary)}.wo-technical-file-name{overflow-wrap:anywhere;min-width:0;font-weight:600}.wo-technical-file>.muted{grid-column:2;font-size:12px}.wo-technical-preview{border:1px solid var(--c-border);background:var(--c-surface);border-radius:8px;min-width:0;padding:12px}.wo-technical-preview-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.wo-technical-tabs{flex:none;margin:0}.wo-technical-workspace.compact{grid-template-columns:minmax(220px,.38fr) minmax(420px,1fr)}@media (width<=1050px){.wo-technical-workspace,.wo-technical-workspace.compact{grid-template-columns:1fr}}.machine-queue-workspace{min-width:0}.machine-queue-workspace.has-preview{grid-template-columns:minmax(760px,1.25fr) minmax(520px,.9fr);align-items:start;gap:14px;display:grid}.machine-queue-table-card{min-width:0;overflow-x:auto}.machine-queue-technical-panel{border:1px solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);min-width:0;box-shadow:var(--shadow-1);padding:12px;position:sticky;top:12px}.shopfloor-table tbody tr{cursor:pointer}.shopfloor-table tbody tr.selected-row>td{background:var(--c-primary-soft)}@media (width<=1380px){.machine-queue-workspace.has-preview{grid-template-columns:1fr}.machine-queue-technical-panel{position:static}}.blob-image-preview{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:6px;place-items:center;min-height:320px;padding:16px;display:grid}.blob-image-preview img{object-fit:contain;max-width:100%;max-height:65vh;display:block}.blob-text-preview{border:1px solid var(--c-border);background:var(--c-surface-2);max-height:65vh;color:var(--c-text);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:6px;margin:0;padding:14px;overflow:auto}.file-preview-unavailable{min-height:240px;color:var(--c-text-dim);text-align:center;place-items:center;padding:24px;display:grid}.file-preview-unavailable p{margin:6px 0 0}.workbench-bend-row{border-top:1px solid var(--c-border);grid-template-columns:72px 1fr 1fr 100px 1fr auto;align-items:end;gap:8px;padding:10px 0;display:grid}.workbench-primary-action{width:100%;margin-top:14px}.rfq-cad-result{border:1px solid var(--c-border);border-radius:8px;margin-top:16px;padding:14px}.rfq-bom-row{border-bottom:1px solid var(--c-border);grid-template-columns:18px minmax(140px,30%) minmax(0,1fr) 56px;align-items:start;gap:8px;min-height:38px;padding-top:7px;padding-bottom:7px;padding-right:8px;display:grid}.rfq-bom-row>*{min-width:0}.rfq-bom-row>strong{overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.rfq-bom-row>span:nth-child(3){overflow-wrap:anywhere;word-break:break-word;line-height:1.4}.rfq-bom-row>span:last-child{white-space:nowrap;justify-self:end}@media (width<=1050px){.rfq-cad-toolbar{grid-template-columns:1fr 1fr}.resizable-split-pane{grid-template-columns:1fr;gap:14px}.split-pane-divider,.resizable-split-pane.is-left-collapsed>.split-pane-left{display:none}.rfq-cad-workbench{max-height:none;position:static}}@media (width<=620px){.workbench-bend-row{grid-template-columns:1fr 1fr}.blob-file-preview-actions{flex-wrap:wrap}.blob-file-preview-actions>span{flex-basis:100%}.blob-file-preview iframe{height:70vh;min-height:520px}}.planner-metric{border:1px solid var(--c-border);border-radius:var(--radius-sm);background:var(--c-surface);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.planner-metric span{color:var(--c-text-dim);font-size:12px}.planner-metric strong{font-size:22px}.planner-metric-warning{border-left:3px solid var(--c-warning)}.planner-metric-critical{border-left:3px solid var(--c-critical)}.planner-table-card{margin-bottom:18px}.planner-section-title{border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.planner-section-title>div{flex-direction:column;gap:2px;display:flex}.planner-section-title span{color:var(--c-text-dim);font-size:12px}.planner-load-title{border-bottom:0;padding:0 0 8px}.planner-risk{text-align:center;border-radius:999px;min-width:54px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.planner-risk-normal{color:var(--c-published);background:color-mix(in srgb, var(--c-published) 12%, transparent)}.planner-risk-warning{color:#8a5a00;background:color-mix(in srgb, var(--c-warning) 18%, transparent)}.planner-risk-critical{color:var(--c-critical);background:color-mix(in srgb, var(--c-critical) 12%, transparent)}.planner-order,.planner-date{flex-direction:column;gap:2px;display:flex}.planner-order span,.planner-date small{color:var(--c-text-dim);font-size:11.5px}.planner-date small{color:var(--c-critical)}.planner-suggestion{max-width:330px}@media (width<=1100px){.planner-metrics{grid-template-columns:repeat(2,minmax(140px,1fr))}.planner-table-card{overflow-x:auto}.planner-table{min-width:1050px}}.technical-task-page{background:var(--c-bg);min-height:100vh;padding:12px}.technical-task-body{background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px;min-height:calc(100vh - 90px);margin-top:10px;padding:10px;overflow:auto}.field-shell{color:#17324d;max-width:760px;min-height:100dvh;padding-bottom:calc(82px + env(safe-area-inset-bottom));background:#f3f7f9;margin:0 auto;overflow-x:hidden}.field-header{z-index:20;padding:calc(12px + env(safe-area-inset-top)) 16px 10px;color:#fff;background:#0b4f6c;position:sticky;top:0;box-shadow:0 2px 8px #092f4233}.field-header>div:first-child{flex-direction:column;font-size:1.22rem;display:flex}.field-header small{opacity:.8;font-size:.78rem}.field-header-actions{top:calc(10px + env(safe-area-inset-top));align-items:center;gap:8px;display:flex;position:absolute;right:12px}.field-header button,.field-bottom-nav button,.field-title-row button,.field-lifecycle button,.field-report-form button{border:0;border-radius:12px;min-height:48px;padding:0 14px;font-weight:700}.field-header-actions button{color:#fff;background:#ffffff1f;min-height:38px}.field-online{color:#ffcf70;font-size:.72rem}.field-online.is-online{color:#9ce6b8}.field-work-centers{opacity:.82;margin-top:8px;padding-right:180px;font-size:.78rem}.field-content{min-width:0}.field-page{padding:18px 14px}.field-page h1{margin:0 0 12px;font-size:1.65rem}.field-page h2{margin:5px 0;font-size:1.05rem}.field-bottom-nav{z-index:30;width:min(100%,760px);padding:6px 5px calc(6px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #cfdae0;grid-template-columns:repeat(5,1fr);gap:2px;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -3px 12px #092f421b}.field-bottom-nav a,.field-bottom-nav button{text-align:center;color:#48606e;background:0 0;border:0;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:54px;padding:3px;font-size:.7rem;line-height:1.1;text-decoration:none;display:flex}.field-bottom-nav a.active{color:#0b4f6c;background:#e4f1f5;font-weight:800}.field-bottom-nav span{color:#fff;background:#d34242;border-radius:999px;margin-top:2px;padding:1px 6px}.field-home-actions,.field-card-list{gap:12px;display:grid}.field-home-actions a{color:#0b4f6c;background:#fff;border:1px solid #d6e1e6;border-radius:16px;justify-content:space-between;align-items:center;min-height:76px;padding:0 18px;font-size:1.1rem;font-weight:800;text-decoration:none;display:flex;box-shadow:0 3px 12px #14384a10}.field-home-actions a.field-primary-action{color:#fff;background:#0b7a4b;border-color:#0b7a4b}.field-empty-action{color:#fff;text-align:center;background:#0b7a4b;border-radius:10px;min-height:48px;margin-top:12px;font-weight:800;line-height:48px;text-decoration:none;display:block}.field-inline-fields{grid-template-columns:2fr 1fr;gap:10px;display:grid}.field-inline-fields>label{gap:6px;font-weight:750;display:grid}.field-operation-card,.field-history-card{min-width:0;color:inherit;background:#fff;border:1px solid #d6e1e6;border-radius:16px;padding:15px;text-decoration:none;display:block;box-shadow:0 3px 12px #14384a0d}.field-operation-card h3,.field-history-card h3{overflow-wrap:anywhere;margin:8px 0 2px;font-size:1.25rem}.field-operation-card p{color:#5e7480;margin:0 0 9px}.field-card-top,.field-history-card>div:first-child,.field-title-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.field-card-top span{background:#e6f1f4;border-radius:99px;padding:4px 8px;font-size:.75rem}.field-process{color:#0b4f6c;margin:8px 0;font-weight:750}.field-qty-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.field-qty-grid span{text-align:center;background:#f1f5f7;border-radius:9px;min-width:0;padding:8px 6px;font-size:.72rem}.field-qty-grid b{font-size:1rem;display:block}.field-summary{margin:14px 0}.field-lifecycle{margin-bottom:14px;display:grid}.field-lifecycle button{color:#2a2a20;background:#ffb703;font-size:1rem}.field-report-form{gap:13px;display:grid}.field-report-form>label,.field-photo-section>label{gap:6px;font-weight:750;display:grid}.field-report-form input,.field-report-form select,.field-report-form textarea,.field-photo-section select{box-sizing:border-box;width:100%;min-width:0;min-height:52px;font:inherit;background:#fff;border:1px solid #b9cbd3;border-radius:12px;padding:9px 12px;font-size:1.05rem}.field-report-form input[type=number]{font-size:1.55rem;font-weight:800}.field-check{align-items:center;grid-template-columns:48px 1fr!important}.field-check input{width:32px;height:32px}.field-submit{color:#fff;background:#0b7a4b;margin-top:2px;font-size:1.08rem;box-shadow:0 4px 16px #0b4f6c33;min-height:58px!important}.field-photo-section{gap:10px;display:grid}.field-camera-button{color:#fff;background:#0b4f6c;border-radius:12px;justify-content:center;align-items:center;min-height:56px;display:flex!important}.field-camera-button input{opacity:0;width:1px;height:1px;position:absolute}.field-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.field-photo-grid div{position:relative}.field-photo-grid img{aspect-ratio:4/3;object-fit:cover;border-radius:12px;width:100%}.field-photo-grid button{color:#8d2727;background:#fff;min-height:36px;position:absolute;bottom:8px;right:5px}.field-defects{background:#fff;border-radius:14px;gap:8px;padding:12px;display:grid}.field-defect-row{grid-template-columns:1fr 110px;gap:7px;display:grid}.field-defect-row button{color:#892f2f;background:#fbe5e5}.field-defects>button{color:#0b4f6c;background:#e2eef2}.field-warning,.field-error,.field-update,.field-install-help,.field-empty{border-radius:12px;margin:10px 0;padding:12px}.field-warning{color:#6a4e00;background:#fff3cd}.field-error{color:#8b2222;background:#fde4e4}.field-update{z-index:19;background:#dff2ff;justify-content:space-between;align-items:center;gap:10px;display:flex;position:sticky;top:88px}.field-install-help,.field-empty{color:#445d69;background:#e8f0f3}.field-admin-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;display:grid}.field-admin-check{min-height:40px;display:block}.field-evidence-list{flex-wrap:wrap;gap:8px;display:flex}@media (width<=380px){.field-page{padding-inline:10px}.field-online{display:none}.field-work-centers{padding-right:130px}.field-bottom-nav a,.field-bottom-nav button{font-size:.62rem}.field-qty-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.field-defect-row{grid-template-columns:1fr}}
