:root{--color-primary:#1e3a8a;--color-primary-light:#2563eb;--color-primary-dark:#172554;--color-sidebar-bg:#0f1729;--color-sidebar-hover:#1e293b;--color-sidebar-text:#cbd5e1;--color-sidebar-text-active:#fff;--color-bg:#f1f5f9;--color-surface:#fff;--color-border:#e2e8f0;--color-text:#1e293b;--color-text-muted:#64748b;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--radius:6px;--shadow-sm:0 1px 3px #0f172a14;--shadow-md:0 4px 12px #0f172a1a;--sidebar-collapsed:64px;--sidebar-expanded:240px;--header-height:60px}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;font-family:Inter,-apple-system,Segoe UI,Arial,sans-serif;font-size:14px}h1,h2,h3,h4{color:var(--color-text);letter-spacing:-.01em;font-weight:600}h1{margin:0 0 4px;font-size:22px}h2{border-bottom:1px solid var(--color-border);margin:0 0 16px;padding-bottom:10px;font-size:19px}h3{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:24px 0 10px;font-size:15px}h4{margin:16px 0 8px;font-size:14px}.auth-page{background:linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));justify-content:center;align-items:center;height:100vh;display:flex}.auth-form{background:var(--color-surface);border-radius:var(--radius);width:340px;box-shadow:var(--shadow-md);flex-direction:column;gap:12px;padding:32px;display:flex}.auth-form h2{text-align:center;color:var(--color-primary-dark);border:none}.auth-form input{border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 12px;font-size:14px}.auth-form input:focus{border-color:var(--color-primary-light);outline:none;box-shadow:0 0 0 3px #2563eb1f}.auth-form button{background:var(--color-primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:11px;font-weight:600;transition:background .15s}.auth-form button:hover{background:var(--color-primary-light)}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.error{color:var(--color-danger);margin:0;font-size:13px}.app-shell{min-height:100vh;display:flex}.sidebar{height:100vh;width:var(--sidebar-collapsed);background:var(--color-sidebar-bg);z-index:100;flex-direction:column;transition:width .18s;display:flex;position:fixed;top:0;left:0;overflow:hidden;box-shadow:2px 0 8px #00000026}.sidebar:hover{width:var(--sidebar-expanded)}.sidebar-brand{height:var(--header-height);border-bottom:1px solid #ffffff14;flex-shrink:0;align-items:center;padding:0 20px;display:flex;overflow:hidden}.sidebar-brand-logo{object-fit:contain;border-radius:4px;flex-shrink:0;width:26px;height:26px}.sidebar-brand-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;margin-left:12px;font-size:14px;font-weight:700;overflow:hidden}.sidebar-tagline{border-bottom:1px solid #ffffff0f;flex-shrink:0;padding:8px 20px;overflow:hidden}.sidebar-tagline .sidebar-label{color:#64748b;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;font-size:10.5px;font-weight:600}.sidebar-links{scrollbar-width:none;-ms-overflow-style:none;flex:1;padding:8px 0;overflow:hidden auto}.sidebar-links::-webkit-scrollbar{display:none}.sidebar-logout{color:#ef4444;cursor:pointer;white-space:nowrap;text-align:left;background:0 0;border:none;border-top:1px solid #ffffff14;flex-shrink:0;align-items:center;gap:14px;width:100%;padding:13px 20px;font-size:13.5px;font-weight:600;transition:background .12s,color .12s;display:flex}.sidebar-logout svg{flex-shrink:0;min-width:19px}.sidebar-logout:hover{color:#fca5a5;background:#dc262626}.sidebar-label{opacity:0;white-space:nowrap;max-width:0;transition:opacity .15s,max-width .18s;display:inline-block;overflow:hidden}.sidebar:hover .sidebar-label{opacity:1;max-width:200px}.sidebar-link{color:var(--color-sidebar-text);white-space:nowrap;border-left:3px solid #0000;align-items:center;gap:14px;padding:11px 20px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-link svg{flex-shrink:0;min-width:19px}.sidebar-link:hover{background:var(--color-sidebar-hover);color:var(--color-sidebar-text-active)}.sidebar-link.active{background:var(--color-sidebar-hover);color:var(--color-sidebar-text-active);border-left-color:var(--color-primary-light)}.main-area{margin-left:var(--sidebar-collapsed);flex-direction:column;flex:1;min-height:100vh;transition:margin-left .18s;display:flex}.sidebar:hover~.main-area{margin-left:var(--sidebar-expanded)}.top-header{height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:50;box-shadow:var(--shadow-sm);justify-content:flex-end;align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.top-header-user{align-items:center;gap:10px;font-size:13px;display:flex}.top-header-user .role-badge{background:var(--color-primary);color:#fff;letter-spacing:.02em;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.top-header button.logout-btn{border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:var(--radius);cursor:pointer;background:0 0;padding:6px 14px;font-size:13px;transition:all .15s}.top-header button.logout-btn:hover{border-color:var(--color-danger);color:var(--color-danger)}.page-content{flex:1;padding:28px 32px}.card{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);margin-bottom:16px;padding:18px 20px}.inline-form{background:var(--color-surface);border-radius:var(--radius);border:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;padding:14px 16px;display:flex}.inline-form input,.inline-form select,.inline-form textarea{border:1px solid var(--color-border);border-radius:var(--radius);background:#fff;padding:8px 10px;font-family:inherit;font-size:13.5px}.inline-form input:focus,.inline-form select:focus,.inline-form textarea:focus{border-color:var(--color-primary-light);outline:none;box-shadow:0 0 0 3px #2563eb1a}.inline-form label{color:var(--color-text-muted);align-items:center;gap:6px;font-size:13px;display:flex}.inline-form button{background:var(--color-primary);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:8px 16px;font-size:13.5px;font-weight:600;transition:background .15s}.inline-form button:hover{background:var(--color-primary-light)}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius);max-height:520px;box-shadow:var(--shadow-sm);margin-bottom:20px;overflow:auto}table{border-collapse:collapse;background:var(--color-surface);width:100%;margin-bottom:0;font-size:13.5px}thead th{background:var(--color-primary-dark);color:#fff;text-align:left;text-transform:uppercase;letter-spacing:.03em;z-index:1;padding:11px 14px;font-size:12.5px;font-weight:600;position:sticky;top:0}tbody td{border-bottom:1px solid var(--color-border);color:var(--color-text);padding:10px 14px}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:none}table button{border:1px solid var(--color-border);cursor:pointer;color:var(--color-text);background:#fff;border-radius:4px;margin-right:4px;padding:5px 11px;font-size:12.5px;transition:all .12s}table button:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}table select{border:1px solid var(--color-border);border-radius:4px;padding:5px 8px;font-size:12.5px}.notif-wrapper{position:relative}.notif-bell{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:6px;font-size:18px;position:relative}.notif-badge{background:var(--color-danger);color:#fff;border-radius:50%;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;top:0;right:0}.notif-dropdown{background:var(--color-surface);border-radius:var(--radius);width:300px;max-height:340px;box-shadow:var(--shadow-md);border:1px solid var(--color-border);z-index:200;position:absolute;top:38px;right:0;overflow-y:auto}.notif-item{border-bottom:1px solid var(--color-border);cursor:pointer;padding:12px 14px}.notif-item:hover{background:#f8fafc}.notif-item.unread{background:#eff6ff}.notif-item p{color:var(--color-text-muted);margin:4px 0 0;font-size:12.5px}.notif-empty{color:var(--color-text-muted);text-align:center;padding:16px;font-size:13px}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:15px;height:15px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}a{color:var(--color-primary-light)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px;display:grid}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-sm);align-items:center;gap:14px;padding:16px 18px;display:flex}.stat-card-icon{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.stat-card-value{color:var(--color-text);font-size:22px;font-weight:700;line-height:1.1}.stat-card-label{color:var(--color-text-muted);margin-top:2px;font-size:12px}.dash-columns{grid-template-columns:1.4fr 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.dash-columns{grid-template-columns:1fr}}.dash-list-item{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:10px 0;font-size:13px;display:flex}.dash-list-item:last-child{border-bottom:none}.badge{white-space:nowrap;border-radius:10px;padding:2px 9px;font-size:11px;font-weight:600}.badge-critical{color:#991b1b;background:#fee2e2}.badge-high{color:#9a3412;background:#ffedd5}.badge-medium{color:#854d0e;background:#fef9c3}.badge-low{color:#166534;background:#dcfce7}.badge-pending{color:#3730a3;background:#e0e7ff}.badge-neutral{color:#475569;background:#f1f5f9}.live-badge{color:var(--color-success);align-items:center;gap:6px;margin-bottom:16px;font-size:12px;font-weight:600;display:inline-flex}.live-dot{background:var(--color-success);border-radius:50%;width:8px;height:8px;animation:1.6s infinite pulse}@keyframes pulse{0%{opacity:1}50%{opacity:.25}to{opacity:1}}.profile-photo-circle{object-fit:cover;border:2px solid var(--color-border);background:#f1f5f9;border-radius:50%;width:72px;height:72px}.profile-photo-placeholder{width:72px;height:72px;color:var(--color-text-muted);background:#e2e8f0;border-radius:50%;justify-content:center;align-items:center;display:flex}.site-stat-card{cursor:pointer;transition:box-shadow .15s,border-color .15s}.site-stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-primary-light)}.site-stat-card.selected{border-color:var(--color-primary);box-shadow:0 0 0 2px #2563eb26}.badge-approved{color:#166534;background:#dcfce7}.badge-escalated{color:#991b1b;background:#fee2e2}.badge-rejected{color:#475569;background:#f1f5f9}.badge-assigned{color:#3730a3;background:#e0e7ff}.badge-cancelled{color:#475569;background:#f1f5f9}.badge-swapped{color:#166534;background:#dcfce7}.section-block{margin-bottom:26px}.top-header{justify-content:space-between;align-items:center;padding:0 20px;display:flex}.top-header-left{align-items:center;display:flex}.app-title{color:#1e293b;letter-spacing:.5px;border-bottom:none;margin:0;font-size:1.8rem;font-weight:700;text-decoration:none}.top-header-right{align-items:center;gap:16px;display:flex}.confirm-overlay{z-index:1000;background:#0f172a80;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-box{background:var(--color-surface);border-radius:var(--radius);width:320px;box-shadow:var(--shadow-md);padding:22px 24px}.confirm-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.confirm-cancel{border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;color:var(--color-text);background:#fff;padding:7px 16px;font-size:13px}.confirm-cancel:hover{background:#f8fafc}.confirm-danger{background:var(--color-danger);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;padding:7px 16px;font-size:13px;font-weight:600}.confirm-danger:hover{background:#b91c1c}@media (width<=640px){.top-header{gap:8px;padding:0 12px}.app-title{white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:14px;overflow:hidden}.top-header-user span:first-child{display:none}.notif-dropdown{width:260px;right:-10px}}@media (width<=420px){.app-title{max-width:100px;font-size:12.5px}.logout-btn span{display:none}}.disabled-action-wrap{flex-direction:column;align-items:center;gap:4px;display:inline-flex}.disabled-action-wrap button:disabled{opacity:.5;cursor:not-allowed}.disabled-hint{color:var(--color-danger);white-space:nowrap;text-align:center;font-size:11px}
