:root{--primary: #0f172a;--primary-light: #1e293b;--primary-hover: #334155;--accent: #22c55e;--accent-hover: #16a34a;--accent-light: #f0fdf4;--secondary: #6366f1;--secondary-light: #eef2ff;--info: #3b82f6;--info-light: #eff6ff;--success: #22c55e;--success-light: #f0fdf4;--warning: #f59e0b;--warning-light: #fffbeb;--danger: #ef4444;--danger-light: #fef2f2;--bg: #f1f5f9;--card-bg: #ffffff;--border: #e2e8f0;--text: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--text-xs: 11px;--text-sm: 13px;--text-base: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 24px;--text-3xl: 30px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 6px;--radius: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 1px 2px rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--status-active: #3B82F6;--status-inactive: #6B7280;--status-qualified: #22C55E;--status-junk: #EF4444}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app{display:flex;height:100dvh;overflow:hidden}.sidebar{width:240px;background:var(--primary);color:#fff;padding:var(--space-5) var(--space-4);display:flex;flex-direction:column;height:100dvh;flex-shrink:0;border-right:1px solid rgba(255,255,255,.06)}.sidebar-logo{font-size:var(--text-xl);font-weight:700;margin-bottom:var(--space-8);display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-1);letter-spacing:-.3px}.sidebar-logo span{color:var(--accent)}.sidebar-logo svg{flex-shrink:0}.nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) 14px;color:#94a3b8;text-decoration:none;border-radius:var(--radius);margin-bottom:2px;transition:all .15s ease;font-size:var(--text-base);font-weight:500;position:relative}.nav-link:hover{background:var(--primary-light);color:#e2e8f0}.nav-link.active{background:#22c55e1f;color:var(--accent)}.nav-link.active:before{content:"";position:absolute;left:-16px;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--accent);border-radius:0 3px 3px 0;box-shadow:0 0 8px #22c55e66}.nav-link svg{flex-shrink:0}.main{flex:1;padding:var(--space-6) var(--space-6);display:flex;flex-direction:column;overflow:hidden;height:100dvh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);flex-shrink:0;padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.page-title{font-size:var(--text-2xl);font-weight:700;color:var(--text);letter-spacing:-.4px}.card{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:var(--space-5);display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;transition:box-shadow .2s ease}.card:hover{box-shadow:var(--shadow)}.card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.card-title{font-size:var(--text-xl);font-weight:600}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{background:var(--card-bg);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:var(--space-5);transition:box-shadow .2s ease,transform .2s ease}.stat-card:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.stat-value{font-size:var(--text-3xl);font-weight:700;color:var(--text);line-height:1.1}.stat-label{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1);font-weight:500}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.dash-stat{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:var(--space-5) var(--space-6);display:flex;align-items:center;gap:var(--space-4);transition:box-shadow .2s ease,transform .2s ease}.dash-stat:hover{box-shadow:var(--shadow);transform:translateY(-1px)}.dash-stat-icon{width:48px;height:48px;border-radius:var(--radius-md);background:var(--accent-light);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--accent)}.dash-stat-body{display:flex;flex-direction:column}.dash-stat-label{font-size:var(--text-sm);font-weight:500;color:var(--text-muted);margin-bottom:2px}.dash-stat-value{font-size:28px;font-weight:700;color:var(--text);line-height:1.2}.breakdown-section{background:var(--card-bg);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--border);padding:var(--space-6);transition:box-shadow .2s ease}.breakdown-section:hover{box-shadow:var(--shadow)}.breakdown-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-5)}.breakdown-header h2{font-size:var(--text-xl);font-weight:600;color:var(--text)}.breakdown-grid{display:flex;gap:var(--space-3);flex-wrap:wrap}.breakdown-card{flex:1 1 160px;border-radius:var(--radius-md);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);border:1px solid transparent;transition:transform .2s ease,box-shadow .2s ease}.breakdown-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.breakdown-card-header{display:flex;align-items:center;gap:var(--space-2)}.breakdown-card-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.breakdown-card-label{font-size:var(--text-sm);font-weight:600}.breakdown-card-value{font-size:30px;font-weight:700;color:var(--text);line-height:1}.breakdown-bar{height:6px;background:#fff9;border-radius:var(--radius-full);overflow:hidden}.breakdown-bar-fill{height:100%;border-radius:var(--radius-full);transition:width .4s ease}.breakdown-pct{font-size:var(--text-xs);font-weight:500;color:var(--text-muted)}.table-container{flex:1;overflow:auto;min-height:0;display:flex;flex-direction:column;margin:calc(var(--space-5) * -1);padding:var(--space-5)}.table{width:100%;min-width:600px;border-collapse:separate;border-spacing:0;flex-shrink:0}.table thead{position:sticky;top:0;z-index:10}.table th{background:#f8fafc;padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);white-space:nowrap}.table td{padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border);font-size:var(--text-base);color:var(--text)}.table tr{transition:background .12s ease}.table tbody tr:hover{background:#f8fafc}.table tbody tr:last-child td{border-bottom:none}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:10px 16px;border:1px solid transparent;border-radius:var(--radius);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:all .15s ease;background:#f1f5f9;color:var(--text-secondary);text-decoration:none;line-height:1;white-space:nowrap}.btn:hover{background:#e2e8f0;color:var(--text)}.btn:active{transform:scale(.98)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #22c55e40}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-light);border-color:var(--primary-light);color:#fff}.btn-secondary{background:var(--secondary);color:#fff;border-color:var(--secondary)}.btn-secondary:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:#fff}.btn-accent{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#dc2626;border-color:#dc2626;color:#fff}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent}.btn-ghost:hover{background:#f1f5f9;color:var(--text)}.btn-outline{background:transparent;color:var(--text-secondary);border-color:var(--border)}.btn-outline:hover{background:#f1f5f9;border-color:#cbd5e1;color:var(--text)}.btn-sm{padding:6px 12px;font-size:var(--text-sm);gap:var(--space-1)}.btn-xs{padding:4px 8px;font-size:var(--text-xs);gap:var(--space-1)}.form-group{margin-bottom:var(--space-4)}.form-label{display:block;font-size:var(--text-base);font-weight:500;margin-bottom:var(--space-1);color:var(--text)}.form-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);transition:border-color .15s ease,box-shadow .15s ease;background:var(--card-bg);color:var(--text);font-family:inherit}.form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #22c55e1f}.form-input::placeholder{color:var(--text-muted)}.form-input:disabled{background:#f8fafc;color:var(--text-muted);cursor:not-allowed}.form-select{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);background:var(--card-bg);color:var(--text);font-family:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.form-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #22c55e1f}.form-select:disabled{background:#f8fafc;color:var(--text-muted);cursor:not-allowed}textarea.form-input{resize:vertical;min-height:80px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0f172a80;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-6);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;animation:slideUp .2s ease}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--border)}.modal-title{font-size:var(--text-xl);font-weight:600;color:var(--text)}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-muted);width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:all .15s ease;line-height:1}.modal-close:hover{background:#f1f5f9;color:var(--text)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;letter-spacing:.2px;line-height:1.4}.badge-success{background:var(--success-light);color:#16a34a}.badge-warning{background:var(--warning-light);color:#d97706}.badge-danger{background:var(--danger-light);color:#dc2626}.badge-gray{background:#f1f5f9;color:#64748b}.badge-active{background:var(--info-light);color:#2563eb}.login-container{height:100dvh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f1f5f9,#e2e8f0);overflow:hidden;position:relative}.login-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgba(34,197,94,.04) 0%,transparent 60%),radial-gradient(circle at 70% 30%,rgba(99,102,241,.03) 0%,transparent 50%);pointer-events:none}.login-card{background:#fff;padding:var(--space-10);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:400px;position:relative;border:1px solid rgba(226,232,240,.6)}.login-title{font-size:var(--text-2xl);font-weight:700;text-align:center;margin-bottom:var(--space-1);color:var(--text);letter-spacing:-.4px}.login-subtitle{text-align:center;color:var(--text-muted);margin-bottom:var(--space-6);font-size:var(--text-base)}.login-error{display:flex;align-items:flex-start;gap:var(--space-2);padding:10px 14px;border-radius:var(--radius);background:var(--danger-light);color:#dc2626;font-size:var(--text-sm);margin-bottom:var(--space-4);line-height:1.4;border:1px solid rgba(239,68,68,.15)}.login-error svg{flex-shrink:0;margin-top:2px}.login-input{padding:10px 14px;font-size:var(--text-base)}.login-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #22c55e1f}.login-action{width:100%;justify-content:center;padding:11px 16px;font-size:var(--text-base);font-weight:600;margin-top:var(--space-2)}.empty-state{text-align:center;padding:var(--space-10);color:var(--text-muted);font-size:var(--text-base);display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.empty-state svg{color:var(--text-muted);margin-bottom:var(--space-2)}.search-bar{display:flex;gap:var(--space-3);margin-bottom:var(--space-5);flex-wrap:wrap;align-items:center}.search-input{flex:1;padding:10px 16px;border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-base);background:var(--card-bg);color:var(--text);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease;min-width:0}.search-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #22c55e1f}.search-input::placeholder{color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.actions{display:flex;gap:var(--space-2);align-items:center}.selection-bar{background:var(--info-light);border:1px solid rgba(59,130,246,.15);padding:var(--space-3) var(--space-4);border-radius:var(--radius);margin-bottom:var(--space-4);display:flex;justify-content:space-between;align-items:center;flex-shrink:0;font-size:var(--text-sm);font-weight:500;color:#1d4ed8}.unauthorized{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center;color:var(--text-muted)}.unauthorized h2{font-size:var(--text-xl);margin-bottom:var(--space-2);color:var(--text)}.unauthorized p{font-size:var(--text-base)}
