:root{--primary: #f97316;--primary-dark: #ea580c;--primary-light: #fff7ed;--primary-gradient: linear-gradient(135deg, #f97316, #fb923c);--bg: #f4f5f7;--bg-card: #ffffff;--bg-sidebar: #1f2224;--bg-sidebar-hover: #2c2f32;--bg-input: #f9fafb;--bg-table-hover: #fafafa;--text: #1a1d1f;--text-secondary: #6b7280;--text-sidebar: #9ca3af;--text-sidebar-active: #ffffff;--text-muted: #9ca3af;--border: #e5e7eb;--shadow: 0 1px 4px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 16px rgba(0,0,0,.08), 0 2px 6px rgba(0,0,0,.05);--shadow-lg: 0 12px 40px rgba(0,0,0,.12);--radius: 14px;--radius-sm: 9px;--success: #22c55e;--warning: #f59e0b;--danger: #ef4444;--info: #3b82f6;--sidebar-width: 260px;--header-height: 64px}.dark{--bg: #111315;--bg-card: #1c1f22;--bg-sidebar: #0d0f10;--bg-sidebar-hover: #1a1d1f;--bg-input: #242729;--bg-table-hover: #1c1f22;--text: #f3f4f6;--text-secondary: #9ca3af;--text-muted: #6b7280;--border: #2c2f32;--shadow: 0 1px 4px rgba(0,0,0,.5);--shadow-md: 0 4px 16px rgba(0,0,0,.5);--primary-light: #2d1600}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--primary);text-decoration:none}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);flex-shrink:0;display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;transition:transform .3s;box-shadow:3px 0 24px #0000002e}.sidebar-brand{padding:24px 22px 20px;border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;gap:12px}.sidebar-brand .logo{width:40px;height:40px;background:transparent url(/assets/logo-B0q_HGtw.png) no-repeat center/contain;font-size:0;border-radius:0}.sidebar-brand h2{font-size:18px;color:#fff;font-weight:800;letter-spacing:-.3px}.sidebar-brand span{font-size:11px;color:var(--text-sidebar);display:block;margin-top:-1px}.sidebar-nav{flex:1;padding:14px 10px;overflow-y:auto}.sidebar-nav a{display:flex;align-items:center;gap:11px;padding:11px 14px;color:var(--text-sidebar);border-radius:var(--radius-sm);font-size:13.5px;font-weight:500;transition:all .2s;text-decoration:none;margin-bottom:3px;letter-spacing:.1px}.sidebar-nav a:hover{background:var(--bg-sidebar-hover);color:#fff;text-decoration:none}.sidebar-nav a.active{background:var(--primary-gradient);color:#fff;box-shadow:0 4px 14px #f9731659}.sidebar-nav a .nav-icon{font-size:15px;width:20px;text-align:center;opacity:.85}.sidebar-nav .nav-label{flex:1}.sidebar-logo-wrap{width:40px;height:40px;flex-shrink:0;background:#ffffff1f;border-radius:10px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.2);overflow:hidden}.sidebar-logo-img{width:28px;height:28px;object-fit:contain;filter:brightness(0) invert(1)}.sidebar-footer{padding:16px 18px;border-top:1px solid rgba(255,255,255,.07);display:flex;align-items:center;justify-content:space-between}.sidebar-footer .user-info{display:flex;align-items:center;gap:10px}.sidebar-footer .avatar{width:36px;height:36px;border-radius:50%;background:var(--primary-gradient);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;box-shadow:0 2px 8px #f9731659}.sidebar-footer .user-name{color:#fff;font-size:13px;font-weight:600}.sidebar-footer .user-role{color:var(--text-sidebar);font-size:10.5px;margin-top:1px}.sidebar-footer .logout-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.08);color:var(--text-sidebar);cursor:pointer;font-size:12px;font-weight:600;padding:6px 12px;border-radius:var(--radius-sm);transition:all .2s}.sidebar-footer .logout-btn:hover{color:var(--danger);background:#ef44441f;border-color:#ef444440}.main-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.main-header{display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:var(--header-height);background:var(--bg-card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;box-shadow:0 1px 0 var(--border)}.main-header h1{font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.2px}.main-header .header-actions{display:flex;align-items:center;gap:14px}.main-body{padding:28px 32px;flex:1}.main-body>*{animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.main-header:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--primary) 0%,transparent 60%);opacity:.5}.theme-toggle{position:relative;width:44px;height:24px;background:#d1d5db;border-radius:12px;cursor:pointer;border:none;transition:background .3s;flex-shrink:0}.theme-toggle:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .3s;box-shadow:0 1px 4px #0003}.theme-toggle.dark{background:var(--primary)}.theme-toggle.dark:after{transform:translate(20px)}.theme-toggle .ti{font-size:10px;position:absolute;top:50%;transform:translateY(-50%);z-index:1;pointer-events:none;line-height:1}.theme-toggle .ti.sun{left:5px;color:#fbbf24}.theme-toggle .ti.moon{right:5px;color:#f8fafc}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 26px;transition:box-shadow .25s,border-color .25s}.card:hover{box-shadow:var(--shadow-md);border-color:#f0d9cc}.dark .card:hover{border-color:#f9731633}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.card-title{font-size:14.5px;font-weight:700;letter-spacing:-.2px;color:var(--text)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px;margin-bottom:24px}.stat-card{padding:22px 24px;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow);transition:box-shadow .25s,transform .2s,border-color .25s;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--primary-gradient);opacity:0;transition:opacity .25s}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card:hover:before{opacity:1}.stat-card .stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:14px;font-weight:700}.stat-card .stat-value{font-size:30px;font-weight:800;line-height:1.1;letter-spacing:-.5px;color:var(--text)}.stat-card .stat-label{font-size:11px;color:var(--text-secondary);margin-top:6px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.stat-card.primary .stat-icon{background:#fff7ed;color:var(--primary)}.stat-card.green .stat-icon{background:#dcfce7;color:#16a34a}.stat-card.blue .stat-icon{background:#dbeafe;color:#2563eb}.stat-card.yellow .stat-icon{background:#fef9c3;color:#ca8a04}.dark .stat-card.primary .stat-icon{background:#f9731626}.dark .stat-card.green .stat-icon{background:#22c55e1f}.dark .stat-card.blue .stat-icon{background:#3b82f61f}.dark .stat-card.yellow .stat-icon{background:#eab3081f}.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;border:1px solid transparent;cursor:pointer;transition:all .2s;text-decoration:none;line-height:1.4;white-space:nowrap}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 2px 8px #f9731640}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark);box-shadow:0 4px 16px #f9731659;transform:translateY(-1px)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-input);border-color:var(--text-secondary)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#dc2626;box-shadow:0 4px 12px #ef44444d}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-sm{padding:5px 12px;font-size:12px}.btn-icon{padding:6px;min-width:32px;justify-content:center}.form-group{margin-bottom:16px}.form-label{display:block;font-size:11.5px;font-weight:700;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.form-input,.form-select,.form-textarea{width:100%;padding:10px 14px;font-size:14px;font-family:inherit;background:var(--bg-input);border:1.5px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color .2s,box-shadow .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #f9731626}.form-input::placeholder{color:var(--text-muted)}.form-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}.form-textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.table-container{overflow-x:auto;border-radius:var(--radius-sm)}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}table th{background:#f8f9fb;color:var(--text-secondary);font-weight:700;text-align:left;padding:11px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--border);white-space:nowrap}.dark table th{background:var(--bg-input)}table td{padding:12px 16px;border-bottom:1px solid var(--border);vertical-align:middle}table tr:last-child td{border-bottom:none}table tr:hover td{background:var(--bg-table-hover)}table .status-badge{display:inline-flex;padding:3px 12px;border-radius:20px;font-size:11px;font-weight:700;letter-spacing:.2px}.status-active{background:#dcfce7;color:#16a34a}.status-inactive{background:#fee2e2;color:#dc2626}.status-pending{background:#fef9c3;color:#a16207}.status-approved{background:#dcfce7;color:#16a34a}.status-rejected{background:#fee2e2;color:#dc2626}.status-present{background:#dcfce7;color:#16a34a}.status-absent{background:#fee2e2;color:#dc2626}.status-late{background:#fef3c7;color:#d97706}.status-early_checkout{background:#dbeafe;color:#2563eb}.status-half_day{background:#f3e8ff;color:#9333ea}.dark .status-active,.dark .status-approved,.dark .status-present{background:#22c55e26;color:#4ade80}.dark .status-inactive,.dark .status-rejected,.dark .status-absent{background:#ef444426;color:#f87171}.dark .status-pending,.dark .status-late{background:#eab3081f;color:#facc15}.dark .status-early_checkout{background:#3b82f61f;color:#60a5fa}.dark .status-half_day{background:#a855f71f;color:#c084fc}.table-actions{display:flex;gap:4px}.table-empty{text-align:center;padding:48px 20px;color:var(--text-muted);font-size:14px}.table-empty .empty-icon{font-size:32px;margin-bottom:10px;opacity:.5}.table-wrap{overflow-x:auto;border-radius:var(--radius-sm)}.photo-preview{width:60px;height:60px;border-radius:50%;object-fit:cover;background:var(--bg-input)}.photo-input{display:flex;align-items:center;gap:16px}.photo-input input[type=file]{font-size:13px;color:var(--text-secondary)}.photo-input input[type=file]::file-selector-button{padding:6px 14px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-input);color:var(--text);font-weight:500;font-size:12px;cursor:pointer;transition:all .2s}.photo-input input[type=file]::file-selector-button:hover{background:var(--bg-table-hover);border-color:var(--primary)}.modal-overlay{position:fixed;inset:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;max-width:580px;max-height:85vh;overflow-y:auto;padding:28px;animation:modalIn .22s ease;border-top:3px solid var(--primary)}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.modal-header h2{font-size:18px;font-weight:700}.modal-close{background:none;border:none;font-size:20px;cursor:pointer;color:var(--text-secondary);padding:4px 8px;border-radius:6px;transition:all .2s}.modal-close:hover{background:#fff7ed;color:var(--primary)}.dark .modal-close:hover{background:#f973161f}.modal-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:24px;padding-top:16px;border-top:1px solid var(--border)}.search-bar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search-bar .form-input{max-width:280px}.search-bar .form-select{max-width:200px}.login-page{min-height:100vh;display:flex;overflow:hidden}.login-left{flex:1;background:linear-gradient(145deg,#1a1d1f,#2a1a0a,#1a1d1f);display:flex;flex-direction:column;justify-content:space-between;padding:48px 52px;position:relative;overflow:hidden}.orb{position:absolute;border-radius:50%;filter:blur(60px);pointer-events:none;animation:orbFloat 8s ease-in-out infinite}.orb-1{width:340px;height:340px;background:radial-gradient(circle at 30%,#f973168c,#ea580c26);top:-60px;left:-80px;animation-delay:0s}.orb-2{width:260px;height:260px;background:radial-gradient(circle,rgba(251,146,60,.4),transparent 70%);bottom:80px;right:-60px;animation-delay:-3s}.orb-3{width:180px;height:180px;background:radial-gradient(circle,rgba(249,115,22,.25),transparent 70%);top:55%;left:45%;animation-delay:-5s}@keyframes orbFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-24px) scale(1.04)}}.login-left-content{position:relative;z-index:1;flex:1}.login-brand{display:flex;align-items:center;gap:14px;margin-bottom:52px}.login-brand-logo{width:50px;height:50px;background:#ffffff1f;border-radius:14px;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-brand-logo img{width:34px;height:34px;object-fit:contain;filter:brightness(0) invert(1)}.login-brand span{font-size:22px;font-weight:800;color:#fff;letter-spacing:.5px}.login-headline{font-size:44px;font-weight:800;color:#fff;line-height:1.18;letter-spacing:-.8px;margin-bottom:18px}.login-headline-accent{background:linear-gradient(90deg,#f97316,#fb923c,#fdba74);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-sub{font-size:15px;color:#ffffff8c;line-height:1.7;margin-bottom:44px}.login-features{display:flex;flex-direction:column;gap:20px}.login-feature-item{display:flex;align-items:flex-start;gap:14px}.login-feature-icon{width:42px;height:42px;flex-shrink:0;background:#f973162e;border:1px solid rgba(249,115,22,.35);border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fb923c;box-shadow:0 4px 12px #f9731640,inset 0 1px #ffffff1a}.login-feature-title{font-size:14px;font-weight:700;color:#fff;margin-bottom:2px}.login-feature-desc{font-size:12.5px;color:#ffffff73}.login-stats-bar{display:flex;align-items:center;gap:28px;padding:20px 24px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:16px;position:relative;z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.login-stat{display:flex;flex-direction:column;align-items:center}.login-stat-num{font-size:22px;font-weight:800;color:#fb923c;line-height:1}.login-stat span:last-child{font-size:11px;color:#ffffff73;margin-top:3px}.login-stat-div{width:1px;height:32px;background:#ffffff1f}.login-right{width:480px;flex-shrink:0;background:#fff;display:flex;align-items:center;justify-content:center;padding:48px 44px;position:relative}.dark .login-right{background:#111315}.login-theme-btn{position:absolute;top:24px;right:24px;width:38px;height:38px;border-radius:50%;border:1.5px solid #e5e7eb;background:#f9fafb;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s}.login-theme-btn:hover{border-color:var(--primary);color:var(--primary);background:#fff7ed;box-shadow:0 2px 8px #f9731633}.dark .login-theme-btn{border-color:#2c2f32;background:#1c1f22;color:#9ca3af}.dark .login-theme-btn:hover{border-color:var(--primary);color:var(--primary);background:#f9731614}.login-card{width:100%;position:relative}.login-card-accent{height:4px;background:var(--primary-gradient);border-radius:4px;margin-bottom:32px}.login-card-header{margin-bottom:28px}.login-card-header h1{font-size:28px;font-weight:800;color:#1a1d1f;letter-spacing:-.5px}.dark .login-card-header h1{color:#f3f4f6}.login-card-header p{font-size:14px;color:#6b7280;margin-top:5px}.input-icon-wrap{position:relative}.login-submit-btn{width:100%;padding:13px;font-size:14.5px;font-weight:700;justify-content:center;margin-top:8px;letter-spacing:.3px;border-radius:10px}.btn-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}.login-card .form-group{margin-bottom:18px}.login-card .form-label{color:#6b7280}.dark .login-card .form-label{color:#9ca3af}.login-card .form-input{background:#f9fafb;border-color:#e5e7eb;padding-top:11px;padding-bottom:11px;color:#1a1d1f;font-size:14px}.dark .login-card .form-input{background:#1c1f22;border-color:#2c2f32;color:#f3f4f6}.login-card .form-input:focus{background:#fff}.dark .login-card .form-input:focus{background:#242729}.login-error{background:#fee2e2;color:#dc2626;font-size:13px;padding:10px 14px;border-radius:8px;margin-bottom:16px;display:flex;align-items:center;gap:8px;border-left:3px solid #dc2626}.dark .login-error{background:#ef44441f}.login-footer{text-align:center;margin-top:24px;font-size:12px;color:#9ca3af}@media(max-width:900px){.login-left{display:none}.login-right{width:100%}}.loading-container{display:flex;align-items:center;justify-content:center;min-height:60vh}.spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{padding:12px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:8px;animation:slideIn .3s ease;min-width:220px}.toast.success{background:var(--success);color:#fff}.toast.error{background:var(--danger);color:#fff}.toast.info{background:var(--primary);color:#fff}@keyframes slideIn{0%{transform:translate(110%);opacity:0}to{transform:translate(0);opacity:1}}.notif-bell{position:relative;cursor:pointer;font-size:18px;padding:6px;color:var(--text-secondary);border-radius:8px;transition:all .2s}.notif-bell:hover{color:var(--primary);background:var(--primary-light)}.notif-badge{position:absolute;top:-2px;right:-4px;background:var(--danger);color:#fff;font-size:9px;font-weight:700;min-width:16px;height:16px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:2px solid var(--bg-card)}.notif-dropdown{position:absolute;top:68px;right:24px;z-index:999;width:380px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:420px;overflow-y:auto;animation:notifIn .2s ease;border-top:2px solid var(--primary)}@keyframes notifIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notif-dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-card);z-index:1}.notif-dropdown-header strong{font-size:14px}.notif-empty{padding:32px 16px;text-align:center;color:var(--text-secondary);font-size:13px}.notif-item{padding:12px 16px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .2s}.notif-item:hover{background:var(--bg-table-hover)}.notif-item.unread{border-left:3px solid var(--primary);background:#f9731608}.dark .notif-item.unread{background:#f9731612}.notif-title{font-size:13px;font-weight:600;margin-bottom:3px}.notif-message{font-size:12px;color:var(--text-secondary);line-height:1.4}.notif-time{font-size:10px;color:var(--text-muted);margin-top:4px}.emp-dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}@media(max-width:768px){.emp-dash-grid{grid-template-columns:1fr}}.checkin-card{display:flex;flex-direction:column;align-items:center;padding:36px 28px;text-align:center}.checkin-btn-container{margin:28px 0;position:relative}.checkin-circle-btn{width:154px;height:154px;border-radius:50%;background:var(--primary-gradient);border:10px solid #fff7ed;color:#fff;font-size:15px;font-weight:800;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;box-shadow:0 10px 32px #f9731666;transition:transform .25s,box-shadow .25s;line-height:1.3;letter-spacing:.3px}.checkin-circle-btn:hover:not(:disabled){transform:scale(1.06);box-shadow:0 16px 40px #f9731680}.checkin-circle-btn:active:not(:disabled){transform:scale(.97)}.checkin-circle-btn:disabled{background:#e5e7eb;border-color:#f3f4f6;box-shadow:none;cursor:not-allowed;color:#9ca3af}.dark .checkin-circle-btn:disabled{background:#374151;border-color:#1f2937;color:#6b7280}.checkin-circle-btn.checked-out{background:#ef4444;border-color:#fca5a5;box-shadow:0 10px 25px #ef444459}.dark .checkin-circle-btn{border-color:#f9731633}.checked-in-badge{background:#dcfce7;color:#15803d;font-weight:600;padding:6px 18px;border-radius:20px;font-size:12px;display:inline-flex;align-items:center;gap:6px}.dark .checked-in-badge{background:#22c55e26;color:#4ade80}.checkin-stats{display:grid;grid-template-columns:1fr 1fr;width:100%;max-width:400px;gap:12px;margin-top:22px}.checkin-stat-item{background:var(--bg-input);padding:14px;border-radius:var(--radius-sm);border:1px solid var(--border);transition:border-color .2s}.checkin-stat-item:hover{border-color:var(--primary)}.checkin-stat-item span{display:block}.checkin-stat-item .label{font-size:10px;color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px;letter-spacing:.3px}.checkin-stat-item .value{font-size:18px;font-weight:700;color:var(--primary)}.chart-container{margin-top:20px;height:220px;width:100%}.chart-bar-present{fill:var(--primary)}.chart-bar-late{fill:var(--danger)}.skeleton{background:linear-gradient(90deg,var(--bg-input) 25%,var(--border) 50%,var(--bg-input) 75%);background-size:200% 100%;animation:loading-skeleton 1.4s infinite;border-radius:4px}@keyframes loading-skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}.holiday-item{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.holiday-item:last-child{border-bottom:none}.holiday-date{font-size:11.5px;font-weight:800;color:var(--primary);min-width:88px;background:#fff7ed;padding:4px 8px;border-radius:6px;text-align:center}.dark .holiday-date{background:#f973161f}.holiday-title{font-size:14px;font-weight:600}.holiday-desc{font-size:12px;color:var(--text-secondary)}.recent-hire-item{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.recent-hire-item:last-child{border-bottom:none}.recent-hire-avatar{width:36px;height:36px;border-radius:50%;background:#fff7ed;color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;border:2px solid rgba(249,115,22,.2)}.recent-hire-info{flex:1}.recent-hire-name{font-size:14px;font-weight:600}.recent-hire-meta{font-size:11px;color:var(--text-secondary)}.recent-hire-code{font-size:11px;color:var(--primary);font-weight:700}.alert-item{padding:12px 0;border-bottom:1px solid var(--border)}.alert-item:last-child{border-bottom:none}.alert-title{font-size:13px;font-weight:700}.alert-message{font-size:12px;color:var(--text-secondary);margin-top:3px}.alert-time{font-size:10px;color:var(--text-muted);margin-top:4px}.sidebar-toggle{display:none;background:none;border:none;font-size:20px;color:var(--text);cursor:pointer;padding:4px}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:block}.main-content{margin-left:0}.main-header{padding:0 16px}.main-body{padding:16px}.stats-grid{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.search-bar{flex-direction:column;align-items:stretch}.search-bar .form-input,.search-bar .form-select{max-width:100%}.login-card{padding:28px 22px}.notif-dropdown{right:8px;width:calc(100vw - 16px)}}.hol-grid{display:grid;grid-template-columns:1fr 380px;gap:18px;margin-bottom:18px}@media(max-width:900px){.hol-grid{grid-template-columns:1fr}}.hol-cal-card{padding:20px 22px}.hol-cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.hol-cal-title{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:800;color:var(--text);letter-spacing:-.3px}.hol-nav-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.hol-nav-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.hol-cal-days-row{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:6px}.hol-cal-day-name{text-align:center;font-size:11px;font-weight:700;color:var(--text-muted);text-transform:uppercase;padding:6px 0;letter-spacing:.4px}.hol-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.hol-cal-cell{position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;cursor:default;transition:background .15s;min-height:42px}.hol-cal-cell:hover{background:var(--bg-input)}.hol-cal-empty{pointer-events:none}.hol-cal-num{font-size:13px;font-weight:500;color:var(--text);line-height:1}.hol-cal-weekend .hol-cal-num{color:var(--text-secondary)}.hol-cal-today{background:var(--primary)!important;box-shadow:0 4px 12px #f9731659}.hol-cal-today .hol-cal-num{color:#fff!important;font-weight:800}.hol-cal-today .hol-cal-dot{background:#fffc!important}.hol-cal-holiday{background:#fff7ed;border:1.5px solid rgba(249,115,22,.3);cursor:pointer}.dark .hol-cal-holiday{background:#f973161a;border-color:#f9731640}.hol-cal-holiday:hover{background:#ffedd5!important}.dark .hol-cal-holiday:hover{background:#f973162e!important}.hol-cal-holiday .hol-cal-num{color:var(--primary);font-weight:700}.hol-cal-dot{width:5px;height:5px;border-radius:50%;background:var(--primary);margin-top:3px;flex-shrink:0}.hol-cal-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#1a1d1f;color:#fff;padding:7px 12px;border-radius:8px;font-size:12px;white-space:nowrap;z-index:10;box-shadow:0 4px 16px #0000004d;display:flex;flex-direction:column;gap:2px;pointer-events:none}.hol-cal-tooltip strong{font-size:12.5px}.hol-cal-tooltip span{font-size:11px;color:#ffffffa6}.hol-cal-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#1a1d1f}.hol-cal-legend{display:flex;align-items:center;gap:18px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.hol-legend-item{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-secondary)}.hol-legend-dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}.hol-legend-holiday{background:#fb923c}.hol-legend-today{background:var(--primary);border-radius:50%}.hol-legend-weekend{background:var(--bg-input);border:1px solid var(--border)}.hol-upcoming-card{padding:20px}.hol-upcoming-item{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--border)}.hol-upcoming-item:last-child{border-bottom:none}.hol-upcoming-date{display:flex;flex-direction:column;align-items:center;min-width:50px;background:var(--primary-light);border:1px solid rgba(249,115,22,.2);border-radius:10px;padding:8px 6px;box-shadow:0 3px 8px #f9731626,inset 0 1px #fff9}.dark .hol-upcoming-date{background:#f973161f;box-shadow:0 3px 8px #f973161f,inset 0 1px #ffffff0f}.hol-udate-num{font-size:20px;font-weight:800;color:var(--primary);line-height:1}.hol-udate-mon{font-size:10px;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.4px}.hol-udate-day{font-size:9.5px;color:var(--text-muted);margin-top:2px}.hol-upcoming-info{flex:1;min-width:0}.hol-upcoming-title{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hol-upcoming-desc{font-size:12px;color:var(--text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hol-upcoming-actions{display:flex;gap:4px;flex-shrink:0}.input-icon-wrap{position:relative;display:inline-flex;width:100%}.input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.form-input-icon{padding-left:38px!important}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:flex!important}.main-content{margin-left:0}.main-header{padding:0 16px}.main-body{padding:16px}.stats-grid{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.search-bar{flex-direction:column;align-items:stretch}.search-bar .form-input,.search-bar .form-select{max-width:100%}.notif-dropdown{right:8px;width:calc(100vw - 16px)}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}}.ist-badge{display:inline-flex;align-items:center;gap:5px;background:var(--primary-light);color:var(--primary);font-size:10.5px;font-weight:700;padding:3px 10px;border-radius:20px;border:1px solid rgba(249,115,22,.2);margin-bottom:6px;letter-spacing:.2px}.ist-badge-sm{font-size:10px;font-weight:700;color:var(--primary);background:var(--primary-light);padding:2px 8px;border-radius:10px}.checkin-date{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.checkin-clock{font-size:34px;font-weight:800;letter-spacing:-1px;margin:6px 0 4px;font-variant-numeric:tabular-nums}.att-banner{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:8px;font-size:12.5px;font-weight:600;margin:6px 0;width:100%;text-align:left}.att-banner-break{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.att-banner-evening{background:#fce7f3;color:#9d174d;border:1px solid #fbcfe8}.att-banner-checkout{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.att-banner-absent{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.dark .att-banner-break{background:#fbbf241f;color:#fbbf24;border-color:#fbbf2440}.dark .att-banner-evening{background:#f472b61a;color:#f472b6;border-color:#f472b633}.dark .att-banner-checkout{background:#34d3991a;color:#34d399;border-color:#34d39933}.dark .att-banner-absent{background:#ef44441f;color:#f87171;border-color:#ef444433}.att-countdown{display:flex;align-items:center;gap:7px;background:var(--bg-input);border:1px solid var(--border);border-radius:8px;padding:7px 14px;font-size:12px;color:var(--text-secondary);margin:6px 0;width:100%}.att-countdown strong{color:var(--primary);font-size:14px;font-variant-numeric:tabular-nums;margin-left:auto}.checkin-progress-wrap{width:100%;height:6px;background:var(--border);border-radius:3px;overflow:hidden;position:relative;margin:8px 0 2px}.checkin-progress-bar{height:100%;background:var(--primary-gradient);border-radius:3px;transition:width .5s ease}.checkin-progress-label{font-size:10px;color:var(--text-muted);display:block;text-align:center;margin-top:2px}.checkin-circle-btn.break-mode{background:linear-gradient(135deg,#f59e0b,#fbbf24);border-color:#fef3c7;box-shadow:0 10px 28px #f59e0b66;cursor:not-allowed}.checkin-circle-btn.break-evening{background:linear-gradient(135deg,#ec4899,#f472b6);border-color:#fce7f3;box-shadow:0 10px 28px #ec489959}.dark .checkin-circle-btn.break-mode{border-color:#f59e0b40}.dark .checkin-circle-btn.break-evening{border-color:#ec489940}.att-time-row{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 4px;justify-content:center}.att-time-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:20px;font-size:12px;font-weight:600}.att-time-in{background:#dcfce7;color:#15803d}.att-time-out{background:#dbeafe;color:#1d4ed8}.dark .att-time-in{background:#22c55e26;color:#4ade80}.dark .att-time-out{background:#3b82f626;color:#60a5fa}.late-tag{background:#fef3c7;color:#b45309;border-radius:10px;padding:1px 7px;font-size:10px;margin-left:4px}.hours-tag{background:#ffffff59;border-radius:10px;padding:1px 7px;font-size:10px;margin-left:4px}.break-info-list{display:flex;flex-direction:column;gap:4px;margin:8px 0;width:100%}.break-info-row{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--text-secondary);background:var(--bg-input);border-radius:6px;padding:5px 10px;border:1px solid var(--border)}.break-info-row strong{color:var(--text)}.att-schedule-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}@media(max-width:600px){.att-schedule-grid{grid-template-columns:1fr}}.att-sch-item{display:flex;flex-direction:column;gap:2px;background:var(--bg-input);border-radius:8px;padding:10px 12px;border:1px solid var(--border)}.att-sch-label{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.att-sch-value{font-size:13.5px;font-weight:700;color:var(--text)}.att-sch-note{font-size:11px;color:var(--text-muted)}.att-cfg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.att-cfg-section{background:var(--bg-input);border-radius:10px;padding:16px;border:1px solid var(--border)}.att-cfg-section-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--primary);text-transform:uppercase;letter-spacing:.4px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.att-cfg-summary{display:flex;align-items:flex-start;gap:8px;background:var(--primary-light);border:1px solid rgba(249,115,22,.2);border-radius:8px;padding:10px 14px;font-size:12px;color:var(--text-secondary);margin-top:16px;flex-wrap:wrap;line-height:1.8}.dark .att-cfg-summary{background:#f9731614}.att-cfg-summary strong{color:var(--text)}.form-hint{display:block;font-size:10.5px;color:var(--text-muted);margin-top:3px}
