.sidebar{background:var(--sidebar-bg);box-shadow:2px 0 8px #00000026;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;transition:width var(--transition-slow);z-index:100}.sidebar-open{width:260px}.sidebar-closed{width:72px}.sidebar-header{border-bottom:1px solid #ffffff0f;justify-content:flex-start;padding:1.25rem 1rem}.sidebar-header,.sidebar-logo{align-items:center;display:flex}.sidebar-logo{gap:.75rem}.logo-icon{align-items:center;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:10px;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.logo-icon svg{height:22px;width:22px}.logo-text-container{display:flex;flex-direction:column}.logo-text{color:#fff;font-size:1.125rem;font-weight:700;line-height:1.2;white-space:nowrap}.logo-subtitle{color:var(--accent-primary);font-size:.625rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase}.sidebar-toggle-btn{align-items:center;background:var(--card-bg);border:1px solid var(--border-primary);border-radius:50%;box-shadow:0 2px 8px #00000026;color:var(--text-muted);cursor:pointer;display:flex;height:28px;justify-content:center;position:absolute;right:-14px;top:72px;transition:all var(--transition-fast);width:28px;z-index:101}.sidebar-toggle-btn:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff;transform:scale(1.1)}.sidebar-toggle-btn svg{height:14px;width:14px}.sidebar-toggle{display:none}.sidebar-nav{flex:1 1;gap:.5rem;overflow-y:auto;padding:.75rem}.nav-section,.sidebar-nav{display:flex;flex-direction:column}.nav-section-title{color:#fff6;font-size:.6875rem;font-weight:600;letter-spacing:.08em;margin-bottom:.25rem;padding:.75rem .75rem .5rem;text-transform:uppercase}.nav-section-divider{background:#ffffff0f;height:1px;margin:.5rem .75rem}.nav-section-items{display:flex;flex-direction:column;gap:.125rem}.nav-item{align-items:center;border-radius:8px;color:var(--sidebar-text);display:flex;gap:.75rem;padding:.625rem .75rem;text-decoration:none;transition:all var(--transition-fast);white-space:nowrap}.nav-item:hover{background:var(--sidebar-hover-bg);color:#ffffffe6}.nav-item-active{background:var(--sidebar-active-bg);color:var(--accent-primary)}.nav-item-active:hover{background:#3b82f633;color:var(--accent-primary)}.nav-icon{align-items:center;display:flex;flex-shrink:0;height:22px;justify-content:center;width:22px}.nav-icon svg{height:20px;width:20px}.nav-label{font-size:.875rem;font-weight:500}.sidebar-footer{border-top:1px solid #ffffff0f;padding:1rem}.logout-btn{align-items:center;background:#ef444414;border:none;border-radius:8px;color:var(--error);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.75rem;padding:.625rem .75rem;transition:all var(--transition-fast);width:100%}.logout-btn:hover{background:#ef444426;color:var(--error)}.logout-btn svg{flex-shrink:0;height:20px;width:20px}.logout-text{white-space:nowrap}.sidebar-overlay{display:none}@media (max-width:768px){.sidebar{transform:translateX(-100%);width:260px}.sidebar-open{transform:translateX(0)}.sidebar-closed{transform:translateX(-100%)}.sidebar-overlay{background:#00000080;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:99}}.dashboard-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:var(--card-bg);border-bottom:1px solid var(--border-primary);height:64px;justify-content:space-between;padding:.75rem 1.5rem;position:sticky;top:0;transition:all .2s ease;z-index:50}.dashboard-header,.header-left{align-items:center;display:flex}.header-left{gap:1rem}.mobile-menu-btn{align-items:center;background:none;border:none;border-radius:10px;color:var(--text-muted);cursor:pointer;display:none;height:40px;justify-content:center;transition:all .2s ease;width:40px}.mobile-menu-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.mobile-menu-btn svg{height:22px;width:22px}.header-right{gap:.375rem}.header-btn,.header-right{align-items:center;display:flex}.header-btn{background:none;border:none;border-radius:10px;color:var(--text-muted);cursor:pointer;height:38px;justify-content:center;transition:all .2s ease;width:38px}.header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.header-btn svg{height:18px;width:18px}.notification-btn,.notification-wrapper{position:relative}.notification-badge{align-items:center;background:linear-gradient(135deg,#ef4444,#dc2626);border-radius:999px;box-shadow:0 2px 4px #ef444466;color:#fff;display:flex;font-size:.625rem;font-weight:700;height:16px;justify-content:center;min-width:16px;padding:0 5px;position:absolute;right:4px;top:4px}.notification-dropdown{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:12px;box-shadow:var(--shadow-dropdown);overflow:hidden;position:absolute;right:0;top:calc(100% + 8px);width:320px;z-index:100}.notification-header{align-items:center;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;padding:1rem}.notification-header h4{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin:0}.mark-all-read{background:none;border:none;color:var(--accent-primary);cursor:pointer;font-size:.75rem}.mark-all-read:hover{text-decoration:underline}.notification-list{max-height:300px;overflow-y:auto}.notification-item{align-items:flex-start;cursor:pointer;display:flex;gap:.75rem;padding:.875rem 1rem;transition:background .2s ease}.notification-item:hover{background:var(--bg-hover)}.notification-item.unread{background:var(--accent-light)}.notification-dot{background:var(--border-primary);border-radius:50%;flex-shrink:0;height:8px;margin-top:6px;width:8px}.notification-item.unread .notification-dot{background:var(--accent-primary)}.notification-content{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.notification-title{color:var(--text-primary);font-size:.8125rem}.notification-time{color:var(--text-light);font-size:.6875rem}.notification-footer{border-top:1px solid var(--border-primary);padding:.75rem 1rem;text-align:center}.notification-footer a{color:var(--accent-primary);font-size:.8125rem;text-decoration:none}.notification-footer a:hover{text-decoration:underline}.user-menu-wrapper{margin-left:.375rem;position:relative}.user-menu-trigger{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:12px;cursor:pointer;display:flex;gap:.625rem;padding:.375rem .625rem .375rem .375rem;transition:all .2s ease}.user-menu-trigger:hover{background:var(--bg-hover);border-color:var(--text-muted)}.user-avatar-header{align-items:center;border-radius:8px;color:#fff;display:flex;font-size:.75rem;font-weight:600;height:34px;justify-content:center;width:34px}.user-info-header{align-items:flex-start;display:flex;flex-direction:column;text-align:left}.user-name-header{color:var(--text-primary);font-size:.8125rem;font-weight:600;line-height:1.3}.user-role-header{color:var(--text-muted);font-size:.6875rem;line-height:1.2}.chevron-icon{color:var(--text-muted);height:14px;transition:transform .2s ease;width:14px}.user-menu-wrapper:hover .chevron-icon{transform:rotate(180deg)}.user-dropdown{animation:dropdownFade .2s ease;background:var(--card-bg);border:1px solid var(--border-primary);border-radius:12px;box-shadow:var(--shadow-dropdown);min-width:200px;overflow:hidden;padding:.5rem;position:absolute;right:0;top:calc(100% + 8px);z-index:100}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropdown-item{align-items:center;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;gap:.75rem;padding:.625rem .75rem;transition:all var(--transition-fast)}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-item svg{color:var(--text-muted);height:18px;width:18px}.dropdown-item.logout,.dropdown-item.logout svg{color:var(--error)}.dropdown-item.logout:hover{background:var(--error-bg)}.dropdown-divider{background:var(--border-primary);height:1px;margin:.5rem 0}.dropdown-overlay{bottom:0;left:0;position:fixed;right:0;top:0;z-index:90}@media (max-width:768px){.dashboard-header{padding:.75rem 1rem}.mobile-menu-btn{display:flex}.search-container{flex:1 1;max-width:200px;width:100%}.user-info-header{display:none}.user-menu-trigger{padding:.25rem}.chevron-icon{display:none}}@media (max-width:480px){.search-container{display:none}}.dashboard-layout{background:var(--bg-primary);min-height:100vh;transition:background-color var(--transition-normal)}.dashboard-main{display:flex;flex-direction:column;min-height:100vh;transition:margin-left var(--transition-slow),background-color var(--transition-normal)}.sidebar-expanded{margin-left:260px}.sidebar-collapsed{margin-left:72px}.dashboard-content{box-sizing:border-box;flex:1 1;margin:0 auto;max-width:1600px;padding:1.5rem;width:100%}@media (max-width:768px){.dashboard-main{margin-left:0!important}.dashboard-content{padding:1rem}}.btn{align-items:center;border:none;border-radius:10px;cursor:pointer;display:inline-flex;font-family:inherit;font-weight:600;gap:.375rem;justify-content:center;outline:none;transition:all .2s ease}.btn svg{flex-shrink:0;height:16px;width:16px}.btn:focus-visible{box-shadow:0 0 0 3px #3b82f64d}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-sm{font-size:.8125rem;padding:.375rem .75rem}.btn-sm svg{height:14px;width:14px}.btn-md{font-size:.875rem;padding:.5rem 1rem}.btn-lg{font-size:.9375rem;padding:.625rem 1.25rem}.btn-lg svg{height:18px;width:18px}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #2563eb59;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-primary)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-muted)}.btn-outline{background:#0000;border:2px solid var(--accent-primary);color:var(--accent-primary)}.btn-outline:hover:not(:disabled){background:var(--accent-primary);color:#fff}.btn-ghost{background:#0000;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-secondary);color:var(--text-primary)}.btn-danger{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c)}.btn-full{width:100%}.btn-loading{position:relative}.btn-spinner{animation:spin .8s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:initial;height:16px;width:16px}.input-wrapper{display:flex;flex-direction:column;gap:.5rem;width:100%}.input-label{color:var(--text-secondary);font-size:.8125rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.input-container{align-items:center;display:flex;position:relative}.input{background:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;color:var(--text-primary);font-family:inherit;font-size:.9375rem;outline:none;padding:.75rem 1rem;transition:all .2s ease;width:100%}.input::placeholder{color:var(--text-muted)}.input:hover{border-color:var(--text-muted)}.input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626}.input:disabled{background:var(--bg-tertiary);cursor:not-allowed;opacity:.7}.input-with-left-icon{padding-left:2.75rem}.input-with-right-icon{padding-right:2.75rem}.input-icon{align-items:center;color:var(--text-muted);display:flex;justify-content:center;pointer-events:none;position:absolute}.input-icon svg{height:18px;width:18px}.input-icon-left{left:.875rem}.input-icon-right{right:.875rem}.input-error .input{border-color:var(--error)}.input-error .input:focus{box-shadow:0 0 0 3px #ef444426}.input-error-message{color:var(--error);font-size:.75rem;font-weight:500}.input-helper-text{color:var(--text-muted);font-size:.75rem}.login-page{align-items:center;background:linear-gradient(145deg,#6366f1,#8b5cf6 50%,#a855f7);display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:1.5rem;position:relative}.login-page:before{background:radial-gradient(circle at 20% 50%,#ffffff1a 0,#0000 50%),radial-gradient(circle at 80% 50%,#ffffff14 0,#0000 40%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.login-container{align-items:center;display:flex;flex-direction:column;gap:1.5rem;max-width:420px;position:relative;width:100%;z-index:1}.login-card{background:var(--card-bg);border:1px solid #ffffff1a;border-radius:20px;box-shadow:0 25px 60px -12px #0000004d;padding:2.5rem;width:100%}.login-header{gap:.875rem;margin-bottom:2rem}.login-header,.login-logo{align-items:center;display:flex}.login-logo{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:14px;box-shadow:0 8px 20px -4px #6366f166;color:#fff;flex-shrink:0;height:48px;justify-content:center;width:48px}.login-logo svg{height:24px;width:24px}.login-brand{display:flex;flex-direction:column}.brand-name{color:var(--text-primary);font-size:1.25rem;font-weight:700;line-height:1.2}.brand-subtitle{color:#8b5cf6;font-size:.625rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.login-form-section{margin-bottom:1.5rem}.login-title{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 .5rem}.login-subtitle{color:var(--text-muted);font-size:.875rem;margin:0 0 1.5rem}.login-form{display:flex;flex-direction:column;gap:1.25rem}.login-error{align-items:center;animation:shake .5s ease-in-out;background:var(--error-bg);border:1px solid var(--error);border-radius:10px;color:var(--error);display:flex;font-size:.875rem;gap:.5rem;padding:.875rem 1rem}.login-error svg{flex-shrink:0;height:18px;width:18px}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-4px)}20%,40%,60%,80%{transform:translateX(4px)}}.password-field{position:relative}.password-toggle{align-items:center;background:#0000;border:none;bottom:12px;color:var(--text-muted);cursor:pointer;display:flex;justify-content:center;padding:4px;position:absolute;right:12px;transition:color var(--transition-fast)}.password-toggle:hover{color:var(--text-secondary)}.password-toggle svg{height:18px;width:18px}.login-help{margin-top:1rem;text-align:center}.help-link{color:var(--text-muted);font-size:.8125rem;text-decoration:none}.help-link span{color:var(--accent-primary)}.help-link:hover span{text-decoration:underline}.login-divider{align-items:center;color:var(--text-muted);display:flex;font-size:.6875rem;font-weight:500;gap:1rem;letter-spacing:.08em;margin:.5rem 0 1rem;text-transform:uppercase}.login-divider:after,.login-divider:before{background:var(--border-primary);content:"";flex:1 1;height:1px}.demo-credentials{grid-gap:.625rem;display:grid;gap:.625rem;grid-template-columns:repeat(2,1fr)}.demo-btn{align-items:center;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:12px;cursor:pointer;display:flex;flex-direction:column;gap:.375rem;padding:.875rem .625rem;transition:all .2s ease}.demo-btn:hover{background:#6366f11a;border-color:#8b5cf6;transform:translateY(-2px)}.demo-role{color:var(--text-primary);font-size:.8125rem;font-weight:600}.demo-email{color:var(--text-muted);font-size:.6875rem}.login-footer{color:#ffffffb3;font-size:.8125rem;margin:0}@media (max-width:480px){.login-page{padding:1rem}.login-card{border-radius:16px;padding:1.5rem}.demo-credentials{grid-template-columns:1fr}}.modal-overlay{background:#000000b3}.change-password-modal{background:var(--card-bg);border-radius:16px;box-shadow:0 25px 60px -12px #0000004d;max-width:420px;padding:2rem;width:100%}.change-password-modal .modal-header{margin-bottom:1.5rem;text-align:center}.change-password-modal .modal-icon{align-items:center;background:linear-gradient(145deg,#6366f1,#8b5cf6);border-radius:50%;display:flex;height:60px;justify-content:center;margin:0 auto 1rem;width:60px}.change-password-modal .modal-icon svg{color:#fff;height:28px;width:28px}.change-password-modal h2{color:var(--text-primary);font-size:1.375rem;font-weight:600;margin:0 0 .5rem}.change-password-modal .modal-header p{color:var(--text-muted);font-size:.875rem;line-height:1.5;margin:0}.change-password-modal .modal-form{display:flex;flex-direction:column;gap:1rem}.password-requirements{background:var(--bg-muted);border-radius:8px;font-size:.8125rem;padding:1rem}.password-requirements p{color:var(--text-muted);font-weight:500;margin:0 0 .5rem}.password-requirements ul{grid-gap:.375rem;display:grid;gap:.375rem;list-style:none;margin:0;padding:0}.password-requirements li{align-items:center;color:var(--text-muted);display:flex;gap:.5rem;opacity:.6;transition:all .2s ease}.password-requirements li svg{height:14px;width:14px}.password-requirements li.valid{color:#10b981;opacity:1}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:14px;box-shadow:var(--shadow-sm);transition:all .25s ease}.card-padding-none{padding:0}.card-padding-sm{padding:1rem}.card-padding-md{padding:1.25rem}.card-padding-lg{padding:1.5rem}.card-hoverable:hover{border-color:var(--border-primary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-clickable{cursor:pointer}.card-header{margin-bottom:1rem}.card-subtitle{color:var(--text-muted);font-size:.8125rem;margin:.25rem 0 0}.card-content{color:var(--text-secondary);font-size:.875rem}.super-admin-dashboard{display:flex;flex-direction:column;gap:1.5rem}.dashboard-welcome{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.welcome-text h1{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0 0 .25rem}.welcome-text p{color:var(--text-secondary);font-size:.875rem;margin:0}.welcome-date{align-items:center;display:flex}.date-text{color:var(--text-secondary);font-size:.875rem}.stats-grid{grid-gap:1rem;gap:1rem}.stat-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;gap:1rem;transition:all var(--transition-fast)}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-label{color:var(--text-muted);display:block;font-size:.6875rem;letter-spacing:.025em;margin-bottom:.25rem}.stat-value-row{align-items:baseline;display:flex;gap:.5rem}.stat-number{font-size:1.5rem}.stat-trend{border-radius:6px;font-size:.6875rem;font-weight:600;padding:.125rem .5rem}.stat-trend.up{background:#10b98126;color:#10b981}.stat-trend.down{background:#ef444426;color:#ef4444}.dashboard-content-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 380px}.main-column,.side-column{display:flex;flex-direction:column;gap:1.5rem}.card-header-row{margin-bottom:1.25rem}.card-title{font-size:1rem;margin:0}.view-all-link{background:none;border:none;color:var(--accent-primary);cursor:pointer;font-size:.8125rem;padding:0;text-decoration:none}.view-all-link:hover{text-decoration:underline}.stat-card.clickable{cursor:pointer}.week-selector{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:.8125rem;padding:.375rem .75rem}.weekly-progress-card{padding:1.5rem}.progress-content{align-items:center;display:flex;gap:2rem}.progress-circle-container{flex-shrink:0}.progress-circle{height:140px;position:relative;width:140px}.progress-circle svg{height:100%;transform:rotate(-90deg);width:100%}.progress-bg{stroke:var(--border-primary)}.progress-billable{stroke:#3b82f6;stroke-linecap:round;transition:stroke-dasharray .5s ease}.progress-hours{font-size:1.125rem}.progress-label{color:var(--text-muted);font-size:.6875rem;letter-spacing:.025em;text-transform:uppercase}.progress-breakdown{display:flex;flex:1 1;flex-direction:column;gap:1rem}.progress-item{gap:.5rem}.progress-item-header{align-items:center;display:flex;gap:.5rem}.dot{border-radius:50%;height:10px;width:10px}.dot.billable{background:#3b82f6}.dot.non-billable{background:#94a3b8}.item-label{color:var(--text-secondary);font-size:.8125rem}.item-bar{background:var(--border-primary);border-radius:4px;height:8px;overflow:hidden}.item-bar-fill{border-radius:4px;height:100%;transition:width .5s ease}.item-bar-fill.billable{background:#3b82f6}.item-bar-fill.non-billable{background:#94a3b8}.item-value{color:var(--text-primary);font-size:.875rem;font-weight:600}.activity-card{padding:1.5rem}.activity-list{display:flex;flex-direction:column;gap:.75rem}.activity-item{align-items:center;background:var(--bg-secondary);border-radius:8px;display:flex;gap:.75rem;padding:.75rem;transition:background var(--transition-fast)}.activity-item:hover{background:var(--bg-tertiary)}.activity-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.activity-message{font-size:.8125rem;margin:0 0 .125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-badge,.activity-time{font-size:.6875rem}.activity-badge{border-radius:4px;flex-shrink:0;font-weight:600;padding:.25rem .5rem}.quick-actions-card{padding:1.5rem}.quick-actions-card .card-title{margin-bottom:1rem}.quick-actions-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr)}.quick-action-btn{background:var(--bg-secondary);border:1px solid var(--border-primary);gap:.5rem;padding:1rem;transition:all var(--transition-fast)}.quick-action-btn:hover{background:var(--card-bg);border-color:var(--accent-primary);box-shadow:0 4px 12px #3b82f626}.action-icon{align-items:center;display:flex;height:32px;justify-content:center;width:32px}.action-icon svg{height:24px;width:24px}.action-label{color:var(--text-primary);font-size:.75rem;font-weight:500;text-align:center}.system-health-card{padding:1.5rem}.health-badge{border-radius:999px;font-size:.6875rem;font-weight:600;padding:.25rem .625rem;text-transform:capitalize}.health-badge.healthy{background:var(--success-bg);color:var(--success)}.health-badge.warning{background:var(--warning-bg);color:var(--warning)}.health-badge.critical{background:var(--error-bg);color:var(--error)}.health-metrics{display:flex;flex-direction:column;gap:1rem}.health-metric{align-items:center;display:flex;gap:.75rem}.metric-icon{color:var(--text-muted);height:20px;width:20px}.metric-info{display:flex;flex-direction:column}.metric-label{color:var(--text-light);font-size:.6875rem}.metric-value{color:var(--text-primary);font-size:.8125rem;font-weight:600}.roles-distribution-card{padding:1.5rem}.roles-distribution-card .card-title{margin-bottom:1rem}.roles-list{gap:1rem}.role-item,.roles-list{display:flex;flex-direction:column}.role-item{gap:.375rem}.role-header{align-items:center;display:flex;justify-content:space-between}.role-name{color:var(--text-secondary);font-size:.8125rem}.role-percentage{color:var(--text-primary);font-size:.75rem;font-weight:600}.role-bar{background:var(--border-primary);border-radius:3px;height:6px;overflow:hidden}.role-bar-fill{background:linear-gradient(90deg,var(--accent-primary),var(--accent-hover));border-radius:3px;height:100%;transition:width .5s ease}.dashboard-error p{color:var(--text-muted)}@media (max-width:1200px){.dashboard-content-grid{grid-template-columns:1fr}.side-column{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}.side-column{grid-template-columns:1fr}}@media (max-width:600px){.stats-grid{grid-template-columns:1fr}.dashboard-welcome{align-items:flex-start;gap:.5rem}.dashboard-welcome,.progress-content{flex-direction:column}.quick-actions-grid{grid-template-columns:1fr}}.activity-icon svg{height:20px;width:20px}.activity-content{flex:1 1}.activity-message{color:var(--text-primary);font-size:.875rem;margin:0 0 .25rem}.activity-time{color:var(--text-muted);font-size:.75rem}@media (max-width:768px){.dashboard-header-content{align-items:flex-start;flex-direction:column}.dashboard-grid,.stats-grid{grid-template-columns:1fr}.activity-card{grid-column:span 1}.health-stats{flex-direction:column;gap:1rem}}.pmo-dashboard{display:flex;flex-direction:column;gap:1.5rem}.stat-card{cursor:pointer}.stat-title{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.05em;margin-bottom:.25rem}.stat-value{font-size:1.75rem;line-height:1}.dashboard-grid{grid-template-columns:1fr 1fr 1fr}.requests-card{grid-column:span 1}.requests-content{gap:.75rem}.empty-requests,.requests-content{display:flex;flex-direction:column}.empty-requests{align-items:center;color:var(--text-tertiary);gap:.5rem;padding:2rem}.empty-requests svg{color:var(--success);height:32px;width:32px}.request-item{border-radius:8px;gap:.75rem;padding:.75rem}.request-icon{align-items:center;border-radius:6px;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.request-icon svg{height:16px;width:16px}.request-icon.project{background:#3b82f626;color:#3b82f6}.request-icon.late{background:#f59e0b26;color:#f59e0b}.request-info{min-width:0}.request-name{color:var(--text-primary);display:block;font-size:.875rem;font-weight:500}.request-detail{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.request-date,.request-detail{color:var(--text-tertiary);font-size:.75rem}.request-date{flex-shrink:0}.view-all-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--primary-color);font-weight:600;margin-top:.75rem;padding:.875rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.view-all-btn:hover{background:var(--bg-hover);border-color:var(--primary-color);box-shadow:0 2px 8px #0000000f;transform:translateY(-1px)}.projects-card{grid-column:span 1}.projects-list{gap:0}.project-item{border-bottom:1px solid var(--border-color);justify-content:space-between;padding:.875rem 0}.project-item:last-child{border-bottom:none}.project-item:hover .project-name{color:var(--primary-color)}.project-main{flex-direction:column;gap:.5rem}.project-header,.project-main{display:flex;flex:1 1;min-width:0}.project-header{align-items:center;gap:.75rem}.project-name{font-size:.875rem;overflow:hidden;text-overflow:ellipsis;transition:color .2s;white-space:nowrap}.project-progress-container{align-items:center;display:flex;gap:.75rem}.project-progress{background:var(--bg-secondary);border-radius:3px;flex:1 1;height:6px;overflow:hidden}.project-progress-fill{border-radius:3px;height:100%;transition:width .3s ease}.project-percentage{background:#3b82f61a;border-radius:4px;flex-shrink:0;font-size:.75rem;font-weight:600;min-width:42px;padding:.25rem .5rem;text-align:center;white-space:nowrap}.project-hours{align-items:baseline;display:flex;flex-shrink:0;font-size:.8125rem;gap:.25rem;justify-content:flex-end;min-width:70px}.project-hours:before{display:none}.project-hours .hours-value{font-feature-settings:"tnum";color:var(--text-primary);font-size:.875rem;font-variant-numeric:tabular-nums;font-weight:700}.project-hours .hours-label{color:var(--text-tertiary);font-size:.75rem}.monthly-card{grid-column:span 1}.monthly-stats{gap:1.5rem;padding:.5rem 0}.monthly-stat,.monthly-stats{display:flex;flex-direction:column}.monthly-stat{align-items:center;text-align:center}.monthly-stat .stat-number{color:var(--text-primary);font-size:2rem;font-weight:700}.monthly-stat .stat-label{color:var(--text-tertiary);font-size:.75rem;margin-top:.25rem}.pending-content{gap:1.5rem;padding:1rem 0;text-align:center}.pending-content,.pending-count{align-items:center;display:flex;flex-direction:column}.pending-count{gap:.5rem}.count-value{color:var(--warning);font-size:3rem;font-weight:700}.count-label{color:var(--text-secondary);font-size:.875rem}.review-btn{align-items:center;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-dark) 100%);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all var(--transition-fast)}.review-btn:hover{box-shadow:0 4px 12px #3b82f64d;transform:translateY(-1px)}.empty-state{gap:.75rem;padding:3rem 1.5rem}.empty-state svg{color:var(--text-tertiary)}.empty-state p{font-weight:600}.empty-state span{color:var(--text-tertiary)}.review-btn svg{height:18px;width:18px}.resource-gauge{align-items:center;display:flex;flex-direction:column;gap:1.5rem}.gauge-circle{height:140px;position:relative;width:140px}.gauge-svg{height:100%;transform:rotate(0deg);width:100%}.gauge-value{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.gauge-number{color:var(--text-primary);display:block;font-size:1.5rem;font-weight:700}.gauge-label{color:var(--text-muted);font-size:.75rem}.resource-legend{display:flex;flex-direction:column;gap:.5rem}.legend-item{color:var(--text-muted);font-size:.75rem}.legend-dot{border-radius:50%;height:10px;width:10px}.dashboard-error button:hover{background:#2563eb}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.monthly-card,.projects-card,.requests-card{grid-column:span 1}}@media (max-width:768px){.dashboard-header-content{align-items:flex-start;flex-direction:column}.header-actions{flex-direction:column;width:100%}.dashboard-grid,.stats-grid{grid-template-columns:1fr}}.manager-dashboard{display:flex;flex-direction:column;gap:1.5rem}.header-badge{align-items:center;display:flex}.badge-role{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-radius:20px;color:#fff;font-size:.8125rem;font-weight:600;padding:.5rem 1rem}@media (max-width:640px){.stats-grid{grid-template-columns:1fr}}.stat-title{color:var(--text-muted);font-size:.75rem;letter-spacing:.025em;text-transform:uppercase}.submissions-card{grid-column:span 2}.team-list{gap:.75rem;max-height:320px;overflow-y:auto;padding-right:.5rem}.team-list::-webkit-scrollbar{width:6px}.team-list::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.team-list::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.team-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.team-member{border-radius:10px;gap:1rem;padding:.875rem;transition:all var(--transition-fast)}.team-member:hover{background:var(--bg-tertiary);transform:translateX(4px)}.member-avatar{align-items:center;border-radius:10px;color:#fff;display:flex;flex-shrink:0;font-size:.875rem;font-weight:600;height:44px;justify-content:center;width:44px}.member-info{flex:1 1;gap:.125rem;min-width:0}.member-name{font-size:.9375rem;font-weight:600}.member-email{color:var(--text-secondary);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-stats{gap:.75rem}.member-stat,.member-stats{align-items:center;display:flex}.member-stat{color:var(--text-secondary);font-size:.8125rem;gap:.25rem}.member-stat svg{height:14px;width:14px}.member-pending{background:var(--warning-bg);border-radius:4px;color:var(--warning);font-size:.6875rem;font-weight:600;padding:.25rem .5rem}.progress-list{display:flex;flex-direction:column;gap:1rem;max-height:320px;overflow-y:auto;padding-right:.5rem}.progress-list::-webkit-scrollbar{width:6px}.progress-list::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:3px}.progress-list::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}.progress-list::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.progress-item{background:var(--bg-secondary);border-radius:8px;display:flex;flex-direction:column;gap:.375rem;padding:.75rem;transition:background var(--transition-fast)}.progress-item:hover{background:var(--bg-tertiary)}.progress-name{color:var(--text-primary);font-size:.875rem;font-weight:600}.progress-percentage{color:var(--accent-primary);font-size:.8125rem;font-weight:700}.progress-bar{background:var(--border-primary);border-radius:3px;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:3px;height:100%;transition:width .5s ease}.manager-dashboard .progress-hours{align-items:center;color:var(--text-secondary);display:flex;font-size:.8125rem;gap:.125rem;margin-top:.25rem}.manager-dashboard .progress-hours .hours-logged{color:var(--text-primary);font-size:.8125rem;font-weight:600}.manager-dashboard .progress-hours .hours-estimated,.manager-dashboard .progress-hours .hours-separator{color:var(--text-muted);font-size:.8125rem}.empty-state{color:var(--text-muted);min-height:200px;padding:2rem 1rem}.empty-state svg{height:40px;margin-bottom:.75rem;width:40px}.empty-state p{font-weight:500;margin:0 0 .25rem}.empty-state span{color:var(--text-muted);font-size:.8125rem}.submissions-list{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.submission-item{align-items:flex-start;background:var(--bg-secondary);border-radius:10px;display:flex;justify-content:space-between;padding:1rem;transition:background var(--transition-fast)}.submission-item:hover{background:var(--bg-tertiary)}.submission-info{display:flex;flex-direction:column;gap:.25rem}.submission-project{color:var(--text-primary);font-size:.9375rem;font-weight:600}.submission-desc{color:var(--text-secondary);font-size:.8125rem}.submission-time{color:var(--text-muted);font-size:.75rem}.submission-right{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem}.submission-hours{color:var(--text-primary);font-size:1rem;font-weight:700}.submission-status{border-radius:4px;font-size:.6875rem;font-weight:600;padding:.25rem .625rem;text-transform:capitalize}.view-all-btn{align-items:center;background:#0000;border:1px solid var(--border-primary);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem;transition:all var(--transition-fast);width:100%}.view-all-btn:hover{background:var(--bg-secondary);border-color:var(--accent-primary);color:var(--accent-primary)}.view-all-btn svg{height:16px;width:16px}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid{grid-template-columns:1fr}.submissions-card{grid-column:span 1}}@media (max-width:768px){.dashboard-header-content{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:1fr}}.loader-container{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;padding:2rem}.loader-fullscreen{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:var(--bg-primary);bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}.loader{align-items:center;display:flex;justify-content:center;position:relative}.loader-sm{height:24px;width:24px}.loader-md{height:40px;width:40px}.loader-lg{height:60px;width:60px}.loader-ring{animation:spin 1.2s cubic-bezier(.5,0,.5,1) infinite;border:3px solid #0000;border-radius:50%;border-top:3px solid var(--accent-primary);height:100%;position:absolute;width:100%}.loader-ring:first-child{animation-delay:-.45s;border-top-color:var(--accent-primary)}.loader-ring:nth-child(2){animation-delay:-.3s;border-top-color:var(--accent-hover);height:80%;width:80%}.loader-ring:nth-child(3){animation-delay:-.15s;border-top-color:var(--accent-light);height:60%;width:60%}.loader-text{color:var(--text-secondary);font-size:.875rem;margin:0}.modal-overlay{background-color:#0f172a99;background-color:var(--modal-overlay,#0f172a99);padding:1rem}.modal-container{background:#fff;background:var(--modal-bg,#fff);border-radius:12px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:90vh;max-width:500px;overflow:hidden;width:100%}.modal-header{padding:1.25rem 1.5rem}.modal-header h2{font-size:1.25rem}.modal-close-btn{align-items:center;background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all var(--transition-fast)}.modal-close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-close-btn:disabled{cursor:not-allowed;opacity:.5}.modal-close-btn svg{height:20px;width:20px}.modal-body{flex:1 1;overflow-y:auto;padding:1.5rem}.modal-error{align-items:center;background:var(--error-bg);border-radius:8px;color:var(--error);display:flex;font-size:.875rem;gap:.75rem;margin-bottom:1.25rem;padding:.875rem 1rem}.modal-error svg{flex-shrink:0;height:18px;width:18px}.modal-empty,.modal-loading{align-items:center;display:flex;justify-content:center;padding:3rem 1rem}.modal-empty{color:var(--text-secondary);flex-direction:column;text-align:center}.modal-empty svg{color:var(--text-muted);height:48px;margin-bottom:1rem;width:48px}.modal-empty p{color:var(--text-primary);font-weight:500;margin:0 0 .5rem}.modal-empty span{font-size:.875rem}.form-select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;font-size:.9375rem;padding:.75rem 2.5rem .75rem 1rem;transition:all var(--transition-fast)}.form-select:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 3px #3b82f626}.form-select:disabled{cursor:not-allowed;opacity:.6}.form-textarea{min-height:100px}.form-textarea:disabled{cursor:not-allowed;opacity:.6}.modal-footer{gap:.75rem;margin-top:.5rem;padding-top:1.25rem}@media (max-width:640px){.modal-container{margin:1rem;max-height:80vh}.modal-header{padding:1rem 1.25rem}.modal-body{padding:1.25rem}.modal-footer{flex-direction:column-reverse}.modal-footer button{width:100%}}.employee-dashboard{display:flex;flex-direction:column;gap:1.5rem}.dashboard-header-content{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.header-greeting h1{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0 0 .5rem}.header-greeting p{color:var(--text-secondary);margin:0}.header-actions{align-items:center;gap:.75rem}.add-time-btn{align-items:center;background:linear-gradient(135deg,var(--accent-primary) 0,var(--accent-dark) 100%);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:.9375rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all var(--transition-fast)}.add-time-btn:hover{box-shadow:0 4px 12px #3b82f659;transform:translateY(-2px)}.add-time-btn svg{height:18px;width:18px}.stats-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(4,1fr)}.stat-card{padding:1.25rem}.stat-card-content{align-items:flex-start;display:flex;gap:1rem}.stat-icon{flex-shrink:0}.stat-info{flex:1 1;gap:.25rem}.stat-value{font-size:1.5rem;font-weight:700}.dashboard-grid{grid-template-columns:1fr 1fr}.entries-card{grid-column:span 2}.projects-list{display:flex;flex-direction:column;gap:.75rem}.project-item{align-items:center;background:var(--bg-secondary);border-radius:10px;cursor:pointer;display:flex;gap:1rem;padding:1rem;transition:all var(--transition-fast)}.project-item:hover{background:var(--bg-tertiary);transform:translateX(4px)}.project-icon{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:10px;color:#fff;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.project-icon svg{height:20px;width:20px}.project-info{display:flex;flex:1 1;flex-direction:column;gap:.125rem}.project-name{font-size:.9375rem;font-weight:600}.project-code{color:var(--text-secondary);font-size:.75rem}.project-status{border-radius:6px;font-size:.6875rem;font-weight:600;padding:.375rem .75rem;text-transform:capitalize}.week-progress{align-items:center;display:flex;flex-direction:column;gap:1.5rem;padding:1rem 0}.progress-ring{height:160px;position:relative;width:160px}.progress-svg{height:100%;width:100%}.progress-svg circle:last-child{transition:stroke-dasharray .5s ease}.progress-center{left:50%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.progress-hours{color:var(--text-primary);display:block;font-size:1.25rem;font-weight:600}.progress-label{color:var(--text-secondary);font-size:.875rem}.progress-legend{display:flex;gap:2rem}.legend-item{align-items:center;color:var(--text-secondary);display:flex;font-size:.875rem;gap:.5rem}.legend-dot{border-radius:3px;height:12px;width:12px}.legend-dot.filled{background:var(--accent-primary)}.legend-dot.empty{background:var(--border-primary)}.legend-value{color:var(--text-primary);font-weight:600}.entries-list{display:flex;flex-direction:column;gap:.75rem}.entry-item{align-items:flex-start;background:var(--bg-secondary);border-radius:10px;display:flex;justify-content:space-between;padding:1rem;transition:background var(--transition-fast)}.entry-item:hover{background:var(--bg-tertiary)}.entry-left{display:flex;gap:.875rem}.entry-status-icon{align-items:center;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.entry-status-icon svg{height:20px;width:20px}.entry-info{display:flex;flex-direction:column;gap:.25rem}.entry-project{color:var(--text-primary);font-size:.9375rem;font-weight:600}.entry-desc{color:var(--text-secondary);font-size:.8125rem}.entry-date{color:var(--text-muted);font-size:.75rem}.entry-right{align-items:flex-end;display:flex;flex-direction:column;gap:.5rem}.entry-hours{color:var(--text-primary);font-size:1.125rem;font-weight:700}.entry-badge{border-radius:4px;font-size:.6875rem;font-weight:600;padding:.25rem .625rem;text-transform:capitalize}.dashboard-error svg{color:var(--error);height:48px;width:48px}.dashboard-error button{background:var(--accent-primary);transition:background var(--transition-fast)}.dashboard-error button:hover{background:var(--accent-hover)}@media (max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.dashboard-header-content{align-items:flex-start;flex-direction:column}.dashboard-grid,.stats-grid{grid-template-columns:1fr}.entries-card{grid-column:span 1}.progress-legend{flex-direction:column;gap:.75rem}.header-actions{flex-direction:column;width:100%}.header-actions button{justify-content:center;width:100%}}.request-project-btn{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9375rem;font-weight:600;gap:.5rem;padding:.75rem 1.25rem;transition:all var(--transition-fast)}.request-project-btn:hover{background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.request-project-btn svg{height:18px;width:18px}.requests-card{margin-top:.5rem}.requests-list{gap:.75rem}.request-item{align-items:center;background:var(--bg-secondary);border-radius:10px;display:flex;justify-content:space-between;padding:1rem;transition:all var(--transition-fast)}.request-item:hover{background:var(--bg-tertiary)}.request-info{display:flex;flex-direction:column;gap:.25rem}.request-project{color:var(--text-primary);font-weight:500}.request-date{color:var(--text-secondary);font-size:.8125rem}.request-status{border-radius:12px;font-size:.75rem;font-weight:500;padding:.25rem .75rem;text-transform:capitalize}.monthly-chart{display:flex;flex-direction:column;gap:1rem}.chart-header{align-items:center;display:flex;justify-content:space-between}.chart-title{color:var(--text-secondary);font-size:.875rem;font-weight:500}.chart-total{color:var(--accent-primary);font-size:.875rem;font-weight:600}.chart-container{overflow-x:auto;padding-bottom:.5rem;width:100%}.chart-bars{align-items:flex-end;display:flex;gap:2px;height:150px;min-width:100%}.chart-bar-wrapper{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.25rem;min-width:20px}.chart-bar-wrapper.holiday,.chart-bar-wrapper.weekend{opacity:.5}.chart-bar-wrapper.holiday .chart-bar-label{color:var(--accent-primary);font-weight:600}.chart-bar-wrapper.today{position:relative}.chart-bar-wrapper.today:after{background:var(--accent-primary);border-radius:50%;content:"";height:6px;position:absolute;top:-5px;width:6px}.chart-bar-container{align-items:flex-end;display:flex;height:120px;justify-content:center;width:100%}.chart-bar{background:var(--accent-primary);border-radius:3px 3px 0 0;max-width:24px;min-height:2px;transition:height .3s ease;width:80%}.chart-bar.empty{background:var(--error);border-radius:3px;max-width:24px;min-height:4px;opacity:.6;width:80%}.chart-bar.full{background:var(--success)}.chart-bar-stack{align-items:stretch;display:flex;flex-direction:column-reverse;height:100%;max-width:24px;width:80%}.chart-bar-segment{cursor:pointer;min-height:2px;transition:height .3s ease;width:100%}.chart-bar-segment:first-child{border-radius:0 0 2px 2px}.chart-bar-segment:last-child{border-radius:3px 3px 0 0}.chart-bar-segment:only-child{border-radius:3px 3px 2px 2px}.chart-bar-segment:hover{opacity:.85;transform:scaleX(1.1)}.chart-bar-label{color:var(--text-tertiary);font-size:.625rem;text-align:center}.chart-project-legend{border-top:1px solid var(--border-primary);display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;padding-top:.75rem}.chart-project-legend .legend-item{align-items:center;color:var(--text-secondary);display:flex;font-size:.75rem;gap:.375rem}.chart-project-legend .legend-color-box{border-radius:3px;flex-shrink:0;height:12px;width:12px}.chart-project-legend .legend-color-box.missing{background:var(--error);opacity:.6}.chart-project-legend .legend-project-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chart-legend{border-top:1px solid var(--border-primary);display:flex;gap:1.5rem;justify-content:center;padding-top:.5rem}.chart-legend .legend-item{align-items:center;color:var(--text-secondary);display:flex;font-size:.75rem;gap:.375rem}.chart-legend .legend-color{border-radius:2px;height:12px;width:12px}.chart-legend .legend-color.full{background:var(--success)}.chart-legend .legend-color.partial{background:var(--accent-primary)}.chart-legend .legend-color.empty{background:var(--error);opacity:.6}.it-admin-dashboard{display:flex;flex-direction:column;gap:1.5rem;padding:0}.it-dashboard-header{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:space-between}.it-dashboard-header-left h1{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0 0 .25rem}.it-dashboard-header-left p{color:var(--text-secondary);font-size:.9375rem;margin:0}.it-dashboard-header-right{display:flex;gap:.75rem}.primary-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(5,1fr)}.stat-card{cursor:default;overflow:hidden;padding:0!important}.stat-card.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none}.stat-card.primary .stat-number,.stat-card.primary .stat-title{color:#fff}.stat-card.primary .stat-icon-wrapper{background:#fff3!important;color:#fff}.stat-card-inner{align-items:center;display:flex;gap:1rem;padding:1.25rem;position:relative}.stat-card-inner.clickable{cursor:pointer;transition:background .2s}.stat-card-inner.clickable:hover{background:var(--bg-hover)}.stat-icon-wrapper{align-items:center;border-radius:12px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.stat-icon-wrapper svg{height:24px;width:24px}.stat-icon-wrapper.blue{background:#3b82f626;color:#3b82f6}.stat-icon-wrapper.purple{background:#8b5cf626;color:#8b5cf6}.stat-icon-wrapper.green{background:#10b98126;color:#10b981}.stat-icon-wrapper.orange{background:#f59e0b26;color:#f59e0b}.stat-icon-wrapper.red{background:#ef444426;color:#ef4444}.stat-details{display:flex;flex:1 1;flex-direction:column;min-width:0}.stat-number{color:var(--text-primary);font-size:1.75rem;font-weight:700;line-height:1}.stat-title{color:var(--text-secondary);font-size:.8125rem;margin-top:.25rem}.stat-chevron{color:var(--text-tertiary);flex-shrink:0;height:20px;transition:transform .2s;width:20px}.stat-card-inner.clickable:hover .stat-chevron{color:var(--primary-color);transform:translateX(3px)}.alert-banner{display:flex;flex-wrap:wrap;gap:1rem}.alert-item{align-items:center;border-radius:10px;display:flex;flex:1 1;font-size:.875rem;gap:.75rem;min-width:250px;padding:.875rem 1.25rem}.alert-item svg{flex-shrink:0;height:20px;width:20px}.alert-item.warning{background:#f59e0b1f;border:1px solid #f59e0b4d;color:#f59e0b}.alert-item.info{background:#3b82f61f;border:1px solid #3b82f64d;color:#3b82f6}.alert-item span{color:var(--text-primary)}.alert-item strong{color:inherit}.dashboard-grid{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(2,1fr)}.card-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:1rem 1.25rem}.card-header h3{color:var(--text-primary);font-size:.9375rem;font-weight:600;margin:0}.text-btn{background:none;border:none;border-radius:4px;color:var(--primary-color);cursor:pointer;font-size:.8125rem;font-weight:600;padding:.25rem .5rem;transition:background .2s}.text-btn:hover{background:var(--bg-hover)}.empty-placeholder,.loading-placeholder{align-items:center;color:var(--text-tertiary);display:flex;flex-direction:column;gap:.5rem;justify-content:center;padding:2.5rem 1rem}.empty-placeholder svg{height:32px;opacity:.5;width:32px}.empty-placeholder span{font-size:.875rem}.category-list{padding:.75rem}.category-row{border-radius:8px;padding:.75rem .5rem;transition:background .2s}.category-row:hover{background:var(--bg-hover)}.category-info{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.category-name{color:var(--text-primary);font-size:.875rem;font-weight:500}.category-count{color:var(--primary-color);font-size:.875rem;font-weight:700;min-width:32px;text-align:right}.category-bar-wrapper{background:var(--bg-tertiary);border-radius:3px;height:6px;overflow:hidden}.category-bar{background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:3px;height:100%;min-width:4px;transition:width .4s cubic-bezier(.4,0,.2,1)}.location-list{padding:.5rem .75rem}.location-row{align-items:center;border-radius:8px;display:flex;gap:.875rem;padding:.75rem .5rem;transition:background .2s}.location-row:hover{background:var(--bg-hover)}.location-icon{align-items:center;background:#14b8a61f;border-radius:8px;color:#14b8a6;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.location-icon svg{height:18px;width:18px}.location-info{display:flex;flex:1 1;flex-direction:column;min-width:0}.location-name{color:var(--text-primary);font-size:.875rem;font-weight:500}.location-address{color:var(--text-tertiary);font-size:.75rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.location-count{background:var(--bg-secondary);border-radius:6px;color:var(--text-primary);font-size:1rem;font-weight:700;padding:.25rem .75rem}.assignments-list{padding:.5rem .75rem}.assignment-row{align-items:center;border-radius:8px;display:flex;gap:.875rem;padding:.75rem .5rem;transition:background .2s}.assignment-row:hover{background:var(--bg-hover)}.assignment-icon{align-items:center;background:#8b5cf61f;border-radius:8px;color:#8b5cf6;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.assignment-icon svg{height:18px;width:18px}.assignment-info{flex:1 1;min-width:0}.assignment-main{align-items:center;display:flex;font-size:.875rem;gap:.5rem}.assignment-main .asset-code{color:var(--primary-color);font-weight:600}.assignment-arrow{color:var(--text-tertiary);height:14px;width:14px}.assignment-main .employee-name{color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-meta{color:var(--text-tertiary);font-size:.75rem;margin-top:.125rem}.activity-list{padding:.5rem .75rem}.activity-row{align-items:flex-start;border-radius:8px;display:flex;gap:.75rem;padding:.625rem .5rem;transition:background .2s}.activity-row:hover{background:var(--bg-hover)}.activity-icon-wrapper{align-items:center;background:var(--bg-secondary);border-radius:50%;display:flex;flex-shrink:0;height:32px;justify-content:center;width:32px}.activity-icon-wrapper svg{height:16px;width:16px}.activity-info{flex:1 1;min-width:0}.activity-action{color:var(--text-primary);display:block;font-size:.8125rem}.activity-action strong{text-transform:capitalize}.activity-meta{color:var(--text-tertiary);display:block;font-size:.75rem;margin-top:.125rem}.quick-actions{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.quick-actions h3{color:var(--text-secondary);font-size:.875rem;font-weight:600;letter-spacing:.05em;margin:0 0 1rem;text-transform:uppercase}.actions-row{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(6,1fr)}.quick-action-btn{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:10px;cursor:pointer;display:flex;flex-direction:column;gap:.75rem;padding:1.25rem .75rem;transition:all .2s}.quick-action-btn:hover{border-color:var(--primary-color);box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.quick-action-btn .action-icon{align-items:center;border-radius:10px;display:flex;height:40px;justify-content:center;width:40px}.quick-action-btn .action-icon svg{height:20px;width:20px}.quick-action-btn .action-icon.blue{background:#3b82f626;color:#3b82f6}.quick-action-btn .action-icon.purple{background:#8b5cf626;color:#8b5cf6}.quick-action-btn .action-icon.green{background:#10b98126;color:#10b981}.quick-action-btn .action-icon.orange{background:#f59e0b26;color:#f59e0b}.quick-action-btn .action-icon.teal{background:#14b8a626;color:#14b8a6}.quick-action-btn .action-icon.gray{background:var(--bg-tertiary);color:var(--text-secondary)}.quick-action-btn span{color:var(--text-primary);font-size:.8125rem;font-weight:500}.dashboard-error{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:4rem 2rem;text-align:center}.dashboard-error svg{color:#ef4444;height:64px;margin-bottom:1rem;width:64px}.dashboard-error h2{color:var(--text-primary);font-size:1.25rem;margin:0 0 .5rem}.dashboard-error p{color:var(--text-secondary);margin:0 0 1.5rem}.dashboard-error button{background:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-weight:500;padding:.75rem 1.5rem;transition:background .2s}.dashboard-error button:hover{background:var(--primary-dark)}@media (max-width:1400px){.primary-stats{grid-template-columns:repeat(3,1fr)}.primary-stats .stat-card:nth-child(4),.primary-stats .stat-card:nth-child(5){grid-column:span 1}}@media (max-width:1100px){.dashboard-grid{grid-template-columns:1fr}.actions-row{grid-template-columns:repeat(3,1fr)}}@media (max-width:768px){.it-dashboard-header{align-items:stretch}.it-dashboard-header,.it-dashboard-header-right{flex-direction:column}.primary-stats{grid-template-columns:repeat(2,1fr)}.primary-stats .stat-card.primary{grid-column:span 2}.actions-row{grid-template-columns:repeat(2,1fr)}.alert-banner{flex-direction:column}.alert-item{min-width:auto}}@media (max-width:480px){.primary-stats{grid-template-columns:1fr}.primary-stats .stat-card.primary{grid-column:span 1}.actions-row{grid-template-columns:1fr 1fr}}.table-filters{background:#1e293b;background:var(--card-bg,#1e293b);border-radius:.5rem;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem;padding:1rem}.table-filters-count{border-bottom:1px solid #334155;border-bottom:1px solid var(--border-color,#334155);color:#94a3b8;color:var(--text-muted,#94a3b8);font-size:.875rem;padding-bottom:.5rem}.table-filters-count strong{color:#f1f5f9;color:var(--text-primary,#f1f5f9);font-weight:600}.table-filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.search-box{gap:.5rem}.search-input-wrapper{align-items:center;display:flex}.search-input-wrapper .search-icon{color:#64748b;color:var(--text-muted,#64748b);height:1rem;left:.75rem;width:1rem}.search-input-wrapper .search-input{background:#0f172a;background:var(--input-bg,#0f172a);border:1px solid #334155;border:1px solid var(--border-color,#334155);border-radius:.375rem;color:#f1f5f9;color:var(--text-primary,#f1f5f9);padding:.5rem .75rem .5rem 2.25rem;transition:border-color .2s;width:250px}.search-input-wrapper .search-input:focus{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6)}.search-input-wrapper .search-input::placeholder{color:#64748b;color:var(--text-muted,#64748b)}.table-filters-actions{align-items:center;display:flex;gap:.5rem}.table-filters-actions .has-filters{background:#3b82f6;background:var(--primary-color,#3b82f6);color:#fff}.filter-badge{align-items:center;background:#fff3;border-radius:9999px;display:inline-flex;font-size:.75rem;font-weight:600;height:1.25rem;justify-content:center;margin-left:.375rem;min-width:1.25rem;padding:0 .375rem}.dropdown-container{position:relative}.dropdown-menu{background:#1e293b;background:var(--card-bg,#1e293b);border:1px solid #334155;border:1px solid var(--border-color,#334155);border-radius:.5rem;box-shadow:0 10px 25px #0000004d;margin-top:.25rem;min-width:200px;overflow:hidden;position:absolute;right:0;top:100%;z-index:50}.dropdown-header{align-items:center;border-bottom:1px solid #334155;border-bottom:1px solid var(--border-color,#334155);color:#64748b;color:var(--text-muted,#64748b);display:flex;font-size:.75rem;font-weight:600;justify-content:space-between;letter-spacing:.05em;padding:.75rem 1rem;text-transform:uppercase}.dropdown-header-actions{display:flex;gap:.5rem}.dropdown-header-actions button{background:none;border:none;border-radius:.25rem;color:#3b82f6;color:var(--primary-color,#3b82f6);cursor:pointer;font-size:.75rem;padding:.125rem .375rem;transition:background-color .2s}.dropdown-header-actions button:hover{background:#3b82f61a}.dropdown-body{max-height:300px;overflow-y:auto;padding:.5rem}.column-checkbox{align-items:center;border-radius:.375rem;color:#f1f5f9;color:var(--text-primary,#f1f5f9);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem .75rem;transition:background-color .2s}.column-checkbox:hover{background:#334155;background:var(--hover-bg,#334155)}.column-checkbox input[type=checkbox]{accent-color:#3b82f6;accent-color:var(--primary-color,#3b82f6);cursor:pointer;height:1rem;width:1rem}.export-menu button{align-items:center;background:none;border:none;color:#f1f5f9;color:var(--text-primary,#f1f5f9);cursor:pointer;display:flex;font-size:.875rem;gap:.75rem;padding:.75rem 1rem;transition:background-color .2s;width:100%}.export-menu button:hover{background:#334155;background:var(--hover-bg,#334155)}.export-menu button svg{color:#64748b;color:var(--text-muted,#64748b);height:1rem;width:1rem}.table-filters-panel{align-items:flex-end;background:#0f172a;background:var(--input-bg,#0f172a);border-radius:.375rem;display:flex;flex-wrap:wrap;gap:1rem;padding:1rem}.filter-group label{color:#64748b;color:var(--text-muted,#64748b);font-weight:500;letter-spacing:.025em}.filter-group select{appearance:none;background:#1e293b;background:var(--card-bg,#1e293b);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m19 9-7 7-7-7'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1rem;border:1px solid #334155;border:1px solid var(--border-color,#334155);border-radius:.375rem;color:#f1f5f9;color:var(--text-primary,#f1f5f9);cursor:pointer;font-size:.875rem;padding:.5rem 2rem .5rem .75rem}.filter-group select:focus{border-color:#3b82f6;border-color:var(--primary-color,#3b82f6);outline:none}@media (max-width:768px){.table-filters-row{align-items:stretch;flex-direction:column}.search-box,.search-input-wrapper .search-input{width:100%}.table-filters-actions{justify-content:flex-end}.table-filters-panel{flex-direction:column}.filter-group{width:100%}}.users-page{padding:24px}.users-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.users-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.users-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.success-banner{animation:slideInRight .3s ease;bottom:24px;box-shadow:var(--shadow-lg);max-width:400px;position:fixed;right:24px;z-index:1100}@keyframes slideInRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.users-toolbar{align-items:center;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.search-input-wrapper{width:300px}.search-input-wrapper .search-icon{color:var(--text-muted);pointer-events:none}.search-input-wrapper .search-input{background:var(--input-bg);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:.875rem;padding:8px 12px 8px 36px;transition:all .2s ease;width:100%}.search-input-wrapper .search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f61a;outline:none}.search-input-wrapper .search-input::placeholder{color:var(--text-muted)}.spin{animation:spin 1s linear infinite}.users-table-container{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:12px;overflow-x:auto}.users-table{border-collapse:collapse;width:100%}.users-table td,.users-table th{padding:14px 16px;text-align:left;vertical-align:middle}.users-table th{background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-primary);color:var(--text-muted);font-size:.6875rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.users-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);font-size:.875rem}.users-table tbody tr{transition:background-color .15s ease}.users-table tbody tr:hover{background-color:var(--bg-hover)}.users-table tbody tr:last-child td{border-bottom:none}.user-name{align-items:center;display:flex;gap:12px}.user-avatar{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:10px;font-size:.8125rem;height:36px;width:36px}.role-badges{display:flex;flex-wrap:wrap;gap:6px}.role-badge{border-radius:6px;font-size:.6875rem;font-weight:600;padding:4px 10px}.role-superadmin{background-color:#8b5cf626;color:#8b5cf6}.role-pmo{background-color:#3b82f626;color:#3b82f6}.role-manager{background-color:#0ea5e926;color:#0ea5e9}.role-employee{background-color:#10b98126}.status-badge{border-radius:20px;font-size:.6875rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.status-badge.active{background-color:#10b98126;color:#10b981}.status-badge.inactive{background-color:#ef444426;color:#ef4444}.action-buttons{gap:6px}.action-btn.key{background-color:var(--action-key-bg);color:var(--action-key-color)}.action-btn.key:hover{background-color:var(--action-key-hover)}.modal-body{gap:16px}.form-group{gap:8px}.form-group label{font-size:.8125rem;font-weight:600;letter-spacing:.025em;text-transform:uppercase}.form-group select{background-color:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;color:var(--text-primary);font-size:.9375rem;padding:12px 14px;transition:all .2s ease}.form-group select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626;outline:none}.pagination-container{align-items:center;border-top:1px solid var(--border-color);display:flex;justify-content:space-between;margin-top:16px;padding:16px 0}.pagination-info{font-size:14px}.pagination-controls{align-items:center;display:flex;gap:4px}.pagination-btn{background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;font-size:14px;height:36px;justify-content:center;min-width:36px;padding:0 8px;transition:all .2s ease}.pagination-btn.active,.pagination-btn:hover:not(:disabled){background-color:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.pagination-pages{display:flex;gap:4px;margin:0 8px}.pagination-btn.page-num{min-width:36px}.roles-page{padding:24px}.roles-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.roles-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.roles-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.roles-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.role-card{padding:20px;transition:all .25s ease}.role-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.role-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.role-info h3{color:var(--text-primary);font-size:1.0625rem;font-weight:600;margin:0 0 6px}.role-type{border-radius:4px;font-size:.625rem;font-weight:600;letter-spacing:.025em;padding:3px 8px;text-transform:uppercase}.role-type.system{background-color:#3b82f626;color:#3b82f6}.role-type.custom{background-color:#10b98126;color:#10b981}.role-actions{display:flex;gap:6px}.action-btn.view{background-color:var(--action-edit-bg);color:var(--action-edit-color)}.action-btn.view:hover{background-color:var(--action-edit-hover)}.role-description{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0 0 16px}.role-permissions h4{color:var(--text-secondary);font-size:12px;margin:0 0 8px;text-transform:uppercase}.permission-tags{display:flex;flex-wrap:wrap;gap:6px}.permission-tag{background-color:var(--bg-secondary);border-radius:4px;color:var(--text-secondary);font-size:11px;padding:4px 8px;text-transform:capitalize}.permission-tag.more{background-color:#e0e7ff;color:#3730a3}.modal.modal-lg{max-width:700px}.modal-body{display:flex;flex-direction:column;gap:20px}.permissions-section h4{color:var(--text-secondary);font-size:.8125rem;font-weight:600;letter-spacing:.025em;margin:0 0 16px;text-transform:uppercase}.permissions-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}.permission-checkbox{background:var(--bg-secondary);border:1px solid #0000;border-radius:10px;cursor:pointer;gap:12px;padding:12px;transition:all .2s ease}.permission-checkbox:hover{background:var(--bg-tertiary);border-color:var(--border-primary)}.permission-checkbox input{accent-color:var(--accent-primary);height:16px;margin-top:2px;width:16px}.permission-checkbox input:disabled{cursor:not-allowed;opacity:.5}.permission-info{display:flex;flex-direction:column;gap:4px}.permission-label{font-size:.875rem}.permission-desc{color:var(--text-muted);font-size:.75rem;line-height:1.4}.departments-page{padding:24px}.departments-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.departments-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.departments-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.departments-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.department-card{padding:0;transition:all .25s ease}.department-card.clickable{cursor:pointer}.department-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.department-card-content{align-items:center;display:flex;gap:16px;padding:20px}.department-icon{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:12px;color:#fff;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.department-icon svg{height:22px;width:22px}.department-info{flex:1 1;min-width:0}.department-info h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 8px}.department-stats{align-items:center;display:flex;gap:12px}.department-stats .stat{align-items:center;color:var(--text-secondary);display:flex;font-size:.8125rem;gap:4px}.department-stats .stat svg{height:14px;width:14px}.department-stats .status{border-radius:4px;font-size:.625rem;font-weight:600;letter-spacing:.025em;padding:3px 8px;text-transform:uppercase}.department-stats .status.active{background-color:#10b98126;color:#10b981}.department-stats .status.inactive{background-color:#ef444426;color:#ef4444}.department-actions{display:flex;gap:6px}.action-btn{border-radius:8px;opacity:.8;transition:all .2s ease}.action-btn:hover{opacity:1;transform:scale(1.05)}.action-btn.edit{background-color:var(--action-edit-bg);color:var(--action-edit-color)}.action-btn.edit:hover{background-color:var(--action-edit-hover)}.action-btn.delete{background-color:var(--action-delete-bg);color:var(--action-delete-color)}.action-btn.delete:hover{background-color:var(--action-delete-hover)}.empty-state{padding:60px 24px}.empty-state-content{align-items:center;display:flex;flex-direction:column;text-align:center}.empty-state-content svg{color:var(--text-secondary);height:64px;margin-bottom:16px;width:64px}.empty-state-content h3{font-size:18px;font-weight:600;margin:0 0 8px}.empty-state-content p{color:var(--text-secondary);font-size:14px;margin:0 0 20px}.modal-overlay{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:var(--modal-overlay)}.modal{animation:slideUp .3s ease;background:var(--modal-bg);border:1px solid var(--border-primary);border-radius:16px;box-shadow:var(--shadow-xl);max-width:400px}.modal-header h2{font-size:1.125rem}.modal-close{border-radius:8px;font-size:18px;transition:all .2s ease}.modal-close,.modal-footer{background:var(--bg-tertiary)}.modal-footer{border-radius:0 0 16px 16px;border-top:1px solid var(--border-primary)}.clients-page{padding:24px}.clients-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.clients-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.clients-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.clients-toolbar{align-items:center;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.filter-options{gap:16px}.checkbox-label{gap:8px}.checkbox-label input{cursor:pointer;height:16px;width:16px}.clients-table-wrapper{overflow-x:auto}.clients-table{border-collapse:collapse;width:100%}.clients-table td,.clients-table th{border-bottom:1px solid var(--border-primary);padding:14px 16px;text-align:left;vertical-align:middle}.clients-table th{background:var(--bg-secondary);color:var(--text-tertiary);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}.clients-table td{color:var(--text-primary);font-size:14px}.clients-table tbody tr:hover{background:var(--bg-secondary)}.clients-table tbody tr.inactive{opacity:.6}.client-name-cell{display:block}.client-name-text{color:var(--text-primary);font-weight:500;margin-bottom:2px}.client-desc-text{color:var(--text-tertiary);font-size:12px}.status-badge.active{background-color:var(--success-bg);color:var(--success)}.status-badge.inactive{background-color:var(--error-bg);color:var(--error)}.action-btn.delete{background:var(--error-bg);color:var(--error)}.action-btn.delete:hover{background:var(--error);color:#fff}.projects-page{padding:24px}.projects-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.projects-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.projects-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.error-banner svg{height:18px;width:18px}.error-banner button{line-height:1;padding:0}.projects-toolbar{align-items:center;border-bottom:1px solid var(--border-primary);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;margin-bottom:16px;padding-bottom:16px}.search-input-wrapper input{width:250px}.filter-options{align-items:center;display:flex;gap:12px}.filter-select{background:var(--bg-primary);border:1px solid var(--border-primary);min-width:140px}.filter-select:focus{border-color:var(--accent-primary);outline:none}.projects-table-wrapper{overflow-x:auto}.projects-table{border-collapse:collapse;width:100%}.projects-table td,.projects-table th{border-bottom:1px solid var(--border-primary);padding:12px 16px;text-align:left;vertical-align:middle}.projects-table th{color:var(--text-tertiary);font-size:12px;font-weight:600;text-transform:uppercase}.projects-table tbody tr:hover,.projects-table th{background:var(--bg-secondary)}.project-name{display:block}.project-name .name{color:var(--text-primary);display:block;font-weight:500}.project-name .code{color:var(--text-tertiary);display:block;font-size:12px;margin-top:2px}.duration{color:var(--text-secondary);font-size:13px}.status-badge{padding:4px 8px}.status-badge.status-active{background-color:var(--success-bg);color:var(--success)}.status-badge.status-completed{background-color:var(--accent-primary-bg);color:var(--accent-primary)}.status-badge.status-on-hold{background-color:var(--warning-bg);color:var(--warning)}.status-badge.status-cancelled{background-color:var(--error-bg);color:var(--error)}.action-buttons{gap:8px}.action-btn{transition:background-color .2s}.action-btn.edit{background:var(--accent-primary-bg);color:var(--accent-primary)}.action-btn.edit:hover{background:var(--accent-primary);color:#fff}.action-btn.team{background:var(--success-bg);color:var(--success)}.action-btn.team:hover{background:var(--success);color:#fff}.modal-content.modal-lg{max-width:600px}.modal-content form{padding:24px}.form-select{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:14px;padding:10px 12px;width:100%}.form-select:focus{border-color:var(--accent-primary);outline:none}.modal-actions{margin-top:24px;padding-top:16px}.team-modal-content{padding:24px}.team-section{margin-bottom:24px}.team-section h3{color:var(--text-secondary);font-size:14px;font-weight:600;margin:0 0 12px}.team-section.add-section{border-top:1px solid var(--border-primary);padding-top:24px}.empty-text{color:var(--text-tertiary);font-size:14px;margin:0}.team-list{display:flex;flex-direction:column;gap:8px}.team-member{align-items:center;background:var(--bg-secondary);border-radius:6px;display:flex;justify-content:space-between;padding:10px 12px}.member-info{display:flex;flex-direction:column;gap:2px}.member-name{color:var(--text-primary);font-weight:500}.member-email{color:var(--text-tertiary);font-size:12px}.remove-btn{align-items:center;background:var(--error-bg);border:none;border-radius:4px;color:var(--error);cursor:pointer;display:flex;justify-content:center;padding:6px}.remove-btn:hover{background:var(--error);color:#fff}.remove-btn svg{height:14px;width:14px}.employee-search{display:flex;gap:8px;margin-bottom:12px}.employee-search .search-input-wrapper{flex:1 1}.employee-search .search-input-wrapper input{width:100%}.available-employees{border:1px solid var(--border-primary);border-radius:6px;max-height:200px;overflow-y:auto}.employee-checkbox{align-items:center;border-bottom:1px solid var(--border-primary);cursor:pointer;display:flex;gap:12px;padding:10px 12px}.employee-checkbox:last-child{border-bottom:none}.employee-checkbox:hover{background:var(--bg-secondary)}.employee-checkbox input{cursor:pointer;height:16px;width:16px}.employee-info{gap:2px}.emp-name{color:var(--text-primary);font-size:14px;font-weight:500}.emp-email{color:var(--text-tertiary);font-size:12px}.add-actions{display:flex;justify-content:flex-end;margin-top:12px}.allocations-page{padding:24px}.allocations-header{margin-bottom:24px}.allocations-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.allocations-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.error-banner,.success-banner{align-items:center;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:12px 16px}.error-banner{background-color:var(--error-bg);border:1px solid var(--error);color:var(--error)}.success-banner{background-color:var(--success-bg);border:1px solid var(--success);color:var(--success)}.error-banner svg,.success-banner svg{flex-shrink:0;height:18px;width:18px}.error-banner button,.success-banner button{background:none;border:none;color:inherit;cursor:pointer;font-size:20px;line-height:1;margin-left:auto;padding:0}.tabs-container{margin-bottom:24px}.tabs{border-bottom:2px solid var(--border-primary)}.tab{background:none;margin-bottom:-2px}.tab:hover{background:var(--bg-secondary)}.tab.active{border-bottom-color:var(--accent-primary);color:var(--accent-primary)}.tab svg{height:16px;width:16px}.tab-count{background:var(--accent-primary);border-radius:10px;color:#fff;font-size:12px;height:20px;min-width:20px;padding:0 6px}.tab-content{padding:16px 0}.empty-state{color:var(--text-tertiary)}.empty-state svg{margin-bottom:12px}.search-toolbar{display:flex;gap:8px;margin-bottom:16px}.search-input-wrapper{max-width:300px}.search-input-wrapper .search-icon{color:var(--text-tertiary);height:16px;width:16px}.search-input-wrapper input{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:14px;padding:8px 12px 8px 36px}.search-input-wrapper input:focus{border-color:var(--accent-primary);outline:none}.requests-list{display:flex;flex-direction:column;gap:12px}.request-card{align-items:flex-start;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;display:flex;justify-content:space-between;padding:16px}.request-info{flex:1 1}.request-header{align-items:center;display:flex;gap:12px;margin-bottom:8px}.request-header .employee-name{color:var(--text-primary);font-weight:600}.request-header .request-date{color:var(--text-tertiary);font-size:12px}.request-details{display:flex;gap:16px;margin-bottom:8px}.request-details span{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:6px}.request-details svg{height:14px;width:14px}.request-reason{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}.request-actions{display:flex;flex-shrink:0;gap:8px;margin-left:16px}.employees-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.employee-card{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;padding:16px}.employee-info{gap:4px;margin-bottom:12px}.employee-info .employee-name{color:var(--text-primary);font-weight:600}.employee-info .employee-email{color:var(--text-secondary);font-size:13px}.employee-info .employee-code{color:var(--text-tertiary);font-size:12px}.employee-meta{display:flex;flex-wrap:wrap;gap:8px}.employee-meta span{background:var(--bg-primary);border-radius:4px;color:var(--text-secondary);font-size:12px;padding:4px 8px}.modal-content{background:var(--bg-primary);box-shadow:var(--shadow-xl)}.modal-content,.modal-content.modal-sm{max-width:400px}.modal-header{border-bottom:1px solid var(--border-primary)}.modal-header h2{color:var(--text-primary)}.modal-close{color:var(--text-tertiary)}.form-group textarea{background:var(--bg-primary);border:1px solid var(--border-primary);padding:10px 12px}.form-group textarea:focus{border-color:var(--accent-primary)}.modal-actions{border-top:1px solid var(--border-primary);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.log-time-page{display:flex;flex-direction:column;gap:1.5rem}.log-time-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:1fr 1fr}.card-header-title{align-items:center;border-bottom:1px solid var(--border-primary);color:var(--text-primary);display:flex;font-size:1rem;font-weight:600;gap:.75rem;margin-bottom:1.25rem;padding-bottom:1rem}.card-header-title svg{color:var(--accent-primary);height:20px;width:20px}.card-header-title .week-total{color:var(--text-secondary);font-size:.875rem;font-weight:500;margin-left:auto}.entry-form-card{padding:1.5rem}.no-projects-message{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem 1rem;text-align:center}.no-projects-message svg{color:var(--text-muted);height:48px;margin-bottom:1rem;width:48px}.no-projects-message h3{color:var(--text-primary);margin:0 0 .5rem}.no-projects-message p{color:var(--text-secondary);font-size:.9375rem;margin:0 0 1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{color:var(--text-primary);font-size:.875rem;margin-bottom:.5rem}.form-group label .required{color:var(--error)}.form-row{grid-gap:1rem;gap:1rem}.form-input,.form-select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);font-size:.9375rem;padding:.75rem 1rem;transition:all var(--transition-fast);width:100%}.form-select{cursor:pointer}.form-select,.hours-input{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:18px;padding-right:2.5rem}.hours-input{-webkit-appearance:none;-moz-appearance:textfield;cursor:text}.hours-input::-webkit-calendar-picker-indicator,.hours-input::-webkit-inner-spin-button,.hours-input::-webkit-outer-spin-button{-webkit-appearance:none;display:none;margin:0}.hours-input::-webkit-list-button{display:none}.form-input:focus,.form-select:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 3px #3b82f626;outline:none}.form-input:disabled,.form-select:disabled{cursor:not-allowed;opacity:.6}.form-textarea{background:var(--input-bg);border:1px solid var(--input-border);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:.9375rem;min-height:80px;padding:.75rem 1rem;resize:vertical;transition:all var(--transition-fast);width:100%}.form-textarea:focus{border-color:var(--input-focus-border);box-shadow:0 0 0 3px #3b82f626;outline:none}.form-textarea::placeholder{color:var(--text-muted)}.form-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.5rem}.weekly-overview-card{padding:1.5rem}.week-nav-header{gap:.5rem}.week-nav-btn,.week-nav-header{align-items:center;display:flex}.week-nav-btn{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:8px;color:var(--text-secondary);cursor:pointer;height:32px;justify-content:center;transition:all var(--transition-fast);width:32px}.week-nav-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--accent-primary);color:var(--accent-primary)}.week-nav-btn:active:not(:disabled){background:var(--accent-primary);color:#fff}.week-nav-btn:disabled{cursor:not-allowed;opacity:.3}.week-nav-btn svg{height:18px;width:18px}.week-header-center{align-items:center;display:flex;gap:.5rem}.week-header-center svg{color:var(--accent-primary);height:20px;width:20px}.week-grid{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(7,1fr)}.day-cell{background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;display:flex;flex-direction:column;min-height:80px;padding:.625rem;transition:all .15s ease}.day-cell:hover{background:var(--bg-hover);border-color:var(--accent-primary)}.day-cell.today{background:var(--bg-tertiary);border:2px solid var(--accent-primary);box-shadow:0 0 0 1px var(--accent-primary) inset}.day-cell.today .day-name,.day-cell.today .day-num{color:var(--accent-primary);font-weight:600}.day-cell.selected{background:var(--bg-hover);border:2px solid var(--accent-primary)}.day-cell.selected .day-name,.day-cell.selected .day-num{color:var(--accent-primary)}.day-cell.today.selected{background:var(--bg-hover);box-shadow:0 0 0 2px var(--accent-primary) inset}.day-cell.weekend{opacity:.7}.day-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.day-name{color:var(--text-secondary);font-size:.75rem;font-weight:600;text-transform:uppercase}.day-num{color:var(--text-primary);font-size:.875rem;font-weight:600}.day-hours{margin-bottom:.375rem}.hours-value{color:var(--text-muted);font-size:.875rem;font-weight:600}.hours-value.partial{color:var(--warning)}.hours-value.full{color:var(--success)}.day-entries{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:auto}.entry-chip{border-radius:4px;font-size:.625rem;max-width:100%;overflow:hidden;padding:.125rem .375rem;text-overflow:ellipsis;white-space:nowrap}.more-entries{color:var(--text-secondary);font-size:.625rem}.recent-entries-card{padding:1.5rem}.entries-table-container{overflow-x:auto}.entries-table{border-collapse:collapse;font-size:.875rem;width:100%}.entries-table th{background:var(--bg-tertiary);color:var(--text-secondary);font-weight:600;padding:.75rem 1rem;text-align:left;white-space:nowrap}.entries-table th:first-child{border-radius:8px 0 0 8px}.entries-table th:last-child{border-radius:0 8px 8px 0}.entries-table td{border-bottom:1px solid var(--border-light);color:var(--text-primary);padding:.875rem 1rem}.entries-table tr:last-child td{border-bottom:none}.entries-table tr:hover td{background:var(--bg-hover)}.status-badge{padding:.25rem .625rem}@media (max-width:1024px){.log-time-grid{grid-template-columns:1fr}.week-grid{gap:.375rem}.day-cell{min-height:80px;padding:.5rem}.hours-value{font-size:1rem}}@media (max-width:640px){.header-content{flex-direction:column}.header-content button{justify-content:center;width:100%}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}.week-grid{grid-template-columns:repeat(4,1fr)}.day-cell.weekend{display:none}}.my-timesheet-stats{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.5rem;padding:1.25rem}.my-timesheet-stats.loading{align-items:center;display:flex;justify-content:center;min-height:100px}.stats-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.stats-header h3{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0}.period-badge{background:var(--bg-muted);border-radius:20px;color:var(--text-muted);font-size:.75rem;padding:.25rem .75rem}.my-timesheet-stats .stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,1fr);margin-bottom:1rem}.my-timesheet-stats .stat-card.mini{padding:.875rem}.my-timesheet-stats .stat-card-content{align-items:center;display:flex;gap:.75rem}.my-timesheet-stats .stat-icon{align-items:center;border-radius:8px;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.my-timesheet-stats .stat-icon svg{height:18px;width:18px}.my-timesheet-stats .stat-info{display:flex;flex-direction:column;gap:.125rem}.my-timesheet-stats .stat-title{color:var(--text-muted);font-size:.75rem;font-weight:500}.my-timesheet-stats .stat-value{color:var(--text-primary);font-size:1.125rem;font-weight:700}.weekly-progress-bar{background:var(--bg-muted);border-radius:8px;padding:.75rem 1rem}.progress-header{align-items:center;color:var(--text-muted);display:flex;font-size:.8125rem;justify-content:space-between;margin-bottom:.5rem}.progress-text{color:var(--text-primary);font-weight:600}.progress-track{background:var(--border-color);border-radius:4px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#3b82f6,#8b5cf6);border-radius:4px;height:100%;transition:width .3s ease}@media (max-width:768px){.my-timesheet-stats .stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.stats-header{align-items:flex-start;flex-direction:column;gap:.5rem}.my-timesheet-stats .stats-grid{grid-template-columns:1fr}}.timesheets-page{display:flex;flex-direction:column;gap:1.5rem}.page-header{margin-bottom:.5rem}.header-content{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.header-title h1{color:var(--text-primary);font-size:1.75rem;font-weight:700;margin:0 0 .5rem}.header-title p{color:var(--text-secondary);margin:0}.header-content button{align-items:center;display:flex;gap:.5rem}.alert{animation:slideIn .3s ease;font-size:.9375rem;gap:.75rem;padding:.875rem 1rem}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert svg{height:18px;width:18px}.alert-error{background:var(--error-bg);color:var(--error)}.alert-success{background:var(--success-bg);color:var(--success)}.alert-close{background:none;border:none;color:inherit;cursor:pointer;margin-left:auto;opacity:.7;padding:.25rem;transition:opacity var(--transition-fast)}.alert-close:hover{opacity:1}.status-tabs{background:var(--card-bg);border-radius:12px;box-shadow:var(--shadow-sm);display:flex;gap:.5rem;overflow-x:auto;padding:.5rem}.status-tab{align-items:center;background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1rem;transition:all var(--transition-fast);white-space:nowrap}.status-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.status-tab.active{background:var(--accent-primary);color:#fff}.tab-count{align-items:center;background:var(--bg-tertiary);border-radius:12px;display:inline-flex;font-size:.75rem;font-weight:600;height:1.5rem;justify-content:center;min-width:1.5rem;padding:0 .5rem}.status-tab.active .tab-count{background:#fff3;color:#fff}.tab-count.draft{background:#6b728026;color:#6b7280}.tab-count.submitted{background:#3b82f626;color:#3b82f6}.tab-count.approved{background:#10b98126;color:#10b981}.tab-count.rejected{background:#ef444426;color:#ef4444}.filters-card{padding:1rem 1.25rem}.filters-row{align-items:flex-end;gap:1rem}.filter-group{flex-direction:column;gap:.375rem;min-width:150px}.filter-group label{font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.filter-input,.filter-select{background:var(--input-bg);border:1px solid var(--input-border);border-radius:6px;color:var(--text-primary);font-size:.875rem;padding:.5rem .75rem}.filter-input:focus,.filter-select:focus{border-color:var(--input-focus-border);outline:none}.clear-filters-btn{align-items:center;background:var(--bg-tertiary);border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.875rem;gap:.375rem;padding:.5rem .875rem;transition:all var(--transition-fast)}.clear-filters-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.clear-filters-btn svg{height:14px;width:14px}.timesheets-list-card{overflow:hidden;padding:0}.loading-container{align-items:center;display:flex;justify-content:center;padding:3rem}.empty-state{padding:4rem 2rem}.empty-state svg{color:var(--text-muted);margin-bottom:1rem}.empty-state h3{font-size:1.125rem;margin:0 0 .5rem}.empty-state p{font-size:.9375rem;margin:0 0 1.5rem}.timesheets-table-container{overflow-x:auto}.timesheets-table{font-size:.875rem}.timesheets-table th{background:var(--bg-tertiary);text-align:left;white-space:nowrap}.timesheets-table td,.timesheets-table th{border-bottom:1px solid var(--border-light);padding:1rem 1.25rem}.timesheets-table td{color:var(--text-primary);vertical-align:middle}.timesheets-table tr:last-child td{border-bottom:none}.timesheets-table tr:hover td{background:var(--bg-hover)}.date-cell .date-value,.project-name{font-weight:500}.project-name{color:var(--text-primary)}.description-cell{max-width:200px}.status-badge{font-size:.75rem;padding:.25rem .75rem;text-transform:capitalize}.action-buttons{align-items:center;gap:.5rem}.action-btn{transition:all var(--transition-fast)}.action-btn.submit{background:#10b9811a;color:#10b981}.action-btn.submit:hover:not(:disabled){background:#10b98133}.action-btn.edit{background:#3b82f61a;color:#3b82f6}.action-btn.edit:hover:not(:disabled){background:#3b82f633}.action-btn.delete{background:#ef44441a}.action-btn.delete:hover:not(:disabled){background:#ef444433}.no-actions{color:var(--text-muted)}.loading-spinner{animation:spin .8s linear infinite;border:2px solid;border-radius:50%;border-right:2px solid #0000;height:14px;width:14px}@keyframes spin{to{transform:rotate(1turn)}}.pagination{border-top:1px solid var(--border-light);gap:1rem;padding:1rem}.pagination-btn{align-items:center;background:var(--bg-tertiary);border:none;border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;gap:.5rem;padding:.5rem 1rem;transition:all var(--transition-fast)}.pagination-btn:hover:not(:disabled){background:var(--bg-hover)}.pagination-btn:disabled{cursor:not-allowed;opacity:.5}.pagination-btn svg{height:16px;width:16px}.pagination-info{color:var(--text-secondary);font-size:.875rem}@media (max-width:768px){.header-content{flex-direction:column}.header-content button{justify-content:center;width:100%}.status-tabs{padding:.375rem}.status-tab{font-size:.8125rem;padding:.5rem .75rem}.filters-row{align-items:stretch;flex-direction:column}.filter-group{min-width:100%}.clear-filters-btn{justify-content:center;width:100%}.timesheets-table td,.timesheets-table th{padding:.75rem 1rem}.description-cell{max-width:120px}}.team-page{padding:0}.team-header{margin-bottom:24px}.team-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 4px}.team-title p{color:var(--text-secondary);font-size:14px;margin:0}.team-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:24px}.team-list-card{overflow:hidden;padding:0}.team-toolbar{align-items:center;border-bottom:1px solid var(--border-color);display:flex;gap:16px;justify-content:space-between;padding:16px 20px}.search-box{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;max-width:300px;padding:8px 12px}.search-box svg{color:var(--text-secondary);height:18px;width:18px}.search-input{background:#0000;border:none;color:var(--text-primary);flex:1 1;font-size:14px;outline:none}.search-input::placeholder{color:var(--text-secondary)}.team-table-container{overflow-x:auto}.team-table{border-collapse:collapse;width:100%}.team-table td,.team-table th{border-bottom:1px solid var(--border-color);padding:14px 20px;text-align:left;vertical-align:middle}.team-table th{color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.team-table tbody tr:hover,.team-table th{background:var(--bg-secondary)}.employee-cell{align-items:center;display:flex;gap:12px}.roles{display:flex;flex-wrap:wrap;gap:4px}.role-badge{border-radius:4px;display:inline-block;font-size:11px;font-weight:500;padding:2px 8px;text-transform:capitalize}.role-superadmin{background:#ef444415;color:#ef4444}.role-pmo{background:#8b5cf615;color:#8b5cf6}.role-manager{background:#3b82f615;color:#3b82f6}.role-employee{background:#10b98115;color:#10b981}.hours-cell{display:flex;flex-direction:column;gap:4px;min-width:80px}.hours-value{color:var(--text-primary);font-weight:500}.hours-bar{background:var(--border-color);border-radius:2px;height:4px;overflow:hidden}.hours-fill{background:#3b82f6;border-radius:2px;height:100%;transition:width .3s}.pending-badge{align-items:center;background:#f59e0b15;border-radius:12px;color:#f59e0b;display:inline-flex;font-size:12px;font-weight:600;height:24px;justify-content:center;min-width:24px;padding:0 8px}.no-pending{color:var(--text-secondary)}.status-badge{border-radius:4px;padding:4px 12px}.status-badge.complete{background:#10b98115;color:#10b981}.status-badge.in-progress{background:#3b82f615;color:#3b82f6}.empty-state p{max-width:300px}@media (max-width:768px){.team-stats{grid-template-columns:1fr}.team-toolbar{align-items:stretch;flex-direction:column}.search-box{max-width:none}.team-table td,.team-table th{padding:12px}}.approvals-page{padding:0}.approvals-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;margin-bottom:24px}.approvals-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 4px}.approvals-title p{color:var(--text-secondary);font-size:14px;margin:0}.approvals-stats{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:24px}.stat-card{gap:16px;padding:20px}.stat-card,.stat-icon{align-items:center;display:flex}.stat-icon{border-radius:12px;height:48px;justify-content:center;width:48px}.stat-icon svg{height:24px;width:24px}.stat-info{display:flex;flex-direction:column}.stat-label{color:var(--text-secondary);font-size:12px;letter-spacing:.5px;text-transform:uppercase}.stat-value{color:var(--text-primary);font-size:24px;font-weight:600}.approvals-list-card{overflow:hidden;padding:0}.approvals-toolbar{border-bottom:1px solid var(--border-color);justify-content:space-between;padding:16px 20px}.approvals-toolbar,.select-all{align-items:center;display:flex}.select-all{color:var(--text-primary);cursor:pointer;font-size:14px;gap:8px}.select-all input{cursor:pointer;height:16px;width:16px}.refresh-btn{align-items:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;gap:6px;padding:8px 16px;transition:all .2s}.refresh-btn:hover{background:var(--bg-secondary)}.refresh-btn svg{height:16px;width:16px}.approvals-groups{padding:0}.employee-group{border-bottom:1px solid var(--border-color)}.employee-group:last-child{border-bottom:none}.employee-group-header{align-items:center;background:var(--bg-secondary);display:flex;justify-content:space-between;padding:16px 20px}.employee-info{align-items:center;gap:12px}.avatar{align-items:center;border-radius:50%;color:#fff;display:flex;font-size:14px;font-weight:600;height:40px;justify-content:center;width:40px}.employee-info>div{display:flex;flex-direction:column}.employee-name{font-weight:600}.employee-summary{color:var(--text-secondary);font-size:12px}.group-actions{display:flex;gap:8px}.timesheets-table{border-collapse:collapse;width:100%}.timesheets-table td,.timesheets-table th{border-bottom:1px solid var(--border-color);padding:12px 20px;text-align:left;vertical-align:middle}.timesheets-table th{background:var(--bg-primary);color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.timesheets-table tbody tr:hover{background:var(--bg-secondary)}.timesheets-table tbody tr.selected{background:#3b82f608}.checkbox-col{width:40px}.checkbox-col input{cursor:pointer;height:16px;width:16px}.description-cell{color:var(--text-secondary);font-size:13px;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-desc{font-style:italic;opacity:.6}.action-btn{align-items:center;border-radius:6px;display:flex;height:32px;justify-content:center;width:32px}.action-btn.approve{background:#10b98115;color:#10b981}.action-btn.approve:hover:not(:disabled){background:#10b98125}.action-btn.reject{background:#ef444415;color:#ef4444}.action-btn.reject:hover:not(:disabled){background:#ef444425}.action-btn:disabled{cursor:not-allowed;opacity:.5}.empty-state{padding:60px 20px}.empty-state svg{color:#10b981}.empty-state h3{font-weight:600}.error-banner{background:#ef444415;border:1px solid #ef444430;color:#ef4444}.error-banner svg{flex-shrink:0;height:20px;width:20px}.error-banner span{flex:1 1;font-size:14px}.error-banner button{background:#0000;color:inherit;font-size:18px;padding:4px}.modal-overlay{inset:0}.modal{background:var(--bg-primary);box-shadow:0 20px 40px #0003;margin:20px;max-width:450px}.modal-header{padding:20px}.modal-header h3{color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.modal-close{align-items:center;background:#0000;border-radius:6px;display:flex;height:32px;justify-content:center;transition:all .2s;width:32px}.modal-close:hover{background:var(--bg-secondary);color:var(--text-primary)}.modal-close svg{height:18px;width:18px}.modal-body{padding:20px}.modal-body p{color:var(--text-secondary);font-size:14px;margin:0 0 16px}.form-label{display:flex;flex-direction:column;font-weight:500;gap:8px}.form-label,.form-label textarea{color:var(--text-primary);font-size:14px}.form-label textarea{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;font-family:inherit;padding:12px;resize:vertical}.form-label textarea:focus{border-color:#3b82f6;outline:none}.modal-footer{padding:16px 20px}@media (max-width:768px){.approvals-header{align-items:stretch;flex-direction:column}.approvals-stats{grid-template-columns:1fr}.employee-group-header{align-items:flex-start;flex-direction:column;gap:12px}.timesheets-table td,.timesheets-table th{padding:10px 12px}.description-cell{max-width:120px}}.permissions-page{padding:0}.permissions-header{margin-bottom:24px}.permissions-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 4px}.permissions-title p{color:var(--text-secondary);font-size:14px;margin:0}.alert span{flex:1 1;font-size:14px}.alert button{background:#0000;font-size:18px;padding:4px}.alert-error{background:#ef444415;border:1px solid #ef444430}.alert-success{background:#10b98115;border:1px solid #10b98130;color:#10b981}.tabs{border-bottom:1px solid var(--border-color);margin-bottom:24px;padding-bottom:0}.tab,.tabs{display:flex;gap:8px}.tab{align-items:center;background:#0000;border:none;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;margin-bottom:-1px;padding:12px 20px;transition:all .2s}.tab svg{height:18px;width:18px}.tab:hover{color:var(--text-primary)}.tab.active{border-bottom-color:#3b82f6;border-bottom-color:var(--primary-color,#3b82f6);color:#3b82f6;color:var(--primary-color,#3b82f6)}.two-column-layout{grid-gap:24px;display:grid;gap:24px;grid-template-columns:300px 1fr;min-height:600px}.selection-panel{display:flex;flex-direction:column;overflow:hidden;padding:0}.panel-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;padding:16px 20px}.panel-header h3{color:var(--text-primary);font-size:16px;font-weight:600;margin:0}.panel-subtitle{color:var(--text-secondary);font-size:12px;margin:4px 0 0}.panel-actions{display:flex;gap:8px}.role-list,.user-list{flex:1 1;overflow-y:auto;padding:8px}.role-item,.user-item{align-items:center;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .2s}.role-item:hover,.user-item:hover{background:var(--bg-secondary)}.role-item.selected,.user-item.selected{background:#3b82f610;border:1px solid #3b82f640}.user-avatar{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:14px;font-weight:600;height:40px;justify-content:center;width:40px}.role-info,.user-info{flex:1 1;min-width:0}.role-name,.user-name{color:var(--text-primary);display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-desc,.user-roles{color:var(--text-secondary);display:block;font-size:12px;text-transform:capitalize}.role-icon{align-items:center;border-radius:8px;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.role-icon svg{height:20px;width:20px}.role-icon.role-superadmin{background:#ef444415;color:#ef4444}.role-icon.role-pmo{background:#8b5cf615;color:#8b5cf6}.role-icon.role-manager{background:#3b82f615;color:#3b82f6}.role-icon.role-employee{background:#10b98115;color:#10b981}.permissions-panel{display:flex;flex-direction:column;overflow:hidden;padding:0}.permissions-list{flex:1 1;overflow-y:auto;padding:16px 20px}.permission-category{margin-bottom:24px}.permission-category:last-child{margin-bottom:0}.category-title{border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;padding-bottom:8px;text-transform:uppercase}.permission-items{display:flex;flex-direction:column;gap:8px}.permission-item{align-items:flex-start;border:1px solid #0000;border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .2s}.permission-item:hover{background:var(--bg-secondary)}.permission-item.status-granted{background:#10b98108}.permission-item.status-override-granted{background:#3b82f608;border-color:#3b82f630}.permission-item.status-override-denied{background:#ef444408;border-color:#ef444430}.permission-checkbox{align-items:center;display:flex;flex-direction:column;gap:4px;padding-top:2px}.permission-checkbox input[type=checkbox]{accent-color:#3b82f6;cursor:pointer;height:18px;width:18px}.override-badge{background:#3b82f6;border-radius:3px;color:#fff;font-size:9px;font-weight:600;padding:2px 4px;text-transform:uppercase}.status-override-denied .override-badge{background:#ef4444}.permission-info{flex:1 1}.permission-label{color:var(--text-primary);display:block;font-weight:500;margin-bottom:2px}.permission-desc{color:var(--text-secondary);display:block;font-size:12px}.empty-panel{align-items:center;display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.empty-panel svg{color:var(--text-secondary);height:48px;margin-bottom:16px;width:48px}.empty-panel h3{color:var(--text-primary);font-size:18px;font-weight:600;margin:0 0 8px}.empty-panel p{color:var(--text-secondary);font-size:14px;margin:0;max-width:250px}@media (max-width:900px){.two-column-layout{grid-template-columns:1fr}.selection-panel{max-height:300px}.role-list,.user-list{display:flex;flex-wrap:wrap;gap:8px}.role-item,.user-item{flex:1 1;min-width:200px}}@media (max-width:600px){.tabs{flex-direction:column}.tab{justify-content:center}.panel-header{align-items:flex-start;flex-direction:column}.panel-actions{width:100%}.panel-actions button{flex:1 1}}.holidays-page{margin:0 auto;max-width:1200px;padding:24px}.holidays-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.holidays-title h1{color:var(--text-color);font-size:24px;font-weight:600;margin:0}.holidays-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.holidays-filters{border-bottom:1px solid var(--border-color);padding:16px 0}.holidays-filters,.holidays-summary{display:flex;gap:24px;margin-bottom:16px}.holidays-summary{padding:12px 0}.summary-item{color:var(--text-secondary);font-size:14px}.summary-item strong{color:var(--text-color);font-weight:600}.holidays-table-wrapper{overflow-x:auto}.holidays-table{border-collapse:collapse;width:100%}.holidays-table td,.holidays-table th{border-bottom:1px solid var(--border-color);padding:12px 16px;text-align:left;vertical-align:middle}.holidays-table th{background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.holidays-table tbody tr:hover{background:var(--bg-hover)}.date-cell{white-space:nowrap}.date-cell,.name-cell{font-weight:500}.badge-full{background:#3b82f61a;color:#3b82f6}.badge-half{background:#eab3081a;color:#eab308}.badge-mandatory{background:#ef44441a;color:#ef4444}.badge-optional{background:#22c55e1a;color:#22c55e}.modal{max-width:480px}.form-group input[type=date],.form-group input[type=text],.form-group select{background:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:14px;padding:10px 14px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus{border-color:var(--primary-color);outline:none}@media (max-width:768px){.holidays-page{padding:16px}.holidays-header{flex-direction:column;gap:16px}.holidays-filters{flex-direction:column;gap:12px}.holidays-summary{flex-wrap:wrap;gap:12px}.holidays-table td,.holidays-table th{padding:10px 12px}.modal{margin:16px;max-width:100%}}.settings-page{margin:0 auto;max-width:1200px;padding:24px}.settings-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.settings-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0}.settings-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.settings-actions{display:flex;gap:12px}.settings-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.settings-card{padding:24px}.card-header-row{align-items:center;border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:12px}.card-header-row .card-title{border-bottom:none;margin:0;padding-bottom:0}.card-header-row .import-btn{font-size:12px;padding:6px 12px}.card-title{border-bottom:1px solid var(--border-primary);color:var(--text-primary);font-size:16px;font-weight:600;letter-spacing:.5px;margin:0 0 20px;padding-bottom:12px;text-transform:uppercase}.settings-list{display:flex;flex-direction:column;gap:20px}.setting-item{align-items:flex-start;display:flex;gap:24px;justify-content:space-between}.setting-info{flex:1 1;min-width:0}.setting-label{color:var(--text-primary);display:block;font-size:14px;font-weight:500;margin-bottom:4px;text-transform:capitalize}.setting-description{color:var(--text-secondary);font-size:12px;line-height:1.4;margin:0}.setting-control{flex-shrink:0;min-width:180px}.setting-input,.setting-select{background:var(--input-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:14px;padding:8px 12px;transition:border-color .2s;width:100%}.setting-input:focus,.setting-select:focus{border-color:#3b82f6;outline:none}.setting-textarea{background:var(--input-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-family:monospace;font-size:13px;min-height:80px;padding:8px 12px;resize:vertical;width:100%}.setting-textarea:focus{border-color:#3b82f6;outline:none}.password-input-wrapper{width:100%}.password-input-wrapper .setting-input{padding-right:40px}.toggle-password-btn{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:color .2s}.toggle-password-btn:hover{color:var(--text-primary)}.toggle-password-btn svg{height:18px;width:18px}.toggle-switch{display:inline-block;height:24px;position:relative;width:48px}.toggle-switch input{height:0;opacity:0;width:0}.slider{background-color:#cbd5e1;border:1px solid #94a3b8;border-radius:24px;bottom:0;cursor:pointer;left:0;right:0;top:0}.slider,.slider:before{position:absolute;transition:.3s}.slider:before{background-color:#fff;border-radius:50%;bottom:2px;box-shadow:0 2px 4px #00000026;content:"";height:18px;left:3px;width:18px}.toggle-switch input:checked+.slider{background-color:#3b82f6;border-color:#2563eb}.toggle-switch input:checked+.slider:before{transform:translateX(24px)}.working-days-selector{align-items:center;display:flex;flex-wrap:nowrap;gap:6px;min-height:36px}.day-checkbox{align-items:center;background:#f8fafc;border:2px solid #94a3b8;border-radius:6px;color:#475569;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:13px;font-weight:600;height:36px;justify-content:center;min-width:48px;padding:8px 12px;transition:all .2s ease;-webkit-user-select:none;user-select:none}.day-checkbox input{height:0;opacity:0;pointer-events:none;position:absolute;width:0}.day-checkbox span{pointer-events:none}.day-checkbox:hover{background:#eff6ff;border-color:#3b82f6;color:#3b82f6}.day-checkbox.checked{background:#3b82f6;border-color:#3b82f6;color:#fff}.empty-state{text-align:center}.empty-state svg{color:var(--text-secondary)}.empty-state h3{font-size:18px}.empty-state p{color:var(--text-secondary);margin:0 0 24px}@media (max-width:768px){.settings-page{padding:16px}.settings-header{flex-direction:column;gap:16px}.settings-grid{grid-template-columns:1fr}.setting-item{flex-direction:column;gap:8px}.setting-control{width:100%}.working-days-selector{flex-wrap:wrap}.day-checkbox{font-size:12px;min-width:42px;padding:6px 8px}}.sync-section{border-top:1px solid var(--border-primary);margin-top:24px;padding-top:24px}.sync-title{color:var(--text-primary);font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 16px;text-transform:uppercase}.sync-status{background:var(--bg-secondary);border-radius:8px;margin-bottom:16px;padding:16px}.sync-status-row{border-bottom:1px solid var(--border-primary);display:flex;justify-content:space-between;padding:8px 0}.sync-status-row:last-child{border-bottom:none}.sync-label{color:var(--text-secondary);font-size:13px}.sync-value{color:var(--text-primary);font-size:13px;font-weight:500}.sync-value.ready{color:#22c55e}.sync-value.not-ready{color:#f59e0b}.sync-actions{display:flex;gap:12px}.sync-actions button{flex:1 1}.task-types-page{margin:0 auto;max-width:1200px;padding:24px}.task-types-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.task-types-title h1{color:var(--text-color);font-size:24px;font-weight:600;margin:0}.task-types-title p{color:var(--text-secondary);font-size:14px;margin:4px 0 0}.alert,.header-actions{display:flex;gap:12px}.alert{align-items:center;border-radius:8px;margin-bottom:16px;padding:12px 16px}.alert svg{flex-shrink:0;height:20px;width:20px}.alert button{background:none;border:none;color:inherit;cursor:pointer;font-size:20px;margin-left:auto;opacity:.7}.alert button:hover{opacity:1}.alert-error{background:#ef44441a;border:1px solid #ef44444d;color:#ef4444}.alert-success{background:#22c55e1a;border:1px solid #22c55e4d;color:#22c55e}.task-types-filters{border-bottom:1px solid var(--border-color);display:flex;gap:24px;margin-bottom:16px;padding:16px 0}.filter-group,.filter-group label{align-items:center;display:flex;gap:8px}.filter-group label{color:var(--text-secondary);cursor:pointer;font-size:14px}.filter-group select{background:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:14px;padding:8px 12px}.filter-group input[type=checkbox]{cursor:pointer;height:16px;width:16px}.task-types-stats{color:var(--text-secondary);display:flex;font-size:14px;gap:24px;margin-bottom:16px;padding:12px 0}.task-types-stats strong{color:var(--text-color)}.task-types-table-wrapper{overflow-x:auto}.task-types-table{border-collapse:collapse;width:100%}.task-types-table td,.task-types-table th{border-bottom:1px solid var(--border-color);padding:12px 16px;text-align:left;vertical-align:middle}.task-types-table th{background:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.task-types-table tbody tr:hover{background:var(--bg-hover)}.task-types-table tbody tr.inactive{opacity:.6}.name-cell{min-width:200px}.task-name{color:var(--text-color);font-weight:500}.task-description{margin-top:4px}.code-badge,.task-description{color:var(--text-secondary);font-size:12px}.code-badge{background:var(--bg-secondary);border-radius:4px;display:inline-block;font-family:monospace;padding:2px 8px}.actions-cell{display:flex;gap:8px}.action-btn{background:#0000;border:none;border-radius:4px;cursor:pointer;padding:6px;transition:all .2s}.action-btn svg{height:16px;width:16px}.action-btn.edit{color:var(--primary-color)}.action-btn.edit:hover{background:#3b82f61a}.action-btn.delete{color:#ef4444}.action-btn.delete:hover{background:#ef44441a}.action-btn.deactivate{color:#f59e0b}.action-btn.deactivate:hover{background:#f59e0b1a}.action-btn.activate{color:#22c55e}.action-btn.activate:hover{background:#22c55e1a}.badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px}.badge-work{background:#3b82f61a;color:#3b82f6}.badge-leave{background:#a855f71a;color:#a855f7}.badge-active{background:#22c55e1a;color:#22c55e}.badge-inactive{background:#6b72801a;color:#6b7280}.empty-state{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:48px 24px}.empty-state svg{height:48px;width:48px}.empty-state p{font-size:14px;margin:0 0 16px}.no-data{text-align:center}.modal-overlay{background:#00000080;padding:24px}.modal{background:var(--card-bg);border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-close{background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;padding:4px}.modal-close:hover{background:var(--bg-hover);color:var(--text-color)}.modal-close svg{height:20px;width:20px}.form-group{margin-bottom:20px}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-group label{color:var(--text-color);font-size:14px;margin-bottom:8px}.form-group input[type=text],.form-group select,.form-group textarea{background:var(--input-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-color);font-size:14px;padding:10px 14px;transition:border-color .2s;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);outline:none}.form-group textarea{min-height:60px}.checkbox-group label{align-items:center;cursor:pointer;display:flex;gap:10px}.checkbox-group input[type=checkbox]{height:18px;width:18px}.checkbox-group small{color:var(--text-secondary);display:block;font-size:12px;margin-top:8px}@media (max-width:768px){.task-types-page{padding:16px}.task-types-header{flex-direction:column;gap:16px}.header-actions{justify-content:flex-end;width:100%}.task-types-filters{flex-direction:column;gap:12px}.task-types-stats{flex-wrap:wrap;gap:12px}.form-row{grid-template-columns:1fr}.modal{margin:16px;max-width:100%}}.assets-page{padding:24px}.assets-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:24px}.assets-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 4px}.assets-title p{color:var(--text-secondary);font-size:14px;margin:0}.assets-toolbar{border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:16px;padding:16px}.search-box{display:flex;gap:8px;min-width:300px}.search-input-wrapper{flex:1 1;position:relative}.search-input-wrapper .search-icon{color:var(--text-secondary);left:12px;position:absolute;top:50%;transform:translateY(-50%)}.search-input-wrapper input{padding-left:40px;width:100%}.filter-box{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.filter-select{border-radius:6px;padding:8px 12px}.assets-table-wrapper{overflow-x:auto}.assets-table{border-collapse:collapse;width:100%}.assets-table td,.assets-table th{border-bottom:1px solid var(--border-color);padding:12px 16px;text-align:left;vertical-align:middle}.assets-table th{background-color:var(--bg-secondary);color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.assets-table td{font-size:14px}.assets-table tr:hover{background-color:var(--bg-secondary)}.assets-table .inactive-row{opacity:.5}.link-button{text-decoration:underline}.link-button:hover{color:var(--primary-dark)}.text-muted{color:var(--text-secondary);font-style:italic}.icon-button.assign-btn:hover{color:#10b981}.modal-content.large-modal{max-width:900px}.form-section{margin-bottom:24px}.form-section:last-child{margin-bottom:0}.form-section h3{border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:14px;font-weight:600;margin:0 0 16px;padding-bottom:8px}.form-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.full-width{grid-column:1/-1}.form-group select,.form-group textarea{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:8px 12px}.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a;outline:none}.detail-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.detail-section{background-color:var(--bg-secondary);border-radius:8px;padding:16px}.detail-section h3{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 12px}.detail-row{border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:8px 0}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-secondary);font-size:13px}.detail-value{color:var(--text-primary);font-size:13px;font-weight:500;text-align:right}.password-field{align-items:center;display:flex;gap:8px}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{padding-right:40px}.password-toggle-btn{align-items:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:4px;position:absolute;right:10px}.password-toggle-btn:hover{color:var(--primary-color)}.password-toggle-btn svg{height:18px;width:18px}.reveal-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px}.reveal-btn:hover{color:var(--primary-color)}.return-info{background-color:var(--bg-secondary);border-radius:6px;font-size:14px;margin-bottom:16px;padding:12px}@media (max-width:768px){.assets-header{gap:16px}.assets-header,.assets-toolbar{flex-direction:column}.search-box{min-width:0;min-width:auto}.filter-box{width:100%}.filter-select{flex:1 1;min-width:0;min-width:auto}.modal-content.large-modal{max-width:100%}.detail-grid,.form-grid{grid-template-columns:1fr}}.asset-categories-page{padding:24px}.toolbar{border-bottom:1px solid var(--border-color);display:flex;gap:16px;padding:16px}.checkbox-label{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;gap:6px}.table-wrapper{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table td,.data-table th{border-bottom:1px solid var(--border-color);padding:12px 16px;text-align:left;vertical-align:middle}.data-table th{background-color:var(--bg-secondary);color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.data-table td{font-size:14px}.data-table tr:hover{background-color:var(--bg-secondary)}.data-table .inactive-row{opacity:.5}.data-table .font-medium{font-weight:500}.data-table code{background-color:var(--bg-secondary);border-radius:4px;font-size:12px;padding:2px 6px}.state-badge{color:#fff}.state-badge,.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:500;padding:4px 10px}.status-badge.active{background-color:#dcfce7;color:#16a34a}.status-badge.inactive{background-color:#f3f4f6;color:#6b7280}.color-preview{align-items:center;display:flex;gap:8px}.color-swatch{border:1px solid var(--border-color);border-radius:4px;height:20px;width:20px}.icon-button.delete-btn:hover{color:#ef4444}.modal-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background-color:var(--bg-primary);border-radius:12px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{font-size:18px;font-weight:600;margin:0}.close-button{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:24px;line-height:1}.close-button:hover{color:var(--text-primary)}.modal-body{padding:24px}.modal-footer{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.form-group{margin-bottom:16px}.form-group:last-child{margin-bottom:0}.form-group label{color:var(--text-secondary);display:block;font-size:13px;font-weight:500;margin-bottom:6px}.form-group textarea{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:8px 12px;resize:vertical;width:100%}.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #3b82f61a;outline:none}.color-input{align-items:center;display:flex;gap:8px}.color-input input[type=color]{border:1px solid var(--border-color);border-radius:6px;cursor:pointer;height:40px;padding:0;width:40px}.color-input input[type=text]{flex:1 1}.asset-logs-page{padding:24px}.page-header{align-items:flex-start;display:flex;justify-content:space-between}.page-title h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 4px}.page-title p{color:var(--text-secondary);font-size:14px;margin:0}.error-banner{align-items:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;display:flex;gap:12px;margin-bottom:16px;padding:12px 16px}.error-banner button{background:none;border:none;color:#dc2626;cursor:pointer;font-size:20px;margin-left:auto}.logs-toolbar{border-bottom:1px solid var(--border-color);display:flex;flex-wrap:wrap;gap:12px;padding:16px}.date-input,.filter-select{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:14px;min-width:150px;padding:8px 12px}.empty-state,.loading-state{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:60px 20px}.empty-state svg{height:64px;margin-bottom:16px;opacity:.5;width:64px}.empty-state h3{color:var(--text-primary);margin:0 0 8px}.empty-state p{margin:0}.log-item,.logs-list{padding:16px}.log-item{border-bottom:1px solid var(--border-color);display:flex;gap:16px}.log-item:last-child{border-bottom:none}.log-icon{align-items:center;background-color:var(--bg-secondary);border-radius:50%;display:flex;flex-shrink:0;height:40px;justify-content:center;width:40px}.action-icon{height:20px;width:20px}.action-icon.created{color:#10b981}.action-icon.updated{color:#3b82f6}.action-icon.deleted{color:#ef4444}.action-icon.assigned{color:#8b5cf6}.action-icon.returned{color:#f59e0b}.action-icon.state-changed{color:#06b6d4}.log-content{flex:1 1;min-width:0}.log-header{align-items:center;display:flex;gap:12px;margin-bottom:4px}.log-action{color:var(--text-primary);font-size:13px;font-weight:600}.log-asset{color:var(--primary-color);font-size:13px;font-weight:500}.log-details{color:var(--text-secondary);font-size:13px;margin-bottom:8px;word-break:break-word}.log-meta{color:var(--text-tertiary);display:flex;font-size:12px;gap:16px}.pagination{align-items:center;border-top:1px solid var(--border-color);display:flex;gap:16px;justify-content:center;padding:16px}.pagination button{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:14px;padding:8px 16px}.pagination button:hover:not(:disabled){background-color:var(--bg-secondary)}.pagination button:disabled{cursor:not-allowed;opacity:.5}.pagination span{color:var(--text-secondary);font-size:14px}.asset-assignments-page{padding:24px}.page-header{margin-bottom:24px}.header-content h1{color:var(--text-primary);font-size:24px;font-weight:600;margin:0 0 4px}.header-content p{color:var(--text-secondary);font-size:14px;margin:0}.filters-card{margin-bottom:24px;padding:16px!important}.filters-row{align-items:center;display:flex;flex-wrap:wrap;gap:16px}.search-box{flex:1 1;min-width:200px}.filter-select{background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:14px;min-width:150px;padding:10px 12px}.assignments-table-wrapper{overflow-x:auto}.assignments-table{border-collapse:collapse;width:100%}.assignments-table td,.assignments-table th{border-bottom:1px solid var(--border-color);padding:12px 16px;text-align:left;vertical-align:middle}.assignments-table th{background-color:var(--bg-secondary);color:var(--text-secondary);font-size:12px;font-weight:600;text-transform:uppercase}.assignments-table td{color:var(--text-primary);font-size:14px}.assignments-table tbody tr:hover{background-color:var(--bg-hover)}.link-button{background:none;border:none;color:var(--primary-color);cursor:pointer;font-size:14px;font-weight:500;padding:0}.link-button:hover{text-decoration:underline}.employee-info{display:flex;flex-direction:column}.employee-name{color:var(--text-primary);font-weight:500}.employee-email{color:var(--text-secondary);font-size:12px}.action-buttons{display:flex;gap:4px}.icon-button{background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;padding:6px;transition:all .2s}.icon-button svg{display:block;height:18px;width:18px}.icon-button:hover{background-color:var(--bg-secondary);color:var(--text-primary)}.icon-button.return-btn:hover{color:#3b82f6}.table-footer{border-top:1px solid var(--border-color);display:flex;justify-content:flex-end;padding:12px 16px}.total-count{color:var(--text-secondary);font-size:13px}.empty-state,.error-state,.loading-state,.permission-denied{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.empty-state svg,.error-state svg,.permission-denied svg{height:48px;margin-bottom:16px;opacity:.5;width:48px}.empty-state h3,.permission-denied h2{color:var(--text-primary);margin:0 0 8px}.empty-state p,.error-state p,.permission-denied p{margin:0}.error-state button{background-color:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;margin-top:16px;padding:8px 16px}@media (max-width:768px){.filters-row{align-items:stretch;flex-direction:column}.filter-select,.search-box{width:100%}}:root{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-hover:#f1f5f9;--bg-active:#e2e8f0;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--text-light:#94a3b8;--border-primary:#e2e8f0;--border-light:#f1f5f9;--accent-primary:#3b82f6;--accent-hover:#2563eb;--accent-dark:#1d4ed8;--accent-light:#eff6ff;--success:#10b981;--success-bg:#d1fae5;--warning:#f59e0b;--warning-bg:#fef3c7;--error:#ef4444;--error-bg:#fee2e2;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 8px -2px #0000000f,0 2px 4px -2px #0000000a;--shadow-lg:0 12px 24px -4px #00000014,0 4px 8px -2px #0000000a;--shadow-xl:0 24px 48px -12px #0000001f;--shadow-dropdown:0 12px 32px -4px #0000001f;--card-bg:#fff;--card-border:#e2e8f0;--input-bg:#fff;--input-border:#e2e8f0;--input-focus-border:#3b82f6;--modal-bg:#fff;--modal-overlay:#0f172a99;--sidebar-bg:#0f172a;--sidebar-text:#fff9;--sidebar-text-active:#60a5fa;--sidebar-hover-bg:#ffffff0f;--sidebar-active-bg:#3b82f626;--transition-fast:0.15s ease;--transition-normal:0.2s ease;--transition-slow:0.3s ease;--action-edit-bg:#eff6ff;--action-edit-color:#3b82f6;--action-edit-hover:#dbeafe;--action-key-bg:#fefce8;--action-key-color:#ca8a04;--action-key-hover:#fef9c3;--action-delete-bg:#fef2f2;--action-delete-color:#ef4444;--action-delete-hover:#fee2e2}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#1e293b;--bg-hover:#334155;--bg-active:#475569;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-light:#64748b;--border-primary:#334155;--border-light:#1e293b;--accent-primary:#60a5fa;--accent-hover:#3b82f6;--accent-dark:#3b82f6;--accent-light:#3b82f633;--success:#34d399;--success-bg:#10b98133;--warning:#fbbf24;--warning-bg:#f59e0b33;--error:#f87171;--error-bg:#ef444433;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 8px -2px #00000080;--shadow-lg:0 12px 24px -4px #00000080;--shadow-xl:0 24px 48px -12px #0009;--shadow-dropdown:0 12px 32px -4px #0009;--card-bg:#1e293b;--card-border:#334155;--input-bg:#0f172a;--input-border:#475569;--input-focus-border:#60a5fa;--modal-bg:#1e293b;--modal-overlay:#000000b3;--sidebar-bg:#020617;--sidebar-text:#fff9;--sidebar-text-active:#60a5fa;--sidebar-hover-bg:#ffffff14;--sidebar-active-bg:#3b82f633;--action-edit-bg:#3b82f626;--action-edit-color:#60a5fa;--action-edit-hover:#3b82f640;--action-key-bg:#ca8a0426;--action-key-color:#fbbf24;--action-key-hover:#ca8a0440;--action-delete-bg:#ef444426;--action-delete-color:#f87171;--action-delete-hover:#ef444440}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background-color:#f8fafc;background-color:var(--bg-primary);color:#1e293b;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5;transition:background-color .2s ease,color .2s ease;transition:background-color var(--transition-normal),color var(--transition-normal)}#root{min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f5f9;background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb{background:#94a3b8;background:var(--text-light);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#64748b;background:var(--text-muted)}::selection{background:#3b82f6;background:var(--accent-primary);color:#fff}:focus-visible{outline:2px solid #3b82f6;outline:2px solid var(--accent-primary);outline-offset:2px}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-slideUp{animation:slideUp .3s ease-out}.animate-slideDown{animation:slideDown .3s ease-out}
/*# sourceMappingURL=main.644d4bb6.css.map*/