*{box-sizing:border-box}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:#fafafa;color:#18181b}.app-layout{display:flex;min-height:100vh}.sidebar{width:256px;background:#fff;border-right:1px solid #e4e4e7;display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header{padding:24px;border-bottom:1px solid #f4f4f5}.sidebar-logo{display:flex;align-items:center;gap:12px}.sidebar-logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#6366f1,#818cf8);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:20px}.sidebar-brand{font-size:18px;font-weight:700;color:#18181b;margin:0}.sidebar-tagline{font-size:12px;color:#71717a;margin:2px 0 0}.sidebar-nav{flex:1;padding:16px;overflow-y:auto}.sidebar-link{display:flex;align-items:center;gap:12px;padding:10px 12px;color:#52525b;text-decoration:none;border-radius:8px;font-size:14px;font-weight:500;transition:all .15s ease;margin-bottom:4px}.sidebar-link:hover{background:#f4f4f5;color:#18181b}.sidebar-link.active{background:#eef2ff;color:#4f46e5}.sidebar-icon{font-size:16px;width:20px;text-align:center}.sidebar-section{padding-top:16px;margin-top:16px;border-top:1px solid #f4f4f5}.sidebar-section-title{padding:0 12px;font-size:11px;font-weight:600;color:#a1a1aa;text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px}.sidebar-footer{padding:16px;border-top:1px solid #f4f4f5}.main-content{flex:1;margin-left:256px;padding:24px 32px;min-height:100vh;background:#fafafa}.container{max-width:1200px;margin:0 auto}h1,h2,h3{margin-top:0}.nav{display:none}.card{background:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid #ddd}th{background:#f8f9fa;font-weight:600}tr:hover{background:#f8f9fa}button{background:#3498db;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px}button:hover{background:#2980b9}button:disabled{background:#bdc3c7;cursor:not-allowed}button.secondary{background:#95a5a6}button.secondary:hover{background:#7f8c8d}input,select{padding:10px;border:1px solid #ddd;border-radius:4px;font-size:14px;width:100%;margin-bottom:10px}label{display:block;margin-bottom:5px;font-weight:500}.error-banner{background:#e74c3c;color:#fff;padding:15px;border-radius:4px;margin-bottom:20px}.warning-banner{background:#f39c12;color:#fff;padding:15px;border-radius:4px;margin-bottom:20px}.info-banner{background:#3498db;color:#fff;padding:15px;border-radius:4px;margin-bottom:20px}.success-banner{background:#27ae60;color:#fff;padding:15px;border-radius:4px;margin-bottom:20px}.pagination{display:flex;gap:10px;margin-top:20px}.filters{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.filters>div{flex:1;min-width:200px}.section{margin-bottom:30px}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500}.badge-success{background:#27ae60;color:#fff}.badge-warning{background:#f39c12;color:#fff}.badge-danger{background:#e74c3c;color:#fff}.badge-info{background:#3498db;color:#fff}.badge-neutral{background:#95a5a6;color:#fff}.link{color:#3498db;cursor:pointer;text-decoration:none}.link:hover{text-decoration:underline}.loading{text-align:center;padding:40px;color:#7f8c8d}.av-dashboard{max-width:1400px;margin:0 auto}.av-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.av-title{font-size:1.875rem;font-weight:700;color:#18181b;margin:0}.av-subtitle{color:#71717a;margin:4px 0 0}.av-live-indicator{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#f4f4f5;border-radius:9999px;font-weight:500;font-size:14px}.av-live-indicator[data-connected=true]{background:#dcfce7;color:#15803d}.av-live-dot{width:8px;height:8px;border-radius:50%;background:#a1a1aa}.av-live-indicator[data-connected=true] .av-live-dot{background:#22c55e;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.av-section{margin-bottom:32px}.av-section-title{font-size:1.125rem;font-weight:600;color:#3f3f46;margin:0 0 16px}.av-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.av-kpi-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;text-align:center}.av-kpi-card.av-kpi-warning{border-left:4px solid #f59e0b}.av-kpi-value{font-size:2rem;font-weight:700;color:#18181b}.av-kpi-suffix{font-size:1rem;font-weight:500;color:#71717a;margin-left:4px}.av-kpi-label{font-size:.875rem;color:#71717a;margin-top:4px}.av-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.av-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.av-card h3{font-size:1rem;font-weight:600;color:#3f3f46;margin:0 0 16px}.av-capacity-bar{height:12px;background:#e4e4e7;border-radius:6px;overflow:hidden;margin-bottom:8px}.av-capacity-fill{height:100%;background:linear-gradient(90deg,#6366f1,#818cf8);border-radius:6px;transition:width .3s ease}.av-capacity-labels{display:flex;justify-content:space-between;font-size:.75rem;color:#71717a}.av-job-grid{display:flex;flex-direction:column;gap:12px}.av-job-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.av-job-label{font-weight:500;min-width:60px}.av-job-badge{padding:4px 10px;border-radius:9999px;font-size:.75rem;font-weight:500}.av-muted{color:#a1a1aa;font-style:italic}.av-disposition-grid{display:flex;flex-wrap:wrap;gap:12px}.av-disposition-item{padding:12px 20px;border-radius:8px;display:flex;flex-direction:column;align-items:center;min-width:80px}.av-disposition-label{font-weight:600;font-size:.875rem}.av-disposition-count{font-size:1.5rem;font-weight:700}.av-actions-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:16px}.av-action-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;text-decoration:none;color:#3f3f46;font-weight:500;transition:box-shadow .2s,transform .2s}.av-action-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.av-action-icon{font-size:1.5rem}.av-loading,.av-error{text-align:center;padding:60px 20px;color:#71717a}.av-error{color:#b91c1c;background:#fee2e2;border-radius:8px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:20px}.login-container{width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:32px}.login-logo{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:8px}.login-logo-icon{width:48px;height:48px;background:linear-gradient(135deg,#6366f1,#818cf8);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:24px;font-weight:700}.login-logo h1{margin:0;font-size:28px;font-weight:700;color:#18181b}.login-header p{margin:0;color:#71717a;font-size:14px}.login-form{background:#fff;padding:32px;border-radius:16px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.login-form h2{margin:0 0 24px;font-size:20px;font-weight:600;text-align:center}.login-form .form-group{margin-bottom:16px}.login-form label{display:block;margin-bottom:6px;font-size:14px;font-weight:500;color:#374151}.login-form input{width:100%;padding:12px 16px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:border-color .15s,box-shadow .15s}.login-form input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.login-button{width:100%;padding:12px 16px;background:linear-gradient(135deg,#6366f1,#818cf8);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s;margin-top:8px}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;margin-top:24px;color:#71717a;font-size:14px}.login-footer a{color:#6366f1;text-decoration:none}.login-footer a:hover{text-decoration:underline}.sidebar-user{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;margin:8px 12px;background:#f4f4f5;border-radius:8px;gap:8px}.sidebar-user-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.sidebar-user-email{font-size:13px;font-weight:500;color:#18181b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-role{font-size:11px;color:#71717a;text-transform:capitalize}.sidebar-logout-btn{padding:6px;background:transparent;border:none;border-radius:6px;cursor:pointer;font-size:14px;transition:background .15s}.sidebar-logout-btn:hover{background:#e4e4e7}.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:#fff;border-radius:12px;padding:24px;min-width:400px;max-width:500px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.modal-content h2{margin-top:0;margin-bottom:20px;font-size:18px;font-weight:600;color:#18181b}.modal-content label{display:block;font-size:14px;font-weight:500;color:#3f3f46;margin-bottom:6px}.modal-content input,.modal-content select{width:100%;padding:10px 12px;border:1px solid #e4e4e7;border-radius:8px;font-size:14px;transition:border-color .15s,box-shadow .15s}.modal-content input:focus,.modal-content select:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11a}.modal-content input:disabled{background:#f4f4f5;color:#71717a}.auth-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background:linear-gradient(135deg,#1e293b,#0f172a);color:#94a3b8}.auth-loading-spinner{width:40px;height:40px;border:3px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(360deg)}}.btn-delete{background:#dc2626;color:#fff;border:none;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:12px}.btn-delete:hover{background:#b91c1c}.btn-delete:disabled{background:#9ca3af;cursor:not-allowed}
