@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap";:root{--color-primary-50:#eff6ff;--color-primary-100:#dbeafe;--color-primary-200:#bfdbfe;--color-primary-300:#93c5fd;--color-primary-400:#60a5fa;--color-primary-500:#3b82f6;--color-primary-600:#0759d6;--color-primary-700:#1e40af;--color-primary-800:#1e3a8a;--color-primary-900:#172554;--color-accent-300:#fde68a;--color-accent-400:#fbbf24;--color-accent-500:#f59e0b;--color-accent-600:#d97706;--color-neutral-0:#fff;--color-neutral-50:#f8fafc;--color-neutral-100:#f1f5f9;--color-neutral-150:#e2e8f0;--color-neutral-200:#cbd5e1;--color-neutral-300:#94a3b8;--color-neutral-400:#64748b;--color-neutral-500:#475569;--color-neutral-600:#334155;--color-neutral-700:#1e293b;--color-neutral-800:#0f172a;--color-neutral-900:#020617;--color-success-bg:#f0fdf4;--color-success-text:#16a34a;--color-success-border:#bbf7d0;--color-error-bg:#fef2f2;--color-error-text:#dc2626;--color-error-border:#fecaca;--color-warning-bg:#fffbeb;--color-warning-text:#d97706;--color-warning-border:#fde68a;--color-info-bg:#eff6ff;--color-info-text:#1e40af;--color-info-border:#bfdbfe;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:1.875rem;--font-size-4xl:2.25rem;--font-weight-light:300;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.75;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.5rem;--radius-full:9999px;--border-width:1px;--border-color:var(--color-neutral-200);--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #00000014, 0 1px 2px -1px #0000000d;--shadow-md:0 4px 6px -1px #00000014, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000d;--shadow-inner:inset 0 2px 4px 0 #0000000d;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s ease;--sidebar-width:256px;--sidebar-collapsed-width:68px;--topbar-height:68px;--content-max-width:1720px;--auth-card-width:460px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-regular);line-height:var(--line-height-normal);color:var(--color-neutral-800);background-color:var(--color-neutral-50);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit}a{color:var(--color-primary-600);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-primary-700);text-decoration:underline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auth-layout{background-color:var(--color-neutral-0);grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.auth-panel-brand{padding:var(--space-12) var(--space-10);background:linear-gradient(145deg,#0b132b 0%,#0f172a 35%,#172554 70%,#1e3a8a 100%);flex-direction:column;justify-content:space-between;align-items:flex-start;display:flex;position:relative;overflow:hidden}.auth-panel-brand:before{content:"";border-radius:var(--radius-full);pointer-events:none;background:radial-gradient(circle,#38bdf814 0%,#0000 70%);width:500px;height:500px;position:absolute;top:-20%;right:-15%}.auth-panel-brand:after{content:"";border-radius:var(--radius-full);pointer-events:none;background:radial-gradient(circle,#2563eb14 0%,#0000 70%);width:350px;height:350px;position:absolute;bottom:-10%;left:-10%}.auth-brand-logo{align-items:center;gap:var(--space-3);z-index:1;display:flex;position:relative}.auth-brand-logo-card{border-radius:var(--radius-lg);background:#fff;align-items:center;padding:8px 16px;display:inline-flex;box-shadow:0 4px 16px #0003}.auth-brand-logo-mark{background:var(--color-primary-600);border-radius:var(--radius-lg);justify-content:center;align-items:center;width:44px;height:44px;display:flex;box-shadow:0 4px 12px #2563eb4d}.auth-brand-logo-mark svg{color:#fff;width:26px;height:26px}.auth-brand-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:#fff;letter-spacing:-.02em}.auth-brand-tagline{font-size:var(--font-size-sm);color:#ffffffa6;font-weight:var(--font-weight-regular)}.auth-brand-headline{z-index:1;margin:var(--space-8) 0;position:relative}.auth-brand-headline h1{font-size:28px;font-weight:var(--font-weight-bold);color:#fff;margin-bottom:var(--space-3);letter-spacing:-.02em;line-height:1.3}.auth-brand-headline p{color:#ffffffbf;font-size:14px;line-height:var(--line-height-relaxed);max-width:400px}.auth-brand-features{gap:var(--space-3);z-index:1;flex-direction:column;display:flex;position:relative}.auth-brand-feature{align-items:center;gap:var(--space-3);color:#ffffffd9;font-size:13px;display:flex}.auth-brand-feature-dot{border-radius:var(--radius-full);background:#38bdf8;flex-shrink:0;width:7px;height:7px;box-shadow:0 0 6px #38bdf8}.auth-brand-bottom{z-index:1;margin-top:var(--space-8);position:relative}.auth-brand-pill{border-radius:var(--radius-full);color:#ffffffd9;background:#ffffff14;border:1px solid #ffffff26;align-items:center;gap:8px;padding:6px 14px;font-size:11.5px;font-weight:500;display:inline-flex}.auth-brand-pill-dot{border-radius:var(--radius-full);background:#22c55e;width:6px;height:6px}.auth-panel-form{padding:var(--space-8) var(--space-6);background:var(--color-neutral-50);flex-direction:column;justify-content:center;align-items:center;display:flex;overflow-y:auto}.auth-card{border:1px solid var(--color-neutral-200);background:#fff;border-radius:16px;width:100%;max-width:440px;padding:36px 32px;box-shadow:0 4px 20px #0000000a}.auth-card-top-logo{margin-bottom:var(--space-5);align-items:center;display:flex}.auth-card-footer{margin-top:var(--space-6);font-size:var(--font-size-xs);color:var(--color-neutral-400);text-align:center;line-height:1.5}.auth-card-header{margin-bottom:var(--space-8)}.auth-card-header h2{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);letter-spacing:-.02em;margin-bottom:var(--space-2)}.auth-card-header p{font-size:var(--font-size-sm);color:var(--color-neutral-500);line-height:var(--line-height-relaxed)}.form-group{gap:var(--space-1);margin-bottom:var(--space-5);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-neutral-700);display:block}.form-label span.required{color:var(--color-error-text);margin-left:2px}.form-input{width:100%;height:44px;padding:0 var(--space-4);border:var(--border-width) solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-neutral-900);background:var(--color-neutral-0);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.form-input::placeholder{color:var(--color-neutral-400)}.form-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #2d7d2d1f}.form-input.error{border-color:var(--color-error-text);box-shadow:0 0 0 3px #c0392b1a}.form-hint{font-size:var(--font-size-xs);color:var(--color-neutral-500)}.form-error{font-size:var(--font-size-xs);color:var(--color-error-text);align-items:center;gap:var(--space-1);display:flex}.input-wrapper{position:relative}.input-wrapper .form-input{padding-right:var(--space-10)}.input-eye-btn{right:var(--space-3);cursor:pointer;color:var(--color-neutral-400);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.input-eye-btn:hover{color:var(--color-neutral-600)}.btn{justify-content:center;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-6);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:background-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), opacity var(--transition-fast);white-space:nowrap;border:none;outline:none;text-decoration:none;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px #2d7d2d33}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--color-primary-600);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--color-primary-700);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-neutral-100);color:var(--color-neutral-700);border:var(--border-width) solid var(--color-neutral-200)}.btn-secondary:hover:not(:disabled){background:var(--color-neutral-150)}.btn-ghost{color:var(--color-neutral-600);border:var(--border-width) solid transparent;background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-neutral-100)}.btn-danger{background:var(--color-error-text);color:#fff}.btn-danger:hover:not(:disabled){background:#a93226}.btn-full{width:100%}.btn-lg{height:50px;font-size:var(--font-size-base);padding:0 var(--space-8)}.btn-sm{height:36px;font-size:var(--font-size-xs);padding:0 var(--space-4)}.alert{align-items:flex-start;gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);border:var(--border-width) solid transparent;margin-bottom:var(--space-5);display:flex}.alert svg{flex-shrink:0;margin-top:1px}.alert-error{background:var(--color-error-bg);color:var(--color-error-text);border-color:var(--color-error-border)}.alert-success{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning-text);border-color:var(--color-warning-border)}.alert-info{background:var(--color-info-bg);color:var(--color-info-text);border-color:var(--color-info-border)}.dev-warning-banner{background:var(--color-warning-bg);border:var(--border-width) solid var(--color-warning-border);color:var(--color-warning-text);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);margin-bottom:var(--space-6)}.dev-warning-banner strong{font-weight:var(--font-weight-semibold);margin-bottom:var(--space-1);display:block}.role-tabs{background:var(--color-neutral-100);border-radius:var(--radius-lg);margin-bottom:var(--space-8);gap:2px;padding:3px;display:flex}.role-tab{border-radius:calc(var(--radius-lg) - 2px);height:40px;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-neutral-500);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);justify-content:center;align-items:center;gap:var(--space-2);background:0 0;border:none;flex:1;display:flex}.role-tab.active{background:var(--color-neutral-0);color:var(--color-primary-700);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-xs)}.role-tab:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.password-strength{margin-top:var(--space-2)}.password-strength-bar{border-radius:var(--radius-full);background:var(--color-neutral-200);height:4px;margin-bottom:var(--space-1);overflow:hidden}.password-strength-fill{border-radius:var(--radius-full);height:100%;transition:width var(--transition-normal), background-color var(--transition-normal)}.password-strength-fill.weak{background:#e74c3c;width:33%}.password-strength-fill.fair{background:var(--color-accent-500);width:66%}.password-strength-fill.strong{background:var(--color-primary-500);width:100%}.password-strength-label{font-size:var(--font-size-xs);color:var(--color-neutral-500)}.loading-screen{background:var(--color-neutral-50);justify-content:center;align-items:center;gap:var(--space-4);flex-direction:column;min-height:100vh;display:flex}.spinner{border:3px solid var(--color-neutral-200);border-top-color:var(--color-primary-500);border-radius:var(--radius-full);width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.spinner-sm{border-width:2px;width:18px;height:18px}.app-shell{background:var(--color-neutral-100);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);z-index:100;transition:width .2s cubic-bezier(.4, 0, .2, 1), transform var(--transition-normal);background:#0f1e36;border-right:1px solid #ffffff14;flex-direction:column;flex-shrink:0;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;box-shadow:2px 0 8px #00000014}.sidebar-brand{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;min-height:68px;padding:16px 14px;display:flex}.sidebar-toggle-inline-btn{border-radius:var(--radius-sm);color:#ffffffb3;cursor:pointer;width:28px;height:28px;transition:all var(--transition-fast);background:#ffffff0f;border:1px solid #ffffff1f;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sidebar-toggle-inline-btn:hover{color:#fff;background:#ffffff26;border-color:#ffffff40}.desktop-sidebar-toggle-btn{border-radius:var(--radius-md);border:1px solid var(--color-neutral-200);width:32px;height:32px;color:var(--color-neutral-600);cursor:pointer;transition:all var(--transition-fast);margin-right:var(--space-2);background:#fff;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.desktop-sidebar-toggle-btn:hover{background:var(--color-primary-50);color:var(--color-primary-700);border-color:var(--color-primary-300)}.sidebar-logo-container{flex-direction:column;gap:2px;display:flex}.sidebar-brand-badge{font-size:9px;font-weight:var(--font-weight-bold);letter-spacing:.12em;color:#ffffff73;text-transform:uppercase}.sidebar-logo-mark{background:var(--color-accent-500);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.sidebar-logo-mark svg{color:#fff;width:20px;height:20px}.sidebar-brand-text{overflow:hidden}.sidebar-brand-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#fff;letter-spacing:-.01em;white-space:nowrap}.sidebar-brand-sub{font-size:var(--font-size-xs);color:#ffffff80;white-space:nowrap}.sidebar-nav{padding:var(--space-4) var(--space-3);flex:1;overflow-y:auto}.sidebar-nav-section{margin-bottom:var(--space-6)}.sidebar-nav-section-label{font-size:10px;font-weight:var(--font-weight-semibold);color:#ffffff59;text-transform:uppercase;letter-spacing:.08em;padding:0 var(--space-3);margin-bottom:var(--space-2)}.sidebar-nav-link{align-items:center;gap:var(--space-3);border-radius:var(--radius-md);font-size:13.5px;font-weight:var(--font-weight-medium);color:#ffffffb8;transition:background var(--transition-fast), color var(--transition-fast), box-shadow var(--transition-fast);cursor:pointer;text-align:left;background:0 0;border:none;width:100%;margin-bottom:2px;padding:10px 14px;text-decoration:none;display:flex}.sidebar-nav-link:hover{color:#fff;background:#ffffff14;text-decoration:none}.sidebar-nav-link.active{color:#fff;font-weight:var(--font-weight-semibold);background:#0759d6;box-shadow:0 2px 6px #0759d659}.sidebar-nav-link svg{opacity:.9;flex-shrink:0;width:18px;height:18px}.sidebar-footer{padding:var(--space-4) var(--space-3);border-top:1px solid #ffffff14}.sidebar-user{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast);text-decoration:none;display:flex}.sidebar-user:hover{background:#ffffff0f}.sidebar-avatar{border-radius:var(--radius-full);background:var(--color-primary-600);width:36px;height:36px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex;box-shadow:0 1px 3px #0003}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:#fff;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-user-role{font-size:var(--font-size-xs);color:#ffffff80;text-transform:capitalize}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-width:0;min-height:100vh;transition:margin-left .2s cubic-bezier(.4,0,.2,1);display:flex;overflow-x:hidden}.app-shell.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed-width,68px)}.app-shell.sidebar-collapsed .main-content{margin-left:var(--sidebar-collapsed-width,68px)}.app-shell.sidebar-collapsed .sidebar-brand{flex-direction:column;justify-content:center;gap:8px;padding:14px 6px}.app-shell.sidebar-collapsed .sidebar-logo-container{align-items:center}.app-shell.sidebar-collapsed .sidebar-nav{padding:var(--space-3) 6px}.app-shell.sidebar-collapsed .sidebar-nav-section{margin-bottom:var(--space-4)}.app-shell.sidebar-collapsed .sidebar-nav-section-label{display:none}.app-shell.sidebar-collapsed .sidebar-nav-link{justify-content:center;width:44px;height:44px;margin:0 auto 6px;padding:0;position:relative}.app-shell.sidebar-collapsed .sidebar-nav-text{display:none}.app-shell.sidebar-collapsed .sidebar-nav-link svg{width:20px;height:20px;margin:0}.app-shell.sidebar-collapsed .sidebar-nav-link:hover:after{content:attr(data-tooltip);color:#f8fafc;white-space:nowrap;pointer-events:none;z-index:1000;background:#0f172a;border:1px solid #ffffff1f;border-radius:6px;padding:5px 10px;font-size:11.5px;font-weight:500;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);box-shadow:0 4px 12px #0000004d}.app-shell.sidebar-collapsed .sidebar-footer{padding:12px 6px}.app-shell.sidebar-collapsed .sidebar-user{justify-content:center;padding:4px 0;position:relative}.app-shell.sidebar-collapsed .sidebar-user-info{display:none}.app-shell.sidebar-collapsed .sidebar-user:hover:after{content:"Admin Settings";color:#f8fafc;white-space:nowrap;pointer-events:none;z-index:1000;background:#0f172a;border:1px solid #ffffff1f;border-radius:6px;padding:5px 10px;font-size:11.5px;font-weight:500;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);box-shadow:0 4px 12px #0000004d}.app-shell.sidebar-collapsed #logout-btn{justify-content:center;width:44px;height:38px;margin:6px auto 0;padding:0;position:relative}.app-shell.sidebar-collapsed .logout-text{display:none}.app-shell.sidebar-collapsed #logout-btn:hover:after{content:"Sign Out";color:#f8fafc;white-space:nowrap;pointer-events:none;z-index:1000;background:#0f172a;border:1px solid #ffffff1f;border-radius:6px;padding:5px 10px;font-size:11.5px;font-weight:500;position:absolute;top:50%;left:calc(100% + 10px);transform:translateY(-50%);box-shadow:0 4px 12px #0000004d}.topbar{height:var(--topbar-height);background:var(--color-neutral-0);border-bottom:var(--border-width) solid var(--color-neutral-200);padding:0 var(--space-8);z-index:50;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0;box-shadow:0 1px 3px #00000008}.topbar-left{align-items:center;gap:var(--space-4);display:flex}#sidebar-toggle,.sidebar-toggle,.sidebar-close-btn{display:none}.topbar-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);letter-spacing:-.01em}.topbar-right,.topbar-admin-group{align-items:center;gap:var(--space-3);display:flex}.topbar-org-pill{background:var(--color-primary-50);border:1px solid var(--color-primary-200);border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-primary-800);align-items:center;gap:6px;padding:4px 12px;display:inline-flex}.topbar-org-dot{border-radius:var(--radius-full);background:var(--color-success-text);width:6px;height:6px;display:inline-block}.topbar-search{background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);width:320px;max-width:100%;height:38px;transition:all var(--transition-fast);align-items:center;gap:8px;padding:0 12px;display:flex}.topbar-search:focus-within{border-color:var(--color-primary-500);background:#fff;box-shadow:0 0 0 3px #2563eb1f}.topbar-search svg{color:var(--color-neutral-400);flex-shrink:0}.topbar-search input{color:var(--color-neutral-900);background:0 0;border:none;outline:none;width:100%;font-size:13px}.topbar-search input::placeholder{color:var(--color-neutral-400)}.topbar-notification-btn{border-radius:var(--radius-full);border:1px solid var(--color-neutral-200);width:36px;height:36px;color:var(--color-neutral-600);cursor:pointer;transition:all var(--transition-fast);background:#fff;justify-content:center;align-items:center;display:flex;position:relative}.topbar-notification-btn:hover{background:var(--color-neutral-100);color:var(--color-neutral-900)}.topbar-notification-badge{border-radius:var(--radius-full);background:var(--color-error-text);width:7px;height:7px;position:absolute;top:7px;right:7px}.topbar-admin-profile{align-items:center;gap:var(--space-2);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-full);transition:all var(--transition-fast);cursor:pointer;padding:4px 12px 4px 4px;display:flex}.topbar-admin-profile:hover{background:var(--color-neutral-100);border-color:var(--color-neutral-300)}.topbar-admin-avatar{border-radius:var(--radius-full);background:var(--color-primary-600);color:#fff;width:32px;height:32px;font-size:12px;font-weight:var(--font-weight-bold);flex-shrink:0;justify-content:center;align-items:center;display:flex}.topbar-admin-info{flex-direction:column;line-height:1.2;display:flex}.topbar-admin-name{font-size:12.5px;font-weight:var(--font-weight-semibold);color:var(--color-neutral-800)}.topbar-admin-sub{color:var(--color-neutral-500);font-size:10.5px}.page-content{padding:var(--space-8);max-width:var(--content-max-width);flex:1;width:100%}.card{background:var(--color-neutral-0);border-radius:var(--radius-xl);border:var(--border-width) solid var(--color-neutral-200);box-shadow:var(--shadow-sm);padding:var(--space-6)}.card-header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}.card-subtitle{font-size:var(--font-size-sm);color:var(--color-neutral-500);margin-top:var(--space-1)}.stats-grid{gap:var(--space-6);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.stat-card{background:var(--color-neutral-0);border:var(--border-width) solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);gap:var(--space-4);transition:box-shadow var(--transition-fast), transform var(--transition-fast);flex-direction:column;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-card-header{justify-content:space-between;align-items:center;display:flex}.stat-card-icon{border-radius:var(--radius-lg);justify-content:center;align-items:center;width:44px;height:44px;display:flex}.stat-card-icon.green{background:var(--color-primary-50);color:var(--color-primary-600)}.stat-card-icon.gold{color:var(--color-accent-600);background:#fef9ec}.stat-card-icon.blue{background:var(--color-info-bg);color:var(--color-info-text)}.stat-card-icon.red{background:var(--color-error-bg);color:var(--color-error-text)}.stat-card-icon svg{width:22px;height:22px}.stat-card-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em}.stat-card-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);letter-spacing:-.02em;line-height:1}.stat-card-sub{font-size:var(--font-size-xs);color:var(--color-neutral-400)}.badge{padding:2px var(--space-2);border-radius:var(--radius-full);font-size:11px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;align-items:center;display:inline-flex}.badge-admin{background:var(--color-primary-100);color:var(--color-primary-700)}.badge-employee{background:var(--color-info-bg);color:var(--color-info-text)}.badge-dev{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.badge-active{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.badge-inactive{background:var(--color-neutral-150);color:var(--color-neutral-600);border:1px solid var(--color-neutral-300)}.badge-current{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.badge-expiring{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.badge-expired{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}.badge-day{color:#8a6208;background:#fef9ec;border:1px solid #fde68a}.badge-night{color:#2b4988;background:#f0f4ff;border:1px solid #d0dcff}.badge-iqama,.badge-account{letter-spacing:.05em;background:var(--color-neutral-100);color:var(--color-neutral-800);border:1px solid var(--color-neutral-300);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:var(--font-weight-medium);padding:2px 8px}.badge-present{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.badge-absent{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}.badge-leave{background:var(--color-warning-bg);color:var(--color-warning-text);border:1px solid var(--color-warning-border)}.badge-unmarked{background:var(--color-neutral-100);color:var(--color-neutral-600);border:1px dashed var(--color-neutral-350,#cbd5e1)}.submodule-tabs{gap:var(--space-2);border-bottom:2px solid var(--color-neutral-200);margin-bottom:var(--space-6);padding-bottom:0;display:flex}.submodule-tab-btn{padding:var(--space-3) var(--space-5);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-500);cursor:pointer;align-items:center;gap:var(--space-2);transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;display:inline-flex}.submodule-tab-btn:hover{color:var(--color-primary-700)}.submodule-tab-btn.active{color:var(--color-primary-700);border-bottom-color:var(--color-primary-600);background:0 0}.table-card{background:var(--color-neutral-0);border:var(--border-width) solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.table-responsive{-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.data-table{border-collapse:collapse;text-align:left;width:100%;font-size:var(--font-size-sm)}.data-table th{background:var(--color-neutral-50);color:var(--color-neutral-600);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-3) var(--space-4);border-bottom:var(--border-width) solid var(--color-neutral-200);white-space:nowrap}.data-table td{padding:var(--space-4);border-bottom:var(--border-width) solid var(--color-neutral-150);color:var(--color-neutral-800);vertical-align:middle}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:#0759d60a}.data-table tbody tr:last-child td{border-bottom:none}.action-group{align-items:center;gap:var(--space-1);display:flex}.action-btn{border-radius:var(--radius-md);border:var(--border-width) solid transparent;width:32px;height:32px;color:var(--color-neutral-600);cursor:pointer;transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;display:inline-flex}.action-btn:hover{background:var(--color-neutral-100);color:var(--color-neutral-900);border-color:var(--color-neutral-200)}.action-btn.danger:hover{background:var(--color-error-bg);color:var(--color-error-text);border-color:var(--color-error-border)}.action-btn.success:hover{background:var(--color-success-bg);color:var(--color-success-text);border-color:var(--color-success-border)}.directory-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.search-box{flex:1;min-width:260px;max-width:380px;position:relative}.search-box svg{left:var(--space-3);color:var(--color-neutral-400);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.search-input{width:100%;height:40px;padding:0 var(--space-4) 0 var(--space-10);border:var(--border-width) solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-neutral-0);color:var(--color-neutral-900);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none}.search-input:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #0759d61f}.filter-group{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.filter-select{height:40px;padding:0 var(--space-3);border:var(--border-width) solid var(--color-neutral-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);background:var(--color-neutral-0);color:var(--color-neutral-700);cursor:pointer;outline:none}.filter-select:focus{border-color:var(--color-primary-500)}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;padding:var(--space-4);background:#0f172a8c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-dialog,.modal-card{background:var(--color-neutral-0);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);border:var(--border-width) solid var(--color-neutral-200);flex-direction:column;width:100%;max-width:620px;max-height:90vh;animation:.2s modalFadeIn;display:flex;overflow:hidden}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-header{padding:var(--space-6);border-bottom:var(--border-width) solid var(--color-neutral-200);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-neutral-900);letter-spacing:-.01em}.modal-close-btn{border-radius:var(--radius-md);width:32px;height:32px;color:var(--color-neutral-400);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-dialog form,.modal-card form{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.modal-close-btn:hover{background:var(--color-neutral-100);color:var(--color-neutral-800)}.modal-body{padding:var(--space-6);flex:1;min-height:0;overflow-y:auto}.modal-footer{padding:var(--space-4) var(--space-6);border-top:var(--border-width) solid var(--color-neutral-200);justify-content:flex-end;align-items:center;gap:var(--space-3);background:var(--color-neutral-50);display:flex}.form-grid-2{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}@media (width<=600px){.form-grid-2{grid-template-columns:1fr;gap:0}}.employee-mobile-list{display:none}@media (width<=820px){.table-responsive{display:none}.employee-mobile-list{gap:var(--space-4);flex-direction:column;display:flex}.employee-card{background:var(--color-neutral-0);border:var(--border-width) solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);gap:var(--space-3);flex-direction:column;display:flex}.employee-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.employee-card-details{gap:var(--space-2);padding:var(--space-3);background:var(--color-neutral-50);border-radius:var(--radius-lg);font-size:var(--font-size-xs);grid-template-columns:1fr 1fr;display:grid}.employee-card-actions{justify-content:flex-end;align-items:center;gap:var(--space-2);border-top:1px solid var(--color-neutral-200);padding-top:var(--space-3);display:flex}}.divider{background:var(--color-neutral-200);height:1px;margin:var(--space-6) 0}@media (width<=900px){.auth-layout{grid-template-columns:1fr;min-height:100vh}.auth-panel-brand{display:none}.auth-panel-form{padding:var(--space-6) var(--space-4);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{width:100%;max-width:440px;padding:var(--space-6) var(--space-5)}.topbar-search{display:none}}@media (width<=480px){.auth-panel-form{padding:var(--space-4) var(--space-3)}.auth-card{padding:var(--space-5) var(--space-4);border-radius:var(--radius-lg)}.role-tabs{margin-bottom:var(--space-5)}.role-tab{height:38px;padding:0 var(--space-2);font-size:12.5px}.auth-card-header h2{font-size:var(--font-size-xl)}.auth-card-header p{font-size:var(--font-size-xs)}.topbar-org-pill{display:none}}@media (width<=360px){.auth-card{padding:var(--space-4) var(--space-3)}.role-tab{gap:4px;font-size:11.5px}.role-tab svg{display:none}}@media (width<=768px){#sidebar-toggle,.sidebar-toggle{width:36px;height:36px;color:var(--color-neutral-700);border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}#sidebar-toggle:hover,.sidebar-toggle:hover{background:var(--color-neutral-100);color:var(--color-neutral-900)}.sidebar-close-btn{color:#ffffffb3;border-radius:var(--radius-md);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;margin-left:auto;padding:0;display:inline-flex}.sidebar-close-btn:hover{color:#fff;background:#ffffff1f}.sidebar{box-shadow:none;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-xl);transform:translate(0)}.main-content{margin-left:0}.topbar{padding:0 var(--space-4)}.topbar-left{gap:var(--space-3)}.page-content{padding:var(--space-4)}.stats-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.stats-grid{grid-template-columns:1fr}}.employee-portal-header{margin-bottom:var(--space-4)}.employee-portal-greeting{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);letter-spacing:-.02em;margin-bottom:var(--space-1)}.employee-meta-strip{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-neutral-600);flex-wrap:wrap;display:flex}.employee-meta-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:var(--font-weight-semibold);color:var(--color-neutral-900)}.employee-attendance-card{background:var(--color-neutral-0);border:1px solid var(--color-primary-200);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4)}.attendance-card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.attendance-date-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);line-height:var(--line-height-tight)}.attendance-shift-strip{gap:var(--space-2) var(--space-5);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);font-size:var(--font-size-xs);flex-wrap:wrap;display:flex}.attendance-shift-item{align-items:center;gap:var(--space-1);display:flex}.attendance-shift-label{color:var(--color-neutral-500);font-weight:var(--font-weight-regular)}.attendance-shift-value{color:var(--color-neutral-800);font-weight:var(--font-weight-semibold)}.attendance-action-box{border-radius:var(--radius-lg);padding:var(--space-5) var(--space-4);text-align:center;flex-direction:column;justify-content:center;align-items:center;transition:all .2s;display:flex}.attendance-action-box.state-marked{background:var(--color-success-bg,#f0faf0);border:1px solid var(--color-success-border,#a3d9a3)}.attendance-action-box.state-holiday{background:var(--color-primary-50,#f0f7f0);border:1px solid var(--color-primary-200,#b8ddb8)}.attendance-action-box.state-open{border:1.5px solid var(--color-primary-500,#2d7d2d);background:#f7fdf7}.attendance-action-box.state-closed{background:var(--color-neutral-50,#fafaf8);border:1px solid var(--color-neutral-200,#e5e4de)}.attendance-action-icon{border-radius:var(--radius-full);width:40px;height:40px;margin-bottom:var(--space-2);justify-content:center;align-items:center;display:flex}.attendance-action-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-neutral-900);margin-bottom:var(--space-1)}.attendance-action-desc{font-size:var(--font-size-xs);color:var(--color-neutral-600);max-width:440px;margin:0 auto var(--space-3);line-height:var(--line-height-normal)}.attendance-btn-primary{width:100%;max-width:320px;min-height:46px;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);justify-content:center;align-items:center;display:inline-flex}.history-toggle-container{margin-bottom:var(--space-4)}.history-toggle-btn{align-items:center;gap:var(--space-2);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-neutral-300);background:var(--color-neutral-0);color:var(--color-neutral-700);cursor:pointer;min-height:42px;transition:all .15s;display:inline-flex}.history-toggle-btn:hover{background:var(--color-neutral-50);border-color:var(--color-neutral-400);color:var(--color-neutral-900)}.attendance-history-card{background:var(--color-neutral-0);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);overflow:hidden}.attendance-history-header{padding:var(--space-3) var(--space-4);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200);justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.attendance-history-desktop{display:block;overflow-x:auto}.attendance-history-mobile{display:none}.history-mobile-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-neutral-150);gap:var(--space-1);flex-direction:column;display:flex}.history-mobile-item:last-child{border-bottom:none}.history-mobile-row-top{justify-content:space-between;align-items:center;display:flex}.history-mobile-date{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-neutral-900)}.history-mobile-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-neutral-500);flex-wrap:wrap;display:flex}.history-mobile-notes{font-size:var(--font-size-xs);color:var(--color-neutral-600);background:var(--color-neutral-50);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);margin-top:2px}.upcoming-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-neutral-500);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.upcoming-grid{gap:var(--space-3);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(260px,1fr));display:grid}.upcoming-card{background:var(--color-neutral-0);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);opacity:.85}.upcoming-card-header{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.upcoming-card-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-800)}.badge-coming-soon{font-size:10px;font-weight:var(--font-weight-semibold);color:var(--color-neutral-500);background:var(--color-neutral-100);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;padding:2px 6px}.upcoming-card-desc{font-size:var(--font-size-xs);color:var(--color-neutral-500);line-height:var(--line-height-normal);margin:0}@media (width<=640px){.attendance-history-desktop{display:none}.attendance-history-mobile{flex-direction:column;display:flex}.employee-attendance-card{padding:var(--space-4)}.attendance-action-box{padding:var(--space-4) var(--space-3)}.attendance-btn-primary{width:100%;max-width:100%}.attendance-shift-strip{gap:var(--space-1);flex-direction:column}}@media (width<=390px){.employee-portal-greeting{font-size:var(--font-size-lg)}.attendance-date-title{font-size:var(--font-size-base)}.attendance-card-header{flex-direction:column;align-items:flex-start}.history-toggle-btn{justify-content:center;width:100%}}.topbar-employee{background:var(--color-neutral-0);border-bottom:1px solid var(--color-neutral-150);box-shadow:var(--shadow-xs)}.topbar-mobile-logo{margin-right:var(--space-3);align-items:center;display:flex}.topbar-profile-link{align-items:center;gap:var(--space-2);background:var(--color-primary-50);border:1px solid var(--color-primary-200);border-radius:var(--radius-full);color:var(--color-primary-800);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);transition:all var(--transition-fast);padding:4px 10px 4px 6px;text-decoration:none;display:inline-flex}.topbar-profile-link:hover{background:var(--color-primary-100);text-decoration:none}.topbar-user-avatar{border-radius:var(--radius-full);background:var(--color-primary-600);color:#fff;width:26px;height:26px;font-size:11px;font-weight:var(--font-weight-bold);justify-content:center;align-items:center;display:flex}.topbar-user-name-label{font-weight:var(--font-weight-semibold)}.employee-bottom-nav{border-top:1px solid var(--color-neutral-150);z-index:1000;padding-bottom:env(safe-area-inset-bottom,0px);background:#fff;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.employee-bottom-nav-inner{justify-content:space-around;align-items:center;max-width:640px;height:60px;margin:0 auto;display:flex}.employee-bottom-nav-tab{height:100%;color:var(--color-neutral-400);font-size:11px;font-weight:var(--font-weight-medium);transition:all var(--transition-fast);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:4px 2px;text-decoration:none;display:flex;position:relative}.employee-bottom-nav-tab:hover{color:var(--color-primary-600);text-decoration:none}.employee-bottom-nav-tab.active{color:var(--color-primary-600);font-weight:var(--font-weight-semibold)}.employee-bottom-nav-tab.active:after{content:"";background:var(--color-primary-600);border-bottom-right-radius:2px;border-bottom-left-radius:2px;height:3px;position:absolute;top:0;left:25%;right:25%}.employee-bottom-nav-icon{justify-content:center;align-items:center;display:flex}.employee-bottom-nav-label{line-height:1}.page-content-employee{padding-bottom:calc(76px + env(safe-area-inset-bottom,0px))!important}@media (width>=1024px){.employee-bottom-nav{display:none}.page-content-employee{padding-bottom:var(--space-8)!important}}@media (width<=1023px){.employee-main-content{width:100%!important;margin-left:0!important}}.dashboard-brand-header{margin-bottom:var(--space-4)}.dashboard-brand-top{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.dashboard-employee-card{padding:var(--space-3) var(--space-4);border:1px solid var(--color-neutral-150);background:#fff}.employee-greeting-title{font-size:var(--font-size-base);color:var(--color-neutral-800);margin-bottom:2px}.employee-greeting-meta{align-items:center;gap:var(--space-2);font-size:var(--font-size-xs);color:var(--color-neutral-500);flex-wrap:wrap;display:flex}.dashboard-section-label{margin:var(--space-4) 0 var(--space-2);justify-content:space-between;align-items:baseline;display:flex}.section-title-compact{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-neutral-700)}.summary-cards-grid-2x2{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=350px){.summary-cards-grid-2x2{grid-template-columns:1fr}}.summary-card{padding:var(--space-3);border:1px solid var(--color-neutral-150);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);transition:transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast);background:#fff;flex-direction:column;justify-content:space-between;text-decoration:none;display:flex}.card-interactive:hover{border-color:var(--color-primary-300);box-shadow:var(--shadow-sm);text-decoration:none;transform:translateY(-1px)}.summary-card-header{margin-bottom:var(--space-1);justify-content:space-between;align-items:center;display:flex}.summary-card-label{font-size:var(--font-size-xs);color:var(--color-neutral-500);font-weight:var(--font-weight-medium)}.summary-card-value{margin:var(--space-1) 0;font-size:1.25rem;line-height:1.2}.summary-card-footer{justify-content:space-between;align-items:center;font-size:11px;display:flex}.summary-card-link-text{color:var(--color-primary-600);font-weight:var(--font-weight-medium)}.ot-quick-action-card{border:1px solid var(--color-primary-200);margin-top:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,#eff6ff 0%,#fff 100%)}.ot-quick-card-body{gap:var(--space-2);flex-direction:column;display:flex}@media (width>=600px){.ot-quick-card-body{flex-direction:row;justify-content:space-between;align-items:center}}.ot-quick-card-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-primary-800)}.ot-quick-card-desc{font-size:var(--font-size-xs);color:var(--color-neutral-500)}.ot-quick-card-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.month-selector-card{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.month-selector-header{justify-content:space-between;align-items:center;display:flex}.month-selector-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-neutral-800)}.month-nav-controls{align-items:center;gap:var(--space-1);display:flex}.attendance-summary-grid{gap:var(--space-2);margin-bottom:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}@media (width>=600px){.attendance-summary-grid{grid-template-columns:repeat(4,1fr)}}.attendance-stat-card{border:1px solid var(--color-neutral-150);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);background:#fff}.attendance-stat-label{font-size:var(--font-size-xs);color:var(--color-neutral-500);font-weight:var(--font-weight-medium)}.attendance-stat-value{font-size:1.25rem;font-weight:var(--font-weight-bold);line-height:1.2}.stat-present .attendance-stat-value{color:var(--color-success-text)}.stat-absent .attendance-stat-value{color:var(--color-error-text)}.stat-leave .attendance-stat-value{color:var(--color-warning-text)}.stat-working .attendance-stat-value{color:var(--color-primary-700)}.attendance-stat-sub{color:var(--color-neutral-400);font-size:10px}.attendance-date-cards-list{gap:var(--space-2);flex-direction:column;display:flex}.attendance-date-card{padding:var(--space-2) var(--space-3);border:1px solid var(--color-neutral-150);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);background:#fff;justify-content:space-between;align-items:center;display:flex}.date-card-left{align-items:center;gap:var(--space-3);min-width:0;display:flex}.date-badge-col{background:var(--color-neutral-50);border:1px solid var(--color-neutral-150);border-radius:var(--radius-sm);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:38px;display:flex}.date-num{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-neutral-800);line-height:1}.date-day{color:var(--color-neutral-400);margin-top:2px;font-size:10px;line-height:1}.date-info-col{min-width:0}.date-card-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-neutral-800);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.date-card-sub{font-size:11px;line-height:1.3}.card-friday{background:#f0f7ff;border-color:#bfdbfe}.card-present{border-left:3px solid var(--color-success-text)}.card-absent{border-left:3px solid var(--color-error-text)}.card-leave{border-left:3px solid var(--color-warning-text)}.card-today{box-shadow:0 0 0 1.5px var(--color-primary-400)}.badge-holiday{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe}.badge-present{color:#16a34a;background:#f0fdf4;border:1px solid #bbf7d0}.badge-absent{color:#dc2626;background:#fef2f2;border:1px solid #fecaca}.badge-leave{color:#d97706;background:#fffbeb;border:1px solid #fde68a}.badge-unmarked{color:#64748b;background:#f1f5f9;border:1px solid #cbd5e1}.badge-upcoming{color:#94a3b8;background:#f8fafc;border:1px dashed #cbd5e1}.overtime-header-card{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.overtime-header-top{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.overtime-header-title{font-size:1.25rem;font-weight:var(--font-weight-bold);color:var(--color-neutral-800)}.overtime-status-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.ot-chip{border-radius:var(--radius-full);padding:2px 8px;font-size:11px}.chip-pending{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.chip-approved{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0}.chip-rejected{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.overtime-cards-list{gap:var(--space-2);flex-direction:column;display:flex}.overtime-card{padding:var(--space-3)}.overtime-card-header{justify-content:space-between;align-items:flex-start;display:flex}.overtime-card-date{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-neutral-800)}.overtime-card-reason,.overtime-card-review-note{margin-top:var(--space-2);padding:var(--space-2);background:var(--color-neutral-50);border-radius:var(--radius-sm)}.time-inputs-responsive-grid{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}@media (width<=390px){.time-inputs-responsive-grid{grid-template-columns:1fr}}.duration-preview-box{padding:var(--space-2) var(--space-3);background:var(--color-primary-50);border:1px solid var(--color-primary-200);border-radius:var(--radius-md);margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.modal-actions-responsive{justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-4);display:flex}@media (width<=430px){.modal-actions-responsive{flex-direction:column-reverse}.modal-actions-responsive button{width:100%}}.salary-hero-card{color:#fff;padding:var(--space-4);margin-bottom:var(--space-3);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#1e40af 0%,#0759d6 100%)}.salary-hero-top{justify-content:space-between;align-items:center;display:flex}.salary-hero-top .text-muted{color:#fffc!important}.salary-hero-amount{font-size:1.875rem;font-weight:var(--font-weight-bold);margin:var(--space-2) 0;color:#fff;line-height:1.2}.salary-hero-meta{padding-top:var(--space-2);margin-bottom:var(--space-3);border-top:1px solid #fff3;justify-content:space-between;display:flex}.salary-hero-meta .text-muted{color:#ffffffbf!important}.salary-hero-meta .text-primary{color:#fff!important}.salary-pdf-btn{font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-sm);color:var(--color-primary-700)!important;background:#fff!important;border:none!important}.salary-pdf-btn:hover{background:#f8fafc!important}.breakdown-section-card{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.breakdown-list{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.breakdown-row{padding:var(--space-2) 0;border-bottom:1px solid var(--color-neutral-100);justify-content:space-between;align-items:center;display:flex}.breakdown-row:last-child{border-bottom:none}.breakdown-label{font-size:var(--font-size-sm);color:var(--color-neutral-700)}.breakdown-value{font-size:var(--font-size-sm);font-family:monospace}.profile-hero-card{text-align:center;padding:var(--space-5) var(--space-4);margin-bottom:var(--space-3);flex-direction:column;align-items:center;display:flex}.profile-hero-avatar{border-radius:var(--radius-full);background:var(--color-primary-600);color:#fff;width:64px;height:64px;font-size:1.5rem;font-weight:var(--font-weight-bold);margin-bottom:var(--space-2);box-shadow:var(--shadow-sm);justify-content:center;align-items:center;display:flex}.profile-hero-name{font-size:1.25rem;font-weight:var(--font-weight-bold);color:var(--color-neutral-800);margin-bottom:var(--space-1)}.profile-hero-meta{align-items:center;gap:var(--space-2);display:flex}.profile-info-card,.profile-security-card,.profile-branding-card{padding:var(--space-3) var(--space-4);margin-bottom:var(--space-3)}.profile-details-list{gap:var(--space-2);margin-top:var(--space-2);flex-direction:column;display:flex}.profile-detail-row{padding:var(--space-2) 0;border-bottom:1px solid var(--color-neutral-100);justify-content:space-between;align-items:center;display:flex}.profile-detail-row:last-child{border-bottom:none}.profile-detail-label{font-size:var(--font-size-xs);color:var(--color-neutral-500)}.profile-detail-value{font-size:var(--font-size-xs);color:var(--color-neutral-800);text-align:right}.phase-d-notice-box{background:var(--color-primary-50);border:1px solid var(--color-primary-200);border-radius:var(--radius-md);padding:var(--space-3)}.profile-branding-inner{text-align:center;flex-direction:column;align-items:center;display:flex}.profile-signout-container{margin:var(--space-4) 0 var(--space-6)}@media (width>=1024px){.sidebar{width:var(--sidebar-width);position:fixed!important;top:0!important;bottom:0!important;left:0!important;transform:none!important}.app-shell.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed-width,68px)!important}.main-content:not(.employee-main-content){margin-left:var(--sidebar-width)}.app-shell.sidebar-collapsed .main-content:not(.employee-main-content){margin-left:var(--sidebar-collapsed-width,68px)!important}}@media (width>=1200px) and (width<=1399px){.page-content:not(.page-content-employee){padding:var(--space-6) var(--space-8);max-width:100%}.stats-grid{gap:var(--space-4);grid-template-columns:repeat(4,1fr)}}@media (width>=1400px) and (width<=1799px){.page-content:not(.page-content-employee){padding:var(--space-8) var(--space-10);max-width:100%}.stats-grid{gap:var(--space-6);grid-template-columns:repeat(4,1fr)}}@media (width>=1800px){.page-content:not(.page-content-employee){padding:var(--space-8) var(--space-12);max-width:1720px;margin:0 auto}.stats-grid{gap:var(--space-6);grid-template-columns:repeat(4,1fr)}}.table-card,.table-container{border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);background:var(--color-neutral-0);width:100%;overflow-x:auto;box-shadow:0 1px 3px #0000000d,0 1px 2px -1px #0000000d}.table,.data-table{border-collapse:collapse;width:100%}.table th,.data-table th{color:#475569;letter-spacing:.05em;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #cbd5e1;padding:12px 16px;font-size:11.5px;font-weight:600}.table td,.data-table td{color:#1e293b;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:12px 16px;font-size:13.5px}.table td:first-child,.data-table td:first-child{white-space:nowrap}.table tbody tr,.data-table tbody tr{transition:background .15s}.table tbody tr:hover,.data-table tbody tr:hover{background:#0759d609}.modal-dialog{border-radius:var(--radius-xl);border:1px solid var(--color-neutral-200);box-shadow:0 20px 25px -5px #00000026,0 8px 10px -6px #0000001a}.modal-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-neutral-200);background:#fff}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-neutral-200);background:#f8fafc}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.currency-figure{letter-spacing:-.01em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:600}.compact-kpi-grid{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(4,1fr);display:grid}@media (width<=1024px){.compact-kpi-grid{grid-template-columns:repeat(2,1fr)}}.compact-kpi-card{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);min-height:84px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;align-items:center;gap:12px;padding:10px 14px;display:flex;box-shadow:0 1px 3px #0000000a}.compact-kpi-card:hover{border-color:var(--color-primary-300);box-shadow:0 2px 6px #0000000f}.compact-kpi-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.compact-kpi-icon.blue{background:var(--color-primary-50);color:var(--color-primary-600)}.compact-kpi-icon.green{color:#059669;background:#ecfdf5}.compact-kpi-icon.red{color:#dc2626;background:#fef2f2}.compact-kpi-icon.amber{color:#d97706;background:#fefce8}.compact-kpi-icon.slate{color:#475569;background:#f1f5f9}.compact-kpi-body{flex:1;min-width:0}.compact-kpi-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-neutral-500);margin-bottom:2px;font-size:11px;font-weight:600}.compact-kpi-value{color:var(--color-neutral-900);letter-spacing:-.01em;font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:19px;font-weight:700;line-height:1.2;overflow:hidden}.compact-kpi-sub{color:var(--color-neutral-400);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:11px;overflow:hidden}.compact-filter-bar{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);margin-bottom:var(--space-4);gap:var(--space-2);background:#fff;flex-wrap:wrap;align-items:center;padding:8px 12px;display:flex;box-shadow:0 1px 2px #00000005}.compact-filter-input,.compact-filter-select{border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);height:32px;color:var(--color-neutral-800);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background:#fff;outline:none;padding:0 10px;font-size:12.5px}.compact-filter-input:focus,.compact-filter-select:focus{border-color:var(--color-primary-500);box-shadow:0 0 0 2px #1e40af1f}.btn-clear-filter{height:32px;color:var(--color-neutral-500);border:1px dashed var(--color-neutral-300);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:0 0;align-items:center;gap:4px;padding:0 10px;font-size:11.5px;font-weight:500;display:inline-flex}.btn-clear-filter:hover{color:var(--color-error-text);border-color:var(--color-error-border);background:var(--color-error-bg)}.compact-table-container{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);background:#fff;width:100%;overflow-x:auto;box-shadow:0 1px 3px #00000008}.compact-table-container::-webkit-scrollbar{height:8px}.compact-table-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.compact-table-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.compact-table-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.compact-table{border-collapse:collapse;width:100%;font-size:12.5px}.compact-table th{color:#475569;letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #cbd5e1;padding:8px 10px;font-size:11px;font-weight:600}.compact-table td{color:#1e293b;vertical-align:middle;border-bottom:1px solid #f1f5f9;padding:7px 10px}.compact-table tbody tr:hover{background:#1e40af06}.compact-table th.th-grp-emp{color:#334155;text-align:center;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;font-size:10.5px;font-weight:700}.compact-table th.th-grp-earn{color:#15803d;text-align:center;background:#f0fdf4;border-bottom:1px solid #bbf7d0;border-right:1px solid #bbf7d0;font-size:10.5px;font-weight:700}.compact-table th.th-grp-ded{color:#b91c1c;text-align:center;background:#fef2f2;border-bottom:1px solid #fecaca;border-right:1px solid #fecaca;font-size:10.5px;font-weight:700}.compact-table th.th-grp-pay{color:#1d4ed8;text-align:center;background:#eff6ff;border-bottom:1px solid #bfdbfe;font-size:10.5px;font-weight:700}.compact-table th.th-sub{background:#fff;padding:6px 10px;font-size:10.5px}.compact-table th.th-sub-earn{background:#fafffc}.compact-table th.th-sub-ded{background:snow}.compact-table th.th-sub-pay{background:#f8fbff}.compact-table .col-iqama{width:90px}.compact-table .col-emp{min-width:140px}.compact-table .col-cat,.compact-table .col-salary{width:85px}.compact-table .col-ot{width:82px}.compact-table .col-bonus{width:75px}.compact-table .col-att-ded{width:88px}.compact-table .col-other-ded{width:75px}.compact-table .col-adv{width:78px}.compact-table .col-net{width:88px}.compact-table .col-status{width:85px}.compact-table .col-paid{width:92px}.compact-table .col-actions{width:98px}.app-shell.sidebar-collapsed .page-content:not(.page-content-employee){padding-left:var(--space-6);padding-right:var(--space-6)}.app-shell.sidebar-collapsed .compact-table{font-size:12px}.app-shell.sidebar-collapsed .compact-table th{padding:6px 5px;font-size:10.5px}.app-shell.sidebar-collapsed .compact-table td{padding:5px}.app-shell.sidebar-collapsed .compact-table td .btn{height:24px!important;padding:2px 5px!important;font-size:10.5px!important}.app-shell.sidebar-collapsed .compact-table .badge{padding:2px 5px;font-size:10px}.app-shell.sidebar-collapsed .compact-table .col-iqama{width:85px}.app-shell.sidebar-collapsed .compact-table .col-emp{min-width:130px}.app-shell.sidebar-collapsed .compact-table .col-cat{width:75px}.app-shell.sidebar-collapsed .compact-table .col-salary{width:80px}.app-shell.sidebar-collapsed .compact-table .col-ot{width:78px}.app-shell.sidebar-collapsed .compact-table .col-bonus{width:70px}.app-shell.sidebar-collapsed .compact-table .col-att-ded{width:84px}.app-shell.sidebar-collapsed .compact-table .col-other-ded{width:70px}.app-shell.sidebar-collapsed .compact-table .col-adv{width:74px}.app-shell.sidebar-collapsed .compact-table .col-net{width:84px}.app-shell.sidebar-collapsed .compact-table .col-status{width:80px}.app-shell.sidebar-collapsed .compact-table .col-paid{width:86px}.app-shell.sidebar-collapsed .compact-table .col-actions{width:118px}
