:root{--bg:#f7f8fa;--surface:#fff;--border:#e1e4ea;--border-strong:#c9cfd9;--text:#1c2230;--muted:#5a6478;--primary:#2b5fda;--primary-hover:#244fb8;--danger:#c83434;--urgent:#c83434;--high:#e07a1a;--medium:#2b5fda;--low:#6f7a90;--done:#1f8a4f;--in-progress:#b08a14;--waiting:#6f7a90}[data-theme=dark]{--bg:#1c2230;--surface:#0e1117;--border:#2a3243;--border-strong:#3a4556;--text:#f7f8fa;--muted:#a1a9b8;--primary:#5a8fff;--primary-hover:#4b7ee6;--danger:#ff5c5c;--urgent:#ff5c5c;--high:#ff9d4b;--medium:#5a8fff;--low:#8c96a8;--done:#4db87d;--in-progress:#d4a82c;--waiting:#8c96a8}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px}#root{flex-direction:column;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 20px;display:flex}.app-header h1{letter-spacing:-.01em;margin:0;font-size:22px}.subtitle{color:var(--muted);font-size:12px}.build-sha{color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:2px 6px;font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:11px;text-decoration:none}.build-sha:hover{color:var(--text);border-color:var(--border-strong)}.spacer{flex:1}main{flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px 20px;display:flex}button{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--text)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);border-color:var(--primary);color:#fff}button.primary:hover:not(:disabled){background:var(--primary-hover);border-color:var(--primary-hover)}button.active{background:var(--primary);border-color:var(--primary);color:#fff}button.danger{color:var(--danger);border-color:var(--danger)}button.ghost{background:0 0;border-color:#0000}button.ghost:hover:not(:disabled){background:var(--bg);border-color:var(--border-strong)}input,select,textarea{font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);border-radius:6px;min-width:0;padding:5px 8px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}.filters{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filters input[type=text],.filters input:not([type]){flex:1;min-width:220px}.result-count{color:var(--muted);margin-left:auto;font-size:12px}.filter-toggle{display:none}.table-scroll{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex:1;overflow:auto;box-shadow:0 1px 3px #0000000d}.parts-table{border-collapse:separate;border-spacing:0;width:100%;min-width:800px;font-size:13px}.parts-table th,.parts-table td{text-align:left;border-bottom:1px solid var(--border);border-right:1px solid var(--border);white-space:nowrap;padding:12px 14px}.parts-table th:last-child,.parts-table td:last-child{border-right:none}.parts-table td{vertical-align:middle}.parts-table th{background:var(--bg);-webkit-user-select:none;user-select:none;cursor:pointer;z-index:1;border-bottom:2px solid var(--border-strong);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:11px;font-weight:600;transition:color .15s;position:sticky;top:0}.parts-table th:hover{color:var(--text)}.parts-table th.sorted{color:var(--primary)}.parts-table tbody tr{cursor:pointer;transition:background .12s,box-shadow .12s}.parts-table tbody tr:hover{background:var(--bg);box-shadow:inset 0 0 0 1px var(--border-strong)}.parts-table tbody tr:last-child td{border-bottom:none}.parts-table td select{border-radius:4px;padding:4px 8px;font-size:12px;transition:border-color .15s}.parts-table td select:hover{border-color:var(--text)}.mono{font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:12px}.printers-page{padding:0 12px}.printers-summary{flex-wrap:wrap;gap:10px;margin:12px 0 16px;display:flex}.printers-summary-item{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:center;gap:4px;padding:4px 12px;font-size:13px;font-weight:500;display:inline-flex}.printers-table .printers-job{white-space:nowrap;text-overflow:ellipsis;max-width:260px;font-family:ui-monospace,Cascadia Mono,Menlo,Consolas,monospace;font-size:12px;overflow:hidden}.printers-progress{background:var(--border);border-radius:8px;width:140px;height:16px;position:relative;overflow:hidden}.printers-progress-bar{background:linear-gradient(90deg,#2ea043 0%,#36c25b 100%);height:100%;transition:width 1s linear}.printers-progress-label{text-align:center;color:#fff;text-shadow:0 0 2px #0009;font-size:11px;font-weight:600;line-height:16px;position:absolute;top:0;left:0;right:0}.printers-empty{text-align:center;color:var(--muted);padding:32px;font-style:italic}.muted{color:var(--muted)}.printer-cell select{max-width:140px}.printer-cell-pill{margin-top:4px}.printer-pill{background:var(--border);color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;max-width:220px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block;overflow:hidden}.printer-pill-running{color:#1f7a32;background:#2ea0432e}.printer-pill-finish{color:#1f7a32;background:#2ea0431f}.printer-pill-failed{color:#8a2620;background:#dc463c2e}.printer-pill-pause,.printer-pill-prepare{color:#8a5b00;background:#f5af002e}.printer-pill-idle{background:var(--border);color:var(--muted)}.printer-pill-offline,.printer-pill-unknown{color:#555;background:#78787829}[data-theme=dark] .printer-pill-running{color:#5fdc91;background:#4db87d38}[data-theme=dark] .printer-pill-finish{color:#5fdc91;background:#4db87d24}[data-theme=dark] .printer-pill-failed{color:#ff8a8a;background:#ff5c5c38}[data-theme=dark] .printer-pill-pause,[data-theme=dark] .printer-pill-prepare{color:#ffd55a;background:#f5c85038}[data-theme=dark] .printer-pill-idle{background:var(--border);color:var(--muted)}[data-theme=dark] .printer-pill-offline,[data-theme=dark] .printer-pill-unknown{color:#b8bcc7;background:#a0a0a02e}.badge{color:#fff;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block;box-shadow:0 1px 2px #0000001a}.prio-urgent{background:var(--urgent)}.prio-high{background:var(--high)}.prio-medium{background:var(--medium)}.prio-low{background:var(--low)}.status{font-weight:500}.status-done{color:var(--done)}.status-in-progress{color:var(--in-progress)}.status-waiting-for-approval{color:var(--waiting)}.status-not-started{color:var(--text)}.empty{text-align:center;color:var(--muted);padding:32px 16px}.loading,.error{text-align:center;color:var(--muted);padding:32px}.error{color:var(--danger)}.modal-backdrop{z-index:10;background:#141a2673;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border-radius:10px;width:100%;max-width:760px;max-height:90vh;overflow:auto;box-shadow:0 16px 48px #0003}.modal-header{border-bottom:1px solid var(--border);align-items:center;padding:14px 18px;display:flex}.modal-header h2{flex:1;margin:0;font-size:16px}.icon-btn{cursor:pointer;width:28px;height:28px;color:var(--muted);background:0 0;border:none;font-size:22px;line-height:1}.icon-btn:hover{color:var(--text)}.theme-toggle{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;width:32px;height:32px;color:var(--text);border-radius:6px;justify-content:center;align-items:center;padding:0;display:flex}.theme-toggle:hover{border-color:var(--text)}.theme-icon{width:18px;height:18px;display:block}.form-grid{grid-template-columns:1fr 1fr;gap:12px;padding:16px 18px;display:grid}.form-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.form-grid label>input,.form-grid label>select,.form-grid label>textarea{color:var(--text);font-size:14px}.form-grid .span-2{grid-column:span 2}.form-grid label.checkbox{color:var(--text);flex-direction:row;align-items:center;font-size:13px}.form-grid label.editable-field>input,.form-grid label.editable-field>select,.form-grid label.editable-field>textarea{border:2px solid #001f5c;border-radius:6px}.form-grid label.readonly-field{opacity:.6}.form-grid label.readonly-field>input,.form-grid label.readonly-field>select,.form-grid label.readonly-field>textarea{background-color:var(--bg);cursor:not-allowed}.form-grid .drawing-upload-card.readonly-field{opacity:.6}.form-grid label.readonly-field .tag-chips{background-color:var(--bg);cursor:not-allowed}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.people-add{border-bottom:1px solid var(--border);grid-template-columns:1.5fr 1.5fr 1fr auto;gap:8px;padding:14px 18px;display:grid}.people-table{border-collapse:collapse;width:100%}.people-table th,.people-table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 10px}.people-table th{background:var(--bg);font-weight:600}.people-table input,.people-table select{width:100%}.thumb-cell{width:220px;padding:4px 6px!important}.preview-images{align-items:center;gap:8px;display:flex}.thumb{object-fit:cover;background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:6px;width:100px;height:100px;transition:transform .12s,box-shadow .12s;display:block;box-shadow:0 1px 3px #00000014}.thumb:hover{transform:scale(1.05);box-shadow:0 2px 8px #0000001f}.thumb-drawing-wrapper{overflow:hidden}.thumb-placeholder{background:var(--bg);border:1px dashed var(--border-strong);width:100px;height:100px;color:var(--muted);border-radius:6px;justify-content:center;align-items:center;font-size:18px;display:flex}.image-overlay{z-index:10000;cursor:pointer;background:#000000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.image-overlay-content{justify-content:center;align-items:center;max-width:90vw;max-height:90vh;display:flex}.image-overlay-content img{object-fit:contain;border-radius:8px;max-width:100%;max-height:90vh;box-shadow:0 8px 32px #0006}.modal{max-width:980px}.form-with-preview{grid-template-columns:280px 1fr;gap:0;display:grid}.preview-pane{border-right:1px solid var(--border);background:var(--bg);flex-direction:column;gap:12px;padding:16px 18px;transition:background .12s;display:flex}.preview-pane.drag-over{background:#2b5fda14}.preview-pane.drag-over .preview-empty,.preview-pane.drag-over img{border-color:var(--primary);border-style:solid}.preview-pane img{aspect-ratio:1;object-fit:contain;background:var(--surface);border:1px solid var(--border);border-radius:8px;width:100%}.preview-empty{aspect-ratio:1;width:100%;color:var(--muted);background:var(--surface);border:1px dashed var(--border-strong);border-radius:8px;justify-content:center;align-items:center;font-size:13px;display:flex}.preview-actions{flex-direction:column;gap:6px;display:flex}.preview-status{color:var(--muted);word-break:break-word;font-size:12px}.preview-status.error{color:var(--danger)}.preview-status.muted{color:var(--muted)}.form-with-preview .form-grid{border-left:none}.search-toggle{display:none}@media (width<=800px){.form-with-preview{grid-template-columns:1fr}.preview-pane{border-right:none;border-bottom:1px solid var(--border)}.app-header{flex-wrap:wrap;gap:6px;padding:8px 12px}.app-header h1{font-size:18px}.subtitle,.build-sha{display:none}.spacer{flex-basis:100%;order:1}.app-header button{order:2;padding:5px 8px;font-size:12px}.app-header button.primary{flex:100%;order:3}main{padding:12px 8px}.modal-backdrop{align-items:flex-start;padding:12px}.modal{max-width:100%;max-height:95vh}.form-grid{grid-template-columns:1fr;padding:12px}.form-grid .span-2{grid-column:span 1}.parts-table{font-size:12px}.parts-table th,.parts-table td{padding:8px 6px}.filters{flex-flow:wrap;gap:4px}.filters input[type=text],.filters input:not([type]){flex:100%;order:1;min-width:100%;display:none}.filters input.search-expanded{display:block}.filters button.ghost{white-space:nowrap;flex:0 auto;order:2;padding:4px 8px;font-size:11px}.search-toggle{order:0;padding:4px 8px;font-size:14px;display:block}.filter-toggle{order:2;display:block}.result-count{flex:100%;order:3;margin-left:0}.dxf-exporter-body{grid-template-rows:1fr auto;grid-template-columns:1fr}.dxf-exporter-side{border-left:none;border-top:1px solid var(--border);max-height:40vh}.people-add{grid-template-columns:1fr}.printers-progress{width:100px}.tag-filter-bar{gap:4px}.tag-chip-btn{padding:2px 8px;font-size:11px}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.parts-table{min-width:800px}button,.dropdown-trigger,.tag-chip-btn,.icon-btn{min-width:44px;min-height:44px}.app-header button{min-height:36px;min-width:unset}input,select,textarea{min-height:44px}.preset-management-page{padding:12px}.batch-upload-zone{padding:32px 16px}.filter-dropdowns{flex-direction:column;align-items:stretch}.multi-select-dropdown{width:100%}.dropdown-trigger{justify-content:space-between;width:100%;display:flex}}.tag-input{position:relative}.tag-chips{border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;flex-wrap:wrap;align-items:center;gap:4px;min-height:32px;padding:4px 6px;display:flex}.tag-chips:focus-within{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}.tag-chip{color:var(--primary);white-space:nowrap;background:#2b5fda1a;border-radius:999px;align-items:center;gap:2px;padding:2px 4px 2px 8px;font-size:12px;font-weight:500;display:inline-flex}.tag-chip-x{color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0 2px;font-size:14px;line-height:1}.tag-chip-x:hover{background:#2b5fda33}.tag-chip-input{background:0 0;border:none;outline:none;flex:1;min-width:100px;padding:4px 2px}.tag-chip-input:focus{border:none;outline:none}.tag-suggestions{background:var(--surface);border:1px solid var(--border-strong);z-index:5;border-radius:6px;flex-direction:column;gap:2px;max-height:200px;margin-top:2px;padding:4px;display:flex;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 6px 18px #0000001a}.tag-suggestion{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:5px 8px;font-size:13px}.tag-suggestion:hover{background:var(--bg)}.tag-filter-bar{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 0;display:flex}.tag-filter-label{color:var(--muted);margin-right:2px;font-size:12px;font-weight:600}.tag-chip-btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text);border-radius:999px;padding:3px 10px;font-size:12px}.tag-chip-btn:hover{border-color:var(--text)}.tag-chip-btn.on{background:var(--primary);color:#fff;border-color:var(--primary)}.filter-dropdowns{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.multi-select-dropdown{position:relative}.dropdown-trigger{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text);white-space:nowrap;border-radius:6px;padding:6px 12px;font-size:13px}.dropdown-trigger:hover{border-color:var(--text)}.dropdown-trigger.active{background:var(--primary);color:#fff;border-color:var(--primary)}.dropdown-menu{background:var(--surface);border:1px solid var(--border-strong);z-index:10;border-radius:6px;min-width:200px;max-height:300px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto;box-shadow:0 6px 18px #00000026}.dropdown-item{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.dropdown-item:hover{background:var(--bg)}.dropdown-item.has-color:hover{filter:brightness(1.1);background:inherit!important}.dropdown-item input[type=checkbox]{cursor:pointer;width:16px;height:16px;margin:0}.dropdown-item span{flex:1}.tag-chip-static{color:var(--primary);white-space:nowrap;background:#2b5fda1f;border:1px solid #2b5fda33;border-radius:999px;margin-bottom:2px;margin-right:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.tags-cell{max-width:220px;line-height:1.5;white-space:normal!important}.part-timeline{border-top:1px solid var(--border);background:var(--bg);max-height:300px;padding:16px 18px;overflow-y:auto}.part-timeline-left{border-top:1px solid var(--border);max-height:400px;margin-top:12px;padding-top:12px;overflow-y:auto}.timeline-header{color:var(--text);margin:0 0 12px;font-size:14px;font-weight:600}.timeline-entries{flex-direction:column;gap:12px;display:flex}.timeline-entry{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:13px}.timeline-timestamp{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:500}.timeline-changes{flex-direction:column;gap:4px;display:flex}.timeline-change{line-height:1.5}.timeline-field{color:var(--text);font-weight:600}.timeline-old{color:var(--danger);text-decoration:line-through}.timeline-new{color:var(--done);font-weight:500}.batch-upload-modal{max-width:980px;min-height:400px}.batch-upload-zone{flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:48px 32px;transition:background .12s;display:flex}.batch-upload-zone.drag-over{background:#2b5fda14}.batch-upload-message{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.upload-icon{width:64px;height:64px;color:var(--muted)}.batch-upload-message p{color:var(--muted);margin:0;font-size:14px}.batch-progress{border-bottom:1px solid var(--border);background:var(--bg);flex-direction:column;gap:8px;padding:16px 18px;display:flex}.batch-progress span{color:var(--muted);font-size:13px;font-weight:600}.batch-progress-bar{background:var(--border);border-radius:999px;height:6px;overflow:hidden}.batch-progress-fill{background:var(--primary);height:100%;transition:width .3s}.batch-footer{align-items:center;gap:8px;display:flex}.batch-nav-buttons{gap:8px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.trash-header{border-bottom:1px solid var(--border);background:var(--surface);padding:20px}.trash-header h2{margin:0 0 8px;font-size:24px;font-weight:600}.trash-subtitle{color:var(--muted);margin:0;font-size:14px}.empty-trash{color:var(--muted);justify-content:center;align-items:center;padding:80px 20px;font-size:16px;display:flex}.preset-management-page{flex-direction:column;gap:20px;max-width:800px;margin:0 auto;padding:20px;display:flex}.preset-header h2{margin:0 0 8px;font-size:24px;font-weight:600}.preset-description{color:var(--muted);margin:0;font-size:14px}.preset-categories{flex-wrap:wrap;gap:8px;display:flex}.preset-content{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden}.preset-add-section{border-bottom:1px solid var(--border);gap:8px;padding:16px;display:flex}.preset-add-section input{flex:1}.preset-list{flex-direction:column;gap:0;max-height:500px;display:flex;overflow-y:auto}.preset-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;transition:background .12s;display:flex}.preset-item:last-child{border-bottom:none}.preset-item:hover{background:var(--bg)}.preset-value{color:var(--text);flex:1;font-size:14px}.preset-actions{gap:4px;display:flex}.preset-actions .icon-btn{border:1px solid var(--border-strong);background:var(--surface);width:32px;height:32px;font-size:16px}.preset-actions .icon-btn:hover:not(:disabled){border-color:var(--text);background:var(--bg)}.preset-actions .icon-btn:disabled{opacity:.3;cursor:not-allowed}.preset-actions .icon-btn.danger:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.preset-footer{border-top:1px solid var(--border);background:var(--bg);justify-content:flex-end;gap:8px;padding:16px;display:flex}.dxf-exporter{z-index:1000;background:var(--bg);color:var(--text);flex-direction:column;display:flex;position:fixed;inset:0}.dxf-exporter-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:12px 20px;display:flex}.dxf-exporter-header h2{margin:0;font-size:1.1rem}.dxf-exporter-subtitle{color:var(--muted);font-size:.9rem}.dxf-exporter-close{padding:6px 14px}.dxf-exporter-body{flex:1;grid-template-columns:1fr 340px;min-height:0;display:grid}.dxf-exporter-canvas-wrap{min-width:0;min-height:0;position:relative}.dxf-exporter-canvas{cursor:crosshair;width:100%;height:100%;display:block}.dxf-exporter-overlay{color:var(--text);pointer-events:none;background:#00000059;justify-content:center;align-items:center;font-size:1rem;display:flex;position:absolute;inset:0}.dxf-exporter-overlay.error{color:#ff8a8a;background:#000000a6}.dxf-exporter-side{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;gap:20px;padding:16px;display:flex;overflow-y:auto}.dxf-exporter-side h3{margin:0 0 8px;font-size:.95rem}.dxf-selection-card{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-direction:column;gap:10px;padding:12px;display:flex}.dxf-selection-card label{flex-direction:column;gap:4px;font-size:.85rem;display:flex}.dxf-selection-card input{padding:6px 8px;font-size:.95rem}.dxf-chip-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.dxf-plane-chip{color:#1f7a32;background:#4dd9a02e;border-radius:999px;padding:2px 8px;font-size:.85rem;font-weight:600;display:inline-block}[data-theme=dark] .dxf-plane-chip{color:#5fdc91;background:#4dd9a038}.dxf-muted{color:var(--muted);font-size:.85rem}.dxf-success{color:#1f7a32;margin:0;font-size:.9rem}[data-theme=dark] .dxf-success{color:#5fdc91}.dxf-error{color:#8a2620;margin:0;font-size:.9rem}[data-theme=dark] .dxf-error{color:#ff8a8a}.dxf-face-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.dxf-face-list li{border:1px solid var(--border);background:var(--bg);border-radius:6px;flex-direction:column;gap:2px;padding:6px 8px;display:flex}.dxf-face-list a{font-weight:500}.dxf-face-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.dxf-face-download{font:inherit;text-align:left;color:var(--accent,#2864d3);cursor:pointer;text-overflow:ellipsis;background:0 0;border:none;flex:1;min-width:0;padding:0;font-weight:500;text-decoration:underline;overflow:hidden}.dxf-face-download:hover{text-decoration:none}[data-theme=dark] .dxf-face-download{color:#7aa8ff}.dxf-face-delete{border:1px solid var(--border);width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;font-size:1.1rem;line-height:1;display:inline-flex}.dxf-face-delete:hover{color:#8a2620;border-color:#8a2620}[data-theme=dark] .dxf-face-delete:hover{color:#ff8a8a;border-color:#ff8a8a}.preview-export-dxf-button{margin-top:4px}.exported-faces-section{border-top:1px solid var(--border);margin-top:12px;padding-top:12px}.exported-faces-section h4{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:.85rem}.drawing-upload-card{border:1px solid var(--border);background:var(--bg);border-radius:6px;flex-direction:column;gap:8px;padding:10px 12px;display:flex}.drawing-upload-header{justify-content:space-between;align-items:center;gap:12px;font-size:.9rem;display:flex}.drawing-upload-actions{gap:6px;display:flex}.drawing-upload-actions button{padding:4px 10px;font-size:.85rem}.drawing-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);white-space:nowrap;border-radius:6px;justify-content:center;align-items:center;padding:6px 10px;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-flex}.drawing-button:hover{border-color:var(--text)}.drawing-empty{color:var(--muted);justify-content:center;align-items:center;padding:6px 10px;font-size:.8rem;display:inline-flex}.collapsible-material-select{width:100%;position:relative}.material-select-trigger{width:100%;font:inherit;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;padding:5px 8px;display:flex}.material-select-trigger:hover{border-color:var(--text)}.material-select-trigger:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:var(--primary)}.material-select-trigger:disabled{background-color:var(--bg);cursor:not-allowed;opacity:1}.material-select-arrow{color:var(--muted);margin-left:8px;font-size:10px}.material-select-dropdown{background:var(--surface);border:1px solid var(--border-strong);z-index:100;border-radius:6px;max-height:300px;padding:4px;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 18px #00000026}.material-category-header{background:var(--bg);width:100%;color:var(--text);text-align:left;cursor:pointer;border:none;border-radius:4px;align-items:center;gap:8px;margin-bottom:2px;padding:8px 10px;font-size:13px;font-weight:600;display:flex}.material-category-header:hover{background:var(--border)}.category-arrow{color:var(--muted);width:12px;font-size:10px;display:inline-block}.material-category-items{margin-bottom:4px;padding-left:20px}.material-select-option{cursor:pointer;color:var(--text);border-radius:4px;padding:6px 10px;font-size:13px}.material-select-option:hover{background:var(--bg)}.material-select-option.selected{color:var(--primary);background:#2b5fda1a;font-weight:500}.status-page{flex-direction:column;gap:24px;padding:8px 0;display:flex}.status-header{flex-direction:column;gap:16px;display:flex}.status-header h2{margin:0;font-size:20px;font-weight:600}.time-filter-buttons{flex-wrap:wrap;gap:8px;display:flex}.filter-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s}.filter-btn:hover{background:var(--bg);border-color:var(--primary)}.filter-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.overall-stats{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:32px;padding:16px 20px;display:flex}.stat-item{align-items:baseline;gap:8px;display:flex}.stat-label{color:var(--muted);font-size:13px}.stat-value{color:var(--text);font-size:18px;font-weight:600}.stat-value.stat-done{color:var(--done)}.status-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.machine-card{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:14px;padding:16px;display:flex}.machine-header{justify-content:space-between;align-items:baseline;display:flex}.machine-header h3{margin:0;font-size:15px;font-weight:600}.machine-total{color:var(--muted);font-size:12px}.progress-bar-container{align-items:center;gap:12px;display:flex}.progress-bar{background:var(--bg);border:1px solid var(--border);border-radius:6px;flex:1;height:24px;display:flex;overflow:hidden}.progress-segment{height:100%;transition:width .3s}.progress-segment.done{background:var(--done)}.progress-segment.in-progress{background:var(--in-progress)}.progress-segment.not-started{background:var(--muted)}.progress-segment.waiting{background:var(--waiting)}.progress-percent{color:var(--text);text-align:right;min-width:48px;font-size:14px;font-weight:600}.machine-breakdown{grid-template-columns:1fr 1fr;gap:8px 16px;display:grid}.breakdown-item{align-items:center;gap:6px;font-size:12px;display:flex}.breakdown-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.breakdown-dot.done{background:var(--done)}.breakdown-dot.in-progress{background:var(--in-progress)}.breakdown-dot.not-started{background:var(--muted)}.breakdown-dot.waiting{background:var(--waiting)}.breakdown-label{color:var(--muted)}.breakdown-value{margin-left:auto;font-weight:600}@media (width<=640px){.status-grid{grid-template-columns:1fr}.overall-stats{flex-direction:column;gap:12px}}
