@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2d8998;--color-primary-dark: #246b78;--color-primary-light: #e3f2fd;--color-text-primary: #2c3e50;--color-text-secondary: #555;--color-text-muted: #7f8c8d;--color-bg: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-gradient-top: #f8f8f7;--color-bg-gradient-bottom: #f1f0ee;--color-border: #dddfe0;--color-border-light: #e8ecef;--color-border-focus: #36a4b5;--color-success: #4caf50;--color-accent-warning: #f57f17;--color-error: #e74c3c;--color-info: #2196f3;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 2px 8px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .12);--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 1.25rem;--transition-fast: .2s ease;--transition-normal: .3s ease}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%);background-attachment:fixed;color:var(--color-text-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background:var(--color-primary-light);color:var(--color-text-primary)}:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark)}button{font-family:inherit;cursor:pointer}img{max-width:100%;height:auto}.hidden{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (prefers-color-scheme: dark){:root{--color-text-primary: #ffffff;--color-text-secondary: #b0b0b0;--color-text-muted: #888888;--color-bg: #1e1e1e;--color-bg-secondary: #2a2a2a;--color-bg-gradient-top: #1a1a1a;--color-bg-gradient-bottom: #0f0f0f;--color-border: #3a3a3a;--color-border-light: #4a4a4a}body{background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;padding:20px}.login-background{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:none}.login-card{position:relative;z-index:1;background:var(--color-bg);border-radius:var(--radius-2xl);padding:48px 40px;max-width:450px;width:100%;text-align:center;box-shadow:var(--shadow-lg);border:1px solid var(--color-border);animation:slideUp .6s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{margin-bottom:40px}.login-logo{display:inline-flex;align-items:center;justify-content:center;margin:0 auto 24px}.login-logo img{height:83px;width:auto;display:block}.login-subtitle{color:var(--color-text-secondary);font-size:14px;margin:0;font-weight:400}.login-button{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 24px;background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-lg);font-size:14px;font-weight:600;color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.login-button:hover{background:var(--color-bg-gradient-top);border-color:var(--color-text-secondary);transform:translateY(-1px);box-shadow:0 4px 12px #0000001a}.login-button:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.google-icon{width:20px;height:20px;flex-shrink:0}.login-note{margin-top:32px;padding-top:24px;border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px}.login-note strong{color:var(--color-text-primary);font-weight:600}@media (max-width: 480px){.login-card{padding:36px 28px}.login-subtitle{font-size:12px}.login-button{padding:12px 20px;font-size:13px}.login-logo img{height:44px}}@media (prefers-color-scheme: dark){.login-card{background:var(--color-bg);border-color:var(--color-border);box-shadow:0 4px 16px #00000080}.login-button{background:var(--color-bg-secondary);border-color:var(--color-border-light)}.login-button:hover{background:#333;border-color:#666}}.dashboard{min-height:100vh;display:flex;flex-direction:column}.dashboard-header{display:flex;align-items:center;justify-content:space-between;height:70px;padding:0 32px;background:var(--color-bg);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100;box-shadow:var(--shadow-sm)}.header-left .logo{display:flex;align-items:center;gap:12px;color:var(--color-text-primary);font-size:18px;font-weight:600}.header-left .logo picture{display:inline-flex;align-items:center}.header-left .logo .main-logo{height:50px;width:auto;display:block}.header-right{display:flex;align-items:center}.user-info{display:flex;align-items:center;flex-direction:row;gap:12px;padding:8px;background:#fffffff2;border-radius:12px;box-shadow:0 2px 8px #0000001a}.user-avatar,.user-avatar-placeholder{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid #e2e8f0}.user-avatar-placeholder{background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;color:#fff}.user-avatar-placeholder.hidden{display:none}.user-details{display:flex;flex-direction:column;gap:2px;min-width:0}.user-name{font-weight:600;font-size:12px;color:#1a202c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.user-email{font-size:10px;color:#718096;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.logout-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;background:transparent;border:1px solid #e2e8f0;border-radius:8px;font-size:11px;font-weight:600;color:#4a5568;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.logout-btn:hover{background:#f7fafc;border-color:#cbd5e0;color:#2d3748}.logout-btn svg{width:20px;height:20px}.logout-text{display:inline-block}.dashboard-main{flex:1;padding:48px 32px;max-width:1400px;margin:0 auto;width:100%}.welcome-section{text-align:center;margin-bottom:48px;animation:fadeInUp .5s ease-out backwards;animation-delay:0s}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.welcome-section h1{font-size:32px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px;letter-spacing:-.5px;line-height:1.2}.welcome-section p{color:var(--color-text-secondary);font-size:14px;margin:0}.admin-badge{display:inline-block;margin-top:12px;padding:6px 16px;background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:20px;color:var(--color-primary);font-size:12px;font-weight:500}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.dashboard-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:28px;transition:all var(--transition-normal);animation:fadeInUp .5s ease-out backwards}.dashboard-card:nth-child(1){animation-delay:.1s}.dashboard-card:nth-child(2){animation-delay:.15s}.dashboard-card:nth-child(3){animation-delay:.2s}.dashboard-card:nth-child(4){animation-delay:.25s}.dashboard-card:nth-child(5){animation-delay:.3s}.dashboard-card:nth-child(6){animation-delay:.35s}.dashboard-card:nth-child(7){animation-delay:.4s}.dashboard-card:nth-child(8){animation-delay:.45s}.dashboard-card:nth-child(n+9){animation-delay:.5s}.dashboard-card:hover{transform:translateY(-4px);border-color:var(--color-primary);box-shadow:var(--shadow-lg)}.card-icon{width:56px;height:56px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:20px;border:1px solid}.card-icon svg{width:28px;height:28px}.card-icon.components{background:#e3f2fd;border-color:#2196f3;color:#2196f3}.card-icon.orders{background:#f3e5f5;border-color:#9c27b0;color:#9c27b0}.card-icon.categories{background:#e8f5e9;border-color:#4caf50;color:#4caf50}.card-icon.projects{background:#fff3e0;border-color:#ff9800;color:#ff9800}.card-icon.users{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.card-icon.config{background:#fce4ec;border-color:#e91e63;color:#e91e63}.card-icon.pcb-viewer{background:#e0f2f1;border-color:#009688;color:#009688}.card-icon.label-editor{background:#fff8e1;border-color:#ffc107;color:#f57c00}.dashboard-card h3{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.dashboard-card p{color:var(--color-text-secondary);font-size:14px;margin:0 0 16px;line-height:1.5}.coming-soon{display:inline-block;padding:4px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;color:var(--color-text-secondary);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.admin-card{border-color:var(--color-primary);background:linear-gradient(135deg,var(--color-bg) 0%,rgba(45,137,152,.03) 100%)}.admin-card:hover{border-color:var(--color-primary-dark)}.dashboard-card.clickable{cursor:pointer;position:relative;text-align:left;background:var(--color-bg);border:1px solid var(--color-primary)}.dashboard-card.clickable:hover{transform:translateY(-4px);box-shadow:0 8px 24px #2d899833}.open-icon{position:absolute;top:24px;right:24px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--color-primary);border-radius:50%;color:#fff;transition:transform var(--transition-fast)}.dashboard-card.clickable:hover .open-icon{transform:translate(4px)}@media (max-width: 768px){.dashboard-header{padding:0 16px}.user-details,.logout-text{display:none}.logout-btn{padding:8px}.dashboard-main{padding:32px 16px}.welcome-section h1{font-size:24px}.dashboard-grid{grid-template-columns:1fr}}@media (prefers-color-scheme: dark){.dashboard-header{background:var(--color-bg);border-bottom-color:var(--color-border)}.user-info{background:#2d3748f2}.user-name{color:#f7fafc}.user-email{color:#a0aec0}.user-avatar,.user-avatar-placeholder{border-color:#4a5568}.logout-btn{border-color:#4a5568;color:#cbd5e0}.logout-btn:hover{background:#2d3748;border-color:#718096;color:#f7fafc}.dashboard-card{background:var(--color-bg);border-color:var(--color-border)}.dashboard-card:hover{border-color:var(--color-primary-dark);box-shadow:0 4px 16px #00000080}.card-icon.components{background:#2196f326;border-color:#2196f366}.card-icon.orders{background:#9c27b026;border-color:#9c27b066}.card-icon.categories{background:#4caf5026;border-color:#4caf5066}.card-icon.projects{background:#ff980026;border-color:#ff980066}.card-icon.users{background:#2d899826;border-color:#2d899866}.card-icon.config{background:#e91e6326;border-color:#e91e6366}.card-icon.pcb-viewer{background:#00968826;border-color:#00968866}.card-icon.label-editor{background:#ffc10726;border-color:#ffc10766}.admin-card{background:linear-gradient(135deg,var(--color-bg) 0%,rgba(45,137,152,.05) 100%)}.coming-soon{background:var(--color-bg-secondary);border-color:var(--color-border-light)}}.loading-container{min-height:100vh;display:flex;align-items:center;justify-content:center}.loading-content{text-align:center}.loading-spinner{width:64px;height:64px;margin:0 auto 16px;color:var(--color-primary);animation:pulse 2s ease-in-out infinite}.loading-spinner svg{width:100%;height:100%}@keyframes pulse{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1)}}.loading-content p{color:var(--color-text-secondary);font-size:14px;font-weight:500}@media (prefers-color-scheme: dark){.loading-content p{color:var(--color-text-secondary)}}.code-scanner-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000059;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:6000;display:none;align-items:center;justify-content:center}.code-scanner-modal-overlay.active{display:flex}.code-scanner-modal{background:linear-gradient(180deg,#f8f8f7,#f1f0ee);border:1px solid #dddfe0;border-radius:1.25rem;width:95%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 2px 8px #00000014;animation:csm-slideUp .3s cubic-bezier(.4,0,.2,1)}@keyframes csm-slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.code-scanner-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;background:#fff;border-radius:1.25rem 1.25rem 0 0;border-bottom:1px solid #e8ecef}.code-scanner-modal-title{font-size:22px;font-weight:600;color:#2c3e50;margin:0;display:flex;align-items:center;gap:10px}.code-scanner-modal-title svg{width:24px;height:24px;stroke:#2d8998}.code-scanner-modal-close{background:transparent;border:none;cursor:pointer;padding:8px;color:#2c3e50;opacity:.6;transition:opacity .2s;border-radius:6px}.code-scanner-modal-close:hover{opacity:1;background:#0000000d}.code-scanner-modal-close svg{width:24px;height:24px}.code-scanner-modal-body{flex:1;overflow-y:auto;padding:1rem 1.5rem}.csm-error-banner{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ffebee;border:1px solid #ef9a9a;border-radius:8px;margin-bottom:12px;color:#c62828;font-size:13px}.csm-error-banner button{margin-left:auto;padding:4px 12px;background:#c62828;color:#fff;border:none;border-radius:4px;cursor:pointer}.csm-section{background:#fff;border:1px solid #e8ecef;border-radius:8px;padding:14px;margin-bottom:12px}.csm-section-title{font-size:12px;font-weight:600;color:#2c3e50;margin:0 0 12px;display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:.5px}.csm-section-title svg{width:16px;height:16px;stroke:#2d8998}.csm-pairing-container{display:flex;gap:24px;align-items:flex-start}.csm-qr-container{flex-shrink:0;background:#fff;border:2px solid #e8ecef;border-radius:10px;padding:8px;display:flex;align-items:center;justify-content:center}.csm-qr-container canvas{display:block;width:150px!important;height:150px!important}.csm-qr-placeholder{width:150px;height:150px;display:flex;align-items:center;justify-content:center;color:#999;font-size:13px}.csm-pairing-info{flex:1}.csm-session-id{font-family:monospace;font-size:16px;font-weight:700;color:#2d8998;background:#f0f9fa;padding:6px 12px;border-radius:6px;display:inline-block;margin-bottom:8px;letter-spacing:2px}.csm-pairing-instructions{font-size:12px;color:#555;line-height:1.5;margin:0 0 10px}.csm-pairing-instructions ol{margin:6px 0 0;padding-left:18px}.csm-pairing-instructions li{margin-bottom:2px}.csm-connection-status{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.csm-status-dot{width:10px;height:10px;border-radius:50%;background:#ffc107;animation:csm-pulse 2s infinite}.csm-status-dot.connected{background:#4caf50;animation:none}@keyframes csm-pulse{0%,to{opacity:1}50%{opacity:.4}}.csm-status-text{color:#555}.csm-status-text.connected{color:#2e7d32}.csm-context-help{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:#e3f2fd;border-radius:8px;margin-bottom:12px;font-size:12px;color:#1565c0}.csm-context-help svg{flex-shrink:0;width:16px;height:16px}.csm-settings-row{display:flex;flex-wrap:wrap;gap:16px}.csm-checkbox-label{display:flex;align-items:center;gap:8px;font-size:13px;color:#2c3e50;cursor:pointer}.csm-checkbox-label input[type=checkbox]{cursor:pointer;width:18px;height:18px}.csm-scan-counter{display:flex;align-items:center;justify-content:space-between;padding:8px 0;margin-bottom:12px;border-bottom:1px solid #e8ecef}.csm-scan-count{font-size:12px;color:#666}.csm-scan-count strong{color:#2d8998;font-size:14px}.csm-clear-btn{font-size:11px;color:#e74c3c;background:transparent;border:none;cursor:pointer;padding:4px 8px;border-radius:4px}.csm-clear-btn:hover{background:#fdecea}.csm-scan-log{max-height:250px;overflow-y:auto;border:1px solid #e8ecef;border-radius:6px;background:#fafbfc}.csm-scan-log-empty{padding:30px 20px;text-align:center;color:#999;font-size:13px}.csm-scan-log-empty svg{width:40px;height:40px;stroke:#ddd;margin-bottom:10px}.csm-scan-item{display:flex;flex-direction:column;gap:6px;padding:10px 14px;border-bottom:1px solid #e8ecef;transition:background .15s}.csm-scan-item:last-child{border-bottom:none}.csm-scan-item:hover{background:#f0f7ff}.csm-scan-header{display:flex;align-items:center;gap:10px}.csm-scan-time{font-size:11px;color:#888;font-family:monospace}.csm-scan-format{font-size:10px;font-weight:600;color:#2d8998;background:#e3f2fd;padding:2px 6px;border-radius:4px;text-transform:uppercase}.csm-scan-value{display:flex;align-items:center;gap:8px;font-size:13px;color:#2c3e50;font-family:monospace;word-break:break-all}.csm-scan-copy-btn{flex-shrink:0;padding:6px 8px;background:transparent;border:1px solid #e8ecef;border-radius:4px;cursor:pointer;color:#2d8998;margin-left:auto;transition:all .2s}.csm-scan-copy-btn:hover{background:#e3f2fd;border-color:#2d8998}.csm-scan-copy-btn.copied{background:#e8f5e9;border-color:#4caf50;color:#4caf50}.csm-scan-copy-btn svg{width:16px;height:16px}.csm-vendor-scan{border-left:3px solid transparent}.csm-vendor-scan.csm-vendor-digikey{border-left-color:#c00}.csm-vendor-scan.csm-vendor-mouser{border-left-color:#004b87}.csm-vendor-display{display:flex;align-items:center;gap:8px;flex:1}.csm-vendor-badge{font-size:10px;font-weight:700;padding:3px 6px;border-radius:4px;text-transform:uppercase;flex-shrink:0}.csm-vendor-fields{display:flex;flex-wrap:wrap;gap:4px;font-family:-apple-system,BlinkMacSystemFont,sans-serif}.csm-vendor-field{font-size:12px;color:#555}.csm-vendor-field.csm-primary-field{font-weight:600;color:#2c3e50}.csm-field-label{font-size:10px;color:#888;text-transform:uppercase}.csm-field-value{font-family:monospace}.csm-primary-field .csm-field-value{font-weight:600;color:#2d8998}.csm-field-separator{color:#ccc;margin:0 2px}.csm-scan-clickable{cursor:pointer}.csm-scan-clickable:hover{background:#fff0f0}.csm-scan-clickable:active{background:#ffe0e0}.csm-scan-action-hint{margin-left:auto;font-size:10px;color:#c00;opacity:0;transition:opacity .2s;text-transform:uppercase;font-weight:600}.csm-scan-clickable:hover .csm-scan-action-hint{opacity:.7}.code-scanner-modal-footer{padding:1rem 1.5rem;border-top:1px solid #e8ecef;display:flex;justify-content:flex-end;gap:12px;background:#fff;border-radius:0 0 1.25rem 1.25rem}.csm-btn{padding:10px 24px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.csm-btn-new-session{background:#fff3e0;color:#e65100;border:1px solid #ffcc80}.csm-btn-new-session:hover{background:#ffe0b2}.csm-btn-close{background:#f8f9fa;color:#2c3e50;border:1px solid #e8ecef}.csm-btn-close:hover{background:#e9ecef}@media (max-width: 600px){.code-scanner-modal{width:98%;max-height:95vh;border-radius:1rem}.csm-pairing-container{flex-direction:column;align-items:center;text-align:center}.csm-pairing-instructions ol{text-align:left}.csm-settings-row{flex-direction:column;gap:12px}}.components-table-container{display:flex;flex-direction:column;height:100%;background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden}.table-toolbar{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);gap:16px;flex-wrap:wrap}.toolbar-left{display:flex;align-items:center;gap:12px;flex:1;min-width:200px}.search-box{position:relative;flex:1;max-width:400px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--color-text-secondary);pointer-events:none}.search-input{width:100%;padding:6px 32px 6px 36px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;background:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast)}.search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.search-input::placeholder{color:var(--color-text-secondary)}.clear-search{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;background:var(--color-bg-secondary);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all var(--transition-fast)}.clear-search:hover{background:var(--color-border);color:var(--color-text-primary)}.storage-filters{display:flex;align-items:center;gap:8px}.storage-filter-select{padding:6px 28px 6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;background:var(--color-bg);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);min-width:120px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236b7280'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px}.storage-filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.storage-filter-select:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-bg-secondary)}.storage-filter-input{padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;background:var(--color-bg);color:var(--color-text-primary);width:80px;transition:all var(--transition-fast)}.storage-filter-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.storage-filter-input:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-bg-secondary)}.storage-filter-input::placeholder{color:var(--color-text-secondary)}.clear-storage-filters{width:24px;height:24px;border:none;background:var(--color-bg-secondary);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all var(--transition-fast);flex-shrink:0}.clear-storage-filters:hover{background:var(--color-error);color:#fff}.toolbar-info{display:flex;align-items:center;gap:12px}.selected-count{padding:6px 12px;background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md);font-size:13px;font-weight:500}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.toolbar-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.toolbar-btn svg{color:var(--color-text-secondary)}.column-toggle-wrapper{position:relative}.column-visibility-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 10px 40px #00000026;z-index:100;animation:fadeInDown .15s ease}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.menu-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border);font-weight:600;font-size:13px;color:var(--color-text-primary)}.menu-header .close-btn{width:24px;height:24px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.menu-header .close-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.menu-items{padding:8px;max-height:300px;overflow-y:auto}.menu-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);font-size:13px;color:var(--color-text-primary)}.menu-item:hover:not(.disabled){background:var(--color-bg-secondary)}.menu-item.disabled{opacity:.5;cursor:not-allowed}.menu-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.menu-item.disabled input[type=checkbox]{cursor:not-allowed}.table-wrapper{flex:1;overflow:auto}.components-table{width:100%;border-collapse:collapse;font-size:13px}.components-table thead{position:sticky;top:0;z-index:10;background:var(--color-bg-secondary)}.components-table th{padding:0;text-align:left;font-weight:600;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);border-right:1px solid var(--color-border-light, rgba(0, 0, 0, .06));white-space:nowrap;-webkit-user-select:none;user-select:none}.components-table th:last-child{border-right:none}.components-table th.select-col{width:40px;text-align:center}.th-content{display:flex;align-items:center;gap:4px;padding:12px 16px}.th-content.dragging{background:var(--color-primary-light);border-radius:var(--radius-md)}.drag-handle{display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--color-text-secondary);opacity:.4;cursor:grab;transition:opacity var(--transition-fast);flex-shrink:0}.drag-handle:hover{opacity:1}.header-label{display:flex;align-items:center;gap:6px;flex:1}.header-label.sortable{cursor:pointer}.header-label.sortable:hover{color:var(--color-primary)}.sort-indicator{font-size:12px;color:var(--color-primary)}.sort-hint{opacity:.3;font-size:10px}.header-label.sortable:hover .sort-hint{opacity:.6}.components-table tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition-fast);cursor:pointer}.components-table tbody tr:hover{background:var(--color-bg-secondary)}.components-table tbody tr.selected{background:var(--color-primary-light)}.components-table tbody tr.low-stock-row{background:#ef44440d}.components-table tbody tr.low-stock-row:hover{background:#ef44441a}.components-table tbody tr.taken-row{background:#fb923c14;border-left:3px solid #f97316}.components-table tbody tr.taken-row:hover{background:#fb923c26}.components-table td{padding:12px 16px;color:var(--color-text-primary);vertical-align:middle;border-right:1px solid var(--color-border-light, rgba(0, 0, 0, .06))}.components-table td:last-child{border-right:none}.components-table td.select-col{text-align:center}.row-checkbox{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.components-table th.image-col,.components-table td.image-col{width:52px;min-width:52px;max-width:52px;padding:6px 8px;text-align:center}.component-thumb{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:block;margin:0 auto}.component-thumb.no-image{opacity:.35}.pn-mfr-cell{display:flex;flex-direction:column;gap:2px;line-height:1.3}.pn-primary{font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pn-manufacturer{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-cell{white-space:nowrap}.location-cell.empty{color:var(--color-text-secondary)}.quantity-cell{display:inline-flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}.quantity-cell.low-stock{color:var(--color-error);font-weight:600}.low-stock-indicator{color:var(--color-accent-warning);font-size:14px}.table-loading,.table-loading-inline{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 20px;gap:16px;color:var(--color-text-secondary)}.table-loading-inline{flex-direction:row;padding:24px}.loading-cell,.empty-cell{text-align:center}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.spinner.small{width:20px;height:20px;border-width:2px}.empty-state{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 20px;color:var(--color-text-secondary)}.empty-state svg{width:48px;height:48px;opacity:.5}.empty-state p{margin:0;font-size:14px}.clear-filter-btn{padding:8px 16px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-primary);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.clear-filter-btn:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.table-pagination{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);gap:16px;flex-wrap:wrap}.pagination-info{font-size:13px;color:var(--color-text-secondary)}.pagination-controls{display:flex;align-items:center;gap:20px}.page-size-selector{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.page-size-selector select{padding:6px 28px 6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.page-size-selector select:focus{outline:none;border-color:var(--color-primary)}.page-navigation{display:flex;align-items:center;gap:4px}.page-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.page-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.page-indicator{padding:0 12px;font-size:13px;color:var(--color-text-secondary);white-space:nowrap}@media (prefers-color-scheme: dark){.column-visibility-menu{box-shadow:0 10px 40px #0006}.components-table tbody tr.low-stock-row{background:#ef44441a}.components-table tbody tr.low-stock-row:hover{background:#ef444426}.components-table tbody tr.taken-row{background:#fb923c1f;border-left:3px solid #fb923c}.components-table tbody tr.taken-row:hover{background:#fb923c33}}@media (max-width: 1024px){.toolbar-left{flex-wrap:wrap}.storage-filters{width:100%;flex-wrap:wrap}.storage-filter-select{min-width:100px;flex:1}}@media (max-width: 768px){.table-toolbar{flex-direction:column;align-items:stretch}.toolbar-left,.toolbar-right{width:100%}.search-box{max-width:none}.storage-filters{margin-top:8px}.toolbar-right{justify-content:space-between}.table-pagination{flex-direction:column;align-items:flex-start}.pagination-controls{width:100%;justify-content:space-between}}.components-table-container.mobile-view{border:none;border-radius:0;background:transparent;overflow:visible}.components-table-container.mobile-view .table-toolbar{position:fixed;top:0;left:0;right:0;z-index:25;border-radius:0;padding:10px 12px;gap:8px;box-shadow:0 2px 8px #00000014}.components-table-container.mobile-view .toolbar-left{flex-direction:column;gap:8px;min-width:0}.components-table-container.mobile-view .search-box{max-width:none}.components-table-container.mobile-view .storage-filters{width:100%;flex-wrap:wrap;gap:6px}.components-table-container.mobile-view .storage-filter-select{flex:1;min-width:80px;font-size:12px;padding:5px 24px 5px 8px}.components-table-container.mobile-view .storage-filter-input{flex:1;min-width:60px;font-size:12px;padding:5px 8px}.comp-cards-wrapper{flex:1;overflow-y:auto;padding:96px 8px 8px;-webkit-overflow-scrolling:touch}.comp-cards{display:flex;flex-direction:column;gap:8px}.comp-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px;cursor:pointer;transition:all var(--transition-fast);border-left:3px solid var(--color-border)}.comp-card:active{background:var(--color-bg-secondary)}.comp-card.low-stock{border-left-color:var(--color-error);background:#ef444408}.comp-card.taken{border-left-color:#f97316;background:#fb923c0d}.comp-card-header{display:flex;align-items:center;gap:10px}.comp-card-image{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary);flex-shrink:0}.comp-card-image.no-image{opacity:.3}.comp-card-pn-group{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.comp-card-pn{font-weight:600;font-size:13px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comp-card-manufacturer{font-size:11px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.comp-card-qty-badge{display:flex;flex-direction:column;align-items:center;min-width:44px;flex-shrink:0}.comp-card-available{font-size:16px;font-weight:700;color:var(--color-primary);font-variant-numeric:tabular-nums;line-height:1.1}.comp-card-available.low{color:var(--color-error)}.comp-card-qty-label{font-size:9px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.comp-card-description{margin-top:6px;font-size:12px;color:var(--color-text-secondary);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.comp-card-footer{display:flex;align-items:center;gap:8px;margin-top:6px;flex-wrap:wrap}.comp-card-location{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--color-text-secondary);background:var(--color-bg-secondary);padding:2px 8px;border-radius:12px}.comp-card-location svg{color:var(--color-primary);flex-shrink:0}.comp-card-location.empty{opacity:.5;font-style:italic}.comp-card-taken-badge{font-size:10px;color:#f97316;background:#fb923c1a;padding:2px 8px;border-radius:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}.comp-card-low-badge{font-size:10px;color:var(--color-error);background:#ef444414;padding:2px 8px;border-radius:12px;font-weight:500}.components-table-container.mobile-view .table-pagination{padding:10px 12px;gap:8px;flex-wrap:nowrap}.components-table-container.mobile-view .pagination-info{font-size:11px;white-space:nowrap}.components-table-container.mobile-view .pagination-controls{gap:8px}.components-table-container.mobile-view .page-size-selector{display:none}.components-table-container.mobile-view .page-navigation{gap:2px}.components-table-container.mobile-view .page-indicator{font-size:12px;padding:0 8px}@media (max-width: 900px) and (max-height: 500px){.components-table-container.mobile-view .table-toolbar{padding:6px 12px;gap:6px}.components-table-container.mobile-view .toolbar-left{flex-direction:row;align-items:center;gap:8px}.components-table-container.mobile-view .search-box{flex:1;max-width:260px}.components-table-container.mobile-view .search-input{padding:4px 28px 4px 32px;font-size:12px}.components-table-container.mobile-view .storage-filters{flex:1;width:auto;flex-wrap:nowrap}.components-table-container.mobile-view .storage-filter-select{min-width:70px;padding:4px 22px 4px 6px;font-size:11px}.components-table-container.mobile-view .storage-filter-input{min-width:50px;padding:4px 6px;font-size:11px}.comp-cards-wrapper{padding-top:52px}.comp-card{padding:8px 10px}.comp-card-header{gap:8px}.comp-card-image{width:30px;height:30px}.comp-card-pn{font-size:12px}.comp-card-description{font-size:11px;margin-top:4px;-webkit-line-clamp:1}.comp-card-footer{margin-top:4px}.comp-cards{display:grid;grid-template-columns:1fr 1fr;gap:6px}}@media (prefers-color-scheme: dark){.comp-card.low-stock{background:#ef44440f}.comp-card.taken{background:#fb923c14}.comp-card-taken-badge{background:#fb923c26}.comp-card-low-badge{background:#ef44441f}.components-table-container.mobile-view .table-toolbar{box-shadow:0 2px 12px #00000040}}.add-component-modal input[type=number]{-moz-appearance:textfield}.add-component-modal input[type=number]::-webkit-outer-spin-button,.add-component-modal input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;animation:fadeIn .2s ease}.add-component-modal{background:var(--color-bg);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 25px 50px -12px #00000059;width:100%;max-width:800px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:16px 16px 0 0}.modal-header .header-content{display:flex;align-items:center;gap:12px}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--color-text-primary)}.modal-header .back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.modal-header .back-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.modal-header .back-btn svg{width:18px;height:18px}.modal-header .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.modal-header .close-btn:hover{background:#ef44441a;color:var(--color-error)}.modal-header .close-btn svg{width:20px;height:20px}.choice-container{display:flex;flex-direction:column;gap:24px}.choice-description{text-align:center;color:var(--color-text-secondary);font-size:15px;margin:0}.choice-cards{display:flex;flex-direction:column;gap:16px}.choice-card{display:flex;align-items:center;gap:20px;padding:24px;background:var(--color-bg);border:2px solid var(--color-border);border-radius:12px;cursor:pointer;transition:all .2s ease;text-align:left;width:100%}.choice-card:hover:not(.disabled){border-color:var(--color-primary);box-shadow:0 4px 20px #2d899826;transform:translateY(-2px)}.choice-card.disabled{opacity:.6;cursor:not-allowed}.choice-card .card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:12px;flex-shrink:0}.choice-card .card-icon.manual{background:linear-gradient(135deg,#2d899826,#2d89980d);color:var(--color-primary)}.choice-card .card-icon.search{background:linear-gradient(135deg,#a855f726,#a855f70d);color:#a855f7}.choice-card .card-icon svg{width:28px;height:28px}.choice-card .card-content{flex:1}.choice-card .card-content h3{margin:0 0 6px;font-size:17px;font-weight:600;color:var(--color-text-primary)}.choice-card .card-content p{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.choice-card .api-badges{display:flex;gap:6px;margin-top:10px}.choice-card .card-arrow{color:var(--color-text-muted);transition:transform .2s ease}.choice-card:hover:not(.disabled) .card-arrow{transform:translate(4px);color:var(--color-primary)}.choice-card .card-arrow svg{width:20px;height:20px}.api-badge{display:inline-flex;padding:4px 10px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.api-badge.digikey{background:#cc44441f;color:#c44}.api-badge.mouser{background:#006bb61f;color:#006bb6}.api-badge.lcsc{background:#ff99001f;color:#e68900}.search-container{display:flex;flex-direction:column;gap:20px}.add-component-modal .search-box{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-bg-secondary);border:2px solid var(--color-border);border-radius:12px;transition:border-color .2s ease}.add-component-modal .search-box:focus-within{border-color:var(--color-primary)}.add-component-modal .search-box input{flex:1;border:none;background:transparent;font-size:15px;color:var(--color-text-primary);outline:none;min-width:0}.add-component-modal .search-box input::placeholder{color:var(--color-text-muted)}.add-component-modal .search-box .search-btn{padding:8px 20px;background:var(--color-primary);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease;display:flex;align-items:center;gap:8px}.add-component-modal .search-box .search-btn:hover:not(:disabled){background:var(--color-primary-dark)}.add-component-modal .search-box .search-btn:disabled{opacity:.6;cursor:not-allowed}.enabled-apis{display:flex;align-items:center;gap:8px;font-size:13px}.enabled-apis .label{color:var(--color-text-muted)}.search-error{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:var(--color-error);font-size:14px}.search-error svg{width:18px;height:18px;flex-shrink:0}.search-results{display:flex;flex-direction:column;gap:12px}.results-header{font-size:14px;color:var(--color-text-secondary);font-weight:500}.search-container .results-table-wrapper{border:1px solid var(--color-border);border-radius:10px;overflow:hidden;max-height:400px;overflow-y:auto}.search-container .results-table{width:100%;border-collapse:collapse}.search-container .results-table th{background:var(--color-bg-secondary);padding:12px 14px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06);position:sticky;top:0;z-index:1;white-space:nowrap}.search-container .results-table th:last-child{width:80px;min-width:80px;border-right:none}.search-container .results-table td{padding:12px 14px;border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06);font-size:13px;color:var(--color-text-primary)}.search-container .results-table td:last-child{width:80px;min-width:80px;text-align:center;border-right:none}.search-container .results-table tbody tr{cursor:pointer;transition:background .15s ease}.search-container .results-table tbody tr:hover{background:var(--color-primary-light)}.search-container .results-table tbody tr:last-child td{border-bottom:none}.search-container .result-image{width:50px}.search-container .result-image img{width:40px;height:40px;object-fit:contain;border-radius:6px;background:#f5f5f5}.search-container .result-image .no-image{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:6px;color:var(--color-text-muted)}.search-container .result-image .no-image svg{width:20px;height:20px}.search-container .result-mpn{font-weight:600;color:var(--color-primary);font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.search-container .result-manufacturer{color:var(--color-text-secondary);font-size:13px}.search-container .result-desc{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:12px}.source-badge{display:inline-block;padding:3px 8px;border-radius:12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.source-badge.small{padding:2px 6px;font-size:9px}.select-btn{padding:6px 14px;background:var(--color-primary);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s ease;white-space:nowrap;flex-shrink:0}.source-badge-link{display:inline-flex;align-items:center;gap:4px;text-decoration:none;transition:opacity .15s ease,transform .15s ease}.source-badge-link:hover{opacity:.85;transform:scale(1.05)}.source-badge-link .external-icon{width:10px;height:10px;opacity:.7}.api-filter{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.api-filter .filter-label{font-size:13px;color:var(--color-text-muted)}.api-filter-toggles{display:flex;gap:8px}.api-filter-toggle{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;cursor:pointer;transition:all .15s ease;font-size:12px;font-weight:500}.api-filter-toggle:hover{border-color:var(--color-text-muted)}.api-filter-toggle.active{border-color:var(--color-primary);background:var(--color-primary-light)}.api-filter-toggle.active.digikey{border-color:#c44;background:#cc44441a;color:#c44}.api-filter-toggle.active.mouser{border-color:#006bb6;background:#006bb61a;color:#006bb6}.api-filter-toggle .toggle-check{width:14px;height:14px;border:2px solid var(--color-border);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.api-filter-toggle.active .toggle-check{background:currentColor;border-color:currentColor}.api-filter-toggle.active .toggle-check svg{width:10px;height:10px;color:#fff}.manual-form{display:flex;flex-direction:column;gap:24px}.form-section{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px;padding:20px}.section-title{display:flex;align-items:center;gap:10px;margin:0 0 16px;font-size:14px;font-weight:600;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.5px}.section-title svg{width:18px;height:18px;color:var(--color-primary)}.section-title .optional-badge{margin-left:auto;padding:3px 8px;background:var(--color-bg);border-radius:4px;font-size:10px;font-weight:500;text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.05em}.section-title .section-error{margin-left:auto;color:var(--color-error);font-size:12px;font-weight:500;text-transform:none;letter-spacing:normal}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.form-grid.quantity-grid,.form-grid.storage-grid{grid-template-columns:repeat(3,1fr)}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full-width{grid-column:1 / -1}.form-field.mpn-field{position:relative}.form-field label{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.03em}.form-field label .required{color:var(--color-error)}.form-field label .link-btn{padding:2px;background:none;border:none;border-radius:4px;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;transition:all .15s ease}.form-field label .link-btn:hover{color:var(--color-primary);background:var(--color-primary-light)}.form-field label .link-btn.linked{color:var(--color-primary)}.form-field label .link-btn svg{width:14px;height:14px}.form-field label .use-suggested{margin-left:auto;padding:2px 8px;background:var(--color-primary);border:none;border-radius:4px;color:#fff;font-size:10px;font-weight:500;cursor:pointer;text-transform:none;transition:background .15s ease}.form-field label .use-suggested:hover{background:var(--color-primary-dark)}.form-field input,.form-field textarea{padding:10px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;font-size:14px;color:var(--color-text-primary);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.form-field input:disabled{background:var(--color-bg-secondary);color:var(--color-text-muted);cursor:not-allowed}.form-field textarea{resize:vertical;min-height:60px}.form-field .field-hint{font-size:11px;color:var(--color-text-muted)}.input-with-loader{position:relative}.input-with-loader input{width:100%;padding-right:36px}.input-with-loader .input-spinner{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite}@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}.suggestions-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;box-shadow:0 10px 25px #00000026;z-index:100;overflow:hidden}.suggestions-header{padding:10px 14px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);font-weight:500}.suggestion-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:none;background:transparent;cursor:pointer;transition:background .15s ease;text-align:left}.suggestion-item:hover{background:var(--color-primary-light)}.suggestion-item:not(:last-child){border-bottom:1px solid var(--color-border)}.suggestion-image{width:36px;height:36px;border-radius:6px;overflow:hidden;background:var(--color-bg-secondary);flex-shrink:0}.suggestion-image img{width:100%;height:100%;object-fit:contain}.suggestion-image .no-image-small{width:100%;height:100%;background:linear-gradient(135deg,var(--color-bg-secondary) 0%,var(--color-border) 100%)}.suggestion-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.suggestion-mpn{font-size:13px;font-weight:600;color:var(--color-primary);font-family:JetBrains Mono,Fira Code,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggestion-mfr{font-size:12px;color:var(--color-text-muted)}.image-preview{display:flex;align-items:center;gap:16px;padding:16px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:12px}.image-preview img{width:80px;height:80px;object-fit:contain;border-radius:8px;background:#fff}.image-preview .api-source-badge{padding:4px 12px;background:var(--color-success);color:#fff;border-radius:20px;font-size:11px;font-weight:600}.image-preview .api-source-badge-link{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--color-success);color:#fff;border-radius:20px;font-size:11px;font-weight:600;text-decoration:none;transition:all .15s ease}.image-preview .api-source-badge-link:hover{background:var(--color-success-dark, #16a34a);transform:scale(1.02)}.image-preview .api-source-badge-link svg{opacity:.8}.modal-footer{padding:16px 24px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:0 0 16px 16px}.submit-error{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;background:#ef44441a;border:1px solid rgba(239,68,68,.2);border-radius:8px;color:var(--color-error);font-size:13px}.submit-error svg{width:18px;height:18px;flex-shrink:0}.footer-actions{display:flex;justify-content:flex-end;gap:12px}.cancel-btn{padding:10px 20px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.cancel-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-text-muted)}.submit-btn{display:flex;align-items:center;gap:8px;padding:10px 24px;background:var(--color-primary);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s ease}.submit-btn:hover:not(:disabled){background:var(--color-primary-dark)}.submit-btn:disabled{opacity:.6;cursor:not-allowed}.submit-btn svg{width:18px;height:18px}.spinner-small{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}@media (max-width: 768px){.modal-overlay{padding:12px}.add-component-modal{max-height:95vh}.modal-header{padding:16px 20px}.modal-header h2{font-size:18px}.modal-body{padding:20px}.choice-card{padding:18px}.choice-card .card-icon{width:48px;height:48px}.form-grid,.form-grid.quantity-grid,.form-grid.storage-grid{grid-template-columns:1fr}.modal-footer{padding:12px 20px}.footer-actions{flex-direction:column}.cancel-btn,.submit-btn{width:100%;justify-content:center}}.dropdown-input input{width:100%}.dropdown-list{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 10px 25px #00000026;z-index:100;max-height:200px;overflow-y:auto}.dropdown-item{width:100%;padding:10px 12px;text-align:left;background:none;border:none;cursor:pointer;color:var(--color-text-primary);font-size:14px;transition:background .15s ease}.dropdown-item:hover{background:var(--color-primary-light)}.dropdown-item.selected{background:var(--color-primary);color:#fff}.dropdown-item:not(:last-child){border-bottom:1px solid var(--color-border)}.form-field .field-error{font-size:11px;color:var(--color-error)}.form-field input.input-error{border-color:var(--color-error);background:#ef44440d}.form-field input.input-error:focus{box-shadow:0 0 0 3px #ef44441a}.form-field label .checking-indicator{margin-left:auto;font-size:10px;font-weight:400;color:var(--color-text-muted);text-transform:none;letter-spacing:normal}.order-link-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border)}.order-link-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--color-text-secondary)}.order-link-toggle input{width:16px;height:16px;accent-color:var(--color-primary)}.order-link-content{margin-top:12px;padding:12px;background:var(--color-bg);border-radius:8px}.order-loading,.no-orders,.no-items{font-size:13px;color:var(--color-text-muted);text-align:center;padding:12px}.order-select{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg-secondary);font-size:14px;color:var(--color-text-primary)}.order-items-list{margin-top:12px}.items-hint{font-size:12px;color:var(--color-text-muted);margin-bottom:8px}.order-item-option{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:4px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .15s ease}.order-item-option:hover{border-color:var(--color-primary);background:#2d89980d}.order-item-option input{width:16px;height:16px;accent-color:var(--color-primary)}.order-item-option .item-details{display:flex;flex-direction:column;gap:2px;flex:1}.order-item-option .item-pn{font-weight:500;font-size:13px;color:var(--color-text-primary)}.order-item-option .item-qty{font-size:11px;color:var(--color-text-muted)}@media (prefers-color-scheme: dark){.modal-overlay{background:#000000bf}.choice-card:hover:not(.disabled){box-shadow:0 4px 20px #2d899840}.suggestions-dropdown{box-shadow:0 10px 25px #0006}.search-container .result-image img,.image-preview img{background:#2a2a2a}}.confirm-delete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease-out}.confirm-delete-modal{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:0 20px 50px #0000004d;padding:32px;max-width:420px;width:90%;text-align:center;animation:modalSlideIn .2s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.delete-icon-wrapper{width:64px;height:64px;margin:0 auto 20px;background:linear-gradient(135deg,#fee2e2,#fecaca);border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #f87171}.delete-icon-wrapper svg{width:32px;height:32px;color:#dc2626}.delete-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.delete-message{font-size:14px;color:var(--color-text-secondary);line-height:1.6;margin:0 0 20px}.delete-items-list{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;margin-bottom:20px;text-align:left;max-height:150px;overflow-y:auto}.delete-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;color:var(--color-text-primary);border-bottom:1px solid var(--color-border)}.delete-item:last-child{border-bottom:none}.delete-item svg{color:var(--color-text-secondary);flex-shrink:0}.delete-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delete-items-more{font-size:13px;color:var(--color-text-secondary);font-style:italic;margin-bottom:20px}.delete-actions{display:flex;gap:12px;justify-content:center}.delete-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);min-width:100px}.delete-btn:disabled{opacity:.6;cursor:not-allowed}.delete-btn.cancel{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-primary)}.delete-btn.cancel:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-text-secondary)}.delete-btn.confirm{background:linear-gradient(135deg,#dc2626,#b91c1c);border:1px solid #dc2626;color:#fff}.delete-btn.confirm:hover:not(:disabled){background:linear-gradient(135deg,#b91c1c,#991b1b);border-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.delete-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media (max-width: 480px){.confirm-delete-modal{padding:24px}.delete-icon-wrapper{width:56px;height:56px}.delete-icon-wrapper svg{width:28px;height:28px}.delete-title{font-size:18px}.delete-actions{flex-direction:column}.delete-btn{width:100%}}@media (prefers-color-scheme: dark){.delete-icon-wrapper{background:linear-gradient(135deg,#dc262633,#b91c1c33);border-color:#f8717180}.confirm-delete-modal{box-shadow:0 20px 50px #00000080}}.components-page{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.components-page .page-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:0 32px;height:70px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.components-page .header-right{display:flex;align-items:center;gap:24px}.components-page .back-button{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.components-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.components-page .back-button svg{width:18px;height:18px}.components-page .page-title{display:flex;align-items:center;gap:16px}.components-page .title-icon{width:48px;height:48px;padding:12px;background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-lg);color:var(--color-primary);flex-shrink:0}.components-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.components-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.components-page .header-actions{display:flex;align-items:center;gap:8px}.components-page .batch-actions{display:flex;align-items:center;gap:12px;padding-right:12px;border-right:1px solid var(--color-border)}.components-page .selection-info{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.components-page .action-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.components-page .action-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.components-page .action-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.components-page .action-btn.primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.components-page .action-btn.secondary{background:var(--color-bg-secondary)}.components-page .action-btn.danger{background:linear-gradient(135deg,#dc2626,#b91c1c);border-color:#dc2626;color:#fff}.components-page .action-btn.danger:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);border-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.components-page .action-btn.scanner-btn{background:linear-gradient(135deg,#2d8998,#247a87);border-color:#2d8998;color:#fff}.components-page .action-btn.scanner-btn:hover{background:linear-gradient(135deg,#247a87,#1d6a76);border-color:#247a87;transform:translateY(-1px);box-shadow:0 4px 12px #2d89984d}.components-page .action-btn svg{flex-shrink:0}.components-page .page-content{flex:1;padding:32px;max-width:1400px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:16px}.components-page .error-banner{display:flex;align-items:center;gap:12px;padding:16px;background:#fff5f5;border:1px solid #feb2b2;border-radius:var(--radius-lg);color:var(--color-error);font-size:14px}.components-page .error-banner svg{flex-shrink:0}.components-page .error-banner span{flex:1}.components-page .error-banner button{padding:6px 12px;border:1px solid currentColor;border-radius:var(--radius-md);background:transparent;color:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.components-page .error-banner button:hover{background:var(--color-error);color:#fff}.components-page .page-footer{background:var(--color-bg);border-top:1px solid var(--color-border);padding:16px 32px;display:flex;align-items:center;justify-content:flex-end;box-shadow:0 -2px 8px #0000000a;position:sticky;bottom:0;z-index:10}.components-page .footer-actions{display:flex;align-items:center;gap:12px}@media (max-width: 768px){.components-page .page-header{padding:12px 16px;height:auto;min-height:70px;flex-wrap:wrap;gap:12px}.components-page .back-button{padding:6px 12px;font-size:13px}.components-page .page-title h1{font-size:18px}.components-page .page-title p{display:none}.components-page .title-icon{width:40px;height:40px;padding:10px}.components-page .header-right{gap:12px}.components-page .batch-actions{padding-right:0;border-right:none}.components-page .page-content{padding:16px 16px 80px}.components-page .page-footer{padding:12px 16px}}@media (max-width: 640px){.components-page .page-header{display:none}.components-page .page-content{padding:0 0 52px}.components-page .page-footer{position:fixed;bottom:0;left:0;right:0;padding:8px 12px;z-index:30;box-shadow:0 -2px 12px #00000014}.components-page .footer-actions{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px}.components-page .footer-actions .action-btn .btn-label{display:none}.components-page .footer-actions .action-btn.primary .btn-label{display:inline}.components-page .footer-actions .action-btn{padding:8px;font-size:12px;flex-shrink:0}.components-page .footer-actions .action-btn.primary{padding:8px 14px;flex:1;max-width:200px;justify-content:center}}@media (max-width: 900px) and (max-height: 500px){.components-page .page-header{display:none}.components-page .page-content{padding:0 0 44px}.components-page .page-footer{position:fixed;bottom:0;left:0;right:0;padding:6px 12px;z-index:30;box-shadow:0 -2px 12px #00000014}.components-page .footer-actions{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px}.components-page .footer-actions .action-btn .btn-label{display:none}.components-page .footer-actions .action-btn.primary .btn-label{display:inline}.components-page .footer-actions .action-btn{padding:6px;font-size:12px;flex-shrink:0}.components-page .footer-actions .action-btn.primary{padding:6px 14px;flex:1;max-width:200px;justify-content:center}}@media (prefers-color-scheme: dark){.components-page .error-banner{background:#ef44441a;border-color:#ef44444d}}.print-label-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.print-label-modal{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.print-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.print-modal-header h2{display:flex;align-items:center;gap:10px;margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.print-modal-header h2 svg{color:var(--color-primary)}.print-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.print-modal-close:hover{background:var(--color-bg);color:var(--color-text-primary)}.print-modal-body{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.print-modal-info{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 16px}.info-row{display:flex;align-items:center;gap:8px}.info-row+.info-row{margin-top:6px}.info-label{font-size:13px;color:var(--color-text-secondary);min-width:80px}.info-value{font-size:14px;font-weight:500;color:var(--color-text-primary)}.info-value.mono{font-family:JetBrains Mono,Fira Code,monospace}.print-modal-settings{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.settings-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 16px;background:var(--color-bg-secondary);border:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--color-text-primary);transition:background var(--transition-fast)}.settings-toggle:hover{background:var(--color-bg)}.settings-toggle svg{transition:transform var(--transition-fast)}.settings-content{padding:16px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:16px}.setting-item{display:flex;flex-direction:column;gap:6px}.setting-item label{font-size:13px;font-weight:500;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:space-between}.setting-item .setting-value{font-family:JetBrains Mono,Fira Code,monospace;color:var(--color-primary);font-weight:600}.setting-item select,.setting-item input[type=number]{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);font-size:14px;color:var(--color-text-primary);outline:none;transition:border-color var(--transition-fast)}.setting-item select:focus,.setting-item input[type=number]:focus{border-color:var(--color-primary)}.setting-item input[type=range]{width:100%;height:6px;border-radius:3px;background:var(--color-bg-secondary);outline:none;-webkit-appearance:none}.setting-item input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:2px solid white;box-shadow:0 1px 3px #0003}.setting-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--color-text-muted)}.print-modal-preview{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.preview-title{padding:10px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:13px;font-weight:500;color:var(--color-text-secondary)}.preview-container{padding:20px;display:flex;align-items:center;justify-content:center;min-height:120px;background:repeating-linear-gradient(45deg,var(--color-bg),var(--color-bg) 10px,var(--color-bg-secondary) 10px,var(--color-bg-secondary) 20px)}.preview-loading{color:var(--color-text-muted);font-size:13px}.preview-content{transform:scale(1.5);transform-origin:center}.preview-content .label-preview{box-shadow:0 2px 8px #00000026}.preview-info{padding:8px 16px;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted);text-align:center}.print-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.print-modal-footer .btn-cancel{padding:10px 20px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.print-modal-footer .btn-cancel:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.print-modal-footer .btn-cancel:disabled{opacity:.6;cursor:not-allowed}.print-modal-footer .btn-print{display:flex;align-items:center;gap:8px;padding:10px 24px;border:none;border-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.print-modal-footer .btn-print:hover:not(:disabled){background:var(--color-primary-dark)}.print-modal-footer .btn-print:disabled{opacity:.6;cursor:not-allowed}.print-modal-footer .spinner-small{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@media (prefers-color-scheme: dark){.print-label-modal-overlay{background:#000000b3}.preview-container{background:repeating-linear-gradient(45deg,var(--color-bg),var(--color-bg) 10px,rgba(255,255,255,.03) 10px,rgba(255,255,255,.03) 20px)}}.component-detail-page{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.detail-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:0 32px;height:70px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.detail-header .header-right{display:flex;align-items:center;gap:24px}.detail-header .page-title{display:flex;align-items:center;gap:16px}.detail-header .title-icon{width:48px;height:48px;padding:12px;background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-lg);color:var(--color-primary);flex-shrink:0}.detail-header .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2;font-family:JetBrains Mono,Fira Code,monospace}.detail-header .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.detail-header .back-button{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.detail-header .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.detail-header .back-button svg{width:18px;height:18px}.edit-actions{display:flex;align-items:center;gap:8px}.save-success{display:flex;align-items:center;gap:6px;padding:8px 12px;background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:var(--radius-md);color:var(--color-success);font-size:13px;font-weight:500;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.detail-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px;padding:60px 20px}.detail-loading .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.detail-loading p{color:var(--color-text-secondary);font-size:14px}.spinner-small{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}.detail-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px;padding:60px 20px;text-align:center}.detail-error svg{width:64px;height:64px;color:var(--color-error);opacity:.7}.detail-error h2{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0}.detail-error p{color:var(--color-text-secondary);font-size:14px;margin:0;max-width:400px}.retry-btn{padding:10px 20px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.retry-btn:hover{background:var(--color-primary-dark)}.detail-content{flex:1;padding:32px;max-width:1400px;margin:0 auto;width:100%}.detail-grid{display:grid;grid-template-columns:300px 120px 1fr;grid-template-rows:auto auto auto auto auto;gap:20px}.detail-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.detail-section.full-width{grid-column:1 / -1}.detail-section.image-section{grid-column:1;grid-row:1}.detail-section.quantity-section{grid-column:1 / 3;grid-row:2 / 6}.detail-section.core-section{grid-column:2 / 4;grid-row:1}.detail-section.storage-section{grid-column:3;grid-row:2;align-self:start}.detail-section.supplier-section{grid-column:3;grid-row:4;align-self:start}.detail-section.projects-section{grid-column:3;grid-row:5;align-self:start}.detail-section.alternatives-section{grid-column:1 / 4;grid-row:6;align-self:start}.storage-summary{display:flex;gap:12px;margin-bottom:16px}.storage-card{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px 12px;background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-bg-secondary) 100%);border:1px solid var(--color-primary);border-radius:var(--radius-md);text-align:center}.taken-alert-box{display:flex;align-items:center;gap:12px;padding:16px;margin-top:16px;background:linear-gradient(135deg,#fb923c1a,#fb923c0d);border:2px solid #f97316;border-radius:var(--radius-md);color:var(--color-text-primary)}.taken-alert-box svg{flex-shrink:0;color:#f97316;width:20px;height:20px}.taken-alert-content{display:flex;flex-direction:column;gap:4px}.taken-alert-title{font-size:13px;font-weight:600;color:#f97316;text-transform:uppercase;letter-spacing:.05em}.taken-alert-value{font-size:15px;font-weight:600;color:var(--color-text-primary)}.storage-card .storage-value{font-size:24px;font-weight:700;color:var(--color-primary);line-height:1;font-family:JetBrains Mono,Fira Code,monospace}.storage-card .storage-label{font-size:11px;color:var(--color-text-secondary);margin-top:6px;text-transform:uppercase;letter-spacing:.5px}.detail-section.additional-section{grid-column:3;grid-row:3;align-self:stretch}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--color-border-light)}.section-header h2{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0;text-transform:uppercase;letter-spacing:.5px}.section-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--color-primary-light);border-radius:var(--radius-sm);color:var(--color-primary)}.section-icon svg{width:16px;height:16px}.image-container{position:relative;width:40%;aspect-ratio:1;background:var(--color-bg-secondary);border-radius:var(--radius-md);overflow:hidden;display:flex;align-items:center;justify-content:center;margin:0 auto}.image-container img{max-width:100%;max-height:100%;object-fit:contain}.image-container img.placeholder{opacity:.5;filter:grayscale(100%)}.image-edit-overlay{position:absolute;bottom:0;left:0;right:0;padding:12px;background:linear-gradient(to top,rgba(0,0,0,.8),transparent)}.image-input-label{display:flex;flex-direction:column;gap:6px}.image-input-label input{width:100%;padding:10px 12px;background:#fffffff2;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary)}.image-hint{font-size:11px;color:#ffffffb3}.field-group{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.field-group.three-columns{grid-template-columns:repeat(3,1fr)}.field-group.metadata-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.field{display:flex;flex-direction:column;gap:6px}.field.full-width{grid-column:1 / -1}.field label{font-size:12px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px}.field-value{font-size:14px;color:var(--color-text-primary);line-height:1.5}.field-value.primary{font-family:JetBrains Mono,Fira Code,monospace;font-weight:600;color:var(--color-primary)}.field-value.quantity{font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.field-value.quantity.low{color:var(--color-accent-warning)}.low-badge{padding:2px 8px;background:#f57f171a;border:1px solid rgba(245,127,23,.3);border-radius:var(--radius-sm);color:var(--color-accent-warning);font-size:11px;font-weight:500;text-transform:uppercase}.field-link{display:inline-flex;align-items:center;gap:6px;color:var(--color-primary);font-size:14px;text-decoration:none;transition:color var(--transition-fast)}.field-link:hover{color:var(--color-primary-dark);text-decoration:underline}.field-link svg{flex-shrink:0}.field-hint{display:inline-flex;align-items:center;margin-left:6px;color:var(--color-text-tertiary);cursor:help}.field-hint:hover{color:var(--color-text-secondary)}.aliases-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.alias-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:JetBrains Mono,Fira Code,monospace;color:var(--color-text-secondary)}.alias-tag.editable{padding-right:6px}.alias-remove{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;margin-left:4px;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.alias-remove:hover{background:#ef44441a;color:var(--color-accent-error)}.aliases-editor{display:flex;flex-direction:column;gap:12px}.aliases-editor.compact{gap:8px}.aliases-editor.compact .aliases-list{gap:4px}.aliases-editor.compact .alias-tag{padding:2px 8px;font-size:12px}.aliases-editor.compact .alias-add input{padding:6px 10px;font-size:12px}.alias-add{display:flex;flex-direction:column;gap:4px}.alias-add input{padding:8px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:JetBrains Mono,Fira Code,monospace;color:var(--color-text-primary);transition:border-color var(--transition-fast)}.alias-add input:focus{outline:none;border-color:var(--color-primary)}.alias-add-hint{font-size:11px;color:var(--color-text-tertiary)}.field input[type=text],.field input[type=url],.field input[type=number],.field textarea,.field select{padding:10px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-primary);font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.field textarea{resize:vertical;min-height:80px}.price-input{display:flex;gap:8px}.price-input input{flex:1;min-width:0}.price-input select{width:80px}.quantity-summary{margin-bottom:20px}.summary-card{display:flex;flex-direction:column;align-items:center;padding:16px 12px;background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-bg-secondary) 100%);border:1px solid var(--color-primary);border-radius:var(--radius-md);text-align:center}.summary-card.warning{background:linear-gradient(135deg,#fef3c7 0%,var(--color-bg-secondary) 100%);border-color:#f59e0b}.summary-value{font-size:24px;font-weight:700;color:var(--color-primary);line-height:1}.summary-card.warning .summary-value{color:#d97706}.summary-label{font-size:11px;color:var(--color-text-secondary);margin-top:4px;letter-spacing:.5px}.quantity-breakdown{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.breakdown-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border-light)}.breakdown-row:last-child{border-bottom:none}.breakdown-row.total{background:var(--color-bg);font-weight:600}.breakdown-row.threshold{background:var(--color-bg)}.breakdown-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.breakdown-label svg{color:var(--color-text-muted)}.breakdown-value{font-size:15px;font-weight:600;color:var(--color-text-primary)}.breakdown-value.on-order{color:#059669}.breakdown-value.reserved{color:#dc2626}.breakdown-input{width:80px;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;text-align:right}.quantity-adjust{display:flex;align-items:center;gap:12px;margin-top:16px;padding:12px;background:var(--color-bg-secondary);border-radius:var(--radius-sm)}.adjust-label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.adjust-controls{display:flex;align-items:center;gap:4px}.adjust-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;transition:all .2s}.adjust-btn svg{width:16px;height:16px}.adjust-btn.subtract{color:#dc2626}.adjust-btn.subtract:hover:not(:disabled){background:#fef2f2;border-color:#dc2626}.adjust-btn.add{color:#059669}.adjust-btn.add:hover:not(:disabled){background:#ecfdf5;border-color:#059669}.adjust-btn:disabled{opacity:.5;cursor:not-allowed}.adjust-input{width:60px;height:32px;padding:0 8px;text-align:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;font-weight:500;background:var(--color-bg);color:var(--color-text-primary)}.adjust-input:focus{outline:none;border-color:var(--color-primary)}.pending-orders-list{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border-light)}.pending-orders-list h4{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;margin:0 0 12px}.pending-order-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:8px}.pending-order-item.compact{gap:8px;padding:6px 10px;margin-bottom:4px;cursor:pointer;transition:all .2s}.pending-order-item.compact:hover{background:var(--color-bg-hover, #f3f4f6);border-color:var(--color-primary, #3b82f6)}.pending-order-item.compact .supplier-badge{width:22px;height:22px;font-size:9px;border-radius:4px;flex-shrink:0}.pending-order-item.compact .order-ref{font-weight:500;font-size:12px;color:var(--color-text-primary);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-order-item.compact .status-badge{font-size:10px;padding:1px 6px;border-radius:3px;background:#e5e7eb;color:#374151;text-transform:capitalize;flex-shrink:0}.pending-order-item.compact .status-badge.shipped{background:#dbeafe;color:#1e40af}.pending-order-item.compact .status-badge.ordered{background:#fef3c7;color:#92400e}.pending-order-item.compact .qty-pending{font-size:12px;font-weight:600;color:#059669;flex-shrink:0;white-space:nowrap}.pending-order-item.compact .external-link{color:var(--color-text-muted);padding:2px;transition:color .2s;flex-shrink:0}.pending-order-item.compact .external-link:hover{color:var(--color-primary)}.pending-order-item .order-info{display:flex;align-items:center;gap:10px;flex:1}.pending-order-item .supplier-badge{width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}.pending-order-item .supplier-badge.digikey{background:#c00}.pending-order-item .supplier-badge.mouser{background:#004b87}.pending-order-item .supplier-badge.other{background:#6b7280}.pending-order-item .order-details{display:flex;flex-direction:column;gap:2px}.pending-order-item .order-ref{font-weight:500;font-size:13px;color:var(--color-text-primary)}.pending-order-item .order-status{font-size:11px;color:var(--color-text-muted);text-transform:capitalize}.pending-order-item .order-qty{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.pending-order-item .qty-pending{font-size:18px;font-weight:600;color:#059669}.pending-order-item .qty-label{font-size:10px;color:var(--color-text-muted);text-transform:uppercase}.pending-order-item .order-link{color:var(--color-text-muted);padding:4px;transition:color .2s}.pending-order-item .order-link:hover{color:var(--color-primary)}.reservations-list{margin-top:16px;padding-top:16px;border-top:1px solid var(--color-border-light)}.reservations-list h4{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;margin:0 0 12px}.reservation-item{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);margin-bottom:6px}.res-name{flex:1;font-size:13px;font-weight:500;color:var(--color-text-primary)}.res-name.clickable{color:var(--color-primary);cursor:pointer;transition:color .15s ease}.res-name.clickable:hover{color:var(--color-primary-dark);text-decoration:underline}.res-type{font-size:11px;padding:2px 8px;background:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-sm);text-transform:uppercase}.res-qty{font-size:14px;font-weight:600;color:var(--color-text-primary)}.detail-section.projects-section{background:var(--color-bg)}.projects-loading,.projects-empty{padding:20px;text-align:center;color:var(--color-text-secondary);font-size:14px}.projects-list{display:flex;flex-direction:column;gap:4px}.project-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:all .15s ease}.project-item.clickable{cursor:pointer}.project-item:hover{border-color:var(--color-primary)}.project-item.clickable:hover{background:var(--color-bg-hover)}.project-info{display:flex;flex-direction:column;gap:2px;min-width:0}.project-id{font-size:12px;font-weight:600;color:var(--color-primary)}.project-name{font-size:13px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.project-status{font-size:11px;padding:2px 6px;border-radius:4px;text-transform:capitalize}.project-status.status-active{background:#22c55e26;color:#22c55e}.project-status.status-planning{background:#3b82f626;color:#3b82f6}.project-status.status-completed{background:#9ca3af26;color:#9ca3af}.project-status.status-on_hold{background:#fbbf2426;color:#fbbf24}.project-status.status-disabled{background:#ef444426;color:#ef4444}.project-alt-badge{font-size:10px;padding:2px 5px;background:#fb923c26;color:#f97316;border-radius:4px;font-weight:500}.projects-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border)}.projects-pagination .pagination-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.projects-pagination .pagination-btn:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.projects-pagination .pagination-btn:disabled{opacity:.4;cursor:not-allowed}.projects-pagination .pagination-btn svg{width:14px;height:14px}.projects-pagination .pagination-info{font-size:12px;color:var(--color-text-secondary);min-width:50px;text-align:center}.detail-section.alternatives-section{background:var(--color-bg)}.alternatives-intro{font-size:13px;color:var(--color-text-secondary);margin-bottom:16px}.alternatives-loading{padding:20px;text-align:center;color:var(--color-text-muted)}.alternatives-list{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}.alternative-card{display:flex;gap:12px;padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease}.alternative-card.clickable{cursor:pointer}.alternative-card:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #00000014}.alternative-card.clickable:hover{background:var(--color-bg-hover)}.alt-image{width:60px;height:60px;flex-shrink:0;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-bg);border:1px solid var(--color-border-light)}.alt-image img{width:100%;height:100%;object-fit:contain}.alt-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.alt-pn{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alt-manufacturer{font-size:12px;color:var(--color-text-secondary)}.alt-description{font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alt-usage{display:flex;flex-direction:column;gap:2px;align-items:flex-end;font-size:11px;color:var(--color-text-muted);text-align:right}.alt-relationship{font-size:10px;padding:2px 6px;background:#f59e0b1a;color:var(--color-warning, #f59e0b);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px}.alt-count{font-weight:500}.alt-last-project{color:var(--color-text-secondary)}.project-link{color:var(--color-primary);cursor:pointer;transition:color .15s ease}.project-link:hover{color:var(--color-primary-dark);text-decoration:underline}.audit-section{background:var(--color-bg-secondary)}.audit-info{display:flex;flex-wrap:wrap;gap:24px}.audit-item{display:flex;flex-direction:column;gap:4px}.audit-label{font-size:11px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.3px}.audit-value{font-size:13px;color:var(--color-text-secondary)}.audit-value.mono{font-family:JetBrains Mono,Fira Code,monospace}.audit-by{margin-left:4px;color:var(--color-text-muted)}@media (max-width: 1200px){.detail-grid{grid-template-columns:260px 1fr}}@media (max-width: 900px){.detail-grid{grid-template-columns:1fr;grid-template-rows:auto}.detail-section.image-section,.detail-section.quantity-section,.detail-section.core-section,.detail-section.storage-section,.detail-section.additional-section{grid-column:1;grid-row:auto}.detail-section.image-section{max-width:400px;margin:0 auto}.image-container{aspect-ratio:4/3}}@media (max-width: 768px){.detail-header{padding:12px 16px;height:auto;min-height:70px;flex-wrap:wrap;gap:12px}.detail-header .back-button{padding:6px 12px;font-size:13px}.detail-header .page-title h1{font-size:16px}.detail-header .page-title p{display:none}.detail-header .title-icon{width:40px;height:40px;padding:10px}.detail-header .header-right{gap:12px}.detail-content{padding:16px}.field-group{grid-template-columns:1fr}.edit-actions{flex-wrap:wrap}}@media (max-width: 480px){.audit-info{flex-direction:column;gap:12px}}.activity-log{margin-top:24px;padding-top:20px;border-top:1px solid var(--color-border-light)}.activity-log h3{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.activity-loading,.activity-empty{font-size:13px;color:var(--color-text-muted);padding:12px;text-align:center;background:var(--color-bg);border-radius:var(--radius-sm)}.activity-list{display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.activity-item.compact{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--color-bg);border-radius:var(--radius-sm);border:1px solid var(--color-border-light)}.activity-item.compact .activity-icon{width:22px;height:22px}.activity-item.compact .activity-icon svg{width:12px;height:12px}.activity-item.compact .activity-description{flex:1;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-item.compact .activity-qty{font-size:11px;padding:1px 5px;flex-shrink:0}.activity-item.compact .activity-user{font-size:11px;color:var(--color-text-muted);flex-shrink:0;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-item.compact .activity-time{font-size:11px;color:var(--color-text-muted);flex-shrink:0;white-space:nowrap}.activity-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.activity-icon svg{width:14px;height:14px}.activity-item.quantity_add .activity-icon{background:#ecfdf5;color:#059669}.activity-item.quantity_subtract .activity-icon{background:#fef2f2;color:#dc2626}.activity-item.quantity_received .activity-icon{background:#dbeafe;color:#2563eb}.activity-item.edit .activity-icon{background:#fef3c7;color:#d97706}.activity-item.create .activity-icon{background:#f3e8ff;color:#9333ea}.activity-item.order_linked .activity-icon,.activity-item.order_unlinked .activity-icon{background:#e0e7ff;color:#4f46e5}.activity-item.other .activity-icon,.activity-item.quantity_reserved .activity-icon{background:#f3f4f6;color:#6b7280}.activity-content{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.activity-description{font-size:13px;color:var(--color-text-primary);flex:1}.activity-order-link{color:var(--color-primary, #3b82f6);cursor:pointer;text-decoration:underline}.activity-order-link:hover{color:var(--color-primary-dark, #2563eb)}.activity-project-link{color:var(--color-primary, #3b82f6);cursor:pointer;text-decoration:underline}.activity-project-link:hover{color:var(--color-primary-dark, #2563eb)}.activity-qty{font-size:12px;font-weight:600;padding:2px 6px;border-radius:4px}.activity-qty.positive{background:#ecfdf5;color:#059669}.activity-qty.negative{background:#fef2f2;color:#dc2626}.activity-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.activity-user,.activity-time{font-size:11px;color:var(--color-text-muted)}.detail-footer{position:sticky;bottom:0;background:var(--color-bg);border-top:1px solid var(--color-border);padding:16px 32px;z-index:100}.footer-content{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:flex-end;gap:12px}.footer-content .save-success{margin-right:auto}.footer-actions{display:flex;align-items:center;gap:8px}.footer-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.footer-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.footer-btn:disabled{opacity:.6;cursor:not-allowed}.footer-btn svg{flex-shrink:0;width:14px;height:14px}.footer-btn.cancel{background:var(--color-bg);color:var(--color-text-primary)}.footer-btn.cancel:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.footer-btn.save{background:var(--color-success);border-color:var(--color-success);color:#fff}.footer-btn.save:hover:not(:disabled){background:#059669;border-color:#059669}.footer-btn.edit{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.footer-btn.edit:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.footer-left{display:flex;align-items:center;gap:8px;flex:1}.footer-btn.api-refresh{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--color-text)}.footer-btn.api-refresh:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:#fff}.footer-btn.secondary{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--color-text-muted);padding:6px 10px;font-size:12px}.footer-btn.secondary:hover:not(:disabled){background:var(--color-bg);color:var(--color-text)}.footer-btn.print-label{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--color-text)}.footer-btn.print-label:hover:not(:disabled){background:#6366f1;border-color:#6366f1;color:#fff}.print-message{display:flex;align-items:center;gap:6px;font-size:13px;padding:4px 8px;border-radius:var(--radius-sm)}.print-message.success{color:var(--color-success);background:#10b9811a}.print-message.error{color:var(--color-error);background:#ef44441a}.print-message svg{flex-shrink:0}.lookup-error{font-size:12px;color:var(--color-danger)}.image-api-badge{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:#10b981e6;color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:500;display:flex;align-items:center;gap:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog{background:var(--color-bg);border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-width:900px;width:100%;max-height:80vh;display:flex;flex-direction:column;border:1px solid var(--color-border)}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.dialog-header h3{margin:0;font-size:18px;font-weight:600;color:var(--color-text)}.dialog-close{background:none;border:none;padding:4px;cursor:pointer;color:var(--color-text-muted);border-radius:6px;transition:all .2s}.dialog-close:hover{background:var(--color-bg-secondary);color:var(--color-text)}.dialog-body{padding:16px 20px;overflow-y:auto;flex:1}.dialog-hint{font-size:14px;color:var(--color-text-muted);margin:0 0 16px}.results-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:8px}.results-table{width:100%;border-collapse:collapse;font-size:13px}.results-table th{background:var(--color-bg-secondary);padding:10px 12px;text-align:left;font-weight:600;color:var(--color-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06);white-space:nowrap}.results-table th:last-child{border-right:none}.results-table td{padding:10px 12px;border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06);vertical-align:middle}.results-table td:last-child{border-right:none}.results-table tbody tr{cursor:pointer;transition:background .15s}.results-table tbody tr:hover{background:var(--color-bg-secondary)}.results-table tbody tr.selected{background:#14b8a61a}.results-table tbody tr.selected td{border-bottom-color:#14b8a633}.results-table tbody tr:last-child td{border-bottom:none}.result-image{width:50px}.result-image img{width:40px;height:40px;object-fit:contain;border-radius:4px;background:#f5f5f5}.result-image .no-image{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:4px;color:var(--color-text-muted)}.result-mpn{font-weight:600;color:var(--color-primary);white-space:nowrap}.result-desc{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted)}.result-supplier-ref{display:flex;flex-direction:column;gap:4px}.supplier-ref-value{font-family:monospace;font-size:12px;color:var(--color-text);font-weight:500}.result-package{font-size:12px;color:var(--color-text-muted);white-space:nowrap}.result-price{font-weight:600;color:var(--color-success);white-space:nowrap}.source-badge{display:inline-block;padding:3px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.source-badge.digikey{background:#cc44441a;color:#c44}.source-badge.mouser{background:#006bb61a;color:#006bb6}.source-badge.lcsc{background:#ff99001a;color:#f90}.match-score{font-weight:600;color:var(--color-success)}.select-btn{padding:4px 10px;background:var(--color-primary);color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}.select-btn:hover{background:var(--color-primary-dark)}@media (max-width: 768px){.detail-footer{padding:16px}.footer-content{flex-direction:column;gap:12px}.footer-left{width:100%;justify-content:center}.footer-content .save-success{margin-right:0;order:-1}.footer-actions{width:100%;justify-content:flex-end}.dialog{max-width:100%;max-height:90vh;margin:0}.results-table{font-size:12px}.result-desc{max-width:150px}}@media (prefers-color-scheme: dark){.image-container{background:#1a1a1a}.image-input-label input{background:var(--color-bg)}.save-success{background:#4caf5026;border-color:#4caf5066}.detail-footer{background:linear-gradient(to top,var(--color-bg) 85%,transparent)}}.cert-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .2s ease}.cert-modal-content{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:0 20px 60px #0000004d;max-width:500px;width:90%;max-height:90vh;overflow:hidden;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.cert-modal-header{display:flex;align-items:flex-start;gap:16px;padding:24px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.cert-modal-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:var(--radius-lg);color:#fff;flex-shrink:0}.cert-modal-icon svg{width:24px;height:24px}.cert-modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.cert-modal-header p{margin:4px 0 0;font-size:13px;color:var(--color-text-secondary)}.cert-modal-close{margin-left:auto;padding:8px;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast)}.cert-modal-close:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.cert-modal-close svg{width:20px;height:20px}.cert-modal-body{padding:24px}.cert-modal-description{margin:0 0 20px;font-size:14px;line-height:1.6;color:var(--color-text-secondary)}.cert-modal-steps{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:16px 20px;margin-bottom:16px}.cert-modal-steps h3{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--color-text-primary)}.cert-modal-steps ol{margin:0;padding:0;list-style:none}.cert-modal-steps li{display:flex;align-items:flex-start;gap:12px;padding:8px 0;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.cert-modal-steps li:not(:last-child){border-bottom:1px solid var(--color-border)}.step-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-primary);color:#fff;border-radius:50%;font-size:12px;font-weight:600;flex-shrink:0}.cert-modal-steps li strong{color:var(--color-text-primary)}.cert-modal-note{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:var(--radius-md);font-size:12px;color:var(--color-text-secondary);line-height:1.5}.cert-modal-note svg{flex-shrink:0;color:#3b82f6;margin-top:2px}.cert-modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.cert-btn-secondary{padding:10px 20px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.cert-btn-secondary:hover{background:var(--color-bg-hover);border-color:var(--color-text-secondary)}.cert-btn-primary{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.cert-btn-primary:hover{background:var(--color-primary-dark)}.cert-btn-reconnect{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#059669;border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.cert-btn-reconnect:hover:not(:disabled){background:#047857}.cert-btn-reconnect:disabled{opacity:.7;cursor:not-allowed}.cert-btn-reconnect.success{background:#059669}.cert-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:cert-spin .6s linear infinite}@keyframes cert-spin{to{transform:rotate(360deg)}}.cert-reconnect-result{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;line-height:1.5;margin-bottom:12px;animation:fadeIn .2s ease}.cert-reconnect-result.success{background:#0596691f;border:1px solid rgba(5,150,105,.3);color:#059669}.cert-reconnect-result.error{background:#ef44441a;border:1px solid rgba(239,68,68,.25);color:#dc2626}.cert-reconnect-result svg{flex-shrink:0}.cert-modal-footer{flex-wrap:wrap}@media (prefers-color-scheme: dark){.cert-modal-note{background:#3b82f626;border-color:#3b82f64d}.cert-reconnect-result.success{background:#05966926;border-color:#05966959;color:#34d399}.cert-reconnect-result.error{background:#ef444426;border-color:#ef44444d;color:#f87171}}.configuration-page .section-icon.printer{background:#fff;border:1px solid var(--color-border);color:#6b7280}.printer-connection-status{margin-bottom:12px}.printer-status{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md);font-size:12px;font-weight:500}.printer-status.connected{background:#4caf501a;color:var(--color-success);border:1px solid rgba(76,175,80,.3)}.printer-status.disconnected{background:#f57f171a;color:var(--color-accent-warning);border:1px solid rgba(245,127,23,.3)}.printer-status.disabled{background:#6b72801a;color:var(--color-text-secondary);border:1px solid var(--color-border)}.printer-status .status-action{margin-left:6px;padding:3px 8px;background:var(--color-primary);border:none;border-radius:var(--radius-sm);color:#fff;font-size:11px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.printer-status .status-action:hover{background:var(--color-primary-dark)}.printer-select-wrapper{display:flex;gap:8px}.printer-select-wrapper select{flex:1;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg);cursor:pointer;transition:border-color var(--transition-fast)}.printer-select-wrapper select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.printer-select-wrapper select:disabled{opacity:.6;cursor:not-allowed}.refresh-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.refresh-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.print-settings-panel{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:12px;margin-bottom:16px}.print-settings-panel h3{margin:0 0 10px;font-size:12px;font-weight:600;color:var(--color-text-primary)}.setting-row{margin-bottom:12px}.setting-row:last-child{margin-bottom:0}.setting-row label{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;font-size:12px;font-weight:500;color:var(--color-text-primary)}.setting-value{font-weight:600;color:var(--color-primary);font-size:12px}.setting-slider{width:100%;height:6px;border-radius:3px;background:var(--color-border);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.setting-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0003}.setting-slider::-webkit-slider-thumb:hover{background:var(--color-primary-dark);transform:scale(1.1)}.setting-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--color-primary);cursor:pointer;border:none;transition:all .2s;box-shadow:0 2px 4px #0003}.setting-slider::-moz-range-thumb:hover{background:var(--color-primary-dark);transform:scale(1.1)}.setting-labels{display:flex;justify-content:space-between;margin-top:4px;font-size:10px;color:var(--color-text-muted)}.configuration-page .form-field select{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg);cursor:pointer;transition:border-color var(--transition-fast);width:100%}.configuration-page .form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.browser-print-info{margin-top:16px;padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.browser-print-info h4{margin:0 0 6px;font-size:12px;font-weight:600;color:var(--color-text-primary)}.browser-print-info p{margin:0 0 10px;font-size:12px;color:var(--color-text-secondary);line-height:1.4}.download-link{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;background:var(--color-primary);border-radius:var(--radius-md);color:#fff;font-size:12px;font-weight:500;text-decoration:none;transition:background var(--transition-fast)}.download-link:hover{background:var(--color-primary-dark)}.spinner-small{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.action-btn:not(.primary) .spinner-small{border-color:#0003;border-top-color:var(--color-text-primary)}.refresh-btn .spinner-small{width:16px;height:16px;border-color:#0003;border-top-color:var(--color-primary)}@media (prefers-color-scheme: dark){.print-settings-panel,.browser-print-info{background:#0003}.setting-slider{background:#ffffff1a}}user-cell .user-table-container{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;box-shadow:var(--shadow-sm)}.user-table-header{padding:20px 24px;border-bottom:1px solid var(--color-border)}.user-table-header h2{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.user-table-wrapper{overflow-x:auto}.user-table{width:100%;border-collapse:collapse}.user-table thead{background:var(--color-bg-secondary)}.user-table th{padding:12px 24px;text-align:left;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06)}.user-table th:last-child{border-right:none}.user-table tbody{background:var(--color-bg)}.user-table tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.user-table tbody tr:hover{background:var(--color-bg-secondary)}.user-table tbody tr:last-child{border-bottom:none}.user-table tbody tr.user-blocked{opacity:.6}.user-table td{padding:16px 24px;font-size:14px;color:var(--color-text-primary);border-right:1px solid rgba(0,0,0,.06)}.user-table td:last-child{border-right:none}.user-cell{display:flex;align-items:center;gap:12px}.user-avatar-small,.user-avatar-small-placeholder{width:40px;height:40px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.user-avatar-small-placeholder{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;color:#fff}.user-avatar-small-placeholder.hidden{display:none}.user-cell .user-info{display:flex;flex-direction:row;min-width:0}.user-name-text{font-weight:500;color:var(--color-text-primary);display:flex;align-items:center;gap:8px}.you-badge{padding:2px 8px;background:var(--color-primary-light);color:var(--color-primary);border-radius:10px;font-size:11px;font-weight:600;text-transform:uppercase}.user-email-text{font-size:13px;color:var(--color-text-secondary)}.role-badge{display:inline-flex;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.role-badge.admin{background:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-primary)}.role-badge.user{background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.status-badge{display:inline-flex;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.status-badge.active{background:#e8f5e9;color:var(--color-success);border:1px solid var(--color-success)}.status-badge.blocked{background:#fff5f5;color:var(--color-error);border:1px solid var(--color-error)}.date-text,.permissions-count{color:var(--color-text-secondary);font-size:13px}.edit-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.edit-button:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.edit-button svg{width:14px;height:14px}@media (max-width: 1024px){.user-table{min-width:900px}}@media (prefers-color-scheme: dark){.user-table-container{background:var(--color-bg);border-color:var(--color-border)}.user-table thead{background:var(--color-bg-secondary)}.user-table tbody tr:hover{background:#ffffff05}.role-badge.user{background:var(--color-bg-secondary);border-color:var(--color-border-light)}.status-badge.active{background:#4caf5026;border-color:#4caf5066}.status-badge.blocked{background:#ef444426;border-color:#ef444466}.edit-button{background:var(--color-bg-secondary);border-color:var(--color-border)}.edit-button:hover{background:#2d899826}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:0 25px 50px -12px #00000080;max-width:600px;width:100%;max-height:90vh;display:flex;flex-direction:column;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--color-border)}.modal-user-info{display:flex;align-items:center;gap:16px}.modal-user-avatar,.modal-user-avatar-placeholder{width:48px;height:48px;border-radius:var(--radius-lg);object-fit:cover;flex-shrink:0}.modal-user-avatar-placeholder{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;color:#fff}.modal-user-avatar-placeholder.hidden{display:none}.modal-user-info h2{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.modal-user-info p{font-size:14px;color:var(--color-text-secondary);margin:0}.close-button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.close-button:hover{background:#fff5f5;border-color:var(--color-error);color:var(--color-error)}.close-button svg{width:18px;height:18px}.modal-body{flex:1;overflow-y:auto;padding:24px}.error-message{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff5f5;border:1px solid #feb2b2;border-radius:var(--radius-md);color:var(--color-error);font-size:13px;margin-bottom:24px}.form-section{margin-bottom:32px}.form-section:last-child{margin-bottom:0}.form-section h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.section-description{font-size:13px;color:var(--color-text-secondary);margin:0 0 16px}.user-details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:12px;font-weight:500;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:14px;color:var(--color-text-primary)}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.checkbox-label{display:flex;align-items:center;gap:12px;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:var(--color-primary)}.checkbox-label span{font-size:14px;font-weight:500;color:var(--color-text-primary)}.help-text{font-size:13px;color:var(--color-text-secondary);margin:8px 0 0 30px;line-height:1.4}.warning-text{font-size:12px;color:var(--color-accent-warning);margin:8px 0 0 30px;font-weight:500}.permissions-loading{padding:20px;text-align:center;color:var(--color-text-secondary);font-size:14px}.permissions-categories{display:flex;flex-direction:column;gap:24px}.permission-category{display:flex;flex-direction:column;gap:12px}.category-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0;text-transform:uppercase;letter-spacing:.5px}.category-description{font-size:13px;color:var(--color-text-secondary);margin:0}.permissions-grid{display:grid;gap:12px}.permission-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.permission-item:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.permission-item input[type=checkbox]{width:18px;height:18px;margin-top:2px;cursor:pointer;accent-color:var(--color-primary);flex-shrink:0}.permission-info{flex:1;display:flex;flex-direction:column;gap:4px}.permission-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.permission-description{font-size:12px;color:var(--color-text-secondary);line-height:1.4}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:24px;border-top:1px solid var(--color-border)}.button-secondary,.button-primary{padding:10px 20px;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.button-secondary{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-primary)}.button-secondary:hover:not(:disabled){background:var(--color-bg-secondary)}.button-primary{background:var(--color-primary);border:1px solid var(--color-primary);color:#fff}.button-primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.button-secondary:disabled,.button-primary:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 640px){.modal-content{max-height:95vh}.modal-header,.modal-body,.modal-footer{padding:16px}.user-details-grid{grid-template-columns:1fr}.modal-footer{flex-direction:column}.button-secondary,.button-primary{width:100%}}@media (prefers-color-scheme: dark){.modal-content{background:var(--color-bg);box-shadow:0 25px 50px -12px #000c}.close-button{background:var(--color-bg-secondary);border-color:var(--color-border)}.close-button:hover{background:#ef44441a}.error-message{background:#ef44441a;border-color:#ef44444d}.permission-item{background:#ffffff05;border-color:var(--color-border)}.permission-item:hover{background:#2d89981a}.button-secondary{background:var(--color-bg-secondary);border-color:var(--color-border)}.button-secondary:hover:not(:disabled){background:var(--color-bg)}}.configuration-page{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.configuration-page .page-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:0 24px;height:56px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.configuration-page .back-button{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.configuration-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.configuration-page .back-button svg{width:16px;height:16px}.configuration-page .page-title{display:flex;align-items:center;gap:12px}.configuration-page .title-icon{width:36px;height:36px;padding:8px;background:#fce4ec;border:1px solid #e91e63;border-radius:var(--radius-md);color:#e91e63;flex-shrink:0}.configuration-page .page-title h1{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.configuration-page .page-title p{font-size:12px;color:var(--color-text-secondary);margin:2px 0 0}.configuration-page .page-content{flex:1;padding:20px;max-width:1100px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:16px}.configuration-page .config-tabs{display:flex;gap:4px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:4px}.configuration-page .config-tab{display:flex;align-items:center;gap:8px;padding:10px 16px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);flex:1;justify-content:center}.configuration-page .config-tab:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.configuration-page .config-tab.active{background:var(--color-primary);color:#fff}.configuration-page .config-tab svg{flex-shrink:0}.configuration-page .success-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#4caf501a;border:1px solid rgba(76,175,80,.3);border-radius:var(--radius-md);color:var(--color-success);font-size:13px;animation:slideIn .3s ease}.configuration-page .success-banner svg{flex-shrink:0}.configuration-page .error-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff5f5;border:1px solid #feb2b2;border-radius:var(--radius-md);color:var(--color-error);font-size:13px;animation:slideIn .3s ease}.configuration-page .error-banner svg{flex-shrink:0}.configuration-page .error-banner span{flex:1}.configuration-page .error-banner button{padding:6px 12px;border:1px solid currentColor;border-radius:var(--radius-md);background:transparent;color:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.configuration-page .error-banner button:hover{background:var(--color-error);color:#fff}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.configuration-page .config-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.configuration-page .section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);gap:12px}.configuration-page .section-title{display:flex;align-items:center;gap:12px}.configuration-page .section-icon{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);flex-shrink:0;font-weight:700;font-size:14px}.configuration-page .section-icon svg{width:18px;height:18px}.configuration-page .section-icon.digikey{background:linear-gradient(135deg,#c00,#900);color:#fff}.configuration-page .section-icon.mouser{background:#0070bb;color:#fff}.configuration-page .section-icon.other{background:linear-gradient(135deg,#9c27b0,#7b1fa2);color:#fff}.configuration-page .section-icon.users{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:#fff}.configuration-page .section-title h2{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0}.configuration-page .section-title p{font-size:12px;color:var(--color-text-secondary);margin:2px 0 0}.configuration-page .toggle-switch{display:flex;align-items:center;gap:8px;cursor:pointer}.configuration-page .toggle-switch input{display:none}.configuration-page .toggle-slider{width:36px;height:20px;background:var(--color-border);border-radius:10px;position:relative;transition:background var(--transition-fast)}.configuration-page .toggle-slider:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0003;transition:transform var(--transition-fast)}.configuration-page .toggle-switch input:checked+.toggle-slider{background:var(--color-success)}.configuration-page .toggle-switch input:checked+.toggle-slider:after{transform:translate(16px)}.configuration-page .toggle-label{font-size:12px;font-weight:500;color:var(--color-text-primary)}.configuration-page .section-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:10px}.configuration-page .section-loading .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.configuration-page .section-loading p{font-size:14px;color:var(--color-text-secondary)}.configuration-page .section-content{padding:16px}.configuration-page .form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px}.configuration-page .form-field{display:flex;flex-direction:column;gap:4px}.configuration-page .form-field.full-width{grid-column:span 2}.configuration-page .form-field label{font-size:12px;font-weight:500;color:var(--color-text-primary)}.configuration-page .form-field input{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.configuration-page .form-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.configuration-page .form-field input::placeholder{color:var(--color-text-muted)}.configuration-page .field-hint{font-size:11px;color:var(--color-text-muted)}.configuration-page .auth-status{padding:12px;background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-bottom:16px}.configuration-page .auth-status h3{font-size:12px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.configuration-page .status-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:500}.configuration-page .status-badge.authenticated{background:#4caf501a;color:var(--color-success);border:1px solid rgba(76,175,80,.3)}.configuration-page .status-badge.not-authenticated{background:#f57f171a;color:var(--color-accent-warning);border:1px solid rgba(245,127,23,.3)}.configuration-page .status-badge .expires{font-size:12px;opacity:.8;margin-left:4px}.configuration-page .status-badge .auto-refresh{font-size:12px;margin-left:6px;color:var(--color-success);cursor:help}.configuration-page .key-status-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.configuration-page .key-status-grid .status-badge{font-size:11px;padding:4px 8px}.configuration-page .auth-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#c00;border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition-fast);margin-top:12px}.configuration-page .auth-btn:hover{background:#900}.configuration-page .auth-btn.mouser-btn{background:#003e7e}.configuration-page .auth-btn.mouser-btn:hover{background:#002855}.configuration-page .auth-btn:disabled{opacity:.5;cursor:not-allowed}.configuration-page .auth-btn.small{padding:5px 10px;font-size:12px;margin-top:8px}.configuration-page .test-result{padding:10px 12px;border-radius:var(--radius-md);margin-bottom:16px}.configuration-page .test-result.success{background:#4caf501a;border:1px solid rgba(76,175,80,.3)}.configuration-page .test-result.error{background:#e74c3c1a;border:1px solid rgba(231,76,60,.3)}.configuration-page .test-result-header{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.configuration-page .test-result.success .test-result-header{color:var(--color-success)}.configuration-page .test-result.error .test-result-header{color:var(--color-error)}.configuration-page .test-detail{font-size:12px;color:var(--color-text-secondary);margin:6px 0 0}.configuration-page .section-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding-top:12px;border-top:1px solid var(--color-border)}.configuration-page .action-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.configuration-page .action-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.configuration-page .action-btn:disabled{opacity:.5;cursor:not-allowed}.configuration-page .action-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.configuration-page .action-btn.primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.configuration-page .action-btn.primary.mouser{background:#003e7e;border-color:#003e7e}.configuration-page .action-btn.primary.mouser:hover{background:#002855;border-color:#002855}.configuration-page .spinner-small{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.configuration-page .action-btn:not(.primary) .spinner-small{border-color:#0003;border-top-color:var(--color-text-primary)}.configuration-page .last-updated{font-size:11px;color:var(--color-text-muted);text-align:right;margin-top:10px}.configuration-page .setting-row{display:flex;align-items:center;justify-content:space-between;padding:16px;background:var(--color-bg-secondary);border-radius:var(--radius-md);gap:16px}.configuration-page .setting-info{flex:1}.configuration-page .setting-info h3{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.configuration-page .setting-info p{font-size:12px;color:var(--color-text-secondary);margin:0}.configuration-page .empty-state{text-align:center;padding:32px;color:var(--color-text-muted)}.configuration-page .empty-state p{margin:0;font-size:14px}.configuration-page .users-section .section-content{padding:0}.configuration-page .users-section .user-table-container{border:none;border-radius:0;box-shadow:none}.configuration-page .users-section .user-table-header{display:none}.configuration-page .users-section .error-banner{margin:16px}.configuration-page .users-section .section-loading{padding:48px 16px}@media (max-width: 768px){.configuration-page .page-header{padding:12px 16px;height:auto;min-height:70px;flex-wrap:wrap;gap:12px}.configuration-page .back-button{padding:6px 12px;font-size:13px}.configuration-page .page-title h1{font-size:18px}.configuration-page .page-title p{display:none}.configuration-page .title-icon{width:40px;height:40px;padding:10px}.configuration-page .page-content{padding:16px}.configuration-page .config-tab{padding:8px 12px;font-size:13px}.configuration-page .config-tab span{display:none}.configuration-page .section-header{flex-direction:column;align-items:flex-start;gap:16px}.configuration-page .form-grid{grid-template-columns:1fr}.configuration-page .section-actions{flex-direction:column}.configuration-page .section-actions .action-btn{width:100%;justify-content:center}.configuration-page .setting-row{flex-direction:column;align-items:flex-start}}@media (prefers-color-scheme: dark){.configuration-page .title-icon{background:#e91e6326;border-color:#e91e6366}.configuration-page .error-banner{background:#ef44441a;border-color:#ef44444d}.configuration-page .success-banner{background:#4caf5026;border-color:#4caf5066}.configuration-page .auth-status{background:#0003}}.orders-page{min-height:100vh;background:var(--bg-primary, #f8f9fa);display:flex;flex-direction:column}.orders-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--bg-secondary, #ffffff);border-bottom:1px solid var(--border-color, #e5e7eb);gap:1rem;flex-wrap:wrap}.orders-header .back-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:.5rem;cursor:pointer;font-size:.875rem;color:var(--text-secondary, #6b7280);transition:all .2s}.orders-header .back-button:hover{background:var(--bg-hover, #f3f4f6);color:var(--text-primary, #111827)}.orders-header .back-button svg{width:1.25rem;height:1.25rem}.header-title{display:flex;align-items:center;gap:.75rem}.header-title svg{width:1.75rem;height:1.75rem;color:var(--primary-color, #3b82f6)}.header-title h1{margin:0;font-size:1.5rem;font-weight:600;color:var(--text-primary, #111827)}.header-actions{display:flex;gap:.75rem;flex-wrap:wrap}.scan-btn,.sync-btn,.add-btn{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border:none;border-radius:.5rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:all .2s}.scan-btn{background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e5e7eb);color:var(--text-primary, #111827)}.scan-btn:hover{background:#2d8998;border-color:#2d8998;color:#fff}.scan-btn svg{width:1.125rem;height:1.125rem}.sync-btn{background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e5e7eb);color:var(--text-primary, #111827)}.sync-btn:hover:not(:disabled){background:var(--primary-color, #3b82f6);border-color:var(--primary-color, #3b82f6);color:#fff}.sync-btn:disabled{opacity:.6;cursor:not-allowed}.sync-btn svg{width:1.125rem;height:1.125rem}.add-btn{background:var(--primary-color, #3b82f6);color:#fff}.add-btn:hover{background:var(--primary-hover, #2563eb)}.add-btn svg{width:1.125rem;height:1.125rem}.sync-toast{position:fixed;bottom:1rem;right:1rem;padding:1rem 1.5rem;border-radius:.5rem;display:flex;align-items:center;gap:1rem;font-size:.875rem;z-index:100;animation:slideIn .3s ease}.sync-toast.success{background:#d1fae5;color:#065f46}.sync-toast.error{background:#fee2e2;color:#991b1b}.sync-toast button{background:transparent;border:none;font-size:1.25rem;cursor:pointer;opacity:.7}.sync-toast button:hover{opacity:1}@keyframes slideIn{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.orders-filters{display:flex;gap:1rem;padding:1rem 2rem;background:var(--bg-secondary, #ffffff);border-bottom:1px solid var(--border-color, #e5e7eb);flex-wrap:wrap;align-items:center}.orders-filters select,.orders-filters .search-input{padding:.5rem .75rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;font-size:.875rem;background:var(--bg-primary, #f8f9fa)}.orders-filters .search-input{flex:1;min-width:200px}.filter-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary, #6b7280);cursor:pointer}.orders-content{flex:1;padding:1.5rem 2rem;overflow-y:auto;max-width:1400px;margin:0 auto;width:100%}.orders-loading,.orders-error,.orders-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;color:var(--text-secondary, #6b7280)}.orders-empty svg{width:4rem;height:4rem;margin-bottom:1rem;opacity:.5}.orders-empty h3{margin:0 0 .5rem;color:var(--text-primary, #111827)}.orders-list{display:flex;flex-direction:column;gap:.5rem}.order-card{background:var(--bg-secondary, #ffffff);border:1px solid var(--border-color, #e5e7eb);border-radius:.5rem;overflow:hidden;transition:box-shadow .2s}.order-card:hover{box-shadow:0 2px 8px #0000000d}.order-card.expanded{box-shadow:0 2px 8px #0000001a}.order-header{display:flex;align-items:center;padding:.625rem 1rem;cursor:pointer;gap:.75rem}.order-info{display:flex;align-items:center;gap:.75rem;min-width:220px}.supplier-badge{display:flex;align-items:center;justify-content:center;width:1.625rem;height:1.625rem;border-radius:.25rem;font-size:.625rem;font-weight:700;color:#fff;flex-shrink:0}.supplier-badge.digikey{background:#c00}.supplier-badge.mouser{background:#004b87}.supplier-badge.other{background:#6b7280}.order-ref{display:flex;flex-direction:column;gap:0}.order-number{font-weight:600;font-size:.8125rem;color:var(--text-primary, #111827);display:flex;align-items:center;gap:6px}.order-number .copy-btn{padding:2px;background:transparent;border:none;cursor:pointer;color:var(--text-muted, #9ca3af);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.order-number .copy-btn:hover{color:var(--primary, #3b82f6);background:#3b82f61a}.order-supplier{flex:1;display:flex;align-items:center;justify-content:flex-start;min-width:0;padding-left:1rem}.order-supplier .supplier-name{font-size:.8125rem;font-weight:500;color:var(--text-secondary, #6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-meta{display:flex;align-items:center;gap:.75rem}.status-badge{padding:.125rem .5rem;border-radius:.75rem;font-size:.6875rem;font-weight:500;text-transform:capitalize}.status-pending{background:#fef3c7;color:#92400e}.status-shipped{background:#dbeafe;color:#1e40af}.status-partial{background:#fce7f3;color:#9d174d}.status-received{background:#d1fae5;color:#065f46}.status-cancelled{background:#f3f4f6;color:#6b7280}.order-date{font-size:.75rem;color:var(--text-secondary, #6b7280)}.item-count{font-size:.75rem;color:var(--text-secondary, #6b7280);display:flex;align-items:center;gap:.375rem}.unmatched-badge{background:#fef3c7;color:#92400e;padding:.0625rem .375rem;border-radius:.1875rem;font-size:.625rem}.expand-icon{width:1rem;height:1rem;color:var(--text-secondary, #6b7280);transition:transform .2s}.order-card.expanded .expand-icon{transform:rotate(180deg)}.order-card.completed{opacity:.7;background:var(--bg-tertiary, #f0fdf4)}.order-card.completed .order-header{background:var(--bg-tertiary, #f0fdf4)}.completed-badge{display:inline-block;padding:.125rem .375rem;background:#10b981;color:#fff;font-size:.625rem;font-weight:500;border-radius:.25rem;margin-left:.5rem;text-transform:uppercase}.complete-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:.25rem;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s}.complete-btn:hover{background:var(--bg-hover, #f3f4f6);color:#10b981}.complete-btn.completed{background:#d1fae5;border-color:#10b981;color:#047857}.complete-btn.completed:hover{background:#a7f3d0}.complete-btn svg{width:14px;height:14px}.pagination{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.75rem 0;margin-top:.5rem;border-top:1px solid var(--border-color, #e5e7eb)}.pagination .page-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--primary-color, #3b82f6);border:none;border-radius:.375rem;color:#fff;cursor:pointer;transition:all .2s}.pagination .page-btn:hover:not(:disabled){background:var(--primary-hover, #2563eb)}.pagination .page-btn:disabled{background:var(--bg-tertiary, #e5e7eb);color:var(--text-secondary, #9ca3af);cursor:not-allowed}.pagination .page-btn svg{width:18px;height:18px}.pagination .page-info{font-size:.8125rem;font-weight:500;color:var(--text-secondary, #6b7280);min-width:60px;text-align:center}.order-details{border-top:1px solid var(--border-color, #e5e7eb);padding:1rem;background:var(--bg-primary, #f8f9fa)}.details-loading{display:flex;align-items:center;gap:.5rem;color:var(--text-secondary, #6b7280)}.order-summary{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:.75rem 1rem;background:var(--bg-secondary, #f9fafb);border-radius:6px}.view-order-link{display:inline-flex;align-items:center;gap:.25rem;color:var(--primary-color, #3b82f6);text-decoration:none;font-size:.875rem;font-weight:500}.view-order-link:hover{text-decoration:underline}.order-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem 1.5rem}.info-item{display:flex;gap:.5rem;font-size:.8125rem}.info-label{color:var(--text-secondary, #6b7280);flex-shrink:0}.info-value{font-weight:500;color:var(--text-primary, #111827)}.order-address{display:flex;gap:.5rem;font-size:.8125rem;padding-top:.5rem;border-top:1px solid var(--border-color, #e5e7eb)}.order-address .info-value{color:var(--text-secondary, #6b7280)}.order-notes{display:flex;gap:.5rem;font-size:.8125rem;padding-top:.5rem;border-top:1px solid var(--border-color, #e5e7eb)}.order-notes .info-value{color:var(--text-secondary, #6b7280);font-weight:400}.order-items-search{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;position:relative}.order-items-search-input{flex:1;padding:.5rem 2rem .5rem .75rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;font-size:.8125rem;background:var(--bg-secondary, #ffffff);color:var(--text-primary, #111827)}.order-items-search-input:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f61a}.order-items-search-input::placeholder{color:var(--text-secondary, #9ca3af)}.clear-search-btn{position:absolute;right:.5rem;background:transparent;border:none;font-size:1.25rem;color:var(--text-secondary, #9ca3af);cursor:pointer;padding:0 .25rem;line-height:1}.clear-search-btn:hover{color:var(--text-primary, #111827)}.items-table{width:100%;border-collapse:collapse;background:var(--bg-secondary, #ffffff);border-radius:.5rem;overflow:hidden;font-size:.875rem}.items-table th{text-align:left;padding:.75rem 1rem;background:var(--bg-primary, #f8f9fa);color:var(--text-secondary, #6b7280);font-weight:500;border-bottom:1px solid var(--border-color, #e5e7eb);border-right:1px solid rgba(0,0,0,.06)}.items-table th:last-child{border-right:none}.items-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color, #e5e7eb);border-right:1px solid rgba(0,0,0,.06)}.items-table td:last-child{border-right:none}.items-table tr:last-child td{border-bottom:none}.item-row.unmatched{background:#fffbeb}.item-row.highlight,.item-row.highlighted{animation:highlightPulse 10s ease-out}@keyframes highlightPulse{0%,10%{background:#bfdbfe;box-shadow:0 0 0 2px #3b82f6}to{background:transparent;box-shadow:none}}.pn-cell{font-weight:500}.pn-cell .component-link{color:var(--primary-color, #3b82f6);text-decoration:none;cursor:pointer}.pn-cell .component-link:hover{text-decoration:underline;color:var(--primary-hover, #2563eb)}.pn-cell .supplier-link{color:#059669;text-decoration:none;cursor:pointer}.pn-cell .supplier-link:hover{text-decoration:underline;color:#047857}.pn-cell .supplier-link:after{content:"";display:inline-block;width:10px;height:10px;margin-left:4px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23059669' stroke-width='2'%3E%3Cpath d='M18 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V8a2 2 0 012-2h6M15 3h6v6M10 14L21 3'/%3E%3C/svg%3E");background-size:contain;vertical-align:middle}.desc-cell{color:var(--text-secondary, #6b7280);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qty-cell{text-align:center;white-space:nowrap}.qty-cell .backorder-badge,.qty-cell .reserved-badge{display:inline-block;font-size:.625rem;padding:.0625rem .25rem;border-radius:.1875rem;margin-left:.25rem;vertical-align:middle}.qty-cell .backorder-badge{background:#fef3c7;color:#92400e}.qty-cell .reserved-badge{background:#dbeafe;color:#1e40af}.match-badge{padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem}.match-badge.matched{background:#d1fae5;color:#065f46}.match-badge.unmatched{background:#fef3c7;color:#92400e}.match-badge.skipped{background:#f3f4f6;color:#6b7280}.match-badge.non-inventory{background:#e0e7ff;color:#4338ca}.match-btn,.unskip-btn{padding:.25rem .75rem;border:none;border-radius:.25rem;cursor:pointer;font-size:.75rem}.match-btn{background:var(--primary-color, #3b82f6);color:#fff}.match-btn:hover{background:var(--primary-hover, #2563eb)}.unskip-btn{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.unskip-btn:hover{background:#e5e7eb}.action-cell{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap}.receive-item-btn{padding:.125rem .5rem;background:#10b981;color:#fff;border:none;border-radius:.25rem;cursor:pointer;font-size:.6875rem}.receive-item-btn:hover{background:#059669}.ignore-item-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:.25rem;color:var(--text-secondary, #6b7280);cursor:pointer}.ignore-item-btn:hover{background:var(--bg-hover, #f3f4f6)}.restore-item-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:#e0e7ff;border:1px solid #6366f1;border-radius:.25rem;color:#4338ca;cursor:pointer}.restore-item-btn:hover{background:#c7d2fe}.print-label-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:.25rem;color:var(--text-secondary, #6b7280);cursor:pointer;transition:all .2s}.print-label-btn:hover{background:#eff6ff;border-color:#3b82f6;color:#2563eb}.reset-item-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:.25rem;color:var(--text-secondary, #6b7280);cursor:pointer}.reset-item-btn:hover{background:#fef2f2;border-color:#ef4444;color:#dc2626}.storage-modal{max-width:400px}.storage-modal .modal-header h2{display:flex;align-items:center;gap:.75rem}.bulk-counter{font-size:.875rem;font-weight:500;color:var(--primary-color, #3b82f6);background:var(--primary-bg, #eff6ff);padding:.25rem .625rem;border-radius:1rem}.storage-modal .modal-footer{display:flex;gap:.5rem;justify-content:flex-end}.storage-modal .skip-btn{padding:.5rem 1rem;background:var(--bg-secondary, #f3f4f6);color:var(--text-primary, #374151);border:1px solid var(--border-color, #d1d5db);border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500}.storage-modal .skip-btn:hover{background:var(--bg-hover, #e5e7eb)}.order-select-modal{width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column}.order-select-modal .modal-body{overflow-y:auto;padding:1rem}.order-select-info{color:var(--text-secondary, #6b7280);margin-bottom:1rem;font-size:.875rem}.order-select-list{display:flex;flex-direction:column;gap:.75rem}.order-select-item{border:1px solid var(--border-color, #e5e7eb);border-radius:.5rem;padding:1rem;cursor:pointer;transition:all .15s ease;background:var(--bg-primary, #fff)}.order-select-item:hover{border-color:var(--primary-color, #3b82f6);box-shadow:0 2px 8px #3b82f626;background:var(--primary-bg, #eff6ff)}.order-select-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.order-select-header .order-ref{font-weight:600;color:var(--text-primary, #111827);font-size:1rem}.order-select-header .order-status{font-size:.75rem;padding:.25rem .5rem;border-radius:.25rem;font-weight:500;text-transform:capitalize}.order-select-header .status-pending{background:#fef3c7;color:#92400e}.order-select-header .status-ordered{background:#dbeafe;color:#1e40af}.order-select-header .status-shipped{background:#e0e7ff;color:#3730a3}.order-select-header .status-partial{background:#fce7f3;color:#9d174d}.order-select-details{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem}.order-select-details .detail-row{display:flex;gap:.5rem}.order-select-details .detail-label{color:var(--text-secondary, #6b7280);min-width:3rem}.order-select-details .detail-value{color:var(--text-primary, #374151);font-family:Monaco,Menlo,monospace;font-size:.75rem}.order-select-details .detail-value.description{font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.order-select-action{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-light, #f3f4f6)}.order-select-action .match-status{font-size:.75rem;font-weight:500}.order-select-action .match-status.matched{color:#059669}.order-select-action .match-status.unmatched{color:#d97706}.storage-info{margin-bottom:1rem;color:var(--text-secondary, #6b7280)}.storage-info strong{color:var(--text-primary, #111827);font-family:Monaco,Menlo,monospace}.component-preview{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary, #f9fafb);border-radius:.5rem;margin-bottom:1rem}.preview-image{flex-shrink:0;width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;overflow:hidden}.preview-image img{max-width:100%;max-height:100%;object-fit:contain}.preview-image .no-image{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-secondary, #9ca3af)}.preview-image .no-image svg{width:32px;height:32px}.preview-image .loading-spinner{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--primary-color, #3b82f6)}.preview-image .loading-spinner svg{width:32px;height:32px;animation:spin 1s linear infinite}.preview-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.preview-pn{font-weight:600;font-family:Monaco,Menlo,monospace;font-size:.9375rem;color:var(--text-primary, #111827)}.preview-manufacturer{font-size:.8125rem;color:var(--primary-color, #3b82f6)}.preview-description{font-size:.8125rem;color:var(--text-secondary, #6b7280);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.preview-qty{font-size:.75rem;color:var(--text-secondary, #6b7280);margin-top:.25rem}.preview-qty strong{color:var(--text-primary, #111827)}.storage-form{display:flex;flex-direction:column;gap:1rem}.storage-form .form-field{display:flex;flex-direction:column;gap:.25rem}.storage-form label{font-size:.875rem;font-weight:500;color:var(--text-primary, #111827)}.storage-form label .required{color:#ef4444}.storage-form input{padding:.5rem .75rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;font-size:.875rem;background:var(--input-bg, #fff);color:var(--text-primary, #111827)}.storage-form input:focus{outline:none;border-color:var(--primary-color, #3b82f6);box-shadow:0 0 0 2px #3b82f61a}.storage-form input:disabled{background:var(--bg-secondary, #f9fafb);color:var(--text-secondary, #6b7280);cursor:not-allowed}.dropdown-input{position:relative}.dropdown-list{position:absolute;top:100%;left:0;right:0;background:var(--bg-primary, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;box-shadow:0 4px 6px -1px #0000001a;z-index:10;max-height:150px;overflow-y:auto}.dropdown-item{width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--text-primary, #111827)}.dropdown-item:hover{background:var(--bg-hover, #f3f4f6)}.dropdown-item.selected{background:var(--primary-color, #3b82f6);color:#fff}.position-input{font-family:Monaco,Menlo,monospace}.position-hint{font-size:.75rem;color:var(--text-secondary, #6b7280)}.item-row.ignored,.item-row.non-inventory{opacity:.6;background:#f5f3ff}.item-row.received{background:#d1fae5}.item-row.received td{color:#065f46}.item-row.received .match-badge{background:#10b981;color:#fff}.received-badge{background:#d1fae5;color:#065f46;padding:.0625rem .375rem;border-radius:.1875rem;font-size:.625rem;font-weight:500}.ignored-item-badge{display:inline-block;margin-left:.5rem;padding:.0625rem .25rem;background:#9ca3af;color:#fff;font-size:.5625rem;border-radius:.125rem;text-transform:uppercase}.auto-match-btn{padding:.5rem 1rem;background:#8b5cf6;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.8125rem;font-weight:500;display:inline-flex;align-items:center;gap:.5rem}.auto-match-btn:hover:not(:disabled){background:#7c3aed}.auto-match-btn:disabled{opacity:.7;cursor:not-allowed}.bulk-create-btn{padding:.5rem 1rem;background:var(--primary-color, #3b82f6);color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.8125rem;font-weight:500}.bulk-create-btn:hover:not(:disabled){background:var(--primary-hover, #2563eb)}.bulk-create-btn:disabled{opacity:.7;cursor:not-allowed}.add-item-btn{padding:.5rem 1rem;background:#059669;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.8125rem;font-weight:500;display:inline-flex;align-items:center;gap:.375rem}.add-item-btn:hover{background:#047857}.add-item-btn svg{flex-shrink:0}.add-item-modal{width:100%;max-width:500px}.dropdown-input-wrapper{position:relative}.dropdown-suggestions{position:absolute;top:100%;left:0;right:0;background:var(--bg-color, #fff);border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;box-shadow:0 4px 12px #00000026;max-height:200px;overflow-y:auto;z-index:100;margin-top:2px}.dropdown-item{display:block;width:100%;padding:.5rem .75rem;text-align:left;background:none;border:none;cursor:pointer;font-size:.875rem;color:var(--text-primary, #111827)}.dropdown-item:hover{background:var(--hover-bg, #f3f4f6)}.price-currency-row{display:flex;gap:.5rem}.price-currency-row .price-input{flex:1}.price-currency-row .currency-select{width:80px;padding:.5rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;background:var(--bg-color, #fff);color:var(--text-primary, #111827);font-size:.875rem}.order-actions{display:flex;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color, #e5e7eb)}.receive-btn{padding:.5rem 1rem;background:#10b981;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-weight:500}.receive-btn:hover:not(:disabled){background:#059669}.receive-btn:disabled{opacity:.5;cursor:not-allowed}.delete-btn{padding:.5rem 1rem;background:transparent;color:#ef4444;border:1px solid #ef4444;border-radius:.375rem;cursor:pointer}.delete-btn:hover{background:#ef4444;color:#fff}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:2rem}.modal{background:var(--bg-secondary, #ffffff);border-radius:.75rem;width:100%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border-color, #e5e7eb)}.modal-header h2{margin:0;font-size:1.125rem}.modal-header .close-btn{background:transparent;border:none;font-size:1.5rem;cursor:pointer;opacity:.5}.modal-header .close-btn:hover{opacity:1}.modal-body{flex:1;overflow-y:auto;padding:1.5rem}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1rem 1.5rem;border-top:1px solid var(--border-color, #e5e7eb)}.cancel-btn{padding:.5rem 1rem;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;cursor:pointer}.confirm-btn{padding:.5rem 1rem;background:var(--primary-color, #3b82f6);color:#fff;border:none;border-radius:.375rem;cursor:pointer}.confirm-btn:hover:not(:disabled){background:var(--primary-hover, #2563eb)}.confirm-btn:disabled{opacity:.5;cursor:not-allowed}.receive-items{display:flex;flex-direction:column;gap:1rem}.receive-item{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--bg-primary, #f8f9fa);border-radius:.5rem}.receive-item .item-info{display:flex;flex-direction:column;gap:.25rem}.receive-item .item-pn{font-weight:500}.receive-item .item-desc{font-size:.75rem;color:var(--text-secondary, #6b7280)}.receive-item .item-pending{font-size:.75rem;color:var(--primary-color, #3b82f6)}.receive-item .item-inputs{display:flex;align-items:center;gap:1rem}.receive-item .item-inputs input[type=number]{width:80px;padding:.375rem .5rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.25rem}.receive-item .item-inputs label{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:var(--text-secondary, #6b7280)}.match-modal{max-width:720px;max-height:85vh}.match-modal .modal-body{display:flex;flex-direction:column;gap:20px;padding:20px 24px;overflow-y:auto}.match-item-card{background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-md, 8px);border:1px solid var(--color-border, #e5e7eb);overflow:hidden}.match-item-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#2d899814;border-bottom:1px solid var(--color-border, #e5e7eb)}.match-item-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-primary, #2d8998)}.match-item-qty{font-size:12px;font-weight:600;color:var(--color-text-secondary, #6b7280)}.match-item-card-content{display:flex;align-items:flex-start;gap:14px;padding:14px}.match-item-image{width:56px;height:56px;object-fit:contain;border-radius:var(--radius-sm, 4px);background:var(--color-bg, #fff);flex-shrink:0}.match-item-image-placeholder{width:56px;height:56px;display:flex;align-items:center;justify-content:center;background:var(--color-bg, #fff);border-radius:var(--radius-sm, 4px);flex-shrink:0}.match-item-image-placeholder svg{width:28px;height:28px;color:var(--color-text-muted, #9ca3af);opacity:.5}.match-item-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.match-item-mpn{font-family:JetBrains Mono,Fira Code,monospace;font-size:14px;font-weight:500;color:var(--color-text-primary, #111)}.match-item-mfr{font-size:12px;color:var(--color-text-muted, #9ca3af)}.match-item-desc{font-size:12px;color:var(--color-text-secondary, #6b7280);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.match-item-price{font-size:12px;font-weight:500;color:var(--color-success, #22c55e);flex-shrink:0;padding-top:4px}.match-options{display:flex;gap:1rem}.option-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);background:transparent;cursor:pointer;transition:all .2s}.option-btn svg{width:1.5rem;height:1.5rem}.option-btn.create:hover{background:#22c55e1a;border-color:var(--color-success, #22c55e)}.option-btn.skip:hover{background:var(--color-bg-secondary, #f3f4f6);border-color:var(--color-text-muted, #9ca3af)}.match-search-section h4{font-size:12px;font-weight:600;color:var(--color-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px}.match-search-box{position:relative}.match-search-box input{width:100%;height:38px;padding:0 14px;background:var(--color-bg, #fff);border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);color:var(--color-text-primary, #111);font-size:13px;transition:all .15s ease}.match-search-box input:focus{outline:none;border-color:var(--color-primary, #2d8998);box-shadow:0 0 0 3px #2d89981a}.match-search-results{max-height:320px;overflow-y:auto;border:1px solid var(--color-border, #e5e7eb);border-radius:var(--radius-md, 8px);background:var(--color-bg, #fff)}.match-empty{font-size:13px;color:var(--color-text-muted, #9ca3af);text-align:center;padding:20px 16px;margin:0}button.match-search-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;cursor:pointer;transition:background .15s ease;border:none;border-bottom:1px solid var(--color-border, #e5e7eb);background:transparent;width:100%;text-align:left;font-family:inherit}button.match-search-item:last-child{border-bottom:none}button.match-search-item:hover:not(:disabled){background:var(--color-bg-secondary, #f8f9fa)}button.match-search-item:disabled{opacity:.6;cursor:not-allowed}.match-search-image{width:48px;height:48px;object-fit:contain;border-radius:var(--radius-sm, 4px);background:var(--color-bg-secondary, #f8f9fa);flex-shrink:0}.match-search-image-placeholder{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-sm, 4px);flex-shrink:0}.match-search-image-placeholder svg{width:24px;height:24px;color:var(--color-text-muted, #9ca3af);opacity:.5}.match-search-item-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.match-search-mpn{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:500;color:var(--color-text-primary, #111)}.match-search-mfr{font-size:11px;color:var(--color-text-muted, #9ca3af)}.match-search-desc{font-size:12px;color:var(--color-text-secondary, #6b7280);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.match-search-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.match-search-stock{font-size:12px;color:var(--color-success, #22c55e);font-weight:500;white-space:nowrap}.match-search-loc{font-size:11px;color:var(--color-text-muted, #9ca3af);white-space:nowrap}.match-search-select{font-size:12px;font-weight:500;color:var(--color-primary, #2d8998);white-space:nowrap}.open-info-btn{display:flex;align-items:center;justify-content:center;width:36px;background:var(--bg-primary, #f8f9fa);border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;color:var(--text-secondary, #6b7280);text-decoration:none;transition:all .2s}.open-info-btn:hover{border-color:var(--primary-color, #3b82f6);background:#eff6ff;color:var(--primary-color, #3b82f6)}.open-info-btn svg{width:16px;height:16px}.form-field{margin-bottom:1rem}.form-field label{display:block;margin-bottom:.375rem;font-size:.875rem;font-weight:500}.form-field input,.form-field textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color, #e5e7eb);border-radius:.375rem;font-size:.875rem}.form-row{display:flex;gap:1rem}.form-row .form-field{flex:1}.spinner{width:2rem;height:2rem;border:3px solid var(--border-color, #e5e7eb);border-top-color:var(--primary-color, #3b82f6);border-radius:50%;animation:spin .8s linear infinite}.spinner-small{width:1rem;height:1rem;border:2px solid var(--border-color, #e5e7eb);border-top-color:var(--primary-color, #3b82f6);border-radius:50%;animation:spin .8s linear infinite}@media (prefers-color-scheme: dark){.orders-page{--bg-primary: #111827;--bg-secondary: #1f2937;--bg-hover: #374151;--text-primary: #f9fafb;--text-secondary: #9ca3af;--border-color: #374151;--primary-color: #60a5fa;--primary-hover: #3b82f6}}@media (max-width: 768px){.orders-header{padding:1rem}.header-actions{width:100%;justify-content:flex-end}.orders-filters,.orders-content{padding:1rem}.order-meta{flex-wrap:wrap;gap:.5rem}.items-table{font-size:.75rem}.modal{max-width:100%;margin:0 1rem}}.project-row{display:flex;align-items:center;gap:20px;padding:14px 18px;background:var(--color-bg);border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal)}.project-row:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm);background:var(--color-bg-secondary)}.project-row.disabled{opacity:.6;border-left-color:var(--color-text-muted)}.project-row.dragging{opacity:.9;transform:rotate(1deg);box-shadow:0 12px 24px #00000026;border-color:var(--color-primary)}.row-left{display:flex;align-items:center;gap:12px;min-width:300px}.drag-handle{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--color-text-muted);cursor:grab;transition:color .2s;flex-shrink:0}.drag-handle:hover{color:var(--color-primary)}.drag-handle:active{cursor:grabbing}.drag-handle-icon{width:16px;height:16px}.priority-badge{display:flex;align-items:center;justify-content:center;min-width:36px;height:28px;padding:0 10px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border-radius:var(--radius-md);font-size:13px;font-weight:700;color:#fff;font-family:JetBrains Mono,Fira Code,monospace;flex-shrink:0}.project-image{width:48px;height:48px;min-width:48px;background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.project-image img{width:100%;height:100%;object-fit:cover}.project-image .pcb-placeholder{width:36px;height:36px;opacity:.8}.project-identity{display:flex;align-items:center;gap:10px;min-width:0}.project-id{font-size:14px;font-weight:600;color:var(--color-text-primary);font-family:JetBrains Mono,Fira Code,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-badge{padding:3px 10px;border-radius:12px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap;flex-shrink:0}.status-badge.status-draft{background:#6b72801f;color:#6b7280}.status-badge.status-active{background:#22c55e1f;color:#16a34a}.status-badge.status-in-assembly{background:#f973161f;color:#ea580c}.status-badge.status-completed{background:#2d89981f;color:var(--color-primary)}.status-badge.status-archived{background:#6b728014;color:#9ca3af}.row-center{display:flex;align-items:stretch;gap:16px;flex:1}.stat-box{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:8px 12px;background:var(--color-bg-secondary);border-radius:var(--radius-md);min-width:80px}.stat-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted)}.stat-content{display:flex;align-items:center;gap:6px}.stat-value{font-size:16px;font-weight:700;color:var(--color-text-primary);font-family:JetBrains Mono,Fira Code,monospace}.stat-value.complete{color:var(--color-success)}.stat-value.muted{color:var(--color-text-muted);font-size:14px}.stat-value.highlight{color:var(--color-primary)}.link-progress-mini{width:40px;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .3s ease}.progress-fill.complete{background:var(--color-success)}.build-box{min-width:100px}.build-box .status-icon{width:16px;height:16px}.build-box.status-ready{background:#22c55e1a;border:1px solid rgba(34,197,94,.2)}.build-box.status-ready .status-icon,.build-box.status-ready .stat-value{color:var(--color-success)}.build-box.status-partial{background:#f973161a;border:1px solid rgba(249,115,22,.2)}.build-box.status-partial .status-icon,.build-box.status-partial .stat-value{color:var(--color-warning)}.build-box.status-blocked{background:#ef44441a;border:1px solid rgba(239,68,68,.2)}.build-box.status-blocked .status-icon,.build-box.status-blocked .stat-value{color:var(--color-error)}.build-box.status-unlinked{background:var(--color-bg-secondary)}.build-orders{display:flex;align-items:center;gap:3px;padding-left:8px;margin-left:4px;border-left:1px solid var(--color-border);color:var(--color-primary);font-size:13px;font-weight:600}.build-orders .clock-icon{width:12px;height:12px}.conflict-box{background:#ef444414;border:1px solid rgba(239,68,68,.2);cursor:help}.conflict-box .stat-label,.conflict-box .stat-value{color:var(--color-error)}.conflict-box .conflict-icon{width:14px;height:14px;color:var(--color-error)}.row-right{display:flex;align-items:center;gap:12px;margin-left:auto}.toggle-wrapper{display:flex;align-items:center;gap:8px}.toggle-label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--color-text-muted)}.project-row .toggle{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.project-row .toggle input{position:absolute;opacity:0;width:0;height:0}.project-row .toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--color-bg);border:2px solid var(--color-border);border-radius:24px;transition:all .3s}.project-row .toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:2px;background-color:var(--color-text-muted);border-radius:50%;transition:all .3s}.project-row .toggle input:checked+.toggle-slider{background:var(--color-primary);border-color:var(--color-primary)}.project-row .toggle input:checked+.toggle-slider:before{background-color:#fff;transform:translate(20px)}@media (max-width: 1100px){.project-row{flex-wrap:wrap;gap:12px}.row-left{min-width:auto;flex:1}.row-center{flex-basis:100%;order:3;padding-top:12px;border-top:1px solid var(--color-border);flex-wrap:wrap}.row-right{margin-left:0}}@media (max-width: 600px){.project-row{padding:12px 14px}.stat-box{min-width:70px;padding:6px 10px}.project-id{font-size:12px}.priority-badge{font-size:11px;min-width:30px;height:24px}}@media (prefers-color-scheme: dark){.project-row{border-color:var(--color-border)}.project-image{background:linear-gradient(135deg,#1a3a1f,#0d2818)}.conflict-box{background:#ef44441f}}.pcb-canvas-container{display:flex;flex-direction:column;width:100%;height:100%;background:#f5f5f5;border-radius:8px;overflow:hidden;border:1px solid #ddd;position:relative}.pcb-canvas-controls{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#fff;border-bottom:1px solid #ddd;gap:12px;position:relative}.fit-button{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background .2s}.fit-button:hover:not(:disabled){background:#2980b9}.fit-button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}.fit-button svg{width:16px;height:16px}.component-search{display:flex;align-items:center;gap:4px}.component-search .search-input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;width:140px;transition:border-color .2s,box-shadow .2s}.component-search .search-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.component-search .search-input:disabled{background:#f5f5f5;cursor:not-allowed}.component-search .search-input::placeholder{color:#aaa}.component-search .search-button{display:flex;align-items:center;justify-content:center;padding:6px;background:#27ae60;color:#fff;border:none;border-radius:4px;cursor:pointer;transition:background .2s}.component-search .search-button:hover:not(:disabled){background:#219a52}.search-button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}.search-button svg{width:18px;height:18px}.view-side-tabs{display:flex;position:absolute;left:50%;transform:translate(-50%);background:#f5f5f5;border-radius:6px;padding:2px;gap:2px}.view-tab{padding:6px 16px;background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:all .2s;min-width:70px}.view-tab:hover:not(:disabled){background:#ffffff80;color:#333}.view-tab.active{background:#fff;color:#2c3e50;box-shadow:0 1px 3px #0000001a}.view-tab:disabled{opacity:.5;cursor:not-allowed}.selected-component-info{position:absolute;bottom:12px;left:12px;background:#505050e6;color:#fff;padding:8px 12px;border-radius:4px;font-size:14px;font-weight:500;pointer-events:none;z-index:10;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcb-canvas{flex:1;display:block;background:#f5f5f5;touch-action:none}.projects-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.projects-page .page-header{display:flex;justify-content:space-between;align-items:center;padding:0 32px;height:70px;background:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.projects-page .back-button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.projects-page .back-button:hover{background:var(--color-bg-secondary);color:var(--color-primary);border-color:var(--color-primary)}.projects-page .back-button svg{width:16px;height:16px}.projects-page .header-right,.projects-page .page-title{display:flex;align-items:center;gap:16px}.projects-page .title-icon{width:48px;height:48px;padding:12px;background:#fff3e0;border:1px solid #ff9800;border-radius:var(--radius-lg);color:#ff9800;flex-shrink:0}.projects-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.projects-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.projects-toolbar{display:flex;justify-content:space-between;align-items:center;padding:16px 32px;background:var(--color-bg);border-bottom:1px solid var(--color-border);gap:16px;flex-wrap:wrap}.projects-toolbar .toolbar-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.projects-toolbar .search-box{position:relative;flex:0 0 auto;width:280px}.projects-toolbar .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--color-text-secondary);pointer-events:none}.projects-toolbar .search-input{width:100%;height:36px;padding:0 32px 0 36px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;transition:all var(--transition-fast)}.projects-toolbar .search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.projects-toolbar .search-input::placeholder{color:var(--color-text-secondary)}.projects-toolbar .clear-search{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:14px;padding:0;transition:all var(--transition-fast)}.projects-toolbar .clear-search:hover{background:var(--color-border);color:var(--color-text-primary)}.projects-toolbar .status-filter{height:36px;padding:0 32px 0 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;cursor:pointer;transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.projects-toolbar .status-filter:focus{outline:none;border-color:var(--color-primary)}.projects-toolbar .create-btn{display:flex;align-items:center;gap:8px;height:36px;padding:0 16px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.projects-toolbar .create-btn:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.projects-toolbar .create-btn svg{width:16px;height:16px}.reorder-hint{display:flex;align-items:center;gap:6px;font-size:12px;padding:6px 10px;border-radius:var(--radius-md);white-space:nowrap}.reorder-hint.active{color:var(--color-primary);background:#2d899814}.reorder-hint.inactive{color:var(--color-text-muted);background:var(--color-bg-secondary)}.saving-indicator{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-primary);padding:6px 12px;background:#2d899814;border-radius:var(--radius-md)}.saving-spinner{width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.toolbar-right{display:flex;align-items:center;gap:12px}.projects-page .page-content{flex:1;padding:32px;max-width:1400px;margin:0 auto;width:100%}.projects-grid{display:flex;flex-direction:column;gap:8px}.projects-grid.sortable{gap:6px}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--color-text-secondary)}.loading-state .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;width:100%;min-height:400px}.empty-state svg{width:56px;height:56px;color:var(--color-text-muted);opacity:.5;margin-bottom:1rem}.empty-state h3{color:var(--color-text-primary);font-size:16px;font-weight:600;margin:0 0 6px}.empty-state p{color:var(--color-text-secondary);font-size:14px;margin:0 0 1.25rem}.empty-state .create-btn{display:flex;align-items:center;gap:8px;height:36px;padding:0 16px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.empty-state .create-btn:hover{background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.empty-state .create-btn svg{width:16px;height:16px;color:#fff;opacity:1;margin:0;flex-shrink:0}.error-banner{display:flex;align-items:center;gap:12px;padding:16px;background:#fff5f5;border:1px solid #feb2b2;border-radius:var(--radius-lg);color:var(--color-error);font-size:14px;margin-bottom:24px}.error-banner button{margin-left:auto;padding:6px 12px;background:transparent;border:1px solid currentColor;border-radius:var(--radius-md);color:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.error-banner button:hover{background:var(--color-error);color:#fff}.modal-content{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:420px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header .close-btn{background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:0;line-height:1;transition:color var(--transition-fast)}.modal-header .close-btn:hover{color:var(--color-text-primary)}.modal-content form{padding:24px}.modal-content.create-project-modal{max-width:480px}.bom-drop-zone{padding:28px 20px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);text-align:center;cursor:default;transition:all var(--transition-fast);background:var(--color-bg-secondary);margin-bottom:20px}.bom-drop-zone:hover,.bom-drop-zone.dragover{border-color:var(--color-primary);background:#2d899814}.bom-drop-zone.has-file{border-style:solid;border-color:var(--color-primary);background:#2d89980d;padding:16px 20px}.bom-drop-zone .drop-hint{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--color-text-secondary)}.bom-drop-zone .drop-icon{width:36px;height:36px;color:var(--color-primary);margin-bottom:4px;opacity:.7}.bom-drop-zone .drop-text{font-size:14px;font-weight:500;color:var(--color-text-primary)}.bom-drop-zone .drop-subtext{font-size:12px;color:var(--color-text-muted)}.bom-drop-zone .file-selected{display:flex;align-items:center;gap:12px;text-align:left}.bom-drop-zone .file-icon{width:32px;height:32px;color:var(--color-primary);flex-shrink:0}.bom-drop-zone .file-info{flex:1;min-width:0}.bom-drop-zone .file-name{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bom-drop-zone .file-hint{display:block;font-size:12px;color:var(--color-text-muted);margin-top:2px}.bom-drop-zone .remove-file-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:18px;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.bom-drop-zone .remove-file-btn:hover{background:#fff5f5;border-color:#feb2b2;color:var(--color-error)}.pcb-drop-zone{margin-bottom:16px}.pcb-drop-zone.has-file{border-color:#10b981;background:#10b9810d}.pcb-drop-zone .drop-icon.pcb-icon,.pcb-drop-zone .file-icon.pcb-icon{color:#10b981}.pcb-drop-zone .drop-icon.pcb-icon{opacity:.8}.form-group input{width:100%;height:36px;padding:0 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;transition:all var(--transition-fast)}.form-group input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.form-error{padding:12px 16px;background:#fff5f5;border:1px solid #feb2b2;border-radius:var(--radius-md);color:var(--color-error);font-size:14px;margin-bottom:16px}.modal-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:8px}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 16px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.projects-page .page-header{padding:12px 16px;height:auto;flex-wrap:wrap;gap:12px}.projects-toolbar{flex-direction:column;align-items:stretch;padding:12px 16px}.projects-toolbar .toolbar-left,.projects-toolbar .search-input{width:100%}.projects-page .page-content{padding:16px}.projects-grid{grid-template-columns:1fr}}@media (prefers-color-scheme: dark){.error-banner,.form-error{background:#ef44441a;border-color:#ef44444d}}.alternatives-modal{max-width:720px;max-height:85vh}.alternatives-modal .modal-body{display:flex;flex-direction:column;gap:20px;padding:20px 24px;overflow-y:auto}.alt-bom-card{background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border);overflow:hidden}.alt-bom-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#2d899814;border-bottom:1px solid var(--color-border)}.alt-bom-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-primary)}.alt-stock-status{font-size:12px;font-weight:600}.alt-stock-status.resolved{color:var(--color-success)}.alt-stock-status.shortage{color:var(--color-error)}.alt-bom-card-content{display:flex;align-items:flex-start;gap:14px;padding:14px}.alt-bom-card-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.alt-bom-designators{font-size:12px;color:var(--color-primary);font-family:JetBrains Mono,Fira Code,monospace}.alt-bom-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.alt-bom-primary-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#22c55e26;color:var(--color-success);padding:3px 8px;border-radius:4px}.alt-component-image{width:48px;height:48px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg);flex-shrink:0}.alt-component-image-placeholder{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border-radius:var(--radius-sm);flex-shrink:0}.alt-component-image-placeholder svg{width:24px;height:24px;color:var(--color-text-muted);opacity:.5}.alt-component-image-sm{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg);flex-shrink:0}.alt-component-image-placeholder-sm{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border-radius:var(--radius-sm);flex-shrink:0}.alt-component-image-placeholder-sm svg{width:18px;height:18px;color:var(--color-text-muted);opacity:.5}.alt-item-mpn{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:500;color:var(--color-text-primary)}.alt-item-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.alt-item-desc-sm{font-size:11px;color:var(--color-text-muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.alt-item-stock{font-size:12px;color:var(--color-success);font-weight:500;flex-shrink:0}.alt-list-section h4{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px}.alt-empty{font-size:13px;color:var(--color-text-muted);text-align:center;padding:16px;background:var(--color-bg-secondary);border-radius:var(--radius-md);margin:0}.alt-list{display:flex;flex-direction:column;gap:6px}.alt-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--color-bg-secondary);border-radius:var(--radius-sm);cursor:grab;transition:all .15s ease;border:1px solid transparent}.alt-item:hover{background:var(--color-bg);border-color:var(--color-border)}.alt-item.dragging{opacity:.5;background:#2d89981a;border-color:var(--color-primary)}.alt-item-priority{font-size:11px;font-weight:600;color:var(--color-text-muted);width:24px;text-align:center;padding-top:10px}.alt-item-drag{color:var(--color-text-muted);font-size:14px;cursor:grab;-webkit-user-select:none;user-select:none;padding-top:10px}.alt-item-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.alt-item-mfr{font-size:11px;color:var(--color-text-muted)}.alt-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.alt-item-remove{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:none;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all .15s ease}.alt-item-remove:hover:not(:disabled){background:#ef44441a;color:var(--color-error)}.alt-item-remove:disabled{opacity:.5;cursor:not-allowed}.alt-item-remove svg{width:14px;height:14px}.alt-search-section h4{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px}.alt-search-box{position:relative;margin-bottom:8px}.alt-search-box input{width:100%;height:38px;padding:0 40px 0 14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;transition:all .15s ease}.alt-search-box input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.alt-searching{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--color-text-muted)}.alt-search-results{max-height:320px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.alt-search-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;cursor:pointer;transition:background .15s ease;border-bottom:1px solid var(--color-border)}.alt-search-item:last-child{border-bottom:none}.alt-search-item:hover{background:var(--color-bg-secondary)}.alt-search-image{width:48px;height:48px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary);flex-shrink:0}.alt-search-image-placeholder{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border-radius:var(--radius-sm);flex-shrink:0}.alt-search-image-placeholder svg{width:24px;height:24px;color:var(--color-text-muted);opacity:.5}.alt-search-item-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}.alt-search-mpn{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:500;color:var(--color-text-primary)}.alt-search-mfr{font-size:11px;color:var(--color-text-muted)}.alt-search-desc{font-size:12px;color:var(--color-text-secondary);line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.alt-search-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.alt-search-stock{font-size:12px;color:var(--color-success);white-space:nowrap}.alt-search-add{font-size:12px;font-weight:500;color:var(--color-primary);white-space:nowrap}.alt-suggestions-section h4{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 10px}.alt-suggestions{display:flex;flex-direction:column;gap:6px}.alt-suggestion-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#2d89980d;border:1px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .15s ease}.alt-suggestion-item:hover{background:#2d89981a;border-color:var(--color-primary)}.alt-suggestion-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.alt-suggestion-mpn{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:500;color:var(--color-text-primary)}.alt-suggestion-mfr{font-size:11px;color:var(--color-text-muted)}.alt-suggestion-usage{font-size:11px;color:var(--color-primary);background:#2d89981a;padding:2px 8px;border-radius:10px;white-space:nowrap}.alt-suggestion-stock{font-size:12px;color:var(--color-success);white-space:nowrap}.alt-error{padding:12px 14px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--color-error);font-size:13px}.modal-content.assembly-allocation-modal{width:95vw;max-width:1400px;max-height:85vh;display:flex;flex-direction:column}.assembly-allocation-modal .modal-body{flex:1;overflow-y:auto;padding:20px}.allocation-intro{margin-bottom:20px;color:var(--color-text-secondary);font-size:14px}.assemblies-list{display:flex;flex-direction:column;gap:12px}.assembly-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.assembly-item.mixed{border-left:4px solid var(--color-warning, #f59e0b)}.assembly-item.has-under{border-left:4px solid #9ca3af}.assembly-item.has-extra,.assembly-item.has-under.has-extra{border-left:4px solid var(--color-primary)}.assembly-header{display:flex;align-items:center;gap:12px;padding:14px 16px;background:var(--color-bg-secondary);cursor:pointer;transition:background .15s ease}.assembly-header:hover{background:var(--color-bg-tertiary, rgba(0,0,0,.05))}.assembly-expand-icon{font-size:10px;color:var(--color-text-muted);width:16px;flex-shrink:0}.assembly-item.expanded .assembly-expand-icon{color:var(--color-primary)}.assembly-number{font-weight:600;font-size:14px;color:var(--color-text-primary)}.assembly-mixed-badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;background:#f59e0b26;color:var(--color-warning, #f59e0b);text-transform:uppercase;letter-spacing:.3px}.assembly-under-badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;background:#9ca3af26;color:#6b7280;text-transform:uppercase;letter-spacing:.3px}.assembly-extra-badge{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;background:#3b82f61a;color:var(--color-primary);text-transform:uppercase;letter-spacing:.3px}.assembly-summary{margin-left:auto;font-size:12px;color:var(--color-text-muted)}.assembly-components{padding:10px 16px 14px;animation:slideDown .2s ease}.assembly-components .bom-table-container{overflow-x:auto;border-radius:var(--radius-md)}.allocation-table{font-size:13px;min-width:700px}.allocation-table th{font-size:11px;padding:8px 12px;white-space:nowrap;border-right:1px solid rgba(0,0,0,.06)}.allocation-table th:last-child{border-right:none}.allocation-table td{padding:8px 12px;border-right:1px solid rgba(0,0,0,.06)}.allocation-table td:last-child{border-right:none}.allocation-table th:nth-child(1),.allocation-table td:nth-child(1){min-width:120px}.allocation-table th:nth-child(2),.allocation-table td:nth-child(2){min-width:200px}.allocation-table tr.continuation-row td{border-top:none;padding-top:4px}.allocation-table tr.alternative-row{background:#f59e0b0d}.allocation-table tr.alternative-row:hover{background:#f59e0b1a}.allocation-table tr.under-usage{background:#9ca3af14}.allocation-table tr.under-usage:hover{background:#9ca3af1f}.allocation-table tr.primary-not-used{opacity:.5}.allocation-table tr.primary-not-used td{color:var(--color-text-muted)}.allocation-table tr.unlinked-primary{opacity:.6}.allocation-table tr.unlinked-primary td{color:var(--color-text-muted)}.allocation-table td.mpn.unlinked{font-style:italic}.unlinked-badge{display:inline-block;font-size:9px;margin-left:6px;padding:1px 5px;border-radius:3px;background:#ef44441a;color:var(--color-error);font-style:normal;vertical-align:middle}.type-badge.unlinked{background:#9ca3af26;color:#6b7280}.qty-disabled{color:var(--color-text-muted);font-style:italic}.allocation-table tr.extra-usage{background:#3b82f60d}.allocation-table tr.extra-usage:hover{background:#3b82f61a}.alt-tree-indicator{color:var(--color-text-muted);margin-right:6px;font-family:monospace;font-size:14px}.allocation-table tr.alt-indent td.mpn{padding-left:8px}.allocation-table tr.alt-indent{background:#f59e0b0a}.allocation-table tr.alt-indent:hover{background:#f59e0b14}.qty-input{width:60px;padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;font-size:13px;font-weight:500;background:var(--color-bg);color:var(--color-text-primary)}.qty-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f633}.qty-input::-webkit-inner-spin-button,.qty-input::-webkit-outer-spin-button{opacity:1}.stock-remaining{color:var(--color-text-secondary)}.stock-remaining.depleted{color:var(--color-error);font-weight:600}.allocation-summary{margin-top:20px;padding:16px;background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.allocation-summary h4{margin:0 0 12px;font-size:14px;font-weight:600;color:var(--color-text-primary)}.summary-stats{display:flex;gap:20px;font-size:13px;color:var(--color-text-secondary)}.summary-stats .under-warning{color:#6b7280;font-weight:500}.summary-stats .extra-info{color:var(--color-primary);font-weight:500}@media (prefers-color-scheme: dark){.assembly-header:hover{background:#ffffff0d}.allocation-table tr.alternative-row{background:#f59e0b14}.allocation-table tr.alternative-row:hover{background:#f59e0b1f}.allocation-table tr.under-usage{background:#9ca3af1a}.allocation-table tr.under-usage:hover{background:#9ca3af26}}@media (max-width: 768px){.assembly-allocation-modal{max-width:100%;margin:10px}.assembly-header{flex-wrap:wrap}.assembly-summary{width:100%;margin-top:8px;margin-left:0}.summary-stats{flex-wrap:wrap;gap:12px}.qty-input{width:50px}}.project-detail-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.project-detail-page.loading,.project-detail-page.error{justify-content:center;align-items:center;color:var(--color-text-secondary)}.project-detail-page.loading .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.project-detail-page .page-header{display:flex;justify-content:space-between;align-items:center;padding:0 32px;height:70px;background:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);flex-wrap:wrap;gap:16px}.header-left{display:flex;align-items:center;gap:24px}.back-button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.back-button:hover{background:var(--color-bg-secondary);color:var(--color-primary);border-color:var(--color-primary)}.back-button svg{width:16px;height:16px}.project-info{display:flex;flex-direction:column;gap:4px}.project-title-row{display:flex;align-items:center;gap:12px}.project-info h1{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0}.project-title-row .status-badge{padding:4px 12px;font-size:11px;position:static!important;display:inline-block;flex-shrink:0}.header-right{display:flex;align-items:center;gap:14px;flex-shrink:0}.status-badge{padding:6px 14px;border-radius:20px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;position:static;display:inline-block}.status-badge.status-draft{background:#6b728026;color:#6b7280}.status-badge.status-active{background:#22c55e26;color:#16a34a}.status-badge.status-in-assembly{background:#f9731626;color:#ea580c}.status-badge.status-completed{background:#2d899826;color:var(--color-primary)}.status-badge.status-archived{background:#6b72801a;color:#9ca3af}.project-detail-page .toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;flex-shrink:0}.project-detail-page .toggle input{position:absolute;opacity:0;width:0;height:0;pointer-events:none}.project-detail-page .toggle-slider{position:relative;display:block;width:40px;height:22px;min-width:40px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:22px;transition:all .3s;flex-shrink:0}.project-detail-page .toggle-slider:before{content:"";position:absolute;height:16px;width:16px;left:2px;top:2px;background-color:var(--color-text-muted);border-radius:50%;transition:all .3s}.project-detail-page .toggle input:checked+.toggle-slider{background:var(--color-primary);border-color:var(--color-primary)}.project-detail-page .toggle input:checked+.toggle-slider:before{background-color:#fff;transform:translate(18px)}.project-detail-page .toggle-label{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0}.error-banner{display:flex;align-items:center;justify-content:space-between;padding:12px 32px;background:#fff5f5;border-bottom:1px solid #feb2b2;color:var(--color-error);font-size:14px}.error-banner button{background:none;border:none;color:var(--color-error);cursor:pointer;font-size:20px}.stats-bar{display:flex;gap:10px;padding:14px 32px;background:var(--color-bg);border-bottom:1px solid var(--color-border);overflow-x:auto;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:var(--color-bg-secondary);border-radius:var(--radius-md);min-width:110px}.stat-item .stat-label{font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.stat-item .stat-value{font-size:16px;font-weight:600;color:var(--color-text-primary)}.stat-item .stat-value.complete{color:var(--color-success)}.alt-indicator-asterisk{color:var(--color-warning);font-weight:700;cursor:help}.stat-item .stat-value.editable{cursor:pointer;display:flex;align-items:center;gap:6px}.stat-item .stat-value.editable svg{width:12px;height:12px;color:var(--color-text-muted)}.stat-item .stat-value.editable:hover{color:var(--color-primary)}.stat-item .stat-value.editable:hover svg{color:var(--color-primary)}.count-input-wrapper{display:flex;align-items:center;gap:4px}.count-input{width:52px;height:32px;padding:0 6px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:15px;font-weight:600;text-align:center;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.count-input::-webkit-outer-spin-button,.count-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.count-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2d899826}.count-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.count-btn svg{width:14px;height:14px}.count-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.count-btn:disabled{opacity:.4;cursor:not-allowed}.count-input.saving{border-color:var(--color-primary);background:#2d89980d}.count-saving-indicator{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;margin-left:8px}.action-bar{display:flex;gap:10px;padding:14px 32px;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.btn-primary,.btn-secondary,.btn-success,.btn-warning{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 14px;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.btn-secondary{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.btn-success{background:var(--color-success);color:#fff}.btn-success:hover:not(:disabled){background:#16a34a}.btn-warning{background:#f9731626;border:1px solid rgba(249,115,22,.4);color:#ea580c}.btn-warning:hover:not(:disabled){background:#f9731640}.btn-primary:disabled,.btn-secondary:disabled,.btn-success:disabled,.btn-warning:disabled{opacity:.5;cursor:not-allowed}.disabled-btn-wrapper{display:inline-flex;cursor:not-allowed}.disabled-btn-wrapper>button{pointer-events:none}.btn-primary svg,.btn-secondary svg,.btn-success svg,.btn-warning svg{width:16px;height:16px}.tabs{display:flex;padding:0 32px;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.tab{padding:12px 20px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.tab:hover{color:var(--color-text-primary)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.tab-content{flex:1;padding:24px 32px;overflow-y:auto;max-width:1600px;margin:0 auto;width:100%}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--color-text-secondary);text-align:center}.empty-state p{margin-bottom:16px}.bom-tab-header{display:flex;flex-direction:column;gap:12px;padding:16px 20px;margin-bottom:16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.bom-header-top{display:flex;justify-content:space-between;align-items:center}.bom-tab-header h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.bom-info{font-size:13px;color:var(--color-text-secondary)}.bom-info strong{color:var(--color-text-primary)}.bom-unresolved,.bom-unresolved strong{color:var(--color-error)}.bom-unresolved-jump,.bom-unlinked-jump{display:inline-flex;align-items:center;gap:3px;cursor:pointer;border-radius:4px;padding:1px 6px 1px 4px;margin:-1px -4px;transition:background .15s,color .15s}.bom-unresolved-jump:hover{background:#ef44441f;text-decoration:underline}.bom-unlinked-jump:hover{background:#f59e0b1f;text-decoration:underline}.bom-unresolved-jump .jump-icon,.bom-unlinked-jump .jump-icon{width:13px;height:13px;flex-shrink:0;opacity:.7;transition:opacity .15s}.bom-unresolved-jump:hover .jump-icon,.bom-unlinked-jump:hover .jump-icon{opacity:1}.bom-unlinked,.bom-unlinked strong{color:var(--color-warning, #f59e0b)}.bom-resolved{display:inline-flex;align-items:center;gap:4px;color:var(--color-success)}.bom-resolved .resolved-icon{width:14px;height:14px}.bom-header-bottom{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bom-search-box{display:flex;align-items:center;gap:8px;flex:1;max-width:400px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 12px}.bom-search-box .search-icon{position:static;transform:none;width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0}.bom-search-input{flex:1;border:none;background:transparent;padding:8px 0;font-size:13px;color:var(--color-text);outline:none}.bom-search-input::placeholder{color:var(--color-text-muted)}.bom-search-clear{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px;line-height:1;display:flex;align-items:center;justify-content:center}.bom-search-clear svg{width:16px;height:16px}.bom-search-clear:hover{color:var(--color-text)}.bom-search-results-info{padding:8px 16px;margin-bottom:16px;background:var(--color-bg-secondary);font-size:12px;color:var(--color-text-muted);border-radius:var(--radius-md)}.bom-table-container{overflow-x:auto;background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.bom-table th.image-col,.bom-table td.image-col{width:50px;min-width:50px;max-width:50px;padding:6px 8px;text-align:center}.bom-item-image{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary)}.bom-item-no-image{opacity:.4}.bom-table{width:100%;border-collapse:collapse;font-size:13px}.bom-table th{text-align:left;padding:10px 14px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.5px;border-bottom:2px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06);white-space:nowrap}.bom-table th:last-child{border-right:none}.bom-table td{padding:10px 14px;border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06);color:var(--color-text-primary);vertical-align:middle}.bom-table td:last-child{border-right:none}.bom-table tr:last-child td{border-bottom:none}.bom-table tr:hover{background:var(--color-bg-secondary)}.bom-table tr.unlinked{background:#ef44440d}.bom-table tr.unlinked:hover{background:#ef44441a}.bom-table tr.shortage{background:#ef44440d}.bom-table tr.shortage:hover{background:#ef44441a}.bom-table tr.skipped{background:#9ca3af1a}.bom-table tr.skipped:hover{background:#9ca3af26}.bom-table tr.skipped td{color:#9ca3af;text-decoration:line-through}.bom-table tr.skipped td.actions,.bom-table tr.skipped td.actions *,.bom-table tr.skipped td.dnp-col,.bom-table tr.skipped td.dnp-col *{text-decoration:none}.bom-table th.dnp-col,.bom-table td.dnp-col{width:40px;text-align:center;padding:6px 8px}.bom-table th.dnp-col{font-size:10px}.dnp-checkbox{width:16px;height:16px;cursor:pointer;accent-color:#9ca3af}.dnp-checkbox:checked{accent-color:#ef4444}.dnp-indicator{color:#ef4444;font-weight:700;font-size:14px}.bom-table tr.pending{background:#f59e0b0d}.bom-table tr.pending:hover{background:#f59e0b14}.bom-table .designators{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--color-primary);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-table td.designators.expanded{max-width:none;white-space:normal;word-wrap:break-word;overflow:visible}.designators-truncated{cursor:pointer;display:inline}.designators-truncated:hover{color:var(--color-primary-dark)}.designators-more{color:var(--color-text-muted);font-weight:400;font-size:12px}.designators-full{display:inline;word-break:break-word;line-height:1.6}.bom-table .quantity{text-align:center;font-weight:600;white-space:nowrap}.qty-calc{display:inline-flex;align-items:center;gap:3px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.qty-base{font-weight:600;color:var(--color-text-primary)}.qty-multiply{font-size:10px;color:var(--color-text-muted);font-weight:400}.qty-equals{font-size:11px;color:var(--color-text-muted)}.qty-total{font-weight:700;color:var(--color-primary);background:#2d89981a;padding:2px 6px;border-radius:4px}.bom-table .mpn{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.bom-table .description{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary)}.bom-table .linked-mpn{color:var(--color-success);cursor:pointer;font-family:JetBrains Mono,Fira Code,monospace}.bom-table .linked-mpn:hover{text-decoration:underline}.bom-table .mpn-linked{vertical-align:top}.bom-table .mpn-bom{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--color-text-primary);margin-bottom:2px}.bom-table .mpn-linked-component,.bom-table .mpn-linked-component .linked-mpn{font-size:11px}.bom-table .mpn-linked-component .not-linked{font-size:11px;color:var(--color-text-muted);font-style:italic}.bom-table .alt-mpn-linked .mpn-bom{color:var(--color-text-muted);font-size:11px}.bom-table .not-linked{color:var(--color-error);font-style:italic}.bom-table .stock{font-weight:500;text-align:center;min-width:140px;white-space:nowrap}.stock-ratio{display:inline-flex;align-items:center;gap:4px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.stock-ratio .status-icon-wrapper{display:inline-flex;align-items:center;cursor:help}.stock-ratio .status-icon{width:16px;height:16px;flex-shrink:0}.stock-ratio .status-ok{color:var(--color-success)}.stock-ratio .status-pending{color:var(--color-warning, #f59e0b)}.stock-ratio .status-shortage{color:var(--color-error)}.stock-needed{font-weight:600;color:var(--color-text-primary)}.stock-needed.over{color:var(--color-error)}.stock-separator{color:var(--color-text-muted);font-weight:400}.stock-available{color:var(--color-success);font-weight:500}.bom-table .stock.shortage .stock-available{color:var(--color-error)}.bom-table .stock.pending .stock-available{color:var(--color-warning, #f59e0b)}.stock-breakdown{display:inline-flex;align-items:center;gap:2px;flex-wrap:nowrap}.stock-group{display:inline-flex;align-items:center;gap:1px}.stock-item{display:inline-flex;align-items:center;gap:1px;white-space:nowrap}.stock-item .stock-icon{width:12px;height:12px;flex-shrink:0}.stock-item .stock-icon-small{width:10px;height:10px;flex-shrink:0}.stock-item.stock-primary{color:var(--color-success);font-weight:600}.stock-item.stock-primary .stock-icon{color:var(--color-success);opacity:.8}.stock-item.stock-alt{color:var(--color-primary);font-weight:500;font-size:12px}.stock-item.stock-alt .stock-icon{color:var(--color-primary);opacity:.7}.stock-item.stock-onorder{color:var(--color-warning, #f59e0b);font-weight:500;font-size:12px}.stock-item.stock-onorder .stock-icon{color:var(--color-warning, #f59e0b);opacity:.85}.stock-item.stock-onorder.clickable{cursor:pointer;border-radius:4px;padding:1px 4px;margin:-1px -4px;transition:background-color .15s ease}.stock-item.stock-onorder.clickable:hover{background-color:#f59e0b26}.stock-item .stock-plus{color:var(--color-text-muted);font-weight:400;margin:0 1px}.stock-item.stock-none{color:var(--color-text-muted)}.bom-table .stock.pending .stock-item.stock-primary,.bom-table .stock.pending .stock-item.stock-primary .stock-icon{color:var(--color-warning, #f59e0b)}.bom-table .stock.shortage .stock-item.stock-primary,.bom-table .stock.shortage .stock-item.stock-primary .stock-icon{color:var(--color-error)}.bom-table tr.conflict{background:#a855f70d}.bom-table tr.conflict:hover{background:#a855f71a}.stock-ratio .status-conflict{color:#a855f7}.stock-ratio .status-conflict-pending{color:#c084fc}.bom-table .stock.conflict .stock-available,.bom-table .stock.conflict .stock-item.stock-primary,.bom-table .stock.conflict .stock-item.stock-primary .stock-icon{color:#a855f7}.bom-alt-row{background:var(--color-bg-secondary)}.bom-alt-row td{padding:6px 14px;border-bottom:1px solid var(--color-border)}.bom-alt-row:last-child td{border-bottom:1px solid var(--color-border)}.bom-main-row.has-alternatives{border-bottom:none}.bom-main-row.has-alternatives td{border-bottom:1px dashed var(--color-border)}.alt-indicator{color:var(--color-text-muted);padding-left:20px!important}.alt-indicator-content{display:flex;align-items:center;gap:6px}.alt-connector{color:var(--color-border);font-family:monospace;font-size:14px}.alt-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-primary);background:#2d89981a;padding:2px 6px;border-radius:3px}.alt-inherited{color:var(--color-text-muted)!important;opacity:.85}.alt-mfr,.alt-desc{color:var(--color-text-muted)}.alt-actions{justify-content:flex-end}.bom-table td.actions{vertical-align:middle}.bom-table td.actions>div,.bom-table .actions-wrapper{display:flex;gap:4px;align-items:center}.btn-sm{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:30px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);cursor:pointer;font-size:12px;transition:all var(--transition-fast)}.btn-sm svg{width:16px;height:16px;fill:currentColor;flex-shrink:0}.btn-sm:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.btn-sm.btn-link{color:var(--color-primary)}.btn-sm.btn-link:hover{background:#2d89981a;border-color:var(--color-primary)}.btn-sm.btn-link .icon-link{width:15px;height:15px}.btn-sm.btn-alt{position:relative;color:var(--color-text-secondary)}.btn-sm.btn-alt:hover{background:#2d89981a;border-color:var(--color-primary);color:var(--color-primary)}.btn-sm.btn-alt .icon-alt{width:14px;height:14px}.alt-badge{position:absolute;top:-4px;right:-4px;min-width:16px;height:16px;padding:0 4px;background:var(--color-primary);color:#fff;font-size:10px;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center}.btn-sm.btn-remove-alt{width:24px;height:24px;min-width:24px}.btn-sm.btn-remove-alt svg{width:12px;height:12px}.btn-sm.btn-danger.btn-unlink{color:var(--color-error)}.btn-sm.btn-danger.btn-unlink:hover{border-color:var(--color-error);background:#ef44441a}.btn-sm.btn-danger.btn-unlink .icon-unlink{width:15px;height:15px}.btn-sm.btn-danger{color:var(--color-error)}.btn-sm.btn-danger:hover{border-color:var(--color-error);background:#ef44441a}.history-list{display:flex;flex-direction:column;gap:16px}.history-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px}.history-item.completed{border-left:4px solid var(--color-success)}.history-item.cancelled{border-left:4px solid var(--color-error);opacity:.7}.history-item.in_progress{border-left:4px solid var(--color-accent-warning)}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.history-status{font-weight:600;text-transform:capitalize}.history-status.in_progress{color:var(--color-accent-warning)}.history-date{font-size:12px;color:var(--color-text-muted)}.history-details{display:flex;gap:24px;font-size:14px;color:var(--color-text-secondary)}.history-notes{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border);font-size:14px;color:var(--color-text-secondary);font-style:italic}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:480px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg)}.modal-content.modal-large{max-width:640px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border)}.modal-header h2{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.close-btn{background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:0;line-height:1;transition:color var(--transition-fast)}.close-btn:hover{color:var(--color-text-primary)}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--color-border)}.modal-actions .btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;background:var(--color-error);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.modal-actions .btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.modal-actions .btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.modal-content.import-modal{max-width:560px}.import-hint{color:var(--color-text-secondary);font-size:14px;margin-bottom:16px}.file-drop-zone{padding:48px 32px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:var(--color-bg-secondary)}.file-drop-zone:hover,.file-drop-zone.dragover{border-color:var(--color-primary);background:#2d899814}.file-drop-zone.has-file{border-style:solid;border-color:var(--color-primary);background:#2d89980d}.drop-hint{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--color-text-secondary)}.drop-hint .drop-icon{width:48px;height:48px;color:var(--color-primary);margin-bottom:8px}.drop-hint .drop-text{font-size:16px;font-weight:500;color:var(--color-text-primary)}.drop-hint .drop-subtext{font-size:14px;color:var(--color-text-secondary)}.drop-hint .drop-formats{font-size:12px;color:var(--color-text-muted);margin-top:8px}.file-info{display:flex;flex-direction:column;gap:4px}.file-name{font-weight:500;color:var(--color-text-primary)}.file-size{font-size:12px;color:var(--color-text-muted)}.import-file-info{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-bottom:16px}.import-file-info>svg{width:24px;height:24px;color:var(--color-primary);flex-shrink:0}.import-file-info .file-details{flex:1;display:flex;flex-direction:column;gap:2px}.import-file-info .file-name{font-size:14px;font-weight:500}.import-file-info .file-meta{font-size:12px;color:var(--color-text-muted)}.import-file-info .file-clear{padding:6px;background:none;border:none;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.import-file-info .file-clear:hover{background:var(--color-bg);color:var(--color-error)}.import-file-info .file-clear svg{width:16px;height:16px}.import-stats{display:flex;gap:12px;margin-bottom:20px}.import-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;background:#2d899814;border-radius:var(--radius-md)}.import-stat .stat-value{font-size:28px;font-weight:600;color:var(--color-primary)}.import-stat .stat-label{font-size:12px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.import-mapping{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:16px;margin-bottom:20px}.mapping-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;color:var(--color-text-secondary)}.mapping-header svg{width:16px;height:16px;color:var(--color-primary)}.mapping-list{display:flex;flex-direction:column;gap:8px}.mapping-row{display:flex;align-items:center;gap:12px}.mapping-row.missing .mapping-label{color:var(--color-error)}.mapping-label{flex:0 0 160px;font-size:13px;font-weight:500;color:var(--color-text-primary)}.mapping-label .required{color:var(--color-error);margin-left:2px}.mapping-row select{flex:1;height:32px;padding:0 28px 0 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-size:12px;cursor:pointer;transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.mapping-row select:focus{outline:none;border-color:var(--color-primary)}.mapping-row select.mapped{border-color:var(--color-success);background-color:#22c55e0d}.import-preview-table{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px}.import-preview-table table{width:100%;border-collapse:collapse;font-size:12px}.import-preview-table th{padding:8px 10px;background:var(--color-bg-secondary);text-align:left;font-size:10px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06)}.import-preview-table th:last-child{border-right:none}.import-preview-table td{padding:8px 10px;border-bottom:1px solid var(--color-border);border-right:1px solid rgba(0,0,0,.06);color:var(--color-text-primary)}.import-preview-table td:last-child{border-right:none}.import-preview-table tr:last-child td{border-bottom:none}.import-preview-table .mpn-cell{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--color-primary)}.import-preview-table .preview-more td{text-align:center;font-style:italic;color:var(--color-text-muted)}.import-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center}.progress-spinner{width:48px;height:48px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}.progress-text{font-size:15px;color:var(--color-text-primary);margin-bottom:12px}.progress-stats{display:flex;gap:16px;font-size:13px}.progress-stats .linked{color:var(--color-success)}.progress-stats .skipped{color:var(--color-text-muted)}.picking-list-container{overflow-x:auto}.picking-tab-header{display:flex;flex-direction:column;gap:12px;padding:16px 20px;margin-bottom:16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.picking-header-top{display:flex;justify-content:space-between;align-items:center}.picking-tab-header h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.picking-info{font-size:13px;color:var(--color-text-secondary)}.picking-info strong{color:var(--color-text-primary)}.picking-header-bottom{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.picking-search-box{display:flex;align-items:center;gap:8px;flex:1;max-width:400px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 12px}.picking-search-box .search-icon{position:static;transform:none;width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0}.picking-search-input{flex:1;border:none;background:transparent;padding:8px 0;font-size:13px;color:var(--color-text);outline:none}.picking-search-input::placeholder{color:var(--color-text-muted)}.picking-search-clear{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:4px;line-height:1;display:flex;align-items:center;justify-content:center}.picking-search-clear svg{width:16px;height:16px}.picking-search-clear:hover{color:var(--color-text)}.picking-search-results-info{padding:8px 16px;margin-bottom:16px;background:var(--color-bg-secondary);font-size:12px;color:var(--color-text-muted);border-radius:var(--radius-md)}.picking-table th.image-col,.picking-table td.image-col{width:50px;min-width:50px;max-width:50px;padding:6px 8px;text-align:center}.picking-item-image{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary)}.picking-item-no-image{opacity:.4}.picking-table .take-out-col{width:80px;text-align:center;vertical-align:middle}.picking-checkbox{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.picking-checkbox input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:var(--color-success)}.picking-checkbox input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.picking-row.picked{background:#22c55e14}.picking-row.picked:hover{background:#22c55e1f}.picking-row.loading{opacity:.6;pointer-events:none}.picking-row.alt-row{background:#3b82f60d}.picking-row.alt-row:hover{background:#3b82f614}.picking-row.picked.alt-row{background:#22c55e1a}.picking-table .pn-col{min-width:150px}.picking-table .linked-mpn{color:var(--color-primary);font-weight:500}.picking-table .linked-mpn.clickable{cursor:pointer}.picking-table .linked-mpn.clickable:hover{text-decoration:underline}.picking-table .unlinked-pn{color:var(--color-text-muted);font-style:italic}.picking-table .alt-badge{position:static;display:inline-block;margin-left:6px;padding:1px 5px;font-size:9px;font-weight:600;text-transform:uppercase;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);vertical-align:middle;min-width:auto;height:auto;top:auto;right:auto}.picking-table .location-col{min-width:150px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--color-text-secondary)}.picking-table .designators-col{max-width:200px;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--color-primary);cursor:pointer;transition:all var(--transition-fast)}.picking-table .designators-col:hover{background:#2d89980d}.picking-table .designators-col.expanded{max-width:none;white-space:normal;word-wrap:break-word;background:#2d899814}.picking-table .designators-col .designators-truncated{cursor:pointer}.picking-table .designators-col .designators-more{color:var(--color-primary);font-weight:600;padding-left:2px}.picking-table .designators-col .designators-more:hover{text-decoration:underline}.picking-table .quantity-col{min-width:120px}.picking-table .qty-formula{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--color-text-secondary)}.picking-table .qty-formula strong{color:var(--color-text-primary);font-weight:600}.picking-table .stock-info{display:block;font-size:11px;color:var(--color-text-muted);margin-top:2px}.picking-cards{display:flex;flex-direction:column;gap:6px;padding:8px}.picking-card{display:flex;align-items:stretch;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-fast);min-height:56px}.picking-card.picked{background:#22c55e14;border-color:#22c55e4d}.picking-card.loading{opacity:.6;pointer-events:none}.picking-card.alt-card{background:#3b82f60d;border-color:#3b82f633}.picking-card.picked.alt-card{background:#22c55e1a}.picking-card-checkbox{display:flex;align-items:center;justify-content:center;width:40px;min-width:40px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-light)}.picking-card-checkbox .picking-checkbox{transform:scale(1.1)}.picking-card-image{display:flex;align-items:center;justify-content:center;width:52px;min-width:52px;padding:4px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-light)}.picking-card-image img{max-width:44px;max-height:44px;object-fit:contain;border-radius:var(--radius-sm)}.picking-card-image-placeholder{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border-radius:var(--radius-sm);color:var(--color-text-muted)}.picking-card-image-placeholder.hidden{display:none}.picking-card-image-placeholder svg{width:20px;height:20px;opacity:.4}.picking-card-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:6px 10px;min-width:0;gap:1px}.picking-card-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.picking-card-row-top{margin-bottom:0}.picking-card-pn{font-weight:500;font-size:11px;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.picking-card-pn.clickable{cursor:pointer}.picking-card-pn.clickable:active{opacity:.7}.picking-card-pn.unlinked{color:var(--color-text-muted);font-style:italic}.picking-card-pn .alt-badge{position:static;display:inline-block;margin-left:4px;padding:0 3px;font-size:8px;font-weight:600;text-transform:uppercase;background:var(--color-primary);color:#fff;border-radius:3px;vertical-align:middle;min-width:auto;height:auto;top:auto;right:auto}.picking-card-qty{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;font-weight:700;color:var(--color-text-primary);white-space:nowrap;flex-shrink:0}.picking-card-row-location{margin:2px 0;overflow:hidden}.picking-card-location{font-family:JetBrains Mono,Fira Code,monospace;font-weight:700;color:var(--color-text-primary);letter-spacing:.3px;display:block;font-size:var(--location-font-size, 14px);white-space:nowrap;overflow:visible}.picking-card-designators{font-family:JetBrains Mono,Fira Code,monospace;font-size:10px;color:var(--color-primary);opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:all var(--transition-fast)}.picking-card-designators:active{opacity:.5}.picking-card-designators.expanded{white-space:normal;word-break:break-word;overflow:visible;text-overflow:unset;padding:4px 0;line-height:1.4}.picking-card.expanded{min-height:auto}.picking-list-container.mobile{padding:0}.picking-list-container.mobile .picking-tab-header{position:sticky;top:0;z-index:10;background:var(--color-bg);padding:10px 12px;gap:8px}.picking-list-container.mobile .picking-header-top{flex-wrap:wrap;gap:4px}.picking-list-container.mobile .picking-tab-header h3{font-size:13px}.picking-list-container.mobile .picking-info{font-size:11px}.picking-list-container.mobile .picking-header-bottom{gap:8px}.picking-list-container.mobile .picking-search-box{max-width:none;flex:1;min-width:120px}.picking-list-container.mobile .picking-search-input{font-size:12px;padding:6px 0}.picking-list-container.mobile .picking-tab-header .btn-secondary{font-size:12px;padding:6px 10px;height:auto}.bom-cards{display:flex;flex-direction:column;gap:6px;padding:8px}.bom-card{display:flex;align-items:stretch;background:var(--color-bg);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-fast);min-height:56px}.bom-card-ready{border-left-color:var(--color-success)}.bom-card-shortage{border-left-color:var(--color-error)}.bom-card-conflict{border-left-color:#8b5cf6}.bom-card-pending{border-left-color:var(--color-warning, #f59e0b)}.bom-card-unlinked{border-left-color:var(--color-text-muted);background:#9ca3af0a}.bom-card-skipped{border-left-color:var(--color-border);opacity:.5}.bom-card-skipped .bom-card-bom-mpn{text-decoration:line-through}.bom-card.highlight-card{background:#ffc10759!important;border-left-color:#f59e0b!important;animation:bom-highlight-pulse .8s ease-in-out 2}.bom-card-image{display:flex;align-items:center;justify-content:center;width:52px;min-width:52px;padding:4px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-light);position:relative}.bom-card-image img{max-width:44px;max-height:44px;object-fit:contain;border-radius:var(--radius-sm)}.bom-card-image .bom-card-no-image{opacity:.3;max-width:28px;max-height:28px}.bom-card-dnp-badge{position:absolute;top:2px;right:2px;font-size:7px;font-weight:700;background:var(--color-error);color:#fff;padding:1px 3px;border-radius:2px;line-height:1}.bom-card-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:6px 10px;min-width:0;gap:2px}.bom-card-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.bom-card-mpn-group{display:flex;align-items:center;gap:4px;min-width:0;flex:1;overflow:hidden}.bom-card-bom-mpn{font-weight:600;font-size:11px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bom-card-linked-mpn{font-size:10px;color:var(--color-primary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.bom-card-linked-mpn:active{opacity:.7}.bom-card-not-linked{font-size:10px;color:var(--color-text-muted);font-style:italic;white-space:nowrap}.bom-card-stock{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;font-weight:600;white-space:nowrap;flex-shrink:0;padding:1px 5px;border-radius:3px}.bom-card-stock.ready{color:var(--color-success)}.bom-card-stock.shortage{color:var(--color-error);background:#ef44441a}.bom-card-stock.conflict{color:#8b5cf6;background:#8b5cf61a}.bom-card-stock.pending{color:var(--color-warning, #f59e0b);background:#f59e0b1a}.bom-card-designators{font-family:JetBrains Mono,Fira Code,monospace;font-size:10px;color:var(--color-primary);opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;flex:1;min-width:0;transition:all var(--transition-fast)}.bom-card-designators.expanded{white-space:normal;word-break:break-word;overflow:visible;text-overflow:unset;line-height:1.4}.bom-card-designators:active{opacity:.5}.bom-card-qty{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;font-weight:700;color:var(--color-text-primary);white-space:nowrap;flex-shrink:0}.bom-card-row-actions{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.bom-card-action-btn{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;font-size:10px;font-weight:500;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-secondary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.bom-card-action-btn svg{width:12px;height:12px}.bom-card-action-btn:active{background:var(--color-border)}.bom-card-action-btn.danger{color:var(--color-error);border-color:#ef44444d}.bom-card-action-btn.danger:active{background:#ef44441a}.bom-card-action-btn:disabled{opacity:.4;pointer-events:none}.missing-cards{display:flex;flex-direction:column;gap:6px;padding:8px}.missing-card{display:flex;align-items:stretch;background:var(--color-bg);border:1px solid var(--color-border);border-left:3px solid var(--color-warning, #f59e0b);border-radius:var(--radius-md);overflow:hidden;transition:all var(--transition-fast);min-height:52px}.missing-card.has-conflict{border-left-color:#8b5cf6}.missing-card.has-shortage{border-left-color:var(--color-error)}.missing-card-image{display:flex;align-items:center;justify-content:center;width:48px;min-width:48px;padding:4px;background:var(--color-bg-secondary);border-right:1px solid var(--color-border-light)}.missing-card-image img{max-width:40px;max-height:40px;object-fit:contain;border-radius:var(--radius-sm)}.missing-card-image .missing-card-no-image{opacity:.3;max-width:24px;max-height:24px}.missing-card-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:5px 10px;min-width:0;gap:2px}.missing-card-row{display:flex;align-items:center;justify-content:space-between;gap:6px}.missing-card-mpn{font-weight:600;font-size:11px;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.missing-card-mpn.clickable{cursor:pointer}.missing-card-mpn.clickable:active{opacity:.7}.missing-card-shortage{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;font-weight:700;color:var(--color-error);background:#ef44441a;padding:1px 5px;border-radius:3px;white-space:nowrap;flex-shrink:0}.missing-card-manufacturer{font-size:10px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.missing-card-to-order{font-size:10px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;flex-shrink:0;display:flex;align-items:center;gap:3px}.missing-card-to-order .to-order-value{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;font-weight:700;color:var(--color-primary);cursor:pointer;padding:1px 4px;border-radius:3px;background:#3b82f614}.missing-card-to-order .to-order-value:active{background:#3b82f633}.missing-card-to-order .to-order-edit-input{width:48px;font-size:11px;padding:2px 4px}.missing-card-stock{font-family:JetBrains Mono,Fira Code,monospace;font-size:10px;color:var(--color-text-secondary);display:flex;align-items:center;gap:2px}.missing-card-stock .shortage{color:var(--color-error);font-weight:600}.missing-card-stock .separator{opacity:.5}.missing-card-conflict-icon{width:12px;height:12px;color:#8b5cf6;margin-left:3px;flex-shrink:0}.missing-card-delete-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid rgba(239,68,68,.3);border-radius:4px;background:transparent;color:var(--color-error);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.missing-card-delete-btn svg{width:14px;height:14px}.missing-card-delete-btn:active{background:#ef444426}.match-info{margin-bottom:16px;padding:10px 14px;background:var(--color-bg-secondary);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-secondary)}.match-info strong{color:var(--color-text-primary)}.modal-body .search-box{position:relative;margin-bottom:16px}.modal-body .search-box input{width:100%;height:36px;padding:0 40px 0 14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;transition:all var(--transition-fast)}.modal-body .search-box input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.modal-body .searching{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px;color:var(--color-text-muted)}.search-results{max-height:300px;overflow-y:auto}.no-results{text-align:center;color:var(--color-text-muted);padding:32px}.search-result-item{padding:12px 16px;border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.search-result-item:hover{background:var(--color-bg-secondary)}.result-mpn{font-family:JetBrains Mono,Fira Code,monospace;font-weight:500;color:var(--color-text-primary);margin-bottom:4px}.result-details{font-size:12px;color:var(--color-text-secondary);margin-bottom:4px}.result-stock{font-size:12px;color:var(--color-success)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.form-group input{width:100%;height:36px;padding:0 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;font-family:inherit;transition:all var(--transition-fast)}.form-group textarea{width:100%;padding:10px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;font-family:inherit;transition:all var(--transition-fast);resize:vertical}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.form-hint{display:block;font-size:12px;color:var(--color-text-muted);margin-top:6px}.form-error{padding:12px 16px;background:#fff5f5;border:1px solid #feb2b2;border-radius:var(--radius-md);color:var(--color-error);font-size:14px;margin-top:16px}@media (max-width: 900px){.project-detail-page .page-header,.stats-bar,.action-bar{padding:12px 20px}.tabs{padding:0 20px}.tab-content{padding:20px}}@media (max-width: 768px){.project-detail-page .page-header{padding:10px 12px;height:auto;flex-direction:column;align-items:stretch;gap:10px}.header-left{width:100%;gap:12px}.header-right{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px}.back-button{height:32px;padding:0 10px;font-size:12px}.back-button span{display:none}.project-info h1{font-size:16px}.project-title-row{flex-wrap:wrap;gap:8px}.project-title-row .status-badge{padding:3px 8px;font-size:10px}.project-subtitle{font-size:12px}.stats-bar{padding:10px 12px;flex-wrap:nowrap;overflow-x:auto;gap:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.stats-bar::-webkit-scrollbar{display:none}.stat-item{flex-shrink:0;padding:8px 12px;min-width:auto}.stat-value{font-size:16px}.stat-label{font-size:10px}.assembly-count-wrapper{flex-shrink:0;padding:6px 10px;gap:6px}.assembly-count-wrapper>span:first-child{font-size:10px}.count-controls{gap:4px}.count-input{width:44px;height:26px;font-size:13px}.count-btn{width:26px;height:26px}.action-bar{padding:10px 12px;gap:8px;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.action-bar::-webkit-scrollbar{display:none}.btn-primary,.btn-secondary,.btn-success,.btn-warning{height:34px;padding:0 12px;font-size:12px;flex-shrink:0;gap:6px}.btn-primary svg,.btn-secondary svg,.btn-success svg,.btn-warning svg{width:14px;height:14px}.action-spacer{display:none}.action-bar>.btn-danger.btn-delete-project{padding:6px 12px;font-size:12px;margin-left:0;flex-shrink:0}.tabs{padding:0 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:10px 14px;font-size:12px;white-space:nowrap;flex-shrink:0}.tab .tab-icon{width:14px;height:14px}.tab-content{padding:12px}.bom-table-container{border-radius:var(--radius-md)}.bom-table{font-size:12px}.bom-table th{padding:8px 10px;font-size:10px}.bom-table td{padding:8px 10px}.bom-table .designators{max-width:120px;font-size:11px}.bom-table .linked-mpn{font-size:11px}.bom-table th:nth-child(5),.bom-table td:nth-child(5),.bom-table th:nth-child(6),.bom-table td:nth-child(6){display:none}.bom-table .actions-wrapper{gap:4px}.bom-table .btn-sm{padding:4px 8px;font-size:11px}.picking-list-header{flex-direction:column;gap:8px;padding:12px 14px;align-items:flex-start}.picking-list-header h3{font-size:14px}.picking-info{font-size:12px}.picking-table .take-out-col{width:50px;padding:6px 8px}.picking-checkbox input[type=checkbox]{width:18px;height:18px}.picking-table .pn-col{min-width:100px}.picking-table .location-col{min-width:100px;font-size:10px}.picking-table .designators-col{max-width:100px;font-size:10px}.picking-table .quantity-col{min-width:80px}.picking-table .qty-formula{font-size:10px}.picking-table .stock-info{font-size:9px}.picking-table .alt-badge{font-size:8px;padding:1px 4px;margin-left:4px}.assembly-history{padding:0}.history-list{gap:12px}.history-item{padding:12px;border-radius:var(--radius-md)}.history-header{flex-direction:column;gap:8px;align-items:flex-start}.history-count{font-size:16px}.history-date{font-size:11px}.history-details{font-size:12px;gap:8px;flex-wrap:wrap}.history-detail{font-size:11px}.history-notes{margin-top:10px;padding-top:10px;font-size:12px}.history-components{margin-top:10px;font-size:11px}.history-components-table{font-size:11px}.history-components-table th,.history-components-table td{padding:6px 8px}.expand-btn{font-size:11px;padding:4px 8px}.settings-content{padding:12px 0}.settings-section{padding:12px;margin-bottom:12px;border-radius:var(--radius-md)}.settings-section .section-title{font-size:14px;gap:8px;margin-bottom:10px}.settings-section .section-icon{width:20px;height:20px}.settings-section .section-description{font-size:12px;margin-bottom:12px}.settings-row{flex-direction:column;gap:8px;align-items:flex-start}.settings-row label{font-size:12px}.settings-row input,.settings-row textarea{width:100%;font-size:14px}.pcb-status-card{padding:12px;border-radius:var(--radius-md)}.pcb-uploaded{flex-direction:column;gap:12px}.pcb-preview-area{width:100%;height:120px}.pcb-info{gap:8px;width:100%}.pcb-status-badge{font-size:12px}.pcb-filename{font-size:11px}.pcb-actions{width:100%;display:flex;gap:8px}.pcb-actions .btn-secondary,.pcb-actions .btn-danger-outline{flex:1;justify-content:center;padding:8px 12px;font-size:12px}.pcb-not-uploaded{padding:24px 16px}.pcb-empty-icon svg{width:48px;height:48px}.pcb-not-uploaded p{font-size:13px;margin:12px 0}.pcb-upload-area{padding:24px 16px}.pcb-upload-area h4{font-size:14px}.pcb-upload-area p{font-size:12px}.pcb-preview-container{max-height:200px}.file-drop-zone{padding:24px 16px}.drop-icon{width:40px;height:40px}.drop-text{font-size:14px}.drop-subtext,.drop-formats{font-size:12px}.modal-overlay{padding:0;align-items:flex-end}.modal-content{width:100%;max-width:100%;max-height:90vh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;margin:0}.modal-header{padding:14px 16px}.modal-header h2{font-size:16px}.modal-body{padding:16px;max-height:calc(90vh - 120px)}.modal-footer{padding:12px 16px;gap:8px}.modal-footer .btn-primary,.modal-footer .btn-secondary{flex:1;justify-content:center}.import-preview{max-height:200px}.import-mapping select{font-size:13px}.match-search-input{font-size:14px;padding:10px 12px}.match-results{max-height:200px}.match-result-item{padding:10px}.empty-state{padding:2rem 1rem}.empty-state p{font-size:14px}.cancel-quantities-table{font-size:12px}.cancel-quantities-table th,.cancel-quantities-table td{padding:8px 10px}.complete-summary{padding:12px}.complete-summary h4{font-size:14px}.allocation-table{font-size:12px}.allocation-table th,.allocation-table td{padding:8px 10px}}@media (max-width: 380px){.project-detail-page .page-header{padding:8px 10px}.project-info h1{font-size:14px}.stats-bar{padding:8px 10px}.stat-item{padding:6px 10px}.stat-value{font-size:14px}.action-bar{padding:8px 10px}.btn-primary,.btn-secondary,.btn-success,.btn-warning{height:32px;padding:0 10px;font-size:11px}.tabs{padding:0 10px}.tab{padding:8px 10px;font-size:11px}.tab-content{padding:10px}.bom-table th,.bom-table td{padding:6px 8px}.bom-table th:nth-child(4),.bom-table td:nth-child(4){display:none}}.action-spacer{flex:1}.action-bar>.btn-danger.btn-delete-project{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;background:transparent;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);margin-left:auto}.action-bar>.btn-danger.btn-delete-project:hover:not(:disabled){background:var(--color-error);color:#fff}.action-bar>.btn-danger.btn-delete-project:disabled{opacity:.5;cursor:not-allowed}.btn-delete-project svg{width:16px;height:16px}.modal-delete{max-width:480px}.delete-warning{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#ef44441a;border-radius:var(--radius-md);margin-bottom:16px}.delete-warning .warning-icon{width:24px;height:24px;color:var(--color-error);flex-shrink:0}.delete-warning p{margin:0;font-size:15px;font-weight:500;color:var(--color-text-primary)}.delete-details{padding:12px 16px;background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-bottom:16px}.delete-details p{margin:0 0 6px;font-size:13px;color:var(--color-text-secondary)}.delete-details p:last-child{margin-bottom:0}.delete-details strong{color:var(--color-text-primary)}.delete-notice{font-size:12px;color:var(--color-text-muted);margin:0;line-height:1.5}.modal-delete .btn-danger{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;background:var(--color-error);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.modal-delete .btn-danger:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.modal-delete .btn-danger:disabled{opacity:.6;cursor:not-allowed;transform:none}.assembly-history{padding:16px 0}.history-list{display:flex;flex-direction:column;gap:12px}.history-item{padding:16px;background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.history-item.completed{border-left:3px solid var(--color-success)}.history-item.cancelled{border-left:3px solid var(--color-error);opacity:.7}.history-item.in_progress{border-left:3px solid var(--color-primary)}.history-item.used-alternatives{border-left-color:var(--color-warning, #f59e0b)}.history-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.history-status{font-size:12px;font-weight:600;text-transform:capitalize}.history-status.completed{color:var(--color-success)}.history-status.cancelled{color:var(--color-error)}.history-status.in_progress{color:var(--color-primary)}.history-alt-badge{font-size:10px;font-weight:700;letter-spacing:.5px;background:#f59e0b26;color:var(--color-warning, #f59e0b);padding:3px 6px;border-radius:4px;text-transform:uppercase}.history-date{font-size:12px;color:var(--color-text-muted);margin-left:auto}.history-details{display:flex;gap:16px;font-size:13px;color:var(--color-text-secondary)}.history-details span{display:inline-flex;align-items:center;gap:4px}.history-alternatives{margin-top:10px;padding-top:10px;border-top:1px dashed var(--color-border)}.history-alt-title{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:6px}.history-alt-item{display:inline-block;font-size:12px;background:#f59e0b1a;color:var(--color-text-primary);padding:2px 8px;border-radius:4px;margin-right:6px;margin-bottom:4px;font-family:JetBrains Mono,Fira Code,monospace}.history-notes{margin-top:10px;padding-top:10px;border-top:1px dashed var(--color-border);font-size:13px;color:var(--color-text-secondary);font-style:italic}.history-session{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.history-session-header{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-bg-secondary);cursor:pointer;transition:background .15s ease}.history-session-header:hover{background:var(--color-bg-tertiary, rgba(0,0,0,.05))}.history-session.expanded .history-session-header{border-bottom:1px solid var(--color-border)}.history-session-count{font-weight:600;color:var(--color-text-primary)}.history-assembly-id{font-size:11px;color:var(--color-text-muted);font-family:monospace;margin-left:8px;padding:2px 6px;background:#0000000d;border-radius:4px;font-weight:500}.history-built-by{margin-left:auto;font-size:12px;color:var(--color-text-muted)}.history-assemblies{padding:8px 12px;display:flex;flex-direction:column;gap:4px}.history-assembly-item{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.history-assembly-item.mixed{border-left:3px solid var(--color-warning, #f59e0b)}.history-assembly-header{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;transition:background .15s ease}.history-assembly-header:hover{background:var(--color-bg-tertiary, rgba(0,0,0,.03))}.history-assembly-number{font-weight:600;font-size:13px;color:var(--color-text-primary)}.history-mixed-badge{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;background:#f59e0b26;color:var(--color-warning, #f59e0b);text-transform:uppercase;letter-spacing:.3px}.alt-tree-indicator{color:var(--color-text-muted);margin-right:6px;font-family:monospace}.alt-indent td:first-child{padding-left:28px}.history-components-table tr.alt-indent{background:#f59e0b0a}.history-components-table tr.alt-indent:hover{background:#f59e0b14}.history-components-list{padding:8px 12px 12px}.history-components-list .bom-table-container{border-radius:var(--radius-md)}.history-expand-icon{font-size:10px;color:var(--color-text-muted);width:16px;flex-shrink:0;transition:transform .2s ease}.history-item.expanded .history-expand-icon,.history-header:hover .history-expand-icon{color:var(--color-primary)}.history-component-count{font-size:11px;color:var(--color-text-muted);background:var(--color-bg-secondary);padding:2px 8px;border-radius:10px}.history-components-list{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border);animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.history-components-table tr.alternative-row{background:#f59e0b0d}.history-components-table tr.alternative-row:hover{background:#f59e0b1a}.type-badge{display:inline-block;font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}.type-badge.primary{background:#3b82f61a;color:var(--color-primary)}.type-badge.alternative{background:#f59e0b26;color:var(--color-warning, #f59e0b)}.deleted-row{opacity:.6}.deleted-mpn{text-decoration:line-through;color:var(--color-text-muted)}.deleted-badge{display:inline-block;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:500;background:#ef444426;color:#ef4444;border-radius:4px;text-decoration:none}.history-components-table tr.unlinked-row{opacity:.6}.history-components-table tr.unlinked-row td{color:var(--color-text-muted)}.unlinked-mpn{font-style:italic}.unlinked-badge{display:inline-block;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:500;background:#ef44441a;color:var(--color-error);border-radius:4px;font-style:normal}.history-components-table tr.skipped-row{opacity:.5;background:#9ca3af14}.history-components-table tr.skipped-row td{color:var(--color-text-muted)}.skipped-badge{display:inline-block;margin-left:8px;padding:1px 6px;font-size:10px;font-weight:500;background:#9ca3af26;color:#6b7280;border-radius:4px}.history-components-table tr.not-used-row{opacity:.5}.history-components-table tr.not-used-row td{color:var(--color-text-muted)}.type-badge.primary.unlinked{background:#9ca3af26;color:#6b7280}.history-no-components{padding:16px;text-align:center;color:var(--color-text-muted);font-size:13px;font-style:italic}.settings-content{padding:24px 0}.settings-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;margin-bottom:24px}.settings-section .section-title{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.settings-section .section-icon{width:24px;height:24px;color:#10b981}.settings-section .section-description{font-size:14px;color:var(--color-text-secondary);margin:0 0 20px}.settings-form-group{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.settings-form-group label{font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap}.settings-select{min-width:160px;height:36px;padding:0 32px 0 12px;font-size:13px;color:var(--color-text-primary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23666'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px;transition:all var(--transition-fast)}.settings-select:hover{border-color:var(--color-border-focus)}.settings-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.settings-select:disabled{opacity:.6;cursor:not-allowed}.settings-saving{font-size:12px;color:var(--color-text-muted);font-style:italic}.pcb-status-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px}.pcb-uploaded{display:flex;flex-wrap:wrap;align-items:center;gap:20px}.pcb-preview-area{flex-shrink:0;width:120px;height:90px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg);border:1px solid var(--color-border)}.pcb-preview-image{width:100%;height:100%;object-fit:cover}.pcb-preview-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--color-text-muted);gap:4px}.pcb-preview-placeholder svg{width:32px;height:32px;opacity:.4}.pcb-preview-placeholder span{font-size:10px;opacity:.6}.pcb-info{flex:1;min-width:200px;display:flex;flex-direction:column;gap:6px}.pcb-status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-md);font-size:12px;font-weight:500;width:fit-content}.pcb-status-badge.uploaded{background:#10b9811a;color:#10b981}.pcb-status-badge svg{width:14px;height:14px}.pcb-filename{font-size:13px;color:var(--color-text-secondary);word-break:break-all}.pcb-actions{display:flex;gap:8px;flex-shrink:0}.pcb-actions .btn-secondary,.pcb-actions .btn-danger-outline{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px}.pcb-actions svg{width:14px;height:14px}.btn-danger-outline{background:transparent;border:1px solid var(--color-error);color:var(--color-error);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.btn-danger-outline:hover:not(:disabled){background:var(--color-error);color:#fff}.btn-danger-outline:disabled{opacity:.5;cursor:not-allowed}.pcb-not-uploaded{display:flex;flex-direction:column;align-items:center;padding:24px;text-align:center}.pcb-empty-icon{width:64px;height:64px;margin-bottom:12px;color:var(--color-text-muted);opacity:.4}.pcb-empty-icon svg{width:100%;height:100%}.pcb-not-uploaded p{margin:0 0 16px;font-size:14px;color:var(--color-text-secondary)}.assembly-no-pcb-container{display:flex;align-items:center;justify-content:center;min-height:400px;padding:40px 20px;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.assembly-no-pcb-content{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:420px}.assembly-no-pcb-content .pcb-empty-icon.large{width:80px;height:80px;margin-bottom:20px;color:var(--color-text-muted);opacity:.3}.assembly-no-pcb-content .pcb-empty-icon.large svg{width:100%;height:100%}.assembly-no-pcb-content h3{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--color-text-primary)}.assembly-no-pcb-content .no-pcb-description{margin:0 0 24px;font-size:14px;line-height:1.6;color:var(--color-text-secondary)}.assembly-no-pcb-content .no-edit-hint{margin:0;font-size:13px;color:var(--color-text-muted);font-style:italic}.assembly-no-pcb-content .form-error{margin-top:16px}.pcb-drop-zone.inline{width:100%;max-width:360px;padding:28px 20px}.pcb-drop-zone.inline .drop-icon{width:40px;height:40px;margin-bottom:8px;color:#10b981;opacity:.7}.pcb-upload-modal{max-width:500px}.pcb-drop-zone{padding:32px 24px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:var(--color-bg-secondary)}.pcb-drop-zone:hover,.pcb-drop-zone.dragover{border-color:#10b981;background:#10b98114}.pcb-drop-zone.has-file{border-style:solid;border-color:#10b981;background:#10b9810d;padding:16px 20px;cursor:default}.pcb-drop-zone .drop-hint{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--color-text-secondary)}.pcb-drop-zone .drop-icon{width:48px;height:48px;margin-bottom:4px}.pcb-drop-zone .drop-icon.pcb-icon{color:#10b981;opacity:.7}.pcb-drop-zone .drop-text{font-size:14px;font-weight:500;color:var(--color-text-primary)}.pcb-drop-zone .drop-subtext{font-size:13px;color:var(--color-text-muted)}.pcb-drop-zone .drop-formats{font-size:12px;color:var(--color-text-muted);margin-top:4px}.pcb-drop-zone .file-selected{display:flex;align-items:center;gap:12px;text-align:left}.pcb-drop-zone .file-icon{width:40px;height:40px;flex-shrink:0}.pcb-drop-zone .file-icon.pcb-icon{color:#10b981}.pcb-drop-zone .file-info{flex:1;min-width:0}.pcb-drop-zone .file-name{display:block;font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcb-drop-zone .file-meta{display:block;font-size:12px;color:var(--color-text-muted);margin-top:2px}.pcb-drop-zone .remove-file-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:18px;cursor:pointer;transition:all var(--transition-fast);flex-shrink:0}.pcb-drop-zone .remove-file-btn:hover{background:#fff5f5;border-color:#feb2b2;color:var(--color-error)}.tab-icon{width:16px;height:16px;margin-right:6px;vertical-align:middle}.pcb-view-container{display:flex;gap:20px;height:calc(100vh - 320px);min-height:500px;max-width:100%;overflow-x:auto}.pcb-view-canvas{flex:1;min-width:0;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;display:flex;flex-direction:column}.pcb-view-canvas .loading-state{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-muted);font-size:14px}.pcb-view-canvas-component{flex:1;min-height:0}.pcb-view-bom{width:680px;min-width:680px;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden}.pcb-bom-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.pcb-bom-header h3{margin:0;font-size:14px;font-weight:600;color:var(--color-text-primary)}.pcb-bom-count{font-size:12px;color:var(--color-text-muted);background:var(--color-bg);padding:2px 8px;border-radius:var(--radius-sm)}.pcb-bom-table-wrapper{flex:1;overflow-y:auto;overflow-x:auto}.pcb-bom-table{width:100%;border-collapse:collapse;font-size:13px}.pcb-bom-table thead{position:sticky;top:0;z-index:10}.pcb-bom-table th{padding:8px 12px;text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);white-space:nowrap}.pcb-bom-table th:last-child{border-right:none}.pcb-bom-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-light);border-right:1px solid var(--color-border-light);vertical-align:top}.pcb-bom-table td:last-child{border-right:none}.pcb-bom-row{cursor:pointer;transition:background var(--transition-fast)}.pcb-bom-row:hover{background:var(--color-bg-hover)}.pcb-bom-row:active{background:var(--color-bg-active)}.pcb-bom-pn{min-width:160px;max-width:220px}.pn-location-cell{display:flex;flex-direction:column;gap:4px}.pn-value{font-family:var(--font-mono);font-size:12px;font-weight:500;color:var(--color-text-primary);word-break:break-word;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.pn-link{color:var(--color-primary);cursor:pointer;text-decoration:none;transition:color .15s ease}.pn-link:hover{color:var(--color-primary-hover);text-decoration:underline}.datasheet-link{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;color:var(--color-text-secondary);opacity:.7;transition:opacity .15s ease,color .15s ease;flex-shrink:0}.datasheet-link:hover{color:var(--color-primary);opacity:1}.datasheet-link svg{width:14px;height:14px}.location-value{font-size:11px;color:var(--color-text-secondary);font-weight:500;word-break:break-word;line-height:1.3}.pcb-bom-pn .alt-badge,.mobile-part-name .alt-badge{position:static;display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;margin-right:4px;background:#a855f726;color:#a855f7;vertical-align:middle;min-width:auto;height:auto;top:auto;right:auto}.pcb-bom-designators{min-width:150px}.designator-list{line-height:1.6;word-break:break-word}.designator-link{font-family:var(--font-mono);font-size:12px;color:var(--color-primary);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color var(--transition-fast)}.designator-link:hover{color:var(--color-primary-dark);text-decoration-thickness:2px}.designator-separator{color:var(--color-text-muted);-webkit-user-select:none;user-select:none}.pcb-bom-qty{width:70px;text-align:center;white-space:nowrap}.qty-calculation{font-family:var(--font-mono);font-size:11px;color:var(--color-text-muted)}.qty-calculation strong{color:var(--color-text-primary);font-weight:600}.pcb-bom-actions{min-width:180px;text-align:left;white-space:nowrap}@media (max-width: 1300px){.pcb-view-container{flex-direction:column-reverse;height:auto}.pcb-view-canvas{height:450px}.pcb-view-bom{width:100%;min-width:unset;max-height:450px}}.pcb-bom-row.current-item{background:#3b82f626;border-left:3px solid var(--color-primary)}.pcb-bom-row.current-item:hover{background:#3b82f633}.pcb-bom-row.placed-item{background:#22c55e14}.pcb-bom-row.placed-item:hover{background:#22c55e1f}.pcb-bom-row.dnp-item{background:#fb923c14;opacity:.7}.pcb-bom-row.dnp-item:hover{background:#fb923c1f}.pcb-bom-row.canvas-highlight{background:#ffc10759!important;border-left:3px solid #f59e0b!important;animation:canvas-highlight-pulse .8s ease-in-out 2}@keyframes canvas-highlight-pulse{0%,to{background:#ffc10759}50%{background:#ffc1078c}}.pcb-bom-row.resolved-item .pcb-bom-pn span,.pcb-bom-row.resolved-item .pcb-bom-designators,.pcb-bom-row.resolved-item .pcb-bom-location,.pcb-bom-row.resolved-item .pcb-bom-qty{opacity:.7}.state-badge{display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;margin-left:8px;vertical-align:middle}.state-badge.placed{background:#22c55e33;color:#16a34a}.state-badge.dnp{background:#fb923c33;color:#ea580c}.pcb-bom-attrition{width:70px;text-align:center}.attrition-controls{display:flex;align-items:center;justify-content:center;gap:4px}.btn-attrition{width:24px;height:24px;border-radius:4px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center}.btn-attrition:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-primary);color:var(--color-primary)}.btn-attrition:disabled{opacity:.4;cursor:not-allowed}.attrition-value{min-width:24px;font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--color-text-primary)}.pcb-bom-actions{width:180px;text-align:left}.assembly-action-buttons{display:flex;gap:3px;flex-wrap:nowrap}.btn-assembly-action{padding:3px 6px;font-size:10px;font-weight:500;border-radius:3px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn-assembly-action:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.btn-assembly-action:disabled{opacity:.5;cursor:not-allowed}.btn-placed.active{background:#22c55e26;border-color:#22c55e;color:#16a34a}.btn-placed.active:hover:not(:disabled){background:#22c55e40}.btn-dnp.active{background:#fb923c26;border-color:#fb923c;color:#ea580c}.btn-dnp.active:hover:not(:disabled){background:#fb923c40}.btn-next{margin-left:auto}.assembly-progress-footer{padding:12px 16px;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px}.progress-bar-container{height:8px;background:var(--color-bg-tertiary);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-primary),#22c55e);border-radius:4px;transition:width .3s ease}.progress-stats{display:flex;justify-content:space-between;align-items:center;font-size:12px}.progress-resolved{font-weight:600;color:var(--color-text-primary)}.progress-detail{color:var(--color-text-muted)}.modal-cancel-assembly{max-width:700px}.cancel-no-usage{text-align:center;padding:20px}.cancel-no-usage p{margin:0 0 16px;color:var(--color-text-secondary)}.cancel-confirm-text{font-weight:600;color:var(--color-text-primary)}.cancel-warning{display:flex;gap:12px;padding:12px;background:#fb923c1a;border:1px solid rgba(251,146,60,.3);border-radius:8px;margin-bottom:16px}.cancel-warning .warning-icon{width:24px;height:24px;flex-shrink:0;color:#ea580c}.cancel-warning p{margin:0;color:var(--color-text-secondary);font-size:14px}.cancel-quantities-table{max-height:300px;overflow-y:auto;margin-bottom:16px}.cancel-quantities-table table{width:100%;border-collapse:collapse;font-size:13px}.cancel-quantities-table th{padding:8px 12px;text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);position:sticky;top:0}.cancel-quantities-table td{padding:10px 12px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.cancel-quantities-table .component-name{font-family:var(--font-mono);font-size:12px;font-weight:500}.cancel-quantities-table .component-location{font-size:11px;color:var(--color-text-muted)}.cancel-quantities-table .qty-expected,.cancel-quantities-table .qty-attrition{text-align:center;font-family:var(--font-mono);font-size:12px}.cancel-quantities-table .qty-attrition{color:#ea580c}.cancel-quantities-table .qty-deduct{width:80px}.cancel-quantities-table .qty-deduct input{width:100%;padding:6px 8px;font-size:12px;font-family:var(--font-mono);border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg-primary);color:var(--color-text-primary);text-align:center}.cancel-quantities-table .qty-deduct input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f633}.cancel-notice{font-size:12px;color:var(--color-text-muted);margin:0;padding:8px 12px;background:var(--color-bg-tertiary);border-radius:6px}.mobile-assembly-container{display:flex;flex-direction:column;height:100vh;height:100dvh;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-bg);z-index:1000;overflow:hidden}.mobile-assembly-header{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0;height:32px}.mobile-back-btn{width:26px;height:26px;border-radius:4px;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;flex-shrink:0}.mobile-back-btn svg{width:16px;height:16px}.mobile-back-btn:active{background:var(--color-bg-active)}.mobile-project-name{flex:1;font-weight:600;font-size:12px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-progress{font-size:10px;font-weight:600;color:var(--color-primary);white-space:nowrap;flex-shrink:0}.mobile-cancel-btn{width:26px;height:26px;border-radius:4px;border:none;background:#ef44441a;color:#ef4444;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.mobile-cancel-btn:active{background:#ef444433}.mobile-pcb-canvas{flex:1;min-height:0;overflow:hidden}.mobile-pcb-canvas-component{width:100%;height:100%}.mobile-component-panel{flex-shrink:0;background:var(--color-bg-secondary);border-top:1px solid var(--color-border);padding:6px 8px;display:flex;flex-direction:column;gap:4px}.mobile-row-1{display:flex;align-items:center;gap:6px}.mobile-nav-btn{width:32px;height:28px;font-size:14px;font-weight:600;border-radius:4px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0}.mobile-nav-btn:active:not(:disabled){background:var(--color-bg-active)}.mobile-nav-btn:disabled{opacity:.3;cursor:not-allowed}.mobile-part-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;cursor:pointer}.mobile-part-name{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:4px;overflow:hidden}.mobile-part-name .pn-link{color:var(--color-primary);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-part-name .datasheet-link{flex-shrink:0}.mobile-location{font-size:10px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-idx{font-size:10px;font-weight:600;color:var(--color-text-muted);flex-shrink:0;min-width:40px;text-align:center}.mobile-row-2{display:flex;align-items:center;gap:8px;padding:2px 0}.mobile-row-2 .mobile-designators{flex:1;font-family:var(--font-mono);font-size:10px;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mobile-qty{font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);flex-shrink:0}.mobile-qty strong{color:var(--color-text-primary)}.mobile-attrition{display:flex;align-items:center;gap:4px;flex-shrink:0;font-size:11px;font-weight:600}.btn-att{width:22px;height:22px;border-radius:3px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary);font-size:14px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-att:active:not(:disabled){background:var(--color-bg-active)}.btn-att:disabled{opacity:.3}.mobile-row-3{display:flex;gap:6px}.mobile-btn{flex:1;padding:8px 12px;font-size:13px;font-weight:600;border-radius:4px;border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary);cursor:pointer}.mobile-btn:active:not(:disabled){transform:scale(.98)}.mobile-btn:disabled{opacity:.5;cursor:not-allowed}.mobile-btn.active.placed{background:#22c55e26;border-color:#22c55e;color:#16a34a}.mobile-btn.active.dnp{background:#fb923c26;border-color:#fb923c;color:#ea580c}@media (prefers-color-scheme: dark){.error-banner,.form-error{background:#ef44441a;border-color:#ef44444d}.state-badge.placed{background:#22c55e40;color:#4ade80}.state-badge.dnp{background:#fb923c40;color:#fdba74}.btn-placed.active{background:#22c55e33;color:#4ade80}.btn-dnp.active{background:#fb923c33;color:#fdba74}.mobile-btn.active.placed{background:#22c55e33;color:#4ade80}.mobile-btn.active.dnp{background:#fb923c33;color:#fdba74}}.missing-tab-header{display:flex;flex-direction:column;gap:12px;padding:16px 20px;margin-bottom:16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.missing-header-top{display:flex;justify-content:space-between;align-items:center}.missing-tab-header h3{margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.missing-info{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary)}.missing-info strong{color:var(--color-text-primary)}.missing-header-bottom{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.missing-header-bottom .header-spacer{flex:1}.missing-search-box{display:flex;align-items:center;gap:8px;flex:1;max-width:400px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 12px}.missing-search-box .search-icon{position:static;transform:none;width:16px;height:16px;color:var(--color-text-muted);flex-shrink:0}.missing-search-input{flex:1;border:none;background:transparent;padding:8px 0;font-size:13px;color:var(--color-text);outline:none}.missing-search-clear{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:18px;padding:0;line-height:1}.missing-last-updated{font-size:11px;color:var(--color-text-muted);display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding-left:8px;border-left:1px solid var(--color-border)}.missing-last-updated svg{width:12px;height:12px}.btn-dk-list .cart-icon{width:16px;height:16px}.missing-header-bottom .btn-danger{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#dc2626;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.missing-header-bottom .btn-danger:hover:not(:disabled){background:#ef444433;border-color:#ef444480}.missing-header-bottom .btn-danger:disabled{opacity:.5;cursor:not-allowed}.missing-header-bottom .btn-danger svg{width:16px;height:16px}.missing-table-container{flex:1;overflow:auto}.missing-table{width:100%;table-layout:auto}.missing-table .image-col{width:48px;min-width:48px;max-width:48px;padding:6px!important;text-align:center}.missing-table td.image-col{height:48px}.missing-table td.image-col img{width:36px;height:36px;object-fit:contain}.missing-table .mpn-col{width:1px;white-space:nowrap}.missing-table .mpn-link{color:var(--color-primary);cursor:pointer;transition:color var(--transition-fast)}.missing-table .mpn-link:hover{color:var(--color-primary-hover);text-decoration:underline}.missing-table .manufacturer-col{width:1px;white-space:nowrap}.missing-table .description-col{width:100%;min-width:150px;max-width:400px}.missing-table td.description-col{white-space:normal;word-wrap:break-word;overflow-wrap:break-word}.missing-table .qty-col{width:1px;text-align:center;white-space:nowrap}.missing-table .conflict-col{width:180px;min-width:180px;white-space:nowrap}.missing-table .actions-col{width:50px;min-width:50px;text-align:center}.missing-item-image{width:42px;height:42px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary);display:block;margin:0 auto}.missing-item-no-image{opacity:.3}.missing-actions .btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all var(--transition-fast)}.missing-actions .btn-icon svg{width:16px;height:16px}.missing-actions .btn-icon:hover{background:var(--color-bg-hover)}.missing-actions .btn-danger-icon{color:var(--color-text-muted)}.missing-actions .btn-danger-icon:hover{color:var(--color-error);background:#ef44441a}.missing-table .shortage{color:var(--color-error);font-weight:600}.missing-table .needed-stock-ratio{display:inline-flex;align-items:center;gap:2px}.missing-table .needed-stock-ratio .separator{color:var(--color-text-muted)}.missing-table .needed-stock-ratio .shortage{color:var(--color-error);font-weight:600}.missing-table .to-order{color:var(--color-primary);font-weight:600}.missing-table .to-order-value{cursor:pointer;padding:2px 8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.missing-table .to-order-value:hover{background:var(--color-bg-hover)}.to-order-edit-input{width:60px;padding:4px 8px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);font-size:13px;text-align:center}.conflict-info{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#ca8a04;white-space:nowrap}.conflict-header{display:flex;align-items:center;gap:4px;font-weight:500}.conflict-icon{width:14px;height:14px;color:#eab308;flex-shrink:0}.conflict-list{margin:2px 0 0;padding-left:18px;font-size:11px;color:var(--color-text-muted)}.conflict-list li{margin:1px 0}.conflict-single{font-size:11px;color:var(--color-text-muted);padding-left:18px}.conflict-project-link{color:var(--color-primary);cursor:pointer;text-decoration:none}.conflict-project-link:hover{text-decoration:underline}.conflict-new-part{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-info);font-style:italic}.conflict-new-part svg{width:14px;height:14px}.conflict-shortage{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--color-error)}.conflict-shortage .shortage-icon{width:14px;height:14px}.missing-actions{display:flex;justify-content:center;align-items:center;gap:4px}.bom-table tr.highlight-row{background:#ffc10759!important;border-left:3px solid #f59e0b!important;animation:bom-highlight-pulse .8s ease-in-out 2}@keyframes bom-highlight-pulse{0%,to{background:#ffc10759}50%{background:#ffc1078c}}.modal-update-missing{max-width:600px}.update-missing-intro{margin-bottom:16px;color:var(--color-text-muted)}.changes-list{max-height:400px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.change-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-bottom:1px solid var(--color-border);cursor:pointer}.change-item:last-child{border-bottom:none}.change-item:hover{background:var(--color-bg-hover)}.change-item input[type=checkbox]{width:16px;height:16px;cursor:pointer}.change-type{padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;text-transform:uppercase}.change-type-add{background:#22c55e26;color:#22c55e}.change-type-remove{background:#ef444426;color:#ef4444}.change-type-update{background:#3b82f626;color:#3b82f6}.change-mpn{font-weight:500;flex:1}.change-detail{font-size:12px;color:var(--color-text-muted)}.toast-notification{position:fixed;bottom:1.5rem;right:1.5rem;padding:12px 16px;border-radius:var(--radius-md);display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500;z-index:1000;box-shadow:0 4px 12px #00000026;animation:toastSlideIn .3s ease;max-width:400px}.toast-notification.error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.toast-notification.success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.toast-notification.warning{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.toast-notification .toast-icon{width:18px;height:18px;flex-shrink:0}.toast-notification span{flex:1}.toast-notification button{background:transparent;border:none;font-size:18px;cursor:pointer;opacity:.7;padding:0 4px;line-height:1;color:inherit}.toast-notification button:hover{opacity:1}@keyframes toastSlideIn{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.btn-dk-list{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:#cc00001a;border:1px solid rgba(204,0,0,.3);border-radius:var(--radius-md);color:#c00;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-dk-list:hover:not(:disabled){background:#cc000026;border-color:#cc000080}.btn-dk-list:disabled{opacity:.5;cursor:not-allowed}.btn-dk-list .dk-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#c00;color:#fff;border-radius:3px;font-size:10px;font-weight:700;letter-spacing:-.5px}.btn-dk{background:#c00!important;border-color:#c00!important;color:#fff!important}.btn-dk:hover:not(:disabled){background:#a00!important;border-color:#a00!important}.modal-dk-list{max-width:480px}.modal-dk-list .modal-body{padding:24px;min-height:180px;display:flex;flex-direction:column;justify-content:center}.dk-list-validating,.dk-list-processing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}.dk-list-validating .spinner,.dk-list-processing .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:#c00;border-radius:50%;animation:spin 1s linear infinite}.dk-list-processing p{color:var(--color-text-primary);font-size:14px;margin:0}.dk-list-hint{color:var(--color-text-tertiary)!important;font-size:13px!important}.dk-list-confirm-name,.dk-list-name-conflict{display:flex;flex-direction:column;gap:16px}.dk-list-message{color:var(--color-text-secondary);font-size:14px;margin:0;line-height:1.5}.dk-list-name-input-group{display:flex;flex-direction:column;gap:8px}.dk-list-name-input-group label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.dk-list-name-input-wrapper{display:flex;gap:8px}.dk-list-name-input{flex:1;padding:10px 12px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.dk-list-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb),.1)}.dk-list-name-input.valid{border-color:#22c55e}.dk-list-name-input.invalid{border-color:#ef4444}.dk-list-validate-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.dk-list-validate-btn:hover:not(:disabled){background:var(--color-bg-tertiary);border-color:var(--color-primary);color:var(--color-primary)}.dk-list-validate-btn:disabled{opacity:.5;cursor:not-allowed}.dk-list-validate-btn svg{width:18px;height:18px}.dk-list-validate-btn .spinner-small{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.dk-list-name-status{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:4px 0}.dk-list-name-status svg{width:16px;height:16px}.dk-list-name-status.valid{color:#22c55e}.dk-list-name-status.error{color:#ef4444}.dk-list-success{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:16px}.dk-list-success-icon{width:56px;height:56px;background:#22c55e1a;border-radius:50%;display:flex;align-items:center;justify-content:center}.dk-list-success-icon svg{width:32px;height:32px;color:#22c55e}.dk-list-success-message{font-size:16px;font-weight:500;color:var(--color-text-primary);margin:0}.dk-list-success-stats{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.dk-list-stat{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:var(--radius-md);font-size:13px}.dk-list-stat.success{background:#22c55e1a;color:#16a34a}.dk-list-stat.warning{background:#fb923c1a;color:#ea580c}.dk-list-link{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:10px 16px;background:#c00;color:#fff;border-radius:var(--radius-md);font-size:14px;font-weight:500;text-decoration:none;transition:background var(--transition-fast)}.dk-list-link:hover{background:#a00}.dk-list-link svg{width:16px;height:16px}.dk-list-error{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:16px}.dk-list-error-icon{width:56px;height:56px;background:#ef44441a;border-radius:50%;display:flex;align-items:center;justify-content:center}.dk-list-error-icon svg{width:32px;height:32px;color:#ef4444}.dk-list-error-message{font-size:14px;color:var(--color-text-secondary);margin:0;line-height:1.5;max-width:360px}@media (prefers-color-scheme: dark){.btn-dk-list{background:#cc000026;border-color:#c006}.btn-dk-list:hover:not(:disabled){background:#cc000040}.dk-list-stat.success{background:#22c55e26;color:#4ade80}.dk-list-stat.warning{background:#fb923c26;color:#fdba74}.bom-card{background:var(--color-bg);border-color:var(--color-border)}.bom-card-unlinked{background:#9ca3af0f}.bom-card-stock.shortage{background:#ef444426}.bom-card-stock.conflict{background:#8b5cf626}.bom-card-stock.pending{background:#f59e0b26}.bom-card-action-btn{background:var(--color-bg);border-color:var(--color-border)}.bom-card-action-btn:active{background:var(--color-bg-secondary)}.missing-card{background:var(--color-bg);border-color:var(--color-border)}.missing-card-shortage{background:#ef444426}.missing-card-to-order .to-order-value{background:#3b82f61f}.missing-card-delete-btn{border-color:#ef444466}.missing-card-delete-btn:active{background:#ef444433}}.order-lists-container{margin-top:.5rem}.order-lists-cards{display:flex;flex-direction:column;gap:.5rem}.order-list-card{border:1px solid var(--color-border, #e2e8f0);border-radius:8px;overflow:hidden;background:var(--color-bg, #fff);transition:box-shadow .15s}.order-list-card.expanded{box-shadow:0 2px 8px #00000014}.order-list-card-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;cursor:pointer;gap:1rem;-webkit-user-select:none;user-select:none}.order-list-card-header:hover{background:var(--color-bg-secondary, #f8fafc)}.order-list-card-left{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.order-list-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.order-list-card-right{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.order-list-type-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.badge-missing{background:#ef44441f;color:#dc2626}.badge-full{background:#3b82f61f;color:#2563eb}.badge-combined{background:#8b5cf61f;color:#7c3aed}.order-list-status-badge{display:inline-flex;align-items:center;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:capitalize;flex-shrink:0}.status-draft{background:#9ca3af26;color:#6b7280}.status-active{background:#10b9811f;color:#059669}.status-ordered{background:#3b82f61f;color:#2563eb}.status-closed{background:#6b72801f;color:#4b5563}.order-list-stat{font-size:.8rem;color:var(--color-text-secondary, #6b7280);white-space:nowrap}.order-list-stat strong{color:var(--color-text, #1f2937)}.order-list-date{font-size:.75rem;color:var(--color-text-muted, #9ca3af);white-space:nowrap}.order-list-chevron{width:1.25rem;height:1.25rem;color:var(--color-text-secondary, #6b7280);transition:transform .2s;flex-shrink:0}.order-list-chevron.rotated{transform:rotate(180deg)}.order-list-card-body{border-top:1px solid var(--color-border, #e2e8f0);padding:.75rem 1rem}.order-list-actions-bar{display:flex;gap:.5rem;margin-bottom:.75rem;align-items:center}.order-list-actions-bar .btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;height:auto;font-size:.8rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md, 6px);color:var(--color-text-primary);font-weight:500;cursor:pointer;transition:all var(--transition-fast, .15s)}.order-list-actions-bar .btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.order-list-actions-bar .btn-secondary svg{width:14px;height:14px}.order-list-actions-bar .btn-danger{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:.8rem;background:#ef444414;border:1px solid rgba(239,68,68,.25);border-radius:var(--radius-md, 6px);color:#dc2626;font-weight:500;cursor:pointer;transition:all var(--transition-fast, .15s)}.order-list-actions-bar .btn-danger:hover{background:#ef44442e;border-color:#ef444480}.order-list-card-body .btn-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-sm, 4px);background:transparent;cursor:pointer;transition:all var(--transition-fast, .15s);padding:0}.order-list-card-body .btn-icon svg{width:14px;height:14px}.order-list-card-body .btn-icon:hover{background:var(--color-bg-hover, #f3f4f6)}.order-list-card-body .btn-danger-icon{color:var(--color-text-muted, #9ca3af)}.order-list-card-body .btn-danger-icon:hover{color:var(--color-error, #ef4444);background:#ef44441a;border-color:#ef44444d}.generate-order-modal{max-width:520px}.generate-type-options{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.25rem}.generate-type-option{display:flex;align-items:flex-start;gap:.75rem;padding:.85rem 1rem;border:2px solid var(--color-border, #e2e8f0);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}.generate-type-option:hover{background:var(--color-bg-secondary, #f8fafc)}.generate-type-option.selected{border-color:var(--color-primary, #3b82f6);background:#3b82f60a}.generate-type-option input[type=radio]{margin-top:.2rem;flex-shrink:0}.generate-type-content strong{display:block;margin-bottom:.2rem;font-size:.9rem}.generate-type-content p{font-size:.8rem;color:var(--color-text-secondary, #6b7280);margin:0;line-height:1.4}.generate-name-field{display:flex;flex-direction:column;gap:.35rem}.generate-name-field label{font-size:.8rem;font-weight:600;color:var(--color-text-secondary, #6b7280)}.generate-name-field input{padding:.5rem .75rem;border:1px solid var(--color-border, #e2e8f0);border-radius:6px;font-size:.875rem;background:var(--color-bg, #fff);color:var(--color-text, #1f2937)}.generate-name-field input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 2px #3b82f626}.btn-generate-order{white-space:nowrap}.pcb-viewer-page{display:flex;flex-direction:column;width:100%;height:100vh;background:#f5f5f5;overflow:hidden}.pcb-viewer-header{display:flex;align-items:center;padding:16px 24px;background:#fff;border-bottom:1px solid #ddd;box-shadow:0 2px 4px #0000000d;gap:16px}.pcb-viewer-page .back-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:transparent;border:none;border-radius:8px;cursor:pointer;color:#555;transition:all .2s}.pcb-viewer-page .back-button:hover{background:#f0f0f0;color:#333}.pcb-viewer-page .back-button svg{width:24px;height:24px}.page-title{font-size:24px;font-weight:600;color:#2c3e50;margin:0}.header-spacer{flex:1}.pcb-viewer-main{display:flex;flex:1;overflow:hidden;gap:16px;padding:16px}.pcb-viewer-sidebar{width:300px;background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000000d;overflow-y:auto;display:flex;flex-direction:column;gap:24px}.upload-section h2,.pcb-info-section h2{font-size:18px;font-weight:600;color:#2c3e50;margin:0 0 12px}.upload-button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:12px 16px;background:#3498db;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:background .2s}.upload-button:hover:not(:disabled){background:#2980b9}.upload-button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}.upload-button.large{padding:16px 24px;font-size:16px}.upload-button svg{width:18px;height:18px}.file-info{display:flex;align-items:center;justify-content:space-between;padding:12px;background:#f8f9fa;border-radius:6px;margin-top:12px;gap:8px}.file-name{display:flex;align-items:center;gap:8px;flex:1;min-width:0;font-size:14px;color:#555}.file-name svg{width:16px;height:16px;flex-shrink:0}.file-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.clear-button{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;cursor:pointer;color:#999;transition:all .2s;flex-shrink:0}.clear-button:hover{background:#e0e0e0;color:#333}.clear-button svg{width:16px;height:16px}.error-message{display:flex;align-items:center;gap:8px;padding:12px;background:#fee;border:1px solid #fcc;border-radius:6px;margin-top:12px;color:#c33;font-size:14px}.error-message svg{width:18px;height:18px;flex-shrink:0}.pcb-info-section{border-top:1px solid #eee;padding-top:20px}.info-grid{display:flex;flex-direction:column;gap:12px}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;color:#999;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.info-value{font-size:14px;color:#2c3e50;font-weight:500}.pcb-viewer-content{flex:1;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;overflow:hidden;display:flex;flex-direction:column;min-width:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px;text-align:center;color:#999}.empty-state svg{width:64px;height:64px;margin-bottom:16px;opacity:.5}.empty-state h2{font-size:20px;font-weight:600;color:#555;margin:0 0 8px}.empty-state p{font-size:14px;color:#999;margin:0 0 24px}.test-control-group{margin-top:16px}.test-control-group h3{font-size:14px;font-weight:600;color:#555;margin:0 0 8px}.test-button{display:flex;align-items:center;justify-content:center;width:100%;padding:10px 14px;background:#2ecc71;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:13px;font-weight:500;transition:background .2s;margin-bottom:8px}.test-button:hover:not(:disabled){background:#27ae60}.test-button:disabled{background:#bdc3c7;cursor:not-allowed;opacity:.6}.test-input{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;font-size:13px;margin-bottom:8px;font-family:inherit;transition:border-color .2s}.test-input:focus{outline:none;border-color:#3498db}.test-select{width:100%;padding:10px;border:1px solid #ddd;border-radius:6px;font-size:13px;margin-bottom:8px;font-family:inherit;background:#fff;cursor:pointer;transition:border-color .2s}.test-select:focus{outline:none;border-color:#3498db}@media (max-width: 1024px){.pcb-viewer-header,.pcb-viewer-sidebar{display:none}.pcb-viewer-main{padding:0;gap:0}.pcb-viewer-content{border-radius:0}}.label-editor-page{min-height:100vh;display:flex;flex-direction:column;background:#f5f5f5}.label-editor-header{display:flex;align-items:center;gap:1rem;padding:.75rem 1.5rem;background:#fff;border-bottom:1px solid #e0e0e0}.label-editor-header .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:#666}.label-editor-header .back-button:hover{background:#f0f0f0;color:#333}.label-editor-header .back-button svg{width:20px;height:20px}.label-editor-header .page-title{flex:1;font-size:1.25rem;font-weight:600;color:#333;margin:0}.dev-badge{padding:.25rem .75rem;background:linear-gradient(135deg,#ff6b35,#f7931e);color:#fff;font-size:.75rem;font-weight:600;border-radius:12px;text-transform:uppercase}.label-editor-main{flex:1;display:grid;grid-template-columns:280px 1fr 280px;overflow:hidden}.editor-sidebar{background:#fff;border-right:1px solid #e0e0e0;overflow-y:auto;padding:1rem}.editor-sidebar-right{border-right:none;border-left:1px solid #e0e0e0}.sidebar-section{margin-bottom:1.5rem}.sidebar-section h2{font-size:.875rem;font-weight:600;color:#666;text-transform:uppercase;margin:0 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid #e0e0e0}.element-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.element-button{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.75rem .5rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .15s}.element-button:hover{background:#e0f0ff;border-color:#4a90d9}.element-button svg{width:24px;height:24px;color:#666}.element-button span{font-size:.75rem;color:#666}.size-presets{display:flex;flex-direction:column;gap:.375rem}.size-preset{padding:.5rem .75rem;background:#f5f5f5;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;text-align:left;cursor:pointer}.size-preset:hover{background:#e8e8e8}.size-preset.active{background:#4a90d9;border-color:#4a90d9;color:#fff}.custom-size{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e0e0e0}.size-input-group{display:flex;gap:.5rem}.size-input-group label{display:flex;flex-direction:column;gap:.25rem;flex:1;font-size:.75rem;color:#666}.size-input-group input{padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%;box-sizing:border-box}.print-settings{display:flex;flex-direction:column;gap:.75rem}.print-settings label{display:flex;flex-direction:column;gap:.25rem;flex:1;font-size:.75rem;color:#666}.print-settings input{padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%;box-sizing:border-box}.print-mode-selector{display:flex;flex-direction:column;gap:.5rem}.print-mode-option{display:flex;flex-direction:column;padding:.75rem;background:#f5f5f5;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .15s}.print-mode-option:hover{border-color:#4a90d9;background:#f0f7ff}.print-mode-option.active{border-color:#4a90d9;background:#e0f0ff}.print-mode-option input{position:absolute;opacity:0;pointer-events:none}.print-mode-option .mode-label{font-size:.875rem;font-weight:600;color:#333}.print-mode-option .mode-desc{font-size:.75rem;color:#666;margin-top:.125rem}.print-mode-option.active .mode-label{color:#2563eb}.quality-selector{display:flex;gap:.5rem}.quality-option{display:flex;flex-direction:column;align-items:center;padding:.5rem .75rem;background:#f5f5f5;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .15s;flex:1;text-align:center}.quality-option:hover{border-color:#4a90d9;background:#f0f7ff}.quality-option.active{border-color:#4a90d9;background:#e0f0ff}.quality-option input{position:absolute;opacity:0;pointer-events:none}.quality-option .quality-name{font-size:.875rem;font-weight:600;color:#333}.quality-option .quality-desc{font-size:.625rem;color:#666;margin-top:.125rem}.quality-option.active .quality-name{color:#2563eb}.quality-hint{font-size:.7rem;color:#888;margin-top:.5rem;font-style:italic}.editor-canvas-area{display:flex;flex-direction:column;background:#e0e0e0;overflow:hidden}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background:#fff;border-bottom:1px solid #e0e0e0}.toolbar-group{display:flex;align-items:center;gap:.75rem}.preview-toggle{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#666;cursor:pointer}.delete-button{display:flex;align-items:center;gap:.375rem;padding:.4rem .75rem;background:#fee2e2;color:#dc2626;border:1px solid #fca5a5;border-radius:6px;font-size:.8125rem;cursor:pointer;transition:all .15s}.delete-button:hover{background:#fecaca;border-color:#f87171}.delete-button svg{width:16px;height:16px}.test-print-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#4a90d9;color:#fff;border:none;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer}.test-print-button:hover:not(:disabled){background:#3a7bc8}.test-print-button:disabled{opacity:.7;cursor:not-allowed}.test-print-button svg{width:18px;height:18px}.test-print-button .spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.test-print-button.success{background:#22c55e}.test-print-button.error{background:#ef4444}.print-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin:.5rem 1rem;border-radius:8px;font-size:.875rem}.print-message.success{background:#dcfce7;color:#166534}.print-message.error{background:#fee2e2;color:#991b1b}.print-message svg{width:18px;height:18px}.canvas-container{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:auto}.konva-canvas-wrapper{position:relative;box-shadow:0 4px 20px #00000026}.canvas-info{position:relative;text-align:center;margin-top:8px;font-size:.75rem;color:#666}.zpl-preview{margin:1rem;padding:1rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px;max-height:200px;overflow:auto}.zpl-preview h3{margin:0 0 .5rem;font-size:.875rem;color:#666}.zpl-preview pre{margin:0;font-size:.75rem;font-family:monospace;white-space:pre-wrap}.properties-empty{padding:1rem;text-align:center;color:#999;font-size:.875rem}.properties-content{display:flex;flex-direction:column;gap:1rem}.property-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#f5f5f5;border-radius:6px;margin-bottom:.5rem}.element-type{font-weight:600;color:#4a90d9;font-size:.75rem;text-transform:uppercase}.element-id{font-size:.7rem;color:#999;font-family:monospace}.property-group{display:flex;flex-direction:column;gap:.5rem}.property-group h4{margin:0;font-size:.75rem;font-weight:600;color:#666;text-transform:uppercase}.property-group label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:#666}.property-group input[type=number],.property-group input[type=text],.property-group select{padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%;box-sizing:border-box}.property-group textarea{padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%;box-sizing:border-box;font-family:monospace;resize:vertical}.property-row{display:flex;gap:.5rem}.property-row label{flex:1}.checkbox-label{display:flex;flex-direction:row!important;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;margin:0}.variable-buttons{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}.variable-buttons button{padding:.25rem .5rem;background:#e0f0ff;border:1px solid #a0c8f0;border-radius:4px;font-size:.7rem;color:#4a90d9;cursor:pointer;transition:all .15s}.variable-buttons button:hover{background:#c0e0ff;border-color:#4a90d9}.sample-data{display:flex;flex-direction:column;gap:.375rem}.sample-item{display:flex;justify-content:space-between;font-size:.875rem;padding:.25rem 0;border-bottom:1px solid #e0e0e0}.sample-label{color:#666}.sample-value{color:#333;font-weight:500;font-family:monospace;font-size:.8rem;max-width:140px;overflow:hidden;text-overflow:ellipsis}@media (max-width: 1200px){.label-editor-main{grid-template-columns:240px 1fr 240px}}@media (max-width: 900px){.label-editor-main{grid-template-columns:1fr}.editor-sidebar{border-right:none;border-bottom:1px solid #e0e0e0}.editor-sidebar-right{border-left:none;border-top:1px solid #e0e0e0}}.order-lists-page{display:flex;flex-direction:column;min-height:100vh;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.order-lists-page .page-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:0 32px;height:70px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.order-lists-page .header-right{display:flex;align-items:center;gap:24px}.order-lists-page .back-button{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.order-lists-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.order-lists-page .back-button svg{width:18px;height:18px}.order-lists-page .page-title{display:flex;align-items:center;gap:16px}.order-lists-page .title-icon{width:48px;height:48px;padding:12px;background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-lg);color:var(--color-primary);flex-shrink:0}.order-lists-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.order-lists-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.order-lists-page .detail-title-row{display:flex;align-items:center;gap:12px}.order-lists-page .detail-title-row h1{font-size:20px}.order-lists-page .batch-actions{display:flex;align-items:center;gap:12px;padding-right:12px;border-right:1px solid var(--color-border)}.order-lists-page .selection-info{font-size:13px;color:var(--color-text-secondary);white-space:nowrap}.order-lists-page .detail-header-actions{display:flex;align-items:center;gap:8px;padding-right:16px;border-right:1px solid var(--color-border)}.order-lists-page .action-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.order-lists-page .action-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.order-lists-page .action-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.order-lists-page .action-btn.primary:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.order-lists-page .action-btn.secondary{background:var(--color-bg-secondary)}.order-lists-page .action-btn.danger{background:linear-gradient(135deg,#dc2626,#b91c1c);border-color:#dc2626;color:#fff}.order-lists-page .action-btn.danger:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);border-color:#b91c1c}.order-lists-page .action-btn:disabled{opacity:.6;cursor:not-allowed}.order-lists-page .action-btn svg{flex-shrink:0}.order-lists-page .action-btn.btn-dk-list{background:#cc00001a;border:1px solid rgba(204,0,0,.3);color:#c00}.order-lists-page .action-btn.btn-dk-list:hover:not(:disabled){background:#cc00002e;border-color:#cc000080}.order-lists-page .action-btn.btn-dk-list:disabled{opacity:.5;cursor:not-allowed}.order-lists-page .page-content{flex:1;padding:32px;max-width:1400px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:16px}.order-lists-page .order-list-type-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.order-lists-page .badge-missing{background:#ef44441f;color:#dc2626}.order-lists-page .badge-full{background:#3b82f61f;color:#2563eb}.order-lists-page .badge-combined{background:#8b5cf61f;color:#7c3aed}.order-lists-page .order-list-status-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:4px;font-size:11px;font-weight:600;text-transform:capitalize;flex-shrink:0}.order-lists-page .status-draft{background:#9ca3af26;color:#6b7280}.order-lists-page .status-active{background:#10b9811f;color:#059669}.order-lists-page .status-ordered{background:#3b82f61f;color:#2563eb}.order-lists-page .status-closed{background:#6b72801f;color:#4b5563}.order-lists-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px 20px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-bottom:1px solid var(--color-border)}.order-lists-filters .filter-search{display:flex;align-items:center;gap:8px;flex:1;min-width:200px;max-width:400px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:0 12px;background:var(--color-bg);transition:all var(--transition-fast)}.order-lists-filters .filter-search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.order-lists-filters .filter-search .search-icon{position:static;transform:none;width:16px;height:16px;color:var(--color-text-secondary);flex-shrink:0}.order-lists-filters .filter-search input{flex:1;border:none;padding:6px 4px;background:transparent;font-size:13px;color:var(--color-text-primary);outline:none}.order-lists-filters .filter-search input::placeholder{color:var(--color-text-secondary)}.order-lists-filters select{padding:6px 28px 6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;background:var(--color-bg);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%236b7280'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:16px}.order-lists-filters select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.order-lists-table-wrap{overflow-x:auto;background:var(--color-bg);border-radius:0 0 var(--radius-lg) var(--radius-lg);border:1px solid var(--color-border);border-top:none}.order-lists-table{width:100%;border-collapse:collapse;font-size:13px}.order-lists-table thead{position:sticky;top:0;z-index:10;background:var(--color-bg-secondary)}.order-lists-table th{text-align:left;padding:10px 14px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-border);border-right:1px solid var(--color-border-light, rgba(0, 0, 0, .06));white-space:nowrap}.order-lists-table th:last-child{border-right:none}.order-lists-table tbody tr{border-bottom:1px solid var(--color-border);transition:background var(--transition-fast)}.order-lists-table tbody tr:last-child{border-bottom:none}.order-lists-table tbody tr:hover{background:var(--color-bg-secondary)}.order-lists-table td{padding:10px 14px;color:var(--color-text-primary);vertical-align:middle;border-right:1px solid var(--color-border-light, rgba(0, 0, 0, .06))}.order-lists-table td:last-child{border-right:none}.order-lists-table .check-col{width:40px;text-align:center;padding:10px 8px}.order-lists-table .check-col input[type=checkbox]{width:16px;height:16px;accent-color:var(--color-primary);cursor:pointer}.order-lists-table .name-col{max-width:280px}.order-lists-table .name-col.clickable{cursor:pointer}.order-lists-table .name-col.clickable:hover .list-name{color:var(--color-primary);text-decoration:underline}.list-name{font-weight:500}.project-col .project-link{color:var(--color-primary);cursor:pointer;font-weight:500}.project-col .project-link:hover{text-decoration:underline}.combined-label{color:var(--color-text-muted);font-style:italic}.order-lists-table .qty-col{text-align:right;white-space:nowrap}.date-col{white-space:nowrap;color:var(--color-text-secondary)}.order-lists-table .actions-col{width:50px;text-align:center}.order-list-row.selected{background:var(--color-primary-light)}.order-list-row.combined-row{background:#8b5cf605}.order-lists-page .btn-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;cursor:pointer;transition:all var(--transition-fast);padding:0}.order-lists-page .btn-icon svg{width:15px;height:15px}.order-lists-page .btn-icon:hover{background:var(--color-bg-secondary)}.order-lists-page .btn-danger-icon{color:var(--color-text-muted)}.order-lists-page .btn-danger-icon:hover{color:var(--color-error);background:#ef44441a;border-color:#ef44444d}.order-list-child-row{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)!important}.order-list-child-row td{padding-top:8px;padding-bottom:8px;font-size:12px;color:var(--color-text-secondary)}.child-connector{color:var(--color-text-muted);margin-right:6px;font-family:monospace}.order-list-child-row .name-col{display:flex;align-items:center}.order-list-child-row .list-name.clickable{cursor:pointer}.order-list-child-row .list-name.clickable:hover{color:var(--color-primary)}.detail-source-lists{margin-bottom:8px}.detail-source-lists h4{font-size:13px;font-weight:600;margin-bottom:8px;color:var(--color-text-secondary)}.source-list-chips{display:flex;flex-wrap:wrap;gap:8px}.source-list-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;cursor:pointer;transition:all var(--transition-fast);background:var(--color-bg)}.source-list-chip:hover{background:var(--color-bg-secondary);border-color:var(--color-primary)}.source-list-chip-meta{color:var(--color-text-muted);font-size:12px}.detail-items-table{overflow-x:auto;background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.order-lists-page .bom-table{width:100%;border-collapse:collapse;font-size:13px}.order-lists-page .bom-table th{text-align:left;padding:10px 14px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-weight:600;text-transform:uppercase;font-size:11px;letter-spacing:.5px;border-bottom:2px solid var(--color-border);border-right:1px solid var(--color-border-light, rgba(0, 0, 0, .06));white-space:nowrap}.order-lists-page .bom-table th:last-child{border-right:none}.order-lists-page .bom-table tbody tr{border-bottom:1px solid var(--color-border)}.order-lists-page .bom-table tbody tr:last-child{border-bottom:none}.order-lists-page .bom-table tbody tr:hover{background:var(--color-bg-secondary)}.order-lists-page .bom-table td{padding:10px 14px;color:var(--color-text-primary);vertical-align:middle;border-right:1px solid var(--color-border-light, rgba(0, 0, 0, .06))}.order-lists-page .bom-table td:last-child{border-right:none}.order-lists-page .bom-table .image-col{width:50px;min-width:50px;max-width:50px;padding:6px 8px;text-align:center}.order-lists-page .bom-table td.image-col{height:48px}.order-lists-page .missing-item-image{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary)}.order-lists-page .missing-item-no-image{opacity:.4}.order-lists-page .bom-table .mpn-col{width:1px;white-space:nowrap;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.order-lists-page .bom-table .manufacturer-col{width:1px;white-space:nowrap}.order-lists-page .bom-table .description-col{width:100%;min-width:150px;max-width:400px}.order-lists-page .bom-table td.description-col{white-space:normal;word-wrap:break-word;overflow-wrap:break-word;color:var(--color-text-secondary)}.order-lists-page .bom-table .qty-col{width:1px;text-align:center;white-space:nowrap}.order-lists-page .shortage-value{color:var(--color-error);font-weight:600}.order-lists-page .to-order-value{font-weight:600;color:var(--color-primary)}.order-lists-page .empty-state{text-align:center;padding:48px 24px;color:var(--color-text-secondary)}.order-lists-page .empty-state p{margin:0 0 8px}.order-lists-page .spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:order-lists-spin .6s linear infinite;margin:0 auto 16px}@keyframes order-lists-spin{to{transform:rotate(360deg)}}.order-lists-page .error-text{color:var(--color-error)}.order-lists-page .text-muted{color:var(--color-text-muted);font-size:13px}.order-lists-page .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.order-lists-page .modal-content{background:var(--color-bg);border-radius:var(--radius-xl);width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0003}.order-lists-page .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.order-lists-page .modal-header h2,.order-lists-page .modal-header h3{font-size:16px;font-weight:600;margin:0;color:var(--color-text-primary)}.order-lists-page .modal-close,.order-lists-page .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;background:transparent;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);font-size:20px;transition:all var(--transition-fast)}.order-lists-page .modal-close:hover,.order-lists-page .close-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.order-lists-page .modal-close svg{width:18px;height:18px}.order-lists-page .modal-body{padding:20px}.order-lists-page .modal-body p{margin:0 0 12px;font-size:14px;color:var(--color-text-secondary);line-height:1.5}.order-lists-page .modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--color-border)}.order-lists-page .modal-footer .btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.order-lists-page .modal-footer .btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.order-lists-page .modal-footer .btn-primary:disabled{opacity:.6;cursor:not-allowed}.order-lists-page .modal-footer .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 16px;background:var(--color-bg);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.order-lists-page .modal-footer .btn-secondary:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.order-lists-page .modal-footer .btn-dk{background:#c00!important;border-color:#c00!important;color:#fff!important}.order-lists-page .modal-footer .btn-dk:hover:not(:disabled){background:#a00!important;border-color:#a00!important}.combine-modal{max-width:520px}.combine-selected-lists{display:flex;flex-direction:column;gap:6px;margin:12px 0}.combine-list-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;background:var(--color-bg-secondary)}.combine-list-chip-items{color:var(--color-text-muted);margin-left:auto;font-size:12px}.order-lists-page .generate-name-field{display:flex;flex-direction:column;gap:6px}.order-lists-page .generate-name-field label{font-size:13px;font-weight:600;color:var(--color-text-secondary)}.order-lists-page .generate-name-field input{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast)}.order-lists-page .generate-name-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.order-lists-page .modal-dk-list{max-width:480px}.order-lists-page .modal-dk-list .modal-body{padding:24px;min-height:180px;display:flex;flex-direction:column;justify-content:center}.order-lists-page .dk-list-validating,.order-lists-page .dk-list-processing{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}.order-lists-page .dk-list-validating .spinner,.order-lists-page .dk-list-processing .spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:#c00;border-radius:50%;animation:order-lists-spin 1s linear infinite;margin:0}.order-lists-page .dk-list-processing p{color:var(--color-text-primary);font-size:14px;margin:0}.order-lists-page .dk-list-hint{color:var(--color-text-muted)!important;font-size:13px!important}.order-lists-page .dk-list-name-conflict{display:flex;flex-direction:column;gap:16px}.order-lists-page .dk-list-message{color:var(--color-text-secondary);font-size:14px;margin:0;line-height:1.5}.order-lists-page .dk-list-name-input-group{display:flex;flex-direction:column;gap:8px}.order-lists-page .dk-list-name-input-group label{font-size:13px;font-weight:500;color:var(--color-text-primary)}.order-lists-page .dk-list-name-input-wrapper{display:flex;gap:8px}.order-lists-page .dk-list-name-input{flex:1;padding:10px 12px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.order-lists-page .dk-list-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.order-lists-page .dk-list-name-input.valid{border-color:#22c55e}.order-lists-page .dk-list-name-input.invalid{border-color:#ef4444}.order-lists-page .dk-list-validate-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.order-lists-page .dk-list-validate-btn:hover:not(:disabled){background:var(--color-bg);border-color:var(--color-primary);color:var(--color-primary)}.order-lists-page .dk-list-validate-btn:disabled{opacity:.5;cursor:not-allowed}.order-lists-page .dk-list-validate-btn svg{width:18px;height:18px}.order-lists-page .dk-list-validate-btn .spinner-small{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:order-lists-spin .8s linear infinite}.order-lists-page .dk-list-name-status{display:inline-flex;align-items:center;gap:6px;font-size:13px;padding:4px 0}.order-lists-page .dk-list-name-status svg{width:16px;height:16px}.order-lists-page .dk-list-name-status.valid{color:#22c55e}.order-lists-page .dk-list-name-status.error{color:#ef4444}.order-lists-page .dk-list-success{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:16px}.order-lists-page .dk-list-success-icon{width:56px;height:56px;background:#22c55e1a;border-radius:50%;display:flex;align-items:center;justify-content:center}.order-lists-page .dk-list-success-icon svg{width:32px;height:32px;color:#22c55e}.order-lists-page .dk-list-success-message{font-size:16px;font-weight:500;color:var(--color-text-primary);margin:0}.order-lists-page .dk-list-success-stats{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.order-lists-page .dk-list-stat{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border-radius:var(--radius-md);font-size:13px}.order-lists-page .dk-list-stat.success{background:#22c55e1a;color:#16a34a}.order-lists-page .dk-list-stat.warning{background:#fb923c1a;color:#ea580c}.order-lists-page .dk-list-link{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:10px 16px;background:#c00;color:#fff;border-radius:var(--radius-md);font-size:14px;font-weight:500;text-decoration:none;transition:background var(--transition-fast)}.order-lists-page .dk-list-link:hover{background:#a00}.order-lists-page .dk-list-link svg{width:16px;height:16px}.order-lists-page .dk-list-error{display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center;padding:16px}.order-lists-page .dk-list-error-icon{width:56px;height:56px;background:#ef44441a;border-radius:50%;display:flex;align-items:center;justify-content:center}.order-lists-page .dk-list-error-icon svg{width:32px;height:32px;color:#ef4444}.order-lists-page .dk-list-error-message{font-size:14px;color:var(--color-text-secondary);margin:0;line-height:1.5;max-width:360px}.order-lists-page .disabled-btn-wrapper{cursor:not-allowed;display:inline-block}.order-lists-page .disabled-btn-wrapper>button{pointer-events:none}@media (max-width: 768px){.order-lists-page .page-header{padding:12px 16px;height:auto;min-height:70px;flex-wrap:wrap;gap:12px}.order-lists-page .back-button{padding:6px 12px;font-size:13px}.order-lists-page .page-title h1{font-size:18px}.order-lists-page .page-title p{display:none}.order-lists-page .title-icon{width:40px;height:40px;padding:10px}.order-lists-page .header-right{gap:12px}.order-lists-page .batch-actions,.order-lists-page .detail-header-actions{padding-right:0;border-right:none}.order-lists-page .page-content{padding:16px}.order-lists-filters{flex-direction:column;padding:12px 16px}.order-lists-filters .filter-search{min-width:100%;max-width:100%}.order-lists-table th,.order-lists-table td{padding:8px 10px}.order-lists-page .bom-table th{padding:8px 10px;font-size:10px}.order-lists-page .bom-table td{padding:8px 10px}}@media (max-width: 640px){.order-lists-page .page-header{display:none}.order-lists-page .page-content{padding:8px;gap:0}.order-lists-filters{border-radius:var(--radius-md) var(--radius-md) 0 0}.order-lists-table-wrap{border-radius:0 0 var(--radius-md) var(--radius-md)}}
