@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;-webkit-text-size-adjust:100%;overflow-x:hidden}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;overflow-x:hidden}#root{min-height:100vh;width:100%;overflow-x:hidden;position:relative}::-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)}.login-button-secondary{background:transparent;border:1px solid var(--color-border);font-size:13px;font-weight:500;padding:11px 20px;box-shadow:none}.login-button-secondary:hover{background:var(--color-bg-secondary);box-shadow:none}.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}.login-biometric-section{display:flex;flex-direction:column;align-items:center;gap:16px}.login-welcome{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:8px}.login-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border)}.login-welcome-text{font-size:18px;font-weight:600;color:var(--color-text-primary)}.login-biometric-button{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 24px;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border:none;border-radius:var(--radius-lg);font-size:15px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);box-shadow:0 2px 8px #0ea5e94d}.login-biometric-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #0ea5e966}.login-biometric-button:active:not(:disabled){transform:translateY(0)}.login-biometric-button:disabled{opacity:.7;cursor:not-allowed}.biometric-icon{width:22px;height:22px;flex-shrink:0}.login-biometric-error{color:#ef4444;font-size:13px;margin:0;padding:8px 12px;background:#ef444414;border-radius:var(--radius-md);width:100%}.login-divider{display:flex;align-items:center;width:100%;gap:12px;margin:4px 0}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.login-divider span{font-size:12px;color:var(--color-text-secondary);text-transform:lowercase}.login-not-you{background:none;border:none;color:var(--color-text-secondary);font-size:12px;cursor:pointer;padding:4px 0;margin-top:4px;text-decoration:underline;text-underline-offset:2px;transition:color var(--transition-fast)}.login-not-you:hover{color:var(--color-text-primary)}.login-auto-prompt{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 0;color:var(--color-text-secondary)}.login-auto-prompt .biometric-icon{width:40px;height:40px;color:#0ea5e9}.login-auto-prompt-text{font-size:14px;font-weight:500}@keyframes biometricPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.08)}}.biometric-icon-pulse{animation:biometricPulse 2s ease-in-out infinite}@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}.login-avatar{width:52px;height:52px}.login-welcome-text{font-size:16px}}@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}.login-button-secondary{background:transparent}.login-button-secondary:hover{background:var(--color-bg-secondary)}}.biometric-settings{padding:20px 0}.biometric-settings-title{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.biometric-settings-desc{font-size:13px;color:var(--color-text-secondary);margin:0 0 16px;line-height:1.5}.biometric-settings-warning{color:#e67e22}.biometric-settings-unsupported{font-size:13px;color:var(--color-text-secondary);margin:0}.biometric-msg{font-size:13px;padding:8px 12px;border-radius:var(--radius-md);margin-bottom:12px}.biometric-msg-error{background:#ef444414;color:#ef4444}.biometric-msg-success{background:#22c55e14;color:#16a34a}.biometric-loading{font-size:13px;color:var(--color-text-secondary);padding:12px 0}.biometric-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.biometric-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.biometric-item-info{display:flex;flex-direction:column;gap:2px}.biometric-item-name{font-size:13px;font-weight:500;color:var(--color-text-primary)}.biometric-item-date{font-size:11px;color:var(--color-text-secondary)}.biometric-item-remove{background:none;border:none;color:#ef4444;font-size:12px;font-weight:500;cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.biometric-item-remove:hover{background:#ef444414}.biometric-register-form{display:flex;flex-direction:column;gap:10px}.biometric-name-input{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;background:var(--color-bg);color:var(--color-text-primary);outline:none;transition:border-color var(--transition-fast)}.biometric-name-input:focus{border-color:var(--color-border-focus)}.biometric-register-actions{display:flex;gap:8px}.biometric-register-btn{padding:8px 16px;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:opacity var(--transition-fast)}.biometric-register-btn:hover:not(:disabled){opacity:.9}.biometric-register-btn:disabled{opacity:.6;cursor:not-allowed}.biometric-cancel-btn{padding:8px 16px;background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background var(--transition-fast)}.biometric-cancel-btn:hover:not(:disabled){background:var(--color-bg)}.biometric-add-btn{padding:8px 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)}.biometric-add-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-border-focus)}.user-menu-wrapper{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:10px;padding:6px 10px;background:none;border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast);color:inherit}.user-menu-trigger:hover{background:var(--color-bg-secondary);border-color:var(--color-border)}.user-menu-chevron{width:16px;height:16px;color:var(--color-text-secondary);flex-shrink:0}.user-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-height:80vh;overflow-y:auto;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 8px 30px #0000001f;z-index:100;animation:menuFadeIn .15s ease-out}@keyframes menuFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-dropdown-profile{padding:14px 16px 10px;display:flex;flex-direction:column;gap:2px}.user-menu-dropdown-name{font-size:14px;font-weight:600;color:var(--color-text-primary)}.user-menu-dropdown-email{font-size:12px;color:var(--color-text-secondary)}.user-menu-section{padding:8px 16px}.user-menu-divider{height:1px;background:var(--color-border)}.user-menu-action{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;background:none;border:none;font-size:13px;font-weight:500;color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast);text-align:left}.user-menu-action:hover{background:var(--color-bg-secondary)}.user-menu-action svg{width:18px;height:18px;flex-shrink:0}.user-menu-action-danger{color:#ef4444}.user-menu-action-danger:hover{background:#ef44440d}.user-menu-dropdown .user-menu-action:last-child{border-radius:0 0 var(--radius-xl) var(--radius-xl)}.user-menu-fullpage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--color-bg);display:flex;flex-direction:column;animation:fullpageSlideIn .2s ease-out}@keyframes fullpageSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.user-menu-fullpage-header{display:flex;align-items:center;padding:12px 16px;border-bottom:1px solid var(--color-border);gap:8px;min-height:52px}.user-menu-back{display:flex;align-items:center;gap:4px;background:none;border:none;font-size:14px;font-weight:500;color:var(--color-text-primary);cursor:pointer;padding:6px 4px}.user-menu-back svg{width:20px;height:20px}.user-menu-fullpage-title{font-size:16px;font-weight:600;color:var(--color-text-primary);flex:1;text-align:center}.user-menu-fullpage-spacer{width:60px}.user-menu-fullpage-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 0 env(safe-area-inset-bottom,0)}.user-menu-fullpage-profile{display:flex;align-items:center;gap:14px;padding:20px 16px;border-bottom:1px solid var(--color-border)}.user-menu-fullpage-avatar{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border);flex-shrink:0}.user-menu-fullpage-avatar-placeholder{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}.user-menu-fullpage-info{display:flex;flex-direction:column;gap:3px;min-width:0}.user-menu-fullpage-name{font-size:16px;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-fullpage-email{font-size:13px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-fullpage-section{padding:4px 16px;border-bottom:1px solid var(--color-border)}.user-menu-fullpage-actions{padding:8px 0}.user-menu-fullpage-actions .user-menu-action{padding:14px 16px;font-size:15px}.user-menu-fullpage-actions .user-menu-action svg{width:20px;height:20px}@media (prefers-color-scheme: dark){.user-menu-dropdown{box-shadow:0 8px 30px #0006}}.dashboard{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;width:100%;max-width:100%}.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%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.dashboard-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:24px;transition:transform var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);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(-2px);border-color:var(--color-primary);box-shadow:var(--shadow-md)}.card-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:18px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light);color:var(--color-text-secondary);transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.card-icon svg{width:24px;height:24px}.dashboard-card:hover .card-icon{background:#2d89981a;border-color:var(--color-primary);color:var(--color-primary)}.dashboard-card h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 6px;letter-spacing:-.2px}.dashboard-card p{color:var(--color-text-secondary);font-size:13.5px;margin:0;line-height:1.5}.coming-soon{display:inline-block;margin-top:14px;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-border)}.dashboard-card.clickable:hover{transform:translateY(-2px);box-shadow:0 6px 18px #2d89981f}.open-icon{position:absolute;top:22px;right:22px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-muted);opacity:0;transform:translate(-6px);transition:opacity var(--transition-fast),transform var(--transition-fast),color var(--transition-fast)}.open-icon svg{width:18px;height:18px}.dashboard-card.clickable:hover .open-icon{opacity:1;transform:translate(0);color:var(--color-primary)}@media (max-width: 768px){.dashboard{overflow-x:hidden;width:100%;max-width:100%}.dashboard-header{padding:0 12px;overflow:hidden;width:100%;max-width:100%}.header-left{flex:0 1 auto;min-width:0;overflow:hidden}.header-left .logo .main-logo{height:36px;max-width:35vw}.header-right{flex:0 0 auto;margin-left:auto;max-width:50%;overflow:hidden}.user-info{gap:6px;padding:6px;border-radius:10px;max-width:100%;overflow:hidden}.user-avatar,.user-avatar-placeholder{width:30px;height:30px;min-width:30px;flex-shrink:0}.user-details,.logout-text{display:none!important}.logout-btn{padding:6px;border-radius:6px;flex-shrink:0}.logout-btn svg{width:18px;height:18px}.dashboard-main{padding:24px 12px}.dashboard-grid{grid-template-columns:1fr}}.dashboard.mobile.portrait .dashboard-header{display:flex;flex-direction:row;justify-content:space-between;height:56px;padding:0 12px;gap:8px;width:100%;max-width:100%;overflow:hidden}.dashboard.mobile.portrait .header-left{order:0;flex:0 1 auto;min-width:0;overflow:hidden}.dashboard.mobile.portrait .header-left .logo .main-logo{height:36px;max-width:35vw}.dashboard.mobile.portrait .header-right{order:1;flex:0 0 auto;margin-left:auto;max-width:50%;overflow:hidden}.dashboard.mobile.portrait .user-info{gap:6px;padding:6px;border-radius:10px;max-width:100%;overflow:hidden}.dashboard.mobile.portrait .user-avatar,.dashboard.mobile.portrait .user-avatar-placeholder{width:30px;height:30px;min-width:30px;flex-shrink:0}.dashboard.mobile.portrait .user-details,.dashboard.mobile.portrait .logout-text{display:none!important}.dashboard.mobile.portrait .logout-btn{padding:6px;border-radius:6px;flex-shrink:0}.dashboard.mobile.portrait .logout-btn svg{width:18px;height:18px}.dashboard.mobile.portrait .dashboard-main{padding:20px 12px}.dashboard.mobile.portrait .dashboard-grid{grid-template-columns:1fr;gap:10px}.dashboard.mobile.portrait .dashboard-card{padding:16px;border-radius:var(--radius-lg)}.dashboard.mobile.portrait .card-icon{width:40px;height:40px;margin-bottom:10px;border-radius:var(--radius-md)}.dashboard.mobile.portrait .card-icon svg{width:20px;height:20px}.dashboard.mobile.portrait .dashboard-card h3{font-size:15px;margin-bottom:4px}.dashboard.mobile.portrait .dashboard-card p{font-size:12px;margin-bottom:8px;line-height:1.4}.dashboard.mobile.portrait .open-icon{top:14px;right:14px;width:26px;height:26px;opacity:1;transform:none;color:var(--color-primary)}.dashboard.mobile.portrait .open-icon svg{width:14px;height:14px}.dashboard.mobile.landscape .dashboard-header{display:flex;flex-direction:row;justify-content:space-between;height:44px;padding:0 16px;width:100%;max-width:100%;overflow:hidden}.dashboard.mobile.landscape .header-left{order:0;flex:0 1 auto;min-width:0;overflow:hidden}.dashboard.mobile.landscape .header-left .logo .main-logo{height:30px;max-width:35vw}.dashboard.mobile.landscape .header-right{order:1;flex:0 0 auto;margin-left:auto;max-width:50%;overflow:hidden}.dashboard.mobile.landscape .user-info{gap:6px;padding:4px 6px;border-radius:8px;max-width:100%;overflow:hidden}.dashboard.mobile.landscape .user-avatar,.dashboard.mobile.landscape .user-avatar-placeholder{width:26px;height:26px;min-width:26px;flex-shrink:0}.dashboard.mobile.landscape .user-details,.dashboard.mobile.landscape .logout-text{display:none!important}.dashboard.mobile.landscape .logout-btn{padding:4px;flex-shrink:0}.dashboard.mobile.landscape .logout-btn svg{width:16px;height:16px}.dashboard.mobile.landscape .dashboard-main{padding:12px 16px}.dashboard.mobile.landscape .dashboard-grid{grid-template-columns:repeat(2,1fr);gap:8px}.dashboard.mobile.landscape .dashboard-card{padding:12px 14px;border-radius:var(--radius-md);display:flex;flex-direction:row;align-items:center;gap:12px}.dashboard.mobile.landscape .card-icon{width:36px;height:36px;min-width:36px;margin-bottom:0;border-radius:var(--radius-sm)}.dashboard.mobile.landscape .card-icon svg{width:18px;height:18px}.dashboard.mobile.landscape .dashboard-card h3{font-size:13px;margin-bottom:0}.dashboard.mobile.landscape .dashboard-card p{display:none}.dashboard.mobile.landscape .coming-soon{font-size:9px;padding:2px 8px}.dashboard.mobile.landscape .open-icon{position:static;width:24px;height:24px;min-width:24px;margin-left:auto;opacity:1;transform:none;color:var(--color-primary)}.dashboard.mobile.landscape .open-icon svg{width:12px;height:12px}@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{background:var(--color-bg-secondary);border-color:var(--color-border);color:var(--color-text-secondary)}.dashboard-card:hover .card-icon{background:#2d89982e;border-color:var(--color-primary);color:var(--color-primary)}.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-row{display:flex;align-items:center;gap:6px;flex:1;max-width:400px}.search-box{position:relative;flex:1;min-width:0}.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%;height:30px;padding:0 32px 0 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)}.search-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;flex-shrink:0;border:1px solid var(--color-primary);background:var(--color-primary);border-radius:var(--radius-md);color:#fff;cursor:pointer;transition:all var(--transition-fast)}.search-btn svg{width:14px;height:14px}.search-btn:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.search-btn:active{transform:scale(.95)}.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-y:auto;overflow-x: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 14px;min-width:0;overflow:hidden}.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}.drag-handle:active{cursor:grabbing}.header-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.header-label .sort-indicator{flex-shrink:0}.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 14px;color:var(--color-text-primary);vertical-align:middle;border-right:1px solid var(--color-border-light, rgba(0, 0, 0, .06));overflow:hidden;text-overflow:ellipsis}.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;min-width:0}.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{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-cell.empty{color:var(--color-text-secondary)}.components-table th.description-col,.components-table td.description-col{white-space:normal;vertical-align:top}.description-cell{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:11.5px;line-height:1.35;color:var(--color-text-secondary);word-break:break-word;overflow-wrap:anywhere;white-space:normal}.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}.violation-cell{display:inline-flex;align-items:center;gap:4px}.violation-cell.none{color:var(--color-text-secondary);opacity:.5}.violation-cell.compliant{color:#16a34a;font-weight:700;font-size:14px}.violation-pill{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.violation-pill.error{background:#ef44441a;border:1px solid rgba(239,68,68,.45);color:#dc2626}.violation-pill.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.45);color:#d97706}.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-row,.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;display:flex;flex-direction:column;flex:1;min-height:0}.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-row{max-width:none;width:100%}.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;min-height:0;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{display:none}.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-row{flex:1;max-width:260px}.components-table-container.mobile-view .search-btn{width:28px;height:28px}.components-table-container.mobile-view .search-btn svg{width:14px;height:14px}.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}}.compliance-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.compliance-badge.good{background:#22c55e1f;color:#15803d}.compliance-badge.bad{background:#ef44441f;color:#dc2626}.compliance-badge.neutral{background:#94a3b826;color:#64748b}.part-type-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.mfr-combobox{position:relative;min-width:0}.mfr-combobox input{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);background:var(--color-bg);color:var(--color-text);font-size:13px}.mfr-combobox input:focus{outline:none;border-color:var(--color-primary)}.mfr-combobox input:disabled{opacity:.6;cursor:not-allowed}.mfr-combobox-list{position:absolute;z-index:10000;top:calc(100% + 2px);left:0;right:0;max-height:220px;overflow-y:auto;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);box-shadow:0 8px 24px #0000002e}.mfr-combobox-item{display:block;width:100%;text-align:left;padding:7px 10px;border:none;background:transparent;color:var(--color-text);font-size:13px;cursor:pointer}.mfr-combobox-item:hover,.mfr-combobox-item.selected{background:#2d89981a;color:var(--color-primary)}.mfr-combobox.compact input{padding:6px 8px;font-size:12px}.doc-dropzone-wrapper{display:flex;flex-direction:column;gap:8px}.doc-dropzone{display:flex;align-items:center;justify-content:center;gap:12px;padding:20px 16px;background:var(--color-bg-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-md, 8px);cursor:pointer;transition:all var(--transition-fast, .15s ease);-webkit-user-select:none;user-select:none}.doc-dropzone:hover:not(.disabled),.doc-dropzone:focus-visible{border-color:var(--color-primary);background:#2d89980d;outline:none}.doc-dropzone.drag-over{border-color:var(--color-primary);border-style:solid;background:#2d89981a}.doc-dropzone.disabled{opacity:.5;cursor:not-allowed}.doc-dropzone .dropzone-icon{width:28px;height:28px;color:var(--color-text-tertiary);flex-shrink:0}.doc-dropzone.drag-over .dropzone-icon{color:var(--color-primary)}.doc-dropzone .dropzone-text{display:flex;flex-direction:column;gap:2px;min-width:0}.doc-dropzone .dropzone-main{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.doc-dropzone.drag-over .dropzone-main{color:var(--color-primary)}.doc-dropzone .dropzone-hint{font-size:11px;color:var(--color-text-tertiary)}.doc-dropzone-wrapper.compact .doc-dropzone{padding:9px 14px;gap:8px;justify-content:flex-start}.doc-dropzone-wrapper.compact .dropzone-icon{width:18px;height:18px}.dropzone-rejected{padding:8px 12px;background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626);border-radius:var(--radius-md, 8px);font-size:12px;display:flex;flex-direction:column;gap:4px}.dropzone-rejected-dismiss{align-self:flex-start;background:none;border:none;color:inherit;font-size:12px;font-weight:600;text-decoration:underline;cursor:pointer;padding:0}.doc-upload-queue{display:flex;flex-direction:column;gap:10px}.queue-list{display:flex;flex-direction:column;gap:6px;overflow:visible}.queue-row{position:relative;z-index:1;display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);overflow:visible}.queue-row:focus-within{z-index:20}.queue-file-info{display:flex;align-items:center;gap:6px;min-width:0;color:var(--color-text-tertiary)}.queue-file-info svg{flex-shrink:0}.queue-filename{font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.queue-filesize{flex-shrink:0;font-size:11px;color:var(--color-text-tertiary)}.queue-settings{display:flex;align-items:center;gap:8px}.queue-title{flex:1;min-width:0;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);font-size:13px;background:var(--color-bg);color:var(--color-text-primary);box-sizing:border-box}.queue-title:focus{outline:none;border-color:var(--color-primary)}.queue-mfr-row{position:relative;z-index:5;min-width:0}.queue-mfr{width:100%;max-width:none}.queue-type{flex-shrink:0;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);font-size:12px;background:var(--color-bg);color:var(--color-text-primary);cursor:pointer}.queue-remove{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm, 6px);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.queue-remove:hover:not(:disabled){background:var(--color-danger-bg, #fee2e2);border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626)}.queue-remove:disabled{opacity:.5;cursor:not-allowed}@keyframes docPickerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes docPickerSlideUp{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes docPickerPop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes docPickerSpin{to{transform:rotate(360deg)}}.doc-picker-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f17208c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1300;padding:24px;animation:docPickerFadeIn .15s ease}.doc-picker-modal{background:var(--color-bg);border-radius:var(--radius-xl, 12px);box-shadow:0 24px 60px #00000047;width:100%;max-width:760px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;animation:docPickerSlideUp .2s ease}.doc-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.doc-picker-header-text{display:flex;align-items:flex-start;gap:12px;min-width:0}.doc-picker-header-icon{flex-shrink:0;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--color-primary-light, #e3f2fd);color:var(--color-primary)}.doc-picker-header h2{margin:0;font-size:17px;font-weight:600;color:var(--color-text-primary);line-height:1.3}.doc-picker-subtitle{margin:2px 0 0;font-size:12.5px;color:var(--color-text-muted);line-height:1.4}.doc-picker-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:none;border-radius:var(--radius-sm, 6px);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.doc-picker-close:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.doc-picker-close:disabled{opacity:.4;cursor:not-allowed}.doc-picker-toolbar{display:flex;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap}.doc-picker-search{position:relative;flex:1;min-width:200px}.doc-picker-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--color-text-muted);pointer-events:none}.doc-picker-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);font-size:13px;background:var(--color-bg-secondary);color:var(--color-text-primary);box-sizing:border-box;transition:all var(--transition-fast, .15s ease)}.doc-picker-search input:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg);box-shadow:0 0 0 3px #2d89981f}.doc-picker-toolbar .doc-picker-mfr{width:190px;min-width:150px}.doc-picker-toolbar .doc-picker-mfr .mfr-combobox input{padding:9px 12px;border-radius:var(--radius-md, 8px);font-size:13px;background:var(--color-bg-secondary)}.doc-picker-toolbar select{padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);font-size:13px;background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer}.doc-picker-toolbar select:focus{outline:none;border-color:var(--color-primary)}.doc-picker-error{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:12px 20px 0;padding:9px 12px;background:#fdecec;color:var(--color-error, #e74c3c);border:1px solid #f5c6c6;border-radius:var(--radius-md, 8px);font-size:13px;flex-shrink:0}.doc-picker-error button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.doc-picker-body{flex:1;overflow-x:hidden;overflow-y:auto;min-height:220px;padding:12px}.doc-picker-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:56px 24px;text-align:center;font-size:13.5px;color:var(--color-text-muted)}.doc-picker-placeholder svg{opacity:.4}.doc-picker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.doc-picker-item{display:flex;align-items:flex-start;gap:14px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-lg, 10px);background:var(--color-bg);transition:border-color var(--transition-fast, .15s ease),box-shadow var(--transition-fast, .15s ease),background var(--transition-fast, .15s ease)}.doc-picker-item:hover{border-color:var(--color-primary);box-shadow:0 3px 12px #00000012}.doc-picker-item.linked{background:var(--color-bg-secondary);border-style:dashed}.doc-picker-item.linked:hover{box-shadow:none}.doc-picker-item-badge{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;min-width:74px;padding:5px 8px;border-radius:var(--radius-sm, 6px);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;text-align:center;background:#eef2f6;color:#475569}.doc-picker-item-badge.rohs{background:#dcfce7;color:#15803d}.doc-picker-item-badge.reach{background:#dbeafe;color:#1d4ed8}.doc-picker-item-badge.rohs_reach{background:#e0e7ff;color:#3730a3}.doc-picker-item-badge.rohs_reach_fmd{background:#ede9fe;color:#5b21b6}.doc-picker-item-badge.proprietary_waiver{background:#e2e8f0;color:#334155}.doc-picker-item-badge.customer_exemption_declaration{background:#dbeafe;color:#1e40af}.doc-picker-item-badge.datasheet{background:#fef3c7;color:#b45309}.doc-picker-item-badge.coc{background:#ede9fe;color:#5b21b6;text-transform:none}.doc-picker-item-badge.doc{background:#fae8ff;color:#a21caf;text-transform:none}.doc-picker-item-badge.certificate{background:#ede9fe;color:#6d28d9}.doc-picker-item-badge.lab{background:#ecfeff;color:#0e7490;text-transform:none}.doc-picker-item-badge.declaration{background:#fce7f3;color:#be185d}.doc-picker-item-badge.fmd{background:#ccfbf1;color:#0f766e}.doc-picker-item-badge.ipc1752a{background:#cffafe;color:#155e75}.doc-picker-item-badge.iec62474{background:#ecfccb;color:#4d7c0f}.doc-picker-item-badge.step{background:#e0f2fe;color:#0369a1}.doc-picker-item-badge.sw{background:#fee2e2;color:#b91c1c}.doc-picker-item-badge.iges{background:#fef9c3;color:#a16207}.doc-picker-item-badge[class~="3dpdf"]{background:#fae8ff;color:#a21caf}.doc-picker-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.doc-picker-item-title{display:inline-flex;align-items:flex-start;gap:5px;color:var(--color-primary);font-weight:600;font-size:13.5px;line-height:1.35;text-decoration:none;overflow-wrap:anywhere;word-break:break-word}.doc-picker-item-title:hover{color:var(--color-primary-dark);text-decoration:underline}.doc-picker-item-title svg{flex-shrink:0;margin-top:2px;opacity:.55}.doc-picker-item-title-text{min-width:0}.doc-picker-item-filename{font-size:11.5px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-picker-item-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px;font-size:11.5px;color:var(--color-text-muted)}.doc-picker-mfr-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;border-radius:20px;background:var(--color-primary-light, #e3f2fd);color:var(--color-primary-dark, #246b78);font-weight:600;overflow-wrap:anywhere;word-break:break-word;line-height:1.4}.doc-picker-mfr-chip svg{flex-shrink:0;opacity:.8}.doc-picker-meta-item{white-space:nowrap}.doc-picker-meta-dot{color:var(--color-border)}.doc-picker-item-actions{flex-shrink:0;display:flex;align-items:center;gap:8px}.doc-picker-edit-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:32px;height:32px;padding:0;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.doc-picker-edit-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light, #e3f2fd)}.doc-picker-pick{min-width:62px;height:32px;padding:0 16px;display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm, 6px);font-size:12.5px;font-weight:600;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.doc-picker-pick:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px)}.doc-picker-pick:disabled{opacity:.55;cursor:not-allowed}.doc-picker-linked{display:inline-flex;align-items:center;gap:5px;padding:0 10px;height:32px;font-size:12.5px;font-weight:600;color:var(--color-success, #4caf50);white-space:nowrap}.doc-picker-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;border-top:1px solid var(--color-border);flex-shrink:0}.doc-picker-count{font-size:12px;color:var(--color-text-muted);white-space:nowrap}.doc-picker-pagination{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--color-text-secondary)}.doc-picker-pagination button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.doc-picker-pagination button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.doc-picker-pagination button:disabled{opacity:.4;cursor:not-allowed}.doc-picker-done{padding:8px 20px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.doc-picker-done:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.doc-picker-done:disabled{opacity:.5;cursor:not-allowed}.doc-picker-spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:docPickerSpin .7s linear infinite}.doc-picker-spinner.sm{width:15px;height:15px;border-width:2px;border-color:#fff6;border-top-color:#fff}.doc-picker-edit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1400;padding:24px;animation:docPickerFadeIn .15s ease}.doc-picker-edit-modal{background:var(--color-bg);border-radius:var(--radius-xl, 12px);box-shadow:0 24px 60px #00000047;width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:docPickerPop .16s ease}.doc-picker-edit-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.doc-picker-edit-header h2{margin:0;font-size:17px;font-weight:600;color:var(--color-text-primary)}.doc-picker-edit-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.doc-picker-edit-error{padding:9px 12px;background:#fdecec;color:var(--color-error, #e74c3c);border:1px solid #f5c6c6;border-radius:var(--radius-md, 8px);font-size:13px}.doc-picker-edit-field{display:flex;flex-direction:column;gap:6px}.doc-picker-edit-field label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.doc-picker-optional{font-weight:400;color:var(--color-text-muted)}.doc-picker-edit-field input[type=text],.doc-picker-edit-field select,.doc-picker-edit-field textarea{padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);font-family:inherit;box-sizing:border-box;width:100%}.doc-picker-edit-field input[type=text]:focus,.doc-picker-edit-field select:focus,.doc-picker-edit-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981f}.doc-picker-edit-field textarea{resize:vertical;min-height:60px}.doc-picker-edit-file{display:inline-block;color:var(--color-primary);font-size:13px;word-break:break-all}.doc-picker-edit-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--color-border);flex-shrink:0}.doc-picker-confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1500;padding:24px;animation:docPickerFadeIn .12s ease}.doc-picker-confirm{background:var(--color-bg);border-radius:var(--radius-xl, 12px);box-shadow:0 24px 60px #0000004d;width:100%;max-width:400px;padding:24px;text-align:center;animation:docPickerPop .16s ease}.doc-picker-confirm-icon{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center}.doc-picker-confirm-icon.assign{background:var(--color-primary-light, #e3f2fd);color:var(--color-primary)}.doc-picker-confirm-icon.warn{background:#fff3e0;color:var(--color-accent-warning, #f57f17)}.doc-picker-confirm-title{margin:0 0 8px;font-size:17px;font-weight:600;color:var(--color-text-primary)}.doc-picker-confirm-text{margin:0;font-size:13.5px;line-height:1.55;color:var(--color-text-secondary)}.doc-picker-confirm-doc{color:var(--color-text-primary);font-weight:600}.doc-picker-confirm-value{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:7px 14px;border-radius:20px;background:var(--color-primary-light, #e3f2fd);color:var(--color-primary-dark, #246b78);font-size:13px;font-weight:600;overflow-wrap:anywhere;word-break:break-word}.doc-picker-confirm-compare{display:flex;flex-direction:column;gap:6px;margin-top:16px;padding:14px;background:var(--color-bg-secondary);border-radius:var(--radius-md, 8px)}.doc-picker-cmp-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.doc-picker-cmp-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.doc-picker-cmp-value{font-size:13.5px;font-weight:600;color:var(--color-text-primary);text-align:right;overflow-wrap:anywhere;word-break:break-word}.doc-picker-cmp-value.highlight{color:var(--color-primary)}.doc-picker-cmp-divider{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);opacity:.7}.doc-picker-confirm-actions{display:flex;flex-direction:column;gap:8px;margin-top:22px}.doc-picker-confirm-btn{width:100%;padding:10px 16px;border-radius:var(--radius-md, 8px);font-size:13.5px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all var(--transition-fast, .15s ease)}.doc-picker-confirm-btn:disabled{opacity:.55;cursor:not-allowed}.doc-picker-confirm-btn.primary{background:var(--color-primary);color:#fff}.doc-picker-confirm-btn.primary:hover:not(:disabled){background:var(--color-primary-dark)}.doc-picker-confirm-btn.danger{background:var(--color-accent-warning, #f57f17);color:#fff}.doc-picker-confirm-btn.danger:hover:not(:disabled){filter:brightness(.94)}.doc-picker-confirm-btn.secondary{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text-secondary)}.doc-picker-confirm-btn.secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.doc-picker-confirm-btn.ghost{background:none;color:var(--color-text-muted)}.doc-picker-confirm-btn.ghost:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}@media (max-width: 640px){.doc-picker-overlay{padding:8px}.doc-picker-modal{max-height:92vh}.doc-picker-toolbar .doc-picker-mfr{width:100%}.doc-picker-item{flex-wrap:wrap}.doc-picker-item-actions{width:100%;justify-content:flex-end;margin-top:4px}}.custom-params-editor{display:flex;flex-direction:column;gap:10px}.params-editor-empty{font-size:13px;color:var(--color-text-secondary);padding:4px 0}.params-editor-rows{display:flex;flex-direction:column;gap:8px}.params-editor-head,.params-editor-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1.4fr) 30px;gap:8px;align-items:center}.params-editor-head span{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.params-editor-row input{width:100%;padding:8px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.params-editor-row input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61f}.params-editor-row.duplicate input{border-color:var(--color-error)}.param-name-combobox{position:relative}.param-name-combobox input{padding-right:28px}.combobox-chevron{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--color-text-secondary);pointer-events:none}.param-name-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:60;margin:0;padding:4px;list-style:none;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:216px;overflow-y:auto}.param-name-suggestions li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;border-radius:6px;font-size:13px;cursor:pointer}.param-name-suggestions li.highlighted{background:#3b82f61a}.suggestion-name{color:var(--color-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.suggestion-count{flex-shrink:0;font-size:11px;color:var(--color-text-secondary)}.param-remove-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.param-remove-btn:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error);background:#e74c3c14}.params-editor-warning{font-size:12px;font-weight:500;color:var(--color-error)}.param-add-btn{display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:7px 12px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.param-add-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.param-add-btn:disabled,.param-remove-btn:disabled,.params-editor-row input:disabled{opacity:.6;cursor:not-allowed}.mobile-scanner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#000;display:flex;flex-direction:column}.mobile-scanner-container{display:flex;flex-direction:column;height:100%;width:100%}.mobile-scanner-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2;flex-shrink:0}.mobile-scanner-close{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff26;border:none;border-radius:50%;color:#fff;cursor:pointer;transition:background .2s}.mobile-scanner-close:active{background:#ffffff4d}.mobile-scanner-close svg{width:22px;height:22px}.mobile-scanner-title{font-size:16px;font-weight:600;color:#fff;letter-spacing:.3px}.mobile-scanner-viewfinder{flex:1;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#111}.mobile-scanner-viewfinder.detected{animation:scanFlash .3s ease-out}@keyframes scanFlash{0%{background:#2d899866}to{background:transparent}}.mobile-scanner-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.mobile-scanner-guide{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:1;pointer-events:none}.scanner-frame{position:relative;width:260px;height:260px}.scanner-corner{position:absolute;width:30px;height:30px;border-color:var(--color-primary, #2d8998);border-style:solid;border-width:0}.scanner-corner.top-left{top:0;left:0;border-top-width:3px;border-left-width:3px;border-top-left-radius:8px}.scanner-corner.top-right{top:0;right:0;border-top-width:3px;border-right-width:3px;border-top-right-radius:8px}.scanner-corner.bottom-left{bottom:0;left:0;border-bottom-width:3px;border-left-width:3px;border-bottom-left-radius:8px}.scanner-corner.bottom-right{bottom:0;right:0;border-bottom-width:3px;border-right-width:3px;border-bottom-right-radius:8px}.scanner-line{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:240px;height:2px;background:linear-gradient(90deg,transparent 0%,var(--color-primary, #2d8998) 30%,var(--color-primary, #2d8998) 70%,transparent 100%);animation:scanLine 2.5s ease-in-out infinite;opacity:.8}@keyframes scanLine{0%,to{transform:translate(-50%,-130px)}50%{transform:translate(-50%,130px)}}.mobile-scanner-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:#000000b3;color:#fff;z-index:2;font-size:15px;font-weight:500}.mobile-scanner-status.success{background:#000000bf}.mobile-scanner-status.success svg{color:#4caf50}.mobile-scanner-status.error{background:#000c;padding:24px;text-align:center}.mobile-scanner-status.error svg{color:#ef4444}.mobile-scanner-status.error span{max-width:280px;line-height:1.5}.scanner-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--color-primary, #2d8998);border-radius:50%;animation:spin .8s linear infinite}.mobile-scanner-retry{margin-top:8px;padding:10px 24px;background:var(--color-primary, #2d8998);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s}.mobile-scanner-retry:active{background:var(--color-primary-dark, #246b78)}.mobile-scanner-hint{padding:14px 16px;text-align:center;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fffc;font-size:13px;font-weight:500;flex-shrink:0}@media (orientation: landscape) and (max-height: 500px){.mobile-scanner-header{padding:4px 12px}.mobile-scanner-title{font-size:14px}.mobile-scanner-close{width:34px;height:34px}.mobile-scanner-close svg{width:18px;height:18px}.scanner-frame{width:200px;height:200px}.mobile-scanner-hint{padding:8px 16px;font-size:12px}}.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;overflow:hidden;overscroll-behavior:contain}.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;min-width:0}.modal-header .header-titles{display:flex;flex-direction:column;gap:2px;min-width:0}.modal-header .header-subtitle{margin:0;font-size:12px;font-weight:400;color:var(--color-text-muted);line-height:1.3}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--color-text-primary);line-height:1.25}.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 .acm-search-btn{width:auto;height:auto;padding:10px 18px;min-width:118px;min-height:40px;background:var(--color-primary);border:none;border-radius:8px;color:#fff;font-size:14px;font-weight:500;line-height:1.25;cursor:pointer;transition:background .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;white-space:nowrap;box-sizing:border-box;overflow:visible}.add-component-modal .search-box .acm-search-btn:hover:not(:disabled){background:var(--color-primary-dark)}.add-component-modal .search-box .acm-search-btn:disabled{opacity:.65;cursor:not-allowed}.add-component-modal .search-box .acm-scan-btn{width:auto;height:auto;padding:10px 14px;min-height:40px;background:linear-gradient(135deg,#2d8998,#247a87);border:none;border-radius:8px;color:#fff;font-size:13px;font-weight:500;line-height:1.25;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;flex-shrink:0;box-sizing:border-box}.add-component-modal .search-box .acm-scan-btn:hover:not(:disabled){background:linear-gradient(135deg,#247a87,#1d6a76);transform:translateY(-1px);box-shadow:0 2px 8px #2d89984d}.add-component-modal .search-box .acm-scan-btn:disabled{opacity:.6;cursor:not-allowed}.add-component-modal .search-box .acm-scan-btn.connected{background:linear-gradient(135deg,#059669,#047857);animation:scan-pulse 2s ease-in-out infinite}@keyframes scan-pulse{0%,to{box-shadow:0 0 #0596694d}50%{box-shadow:0 0 0 4px #0596691a}}.add-component-modal .search-box .acm-scan-btn svg{flex-shrink:0}.add-component-modal .scan-status-hint{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;color:var(--color-text-secondary);border-radius:6px;background:var(--color-bg-secondary)}.add-component-modal .scan-status-hint.connected{color:#059669;background:#05966914}.add-component-modal .scan-status-hint svg{flex-shrink:0}.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-hint-banner,.manual-entry-banner{padding:12px 16px;background:#2d899814;border:1px solid rgba(45,137,152,.2);border-radius:8px;color:var(--color-text-secondary);font-size:13px;line-height:1.45}.manual-entry-banner{margin-bottom:16px}.manual-entry-banner strong{color:var(--color-text-primary);font-weight:600}.search-results{display:flex;flex-direction:column;gap:12px}.search-results-cards{display:none}.results-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--color-text-secondary);font-weight:500}.results-selection-hint{font-size:12px;font-weight:500;color:var(--color-text-muted)}.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,box-shadow .15s ease;white-space:nowrap;flex-shrink:0}.select-btn.selected{background:color-mix(in srgb,var(--color-success, #16a34a) 88%,black);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-success, #16a34a) 40%,transparent)}.select-btn.selected:hover{background:color-mix(in srgb,var(--color-success, #16a34a) 75%,black)}.search-container .results-table tbody tr.selected{background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.search-container .results-table tbody tr.source-taken{opacity:.72}.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}.add-component-modal.manual-mode{max-width:780px}.add-component-modal.manual-mode .modal-header{padding:12px 16px;gap:8px}.add-component-modal.manual-mode .modal-header h2{font-size:16px;letter-spacing:-.01em;margin:0}.add-component-modal.manual-mode .modal-header .header-subtitle{margin:2px 0 0;font-size:12px}.add-component-modal.manual-mode .modal-body{padding:12px 16px;background:var(--color-bg-secondary)}.add-component-modal.manual-mode .modal-footer{padding:10px 16px;gap:8px}.manual-form{display:flex;flex-direction:column;gap:8px}.manual-form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:8px;align-items:start}@media (max-width: 720px){.manual-form-row{grid-template-columns:1fr}.manual-form .form-grid.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.manual-form .form-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;padding:10px 12px 12px;box-shadow:none}.manual-form .form-section.collapsible{background:var(--color-bg);border-style:dashed;box-shadow:none}.manual-form .form-section.part-type-section{padding:8px 12px 10px}.part-type-segment{display:grid;grid-template-columns:1fr 1fr;gap:0;border:1px solid var(--color-border);border-radius:6px;overflow:hidden;background:var(--color-bg-secondary)}.part-type-option{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border:none;border-radius:0;background:transparent;color:var(--color-text-secondary);font-size:12.5px;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.part-type-option+.part-type-option{border-left:1px solid var(--color-border)}.part-type-option:hover{background:var(--color-bg);color:var(--color-text-primary);border-color:transparent}.part-type-option.active{background:var(--color-bg);color:var(--color-primary, #2d8998);box-shadow:inset 0 -2px 0 var(--color-primary, #2d8998);border-color:transparent}.part-type-option svg{flex-shrink:0;width:15px;height:15px}@media (max-width: 640px){.part-type-segment{grid-template-columns:1fr}.part-type-option+.part-type-option{border-left:none;border-top:1px solid var(--color-border)}.part-type-option{padding:8px 12px;font-size:13px}}.manual-form .section-title{display:flex;align-items:center;gap:6px;margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid var(--color-border-light, var(--color-border));font-size:10px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.07em}.manual-form .section-accent{width:2px;height:10px;border-radius:1px;background:var(--color-primary);flex-shrink:0}.manual-form .section-title .optional-badge{margin-left:auto;padding:1px 6px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:999px;font-size:9px;font-weight:600;text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.04em}.manual-form .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.manual-form .form-grid.quantity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-form .form-grid.storage-grid,.manual-form .form-grid.details-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.manual-form .form-field{display:flex;flex-direction:column;gap:3px;min-width:0}.manual-form .form-field.full-width{grid-column:1 / -1}.manual-form .form-field label{display:flex;align-items:center;gap:4px;font-size:11px;font-weight:500;color:var(--color-text-muted);text-transform:none;letter-spacing:0;line-height:1.2}.manual-form .form-field input,.manual-form .form-field textarea,.manual-form .form-field select,.manual-form .form-field .mfr-combobox input{padding:6px 9px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:5px;font-size:13px;color:var(--color-text-primary);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease;line-height:1.3}.manual-form .form-field input:focus,.manual-form .form-field textarea:focus,.manual-form .form-field select:focus,.manual-form .form-field .mfr-combobox input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2d89981f}.manual-form .form-field textarea{resize:vertical;min-height:44px}.manual-form .form-field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:32px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 8px center;background-size:14px}.manual-form .form-field .field-hint{font-size:10px;color:var(--color-text-muted);line-height:1.3;opacity:.9}.manual-form .form-field .mfr-combobox{width:100%}.manual-form .form-field .mfr-combobox-list{z-index:30}.manual-form .mpn-field input{font-family:JetBrains Mono,Fira Code,monospace;font-size:12.5px;font-weight:500;letter-spacing:-.01em}.manual-form .compliance-warning{gap:10px;padding:10px 12px;border-radius:6px}.manual-form .compliance-warning svg{width:16px;height:16px}.manual-form .compliance-warning-title{font-size:12px}.manual-form .compliance-warning-desc{font-size:11px}.manual-form .image-preview{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:8px;box-shadow:0 1px 2px #00000008}.manual-form .image-preview img{width:44px;height:44px;object-fit:contain;border-radius:6px;background:var(--color-bg-secondary);border:1px solid var(--color-border-light, var(--color-border));flex-shrink:0}.manual-form .image-preview-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.manual-form .image-preview-label{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.manual-form .image-preview .api-source-badge,.manual-form .image-preview .api-source-badge-link{padding:3px 9px;background:#2d89981a;color:var(--color-primary);border-radius:999px;font-size:10px;font-weight:600;letter-spacing:.03em;text-decoration:none}.manual-form .image-preview .api-source-badge-link{display:inline-flex;align-items:center;gap:4px;transition:background .15s ease,color .15s ease}.manual-form .image-preview .api-source-badge-link:hover{background:var(--color-primary);color:#fff;transform:none}.manual-form .image-preview .api-source-badge-link.digikey{background:#cc00001a;color:#b00000}.manual-form .image-preview .api-source-badge-link.digikey:hover{background:#c00;color:#fff}.manual-form .image-preview .api-source-badge-link.mouser{background:#1a7ab81f;color:#156494}.manual-form .image-preview .api-source-badge-link.mouser:hover{background:#1a7ab8;color:#fff}.manual-form .image-preview .api-source-badge-link svg{opacity:.75}.manual-form .order-link-section{margin-top:8px;padding-top:8px;border-top:1px solid var(--color-border-light, var(--color-border))}.manual-form .order-link-toggle{font-size:12px;gap:7px}.manual-form .order-link-toggle input{width:14px;height:14px}.manual-form .order-link-content{margin-top:8px;padding:8px;border-radius:6px;border:1px solid var(--color-border)}.manual-form .order-select{padding:7px 10px;font-size:13px;border-radius:6px}.manual-form .order-item-option{padding:6px 8px;margin-bottom:3px;border-radius:5px}.manual-form .docs-attach{gap:10px}.manual-form .docs-attach-actions{gap:8px}.manual-form .doc-attach-btn{padding:8px 12px;font-size:12px;border-radius:6px}.manual-form .pending-doc-row{padding:8px 10px;border-radius:6px}.manual-form .pending-doc-row .pending-doc-title,.manual-form .pending-doc-row .pending-doc-type,.manual-form .pending-doc-row .pending-doc-mfr input{height:32px;padding:6px 10px;font-size:12px;border-radius:6px}.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,.form-field select{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,.form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.form-field input:hover:not(:disabled),.form-field select:hover:not(:disabled){border-color:var(--color-text-muted)}.form-field input:disabled,.form-field select:disabled{background:var(--color-bg-secondary);color:var(--color-text-muted);cursor:not-allowed}.form-field textarea{resize:vertical;min-height:60px}.form-field select{appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:38px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 12px center;background-size:16px}.form-field select:focus{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232d8998' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}.form-field select option{color:var(--color-text-primary);background:var(--color-bg)}.form-field select.select-warning{border-color:var(--color-warning, #f59e0b);background-color:#f59e0b0f}.form-field select.select-warning:focus{border-color:var(--color-warning, #f59e0b);box-shadow:0 0 0 3px #f59e0b26}.form-field .field-hint{font-size:11px;color:var(--color-text-muted)}.compliance-warning{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);border-left:3px solid var(--color-warning, #f59e0b);border-radius:8px}.compliance-warning svg{width:20px;height:20px;flex-shrink:0;margin-top:1px;color:var(--color-warning, #f59e0b)}.compliance-warning-body{display:flex;flex-direction:column;gap:2px}.compliance-warning-title{font-size:13px;font-weight:600;color:var(--color-text-primary)}.compliance-warning-desc{font-size:12px;line-height:1.45;color:var(--color-text-secondary)}.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%;width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:input-spin .6s linear infinite}@keyframes input-spin{0%{transform:translateY(-50%) rotate(0)}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-badges{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.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.digikey{background:#c00}.image-preview .api-source-badge-link.mouser{background:#1a7ab8}.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}.submit-warning{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:10px 14px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:8px;color:var(--color-warning, #f59e0b);font-size:13px;font-weight:500}.submit-warning 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)}.secondary-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}.secondary-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light)}.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:16px;height:16px;min-width:16px;min-height:16px;box-sizing:border-box;flex-shrink:0;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite}.add-component-modal .acm-btn-spinner{display:block;width:16px;height:16px;min-width:16px;min-height:16px;max-width:16px;max-height:16px;flex:0 0 16px;aspect-ratio:1;box-sizing:border-box;margin:0;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:acm-btn-spin .6s linear infinite}@keyframes acm-btn-spin{to{transform:rotate(360deg)}}@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,.manual-form-row,.manual-form .form-grid,.manual-form .form-grid.quantity-grid,.manual-form .form-grid.storage-grid,.manual-form .form-grid.details-grid{grid-template-columns:1fr}.modal-footer{padding:12px 20px}.footer-actions{flex-direction:column}.cancel-btn,.secondary-btn,.submit-btn{width:100%;justify-content:center}.add-component-modal .search-box .acm-scan-btn .scan-btn-label{display:none}.add-component-modal .search-box .acm-scan-btn{padding:8px}}@media (max-width: 640px){.modal-overlay{padding:0;align-items:stretch}.add-component-modal{max-width:100%;max-height:100vh;height:100vh;border-radius:0;border:none;box-shadow:none;animation:none}.modal-header{border-radius:0;padding:12px 16px;min-height:52px}.modal-header h2{font-size:16px}.modal-body{padding:16px;flex:1;min-height:0}.modal-footer{border-radius:0;padding:10px 16px}.choice-container{gap:16px}.choice-description{font-size:14px}.choice-cards{gap:12px}.choice-card{padding:14px;gap:14px}.choice-card .card-icon{width:42px;height:42px}.choice-card .card-icon svg{width:22px;height:22px}.choice-card .card-content h3{font-size:15px;margin-bottom:4px}.choice-card .card-content p{font-size:12px}.choice-card .card-arrow{display:none}.search-container{gap:12px}.add-component-modal .search-box{padding:8px 10px;gap:8px;border-radius:10px}.add-component-modal .search-box input{font-size:14px}.add-component-modal .search-box .acm-search-btn{padding:10px 14px;min-width:110px;font-size:13px}.add-component-modal .search-box .acm-scan-btn .scan-btn-label{display:none}.add-component-modal .search-box .acm-scan-btn{padding:8px;min-width:40px}.api-filter{gap:8px}.api-filter .filter-label{font-size:12px}.api-filter-toggle{padding:4px 10px;font-size:11px}.search-container .results-table-wrapper{display:none}.search-container .results-header{font-size:13px}.search-results-cards{display:flex;flex-direction:column;gap:8px}.search-result-card{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:10px;cursor:pointer;transition:all .15s ease;border-left:3px solid var(--color-border)}.search-result-card:active{background:var(--color-bg-secondary);border-left-color:var(--color-primary)}.search-result-card-image{width:40px;height:40px;border-radius:6px;object-fit:contain;background:var(--color-bg-secondary);flex-shrink:0}.search-result-card-image.no-img{display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.search-result-card-image.no-img svg{width:18px;height:18px}.search-result-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.search-result-card-mpn{font-weight:600;font-size:13px;color:var(--color-primary);font-family:JetBrains Mono,Fira Code,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-card-mfr{font-size:12px;color:var(--color-text-secondary)}.search-result-card-desc{font-size:11px;color:var(--color-text-muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.search-result-card-footer{display:flex;align-items:center;gap:8px;margin-top:2px}.search-result-card-footer .source-badge{font-size:9px;padding:2px 6px}.search-result-card-select{margin-left:auto;padding:4px 12px;background:var(--color-primary);border:none;border-radius:6px;color:#fff;font-size:11px;font-weight:500;cursor:pointer;flex-shrink:0}.search-result-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.search-result-card-select.selected{background:color-mix(in srgb,var(--color-success, #16a34a) 88%,black)}.form-section{padding:14px;border-radius:10px}.section-title{font-size:13px;margin-bottom:12px}.form-grid,.form-grid.quantity-grid,.form-grid.storage-grid{grid-template-columns:1fr;gap:12px}.form-field label{font-size:11px}.form-field input,.form-field textarea{padding:10px;font-size:14px;border-radius:8px}.add-component-modal.manual-mode .modal-header{padding:10px 14px}.add-component-modal.manual-mode .modal-body{padding:10px 12px}.add-component-modal.manual-mode .modal-footer{padding:8px 12px}.manual-form{gap:8px}.manual-form-row{grid-template-columns:1fr;gap:8px}.manual-form .form-section{padding:10px;border-radius:7px}.manual-form .section-title{font-size:10px;margin-bottom:8px;padding-bottom:5px}.manual-form .form-grid,.manual-form .form-grid.quantity-grid,.manual-form .form-grid.storage-grid,.manual-form .form-grid.details-grid{grid-template-columns:1fr;gap:8px}.manual-form .form-field input,.manual-form .form-field textarea,.manual-form .form-field select,.manual-form .form-field .mfr-combobox input{padding:8px 10px;font-size:14px}.manual-form .image-preview{padding:8px 10px;gap:10px}.manual-form .image-preview img{width:40px;height:40px}.image-preview{padding:10px;gap:10px;border-radius:10px}.image-preview img{width:56px;height:56px}.footer-actions{flex-direction:column;gap:8px}.cancel-btn,.secondary-btn,.submit-btn{width:100%;justify-content:center;padding:12px 20px}.order-link-section{margin-top:12px;padding-top:12px}.order-select{font-size:13px}.order-item-option{padding:8px 10px}}@media (max-width: 900px) and (max-height: 500px){.modal-overlay{padding:0}.add-component-modal{max-width:100%;max-height:100vh;height:100vh;border-radius:0;border:none}.modal-header{border-radius:0;padding:8px 16px;min-height:44px}.modal-header h2{font-size:15px}.modal-body{padding:12px 16px}.modal-footer{border-radius:0;padding:8px 16px}.search-container .results-table-wrapper{display:none}.search-results-cards{display:flex;flex-direction:column;gap:6px}.search-result-card{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;border-left:3px solid var(--color-border)}.search-result-card-image{width:32px;height:32px}.search-result-card-mpn{font-size:12px}.search-result-card-desc{-webkit-line-clamp:1;font-size:10px}.add-component-modal .search-box .acm-scan-btn .scan-btn-label{display:none}.add-component-modal .search-box .acm-scan-btn{padding:6px}}.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}.manual-form .form-section,.manual-form .image-preview{box-shadow:none}.manual-form .image-preview img{background:#2a2a2a}.add-component-modal.manual-mode .modal-body{background:linear-gradient(180deg,var(--color-bg-secondary) 0%,var(--color-bg) 48px)}.form-field select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}.form-field select:focus{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2336a4b5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}.pending-doc-row .pending-doc-type{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}.pending-doc-row .pending-doc-type:focus{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2336a4b5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}}.docs-attach{display:flex;flex-direction:column;gap:12px}.docs-attach-actions{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.docs-attach-actions .doc-dropzone-wrapper{flex:1;min-width:220px}.doc-attach-btn{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--color-bg);border:1px dashed var(--color-border);border-radius:8px;color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.doc-attach-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.docs-attach-actions .doc-attach-btn{align-self:stretch}.pending-docs-list{display:flex;flex-direction:column;gap:8px}.pending-doc-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;flex-wrap:wrap;position:relative;z-index:1;overflow:visible}.pending-doc-row:focus-within{z-index:20}.pending-doc-row:not(.existing){flex-direction:column;align-items:stretch;gap:6px}.pending-doc-fields{display:flex;align-items:center;gap:10px;min-width:0}.pending-doc-row .pending-doc-title,.pending-doc-row .pending-doc-type,.pending-doc-row .pending-doc-mfr input{height:38px;box-sizing:border-box;padding:8px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;font-size:13px;line-height:1.3;color:var(--color-text-primary);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.pending-doc-row .pending-doc-title:hover,.pending-doc-row .pending-doc-type:hover,.pending-doc-row .pending-doc-mfr input:hover{border-color:var(--color-text-muted)}.pending-doc-row .pending-doc-title:focus,.pending-doc-row .pending-doc-type:focus,.pending-doc-row .pending-doc-mfr input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.pending-doc-row .pending-doc-title{flex:1 1 160px;min-width:140px}.pending-doc-row .pending-doc-title.existing{height:auto;padding:0;border:none;box-shadow:none;background:transparent;font-weight:500;color:var(--color-text-primary);flex:1;min-width:140px}.pending-doc-row .pending-doc-type{flex:0 1 220px;min-width:160px;max-width:260px;appearance:none;-webkit-appearance:none;-moz-appearance:none;cursor:pointer;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-repeat:no-repeat;background-position:right 10px center;background-size:14px}.pending-doc-row .pending-doc-type:focus{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232d8998' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>")}.pending-doc-row .pending-doc-type option{color:var(--color-text-primary);background:var(--color-bg)}.pending-doc-row .pending-doc-mfr{flex:1 1 140px;min-width:120px;max-width:200px}.pending-doc-row .pending-doc-mfr.compact input{padding:8px 12px;font-size:13px;border-radius:8px}.pending-doc-meta{font-size:11px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;padding-left:2px}.pending-doc-row.existing .pending-doc-meta{max-width:280px;flex-shrink:1}.pending-doc-remove{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--color-text-muted);cursor:pointer;transition:all .15s ease;flex-shrink:0;margin-left:auto}.pending-doc-row:not(.existing) .pending-doc-remove{margin-left:0}.pending-doc-remove:hover{background:var(--color-error);color:#fff}@media (max-width: 700px){.pending-doc-fields{flex-wrap:wrap}.pending-doc-row .pending-doc-title,.pending-doc-row .pending-doc-type,.pending-doc-row .pending-doc-mfr{flex:1 1 100%;max-width:none}.pending-doc-row:not(.existing) .pending-doc-remove{margin-left:auto}}.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;height:100vh;overflow:hidden;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);flex-shrink:0;z-index:10}.components-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.components-page .header-right{display:flex;align-items:center;gap:24px}.components-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;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 .header-left .page-title{display:flex;align-items:center}.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;min-height:0;overflow-y:auto;padding:32px;width:100%;max-width:none;margin:0;box-sizing:border-box;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;flex-direction:column;align-items:stretch;justify-content:flex-end;box-shadow:0 -2px 8px #0000000a;flex-shrink:0;z-index:10;gap:0}.components-page .footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px}.components-page .footer-pagination{display:none}@media (max-width: 768px){.components-page .page-header{padding:12px 16px;height:auto;min-height:70px;flex-wrap:wrap;gap:12px}.components-page .page-title h1{font-size:18px}.components-page .page-title p{display:none}.components-page .header-right{gap:12px}.components-page .batch-actions{padding-right:0;border-right:none}.components-page .page-content{padding:16px}.components-page .page-footer{padding:12px 16px}}@media (max-width: 640px){.components-page .page-header{display:none}.components-page .page-content{padding:0 0 80px}.components-page .page-footer{position:fixed;bottom:0;left:0;right:0;padding:0;z-index:30;box-shadow:0 -2px 12px #00000014;gap:0}.components-page .footer-pagination{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.components-page .footer-pagination-info{font-size:11px;color:var(--color-text-secondary);font-weight:500;white-space:nowrap}.components-page .footer-pagination-nav{display:flex;align-items:center;gap:4px}.components-page .footer-page-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.components-page .footer-page-btn:disabled{opacity:.35;cursor:default}.components-page .footer-page-btn:not(:disabled):active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.components-page .footer-page-indicator{font-size:11px;font-weight:600;color:var(--color-text-primary);padding:0 6px;white-space:nowrap;font-family:JetBrains Mono,Fira Code,monospace}.components-page .footer-actions{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px;padding:8px 12px}.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 62px}.components-page .page-footer{position:fixed;bottom:0;left:0;right:0;padding:0;z-index:30;box-shadow:0 -2px 12px #00000014;gap:0}.components-page .footer-pagination{display:flex;align-items:center;justify-content:space-between;padding:3px 12px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.components-page .footer-pagination-info{font-size:10px}.components-page .footer-page-btn{width:24px;height:24px;font-size:12px}.components-page .footer-page-indicator{font-size:10px;padding:0 4px}.components-page .footer-actions{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:center;gap:8px;padding:6px 12px}.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}}.document-edit-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}.document-edit-modal{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:780px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.document-edit-modal .modal-body{flex:1;min-height:0;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.document-edit-modal .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.document-edit-modal .modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.document-edit-modal .close-btn{background:none;border:none;font-size:22px;color:var(--color-text-tertiary);cursor:pointer;padding:0 4px;line-height:1}.document-edit-modal .close-btn:hover{color:var(--color-text-primary)}.document-edit-modal .modal-error{padding:8px 12px;background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626);border-radius:var(--radius-md);font-size:13px}.document-edit-modal .form-field{display:flex;flex-direction:column;gap:6px}.document-edit-modal .form-field label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.document-edit-modal .form-field input[type=text],.document-edit-modal .form-field select,.document-edit-modal .form-field textarea{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);font-family:inherit;box-sizing:border-box;width:100%}.document-edit-modal .form-field input[type=text]:focus,.document-edit-modal .form-field select:focus,.document-edit-modal .form-field textarea:focus{outline:none;border-color:var(--color-primary)}.document-edit-modal .form-field textarea{resize:vertical;min-height:60px}.document-edit-modal .doc-file-link{display:inline-flex;align-items:center;gap:4px;color:var(--color-primary);text-decoration:none;font-weight:500}.document-edit-modal .doc-file-link:hover{text-decoration:underline}.document-edit-modal .doc-file-link svg{flex-shrink:0;opacity:.6}.document-edit-modal .doc-file-open{margin-top:6px;font-size:12px}.document-edit-modal .doc-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.document-edit-modal .doc-edit-col{display:flex;flex-direction:column;gap:14px;min-width:0}.document-edit-modal .doc-edit-col-components{border-left:1px solid var(--color-border);padding-left:24px}.document-edit-modal .doc-assign-head{display:flex;align-items:center;gap:8px}.document-edit-modal .doc-assign-head label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.document-edit-modal .doc-assign-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--color-primary-light, #e3f2fd);color:var(--color-primary-dark, #246b78);border-radius:999px;font-size:11px;font-weight:700}.document-edit-modal .doc-assign-empty{margin:0;font-size:13px;color:var(--color-text-tertiary)}.document-edit-modal .doc-assign-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.document-edit-modal .doc-assign-list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 2px 10px;border-bottom:1px solid var(--color-border)}.document-edit-modal .doc-assign-list-item:last-child{border-bottom:none}.document-edit-modal .doc-assign-list-item:hover{background:var(--color-bg-secondary)}.document-edit-modal .doc-assign-list-mpn{flex:1;min-width:0;text-align:left;background:none;border:none;padding:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12.5px;color:var(--color-primary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-edit-modal .doc-assign-list-mpn:hover{text-decoration:underline}.document-edit-modal .doc-assign-list-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.document-edit-modal .doc-assign-list-remove:hover:not(:disabled){border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626);background:var(--color-danger-bg, #fee2e2)}.document-edit-modal .doc-assign-list-remove:disabled{opacity:.5;cursor:not-allowed}.document-edit-modal .doc-assign-search{position:relative}.document-edit-modal .doc-assign-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.document-edit-modal .doc-assign-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);font-family:inherit;box-sizing:border-box}.document-edit-modal .doc-assign-search input:focus{outline:none;border-color:var(--color-primary)}.document-edit-modal .doc-assign-select-all{display:flex;align-items:center;gap:8px;padding:2px 2px 2px 10px;font-size:12px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.document-edit-modal .doc-assign-select-all input[type=checkbox]{flex-shrink:0;width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer}.document-edit-modal .doc-assign-results{max-height:340px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.document-edit-modal .doc-assign-status{padding:14px;text-align:center;font-size:13px;color:var(--color-text-tertiary)}.document-edit-modal .doc-assign-result{display:flex;align-items:center;gap:8px;padding:4px 10px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.document-edit-modal .doc-assign-result:last-child{border-bottom:none}.document-edit-modal .doc-assign-result:hover{background:var(--color-bg-secondary)}.document-edit-modal .doc-assign-result input[type=checkbox]{flex-shrink:0;width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer}.document-edit-modal .doc-assign-result-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}.document-edit-modal .doc-assign-result-mpn{font-size:12px;font-weight:500;line-height:1.35;color:var(--color-text-primary);font-family:JetBrains Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.document-edit-modal .doc-assign-result-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:10.5px;line-height:1.3;color:var(--color-text-tertiary)}.document-edit-modal .doc-assign-link-btn{width:100%}.document-edit-modal .doc-assign-more{display:block;width:100%;padding:7px 10px;background:var(--color-bg-secondary);border:none;border-top:1px solid var(--color-border);color:var(--color-primary);font-size:12px;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.document-edit-modal .doc-assign-more:hover:not(:disabled){background:var(--color-primary-light, #e3f2fd)}.document-edit-modal .doc-assign-more:disabled{opacity:.6;cursor:not-allowed}.document-edit-modal .doc-assign-results-count{font-size:11px;color:var(--color-text-tertiary);text-align:right}.document-edit-modal .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--color-border)}.document-edit-modal .btn-secondary{padding:8px 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.document-edit-modal .btn-secondary:hover:not(:disabled){border-color:var(--color-text-secondary)}.document-edit-modal .btn-primary{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.document-edit-modal .btn-primary:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary))}.document-edit-modal .btn-primary:disabled,.document-edit-modal .btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 680px){.document-edit-modal{max-width:480px}.document-edit-modal .doc-edit-grid{grid-template-columns:1fr;gap:18px}.document-edit-modal .doc-edit-col-components{border-left:none;padding-left:0;border-top:1px solid var(--color-border);padding-top:18px}}.composition-section .section-header h2{display:flex;align-items:center;gap:10px}.mc-header-violations{display:inline-flex;gap:6px}.mc-count-badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;letter-spacing:0;text-transform:none}.mc-count-badge.error{background:#ef44441f;color:#dc2626;border:1px solid rgba(239,68,68,.4)}.mc-count-badge.warning{background:#f59e0b1f;color:#d97706;border:1px solid rgba(245,158,11,.4)}.composition-section .section-header.mc-collapsible-header{cursor:pointer;-webkit-user-select:none;user-select:none}.composition-section .section-header.mc-collapsible-header:hover h2{color:var(--color-primary)}.mc-chevron{display:inline-flex;align-items:center;color:var(--color-text-secondary);transition:transform .18s ease}.mc-chevron.open{transform:rotate(90deg)}.composition-section .section-header.mc-collapsible-header:hover .mc-chevron{color:var(--color-primary)}.mc-collapsed{display:flex;align-items:center;flex-wrap:wrap;gap:10px;width:100%;padding:10px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:border-color .15s}.mc-collapsed:hover{border-color:var(--color-primary)}.mc-status-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}.mc-status-pill svg{flex-shrink:0}.mc-status-pill.error{background:#ef44441f;color:#dc2626;border:1px solid rgba(239,68,68,.4)}.mc-status-pill.warning{background:#f59e0b1f;color:#d97706;border:1px solid rgba(245,158,11,.4)}.mc-status-pill.clean{background:#22c55e1f;color:#15803d;border:1px solid rgba(34,197,94,.4)}.mc-status-pill.none{background:#94a3b826;color:var(--text-muted, #64748b);border:1px solid rgba(148,163,184,.3)}.mc-collapsed-chips{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.mc-collapsed-toggle{display:inline-flex;align-items:center;gap:4px;margin-left:auto;font-size:12px;font-weight:500;color:var(--color-primary);white-space:nowrap}.mc-error{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;margin-bottom:12px;background:#ef444414;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);color:#dc2626;font-size:13px}.mc-error.standalone{margin-top:12px}.mc-error button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px}.mc-violations-banner{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.mc-violation-line{display:flex;align-items:flex-start;gap:8px;padding:8px 12px;border-radius:var(--radius-md);font-size:13px;line-height:1.45}.mc-violation-line svg{flex-shrink:0;margin-top:2px}.mc-violation-line.error{background:#ef444414;border:1px solid rgba(239,68,68,.35);color:#b91c1c}.mc-violation-line.warning{background:#f59e0b14;border:1px solid rgba(245,158,11,.35);color:#b45309}.mc-violation-line-text{flex:1;min-width:0}.mc-waive-btn{flex-shrink:0;align-self:center;margin-left:auto}.mc-waived-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;font-size:13px;color:var(--text-secondary, #64748b)}.mc-waived-banner-note{line-height:1.4}.mc-modal-sm{max-width:520px}.mc-waive-summary{margin:0 0 14px;font-size:13px;line-height:1.45;color:var(--text-secondary, #475569)}.mc-waive-label{display:block;font-size:12px;font-weight:600;margin-bottom:6px}.mc-waive-textarea{width:100%;box-sizing:border-box;resize:vertical;min-height:110px;padding:10px 12px;border:1px solid var(--border-color, #cbd5e1);border-radius:var(--radius-md, 8px);font:inherit;font-size:13px;line-height:1.45;margin-bottom:16px}.mc-waive-textarea:focus{outline:none;border-color:var(--accent, #0d9488);box-shadow:0 0 0 3px #0d948826}.mc-scope-note{opacity:.75;font-size:12px}.mc-placeholder,.mc-empty{padding:20px;text-align:center;color:var(--color-text-secondary);font-size:13px}.mc-empty p{margin:0 0 6px}.mc-empty-hint{font-size:12px;opacity:.8}.mc-summary{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.mc-chip{font-size:12px;padding:3px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-secondary);white-space:nowrap}.mc-mass-balance{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:12px;color:var(--color-text-secondary)}.mc-mass-balance-bar{width:120px;height:8px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:999px;overflow:hidden;display:inline-block}.mc-mass-balance-fill{display:block;height:100%;border-radius:999px}.mc-mass-balance-fill.good{background:#22c55e}.mc-mass-balance-fill.partial{background:#f59e0b}.mc-mass-balance-value{font-weight:600;font-family:JetBrains Mono,Fira Code,monospace}.mc-mass-balance-warn{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:#f59e0b24;color:#b45309;font-size:11.5px;font-weight:600;white-space:nowrap}.mc-mass-balance-warn svg{flex-shrink:0}.mc-chip-warn{background:#f59e0b24;color:#b45309;font-weight:600}.mc-chip-proprietary{background:#64748b24;color:#475569;font-weight:600}.mc-chip-error{background:#dc26261f;color:#b91c1c;font-weight:600}.mc-chip-waiver-ok{background:#16a34a1f;color:#15803d;font-weight:600}.mc-ppm-warning{display:flex;align-items:flex-start;gap:8px;margin:10px 0 4px;padding:9px 12px;background:#f59e0b14;border:1px solid rgba(245,158,11,.35);border-radius:var(--radius-md);color:#b45309;font-size:12.5px;line-height:1.45}.mc-ppm-warning svg{flex-shrink:0;margin-top:1px}.mc-proprietary-error{display:flex;align-items:flex-start;gap:8px;margin:10px 0 4px;padding:9px 12px;background:#dc262612;border:1px solid rgba(220,38,38,.35);border-radius:var(--radius-md);color:#b91c1c;font-size:12.5px;line-height:1.45}.mc-proprietary-error svg{flex-shrink:0;margin-top:1px}.mc-proprietary-error-body{display:flex;flex-direction:column;gap:8px;flex:1;min-width:0}.mc-proprietary-error-actions{display:flex;flex-wrap:wrap;gap:8px}.mc-waiver-ok{display:flex;align-items:flex-start;gap:8px;margin:10px 0 4px;padding:9px 12px;background:#16a34a14;border:1px solid rgba(22,163,74,.3);border-radius:var(--radius-md);color:#15803d;font-size:12.5px;line-height:1.45}.mc-waiver-ok svg{flex-shrink:0;margin-top:1px}.mc-proprietary-info{display:flex;align-items:flex-start;gap:8px;margin:10px 0 4px;padding:9px 12px;background:#64748b14;border:1px solid rgba(100,116,139,.3);border-radius:var(--radius-md);color:#475569;font-size:12.5px;line-height:1.45}.mc-proprietary-info svg{flex-shrink:0;margin-top:1px}.mc-proprietary-badge{display:inline-block;margin-left:8px;padding:1px 7px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;background:#64748b24;color:#475569;vertical-align:middle;cursor:help}.mc-proprietary-cell{color:#64748b;font-style:italic;font-family:inherit;font-size:11px}.mc-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.mc-table-wrapper.preview{max-height:320px;overflow-y:auto;margin-top:12px}.mc-table{width:100%;border-collapse:collapse;font-size:13px}.mc-table th{text-align:left;padding:8px 12px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:1}.mc-table td{padding:6px 12px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.mc-table tbody tr:last-child td{border-bottom:none}.mc-material-row td{background:var(--color-bg-secondary);font-weight:600}.mc-material-name{color:var(--color-text-primary)}.mc-material-name.muted{color:var(--color-text-secondary);font-style:italic}.mc-material-meta{margin-left:10px;font-size:11px;font-weight:400;color:var(--color-text-secondary)}.mc-exemption-badge{display:inline-flex;align-items:center;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:10px;font-weight:600;background:#3b82f61f;color:#1d4ed8;border:1px solid rgba(59,130,246,.25);white-space:nowrap}.mc-exemption-inline{display:inline-flex;align-items:center;gap:6px;margin-left:8px;vertical-align:middle}.mc-exemption-inline input{width:88px;padding:3px 8px;font-size:11px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg-primary)}.mc-btn.sm{padding:2px 8px;font-size:11px;min-height:0}.mc-icon-btn.active{color:#1d4ed8;background:#3b82f61f}.mc-material-row.mc-material-imbalance td{background:#f59e0b12}.mc-material-balance{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:72px}.mc-material-balance-label{font-size:9px;font-weight:500;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary)}.mc-material-balance-bar{width:72px;height:5px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:999px;overflow:hidden}.mc-material-balance-fill{display:block;height:100%;border-radius:999px}.mc-material-balance-fill.good{background:#22c55e}.mc-material-balance-fill.partial{background:#f59e0b}.mc-material-balance-value{font-size:11px;font-weight:600;font-family:JetBrains Mono,Fira Code,monospace}.mc-material-balance-value.good{color:#16a34a}.mc-material-balance-value.partial{color:#d97706}.mc-substance-row.has-violation td{background:#ef44440a}.mc-col-name.indent{padding-left:28px}.mc-substance-name{color:var(--color-text-primary)}.mc-substance-notes{display:block;font-size:11px;color:var(--color-text-secondary);max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-col-cas{white-space:nowrap;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.mc-cas-warn{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;margin-left:6px;background:#f59e0b26;border:1px solid rgba(245,158,11,.5);border-radius:50%;color:#d97706;font-size:10px;font-weight:700;cursor:help}.mc-col-num{text-align:right;white-space:nowrap;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.mc-table th.mc-col-num{text-align:right}.mc-col-source{white-space:nowrap}.mc-source-badge{font-size:10px;font-weight:600;text-transform:uppercase;padding:2px 7px;border-radius:4px;letter-spacing:.4px}.mc-source-badge.import{background:#3b82f61a;color:#2563eb;border:1px solid rgba(59,130,246,.35)}.mc-source-badge.manual{background:#6b72801a;color:var(--color-text-secondary);border:1px solid var(--color-border)}.mc-doc-ref{font-size:10px;color:var(--color-text-secondary);border:1px dashed var(--color-border);border-radius:4px;padding:1px 6px;cursor:help}.mc-muted{color:var(--color-text-secondary);opacity:.7}.mc-violation-badges{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.mc-violation-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:1px 7px;border-radius:999px;cursor:help;white-space:nowrap}.mc-violation-badge.error{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.4)}.mc-violation-badge.warning{background:#f59e0b1a;color:#d97706;border:1px solid rgba(245,158,11,.4)}.mc-col-actions{white-space:nowrap;text-align:right;width:64px}.mc-icon-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--color-text-secondary);border-radius:var(--radius-sm);line-height:0}.mc-icon-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.mc-icon-btn.danger:hover{background:#ef44441a;color:#dc2626}.mc-icon-btn:disabled{opacity:.4;cursor:default}.mc-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.mc-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);cursor:pointer;transition:all .15s}.mc-btn:hover:not(:disabled){background:var(--color-bg-secondary)}.mc-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mc-btn.primary:hover:not(:disabled){opacity:.9;background:var(--color-primary)}.mc-btn.danger-ghost{color:#dc2626;border-color:#ef444466;margin-left:auto}.mc-btn.danger-ghost:hover:not(:disabled){background:#ef444414}.mc-btn:disabled{opacity:.5;cursor:default}.mc-link-btn{background:none;border:none;color:var(--color-primary);font-size:13px;cursor:pointer;padding:0}.mc-form{margin-top:14px;padding:14px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.mc-form-title{font-size:13px;font-weight:600;margin-bottom:10px;color:var(--color-text-primary)}.mc-form-grid{display:flex;flex-wrap:wrap;gap:10px}.mc-form-field{display:flex;flex-direction:column;gap:4px;min-width:160px}.mc-form-field.grow{flex:1;min-width:220px}.mc-form-field label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.mc-form-field input,.mc-form-field select{padding:7px 10px;font-size:13px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary)}.mc-form-field input.invalid{border-color:#dc2626}.mc-form-hint{font-size:11px;text-transform:none;letter-spacing:0}.mc-form-hint.warn{color:#d97706}.mc-amount-row{display:flex;gap:6px}.mc-amount-row input{width:110px}.mc-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.mc-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.mc-modal{background:var(--color-bg);border-radius:var(--radius-lg);width:min(880px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d}.mc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.mc-modal-header h2{margin:0;font-size:16px;font-weight:600}.mc-modal-close{background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--color-text-secondary);padding:2px 8px}.mc-modal-body{padding:18px 20px;overflow-y:auto}.mc-import-subtitle{font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 8px}.mc-import-subtitle:first-child{margin-top:0}.mc-import-docs{display:flex;flex-direction:column;gap:6px}.mc-import-doc{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);cursor:pointer;text-align:left;font-size:13px;transition:all .15s}.mc-import-doc:hover{border-color:var(--color-primary);background:var(--color-primary-light)}.mc-import-doc-title{font-weight:500;color:var(--color-text-primary)}.mc-import-doc-file{margin-left:auto;font-size:11px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.mc-drop-zone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:24px;border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:13px;cursor:pointer;text-align:center;transition:all .15s}.mc-drop-zone:hover,.mc-drop-zone.dragover{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.mc-drop-formats{font-size:11px;opacity:.75}.mc-paste-area{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.mc-paste-area textarea{width:100%;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);resize:vertical}.mc-import-fileinfo{display:flex;align-items:center;gap:14px;font-size:13px;margin-bottom:12px;flex-wrap:wrap}.mc-sheet-select{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.mc-sheet-select select{padding:4px 8px;font-size:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary)}.mc-mapping{margin-bottom:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:8px 12px}.mc-mapping summary{font-size:12px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.mc-mapping-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin-top:10px}.mc-mapping-field{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--color-text-secondary)}.mc-mapping-field select{padding:5px 8px;font-size:12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary)}.mc-unit-select{margin-top:3px}.mc-import-warnings{margin:10px 0;padding:8px 12px;background:#f59e0b12;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);font-size:12px;color:#b45309;display:flex;flex-direction:column;gap:3px;max-height:120px;overflow-y:auto}.mc-import-options{display:flex;flex-direction:column;gap:6px;margin-top:14px;font-size:13px}.mc-radio{display:flex;align-items:center;gap:8px;cursor:pointer;color:var(--color-text-primary)}.mc-radio.checkbox{margin-top:4px;padding-top:8px;border-top:1px dashed var(--color-border-light)}.mc-import-result-message{font-size:14px;font-weight:600;margin-bottom:12px;color:var(--color-text-primary)}.mc-import-clean{padding:10px 14px;background:#22c55e14;border:1px solid rgba(34,197,94,.35);border-radius:var(--radius-md);color:#15803d;font-size:13px}@media (max-width: 768px){.mc-mass-balance{margin-left:0;width:100%}.mc-form-field,.mc-form-field.grow{min-width:100%}}.comments-section .section-header h2{display:flex;align-items:center;gap:10px}.comments-flag-count{display:inline-flex;align-items:center;padding:2px 8px;font-size:11px;font-weight:600;border-radius:999px;white-space:nowrap}.comments-flag-count.issue{background:var(--color-error-bg, #fef2f2);color:var(--color-error, #e74c3c);border:1px solid var(--color-error, #e74c3c)}.comments-flag-count.warning{background:#fffbeb;color:#b45309;border:1px solid #f59e0b}.comment-error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;margin-bottom:12px;font-size:13px;color:var(--color-error, #e74c3c);background:var(--color-error-bg, #fef2f2);border:1px solid var(--color-error, #e74c3c);border-radius:var(--radius-sm)}.comment-error button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px}.comments-loading,.comments-empty{font-size:13px;color:var(--color-text-muted);padding:12px;text-align:center;background:var(--color-bg);border-radius:var(--radius-sm)}.comments-list{display:flex;flex-direction:column;gap:10px;max-height:420px;overflow-y:auto}.comment-thread{background:var(--color-bg);border:1px solid var(--color-border-light);border-left:3px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px}.comment-thread.issue-open{border-left-color:var(--color-error, #e74c3c);background:var(--color-error-bg, #fef7f6)}.comment-thread.issue-resolved{border-left-color:var(--color-success, #16a34a)}.comment-thread.warning-open{border-left-color:#f59e0b;background:#fffdf5}.comment-thread.warning-resolved{border-left-color:var(--color-success, #16a34a)}.comment-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.comment-share{margin-left:auto;flex-shrink:0}.comment-share .pshare-row{flex-wrap:nowrap}.comments-section .prodd-hidden-items{margin-top:8px;margin-bottom:4px}.comment-author{font-size:12px;font-weight:600;color:var(--color-text-primary)}.comment-time{font-size:11px;color:var(--color-text-muted)}.comment-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-radius:999px}.comment-badge.issue{background:var(--color-error, #e74c3c);color:#fff}.comment-badge.warning{background:#f59e0b;color:#fff}.comment-badge.resolved{background:var(--color-success-bg, #dcfce7);color:var(--color-success, #16a34a);border:1px solid var(--color-success, #16a34a)}.comment-message{margin-top:6px;font-size:13px;line-height:1.5;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word}.comment-resolved-info{margin-top:6px;font-size:11px;font-style:italic;color:var(--color-success, #16a34a)}.comment-actions{display:flex;align-items:center;gap:12px;margin-top:8px}.comment-action-link{background:none;border:none;padding:0;font-size:11px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast)}.comment-action-link:hover{color:var(--color-primary);text-decoration:underline}.comment-action-link.resolve,.comment-action-link.resolve:hover{color:var(--color-success, #16a34a)}.comment-action-link.danger:hover{color:var(--color-error, #e74c3c)}.comment-replies{margin-top:10px;margin-left:14px;padding-left:12px;border-left:2px solid var(--color-border-light);display:flex;flex-direction:column;gap:8px}.comment-item.reply .comment-message{margin-top:4px;font-size:12.5px}.comment-item.reply .comment-action-link{margin-left:auto}.comment-item.reply .comment-head{flex-wrap:nowrap}.comment-inline-form{margin-top:10px;margin-left:14px;padding-left:12px;border-left:2px solid var(--color-border-light)}.comment-inline-form.resolve-form{border-left-color:var(--color-success, #16a34a)}.comment-new-form{margin-top:14px;padding-top:14px;border-top:1px solid var(--color-border-light)}.comment-type-toggle{display:inline-flex;gap:0;margin-bottom:8px;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.comment-type-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:600;background:var(--color-bg);border:none;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.comment-type-btn+.comment-type-btn{border-left:1px solid var(--color-border)}.comment-type-btn.active{background:var(--color-primary);color:#fff}.comment-type-btn.issue.active{background:var(--color-error, #e74c3c);color:#fff}.comment-type-btn.warning.active{background:#f59e0b;color:#fff}.comment-type-btn:disabled{opacity:.6;cursor:not-allowed}.comment-new-form textarea,.comment-inline-form textarea{width:100%;padding:8px 10px;font-size:13px;font-family:inherit;line-height:1.5;color:var(--color-text-primary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;box-sizing:border-box}.comment-new-form textarea:focus,.comment-inline-form textarea:focus{outline:none;border-color:var(--color-primary)}.comment-form-actions{display:flex;gap:8px;margin-top:8px}.comment-btn{padding:6px 14px;font-size:12px;font-weight:600;border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.comment-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.comment-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.comment-btn.primary:hover:not(:disabled){background:var(--color-primary-dark);color:#fff}.comment-btn.primary.raise-issue{background:var(--color-error, #e74c3c);border-color:var(--color-error, #e74c3c)}.comment-btn.primary.raise-warning{background:#f59e0b;border-color:#f59e0b}.comment-btn.primary.resolve{background:var(--color-success, #16a34a);border-color:var(--color-success, #16a34a)}.comment-btn:disabled{opacity:.6;cursor:not-allowed}.comment-btn.attach{display:inline-flex;align-items:center;gap:5px}.comment-file-input{display:none}.comment-attach-hint{margin-top:6px;font-size:11px;color:var(--color-text-muted)}.comment-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.comment-attachment-image{padding:0;border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-bg);cursor:zoom-in;overflow:hidden;line-height:0}.comment-attachment-image img{display:block;max-width:160px;max-height:120px;width:auto;height:auto;object-fit:cover}.comment-attachment-file{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 9px;font-size:12px;color:var(--color-text-primary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-decoration:none;transition:border-color var(--transition-fast),color var(--transition-fast)}.comment-attachment-file:hover{border-color:var(--color-primary);color:var(--color-primary)}.comment-attachment-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.comment-attachment-size{flex-shrink:0;font-size:11px;color:var(--color-text-muted)}.comment-pending-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.comment-pending-item{display:inline-flex;align-items:center;gap:8px;max-width:100%;padding:4px 6px 4px 4px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.comment-pending-thumb{width:36px;height:36px;object-fit:cover;border-radius:3px;flex-shrink:0}.comment-pending-file-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;color:var(--color-text-secondary);background:var(--color-border-light);border-radius:3px;flex-shrink:0}.comment-pending-meta{display:flex;flex-direction:column;min-width:0;gap:1px}.comment-pending-name{font-size:12px;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}.comment-pending-size{font-size:11px;color:var(--color-text-muted)}.comment-pending-remove{margin-left:2px;padding:0 4px;border:none;background:none;font-size:16px;line-height:1;color:var(--color-text-muted);cursor:pointer}.comment-pending-remove:hover:not(:disabled){color:var(--color-error, #e74c3c)}.comment-pending-remove:disabled{opacity:.5;cursor:not-allowed}.comment-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;background:#000000c7;cursor:zoom-out}.comment-lightbox-img{max-width:min(96vw,1100px);max-height:82vh;object-fit:contain;border-radius:4px;box-shadow:0 8px 32px #0006;cursor:default}.comment-lightbox-caption{font-size:13px;color:#f3f4f6;text-align:center;word-break:break-word}.comment-lightbox-close{position:absolute;top:16px;right:20px;border:none;background:none;color:#fff;font-size:28px;line-height:1;cursor:pointer;padding:4px 8px}.comment-lightbox-close:hover{color:#fca5a5}.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-image{max-width:100%;max-height:240px;background:transparent;filter:drop-shadow(0 1px 4px rgba(0,0,0,.15));image-rendering:-webkit-optimize-contrast}.preview-error{color:var(--color-danger, #dc2626);font-size:13px;text-align:center;padding:8px}.print-method-missing{color:var(--color-danger, #dc2626)}.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-left{display:flex;align-items:center;gap:16px;min-width:0}.detail-header .header-right,.detail-header .page-title{display:flex;align-items:center;gap:16px}.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:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;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%}.component-detail-page:has(.detail-footer) .detail-content{padding-bottom:96px}.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}.field.has-status-issue.warning{padding-bottom:2px}.field.has-status-issue.error select,.field.has-status-issue.warning select{border-color:currentColor}.field.has-status-issue.error select{border-color:#dc2626}.field.has-status-issue.warning select{border-color:#d97706}.status-consistency-issue{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding:8px 10px;border-radius:var(--radius-sm, 6px);font-size:12px;line-height:1.4}.status-consistency-issue strong{font-size:12px;font-weight:600}.status-consistency-issue.warning{background:#fffbeb;border:1px solid #fcd34d;color:#92400e}.status-consistency-issue.error{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}.field-hint-inline{font-weight:400;text-transform:none;letter-spacing:0;color:var(--color-text-secondary);font-size:11px;margin-left:6px}.field-hint{margin-top:6px;font-size:12px;color:var(--color-text-secondary);line-height:1.4}.field-rohs-exemptions{grid-column:1 / -1}.rohs-exemption-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center;min-height:28px}.rohs-exemption-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.rohs-exemption-chip.expired{background:#fef2f2;border-color:#fecaca;color:#991b1b}.rohs-exemption-chip-expiry{font-size:10px;font-weight:500;opacity:.85;margin-left:2px}.rohs-exemption-chip-expiry.expired{font-weight:700;text-transform:uppercase;letter-spacing:.02em}.rohs-exemption-chip-remove{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:inherit;cursor:pointer;font-size:14px;line-height:1;padding:0 0 0 2px;opacity:.7}.rohs-exemption-chip-remove:hover{opacity:1}.rohs-exemption-add{display:flex;gap:8px;margin-top:8px;align-items:center}.rohs-exemption-add input{flex:1;max-width:220px}.rohs-exemption-add-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--color-border);background:var(--color-bg-elevated, #fff);color:var(--color-text-primary);border-radius:6px;padding:6px 12px;font-size:12px;font-weight:500;cursor:pointer}.rohs-exemption-add-btn:disabled{opacity:.5;cursor:not-allowed}.rohs-exemption-add-btn:not(:disabled):hover{border-color:var(--color-text-secondary)}.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.editable{width:100%;height:auto;aspect-ratio:1;border:2px dashed var(--color-border);transition:border-color var(--transition-fast),background var(--transition-fast)}.image-container.editable:hover{border-color:var(--color-primary)}.image-container.editable.dragging{border-color:var(--color-primary);background:var(--color-primary-light)}.image-container img{max-width:100%;max-height:100%;object-fit:contain}.image-container img.placeholder{opacity:.5;filter:grayscale(100%)}.image-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px;border:none;background:#0f172a8c;color:#fff;font-size:12px;font-weight:600;text-align:center;cursor:pointer;opacity:0;transition:opacity var(--transition-fast)}.image-drop-overlay svg{opacity:.95}.image-container.editable:hover .image-drop-overlay,.image-container.editable.dragging .image-drop-overlay,.image-drop-overlay.visible{opacity:1}.image-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:image-spin .7s linear infinite}@keyframes image-spin{to{transform:rotate(360deg)}}.image-edit-controls{display:flex;flex-direction:column;gap:10px;margin-top:14px}.image-file-input{display:none}.image-edit-actions{display:flex;gap:8px}.image-action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-md);font-size:13px;font-weight:600;cursor:pointer;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast)}.image-action-btn.primary{flex:1;justify-content:center;background:var(--color-primary);border-color:var(--color-primary);color:#fff}.image-action-btn.primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.image-action-btn.danger:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error);background:#e74c3c14}.image-action-btn:disabled{opacity:.6;cursor:not-allowed}.image-url-input{width:100%;padding:9px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.image-url-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981f}.image-edit-hint{font-size:11px;color:var(--color-text-muted);line-height:1.4}.image-edit-error{font-size:12px;font-weight:500;color:var(--color-error)}.image-nav-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:3;display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1px solid var(--color-border);border-radius:50%;background:color-mix(in srgb,var(--color-bg) 88%,transparent);color:var(--color-text-primary);cursor:pointer;opacity:.75;transition:opacity var(--transition-fast),background var(--transition-fast)}.image-nav-btn:hover{opacity:1;background:var(--color-bg)}.image-nav-btn.prev{left:8px}.image-nav-btn.next{right:8px}.image-gallery-dots{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:10px}.image-gallery-dot{width:9px;height:9px;padding:0;border:none;border-radius:50%;background:var(--color-border);cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.image-gallery-dot:hover{transform:scale(1.25)}.image-gallery-dot.active{background:var(--color-primary)}.image-gallery-dot.primary{box-shadow:0 0 0 2px color-mix(in srgb,#f59e0b 55%,transparent)}.image-gallery-counter{margin-left:4px;font-size:11px;font-weight:600;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.image-gallery-manage{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.image-primary-chip{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;background:#f59e0b24;color:#b45309}.image-api-chip{display:inline-flex;align-items:center;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;background:#10b9811f;color:var(--color-success, #059669)}.image-url-add{display:flex;gap:8px}.image-url-add .image-url-input{flex:1}@media (max-width: 768px){.image-nav-btn{width:22px;height:22px}.image-nav-btn.prev{left:2px}.image-nav-btn.next{right:2px}.image-nav-btn svg{width:13px;height:13px}}.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-section .section-header-actions{display:flex;align-items:center;gap:10px}.alt-add-btn{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-primary);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:border-color .15s ease,background .15s ease}.alt-add-btn:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-bg))}.alternatives-intro{font-size:13px;color:var(--color-text-secondary);margin-bottom:16px}.alternatives-error{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;margin-bottom:12px;background:#ef444414;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--color-error);font-size:13px}.alternatives-error button{border:none;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer;padding:0 4px}.alternatives-loading,.alternatives-empty{padding:20px;text-align:center;color:var(--color-text-muted);font-size:13px}.alternatives-empty{background:var(--color-bg-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.alt-search-panel{margin-bottom:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);overflow:hidden}.alt-search-box{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--color-border-light);background:var(--color-bg)}.alt-search-box svg{flex-shrink:0;color:var(--color-text-muted)}.alt-search-box input{flex:1;min-width:0;border:none;background:transparent;font-size:13px;color:var(--color-text-primary);font-family:inherit;outline:none}.alt-search-spinner{width:14px;height:14px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}.alt-search-results{max-height:240px;overflow-y:auto;display:flex;flex-direction:column}.alt-search-empty{padding:14px 12px;text-align:center;font-size:12px;color:var(--color-text-muted)}.alt-search-result{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;border-top:1px solid var(--color-border-light);background:var(--color-bg);text-align:left;cursor:pointer;font-family:inherit;transition:background .12s ease}.alt-search-result:first-child{border-top:none}.alt-search-result:hover:not(:disabled){background:color-mix(in srgb,var(--color-primary) 6%,var(--color-bg))}.alt-search-result:disabled{opacity:.6;cursor:not-allowed}.alt-search-thumb{width:36px;height:36px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);flex-shrink:0}.alt-search-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.alt-search-pn{font-size:13px;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alt-search-meta{font-size:11px;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alt-search-add-label{flex-shrink:0;font-size:12px;font-weight:600;color:var(--color-primary)}.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-row{display:flex;align-items:center;gap:8px;min-width:0}.alt-pn-row .compliance-badge{flex-shrink: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:4px;align-items:flex-end;font-size:11px;color:var(--color-text-muted);text-align:right;flex-shrink:0}.alt-relationship{display:inline-flex;align-self:flex-start;margin-top:4px;font-size:10px;padding:2px 6px;background:#2d89981a;color:var(--color-primary);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.3px;font-weight:600}.alt-relationship.alternative_of{background:#f59e0b1a;color:var(--color-warning, #d97706)}.alt-count{font-weight:500}.alt-last-project{color:var(--color-text-secondary)}.alternative-card.preferred{border-color:#f59e0b8c;background:#f59e0b0d}.alt-preferred-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;background:#f59e0b24;color:#b45309;font-size:10px;font-weight:700;letter-spacing:.02em;white-space:nowrap;flex-shrink:0}.alt-priority-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;background:#3b82f61f;color:#2563eb;font-size:10px;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace;white-space:nowrap;flex-shrink:0}.alt-actions{display:flex;flex-direction:column;gap:5px;align-items:flex-end;margin-top:4px}.alt-priority-control{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.alt-priority-control input{width:52px;padding:3px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary);font-size:11px;font-family:JetBrains Mono,Fira Code,monospace;text-align:center}.alt-priority-control input:focus{outline:none;border-color:var(--color-primary)}.alt-prefer-btn{padding:4px 10px;border:1px solid rgba(245,158,11,.5);border-radius:var(--radius-sm);background:var(--color-bg);color:#b45309;font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease;white-space:nowrap}.alt-prefer-btn:hover:not(:disabled){background:#f59e0b1a;border-color:#f59e0b}.alt-prefer-btn.active{background:#f59e0b24}.alt-prefer-btn:disabled{opacity:.55;cursor:not-allowed}.alt-remove-btn{margin-top:2px;padding:4px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:11px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s ease}.alt-remove-btn:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error);background:#ef44440f}.alt-remove-btn:disabled{opacity:.55;cursor:not-allowed}.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,.detail-section.supplier-section,.detail-section.projects-section,.detail-section.alternatives-section,.detail-section.full-width.audit-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:8px 12px;height:auto;min-height:52px;flex-wrap:nowrap;gap:10px}.detail-header .page-title{gap:10px;min-width:0}.detail-header .page-title h1{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail-header .page-title p{display:none}.detail-header .header-left,.detail-header .header-right{gap:10px;min-width:0}.detail-content{padding:12px}.component-detail-page:has(.detail-footer) .detail-content{padding-bottom:150px}.detail-grid{gap:10px}.detail-section{padding:14px}.detail-section.image-section{order:1}.detail-section.core-section{order:2}.detail-section.quantity-section{order:3}.detail-section.storage-section{order:4}.detail-section.additional-section{order:5}.detail-section.supplier-section{order:6}.detail-section.projects-section{order:7}.detail-section.alternatives-section{order:8}.detail-section.full-width.audit-section{order:9}.detail-section.image-section{max-width:none;margin:0;padding:10px}.detail-section.image-section .section-header{display:none}.image-container{width:100px;height:100px;aspect-ratio:1;margin:0 auto;border-radius:var(--radius-md)}.detail-section.core-section{padding:14px}.field-group{grid-template-columns:1fr;gap:10px}.field-group.three-columns{grid-template-columns:1fr 1fr;gap:10px}.field-group.three-columns .field.full-width{grid-column:1 / -1}.storage-summary{gap:8px}.storage-card{padding:10px 6px}.storage-card .storage-value{font-size:18px}.storage-card .storage-label{font-size:10px;margin-top:3px}.taken-alert-box{padding:12px;gap:10px}.quantity-summary{margin-bottom:14px}.summary-card{padding:14px 10px}.summary-value{font-size:28px}.quantity-breakdown{font-size:13px}.breakdown-row{padding:10px 12px}.quantity-adjust{flex-wrap:wrap;justify-content:center;gap:10px;padding:14px 10px}.adjust-label{width:100%;text-align:center;font-size:12px}.adjust-btn{width:48px;height:48px}.adjust-btn svg{width:22px;height:22px}.adjust-input{width:72px;height:48px;font-size:20px;font-weight:600}.field-group.metadata-grid{grid-template-columns:1fr 1fr;gap:10px}.section-header{margin-bottom:12px;padding-bottom:8px}.section-header h2{font-size:12px}.pending-orders-list{margin-top:14px;padding-top:12px}.pending-order-item.compact{gap:6px;padding:6px 8px}.pending-order-item.compact .order-ref{font-size:11px}.pending-order-item.compact .status-badge{font-size:9px;padding:1px 5px}.pending-order-item.compact .qty-pending{font-size:11px}.reservation-item{padding:6px 10px;gap:8px}.res-name{font-size:12px}.res-type{font-size:10px;padding:1px 6px}.alternative-card{padding:10px;gap:10px}.alt-image{width:44px;height:44px}.alt-pn{font-size:12px}.alt-description,.alt-usage{font-size:10px}.project-item{padding:6px 8px}.project-id{font-size:11px}.activity-item.compact .activity-user{display:none}.activity-item.compact .activity-time{font-size:10px}.activity-item.compact .activity-description{font-size:11px}.activity-item.compact .activity-qty{font-size:10px;padding:1px 4px}.audit-info{gap:14px}.audit-label{font-size:10px}.audit-value{font-size:12px}.detail-footer{padding:10px 12px}.footer-content{flex-direction:column;gap:8px}.footer-left{width:100%;justify-content:center;flex-wrap:wrap;gap:6px}.footer-content .save-success{margin-right:0;order:-1;width:100%;justify-content:center}.footer-actions{width:100%;justify-content:stretch;gap:8px}.footer-btn.print-label .btn-label,.footer-btn.api-refresh .btn-label,.footer-btn.secondary .btn-label{display:none}.footer-btn.print-label,.footer-btn.api-refresh,.footer-btn.secondary{padding:10px 12px}.footer-btn.print-label svg,.footer-btn.api-refresh svg{width:18px;height:18px}.footer-btn.edit,.footer-btn.save,.footer-btn.cancel,.footer-btn.danger{flex:1;justify-content:center;padding:12px 16px;font-size:14px}.lookup-error{font-size:11px;text-align:center;width:100%}.print-message{font-size:11px}.dialog-overlay{padding:8px}.dialog{max-width:100%;max-height:95vh;margin:0;border-radius:10px}.dialog-header{padding:12px 16px}.dialog-header h3{font-size:16px}.dialog-body{padding:12px 16px}.results-table{font-size:11px}.result-desc{max-width:120px}.result-image img,.result-image .no-image{width:32px;height:32px}.field input[type=text],.field input[type=url],.field input[type=number],.field textarea,.field select{padding:10px;font-size:14px}.edit-actions{flex-wrap:wrap}}@media (max-width: 480px){.detail-content{padding:8px}.component-detail-page:has(.detail-footer) .detail-content{padding-bottom:150px}.detail-grid{gap:8px}.detail-section{padding:12px;border-radius:var(--radius-md)}.section-icon{display:none}.section-header{margin-bottom:8px;padding-bottom:6px}.image-container{width:80px;height:80px}.field label{font-size:11px}.field-value,.field-value.primary{font-size:13px}.field-group.three-columns{grid-template-columns:1fr}.field-group.metadata-grid{grid-template-columns:1fr 1fr}.storage-card{padding:8px 4px}.storage-card .storage-value{font-size:16px}.storage-card .storage-label{font-size:9px}.summary-value{font-size:26px}.breakdown-row{padding:8px 10px}.breakdown-label{font-size:12px}.breakdown-value{font-size:14px}.activity-item.compact{padding:4px 6px;gap:5px}.activity-item.compact .activity-icon{width:18px;height:18px}.activity-item.compact .activity-icon svg{width:10px;height:10px}.activity-item.compact .activity-description{font-size:10px}.activity-item.compact .activity-time{font-size:9px}.activity-list{max-height:200px}.audit-info{flex-direction:column;gap:8px}.audit-label{font-size:9px}.audit-value{font-size:11px}.detail-footer{padding:8px}.footer-btn{font-size:12px}.footer-btn.edit,.footer-btn.save,.footer-btn.cancel,.footer-btn.danger{padding:10px 12px;font-size:13px}.pending-order-item.compact{gap:4px;padding:4px 6px}.pending-order-item.compact .supplier-badge{width:18px;height:18px;font-size:8px}.pending-order-item.compact .order-ref{font-size:10px}.project-item{padding:5px 6px}.project-id{font-size:10px}.project-status{font-size:9px;padding:1px 4px}.alternative-card{padding:8px;gap:8px}.alt-image{width:36px;height:36px}.alt-pn{font-size:11px}.alt-manufacturer{font-size:10px}}@media (max-width: 900px) and (max-height: 500px){.detail-header{padding:4px 12px;min-height:40px;height:auto;gap:8px}.detail-header .page-title h1{font-size:14px}.detail-content{padding:8px 12px}.component-detail-page:has(.detail-footer) .detail-content{padding-bottom:72px}.detail-grid{gap:8px}.detail-section{padding:10px}.section-icon,.detail-section.image-section .section-header{display:none}.image-container{width:60px;height:60px}.detail-footer{padding:6px 12px}.footer-content{flex-direction:row;gap:8px}.footer-btn{padding:6px 10px;font-size:12px}.footer-btn.print-label .btn-label,.footer-btn.api-refresh .btn-label,.footer-btn.secondary .btn-label{display:none}}.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-item.comment_added .activity-icon{background:#e0f2fe;color:#0284c7}.activity-item.comment_deleted .activity-icon{background:#f3f4f6;color:#6b7280}.activity-item.issue_raised .activity-icon{background:#fef2f2;color:#dc2626}.activity-item.warning_raised .activity-icon{background:#fffbeb;color:#d97706}.activity-item.issue_resolved .activity-icon,.activity-item.warning_resolved .activity-icon{background:#ecfdf5;color:#059669}.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:fixed;left:0;right:0;bottom:0;background:var(--color-bg);border-top:1px solid var(--color-border);padding:16px 32px;z-index:100;box-shadow:0 -2px 12px #00000014}.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-btn.danger{background:var(--color-bg);border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626)}.footer-btn.danger:hover:not(:disabled){background:var(--color-danger, #dc2626);border-color:var(--color-danger, #dc2626);color:#fff}.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{margin:10px auto 0;width:fit-content;max-width:100%;background:#10b9811f;color:var(--color-success, #059669);padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px}.image-container img.image-clickable,.image-container img.step-3d-clickable{cursor:zoom-in}.image-lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;display:flex;align-items:center;justify-content:center;z-index:1100;padding:24px}.image-lightbox-modal{display:flex;flex-direction:column;width:min(1000px,100%);height:min(760px,100%);background:var(--color-bg, #fff);border-radius:14px;box-shadow:0 24px 64px #00000059;overflow:hidden}.image-lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border, #e2e8f0);flex-shrink:0}.image-lightbox-title{display:flex;align-items:center;gap:10px;min-width:0;font-size:15px;font-weight:600;color:var(--color-text-primary, #0f172a)}.image-lightbox-title svg{flex-shrink:0;color:var(--color-primary, #3b82f6)}.image-lightbox-title span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-lightbox-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--color-text-secondary, #64748b);cursor:pointer}.image-lightbox-close:hover{background:var(--color-bg-tertiary, #f1f5f9);color:var(--color-text-primary, #0f172a)}.image-lightbox-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:20px;background:var(--color-bg-secondary, #f8fafc)}.image-lightbox-body img{max-width:100%;max-height:100%;object-fit:contain}@media (max-width: 640px){.image-lightbox-overlay{padding:0}.image-lightbox-modal{width:100%;height:100%;border-radius:0}}.image-3d-badge{margin:10px auto 0;width:fit-content;max-width:100%;background:#3b82f61f;color:var(--color-primary, #2563eb);border:none;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer}.image-3d-badge:hover{background:#3b82f633}.image-3d-controls{display:flex;flex-direction:column;gap:8px;margin-top:12px}.image-3d-controls .image-action-btn.primary .image-spinner{width:15px;height:15px;border-width:2px}.image-3d-select{width:100%;padding:8px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary)}.part-type-badge{display:inline-block;width:fit-content;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.part-type-badge.electrical{background:#3b82f61f;color:#1d4ed8}.part-type-badge.mechanical{background:#94a3b833;color:#475569}.params-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.params-search{position:relative;flex:1;min-width:200px;max-width:340px}.params-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--color-text-secondary);pointer-events:none}.params-search input{width:100%;padding:8px 30px 8px 32px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.params-search input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61f}.params-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);font-size:15px;line-height:1;cursor:pointer}.params-search-clear:hover{background:#94a3b833;color:var(--color-text-primary)}.params-page-size{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.params-page-size select{padding:5px 8px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:12px;color:var(--color-text-primary)}.params-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.custom-params-table{width:100%;border-collapse:collapse;font-size:13px}.custom-params-table th{text-align:left;padding:9px 12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.custom-params-table td{padding:9px 12px;border-bottom:1px solid var(--color-border);vertical-align:top}.custom-params-table tbody tr:last-child td{border-bottom:none}.custom-params-table tbody tr:hover{background:var(--color-bg-secondary)}.custom-params-table .col-param-name{width:32%;font-weight:600;color:var(--color-text-primary);word-break:break-word}.custom-params-table .col-param-value{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:12.5px;color:var(--color-text-primary);word-break:break-all}.custom-params-table .col-param-copy{width:34px;text-align:right}.param-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.param-copy-btn:hover{background:#3b82f61a;color:var(--color-primary)}.params-empty{padding:20px;text-align:center;font-size:13px;color:var(--color-text-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.params-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}.params-count{font-size:12px;color:var(--color-text-secondary)}.params-pagination{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--color-text-secondary)}.params-pagination button{padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.params-pagination button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.params-pagination button:disabled{opacity:.5;cursor:not-allowed}.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)}.dialog.api-diff-dialog{max-width:820px}.dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:0 0 12px 12px}.dialog-btn{padding:8px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:background .15s,border-color .15s,opacity .15s}.dialog-btn:disabled{opacity:.5;cursor:not-allowed}.dialog-btn.secondary{background:var(--color-bg);border-color:var(--color-border);color:var(--color-text-primary)}.dialog-btn.secondary:hover:not(:disabled){background:var(--color-bg-secondary)}.dialog-btn.primary{background:var(--color-primary);color:#fff}.dialog-btn.primary:hover:not(:disabled){background:var(--color-primary-dark)}.api-diff-empty{padding:28px 16px;text-align:center;color:var(--color-text-muted);background:var(--color-bg-secondary);border:1px dashed var(--color-border);border-radius:8px;font-size:14px}.api-diff-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.api-diff-count{font-size:13px;color:var(--color-text-muted)}.api-diff-toolbar-actions{display:flex;gap:12px}.api-diff-link-btn{background:none;border:none;padding:0;font-size:13px;font-weight:500;color:var(--color-primary);cursor:pointer}.api-diff-link-btn:hover{text-decoration:underline}.api-diff-table .api-diff-check-col{width:40px;text-align:center;vertical-align:middle}.api-diff-table .api-diff-check-col input{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.api-diff-field{font-weight:600;white-space:nowrap;color:var(--color-text-primary)}.api-diff-old,.api-diff-new{max-width:280px;overflow:hidden;text-overflow:ellipsis;word-break:break-word;white-space:normal;font-size:13px}.api-diff-old{color:var(--color-text-muted)}.api-diff-new{color:var(--color-text-primary);font-weight:500}.api-diff-empty-val{color:var(--color-text-muted)}.api-diff-image-cell{display:inline-flex;align-items:center}.api-diff-image-cell img{width:48px;height:48px;object-fit:contain;border-radius:4px;background:#f5f5f5;border:1px solid var(--color-border-light)}@media (prefers-color-scheme: dark){.image-container{background:#1a1a1a}.image-container.editable{background:var(--color-bg-secondary)}.image-container.editable.dragging{background:#2d899826}.save-success{background:#4caf5026;border-color:#4caf5066}.detail-footer{background:var(--color-bg);box-shadow:0 -2px 12px #00000059}}.compliance-badge{display:inline-flex;align-items:center;justify-content:center;text-align:center;padding:3px 10px;border-radius:var(--radius-full, 999px);font-size:12px;font-weight:600;width:fit-content;cursor:default}.compliance-badge.good{background:var(--color-success-bg, #dcfce7);color:var(--color-success, #16a34a)}.compliance-badge.bad{background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626)}.compliance-badge.warn{background:#f59e0b29;color:#b45309}.compliance-badge.neutral{background:var(--color-bg-tertiary, #f1f5f9);color:var(--color-text-secondary)}.preferred-replacement-chip{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:6px 12px;border:1px solid rgba(245,158,11,.5);border-radius:var(--radius-md);background:#f59e0b14;color:#b45309;font-family:inherit;cursor:pointer;transition:all .15s ease}.preferred-replacement-chip:hover{border-color:#f59e0b;background:#f59e0b24;box-shadow:0 1px 4px #f59e0b40}.preferred-replacement-pn{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:600;color:var(--color-text-primary)}.preferred-replacement-none{color:var(--color-text-muted);font-style:italic}.internal-id-value{display:inline-flex;align-items:center;gap:8px}.internal-id-code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);font-weight:600;letter-spacing:.02em}.internal-id-copy{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;flex-shrink:0;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);background:var(--color-bg);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.internal-id-copy:hover{border-color:var(--color-primary);color:var(--color-primary)}.doc-versions-toggle{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;font-size:10.5px;font-weight:700;color:var(--color-primary, #2563eb);background:#3b82f61a;border:1px solid rgba(59,130,246,.3);padding:1px 7px;border-radius:999px;cursor:pointer;transition:background var(--transition-fast)}.doc-versions-toggle:hover{background:#3b82f62e}.doc-versions-toggle svg{transition:transform var(--transition-fast)}.doc-versions-toggle.open svg{transform:rotate(180deg)}.component-documents-table .doc-version-row{background:var(--color-bg-secondary)}.component-documents-table .doc-version-row td{font-size:12.5px;color:var(--color-text-secondary)}.component-documents-table .doc-version-row .col-type{text-align:right}.component-documents-table .doc-version-row .doc-title{color:var(--color-text-secondary)}.doc-version-num{display:inline-block;font-size:10.5px;font-weight:700;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);padding:1px 7px;border-radius:999px}.doc-superseded-tag{display:inline-block;flex-shrink:0;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);padding:1px 7px;border-radius:999px;cursor:default}.doc-version-date{flex-shrink:0;font-size:11.5px;color:var(--color-text-secondary);white-space:nowrap}.documents-section .doc-error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;margin-bottom:12px;background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626);border-radius:var(--radius-md);font-size:13px}.documents-section .doc-error button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px}.documents-loading,.documents-empty{padding:12px 0;font-size:13px;color:var(--color-text-tertiary)}.documents-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.component-documents-table{width:100%;border-collapse:collapse;font-size:13px}.component-documents-table thead{background:var(--color-bg-secondary)}.component-documents-table th{padding:6px 12px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.component-documents-table td{padding:5px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle}.component-documents-table tbody tr:last-child td{border-bottom:none}.component-documents-table tbody tr:hover,.component-documents-table tbody tr.doc-file-group-row:hover{background:var(--color-bg-secondary)}.doc-file-group-row td{padding:6px 14px!important;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);vertical-align:middle}.doc-file-group-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.doc-file-group-count{margin-left:8px;font-size:11px;font-weight:600;color:var(--color-text-muted)}.prodd-hidden-item-title:hover{color:var(--color-primary);text-decoration:underline}.component-documents-table .col-type{width:1%;white-space:nowrap}.component-documents-table .col-mfr{width:1%;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-text-tertiary);font-size:12px}.component-documents-table .col-size{width:1%;white-space:nowrap;color:var(--color-text-tertiary);font-size:12px}.component-documents-table .col-actions{width:1%;text-align:right;white-space:nowrap}.doc-type-badge{flex-shrink:0;padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;background:var(--color-bg-tertiary, #f1f5f9);color:var(--color-text-secondary)}.doc-type-badge.rohs{background:#dcfce7;color:#15803d}.doc-type-badge.reach{background:#dbeafe;color:#1d4ed8}.doc-type-badge.rohs_reach{background:#e0e7ff;color:#3730a3}.doc-type-badge.rohs_reach_fmd{background:#ede9fe;color:#5b21b6}.doc-type-badge.proprietary_waiver{background:#e2e8f0;color:#334155}.doc-type-badge.customer_exemption_declaration{background:#dbeafe;color:#1e40af}.doc-type-badge.datasheet{background:#fef3c7;color:#b45309}.doc-type-badge.coc{background:#ede9fe;color:#5b21b6;text-transform:none}.doc-type-badge.doc{background:#fae8ff;color:#a21caf;text-transform:none}.doc-type-badge.certificate{background:#ede9fe;color:#6d28d9}.doc-type-badge.lab{background:#ecfeff;color:#0e7490;text-transform:none}.doc-type-badge.declaration{background:#fce7f3;color:#be185d}.doc-type-badge.fmd{background:#ccfbf1;color:#0f766e}.doc-type-badge.ipc1752a{background:#cffafe;color:#155e75}.doc-type-badge.iec62474{background:#ecfccb;color:#4d7c0f}.doc-type-badge.step{background:#e0f2fe;color:#0369a1}.doc-type-badge.sw{background:#fee2e2;color:#b91c1c}.doc-type-badge.iges{background:#fef9c3;color:#a16207}.doc-type-badge.label{background:#e0e7ff;color:#3730a3}.doc-type-badge[class~="3dpdf"]{background:#fae8ff;color:#a21caf}.doc-title-cell{display:flex;align-items:center;gap:8px;min-width:0}.component-documents-table .doc-view-3d-btn{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;padding:2px 8px;border:1px solid var(--color-border);border-radius:var(--radius-full, 999px);background:var(--color-bg-secondary, #f8fafc);color:var(--color-text-secondary);font-size:11px;font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.component-documents-table .doc-view-3d-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-light, #eff6ff)}.component-documents-table .doc-title{display:inline-flex;align-items:center;gap:4px;color:var(--color-primary);text-decoration:none;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.component-documents-table .doc-title:hover{text-decoration:underline}.component-documents-table .doc-title svg{flex-shrink:0;opacity:.6}.component-documents-table .doc-shared{flex-shrink:0;padding:1px 8px;border-radius:var(--radius-full, 999px);background:var(--color-primary-light, #eff6ff);color:var(--color-primary);font-size:11px;font-weight:500;white-space:nowrap}.component-documents-table .doc-row-actions{display:inline-flex;align-items:center;gap:2px;flex-wrap:nowrap}.component-documents-table .doc-action-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.component-documents-table .doc-action-icon-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.component-documents-table .doc-action-icon-btn.danger:hover{background:var(--color-danger-bg, #fee2e2);border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626)}.component-documents-table .doc-unlink-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.component-documents-table .doc-unlink-btn:hover{background:var(--color-danger-bg, #fee2e2);border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626)}.documents-actions{display:flex;gap:8px;margin-top:12px}.doc-action-btn{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)}.doc-action-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.doc-upload-form{margin-top:12px;padding:12px;background:var(--color-bg-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-md);overflow:visible;display:flex;flex-direction:column;gap:10px}.doc-upload-form input[type=file]{font-size:13px;color:var(--color-text-secondary)}.doc-upload-fields{display:flex;gap:8px;flex-wrap:wrap}.doc-upload-fields input[type=text]{flex:1;min-width:160px;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)}.doc-upload-fields select{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);cursor:pointer}.doc-upload-actions{display:flex;justify-content:flex-end}.doc-upload-submit{padding:6px 14px;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)}.doc-upload-submit:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary))}.doc-upload-submit:disabled{opacity:.5;cursor:not-allowed}.doc-error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;margin-bottom:12px;background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626);border-radius:var(--radius-md);font-size:13px}.doc-error button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px}.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}}.method-selector{margin-bottom:16px}.method-label{display:block;font-size:12px;font-weight:600;color:var(--color-text-primary);margin-bottom:8px}.method-cards{display:grid;grid-template-columns:1fr 1fr;gap:10px}.method-card{display:flex;align-items:center;gap:10px;padding:12px;background:var(--color-bg);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:left}.method-card:hover{border-color:var(--color-primary);background:#2d89980a}.method-card.active{border-color:var(--color-primary);background:#2d899814}.method-card-icon{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);transition:all var(--transition-fast)}.method-card.active .method-card-icon{background:var(--color-primary);color:#fff}.method-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.method-card-title{font-size:13px;font-weight:600;color:var(--color-text-primary)}.method-card-desc{font-size:11px;color:var(--color-text-secondary)}.method-config{padding-top:4px}.copies-input{width:70px;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg);text-align:center}.copies-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.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}.method-card{background:#ffffff0d;border-color:#ffffff1a}.method-card:hover{background:#2d89981a}.method-card.active{background:#2d899826;border-color:var(--color-primary)}.method-card-icon{background:#ffffff14}.copies-input{background:#ffffff0d;border-color:#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)}}.modal-content.pcb-wizard-modal{max-width:680px;width:95vw;max-height:85vh;display:flex;flex-direction:column;overflow:hidden}.pcb-wizard-modal .wizard-content{flex:1;overflow-y:auto;min-height:0}.wizard-steps{display:flex;align-items:center;gap:4px;padding:12px 20px;position:sticky;top:0;background:var(--color-bg);z-index:1;border-bottom:1px solid var(--color-border);flex-shrink:0}.wizard-step-item{display:flex;align-items:center;gap:6px;flex:1;position:relative}.wizard-step-item:not(:last-child):after{content:"";flex:1;height:2px;background:var(--color-border);margin-left:6px}.wizard-step-item.done:not(:last-child):after{background:var(--color-primary)}.step-number{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;border:2px solid var(--color-border);color:var(--color-text-muted);background:var(--color-bg);flex-shrink:0}.wizard-step-item.active .step-number,.wizard-step-item.done .step-number{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.step-label{font-size:12px;font-weight:500;color:var(--color-text-muted);white-space:nowrap}.wizard-step-item.active .step-label{color:var(--color-primary)}.wizard-step-item.done .step-label{color:var(--color-text-primary)}.wizard-content{display:flex;flex-direction:column}.wizard-step{padding:16px 20px 20px}.wizard-step h3{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 4px}.wizard-step h4{font-size:14px;font-weight:600;color:var(--color-text-primary);margin:16px 0 8px}.optional-tag{font-size:10px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:999px;padding:1px 7px;margin-left:6px;vertical-align:2px}.wizard-hint{font-size:13px;color:var(--color-text-secondary);margin:0 0 16px;line-height:1.5}.wizard-hint code{background:var(--color-bg-secondary);padding:2px 6px;border-radius:3px;font-size:12px;color:var(--color-primary)}.auth-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}.auth-type-card{display:flex;flex-direction:column;gap:4px;padding:12px;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);cursor:pointer;transition:all var(--transition-fast);text-align:left}.auth-type-card:hover{border-color:var(--color-primary);background:var(--color-bg-secondary)}.auth-type-card.selected{border-color:var(--color-primary);background:#2d89980f}.auth-type-card strong{font-size:13px;color:var(--color-text-primary)}.auth-type-card span{font-size:11px;color:var(--color-text-secondary);line-height:1.4}.response-type-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:8px}.cred-fields{margin-bottom:16px}.cred-row{display:flex;gap:8px;align-items:flex-end;margin-bottom:8px}.cred-row .form-field{flex:1}.remove-cred-btn{width:32px;height:34px;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-muted);cursor:pointer;font-size:18px;flex-shrink:0;transition:all var(--transition-fast)}.remove-cred-btn:hover{border-color:var(--color-error);color:var(--color-error);background:#e74c3c0d}.add-cred-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:12px;cursor:pointer;transition:all var(--transition-fast)}.add-cred-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.auth-headers-preview{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--color-border)}.auth-headers-preview>label{display:block;font-size:12px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.auth-headers-preview>label .field-hint{font-weight:400}.auth-header-row{opacity:.7}.auth-header-row input{background:var(--color-bg-secondary)!important;color:var(--color-text-secondary)!important;cursor:default}.auth-lock-icon{width:32px;height:34px;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);flex-shrink:0}.endpoint-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.headers-section{margin-bottom:8px}.headers-section>label{display:block;font-size:12px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.header-row{display:flex;gap:8px;align-items:center;margin-bottom:6px}.header-row input{flex:1;padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);background:var(--color-bg)}.header-row input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.wizard-step .form-field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.wizard-step .form-field label{font-size:12px;font-weight:500;color:var(--color-text-primary)}.wizard-step .form-field input,.wizard-step .form-field select{padding:7px 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)}.wizard-step .form-field input:focus,.wizard-step .form-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.wizard-step .form-field textarea{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:12px;font-family:SF Mono,Monaco,Cascadia Code,monospace;color:var(--color-text-primary);background:var(--color-bg);resize:vertical;transition:border-color var(--transition-fast)}.wizard-step .form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.wizard-step .field-hint{font-size:11px;color:var(--color-text-muted)}.test-response-box{margin:8px 0 12px}.test-response-box label{display:block;font-size:12px;font-weight:500;color:var(--color-text-primary);margin-bottom:4px}.test-response-box pre{padding:10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:11px;font-family:SF Mono,Monaco,Cascadia Code,monospace;color:var(--color-text-primary);max-height:200px;overflow:auto;white-space:pre-wrap;word-break:break-all}.mapping-fields{margin:8px 0}.test-map-details{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:12px;overflow:hidden}.test-map-summary{padding:10px 14px;font-size:13px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;background:var(--color-bg-secondary);-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}.test-map-summary::-webkit-details-marker{display:none}.test-map-summary:before{content:"▶";font-size:10px;transition:transform .15s ease;display:inline-block}.test-map-details[open]>.test-map-summary:before{transform:rotate(90deg)}.test-map-summary:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}.test-map-details-content{padding:12px 14px;border-top:1px solid var(--color-border)}.mapping-string-hint{padding:8px 12px;background:#2d89980f;border:1px solid rgba(45,137,152,.2);border-radius:var(--radius-md);color:var(--color-primary);font-size:12px;margin:8px 0}.mapping-preview{margin:12px 0 8px}.mapping-preview table{width:100%;border-collapse:collapse;font-size:12px}.mapping-preview th{text-align:left;padding:6px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);font-weight:600;color:var(--color-text-primary)}.mapping-preview td{padding:6px 10px;border:1px solid var(--color-border);color:var(--color-text-secondary)}.review-summary{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;margin-bottom:16px}.review-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.review-row:not(:last-child){border-bottom:1px solid var(--color-border)}.review-label{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.review-value{font-size:12px;color:var(--color-text-primary);font-weight:500;text-align:right;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wizard-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:16px;border-top:1px solid var(--color-border);margin-top:16px}.wizard-error{padding:8px 12px;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-md);color:var(--color-error);font-size:13px;font-family:SF Mono,Monaco,Cascadia Code,monospace;white-space:pre-wrap;word-break:break-word;margin:8px 0;overflow-x:auto}.pcb-wizard-modal .action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:36px;padding:0 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;line-height:1;white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.pcb-wizard-modal .action-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.pcb-wizard-modal .action-btn:disabled{opacity:.5;cursor:not-allowed}.pcb-wizard-modal .action-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.pcb-wizard-modal .action-btn.primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.pcb-wizard-modal .action-btn.ghost{height:auto;padding:6px 8px;border-color:transparent;background:transparent;color:var(--color-text-muted);font-weight:500}.pcb-wizard-modal .action-btn.ghost:hover:not(:disabled){background:var(--color-bg-secondary);border-color:transparent;color:var(--color-text-primary)}.test-download-section{margin:12px 0;padding:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.test-result-pre{margin-top:8px;padding:8px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:11px;font-family:SF Mono,Monaco,Cascadia Code,monospace;max-height:150px;overflow:auto;white-space:pre-wrap;word-break:break-all}.lookup-overlay{display:flex;flex-direction:column;height:100%;min-height:300px}.lookup-header{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-shrink:0}.lookup-header h3{font-size:15px;font-weight:600;color:var(--color-text-primary);margin:0}.lookup-search-wrap{padding:12px 20px;flex-shrink:0}.lookup-search{width:100%;padding:8px 12px;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-sizing:border-box}.lookup-search:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.lookup-list{flex:1;overflow-y:auto;padding:0 20px 16px}.lookup-empty{padding:24px 0;text-align:center;color:var(--color-text-muted);font-size:13px}.lookup-group{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:8px;overflow:hidden}.lookup-group>summary{padding:8px 14px;font-size:13px;font-weight:600;color:var(--color-text-primary);background:var(--color-bg-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;display:flex;align-items:center;gap:6px}.lookup-group>summary::-webkit-details-marker{display:none}.lookup-group>summary:before{content:"▶";font-size:9px;transition:transform .15s ease;display:inline-block}.lookup-group[open]>summary:before{transform:rotate(90deg)}.lookup-group>summary:hover{color:var(--color-primary)}.lookup-group-items{border-top:1px solid var(--color-border)}.lookup-item{display:flex;align-items:center;gap:12px;padding:7px 14px 7px 28px;font-size:12px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--color-border)}.lookup-item:last-child{border-bottom:none}.lookup-item:hover{background:#2d899814}.lookup-item-id{font-family:SF Mono,Monaco,Cascadia Code,monospace;color:var(--color-text-primary);font-weight:500}.lookup-item-name{color:var(--color-text-muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-type-card:disabled{opacity:.45;cursor:not-allowed;border-color:var(--color-border);background:var(--color-bg-secondary)}.auth-type-card:disabled:hover{border-color:var(--color-border);background:var(--color-bg-secondary)}.param-block{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;margin-bottom:10px;background:var(--color-bg)}.param-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.param-header strong{font-size:13px;color:var(--color-text-primary)}.param-card{border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:8px;background:var(--color-bg);overflow:hidden;transition:box-shadow .15s ease}.param-card:hover{box-shadow:0 1px 4px #0000000f}.param-card-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);min-height:36px}.param-card-collapsed .param-card-header{border-bottom:none}.param-card-header-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.param-card-name{font-size:13px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.param-card-remove{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm, 4px);background:transparent;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;transition:all .12s ease}.param-card-remove:hover{background:#e74c3c1a;color:var(--color-error)}.param-chevron{transition:transform .15s ease;color:var(--color-text-muted);flex-shrink:0}.param-chevron.expanded{transform:rotate(90deg)}.param-tags{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;min-width:0;overflow:hidden}.param-tag{display:inline-flex;align-items:center;padding:0 6px;font-size:10px;font-weight:500;border-radius:3px;background:var(--color-bg);color:var(--color-text-secondary);white-space:nowrap;line-height:1.8;letter-spacing:.01em}.param-tag-ok{background:#27ae601f;color:#219a52}.param-tag-req{background:#e74c3c14;color:var(--color-error)}.param-tag-muted{font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:10px;max-width:140px;overflow:hidden;text-overflow:ellipsis}.param-card-body{padding:12px}.param-fields-row{display:flex;gap:8px;align-items:flex-end}.param-field{display:flex;flex-direction:column;gap:3px}.param-field label{font-size:11px;font-weight:500;color:var(--color-text-muted)}.param-field input,.param-field select{padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);font-size:13px;color:var(--color-text-primary);background:var(--color-bg);transition:border-color .12s ease}.param-field input:focus,.param-field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2d89981a}.param-field-name{flex:1;min-width:100px}.param-field-type{width:82px;flex-shrink:0}.param-field-source{width:100px;flex-shrink:0}.param-field-req{width:38px;flex-shrink:0;align-items:center}.param-source-row{display:flex;align-items:center;gap:8px;margin-top:8px}.param-source-row>label{font-size:11px;font-weight:500;color:var(--color-text-muted);width:40px;flex-shrink:0;text-align:right}.param-source-row>input{flex:1;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);font-size:13px;color:var(--color-text-primary);background:var(--color-bg);transition:border-color .12s ease}.param-source-row>input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2d89981a}.param-callback-row{display:flex;align-items:center;gap:12px;margin-top:8px}.param-cb-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 4px);background:var(--color-bg);color:var(--color-text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .12s ease;white-space:nowrap}.param-cb-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#2d89980a}.param-cb-btn.param-cb-configured{border-color:#27ae6066;color:#219a52;background:#27ae600f}.param-cb-btn.param-cb-configured:hover{background:#27ae601f;border-color:#27ae60}.param-fallback-label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.param-fallback-label input[type=checkbox]{margin:0}.callback-config-block{margin-top:4px}.callback-editor{padding:10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.callback-editor .form-field{margin-bottom:6px}.field-mapping-table{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:8px}.field-mapping-header{display:grid;grid-template-columns:50px 1fr 1fr;gap:8px;padding:8px 12px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.field-mapping-row{display:grid;grid-template-columns:50px 1fr 1fr;gap:8px;padding:8px 12px;align-items:center;border-bottom:1px solid var(--color-border)}.field-mapping-row:last-child{border-bottom:none}.field-mapping-row .toggle-switch{justify-self:center}.field-mapping-label{display:flex;flex-direction:column;gap:1px}.field-mapping-label strong{font-size:13px;color:var(--color-text-primary)}.field-mapping-label .field-hint{font-size:10px;color:var(--color-text-muted)}.field-mapping-row input[type=text]{padding:6px 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)}.field-mapping-row input[type=text]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.field-mapping-row input[type=text]:disabled{opacity:.4;background:var(--color-bg-secondary)}.callback-list-preview{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;font-size:12px}.callback-list-header{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px 12px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:10px}.callback-list-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px 12px;border-bottom:1px solid var(--color-border)}.callback-list-row:last-child{border-bottom:none}.callback-list-value{font-family:SF Mono,Monaco,Cascadia Code,monospace;color:var(--color-text-primary)}.callback-list-label{color:var(--color-text-secondary)}@media (max-width: 600px){.auth-type-grid,.response-type-cards{grid-template-columns:1fr}.cred-row{flex-direction:column;align-items:stretch}.cred-row .remove-cred-btn{width:100%;height:auto;padding:6px}.endpoint-row{flex-direction:column}.endpoint-row .form-field{width:100%!important}.step-label{display:none}}.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 .header-left{display:flex;align-items:center;gap:16px;min-width:0}.configuration-page .header-right{display:flex;align-items:center;gap:16px}.configuration-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;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 .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 .page-title h1{font-size:18px}.configuration-page .page-title p{display:none}.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}}.configuration-page .section-icon.pcb-storage{background:linear-gradient(135deg,#00897b,#00695c);color:#fff}.configuration-page .pcb-setup-buttons{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.configuration-page .pcb-setup-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:12px}.configuration-page .pcb-setup-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.configuration-page .pcb-setup-info strong{font-size:13px;font-weight:600;color:var(--color-text-primary)}.configuration-page .pcb-setup-info span{font-size:11px;color:var(--color-text-secondary)}.configuration-page .pcb-setup-right{display:flex;align-items:center;gap:8px;flex-shrink:0}@media (max-width: 768px){.configuration-page .pcb-setup-item{flex-direction:column;align-items:flex-start;gap:8px}.configuration-page .pcb-setup-right{width:100%;justify-content:space-between}}@media (prefers-color-scheme: dark){.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;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid var(--border-color, #e5e7eb);border-radius:.5rem;cursor:pointer;color:var(--text-secondary, #6b7280);flex-shrink:0;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}.orders-header .header-left{display:flex;align-items:center;gap:1rem;min-width:0}.orders-header .header-left h1{margin:0;font-size:1.25rem;font-weight:600;white-space:nowrap}.orders-header .header-right{display:flex;align-items:center;gap:1rem}.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}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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}}.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:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;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-left{display:flex;align-items:center;gap:16px;min-width:0}.projects-page .header-right,.projects-page .page-title{display:flex;align-items:center;gap:16px}.projects-page .header-left .page-title{display:flex;align-items:center}.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}.projects-toolbar .archive-link-btn{display:flex;align-items:center;gap:8px;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-toolbar .archive-link-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.projects-toolbar .archive-link-btn svg{flex-shrink:0}.archive-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:9px;font-size:11px;font-weight:600;color:var(--color-text-secondary);line-height:1}.projects-toolbar .archive-link-btn:hover .archive-count-badge{border-color:var(--color-primary);color:var(--color-primary)}.projects-page.archive-mode .page-title-archive-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background:#f57f171a;color:var(--color-accent-warning);flex-shrink:0}.projects-page.archive-mode .page-title-archive-icon svg{width:22px;height:22px}.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%}.aa-list-wrapper{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.aa-list-scroll{overflow-x:auto}.aa-list-table{width:100%;border-collapse:collapse;font-size:14px}.aa-list-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.aa-list-table td{padding:10px 16px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.aa-list-table tbody tr{cursor:pointer;transition:background var(--transition-fast)}.aa-list-table tbody tr:hover{background:var(--color-bg-secondary)}.aa-list-table tbody tr:last-child td{border-bottom:none}.aa-list-table .col-center{text-align:center}.aa-list-table .col-date{white-space:nowrap;color:var(--color-text-secondary);font-size:13px}.aa-list-table .col-name{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.aa-group-header{cursor:pointer}.aa-group-header td{padding:0!important;background:#2d89980d;border-bottom:1px solid var(--color-border)}.aa-group-header:hover td{background:#2d899817}.aa-group-header-content{display:flex;align-items:center;gap:8px;padding:10px 16px;min-width:0}.aa-group-chevron{transition:transform .15s ease;flex-shrink:0;color:var(--color-text-muted)}.aa-group-chevron.open{transform:rotate(90deg)}.aa-group-name{font-weight:600;font-size:13px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.aa-num-chip{font-size:10px;font-weight:600;font-family:SF Mono,Fira Code,Cascadia Code,monospace;color:var(--color-primary);background:#2d89981a;border-radius:8px;padding:1px 6px;line-height:1.4;flex-shrink:0}.aa-group-count{font-size:11px;color:var(--color-text-muted);margin-left:4px;white-space:nowrap}.aa-child-row td{background:#2d899804}.aa-child-row:hover td{background:#2d89980d}.aa-child-row td:first-child{padding-left:52px}.aa-child-row .col-name{position:relative}.aa-child-row .col-name:before{content:"";position:absolute;left:28px;top:50%;width:12px;height:1px;background:var(--color-border)}.aa-key-cell{display:flex;align-items:center;gap:8px;min-width:0}.aa-key{font-weight:500;overflow:hidden;text-overflow:ellipsis}.aa-row-disabled .aa-key,.aa-row-disabled .aa-variant{opacity:.55}.aa-variant{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.aa-version-chip{font-size:10px;font-weight:600;font-family:SF Mono,Fira Code,Cascadia Code,monospace;color:var(--color-primary);background:#2d89981a;border-radius:8px;padding:1px 6px;line-height:1.4}.aa-manual-chip{font-size:11px;font-weight:500;color:var(--color-text-muted);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;padding:1px 8px;line-height:1.5;white-space:nowrap}.aa-muted{color:var(--color-text-muted)}.aa-status-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.aa-status-badge.status-draft{background:#6b72801f;color:#6b7280}.aa-status-badge.status-active{background:#22c55e1f;color:#15803d}.aa-status-badge.status-in-assembly{background:#3b82f61f;color:#1d4ed8}.aa-status-badge.status-in-rework{background:#a855f71f;color:#7e22ce}.aa-status-badge.status-completed{background:#2d89981f;color:var(--color-primary)}.aa-status-badge.status-archived{background:#6b72801f;color:#6b7280}.aa-match-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap}.aa-match-badge.good{background:#22c55e1f;color:#15803d}.aa-match-badge.partial{background:#f59e0b1f;color:#b45309}.aa-build{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.aa-build-now{font-weight:600}.aa-build-now.ready{color:#15803d}.aa-build-now.partial{color:#b45309}.aa-build-now.blocked{color:var(--color-error)}.aa-build-orders{display:inline-flex;align-items:center;gap:3px;font-size:12px;color:var(--color-text-secondary)}.aa-conflict{display:inline-flex;color:#b45309}.aa-built{font-weight:600;color:var(--color-primary)}.aa-priority-cell{white-space:nowrap}.aa-priority{font-size:12px;font-weight:600;color:var(--color-text-secondary)}.aa-priority-arrows{display:inline-flex;flex-direction:column;vertical-align:middle;margin-left:6px;gap:1px}.aa-priority-btn{display:flex;align-items:center;justify-content:center;width:18px;height:13px;padding:0;border:none;border-radius:3px;background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.aa-priority-btn:hover:not(:disabled){background:#2d89981f;color:var(--color-primary)}.aa-priority-btn:disabled{opacity:.3;cursor:default}.aa-toggle{position:relative;display:inline-block;width:34px;height:19px;cursor:pointer}.aa-toggle input{opacity:0;width:0;height:0}.aa-toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-border);border-radius:999px;transition:background var(--transition-fast)}.aa-toggle-slider:before{content:"";position:absolute;height:15px;width:15px;left:2px;top:2px;background:var(--color-bg);border-radius:50%;transition:transform var(--transition-fast);box-shadow:0 1px 2px #0003}.aa-toggle input:checked+.aa-toggle-slider{background:var(--color-success, #22c55e)}.aa-toggle input:checked+.aa-toggle-slider:before{transform:translate(15px)}.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-page.mobile.portrait .page-header{padding:8px 12px;height:auto;flex-wrap:wrap;gap:8px}.projects-page.mobile.portrait .back-button{width:32px;height:32px}.projects-page.mobile.portrait .page-title h1{font-size:18px}.projects-page.mobile.portrait .page-title p{font-size:12px}.projects-page.mobile.portrait .projects-toolbar{padding:10px 12px;gap:8px}.projects-page.mobile.portrait .projects-toolbar .search-box{width:100%}.projects-page.mobile.portrait .projects-toolbar .search-input,.projects-page.mobile.portrait .projects-toolbar .status-filter{height:34px;font-size:12px}.projects-page.mobile.portrait .projects-toolbar .create-btn{height:34px;font-size:12px;padding:0 12px}.projects-page.mobile.portrait .page-content{padding:12px}.projects-page.mobile.portrait .reorder-hint{font-size:10px}.projects-page.mobile.landscape .page-header{padding:6px 12px;height:40px}.projects-page.mobile.landscape .back-button{width:28px;height:28px}.projects-page.mobile.landscape .page-title{gap:10px}.projects-page.mobile.landscape .page-title h1{font-size:15px}.projects-page.mobile.landscape .page-title p{display:none}.projects-page.mobile.landscape .projects-toolbar{padding:6px 12px;flex-direction:row;align-items:center;gap:8px}.projects-page.mobile.landscape .projects-toolbar .search-box{width:200px;flex:1}.projects-page.mobile.landscape .projects-toolbar .search-input,.projects-page.mobile.landscape .projects-toolbar .status-filter{height:30px;font-size:11px}.projects-page.mobile.landscape .projects-toolbar .create-btn{height:30px;font-size:11px;padding:0 10px}.projects-page.mobile.landscape .page-content{padding:8px 12px}.projects-page.mobile.landscape .reorder-hint{font-size:9px;padding:4px 6px}.pcb-storage-import-zone{margin:12px 16px 0}.pcb-storage-browse-btn{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;border:2px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);cursor:pointer;transition:all var(--transition-fast);text-align:left;position:relative}.pcb-storage-browse-btn:hover{border-color:#00897b;background:#00897b0a}.pcb-storage-browse-btn svg{color:#00897b;flex-shrink:0}.pcb-storage-browse-btn>span:first-of-type{font-size:14px;font-weight:500;color:var(--color-text-primary)}.pcb-storage-hint{font-size:12px;color:var(--color-text-muted);margin-left:auto}.pcb-storage-imported{display:flex;align-items:center;gap:10px;padding:12px 14px;border:2px solid #00897b;border-radius:var(--radius-lg);background:#00897b0f}.pcb-storage-imported svg{color:#00897b;flex-shrink:0}.pcb-storage-imported>span{flex:1;font-size:13px;font-weight:500;color:#00695c}.pcb-storage-change-btn{padding:4px 10px;border:1px solid #00897b;border-radius:var(--radius-md);background:transparent;color:#00897b;font-size:12px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.pcb-storage-change-btn:hover{background:#00897b;color:#fff}.import-divider{display:flex;align-items:center;margin:8px 16px;gap:12px}.import-divider:before,.import-divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.import-divider span{font-size:11px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.modal-content.create-project-modal.picker-active{max-width:700px;max-height:85vh}.pcb-file-explorer{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.pcb-file-explorer-header{padding:8px 14px;font-size:12px;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);text-transform:uppercase;letter-spacing:.3px}.pcb-file-explorer-list{max-height:160px;overflow-y:auto}.pcb-file-explorer-empty{padding:16px 14px;text-align:center;color:var(--color-text-muted);font-size:13px}.pcb-file-item{display:flex;align-items:center;gap:10px;padding:7px 14px;cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--color-border)}.pcb-file-item:last-child{border-bottom:none}.pcb-file-item:hover{background:var(--color-bg-secondary)}.pcb-file-item.selected{background:#2d89981a}.pcb-file-item.selected .pcb-file-item-name{color:var(--color-primary);font-weight:600}.pcb-file-item.selected .pcb-file-item-icon{color:var(--color-primary)}.pcb-file-item-icon{flex-shrink:0;color:var(--color-text-muted)}.pcb-file-item-icon.bom-icon{color:var(--color-primary)}.pcb-file-item-name{flex:1;font-size:13px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;font-family:SF Mono,Monaco,Cascadia Code,monospace}.pcb-file-item-size{flex-shrink:0;font-size:11px;color:var(--color-text-muted)}@media (prefers-color-scheme: dark){.error-banner,.form-error{background:#ef44441a;border-color:#ef44444d}.pcb-storage-imported>span{color:#4db6ac}}.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}}.modal-content.modification-wizard-modal{max-width:800px;max-height:90vh}.modification-wizard .modal-body{flex:1;overflow-y:auto;padding:20px 24px}.mod-steps{display:flex;gap:4px;margin-bottom:24px}.mod-step{flex:1;padding:8px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:12px;font-weight:500;color:var(--color-text-muted);text-align:center;transition:all .2s}.mod-step.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.mod-step.completed{background:var(--color-success-bg, rgba(34, 197, 94, .1));border-color:var(--color-success, #22c55e);color:var(--color-success, #22c55e)}.mod-warning-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:#f59e0b14;border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-lg);margin-bottom:20px;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.mod-warning-banner .warning-icon{font-size:20px;flex-shrink:0;margin-top:1px}.mod-project-list{display:flex;flex-direction:column;gap:8px;max-height:400px;overflow-y:auto}.mod-project-option{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s}.mod-project-option:hover{border-color:var(--color-primary);background:var(--color-bg-hover)}.mod-project-option.selected{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb, 59, 130, 246),.06)}.mod-project-option .project-preview{width:48px;height:48px;border-radius:var(--radius-md);background:var(--color-bg);border:1px solid var(--color-border);object-fit:cover;flex-shrink:0}.mod-project-option .project-info{flex:1;min-width:0}.mod-project-option .project-name{font-weight:600;font-size:14px;color:var(--color-text-primary)}.mod-project-option .project-desc{font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mod-project-option .project-status{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);flex-shrink:0}.mod-search-input{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:14px;margin-bottom:12px;outline:none}.mod-search-input:focus{border-color:var(--color-primary)}.mod-diff-section{margin-bottom:16px}.mod-diff-section-header{display:flex;align-items:center;gap:8px;padding:8px 0;font-weight:600;font-size:13px}.mod-diff-section-header.additions{color:#22c55e}.mod-diff-section-header.removals{color:#ef4444}.mod-diff-section-header.replacements{color:#f59e0b}.mod-diff-section-header.keeps{color:var(--color-text-muted)}.mod-diff-section-header.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.mod-diff-section-header.collapsible:hover{opacity:.8}.mod-diff-section-header .collapse-arrow{display:inline-block;font-size:12px;transition:transform .2s}.mod-diff-section-header .collapse-arrow.expanded{transform:rotate(90deg)}.mod-diff-count{font-size:11px;padding:1px 6px;border-radius:999px;background:var(--color-surface);font-weight:500}.mod-diff-items{display:flex;flex-direction:column;gap:6px}.mod-diff-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);font-size:13px;border:1px solid var(--color-border)}.mod-diff-item.add{background:#22c55e0f;border-color:#22c55e33}.mod-diff-item.remove{background:#ef44440f;border-color:#ef444433}.mod-diff-item.replace{background:#f59e0b0f;border-color:#f59e0b33}.mod-diff-item.keep{background:var(--color-surface);opacity:.6}.mod-diff-mpn{font-weight:600;color:var(--color-text-primary);min-width:120px}.mod-diff-desig{font-family:var(--font-mono, monospace);font-size:11px;color:var(--color-text-secondary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mod-diff-qty{font-weight:600;font-size:12px;padding:2px 8px;border-radius:var(--radius-sm);flex-shrink:0}.mod-diff-item.add .mod-diff-qty{color:#22c55e}.mod-diff-item.remove .mod-diff-qty{color:#ef4444}.mod-diff-item.replace .mod-diff-qty{color:#f59e0b}.mod-replace-arrow{display:flex;align-items:center;gap:6px;font-size:12px}.mod-replace-arrow .old-mpn{text-decoration:line-through;color:#ef4444;opacity:.7}.mod-replace-arrow .arrow{color:var(--color-text-muted)}.mod-replace-arrow .new-mpn{color:#22c55e;font-weight:600}.mod-confirm-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.mod-confirm-stat{padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.mod-confirm-stat .stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);margin-bottom:4px}.mod-confirm-stat .stat-value{font-size:20px;font-weight:700;color:var(--color-text-primary)}.mod-confirm-stat.additions .stat-value{color:#22c55e}.mod-confirm-stat.removals .stat-value{color:#ef4444}.mod-confirm-stat.replacements .stat-value{color:#f59e0b}.mod-confirm-stat.keeps .stat-value{color:var(--color-text-muted)}.mod-confirm-checkbox{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;background:#ef44440f;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-lg);cursor:pointer;margin-top:16px}.mod-confirm-checkbox input[type=checkbox]{margin-top:2px;flex-shrink:0;width:16px;height:16px;accent-color:var(--color-primary)}.mod-confirm-checkbox label{font-size:13px;color:var(--color-text-secondary);line-height:1.5;cursor:pointer}.modification-wizard .modal-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-top:1px solid var(--color-border);gap:12px}.modification-wizard .modal-footer .btn-group{display:flex;gap:8px}.mod-loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--color-text-muted)}.mod-empty{text-align:center;padding:40px 20px;color:var(--color-text-muted);font-size:14px}.mod-readiness-block{display:flex;align-items:flex-start;gap:12px;padding:16px;margin-top:16px;background:#ef44440f;border:1px solid rgba(239,68,68,.25);border-radius:var(--radius-lg)}.mod-readiness-icon{font-size:22px;flex-shrink:0;margin-top:1px}.mod-readiness-content{flex:1;min-width:0}.mod-readiness-content strong{display:block;font-size:14px;color:#ef4444;margin-bottom:6px}.mod-readiness-issues{margin:0 0 10px 18px;padding:0;font-size:13px;color:var(--color-text-secondary);line-height:1.6}.mod-readiness-issues li{margin-bottom:2px}.mod-readiness-hint{font-size:13px;color:var(--color-text-secondary);margin:0}.mod-readiness-link{background:none;border:none;padding:0;color:var(--color-primary, #3b82f6);font-weight:600;font-size:13px;cursor:pointer;text-decoration:underline}.mod-readiness-link:hover{color:var(--color-primary-hover, #2563eb)}@media (max-width: 768px){.modal-content.modification-wizard-modal{max-width:100%;max-height:100vh;border-radius:0;height:100vh}.mod-confirm-summary{grid-template-columns:1fr 1fr}.mod-diff-item{flex-wrap:wrap}.mod-diff-desig{width:100%;order:3}}.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}.project-detail-page .header-left{display:flex;align-items:center;gap:24px}.back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;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}.project-detail-page .header-right{display:flex;align-items:center;gap:14px;flex-shrink:0}.project-detail-page .recalc-button{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;font-size:13px;font-weight:600;color:var(--color-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;flex-shrink:0}.project-detail-page .recalc-button:hover:not(:disabled){background:var(--color-bg-tertiary, rgba(45, 137, 152, .08));border-color:var(--color-primary)}.project-detail-page .recalc-button:disabled{cursor:default;opacity:.7}.project-detail-page .recalc-button svg{width:16px;height:16px}.project-detail-page .recalc-button.loading svg{animation:recalc-spin .8s linear infinite}@keyframes recalc-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.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}.status-badge.status-archived-flag{display:inline-flex!important;align-items:center;gap:5px;background:#f57f171f;color:var(--color-accent-warning)}.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}.archived-banner{display:flex;align-items:center;gap:14px;padding:12px 32px;background:#f57f1714;border-bottom:1px solid rgba(245,127,23,.3)}.archived-banner .archived-banner-icon{width:26px;height:26px;color:var(--color-accent-warning);flex-shrink:0}.archived-banner-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.archived-banner-text strong{font-size:14px;font-weight:600;color:var(--color-text-primary)}.archived-banner-text span{font-size:12.5px;color:var(--color-text-secondary);line-height:1.4}.archived-restore-btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;background:var(--color-accent-warning);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all var(--transition-fast)}.archived-restore-btn:hover:not(:disabled){background:#e65100;transform:translateY(-1px);box-shadow:var(--shadow-md)}.archived-restore-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.archived-banner{padding:10px 16px;flex-wrap:wrap}}.project-detail-page .error-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 24px;margin:12px 32px 0;background:#fff5f5;border:1px solid #feb2b2;border-radius:var(--radius-md);color:var(--color-error);font-size:14px;line-height:1.5;box-sizing:border-box}.project-detail-page .error-banner span{flex:1;padding:2px 0}.project-detail-page .error-banner button{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-error);cursor:pointer;font-size:20px;line-height:1}.project-detail-page .error-banner button:hover{background:#e74c3c1a}.stats-bar{--stats-bar-control-height: 28px;display:flex;flex-direction:row;align-items:center;gap:10px;padding:14px 32px;background:var(--color-bg);border-bottom:1px solid var(--color-border);min-width:0}.stats-bar-toggle{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--stats-bar-control-height);height:var(--stats-bar-control-height);padding:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.stats-bar-toggle svg{width:16px;height:16px;transition:transform var(--transition-fast)}.stats-bar-toggle-expanded{transform:rotate(180deg)}.stats-bar-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.stats-bar-stats{display:flex;gap:10px;overflow-x:auto;flex-wrap:nowrap;flex:1;min-width:0;scrollbar-width:none}.stats-bar-stats::-webkit-scrollbar{display:none}.stats-bar-summary{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;color:var(--color-text-secondary)}.stats-bar-summary .complete{color:var(--color-success)}.stats-bar-summary-sep{color:var(--color-text-muted)}.stats-bar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:nowrap;margin-left:auto;overflow-x:auto;scrollbar-width:none}.stats-bar-actions::-webkit-scrollbar{display:none}.stats-bar-actions .disabled-btn-wrapper{display:inline-flex;flex-shrink:0}.stats-bar-actions .btn-primary,.stats-bar-actions .btn-secondary,.stats-bar-actions .btn-success,.stats-bar-actions .btn-warning{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:var(--stats-bar-control-height);padding:0 10px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;white-space:nowrap;flex-shrink:0}.stats-bar-actions .btn-primary svg,.stats-bar-actions .btn-secondary svg,.stats-bar-actions .btn-success svg,.stats-bar-actions .btn-warning svg{width:14px;height:14px}.stats-bar-minimized{padding-top:10px;padding-bottom:10px}.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}.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}.btn-sm{height:30px;padding:0 10px;font-size:12px}.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{display:block;width:36px;height:36px;margin:0 auto;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 .bom-and-id{display:inline-block;margin-left:6px;padding:0 5px;font-size:10px;line-height:16px;border-radius:4px;background:var(--color-primary-alpha, rgba(99, 102, 241, .12));color:var(--color-primary, #6366f1);vertical-align:middle}.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)}.bom-table th.actions,.bom-table td.actions{width:1%;min-width:126px;white-space:nowrap;vertical-align:middle;text-align:right}.bom-table td.actions{height:100%;padding-top:6px;padding-bottom:6px;padding-right:12px;overflow:visible}.bom-table .actions-wrapper{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:4px;min-height:38px;box-sizing:border-box}.bom-alt-row td.actions{vertical-align:middle}.bom-act{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;box-sizing:border-box;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)}.bom-act svg{width:16px;height:16px;flex-shrink:0}.bom-act:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.bom-act:disabled{opacity:.45;cursor:not-allowed}.bom-act-link{color:var(--color-primary)}.bom-act-link:hover:not(:disabled){background:#2d89981a}.bom-act-alts{color:#5b6b73}.bom-act-alts.has-count{color:var(--color-primary);border-color:#2d899859}.bom-act-unlink,.bom-act-remove{color:var(--color-error)}.bom-act-unlink:hover:not(:disabled),.bom-act-remove:hover:not(:disabled){border-color:var(--color-error);background:#ef444414;color:var(--color-error)}.alt-badge{position:absolute;top:-5px;right:-5px;min-width:15px;height:15px;padding:0 4px;background:var(--color-primary);color:#fff;font-size:9px;font-weight:700;border-radius:8px;display:flex;align-items:center;justify-content:center;line-height:1}.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{position:relative;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;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:14px;height:14px}.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{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}.project-detail-page .header-left{width:100%;gap:12px}.project-detail-page .header-right{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:8px}.back-button{width:32px;height:32px}.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;gap:10px}.stats-bar-stats{flex-wrap:nowrap;overflow-x:auto;gap:12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.stats-bar-stats::-webkit-scrollbar{display:none}.stats-bar-summary{font-size:12px}.stats-bar-actions{-webkit-overflow-scrolling:touch}.stats-bar-actions .btn-primary,.stats-bar-actions .btn-secondary,.stats-bar-actions .btn-success,.stats-bar-actions .btn-warning{height:var(--stats-bar-control-height);padding:0 8px;font-size:11px}.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}.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}.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:3px;min-height:34px}.bom-table th.actions,.bom-table td.actions{min-width:114px}.bom-act{width:34px;height:34px}.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}.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}}.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}.modal-archive{max-width:480px}.archive-warning{display:flex;align-items:flex-start;gap:12px;padding:16px;background:#f57f171a;border-radius:var(--radius-md);margin-bottom:16px}.archive-warning .warning-icon{width:24px;height:24px;color:var(--color-accent-warning);flex-shrink:0}.archive-warning p{margin:0;font-size:15px;font-weight:500;color:var(--color-text-primary)}.archive-notice-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}.archive-notice-list li{font-size:12.5px;color:var(--color-text-secondary);line-height:1.5}.btn-archive-solid{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;background:var(--color-accent-warning);border:none;border-radius:var(--radius-md);color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.btn-archive-solid:hover:not(:disabled){background:#e65100;transform:translateY(-1px)}.btn-archive-solid: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}.settings-archive-section{border-color:#f57f174d}.settings-archive-section .section-title-archive,.settings-archive-section .section-title-archive .section-icon{color:var(--color-accent-warning)}.archive-zone{padding:16px 20px;border:1px solid rgba(245,127,23,.3);border-radius:var(--radius-md);background:#f57f1708}.archive-zone-item{display:flex;align-items:center;justify-content:space-between;gap:16px}.archive-zone-item strong{display:block;font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.archive-zone-item p{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.5;max-width:520px}.archive-zone-hint{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:5px 10px;background:#f57f171a;border-radius:var(--radius-md);font-size:12px;font-weight:500;color:var(--color-accent-warning)}.archive-zone-hint svg{flex-shrink:0}.archive-zone-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px}.archive-zone-btn svg{width:16px;height:16px}.btn-archive-outline{background:transparent;border:1px solid var(--color-accent-warning);color:var(--color-accent-warning);border-radius:var(--radius-md);padding:8px 16px;font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-archive-outline:hover:not(:disabled){background:var(--color-accent-warning);color:#fff}.btn-archive-outline:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.archive-zone-item{flex-direction:column;align-items:stretch}.archive-zone-btn{align-self:flex-start}}.settings-danger-section{border-color:#e74c3c40}.settings-danger-section .section-title-danger,.settings-danger-section .section-title-danger .section-icon{color:var(--color-error)}.danger-zone{padding:16px 20px;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-md);background:#e74c3c08}.danger-zone-item{display:flex;align-items:center;justify-content:space-between;gap:16px}.danger-zone-item strong{display:block;font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:4px}.danger-zone-item p{margin:0;font-size:13px;color:var(--color-text-secondary);line-height:1.5;max-width:520px}.danger-zone-delete-btn{flex-shrink:0}@media (max-width: 768px){.danger-zone-item{flex-direction:column;align-items:stretch}.danger-zone-delete-btn{align-self:flex-start}}.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:min(560px,calc(100vh - 280px));padding:48px 24px;background:var(--color-bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-sizing:border-box}.assembly-no-pcb-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;width:100%;max-width:420px;margin:0 auto}.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{box-sizing:border-box;width:min(100%,360px);max-width:360px;margin-inline:auto;align-self:center;padding:28px 24px}.pcb-drop-zone.inline .drop-hint{width:100%;align-items:center;text-align:center}.pcb-drop-zone.inline .drop-icon{width:40px;height:40px;margin:0 auto 8px;color:#10b981;opacity:.7;display:block}.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-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-search-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.pcb-bom-search-row .bom-search-box{flex:1;max-width:none}.pcb-bom-search-count{flex-shrink:0;font-size:12px;color:var(--color-text-muted);white-space:nowrap}.pcb-bom-empty-search{text-align:center;padding:24px 16px!important;color:var(--color-text-muted);font-size:13px}.assembly-side-tabs{display:flex;gap:4px;padding:6px 6px 0;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);flex-shrink:0}.assembly-side-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;border:1px solid var(--color-border);border-bottom:none;border-radius:6px 6px 0 0;background:var(--color-bg-tertiary, var(--color-bg-secondary));color:var(--color-text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease}.assembly-side-tab:hover{color:var(--color-text)}.assembly-side-tab.active{background:var(--color-bg-primary, var(--color-bg));color:var(--color-accent, var(--color-text));border-color:var(--color-accent, var(--color-border))}.assembly-side-tab .assembly-side-count{font-size:11px;font-weight:600;padding:1px 7px;border-radius:10px;background:var(--color-border);color:var(--color-text-muted)}.assembly-side-tab.active .assembly-side-count{background:var(--color-accent, var(--color-text-muted));color:#fff}.assembly-side-tabs.mobile{padding:4px;gap:4px;border-bottom:none}.assembly-side-tabs.mobile .assembly-side-tab{padding:6px 10px;border-radius:6px;border-bottom:1px solid var(--color-border);font-size:12px}.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}.location-value .mobile-location-dual{display:inline-flex;align-items:center;gap:4px}.desktop-alt-row{display:flex;align-items:flex-start;gap:6px;margin-top:4px;padding:4px 8px;background:#f59e0b14;border-radius:4px;border-left:2px solid var(--color-warning, #f59e0b)}.desktop-alt-row.primary-row{background:#6b728014;border-left-color:var(--color-text-muted)}.desktop-alt-badge{font-size:9px;font-weight:700;padding:1px 4px;border-radius:3px;background:var(--color-warning, #f59e0b);color:#000;flex-shrink:0;margin-top:1px}.desktop-alt-row.primary-row .desktop-alt-badge{background:var(--color-text-muted);color:var(--color-bg-primary)}.desktop-alt-info{display:flex;flex-direction:column;gap:1px;min-width:0}.desktop-alt-pn{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.desktop-alt-row.primary-row .desktop-alt-pn{text-decoration:line-through;opacity:.7}.desktop-alt-loc{font-size:10px;color:var(--color-warning, #f59e0b);font-weight:600}.desktop-alt-row.primary-row .desktop-alt-loc{color:var(--color-text-muted);text-decoration:line-through;opacity:.7;font-weight:500}.desktop-other-mpn{font-size:9px;color:var(--color-text-muted);opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100px}.desktop-other-mpn.primary-struck{text-decoration:line-through}.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-location-dual{display:inline-flex;align-items:center;gap:4px;max-width:100%;overflow:hidden}.mobile-location-dual .loc-take{color:var(--color-success, #22c55e);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.mobile-location-dual .loc-sep{color:var(--color-border);flex-shrink:0;font-size:9px}.mobile-location-dual .loc-empty{color:var(--color-text-muted);text-decoration:line-through;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.mobile-location-dual .loc-alt{color:var(--color-warning, #f59e0b);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;min-width:0}.mobile-primary-mpn{font-size:9px;color:var(--color-text-muted);opacity:.7;text-decoration:line-through;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.mobile-alt-mpn{font-size:9px;color:var(--color-warning, #f59e0b);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.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){.project-detail-page .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}.missing-table .to-order-input{width:64px;padding:4px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-weight:600;text-align:center;color:var(--color-primary);background:var(--color-bg);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.missing-table .to-order-input:hover{border-color:var(--color-primary)}.missing-table .to-order-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb26}.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}.history-status.modified{color:#8b5cf6}.history-lineage-badge{font-size:11px;padding:2px 8px;border-radius:999px;background:#8b5cf61a;color:#8b5cf6;font-weight:500;white-space:nowrap}.history-rework-btn{font-size:11px!important;padding:3px 10px!important;border-radius:6px!important;background:transparent;border:1px solid var(--color-primary, #3b82f6)!important;color:var(--color-primary, #3b82f6)!important;cursor:pointer;transition:all .15s;white-space:nowrap;margin-left:auto}.history-rework-btn:hover{background:var(--color-primary, #3b82f6)!important;color:#fff!important}.history-lineage-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;margin:0 12px 8px;background:#8b5cf60f;border:1px solid rgba(139,92,246,.2);border-radius:8px;font-size:13px;color:var(--color-text-secondary, #6b7280)}.history-lineage-banner .lineage-icon{font-size:16px;color:#8b5cf6;flex-shrink:0}.history-lineage-banner strong{color:var(--color-text-primary, #1f2937)}.history-status.rework{color:#8b5cf6}.history-lineage-badge.reworked-to{background:#ef44441a;color:#ef4444}.reworked-assembly-item{border-left:3px solid rgba(239,68,68,.4)!important;opacity:.85}.reworked-assembly-item:hover{background:#ef44440a}.reworked-assembly-item .history-assembly-header{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.reworked-label{text-decoration:line-through;opacity:.6}.reworked-target-link{font-size:12px;color:var(--color-text-secondary, #6b7280);margin-left:auto}.reworked-target-link .reworked-date{opacity:.7}.history-lineage-banner.rework-to{background:#ef44440f;border-color:#ef444433}.history-lineage-banner.rework-to .lineage-icon{color:#ef4444}.type-badge.rework-added{background:#22c55e1a;color:#16a34a;border:1px solid rgba(34,197,94,.3)}.type-badge.rework-removed{background:#ef44441a;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.type-badge.rework-skipped{background:#6b72801a;color:#6b7280;border:1px solid rgba(107,114,128,.3)}.rework-added-row td{background:#22c55e0a}.rework-removed-row td{background:#ef44440a}.mod-session-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#8b5cf60f;border:1px solid rgba(139,92,246,.2);border-radius:8px;margin-bottom:12px}.mod-session-banner .mod-badge{padding:3px 10px;border-radius:999px;background:#8b5cf626;color:#8b5cf6;font-weight:600;font-size:12px;white-space:nowrap}.mod-session-banner .mod-info{flex:1;font-size:13px;color:var(--color-text-secondary, #6b7280)}.mod-session-banner .mod-info strong{color:var(--color-text-primary, #1f2937)}.mod-phase-tabs{display:flex;gap:4px;margin-bottom:12px}.mod-phase-tab{flex:1;padding:8px 16px;border:1px solid var(--color-border, #e2e8f0);border-radius:8px;background:var(--color-surface, #f8fafc);cursor:pointer;text-align:center;font-size:13px;font-weight:500;transition:all .15s;color:var(--color-text-secondary)}.mod-phase-tab.active{background:var(--color-primary, #3b82f6);border-color:var(--color-primary, #3b82f6);color:#fff}.mod-phase-tab.addition.active{background:#22c55e;border-color:#22c55e}.mod-phase-tab.removal.active{background:#ef4444;border-color:#ef4444}.mod-phase-tab .phase-progress{font-size:11px;opacity:.8}.mod-diff-table{width:100%}.mod-diff-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--color-border, #e2e8f0);cursor:pointer;transition:background .1s}.mod-diff-row:hover{background:var(--color-bg-hover, rgba(0,0,0,.02))}.mod-diff-row.current{background:#3b82f60f;border-left:3px solid var(--color-primary, #3b82f6)}.mod-diff-row.completed{opacity:.5}.mod-diff-row .diff-action-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:14px;font-weight:700;flex-shrink:0}.mod-diff-row .diff-action-icon.add{background:#22c55e1f;color:#22c55e}.mod-diff-row .diff-action-icon.remove{background:#ef44441f;color:#ef4444}.mod-diff-row .diff-action-icon.replace_add,.mod-diff-row .diff-action-icon.replace_remove{background:#f59e0b1f;color:#f59e0b}.mod-diff-row .diff-mpn{font-weight:600;font-size:13px;min-width:100px}.mod-diff-row .diff-desig{font-family:monospace;font-size:11px;color:var(--color-text-muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mod-diff-row .diff-state{font-size:11px;padding:2px 8px;border-radius:999px;font-weight:500}.mod-diff-row .diff-state.pending{background:var(--color-surface);color:var(--color-text-muted)}.mod-diff-row .diff-state.completed{background:#22c55e1a;color:#22c55e}.mod-diff-row .diff-state.skipped{background:#6b72801a;color:#6b7280}.mod-complete-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;margin-top:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.mod-complete-bar .progress-text{font-size:13px;color:var(--color-text-secondary);flex:1}.status-in-rework{background:#a855f71f;color:#a855f7;border:1px solid rgba(168,85,247,.3)}.rework-bom-tab{padding:0}.rework-bom-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border)}.rework-bom-header h3{margin:0;font-size:16px}.rework-bom-subtitle{font-size:13px;color:var(--color-text-muted);font-weight:500}.rework-bom-table tr.rework-add{background:#22c55e0a}.rework-bom-table tr.rework-remove{background:#ef44440a}.rework-bom-table tr.rework-completed{opacity:.5}.rework-action-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.rework-action-badge.add,.rework-action-badge.replace_add{background:#22c55e1f;color:#22c55e}.rework-action-badge.remove,.rework-action-badge.replace_remove{background:#ef44441f;color:#ef4444}.rework-state-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500}.rework-state-badge.pending{background:var(--color-surface);color:var(--color-text-muted)}.rework-state-badge.completed{background:#22c55e1a;color:#22c55e}.rework-state-badge.skipped{background:#6b72801a;color:#6b7280}.pcb-bom-row.rework-add-row{border-left:3px solid #22c55e}.pcb-bom-row.rework-remove-row{border-left:3px solid #ef4444}.btn-assembly-action.btn-removed{background:#ef444414;color:#ef4444;border:1px solid rgba(239,68,68,.25)}.btn-assembly-action.btn-removed:hover{background:#ef444426}.btn-assembly-action.btn-removed.active{background:#ef444433;color:#ef4444;border-color:#ef4444}.pcb-project-create-wizard .inline-field-row{display:flex;gap:8px;align-items:center}.pcb-project-create-wizard .inline-field-row input{flex:1}.pcb-project-create-wizard .param-row input:first-child{flex:0 0 40%}.pcb-project-create-wizard .resolved-preview{margin:16px 0;padding:14px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-secondary, rgba(0, 0, 0, .03))}.pcb-project-create-wizard .resolved-label{font-size:12px;color:var(--color-text-muted);margin-bottom:4px}.pcb-project-create-wizard .resolved-value{font-size:18px;font-weight:600;word-break:break-all}.pcb-project-create-wizard .scheme-cards{display:flex;flex-direction:column;gap:8px}.pcb-project-create-wizard .scheme-card{text-align:left;padding:12px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);cursor:pointer;display:flex;flex-direction:column;gap:2px}.pcb-project-create-wizard .scheme-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.pcb-project-create-wizard .scheme-card strong{font-size:14px}.pcb-project-create-wizard .scheme-card span,.pcb-project-create-wizard .scheme-card em{font-size:12px;color:var(--color-text-muted);font-style:normal}.pcb-project-create-wizard .confirm-summary{display:flex;flex-direction:column;gap:10px}.pcb-project-create-wizard .confirm-summary>div{display:flex;justify-content:space-between;gap:16px;padding-bottom:8px;border-bottom:1px solid var(--color-border)}.pcb-project-create-wizard .confirm-summary span{color:var(--color-text-muted);font-size:13px}.pcb-project-create-wizard .confirm-summary strong{text-align:right;word-break:break-all}.pcb-project-create-wizard .wizard-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid var(--color-border);flex-shrink:0;margin-top:0}.pcb-project-create-wizard .wizard-actions-right{display:flex;gap:8px;align-items:center}.pcb-project-create-wizard .inline-field-row .action-btn,.pcb-project-create-wizard .form-group>.action-btn{height:34px;padding:0 12px;font-size:12.5px}.pcb-project-create-wizard .param-token{margin-left:6px;font-weight:400;font-size:12px;color:var(--color-text-muted, var(--color-text-secondary))}.pcb-new-version-dialog{max-width:440px;width:calc(100% - 32px)}.pcb-nv-lead{margin:0 0 16px;color:var(--color-text-secondary);font-size:14px;line-height:1.45}.pcb-nv-mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;color:var(--color-text-primary)}.pcb-nv-label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);margin-bottom:6px}.pcb-nv-stepper{display:flex;align-items:stretch;gap:6px}.pcb-nv-step{display:inline-flex;align-items:center;justify-content:center;width:40px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg-secondary);color:var(--color-text-primary);cursor:pointer}.pcb-nv-step:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.pcb-nv-step:disabled{opacity:.4;cursor:not-allowed}.pcb-nv-step svg{width:18px;height:18px}.pcb-nv-input{flex:1;min-width:0;text-align:center;font-family:JetBrains Mono,Fira Code,monospace;font-size:20px;font-weight:600;letter-spacing:.04em;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg);color:var(--color-text-primary)}.pcb-nv-input.invalid{border-color:var(--color-error)}.pcb-nv-hint{margin:8px 0 0;font-size:12px;color:var(--color-text-muted)}.pcb-nv-hint.error{color:var(--color-error)}.pcb-nv-hint.warn{color:var(--color-warning, #b45309)}.pcb-nv-check{display:flex;align-items:flex-start;gap:10px;margin-top:18px;font-size:13px;color:var(--color-text-primary);cursor:pointer}.pcb-nv-check input{margin-top:2px}.pcb-nv-check em{display:block;font-style:normal;color:var(--color-text-muted);font-size:12px;margin-top:2px}.nexar-reconnect-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.3125rem .625rem;border:1px solid currentColor;border-radius:5px;background:transparent;color:inherit;font:inherit;font-size:.75rem;font-weight:600;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s ease,opacity .15s ease}.nexar-reconnect-btn:hover:not(:disabled){background:#0000000f}.nexar-reconnect-btn:disabled{opacity:.6;cursor:not-allowed}.nexar-reconnect-btn svg{flex-shrink:0}.nexar-reconnect-err{margin-left:.5rem;font-size:.75rem;opacity:.8}@media (prefers-color-scheme: dark){.nexar-reconnect-btn:hover:not(:disabled){background:#ffffff14}}.ap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:ap-fadeIn .2s ease forwards}.ap-overlay.ap-closing{animation:ap-fadeOut .2s ease forwards}@keyframes ap-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes ap-fadeOut{0%{opacity:1}to{opacity:0}}.ap-modal{background:var(--color-bg, #fff);border-radius:var(--radius-xl, 12px);box-shadow:0 20px 60px #0003;width:900px;max-width:95vw;height:80vh;max-height:780px;min-height:420px;display:flex;flex-direction:column;overflow:hidden;animation:ap-slideIn .2s ease forwards}.ap-closing .ap-modal{animation:ap-slideOut .2s ease forwards}@keyframes ap-slideIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes ap-slideOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.95) translateY(10px)}}.ap-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--color-border, #e5e7eb);flex-shrink:0}.ap-header h2{margin:0;font-size:1.1rem;font-weight:600;color:var(--color-text-primary, #1e293b);display:flex;align-items:center;gap:.5rem}.ap-header h2 svg{color:var(--color-primary, #2d8998)}.ap-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;background:none;color:var(--color-text-muted, #94a3b8);cursor:pointer;transition:all .15s}.ap-close:hover{background:var(--color-bg-secondary, #f1f5f9);color:var(--color-text-primary, #1e293b)}.ap-close svg{width:18px;height:18px}.ap-search-bar{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-border-light, #f1f5f9);flex-shrink:0}.ap-search{display:flex;align-items:center;gap:.5rem;flex:1;padding:.5rem .75rem;border:1px solid var(--color-border, #e0e0e0);border-radius:8px;background:var(--color-bg, #fff);transition:border-color .15s,box-shadow .15s}.ap-search:focus-within{border-color:var(--color-primary, #2d8998);box-shadow:0 0 0 2px #2d89981a}.ap-search svg{color:var(--color-text-muted, #94a3b8);flex-shrink:0}.ap-search input{flex:1;border:none;outline:none;font-size:.8125rem;background:none;color:var(--color-text-primary, #1e293b);font-family:inherit}.ap-search input::placeholder{color:var(--color-text-muted, #94a3b8)}.ap-body{flex:1;overflow-y:auto;padding:1rem 1.25rem;min-height:0}.ap-loading,.ap-empty{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;color:var(--color-text-muted, #94a3b8);font-size:.875rem}.ap-error{margin:.75rem 0;padding:.625rem .875rem;background:#fee2e2;color:#991b1b;border-radius:6px;font-size:.8125rem;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.ap-error-msg{flex:1;min-width:0}@media (prefers-color-scheme: dark){.ap-error{background:#dc262626;color:#fca5a5}}.ap-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.875rem}.ap-card{display:flex;flex-direction:column;border:1px solid var(--color-border, #e5e7eb);border-radius:10px;overflow:hidden;cursor:pointer;transition:border-color .15s,box-shadow .15s,transform .12s;background:var(--color-bg, #fff)}.ap-card:hover{border-color:var(--color-primary, #2d8998);box-shadow:0 4px 16px #2d89981f;transform:translateY(-1px)}.ap-card-current{border-color:var(--color-primary, #2d8998);box-shadow:0 0 0 2px #2d899840}.ap-card-preview{position:relative;width:100%;height:140px;background:var(--color-bg-secondary, #f1f5f9);display:flex;align-items:center;justify-content:center;overflow:hidden}.ap-card-linked-badge{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:10px;font-size:.625rem;font-weight:700;letter-spacing:.02em;background:var(--color-primary, #2d8998);color:#fff}.ap-card-preview img{width:100%;height:100%;object-fit:cover}.ap-card-preview-placeholder{color:var(--color-text-muted, #94a3b8);opacity:.4}.ap-card-preview-placeholder svg{width:48px;height:48px}.ap-card-info{padding:.75rem;display:flex;flex-direction:column;gap:.375rem;flex:1}.ap-card-name{font-size:.8125rem;font-weight:600;color:var(--color-text-primary, #1e293b);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ap-card-desc{font-size:.6875rem;color:var(--color-text-muted, #94a3b8);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ap-card-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:auto;padding-top:.375rem}.ap-card-author{display:flex;align-items:center;gap:.375rem;font-size:.6875rem;color:var(--color-text-secondary, #6b7280)}.ap-card-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover}.ap-card-avatar-fallback{width:18px;height:18px;border-radius:50%;background:var(--color-primary, #2d8998);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.5rem;font-weight:700}.ap-card-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .4rem;border-radius:10px;font-size:.625rem;font-weight:600;background:#2d89981a;color:var(--color-primary, #2d8998);white-space:nowrap}.ap-card-date{font-size:.625rem;color:var(--color-text-muted, #94a3b8);margin-left:auto}.ap-footer{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1.25rem;border-top:1px solid var(--color-border, #e5e7eb);background:var(--color-bg-secondary, #f8fafc);flex-shrink:0}.ap-footer-info{font-size:.75rem;color:var(--color-text-secondary, #6b7280)}.ap-footer-revalidating{display:flex;align-items:center;gap:.375rem;font-size:.6875rem;color:var(--color-text-muted, #94a3b8)}.ap-spinner-sm{width:12px;height:12px;border-width:1.5px}.ap-inline{display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}.ap-inline .ap-header{padding:0 0 .5rem;border-bottom:none}.ap-inline .ap-header h2{font-size:1rem}.ap-inline .ap-search-bar{padding:.375rem 0;border-bottom:none}.ap-inline .ap-body{padding:.5rem 0}.ap-auth-required{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1.5rem;text-align:center}.ap-auth-icon{color:var(--color-text-muted, #94a3b8);opacity:.5;margin-bottom:.5rem}.ap-auth-required h3{margin:0;font-size:1rem;font-weight:600;color:var(--color-text-primary, #1e293b)}.ap-auth-required p{margin:0;font-size:.8125rem;color:var(--color-text-muted, #94a3b8);max-width:320px}.ap-auth-actions{display:flex;gap:.625rem;align-items:center;margin-top:.5rem}.ap-auth-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border:none;border-radius:6px;background:var(--color-primary, #2d8998);color:#fff;font-size:.8125rem;font-weight:600;font-family:inherit;cursor:pointer;text-decoration:none;transition:opacity .15s}.ap-auth-btn:hover{opacity:.85;color:#fff}.ap-auth-btn:disabled{opacity:.5;cursor:not-allowed}.ap-auth-manual-btn{padding:.5rem 1rem;border:1px solid var(--color-border, #e5e7eb);border-radius:6px;background:var(--color-bg, #fff);color:var(--color-text-secondary, #6b7280);font-size:.8125rem;font-family:inherit;cursor:pointer;transition:background .12s,color .12s}.ap-auth-manual-btn:hover{background:var(--color-bg-secondary, #f3f4f6);color:var(--color-text-primary, #1e293b)}.ap-manual-token{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:480px;margin-top:.5rem}.ap-manual-token textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--color-border, #e0e0e0);border-radius:6px;font-size:.75rem;font-family:JetBrains Mono,Fira Code,monospace;color:var(--color-text-primary, #1e293b);background:var(--color-bg, #fff);resize:vertical}.ap-manual-token textarea:focus{outline:none;border-color:var(--color-primary, #2d8998);box-shadow:0 0 0 2px #2d89981a}.ap-hidden{display:none!important}@keyframes ap-spin{to{transform:rotate(360deg)}}.ap-spinner{width:18px;height:18px;border:2px solid var(--color-border, #e5e7eb);border-top-color:var(--color-primary, #2d8998);border-radius:50%;animation:ap-spin .6s linear infinite}@media (max-width: 600px){.ap-grid{grid-template-columns:1fr}.ap-modal{width:98vw;height:90vh}}.pcb-projects-page{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.pcb-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);flex-shrink:0}.pcb-projects-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.pcb-projects-page .header-right{display:flex;align-items:center;gap:16px;flex-shrink:0}.pcb-projects-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.pcb-projects-page .back-button:hover{background:var(--color-bg-secondary);color:var(--color-primary);border-color:var(--color-primary)}.pcb-projects-page .back-button svg{width:16px;height:16px}.pcb-projects-page .page-title{min-width:0}.pcb-projects-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.pcb-projects-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.pcbv-main{flex:1 1 0;min-height:0;display:flex;flex-direction:column;padding:20px 32px 24px;max-width:1500px;width:100%;margin:0 auto;box-sizing:border-box}.pcbv-container{display:flex;flex-direction:column;background:var(--color-bg);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);overflow:hidden;flex:1 1 0;min-height:0}.pcbv-toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);gap:16px;flex-shrink:0;flex-wrap:wrap}.pcbv-toolbar-left{display:flex;align-items:center;gap:12px;flex:1;min-width:200px}.pcbv-toolbar-right{display:flex;align-items:center;gap:12px}.pcbv-toolbar-count{font-size:13px;color:var(--color-text-muted);white-space:nowrap}.pcbv-search-box{position:relative;flex:1;max-width:400px}.pcbv-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.pcbv-search-input{width:100%;padding:7px 12px 7px 38px;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast)}.pcbv-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.pcbv-search-input::placeholder{color:var(--color-text-muted)}.pcbv-fold-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-width:28px;min-height:28px;flex-shrink:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;padding:0;transition:all var(--transition-fast)}.pcbv-fold-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#2d89980f}.pcbv-fold-btn:disabled{opacity:.5;cursor:default}.pcbv-spin{animation:pcbv-spin-anim .8s linear infinite}@keyframes pcbv-spin-anim{to{transform:rotate(360deg)}}.pcbv-create-btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 16px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.pcbv-create-btn:hover{background:var(--color-primary-dark)}.pcbv-draft-dot{width:8px;height:8px;border-radius:50%;background:#f5b041;box-shadow:0 0 0 3px #f5b0414d;flex-shrink:0}.pcbv-error-banner{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#e74c3c14;border:1px solid rgba(231,76,60,.18);border-radius:var(--radius-md);color:var(--color-error);font-size:13px;margin:8px 16px;flex-shrink:0}.pcbv-wrapper{flex:1 1 0;overflow:auto;position:relative;min-height:0;scrollbar-gutter:stable}.pcbv-table{width:100%;border-collapse:collapse;font-size:13px}.pcbv-table thead{position:sticky;top:0;z-index:2;background:var(--color-bg-secondary)}.pcbv-table th{padding:0;text-align:left;border-bottom:2px solid var(--color-border);font-weight:600;color:var(--color-text-secondary);font-size:12px;text-transform:uppercase;letter-spacing:.3px}.pcbv-th-content{padding:10px 16px}.pcbv-header-label{font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.3px;font-size:12px;display:inline-flex;align-items:center;gap:4px}.pcbv-table tbody tr{transition:background var(--transition-fast)}.pcbv-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}.pcbv-table td{padding:10px 16px;color:var(--color-text-primary);vertical-align:middle;max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}th.pcbv-actions-col,td.pcbv-actions-col{width:44px;min-width:44px;text-align:center;overflow:visible}.pcbv-group-header{cursor:pointer;-webkit-user-select:none;user-select:none}.pcbv-group-header td{background:#2d89980d;border-bottom:1px solid rgba(45,137,152,.12);padding:0;max-width:none;overflow:visible}.pcbv-group-header:hover td{background:#2d899817}.pcbv-group-header-content{display:flex;align-items:center;gap:8px;padding:7px 14px;min-width:0}.pcbv-group-chevron{transition:transform .15s ease;flex-shrink:0;color:var(--color-text-muted)}.pcbv-group-chevron-open{transform:rotate(90deg)}.pcbv-group-name{font-weight:600;font-size:13px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcbv-num-chip{font-size:10px;font-weight:600;font-family:SF Mono,Fira Code,Cascadia Code,monospace;color:var(--color-primary);background:#2d89981a;border-radius:8px;padding:1px 6px;line-height:1.4;flex-shrink:0}.pcbv-group-count{font-size:11px;color:var(--color-text-muted);margin-left:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcbv-a365-thumb{width:28px;height:28px;padding:2px;box-sizing:border-box;border-radius:4px;object-fit:contain;flex-shrink:0;background:var(--color-bg-secondary, #f1f5f9);border:1px solid var(--color-border)}.pcbv-a365-icon-link{display:inline-flex;align-items:center;flex-shrink:0;line-height:0;opacity:.9;transition:opacity var(--transition-fast)}a.pcbv-a365-icon-link:hover{opacity:1}.pcbv-a365-icon{width:16px;height:16px;display:block}.pcbv-group-actions{display:inline-flex;align-items:center;gap:6px;margin-left:auto;flex-shrink:0;opacity:0;transition:opacity var(--transition-fast)}.pcbv-group-header:hover .pcbv-group-actions{opacity:1}.pcbv-group-action-btn{display:inline-flex;align-items:center;gap:5px;margin-left:0;height:24px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;flex-shrink:0;opacity:1;transition:all var(--transition-fast)}.pcbv-group-header:hover .pcbv-group-action-btn{opacity:1}.pcbv-group-action-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#2d89980f}.pcbv-group-action-danger:hover:not(:disabled){border-color:#dc2626;color:#dc2626;background:#dc26260f}.pcbv-group-action-btn:disabled{opacity:1;color:var(--color-text-muted);cursor:default}.pcbv-data-row{cursor:pointer}.pcbv-data-row td{background:#2d899804}.pcbv-data-row:hover td{background:#2d89980d}.pcbv-data-row td:first-child{padding-left:36px}.pcbv-mono{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;letter-spacing:-.01em}.pcbv-version-cell{display:inline-flex;align-items:center;gap:8px}.pcbv-version-str{font-weight:600}.pcbv-latest-badge{display:inline-flex;align-items:center;padding:1px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:20px;background:#22c55e1a;color:#15803d;border:1px solid rgba(34,197,94,.2);line-height:1.4;flex-shrink:0}.pcbv-status-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.pcbv-status-good{background:#22c55e1f;color:#15803d}.pcbv-status-info{background:#3b82f61f;color:#1d4ed8}.pcbv-name-cell{display:flex;align-items:center;gap:6px;min-width:0}.pcbv-full-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcbv-date{font-size:12px;letter-spacing:.01em;color:var(--color-text-secondary)}.pcbv-copy-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid transparent;border-radius:4px;padding:2px;cursor:pointer;color:var(--color-text-muted);opacity:0;transition:opacity .15s,color .15s,border-color .15s;flex-shrink:0}.pcbv-data-row:hover .pcbv-copy-btn{opacity:1}.pcbv-copy-btn:hover{color:var(--color-primary);border-color:#2d89984d;background:#2d89980f}.pcbv-copy-done{opacity:1!important;color:#16a34a}.pcbv-open-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--color-text-muted);cursor:pointer;padding:0;opacity:0;transition:all .15s}.pcbv-data-row:hover .pcbv-open-btn{opacity:1}.pcbv-open-btn:hover{background:#2d89981a;color:var(--color-primary)}.pcbv-table-empty{text-align:center;padding:48px 24px!important}.pcbv-table-empty-content{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--color-text-muted)}.pcbv-table-empty-content svg{opacity:.3}.pcbv-table-empty-content p{font-size:14px;margin:0}.pcbv-table-empty-content .pcbv-create-btn{margin-top:4px}.pcbv-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffb3;display:flex;align-items:center;justify-content:center;z-index:3}@media (prefers-color-scheme: dark){.pcbv-loading-overlay{background:#0006}}.pcbv-spinner{width:36px;height:36px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:pcbv-spin-anim .9s linear infinite}.pcbv-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;flex-shrink:0}.pcbv-pagination-info{font-size:13px;color:var(--color-text-secondary)}.pcbv-pagination-controls{display:flex;align-items:center;gap:16px}.pcbv-page-size-selector{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary)}.pcbv-page-size-selector select{padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);cursor:pointer}.pcbv-page-navigation{display:flex;align-items:center;gap:4px}.pcbv-page-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);cursor:pointer;color:var(--color-text-secondary);transition:all var(--transition-fast);padding:0}.pcbv-page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#2d89980a}.pcbv-page-btn:disabled{opacity:.35;cursor:not-allowed}.pcbv-page-info{font-size:13px;color:var(--color-text-secondary);padding:0 8px;white-space:nowrap}.pcb-projects-page.mobile .page-header{padding:10px 16px;height:auto;min-height:64px}.pcb-projects-page.mobile .page-title h1{font-size:20px}.pcb-projects-page.mobile .page-title p{font-size:12px}.pcb-projects-page.mobile .pcbv-main{padding:12px}.pcb-projects-page.mobile .pcbv-toolbar{padding:10px 12px}.pcb-projects-page.mobile .pcbv-search-box{max-width:100%}.pcb-projects-page.mobile .pcbv-table{min-width:720px}.pcb-projects-page.mobile .pcbv-group-actions,.pcb-projects-page.mobile .pcbv-group-action-btn,.pcb-projects-page.mobile .pcbv-copy-btn,.pcb-projects-page.mobile .pcbv-open-btn{opacity:1}.pcb-projects-page.mobile .pcbv-pagination{justify-content:center}.bom-reeval-overlay{z-index:1200;overscroll-behavior:none;touch-action:none}.dialog.bom-reeval-dialog{width:min(960px,96vw);max-height:min(88vh,820px);display:flex;flex-direction:column;background:var(--color-bg, #fff);border-radius:var(--radius-lg, 10px);box-shadow:0 20px 50px #00000047;overflow:hidden}.bom-reeval-dialog .dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.bom-reeval-dialog .dialog-header h3{margin:0;font-size:17px;font-weight:650;color:var(--color-text-primary)}.bom-reeval-dialog .dialog-close{background:none;border:none;padding:4px;cursor:pointer;color:var(--color-text-muted);border-radius:6px;display:inline-flex}.bom-reeval-dialog .dialog-close:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.bom-reeval-dialog .dialog-close:disabled{opacity:.5;cursor:not-allowed}.bom-reeval-dialog .dialog-body{padding:14px 20px 8px;overflow:auto;flex:1;min-height:0}.bom-reeval-dialog .dialog-hint{margin:0 0 12px;font-size:13.5px;color:var(--color-text-secondary);line-height:1.45}.bom-reeval-empty{padding:28px 16px;text-align:center;color:var(--color-text-muted);font-size:14px;background:var(--color-bg-secondary);border-radius:var(--radius-md)}.bom-reeval-empty.small{padding:14px;font-size:13px}.bom-reeval-error{padding:14px 16px;color:var(--color-error);background:#ef444414;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);font-size:13.5px}.bom-reeval-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.bom-reeval-count{font-size:12.5px;font-weight:600;color:var(--color-text-secondary)}.bom-reeval-sections{display:flex;flex-direction:column;gap:16px}.bom-reeval-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:0 0 8px;font-size:13.5px;font-weight:650;color:var(--color-text-primary)}.bom-reeval-section-meta{font-size:12px;font-weight:500;color:var(--color-text-muted)}.bom-reeval-table-shell{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:#fff}.bom-reeval-table-head{background:#f3f4f6;border-bottom:1px solid var(--color-border)}.bom-reeval-table-wrap{overflow:auto;max-height:420px;background:#fff}.bom-reeval-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12.5px}.bom-reeval-table th,.bom-reeval-table td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--color-border);vertical-align:top}.bom-reeval-table-head th{background:#f3f4f6;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);font-weight:650;white-space:nowrap;border-bottom:none}.bom-reeval-section-shared .bom-reeval-section-title{color:var(--color-primary)}.bom-reeval-table.has-line-des .col-line{width:44px}.bom-reeval-table.has-line-des .col-des{width:16%}.bom-reeval-table .col-part{width:22%}.bom-reeval-table.has-variants .col-variants{width:18%}.bom-reeval-table .col-field{width:14%}.bom-reeval-table .col-old,.bom-reeval-table .col-new{width:16%}.bom-reeval-table .col-variants{font-size:11.5px;color:var(--color-text-secondary);word-break:break-word;line-height:1.35}.bom-reeval-table tbody tr:last-child td{border-bottom:none}.bom-reeval-table .col-line{text-align:right;color:var(--color-text-muted);white-space:nowrap}.bom-reeval-table .col-des{word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;color:var(--color-text-secondary)}.bom-reeval-scope{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);margin-bottom:2px}.bom-reeval-part{display:block;font-size:12px;font-weight:600;color:var(--color-text-primary);word-break:break-word;line-height:1.3}.bom-reeval-table .col-field{white-space:nowrap;font-weight:550;color:var(--color-text-primary)}.bom-reeval-table .col-old,.bom-reeval-table .col-new{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-reeval-table .col-old{color:var(--color-text-secondary)}.bom-reeval-table .col-new{color:#1e8449;font-weight:600}.bom-reeval-dialog .dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--color-border);flex-shrink:0}.bom-reeval-dialog .dialog-btn{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);border-radius:var(--radius-md);padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer}.bom-reeval-dialog .dialog-btn:disabled{opacity:.55;cursor:not-allowed}.bom-reeval-dialog .dialog-btn.secondary:hover:not(:disabled){background:var(--color-bg-secondary)}.bom-reeval-dialog .dialog-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.bom-reeval-dialog .dialog-btn.primary:hover:not(:disabled){filter:brightness(1.05)}.sibling-match-overlay{z-index:1200;overscroll-behavior:none;touch-action:none}.sibling-match-overlay.sibling-match-overlay-nested{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.dialog.sibling-match-dialog{width:min(1040px,96vw);max-height:min(88vh,860px);display:flex;flex-direction:column;background:var(--color-bg, #fff);border-radius:var(--radius-lg, 10px);box-shadow:0 20px 50px #00000047;overflow:hidden}.sibling-match-dialog .dialog-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.sibling-match-dialog .dialog-header h3{margin:0;font-size:17px;font-weight:650;color:var(--color-text-primary)}.sibling-match-dialog .dialog-close{background:none;border:none;padding:4px;cursor:pointer;color:var(--color-text-muted);border-radius:6px;display:inline-flex}.sibling-match-dialog .dialog-close:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.sibling-match-dialog .dialog-close:disabled{opacity:.5;cursor:not-allowed}.sibling-match-dialog .dialog-body{padding:14px 20px 8px;overflow:auto;flex:1;min-height:0}.sibling-match-dialog .dialog-hint{margin:0 0 12px;font-size:13.5px;color:var(--color-text-secondary);line-height:1.45}.sibling-match-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.sibling-match-count{font-size:13px;color:var(--color-text-secondary);font-weight:550}.sibling-match-toolbar-actions{display:flex;gap:8px}.sibling-match-link-btn{background:none;border:none;padding:0;font-size:12.5px;font-weight:600;color:var(--color-primary, #2563eb);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.sibling-match-link-btn:disabled{opacity:.45;cursor:not-allowed}.sibling-match-table-wrapper{max-height:min(42vh,420px);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px)}.sibling-match-table{width:100%;border-collapse:collapse;font-size:13px}.sibling-match-table th,.sibling-match-table td{padding:8px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border)}.sibling-match-table thead th{position:sticky;top:0;background:var(--color-bg-secondary, #f6f7f9);font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted);z-index:1}.sibling-match-check-col{width:36px;text-align:center!important}.sibling-match-row-off{opacity:.55}.sibling-match-part{display:block;font-weight:600;color:var(--color-text-primary);word-break:break-word}.sibling-match-meta{display:block;margin-top:2px;font-size:12px;color:var(--color-text-secondary);word-break:break-word;line-height:1.35}.sibling-match-warn{display:inline-block;margin-top:4px;font-size:11px;font-weight:650;color:#b45309;background:#fff7ed;border-radius:4px;padding:1px 6px}.sibling-match-variants{font-size:12.5px;color:var(--color-text-secondary);word-break:break-word}.sibling-match-actions{white-space:nowrap;width:72px}.sibling-match-select{width:100%;max-width:280px;font-size:12.5px;padding:4px 6px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg);color:var(--color-text-primary)}.sibling-match-picker{margin-top:14px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg-secondary, #f6f7f9)}.sibling-match-picker-header{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:8px;font-size:13px}.sibling-match-search{width:100%;box-sizing:border-box;padding:8px 10px;border:1px solid var(--color-border);border-radius:6px;font-size:13.5px;background:var(--color-bg, #fff);color:var(--color-text-primary)}.sibling-match-search-results{margin-top:8px;max-height:180px;overflow:auto;display:flex;flex-direction:column;gap:4px}.sibling-match-search-hint{padding:10px;font-size:13px;color:var(--color-text-muted);text-align:center}.sibling-match-search-item{text-align:left;border:1px solid transparent;background:var(--color-bg, #fff);border-radius:6px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.sibling-match-search-item:hover:not(:disabled){border-color:var(--color-primary, #2563eb)}.sibling-match-search-item:disabled{opacity:.5;cursor:not-allowed}.sibling-match-dialog .dialog-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px 16px;border-top:1px solid var(--color-border);flex-shrink:0}.sibling-match-dialog .dialog-btn{border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);border-radius:var(--radius-md);padding:8px 14px;font-size:13.5px;font-weight:600;cursor:pointer}.sibling-match-dialog .dialog-btn:disabled{opacity:.5;cursor:not-allowed}.sibling-match-dialog .dialog-btn.primary{background:var(--color-primary, #2563eb);border-color:var(--color-primary, #2563eb);color:#fff}.sibling-match-dialog .dialog-btn.secondary:hover:not(:disabled){background:var(--color-bg-secondary)}.cparams-wrap{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:visible}.cparams-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px;table-layout:fixed}.cparams-table th,.cparams-table td{text-align:left;padding:2px 8px;border-bottom:1px solid var(--color-border);vertical-align:middle}.cparams-table th{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-bg-secondary);white-space:nowrap;padding:3px 8px;line-height:1.3}.cparams-table thead th:first-child{border-top-left-radius:calc(var(--radius-md) - 1px)}.cparams-table thead th:last-child{border-top-right-radius:calc(var(--radius-md) - 1px)}.cparams-table tbody tr:last-child td{border-bottom:none}.cparams-table tbody tr:last-child td:first-child{border-bottom-left-radius:calc(var(--radius-md) - 1px)}.cparams-table tbody tr:last-child td:last-child{border-bottom-right-radius:calc(var(--radius-md) - 1px)}.cparams-table tbody tr:hover{background:var(--color-bg-secondary)}.cparams-table .col-name{width:46%}.cparams-table .col-value{width:auto}.cparams-table .col-actions{width:28px;padding-left:0;padding-right:4px;text-align:center}.cparams-table.has-extra .col-actions,.cparams-table.has-reorder .col-actions{width:auto;min-width:28px;text-align:right;white-space:nowrap}.cparams-row-extra{display:inline-flex;align-items:center;margin-right:2px;vertical-align:middle}.cparams-table.has-extra .col-actions .pshare-row{vertical-align:middle}.cparams-table .mono{font-family:SF Mono,Fira Code,Cascadia Code,ui-monospace,monospace;font-size:11.5px;font-weight:600;word-break:break-all}.cparams-table td.col-value{color:var(--color-text-secondary);word-break:break-word}.cparams-table tbody tr.pinned-row td{padding:2px 8px;background:var(--color-bg-secondary);color:var(--color-text-secondary)}.cparams-badge{display:inline-block;margin-left:6px;padding:0 5px;border-radius:3px;background:#2d89981f;color:var(--color-primary);font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:15px;vertical-align:1px}.cparams-badge.system{background:#64748b24;color:#475569}.cparams-table.editable td{padding:0 4px 0 0}.cparams-table.editable th{padding:3px 8px}.cparams-table.editable .col-name{padding-left:4px}.cparams-input{display:block;width:100%;height:26px;margin:0;padding:0 8px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--color-text-primary);font-size:12px;line-height:24px}.cparams-input.name{font-family:SF Mono,Fira Code,Cascadia Code,ui-monospace,monospace;font-size:11.5px;font-weight:600}.cparams-input:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg);box-shadow:0 0 0 2px #2d89981f}.cparams-input::placeholder{color:var(--color-text-muted);font-weight:400;opacity:.75}.cparams-name-wrap{position:relative;display:flex;align-items:center}.cparams-name-wrap .cparams-input{position:relative;z-index:1;background:transparent}.cparams-ghost{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-family:SF Mono,Fira Code,Cascadia Code,ui-monospace,monospace;font-size:11.5px;font-weight:600;color:var(--color-text-muted);opacity:.5;pointer-events:none;white-space:pre;overflow:hidden;max-width:calc(100% - 16px);z-index:0}.cparams-ghost-typed{color:transparent}.cparams-table tbody tr.draft-row{background:#2d899808}.cparams-table tbody tr.draft-row:hover{background:#2d89980f}.cparams-remove{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:3px;background:transparent;color:var(--color-text-muted);cursor:pointer;opacity:.55}.cparams-remove svg{width:12px;height:12px}.cparams-table tbody tr:hover .cparams-remove{opacity:1}.cparams-remove:hover:not(:disabled){background:#c0392b1a;color:#c0392b}.cparams-remove:disabled{opacity:.35;cursor:default}.cparams-move{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;margin-right:1px;vertical-align:middle}.cparams-move-btn{display:inline-flex;align-items:center;justify-content:center;width:16px;height:13px;padding:0;border:none;border-radius:2px;background:transparent;color:var(--color-text-muted);cursor:pointer;opacity:.55}.cparams-move-btn svg{width:11px;height:11px}.cparams-table tbody tr:hover .cparams-move-btn{opacity:1}.cparams-move-btn:hover:not(:disabled){background:#2d89981f;color:var(--color-primary)}.cparams-move-btn:disabled{opacity:.28;cursor:default}.cparams-value-combo{position:relative;width:100%}.cparams-value-combo.open{z-index:20}.cparams-value-suggestions{position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:30;margin:0;padding:3px;list-style:none;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);max-height:180px;overflow-y:auto}.cparams-value-suggestions li{padding:4px 8px;border-radius:3px;font-size:12px;color:var(--color-text-primary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cparams-value-suggestions li.highlighted{background:#2d89981f;color:var(--color-primary)}.cparams-formatted{display:flex;align-items:center;width:100%;height:26px;margin:0;padding:0 8px;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--color-text-primary);font-size:12px;line-height:24px;text-align:left;cursor:pointer;font-family:inherit;gap:0;overflow:hidden}.cparams-formatted:hover:not(:disabled),.cparams-formatted:focus-visible{outline:none;border-color:var(--color-primary);background:var(--color-bg);box-shadow:0 0 0 2px #2d89981f}.cparams-formatted:disabled{cursor:default;opacity:.7}.cparams-formatted-first{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cparams-formatted-more{flex-shrink:0;color:var(--color-text-muted)}.cparams-table:not(.editable) .cparams-formatted,.cparams-table .pinned-row .cparams-formatted{height:22px;padding:0;line-height:20px}.cparams-formatted-modal{max-width:640px}.cparams-formatted-body{min-height:0;padding:16px 20px}.cparams-formatted-textarea{display:block;width:100%;min-height:280px;margin:0;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg);color:var(--color-text-primary);font-size:13.5px;line-height:1.45;font-family:inherit;white-space:pre-wrap;-moz-tab-size:4;tab-size:4;resize:vertical;box-sizing:border-box}.cparams-formatted-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.cparams-formatted-textarea[readonly]{background:var(--color-bg-secondary);color:var(--color-text-primary)}@keyframes prodmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes prodmSlideUp{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes prodmSpin{to{transform:rotate(360deg)}}.prodm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f17208c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1300;padding:24px;animation:prodmFadeIn .15s ease}.prodm-modal{background:var(--color-bg);border-radius:var(--radius-xl, 12px);box-shadow:0 24px 60px #00000047;width:100%;max-width:720px;max-height:86vh;display:flex;flex-direction:column;overflow:hidden;animation:prodmSlideUp .2s ease}.prodm-modal.prodm-wide{max-width:820px}.prodm-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0}.prodm-header-text{display:flex;align-items:flex-start;gap:12px;min-width:0}.prodm-header-icon{flex-shrink:0;width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#2d89981a;color:var(--color-primary)}.prodm-header h2{margin:0;font-size:17px;font-weight:600;color:var(--color-text-primary);line-height:1.3}.prodm-subtitle{margin:2px 0 0;font-size:12.5px;color:var(--color-text-muted);line-height:1.4}.prodm-close{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:30px;height:30px;background:none;border:none;border-radius:var(--radius-sm, 6px);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast, .15s ease)}.prodm-close:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.prodm-close:disabled{opacity:.4;cursor:not-allowed}.prodm-toolbar{display:flex;align-items:center;gap:10px;padding:12px 20px;border-bottom:1px solid var(--color-border);flex-shrink:0;flex-wrap:wrap}.prodm-search{flex:1;min-width:220px;display:flex;align-items:center;gap:8px;padding:7px 11px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);color:var(--color-text-muted)}.prodm-search input{flex:1;min-width:0;border:none;background:none;outline:none;font-size:13.5px;color:var(--color-text-primary)}.prodm-filter-toggle{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg);transition:all var(--transition-fast, .15s ease)}.prodm-filter-toggle input{accent-color:var(--color-primary);margin:0}.prodm-filter-toggle.active{border-color:var(--color-primary);color:var(--color-primary);background:#2d899814}.prodm-body{flex:1;overflow-y:auto;padding:10px 14px 14px;min-height:220px}.prodm-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:200px;color:var(--color-text-muted);font-size:13px;text-align:center}.prodm-spinner{width:22px;height:22px;border:2.5px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:prodmSpin .7s linear infinite}.prodm-error{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 20px 0;padding:9px 12px;background:#e74c3c14;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-md, 8px);color:var(--color-error);font-size:12.5px}.prodm-error button{background:none;border:none;color:inherit;font-size:15px;cursor:pointer;line-height:1}.prodm-part-row{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--radius-md, 8px);border:1px solid transparent;transition:background var(--transition-fast, .15s ease)}.prodm-part-row:hover{background:var(--color-bg-secondary)}.prodm-part-thumb{flex-shrink:0;width:40px;height:40px;border-radius:var(--radius-sm, 6px);border:1px solid var(--color-border);background:var(--color-bg-secondary);object-fit:contain;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);overflow:hidden}.prodm-part-thumb img{width:100%;height:100%;object-fit:contain}.prodm-part-main{flex:1;min-width:0}.prodm-part-title{display:flex;align-items:center;gap:8px;min-width:0}.prodm-part-mpn{font-weight:600;font-size:13.5px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodm-part-type{flex-shrink:0;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:999px;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary)}.prodm-part-type.mechanical{background:#a855f71a;border-color:#a855f74d;color:#9333ea}.prodm-part-sub{margin-top:2px;font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodm-part-stock{flex-shrink:0;font-size:12px;color:var(--color-text-secondary);text-align:right;min-width:64px}.prodm-part-qty{width:64px;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);font-size:13px;text-align:center;background:var(--color-bg);color:var(--color-text-primary)}.prodm-add-btn{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:7px 13px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md, 8px);font-size:12.5px;font-weight:600;cursor:pointer;transition:background var(--transition-fast, .15s ease)}.prodm-add-btn:hover:not(:disabled){background:var(--color-primary-dark)}.prodm-add-btn:disabled{opacity:.55;cursor:not-allowed}.prodm-added-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#1e8449;padding:6px 10px}.prodm-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 20px;border-top:1px solid var(--color-border);flex-shrink:0;font-size:12.5px;color:var(--color-text-muted)}.prodm-footer-buttons{display:flex;gap:8px}.prodm-page-btn{padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg);color:var(--color-text-secondary);font-size:12.5px;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.prodm-page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.prodm-page-btn:disabled{opacity:.45;cursor:not-allowed}.prodm-modal.prodm-table-modal{max-width:920px}.prodm-locked-note{margin:10px 20px;padding:9px 12px;background:#f39c121a;border:1px solid rgba(243,156,18,.3);border-radius:var(--radius-md, 8px);color:#b9770e;font-size:12.5px;line-height:1.45}.prodm-picker-wrapper,.prodm-picker-wrapper .prodm-placeholder{min-height:300px}.prodm-linked-badge{display:inline-flex;align-items:center;padding:1px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:20px;background:#2d89981a;color:var(--color-primary);border:1px solid rgba(45,137,152,.25);line-height:1.4;flex-shrink:0}.prodm-variant-tr>td.prodm-variant-td{padding:4px 16px 10px 36px;background:#2d899805;max-width:none;overflow:visible;white-space:normal}.prodm-variant-list{display:flex;flex-direction:column;gap:4px}.prodm-variant-row{display:flex;align-items:center;gap:10px;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg);cursor:pointer;text-align:left;font-family:inherit;font-size:12.5px;color:var(--color-text-primary);transition:border-color var(--transition-fast, .15s),background var(--transition-fast, .15s)}.prodm-variant-row:hover:not(:disabled){border-color:var(--color-primary);background:#2d89980d}.prodm-variant-row:disabled{opacity:.55;cursor:not-allowed}.prodm-variant-name{font-weight:600;flex-shrink:0}.prodm-variant-info{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-muted);font-size:11.5px}.prodm-variant-pick{flex-shrink:0;display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-primary);opacity:0;transition:opacity var(--transition-fast, .15s)}.prodm-variant-row:hover .prodm-variant-pick{opacity:1}.prodm-variant-note{padding:8px 10px;font-size:12px;color:var(--color-text-muted)}.prodm-form{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.prodm-field{display:flex;flex-direction:column;gap:5px}.prodm-field label{font-size:12.5px;font-weight:600;color:var(--color-text-secondary)}.prodm-field label .optional{font-weight:400;color:var(--color-text-muted)}.prodm-field input,.prodm-field select,.prodm-field textarea{padding:8px 11px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);font-size:13.5px;background:var(--color-bg);color:var(--color-text-primary);font-family:inherit}.prodm-field input:focus,.prodm-field select:focus,.prodm-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.prodm-field-hint{font-size:11.5px;color:var(--color-text-muted);line-height:1.4}.prodm-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.prodm-group-mode{display:flex;gap:8px;flex-wrap:wrap}.prodm-group-mode-btn{flex:1;min-width:140px;display:flex;flex-direction:column;gap:3px;align-items:flex-start;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg);cursor:pointer;text-align:left;transition:all var(--transition-fast, .15s ease)}.prodm-group-mode-btn:hover{border-color:var(--color-primary)}.prodm-group-mode-btn.active{border-color:var(--color-primary);background:#2d899814}.prodm-group-mode-title{font-size:13px;font-weight:600;color:var(--color-text-primary)}.prodm-group-mode-desc{font-size:11.5px;color:var(--color-text-muted);line-height:1.35}.prodm-wizard-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:14px 20px;border-top:1px solid var(--color-border);flex-shrink:0}.prodm-btn{padding:8px 16px;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg);color:var(--color-text-secondary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast, .15s ease)}.prodm-btn:hover:not(:disabled){background:var(--color-bg-secondary);color:var(--color-text-primary)}.prodm-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:600}.prodm-btn.primary:hover:not(:disabled){background:var(--color-primary-dark)}.prodm-btn:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 640px){.prodm-overlay{padding:10px}.prodm-grid-2{grid-template-columns:1fr}.prodm-part-stock{display:none}}.pcb-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%)}.pcb-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-shrink:0;gap:16px}.pcb-detail-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.pcb-detail-page .header-right,.pcb-detail-page .header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.pcb-detail-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.pcb-detail-page .back-button:hover{background:var(--color-bg-secondary);color:var(--color-primary);border-color:var(--color-primary)}.pcb-detail-page .back-button svg{width:16px;height:16px}.pcb-detail-page .page-title{min-width:0}.pcb-detail-page .page-title h1{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2;word-break:break-word}.pcb-detail-page .page-title p{font-size:13px;color:var(--color-text-secondary);margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pcb-detail-page .status-pill{flex-shrink:0;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:3px 10px;border-radius:999px}.pcb-detail-page .status-pill.draft{background:#f39c121f;color:#b9770e;border:1px solid rgba(243,156,18,.35)}.pcb-detail-page .status-pill.released{background:#27ae601f;color:#1e8449;border:1px solid rgba(39,174,96,.35)}.pcb-detail-page .header-actions .action-btn,.pcb-detail-page .header-actions .btn-primary{display:inline-flex;align-items:center;gap:6px}.pcb-detail-page .header-actions svg{width:15px;height:15px}.pcb-detail-page .page-error{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 32px 0;padding:10px 14px;border-radius:var(--radius-md);background:#e74c3c14;border:1px solid rgba(231,76,60,.3);color:var(--color-error);font-size:14px}.pcb-detail-page .page-error button{background:none;border:none;color:var(--color-error);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.pcb-busy-banner{display:flex;align-items:center;gap:10px;margin:16px 32px 0;padding:10px 14px;border-radius:var(--radius-md);background:#2d899814;border:1px solid rgba(45,137,152,.25);color:var(--color-primary);font-size:13px;font-weight:500}.pcb-upload-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;font-weight:500;color:var(--color-primary);margin-bottom:8px;width:100%}.pcb-upload-pct{font-variant-numeric:tabular-nums;flex-shrink:0}.pcb-upload-bar{height:6px;border-radius:999px;background:#2d899826;overflow:hidden;width:100%}.pcb-upload-bar-fill{height:100%;background:var(--color-primary);border-radius:999px;transition:width .15s ease-out}.pcb-upload-bar-fill.indeterminate{width:40%;transition:none;animation:pcb-upload-indeterminate 1.1s ease-in-out infinite}@keyframes pcb-upload-indeterminate{0%{transform:translate(-120%)}to{transform:translate(280%)}}.pcb-spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:pcb-spin .8s linear infinite}.pcb-spinner.small{width:14px;height:14px;border-width:2px}@keyframes pcb-spin{to{transform:rotate(360deg)}}.pcb-loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:80px 24px;color:var(--color-text-secondary);font-size:14px}.pcb-detail-main{padding:24px 32px 48px;max-width:1100px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:20px;box-sizing:border-box}.pcb-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 24px;scroll-margin-top:16px}.pcb-section.pcb-section-flash{animation:pcb-section-flash 1.4s ease}@keyframes pcb-section-flash{0%{box-shadow:0 0 0 3px #2d899873}to{box-shadow:var(--shadow-sm)}}.pcb-section h2{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.pcb-section h2 svg{width:17px;height:17px;color:var(--color-primary);flex-shrink:0}.pcb-section h3{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em}.pcb-section h4{margin:0;font-size:13px;font-weight:600;color:var(--color-text-primary)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.section-head.sub{margin-top:20px;padding-top:16px;border-top:1px solid var(--color-border);margin-bottom:10px}.section-head .sub-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.section-count{font-size:12px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);padding:3px 10px;border-radius:999px;white-space:nowrap}.section-head-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.btn-carry-over{font-size:12px;padding:4px 10px;height:auto;white-space:nowrap}.pcb-content-ver{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;position:relative}.pcb-content-ver-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);white-space:nowrap}.pcb-content-ver-value{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:13px;font-weight:600;color:var(--color-text-primary)}.pcb-content-ver-value.empty{color:var(--color-text-muted);font-weight:500;font-family:inherit}.pcb-content-ver-chip{display:inline-flex;align-items:center;height:26px;padding:0 10px;border:1px solid rgba(45,137,152,.25);border-radius:999px;background:#2d89981a;color:var(--color-primary);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;font-weight:700;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.pcb-content-ver-chip:hover:not(:disabled){background:#2d89982e;border-color:var(--color-primary)}.pcb-content-ver-chip:disabled{opacity:.6;cursor:default}.pcb-content-ver-input-wrap{position:relative;display:inline-flex;align-items:center}.pcb-content-ver-ghost{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:13px;font-weight:600;color:var(--color-text-muted);opacity:.55;pointer-events:none;white-space:nowrap}.pcb-content-ver-input{position:relative;z-index:1;width:88px;height:30px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:13px;font-weight:600}.pcb-content-ver-input-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-sm);background:var(--color-bg);z-index:0}.pcb-content-ver-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981f}.pcb-content-ver.missing .pcb-content-ver-input,.pcb-content-ver.invalid .pcb-content-ver-input{border-color:#c0392b}.pcb-content-ver.missing .pcb-content-ver-label,.pcb-content-ver.missing .pcb-content-ver-value{color:#c0392b}.pcb-content-ver-suggest-hint{font-size:11px;color:var(--color-text-muted);white-space:nowrap}.pcb-content-ver-hint{font-size:11px;color:#c0392b;width:100%}.pcb-info-section{overflow:hidden}.pcb-info-layout{display:flex;align-items:flex-start;gap:24px}.pcb-info-preview-col{flex-shrink:0;align-self:start}.pcb-info-preview-link{display:block;line-height:0;border-radius:10px;transition:opacity .15s}.pcb-info-preview-link:hover{opacity:.92}.pcb-a365-preview{width:140px;height:140px;padding:8px;box-sizing:border-box;border-radius:10px;object-fit:contain;border:1px solid var(--color-border, #e5e7eb);background:var(--color-bg-secondary, #f1f5f9);display:block}.pcb-info-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:16px}.pcb-info-heading h2{margin:0}.pcb-a365-logo-link{display:inline-flex;align-items:center;opacity:.85;transition:opacity .15s;line-height:0}a.pcb-a365-logo-link:hover{opacity:1}.pcb-a365-logo{width:auto;height:22px;display:block}.pcb-info-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:18px 28px;align-content:start}.pcb-info-fields>div{display:flex;flex-direction:column;gap:4px;min-width:0}.pcb-info-fields>div>span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-weight:600}.pcb-info-fields strong{font-size:14px;font-weight:500;color:var(--color-text-primary);word-break:break-word}.pcb-info-fields em{font-style:normal;font-size:12px;color:var(--color-text-secondary);word-break:break-word}@media (max-width: 700px){.pcb-info-layout{flex-direction:column}.pcb-a365-preview{width:112px;height:112px}}.param-chips{display:flex;flex-wrap:wrap;gap:8px}.param-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 10px 5px 6px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary)}.param-chip code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-primary);padding:2px 6px;border-radius:var(--radius-sm)}.version-chips{display:flex;flex-wrap:wrap;gap:6px}.version-chips.inline{margin-top:2px}.pcb-info-fields .version-chips .chip{font-size:12px;padding:4px 10px}.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--color-border);background:var(--color-bg);border-radius:999px;padding:5px 12px;cursor:pointer;font-size:12px;font-weight:500;color:var(--color-text-secondary);transition:all var(--transition-fast)}.chip svg{width:11px;height:11px;color:#1e8449}.chip:hover{border-color:var(--color-primary);color:var(--color-primary)}.chip.active{border-color:var(--color-primary);background:#2d89981a;color:var(--color-primary);font-weight:600}.pcb-drop-zone{display:flex;align-items:center;gap:14px;padding:16px 20px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);cursor:pointer;transition:all var(--transition-fast);margin-top:14px;-webkit-user-select:none;user-select:none}.pcb-drop-zone:hover,.pcb-drop-zone.dragover{border-color:var(--color-primary);background:#2d899814}.pcb-drop-zone.disabled{opacity:.55;cursor:default;pointer-events:none}.pcb-drop-zone.uploading{flex-direction:column;align-items:stretch;gap:10px;cursor:default;pointer-events:none;border-style:solid;border-color:#2d899859;background:#2d899814}.pcb-drop-zone .drop-icon{width:28px;height:28px;color:var(--color-primary);flex-shrink:0}.pcb-drop-zone .drop-texts{display:flex;flex-direction:column;gap:2px;min-width:0}.pcb-drop-zone .drop-text{font-size:14px;font-weight:500;color:var(--color-text-primary)}.pcb-drop-zone .drop-subtext{font-size:12.5px;color:var(--color-text-secondary)}.pcb-file-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow-x:auto}.pcb-file-table{width:100%;border-collapse:collapse;font-size:13.5px}.pcb-file-table th{padding:9px 14px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.pcb-file-table td{padding:9px 14px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle}.pcb-file-table tbody tr:last-child td{border-bottom:none}.pcb-file-table tbody tr{transition:background var(--transition-fast)}.pcb-file-table tbody tr:hover{background:var(--color-bg-secondary)}.pcb-file-table tbody tr.is-bom{background:#2d89980d}.pcb-file-table .muted{color:var(--color-text-secondary);white-space:nowrap;font-size:12.5px}.pcb-file-table .col-size{width:90px}.pcb-file-table .col-uploaded{width:220px}.pcb-file-table .col-actions{width:1%;white-space:nowrap;text-align:right}.file-cell{display:flex;align-items:center;gap:10px;min-width:0}.file-cell .file-name{color:var(--color-text-primary);font-weight:500;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:420px}.file-cell .file-name:hover{color:var(--color-primary);text-decoration:underline}.pcb-file-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);flex-shrink:0}.pcb-file-icon svg{width:15px;height:15px}.pcb-file-icon.ft-archive{background:#9b59b61f;color:#8e44ad}.pcb-file-icon.ft-sheet{background:#27ae601f;color:#1e8449}.pcb-file-icon.ft-pdf{background:#e74c3c1f;color:#c0392b}.pcb-file-icon.ft-image{background:#3498db1f;color:#2471a3}.pcb-file-icon.ft-cad{background:#2d89981f;color:var(--color-primary)}.pcb-file-icon.ft-folder{background:#f1c40f26;color:#b7950b}.pcb-file-icon.ft-generic{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.row-actions{display:inline-flex;align-items:center;gap:6px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.icon-btn svg{width:15px;height:15px}.icon-btn:hover{background:var(--color-bg-secondary);color:var(--color-primary);border-color:var(--color-border)}.icon-btn.danger:hover{color:var(--color-error);background:#e74c3c14}.table-btn{height:26px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary);font-size:12px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.table-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.bom-badge{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 7px;border-radius:4px;background:var(--color-primary);color:#fff;text-transform:uppercase}.pcb-empty-hint{padding:22px 16px;border:1px dashed var(--color-border);border-radius:var(--radius-md);text-align:center;color:var(--color-text-secondary);font-size:13px;background:var(--color-bg-secondary)}.asm-tabs{display:flex;gap:4px;border-bottom:1px solid var(--color-border);margin-bottom:16px;flex-wrap:wrap;align-items:flex-end}.asm-tab{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;padding:10px 14px;cursor:pointer;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:13px;font-weight:500;transition:all var(--transition-fast)}.asm-tab:hover{color:var(--color-primary)}.asm-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.asm-tab.dragging{opacity:.45}.asm-tab.drag-over{border-bottom-color:var(--color-primary);background:#2d899814}.asm-tab[draggable=true]{cursor:grab}.asm-tab[draggable=true]:active{cursor:grabbing}.asm-tab-dot{width:6px;height:6px;border-radius:50%;background:#27ae60;flex-shrink:0}.asm-tab-dot.stale{background:var(--color-warning, #d97706)}.asm-tab-dot.unmatched{background:var(--color-error, #e74c3c)}.pcb-unmatched-banner{display:flex;align-items:center;gap:14px;margin:0 0 14px;padding:12px 16px;border-radius:var(--radius-md);background:#e74c3c14;border:1px solid rgba(231,76,60,.35);color:#c0392b}.pcb-unmatched-banner>svg{width:22px;height:22px;flex-shrink:0}.pcb-unmatched-banner>div{flex:1;min-width:0}.pcb-unmatched-banner strong{display:block;font-size:13.5px;font-weight:650;color:#a93226;margin-bottom:2px}.pcb-unmatched-banner p{margin:0;font-size:12.5px;font-weight:500;color:#922b21;line-height:1.4;opacity:.9}.pcb-unmatched-banner .btn-primary{flex-shrink:0}.btn-reevaluate-boms{position:relative;display:inline-flex;align-items:center;gap:6px}.btn-reevaluate-boms svg{width:14px;height:14px}.btn-reevaluate-boms .new-data-pill{position:absolute;top:-8px;right:-10px;padding:2px 7px;background:var(--color-warning, #d97706);color:#fff;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.4;box-shadow:0 1px 4px #00000040;pointer-events:none}.asm-tab-add{padding:8px 12px;color:var(--color-text-muted)}.asm-tab-add svg{width:16px;height:16px}.asm-tab-add:hover:not(:disabled){color:var(--color-primary);background:#2d89980f;border-radius:var(--radius-sm) var(--radius-sm) 0 0}.asm-tab-add:disabled{opacity:.45;cursor:default}.asm-tab-trash{padding:8px 12px;color:#c0392b;border-bottom-color:transparent;cursor:default;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:all var(--transition-fast)}.asm-tab-trash svg{width:16px;height:16px}.asm-tab-trash.active{color:#fff;background:#c0392b;border-bottom-color:#c0392b}.asm-tab-rename{height:34px;min-width:120px;max-width:220px;margin-bottom:-1px;padding:0 12px;border:1px solid var(--color-primary);border-bottom:2px solid var(--color-primary);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-weight:600;outline:none;box-shadow:0 0 0 3px #2d89981a}.asm-panel-head{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}.asm-name-input{height:36px;padding:0 12px;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:600;min-width:220px}.asm-name-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.pcb-bom-cta{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary)}.pcb-bom-cta>svg{width:30px;height:30px;color:var(--color-text-muted);flex-shrink:0}.pcb-bom-cta>div{flex:1;min-width:0}.pcb-bom-cta strong{display:block;font-size:14px;color:var(--color-text-primary);margin-bottom:2px}.pcb-bom-cta p{margin:0;font-size:13px;color:var(--color-text-secondary)}.bom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.bom-meta{font-size:12.5px;color:var(--color-text-secondary)}.bom-search{display:flex;align-items:center;gap:6px;flex:0 1 380px;min-width:220px;padding:5px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast)}.bom-search:focus-within{border-color:var(--color-primary)}.bom-search svg{width:14px;height:14px;flex-shrink:0;color:var(--color-text-muted)}.bom-search input{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:12.5px;color:var(--color-text-primary)}.bom-search input::placeholder{color:var(--color-text-muted)}.bom-search-count{flex-shrink:0;font-size:11px;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-radius:999px;padding:2px 8px;white-space:nowrap}.bom-search-count.none{color:var(--color-error);background:#ef44441a}.bom-search-clear{flex-shrink:0;border:none;background:none;color:var(--color-text-muted);font-size:15px;line-height:1;padding:0 2px;cursor:pointer}.bom-search-clear:hover{color:var(--color-text-primary)}.bom-table-wrap{position:relative;overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);max-height:480px;overflow-y:auto}.bom-table{width:100%;border-collapse:collapse;font-size:12px}.bom-table th,.bom-table td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--color-border);vertical-align:middle}.bom-table th{position:sticky;top:0;z-index:1;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);background:var(--color-bg-secondary);font-weight:600;white-space:nowrap}.bom-table tbody tr:hover{background:var(--color-bg-secondary)}.bom-table tbody tr:last-child td{border-bottom:none}.bom-table tbody tr.bom-row-error{background:#ef44440d}.bom-table tbody tr.bom-row-warning{background:#d977060d}.bom-table tbody tr.bom-row-error:hover,.bom-table tbody tr.bom-row-warning:hover{background:var(--color-bg-secondary)}.bom-table tbody tr.search-hit,.bom-table tbody tr.search-hit:hover{background:#facc152e}.bom-table tbody tr.search-hit-first,.bom-table tbody tr.search-hit-first:hover{background:#facc1552;box-shadow:inset 3px 0 #d97706}.bom-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;white-space:nowrap}.bom-table .muted{color:var(--color-text-secondary)}.bom-table .col-line{width:34px;text-align:right;font-size:11px}.bom-table .col-img{width:34px;padding:2px 4px 2px 8px;text-align:center}.bom-table .col-qty{width:40px;text-align:right}.bom-table .col-designators{max-width:240px;min-width:120px;white-space:normal;word-break:break-word;line-height:1.45;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;color:var(--color-text-secondary)}.bom-table .bom-desc{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-part-thumb{width:26px;height:26px;object-fit:contain;border-radius:4px;border:1px solid var(--color-border);background:#fff;display:block}.bom-part-thumb.no-image{opacity:.35}.bom-table .col-part{min-width:150px;max-width:240px}.bom-table .col-part .part-mpn{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;font-weight:600;color:var(--color-text-primary);word-break:break-all;line-height:1.35}.bom-table .col-part .part-link{display:block;background:none;border:none;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;font-weight:600;color:var(--color-primary);cursor:pointer;text-align:left;word-break:break-all;line-height:1.35}.bom-table .col-part .part-link:hover{text-decoration:underline}.bom-table .col-part .part-mfr{display:block;font-size:11px;color:var(--color-text-secondary);line-height:1.35}.bom-table .col-pstatus{width:76px;text-align:center}.bom-status{display:inline-block;padding:2px 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;cursor:default}.bom-status.ok{color:#1e8449;background:#1e84491f}.bom-status.ok.ok-star{color:#15803d;background:#1e84491a;border:1px solid rgba(30,132,73,.28)}.bom-status.warning{color:#b45309;background:#d9770624}.bom-status.error{color:var(--color-error);background:#ef44441f}.bom-summaries{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:10px;margin-top:10px}.bom-summary-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:10px 12px}.bom-summary-card h5{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-weight:700}.bom-summary-stats{display:flex;flex-wrap:wrap;gap:6px 14px}.bom-summary-stats .stat{font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.bom-summary-stats .stat strong{color:var(--color-text-primary);font-weight:700}.bom-summary-stats .stat.good strong{color:#1e8449}.bom-summary-stats .stat.warn strong{color:#b45309}.bom-summary-stats .stat.bad strong{color:var(--color-error)}.bom-summary-foot{margin-top:8px;font-size:11.5px;color:var(--color-text-muted)}.bom-summary-empty{font-size:12px;color:var(--color-text-muted)}.pcb-aa-groups{display:flex;flex-direction:column;gap:14px}.pcb-aa-group{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.pcb-aa-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.pcb-aa-group-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.pcb-aa-variant{font-weight:600;color:var(--color-text-primary)}.pcb-aa-key{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:1px 8px}.pcb-aa-status,.pcb-aa-build-status{font-size:11px;font-weight:600;text-transform:capitalize;padding:2px 8px;border-radius:999px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary);white-space:nowrap}.pcb-aa-status.status-active,.pcb-aa-build-status.status-completed{color:var(--color-success, #22c55e);border-color:color-mix(in srgb,var(--color-success, #22c55e) 40%,transparent);background:color-mix(in srgb,var(--color-success, #22c55e) 10%,transparent)}.pcb-aa-status.status-in_assembly,.pcb-aa-status.status-in_rework,.pcb-aa-build-status.status-in_progress{color:var(--color-warning, #f59e0b);border-color:color-mix(in srgb,var(--color-warning, #f59e0b) 40%,transparent);background:color-mix(in srgb,var(--color-warning, #f59e0b) 10%,transparent)}.pcb-aa-build-status.status-cancelled{color:var(--color-error);border-color:color-mix(in srgb,var(--color-error) 40%,transparent);background:color-mix(in srgb,var(--color-error) 10%,transparent)}.pcb-aa-group-meta{display:flex;align-items:center;gap:12px}.pcb-aa-built{font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.pcb-aa-empty{padding:12px 14px;font-size:13px;color:var(--color-text-muted)}.pcb-aa-builds{width:100%;border-collapse:collapse;font-size:13px}.pcb-aa-builds th{text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);padding:8px 14px;border-bottom:1px solid var(--color-border)}.pcb-aa-builds td{padding:8px 14px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:middle;line-height:1.35}.pcb-aa-builds tr:last-child td{border-bottom:none}.pcb-aa-dt,.pcb-aa-boards,.pcb-aa-by{white-space:nowrap}.pcb-aa-by{max-width:220px;overflow:hidden;text-overflow:ellipsis}.pcb-aa-notes{max-width:360px;color:var(--color-text-secondary);overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto}.pcb-log-list{list-style:none;margin:0;padding:0}.pcb-log-list li{position:relative;display:flex;gap:12px;padding:0 0 16px 4px}.pcb-log-list li:last-child{padding-bottom:0}.pcb-log-list li:not(:last-child):before{content:"";position:absolute;left:7.5px;top:14px;bottom:0;width:1px;background:var(--color-border)}.log-dot{flex-shrink:0;width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 3px #2d899826}.log-body{display:flex;flex-direction:column;gap:1px;min-width:0}.log-message{font-size:13.5px;color:var(--color-text-primary)}.log-meta{font-size:12px;color:var(--color-text-secondary)}.pcb-log-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding:10px 12px;border-top:1px solid var(--color-border);gap:16px;flex-wrap:wrap}.pcb-log-pagination-info{font-size:13px;color:var(--color-text-secondary)}.pcb-log-pagination-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.pcb-log-page-size{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.pcb-log-page-size select{padding:4px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);cursor:pointer}.pcb-log-page-nav{display:flex;align-items:center;gap:4px}.pcb-log-page-btn{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary);font-size:12px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.pcb-log-page-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.pcb-log-page-btn:disabled{opacity:.4;cursor:not-allowed}.pcb-log-page-indicator{font-size:13px;color:var(--color-text-secondary);padding:0 8px;white-space:nowrap}.pcb-detail-page .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;overflow:hidden;overscroll-behavior:contain}.pcb-detail-page .modal-content.pcb-bom-picker{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:620px;display:flex;flex-direction:column;max-height:min(85vh,720px);overflow:hidden}.pcb-detail-page .pcb-bom-picker .modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.pcb-detail-page .pcb-bom-picker .modal-header h2{margin:0;font-size:17px;font-weight:600;color:var(--color-text-primary);line-height:1.25;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcb-detail-page .pcb-bom-picker .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:22px;line-height:1;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.pcb-detail-page .pcb-bom-picker .close-btn:hover:not(:disabled){background:#e74c3c1a;color:var(--color-error)}.pcb-bom-picker-body{padding:18px 24px;overflow-y:auto;flex:1}.pcb-bom-picker .picker-intro{margin:0 0 16px;font-size:13px;color:var(--color-text-secondary);line-height:1.5}.pcb-bom-picker .picker-error{margin:0 0 14px;padding:10px 12px;border-radius:var(--radius-md);background:#e74c3c14;border:1px solid rgba(231,76,60,.3);color:var(--color-error);font-size:13px}.bom-picker-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;max-height:420px;overflow-y:auto}.bom-picker-table{width:100%;border-collapse:collapse;font-size:13px}.bom-picker-table th{position:sticky;top:0;z-index:1;padding:9px 12px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border)}.bom-picker-table td{padding:8px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle}.bom-picker-table tbody tr:last-child td{border-bottom:none}.bom-picker-table .col-select{width:36px;text-align:center;padding-left:10px;padding-right:4px}.bom-picker-table .col-size{width:90px;white-space:nowrap;color:var(--color-text-secondary);font-size:12.5px}.bom-picker-table .muted{color:var(--color-text-secondary)}.bom-picker-row.selectable,.bom-picker-child.selectable{cursor:pointer;transition:background var(--transition-fast)}.bom-picker-row.selectable:hover,.bom-picker-child.selectable:hover{background:var(--color-bg-secondary)}.bom-picker-row.selected,.bom-picker-child.selected{background:#2d899814}.bom-picker-row.selected td:first-child,.bom-picker-child.selected td:first-child{box-shadow:inset 3px 0 0 var(--color-primary)}.bom-picker-row.muted-row{opacity:.7}.bom-picker-file-cell{display:flex;align-items:center;gap:10px;min-width:0}.bom-picker-file-cell .file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;color:var(--color-text-primary)}.bom-cand-tag{flex-shrink:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:#27ae601f;color:#1e8449}.bom-cand-tag.dim{background:var(--color-bg-secondary);color:var(--color-text-muted)}.bom-cand-tag.warn{background:#f39c121f;color:#b9770e}.bom-picker-group{cursor:pointer;-webkit-user-select:none;user-select:none}.bom-picker-group td{background:#2d89980d;padding:0}.bom-picker-group:hover td{background:#2d899817}.bom-picker-folder{cursor:pointer;-webkit-user-select:none;user-select:none}.bom-picker-folder td{background:#2d899808;padding:0}.bom-picker-folder:hover td{background:#2d899812}.bom-picker-group-content{display:flex;align-items:center;gap:8px;padding:9px 12px;min-width:0}.bom-picker-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease}.bom-picker-chevron.open{transform:rotate(90deg)}.bom-picker-group-content .group-name{font-weight:600;font-size:13px;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-picker-group-content .group-meta{font-size:11px;color:var(--color-text-muted);white-space:nowrap}.bom-picker-group-content .group-size{margin-left:auto;flex-shrink:0;font-size:12px}.bom-picker-child .warn-cell{color:#b9770e}.bom-picker-child.muted-row{opacity:.65}.bom-picker-empty{text-align:center;padding:28px 16px!important;color:var(--color-text-secondary);font-size:13px}.pcb-bom-picker-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.pcb-detail-page .btn-primary,.pcb-bom-picker .btn-primary{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;font-weight:500;font-size:13px;transition:all var(--transition-fast)}.pcb-detail-page .btn-primary svg{width:14px;height:14px}.pcb-detail-page .btn-primary:hover:not(:disabled),.pcb-bom-picker .btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.pcb-detail-page .action-btn,.pcb-bom-picker .action-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;transition:all var(--transition-fast)}.pcb-detail-page .action-btn svg{width:14px;height:14px}.pcb-detail-page .action-btn:hover:not(:disabled),.pcb-bom-picker .action-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.pcb-detail-page .action-btn.danger{color:var(--color-error);border-color:#e74c3c59}.pcb-detail-page .action-btn.danger:hover:not(:disabled){background:#e74c3c0f;border-color:var(--color-error);color:var(--color-error)}.pcb-detail-page .action-btn:disabled,.pcb-detail-page .btn-primary:disabled,.pcb-bom-picker .action-btn:disabled,.pcb-bom-picker .btn-primary:disabled{opacity:.5;cursor:default}.btn-generate-coc{display:inline-flex;align-items:center;gap:6px}.btn-generate-coc svg{width:15px;height:15px;flex-shrink:0}.pcb-coc-draft-hint{font-size:12px;color:var(--color-text-muted);border:1px dashed var(--color-border);padding:5px 10px;border-radius:999px;white-space:nowrap;cursor:default}.pcb-env-frozen-chip{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;color:#166534;background:#16a34a14;border:1px solid rgba(22,163,74,.35);padding:3px 10px;border-radius:999px;white-space:nowrap;cursor:default}.pcb-envm-locked-note{color:var(--color-text-muted);font-style:italic}.pcb-reldocs-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}.pcb-reldocs-bundle-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pcb-reldocs-bundle-btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px}.pcb-reldocs-bundle-btn svg{flex-shrink:0}.pcb-reldocs-hint{margin-top:8px;font-size:12px;color:var(--color-text-muted)}.pcb-reldocs-table .col-usedby{width:28%}.pcb-reldocs-table .col-size{width:90px;white-space:nowrap;text-align:right}.pcb-reldocs-table .doc-type-badge{display:inline-block;flex-shrink:0;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 7px;border-radius:999px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary)}.pcb-reldocs-table .doc-type-badge.coc,.pcb-reldocs-table .doc-type-badge.doc,.pcb-reldocs-table .doc-type-badge.lab{text-transform:none}.pcb-reldocs-alt{margin-left:6px;font-size:10.5px;font-weight:600;text-transform:uppercase;color:#92400e;background:#d977061a;border:1px solid rgba(217,119,6,.3);padding:1px 6px;border-radius:999px}.pcb-reldocs-missing{margin-left:6px;font-size:11px;color:var(--color-error)}.pcb-env-error{color:var(--color-error);font-size:13px;padding:6px 0}.pcb-env-uncovered{margin-bottom:12px;padding:8px 12px;border:1px solid rgba(217,119,6,.35);background:#d9770612;border-radius:var(--radius-md);color:#92400e;font-size:12.5px}.pcb-env-block+.pcb-env-block{margin-top:22px}.pcb-env-subhead h4{margin:0 0 2px;font-size:13.5px}.pcb-env-subhead p{margin:0 0 10px;font-size:12px;color:var(--color-text-secondary)}.pcb-env-clean{padding:10px 14px;border:1px solid rgba(30,132,73,.3);background:#1e84490f;border-radius:var(--radius-md);color:#1e8449;font-size:12.5px;line-height:1.5}.pcb-env-warn{margin-bottom:10px;padding:10px 14px;border:1px solid rgba(217,119,6,.4);background:#d9770614;border-radius:var(--radius-md);color:#92400e;font-size:12.5px;line-height:1.5}.pcb-env-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto}.pcb-env-table{width:100%;border-collapse:collapse;font-size:12.5px}.pcb-env-table th{position:sticky;top:0;background:var(--color-bg-secondary);text-align:left;padding:7px 10px;font-size:10.5px;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);font-weight:650;white-space:nowrap;border-bottom:1px solid var(--color-border)}.pcb-env-table td{padding:6px 10px;border-bottom:1px solid var(--color-border);vertical-align:top}.pcb-env-table tbody tr:last-child td{border-bottom:none}.pcb-env-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;white-space:nowrap}.pcb-env-group-row td{padding:0;background:var(--color-bg-secondary)}.pcb-env-group-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.pcb-env-group-toggle:hover{background:#00000008}.pcb-env-chevron{display:inline-flex;color:var(--color-text-secondary);transition:transform .15s ease;flex-shrink:0}.pcb-env-chevron.open{transform:rotate(90deg)}.pcb-env-group-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700;font-size:12px;white-space:nowrap}.pcb-env-group-desc{flex:1;min-width:0;font-size:12px;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcb-env-group-meta{font-size:11px;color:var(--color-text-secondary);white-space:nowrap}.pcb-env-part-link{background:none;border:none;padding:0;font:inherit;font-size:12.5px;color:var(--color-primary);cursor:pointer;text-align:left;word-break:break-all}.pcb-env-part-link:hover{text-decoration:underline}.pcb-env-variant-chip{display:inline-block;margin:1px 4px 1px 0;padding:1px 7px;border:1px solid var(--color-border);background:var(--color-bg-secondary);border-radius:999px;font-size:11px;white-space:nowrap}.pcb-env-table .col-usedin{max-width:260px}.pcb-env-svhc-table .col-conc{white-space:nowrap}.pcb-detail-page.mobile .pcb-env-group-desc{white-space:normal}.pcb-envm{margin-top:14px;padding-top:12px;border-top:1px dashed var(--color-border)}.pcb-envm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.pcb-envm-head-text h5{margin:0 0 2px;font-size:12.5px;font-weight:650;color:var(--color-text-primary)}.pcb-envm-head-text p{margin:0;font-size:11.5px;color:var(--color-text-secondary);line-height:1.45}.pcb-envm-add-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:12px;font-weight:550;white-space:nowrap;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.pcb-envm-add-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.pcb-envm-empty{padding:8px 12px;border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:12px}.pcb-envm-table .col-code{width:90px;white-space:nowrap}.pcb-envm-table .col-actions{width:62px;text-align:right;white-space:nowrap}.pcb-envm-table .col-evidence{max-width:260px}.pcb-envm-notes{margin-top:2px;font-size:11px;color:var(--color-text-muted)}.pcb-envm-row-busy{opacity:.55;pointer-events:none}.pcb-envm-below{color:var(--color-success);font-size:11px}.pcb-envm-docs{display:inline-flex;flex-wrap:wrap;gap:4px}.pcb-envm-doc-chip{display:inline-flex;align-items:center;gap:4px;max-width:240px;padding:2px 7px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-secondary);font-size:11px;line-height:1.5}.pcb-envm-doc-chip a{display:inline-flex;align-items:center;gap:4px;min-width:0;color:var(--color-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcb-envm-doc-chip a:hover{text-decoration:underline}.pcb-envm-doc-chip a svg{flex-shrink:0}.pcb-envm-doc-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pcb-envm-doc-x{border:none;background:transparent;color:var(--color-text-secondary);font-size:13px;line-height:1;padding:0 1px;cursor:pointer;flex-shrink:0}.pcb-envm-doc-x:hover:not(:disabled){color:var(--color-error)}.pcb-envm-action-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-left:2px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.pcb-envm-action-btn:hover:not(:disabled){border-color:var(--color-border);color:var(--color-primary);background:var(--color-bg-secondary)}.pcb-envm-action-btn.pcb-envm-action-danger:hover:not(:disabled){color:var(--color-error);background:#e74c3c14;border-color:#e74c3c4d}.pcb-envm-source{display:inline-flex;align-items:center;gap:6px}.pcb-envm-source-tag{padding:1px 6px;border-radius:999px;background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#1d4ed8;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.pcb-detail-page .modal-content.pcb-envm-dialog{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:560px;display:flex;flex-direction:column;max-height:min(88vh,760px);overflow:hidden}.pcb-detail-page .pcb-envm-dialog .modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.pcb-detail-page .pcb-envm-dialog .modal-header h2{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary);line-height:1.25}.pcb-detail-page .pcb-envm-dialog .close-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:22px;line-height:1;cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.pcb-detail-page .pcb-envm-dialog .close-btn:hover:not(:disabled){background:#e74c3c1a;color:var(--color-error)}.pcb-envm-dialog-body{padding:16px 22px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.pcb-envm-dialog-intro{margin:0;font-size:12.5px;color:var(--color-text-secondary);line-height:1.5}.pcb-envm-dialog-error{padding:9px 12px;border-radius:var(--radius-md);background:#e74c3c14;border:1px solid rgba(231,76,60,.3);color:var(--color-error);font-size:12.5px}.pcb-envm-grid{display:grid;grid-template-columns:1.3fr 1fr .9fr;gap:10px}.pcb-envm-field{display:flex;flex-direction:column;gap:4px;min-width:0}.pcb-envm-field label{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary)}.pcb-envm-field input,.pcb-envm-field textarea{padding:7px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:13px;font-family:inherit;width:100%;box-sizing:border-box}.pcb-envm-field input.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.pcb-envm-field input:focus,.pcb-envm-field textarea:focus{outline:none;border-color:var(--color-primary)}.pcb-envm-field textarea{resize:vertical}.pcb-envm-field-hint{font-size:11.5px;color:var(--color-text-muted);line-height:1.45}.pcb-envm-code-hint{padding:6px 10px;border-radius:var(--radius-md);background:#3b82f60f;border:1px solid rgba(59,130,246,.25);color:var(--color-text-primary);font-size:12px;line-height:1.45}.pcb-envm-files{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:2px}.pcb-envm-doc-library{background:#3b82f614}.pcb-envm-file-actions{display:flex;gap:8px}.pcb-envm-file-btn{padding:6px 11px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text-secondary);font-size:12px;font-weight:550;cursor:pointer;transition:all var(--transition-fast)}.pcb-envm-file-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.pcb-envm-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 22px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary)}.pcb-detail-page.mobile .pcb-envm-head{flex-direction:column;align-items:stretch}.pcb-detail-page.mobile .pcb-envm-grid{grid-template-columns:1fr}.pcb-detail-page.mobile .page-header{padding:10px 16px;height:auto;flex-wrap:wrap}.pcb-detail-page.mobile .pcb-detail-main{padding:16px}.pcb-detail-page.mobile .page-title h1{font-size:17px;flex-wrap:wrap}.pcb-detail-page.mobile .pcb-section{padding:16px}.pcb-detail-page.mobile .page-error,.pcb-detail-page.mobile .pcb-busy-banner,.pcb-detail-page.mobile .file-cell .file-name{max-width:180px}.pcb-detail-page.mobile .pcb-file-table .col-uploaded{display:none}.release-component-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%)}.release-component-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)}.release-component-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.release-component-page .header-right{display:flex;align-items:center;gap:16px}.release-component-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.release-component-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.release-component-page .back-button svg{width:18px;height:18px}.release-component-page .page-title h1{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2;min-width:0}.release-component-page .page-title p{font-size:13px;color:var(--color-text-secondary);margin:4px 0 0}.release-component-page .page-content{flex:1;padding:24px 32px 48px;max-width:1200px;width:100%;margin:0 auto;box-sizing:border-box}.rcp-frozen-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:#2d89981f;border:1px solid rgba(45,137,152,.4);color:var(--color-primary);white-space:nowrap}.rcp-frozen-chip svg{width:12px;height:12px}.rcp-loading{padding:48px;text-align:center;color:var(--color-text-secondary)}.rcp-error{padding:32px;text-align:center;color:var(--color-error)}.rcp-error .rcp-btn{margin-top:12px}.rcp-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;margin-bottom:12px;background:#2d899814;border:1px solid rgba(45,137,152,.35);border-radius:var(--radius-md, 8px)}.rcp-banner-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#2d899826;color:var(--color-primary)}.rcp-banner-icon svg{width:18px;height:18px}.rcp-banner-text{flex:1;font-size:13.5px;line-height:1.5;color:var(--color-text-primary)}.rcp-btn{padding:8px 14px;font-size:13px;font-weight:600;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);color:var(--color-text-primary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.rcp-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.rcp-btn:disabled{opacity:.5;cursor:not-allowed}.rcp-live-btn{flex-shrink:0}.rcp-note{padding:10px 16px;margin-bottom:12px;font-size:13px;line-height:1.5;border-radius:var(--radius-md, 8px)}.rcp-note.warn{background:#f57f1714;border:1px solid rgba(245,127,23,.4);color:var(--color-text-primary)}.rcp-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:20px 24px;margin-bottom:16px}.rcp-section h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0 0 14px}.rcp-empty{font-size:13.5px;color:var(--color-text-secondary);margin:0}.rcp-identity{display:flex;gap:24px;align-items:flex-start}.rcp-image{flex-shrink:0;width:140px;height:140px;border:1px solid var(--color-border-light);border-radius:var(--radius-md, 8px);overflow:hidden;background:var(--color-bg-secondary);display:flex;align-items:center;justify-content:center}.rcp-image img{max-width:100%;max-height:100%;object-fit:contain}.rcp-fields{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px 24px;min-width:0}.rcp-field{display:flex;flex-direction:column;gap:3px;min-width:0}.rcp-field.wide{grid-column:1 / -1}.rcp-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-muted)}.rcp-value{font-size:13.5px;color:var(--color-text-primary);overflow-wrap:anywhere}.rcp-muted{color:var(--color-text-muted)}.mono{font-family:SF Mono,Consolas,Liberation Mono,monospace;font-size:12.5px}.rcp-badge{display:inline-block;padding:3px 10px;font-size:12px;font-weight:600;border-radius:999px;width:fit-content}.rcp-badge.good{background:#4caf501f;color:#2e7d32;border:1px solid rgba(76,175,80,.4)}.rcp-badge.bad{background:#e74c3c1a;color:#c0392b;border:1px solid rgba(231,76,60,.4)}.rcp-badge.warn{background:#f57f171a;color:#ef6c00;border:1px solid rgba(245,127,23,.4)}.rcp-badge.neutral{background:var(--color-bg-secondary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.rcp-exemption-chip{display:inline-block;margin:0 6px 4px 0;padding:2px 10px;font-size:12px;font-weight:600;border-radius:999px;background:#2d89981a;border:1px solid rgba(45,137,152,.35);color:var(--color-primary)}.rcp-exemption-tag{margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;border-radius:4px;background:#2d89981a;color:var(--color-primary)}.rcp-proprietary-tag{margin-left:6px;padding:1px 6px;font-size:11px;font-weight:600;border-radius:4px;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-muted)}.rcp-verdict-chips{display:inline-flex;gap:6px}.rcp-chip{padding:2px 10px;font-size:12px;font-weight:700;border-radius:999px}.rcp-chip.error{background:#e74c3c1a;border:1px solid rgba(231,76,60,.4);color:#c0392b}.rcp-chip.warn{background:#f57f171a;border:1px solid rgba(245,127,23,.4);color:#ef6c00}.rcp-chip.good{background:#4caf501f;border:1px solid rgba(76,175,80,.4);color:#2e7d32}.rcp-table{width:100%;border-collapse:collapse;font-size:13px}.rcp-table th{text-align:left;padding:8px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap}.rcp-table td{padding:8px 10px;border-bottom:1px solid var(--color-border-light);color:var(--color-text-primary);vertical-align:top}.rcp-table tr:last-child td{border-bottom:none}.rcp-table th.num,.rcp-table td.num{text-align:right;white-space:nowrap}.rcp-table tr.waived td{opacity:.7}.rcp-meta-table td.rcp-label{width:220px;text-transform:none;letter-spacing:0;font-size:12.5px}.rcp-severity{display:inline-block;padding:2px 8px;font-size:11px;font-weight:700;border-radius:4px;text-transform:uppercase;letter-spacing:.3px}.rcp-severity.error{background:#e74c3c1a;color:#c0392b}.rcp-severity.warning{background:#f57f171a;color:#ef6c00}.rcp-severity.waived{background:var(--color-bg-secondary);color:var(--color-text-muted)}.rcp-details{margin-top:14px}.rcp-details summary{font-size:13px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;padding:4px 0}.rcp-details summary:hover{color:var(--color-primary)}.rcp-details[open] summary{margin-bottom:8px}.rcp-comp-summary{display:flex;flex-wrap:wrap;gap:8px 20px;padding:10px 14px;margin-bottom:14px;font-size:13px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-radius:var(--radius-md, 8px)}.rcp-material{margin-bottom:16px}.rcp-material:last-child{margin-bottom:0}.rcp-material-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:6px 0;font-size:13.5px}.rcp-material-name{font-weight:600;color:var(--color-text-primary)}.rcp-material-mass{color:var(--color-text-secondary)}.rcp-doc-type{display:inline-block;padding:2px 8px;font-size:11px;font-weight:700;border-radius:4px;text-transform:uppercase;letter-spacing:.3px;background:#2d89981a;color:var(--color-primary);white-space:nowrap}.rcp-comments{display:flex;flex-direction:column;gap:12px}.rcp-comment{padding:12px 14px;border:1px solid var(--color-border-light);border-left:3px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg-secondary)}.rcp-comment.issue{border-left-color:#e74c3c}.rcp-comment.warning{border-left-color:#f57f17}.rcp-comment-head{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:6px;font-size:12px}.rcp-comment-type{font-weight:700;text-transform:uppercase;letter-spacing:.3px;font-size:11px;padding:1px 7px;border-radius:4px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary)}.rcp-comment-type.issue{background:#e74c3c1a;border-color:#e74c3c66;color:#c0392b}.rcp-comment-type.warning{background:#f57f171a;border-color:#f57f1766;color:#ef6c00}.rcp-comment-author{font-weight:600;color:var(--color-text-primary)}.rcp-comment-date{color:var(--color-text-muted)}.rcp-comment-state{font-weight:600;padding:1px 7px;border-radius:4px;font-size:11px}.rcp-comment-state.resolved{background:#4caf501f;color:#2e7d32}.rcp-comment-state.open{background:#e74c3c1a;color:#c0392b}.rcp-comment-message{font-size:13.5px;line-height:1.5;color:var(--color-text-primary);white-space:pre-wrap;overflow-wrap:anywhere}.rcp-comment-attachments{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.rcp-attachment{font-size:12px;padding:2px 8px;border-radius:4px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary)}.rcp-comment-replies{margin-top:10px;padding-left:16px;border-left:2px solid var(--color-border-light);display:flex;flex-direction:column;gap:8px}.rcp-record-info .rcp-fields{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media (max-width: 720px){.release-component-page .page-header{padding:0 16px}.release-component-page .page-content{padding:16px 16px 40px}.rcp-identity{flex-direction:column}.rcp-banner{flex-direction:column;align-items:flex-start}.rcp-table{display:block;overflow-x:auto}}.pcb-viewer-page{display:flex;flex-direction:column;width:100%;height:100vh;background:#f5f5f5;overflow:hidden}.pcb-viewer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:#fff;border-bottom:1px solid #ddd;box-shadow:0 2px 4px #0000000d;gap:16px}.pcb-viewer-header .header-left{display:flex;align-items:center;gap:16px;min-width:0}.pcb-viewer-header .header-right{display:flex;align-items:center;gap:16px}.pcb-viewer-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:transparent;border:1px solid #ddd;border-radius:8px;cursor:pointer;color:#555;flex-shrink:0;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}.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{height:100vh;max-height:100vh;display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#f5f5f5}.label-editor-main{flex:1;display:grid;grid-template-columns:var(--le-left-w, 300px) 1fr var(--le-right-w, 320px);overflow:hidden;min-height:0;height:0}.le-sidebar{background:#eef1f5;border-right:1px solid #d9dfe7;overflow:hidden;padding:0;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.le-sidebar-right{border-right:none;border-left:1px solid #d9dfe7}.le-panel-resizer{position:absolute;top:0;bottom:0;width:6px;z-index:6;cursor:col-resize;touch-action:none}.le-sidebar-left .le-panel-resizer{right:-3px}.le-sidebar-right .le-panel-resizer{left:-3px}.le-panel-resizer:after{content:"";position:absolute;top:0;bottom:0;left:2px;width:2px;background:transparent;transition:background .12s}.le-panel-resizer:hover:after,.le-panel-resizer:active:after,body.le-resizing-panels .le-panel-resizer:after{background:#4a90d9}body.le-resizing-panels{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.le-resizing-panels iframe,body.le-resizing-panels canvas{pointer-events:none!important}.le-panel-tabs{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0;background:#fff}.le-panel-tabbar{display:flex;align-items:stretch;flex-shrink:0;background:#f4f6f9;border-bottom:1px solid #dfe4eb;min-width:0}.le-panel-tab-list{display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.le-panel-tab-list::-webkit-scrollbar{display:none}.le-panel-tab{flex:0 0 auto;padding:.625rem .75rem;margin:0;border:none;border-bottom:2px solid transparent;background:transparent;color:#5b6575;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;cursor:pointer;transition:color .12s,background .12s,border-color .12s}.le-panel-tab:hover{color:#1e2938;background:#eef2f7}.le-panel-tab.active{color:#1e2938;background:#fff;border-bottom-color:#4a90d9}.le-panel-tab-nav{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:28px;padding:0;margin:0;border:none;border-bottom:2px solid transparent;background:#eef2f7;color:#3d4757;cursor:pointer;transition:background .12s,color .12s,opacity .12s}.le-panel-tab-nav:first-child{border-right:1px solid #dfe4eb}.le-panel-tab-nav:last-child{border-left:1px solid #dfe4eb}.le-panel-tab-nav:hover:not(:disabled){background:#e0eaf5;color:#1e2938}.le-panel-tab-nav:disabled{opacity:.35;cursor:default}.le-panel-tab-nav svg{width:14px;height:14px}.le-panel-tab-body{flex:1;min-height:0;overflow-y:auto;padding:.75rem .875rem .875rem;scrollbar-width:thin;scrollbar-color:#c3ccd6 transparent}.le-panel-tab-body::-webkit-scrollbar{width:8px}.le-panel-tab-body::-webkit-scrollbar-thumb{background:#c3ccd6;border-radius:4px;border:2px solid #fff}.le-sidebar input[type=number]:focus,.le-sidebar input[type=text]:focus,.le-sidebar select:focus,.le-sidebar textarea:focus{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d926;outline:none}.le-element-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem}.le-element-button{display:flex;flex-direction:column;align-items:center;gap:.375rem;padding:.75rem .5rem;background:#f8fafc;border:1px solid #dfe4eb;border-radius:8px;cursor:pointer;transition:all .15s}.le-element-button:hover{background:#e0f0ff;border-color:#4a90d9}.le-element-button:hover svg,.le-element-button:hover span{color:#2563eb}.le-element-button svg{width:24px;height:24px;color:#4b5563;transition:color .15s}.le-element-button span{font-size:.75rem;font-weight:500;color:#4b5563;transition:color .15s}.le-size-presets{display:flex;flex-direction:column;gap:.375rem}.le-size-preset{padding:.5rem .75rem;background:#f8fafc;border:1px solid #dfe4eb;border-radius:6px;font-size:.875rem;color:#374151;text-align:left;cursor:pointer;transition:all .12s}.le-size-preset:hover{background:#eef4fb;border-color:#a0c8f0}.le-size-preset.active{background:#4a90d9;border-color:#4a90d9;color:#fff}.le-custom-size{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eef1f5}.le-size-input-group{display:flex;gap:.5rem}.le-size-input-group label{display:flex;flex-direction:column;gap:.25rem;flex:1;font-size:.75rem;color:#666}.le-size-input-group input{padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%;box-sizing:border-box}.le-print-settings{display:flex;flex-direction:column;gap:.75rem}.le-print-settings label{display:flex;flex-direction:column;gap:.25rem;flex:1;font-size:.75rem;color:#666}.le-print-settings input{padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%;box-sizing:border-box}.le-print-mode-selector{display:flex;flex-direction:column;gap:.5rem}.le-print-mode-option{display:flex;flex-direction:column;padding:.75rem;background:#f8fafc;border:2px solid #dfe4eb;border-radius:8px;cursor:pointer;transition:all .15s}.le-print-mode-option:hover{border-color:#4a90d9;background:#f0f7ff}.le-print-mode-option.active{border-color:#4a90d9;background:#e0f0ff}.le-print-mode-option input{position:absolute;opacity:0;pointer-events:none}.le-mode-label{font-size:.875rem;font-weight:600;color:#333}.le-mode-desc{font-size:.75rem;color:#666;margin-top:.125rem}.le-print-mode-option.active .le-mode-label{color:#2563eb}.le-quality-selector{display:grid;grid-template-columns:1fr 1fr;gap:.375rem}.le-quality-option{display:flex;flex-direction:column;align-items:center;padding:.375rem .25rem;background:#f8fafc;border:2px solid #dfe4eb;border-radius:8px;cursor:pointer;transition:all .15s;text-align:center;min-width:0}.le-quality-option:hover{border-color:#4a90d9;background:#f0f7ff}.le-quality-option.active{border-color:#4a90d9;background:#e0f0ff}.le-quality-option input{position:absolute;opacity:0;pointer-events:none}.le-quality-name{font-size:.8rem;font-weight:600;color:#333}.le-quality-desc{font-size:.6rem;color:#666;margin-top:.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.le-quality-option.active .le-quality-name{color:#2563eb}.le-quality-hint{font-size:.7rem;color:#888;margin-top:.5rem;font-style:italic}.le-threshold-slider{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eef1f5}.le-threshold-slider label{display:flex;flex-direction:column;gap:.375rem;font-size:.75rem;color:#666}.le-threshold-slider strong{color:#333;font-size:.875rem}.le-threshold-slider input[type=range]{width:100%;accent-color:#4a90d9;cursor:pointer}.le-threshold-hint{display:block;font-size:.65rem;color:#999;margin-top:.25rem}.le-canvas-area{display:flex;flex-direction:column;background:#e0e0e0;overflow:hidden}.le-spinner{animation:le-spin 1s linear infinite}@keyframes le-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.le-print-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;margin:.5rem 1rem;border-radius:8px;font-size:.875rem}.le-print-message.success{background:#dcfce7;color:#166534}.le-print-message.error{background:#fee2e2;color:#991b1b}.le-print-message svg{width:18px;height:18px}.le-canvas-container{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}.konva-canvas-wrapper{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none}.konva-canvas-wrapper.is-pan-ready,.konva-canvas-wrapper.is-pan-ready .konvajs-content,.konva-canvas-wrapper.is-pan-ready canvas{cursor:grab!important}.konva-canvas-wrapper.is-panning,.konva-canvas-wrapper.is-panning .konvajs-content,.konva-canvas-wrapper.is-panning canvas{cursor:grabbing!important}.le-zoom-controls{position:absolute;right:12px;bottom:36px;display:flex;align-items:center;gap:2px;padding:3px;background:#fffffff0;border:1px solid #d1d9e2;border-radius:8px;box-shadow:0 2px 8px #0f172a1a;z-index:5;-webkit-user-select:none;user-select:none}.le-zoom-btn,.le-zoom-label{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border:none;border-radius:6px;background:transparent;color:#374151;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .12s,color .12s}.le-zoom-btn:hover,.le-zoom-label:hover{background:#eef4fb;color:#2563eb}.le-zoom-label{min-width:52px;font-size:.75rem;font-variant-numeric:tabular-nums;font-weight:600;color:#4b5563}.le-zoom-fit{font-size:.72rem;font-weight:600;letter-spacing:.02em}.canvas-info{position:relative;text-align:center;margin-top:8px;font-size:.75rem;color:#666;flex-shrink:0}.le-zpl-preview{margin:1rem;padding:1rem;background:#fff;border:1px solid #e0e0e0;border-radius:8px;max-height:200px;overflow:auto}.le-zpl-preview h3{margin:0 0 .5rem;font-size:.875rem;color:#666}.le-zpl-preview pre{margin:0;font-size:.75rem;font-family:monospace;white-space:pre-wrap}.le-properties-empty{padding:1rem;text-align:center;color:#999;font-size:.875rem}.le-properties-content{display:flex;flex-direction:column;gap:.875rem}.le-property-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .625rem;background:#eff6ff;border:1px solid #dbeafe;border-radius:6px}.le-property-header.batch{background:#f0fdf4;border-color:#bbf7d0}.le-property-header.batch .le-element-type{color:#15803d}.le-batch-hint{margin:0;font-size:.7rem;color:#64748b;line-height:1.35}.le-property-group input.mixed,.le-property-group select.mixed,.le-property-group textarea.mixed,.le-font-family-select.mixed,.le-line-dropdown-trigger.mixed{border-color:#cbd5e1;background:#f8fafc;color:#94a3b8;font-style:italic}.le-mixed-label{font-style:italic;color:#94a3b8;flex:1;text-align:left}.le-aspect-lock-btn.mixed{border-color:#cbd5e1;color:#94a3b8}.le-align-btn.mixed{border-color:#cbd5e1;color:#94a3b8;font-style:italic}.le-justification-grid.mixed{opacity:.7}.le-element-type{font-weight:700;color:#2563eb;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.le-element-id{font-size:.7rem;color:#93a3b8;font-family:monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.le-property-group{display:flex;flex-direction:column;gap:.5rem}.le-property-group+.le-property-group{border-top:1px solid #eef1f5;padding-top:.75rem}.le-property-group h4{margin:0;font-size:.7rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.le-group-title-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.le-unit-toggle{display:inline-flex;border:1px solid #d1d9e2;border-radius:6px;overflow:hidden;flex-shrink:0}.le-unit-toggle button{padding:2px 8px;background:#f8fafc;border:none;font-size:.68rem;font-weight:600;color:#64748b;cursor:pointer;transition:all .12s}.le-unit-toggle button+button{border-left:1px solid #d1d9e2}.le-unit-toggle button:hover{background:#eef4fb;color:#2563eb}.le-unit-toggle button.active{background:#4a90d9;color:#fff}.le-font-family-select{font-size:.9375rem!important}.le-font-hint{margin:0;font-size:.68rem;color:#94a3b8;line-height:1.4}.le-font-scan-btn{align-self:flex-start;padding:3px 8px;background:transparent;border:1px dashed #c3ccd6;border-radius:6px;font-size:.7rem;color:#64748b;cursor:pointer;transition:all .12s}.le-font-scan-btn:hover:not(:disabled){border-color:#4a90d9;color:#2563eb;background:#eef4fb}.le-font-scan-btn:disabled{opacity:.6;cursor:wait}.le-property-group label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:#666}.le-property-group input[type=number],.le-property-group input[type=text],.le-property-group select{padding:.5rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;width:100%;box-sizing:border-box}.le-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}.le-property-row{display:flex;gap:.5rem}.le-property-row label{flex:1}.le-checkbox-label{display:flex;flex-direction:row!important;align-items:center;gap:.5rem;cursor:pointer}.le-checkbox-label input[type=checkbox]{width:auto;margin:0}.le-line-dropdown-wrap{position:relative;display:flex;flex-direction:column;gap:.375rem}.le-line-dropdown-trigger{display:flex;align-items:center;gap:.5rem;width:100%;padding:.375rem .5rem;background:#f9fafb;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;text-align:left;transition:border-color .15s}.le-line-dropdown-trigger:hover{border-color:#bbb}.le-line-dropdown-trigger span{flex:1;font-size:.75rem;color:#444}.le-line-dropdown-chevron{width:12px;height:12px;color:#888;flex-shrink:0}.le-line-dropdown-list{position:absolute;top:calc(100% + 2px);left:0;right:0;background:#fff;border:1px solid #dadce0;border-radius:6px;box-shadow:0 4px 12px #0000001f;padding:3px 0;z-index:900;max-height:240px;overflow-y:auto}.le-line-dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.35rem .5rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .08s}.le-line-dropdown-item:hover{background:#f0f3f7}.le-line-dropdown-item.active{background:#e0f0ff}.le-line-dropdown-item span{font-size:.7rem;color:#444}.le-line-dropdown-item.active span{color:#2563eb;font-weight:600}.le-line-preview{width:40px;height:16px;flex-shrink:0}.le-line-sub-setting{display:flex;align-items:center;gap:.375rem;font-size:.7rem!important;color:#666!important;flex-direction:row!important}.le-line-sub-setting input[type=range]{flex:1;height:4px;min-width:0;accent-color:#4a90d9;padding:0!important;border:none!important}.le-line-sub-value{font-size:.65rem;color:#888;min-width:28px;text-align:right;font-variant-numeric:tabular-nums}.le-file-upload-btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem .875rem;background:#f0f7ff;border:1px solid #a0c8f0;border-radius:8px;font-size:.8125rem;color:#4a90d9;cursor:pointer;transition:all .15s;font-weight:500;flex-direction:row!important;gap:0!important}.le-file-upload-btn:hover{background:#d0e8ff;border-color:#4a90d9}.le-align-grid{display:flex;flex-direction:column;gap:0;border:1px solid #d1d5db;border-radius:6px;overflow:hidden}.le-align-row{display:flex}.le-align-row:not(:first-child){border-top:1px solid #d1d5db}.le-align-btn{flex:1;display:flex;align-items:center;justify-content:center;padding:6px 0;background:#f9fafb;border:none;cursor:pointer;transition:all .12s}.le-align-btn:not(:first-child){border-left:1px solid #d1d5db}.le-align-btn svg{width:18px;height:18px;color:#6b7280}.le-align-btn svg line{stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.le-align-btn:hover{background:#e5e7eb}.le-align-btn.active{background:#dbeafe}.le-align-btn.active svg{color:#2563eb}.le-align-justify-row{margin-top:6px}.le-align-justify-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 0;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.75rem;color:#6b7280;transition:all .12s}.le-align-justify-btn:hover{background:#e5e7eb}.le-align-justify-btn.active{background:#dbeafe;border-color:#3b82f6;color:#2563eb}.le-align-justify-btn svg{width:14px;height:14px}.le-variable-buttons{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}.le-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}.le-variable-buttons button:hover{background:#c0e0ff;border-color:#4a90d9}.le-sample-data{display:flex;flex-direction:column;gap:.375rem}.le-product-picker{position:relative;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid #f0f0f0}.le-product-picker-label{font-size:.7rem;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.3rem}.le-product-picker-search{position:relative}.le-product-picker-input{width:100%;box-sizing:border-box;padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.78rem;color:#333;background:#fff}.le-product-picker-input:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d926}.le-product-picker-selected{display:flex;align-items:center;gap:.35rem;padding:.3rem .4rem .3rem .5rem;border:1px solid #bfdbfe;border-radius:4px;background:#eff6ff}.le-product-picker-selected-text{flex:1;min-width:0;font-size:.78rem;font-weight:500;color:#1d4ed8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.le-product-picker-clear{flex-shrink:0;width:1.25rem;height:1.25rem;border:none;border-radius:3px;background:transparent;color:#64748b;font-size:1rem;line-height:1;cursor:pointer}.le-product-picker-clear:hover{background:#dbeafe;color:#1e3a8a}.le-product-picker-dropdown{position:absolute;left:0;right:0;top:100%;z-index:30;max-height:220px;overflow-y:auto;margin-top:2px;background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 8px 20px #0000001a}.le-product-picker-option{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;width:100%;padding:.4rem .55rem;border:none;background:none;text-align:left;cursor:pointer}.le-product-picker-option:hover{background:#f0f7ff}.le-product-picker-option-num{font-size:.72rem;font-family:monospace;font-weight:600;color:#4a90d9}.le-product-picker-option-name{font-size:.75rem;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.le-product-picker-empty{padding:.65rem .55rem;font-size:.75rem;color:#999}.le-product-picker-error{margin-top:.25rem;font-size:.7rem;color:#dc2626}.le-product-picker-hint{margin:.3rem 0 0;font-size:.65rem;color:#999;line-height:1.35}.le-sample-item{display:flex;justify-content:space-between;font-size:.875rem;padding:.25rem 0;border-bottom:1px solid #e0e0e0}.le-sample-label{color:#666}.le-sample-value{color:#333;font-weight:500;font-family:monospace;font-size:.8rem;max-width:140px;overflow:hidden;text-overflow:ellipsis}.le-menubar{display:flex;align-items:center;height:34px;padding:0 .5rem;background:#fff;border-bottom:1px solid #e0e0e0;flex-shrink:0;gap:0;-webkit-user-select:none;user-select:none}.le-menubar-left{display:flex;align-items:center;flex-shrink:0}.le-menubar-center{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;min-width:0}.le-menubar-right{display:flex;align-items:center;flex-shrink:0}.le-menu-wrapper{position:relative}.le-menu-trigger{padding:.25rem .625rem;background:none;border:none;font-size:.8125rem;color:#444;cursor:pointer;border-radius:4px;transition:background .1s;line-height:1}.le-menu-trigger:hover,.le-menu-trigger.active{background:#e8eaed;color:#111}.le-menu-dropdown{position:absolute;top:calc(100% + 2px);left:0;min-width:200px;background:#fff;border:1px solid #dadce0;border-radius:6px;box-shadow:0 4px 16px #0000001f;padding:4px 0;z-index:9000}.le-submenu-dropdown{top:-4px;left:100%}.le-submenu-trigger{position:relative;cursor:default}.le-menu-item-arrow{margin-left:auto;font-size:.6rem;color:#888}.le-menu-item{display:flex;align-items:center;width:100%;padding:.375rem .75rem;background:none;border:none;font-size:.8125rem;color:#333;cursor:pointer;text-align:left;gap:0;transition:background .08s}.le-menu-item:hover{background:#f0f3f7}.le-menu-item.disabled{color:#bbb;cursor:default}.le-menu-item.disabled:hover{background:none}.le-menu-item-check{width:20px;flex-shrink:0;font-size:.75rem;color:#4a90d9;text-align:center}.le-menu-item-label{flex:1;white-space:nowrap}.le-menu-item-shortcut{margin-left:1.5rem;font-size:.7rem;color:#999;white-space:nowrap}.le-menu-separator{height:1px;background:#e8e8e8;margin:4px 0}.le-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:4px;cursor:pointer;color:#666;transition:all .15s}.le-close-btn:hover{background:#fee2e2;color:#dc2626}.le-close-btn svg{width:16px;height:16px}.le-template-name{font-size:.8125rem;font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px;background:none;border:1px solid transparent;border-radius:5px;padding:.15rem .4rem;cursor:text;font-family:inherit}.le-template-name:hover{background:#f1f5f9;border-color:#e2e8f0}.le-template-name-input{font-size:.8125rem;font-weight:600;color:#333;font-family:inherit;width:260px;max-width:40vw;padding:.15rem .4rem;border:1px solid #4a90d9;border-radius:5px;outline:none;box-shadow:0 0 0 3px #4a90d91f}.le-unsaved-dot{width:7px;height:7px;background:#f59e0b;border-radius:50%;flex-shrink:0;animation:le-pulse 2s ease-in-out infinite}.le-ver-badge{font-size:.7rem;font-weight:600;font-family:monospace;color:#475569;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:5px;padding:.1rem .4rem;flex-shrink:0;white-space:nowrap}.le-status-pill{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:.15rem .5rem;flex-shrink:0;white-space:nowrap}.le-status-pill.draft{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.le-status-pill.released{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}@keyframes le-pulse{0%,to{opacity:1}50%{opacity:.4}}.le-shortcuts-modal{max-width:360px;width:90vw}.le-shortcuts-body{padding:.75rem 1rem 1rem;display:flex;flex-direction:column;gap:.5rem}.le-shortcut-row{display:flex;align-items:center;justify-content:space-between;font-size:.8125rem;color:#444}.le-shortcut-row kbd{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.7rem;padding:.15rem .4rem;background:#f3f4f6;border:1px solid #d1d5db;border-radius:4px;color:#555}.le-shortcut-keys{display:inline-flex;align-items:center;gap:.35rem}.le-toast{position:fixed;top:42px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:500;box-shadow:0 4px 16px #00000026;z-index:1000;animation:le-toast-in .25s ease-out}@keyframes le-toast-in{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.le-toast svg{width:18px;height:18px;flex-shrink:0}.le-toast-success{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.le-toast-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.le-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:900;animation:le-overlay-in .15s ease-out}@keyframes le-overlay-in{0%{opacity:0}to{opacity:1}}.le-modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0003;width:560px;max-width:92vw;max-height:80vh;display:flex;flex-direction:column;animation:le-modal-in .2s ease-out}.le-modal-sm{width:420px}@keyframes le-modal-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.le-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid #e0e0e0;flex-shrink:0}.le-modal-header h2{margin:0;font-size:1.1rem;font-weight:600;color:#333}.le-modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:none;border-radius:6px;cursor:pointer;color:#999;transition:all .15s}.le-modal-close:hover{background:#f0f0f0;color:#333}.le-modal-close svg{width:18px;height:18px}.le-modal-body{padding:1.25rem;overflow-y:auto;flex:1;min-height:0}.le-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;padding:.875rem 1.25rem;border-top:1px solid #e0e0e0;flex-shrink:0}.le-modal-error{padding:.625rem .875rem;background:#fee2e2;color:#991b1b;border-radius:6px;font-size:.8125rem;margin-bottom:.75rem}.le-modal-loading{text-align:center;padding:2rem 0;color:#999;font-size:.875rem}.le-modal-empty{display:flex;flex-direction:column;align-items:center;padding:2.5rem 1rem;text-align:center}.le-modal-empty p{margin:0;color:#999;font-size:.9375rem}.le-modal-empty-hint{font-size:.8125rem!important;margin-top:.375rem!important;color:#bbb!important}.le-modal-wide{width:780px}.le-template-table{width:100%;border-collapse:collapse;font-size:.8125rem}.le-template-table th{text-align:left;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;padding:.4rem .625rem;border-bottom:2px solid #e2e8f0;white-space:nowrap}.le-template-table td{padding:.55rem .625rem;border-bottom:1px solid #eef1f5;vertical-align:middle}.le-template-table tbody tr{cursor:pointer;transition:background .1s}.le-template-table tbody tr:hover{background:#f8fbff}.le-template-table tbody tr.loading{opacity:.6}.le-template-table .le-tt-num{text-align:right;white-space:nowrap}.le-tt-name{max-width:240px}.le-tt-name-text{font-weight:600;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.le-tt-desc{font-size:.72rem;color:#94a3b8;margin-top:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}.le-tt-muted{color:#64748b;white-space:nowrap}.le-tt-actions-col{width:1%}.le-tt-actions{text-align:right;white-space:nowrap}.le-tt-actions>*{display:inline-flex;align-items:center;vertical-align:middle}.le-tt-actions>*+*{margin-left:.375rem}.le-template-item-loading{font-size:.75rem;color:#4a90d9}.le-tt-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:none;border:1px solid transparent;border-radius:6px;cursor:pointer;color:#94a3b8;transition:all .15s}.le-tt-action-btn:hover{background:#eff6ff;color:#2563eb;border-color:#bfdbfe}.le-tt-action-btn.le-tt-delete-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.le-tt-action-btn:disabled{opacity:.4;cursor:not-allowed}.le-tt-action-btn svg{width:15px;height:15px}.le-tt-text-btn{font-size:.75rem;font-weight:600;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;padding:.25rem .625rem;cursor:pointer;transition:all .15s}.le-tt-text-btn:hover{background:#dbeafe}.le-tt-text-btn:disabled{opacity:.5;cursor:not-allowed}.le-tt-text-btn.le-tt-revert-btn{color:#92400e;background:#fffbeb;border-color:#fde68a}.le-tt-text-btn.le-tt-revert-btn:hover{background:#fef3c7}.le-current-tag{font-size:.65rem;font-weight:600;color:#2563eb;margin-left:.375rem}.le-history-hint{margin:0 0 .75rem;font-size:.75rem;color:#64748b;line-height:1.4}.le-save-field{display:flex;flex-direction:column;gap:.375rem;font-size:.8125rem;color:#555;margin-bottom:.875rem}.le-save-field:last-child{margin-bottom:0}.le-save-field span{font-weight:500}.le-save-field input[type=text],.le-save-field textarea{padding:.5rem .625rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.875rem;color:#333;width:100%;box-sizing:border-box;transition:border-color .15s}.le-save-field input[type=text]:focus,.le-save-field textarea:focus{border-color:#4a90d9;outline:none;box-shadow:0 0 0 2px #4a90d926}.le-save-field textarea{resize:vertical;font-family:inherit}.le-btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s;border:1px solid transparent}.le-btn:disabled{opacity:.6;cursor:not-allowed}.le-btn-primary{background:#4a90d9;color:#fff;border-color:#4a90d9}.le-btn-primary:hover:not(:disabled){background:#3a7bc8}.le-btn-secondary{background:#fff;color:#555;border-color:#e0e0e0}.le-btn-secondary:hover:not(:disabled){background:#f5f5f5;border-color:#ccc}.le-device-selector-row{display:flex;flex-direction:column;gap:.5rem;padding:.5rem .625rem;background:#fef9c3;border:1px solid #fde68a;border-radius:6px;margin-bottom:.5rem}.le-device-label{display:flex;align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;color:#92400e;text-transform:uppercase}.le-device-selected{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.le-device-serial{font-size:.8125rem;font-weight:600;font-family:monospace;color:#333}.le-device-type{font-size:.75rem;color:#666}.le-device-change-btn{padding:.2rem .5rem;background:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:.7rem;color:#4a90d9;cursor:pointer;transition:all .15s;margin-left:auto}.le-device-change-btn:hover{background:#e0f0ff;border-color:#4a90d9}.le-device-pick-btn{display:flex;align-items:center;gap:.375rem;padding:.4rem .75rem;background:#fff;border:1px solid #e0e0e0;border-radius:6px;font-size:.8125rem;color:#4a90d9;cursor:pointer;transition:all .15s}.le-device-pick-btn:hover{background:#e0f0ff;border-color:#4a90d9}.le-resolving-indicator{display:flex;align-items:center;gap:.375rem;padding:.375rem 0;font-size:.75rem;color:#4a90d9}.le-sample-empty{text-align:center;padding:.75rem 0}.le-sample-empty p{margin:.25rem 0;font-size:.8125rem;color:#999}.le-sample-empty-hint{font-size:.75rem!important;color:#bbb!important}.le-sample-empty-hint code{background:#f0f0f0;padding:.1rem .25rem;border-radius:3px;font-size:.7rem}.le-resolved-vars{display:flex;flex-direction:column;gap:.25rem}.le-resolved-var-item{padding:.375rem .5rem;border:1px solid #f0f0f0;border-radius:6px;background:#fafafa;transition:all .15s}.le-resolved-var-item:hover{border-color:#ddd}.le-resolved-var-item.le-var-error{border-color:#fca5a5;background:#fef2f2}.le-resolved-var-item.le-var-needs-device{border-color:#fde68a;background:#fffbeb}.le-var-header{display:flex;align-items:center;gap:.375rem}.le-var-name{font-size:.75rem;font-weight:600;font-family:monospace;color:#4a90d9}.le-var-badge{display:inline-flex;align-items:center;gap:2px;padding:1px 4px;border-radius:3px;font-size:.6rem;font-weight:600;text-transform:uppercase}.le-var-badge-device{background:#fef3c7;color:#92400e}.le-var-badge-unknown{background:#fee2e2;color:#b91c1c}.le-var-badge-manual{background:#dbeafe;color:#1d4ed8}.le-var-badge-product{background:#ede9fe;color:#6d28d9}.le-var-badge-parameter{background:#d1fae5;color:#047857}.le-resolved-var-item.le-var-manual{border-color:#bfdbfe;background:#eff6ff}.le-resolved-var-item.le-var-product{border-color:#ddd6fe;background:#f5f3ff}.le-resolved-var-item.le-var-parameter{border-color:#a7f3d0;background:#ecfdf5}.le-var-manual-edit{margin-top:.3rem}.le-var-manual-input{width:100%;box-sizing:border-box;padding:.3rem .45rem;border:1px solid #d1d5db;border-radius:4px;font-size:.78rem;font-family:monospace;color:#333;background:#fff}.le-var-manual-input:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d926}.le-var-manual-hint{margin-top:.2rem;font-size:.65rem;color:#999;line-height:1.35}.le-var-description{font-size:.7rem;color:#888;margin-top:.125rem}.le-var-value{margin-top:.2rem}.le-var-value-resolved{font-size:.8rem;font-family:monospace;color:#333;font-weight:500;word-break:break-all}.le-var-value-error{font-size:.75rem;color:#dc2626;font-style:italic}.le-var-value-pending{font-size:.75rem;color:#999;font-style:italic}.le-modal-lg{width:780px;max-height:85vh}.le-modal-header h2{display:flex;align-items:center;gap:.5rem}.le-picker-filters{display:flex;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid #f0f0f0;background:#fafafa}.le-picker-search{display:flex;align-items:center;gap:.5rem;flex:1;padding:.5rem .75rem;background:#fff;border:1px solid #e0e0e0;border-radius:6px;transition:border-color .15s}.le-picker-search:focus-within{border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d91a}.le-picker-search input{flex:1;border:none;outline:none;font-size:.875rem;color:#333;background:transparent}.le-picker-search svg{color:#999;flex-shrink:0}.le-picker-type-filter{padding:.5rem .75rem;border:1px solid #e0e0e0;border-radius:6px;font-size:.8125rem;color:#555;background:#fff;cursor:pointer;min-width:160px}.le-picker-body{max-height:42vh;overflow-y:auto}.le-picker-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;color:#999;font-size:.875rem}.le-picker-empty{padding:3rem 1rem;text-align:center;color:#999;font-size:.9rem}.le-picker-table{width:100%;border-collapse:collapse}.le-picker-table thead{position:sticky;top:0;z-index:1}.le-picker-table th{padding:.5rem .75rem;text-align:left;font-size:.75rem;font-weight:600;color:#666;background:#f5f5f5;border-bottom:1px solid #e0e0e0;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.le-picker-table th:hover{color:#333;background:#eee}.le-picker-table td{padding:.5rem .75rem;border-bottom:1px solid #f0f0f0;font-size:.8125rem;color:#333}.le-picker-row{cursor:pointer;transition:background-color .1s}.le-picker-row:hover{background:#f0f7ff}.le-picker-mono{font-family:monospace;font-size:.8rem}.le-sort-icon{font-size:.75rem;margin-left:.25rem}.le-sort-idle{color:#ccc}.le-picker-status{display:inline-block;padding:.125rem .5rem;border-radius:10px;font-size:.7rem;font-weight:600;text-transform:uppercase}.le-picker-status.active{background:#dcfce7;color:#166534}.le-picker-status.inactive{background:#f5f5f5;color:#999}.le-picker-status.unknown{background:#f5f5f5;color:#bbb}.le-picker-footer{display:flex;align-items:center;justify-content:space-between;padding:.625rem 1rem;border-top:1px solid #e0e0e0;background:#fafafa}.le-picker-info{font-size:.75rem;color:#888}.le-picker-pages{display:flex;align-items:center;gap:.25rem}.le-picker-page-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:.8rem;color:#666;cursor:pointer;transition:all .12s}.le-picker-page-btn:hover:not(:disabled){background:#e0f0ff;border-color:#4a90d9;color:#4a90d9}.le-picker-page-btn:disabled{opacity:.4;cursor:not-allowed}.le-picker-page-active{background:#4a90d9!important;border-color:#4a90d9!important;color:#fff!important}.le-picker-ellipsis{font-size:.75rem;color:#bbb;padding:0 .25rem}.le-size-justify-row{display:flex;align-items:center;gap:12px}.le-size-fields{flex:1;display:flex;flex-direction:column;gap:6px}.le-aspect-lock-btn{align-self:center;display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:#f8fafc;border:1px solid #d1d9e2;border-radius:6px;color:#8b95a5;cursor:pointer;transition:all .12s;flex-shrink:0}.le-aspect-lock-btn svg{width:14px;height:14px}.le-aspect-lock-btn:hover{border-color:#4a90d9;color:#4a90d9;background:#eef4fb}.le-aspect-lock-btn.active{background:#4a90d9;border-color:#4a90d9;color:#fff}.le-text-align-row{display:flex;align-items:flex-start;gap:10px}.le-text-align-row .le-align-justify-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 0;background:#f3f4f6;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;font-size:.8125rem;color:#6b7280;transition:all .12s;align-self:stretch}.le-text-align-row .le-align-justify-btn:hover{background:#e5e7eb}.le-text-align-row .le-align-justify-btn.active{background:#dbeafe;border-color:#93c5fd;color:#2563eb}.le-text-align-row .le-align-justify-btn svg{width:16px;height:16px}.le-text-align-row .le-align-justify-btn svg line{stroke:currentColor;stroke-width:1.5;stroke-linecap:round}.le-justification-grid{position:relative;width:44px;height:44px;flex-shrink:0}.le-justification-lines{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.le-justification-lines line{stroke:#c8ccd0;stroke-width:1.2;stroke-linecap:round}.le-justification-node{position:absolute;width:8px;height:8px;margin-left:-4px;margin-top:-4px;border:1.5px solid #a0a7b0;border-radius:1.5px;background:#fff;padding:0;cursor:pointer;transition:all .12s;z-index:1}.le-justification-node:hover{border-color:#4a90d9;background:#e8f0fe;transform:scale(1.25)}.le-justification-node.active{background:#4a90d9;border-color:#4a90d9;box-shadow:0 0 0 2px #4a90d940}.le-image-library-modal{width:760px;max-height:85vh}.le-image-library-body{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.le-image-library-filters{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px;border-bottom:1px solid #eee;align-items:center}.le-filter-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid #ddd;border-radius:14px;background:#fff;color:#555;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.le-filter-pill:hover{border-color:#aaa;background:#f5f5f5}.le-filter-pill.active{background:#4a90d9;border-color:#4a90d9;color:#fff}.le-filter-count{background:#0000001a;border-radius:8px;padding:0 5px;font-size:10px;min-width:16px;text-align:center}.le-filter-pill.active .le-filter-count{background:#ffffff40}.le-filter-delete{margin-left:2px;font-size:14px;line-height:1;opacity:.7;cursor:pointer}.le-filter-delete:hover{opacity:1}.le-filter-add{font-size:16px;font-weight:600;padding:4px 10px;color:#888;border-style:dashed}.le-filter-add:hover{color:#4a90d9;border-color:#4a90d9}.le-new-group-inline{display:inline-flex;align-items:center;gap:4px}.le-new-group-inline input{width:110px;padding:3px 8px;border:1px solid #ccc;border-radius:10px;font-size:12px;outline:none}.le-new-group-inline input:focus{border-color:#4a90d9}.le-new-group-inline button{padding:3px 8px;border:1px solid #4a90d9;border-radius:10px;background:#4a90d9;color:#fff;font-size:14px;font-weight:600;cursor:pointer;line-height:1}.le-image-library-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-bottom:1px solid #f0f0f0}.le-lib-upload-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border:1px solid #4a90d9;border-radius:6px;background:#f0f7ff;color:#4a90d9;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.le-lib-upload-btn:hover{background:#d0e8ff}.le-lib-upload-btn:disabled{opacity:.6;cursor:wait}.le-lib-count{font-size:12px;color:#999}.le-image-library-loading,.le-image-library-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:#999;font-size:14px;text-align:center}.le-image-library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:14px 16px;overflow-y:auto;flex:1;min-height:0}.le-lib-image-card{border:1px solid #e8e8e8;border-radius:8px;overflow:hidden;background:#fff;cursor:pointer;transition:all .15s;display:flex;flex-direction:column}.le-lib-image-card:hover{border-color:#4a90d9;box-shadow:0 2px 8px #4a90d926}.le-lib-image-card.deleted{opacity:.5;cursor:default}.le-lib-image-card.deleted:hover{border-color:#ccc;box-shadow:none}.le-lib-image-thumb{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:#fafafa;overflow:hidden;border-bottom:1px solid #f0f0f0}.le-lib-image-thumb img{max-width:100%;max-height:100%;object-fit:contain}.le-lib-image-info{padding:6px 8px 2px;min-height:32px}.le-lib-image-name{display:block;font-size:11px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text;padding:1px 2px;border-radius:3px}.le-lib-image-name:hover{background:#f0f7ff}.le-lib-rename-input{width:100%;padding:1px 3px;border:1px solid #4a90d9;border-radius:3px;font-size:11px;font-weight:500;outline:none;box-sizing:border-box}.le-lib-image-meta{display:block;font-size:10px;color:#aaa;margin-top:1px}.le-lib-image-actions{display:flex;align-items:center;gap:2px;padding:4px 6px 6px}.le-lib-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:#999;cursor:pointer;transition:all .15s;padding:0}.le-lib-action-btn:hover{background:#f0f0f0;color:#555}.le-lib-action-btn.active{color:#f59e0b}.le-lib-delete-btn:hover{background:#fee2e2;color:#dc2626}.le-lib-group-select{flex:1;min-width:0;padding:2px 4px;border:1px solid #e0e0e0;border-radius:4px;font-size:10px;color:#666;background:#fff;cursor:pointer;outline:none}.le-lib-group-select:focus{border-color:#4a90d9}.le-image-source-buttons{display:flex;gap:6px}.le-image-source-buttons .le-file-upload-btn{flex:1;padding:.4rem .5rem;font-size:12px}.le-lib-choose-btn{background:#f5f0ff!important;border-color:#c4b5fd!important;color:#7c3aed!important}.le-lib-choose-btn:hover{background:#ede9fe!important;border-color:#7c3aed!important}.le-save-to-lib-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:4px 8px;margin-top:6px;border:1px dashed #c4b5fd;border-radius:6px;background:transparent;color:#7c3aed;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.le-save-to-lib-btn:hover{background:#f5f0ff;border-color:#7c3aed}.le-lib-badge{display:inline-block;margin-top:4px;padding:1px 6px;background:#f0f7ff;border:1px solid #c4d9f5;border-radius:8px;font-size:10px;font-weight:500;color:#4a90d9}.le-crop-controls{display:flex;gap:6px}.le-crop-btn{flex:1;padding:.4rem .5rem;font-size:12px}.le-crop-btn.active{background:#d0e8ff;border-color:#4a90d9;box-shadow:inset 0 1px 3px #0000001a}.le-crop-reset-btn{padding:.4rem .5rem;font-size:12px;background:#fff5f5!important;border-color:#fca5a5!important;color:#dc2626!important}.le-crop-reset-btn:hover{background:#fee2e2!important;border-color:#dc2626!important}.le-crop-info{margin-top:4px;font-size:11px;color:#888;font-variant-numeric:tabular-nums}.le-crop-toolbar{position:absolute;top:8px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;padding:6px 12px;background:#1e1e1ed9;border-radius:8px;z-index:10;box-shadow:0 2px 8px #00000040}.le-crop-toolbar-label{font-size:12px;font-weight:600;color:#fff;margin-right:4px}.le-crop-apply-btn,.le-crop-cancel-btn{padding:4px 12px;border:none;border-radius:5px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.le-crop-apply-btn{background:#4a90d9;color:#fff}.le-crop-apply-btn:hover{background:#3578c0}.le-crop-cancel-btn{background:#ffffff26;color:#fff}.le-crop-cancel-btn:hover{background:#ffffff40}.le-print-modal{width:380px}.le-print-preview{display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#f0f0f0,#f0f0f0 25%,#fff 0%,#fff 50%) 50% / 16px 16px;border:1px solid #e0e0e0;border-radius:6px;padding:12px;min-height:90px;margin-bottom:12px}.le-print-preview img{max-width:100%;max-height:160px;background:transparent;filter:drop-shadow(0 1px 3px rgba(0,0,0,.18))}.le-print-preview-loading{font-size:.8rem;color:#888}.le-print-meta{display:flex;flex-direction:column;gap:6px}.le-print-meta-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8rem}.le-print-meta-row>span:first-child{color:#888;font-weight:600;flex-shrink:0}.le-print-meta-row>span:last-child{text-align:right;color:#333}.le-print-meta-row input[type=number]{width:64px;padding:4px 6px;border:1px solid #ccc;border-radius:4px;font-size:.8rem;text-align:right}.le-print-method-missing{color:#c0392b!important}.le-print-result{margin-top:10px;padding:8px 10px;border-radius:6px;font-size:.8rem}.le-print-result.success{background:#e8f5e9;color:#256029;border:1px solid #c8e6c9}.le-print-result.error{background:#fdecea;color:#b23b2e;border:1px solid #f5c6c0}.le-print-office{margin-top:12px;padding-top:12px;border-top:1px solid #e8e8e8}.le-print-office-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.8rem;margin-bottom:8px}.le-print-office-row>span{color:#888;font-weight:600}.le-print-office-check{display:flex;align-items:center;gap:6px;color:#333;cursor:pointer;-webkit-user-select:none;user-select:none}.le-print-office-check input{margin:0}.le-print-office-btn{width:100%}.le-print-office-hint{margin:8px 0 0;font-size:.7rem;color:#999;line-height:1.45}.le-sample-note{margin:8px 0 0;font-size:.7rem;color:#999}.le-variable-catalog{display:flex;flex-direction:column;gap:8px}.le-variable-catalog-hint{margin:0;font-size:.7rem;color:#999}.le-variable-group h5{margin:6px 0 4px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#888}.le-variable-chip{display:inline-block;margin:0 4px 4px 0;padding:3px 8px;font-size:.7rem;font-family:SF Mono,Consolas,monospace;background:#f0f4f8;border:1px solid #d8e0e8;border-radius:10px;color:#2d5f70;cursor:pointer;transition:background .15s ease}.le-variable-chip:hover:not(:disabled){background:#dcebf2;border-color:#a8c8d8}.le-variable-chip:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 900px){.label-editor-main{grid-template-columns:1fr}.le-sidebar{border-right:none;border-bottom:1px solid #d9dfe7;max-height:40vh}.le-sidebar-right{border-left:none;border-top:1px solid #d9dfe7}.le-panel-resizer,.le-menubar-center{display:none}.le-modal-lg{width:95vw}.le-picker-filters{flex-direction:column}.le-picker-type-filter{min-width:0}}.le-import-modal{width:640px;max-width:92vw}.le-import-summary{display:flex;flex-direction:column;gap:.375rem;padding:.75rem .875rem;background:#f8f9fb;border:1px solid #e4e8ee;border-radius:8px;margin-bottom:.875rem}.le-import-summary-row{display:flex;align-items:baseline;gap:.75rem;font-size:.8125rem}.le-import-summary-row>span{flex:0 0 90px;color:#7a8494}.le-import-summary-row>strong{color:#2c3442;font-weight:600;overflow-wrap:anywhere}.le-import-doc-badge{display:inline-block;margin-left:.375rem;padding:.0625rem .4375rem;background:#e7f0ff;color:#2563eb;border-radius:999px;font-size:.6875rem;font-weight:600;white-space:nowrap}.le-import-warnings{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.875rem}.le-import-warning{padding:.5rem .75rem;background:#fef9e7;border:1px solid #f5e6b8;color:#8a6d1a;border-radius:6px;font-size:.78125rem}.le-import-images h3{display:flex;align-items:baseline;gap:.5rem;margin:0 0 .25rem;font-size:.9375rem;color:#2c3442}.le-import-images-count{font-size:.75rem;font-weight:500;color:#7a8494}.le-import-images-hint{margin:0 0 .75rem;font-size:.78125rem;line-height:1.45;color:#66707e}.le-import-image-row{display:flex;gap:.875rem;align-items:flex-start;padding:.75rem;border:1px solid #e4e8ee;border-radius:8px;margin-bottom:.625rem;background:#fff;transition:opacity .15s}.le-import-image-row.skipped{opacity:.55;background:#fafafa}.le-import-image-thumb{flex:0 0 64px;height:64px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(#f0f0f0,#f0f0f0 25%,#fff 0%,#fff 50%) 0 0 / 16px 16px;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden}.le-import-image-thumb img{max-width:100%;max-height:100%;object-fit:contain}.le-import-image-missing{font-size:1.5rem;color:#b6bec9;font-weight:700}.le-import-image-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.375rem}.le-import-badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.6875rem;font-weight:600}.le-import-badge.embedded{background:#e8f6ee;color:#177245}.le-import-badge.linked{background:#fdeeee;color:#b91c1c}.le-import-image-path{font-size:.75rem;font-family:SF Mono,Consolas,monospace;color:#7a8494;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.le-import-image-name{display:flex;align-items:center;gap:.5rem;font-size:.78125rem;color:#66707e}.le-import-image-name input{flex:1;min-width:0;padding:.3125rem .5rem;border:1px solid #d4dae2;border-radius:6px;font-size:.8125rem}.le-import-image-name input:focus{outline:none;border-color:#2563eb}.le-import-image-actions{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:.5rem}.le-import-upload-btn{text-align:center;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.le-import-upload-btn.disabled{pointer-events:none;opacity:.6}.le-import-skip{display:flex;align-items:center;gap:.375rem;font-size:.75rem;color:#66707e;cursor:pointer;-webkit-user-select:none;user-select:none}.le-import-footer{justify-content:flex-end}.le-import-footer-note{margin-right:auto;font-size:.75rem;color:#b45309}.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-left{display:flex;align-items:center;gap:16px;min-width:0}.order-lists-page .header-right{display:flex;align-items:center;gap:16px}.order-lists-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;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 .header-left .page-title{display:flex;align-items:center}.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 .page-title h1{font-size:18px}.order-lists-page .page-title p{display:none}.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)}}.documents-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%)}.documents-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)}.documents-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.documents-page .header-right{display:flex;align-items:center;gap:16px}.documents-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.documents-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.documents-page .back-button svg{width:18px;height:18px}.documents-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.documents-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.documents-page .page-content{flex:1;padding:24px 32px;max-width:1400px;width:100%;margin:0 auto;box-sizing:border-box}.documents-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.documents-toolbar .toolbar-search{position:relative;flex:1;min-width:220px;max-width:420px}.documents-toolbar .toolbar-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.documents-toolbar .toolbar-search input{width:100%;padding:9px 12px 9px 36px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);box-sizing:border-box;transition:border-color var(--transition-fast)}.documents-toolbar .toolbar-search input:focus{outline:none;border-color:var(--color-primary)}.documents-toolbar .toolbar-filter{padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);cursor:pointer}.documents-toolbar .toolbar-mfr-filter{width:200px;min-width:160px}.documents-toolbar .toolbar-mfr-filter .mfr-combobox input{padding:9px 12px;border-radius:var(--radius-md);font-size:14px}.documents-page .optional-hint{font-weight:400;color:var(--color-text-tertiary);font-size:12px}.documents-toolbar .toolbar-count{font-size:13px;color:var(--color-text-tertiary);white-space:nowrap}.documents-toolbar .toolbar-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.documents-toolbar .toolbar-toggle input{width:14px;height:14px;accent-color:var(--color-primary, #2563eb);cursor:pointer}.documents-toolbar .upload-btn{display:inline-flex;align-items:center;gap:8px;margin-left:auto;padding:9px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.documents-toolbar .upload-btn:hover{background:var(--color-primary-hover, var(--color-primary));transform:translateY(-1px)}.documents-error{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 14px;margin-bottom:12px;background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626);border-radius:var(--radius-md);font-size:13px}.documents-error button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px}.documents-table-wrapper{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.documents-placeholder{padding:48px 24px;text-align:center;font-size:14px;color:var(--color-text-tertiary)}.documents-table{width:100%;border-collapse:collapse;font-size:14px}.documents-table thead{background:var(--color-bg-secondary)}.documents-table th{padding:6px 14px;text-align:left;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.documents-table td{padding:4px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle}.documents-table tbody tr:last-child td{border-bottom:none}.documents-table tbody tr:hover,.documents-table tbody tr.doc-file-group-row:hover{background:var(--color-bg-secondary)}.documents-page .doc-file-group-row td{padding:6px 14px;background:var(--color-bg-secondary)}.documents-unused{margin-top:16px;padding:8px 10px 10px;border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.documents-unused-label{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted)}.documents-unused-hint{margin:2px 0 8px;font-size:12px;color:var(--color-text-secondary)}.documents-unused .documents-table-wrapper{border-radius:var(--radius-md)}.documents-table .col-type{width:130px}.documents-table .col-mfr{width:140px;color:var(--color-text-secondary);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.documents-table .col-links{width:90px;text-align:center;white-space:nowrap}.documents-page .doc-links-count{display:inline-block;min-width:22px;padding:1px 8px;border-radius:999px;font-size:12px;font-weight:600;background:var(--color-bg-tertiary, #f1f5f9);color:var(--color-text-secondary)}.documents-page .doc-links-none{color:var(--color-text-tertiary, #94a3b8)}.documents-table .col-size{width:80px;white-space:nowrap;color:var(--color-text-secondary)}.documents-table .col-uploaded{width:210px}.documents-table .col-actions{width:90px;text-align:right;white-space:nowrap}.documents-page .doc-type-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;background:var(--color-bg-tertiary, #f1f5f9);color:var(--color-text-secondary)}.documents-page .doc-type-badge.rohs{background:#dcfce7;color:#15803d}.documents-page .doc-type-badge.reach{background:#dbeafe;color:#1d4ed8}.documents-page .doc-type-badge.rohs_reach{background:#e0e7ff;color:#3730a3}.documents-page .doc-type-badge.rohs_reach_fmd{background:#ede9fe;color:#5b21b6}.documents-page .doc-type-badge.proprietary_waiver{background:#e2e8f0;color:#334155}.documents-page .doc-type-badge.customer_exemption_declaration{background:#dbeafe;color:#1e40af}.documents-page .doc-type-badge.datasheet{background:#fef3c7;color:#b45309}.documents-page .doc-type-badge.coc{background:#ede9fe;color:#5b21b6;text-transform:none}.documents-page .doc-type-badge.doc{background:#fae8ff;color:#a21caf;text-transform:none}.documents-page .doc-type-badge.certificate{background:#ede9fe;color:#6d28d9}.documents-page .doc-type-badge.lab{background:#ecfeff;color:#0e7490;text-transform:none}.documents-page .doc-type-badge.declaration{background:#fce7f3;color:#be185d}.documents-page .doc-type-badge.fmd{background:#ccfbf1;color:#0f766e}.documents-page .doc-type-badge.ipc1752a{background:#cffafe;color:#155e75}.documents-page .doc-type-badge.iec62474{background:#ecfccb;color:#4d7c0f}.documents-page .doc-type-badge.step{background:#e0f2fe;color:#0369a1}.documents-page .doc-type-badge.sw{background:#fee2e2;color:#b91c1c}.documents-page .doc-type-badge.iges{background:#fef9c3;color:#a16207}.documents-page .doc-type-badge.label{background:#e0e7ff;color:#3730a3}.documents-page .doc-type-badge[class~="3dpdf"]{background:#fae8ff;color:#a21caf}.documents-page .doc-file-link{display:inline-flex;align-items:center;gap:4px;color:var(--color-primary);text-decoration:none;font-weight:500}.documents-page .doc-file-link:hover{text-decoration:underline}.documents-page .doc-file-link svg{flex-shrink:0;opacity:.6}.documents-page .doc-file-open{margin-top:6px;font-size:12px}.documents-page .doc-notes{margin-top:2px;font-size:12px;color:var(--color-text-tertiary);max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.documents-page .doc-superseded-badge{display:inline-block;margin-left:8px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);padding:1px 7px;border-radius:999px;vertical-align:1px;cursor:default}.documents-page .doc-versions-toggle{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-size:10.5px;font-weight:700;color:var(--color-primary, #2563eb);background:#3b82f61a;border:1px solid rgba(59,130,246,.3);padding:1px 7px;border-radius:999px;vertical-align:1px;cursor:pointer;transition:background var(--transition-fast)}.documents-page .doc-versions-toggle:hover{background:#3b82f62e}.documents-page .doc-versions-toggle svg{transition:transform var(--transition-fast)}.documents-page .doc-versions-toggle.open svg{transform:rotate(180deg)}.documents-page .doc-version-row{background:var(--color-bg-secondary)}.documents-page .doc-version-row td{font-size:12.5px;color:var(--color-text-secondary)}.documents-page .doc-version-row .col-type{text-align:right}.documents-page .doc-version-num{display:inline-block;font-size:10.5px;font-weight:700;color:var(--color-text-secondary);background:var(--color-bg);border:1px solid var(--color-border);padding:1px 7px;border-radius:999px}.documents-page .doc-version-row .doc-file-link{color:var(--color-text-secondary)}.documents-page .doc-release-chip{display:inline-flex;align-items:center;gap:4px;margin-left:8px;font-size:10.5px;font-weight:600;color:#166534;background:#16a34a14;border:1px solid rgba(22,163,74,.35);padding:1px 7px;border-radius:999px;vertical-align:1px;cursor:default;white-space:nowrap}.documents-page .no-links{font-size:13px;color:var(--color-text-tertiary);font-style:italic}.documents-page .component-chips{display:flex;flex-wrap:wrap;gap:4px}.documents-page .component-chip{display:inline-flex;align-items:center;gap:2px;padding:2px 4px 2px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full, 999px);font-size:12px;font-family:JetBrains Mono,Fira Code,monospace;color:var(--color-text-secondary);transition:all var(--transition-fast)}.documents-page .component-chip:hover{border-color:var(--color-primary)}.documents-page .component-chip-label{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.documents-page .component-chip-label:hover{color:var(--color-primary);text-decoration:underline}.documents-page .component-chip-remove{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;padding:0;border:none;background:none;border-radius:50%;color:var(--color-text-tertiary);font-size:14px;line-height:1;cursor:pointer;transition:all var(--transition-fast)}.documents-page .component-chip-remove:hover:not(:disabled){background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626)}.documents-page .component-chip-remove:disabled{opacity:.5;cursor:not-allowed}.documents-page .component-chip-more{padding:2px 8px;font-size:12px;color:var(--color-text-tertiary)}.documents-page .doc-assign-empty{margin:0;font-size:13px;color:var(--color-text-tertiary)}.documents-page .doc-assign-search{position:relative}.documents-page .doc-assign-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.documents-page .doc-assign-search input{width:100%;padding:9px 12px 9px 34px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);font-family:inherit;box-sizing:border-box}.documents-page .doc-assign-search input:focus{outline:none;border-color:var(--color-primary)}.documents-page .doc-assign-select-all{display:flex;align-items:center;gap:8px;padding:2px 2px 2px 10px;font-size:12px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.documents-page .doc-assign-select-all input[type=checkbox]{flex-shrink:0;width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer}.documents-page .doc-assign-results{max-height:340px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.documents-page .doc-assign-status{padding:14px;text-align:center;font-size:13px;color:var(--color-text-tertiary)}.documents-page .doc-assign-result{display:flex;align-items:center;gap:8px;padding:4px 10px;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background var(--transition-fast)}.documents-page .doc-assign-result:last-child{border-bottom:none}.documents-page .doc-assign-result:hover{background:var(--color-bg-secondary)}.documents-page .doc-assign-result input[type=checkbox]{flex-shrink:0;width:15px;height:15px;accent-color:var(--color-primary);cursor:pointer}.documents-page .doc-assign-result-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:0}.documents-page .doc-assign-result-mpn{font-size:12px;font-weight:500;line-height:1.35;color:var(--color-text-primary);font-family:JetBrains Mono,Fira Code,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.documents-page .doc-assign-result-meta{display:flex;flex-wrap:wrap;gap:6px;font-size:10.5px;line-height:1.3;color:var(--color-text-tertiary)}.documents-page .doc-assign-link-btn{width:100%}.documents-page .doc-assign-more{display:block;width:100%;padding:7px 10px;background:var(--color-bg-secondary);border:none;border-top:1px solid var(--color-border);color:var(--color-primary);font-size:12px;font-weight:600;cursor:pointer;transition:background var(--transition-fast)}.documents-page .doc-assign-more:hover:not(:disabled){background:var(--color-primary-light, #e3f2fd)}.documents-page .doc-assign-more:disabled{opacity:.6;cursor:not-allowed}.documents-page .doc-assign-results-count{font-size:11px;color:var(--color-text-tertiary);text-align:right}.documents-page .modal-content.documents-edit-modal{max-width:780px}.documents-page .documents-edit-modal .modal-body{flex:1;min-height:0}.documents-page .doc-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.documents-page .doc-edit-col{display:flex;flex-direction:column;gap:14px;min-width:0}.documents-page .doc-edit-col-components{border-left:1px solid var(--color-border);padding-left:24px}.documents-page .doc-assign-head{display:flex;align-items:center;gap:8px}.documents-page .doc-assign-head label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.documents-page .doc-assign-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--color-primary-light, #e3f2fd);color:var(--color-primary-dark, #246b78);border-radius:999px;font-size:11px;font-weight:700}.documents-page .doc-assign-list{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.documents-page .doc-assign-list-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 2px 10px;border-bottom:1px solid var(--color-border)}.documents-page .doc-assign-list-item:last-child{border-bottom:none}.documents-page .doc-assign-list-item:hover{background:var(--color-bg-secondary)}.documents-page .doc-assign-list-mpn{flex:1;min-width:0;text-align:left;background:none;border:none;padding:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12.5px;color:var(--color-primary);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.documents-page .doc-assign-list-mpn:hover{text-decoration:underline}.documents-page .doc-assign-list-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast)}.documents-page .doc-assign-list-remove:hover:not(:disabled){border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626);background:var(--color-danger-bg, #fee2e2)}.documents-page .doc-assign-list-remove:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 680px){.documents-page .modal-content.documents-edit-modal{max-width:480px}.documents-page .doc-edit-grid{grid-template-columns:1fr;gap:18px}.documents-page .doc-edit-col-components{border-left:none;padding-left:0;border-top:1px solid var(--color-border);padding-top:18px}}.documents-page .uploaded-info{display:block;max-width:210px;font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.documents-page .uploaded-by{color:var(--color-text-tertiary)}.documents-page .row-action-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;margin-left:4px;background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.documents-page .row-action-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.documents-page .row-action-btn.danger:hover{border-color:var(--color-danger, #dc2626);color:var(--color-danger, #dc2626);background:var(--color-danger-bg, #fee2e2)}.documents-page .row-action-btn:disabled{opacity:.5;cursor:not-allowed}.documents-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:16px;font-size:13px;color:var(--color-text-secondary)}.documents-pagination button{padding:6px 14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.documents-pagination button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.documents-pagination button:disabled{opacity:.5;cursor:not-allowed}.documents-page .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}.documents-page .modal-content{background:var(--color-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.documents-page .documents-upload-modal{max-width:640px;overflow:visible}.documents-page .documents-upload-modal .modal-body{overflow:visible}.documents-page .modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.documents-page .modal-header h2{margin:0;font-size:18px;font-weight:600;color:var(--color-text-primary)}.documents-page .close-btn{background:none;border:none;font-size:22px;color:var(--color-text-tertiary);cursor:pointer;padding:0 4px;line-height:1}.documents-page .close-btn:hover{color:var(--color-text-primary)}.documents-page .modal-body{padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.documents-page .modal-error{padding:8px 12px;background:var(--color-danger-bg, #fee2e2);color:var(--color-danger, #dc2626);border-radius:var(--radius-md);font-size:13px}.documents-page .form-field{display:flex;flex-direction:column;gap:6px}.documents-page .form-field label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.documents-page .form-field input[type=text],.documents-page .form-field select,.documents-page .form-field textarea{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);font-family:inherit;box-sizing:border-box;width:100%}.documents-page .form-field input[type=text]:focus,.documents-page .form-field select:focus,.documents-page .form-field textarea:focus{outline:none;border-color:var(--color-primary)}.documents-page .form-field input[type=file]{font-size:13px;color:var(--color-text-secondary)}.documents-page .form-field textarea{resize:vertical;min-height:60px}.documents-page .modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--color-border)}.documents-page .btn-secondary{padding:8px 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.documents-page .btn-secondary:hover:not(:disabled){border-color:var(--color-text-secondary)}.documents-page .btn-primary{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.documents-page .btn-primary:hover:not(:disabled){background:var(--color-primary-hover, var(--color-primary))}.documents-page .btn-primary:disabled,.documents-page .btn-secondary:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.documents-page .page-header{padding:0 16px}.documents-page .page-content{padding:16px}.documents-table .col-uploaded,.documents-table .col-size{display:none}}.bom-evals-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%)}.bom-evals-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)}.bom-evals-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.bom-evals-page .header-right{display:flex;align-items:center;gap:16px}.bom-evals-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.bom-evals-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.bom-evals-page .back-button svg{width:18px;height:18px}.bom-evals-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.bom-evals-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.bom-evals-page .page-content{flex:1;padding:24px 32px;max-width:1400px;width:100%;margin:0 auto;box-sizing:border-box}.bome-drop-zone{display:flex;align-items:center;gap:16px;padding:20px 24px;border:2px dashed var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);cursor:pointer;transition:all var(--transition-fast);margin-bottom:20px}.bome-drop-zone:hover,.bome-drop-zone.dragover{border-color:var(--color-primary);background:#2d899814}.bome-drop-zone .drop-icon{width:36px;height:36px;color:var(--color-primary);flex-shrink:0}.bome-drop-zone .drop-texts{display:flex;flex-direction:column;gap:2px}.bome-drop-zone .drop-text{font-size:15px;font-weight:500;color:var(--color-text-primary)}.bome-drop-zone .drop-subtext{font-size:13px;color:var(--color-text-secondary)}.bome-error{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#ef444414;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);color:var(--color-error);font-size:14px;margin-bottom:16px}.bome-error button{background:none;border:none;color:var(--color-error);font-size:18px;cursor:pointer;padding:0 4px}.bome-list-wrapper{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-sm)}.bome-list-scroll{overflow-x:auto}.bome-placeholder{padding:48px 24px;text-align:center;color:var(--color-text-muted);font-size:14px}.bome-list-table{width:100%;border-collapse:collapse;font-size:14px}.bome-list-table th{padding:12px 16px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.bome-list-table td{padding:12px 16px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.bome-list-table tbody tr{cursor:pointer;transition:background var(--transition-fast)}.bome-list-table tbody tr:hover{background:var(--color-bg-secondary)}.bome-list-table tbody tr:last-child td{border-bottom:none}.bome-group-header{cursor:pointer}.bome-group-header td{padding:0!important;background:#2d89980d;border-bottom:1px solid var(--color-border)}.bome-group-header:hover td{background:#2d899817}.bome-group-header-content{display:flex;align-items:center;gap:8px;padding:10px 16px;min-width:0}.bome-group-chevron{transition:transform .15s ease;flex-shrink:0;color:var(--color-text-muted)}.bome-group-chevron.open{transform:rotate(90deg)}.bome-group-name{font-weight:600;font-size:13px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bome-num-chip{font-size:10px;font-weight:600;font-family:SF Mono,Fira Code,Cascadia Code,monospace;color:var(--color-primary);background:#2d89981a;border-radius:8px;padding:1px 6px;line-height:1.4;flex-shrink:0}.bome-group-count{font-size:11px;color:var(--color-text-muted);margin-left:4px;white-space:nowrap}.bome-child-row td{background:#2d899804}.bome-child-row:hover td{background:#2d89980d}.bome-child-row td:first-child{padding-left:52px}.bome-child-row .col-name{position:relative}.bome-child-row .col-name:before{content:"";position:absolute;left:28px;top:50%;width:12px;height:1px;background:var(--color-border)}.bome-version-header{cursor:pointer}.bome-version-header td{padding:0!important;background:#2d899808;border-bottom:1px solid var(--color-border)}.bome-version-header:hover td{background:#2d899812}.bome-version-header-content{display:flex;align-items:center;gap:8px;padding:8px 16px 8px 36px;min-width:0}.bome-version-name{font-weight:600;font-size:12.5px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:SF Mono,Fira Code,Cascadia Code,ui-monospace,monospace}.bome-latest-badge{display:inline-flex;align-items:center;padding:1px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:20px;background:#22c55e1a;color:#15803d;border:1px solid rgba(34,197,94,.2);line-height:1.4;flex-shrink:0}.bome-released-badge{display:inline-flex;align-items:center;padding:1px 8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border-radius:20px;background:#2d89981a;color:var(--color-primary);border:1px solid rgba(45,137,152,.25);line-height:1.4;flex-shrink:0}.bome-child-row-deep td:first-child{padding-left:76px}.bome-child-row-deep .col-name:before{left:52px}.bome-list-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);gap:16px;flex-wrap:wrap}.bome-list-pagination-info{font-size:13px;color:var(--color-text-secondary)}.bome-list-pagination-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.bome-list-page-size{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.bome-list-page-size select{padding:5px 28px 5px 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}.bome-list-page-size select:focus{outline:none;border-color:var(--color-primary)}.bome-list-page-nav{display:flex;align-items:center;gap:6px}.bome-list-page-btn{min-width:32px;height:32px;padding:0 8px;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;transition:background var(--transition-fast),border-color var(--transition-fast)}.bome-list-page-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.bome-list-page-btn:disabled{opacity:.45;cursor:not-allowed}.bome-list-page-indicator{font-size:13px;color:var(--color-text-secondary);padding:0 6px;white-space:nowrap}.bome-list-table .col-name{font-weight:500;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bome-list-table .col-file{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary);font-size:13px}.bome-list-table .col-center{text-align:center}.bome-list-table .col-date{white-space:nowrap;color:var(--color-text-secondary);font-size:13px}.bome-list-table .col-actions{width:48px;text-align:right}.bome-list-table .match-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.bome-list-table .match-badge.good{background:#22c55e1f;color:#15803d}.bome-list-table .match-badge.partial{background:#f59e0b1f;color:#b45309}.bome-list-table .row-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;background:none;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.bome-list-table .row-delete-btn:hover{color:var(--color-error);border-color:#ef444459;background:#ef44440f}.bome-list-table .row-delete-btn svg{width:15px;height:15px}.bom-evals-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}.bom-evals-page .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)}.bom-evals-page .modal-content.import-modal{max-width:620px}.bom-evals-page .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border)}.bom-evals-page .modal-header h2{font-size:18px;font-weight:600;color:var(--color-text-primary);margin:0}.bom-evals-page .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)}.bom-evals-page .close-btn:hover{color:var(--color-text-primary)}.bom-evals-page .modal-body{padding:24px;overflow-y:auto;flex:1}.bom-evals-page .modal-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;border-top:1px solid var(--color-border)}.bom-evals-page .btn-primary,.bom-evals-page .btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 20px;font-size:14px;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.bom-evals-page .btn-primary{background:var(--color-primary);color:#fff}.bom-evals-page .btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.bom-evals-page .btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.bom-evals-page .btn-secondary:hover:not(:disabled){background:var(--color-border)}.bom-evals-page .btn-primary:disabled,.bom-evals-page .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.bom-evals-page .btn-primary svg,.bom-evals-page .btn-secondary svg{width:16px;height:16px}.bom-evals-page .form-group{margin-bottom:16px}.bom-evals-page .form-group label{display:block;font-size:13px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.bom-evals-page .form-group input[type=text]{width:100%;padding:9px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);box-sizing:border-box}.bom-evals-page .form-group input[type=text]:focus{outline:none;border-color:var(--color-primary)}.bom-evals-page .form-error{margin-top:12px;padding:10px 14px;background:#ef444414;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);color:var(--color-error);font-size:13px;white-space:pre-line}.bom-evals-page .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)}.bom-evals-page .file-drop-zone:hover,.bom-evals-page .file-drop-zone.dragover{border-color:var(--color-primary);background:#2d899814}.bom-evals-page .drop-hint{display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--color-text-secondary)}.bom-evals-page .drop-hint .drop-icon{width:48px;height:48px;color:var(--color-primary);margin-bottom:8px}.bom-evals-page .drop-hint .drop-text{font-size:16px;font-weight:500;color:var(--color-text-primary)}.bom-evals-page .drop-hint .drop-subtext{font-size:14px;color:var(--color-text-secondary)}.bom-evals-page .drop-hint .drop-formats{font-size:12px;color:var(--color-text-muted);margin-top:8px}.bom-evals-page .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}.bom-evals-page .import-file-info>svg{width:24px;height:24px;color:var(--color-primary);flex-shrink:0}.bom-evals-page .import-file-info .file-details{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.bom-evals-page .import-file-info .file-name{font-size:14px;font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-evals-page .import-file-info .file-meta{font-size:12px;color:var(--color-text-muted)}.bom-evals-page .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)}.bom-evals-page .import-file-info .file-clear:hover{background:var(--color-bg);color:var(--color-error)}.bom-evals-page .import-file-info .file-clear svg{width:16px;height:16px}.bome-header-info-preview{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.bome-header-info-preview .info-chip{padding:4px 10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:999px;font-size:12px;color:var(--color-text-primary)}.bome-header-info-preview .chip-label{color:var(--color-text-muted)}.bom-evals-page .import-stats{display:flex;gap:12px;margin-bottom:20px}.bom-evals-page .import-stat{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px;background:#2d899814;border-radius:var(--radius-md)}.bom-evals-page .import-stat .stat-value{font-size:28px;font-weight:600;color:var(--color-primary)}.bom-evals-page .import-stat .stat-label{font-size:12px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.bom-evals-page .import-mapping{background:var(--color-bg-secondary);border-radius:var(--radius-md);padding:16px;margin-bottom:20px}.bom-evals-page .mapping-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:13px;color:var(--color-text-secondary)}.bom-evals-page .mapping-header svg{width:16px;height:16px;color:var(--color-primary);flex-shrink:0}.bom-evals-page .mapping-list{display:flex;flex-direction:column;gap:8px}.bom-evals-page .mapping-row{display:flex;align-items:center;gap:12px}.bom-evals-page .mapping-row.missing .mapping-label{color:var(--color-error)}.bom-evals-page .mapping-label{flex:0 0 170px;font-size:13px;font-weight:500;color:var(--color-text-primary)}.bom-evals-page .mapping-label .required{color:var(--color-error);margin-left:2px}.bom-evals-page .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}.bom-evals-page .mapping-row select:focus{outline:none;border-color:var(--color-primary)}.bom-evals-page .mapping-row select.mapped{border-color:var(--color-success);background-color:#22c55e0d}.bom-evals-page .import-preview-table{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px}.bom-evals-page .import-preview-table table{width:100%;border-collapse:collapse;font-size:12px}.bom-evals-page .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)}.bom-evals-page .import-preview-table td{padding:8px 10px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.bom-evals-page .import-preview-table tr:last-child td{border-bottom:none}.bom-evals-page .import-preview-table .mpn-cell{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:var(--color-primary)}.bom-evals-page .import-preview-table .preview-more td{text-align:center;font-style:italic;color:var(--color-text-muted)}.bom-evals-page .import-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 24px 32px;text-align:center;gap:0}.bom-evals-page .progress-spinner{width:48px;height:48px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:bom-eval-spin .85s linear infinite;margin-bottom:18px}.bom-evals-page .progress-text{font-size:16px;font-weight:600;color:var(--color-text-primary);margin:0;animation:bom-eval-fade-in .35s ease}.bom-evals-page .progress-subtext{margin:6px 0 0;font-size:13px;color:var(--color-text-secondary);max-width:320px;line-height:1.4;animation:bom-eval-fade-in .35s ease}.bom-evals-page .import-progress-bar{width:min(280px,100%);height:4px;margin-top:20px;border-radius:999px;background:var(--color-bg-secondary);overflow:hidden}.bom-evals-page .import-progress-bar-fill{height:100%;border-radius:inherit;background:var(--color-primary);transition:width .45s ease}.bom-evals-page .import-progress-bar-fill.indeterminate{width:40%;animation:bom-eval-bar-slide 1.2s ease-in-out infinite}.bom-evals-page .import-stage-list{list-style:none;margin:22px 0 0;padding:0;width:min(300px,100%);text-align:left;display:flex;flex-direction:column;gap:8px}.bom-evals-page .import-stage{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--color-text-muted);transition:color .25s ease,opacity .25s ease}.bom-evals-page .import-stage.active{color:var(--color-text-primary);font-weight:600}.bom-evals-page .import-stage.done{color:var(--color-success, #22c55e)}.bom-evals-page .import-stage.pending{opacity:.55}.bom-evals-page .import-stage-marker{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0}.bom-evals-page .import-stage-dot{width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.45}.bom-evals-page .import-stage.active .import-stage-dot{opacity:1;background:var(--color-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 18%,transparent);animation:bom-eval-pulse 1.2s ease-in-out infinite}@keyframes bom-eval-spin{to{transform:rotate(360deg)}}@keyframes bom-eval-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes bom-eval-bar-slide{0%{transform:translate(-120%)}to{transform:translate(320%)}}@keyframes bom-eval-pulse{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 14%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--color-primary) 8%,transparent)}}.bom-evals-page .disabled-btn-wrapper{display:inline-block;cursor:not-allowed}@media (max-width: 768px){.bom-evals-page .page-header{padding:0 16px}.bom-evals-page .page-content{padding:16px}.bome-list-table .col-file,.bome-list-table th:nth-child(4){display:none}}.bom-eval-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%)}.bom-eval-detail-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)}.bom-eval-detail-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.bom-eval-detail-page .header-right{display:flex;align-items:center;gap:16px}.bom-eval-detail-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.bom-eval-detail-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.bom-eval-detail-page .back-button svg{width:18px;height:18px}.bom-eval-detail-page .page-title{min-width:0}.bom-eval-detail-page .page-title h1{font-size:22px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-eval-detail-page .page-title p{font-size:13px;color:var(--color-text-secondary);margin:4px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-eval-detail-page .page-content{flex:1;padding:24px 32px;width:100%;margin:0 auto;box-sizing:border-box}.bom-eval-detail-page .bome-error{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#ef444414;border:1px solid rgba(239,68,68,.35);border-radius:var(--radius-md);color:var(--color-error);font-size:14px;margin-bottom:16px}.bom-eval-detail-page .bome-error button{background:none;border:none;color:var(--color-error);font-size:18px;cursor:pointer;padding:0 4px}.bom-eval-detail-page .bome-placeholder{padding:48px 24px;text-align:center;color:var(--color-text-muted);font-size:14px}.bom-eval-detail-page .bome-locked-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:16px;background:#1e844914;border:1px solid rgba(30,132,73,.35);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:13.5px;line-height:1.45}.bom-eval-detail-page .bome-locked-banner svg{width:18px;height:18px;flex-shrink:0;color:#1e8449}.bom-eval-detail-page .bome-locked-banner strong{color:var(--color-text-primary)}.bome-evaluated-info{align-self:center;color:var(--color-text-muted);font-size:12.5px;white-space:nowrap}.btn-reevaluate{position:relative}.btn-reevaluate .new-data-pill{position:absolute;top:-8px;right:-10px;padding:2px 7px;background:var(--color-warning, #d97706);color:#fff;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;line-height:1.4;box-shadow:0 1px 4px #00000040;animation:new-data-pill-pop .25s ease-out;pointer-events:none}@keyframes new-data-pill-pop{0%{transform:scale(.6);opacity:0}to{transform:scale(1);opacity:1}}.eval-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:0;flex-wrap:wrap}.eval-toolbar-left{flex:1;min-width:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-height:38px}.eval-actions{display:flex;gap:8px;flex-shrink:0}.bome-tabs{display:flex;gap:0;margin:12px 0 16px;border-bottom:1px solid var(--color-border);background:transparent}.bome-tab{display:inline-flex;align-items:center;gap:8px;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;margin-bottom:-1px;transition:color var(--transition-fast),border-color var(--transition-fast)}.bome-tab:hover{color:var(--color-text-primary)}.bome-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.bome-tab-count{font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary)}.bome-tab.active .bome-tab-count{border-color:color-mix(in srgb,var(--color-primary) 40%,var(--color-border));color:var(--color-primary)}.bom-eval-detail-page .btn-primary,.bom-eval-detail-page .btn-secondary,.bom-eval-detail-page .btn-danger-outline{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.bom-eval-detail-page .btn-primary{background:var(--color-primary);color:#fff}.bom-eval-detail-page .btn-primary:hover:not(:disabled){background:var(--color-primary-dark)}.bom-eval-detail-page .btn-secondary{background:var(--color-bg);color:var(--color-text-primary);border:1px solid var(--color-border)}.bom-eval-detail-page .btn-secondary:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.bom-eval-detail-page .btn-danger-outline{background:var(--color-bg);color:var(--color-error);border:1px solid rgba(239,68,68,.4);padding:9px 12px}.bom-eval-detail-page .btn-danger-outline:hover:not(:disabled){background:#ef444414}.bom-eval-detail-page .btn-primary:disabled,.bom-eval-detail-page .btn-secondary:disabled,.bom-eval-detail-page .btn-danger-outline:disabled{opacity:.5;cursor:not-allowed}.bom-eval-detail-page .btn-primary svg,.bom-eval-detail-page .btn-secondary svg,.bom-eval-detail-page .btn-danger-outline svg{width:15px;height:15px}.eval-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px}.summary-card{display:flex;flex-direction:column;align-items:center;padding:14px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.summary-card .summary-value{font-size:24px;font-weight:600;color:var(--color-text-primary);line-height:1.1}.summary-card .summary-total{font-size:14px;font-weight:500;color:var(--color-text-secondary)}.summary-card .summary-label{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;text-align:center}.summary-card.good .summary-value{color:#15803d}.summary-card.warn .summary-value{color:#b45309}.summary-card.bad .summary-value{color:var(--color-error)}.eval-table-wrapper{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-sm)}.eval-table{width:100%;border-collapse:collapse;font-size:13px;min-width:1200px}.eval-table .group-row th{padding:8px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;text-align:left;border-bottom:1px solid var(--color-border)}.eval-table .group-row .group-bom{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.eval-table .group-row .group-eval{background:#2d89981a;color:var(--color-primary);border-left:2px solid var(--color-primary)}.eval-table .group-row .group-alt{background:#8b5cf614;color:#7c3aed;border-left:2px solid #8b5cf6}.eval-table thead tr:nth-child(2) th{padding:8px 12px;text-align:left;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.eval-table thead .col-match{border-left:2px solid var(--color-primary)}.eval-table thead .alt-start{border-left:2px solid #8b5cf6}.eval-table tbody td{padding:10px 12px;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);vertical-align:top}.eval-table tbody tr:last-child td{border-bottom:none}.eval-table tbody tr.verdict-row-error{background:#ef44440b}.eval-table tbody tr.verdict-row-warning{background:#f59e0b0b}.eval-table tbody tr:hover{background:var(--color-bg-secondary)}.eval-table .col-num{width:40px;color:var(--color-text-muted)}.eval-table .col-qty{width:44px;text-align:center}.eval-table td.col-qty{font-weight:600}.eval-table .col-designators{width:170px;max-width:170px;font-size:12px;color:var(--color-text-secondary)}.eval-table .col-desc{width:200px;max-width:200px;font-size:12px}.eval-table .cell-clamp{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;white-space:normal;word-break:break-word;line-height:1.35}.eval-table .col-package{white-space:nowrap;font-size:12px}.eval-table .col-part{min-width:170px}.eval-table .part-mpn{font-weight:600;font-size:12.5px;word-break:break-all}.eval-table .part-sub{font-size:11px;color:var(--color-text-muted);margin-top:1px}.eval-table .col-andid{white-space:nowrap}.mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:11.5px}.eval-table td.col-match{border-left:2px solid rgba(45,137,152,.35);min-width:160px}.eval-table .match-status{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;white-space:nowrap}.eval-table .match-status.good{background:#22c55e1f;color:#15803d}.eval-table .match-status.bad{background:#ef44441f;color:var(--color-error)}.eval-table .match-part-row{display:flex;align-items:center;gap:8px;min-width:0}.eval-table .match-part-text{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;flex:1}.eval-table .bome-part-thumb{width:32px;height:32px;object-fit:contain;border-radius:var(--radius-sm);background:var(--color-bg-secondary);border:1px solid var(--color-border-light);flex-shrink:0;display:block}.eval-table .bome-part-thumb.no-image{opacity:.35}.eval-table .part-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:4px}.eval-table .match-part-row .part-name-line{margin-top:0}.eval-table .comment-flags{display:inline-flex;align-items:center;gap:4px}.eval-table .issue-flag,.eval-table .warning-flag{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;font-size:10px;font-weight:700;border-radius:999px;color:#fff;white-space:nowrap}.eval-table .issue-flag{background:var(--color-error)}.eval-table .warning-flag{background:#f59e0b}.eval-table .part-link{display:block;background:none;border:none;padding:0;color:var(--color-primary);font-size:12px;font-weight:600;cursor:pointer;text-align:left;word-break:break-all}.eval-table .part-link:hover{text-decoration:underline}.eval-table .part-link.small{font-size:11.5px}.eval-table .alt-part .part-name-line{margin-top:0}.eval-table .col-status{white-space:nowrap}.eval-table .col-compliance{min-width:88px}.compliance-stack{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.badge.badge-rohs-exempt{cursor:help}.rohs-exempt-tooltip{position:fixed;z-index:1000;min-width:200px;max-width:360px;padding:8px 10px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);box-shadow:0 8px 24px #0f172a2e;font-size:12px;line-height:1.35}.rohs-exempt-tooltip-head{font-weight:700;color:var(--color-text-secondary);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--color-border, #e2e8f0)}.rohs-exempt-tooltip-empty{color:var(--color-text-secondary)}.rohs-exempt-tooltip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.rohs-exempt-tooltip-list li{display:grid;grid-template-columns:auto 1fr;gap:2px 8px}.rohs-exempt-code{font-weight:700;font-family:var(--font-mono, ui-monospace, monospace);color:var(--color-text, #0f172a)}.rohs-exempt-expiry{color:var(--color-text-secondary, #64748b);text-align:right}.rohs-exempt-tooltip-list li.expired .rohs-exempt-expiry{color:#b91c1c;font-weight:600}.rohs-exempt-summary{grid-column:1 / -1;color:var(--color-text-secondary, #64748b);font-size:11px}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.badge.good{background:#22c55e1f;color:#15803d}.badge.bad{background:#ef44441f;color:var(--color-error)}.badge.warn{background:#f59e0b24;color:#b45309}.composition-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;white-space:nowrap}.composition-badge.ok{background:#22c55e1f;color:#15803d}.composition-badge.none{background:#94a3b826;color:#64748b}.composition-badge.warning{background:#f59e0b1f;color:#d97706}.composition-badge.error{background:#ef44441f;color:var(--color-error)}.badge.neutral{background:#94a3b82e;color:var(--color-text-secondary)}.doc-indicators{display:flex;flex-wrap:wrap;gap:4px}.doc-tag{display:inline-flex;align-items:center;gap:3px;padding:2px 6px;border-radius:var(--radius-sm);font-size:10.5px;font-weight:700;white-space:nowrap;cursor:pointer;background:var(--color-bg-tertiary, #f1f5f9);color:var(--color-text-secondary)}.doc-tag-count{font-size:9px;font-weight:700;line-height:1;padding:1px 4px;border-radius:999px;background:#0f172a1f}.doc-tag-rohs{background:#dcfce7;color:#15803d}.doc-tag-reach{background:#dbeafe;color:#1d4ed8}.doc-tag-rohs_reach{background:#e0e7ff;color:#3730a3}.doc-tag-rohs_reach_fmd{background:#ede9fe;color:#5b21b6}.doc-tag-proprietary_waiver{background:#e2e8f0;color:#334155}.doc-tag-customer_exemption_declaration{background:#dbeafe;color:#1e40af}.doc-tag-datasheet{background:#fef3c7;color:#b45309}.doc-tag-coc{background:#ede9fe;color:#5b21b6}.doc-tag-doc{background:#fae8ff;color:#a21caf}.doc-tag-certificate{background:#ede9fe;color:#6d28d9}.doc-tag-lab{background:#ecfeff;color:#0e7490}.doc-tag-declaration{background:#fce7f3;color:#be185d}.doc-tag-fmd{background:#ccfbf1;color:#0f766e}.doc-tag-tooltip{position:fixed;z-index:1000;min-width:180px;max-width:360px;padding:8px 10px;background:var(--color-surface, #fff);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md, 8px);box-shadow:0 8px 24px #0f172a2e;font-size:12px}.doc-tag-tooltip-head{font-weight:700;color:var(--color-text-secondary);margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--color-border, #e2e8f0)}.doc-tag-tooltip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.doc-tag-tooltip-list a{display:block;padding:3px 6px;border-radius:var(--radius-sm);color:var(--color-primary, #2563eb);text-decoration:none;word-break:break-word}.doc-tag-tooltip-list a:hover{background:var(--color-bg-tertiary, #f1f5f9);text-decoration:underline}.eval-table .col-stock{text-align:right;white-space:nowrap;font-weight:500}.eval-table .empty-dash{color:var(--color-text-muted)}.eval-table .row-actions{display:flex;gap:6px;align-items:center}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;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);flex-shrink:0}.icon-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.icon-btn.danger:hover:not(:disabled){border-color:var(--color-error);color:var(--color-error)}.icon-btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn svg{width:13px;height:13px}.resolve-btn{padding:4px 10px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:11.5px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.resolve-btn:hover{background:var(--color-primary-dark)}.eval-table td.alt-start{border-left:2px solid rgba(139,92,246,.35)}.eval-table .alt-cell.alt-part{min-width:150px}.eval-table .alt-cell.alt-empty{text-align:center;color:var(--color-text-muted);min-width:160px}.eval-table .alt-cell.verdict-error{background:#ef44440f}.eval-table .alt-cell.verdict-warning{background:#f59e0b0f}.add-alt-inline{padding:4px 12px;background:none;border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:11.5px;font-weight:600;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.add-alt-inline:hover{border-color:#8b5cf6;color:#7c3aed;background:#8b5cf60f}.bom-eval-detail-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}.bom-eval-detail-page .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)}.bom-eval-detail-page .modal-content.modal-large{max-width:680px}.bom-eval-detail-page .modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border)}.bom-eval-detail-page .modal-header h2{font-size:17px;font-weight:600;color:var(--color-text-primary);margin:0}.bom-eval-detail-page .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)}.bom-eval-detail-page .close-btn:hover{color:var(--color-text-primary)}.bom-eval-detail-page .modal-body{padding:24px;overflow-y:auto;flex:1}.search-context{padding:10px 14px;background:var(--color-bg-secondary);border-radius:var(--radius-md);font-size:13px;color:var(--color-text-primary);margin-bottom:16px;line-height:1.5}.search-context .primary-part-hint{margin-top:4px;font-size:12px;color:var(--color-text-secondary)}.bom-eval-detail-page .alt-proposals{margin-bottom:16px;padding:12px 14px;background:#2d89980f;border:1px solid rgba(45,137,152,.18);border-radius:var(--radius-md)}.bom-eval-detail-page .alt-proposals-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.bom-eval-detail-page .alt-proposals-header h3{margin:0;font-size:13px;font-weight:600;color:var(--color-text-primary)}.bom-eval-detail-page .alt-proposals-loading,.bom-eval-detail-page .alt-proposals-empty{margin:0;font-size:12px;color:var(--color-text-muted);line-height:1.4}.bom-eval-detail-page .alt-proposals-list{display:flex;flex-direction:column;gap:6px}.bom-eval-detail-page .alt-proposal-item{padding:10px 12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.bom-eval-detail-page .alt-proposal-item:hover{border-color:var(--color-primary);background:#2d89980d}.bom-eval-detail-page .alt-proposal-item.disabled{opacity:.6;cursor:wait}.bom-eval-detail-page .alt-proposal-rel{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:999px;background:#2d89981f;color:var(--color-primary)}.bom-eval-detail-page .alt-proposal-rel.alternative_of{background:#f59e0b1f;color:#b45309}.bom-eval-detail-page .alt-proposal-usage{font-size:11px;color:var(--color-text-muted)}.bom-eval-detail-page .alt-proposal-add{margin-left:auto;font-size:12px;font-weight:600;color:var(--color-primary)}.bom-eval-detail-page .search-box{position:relative;margin-bottom:14px}.bom-eval-detail-page .search-box input{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;background:var(--color-bg);color:var(--color-text-primary);box-sizing:border-box}.bom-eval-detail-page .search-box input:focus{outline:none;border-color:var(--color-primary)}.bom-eval-detail-page .search-box .searching{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--color-text-muted)}.bom-eval-detail-page .search-results{display:flex;flex-direction:column;gap:8px;min-height:120px}.bom-eval-detail-page .no-results{text-align:center;color:var(--color-text-muted);font-size:13px;padding:24px 0}.bom-eval-detail-page .search-result-item{padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.bom-eval-detail-page .search-result-item:hover{border-color:var(--color-primary);background:#2d89980d}.bom-eval-detail-page .search-result-item.disabled{opacity:.6;cursor:wait}.bom-eval-detail-page .result-main{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.bom-eval-detail-page .result-mpn{font-weight:600;font-size:13.5px;color:var(--color-text-primary)}.bom-eval-detail-page .result-andid{color:var(--color-primary)}.bom-eval-detail-page .result-details{font-size:12px;color:var(--color-text-secondary);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bom-eval-detail-page .result-meta{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap}.bom-eval-detail-page .result-stock{font-size:12px;color:var(--color-text-secondary);margin-left:auto;white-space:nowrap}.bome-env{display:flex;flex-direction:column;gap:0}.bome-env-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:8px 0 12px}.bome-env-section-head h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary)}.bome-env-section-head p{margin:4px 0 0;font-size:12.5px;color:var(--color-text-secondary);max-width:720px;line-height:1.45}.bome-env-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.bome-env-chip{font-size:12px;padding:4px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;color:var(--color-text-secondary)}.bome-env-table-block{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);margin-bottom:28px;overflow:hidden}.bome-env-table-wrapper{overflow-x:auto}.bome-env-table{width:100%;border-collapse:collapse;font-size:13px}.bome-env-table th{text-align:left;padding:9px 12px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--color-border);white-space:nowrap}.bome-env-table td{padding:7px 12px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.bome-env-table tbody tr:last-child td{border-bottom:none}.bome-env-table .col-num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.bome-env-table .col-cas{white-space:nowrap;width:140px}.bome-env-table .col-code{white-space:nowrap;width:100px;font-weight:600}.bome-env-table .col-part{white-space:nowrap;min-width:140px}.bome-env-table .col-mfr{min-width:120px;color:var(--color-text-secondary)}.bome-env-table .col-status{white-space:nowrap;width:100px}.bome-env-group-row td{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);padding:10px 12px;vertical-align:middle}.bome-env-group-code{display:inline-block;font-weight:700;font-size:12px;padding:2px 8px;margin-right:10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px}.bome-env-group-desc{font-size:13px;font-weight:500;color:var(--color-text-primary)}.bome-env-group-meta{margin-left:10px;font-size:12px;color:var(--color-text-secondary)}.bome-env-table .col-src{text-align:right;width:64px;color:var(--color-text-secondary);font-size:12px}.bome-env-table .mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px}.bome-env-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);gap:16px;flex-wrap:wrap}.bome-env-pagination-info{font-size:13px;color:var(--color-text-secondary)}.bome-env-pagination-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.bome-env-page-size{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.bome-env-page-size select{padding:5px 28px 5px 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}.bome-env-page-size select:focus{outline:none;border-color:var(--color-primary)}.bome-env-page-nav{display:flex;align-items:center;gap:4px}.bome-env-page-btn{width:32px;height:32px;display:inline-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;line-height:1}.bome-env-page-btn:hover:not(:disabled){background:var(--color-bg-hover, var(--color-bg-secondary));border-color:var(--color-primary)}.bome-env-page-btn:disabled{opacity:.45;cursor:not-allowed}.bome-env-page-indicator{font-size:13px;color:var(--color-text-secondary);padding:0 8px;white-space:nowrap}.bome-env-material-row{background:var(--color-bg-secondary)}.bome-env-material-row td{font-weight:500}.bome-env-material-name{font-weight:600;color:var(--color-text-primary)}.bome-env-material-name.muted{color:var(--color-text-secondary);font-style:italic;font-weight:500}.bome-env-meta{margin-left:10px;font-size:12px;font-weight:400;color:var(--color-text-secondary)}.bome-env-exempt{display:inline-flex;align-items:center;margin-left:8px;padding:1px 8px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:#b45309;background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);border-radius:999px;vertical-align:middle}.bome-env-substance-row .col-name.indent{padding-left:28px}.bome-env-annexes{margin-top:8px}.bome-env-annexes .bome-env-table-block,.bome-env-article33 .bome-env-table-block,.bome-env-collapsible .bome-env-table-block{margin-bottom:16px}.bome-env-collapsible{margin-top:20px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.bome-env-collapse-head{display:flex;align-items:flex-start;gap:10px;width:100%;padding:14px 16px;border:none;background:transparent;text-align:left;cursor:pointer;font-family:inherit;color:inherit}.bome-env-collapse-head:hover{background:color-mix(in srgb,var(--color-bg-secondary) 70%,var(--color-bg))}.bome-env-collapse-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;margin-top:2px;color:var(--color-text-secondary)}.bome-env-collapse-toggle svg{transition:transform .15s ease}.bome-env-collapse-toggle.open svg{transform:rotate(90deg)}.bome-env-collapse-title{flex:1;min-width:0}.bome-env-collapse-title h3{margin:0;font-size:16px;font-weight:600;color:var(--color-text-primary)}.bome-env-collapse-title p{margin:4px 0 0;font-size:12.5px;color:var(--color-text-secondary);line-height:1.45}.bome-env-collapse-badge{flex-shrink:0;min-width:28px;padding:2px 10px;border-radius:999px;background:#f59e0b24;color:#b45309;font-size:13px;font-weight:700;text-align:center}.bome-env-collapse-body{padding:0 16px 16px;border-top:1px solid var(--color-border-light)}.bome-env-group-toggle{display:flex;align-items:center;flex-wrap:wrap;gap:8px;width:100%;padding:0;border:none;background:transparent;text-align:left;cursor:pointer;font-family:inherit;color:inherit}.bome-env-safe-use{margin-top:16px;padding:16px 18px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.bome-env-safe-use h4{margin:0 0 8px;font-size:14px;font-weight:700}.bome-env-safe-use-intro{margin:0 0 12px;font-size:12.5px;color:var(--color-text-secondary);line-height:1.5}.bome-env-safe-use-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px}.bome-env-safe-use-list li{font-size:13px;line-height:1.55;color:var(--color-text-secondary)}.bome-env-safe-use-list strong{color:var(--color-text-primary)}.bome-env-clean{padding:14px 18px;background:#22c55e14;border:1px solid rgba(34,197,94,.35);border-radius:var(--radius-md);color:#15803d;font-size:13px}.bome-env-article33{margin-top:28px}.bome-env-article33-disclaimer{padding:14px 18px;margin-bottom:14px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.4);border-radius:var(--radius-md);color:#92400e;font-size:13px;line-height:1.55}.bome-env-article33-disclaimer strong{font-weight:700}.bome-env-article33-statement{margin-top:16px;padding:16px 18px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md)}.bome-env-article33-statement h4{margin:0 0 10px;font-size:14px;font-weight:700;color:var(--color-text-primary)}.bome-env-article33-statement p{margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--color-text-secondary)}.bome-env-article33-statement p:last-child{margin-bottom:0}.bome-env-article33-meta{font-size:12px!important;color:var(--color-text-secondary);opacity:.9}.bome-env-annex-list{display:flex;flex-direction:column;gap:10px}.bome-env-annex-card{background:var(--color-bg);border:1px solid var(--color-border);border-left:3px solid #d97706;border-radius:var(--radius-md);overflow:hidden}.bome-env-annex-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:var(--color-bg-secondary);border:none;text-align:left;font:inherit;color:inherit;cursor:pointer;flex-wrap:wrap}.bome-env-annex-head:hover{background:color-mix(in srgb,var(--color-bg-secondary) 70%,var(--color-bg))}.bome-env-annex-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;color:var(--color-text-secondary)}.bome-env-annex-toggle svg{transition:transform .15s ease}.bome-env-annex-toggle.open svg{transform:rotate(90deg)}.bome-env-annex-code{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:700;padding:2px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;flex-shrink:0}.bome-env-annex-desc{font-size:13px;color:var(--color-text-primary);flex:1;min-width:160px}.bome-env-annex-meta{font-size:12px;color:var(--color-text-secondary);white-space:nowrap;margin-left:auto}.bome-env-annex-body{display:flex;flex-direction:column}.bome-env-annex-part{border-top:1px solid var(--color-border-light)}.bome-env-annex-part-head{display:flex;align-items:center;gap:8px;padding:8px 14px 8px 12px;flex-wrap:wrap}.bome-env-annex-part-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0}.bome-env-annex-part-toggle:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.bome-env-annex-part-toggle svg{transition:transform .15s ease}.bome-env-annex-part-toggle.open svg{transform:rotate(90deg)}.bome-env-annex-part-meta{display:inline-flex;align-items:center;gap:10px;margin-left:auto;font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.bome-env-annex-usages{list-style:none;margin:0;padding:0 14px 10px 44px;display:flex;flex-direction:column;gap:4px}.bome-env-annex-usages li{font-size:13px;color:var(--color-text-primary);display:flex;flex-wrap:wrap;align-items:baseline;gap:4px;padding:4px 0 4px 12px;border-left:2px solid var(--color-border-light)}.bome-env-part-link{display:inline-flex;align-items:center;padding:2px 10px;margin:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;color:var(--color-primary);font-size:12.5px;font-weight:600;font-family:inherit;line-height:1.3;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.bome-env-part-link:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,var(--color-bg));text-decoration:underline}.bome-env-usage-mat{color:var(--color-text-secondary);font-weight:500}.bome-env-usage-qty{margin-left:auto;font-size:12px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.part-sub-inline{color:var(--color-text-secondary);font-size:12px}@media (max-width: 768px){.bom-eval-detail-page .page-header{padding:0 16px}.bom-eval-detail-page .page-content{padding:16px}.eval-toolbar{flex-direction:column}.eval-actions{width:100%;flex-wrap:wrap}.bome-tabs{overflow-x:auto}.bome-env-substance-row .col-name.indent{padding-left:16px}.bome-env-annex-usages{padding-left:28px}.bome-env-annex-meta,.bome-env-annex-part-meta{margin-left:32px}}.compliance-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%)}.compliance-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)}.compliance-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.compliance-page .header-right{display:flex;align-items:center;gap:16px}.compliance-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.compliance-page .back-button:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-primary)}.compliance-page .back-button svg{width:18px;height:18px}.compliance-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.compliance-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0}.compliance-page .page-content{flex:1;padding:24px 32px;max-width:1400px;width:100%;margin:0 auto;box-sizing:border-box}.cp-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--color-border)}.cp-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:none;border:none;border-bottom:2px solid transparent;font-size:14px;font-weight:500;color:var(--color-text-secondary);cursor:pointer;margin-bottom:-1px}.cp-tab:hover{color:var(--color-text-primary)}.cp-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.cp-tab-count{font-size:11px;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--color-bg);border:1px solid var(--color-border)}.cp-tab-count.alert{background:#ef44441a;border-color:#ef444466;color:#dc2626}.cp-error,.cp-notice{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;margin-bottom:14px;border-radius:var(--radius-md);font-size:13px}.cp-error{background:#ef444414;border:1px solid rgba(239,68,68,.35);color:#dc2626}.cp-notice{background:#22c55e14;border:1px solid rgba(34,197,94,.35);color:#15803d}.cp-error button,.cp-notice button{background:none;border:none;color:inherit;font-size:16px;cursor:pointer;padding:0 4px}.cp-placeholder{padding:32px;text-align:center;color:var(--color-text-secondary);font-size:13px;background:var(--color-bg);border:1px dashed var(--color-border);border-radius:var(--radius-md)}.cp-clean{padding:14px 18px;background:#22c55e14;border:1px solid rgba(34,197,94,.35);border-radius:var(--radius-md);color:#15803d;font-size:13px}.cp-clean-hint{color:var(--color-text-secondary)}.cp-muted{color:var(--color-text-secondary);opacity:.8}.cp-lists-layout{display:grid;grid-template-columns:340px 1fr;gap:18px;align-items:start}.cp-lists-column{display:flex;flex-direction:column;gap:10px}.cp-list-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px 14px;cursor:pointer;transition:all .15s}.cp-list-card:hover{border-color:var(--color-primary)}.cp-list-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}.cp-list-card.inactive{opacity:.65}.cp-list-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.cp-list-name{font-size:14px;font-weight:600;color:var(--color-text-primary)}.cp-severity-badge{font-size:10px;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:999px;letter-spacing:.4px}.cp-severity-badge.error{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.4)}.cp-severity-badge.warning{background:#f59e0b1a;color:#d97706;border:1px solid rgba(245,158,11,.4)}.cp-list-card-meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px;font-size:12px;color:var(--color-text-secondary)}.cp-inactive-tag{font-style:italic}.cp-list-card-stats{display:flex;justify-content:space-between;gap:10px;margin-top:8px;font-size:11px;color:var(--color-text-secondary)}.cp-viol-count{font-weight:600}.cp-viol-count.error{color:#dc2626}.cp-viol-count.warning{color:#d97706}.cp-viol-count.none{color:#16a34a}.cp-entries-column{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;min-height:300px}.cp-entries-header{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:12px}.cp-entries-header h3{margin:0;font-size:16px}.cp-list-description{margin:4px 0 0;font-size:12px;color:var(--color-text-secondary);max-width:640px}.cp-entries-header-actions{display:flex;gap:6px;flex-shrink:0}.cp-entry-actions{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.cp-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);cursor:pointer;transition:all .15s}.cp-btn:hover:not(:disabled){background:var(--color-bg-secondary)}.cp-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.cp-btn.primary:hover:not(:disabled){opacity:.9;background:var(--color-primary)}.cp-btn.block{justify-content:center}.cp-btn.danger-ghost{color:#dc2626;border-color:#ef444466}.cp-btn.danger-ghost:hover:not(:disabled){background:#ef444414}.cp-btn:disabled{opacity:.5;cursor:default}.cp-icon-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--color-text-secondary);border-radius:var(--radius-sm);line-height:0}.cp-icon-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.cp-icon-btn.danger:hover{background:#ef44441a;color:#dc2626}.cp-form{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px;margin-bottom:12px}.cp-entries-column .cp-form{background:var(--color-bg-secondary)}.cp-form-title{font-size:13px;font-weight:600;margin-bottom:10px}.cp-form-grid{display:flex;flex-wrap:wrap;gap:10px}.cp-form-field{display:flex;flex-direction:column;gap:4px;min-width:150px}.cp-form-field.grow{flex:1;min-width:200px}.cp-form-field.checkbox{justify-content:flex-end}.cp-form-field label{font-size:11px;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.cp-form-field input,.cp-form-field select{padding:7px 10px;font-size:13px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-primary)}.cp-form-field input.invalid{border-color:#dc2626}.cp-checkbox{display:flex;align-items:center;gap:8px;font-size:13px;text-transform:none!important;letter-spacing:0!important;font-weight:400!important;color:var(--color-text-primary)!important;cursor:pointer}.cp-checkbox.small{font-size:12px;color:var(--color-text-secondary)!important}.cp-form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.cp-table-wrapper{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg)}.cp-table{width:100%;border-collapse:collapse;font-size:13px}.cp-table th{text-align:left;padding:9px 12px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--color-border);white-space:nowrap}.cp-table td{padding:7px 12px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.cp-table tbody tr:last-child td{border-bottom:none}.cp-table tr.clickable{cursor:pointer}.cp-table tr.clickable:hover td{background:var(--color-bg-secondary)}.cp-table .num{text-align:right;white-space:nowrap}.cp-table .mono{font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;white-space:nowrap}.cp-table .strong{font-weight:700}.cp-table .actions{text-align:right;white-space:nowrap;width:64px}.cp-notes{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary);font-size:12px}.cp-prohibited{color:#dc2626;font-weight:700;font-size:11px;text-transform:uppercase}.cp-component-cell strong{font-weight:600}.cp-stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}.cp-stat-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:4px}.cp-stat-card.bad{border-color:#ef444480;background:#ef44440a}.cp-stat-card.warn{border-color:#f59e0b80;background:#f59e0b0a}.cp-stat-card.good{border-color:#22c55e66}.cp-stat-value{font-size:24px;font-weight:700;font-family:JetBrains Mono,Fira Code,monospace;color:var(--color-text-primary);line-height:1}.cp-stat-total{font-size:14px;color:var(--color-text-secondary);font-weight:500}.cp-stat-card.bad .cp-stat-value{color:#dc2626}.cp-stat-card.warn .cp-stat-value{color:#d97706}.cp-stat-label{font-size:11px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.4px}.cp-violations-toolbar{display:flex;gap:10px;margin-bottom:12px;align-items:center}.cp-violations-toolbar select{padding:7px 10px;font-size:13px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary)}.cp-viol-table-block{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden}.cp-viol-table-wrapper{overflow-x:auto}.cp-viol-table{width:100%;border-collapse:collapse;font-size:13px}.cp-viol-table th{text-align:left;padding:9px 12px;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--color-border);white-space:nowrap}.cp-viol-table td{padding:8px 12px;border-bottom:1px solid var(--color-border-light);vertical-align:middle}.cp-viol-table .col-toggle{width:36px;padding-right:4px}.cp-viol-table .col-severity{width:96px}.cp-viol-table .col-num{width:80px;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cp-viol-table th.col-num{text-align:right}.cp-viol-row.error{background:#ef444408}.cp-viol-row.warning{background:#f59e0b08}.cp-viol-row:hover{background:var(--color-bg-secondary)}.cp-viol-row.open td{border-bottom-color:transparent}.cp-viol-detail-row td{padding:0;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.cp-viol-toggle{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border:none;background:none;color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);flex-shrink:0}.cp-viol-toggle:hover{background:var(--color-bg);color:var(--color-text-primary)}.cp-viol-toggle svg{transition:transform .15s ease}.cp-viol-toggle.open svg{transform:rotate(90deg)}.cp-viol-comp-name{border:none;background:none;padding:0;font-size:13px;color:var(--color-text-primary);cursor:pointer;text-align:left;font-family:inherit}.cp-viol-comp-name:hover strong{color:var(--color-primary);text-decoration:underline}.cp-viol-comp-name strong,.cp-viol-tally{font-weight:600}.cp-viol-tally.error{color:#dc2626}.cp-viol-tally.warning{color:#d97706}.cp-viol-substances{display:flex;flex-direction:column}.cp-viol-substance{padding:10px 14px 10px 44px;border-top:1px solid var(--color-border-light)}.cp-viol-sub-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.cp-viol-measured{font-weight:700;font-size:13px;color:var(--color-text-primary)}.cp-viol-peak{font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-secondary)}.cp-viol-sub-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.cp-viol-cas{font-size:12px;color:var(--color-text-secondary)}.cp-viol-material{font-size:12px}.cp-viol-lists{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding-left:2px;border-left:2px solid var(--color-border-light)}.cp-viol-list-row{display:flex;align-items:center;gap:8px;padding:4px 8px;font-size:12.5px}.cp-severity-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.cp-severity-dot.error{background:#dc2626}.cp-severity-dot.warning{background:#d97706}.cp-viol-list-name{color:var(--color-text-primary)}.cp-viol-list-meta{margin-left:auto;display:flex;align-items:center;gap:14px;white-space:nowrap}.cp-viol-meta-item .cp-muted{font-size:11px;text-transform:uppercase;letter-spacing:.3px}.cp-viol-scope{font-size:11px;color:var(--color-text-secondary);padding:1px 8px;border:1px solid var(--color-border);border-radius:999px}.cp-viol-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);gap:16px;flex-wrap:wrap}.cp-viol-pagination-info{font-size:13px;color:var(--color-text-secondary)}.cp-viol-pagination-controls{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.cp-viol-page-size{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--color-text-secondary)}.cp-viol-page-size select{padding:5px 28px 5px 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}.cp-viol-page-size select:focus{outline:none;border-color:var(--color-primary)}.cp-viol-page-nav{display:flex;align-items:center;gap:4px}.cp-viol-page-btn{width:32px;height:32px;display:inline-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;line-height:1}.cp-viol-page-btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-bg-secondary)}.cp-viol-page-btn:disabled{opacity:.45;cursor:not-allowed}.cp-viol-page-indicator{font-size:13px;color:var(--color-text-secondary);padding:0 8px;white-space:nowrap}@media (max-width: 700px){.cp-viol-substance{padding-left:20px}.cp-viol-list-row{flex-wrap:wrap}.cp-viol-list-meta{margin-left:16px;gap:10px}}.cp-annex-note{font-size:12.5px;color:var(--color-text-secondary);margin:0 0 14px;max-width:820px;line-height:1.5}.cp-annex-tree{display:flex;flex-direction:column;gap:10px}.cp-annex-group{background:var(--color-bg);border:1px solid var(--color-border);border-left:3px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.cp-annex-group.error{border-left-color:#dc2626}.cp-annex-group.warning{border-left-color:#d97706}.cp-annex-group.expired{border-left-color:#b91c1c;background:#fff8f8}.cp-annex-expiry{flex:0 0 auto;display:flex;align-items:center}.cp-annex-expiry-badge{display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.01em;padding:.15rem .5rem;border-radius:3px;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-secondary, #3a4a5a);white-space:nowrap}.cp-annex-expiry-badge.expired{background:#fde8e8;border-color:#f5c2c2;color:#9b1c1c}.cp-annex-expiry-badge.renewal{background:#fff4e0;border-color:#f0d9a8;color:#8a5a00}.cp-annex-expiry-badge.unknown{background:transparent;border-color:transparent;color:var(--color-text-muted, #8a96a3);font-weight:500;padding-left:0}.cp-annex-head{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--color-bg-secondary);flex-wrap:wrap}.cp-annex-code{display:inline-flex;align-items:center;gap:5px;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;font-weight:700;color:var(--color-text-primary);padding:2px 10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;flex-shrink:0}.cp-annex-code svg{color:var(--color-primary)}.cp-annex-desc{font-size:13px;color:var(--color-text-primary);min-width:0;flex:1}.cp-annex-summary{margin-left:auto;font-size:12px;color:var(--color-text-secondary);white-space:nowrap;flex-shrink:0}.cp-annex-body{display:flex;flex-direction:column}.cp-annex-comp{padding:10px 14px 12px 44px;border-top:1px solid var(--color-border-light)}.cp-annex-comp-name{margin-bottom:6px}.cp-annex-material{margin-top:8px;padding-left:12px;border-left:2px solid var(--color-border-light)}.cp-annex-material-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.cp-annex-material-name{font-size:13px;font-weight:600;color:var(--color-text-primary)}.cp-annex-material-head .cp-doc-ref{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 5px;cursor:default}.cp-annex-substances{display:flex;flex-direction:column;gap:6px;margin-top:6px}.cp-annex-substance{padding:2px 0}.cp-annex-sub-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px}.cp-annex-measured{margin-left:auto;font-weight:700;font-size:12.5px;color:var(--color-text-primary)}.cp-annex-substance .cp-viol-lists{margin-top:4px}.cp-annex-flag{margin-left:8px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:#d97706;border:1px solid rgba(245,158,11,.4);background:#f59e0b14;border-radius:999px;padding:1px 7px;white-space:nowrap}.cp-annex-none,.cp-annex-clean-sub{font-size:12px;color:var(--color-text-secondary);padding:2px 0 2px 2px}.cp-annex-clean-sub{margin-top:2px;color:#16a34a}@media (max-width: 700px){.cp-annex-comp{padding-left:20px}.cp-annex-head{flex-wrap:wrap}.cp-annex-summary{margin-left:32px}}.cp-search-bar{display:flex;gap:10px;max-width:560px}.cp-search-bar input{flex:1;padding:9px 14px;font-size:14px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary)}.cp-search-hint{font-size:12px;color:var(--color-text-secondary);margin:8px 0 16px}@media (max-width: 900px){.cp-lists-layout{grid-template-columns:1fr}}.products-page{height:100vh;display:flex;flex-direction:column;overflow:hidden;background:linear-gradient(180deg,var(--color-bg-gradient-top) 0%,var(--color-bg-gradient-bottom) 100%)}.products-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-shrink:0}.products-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.products-page .header-right{display:flex;align-items:center;gap:16px;flex-shrink:0}.products-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.products-page .back-button:hover{background:var(--color-bg-secondary);color:var(--color-primary);border-color:var(--color-primary)}.products-page .back-button svg{width:16px;height:16px}.products-page .page-title{min-width:0}.products-page .page-title h1{font-size:24px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2}.products-page .page-title p{font-size:14px;color:var(--color-text-secondary);margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.products-main{flex:1 1 0;min-height:0;display:flex;flex-direction:column;padding:20px 32px 24px;max-width:1500px;width:100%;margin:0 auto;box-sizing:border-box}.products-container{display:flex;flex-direction:column;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;flex:1 1 0;min-height:0}.products-toolbar{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary);gap:16px;flex-wrap:wrap;flex-shrink:0}.products-toolbar-left{display:flex;align-items:center;gap:12px;flex:1;min-width:220px;flex-wrap:wrap}.products-toolbar-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.products-search-box{position:relative;flex:1;min-width:200px;max-width:400px}.products-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-secondary);pointer-events:none}.products-search-input{width:100%;padding:7px 12px 7px 38px;box-sizing:border-box;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast)}.products-search-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.products-search-input::placeholder{color:var(--color-text-muted)}.products-group-filter{height:34px;padding:0 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);max-width:230px;cursor:pointer;transition:all var(--transition-fast)}.products-group-filter:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.products-create-btn{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 16px;background:var(--color-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:13px;font-weight:500;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.products-create-btn:hover{background:var(--color-primary-dark)}.products-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;padding:0;transition:all var(--transition-fast)}.products-icon-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#2d89980f}.products-icon-btn:disabled{opacity:.5;cursor:default}@keyframes productsSpin{to{transform:rotate(360deg)}}.products-spin{animation:productsSpin .8s linear infinite}.products-error{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#e74c3c14;border:1px solid rgba(231,76,60,.18);border-radius:var(--radius-md);color:var(--color-error);font-size:13px;margin:8px 16px;flex-shrink:0}.products-table-wrap{flex:1 1 0;overflow:auto;position:relative;min-height:0;scrollbar-gutter:stable}.products-table{width:100%;border-collapse:collapse;font-size:12.5px}.products-table thead{position:sticky;top:0;z-index:2;background:var(--color-bg-secondary)}.products-table th{padding:0;text-align:left;border-bottom:2px solid var(--color-border);font-weight:600;color:var(--color-text-secondary);white-space:nowrap}.products-th{display:block;padding:6px 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--color-text-secondary)}.products-table tbody tr:not(:last-child) td{border-bottom:1px solid var(--color-border)}.products-table td{padding:3px 10px;color:var(--color-text-primary);vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.products-num-col{width:72px;min-width:72px}.products-name-col{width:22%;min-width:140px;max-width:0}.products-desc-col{min-width:180px;max-width:0;color:var(--color-text-secondary)}.products-pcb-col{width:88px;min-width:80px}.products-status-col{width:72px;min-width:68px}.products-count-col{width:52px;min-width:48px;text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.products-count-col .products-th{text-align:right}.products-muted{color:var(--color-text-muted)}.products-name-cell{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden}.products-group-header{cursor:pointer;-webkit-user-select:none;user-select:none}.products-group-header td{background:#2d89980d;border-bottom:1px solid rgba(45,137,152,.12);padding:0;overflow:visible;white-space:normal}.products-group-header:hover td{background:#2d899817}.products-group-header-content{display:flex;align-items:center;gap:8px;padding:5px 10px;min-width:0}.products-group-chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease;display:flex}.products-group-chevron.open{transform:rotate(90deg)}.products-group-name{font-weight:600;font-size:12.5px;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.products-group-desc{font-size:11.5px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.products-group-count{flex-shrink:0;font-size:11px;color:var(--color-text-muted);white-space:nowrap;margin-left:auto}.products-group-actions{flex-shrink:0;display:inline-flex;align-items:center;gap:4px;opacity:0;transition:opacity var(--transition-fast)}.products-group-header:hover .products-group-actions,.products-group-header:focus-within .products-group-actions{opacity:1}.products-group-action-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.products-group-action-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:#2d89980f}.products-group-action-btn.danger:hover{border-color:#dc2626;color:#dc2626;background:#dc26260f}.products-data-row{cursor:pointer}.products-data-row td{background:#2d899804}.products-data-row:hover td{background:#2d89980d}.products-data-row:focus{outline:none}.products-data-row:focus td{background:#2d899814}.product-row-number{flex-shrink:0;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;font-weight:600;color:var(--color-primary);background:#2d89981a;border-radius:6px;padding:0 6px;line-height:1.6}.product-row-thumb{flex-shrink:0;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);border-radius:4px;background:#fff;overflow:hidden}.product-row-thumb img{width:100%;height:100%;object-fit:contain}.product-row-thumb svg{width:12px;height:12px;color:var(--color-text-secondary);opacity:.45}.product-row-name{min-width:0;font-size:12.5px;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-row-chip{display:inline-flex;align-items:center;gap:3px;padding:0 6px;border-radius:5px;border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:10.5px;font-weight:600;color:var(--color-text-secondary);white-space:nowrap;letter-spacing:.02em;line-height:1.7}.product-row-chip.version{background:#27ae601f;border-color:#27ae6059;color:#1e8449}.product-row-chip.draft-only{background:#f39c121f;border-color:#f39c1259;color:#b9770e}.product-row-chip.pcb{background:#2d899814;border-color:#2d899840;color:var(--color-primary);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:10.5px}.products-table-empty{text-align:center;padding:0!important;white-space:normal!important;overflow:visible!important}.products-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 24px;color:var(--color-text-muted);text-align:center}.products-empty svg{opacity:.3}.products-empty p{margin:0;font-size:14px}.products-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffb3;display:flex;align-items:center;justify-content:center;z-index:3}@media (prefers-color-scheme: dark){.products-loading-overlay{background:#0006}}.products-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:productsSpin .8s linear infinite}.products-pagination{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;border-top:1px solid var(--color-border);background:var(--color-bg-secondary);gap:12px;flex-wrap:wrap;flex-shrink:0}.products-pagination-info{font-size:13px;color:var(--color-text-secondary)}.products-pagination-controls{display:flex;align-items:center;gap:16px}.products-page-size-selector{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--color-text-secondary)}.products-page-size-selector select{padding:3px 6px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);cursor:pointer}.products-page-navigation{display:flex;align-items:center;gap:4px}.products-page-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.products-page-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#2d89980a}.products-page-btn:disabled{opacity:.35;cursor:not-allowed}.products-page-info{font-size:13px;color:var(--color-text-secondary);padding:0 8px;white-space:nowrap}.products-rename-form{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.products-page.mobile .page-header{padding:10px 16px;height:auto;min-height:64px}.products-page.mobile .page-title h1{font-size:20px}.products-page.mobile .page-title p{font-size:12px;white-space:normal}.products-page.mobile .products-main{padding:12px}.products-page.mobile .products-toolbar{padding:10px 12px}.products-page.mobile .products-search-box{max-width:100%}.products-page.mobile .products-group-actions{opacity:1}.products-page.mobile .products-table{min-width:820px}.products-page.mobile .products-pagination{justify-content:center}.products-ctx-menu{position:fixed;z-index:1100;min-width:200px;max-width:300px;padding:4px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.products-ctx-title{padding:6px 10px 7px;margin-bottom:3px;border-bottom:1px solid var(--color-border);font-size:11.5px;font-weight:600;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.products-ctx-item{display:flex;align-items:center;gap:9px;width:100%;padding:7px 10px;border:none;border-radius:var(--radius-sm);background:transparent;font-size:13px;color:var(--color-text-primary);text-align:left;cursor:pointer;transition:background .1s ease}.products-ctx-item svg{flex-shrink:0;color:var(--color-text-secondary)}.products-ctx-item:hover:not(:disabled){background:#2d899814}.products-ctx-item.danger{color:#dc2626}.products-ctx-item.danger svg{color:#dc2626}.products-ctx-item.danger:hover:not(:disabled){background:#dc262614}.products-ctx-item:disabled{opacity:.45;cursor:not-allowed}.products-ctx-sep{height:1px;margin:3px 6px;background:var(--color-border)}.pshare-row{display:inline-flex;align-items:center;gap:1px;flex-wrap:nowrap;vertical-align:middle;flex-shrink:0;line-height:0}.pshare-status,.pshare-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid transparent;border-radius:var(--radius-sm, 4px);flex-shrink:0}.pshare-status{color:var(--color-primary, #2d8998);background:#2d89981a}.pshare-status.muted{color:var(--color-text-muted, #6b7280);background:var(--color-bg-secondary, #f4f5f7)}.pshare-status.local{color:#b45309;background:#b453091a}.pshare-btn{background:none;color:var(--color-text-tertiary, #6b7280);cursor:pointer}.pshare-btn:hover:not(:disabled){border-color:var(--color-primary, #2d8998);color:var(--color-primary, #2d8998);background:#2d899814}.pshare-btn.primary{color:var(--color-primary, #2d8998)}.pshare-btn.primary:hover:not(:disabled){background:#2d89981f}.pshare-btn:disabled{opacity:.45;cursor:not-allowed}.pshare-hidden-row,tr.pshare-hidden td{opacity:.62}.prodd-hidden-items{margin-top:6px;padding:4px 8px;border:1px dashed var(--color-border, #d1d5db);border-radius:var(--radius-md, 6px)}.prodd-hidden-items-label{font-size:10px;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:2px}.prodd-hidden-item{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;opacity:.72;font-size:12px;padding:1px 0}.prodd-hidden-item .mono{font-weight:600;min-width:8em}.prodd-hidden-item .pshare-row{margin-left:auto}.prodd-hidden-item-title{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;text-decoration:none}a.prodd-hidden-item-title:hover{color:var(--color-primary);text-decoration:underline}.prodd-hidden-thumb{width:28px;height:28px;object-fit:contain;flex-shrink:0;border:1px solid var(--color-border, #dddfe0);border-radius:4px;background:#fff}.prodd-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%)}.prodd-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-shrink:0;gap:16px}.prodd-page .header-left{display:flex;align-items:center;gap:16px;min-width:0}.prodd-page .header-right{display:flex;align-items:center;gap:10px;flex-shrink:0}.prodd-page .back-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;transition:all var(--transition-fast)}.prodd-page .back-button:hover{background:var(--color-bg-secondary);color:var(--color-primary);border-color:var(--color-primary)}.prodd-page .back-button svg{width:16px;height:16px}.prodd-page .page-title{min-width:0}.prodd-page .page-title h1{font-size:21px;font-weight:600;color:var(--color-text-primary);margin:0;line-height:1.2;word-break:break-word}.prodd-page .page-title p{font-size:13px;color:var(--color-text-secondary);margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodd-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}.prodd-num-chip{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;font-weight:600;color:var(--color-primary);background:#2d89981a;border-radius:8px;padding:2px 8px;line-height:1.5;flex-shrink:0}.prodd-group-chip{font-size:11px;font-weight:600;color:var(--color-text-secondary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:999px;padding:2px 10px;flex-shrink:0}.prodd-main{flex:1;padding:24px 32px 48px;width:100%;box-sizing:border-box}.prodd-container{max-width:1100px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.prodd-loading,.prodd-notfound{display:flex;flex-direction:column;align-items:center;gap:12px;padding:80px 20px;color:var(--color-text-muted);font-size:14px}@keyframes proddSpin{to{transform:rotate(360deg)}}.prodd-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:proddSpin .9s linear infinite}.prodd-section{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px 22px}.prodd-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.prodd-section-head h2{display:flex;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;color:var(--color-text-primary)}.prodd-section-head h2 svg{width:17px;height:17px;color:var(--color-primary);flex-shrink:0}.prodd-section-head-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.prodd-section-count{font-size:12px;color:var(--color-text-muted)}.prodd-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-secondary);font-size:12.5px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.prodd-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#2d89980f}.prodd-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff;font-weight:500}.prodd-btn.primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff}.prodd-btn.danger:hover:not(:disabled){border-color:#dc2626;color:#dc2626;background:#dc26260f}.prodd-btn:disabled{opacity:.55;cursor:not-allowed}.prodd-empty{padding:14px 12px;border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:13px;text-align:center}.prodd-params-hint{margin-top:6px;font-size:11px;color:var(--color-text-muted);line-height:1.4}.prodd-error-banner{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#e74c3c14;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-md);color:var(--color-error);font-size:13px}.prodd-overview{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:20px;align-items:start}.prodd-spec{flex:1;display:grid;grid-template-columns:max-content minmax(0,1fr);grid-template-rows:auto auto auto 1fr;gap:12px 18px;align-items:start}.prodd-spec-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.prodd-spec-value{font-size:13.5px;color:var(--color-text-primary);word-break:break-word;min-width:0;min-height:32px;display:flex;align-items:center}.prodd-spec-value.mono{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12.5px}.prodd-spec-value select{width:100%;max-width:none;min-width:0;flex:1;padding:6px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast)}.prodd-spec-value select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.prodd-spec-notes{grid-column:1 / -1;margin-top:2px;display:flex;flex-direction:column;min-height:0;align-self:stretch}.prodd-spec-notes .prodd-spec-label{display:block;margin-bottom:4px}.prodd-notes-area{width:100%;flex:1;min-height:88px;padding:9px 11px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary);resize:vertical;box-sizing:border-box;transition:all var(--transition-fast)}.prodd-notes-area:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.prodd-notes-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.prodd-meta-line{margin-top:auto;padding-top:12px;font-size:11.5px;color:var(--color-text-muted)}.prodd-versions-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.prodd-version-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);cursor:pointer;text-align:left;width:100%;font-family:inherit;transition:all var(--transition-fast)}.prodd-version-row:hover{border-color:var(--color-primary);background:#2d89980a}.prodd-version-chip{flex-shrink:0;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;font-weight:700;color:#1e8449;background:#27ae601f;border:1px solid rgba(39,174,96,.35);border-radius:var(--radius-sm);padding:2px 8px}.prodd-version-main{flex:1;min-width:0;font-size:12px;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodd-releases-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:22px 16px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);text-align:center}.prodd-releases-empty-icon{width:40px;height:40px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:#2d89981a;color:var(--color-primary)}.prodd-releases-empty-icon svg{width:20px;height:20px}.prodd-releases-empty p{margin:0;max-width:280px;color:var(--color-text-muted);font-size:12.5px;line-height:1.5}.prodd-pcb-card{display:flex;flex-direction:column;gap:16px;padding:18px 20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);box-shadow:var(--shadow-sm)}.prodd-pcb-top{display:flex;align-items:flex-start;gap:14px}.prodd-pcb-icon{flex-shrink:0;width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:#2d89981a;color:var(--color-primary)}.prodd-pcb-identity{flex:1;min-width:0}.prodd-pcb-identity-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.prodd-pcb-number{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--color-text-secondary)}.prodd-pcb-name{margin-top:3px;font-size:15.5px;font-weight:600;line-height:1.3;color:var(--color-text-primary);word-break:break-word}.prodd-pcb-variant{margin-top:4px;font-size:12.5px;color:var(--color-text-secondary)}.prodd-pcb-variant strong{font-weight:600;color:var(--color-text-primary)}.prodd-pcb-versions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.prodd-pcb-ver{padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);min-width:0}.prodd-pcb-ver-label{display:block;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.prodd-pcb-ver-value{display:block;margin-top:4px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:15px;font-weight:600;color:var(--color-text-primary);letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prodd-pcb-ver-value.missing{font-weight:500;color:var(--color-text-muted)}.prodd-pcb-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-top:14px;border-top:1px solid var(--color-border)}.prodd-pcb-status{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.prodd-pcb-open{margin-left:auto}.prodd-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text-secondary);white-space:nowrap;letter-spacing:.02em}.prodd-chip.released{background:#27ae601f;border-color:#27ae6059;color:#1e8449}.prodd-chip.draft{background:#f39c121f;border-color:#f39c1259;color:#b9770e}.prodd-chip.variant{background:#2d899814;border-color:#2d899840;color:var(--color-primary)}.prodd-chip.warn{background:#f39c121f;border-color:#f39c1259;color:#b9770e}.prodd-chip.good{background:#27ae601f;border-color:#27ae6059;color:#1e8449}.prodd-update-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;border:1px solid rgba(243,156,18,.45);background:#f39c121f;color:#b9770e;font-family:inherit;white-space:nowrap;cursor:pointer;transition:all var(--transition-fast)}.prodd-update-chip:hover:not(:disabled){background:#f39c123d;border-color:#b9770e}.prodd-update-chip:disabled{opacity:.6;cursor:not-allowed}.prodd-tbl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.prodd-tbl-search{position:relative;flex:1;min-width:180px;max-width:340px}.prodd-tbl-search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--color-text-secondary);pointer-events:none}.prodd-tbl-search input{width:100%;padding:7px 30px 7px 32px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-family:inherit;color:var(--color-text-primary);box-sizing:border-box;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.prodd-tbl-search input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.prodd-tbl-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);font-size:15px;line-height:1;cursor:pointer}.prodd-tbl-search-clear:hover{background:#94a3b833;color:var(--color-text-primary)}.prodd-tbl-pagesize{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary);white-space:nowrap}.prodd-tbl-pagesize select{padding:5px 8px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:12px;font-family:inherit;color:var(--color-text-primary)}.prodd-tbl-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px}.prodd-tbl-count{font-size:12px;color:var(--color-text-secondary)}.prodd-tbl-pager{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--color-text-secondary)}.prodd-tbl-pager button{padding:5px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-primary);font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition-fast)}.prodd-tbl-pager button:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.prodd-tbl-pager button:disabled{opacity:.5;cursor:not-allowed}.prodd-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.prodd-table{width:100%;border-collapse:collapse;font-size:13px}.prodd-table th{text-align:left;padding:10px 12px;background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--color-text-secondary);white-space:nowrap}.prodd-table td{padding:6px 12px;border-bottom:1px solid var(--color-border);vertical-align:middle;color:var(--color-text-primary)}.prodd-table th.col-actions,.prodd-table td.col-actions{width:1%;white-space:nowrap;text-align:right}.prodd-table td.col-actions .pshare-row:has(+.prodd-icon-btn){margin-right:4px;padding-right:4px;border-right:1px solid var(--color-border)}.prodd-table tbody tr{transition:background var(--transition-fast)}.prodd-table tbody tr:hover td{background:#2d899808}.prodd-table tr:last-child td{border-bottom:none}.prodd-table .mono{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;letter-spacing:-.01em}.prodd-part-thumb{width:34px;height:34px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg-secondary);object-fit:contain;display:block}.prodd-part-link{background:none;border:none;padding:0;color:var(--color-primary);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;text-align:left}.prodd-part-link:hover{text-decoration:underline;color:var(--color-primary-dark)}.prodd-qty-input{width:62px;padding:5px 7px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:12.5px;font-family:inherit;text-align:center;background:var(--color-bg);color:var(--color-text-primary);transition:all var(--transition-fast)}.prodd-qty-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.prodd-status-chip{display:inline-block;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);white-space:nowrap}.prodd-status-chip.good{background:#27ae601f;border-color:#27ae6059;color:#1e8449}.prodd-status-chip.warn{background:#f39c121f;border-color:#f39c1259;color:#b9770e}.prodd-status-chip.bad{background:#e74c3c1a;border-color:#e74c3c4d;color:var(--color-error)}.prodd-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.prodd-icon-btn:hover:not(:disabled){background:#2d89981a;color:var(--color-primary)}.prodd-icon-btn.danger:hover:not(:disabled){background:#dc262614;color:#dc2626}.prodd-icon-btn:disabled{opacity:.45;cursor:not-allowed}.prodd-drop-zone{display:flex;align-items:center;justify-content:center;gap:12px;padding:16px 14px;border:1.5px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);font-size:13px;cursor:pointer;transition:all var(--transition-fast)}.prodd-drop-zone:hover,.prodd-drop-zone.drag-over,.prodd-drop-zone:focus-visible{border-color:var(--color-primary);background:#2d89980d;color:var(--color-primary);outline:none}.prodd-drop-zone svg{width:20px;height:20px;flex-shrink:0;opacity:.8}.prodd-drop-texts{display:flex;flex-direction:column;gap:2px;text-align:left;min-width:0}.prodd-drop-sub{font-size:11.5px;opacity:.75}.prodd-table-dropwrap{position:relative}.prodd-table-dropwrap.drag-over .prodd-table-wrap{border-color:var(--color-primary);border-style:dashed}.prodd-table-drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--radius-md);background:#2d899814;color:var(--color-primary);font-size:13px;font-weight:600;pointer-events:none}.prodd-upload-list{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.prodd-upload-row{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--color-text-secondary)}.prodd-upload-name{flex-shrink:0;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prodd-upload-bar{flex:1;height:6px;border-radius:999px;background:var(--color-bg-secondary);border:1px solid var(--color-border);overflow:hidden}.prodd-upload-bar-fill{height:100%;background:var(--color-primary);border-radius:999px;transition:width .15s ease}.prodd-upload-pct{flex-shrink:0;min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.prodd-upload-row.done .prodd-upload-bar-fill{background:#27ae60}.prodd-upload-row.done .prodd-upload-pct{color:#1e8449}.prodd-upload-row.error .prodd-upload-bar-fill{background:#dc2626}.prodd-upload-row.error .prodd-upload-pct{color:#dc2626}.prodd-doc-link{display:flex;align-items:center;gap:8px;min-width:0;color:var(--color-text-primary);text-decoration:none;font-size:13px;font-weight:500}.prodd-doc-link:hover{color:var(--color-primary)}.prodd-doc-link svg{flex-shrink:0;color:var(--color-text-muted)}.prodd-doc-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodd-doc-type{flex-shrink:0;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary)}.prodd-doc-meta{flex-shrink:0;font-size:11.5px;color:var(--color-text-muted);white-space:nowrap}.prodd-env-sources{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.prodd-env-source{flex:1;min-width:180px;display:flex;align-items:center;gap:10px;padding:8px 11px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);font-size:12px;color:var(--color-text-secondary)}.prodd-env-source svg{flex-shrink:0;color:var(--color-primary)}.prodd-env-source strong{color:var(--color-text-primary);font-size:12.5px}.prodd-env-source .sub{display:block;margin-top:1px;font-size:11.5px;color:var(--color-text-muted)}.prodd-env-block{margin-top:16px}.prodd-env-block h4{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--color-text-primary)}.prodd-env-block-desc{margin:0 0 10px;font-size:12px;color:var(--color-text-muted);line-height:1.45}.prodd-env-clean{padding:11px 13px;border-radius:var(--radius-md);background:#27ae601a;border:1px solid rgba(39,174,96,.3);color:#1e8449;font-size:12.5px;line-height:1.5}.prodd-env-warn{padding:11px 13px;border-radius:var(--radius-md);background:#f39c121a;border:1px solid rgba(243,156,18,.3);color:#b9770e;font-size:12.5px;line-height:1.5;margin-bottom:10px}.prodd-env-note{padding:9px 12px;border-radius:var(--radius-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-secondary);font-size:12px;line-height:1.45;margin-bottom:10px}.prodd-env-group-toggle{display:flex;align-items:center;gap:9px;width:100%;background:none;border:none;padding:4px 0;cursor:pointer;text-align:left;font-size:12.5px;font-family:inherit;color:var(--color-text-primary)}.prodd-env-chevron{display:inline-flex;color:var(--color-text-muted);transition:transform .15s ease;flex-shrink:0}.prodd-env-chevron.open{transform:rotate(90deg)}.prodd-env-code{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-weight:700;color:var(--color-primary);flex-shrink:0}.prodd-env-group-desc{flex:1;min-width:0;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodd-env-group-meta{flex-shrink:0;font-size:11.5px;color:var(--color-text-muted)}.prodd-origin-chip{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 7px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-secondary);color:var(--color-text-secondary);margin-right:4px}.prodd-origin-chip.pcb{background:#2d899814;border-color:#2d899840;color:var(--color-primary)}.prodd-origin-chip.part{background:#a855f71a;border-color:#a855f74d;color:#9333ea}.prodd-origin-chip.manual{background:#f39c121f;border-color:#f39c1259;color:#b9770e}.prodd-envm{margin-top:14px;border-top:1px dashed var(--color-border);padding-top:12px}.prodd-envm-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.prodd-envm-head h5{margin:0;font-size:12.5px;font-weight:600;color:var(--color-text-primary)}.prodd-envm-empty{font-size:12px;color:var(--color-text-muted);padding:6px 0}.prodd-envm-doc-chip{display:inline-flex;align-items:center;gap:5px;margin:2px 4px 2px 0;padding:2px 8px;border-radius:999px;border:1px solid var(--color-border);background:var(--color-bg-secondary);font-size:11px}.prodd-envm-doc-chip a{display:inline-flex;align-items:center;gap:4px;color:var(--color-text-secondary);text-decoration:none;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodd-envm-doc-chip a:hover{color:var(--color-primary)}.prodd-envm-doc-x{background:none;border:none;color:var(--color-text-muted);font-size:13px;line-height:1;cursor:pointer;padding:0 1px}.prodd-envm-doc-x:hover{color:#dc2626}.prodd-envm-notes{margin-top:2px;font-size:11.5px;color:var(--color-text-muted)}.prodd-envm-source-tag{display:inline-block;margin-left:6px;font-size:9.5px;font-weight:700;text-transform:uppercase;padding:1px 6px;border-radius:999px;background:#f39c121f;border:1px solid rgba(243,156,18,.35);color:#b9770e}.muted,.empty-dash{color:var(--color-text-muted)}.prodd-labels-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-secondary);text-align:center}.prodd-labels-empty-icon{width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:#2d89981a;color:var(--color-primary)}.prodd-labels-empty-icon svg{width:22px;height:22px}.prodd-labels-empty p{margin:0;max-width:520px;color:var(--color-text-muted);font-size:13px;line-height:1.5}.prodd-labels-list{display:flex;flex-direction:column;gap:16px}.prodd-label-card{display:flex;flex-direction:column;gap:16px;padding:18px 20px;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg);box-shadow:var(--shadow-sm)}.prodd-label-top{display:flex;align-items:flex-start;gap:14px}.prodd-label-icon{flex-shrink:0;width:44px;height:44px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;background:#2d89981a;color:var(--color-primary)}.prodd-label-identity{flex:1;min-width:0}.prodd-label-identity-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.prodd-label-name{flex:1;min-width:140px;padding:2px 8px;margin:0 0 0 -8px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;font-size:15.5px;font-weight:600;line-height:1.3;font-family:inherit;color:var(--color-text-primary)}.prodd-label-name:hover:not(:disabled){background:var(--color-bg-secondary)}.prodd-label-name:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg);box-shadow:0 0 0 3px #2d89981a}.prodd-label-name:disabled{opacity:.85}.prodd-label-name::placeholder{font-weight:500;color:var(--color-text-muted)}.prodd-label-sub{margin-top:4px;font-size:12.5px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.prodd-label-toolbar{flex-shrink:0;display:flex;align-items:center;gap:2px}.prodd-label-card .prodd-label-remove{position:static;background:none}.prodd-label-specs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.prodd-label-spec{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);min-width:0}.prodd-label-spec>label,.prodd-label-spec-label,.prodd-label-spec .prodd-field-head label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.prodd-label-spec .prodd-field-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.prodd-label-spec select{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:12.5px;font-family:inherit;background:var(--color-bg);color:var(--color-text-primary)}.prodd-label-spec select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.prodd-label-spec-empty{font-size:13.5px;color:var(--color-text-muted);padding:4px 0}.prodd-field-link{background:none;border:none;padding:0;font-family:inherit;font-size:11.5px;font-weight:600;color:var(--color-primary);cursor:pointer;white-space:nowrap}.prodd-field-link:hover{text-decoration:underline;color:var(--color-primary-dark)}.prodd-label-version-row{display:flex;align-items:center;gap:8px}.prodd-label-version-row select{flex:1;min-width:0}.prodd-status-pill{flex-shrink:0;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:3px 9px;white-space:nowrap;cursor:default}.prodd-status-pill.draft{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.prodd-status-pill.released{color:#166534;background:#dcfce7;border:1px solid #bbf7d0}.prodd-label-version-hint{font-size:11px;color:var(--color-text-muted);line-height:1.35}.prodd-label-file{display:flex;align-items:center;gap:8px;min-height:28px;font-size:12px;color:var(--color-text-secondary);min-width:0}.prodd-label-file .prodd-doc-link{min-width:0;font-size:12.5px}.prodd-label-file-actions{display:flex;gap:6px;flex-wrap:wrap}.prodd-label-file-actions .prodd-btn{height:28px;padding:0 10px;font-size:12px}.prodd-label-source{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);font-size:12px;min-width:0}.prodd-label-source .prodd-doc-link{min-width:0;font-size:12.5px}.prodd-label-file-img{display:block;max-width:100%;max-height:220px;background:#fff;box-shadow:0 2px 8px #0000001a}.prodd-label-preview{display:flex;flex-direction:column;align-items:stretch;padding-top:4px;border-top:1px solid var(--color-border)}.prodd-label-tray{display:flex;align-items:center;justify-content:center;min-height:140px;width:100%;padding:22px 20px;box-sizing:border-box;background:linear-gradient(180deg,rgba(45,137,152,.04) 0%,transparent 48%),var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.prodd-label-tray img{display:block;max-width:100%;height:auto;background:transparent;filter:drop-shadow(0 4px 12px rgba(15,23,32,.14))}.prodd-label-tray .hint{font-size:12.5px;color:var(--color-text-muted);text-align:center;max-width:320px;line-height:1.45}.prodd-label-tray .hint a{color:var(--color-primary);font-weight:600;text-decoration:none}.prodd-label-tray .hint a:hover{text-decoration:underline}.prodd-label-dims{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:10px;font-size:11px;color:var(--color-text-secondary)}.prodd-label-dims .scale-info{font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.prodd-log-list{display:flex;flex-direction:column;gap:2px;font-size:12.5px}.prodd-log-row{display:flex;align-items:baseline;gap:10px;padding:6px 4px;border-bottom:1px dashed var(--color-border)}.prodd-log-row:last-child{border-bottom:none}.prodd-log-time{flex-shrink:0;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;color:var(--color-text-muted);white-space:nowrap}.prodd-log-msg{flex:1;color:var(--color-text-secondary)}.prodd-log-user{flex-shrink:0;font-size:11.5px;color:var(--color-text-muted)}.prodd-dialog-body{padding:16px 20px;display:flex;flex-direction:column;gap:13px;overflow-y:auto}.prodd-version-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px 18px}.prodd-version-facts .fact label{display:block;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);margin-bottom:2px}.prodd-version-facts .fact .value{font-size:13px;color:var(--color-text-primary)}.prodd-info-body{display:grid;grid-template-columns:240px minmax(0,1fr);gap:22px;align-items:stretch}.prodd-info-fields{min-width:0;display:flex;flex-direction:column}.prodd-image-area{display:flex;flex-direction:column;gap:0;min-width:0}.prodd-image-area>.prodd-hidden-items{margin-top:8px}.prodd-image-frame{position:relative;width:100%;aspect-ratio:1;height:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow-sm)}.prodd-image-frame img{max-width:100%;max-height:100%;object-fit:contain}.prodd-image-frame.clickable{cursor:zoom-in}.prodd-image-frame.clickable:hover{border-color:var(--color-primary);box-shadow:0 0 0 3px #2d89981a}.prodd-image-frame.is-3d.clickable{cursor:pointer}.prodd-image-frame.drag-over{border:2px dashed var(--color-primary);background:#2d89980d}.prodd-image-frame.empty-add{border-style:dashed;cursor:pointer}.prodd-image-frame.empty-add:hover{border-color:var(--color-primary);background:#2d89980a}.prodd-image-frame.empty-add:hover .prodd-image-placeholder{color:var(--color-primary);opacity:1}.prodd-image-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--color-text-secondary);opacity:.7;font-size:12px;font-weight:500;transition:color .15s ease,opacity .15s ease}.prodd-image-placeholder svg{width:36px;height:36px}.prodd-image-placeholder-hint{font-size:10.5px;font-weight:400;opacity:.8}.prodd-image-3d-badge{position:absolute;top:8px;right:8px;z-index:1;display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid rgba(45,137,152,.3);border-radius:999px;background:#ffffffeb;color:var(--color-primary);font-size:11px;font-weight:600;pointer-events:none}.prodd-image-hover{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:stretch;gap:8px;padding:10px;background:linear-gradient(180deg,transparent 42%,rgba(15,23,32,.58) 100%);opacity:0;pointer-events:none;transition:opacity .15s ease;z-index:2}.prodd-image-frame:hover .prodd-image-hover,.prodd-image-frame:focus-within .prodd-image-hover,.prodd-image-frame.drag-over .prodd-image-hover{opacity:1}.prodd-image-hover-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;pointer-events:auto}.prodd-image-hover-btn{height:30px;padding:0 11px;border:none;border-radius:var(--radius-md);background:#fffffff2;color:var(--color-text-primary);box-shadow:0 1px 4px #0000002e;display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;white-space:nowrap}.prodd-image-hover-btn:hover:not(:disabled){background:#fff;color:var(--color-primary)}.prodd-image-hover-btn:disabled{opacity:.65;cursor:not-allowed}.prodd-image-hover-btn .prodd-image-3d-count{background:#2d899826}.prodd-image-thumbs{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}.prodd-image-hover .prodd-image-thumbs{flex-wrap:nowrap;overflow-x:auto;pointer-events:auto;padding:6px 2px 2px;gap:6px}.prodd-image-hover .prodd-image-thumb{width:44px;height:44px;flex:0 0 44px}.prodd-image-hover .prodd-image-thumb-tools{top:1px;right:1px}.prodd-image-hover .prodd-image-thumb-star{top:1px;left:1px}@media (hover: none){.prodd-image-hover{opacity:1}}.prodd-image-thumb{position:relative;width:56px;height:56px;flex:0 0 56px}.prodd-image-thumb-pick{width:100%;height:100%;padding:2px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;cursor:pointer;transition:border-color .15s ease}.prodd-image-thumb:hover .prodd-image-thumb-pick{border-color:var(--color-primary)}.prodd-image-thumb.active .prodd-image-thumb-pick{border-color:var(--color-primary);box-shadow:0 0 0 2px #2d899826}.prodd-image-thumb.primary .prodd-image-thumb-pick{box-shadow:0 0 0 2px #f59e0b73}.prodd-image-thumb.primary.active .prodd-image-thumb-pick{border-color:var(--color-primary);box-shadow:0 0 0 2px #f59e0b73,0 0 0 4px #2d899826}.prodd-image-thumb-pick img{width:100%;height:100%;object-fit:contain;display:block}.prodd-image-thumb-star{position:absolute;top:-7px;left:-6px;font-size:12px;line-height:1;color:#d97706;text-shadow:0 0 2px #fff;pointer-events:none}.prodd-image-thumb-3d{position:absolute;bottom:2px;right:2px;padding:0 3px;border-radius:3px;background:#2d8998d9;color:#fff;font-size:8px;font-weight:700;line-height:1.5;pointer-events:none}.prodd-image-thumb-shared{position:absolute;bottom:2px;left:2px;width:14px;height:14px;display:flex;align-items:center;justify-content:center;border-radius:3px;background:#2d8998e0;color:#fff;pointer-events:none}.prodd-image-thumb-shared.muted{background:#6b7280e0}.prodd-image-thumb-tools{position:absolute;top:-8px;right:-8px;display:flex;align-items:center;gap:3px;opacity:0;transition:opacity .12s ease;z-index:2}.prodd-image-thumb:hover .prodd-image-thumb-tools,.prodd-image-thumb.active .prodd-image-thumb-tools{opacity:1}.prodd-image-thumb-tool{width:17px;height:17px;padding:0;border:1px solid var(--color-border);border-radius:50%;background:var(--color-bg);color:var(--color-text-secondary);font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:color .12s ease,border-color .12s ease}.prodd-image-thumb-tool:hover:not(:disabled){color:#d97706;border-color:#d97706}.prodd-image-thumb-tool.danger{font-size:13px}.prodd-image-thumb-tool.danger:hover:not(:disabled){color:#dc2626;border-color:#dc2626}.prodd-image-thumb-tool:disabled{opacity:.5;cursor:not-allowed}.prodd-image-thumb-add{flex:1 1 72px;min-width:72px;height:56px;padding:0 10px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-family:inherit;font-size:12px;font-weight:600;white-space:nowrap;transition:color .15s ease,border-color .15s ease,background .15s ease}.prodd-image-thumb-add:hover:not(:disabled){color:var(--color-primary);border-color:var(--color-primary);background:#2d89980d}.prodd-image-thumb-add:disabled{opacity:.5;cursor:not-allowed}.prodd-image-3d-open{width:100%;justify-content:center}.prodd-image-3d-count{min-width:16px;padding:0 4px;border-radius:999px;background:#2d89981f;color:var(--color-primary);font-size:10.5px;font-weight:700;line-height:1.6;text-align:center}.prodd-btn-spinner{width:12px;height:12px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:proddSpin .9s linear infinite}.prodd-btn-spinner.light{border-color:#ffffff59;border-top-color:#fff}.prodd-3dpick{max-width:620px}.prodd-3dpick-body{overflow-y:auto;padding:6px 0}.prodd-3dpick-table{width:100%;border-collapse:collapse;font-size:13px}.prodd-3dpick-table th{padding:8px 14px;text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.prodd-3dpick-table td{padding:9px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle}.prodd-3dpick-table tbody tr:last-child td{border-bottom:none}.prodd-3dpick-table tbody tr:hover{background:#2d89980a}.prodd-3dpick-table tbody tr.rendering{background:#2d89980f}.prodd-3dpick-title{font-weight:500;color:var(--color-text-primary);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prodd-3dpick-origin{display:inline-block;padding:1px 7px;border-radius:999px;font-size:10.5px;font-weight:600;margin-right:6px}.prodd-3dpick-origin.product{background:#2d89981a;border:1px solid rgba(45,137,152,.3);color:var(--color-primary)}.prodd-3dpick-origin.part{background:#a855f71a;border:1px solid rgba(168,85,247,.3);color:#9333ea}.prodd-3dpick-origin.pcb{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:var(--color-success, #059669)}.prodd-3dpick-origin-label{font-size:12px;color:var(--color-text-secondary)}.prodd-3dpick-format{font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:11px;font-weight:600;color:var(--color-text-secondary)}.prodd-3dpick-actions{text-align:right;white-space:nowrap}.prodd-3dpick-actions .prodd-btn{margin-left:6px}.prodd-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#0f172ad1;display:flex;align-items:center;justify-content:center;cursor:zoom-out}.prodd-lightbox img{max-width:min(92vw,1400px);max-height:90vh;border-radius:var(--radius-md);background:#fff;padding:8px;cursor:default;box-shadow:0 24px 64px #00000073}.prodd-lightbox-close{position:absolute;top:14px;right:18px;width:38px;height:38px;border:none;border-radius:50%;background:#ffffff1f;color:#fff;font-size:24px;line-height:1;cursor:pointer;transition:background .15s ease}.prodd-lightbox-close:hover{background:#ffffff40}@media (max-width: 900px){.prodd-overview{grid-template-columns:1fr}.prodd-label-card{padding:16px}.prodd-label-specs{grid-template-columns:1fr}.prodd-label-top{flex-wrap:wrap}.prodd-label-toolbar{margin-left:auto}.prodd-info-body{grid-template-columns:1fr}.prodd-image-area{width:100%;max-width:280px}.prodd-image-frame{width:100%}.prodd-spec{grid-template-rows:none}.prodd-pcb-versions{grid-template-columns:1fr}.prodd-pcb-footer{flex-direction:column;align-items:stretch}.prodd-pcb-open{margin-left:0;justify-content:center}}.prodd-page.mobile .page-header{padding:10px 16px;height:auto;min-height:64px}.prodd-page.mobile .page-title h1{font-size:17px}.prodd-page.mobile .prodd-main,.prodd-page.mobile .prodd-section{padding:16px}.prodd-page.mobile .prodd-label-tray{min-width:0;width:100%}.prodd-spec-notes-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.prodd-spec-notes-head .prodd-spec-label{margin-bottom:0}.prodd-spec>.prodd-hidden-items{grid-column:1 / -1}.prodd-image-thumb-tools .pshare-row{gap:0}.prodd-image-thumb-tools .pshare-btn,.prodd-image-thumb-tools .pshare-status{width:17px;height:17px;border-radius:50%;background:var(--color-bg);border-color:var(--color-border)}.component-documents-table .doc-row-actions-share{flex-wrap:nowrap;justify-content:flex-end}.component-documents-table .doc-row-actions-share .pshare-row{padding-right:4px;margin-right:2px;border-right:1px solid var(--color-border)}.app-dialog-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:100000;padding:20px;animation:appDialogFade .15s ease-out}@keyframes appDialogFade{0%{opacity:0}to{opacity:1}}.app-dialog{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:0 20px 50px #0000004d;padding:32px;max-width:440px;width:100%;text-align:center;animation:appDialogSlide .2s ease-out}@keyframes appDialogSlide{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.app-dialog-icon{width:64px;height:64px;margin:0 auto 20px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid transparent}.app-dialog-icon svg{width:32px;height:32px}.app-dialog-icon.danger{background:linear-gradient(135deg,#fee2e2,#fecaca);border-color:#f87171;color:#dc2626}.app-dialog-icon.primary{background:var(--color-primary-light);border-color:var(--color-border-focus);color:var(--color-primary-dark)}.app-dialog-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0 0 12px}.app-dialog-message{font-size:14px;color:var(--color-text-secondary);line-height:1.6;margin:0 0 24px;white-space:pre-line;word-break:break-word}.dup-notice{text-align:left;white-space:normal}.dup-notice p{margin:0 0 14px}.dup-notice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.dup-notice-item{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.dup-notice-file{font-family:JetBrains Mono,Fira Code,monospace;font-size:12.5px;font-weight:600;color:var(--color-text-primary);word-break:break-all}.dup-notice-existing{font-size:12.5px;color:var(--color-text-secondary)}.dup-notice-type{display:inline-block;font-size:11px;font-weight:600;color:var(--color-primary-dark);background:var(--color-primary-light);padding:1px 7px;border-radius:999px;margin-left:4px}.dup-notice-status{font-size:11.5px;font-weight:600;margin-top:2px}.dup-notice-status.ok{color:var(--color-success)}.dup-notice-status.muted{color:var(--color-text-muted)}.app-dialog-actions{display:flex;gap:12px;justify-content:center}.app-dialog-progress{margin:-8px 0 20px;text-align:left}.app-dialog-progress-label{font-size:12.5px;font-weight:600;color:var(--color-text-secondary);margin-bottom:8px}.app-dialog-progress-track{height:8px;border-radius:999px;background:var(--color-bg-secondary);border:1px solid var(--color-border);overflow:hidden}.app-dialog-progress-fill{height:100%;width:0%;border-radius:inherit;background:var(--color-primary);transition:width .15s ease-out}.app-dialog-progress-fill.indeterminate{width:35%;animation:appDialogProgressIndeterminate 1.1s ease-in-out infinite}@keyframes appDialogProgressIndeterminate{0%{transform:translate(-120%)}to{transform:translate(320%)}}.app-dialog-inline-error{margin:-8px 0 20px;padding:10px 12px;border-radius:var(--radius-md);background:#dc262614;border:1px solid rgba(220,38,38,.25);color:#b91c1c;font-size:13px;line-height:1.45;text-align:left}.app-dialog-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:110px}.app-dialog-btn.cancel{background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-text-primary)}.app-dialog-btn.cancel:hover{background:var(--color-bg-secondary);border-color:var(--color-text-secondary)}.app-dialog-btn.confirm{border:1px solid transparent;color:#fff}.app-dialog-btn.confirm.danger{background:linear-gradient(135deg,#dc2626,#b91c1c);border-color:#dc2626}.app-dialog-btn.confirm.danger:hover{background:linear-gradient(135deg,#b91c1c,#991b1b);border-color:#b91c1c;transform:translateY(-1px);box-shadow:0 4px 12px #dc26264d}.app-dialog-btn.confirm.primary{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);border-color:var(--color-primary)}.app-dialog-btn.confirm.primary:hover{background:linear-gradient(135deg,var(--color-primary-dark) 0%,var(--color-primary-dark) 100%);transform:translateY(-1px);box-shadow:0 4px 12px #2d89984d}.app-toast-stack{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:10px;z-index:100001;max-width:min(400px,calc(100vw - 40px));pointer-events:none}.app-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:12px;background:var(--color-bg);border:1px solid var(--color-border);border-left:4px solid var(--color-info);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:14px 14px 14px 16px;animation:appToastIn .22s cubic-bezier(.21,1.02,.73,1)}@keyframes appToastIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.app-toast.success{border-left-color:var(--color-success)}.app-toast.error{border-left-color:var(--color-error)}.app-toast.warning{border-left-color:var(--color-accent-warning)}.app-toast.info{border-left-color:var(--color-info)}.app-toast-icon{flex-shrink:0;width:22px;height:22px;margin-top:1px}.app-toast-icon svg{width:22px;height:22px}.app-toast.success .app-toast-icon{color:var(--color-success)}.app-toast.error .app-toast-icon{color:var(--color-error)}.app-toast.warning .app-toast-icon{color:var(--color-accent-warning)}.app-toast.info .app-toast-icon{color:var(--color-info)}.app-toast-body{flex:1;min-width:0}.app-toast-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:2px}.app-toast-message{font-size:13px;color:var(--color-text-secondary);line-height:1.5;white-space:pre-line;word-break:break-word}.app-toast-close{flex-shrink:0;background:none;border:none;color:var(--color-text-muted);padding:2px;border-radius:var(--radius-sm);display:inline-flex;transition:all var(--transition-fast)}.app-toast-close svg{width:16px;height:16px}.app-toast-close:hover{color:var(--color-text-primary);background:var(--color-bg-secondary)}@media (max-width: 480px){.app-dialog{padding:24px}.app-dialog-actions{flex-direction:column-reverse}.app-dialog-btn{width:100%}.app-toast-stack{left:12px;right:12px;bottom:12px;max-width:none}}@media (prefers-color-scheme: dark){.app-dialog-icon.danger{background:linear-gradient(135deg,#dc262633,#b91c1c33);border-color:#f8717180;color:#f87171}.app-dialog-icon.primary{background:#2d89982e;border-color:var(--color-border-focus);color:var(--color-border-focus)}.app-dialog,.app-toast{box-shadow:0 20px 50px #00000080}}
