@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--primary:#1a56db;--primary-dark:#1241b0;--primary-light:#ebf0ff;--success:#057a55;--success-light:#e3faf0;--warning:#b45309;--warning-light:#fef3c7;--danger:#b91c1c;--danger-light:#fee2e2;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--info:#0891b2;--info-light:#e0f7fa;--sidebar-width:240px;--topbar-height:60px;--font:"Inter", system-ui, sans-serif;--mono:"JetBrains Mono", monospace;--radius:8px;--radius-lg:12px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012, 0 2px 4px #0000000d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px}body{font-family:var(--font);background:var(--gray-100);color:var(--gray-800);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}#root{min-height:100vh}button,input{font-family:inherit}.app-shell{min-height:100vh;display:flex;overflow-x:hidden}.sidebar{width:var(--sidebar-width,240px);background:var(--gray-900);z-index:100;flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid #ffffff14;min-height:72px;padding:16px 20px}.brand-logo{color:#fff;letter-spacing:-.2px;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:700;overflow:hidden}.sidebar-brand-logo-wrap{margin-bottom:8px}.sidebar-brand-logo-box{background:#fff;border-radius:8px;max-width:180px;padding:6px 10px;display:block}.sidebar-brand-logo-img{object-fit:contain;width:auto;max-width:160px;height:auto;max-height:44px;display:block}.brand-logo i{color:var(--primary)}.brand-role{color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;font-size:11px}.sidebar-nav{flex:1;padding:12px 0}.nav-section{letter-spacing:.08em;text-transform:uppercase;color:var(--gray-500);padding:14px 20px 4px;font-size:10px;font-weight:600}.nav-link{width:100%;color:var(--gray-400);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:10px;padding:9px 20px;font-family:inherit;font-size:13.5px;text-decoration:none;transition:all .15s;display:flex}.nav-link i{text-align:center;flex-shrink:0;width:16px}.nav-link:hover{color:#fff;background:#ffffff0d}.nav-link.active{color:#fff;border-left-color:var(--primary);background:#1a56db33}.nav-link-danger{color:#f87171}.nav-link-danger:hover{color:#fca5a5;background:#ef44441a}.main-wrapper{margin-left:var(--sidebar-width,240px);flex-direction:column;flex:1;min-width:0;min-height:100vh;transition:margin .25s;display:flex;overflow-x:hidden}.topbar{height:var(--topbar-height,60px);border-bottom:1px solid var(--gray-200);z-index:50;background:#fff;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.topbar-left{align-items:center;gap:14px;display:flex}.sidebar-toggle{cursor:pointer;color:var(--gray-500);border-radius:var(--radius);background:0 0;border:none;padding:6px;font-size:16px;transition:background .15s;display:none}.sidebar-toggle:hover{background:var(--gray-100)}.page-title{color:var(--gray-900);font-size:16px;font-weight:600}.topbar-right{align-items:center;gap:12px;display:flex}.topbar-user{align-items:center;gap:10px;display:flex}.avatar-sm{background:var(--primary-light);width:34px;height:34px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.user-name{font-size:13px;font-weight:500}.user-role{color:var(--gray-500);font-size:11px}.content{flex:1;min-width:0;padding:24px;overflow-x:hidden}.sidebar-backdrop{display:none}@media (width<=768px){.sidebar{transform:translateX(calc(-1 * var(--sidebar-width,240px)))}.sidebar.open{transform:translate(0)}.main-wrapper{margin-left:0}.sidebar-toggle{display:block}.sidebar-backdrop{z-index:90;cursor:pointer;background:#00000073;border:none;display:block;position:fixed;inset:0}}.login-page{background:var(--gray-100);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.login-wrap{width:100%;max-width:420px}.login-logo{text-align:center;margin-bottom:32px}.login-logo h1{color:var(--gray-900);font-size:26px;font-weight:700}.login-logo h1 i{color:var(--primary)}.login-logo p{color:var(--gray-500);margin-top:4px;font-size:13px}.login-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#fff;padding:32px}.login-card h2{color:var(--gray-900);margin-bottom:4px;font-size:18px;font-weight:600}.login-card .sub{color:var(--gray-500);margin-bottom:24px;font-size:13px}.error-msg,.warning-msg{border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.error-msg{background:var(--danger-light);color:var(--danger);border:1px solid #fca5a5}.warning-msg{color:#92400e;background:#fffbeb;border:1px solid #fde68a}.form-control{border:1px solid var(--gray-300);border-radius:var(--radius);width:100%;color:var(--gray-800);background:#fff;padding:9px 12px;font-size:13.5px;transition:border .15s,box-shadow .15s}.form-control:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a56db26}.pwd-wrap{position:relative}.pwd-wrap .form-control{padding-right:40px}.pwd-toggle{cursor:pointer;color:var(--gray-400);background:0 0;border:none;padding:4px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.pwd-toggle:hover{color:var(--primary)}.btn{border-radius:var(--radius);cursor:pointer;border:1px solid #0000;align-items:center;gap:7px;padding:8px 16px;font-size:13.5px;font-weight:500;transition:all .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.login-footer{text-align:center;color:var(--gray-400);margin-top:20px;font-size:12px}.attendance-toolbar{border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;margin-bottom:16px;padding:14px 18px}.attendance-toolbar-form{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.attendance-toolbar-form .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);color:var(--gray-800);background:#fff;padding:9px 12px;font-size:13.5px}.attendance-employee-select{flex:1;min-width:220px}.attendance-stats-row{flex-wrap:wrap;gap:10px;margin-bottom:14px;display:flex}.attendance-stat-pill{border-radius:var(--radius-lg);align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.attendance-stat-pill.present{color:#15803d;background:#dcfce7}.attendance-stat-pill.absent{color:#dc2626;background:#fee2e2}.attendance-stat-pill.leave{color:#1d4ed8;background:#dbeafe}.attendance-stat-pill.half{color:#a16207;background:#fef9c7}.attendance-stat-pill.late{color:#c2410c;background:#ffedd5}.attendance-stat-pill.hours{background:var(--primary-light);color:var(--primary)}.cal-grid{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal-hdr{text-align:center;text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);padding:6px 4px;font-size:11px;font-weight:700}.cal-cell{border-radius:var(--radius);border:1px solid var(--gray-100);min-height:90px;padding:6px 7px;transition:box-shadow .12s;position:relative}.cal-cell:hover:not(.empty){box-shadow:0 2px 8px #0000001a}.cal-cell.today{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.cal-cell.weekend{background:var(--gray-50)}.cal-cell.empty{background:0 0;border-color:#0000;min-height:0}.cal-cell.present{background:#f0fdf4}.cal-cell.absent{background:#fef2f2}.cal-cell.on_leave{background:#eff6ff}.cal-cell.half_day{background:#fefce8}.cal-cell.late{background:#fff7ed}.cal-cell.has-actions{min-height:100px}.cal-dn{margin-bottom:3px;font-size:12px;font-weight:600}.cal-dn.is-today{color:var(--primary)}.cal-today-badge{background:var(--primary);color:#fff;vertical-align:middle;border-radius:3px;margin-left:2px;padding:0 3px;font-size:8px;font-weight:600}.cal-active{color:var(--success);font-weight:600}.cal-actions{flex-wrap:wrap;gap:2px;margin-top:4px;display:flex}.cal-actions .btn.btn-xs{z-index:1;cursor:pointer;border-radius:3px;flex-shrink:0;justify-content:center;gap:0;width:20px;min-width:20px;height:20px;padding:2px;font-size:9px;line-height:1;position:relative}.cal-actions .btn.btn-xs i{pointer-events:none;font-size:9px}.cal-actions .btn.cal-add-btn{gap:2px;width:auto;min-width:0;height:auto;padding:1px 5px;font-size:9px}.cal-actions .btn.cal-add-btn i{font-size:8px}.cal-badge{border-radius:8px;margin-bottom:2px;padding:1px 6px;font-size:10px;font-weight:600;display:inline-block}.cal-badge.present{color:#15803d;background:#dcfce7}.cal-badge.absent{color:#dc2626;background:#fee2e2}.cal-badge.on_leave{color:#1d4ed8;background:#dbeafe}.cal-badge.half_day{color:#a16207;background:#fef9c7}.cal-badge.weekend{background:var(--gray-100);color:var(--gray-400)}.cal-time{color:var(--gray-400);font-size:10px;font-family:var(--mono)}.cal-hrs{color:var(--primary);font-size:10px;font-weight:600}.cal-badge.late{color:#c2410c;background:#ffedd5;margin-left:2px;font-size:9px}.cal-badge.leave_early{color:#1e40af;background:#dbeafe;margin-left:2px;font-size:9px}.attendance-legend{color:var(--gray-500);flex-wrap:wrap;gap:14px;margin-top:10px;font-size:11.5px;display:flex}.attendance-legend-item{align-items:center;gap:3px;display:inline-flex}.attendance-legend-swatch{border-radius:2px;flex-shrink:0;width:10px;height:10px;display:inline-block}.attendance-legend-label{font-weight:500}.att-modal-overlay{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.att-modal{border-radius:var(--radius-lg);background:#fff;width:100%;max-height:90vh;overflow:auto;box-shadow:0 20px 50px #0003}.att-modal-header{background:var(--primary);color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.att-modal-header-warning{background:#d97706}.att-modal-title{font-size:15px;font-weight:600}.att-modal-subtitle{opacity:.75;margin-top:2px;font-size:12px}.att-modal-close{color:#ffffffb3;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;flex-shrink:0;width:28px;height:28px;font-size:18px;line-height:1}.att-modal-close:hover{color:#fff;background:#fff3}.att-modal-body{padding:18px 20px}.att-modal-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:8px;padding:12px 20px 18px;display:flex}.att-modal-footer-split{justify-content:space-between;align-items:center}.att-modal-footer-actions{gap:8px;display:flex}.att-edit-warning{background:var(--warning-light);border-left:3px solid var(--warning);border-radius:0 var(--radius) var(--radius) 0;color:var(--warning);margin-bottom:16px;padding:10px 12px;font-size:12.5px;line-height:1.5}.att-edit-warning-link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12.5px;font-weight:600;text-decoration:underline}.att-summary-strip{border-bottom:1px solid var(--gray-100);grid-template-columns:repeat(3,1fr);display:grid}.att-summary-cell{text-align:center;padding:14px 16px}.att-summary-cell:not(:last-child){border-right:1px solid var(--gray-100)}.att-summary-label{text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400);margin-bottom:4px;font-size:10px;font-weight:600}.att-summary-value{font-size:19px;font-weight:700;font-family:var(--mono)}.att-summary-primary{color:var(--primary)}.att-shift-bar{background:var(--primary-light);color:var(--primary);border-bottom:1px solid #bfdbfe;align-items:center;gap:8px;padding:8px 20px;font-size:12.5px;display:flex}.att-violations{flex-wrap:wrap;gap:8px;padding:8px 20px 0;display:flex}.att-violation-box{border-radius:var(--radius);align-items:center;gap:6px;margin-bottom:6px;margin-right:8px;padding:6px 12px;font-size:12.5px;display:inline-flex}.att-violation-box.late{color:#c2410c;background:#fff7ed;border:1px solid #fed7aa}.att-violation-box.leave-early{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.att-timeline-wrap{max-height:340px;padding:18px 20px;overflow-y:auto}.att-forced-notice{border-radius:0 var(--radius) var(--radius) 0;color:#b45309;background:#fef3c7;border-left:3px solid #f59e0b;margin-bottom:12px;padding:8px 12px;font-size:12.5px;font-weight:500}.tl-wrap{margin:4px 0;padding-left:28px;position:relative}.tl-track{background:var(--gray-200);border-radius:1px;width:2px;position:absolute;top:4px;bottom:4px;left:9px}.tl-item{margin-bottom:12px;position:relative}.tl-item:last-child{margin-bottom:0}.tl-dot{border:2px solid #fff;border-radius:50%;flex-shrink:0;width:14px;height:14px;position:absolute;top:3px;left:-24px}.tl-dot.work{background:var(--success)}.tl-dot.away{background:var(--gray-300)}.tl-dot.brk{background:var(--warning)}.tl-dot.added{background:var(--primary)}.tl-label{font-size:13px;font-weight:600}.tl-label-success{color:var(--success)}.tl-label-primary{color:var(--primary)}.tl-label-warning{color:var(--warning)}.tl-label-muted{color:var(--gray-500)}.tl-times{color:var(--gray-500);font-size:12.5px;font-family:var(--mono);margin-top:1px}.tl-dur{color:var(--gray-700);margin-left:8px;font-size:12px;font-weight:600}.tl-away-box{background:var(--gray-50);border:1px dashed var(--gray-300);border-radius:var(--radius);padding:8px 10px}.tl-away-hint{color:var(--warning);margin-top:3px;font-size:11px}.tl-work-forced{border-radius:var(--radius);background:#fffbeb;padding:6px 8px}.tl-forced-tag{color:#fff;background:#f59e0b;border-radius:10px;margin-left:6px;padding:1px 7px;font-size:11px}.tl-forced-box{border-radius:var(--radius);background:#fef3c7;border:1px solid #fde68a;border-left:3px solid #f59e0b;padding:8px 10px}.tl-forced-title{color:#b45309;font-size:13px;font-weight:600}.tl-forced-time{color:#92400e;font-size:12.5px;font-family:var(--mono);margin-top:2px}.tl-forced-note,.tl-forced-by{color:#b45309;margin-top:3px;font-size:11.5px;font-style:italic}.tl-forced-ts{color:#92400e;opacity:.7;margin-top:2px;font-size:11px}.tl-added-box{background:var(--primary-light);border-radius:var(--radius);border:1px solid #bfdbfe;padding:8px 10px}.tl-added-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:3px;display:flex}.tl-added-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;align-items:center;gap:4px;padding:1px 8px;font-size:11px;font-weight:600;display:inline-flex}.tl-counted-badge{background:var(--success-light);color:var(--success);border-radius:10px;padding:1px 7px;font-size:11px;font-weight:600}.tl-overlap-badge{color:#64748b;background:#f1f5f9;border-radius:10px;padding:1px 7px;font-size:11px}.tl-quote-note{color:var(--gray-600);margin-top:3px;font-size:11px;font-style:italic}.tl-meta{color:var(--gray-400);margin-top:2px;font-size:11px}.tl-brk-box{background:var(--warning-light);border-radius:var(--radius);padding:7px 10px}.tl-hr-badge{background:var(--primary);color:#fff;border-radius:10px;margin-left:6px;padding:1px 7px;font-size:11px}.tl-deduct-label{color:var(--gray-400);margin-left:4px;font-size:11px;font-weight:400}.tl-deduct-label.deducted{color:#b45309}.tl-brk-note{color:var(--gray-500);margin-top:2px;font-size:11px;font-style:italic}.att-punch-section{border-top:1px solid var(--gray-100);background:var(--gray-50);padding:18px 20px}.att-punch-title{color:var(--gray-800);margin-bottom:6px;font-size:13.5px;font-weight:600}.att-punch-title i{color:var(--primary);margin-right:5px}.att-punch-desc{margin-bottom:12px}.att-punch-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.att-punch-hint{border-radius:var(--radius);margin-top:5px;padding:6px 10px;font-size:12px}.att-punch-hint.work{background:var(--success-light);color:var(--success)}.att-punch-hint.break{background:var(--warning-light);color:var(--warning)}.att-punch-error{background:var(--danger-light);color:var(--danger);border-radius:var(--radius);margin-bottom:10px;padding:9px 12px;font-size:12.5px}.att-required{color:var(--danger)}.att-fco-info{background:var(--warning-light);border-radius:var(--radius);margin-bottom:16px;padding:12px 14px;font-size:13.5px}.att-fco-name{color:var(--gray-800);font-weight:600}.att-fco-meta{margin-top:3px}.att-fco-hint{color:var(--warning);margin-top:6px;font-size:12px}.att-detail-row{justify-content:space-between;margin-bottom:10px;display:flex}.att-detail-notes p{margin:4px 0 0;font-size:13px}.att-breaks-section{border-top:1px solid var(--gray-100);margin-top:16px;padding-top:12px}.att-section-title{margin-bottom:8px;font-size:13px;font-weight:600}.att-breaks-list{margin:0;padding:0;list-style:none}.att-breaks-list li{border-bottom:1px solid var(--gray-100);flex-direction:column;gap:2px;padding:8px 0;display:flex}.att-break-note{color:var(--primary);font-size:11px;font-style:italic}.form-label{color:var(--gray-600);margin-bottom:5px;font-size:12.5px;font-weight:500;display:block}.att-modal .form-control,.att-modal .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);box-sizing:border-box;width:100%;padding:9px 12px;font-family:inherit;font-size:13.5px}.att-modal .form-control:focus,.att-modal .form-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);outline:none}.welcome-bar{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(135deg,#1a56db,#1e40af);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:24px 28px;display:flex}.welcome-kicker{text-transform:uppercase;letter-spacing:.08em;opacity:.75;font-size:11px}.welcome-name{margin-top:2px;font-size:22px;font-weight:700}.welcome-meta{opacity:.8;margin-top:3px;font-size:13px}.welcome-right{text-align:right}.live-clock{font-size:28px;font-weight:700;font-family:var(--mono)}.live-date{opacity:.75;font-size:13px}.welcome-pill{background:#fff3;border-radius:20px;margin-top:6px;padding:4px 12px;font-size:12px;display:inline-block}.welcome-pill-btn{color:#fff;cursor:pointer;font:inherit;line-height:inherit;border:none;transition:background .15s}.welcome-pill-btn:hover:not(:disabled){background:#ffffff47}.welcome-pill-btn:disabled{cursor:wait;opacity:.85}.stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;padding:18px 20px}.stat-icon{border-radius:var(--radius);justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:12px;font-size:16px;display:flex}.stat-icon.blue{background:var(--primary-light);color:var(--primary)}.stat-icon.green{background:var(--success-light);color:var(--success)}.stat-icon.amber{background:var(--warning-light);color:var(--warning)}.stat-icon.red{background:var(--danger-light);color:var(--danger)}.stat-icon.teal{background:var(--info-light);color:var(--info)}.stat-label{color:var(--gray-500);font-size:12px;font-weight:500}.stat-value{color:var(--gray-900);margin-top:4px;font-size:26px;font-weight:600;line-height:1}.stat-sub{color:var(--gray-400);margin-top:4px;font-size:11px}.grid-2{grid-template-columns:1fr 1fr;gap:20px;display:grid}.card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow);background:#fff;padding:20px 24px}.card-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;margin-bottom:18px;padding-bottom:14px;display:flex}.card-title{color:var(--gray-900);font-size:15px;font-weight:600}.card-subtitle{color:var(--gray-500);margin-top:2px;font-size:12px}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:13.5px}.table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);background:var(--gray-50);border-bottom:1px solid var(--gray-200);white-space:nowrap;padding:10px 14px;font-size:11.5px;font-weight:600}.table td{border-bottom:1px solid var(--gray-100);color:var(--gray-700);vertical-align:middle;padding:12px 14px}.table tbody tr:hover td{background:var(--gray-50)}.table td strong{color:var(--gray-900);font-weight:500}.badge{white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.badge-green{background:var(--success-light);color:var(--success)}.badge-amber{background:var(--warning-light);color:var(--warning)}.badge-red{background:var(--danger-light);color:var(--danger)}.badge-blue{background:var(--primary-light);color:var(--primary)}.badge-gray{background:var(--gray-100);color:var(--gray-600)}.btn{border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:500;text-decoration:none;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark)}.btn-outline{color:var(--gray-700);border-color:var(--gray-300);background:#fff}.btn-outline:hover{background:var(--gray-50)}.btn-warning{color:#fff;background:#d97706;border-color:#d97706}.btn-warning:hover{background:#b45309;border-color:#b45309}.btn-sm{padding:5px 10px;font-size:12.5px}.btn-block{justify-content:center;width:100%}.btn-ghost{color:var(--gray-600);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--gray-100);color:var(--gray-800)}.list-row{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:9px 0;display:flex}.list-row-title{font-size:13px;font-weight:500}.list-row-sub{color:var(--gray-500);font-size:12px}.text-muted{color:var(--gray-500)}.text-sm{font-size:12px}.empty-state{text-align:center;color:var(--gray-400);padding:20px}.mb-2{margin-bottom:16px}.coming-soon{border:1px solid var(--gray-200);border-radius:var(--radius-lg);text-align:center;color:var(--gray-500);background:#fff;padding:48px 24px}.coming-soon h2{color:var(--gray-800);margin-bottom:8px;font-size:18px}.payslip-summary-grid{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.payslip-summary-item{text-align:center;background:var(--gray-50);border-radius:var(--radius);padding:12px}.payslip-summary-value{color:var(--gray-700);font-size:14px;font-weight:700}.payslip-summary-value.danger{color:var(--danger)}.payslip-summary-value.primary{color:var(--primary)}.payslip-summary-label{color:var(--gray-500);margin-top:2px;font-size:11px}.payslip-status{color:var(--gray-400);text-align:center;margin-top:10px;font-size:12px}.dispute-alert{background:var(--warning-light);border-radius:var(--radius);color:var(--warning);margin-top:12px;padding:10px 12px;font-size:13px}.error-banner{background:var(--danger-light);color:var(--danger);border-radius:var(--radius);border:1px solid #fca5a5;padding:12px 16px;font-size:14px}@media (width<=768px){.stats-grid{grid-template-columns:1fr 1fr}.grid-2{grid-template-columns:1fr}}.app-toast{z-index:1100;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);pointer-events:none;border:1px solid #0000;align-items:center;gap:10px;padding:12px 20px;font-size:13.5px;font-weight:500;animation:.35s ease-out toast-in;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)translateY(0)}.app-toast-success{background:var(--success-light);color:var(--success);border-color:#a7f3d0}.app-toast-error{background:var(--danger-light);color:var(--danger);border-color:#fca5a5}.app-toast.is-leaving{animation:.3s ease-in forwards toast-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-8px)}}.ov-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.ov-title{margin:0;font-size:18px;font-weight:600}.ov-header-actions{flex-wrap:wrap;gap:8px;display:flex}.ov-recalc-btn{color:var(--warning);border-color:var(--warning)}.ov-filters-card{margin-bottom:16px;padding:14px 18px}.ov-filters-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ov-filter-label{color:var(--gray-500);align-items:center;gap:6px;font-size:13px;display:flex}.ov-date-input{width:160px}.ov-search-input{width:180px}.ov-filters-form .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);appearance:none;background-color:#fff;width:auto;padding:8px 32px 8px 12px;font-size:13.5px}.ov-stats{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;display:flex}.ov-stat{border-radius:var(--radius-lg);align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.ov-stat.present{color:#15803d;background:#dcfce7}.ov-stat.absent{color:#dc2626;background:#fee2e2}.ov-stat.tardy{color:#c2410c;background:#fff7ed}.ov-stat.leave-early{color:#0369a1;background:#f0f9ff}.ov-stat.active{color:#15803d;background:#f0fdf4}.ov-stats-meta{color:var(--gray-500);margin-left:auto;font-size:13px}.ov-table-card{padding:0;overflow:hidden}.ov-monthly-wrap{overflow-x:auto}.ov-table td,.ov-table th{white-space:nowrap;padding:8px 12px;font-size:12.5px}.ov-table th{background:var(--gray-50);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);font-size:11px;font-weight:600}.ov-table tr:hover td{background:#f8faff}.ov-table .center{text-align:center}.ov-monthly-table{min-width:900px}.ov-sticky-col{background:var(--gray-50);z-index:2;min-width:160px;position:sticky;left:0}.ov-row-yellow .ov-sticky-col,tr.ov-row-yellow td{background:#fffbeb}.ov-row-red .ov-sticky-col,tr.ov-row-red td{background:#fff1f2}.ov-day-col{min-width:32px;padding:4px 2px!important}.ov-day-col.today{color:var(--primary);background:#eff6ff}.ov-emp-name{font-size:13px;font-weight:600}.ov-emp-code{color:var(--gray-400);font-size:11px}.ov-shift-name{font-size:12px;font-weight:500}.ov-shift-name.override{color:var(--primary)}.ov-custom-badge{background:var(--primary-light);color:var(--primary);border-radius:4px;margin-left:3px;padding:1px 5px;font-size:10px}.ov-shift-time{color:var(--gray-400);font-size:12px}.ov-time.on-time{color:var(--success);font-weight:600}.ov-time.late{color:var(--danger);font-weight:600}.ov-time.early{color:var(--warning);font-weight:600}.ov-violation-sub{color:var(--danger);font-size:10px}.ov-violation-sub.warning{color:var(--warning)}.ov-hours{color:var(--primary);font-weight:600}.ov-status-pill{border-radius:8px;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.ov-status-pill.present{color:#15803d;background:#dcfce7}.ov-status-pill.absent{color:#dc2626;background:#fee2e2}.ov-status-pill.holiday{color:#92400e;background:#fef3c7}.ov-status-pill.leave{color:#1d4ed8;background:#dbeafe}.ov-status-pill.tardy{color:#c2410c;background:#fff7ed}.ov-status-pill.leave-early{color:#0369a1;background:#f0f9ff}.ov-status-pill.active{color:#15803d;background:#f0fdf4}.ov-status-pill.weekend{background:var(--gray-100);color:var(--gray-400)}.ov-status-pill.half-day{color:#a16207;background:#fef9c3}.ov-actions{gap:4px;display:flex}.ov-action-btn{border-radius:var(--radius);border:1px solid var(--gray-200);cursor:pointer;color:var(--primary);background:#fff;padding:3px 8px;font-size:11.5px}.ov-action-btn:hover{background:var(--primary-light)}.ov-action-btn.warning{color:var(--warning)}.ov-calendar-link{align-items:center;gap:4px;padding:4px 10px;display:inline-flex}.ov-day-badge{cursor:default;border-radius:3px;justify-content:center;align-items:center;width:26px;height:20px;font-size:9px;font-weight:700;display:inline-flex}.ov-day-badge.present{color:#15803d;background:#dcfce7}.ov-day-badge.absent{color:#dc2626;background:#fee2e2}.ov-day-badge.holiday{color:#92400e;background:#fef3c7}.ov-day-badge.tardy{color:#c2410c;background:#fff7ed}.ov-day-badge.leave-early{color:#1d4ed8;background:#dbeafe}.ov-day-badge.tardy-le{color:#d97706;background:#fef3c7}.ov-day-badge.half-day{color:#a16207;background:#fefce8}.ov-day-badge.leave{color:#1d4ed8;background:#dbeafe}.ov-viol-count.warning{color:var(--warning);font-weight:600}.ov-viol-count.danger{color:var(--danger);font-weight:600}.tardy-col{color:#c2410c!important}.le-col{color:#0369a1!important}.ov-legend{color:var(--gray-500);flex-wrap:wrap;align-items:center;gap:12px;margin-top:10px;font-size:11.5px;display:flex}.ov-legend-item{align-items:center;gap:4px;display:inline-flex}.ov-legend-warnings{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.ov-warn-yellow{color:#d97706;background:#fffbeb;border-radius:4px;padding:2px 8px}.ov-warn-red{color:#dc2626;background:#fff1f2;border-radius:4px;padding:2px 8px}.att-modal-header-primary{background:var(--primary);color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.att-modal-close-light{color:#fff;background:#fff3;border:none;border-radius:50%;width:28px;height:28px}.ov-quick-info{background:var(--gray-50);border-radius:var(--radius);color:var(--gray-600);margin-bottom:16px;padding:10px 14px;font-size:13px}.ov-quick-info i{color:var(--primary);margin-right:6px}.ov-quick-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;display:grid}.ov-quick-grid .form-group{margin:0}.att-modal .form-control,.att-modal .form-select,.ov-filters-form .form-control{border:1px solid var(--gray-300);border-radius:var(--radius);padding:9px 12px;font-size:13.5px}.employees-filter-form .form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.employees-filter-form .form-control{border:1px solid var(--gray-300);border-radius:var(--radius);width:100%;color:var(--gray-800);background:#fff;padding:9px 12px;font-size:13.5px}.employees-filter-form .form-control:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a56db26}.employees-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.employees-header h2{color:var(--gray-900);font-size:18px;font-weight:600}.employees-filter-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.employees-filter-form .filter-search{flex:1;min-width:200px}.employees-filter-form .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);color:var(--gray-800);background:#fff;min-width:160px;padding:9px 12px;font-size:13.5px}.emp-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.emp-table{width:100%;min-width:680px}.emp-actions{flex-wrap:nowrap;align-items:center;gap:4px;display:flex}.emp-actions .btn.btn-xs{min-height:26px;padding:4px 8px;font-size:11.5px}.emp-id{font-family:var(--mono);color:var(--primary);font-size:12px;font-weight:600}.emp-term-date{color:var(--danger);font-size:12px;font-weight:600}.emp-term-reason{color:var(--gray-500);margin-top:2px;font-size:11px}.badge-teal{color:#0f766e;background:#ccfbf1}.employees-pagination{border-top:1px solid var(--gray-100);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:16px;display:flex}.employees-pagination-info{color:var(--gray-500);font-size:13px}.employees-pagination-controls{align-items:center;gap:6px;display:flex}.employees-page-btn{justify-content:center;min-width:34px}.employees-page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.employees-page-btn:disabled{opacity:.45;cursor:not-allowed}.btn-success{background:var(--success);color:#fff;border-color:var(--success)}.btn-success:hover:not(:disabled){filter:brightness(.92)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.employees-loading,.employees-error{text-align:center;color:var(--gray-500);padding:32px 16px}.employees-error{color:var(--danger)}.form-group{margin-bottom:18px}.form-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.mt-2{margin-top:16px}.emp-modal-header{border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.emp-modal-title{color:var(--gray-900);font-size:15px;font-weight:600}.emp-modal-close{color:var(--gray-400);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:22px;line-height:1}.emp-modal-close:hover{color:var(--gray-700)}.emp-modal-body{padding:20px 24px}.emp-modal-body .form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.emp-modal-body .form-control,.emp-modal-body .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);width:100%;color:var(--gray-800);background:#fff;padding:9px 12px;font-size:13.5px}.emp-modal-body .form-control:focus,.emp-modal-body .form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a56db26}.emp-modal-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:8px;padding:12px 24px 18px;display:flex}.emp-modal-body .form-control.emp-id-readonly{background:var(--gray-50);color:var(--primary);font-family:var(--mono);cursor:not-allowed;font-weight:600}.emp-id-hint{color:var(--gray-400);margin-top:3px;font-size:11px}.emp-role-readonly{background:var(--gray-50);color:var(--gray-500);cursor:default}.emp-att-mandatory-box{background:var(--primary-light);border-radius:var(--radius);border:1px solid #bfdbfe;margin-top:4px;padding:12px 16px}.emp-checkbox-label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.emp-checkbox-label input{flex-shrink:0;width:16px;height:16px;margin-top:2px}.emp-checkbox-title{font-size:13.5px;font-weight:600}.emp-checkbox-desc{color:var(--gray-600);margin-top:1px;font-size:12px}.emp-salary-preview-row{border-top:1px solid var(--gray-200);flex-wrap:wrap;gap:20px;padding-top:8px;font-size:13px;display:flex}.emp-salary-preview-net{color:var(--primary)}.emp-salary-section,.emp-bank-section{background:var(--gray-50);border-radius:var(--radius);margin-top:16px;padding:16px}.emp-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:12px;font-size:12px;font-weight:600}.emp-salary-change-box{border-radius:var(--radius);background:#fffbeb;border:1px solid #fde68a;margin-top:8px;padding:12px 14px}.emp-salary-change-title{color:#92400e;margin-bottom:10px;font-size:12px;font-weight:600}.emp-salary-change-hint{color:#a16207;margin-top:8px;font-size:11.5px}.emp-term-modal-header{color:#fff;border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:#dc2626;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.emp-term-modal-title{align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.emp-term-modal-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;display:flex}.emp-term-warning-box{border-radius:var(--radius);background:#fff1f2;border:1px solid #fca5a5;margin-bottom:16px;padding:12px 16px}.emp-term-warning-name{color:#dc2626;font-size:14px;font-weight:600}.emp-term-warning-desig{color:#b91c1c;margin-top:2px;font-size:12.5px}.emp-term-warning-note{color:#b91c1c;margin-top:6px;font-size:12px}.emp-term-checkbox-wrap{align-items:flex-end;display:flex}.emp-term-checkbox-label{cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;font-size:13.5px;display:flex}.emp-term-checkbox-label input{width:16px;height:16px}.emp-term-notes-wrap{grid-column:1/-1}.emp-modal-body textarea.form-control{resize:vertical;min-height:80px}.req{color:var(--danger)}.emp-edit-error{background:var(--danger-light);color:var(--danger);border-radius:var(--radius);margin-bottom:14px;padding:10px 12px;font-size:13px}@media (width<=640px){.form-grid-2,.form-grid-3{grid-template-columns:1fr}}.salary-history-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.salary-history-header h2{color:var(--gray-900);font-size:18px;font-weight:600}.salary-current-card{padding:16px 20px}.salary-current-title{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);margin-bottom:12px;font-size:12px;font-weight:600}.salary-current-grid{grid-template-columns:repeat(6,1fr);gap:12px;font-size:13px;display:grid}.salary-current-label{color:var(--gray-400);margin-bottom:2px;font-size:11px}.salary-current-value{font-weight:600;font-family:var(--mono)}.salary-current-gross{color:var(--primary);font-weight:700;font-family:var(--mono)}.salary-history-card{padding:0;overflow:hidden}.salary-history-card .card-header{margin-bottom:0;padding:14px 20px}.salary-history-empty{text-align:center;color:var(--gray-400);padding:40px}.salary-history-table{min-width:900px}.salary-history-table tbody tr.is-current td{background:#f0fdf4}.salary-mono{font-family:var(--mono)}.salary-gross{color:var(--primary);font-weight:600}.salary-reason{font-size:12.5px}.salary-meta{color:var(--gray-400);font-size:12px}@media (width<=900px){.salary-current-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=520px){.salary-current-grid{grid-template-columns:repeat(2,1fr)}}.dept-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.dept-title{margin:0;font-size:18px;font-weight:600}.dept-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.dept-card{padding:20px}.dept-card-top{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.dept-icon-wrap{background:var(--primary-light);border-radius:var(--radius-lg);width:44px;height:44px;color:var(--primary);justify-content:center;align-items:center;font-size:20px;display:flex}.dept-card-actions{gap:6px;display:flex}.dept-card-actions .btn.btn-xs{padding:3px 8px;font-size:12px}.dept-card-actions .btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.dept-card-actions .btn-danger:hover:not(:disabled){background:#991b1b;border-color:#991b1b}.dept-name{color:var(--gray-900);font-size:16px;font-weight:600}.dept-desc{color:var(--gray-500);margin-top:4px;font-size:13px}.dept-company{color:var(--gray-400);margin-top:4px;font-size:12px}.dept-footer{border-top:1px solid var(--gray-100);color:var(--gray-600);align-items:center;gap:6px;margin-top:14px;padding-top:12px;font-size:13px;display:flex}.dept-footer i{color:var(--gray-400);font-size:12px}.dept-empty{text-align:center;grid-column:1/-1;padding:40px}.dept-empty i{color:var(--gray-300);margin-bottom:12px;font-size:40px;display:block}.dept-modal-overlay{z-index:999;background:#00000073;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.dept-modal{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:460px;box-shadow:0 20px 60px #0003}.dept-modal-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dept-modal-title{font-size:16px;font-weight:600}.dept-modal-close{color:var(--gray-400);cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1}.dept-modal-body{padding:20px}.dept-modal-body .form-group{margin-bottom:16px}.dept-modal-body .form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.dept-modal-body .form-label .req{color:var(--danger)}.dept-modal-body .form-control,.dept-modal-body .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);width:100%;padding:9px 12px;font-family:inherit;font-size:13.5px}.dept-modal-body textarea.form-control{resize:vertical;min-height:80px}.dept-modal-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.company-settings-page .section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.company-settings-page .mb-3{margin-bottom:24px}.company-settings-page .mb-2{margin-bottom:16px}.company-settings-page .mt-1{margin-top:4px}.company-settings-page .form-group{margin-bottom:18px}.company-settings-page .form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.company-settings-page .form-label .req{color:var(--danger);margin-left:2px}.company-settings-page .form-control,.company-settings-page .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);width:100%;font-size:13.5px;font-family:var(--font);color:var(--gray-800);background:#fff;padding:9px 12px;transition:border .15s,box-shadow .15s}.company-settings-page .form-control:focus,.company-settings-page .form-select:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light);outline:none}.company-settings-page textarea.form-control{resize:vertical;min-height:72px}.company-settings-page .form-grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.company-settings-page .form-grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.cs-company-header-badge{border-radius:var(--radius-lg);background:var(--primary);color:#fff;letter-spacing:-.02em;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:13px;font-weight:700;display:flex}.cs-stab i{margin-right:6px}.cs-settings-tabs{border-bottom:1px solid var(--gray-200);gap:4px;margin-bottom:24px;display:flex}.cs-stab{cursor:pointer;color:var(--gray-500);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 20px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .15s}.cs-stab.active{color:var(--primary);border-bottom-color:var(--primary)}.cs-stab:hover:not(.active){color:var(--gray-700)}.cs-spanel{display:none}.cs-spanel.active{display:block}.cs-company-selector{background:var(--primary-light);border-radius:var(--radius-lg);border:1px solid #bfdbfe;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:12px 18px;display:flex}.cs-company-selector-label{color:var(--primary);font-size:13px;font-weight:600}.cs-company-selector-hint{color:var(--primary);font-size:12px}.cs-profile-max{max-width:680px}.cs-logo-row{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.cs-logo-preview{border:1px solid var(--gray-200);background:#f3f4f6;border-radius:8px;padding:6px 12px}.cs-logo-preview img{object-fit:contain;max-width:160px;max-height:48px;display:block}.cs-logo-hint{color:var(--gray-400);margin-top:3px;font-size:11.5px}.cs-attendance-section{border-top:1px solid var(--gray-100);margin-top:16px;padding-top:16px}.cs-attendance-title{color:var(--gray-700);margin-bottom:4px;font-size:13px;font-weight:600}.cs-attendance-desc{color:var(--gray-500);margin-bottom:10px;font-size:12.5px}.cs-weekend-options{flex-wrap:wrap;gap:12px;display:flex}.cs-weekend-label{cursor:pointer;border:1px solid var(--gray-200);border-radius:var(--radius);align-items:center;gap:8px;padding:6px 12px;font-size:13.5px;font-weight:500;display:flex}.cs-weekend-label.checked{background:var(--primary-light);border-color:var(--primary)}.cs-break-options{flex-wrap:wrap;gap:20px;display:flex}.cs-break-label{cursor:pointer;align-items:center;gap:8px;font-size:13.5px;font-weight:500;display:flex}.cs-user-cell{align-items:center;gap:9px;display:flex}.cs-user-avatar{background:var(--primary-light);width:32px;height:32px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.cs-user-name{font-size:13px;font-weight:500}.cs-user-email{color:var(--gray-400);font-size:11.5px}.cs-user-designation{color:var(--gray-400);font-size:11px}.cs-salary-mono{font-family:var(--mono);font-size:12.5px}.cs-dept-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.cs-dept-card{padding:18px}.cs-dept-icon{background:var(--primary-light);border-radius:var(--radius-lg);width:40px;height:40px;color:var(--primary);justify-content:center;align-items:center;font-size:18px;display:flex}.cs-dept-card-header{justify-content:space-between;align-items:flex-start;display:flex}.cs-dept-card-name{margin-top:12px;font-size:15px;font-weight:600}.cs-dept-card-desc{color:var(--gray-500);margin-top:3px;font-size:12.5px}.cs-dept-card-count{color:var(--gray-600);margin-top:12px;font-size:13px}.cs-salary-block{background:var(--gray-50);border-radius:var(--radius);margin-top:4px;padding:14px}.cs-salary-block-title{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:12px;font-size:11.5px;font-weight:600}.cs-salary-preview{border-top:1px solid var(--gray-200);flex-wrap:wrap;gap:18px;padding-top:8px;font-size:13px;display:flex}.cs-salary-preview-net{color:var(--primary)}.cs-modal-overlay{z-index:1000;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.cs-modal{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:680px;max-height:90vh;overflow:auto;box-shadow:0 20px 50px #00000026}.cs-modal.cs-modal-sm{max-width:440px}.cs-modal-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.cs-modal-title{font-size:16px;font-weight:600}.cs-modal-close{cursor:pointer;color:var(--gray-400);background:0 0;border:none;font-size:22px;line-height:1}.cs-modal-body{padding:20px}.cs-modal-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.cs-empty-depts{text-align:center;color:var(--gray-400);grid-column:1/-1;padding:32px}.cs-empty-depts i{margin-bottom:10px;font-size:32px;display:block}.rp-page .section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:20px;display:flex}.rp-page .mb-3{margin-bottom:24px}.rp-page .mt-1{margin-top:4px}.rp-company-selector{background:var(--primary-light);border-radius:var(--radius-lg);border:1px solid #bfdbfe;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;padding:12px 18px;display:flex}.rp-company-selector-label{color:var(--primary);font-size:13px;font-weight:600}.rp-page .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);font-size:13.5px;font-family:var(--font);color:var(--gray-800);background:#fff;padding:9px 12px}.rp-upgrade-banner{border-radius:var(--radius-lg);background:#fef3c7;border:1px solid #fde68a;gap:12px;padding:16px 20px;display:flex}.rp-upgrade-title{color:#b45309;font-weight:600}.rp-upgrade-text{color:#92400e;margin-top:2px;font-size:13px}.rp-layout{grid-template-columns:220px 1fr;align-items:start;gap:20px;display:grid}.rp-role-card{padding:0;position:sticky;top:20px;overflow:hidden}.rp-role-card-header{border-bottom:1px solid var(--gray-100);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);padding:12px 16px;font-size:12px;font-weight:600}.rp-role-link{border:none;border-bottom:1px solid var(--gray-50);text-align:left;width:100%;color:var(--gray-700);cursor:pointer;background:0 0;align-items:center;gap:10px;padding:12px 16px;font-family:inherit;text-decoration:none;display:flex}.rp-role-link.active{background:var(--primary-light);color:var(--primary)}.rp-role-link-icon{text-align:center;width:16px}.rp-role-link-label{font-size:13.5px}.rp-role-link-label.active{font-weight:600}.rp-role-link-chevron{margin-left:auto;font-size:11px}.rp-role-note{background:var(--gray-50);color:var(--gray-400);padding:12px 16px;font-size:11.5px;line-height:1.5}.rp-main-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.rp-main-title-row{align-items:center;gap:10px;display:flex}.rp-role-icon-wrap{opacity:.15;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.rp-role-icon-wrap i{opacity:1}.rp-main-title{font-size:15px;font-weight:600}.rp-main-subtitle{color:var(--gray-400);font-size:12px}.rp-module-card{margin-bottom:12px;padding:0;overflow:hidden}.rp-module-header{border-bottom:1px solid var(--gray-100);background:var(--gray-50);align-items:center;gap:10px;padding:12px 18px;display:flex}.rp-module-emoji{font-size:18px}.rp-module-title{font-size:13.5px;font-weight:600}.rp-module-desc{color:var(--gray-400);font-size:12px}.rp-module-toggle-all{cursor:pointer;color:var(--gray-500);align-items:center;gap:6px;margin-left:auto;font-size:12.5px;display:flex}.rp-perm-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0;padding:4px 0;display:grid}.rp-perm-item{cursor:pointer;border-bottom:1px solid var(--gray-50);align-items:flex-start;gap:10px;padding:10px 18px;display:flex}.rp-perm-item input{cursor:pointer;flex-shrink:0;width:15px;height:15px;margin-top:1px}.rp-perm-label{font-size:13px;font-weight:500}.rp-perm-desc{color:var(--gray-400);margin-top:1px;font-size:11.5px}.rp-form-actions{justify-content:flex-end;gap:10px;padding-top:4px;display:flex}.rp-empty{text-align:center;color:var(--gray-400);padding:30px}.rp-empty i{margin-bottom:10px;font-size:28px;display:block}.rp-reset-btn{color:var(--danger);border-color:var(--danger)}@media (width<=900px){.rp-layout{grid-template-columns:1fr}.rp-role-card{position:static}}.pf-config-page .section-header{margin-bottom:12px}.pf-config-page .section-header h2{margin:0;font-size:18px;font-weight:600}.pf-config-page .company-selector{background:var(--primary-light);border-radius:var(--radius-lg);border:1px solid #bfdbfe;align-items:center;gap:12px;margin-bottom:20px;padding:12px 18px;display:flex}.pf-config-page .company-selector-label{color:var(--primary);font-size:13px;font-weight:600}.pf-config-page .company-selector select{width:auto}.pf-config-page .pf-layout{grid-template-columns:340px 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.pf-config-page .pf-layout{grid-template-columns:1fr}}.pf-config-page .current-rate-card{text-align:center;margin-bottom:16px;padding:24px}.pf-config-page .current-rate-label{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);margin-bottom:8px;font-size:12px;font-weight:600}.pf-config-page .current-rate-value{color:var(--primary);font-size:52px;font-weight:700;line-height:1}.pf-config-page .current-rate-value span{font-size:24px}.pf-config-page .current-rate-sub{color:var(--gray-400);margin-top:6px;font-size:12px}.pf-config-page .current-rate-effective{color:var(--gray-500);margin-top:8px;font-size:12px}.pf-config-page .update-form-card{padding:20px}.pf-config-page .update-form-title{margin-bottom:14px;font-size:14px;font-weight:600}.pf-config-page .update-form-title i{color:var(--primary);margin-right:6px}.pf-config-page .form-hint{color:var(--gray-400);margin-top:3px;font-size:12px}.pf-config-page .history-card{padding:0;overflow:hidden}.pf-config-page .history-header{border-bottom:1px solid var(--gray-100);padding:14px 20px;font-size:14px;font-weight:600}.pf-config-page .history-header i{color:var(--primary);margin-right:6px}.pf-config-page .history-empty{text-align:center;color:var(--gray-400);padding:40px}.pf-config-page .history-empty i{margin-bottom:10px;font-size:28px;display:block}.pf-config-page .history-row-current{background:var(--primary-light)}.pf-config-page .history-rate{color:var(--primary);font-size:15px}.pf-config-page .history-notes{color:var(--gray-500);font-size:12.5px}.pf-config-page .history-recorded{color:var(--gray-400);font-size:12px}.pf-config-page .history-changed-by{font-size:13px}.pf-config-page .history-date{font-family:var(--mono)}.pf-config-page .badge-current{margin-left:4px}.company-policy-page .section-header{margin-bottom:12px}.company-policy-page .section-header h2{margin:0;font-size:18px;font-weight:600}.company-policy-page .upgrade-banner{border-radius:var(--radius-lg);background:#fef3c7;border:1px solid #fde68a;margin-bottom:20px;padding:14px 20px}.company-policy-page .policy-tabs{border-bottom:2px solid var(--gray-200);gap:4px;margin-bottom:20px;display:flex}.company-policy-page .policy-tab{cursor:pointer;color:var(--gray-500);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 18px;font-size:13.5px;font-weight:500;text-decoration:none}.company-policy-page .policy-tab.active{border-bottom-color:var(--primary);color:var(--primary)}.company-policy-page .policy-section{border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:#fff;margin-bottom:20px;overflow:hidden}.company-policy-page .policy-section-header{background:var(--gray-50);border-bottom:1px solid var(--gray-200);align-items:center;gap:10px;padding:14px 20px;display:flex}.company-policy-page .policy-section-title{font-size:14px;font-weight:600}.company-policy-page .policy-section-body{padding:20px}.company-policy-page .policy-grid{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.company-policy-page .policy-grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=900px){.company-policy-page .policy-grid,.company-policy-page .policy-grid-2{grid-template-columns:1fr}}.company-policy-page .rule-row{grid-template-columns:120px 1fr 1fr 36px;align-items:center;gap:8px;margin-bottom:8px;display:grid}.company-policy-page .rule-row input,.company-policy-page .rule-row select{font-size:13px}.company-policy-page .rule-count-wrap{align-items:center;gap:6px;display:flex}.company-policy-page .rule-count-label{color:var(--gray-500);font-size:12px}.company-policy-page .rule-remove-btn{background:var(--danger);color:#fff;border-radius:var(--radius);cursor:pointer;border:none;width:32px;height:32px;font-size:14px}.company-policy-page .toggle-switch{cursor:pointer;align-items:center;gap:8px;display:inline-flex;position:relative}.company-policy-page .toggle-switch.header-toggle{margin-left:auto}.company-policy-page .notifications-list .toggle-switch{justify-content:flex-start;margin-left:0}.company-policy-page .toggle-switch input{opacity:0;width:0;height:0;position:absolute}.company-policy-page .toggle-track{background:var(--gray-300);border-radius:11px;flex-shrink:0;width:40px;height:22px;transition:all .2s;position:relative}.company-policy-page .toggle-track:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.company-policy-page .toggle-switch input:checked~.toggle-track{background:var(--primary)}.company-policy-page .toggle-switch input:checked~.toggle-track:after{left:20px}.company-policy-page .toggle-label-sm{color:var(--gray-500);font-size:12px}.company-policy-page .toggle-label-md{font-size:13.5px}.company-policy-page .notifications-list{flex-direction:column;gap:14px;display:flex}.company-policy-page .violation-badge{border-radius:10px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.company-policy-page .v-tardy{color:#d97706;background:#fef3c7}.company-policy-page .v-le{color:#1d4ed8;background:#dbeafe}.company-policy-page .violations-card-header,.company-policy-page .summary-card-header{border-bottom:1px solid var(--gray-100);padding:14px 18px;font-size:13.5px;font-weight:600}.company-policy-page .empty-state{text-align:center;color:var(--gray-400);padding:48px}.company-policy-page .empty-state i{margin-bottom:12px;font-size:36px;display:block}.company-policy-page .empty-state i.success{color:var(--success)}.company-policy-page .summary-count{font-size:18px;font-weight:700}.company-policy-page .summary-count.danger{color:var(--danger)}.company-policy-page .summary-count.warning{color:var(--warning)}.company-policy-page .summary-count.neutral{color:var(--gray-700)}.company-policy-page .summary-rule-label{color:var(--gray-400);font-size:11px}.company-policy-page .save-actions{justify-content:flex-end;gap:10px;display:flex}.company-policy-page .save-actions .btn-primary{padding:10px 28px}.company-policy-page .escalation-title{margin-bottom:10px;font-size:13px;font-weight:600}.company-policy-page .escalation-hint{color:var(--gray-400);margin-bottom:10px;font-size:12px}.company-policy-page .field-hint{color:var(--gray-400);margin-top:4px;font-size:11.5px}.time-requests-admin-page .section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.time-requests-admin-page .section-header h2{margin:0;font-size:18px;font-weight:600}.time-requests-admin-page .status-tabs{flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.time-requests-admin-page .status-tab-count{background:#ffffff4d;border-radius:10px;margin-left:4px;padding:1px 7px;font-size:11px}.time-requests-admin-page .btn-outline .status-tab-count{background:var(--primary-light);color:var(--primary)}.time-requests-admin-page .employee-cell{align-items:center;gap:8px;display:flex}.time-requests-admin-page .employee-avatar{background:var(--primary-light);width:30px;height:30px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.time-requests-admin-page .employee-name{font-size:13px;font-weight:500}.time-requests-admin-page .employee-designation{color:var(--gray-400);font-size:11.5px}.time-requests-admin-page .time-mono{font-family:var(--mono);font-size:13px}.time-requests-admin-page .time-sub{color:var(--gray-400)}.time-requests-admin-page .reason-cell{max-width:180px;font-size:13px}.time-requests-admin-page .attendance-cell{font-size:12.5px}.time-requests-admin-page .attendance-hours{color:var(--primary);font-weight:500}.time-requests-admin-page .review-meta{color:var(--gray-400);margin-top:2px;font-size:11px}.time-requests-admin-page .review-note{color:var(--gray-500);margin-top:3px;font-size:11.5px;font-style:italic}.time-requests-admin-page .action-stack{flex-direction:column;gap:5px;display:flex}.time-requests-admin-page .entry-work{color:#15803d;background:#dcfce7}.time-requests-admin-page .entry-lunch{color:#1d4ed8;background:#dbeafe}.time-requests-admin-page .entry-short{color:#d97706;background:#fef3c7}.time-requests-admin-page .entry-prayer{color:#0f766e;background:#ccfbf1}.time-requests-admin-page .entry-other{background:var(--gray-100);color:var(--gray-600)}.time-requests-admin-page .tr-modal-overlay{z-index:1200;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.time-requests-admin-page .tr-modal{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:460px;overflow:hidden}.time-requests-admin-page .tr-modal-header{color:#fff;padding:14px 18px}.time-requests-admin-page .tr-modal-header.success{background:var(--success)}.time-requests-admin-page .tr-modal-header.danger{background:var(--danger)}.time-requests-admin-page .tr-modal-header-row{justify-content:space-between;align-items:center;display:flex}.time-requests-admin-page .tr-modal-title{font-size:15px;font-weight:600}.time-requests-admin-page .tr-modal-close{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;width:28px;height:28px;font-size:16px}.time-requests-admin-page .tr-modal-body{padding:18px}.time-requests-admin-page .tr-modal-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}.time-requests-admin-page .approve-summary{background:var(--success-light,#ecfdf5);border-radius:var(--radius);color:var(--success);margin-bottom:16px;padding:12px 14px;font-size:13.5px}.time-requests-admin-page .approve-type-info{background:var(--gray-50);border-radius:var(--radius);color:var(--gray-600);margin-bottom:14px;padding:10px 12px;font-size:12.5px}.time-requests-admin-page .approve-info-box{background:var(--primary-light);border-radius:var(--radius);color:var(--primary);padding:10px 12px;font-size:12.5px}.time-requests-admin-page .empty-row{text-align:center;color:var(--gray-400);padding:36px}.time-requests-admin-page .empty-row i{margin-bottom:8px;font-size:28px;display:block}.fbr-payments-page .fbr-month-card{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.fbr-payments-page .fbr-card{border-radius:var(--radius-lg);border:1px solid var(--gray-200);cursor:pointer;background:#fff;padding:14px 16px}.fbr-payments-page .fbr-card.paid{border-left:3px solid var(--success)}.fbr-payments-page .fbr-card.pending{border-left:3px solid var(--warning)}.fbr-payments-page .fbr-card.partial{border-left:3px solid var(--primary)}.fbr-payments-page .fbr-card.none{border-left:3px solid var(--gray-200);background:var(--gray-50)}.fbr-payments-page .fbr-card-title{margin-bottom:6px;font-size:13px;font-weight:600}.fbr-payments-page .fbr-card-line{color:var(--gray-500);font-size:12px}.fbr-payments-page .fbr-card-diff{margin-top:4px;font-size:11px;font-weight:600}.fbr-payments-page .amount-cell{font-family:var(--mono);color:var(--success);font-weight:600}.fbr-payments-page .ref-cell{font-family:var(--mono);font-size:12.5px}.fbr-payments-page .notes-cell{color:var(--gray-500);text-overflow:ellipsis;white-space:nowrap;max-width:150px;font-size:12px;overflow:hidden}.fbr-payments-page .form-grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=600px){.fbr-payments-page .form-grid-2{grid-template-columns:1fr}}.shifts-page .section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.shifts-page .section-header h2{margin:0;font-size:18px;font-weight:600}.shifts-page .shift-tab-bar{border-bottom:1px solid var(--gray-200);gap:2px;margin-bottom:20px;display:flex}.shifts-page .shift-tab{cursor:pointer;color:var(--gray-500);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 18px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .15s}.shifts-page .shift-tab.active{color:var(--primary);border-bottom-color:var(--primary)}.shifts-page .shift-tab:hover:not(.active){color:var(--gray-700)}.shifts-page .shift-panel{display:none}.shifts-page .shift-panel.active{display:block}.shifts-page .shift-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;display:grid}.shifts-page .shift-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:#fff;padding:18px 20px;transition:box-shadow .15s}.shifts-page .shift-card:hover{box-shadow:0 4px 12px #00000014}.shifts-page .shift-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:14px;display:flex}.shifts-page .shift-card-name{font-size:16px;font-weight:600}.shifts-page .shift-card-company{color:var(--gray-400);font-size:12px}.shifts-page .shift-time-row{align-items:center;gap:16px;margin-bottom:14px;display:flex}.shifts-page .shift-time-block{text-align:center}.shifts-page .shift-time-value{font-size:20px;font-weight:700;font-family:var(--mono)}.shifts-page .shift-time-value.start{color:var(--primary)}.shifts-page .shift-time-value.end{color:var(--gray-700)}.shifts-page .shift-time-label{color:var(--gray-400);font-size:11px}.shifts-page .shift-time-line{background:var(--gray-200);border-radius:1px;flex:1;height:2px;position:relative}.shifts-page .shift-duration{color:var(--gray-400);background:#fff;padding:0 4px;font-size:11px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.shifts-page .day-pill{border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-right:3px;font-size:11px;font-weight:600;display:inline-flex}.shifts-page .day-on{background:var(--primary);color:#fff}.shifts-page .day-off{background:var(--gray-100);color:var(--gray-400)}.shifts-page .shift-meta{color:var(--gray-500);background:var(--gray-50);border-radius:var(--radius);flex-wrap:wrap;gap:14px;margin-bottom:14px;padding:10px;font-size:12.5px;display:flex}.shifts-page .shift-actions{gap:8px;display:flex}.shifts-page .assign-toolbar{border-bottom:1px solid var(--gray-100);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.shifts-page .assign-hint{color:var(--gray-500);font-size:13px}.shifts-page .assign-form-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.shifts-page .assign-select{width:auto;min-width:180px;font-size:13px}.shifts-page .assign-date{width:140px;font-size:12.5px}.shifts-page .assign-notes{width:130px;font-size:12px}.shifts-page .employee-cell{align-items:center;gap:9px;display:flex}.shifts-page .employee-avatar{background:var(--primary-light);width:30px;height:30px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.shifts-page .employee-name{font-size:13px;font-weight:500}.shifts-page .employee-email{color:var(--gray-400);font-size:11.5px}.shifts-page .empty-shifts{text-align:center;color:var(--gray-400);padding:48px}.shifts-page .empty-shifts i{margin-bottom:14px;font-size:42px;display:block}.shifts-page .shift-modal-overlay{z-index:1200;background:#0f172a73;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.shifts-page .shift-modal{border-radius:var(--radius-lg);background:#fff;width:100%;max-width:540px;overflow:hidden}.shifts-page .shift-modal.wide{max-width:560px}.shifts-page .shift-modal.history{max-width:620px}.shifts-page .shift-modal-header{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.shifts-page .shift-modal-header.primary{background:var(--primary);color:#fff;border-bottom:none}.shifts-page .shift-modal-title{font-size:15px;font-weight:600}.shifts-page .shift-modal-close{color:inherit;cursor:pointer;background:#fff3;border:none;border-radius:50%;width:28px;height:28px;font-size:16px}.shifts-page .shift-modal-header:not(.primary) .shift-modal-close{background:var(--gray-100);color:var(--gray-600)}.shifts-page .shift-modal-body{padding:18px}.shifts-page .shift-modal-footer{border-top:1px solid var(--gray-100);justify-content:flex-end;gap:10px;padding:14px 18px;display:flex}.shifts-page .days-checkboxes{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.shifts-page .day-check-label{cursor:pointer;align-items:center;gap:5px;font-size:13px;display:flex}.shifts-page .bulk-emp-list{border:1px solid var(--gray-200);border-radius:var(--radius);max-height:320px;overflow-y:auto}.shifts-page .bulk-emp-toolbar{background:var(--gray-50);border-bottom:1px solid var(--gray-100);color:var(--gray-500);z-index:1;flex-wrap:wrap;gap:8px;padding:8px 14px;font-size:12px;display:flex;position:sticky;top:0}.shifts-page .bulk-emp-row{cursor:pointer;border-bottom:1px solid var(--gray-50);align-items:center;gap:12px;padding:9px 14px;display:flex}.shifts-page .bulk-emp-row:hover{background:var(--gray-50)}.shifts-page .bulk-emp-row input{flex-shrink:0;width:15px;height:15px}.shifts-page .history-body{max-height:420px;padding:0;overflow-y:auto}.shifts-page .history-empty{text-align:center;color:var(--gray-400);padding:24px}.shifts-page .no-shifts-warning{color:var(--gray-500);font-size:13px}.shifts-page .no-shifts-warning i{color:var(--warning);margin-right:4px}.shift-schedule-page .section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.shift-schedule-page .section-header h2{margin:0;font-size:18px;font-weight:600}.shift-schedule-page .upgrade-banner{border-radius:var(--radius-lg);background:#fef3c7;border:1px solid #fde68a;margin-bottom:20px;padding:16px 20px}.shift-schedule-page .layout-grid{grid-template-columns:260px 1fr;align-items:start;gap:20px;display:grid}@media (width<=900px){.shift-schedule-page .layout-grid{grid-template-columns:1fr}}.shift-schedule-page .employee-list-card{padding:0;overflow:hidden}.shift-schedule-page .employee-list-header{border-bottom:1px solid var(--gray-100);text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);padding:10px 14px;font-size:11.5px;font-weight:600}.shift-schedule-page .employee-list-body{max-height:calc(100vh - 220px);overflow-y:auto}.shift-schedule-page .employee-list-item{color:inherit;border-bottom:1px solid var(--gray-50);cursor:pointer;text-align:left;background:0 0;border-top:none;border-left:none;border-right:none;align-items:center;gap:10px;width:100%;padding:10px 14px;font-family:inherit;text-decoration:none;display:flex}.shift-schedule-page .employee-list-item.active{background:var(--primary-light)}.shift-schedule-page .employee-avatar{background:var(--primary-light);width:32px;height:32px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.shift-schedule-page .employee-list-item.active .employee-avatar{background:var(--primary);color:#fff}.shift-schedule-page .employee-list-name{font-size:13px;font-weight:500}.shift-schedule-page .employee-list-shift{color:var(--gray-400);font-size:11px}.shift-schedule-page .info-card{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;padding:16px 20px;display:flex}.shift-schedule-page .info-label{color:var(--gray-400);margin-bottom:3px;font-size:12px}.shift-schedule-page .info-divider{background:var(--gray-200);width:1px;height:36px}.shift-schedule-page .sched-tabs{flex-wrap:wrap;gap:4px;margin-bottom:16px;display:flex}.shift-schedule-page .sched-tab{border-radius:var(--radius);border:1px solid var(--gray-200);background:var(--gray-50);cursor:pointer;color:var(--gray-700);padding:8px 16px;font-family:inherit;font-size:13px}.shift-schedule-page .sched-tab.active{background:var(--primary);border-color:var(--primary);color:#fff}.shift-schedule-page .sched-panel{display:none}.shift-schedule-page .sched-panel.active{display:block}.shift-schedule-page .form-card{padding:20px}.shift-schedule-page .form-card-title{margin-bottom:14px;font-weight:600}.shift-schedule-page .form-grid-3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}@media (width<=768px){.shift-schedule-page .form-grid-3{grid-template-columns:1fr}}.shift-schedule-page .month-day-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-bottom:16px;display:grid}.shift-schedule-page .month-day-card{border:1px solid var(--gray-200);border-radius:var(--radius);padding:12px}.shift-schedule-page .month-day-title{margin-bottom:8px;font-size:13px;font-weight:600}.shift-schedule-page .month-day-title.weekend{color:var(--gray-400)}.shift-schedule-page .month-time-row{gap:6px;margin-top:6px;display:flex}.shift-schedule-page .overrides-card{margin-top:16px;padding:0;overflow:hidden}.shift-schedule-page .overrides-header{border-bottom:1px solid var(--gray-100);padding:12px 18px;font-size:13.5px;font-weight:600}.shift-schedule-page .empty-panel{text-align:center;color:var(--gray-400);padding:48px}.shift-schedule-page .empty-panel i{margin-bottom:12px;font-size:36px;display:block}.shift-schedule-page .warning-banner{border-radius:var(--radius-lg);background:#fef3c7;border:1px solid #fde68a;margin-bottom:16px;padding:14px 18px;font-size:13.5px}.shift-schedule-page .time-mono{font-family:var(--mono);font-size:12px}.payroll-page .period-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.payroll-page .header-actions{flex-wrap:wrap;gap:8px;display:flex}.payroll-page .payroll-days{flex-wrap:wrap;gap:4px;display:flex}.payroll-page .deduction-lines{font-size:12px;line-height:1.7}.payroll-page .deduction-lines .deduct{color:var(--danger)}.payroll-page .deduction-lines .tax{color:var(--warning)}.payroll-page .deduction-lines .incentive{color:var(--success)}.payroll-page .net-salary{color:var(--primary);font-size:14px}.payroll-page .bank-cell{color:var(--gray-600);font-size:12px}.payroll-page .bank-mono{font-family:var(--mono);font-size:11px}.payroll-page .emp-select-list{border:1px solid var(--gray-100);border-radius:var(--radius);max-height:380px;overflow-y:auto}.payroll-page .emp-select-row{border-bottom:1px solid var(--gray-50);cursor:pointer;align-items:center;gap:12px;padding:10px 14px;display:flex}.payroll-page .emp-select-row:hover{background:var(--gray-50)}.payroll-page .emp-select-meta{color:var(--gray-400);font-size:12px}.payroll-page .emp-select-side{flex-shrink:0;align-items:center;gap:8px;margin-left:auto;display:flex}.payroll-page .regen-warning{border-radius:var(--radius);color:#c2410c;background:#fff7ed;border:1px solid #fed7aa;margin-top:12px;padding:12px 14px;font-size:12.5px}.payroll-page .info-box{background:var(--primary-light);border-radius:var(--radius);color:var(--primary);margin-top:12px;padding:10px 14px;font-size:12.5px}.payroll-page .incentive-modal-header{color:#fff;background:#059669;justify-content:space-between;align-items:center;padding:14px 18px;font-weight:600;display:flex}.payroll-page .incentive-modal-header button{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;width:28px;height:28px}.payroll-page .taxable-box{background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-200);cursor:pointer;align-items:flex-start;gap:8px;padding:10px 14px;display:flex}.payroll-page .taxable-box input{flex-shrink:0;width:16px;height:16px;margin-top:2px}.payroll-page .incentive-emp-list{border:1px solid var(--gray-200);border-radius:var(--radius);max-height:300px;overflow-y:auto}.payroll-page .incentive-emp-toolbar{background:var(--gray-50);border-bottom:1px solid var(--gray-100);gap:8px;padding:8px 14px;display:flex}.payroll-page .tfoot-totals{background:var(--gray-50);font-weight:600}.tax-certificate-page .cert-wrap{border-radius:var(--radius-lg);background:#fff;border:1px solid #e5e7eb;max-width:860px;margin:0 auto;overflow:hidden;box-shadow:0 4px 20px #00000014}.tax-certificate-page .cert-top{color:#fff;background:linear-gradient(135deg,#1e3a8a 0%,#1d4ed8 100%);padding:28px 36px 22px}.tax-certificate-page .cert-section{border-bottom:1px solid #f1f5f9;padding:20px 36px}.tax-certificate-page .cert-label{text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;margin-bottom:2px;font-size:10.5px}.tax-certificate-page .cert-value{color:#1e293b;font-size:13.5px;font-weight:600}.tax-certificate-page .info-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.tax-certificate-page .cert-table{border-collapse:collapse;width:100%;font-size:12.5px}.tax-certificate-page .cert-table th{text-align:left;color:#475569;background:#f8fafc;border:1px solid #e2e8f0;padding:9px 12px;font-weight:600}.tax-certificate-page .cert-table td{color:#334155;border:1px solid #e2e8f0;padding:8px 12px}.tax-certificate-page .cert-table tr:nth-child(2n) td{background:#fafbfc}.tax-certificate-page .cert-total td{color:#1e40af;font-weight:700;background:#eff6ff!important}.tax-certificate-page .stamp-box{text-align:center;color:#94a3b8;border:2.5px dashed #cbd5e1;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;min-height:80px;padding:16px;font-size:12px;display:flex}.tax-certificate-page .summary-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.tax-certificate-page .summary-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px 14px}@media (width<=768px){.tax-certificate-page .info-grid,.tax-certificate-page .summary-grid{grid-template-columns:1fr 1fr}}@media print{.sidebar,.topbar,.section-header,.no-print,nav{display:none!important}.main-wrapper{margin:0!important}.content{padding:4px!important}.tax-certificate-page .cert-wrap{box-shadow:none!important}body{background:#fff!important}}.holidays-page .holiday-month-grid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;display:grid}.holidays-page .holiday-month-card{padding:0;overflow:hidden}.holidays-page .holiday-month-header{background:var(--primary);color:#fff;padding:10px 16px;font-size:13px;font-weight:600}.holidays-page .holiday-row{border-bottom:1px solid var(--gray-100);align-items:center;gap:12px;padding:10px 16px;display:flex}.holidays-page .holiday-date-badge{text-align:center;border-radius:8px;flex-shrink:0;min-width:42px;padding:4px 10px;font-size:12px;font-weight:700}.holidays-page .holiday-date-badge.mandatory{color:#1e40af;background:#dbeafe}.holidays-page .holiday-date-badge.optional{color:#92400e;background:#fef3c7}.holidays-page .holiday-date-badge .day-name{font-size:10px;font-weight:400}.holidays-page .holiday-info{flex:1;min-width:0}.holidays-page .holiday-name{font-size:13px;font-weight:600}.holidays-page .holiday-desc{color:var(--gray-400);font-size:12px}.holidays-page .optional-pill{color:#92400e;background:#fef3c7;border-radius:8px;padding:1px 6px;font-size:11px}.holidays-page .overrides-section{margin-top:24px;padding-top:24px}.org-hierarchy-page{padding:0 4px 32px}.org-hierarchy-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.org-hierarchy-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;min-width:220px;display:flex}.org-filter-group{flex-direction:column;gap:4px;min-width:220px;display:flex}.org-hierarchy-loading,.org-hierarchy-empty{color:var(--gray-500);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.org-hierarchy-empty i{opacity:.45;font-size:2rem}.org-hierarchy-chart-wrap{background:var(--white);border:1px solid var(--gray-200);border-radius:12px;padding:24px 16px 32px;overflow:auto;box-shadow:0 1px 3px #0f172a0a}.org-hierarchy-hint{color:var(--gray-500);text-align:center;margin:0 0 20px;font-size:13px}.org-hierarchy-chart{flex-direction:column;align-items:center;gap:56px;width:100%;display:flex}.org-tree-root{justify-content:center;width:100%;padding:8px 4px 16px;display:flex;overflow-x:auto}.org-tree{--org-line-color:var(--gray-300);--org-line-width:2px;--org-line-gap:36px;--org-node-gap:24px;--org-card-width:200px;margin:0;padding:0;list-style:none}.org-tree ul{margin:0;padding:0;list-style:none}.org-tree-children{width:100%;padding-top:var(--org-line-gap);flex-wrap:nowrap;justify-content:center;margin-top:4px;display:flex;position:relative}.org-tree-children:before{content:"";width:var(--org-line-width);height:var(--org-line-gap);background:var(--org-line-color);position:absolute;top:0;left:50%;transform:translate(-50%)}.org-tree-item{min-width:calc(var(--org-card-width) + var(--org-node-gap));padding:var(--org-line-gap) calc(var(--org-node-gap) / 2) 0;box-sizing:border-box;flex-direction:column;flex:none;align-items:center;display:flex;position:relative}.org-tree-item--branch{width:max-content;max-width:none}.org-tree-item--root{padding-top:0}.org-tree-item--root:before,.org-tree-item--root:after{display:none}.org-tree-item:before,.org-tree-item:after{content:"";width:50%;height:var(--org-line-gap);box-sizing:border-box;position:absolute;top:0}.org-tree-item:before{border-top:var(--org-line-width) solid var(--org-line-color);right:50%}.org-tree-item:after{border-top:var(--org-line-width) solid var(--org-line-color);border-left:var(--org-line-width) solid var(--org-line-color);left:50%}.org-tree-item:only-child:before,.org-tree-item:only-child:after{display:none}.org-tree-item:first-child:before{border:none}.org-tree-item:first-child:after{border-radius:6px 0 0}.org-tree-item:last-child:before{border-right:var(--org-line-width) solid var(--org-line-color);border-radius:0 6px 0 0}.org-tree-item:last-child:after{border:none}.org-tree-card-wrap{z-index:2;flex-shrink:0;justify-content:center;width:100%;display:flex;position:relative}.org-node-card{width:var(--org-card-width);background:var(--white);border:1px solid var(--gray-200);text-align:left;box-sizing:border-box;z-index:2;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex;position:relative;box-shadow:0 2px 8px #0f172a0f}.org-node-card--inactive{opacity:.72;border-style:dashed}.org-node-avatar{color:#fff;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:12px;font-weight:700;display:flex}.org-node-body{flex:1;min-width:0}.org-node-name{color:var(--gray-900);font-size:13.5px;font-weight:600;line-height:1.3}.org-node-designation{color:var(--gray-600);margin-top:2px;font-size:12px}.org-node-meta{color:var(--gray-500);flex-wrap:wrap;gap:6px;margin-top:6px;font-size:11px;display:flex}.org-node-code{background:var(--gray-100);border-radius:4px;padding:1px 5px;font-family:ui-monospace,monospace}.org-node-role{text-transform:capitalize}.org-node-status{text-transform:uppercase;letter-spacing:.04em;color:var(--gray-500);margin-top:6px;font-size:10px;display:inline-block}.admin-page .section-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.admin-page .section-header h2{color:var(--gray-900);margin:0;font-size:18px;font-weight:600}.admin-page .admin-filter-bar{border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:#fff;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:20px;padding:16px 20px;display:flex}.admin-page .admin-filter-bar .form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.admin-page .admin-filter-bar .form-control,.admin-page .admin-filter-bar .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);color:var(--gray-800);background:#fff;min-height:38px;padding:9px 12px;font-size:13.5px}.admin-page .admin-filter-bar .form-control{width:220px}.admin-page .admin-filter-bar .form-select{min-width:160px}.admin-page .admin-filter-bar .form-control:focus,.admin-page .admin-filter-bar .form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a56db26}.admin-page .admin-filter-actions{align-items:center;gap:8px;display:flex}.admin-page .admin-table-actions{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.admin-page .admin-table-actions .btn.btn-xs{white-space:nowrap;min-height:26px;padding:4px 8px;font-size:11.5px}.admin-page .user-row-company{color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;background:var(--gray-50);border-bottom:1px solid var(--gray-100);padding:10px 14px 4px;font-size:11px;font-weight:600}.admin-page .mono-cell{font-family:var(--mono);font-size:12.5px}.admin-page .salary-block{background:var(--gray-50);border-radius:var(--radius);margin-top:4px;padding:14px}.admin-page .salary-block-title{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:12px;font-size:11.5px;font-weight:600}.admin-page .salary-preview-row{border-top:1px solid var(--gray-200);flex-wrap:wrap;gap:20px;margin-top:4px;padding-top:8px;font-size:13px;display:flex}.admin-page .info-banner{background:var(--primary-light);border-radius:var(--radius);color:var(--primary);margin-bottom:16px;padding:12px 14px;font-size:13px}.admin-modal .emp-modal-body{max-height:calc(100vh - 180px);padding:20px 24px;overflow-y:auto}.admin-modal .emp-modal-body .form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.admin-modal .emp-modal-body .form-control,.admin-modal .emp-modal-body .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);width:100%;color:var(--gray-800);background:#fff;padding:9px 12px;font-size:13.5px}.admin-modal .emp-modal-body .form-control:focus,.admin-modal .emp-modal-body .form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a56db26}.admin-modal .form-hint{color:var(--gray-500);margin-top:4px;font-size:12px}.companies-page .co-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);cursor:pointer;background:#fff;padding:18px;transition:all .15s}.companies-page .co-card:hover{border-color:var(--gray-300);box-shadow:0 3px 12px #00000012}.companies-page .co-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px #1a56db1a}.companies-page .two-col{grid-template-columns:300px 1fr;align-items:start;gap:20px;display:grid}.companies-page .tab-bar{border-bottom:1px solid var(--gray-200);gap:2px;padding:0 20px;display:flex}.companies-page .tab-btn{cursor:pointer;color:var(--gray-500);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 16px;font-family:inherit;font-size:13px;transition:all .15s}.companies-page .tab-btn:hover:not(.active){color:var(--gray-700)}.companies-page .tab-btn.active{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}.companies-page .tab-panel{display:none}.companies-page .tab-panel.active{display:block}.companies-page .tab-panel-users-header{border-bottom:1px solid var(--gray-100);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.companies-page .role-chip{border-radius:20px;align-items:center;padding:3px 9px;font-size:11.5px;font-weight:500;display:inline-flex}.companies-page .chip-cadmin{color:#1d4ed8;background:#eff6ff}.companies-page .chip-hr{color:#166534;background:#f0fdf4}.companies-page .chip-finance{color:#1e40af;background:#eff6ff}.companies-page .chip-emp{color:#475569;background:#f1f5f9}.companies-page .co-stat-box{border-radius:var(--radius);text-align:center;padding:12px}.companies-page .co-stat-value{font-size:22px;font-weight:700}.companies-page .co-stat-label{color:var(--gray-500);margin-top:2px;font-size:11px}.companies-page .co-contact-row{border-top:1px solid var(--gray-100);color:var(--gray-600);flex-wrap:wrap;gap:14px;margin-top:14px;padding-top:12px;font-size:13px;display:flex}.companies-page .dept-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:14px;display:grid}.companies-page .dept-card-item{background:var(--gray-50);border:1px solid var(--gray-100);border-radius:var(--radius);padding:14px}.companies-page .quick-add-dept-form{background:var(--primary-light);border-radius:var(--radius);border:1px solid #bfdbfe;padding:14px}.companies-page .quick-add-dept-title{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:12px;font-weight:600}.companies-page .quick-add-dept-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.companies-page .quick-add-dept-row .form-control{border:1px solid var(--gray-300);border-radius:var(--radius);flex:1;min-width:160px;padding:9px 12px;font-size:13.5px}.companies-page .quick-action-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.companies-page .quick-action-link{border-radius:var(--radius);color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:11px;width:100%;padding:13px;font-family:inherit;text-decoration:none;transition:opacity .15s;display:flex}.companies-page .quick-action-link:hover{opacity:.8}.companies-page .select-company-card{text-align:center;color:var(--gray-400);padding:56px}@media (width<=860px){.companies-page .two-col,.companies-page .quick-action-grid{grid-template-columns:1fr}}.profile-page{max-width:920px}.profile-page .profile-tabs{border-bottom:1px solid var(--gray-200);flex-wrap:wrap;gap:4px;margin-bottom:22px;display:flex}.profile-page .ptab{cursor:pointer;color:var(--gray-500);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 18px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .15s}.profile-page .ptab.active{color:var(--primary);border-bottom-color:var(--primary)}.profile-page .ptab:hover:not(.active){color:var(--gray-700)}.profile-page .ppanel{display:none}.profile-page .ppanel.active{display:block}.profile-page .info-row{border-bottom:1px solid var(--gray-100);align-items:flex-start;gap:14px;padding:10px 0;font-size:13.5px;display:flex}.profile-page .info-row:last-child{border-bottom:none}.profile-page .info-row .ilab{width:160px;color:var(--gray-500);flex-shrink:0;padding-top:1px;font-size:12.5px}.profile-page .info-row .ival{color:var(--gray-800);flex:1;font-weight:500}.profile-page .profile-header-card{padding:22px 26px}.profile-page .avatar-wrap{flex-shrink:0;position:relative}.profile-page .avatar-circle{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:76px;height:76px;font-size:28px;font-weight:700;display:flex}.profile-page .company-logo-badge{object-fit:cover;border:2px solid #fff;border-radius:50%;width:26px;height:26px;position:absolute;bottom:-4px;right:-4px}.profile-page .leave-bar{background:var(--gray-100);border-radius:4px;height:7px;overflow:hidden}.profile-page .leave-bar-fill{border-radius:4px;height:100%}.profile-page .mini-stats{text-align:center;flex-shrink:0;gap:20px;display:flex}.profile-page .grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=768px){.profile-page .grid-2{grid-template-columns:1fr}.profile-page .mini-stats{justify-content:space-around;width:100%}}.my-att-layout{grid-template-columns:360px minmax(0,1fr);align-items:start;gap:20px;width:100%;display:grid}@media (width<=1100px){.my-att-layout{grid-template-columns:1fr}}.my-att-clock-card{text-align:center}.my-att-card-header{flex-direction:column;justify-content:center;gap:8px}.my-att-clock-display{margin:12px 0 4px}.my-att-clock-display .live-clock{color:var(--gray-800);font-size:42px}.my-att-short-date{color:var(--gray-500);margin-bottom:16px;font-size:13px}.my-att-status-bar{justify-content:center;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;display:flex}.my-att-status-dot{border-radius:50%;width:8px;height:8px}.my-att-status-dot.gray{background:var(--gray-400)}.my-att-status-dot.green{background:var(--success)}.my-att-status-dot.amber{background:var(--warning)}.my-att-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.my-att-primary-btn{padding:12px 36px;font-size:15px}.my-att-break-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.my-att-break-row .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);width:auto;color:var(--gray-700);cursor:pointer;appearance:none;white-space:nowrap;background-color:#fff;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='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding:8px 36px 8px 16px;font-family:inherit;font-size:13.5px;font-weight:500;transition:all .15s}.my-att-break-row .form-select:hover{background-color:var(--gray-50)}.my-att-break-row .form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a56db26}.my-att-first-in{color:var(--gray-500);margin-bottom:4px;font-size:13px}.my-att-elapsed-timer{font-size:28px;font-weight:600;font-family:var(--mono);color:var(--primary);font-variant-numeric:tabular-nums;min-width:9ch;margin-bottom:4px;display:inline-block}.my-att-live-net{font-variant-numeric:tabular-nums}.my-att-elapsed-label{color:var(--gray-500);margin-bottom:6px;font-size:13px}.my-att-summary{background:var(--gray-50);border-radius:var(--radius-lg);margin:12px 0 20px;padding:16px}.my-att-summary-grid{text-align:center;grid-template-columns:1fr 1fr;gap:12px;display:grid}.my-att-summary-label{color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;font-size:11px}.my-att-summary-value{font-size:18px;font-weight:700;font-family:var(--mono)}.my-att-total-hours{color:var(--primary);margin-top:12px;font-size:28px;font-weight:700}.my-att-net-hours{color:var(--success);margin-bottom:20px;font-size:15px;font-weight:600}.my-att-net-sub{color:var(--gray-400);margin-top:2px;font-size:11px;font-weight:400}.my-att-today-log{text-align:left;margin-top:20px}.my-att-today-log-title{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);margin-bottom:8px;font-size:11px;font-weight:600}.my-att-break-item{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:8px 0;font-size:13px;display:flex}.my-att-away-label{color:var(--gray-500);font-weight:500}.my-att-break-time{color:var(--gray-400);margin-left:4px}.my-att-month-form{align-items:center;gap:6px;display:flex}.my-att-month-form .form-select{border:1px solid var(--gray-300);border-radius:var(--radius);width:auto;color:var(--gray-700);cursor:pointer;appearance:none;background-color:#fff;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='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding:5px 28px 5px 10px;font-family:inherit;font-size:12.5px;font-weight:500;transition:all .15s}.my-att-month-form .form-select:hover{background-color:var(--gray-50)}.my-att-month-form .form-select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #1a56db26}.my-att-stats-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.my-att-stat-box{text-align:center;background:var(--gray-50);border-radius:var(--radius);padding:12px}.my-att-stat-value{font-size:26px;font-weight:700}.my-att-stat-value.success{color:var(--success)}.my-att-stat-value.primary{color:var(--primary)}.my-att-stat-value.warning{color:var(--warning)}.att-log-table-wrap{width:100%;overflow-x:auto}.att-log-table{width:100%;min-width:640px}.mono-cell{font-family:var(--mono)}.my-att-detail-btn{padding:3px 8px;font-size:12px}.my-att-day-modal-body{padding:0}.my-att-day-summary{background:var(--gray-50);text-align:center;border-bottom:1px solid var(--gray-100);grid-template-columns:repeat(3,1fr);gap:12px;padding:16px 20px;display:grid}.my-att-day-summary-label{color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px}.my-att-day-summary-value{font-size:18px;font-weight:700;font-family:var(--mono)}.my-att-day-summary-value.primary{color:var(--primary)}.my-att-day-content{padding:16px 20px}.my-att-day-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-500);margin-bottom:12px;font-size:12px;font-weight:600}.my-att-day-section-title i{margin-right:5px}.my-att-day-forced-notice{border-radius:0 var(--radius) var(--radius) 0;color:#b45309;background:#fef3c7;border-left:3px solid #f59e0b;margin-bottom:12px;padding:8px 12px;font-size:12.5px}.my-att-day-row,.my-att-day-breaks-list-row{border-bottom:1px solid var(--gray-100);justify-content:space-between;align-items:center;padding:10px 0;display:flex}.my-att-day-row-forced{border-radius:var(--radius);background:#fffbeb;margin:0 -4px;padding:10px 14px}.my-att-day-row-title,.my-att-day-added-title,.my-att-day-break-title{font-size:13px;font-weight:600}.my-att-day-row-times{color:var(--gray-500);font-size:12.5px;font-family:var(--mono);margin-top:2px}.my-att-day-row-times.inline{margin-top:0;margin-left:4px;display:inline}.my-att-day-row-dur{color:var(--primary);white-space:nowrap;margin-left:12px;font-size:13px;font-weight:600}.my-att-day-row-dur.forced{color:#b45309}.my-att-day-row-dur.primary{color:var(--primary)}.my-att-day-forced-tag{color:#fff;background:#f59e0b;border-radius:10px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:600}.my-att-day-forced-time{color:#b45309}.my-att-day-forced-box{border-bottom:1px solid var(--gray-100);border-radius:var(--radius);background:#fef3c7;border-left:3px solid #f59e0b;margin:0 -4px;padding:8px 14px}.my-att-day-forced-box-title{color:#b45309;font-size:12.5px;font-weight:600}.my-att-day-forced-box-time{color:#92400e;font-size:12px;font-family:var(--mono);margin-top:1px}.my-att-day-forced-box-note{color:#b45309;margin-top:2px;font-size:11.5px;font-style:italic}.my-att-day-added-box,.my-att-day-break-box{border-bottom:1px solid var(--gray-100);border-radius:var(--radius);justify-content:space-between;align-items:center;margin:0 -4px;padding:10px 14px;display:flex}.my-att-day-added-box{background:var(--primary-light)}.my-att-day-break-box{background:var(--warning-light)}.my-att-day-added-note,.my-att-day-break-note{margin-top:2px;font-size:11.5px;font-style:italic}.my-att-day-added-note{color:var(--primary)}.my-att-day-break-note{color:var(--gray-500)}.my-att-day-hr-badge{background:var(--primary);color:#fff;border-radius:10px;margin-left:4px;padding:1px 7px;font-size:11px;font-weight:600}.my-att-day-hr-badge.sm{margin-right:4px;padding:1px 6px}.my-att-day-deduct-tag{color:var(--gray-500);margin-left:6px;font-size:10px}.my-att-day-deduct-tag.deducted{color:#b45309}.my-att-day-empty{color:var(--gray-400);padding:8px 0;font-size:13px}.my-att-day-breaks-section{margin-top:16px}.my-att-day-breaks-list-row{padding:8px 0}.my-att-day-break-list-note{color:var(--gray-400);margin-top:2px;font-size:11px;font-style:italic}.my-att-day-breaks-toggle{justify-content:center;width:100%;margin-top:16px}.my-att-day-breaks-list-row .badge-teal{background:var(--info-light,#ccfbf1);color:var(--info,#0d9488)}.payslip-print-page{background:var(--gray-100);min-height:100vh;padding:30px 20px}.payslip-print-page .no-print-bar{gap:10px;max-width:780px;margin:0 auto 20px;display:flex}.payslip-print-page .ps-card{border:1px solid var(--gray-200);border-radius:var(--radius-lg);background:#fff;max-width:780px;margin:0 auto;overflow:hidden}.payslip-print-page .ps-header{background:var(--gray-900);color:#fff;justify-content:space-between;align-items:flex-start;gap:20px;padding:28px 32px;display:flex}.payslip-print-page .ps-logo-box{background:#fff;border-radius:8px;justify-content:center;align-items:center;padding:6px 12px;display:inline-flex}.payslip-print-page .ps-logo-box img{object-fit:contain;max-width:140px;max-height:44px;display:block}.payslip-print-page .ps-company{font-size:22px;font-weight:700}.payslip-print-page .ps-company-detail{color:#9ca3af;margin-top:4px;font-size:12px;line-height:1.6}.payslip-print-page .ps-title-block{text-align:right}.payslip-print-page .ps-slip-title{text-transform:uppercase;letter-spacing:.08em;color:#93c5fd;font-size:16px;font-weight:600}.payslip-print-page .ps-slip-period{margin-top:4px;font-size:24px;font-weight:700}.payslip-print-page .ps-body{padding:20px 32px 32px}.payslip-print-page .ps-meta{border-bottom:1px solid var(--gray-200);grid-template-columns:1fr 1fr;gap:6px 32px;margin-bottom:20px;padding-bottom:18px;display:grid}.payslip-print-page .ps-meta-block{align-items:baseline;gap:0;display:flex}.payslip-print-page .ps-meta-block label{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);white-space:nowrap;flex-shrink:0;width:130px;font-size:11px;font-weight:600}.payslip-print-page .ps-meta-block label:after{content:":";margin-right:6px}.payslip-print-page .ps-meta-block span{color:var(--gray-800);font-size:13px;font-weight:500}.payslip-print-page .ps-section{grid-template-columns:1fr 1fr;gap:24px;margin-bottom:24px;display:grid}.payslip-print-page .ps-col-title{text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--gray-200);margin-bottom:8px;padding-bottom:8px;font-size:12px;font-weight:700}.payslip-print-page .ps-row{border-bottom:1px solid var(--gray-50);justify-content:space-between;gap:12px;padding:6px 0;font-size:13.5px;display:flex}.payslip-print-page .ps-row .label{color:var(--gray-600)}.payslip-print-page .ps-row .amount{color:var(--gray-800);white-space:nowrap;font-weight:500}.payslip-print-page .ps-row .deduct{color:var(--danger);white-space:nowrap}.payslip-print-page .ps-row.subtotal{border-top:1px solid var(--gray-200);margin-top:4px;padding-top:10px;font-weight:600}.payslip-print-page .ps-attend{border:1px solid var(--gray-200);border-radius:var(--radius);margin-bottom:24px;display:flex;overflow:hidden}.payslip-print-page .ps-attend-cell{text-align:center;border-right:1px solid var(--gray-200);flex:1;padding:12px 8px}.payslip-print-page .ps-attend-cell:last-child{border-right:none}.payslip-print-page .ps-attend-cell .val{font-size:22px;font-weight:600}.payslip-print-page .ps-attend-cell .lbl{color:var(--gray-500);margin-top:2px;font-size:11px}.payslip-print-page .ps-net{background:var(--gray-900);color:#fff;border-radius:var(--radius-lg);justify-content:space-between;align-items:center;margin-top:24px;padding:20px 28px;display:flex}.payslip-print-page .ps-net-label{opacity:.75;text-transform:uppercase;letter-spacing:.06em;font-size:14px}.payslip-print-page .ps-net-amount{font-size:32px;font-weight:700;font-family:var(--mono);color:#34d399}.payslip-print-page .ps-footer{text-align:center;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-top:40px;display:grid}.payslip-print-page .ps-sign{border-top:1px solid var(--gray-300);color:var(--gray-500);padding-top:8px;font-size:12px}.payslip-print-page .ps-note{background:var(--gray-50);border-radius:var(--radius);color:var(--gray-500);text-align:center;margin-top:20px;padding:12px 16px;font-size:12px}@media print{.payslip-print-page .no-print-bar{display:none}.payslip-print-page{background:#fff;padding:0}.payslip-print-page .ps-card{border:none;max-width:100%}}@media (width<=768px){.payslip-print-page .ps-meta,.payslip-print-page .ps-section{grid-template-columns:1fr}.payslip-print-page .ps-header{flex-direction:column}.payslip-print-page .ps-title-block{text-align:left}}
