@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+Bengali:wght@400;500;600;700&display=swap";:root{--brand-primary:#0071e3;--brand-primary-dim:#0071e314;--brand-primary-hover:#005bb5;--sidebar-bg:#e4e7f0;--sidebar-border:#cdd2de;--sidebar-accent:#4f46e5;--sidebar-accent-dim:#4f46e51a;--sidebar-item-hover:#4f46e512;--sidebar-item-active:var(--sidebar-accent-dim);--sidebar-item-active-border:var(--sidebar-accent);--sidebar-text:#4a4a4f;--sidebar-text-active:var(--sidebar-accent);--sidebar-width:250px;--sidebar-width-collapsed:68px;--bg-page:#e8e8ec;--bg-card:#f2f2f5;--bg-card-hover:#ececf0;--bg-surface:#e4e4e8;--bg-input:#ededf0;--bg-table-header:#e4e4e8;--bg-table-row-hover:#00000006;--border:#d4d4d8;--border-light:#e0e0e4;--border-focus:#0071e3;--text-primary:#1d1d1f;--text-secondary:#86868b;--text-muted:#86868b;--text-label:#515154;--green:#34c759;--green-dim:#34c7591a;--blue:#0071e3;--blue-dim:#0071e31a;--amber:#ff9500;--amber-dim:#ff95001a;--red:#ff3b30;--red-dim:#ff3b301a;--purple:#af52de;--purple-dim:#af52de1a;--surface-hover:#0000000d;--surface-muted:#0000000a;--surface-elevated:#00000012;--btn-primary-text:#fff;--overlay-bg:#0000008c;--shadow-lg:0 24px 48px #0000002e;--focus-ring:#4f46e52e;--chip-bg:#0000000f;--stage-green-text:#1a7a34;--stage-amber-text:#b35c00;--stage-red-text:#c41e1e;--card-shadow:0 1px 2px #0000000a;--chart-grid:#0000000f;--chart-bar-muted-start:#cbd5e1;--chart-bar-muted-end:#94a3b8;--locked-btn-bg:#fff7ed;--locked-btn-border:#fdba74;--locked-btn-text:#c2410c;font-family:Inter,Noto Sans Bengali,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5}[data-theme=dark]{--brand-primary:#5e9eff;--brand-primary-dim:#5e9eff24;--brand-primary-hover:#4a8ae6;--sidebar-bg:#13131a;--sidebar-border:#2a2a3a;--sidebar-accent:#818cf8;--sidebar-accent-dim:#818cf824;--sidebar-item-hover:#818cf814;--sidebar-text:#a1a1aa;--sidebar-text-active:#a5b4fc;--bg-page:#0f0f14;--bg-card:#1a1a24;--bg-card-hover:#22222e;--bg-surface:#16161f;--bg-input:#22222e;--bg-table-header:#1e1e28;--bg-table-row-hover:#ffffff08;--border:#2e2e3e;--border-light:#3a3a4e;--border-focus:#5e9eff;--text-primary:#f4f4f5;--text-secondary:#a1a1aa;--text-muted:#71717a;--text-label:#d4d4d8;--green:#4ade80;--green-dim:#4ade801f;--blue:#5e9eff;--blue-dim:#5e9eff1f;--amber:#fbbf24;--amber-dim:#fbbf241f;--red:#f87171;--red-dim:#f871711f;--purple:#c084fc;--purple-dim:#c084fc1f;--surface-hover:#ffffff0f;--surface-muted:#ffffff0a;--surface-elevated:#ffffff14;--btn-primary-text:#fff;--overlay-bg:#000000bf;--shadow-lg:0 24px 48px #0009;--focus-ring:#818cf838;--chip-bg:#ffffff0f;--stage-green-text:#86efac;--stage-amber-text:#fcd34d;--stage-red-text:#fca5a5;--card-shadow:0 1px 3px #0000004d;--chart-grid:#ffffff14;--chart-bar-muted-start:#374151;--chart-bar-muted-end:#4b5563;--locked-btn-bg:#fbbf241f;--locked-btn-border:#fbbf2459;--locked-btn-text:#fcd34d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{background:var(--bg-page);color:var(--text-primary);-webkit-font-smoothing:antialiased}#root{flex-direction:column;height:100vh;display:flex}#root>.auth-gate{flex:1;width:100%}button{cursor:pointer;border:none;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-light)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-in{animation:.3s ease-out forwards fadeUp}.animate-spin{animation:.8s linear infinite spin}.auth-gate{box-sizing:border-box;background:radial-gradient(circle at top, #4f46e51f, transparent 42%), var(--bg-page);flex:1;justify-content:center;align-items:center;width:100%;min-height:100%;padding:2rem;display:flex}.auth-gate-card{border:1px solid var(--border);background:var(--bg-secondary);text-align:center;border-radius:20px;width:min(100%,440px);padding:2rem;box-shadow:0 24px 60px #0f172a1f}.auth-gate-icon{width:56px;height:56px;color:var(--sidebar-accent);background:var(--sidebar-accent-dim);border-radius:16px;place-items:center;margin:0 auto 1rem;display:grid}.auth-gate-spinner{border:3px solid var(--border);border-top-color:var(--sidebar-accent);border-radius:50%;width:42px;height:42px;margin:0 auto 1rem;animation:.8s linear infinite spin}.auth-gate-title{color:var(--text-primary);margin:0 0 .75rem;font-size:1.35rem;font-weight:600}.auth-gate-copy{color:var(--text-secondary);margin:0;line-height:1.6}.auth-gate-error{color:#dc2626;background:#ef44441a;border-radius:12px;margin:1rem 0 0;padding:.75rem 1rem;font-size:.92rem}.auth-gate-button{color:#fff;background:linear-gradient(135deg,#4338ca,#6366f1);border-radius:12px;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding:.85rem 1.2rem;font-weight:600;text-decoration:none;display:inline-flex}.auth-gate-button:hover{filter:brightness(1.05)}.app-shell{width:100vw;height:100vh;display:flex;overflow:hidden}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.page-content{flex:1;padding:28px 32px;overflow-y:auto}.topbar{background:var(--sidebar-bg);border-bottom:1px solid var(--sidebar-border);flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 32px;display:flex}.topbar-title{color:var(--text-primary);font-size:15px;font-weight:600}.topbar-subtitle{color:var(--text-muted);margin-top:1px;font-size:12px}.topbar-right{align-items:center;gap:12px;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);flex-direction:column;flex-shrink:0;height:100vh;transition:width .22s;display:flex;position:relative;overflow:hidden}.sidebar-collapse-btn{z-index:20;border:1px solid var(--border);background:var(--bg-card);width:24px;height:24px;color:var(--text-muted);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;transition:color .15s,border-color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:22px;right:-12px;box-shadow:0 1px 4px #0f172a1f}.sidebar-collapse-btn:hover{color:var(--sidebar-accent);border-color:var(--sidebar-accent);box-shadow:0 2px 8px #4f46e52e}.sidebar-collapsed{width:var(--sidebar-width-collapsed)}.sidebar-collapsed .sidebar-header{justify-content:center;padding:16px 10px 14px}.sidebar-collapsed .sidebar-logo{width:36px;height:36px}.sidebar-collapsed .sidebar-nav{align-items:center;padding:10px 8px}.sidebar-collapsed .nav-item{border-left:none;border-radius:10px;justify-content:center;width:44px;height:44px;padding:0}.sidebar-collapsed .nav-item-label,.sidebar-collapsed .sidebar-section-label,.sidebar-collapsed .sidebar-brand-text,.sidebar-collapsed .sidebar-footer-label,.sidebar-collapsed .sidebar-user-meta{display:none}.sidebar-collapsed .nav-item-icon{opacity:1;width:18px;height:18px}.sidebar-collapsed .nav-badge{min-width:16px;height:16px;margin-left:0;padding:0 4px;font-size:9px;line-height:16px;position:absolute;top:4px;right:4px}.sidebar-collapsed .nav-badge-collapsed{top:2px;right:2px}.sidebar-collapsed .sidebar-footer{flex-direction:column;align-items:center;gap:8px;padding:10px 8px 12px;display:flex}.sidebar-collapsed .theme-toggle{justify-content:center;width:44px;height:44px;margin-bottom:0;padding:0}.sidebar-collapsed .sidebar-user-card{justify-content:center;width:44px;padding:0}.sidebar-brand-text{min-width:0}.sidebar-header{border-bottom:1px solid var(--sidebar-border);align-items:center;gap:12px;padding:20px 16px 16px;display:flex}.sidebar-logo{background:var(--bg-card);border:1px solid var(--border);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:800;display:flex;overflow:hidden}.sidebar-brand-name{color:var(--text-primary);font-size:13px;font-weight:700;line-height:1.2}.sidebar-brand-tag{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:500}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:12px 10px;display:flex;overflow-y:auto}.sidebar-section-label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-top:4px;padding:8px 8px 4px;font-size:10px;font-weight:600}.nav-item{color:var(--sidebar-text);cursor:pointer;border-left:2.5px solid #0000;border-radius:7px;align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;font-weight:500;transition:all .15s;display:flex;position:relative}.nav-item:hover{background:var(--sidebar-item-hover);color:var(--sidebar-text-active)}.nav-item.active{background:var(--sidebar-item-active);color:var(--sidebar-text-active);border-left-color:var(--sidebar-item-active-border);font-weight:600}.nav-item-icon{opacity:.75;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:inline-flex}.nav-item-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nav-item.active .nav-item-icon{opacity:1}.nav-badge{background:var(--sidebar-accent-dim);color:var(--sidebar-accent);text-align:center;border-radius:999px;min-width:20px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:700}.nav-badge-red{background:var(--red-dim);color:var(--red)}.sidebar-footer{border-top:1px solid var(--sidebar-border);padding:12px 10px}.sidebar-user-card{cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;transition:background .15s;display:flex}.sidebar-user-card:hover{background:var(--sidebar-item-hover)}.user-avatar-sm{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.user-display-name{color:var(--text-primary);font-size:12.5px;font-weight:600}.user-display-role{color:var(--text-muted);font-size:11px}.theme-toggle{width:100%;color:var(--sidebar-text);background:0 0;border-radius:7px;align-items:center;gap:10px;margin-bottom:6px;padding:9px 10px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.theme-toggle:hover{background:var(--sidebar-item-hover);color:var(--sidebar-text-active)}.role-switcher{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;align-items:center;gap:2px;padding:3px;display:flex}.role-btn{color:var(--text-muted);background:0 0;border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;transition:all .15s}.role-btn.active{background:var(--brand-primary);color:var(--btn-primary-text)}.page-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.page-title{color:var(--text-primary);font-size:22px;font-weight:700;line-height:1.2}.page-subtitle{color:var(--text-secondary);margin-top:3px;font-size:13px}.page-actions{align-items:center;gap:10px;display:flex}.btn{white-space:nowrap;border-radius:8px;align-items:center;gap:7px;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--brand-primary);color:var(--btn-primary-text)}.btn-primary:hover{background:var(--brand-primary-hover);box-shadow:0 0 16px var(--focus-ring)}.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}.btn:disabled:hover,.btn[disabled]:hover{box-shadow:none}.btn-secondary{background:var(--surface-muted);border:1px solid var(--border);color:var(--text-primary)}.btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-light)}.btn-ghost{color:var(--text-secondary);background:0 0;padding:6px 10px}.btn-ghost:hover{background:var(--surface-hover);color:var(--text-primary)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid #ef444440}.btn-danger:hover{background:#ef444433}.btn-warning{background:var(--amber-dim);color:var(--stage-amber-text);border:1px solid #ff950059}.btn-warning:hover{background:#ff95002e;border-color:#ff950073}.btn-sm{padding:5px 12px;font-size:12px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px}.card-sm{border-radius:10px;padding:16px}.policy-guide{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px 16px;margin-bottom:12px;padding:10px 12px;display:grid}.policy-guide-section{border-left:2px solid var(--border);flex-direction:column;gap:4px;padding-left:10px;display:flex}.policy-guide-section--amber{border-left-color:var(--amber)}.policy-guide-section--red{border-left-color:var(--red)}.policy-guide-section--blue{border-left-color:var(--brand-primary)}.policy-guide-section--green{border-left-color:var(--green)}.policy-guide-heading{color:var(--text-primary);letter-spacing:.01em;align-items:center;gap:5px;font-size:11px;font-weight:600;display:flex}.policy-guide-list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.policy-guide-list li{color:var(--text-secondary);padding-left:12px;font-size:11px;line-height:1.35;position:relative}.policy-guide-list li:before{content:"";background:var(--text-muted);opacity:.45;border-radius:50%;width:4px;height:4px;position:absolute;top:6px;left:0}.policy-guide-list li strong{color:var(--text-primary);font-weight:600}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px;display:grid}.kpi-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:18px 20px;transition:border-color .2s,transform .2s}.kpi-card:hover{border-color:var(--border-light);transform:translateY(-1px)}.kpi-icon{border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;margin-bottom:12px;display:flex}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;font-size:11.5px;font-weight:500}.kpi-value{color:var(--text-primary);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:800;line-height:1.1}.kpi-change{align-items:center;gap:4px;margin-top:6px;font-size:11.5px;font-weight:600;display:flex}.kpi-change.up{color:var(--green)}.kpi-change.down{color:var(--red)}.kpi-change.neutral{color:var(--text-muted)}.table-wrapper{border:1px solid var(--border);border-radius:10px;overflow:hidden}.table-wrapper-loading{min-height:280px;position:relative}.table-wrapper-loading .data-table{opacity:.35;filter:blur(.5px);pointer-events:none;-webkit-user-select:none;user-select:none;transition:opacity .2s,filter .2s}.table-loading-overlay{z-index:10;background:color-mix(in srgb, var(--bg-page) 55%, transparent);-webkit-backdrop-filter:blur(10px)saturate(120%);pointer-events:all;justify-content:center;align-items:center;animation:.2s ease-out tableOverlayIn;display:flex;position:absolute;inset:0}@keyframes tableOverlayIn{0%{opacity:0}to{opacity:1}}.table-loading-overlay-panel{border:1px solid var(--border-light);background:var(--bg-card);min-width:200px;box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:28px 40px;animation:.28s ease-out fadeUp;display:flex}.table-loading-icon{color:var(--sidebar-accent);margin-bottom:4px;animation:.85s linear infinite spin}.table-loading-overlay-title{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:600}.table-loading-overlay-msg{color:var(--text-muted);text-align:center;max-width:220px;margin:0;font-size:12px;font-weight:400;line-height:1.45}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--bg-table-header);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 16px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:11px 16px;font-size:13.5px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr{transition:background .1s}.data-table tbody tr:hover td{background:var(--bg-table-row-hover)}.data-table tr.locked td{opacity:.65}.data-table th.right,.data-table td.right{text-align:right}.data-table th.center,.data-table td.center{text-align:center}.table-toolbar{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;display:flex}.table-search-wrap{flex:280px;max-width:420px}.table-search-wrap .search-input{width:100%;padding-left:36px}.table-toolbar-end{align-items:center;gap:8px;margin-left:auto;display:flex}.attendance-table-wrapper{overflow-x:auto}.attendance-table{table-layout:fixed;width:100%}.attendance-table th,.attendance-table td{padding:10px 12px}.attendance-table th{white-space:nowrap}.attendance-table th:first-child,.attendance-table td:first-child{padding-left:16px}.attendance-table th:last-child,.attendance-table td:last-child{padding-right:32px}.attendance-col-index{width:4%}.attendance-col-employee{width:26%}.attendance-col-dept{width:14%}.attendance-col-expected,.attendance-col-worked{width:12%}.attendance-col-absent,.attendance-col-pto,.attendance-col-late{width:11%}.attendance-table .attendance-index{text-align:right;padding-right:6px}.attendance-table th:nth-child(2),.attendance-table td:nth-child(2){padding-left:8px}.attendance-table .emp-cell{gap:8px;min-width:0}.attendance-table .emp-cell>div:last-child{flex:1;min-width:0}.attendance-table .emp-name,.attendance-table .emp-meta,.attendance-table .attendance-dept{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rt-logs .attendance-table th{letter-spacing:.08em;color:var(--text-muted);background:0 0;padding-top:15px;padding-bottom:13px;font-size:10.5px;font-weight:600}.rt-logs .attendance-table td{padding-top:15px;padding-bottom:15px;font-size:13px}.rt-logs .attendance-table tbody tr{transition:background .12s}.rt-logs .emp-avatar{color:var(--brand-primary);background:#0071e31a;font-weight:700}.rt-logs .emp-name{font-size:13px;font-weight:600}.rt-id-chip{letter-spacing:.02em;color:var(--text-secondary);background:var(--bg-input);border:1px solid var(--border);border-radius:5px;margin-top:3px;padding:1.5px 7px;font-size:10px;font-weight:600;display:inline-block}.emp-cell{align-items:center;gap:10px;display:flex}.emp-avatar{color:#fff;background:linear-gradient(135deg,#4338ca,#6366f1);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:11.5px;font-weight:700;display:flex}.emp-name{color:var(--text-primary);font-size:13.5px;font-weight:600}.emp-meta{color:var(--text-muted);margin-top:1px;font-size:11.5px}.badge{text-transform:capitalize;border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-green{background:var(--green-dim);color:var(--green)}.badge-amber{background:var(--amber-dim);color:var(--amber)}.badge-red{background:var(--red-dim);color:var(--red)}.badge-blue{background:var(--blue-dim);color:var(--blue)}.badge-purple{background:var(--purple-dim);color:var(--purple)}.badge-teal{background:var(--brand-primary-dim);color:var(--brand-primary)}.badge-gray{background:var(--surface-muted);color:var(--text-muted)}.badge-stage{letter-spacing:.02em;box-shadow:var(--card-shadow);border:1px solid #0000;padding:4px 11px;font-size:12px;font-weight:700}.badge-stage-green{color:var(--stage-green-text);background:#34c75933;border-color:#34c75973}.badge-stage-amber{color:var(--stage-amber-text);background:#ff950033;border-color:#ff950073}.badge-stage-red{color:var(--stage-red-text);background:#ff3b3033;border-color:#ff3b3073}[data-theme=dark] .badge-stage-red{background:#f871712e;border-color:#f8717166}.cell-input{color:var(--text-primary);text-align:right;background:0 0;border:1px solid #0000;border-radius:6px;width:90px;padding:5px 8px;font-family:inherit;font-size:13px;transition:all .15s}.cell-input:hover{border-color:var(--border-light);background:var(--bg-input)}.cell-input:focus{border-color:var(--border-focus);background:var(--bg-input);box-shadow:0 0 0 2px var(--focus-ring);outline:none}.cell-input:disabled{opacity:.45;pointer-events:none}.cell-input--editable{background:var(--bg-input);border-color:var(--border);cursor:text}.cell-input--editable:hover,.cell-input--editable:focus{border-color:var(--brand-primary)}.net-pay-value{color:var(--green);font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:700}.tds-value{color:var(--red);font-variant-numeric:tabular-nums;font-weight:500}.lock-btn{color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:4px 6px;transition:all .15s;display:flex}.lock-btn:hover{border-color:var(--border);color:var(--text-primary);background:var(--bg-input)}.lock-btn.locked{color:var(--amber);border-color:#f59e0b4d}.search-wrap{position:relative}.ot-month-picker{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.ot-month-input{color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:14px;font-weight:600}.ot-month-input:focus{outline:none}.search-icon{color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input{background:var(--bg-input);border:1px solid var(--border);width:260px;color:var(--text-primary);border-radius:9px;padding:9px 12px 9px 34px;font-size:13px;transition:border-color .15s,box-shadow .15s,background .15s}.search-input:focus{border-color:var(--border-focus);background:var(--bg-card);outline:none;box-shadow:0 0 0 3px #6366f126}.search-input::placeholder{color:var(--text-muted)}.search-wrap:focus-within .search-icon{color:var(--brand-primary)}.search-clear{width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;transition:background .15s,color .15s;display:inline-flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-clear:hover{background:var(--border);color:var(--text-primary)}.table-search-wrap .search-input{padding-right:34px}.tds-toolbar{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;margin-bottom:20px;padding:16px 18px;display:flex}.tds-toolbar-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.tds-search-wrap{flex:280px;min-width:220px;max-width:420px;position:relative}.tds-search-wrap .search-input{background:var(--bg-input);border-radius:10px;width:100%;padding:10px 36px 10px 38px;font-size:14px}.tds-search-wrap .search-input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--focus-ring)}.tds-search-clear{width:24px;height:24px;color:var(--text-muted);background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:16px;line-height:1;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.tds-search-clear:hover{background:var(--surface-hover);color:var(--text-primary)}.tds-result-hint{color:var(--text-secondary);white-space:nowrap;font-size:12px}.tds-policy-row{flex-wrap:wrap;gap:8px;padding-top:2px;display:flex}.tds-policy-pill{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:11.5px;font-weight:500;display:inline-flex}.tds-policy-pill strong{color:var(--text-primary);font-weight:700}.tds-filter-block{flex-direction:column;gap:8px;display:flex}.tds-filter-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);font-size:10px;font-weight:700}.tds-chip-row{flex-wrap:wrap;gap:6px;display:flex}.tds-chip{border:1px solid var(--border);background:var(--surface-muted);color:var(--text-secondary);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.tds-chip:hover{border-color:var(--border-light);color:var(--text-primary)}.tds-chip.active{background:var(--brand-primary-dim);border-color:var(--brand-primary);color:var(--brand-primary)}.tds-chip-count{background:var(--surface-elevated);color:inherit;border-radius:999px;padding:1px 6px;font-size:10px;font-weight:700}.tds-chip.active .tds-chip-count{background:var(--brand-primary-dim)}.tds-layout{grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);align-items:start;gap:20px;display:grid}.tds-detail-card{border:1px solid var(--border);background:linear-gradient(180deg, var(--bg-card) 0%, var(--bg-surface) 100%);border-radius:12px;padding:18px;position:sticky;top:16px}.tds-detail-rule{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:12px;line-height:1.45}.tds-slab-row{background:var(--surface-muted);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:11.5px;display:flex}.tds-monthly-box{background:#ef44440f;border:1px solid #ef44442e;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-top:6px;padding:14px 16px;display:flex}.tds-band-1{color:#fbbf24;background:#f59e0b1f;border:1px solid #f59e0b40}.tds-band-2{color:#38bdf8;background:#38bdf81f;border:1px solid #38bdf840}.tds-band-3{color:#c084fc;background:#a855f71f;border:1px solid #a855f740}.tds-rebate-select{border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);cursor:pointer;border-radius:8px;padding:5px 8px;font-size:12px;font-weight:600}.tds-rebate-select:focus{border-color:var(--brand-primary);outline:none}.tds-row-selected{background:#14b8a60f!important}@media (width<=1100px){.tds-layout{grid-template-columns:1fr}.tds-detail-card{position:static}}.sheet-footer{background:var(--bg-table-header);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;justify-content:space-between;align-items:center;gap:20px;padding:14px 20px;display:flex}.footer-stats{gap:24px;display:flex}.footer-stat{color:var(--text-secondary);align-items:center;gap:6px;font-size:12.5px;display:flex}.footer-dot{border-radius:50%;width:7px;height:7px}.footer-net{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.footer-net-amount{color:var(--green);font-variant-numeric:tabular-nums;font-size:20px;font-weight:800}.form-label{color:var(--text-label);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-input{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:8px;padding:9px 12px;font-size:13.5px;transition:border-color .15s}.form-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.form-input::placeholder{color:var(--text-muted)}.form-select{appearance:none;background-color:var(--bg-input);color:var(--text-primary);color-scheme:inherit;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%234e6a8a' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:12px 12px;padding-right:32px}[data-theme=dark] .form-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a1a1aa' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}select{color-scheme:inherit;background-color:var(--bg-input);color:var(--text-primary)}select option,select optgroup{background-color:var(--bg-card);color:var(--text-primary)}[data-theme=dark] select{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=dark] select option:checked{background-color:var(--brand-primary-dim);color:var(--text-primary)}select.btn{appearance:auto;cursor:pointer;font-family:inherit}select.btn-secondary{background-color:var(--bg-input);color:var(--text-primary);border:1px solid var(--border)}select.btn-secondary:hover{background-color:var(--surface-hover);border-color:var(--border-light);color:var(--text-primary)}.modal-backdrop{background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-card);border:1px solid var(--border);width:100%;max-width:520px;box-shadow:var(--shadow-lg);border-radius:14px;animation:.2s ease-out fadeUp}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex}.modal-title{font-size:16px;font-weight:700}.modal-body{padding:20px 24px}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.payroll-otp-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.payroll-otp-modal{border:1px solid var(--border-light);max-width:440px;padding:0;overflow:hidden}.payroll-otp-hero{text-align:center;background:radial-gradient(ellipse 120% 80% at 50% -20%, var(--brand-primary-dim), transparent 55%), linear-gradient(180deg, var(--bg-surface) 0%, var(--bg-card) 100%);border-bottom:1px solid var(--border);padding:28px 28px 22px;position:relative}.payroll-otp-close{position:absolute;top:14px;right:14px}.payroll-otp-hero-icon{width:56px;height:56px;color:var(--brand-primary);background:var(--brand-primary-dim);border:1px solid #0071e31f;border-radius:16px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex;box-shadow:0 8px 24px #0071e31f}[data-theme=dark] .payroll-otp-hero-icon{border-color:#5e9eff33;box-shadow:0 8px 24px #5e9eff26}.payroll-otp-title{letter-spacing:-.02em;color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.payroll-otp-subtitle{max-width:320px;color:var(--text-secondary);margin:8px auto 0;font-size:13px;line-height:1.55}.payroll-otp-body{gap:14px;padding:20px 24px 8px;display:grid}.payroll-otp-context{background:var(--surface-muted);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.payroll-otp-context-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:11px;font-weight:600}.payroll-otp-context-value{color:var(--text-primary);text-align:right;font-size:13px;font-weight:600}.payroll-otp-status{border-radius:10px;align-items:flex-start;gap:10px;padding:11px 13px;font-size:13px;line-height:1.45;display:flex}.payroll-otp-status--loading{color:var(--text-secondary);background:var(--surface-muted);border:1px solid var(--border)}.payroll-otp-status--success{color:var(--stage-green-text);background:var(--green-dim);border:1px solid #34c75938}[data-theme=dark] .payroll-otp-status--success{color:var(--green)}.payroll-otp-status--error{color:var(--stage-red-text);background:var(--red-dim);border:1px solid #ff3b3038}[data-theme=dark] .payroll-otp-status--error{color:var(--red)}.payroll-otp-field{gap:10px;margin-top:4px;display:grid}.payroll-otp-field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-label);align-items:center;gap:7px;font-size:11px;font-weight:700;display:inline-flex}.payroll-otp-digit-grid{cursor:text;grid-template-columns:repeat(6,1fr);gap:8px;display:grid;position:relative}.payroll-otp-digit{border:1.5px solid var(--border);background:var(--bg-input);font-variant-numeric:tabular-nums;letter-spacing:.04em;height:52px;color:var(--text-primary);border-radius:12px;justify-content:center;align-items:center;font-size:22px;font-weight:700;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.payroll-otp-digit--filled{border-color:var(--border-light);background:var(--bg-card)}.payroll-otp-digit-grid--ready .payroll-otp-digit--active{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--focus-ring);transform:translateY(-1px)}.payroll-otp-digit-grid--error .payroll-otp-digit{border-color:var(--red);box-shadow:0 0 0 2px var(--red-dim)}.payroll-otp-digit-placeholder{color:var(--text-muted);opacity:.35;font-size:20px;line-height:1}.payroll-otp-input-hidden{opacity:0;cursor:text;background:0 0;border:none;position:absolute;inset:0}.payroll-otp-hint{color:var(--text-muted);align-items:center;gap:6px;margin:0;font-size:12px;display:flex}.payroll-otp-error{color:var(--red);align-items:center;gap:7px;margin:0;font-size:12px;font-weight:500;display:flex}.payroll-otp-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 24px 20px;display:flex}.payroll-otp-footer-actions{align-items:center;gap:10px;display:flex}.payroll-otp-resend{align-items:center;gap:7px;display:inline-flex}.payroll-otp-verify{justify-content:center;align-items:center;gap:8px;min-width:148px;display:inline-flex}.payroll-otp-spin{animation:.85s linear infinite payrollOtpSpin}@keyframes payrollOtpSpin{to{transform:rotate(360deg)}}@media (width<=480px){.payroll-otp-modal{max-width:100%}.payroll-otp-digit-grid{gap:6px}.payroll-otp-digit{border-radius:10px;height:46px;font-size:20px}.payroll-otp-footer{flex-direction:column;align-items:stretch}.payroll-otp-footer-actions{width:100%}.payroll-otp-footer-actions .btn{flex:1}}.alert-dialog-backdrop{z-index:300}.alert-dialog-box{max-width:480px;padding:0;overflow:hidden}.alert-dialog-body{align-items:flex-start;gap:16px;padding:24px 24px 8px;display:flex}.alert-dialog-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.alert-dialog-icon--info{background:var(--blue-dim);color:var(--blue)}.alert-dialog-icon--warning{background:var(--amber-dim);color:var(--amber)}.alert-dialog-icon--danger{background:var(--red-dim);color:var(--red)}.alert-dialog-icon--success{background:var(--green-dim);color:var(--green)}.alert-dialog-content{flex:1;min-width:0;padding-top:2px}.alert-dialog-title{color:var(--text-primary);margin-bottom:8px;font-size:15px;font-weight:700;line-height:1.35}.alert-dialog-message{color:var(--text-secondary);font-size:13.5px;line-height:1.55}.alert-dialog-list{max-height:220px;margin:10px 0 0;padding-left:18px;overflow-y:auto}.alert-dialog-list li{margin-bottom:4px}.alert-dialog-list li:last-child{margin-bottom:0}.alert-dialog-summary{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;margin-top:14px;padding:12px 14px}.alert-dialog-summary-row{justify-content:space-between;align-items:baseline;gap:16px;padding:5px 0;font-size:13px;display:flex}.alert-dialog-summary-row+.alert-dialog-summary-row{border-top:1px solid var(--border)}.alert-dialog-summary-row--words{align-items:flex-start}.alert-dialog-summary-row--words span:last-child{max-width:62%;line-height:1.45}.alert-dialog-footer{border-top:none;padding:16px 24px 20px}.alert-dialog-footer .btn,.alert-dialog-footer .btn-primary,.alert-dialog-footer .btn-warning,.alert-dialog-footer .btn-danger{justify-content:center;min-width:88px}.payslip-box{max-width:680px}.payslip-header{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#0d2a40,#0b1f35);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.payslip-line-item{border-bottom:1px solid #ffffff0a;justify-content:space-between;align-items:center;padding:10px 0;font-size:13.5px;display:flex}.payslip-line-item:last-child{border-bottom:none}.payslip-line-label{color:var(--text-secondary)}.payslip-line-value{font-variant-numeric:tabular-nums;font-weight:600}.payslip-line-item.total{border-top:1px solid var(--border-light);margin-top:4px;padding-top:14px}.payslip-line-item.total .payslip-line-label{color:var(--text-primary);font-size:14px;font-weight:700}.payslip-line-item.total .payslip-line-value{color:var(--green);font-size:18px;font-weight:800}.payslip-line-item.deduction .payslip-line-value{color:var(--red)}.upload-zone{border:2px dashed var(--border);text-align:center;cursor:pointer;border-radius:10px;padding:20px;transition:all .2s}.upload-zone:hover{border-color:var(--brand-primary);background:var(--brand-primary-dim)}.upload-cal-legend{color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin-bottom:10px;font-size:12px;display:flex}.upload-cal-legend-item{align-items:center;gap:6px;display:flex}.upload-cal-swatch{border:1px solid var(--border);border-radius:4px;width:14px;height:14px}.upload-cal-swatch.weekday{background:var(--green-dim);border-color:var(--green)}.upload-cal-swatch.weekend{background:var(--border-light);opacity:.6}.upload-cal-swatch.vacation{background:var(--amber-dim);border-color:var(--amber)}.upload-cal-swatch.halfday{background:var(--blue-dim);border-color:var(--blue)}.upload-cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:12px;display:grid}.upload-cal-header{text-align:center;color:var(--text-muted);text-transform:uppercase;padding:6px 0;font-size:11px;font-weight:600}.upload-cal-blank{min-height:64px}.upload-cal-day{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-height:46px;padding:6px 4px;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.upload-cal-day.weekday:not(.vacation):not(.halfday){background:var(--green-dim);color:var(--text-primary);border-color:#34c75959}.upload-cal-day.weekday:hover:not(:disabled):not(.vacation):not(.halfday){border-color:var(--green);background:#34c7592e}.upload-cal-day.weekend{background:var(--border-light);color:var(--text-muted);cursor:default;opacity:.55}.upload-cal-day.vacation{background:var(--amber-dim);border-color:var(--amber)}.upload-cal-day.halfday{background:var(--blue-dim);border-color:var(--blue)}.upload-cal-day:disabled{cursor:not-allowed}.upload-cal-day-num{font-size:14px;font-weight:600}.upload-cal-hours-input{text-align:center;border:1px solid var(--border);background:var(--bg-input);width:44px;color:var(--text-primary);border-radius:4px;padding:2px 4px;font-size:11px}.upload-cal-hours-input:focus{border-color:var(--border-focus);outline:none}.upload-cal-summary{border-top:1px solid var(--border);gap:24px;padding-top:12px;display:flex}.upload-cal-stat{flex-direction:column;gap:2px;display:flex}.chart-card{flex-direction:column;gap:16px;display:flex}.chart-title{font-size:14px;font-weight:600}.chart-subtitle{color:var(--text-muted);margin-top:2px;font-size:11.5px}.divider{background:var(--border);height:1px;margin:16px 0}.text-green{color:var(--green)}.text-red{color:var(--red)}.text-amber{color:var(--amber)}.text-blue{color:var(--blue)}.text-teal{color:var(--brand-primary)}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.font-mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.font-bold{font-weight:700}.font-semibold{font-weight:600}.text-sm{font-size:12.5px}.text-xs{font-size:11px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.w-full{width:100%}.grid-2{grid-template-columns:1fr 1fr;gap:16px;display:grid}.grid-3{grid-template-columns:1fr 1fr 1fr;gap:16px;display:grid}.spinner{border:2px solid var(--border);border-top-color:var(--brand-primary);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}.spinner-sm{border-width:2px;flex-shrink:0;width:14px;height:14px}.spinner-lg{border-width:3px;flex-shrink:0;width:44px;height:44px}.loading-state{flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:20px 16px;display:flex}.loading-state-msg{color:var(--text-secondary);margin:0;font-size:13px}.loading-inline{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:inline-flex}.loading-table-cell{text-align:center;background:var(--surface-1);padding:0!important}.loading-table-cell-bar{min-height:280px}.page-loading-bar{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.page-loading-bar-track{background:var(--border);border-radius:999px;height:3px;position:relative;overflow:hidden}.page-loading-bar-indeterminate{background:linear-gradient(90deg, transparent, var(--brand-primary), transparent);border-radius:999px;width:38%;height:100%;animation:1.15s ease-in-out infinite page-loading-bar-slide;position:absolute;top:0;left:0}.page-loading-bar-label{color:var(--text-secondary);font-size:13px;font-weight:500}@keyframes page-loading-bar-slide{0%{left:-38%}to{left:100%}}.notif-dot{background:var(--red);border-radius:50%;width:6px;height:6px;position:absolute;top:2px;right:2px}.chip{background:var(--chip-bg);color:var(--text-secondary);border-radius:4px;padding:2px 7px;font-size:11px;font-weight:500;display:inline-block}.chip-emp-id{letter-spacing:.02em;color:var(--brand-primary);background:var(--brand-primary-dim);border:1px solid var(--brand-primary);box-shadow:var(--card-shadow);padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;font-weight:700}.emp-data-date{letter-spacing:.01em;color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:600}.progress-bar-wrap{background:var(--border);border-radius:2px;height:4px;overflow:hidden}.progress-bar-fill{border-radius:2px;height:100%;transition:width .4s}.sort-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.sort-header:hover{color:var(--brand-primary)}.sort-indicator{margin-left:4px;display:inline-block}.sensitive-col-header{align-items:center;gap:6px;display:inline-flex}.sensitive-col-header-right{justify-content:flex-end;width:100%}.sensitive-col-label{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0;transition:color .15s}.sensitive-col-label:hover{color:var(--brand-primary)}.sensitive-col-toggle{color:var(--brand-primary);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;transition:background .15s,color .15s;display:inline-flex}.sensitive-col-toggle:hover{background:var(--brand-primary-dim);color:var(--brand-primary-hover)}.sensitive-mask,.sensitive-value{color:var(--brand-primary);letter-spacing:.04em;font-weight:600}.sensitive-empty{color:var(--brand-primary);font-weight:500}.pagination-container{background:var(--bg-card);border:1px solid var(--border);color:var(--text-secondary);border-top:none;border-radius:0 0 10px 10px;justify-content:space-between;align-items:center;padding:12px 20px;font-size:13px;display:flex}.pagination-buttons{gap:8px;display:flex}.pagination-controls{align-items:center;gap:16px;display:flex}.pagination-page-size{color:var(--text-secondary);align-items:center;gap:8px;font-size:12px;display:flex}.pagination-page-size select{border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:500}.pagination-page-size select:hover{border-color:var(--border-light)}.pagination-btn{border:1px solid var(--border);background:var(--bg-input);color:var(--text-primary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:4px 10px;font-size:12px;font-weight:500;transition:all .15s;display:inline-flex}.pagination-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-light)}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.certificate-preview-wrap{background:linear-gradient(160deg,#48484a 0%,#6e6e73 48%,#5a5a5e 100%);border-radius:0 0 14px 14px;justify-content:center;padding:36px 28px;display:flex;overflow-x:auto;box-shadow:inset 0 1px #ffffff0f}.certificate-paper{color:#1d1d1f;box-sizing:border-box;z-index:1;background:#fff;flex-direction:column;width:210mm;height:297mm;padding:62mm 20mm 32mm;font-family:Georgia,Times New Roman,Times,serif;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px #00000040}.certificate-paper--payslip{padding:52mm 20mm 28mm}.certificate-paper--salary{padding:52mm 20mm 32mm}.certificate-paper-content--payslip .certificate-meta-row{margin-bottom:14px}.certificate-paper-content--payslip .certificate-title{margin:14px 0 16px}.certificate-watermark-wrap{z-index:1;pointer-events:none;opacity:.7;width:580px;max-width:85%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.certificate-watermark-img{width:100%;display:block}.certificate-header-img-wrap{box-sizing:border-box;z-index:2;width:100%;max-width:100%;position:absolute;top:0;left:0;overflow:hidden}.certificate-header-img{object-fit:contain;object-position:center top;width:100%;max-width:100%;height:auto;max-height:30mm;display:block}.certificate-footer-img-wrap{box-sizing:border-box;z-index:2;width:100%;max-width:100%;position:absolute;bottom:0;left:0;overflow:hidden}.certificate-footer-img{object-fit:contain;object-position:center bottom;width:100%;max-width:100%;height:auto;max-height:24mm;display:block}.certificate-paper>:not(.certificate-header-img-wrap):not(.certificate-footer-img-wrap):not(.certificate-watermark-wrap){z-index:10;position:relative}.certificate-title{text-transform:uppercase;text-align:center;letter-spacing:.1em;color:#1d1d1f;margin:24px 0;font-family:Inter,sans-serif;font-size:20px;font-weight:700}.certificate-title--salary{letter-spacing:0;margin:18px 0 22px;font-family:Georgia,Times New Roman,Times,serif;font-size:16px;text-decoration:underline}.certificate-meta-row{color:#1d1d1f;justify-content:space-between;margin-bottom:18px;font-size:14px;display:flex}.certificate-paper-content--salary .certificate-meta-row,.certificate-paper-content--payslip .certificate-meta-row,.certificate-paper-content--salary .certificate-body--salary,.certificate-paper-content--salary .certificate-salary-table-wrap,.certificate-paper-content--salary .certificate-disclaimer{font-family:Georgia,Times New Roman,Times,serif}.certificate-body{text-align:justify;white-space:pre-line;flex-grow:0;font-size:15px;line-height:1.8}.certificate-body--salary{white-space:normal;margin-bottom:18px;font-size:14px;line-height:1.7}.certificate-body--salary p{margin:0}.certificate-salary-table-wrap{margin:18px 0 16px}.certificate-salary-table-heading{margin-bottom:10px;font-size:14px;text-decoration:underline}.certificate-salary-table{border-collapse:collapse;width:100%;margin-bottom:14px;font-size:14px}.certificate-salary-table th,.certificate-salary-table td{border:1px solid #1d1d1f;padding:8px}.certificate-salary-table th{text-align:center;font-weight:700}.certificate-salary-table-no{text-align:center;width:48px}.certificate-salary-table-amount{text-align:center;font-variant-numeric:tabular-nums;font-family:Segoe UI,Arial,Helvetica,sans-serif}.cert-num{font-variant-numeric:tabular-nums;font-family:Segoe UI,Arial,Helvetica,sans-serif}.certificate-salary-table-total td{font-weight:700}.certificate-salary-table-total td:first-child{border:1px solid #1d1d1f;border-right:none}.certificate-in-words{margin-bottom:18px;font-size:14px;font-style:italic;font-weight:700}.certificate-disclaimer{color:#1d1d1f;text-align:justify;margin-bottom:0;font-size:14px;line-height:1.7}.certificate-paper-content--salary .certificate-disclaimer{margin-bottom:0}.certificate-paper-content:not(.certificate-paper-content--salary) .certificate-disclaimer{margin-bottom:24px}.certificate-signatures{justify-content:space-between;margin-top:60px;padding-top:30px;font-family:Inter,sans-serif;font-size:13px;display:flex}.signature-line{text-align:center;border-top:1px solid #86868b;width:200px;padding-top:8px}.certificate-signatory-block{z-index:10;color:#1d1d1f;margin:0;font-size:13px;line-height:1.5;position:absolute;bottom:108px;left:0;right:0}.certificate-paper-content{padding-bottom:190px}.certificate-paper-content--salary,.certificate-paper-content--payslip{color:#1d1d1f;padding-bottom:110px;font-family:Georgia,Times New Roman,Times,serif;font-size:14px;line-height:1.7}.certificate-paper-content--payslip{padding-bottom:70px}.certificate-paper-content--salary .certificate-meta-row,.certificate-paper-content--payslip .certificate-meta-row,.certificate-paper-content--salary .certificate-body--salary,.certificate-paper-content--salary .certificate-salary-table-wrap,.certificate-paper-content--salary .certificate-disclaimer,.certificate-paper-content--payslip .payslip-company-block,.certificate-paper-content--payslip .payslip-line,.certificate-paper-content--payslip .payslip-section-label,.certificate-paper-content--payslip .payslip-employee-list,.certificate-paper-content--payslip .payslip-table,.certificate-paper-content--payslip .payslip-net-line{font-family:Georgia,Times New Roman,Times,serif}.payslip-company-block,.payslip-line{margin-bottom:10px}.payslip-company-block div+div{margin-top:4px}.payslip-section-label{margin-bottom:4px;font-size:14px;font-weight:700}.payslip-employee-list{margin:0 0 8px 20px;padding:0;line-height:1.6;list-style-type:disc}.payslip-employee-list li+li{margin-top:0}.payslip-table{margin-bottom:8px}.certificate-paper-content--payslip .payslip-table th,.certificate-paper-content--payslip .payslip-table td{padding:3px 6px;line-height:1.35}.payslip-table-subtotal td{font-weight:700}.payslip-table-amount{text-align:center;font-variant-numeric:tabular-nums;font-family:Segoe UI,Arial,Helvetica,sans-serif}.payslip-net-line{margin-bottom:6px;line-height:1.5}.payslip-net-line .certificate-in-words{margin-top:4px;margin-bottom:0}.certificate-signatory-label{margin-bottom:6px;font-size:13.5px}.certificate-signatory-label--payslip{margin-bottom:8px;font-weight:700}.certificate-signatory-label--no-signature{margin-bottom:52px}.certificate-signatory-signature{margin-bottom:4px}.certificate-signatory-signature-img{object-fit:contain;filter:contrast(1.3);max-width:240px;height:70px;display:block}.certificate-signatory-date{color:#1d1d1f;margin-top:2px;font-family:Caveat,cursive;font-size:16px;line-height:1}.certificate-signatory-details{line-height:1.6}.certificate-signatory-line{background:#1d1d1f;width:200px;height:1px;margin-bottom:6px}.certificate-signatory-detail-muted{color:#515154}.certificate-signatory-detail-bold{font-weight:600}.certificate-signatory-company{color:#1d1d1f;margin-top:2px;font-weight:600}.certificate-signatory-block--salary{text-align:left;margin-top:4px;font-family:Georgia,Times New Roman,Times,serif;font-size:14px;position:static}.certificate-signatory-block--salary .certificate-signatory-details{text-align:left}.certificate-signatory-label--salary{margin-top:22px;margin-bottom:1.2in;font-weight:700}.certificate-signatory-label--salary.certificate-signatory-label--has-signature{margin-bottom:6px}.certificate-signatory-signature--salary,.certificate-signatory-signature--inline{margin-bottom:8px}.certificate-signatory-block--salary .certificate-signatory-signature--inline{align-items:flex-end;min-height:68px;margin-bottom:0;display:flex}.certificate-signatory-block--payslip{text-align:left;margin-top:0;font-family:Georgia,Times New Roman,Times,serif;font-size:14px;position:static}.certificate-signatory-block--payslip .certificate-signatory-details{text-align:left}.certificate-signatory-label--payslip{margin-top:22px;margin-bottom:1.2in;font-weight:700}.certificate-signatory-label--payslip.certificate-signatory-label--has-signature{margin-bottom:4px}.certificate-signatory-block--payslip .certificate-signatory-signature--inline{align-items:flex-end;min-height:49.92px;margin-bottom:0;display:flex}.certificate-signatory-company--salary{color:#1d1d1f;margin-top:2px;font-weight:700}@media print{@page{size:A4 portrait;margin:0}html,body,#root,.app-shell,.main-content,.page-content{background:#fff!important;width:100%!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}body{background:#fff!important}.app-shell,.sidebar,.main-content,.page-content,.page-header,.page-actions,.search-wrap,button,.certificate-preview-wrap{box-shadow:none!important;background:0 0!important;margin:0!important;padding:0!important}.app-shell{display:block!important}.sidebar,.page-header,.page-actions,.search-wrap,button,.pagination-container,.role-switcher,.print-hide{display:none!important}.main-content{display:block!important;overflow:visible!important}.page-content{padding:0!important;display:block!important;overflow:visible!important}.cert-view-grid{display:block!important}.certificate-preview-wrap{box-shadow:none!important;background:0 0!important;padding:0!important;display:block!important;overflow:visible!important}body.printing-certificate *{visibility:hidden}body.printing-certificate #printable-certificate,body.printing-certificate #printable-certificate *{visibility:visible}body.printing-certificate .app-shell,body.printing-certificate .main-content,body.printing-certificate .page-content,body.printing-certificate .cert-view-grid,body.printing-certificate .cert-preview-column,body.printing-certificate .certificate-preview-wrap{visibility:visible;overflow:visible!important}body.printing-certificate .cert-preview-column,body.printing-certificate .certificate-preview-wrap{width:100%!important;margin:0!important;padding:0!important;display:block!important}body.printing-certificate .cert-preview-header{display:none!important}body.printing-certificate #printable-certificate,.certificate-paper{box-sizing:border-box;width:210mm!important;min-width:0!important;max-width:210mm!important;height:297mm!important;min-height:297mm!important;max-height:297mm!important;box-shadow:none!important;page-break-before:avoid!important;page-break-after:avoid!important;page-break-inside:avoid!important;break-inside:avoid!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;margin:0 auto!important;padding:215.131px 20mm 50mm!important;position:relative!important;top:auto!important;left:auto!important;overflow:hidden!important}body.printing-certificate #printable-certificate.certificate-paper--payslip,.certificate-paper.certificate-paper--payslip,body.printing-certificate #printable-certificate.certificate-paper--salary,.certificate-paper.certificate-paper--salary{page-break-inside:avoid!important;break-inside:avoid!important;height:297mm!important;min-height:297mm!important;max-height:297mm!important;padding:131.981px 20mm 46mm!important}body.printing-certificate .certificate-header-img-wrap,body.printing-certificate .certificate-footer-img-wrap,body.printing-certificate .certificate-watermark-wrap,body.printing-certificate .certificate-header-img,body.printing-certificate .certificate-footer-img,body.printing-certificate .certificate-watermark-img{visibility:visible!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;display:block!important}body.printing-certificate .certificate-watermark-wrap{opacity:.7!important}body.printing-certificate .certificate-header-img-wrap,body.printing-certificate .certificate-footer-img-wrap{box-sizing:border-box!important;z-index:5!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;position:absolute!important;left:0!important;right:0!important;overflow:hidden!important}body.printing-certificate .certificate-header-img-wrap{top:6mm!important}body.printing-certificate .certificate-footer-img-wrap{bottom:7mm!important}body.printing-certificate .certificate-header-img,body.printing-certificate .certificate-footer-img{object-fit:contain!important;object-position:center top!important;width:100%!important;max-width:100%!important;height:auto!important;margin:0!important;display:block!important}body.printing-certificate .certificate-header-img{max-height:30mm!important}body.printing-certificate .certificate-footer-img{object-position:center bottom!important;max-height:24mm!important}}.cert-employee-picker{position:relative}.cert-employee-search{width:100%}.cert-employee-search-input{box-sizing:border-box;width:100%;padding-right:34px}.cert-employee-search-clear{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.cert-employee-search-clear:hover{background:var(--surface-hover);color:var(--text-primary)}.cert-employee-selected{color:var(--text-secondary);margin-top:6px;font-size:11px;line-height:1.4}.cert-employee-list{z-index:50;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;max-height:240px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% - 4px);left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #00000040}.cert-employee-list-empty{color:var(--text-muted);text-align:center;padding:10px 12px;font-size:12px}.cert-employee-option{width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;font-size:12px;display:flex}.cert-employee-option:hover{background:var(--surface-hover)}.cert-employee-option--active{color:var(--brand-primary);background:#3b82f61f}.cert-employee-option-id{color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px}.cert-employee-option--active .cert-employee-option-id{color:var(--brand-primary);opacity:.85}.cert-option-toggle{border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;color:var(--text-primary);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.cert-option-toggle input[type=checkbox]{accent-color:var(--brand-primary);cursor:pointer;flex-shrink:0;margin-top:2px}.cert-option-toggle small{color:var(--text-muted);margin-top:2px;font-size:11px;display:block}.cert-generator-panel{flex-direction:column;max-height:calc(100vh - 32px);padding:0;display:flex;position:sticky;top:16px;overflow:hidden}.cert-generator-header{border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--bg-surface) 0%, var(--bg-card) 100%);padding:18px 20px 16px}.cert-generator-title{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:15px;font-weight:700}.cert-generator-subtitle{color:var(--text-muted);margin:4px 0 0;font-size:12px;line-height:1.45}.cert-generator-body{flex-direction:column;gap:14px;padding:16px 20px 20px;display:flex;overflow-y:auto}.cert-form-section{flex-direction:column;gap:7px;display:flex}.cert-form-section--group{border:1px solid var(--border);background:var(--bg-surface);border-radius:10px;gap:12px;padding:12px}.cert-form-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);font-size:11px;font-weight:700}.cert-form-label--sm{letter-spacing:.05em;font-size:10px}.cert-form-input{box-sizing:border-box;width:100%}.cert-form-input--file{padding:6px 8px;font-size:11px}.cert-ref-preview-hint{color:var(--text-muted);font-size:11px;line-height:1.4}.cert-ref-preview-hint strong{color:var(--text-secondary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:600}.cert-type-list{flex-direction:column;gap:8px;display:flex}.cert-type-btn{border:1px solid var(--border);background:var(--bg-input);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;border-radius:10px;align-items:flex-start;gap:12px;padding:11px 12px;transition:border-color .15s,background .15s,box-shadow .15s,transform .15s;display:flex}.cert-type-btn:hover{border-color:var(--border-light);background:var(--surface-hover)}.cert-type-btn--active{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff;box-shadow:0 6px 18px #3b82f652}.cert-type-btn-icon{color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;display:flex}.cert-type-btn--active .cert-type-btn-icon{color:#fff}.cert-type-btn-text{flex-direction:column;gap:2px;min-width:0;display:flex}.cert-type-btn-label{font-size:13px;font-weight:700;line-height:1.3}.cert-type-btn-hint{color:var(--text-muted);font-size:11px;font-weight:500;line-height:1.35}.cert-type-btn--active .cert-type-btn-hint{color:#ffffffd1}.cert-signatory-section{border-top:1px solid var(--border);margin-top:2px;padding-top:14px}.cert-signatory-heading{letter-spacing:.06em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 10px;font-size:11px;font-weight:700}.cert-signatory-fields{flex-direction:column;gap:10px;display:flex}.cert-signature-preview{align-items:center;gap:10px;display:flex}.cert-signature-preview-img{object-fit:contain;border:1px solid var(--border);background:#fff;border-radius:6px;max-width:160px;height:42px;padding:3px}.cert-print-hint{color:var(--text-secondary);background:#3b82f614;border:1px dashed #3b82f659;border-radius:10px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:11.5px;line-height:1.5;display:flex}.cert-print-hint-icon{color:var(--brand-primary);flex-shrink:0;margin-top:1px}.cert-history-panel{border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.cert-history-body{margin-top:10px}.cert-history-empty{color:var(--text-muted);padding:10px 0;font-size:12px}.cert-history-list{flex-direction:column;gap:8px;max-height:280px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.cert-history-item{border:1px solid var(--border);background:var(--surface-1,#7f7f7f0a);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.cert-history-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.cert-history-type{color:var(--text-primary);font-size:12.5px;font-weight:600}.cert-history-ref{color:var(--text-secondary);font-variant-numeric:tabular-nums;word-break:break-all;font-size:11px}.cert-history-date{color:var(--text-muted);font-size:11px}.cert-history-sent{color:var(--green);font-size:11px;font-weight:600}.cert-history-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.cert-preview-column{flex-direction:column;min-width:0;display:flex}.cert-preview-header{border:1px solid var(--border);background:var(--bg-card);border-bottom:none;border-radius:14px 14px 0 0;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.cert-preview-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-primary);font-size:11px;font-weight:700}.cert-preview-meta{color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border);border-radius:999px;padding:3px 8px;font-size:11px;font-weight:600}.certificate-empty-state{text-align:center;color:#86868b;padding:90px 20px;font-family:Inter,system-ui,sans-serif;font-size:14px}.cert-view-grid{grid-template-columns:380px minmax(0,1fr);align-items:flex-start;gap:24px;display:grid}.chart-card-custom{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);border-radius:12px;flex-direction:column;gap:16px;padding:20px;display:flex}.chart-card-custom .chart-title{color:var(--text-primary);font-size:15px;font-weight:700}.chart-card-custom .chart-subtitle{color:var(--text-muted);margin-top:2px;font-size:11.5px}.chart-card-custom .text-secondary{color:var(--text-secondary)}.chart-card-custom .text-muted{color:var(--text-muted)}.chart-toggle-group{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:2px;display:flex}.chart-toggle-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:3px 8px;font-size:10px;font-weight:700;transition:all .15s}.chart-toggle-btn.active{background:var(--bg-card);color:var(--green);border:1px solid var(--border);box-shadow:var(--card-shadow)}.dashboard-section-subtitle{color:var(--text-secondary);margin:-8px 0 16px;font-size:13px;font-weight:600}.dashboard-billing-subtitle-green{font-weight:600;color:#16a34a!important}.dashboard-billing-subtitle-green strong{font-weight:800}.dashboard-dept-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.dashboard-dept-kpi-card{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.dashboard-dept-kpi-tint-0{background:#eff6ff}.dashboard-dept-kpi-tint-1{background:#ecfdf5}.dashboard-dept-kpi-tint-2{background:#f5f3ff}.dashboard-dept-kpi-tint-3{background:#fdf2f8}.dashboard-dept-kpi-tint-4{background:#fffbeb}.dashboard-dept-kpi-tint-5{background:#f0fdfa}.dashboard-dept-kpi-name{color:var(--text-primary);font-size:15px;font-weight:800}.dashboard-dept-kpi-rows{flex-direction:column;gap:8px;display:flex}.dashboard-dept-kpi-row{color:var(--text-muted);grid-template-columns:16px 1fr auto;align-items:center;gap:8px;font-size:12px;display:grid}.dashboard-dept-kpi-row strong{color:var(--text-primary);font-size:14px;font-weight:800}.dashboard-dept-kpi-divider{background:var(--border);opacity:.7;height:1px}.dashboard-dept-kpi-finance{flex-direction:column;gap:8px;display:flex}.dashboard-dept-kpi-finance-row{color:var(--text-muted);justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.dashboard-dept-kpi-finance-row strong{color:var(--text-primary);font-size:13px;font-weight:800}.dashboard-dept-kpi-profit strong{font-size:14px}.dashboard-dept-kpi-profit-right{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.dashboard-dept-kpi-profit-right em{color:#16a34a;font-size:10px;font-style:normal;font-weight:700}.dashboard-team-profit-card{box-shadow:var(--card-shadow);gap:0;padding:24px}.dashboard-team-chart-block{flex-direction:column;gap:12px;display:flex}.dashboard-team-chart-divider{background:var(--border);opacity:.8;height:1px;margin:20px 0}.dashboard-analytics-card{box-shadow:var(--card-shadow)}.dashboard-bar-empty{justify-content:center;align-items:center;height:240px;display:flex}.dashboard-leave-movement-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.dashboard-leave-card,.dashboard-movement-card{box-shadow:var(--card-shadow);min-height:420px}.dashboard-leave-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-leave-badge{color:#2563eb;white-space:nowrap;background:#dbeafe;border-radius:999px;flex-shrink:0;padding:6px 12px;font-size:12px;font-weight:800}.dashboard-leave-types{flex-direction:column;gap:12px;display:flex}.dashboard-leave-type{border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.dashboard-leave-type-top{justify-content:space-between;align-items:center;font-size:13px;display:flex}.dashboard-leave-remaining{color:var(--text-muted);font-size:11px;font-weight:600}.dashboard-leave-alert{color:#a16207;background:#fefce8;border:1px solid #fde68a;border-radius:10px;align-items:flex-start;gap:12px;margin-top:4px;padding:14px 16px;display:flex}.dashboard-leave-alert strong{color:#854d0e;margin-bottom:2px;font-size:13px;display:block}.dashboard-leave-alert p{color:#a16207;margin:0;font-size:12px;line-height:1.4}.dashboard-movement-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.dashboard-movement-stat{border:1px solid var(--border);background:var(--bg-surface);border-radius:12px;flex-direction:column;gap:8px;padding:16px 14px;display:flex}.dashboard-movement-stat-top{flex-direction:column;gap:10px;display:flex}.dashboard-movement-stat-label{color:var(--text-secondary);font-size:12px;font-weight:600}.dashboard-movement-stat-value{color:var(--text-primary);letter-spacing:-.02em;font-size:32px;font-weight:800;line-height:1}.dashboard-movement-bar{margin-top:2px}.dashboard-movement-summary{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:10px;margin-top:4px;padding:16px 18px;font-size:13px;font-weight:600;line-height:1.5}@media (width<=1100px){.dashboard-leave-movement-grid,.dashboard-movement-stats{grid-template-columns:1fr}}.dashboard-workforce-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}@media (width<=1100px){.dashboard-dept-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-workforce-grid{grid-template-columns:1fr}}@media (width<=640px){.dashboard-dept-kpi-grid{grid-template-columns:1fr}}.dashboard-kpi-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.dashboard-kpi-card{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:12px;flex-direction:column;gap:8px;min-height:118px;padding:18px 18px 16px;display:flex}.dashboard-kpi-card-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-kpi-label{color:var(--text-secondary);font-size:13px;font-weight:600}.dashboard-kpi-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.dashboard-kpi-icon-green{color:#16a34a;background:#dcfce7}.dashboard-kpi-icon-orange{color:#ea580c;background:#ffedd5}.dashboard-kpi-icon-red{color:#dc2626;background:#fee2e2}.dashboard-kpi-icon-purple{color:#9333ea;background:#f3e8ff}.dashboard-kpi-value{color:var(--text-primary);letter-spacing:-.02em;font-size:34px;font-weight:800;line-height:1}.dashboard-kpi-trend{align-items:center;gap:4px;font-size:11px;font-weight:700;display:inline-flex}.dashboard-kpi-trend-green{color:#16a34a}.dashboard-kpi-trend-orange{color:#ea580c}.dashboard-kpi-trend-red{color:#dc2626}.dashboard-kpi-trend-purple{color:#9333ea}@media (width<=1100px){.dashboard-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.dashboard-kpi-strip{grid-template-columns:1fr}}.dashboard-attendance-section{margin-bottom:20px}.dashboard-section-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.dashboard-section-header-row .dashboard-section-title{margin-bottom:4px}.dashboard-section-header-row .dashboard-section-subtitle{margin:0}.dashboard-trend-toolbar-inline{flex-shrink:0;align-items:center;gap:10px;display:flex}.dashboard-trend-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.dashboard-trend-card{box-shadow:var(--card-shadow);gap:12px}.dashboard-trend-chart-heading{min-width:0}.dashboard-trend-chart-meta{flex-shrink:0;align-items:flex-start;gap:12px;display:flex}.dashboard-trend-kpi{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.dashboard-trend-kpi-value{letter-spacing:-.02em;font-size:28px;font-weight:800;line-height:1}.dashboard-trend-kpi-delta{background:var(--bg-surface);border-radius:999px;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.dashboard-trend-kpi-delta-good{color:#16a34a;background:#dcfce7}.dashboard-trend-kpi-delta-bad{color:#dc2626;background:#fee2e2}.dashboard-trend-chart-body{width:100%;height:260px;position:relative}.dashboard-trend-loading,.dashboard-trend-empty{flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;display:flex}.dashboard-trend-loading-bar{background:linear-gradient(90deg, var(--border), var(--blue), var(--border));background-size:200% 100%;border-radius:999px;width:48px;height:4px;animation:1.2s ease-in-out infinite dashboard-shimmer}@keyframes dashboard-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (width<=960px){.dashboard-trend-grid{grid-template-columns:1fr}}.dashboard-staff-panel{min-height:auto;box-shadow:var(--card-shadow)}.dashboard-staff-empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 16px;display:flex}.dashboard-staff-more-depts{text-align:center;margin:10px 0 0}.dashboard-panel-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:8px;display:flex}.dashboard-segment-group{border:1px solid var(--border);background:#f1f5f9;border-radius:8px;flex-shrink:0;gap:4px;padding:4px;display:flex}.dashboard-segment-btn{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:7px 16px;font-size:12px;font-weight:600;transition:all .15s}.dashboard-segment-btn.active{background:var(--blue);color:#fff;box-shadow:0 1px 3px #3b82f659}.dashboard-staff-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.dashboard-staff-kpi{border:1px solid var(--border);background:var(--bg-surface);border-radius:12px;flex-direction:column;gap:10px;padding:18px 20px;display:flex}.dashboard-staff-kpi-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-staff-kpi-label{color:var(--text-secondary);font-size:13px;font-weight:600}.dashboard-staff-kpi-value{color:var(--text-primary);letter-spacing:-.02em;font-size:34px;font-weight:800;line-height:1}.dashboard-staff-attendance-track{background:var(--border);border-radius:999px;height:6px;margin-top:2px;overflow:hidden}.dashboard-staff-attendance-fill{border-radius:999px;height:100%;transition:width .4s}.dashboard-staff-stat-green{color:#16a34a}.dashboard-staff-stat-purple{color:#8b5cf6}.dashboard-staff-dept-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.dashboard-staff-dept-card{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:14px;padding:18px 20px;display:flex}.dashboard-staff-dept-name{color:var(--text-primary);font-size:15px;font-weight:800;line-height:1.3}.dashboard-staff-dept-rows{flex-direction:column;gap:8px;display:flex}.dashboard-staff-dept-row{color:var(--text-secondary);grid-template-columns:16px 1fr auto;align-items:center;gap:8px;font-size:13px;font-weight:600;display:grid}.dashboard-staff-dept-row strong{color:var(--text-primary);font-size:15px;font-weight:800}.dashboard-staff-dept-attendance{border-top:1px solid var(--border);opacity:.9;flex-direction:column;gap:6px;padding-top:4px;display:flex}.dashboard-staff-dept-attendance-top{color:var(--text-muted);justify-content:space-between;align-items:center;font-size:11px;font-weight:600;display:flex}.dashboard-staff-dept-attendance-top strong{font-size:12px;font-weight:800}@media (width<=900px){.dashboard-staff-overview-grid,.dashboard-staff-dept-grid{grid-template-columns:1fr}}.dashboard-dept-pagination{justify-content:center;align-items:center;gap:16px;margin-top:4px;display:flex}.dashboard-dept-page-btn{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:8px;padding:6px 14px;font-size:12px;font-weight:600}.dashboard-dept-page-btn:disabled{opacity:.45;cursor:not-allowed}.dashboard-payroll-status-list{flex-direction:column;gap:18px;padding-top:4px;display:flex}.dashboard-payroll-status-row{flex-direction:column;gap:8px;display:flex}.dashboard-payroll-status-top{justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.dashboard-payroll-status-label{color:var(--text-primary);align-items:center;gap:8px;display:flex}.dashboard-payroll-status-icon{justify-content:center;align-items:center;display:inline-flex}.dashboard-payroll-progress{background:var(--border);border-radius:999px;height:6px}.dashboard-avg-cost-panel{min-height:420px}.dashboard-avg-cost-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:4px;display:grid}.dashboard-avg-cost-stat{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.dashboard-avg-cost-stat-label{color:var(--text-muted);font-size:11px;font-weight:600}.dashboard-avg-cost-stat strong{font-size:22px;font-weight:800;line-height:1.1}.dashboard-avg-cost-stat-dept{color:var(--text-secondary);font-size:11px;font-weight:600}.dashboard-avg-cost-stat-high{background:#ecfdf5}.dashboard-avg-cost-stat-high strong{color:#15803d}.dashboard-avg-cost-stat-avg{background:#eff6ff}.dashboard-avg-cost-stat-avg strong{color:var(--blue)}.dashboard-avg-cost-stat-low{background:#fef2f2}.dashboard-avg-cost-stat-low strong{color:#dc2626}.dashboard-tds-panel{flex-direction:column;gap:16px;min-height:420px;display:flex}.dashboard-tds-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.dashboard-tds-kpi{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.dashboard-tds-kpi-label{letter-spacing:.04em;color:var(--text-muted);text-transform:uppercase;font-size:10px;font-weight:700}.dashboard-tds-kpi strong{font-size:22px;font-weight:800;line-height:1.1}.dashboard-tds-kpi-calculated{background:#eff6ff}.dashboard-tds-kpi-calculated strong{color:var(--blue)}.dashboard-tds-kpi-paid{background:#ecfdf5}.dashboard-tds-kpi-paid strong{color:#16a34a}.dashboard-tds-kpi-pending{background:#fffbeb}.dashboard-tds-kpi-pending strong{color:#d97706}.dashboard-tds-table-wrap{flex:1;overflow-x:auto}.dashboard-tds-table{border-collapse:collapse;width:100%;font-size:12px}.dashboard-tds-table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);padding:10px 12px;font-size:10px;font-weight:700}.dashboard-tds-table th:not(:first-child),.dashboard-tds-table td:not(:first-child){text-align:right}.dashboard-tds-table td{border-bottom:1px solid var(--border);color:var(--text-primary);padding:12px;font-weight:600}.dashboard-tds-table tbody tr:last-child td{border-bottom:none}.dashboard-tds-status{justify-content:flex-end;align-items:center;gap:5px;width:100%;font-size:11px;font-weight:700;display:inline-flex}.dashboard-tds-status-complete{color:#16a34a}.dashboard-tds-status-pending{color:#d97706}.dashboard-trend-chart-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.dashboard-trend-legend{color:var(--text-muted);justify-content:center;gap:16px;margin-top:10px;font-size:10px;font-weight:700;display:flex}.dashboard-trend-legend-item{align-items:center;gap:6px;display:flex}.dashboard-trend-legend-swatch{border-radius:2px;flex-shrink:0;width:12px;height:12px}.dashboard-ot-chart{min-height:320px}.dashboard-billing-section,.dashboard-section{margin-bottom:20px}.dashboard-section-title{color:var(--text-primary);letter-spacing:-.02em;margin:0 0 16px;font-size:18px;font-weight:800}.dashboard-billing-grid{grid-template-columns:1.45fr 1fr;gap:20px;display:grid}.dashboard-billing-card{min-height:340px}.dashboard-billing-subtitle-blue{font-weight:600;color:var(--blue)!important}.dashboard-billing-subtitle-blue strong,.dashboard-billing-subtitle-amber strong{font-weight:800}.dashboard-billing-subtitle-amber{font-weight:600;color:#f97316!important}.dashboard-deductions-body{align-items:center;gap:20px;min-height:240px;padding:8px 4px 0;display:flex}.dashboard-deductions-pie-wrap{flex-shrink:0;justify-content:center;align-items:center;display:flex}.dashboard-deductions-legend{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.dashboard-deductions-legend-row{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.dashboard-deductions-legend-left{align-items:center;gap:8px;min-width:0;display:flex}.dashboard-deductions-legend-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.dashboard-deductions-legend-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.dashboard-deductions-legend-right strong{color:var(--text-primary);font-weight:700}.dashboard-trend-legend-line{border-radius:1px;width:18px;height:2px;position:relative}.dashboard-trend-legend-line:after{content:"";background:inherit;border-radius:50%;width:6px;height:6px;position:absolute;top:-2px;left:6px}.profile-metric-card{background:var(--bg-surface);cursor:default;border:none;border-radius:16px;flex-direction:column;padding:16px;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.profile-metric-card:hover{background:var(--bg-card-hover);box-shadow:var(--card-shadow);transform:translateY(-2px)}.profile-close-btn{background:var(--surface-hover);color:var(--text-muted);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:all .2s;display:flex}.profile-close-btn:hover{background:var(--surface-elevated);color:var(--text-primary)}.salary-sheet-status-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.salary-sheet-status-message{flex:1;align-items:center;gap:8px;min-width:0;display:flex}.past-month-banner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.past-month-edit-toggle{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:12px;font-weight:600;display:inline-flex}.past-month-edit-toggle input[type=checkbox]{appearance:none;background:var(--border);cursor:pointer;border-radius:999px;flex-shrink:0;width:36px;height:20px;transition:background .2s;position:relative}.past-month-edit-toggle input[type=checkbox]:after{content:"";background:var(--bg-card);width:16px;height:16px;box-shadow:var(--card-shadow);border-radius:50%;transition:transform .2s;position:absolute;top:2px;left:2px}.past-month-edit-toggle input[type=checkbox]:checked{background:var(--brand-primary,#10b981)}.past-month-edit-toggle input[type=checkbox]:checked:after{transform:translate(16px)}.salary-sheet-readonly-banner{align-items:center;gap:8px;display:flex}.salary-sheet-edit-toggle.is-active{box-shadow:0 0 0 2px var(--focus-ring)}.salary-sheet-wrapper.is-readonly .salary-sheet-table tr.locked td{opacity:.65}.salary-sheet-wrapper.is-editing .salary-sheet-table tr.locked td{opacity:1}.salary-sheet-table.is-editing .salary-sheet-cell-input:not(:disabled){opacity:1;background:var(--bg-input);cursor:text}.salary-sheet-bulk-row{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;padding:10px 12px;display:flex}.salary-sheet-toolbar-group{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-left:auto;display:flex}.salary-sheet-search{min-width:200px}.salary-sheet-search .search-input{width:200px}.salary-sheet-month-field{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-direction:column;gap:4px;font-size:10px;font-weight:700;display:flex}.salary-sheet-month-field select{background-color:var(--bg-input);width:auto;min-width:160px;color:var(--text-primary)}.salary-sheet-month-select{width:auto;max-width:220px}.salary-sheet-month-field select option{background:var(--bg-card);color:var(--text-primary)}.salary-sheet-bulk-field{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-direction:column;gap:4px;font-size:10px;font-weight:700;display:flex}.salary-run-field.is-active>span{color:var(--brand-primary)}.salary-run-field.is-active select{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--focus-ring)}.salary-custom-cols{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:10px;margin-top:8px;padding:12px 14px;display:flex}.salary-custom-cols-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.salary-custom-cols-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);align-items:center;gap:6px;font-size:11px;font-weight:700;display:inline-flex}.salary-custom-cols-actions{align-items:center;gap:8px;font-size:12px;display:inline-flex}.salary-custom-cols-actions button{cursor:pointer;color:var(--brand-primary);background:0 0;border:none;padding:0;font-size:12px;font-weight:600;transition:opacity .15s}.salary-custom-cols-actions button:hover{opacity:.7}.salary-custom-cols-sep{color:var(--text-muted)}.salary-custom-cols-add{align-items:center;gap:4px;display:inline-flex}.salary-chip-custom{padding-right:6px}.salary-chip-del{width:16px;height:16px;color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;transition:opacity .15s,background .15s;display:inline-flex}.salary-chip-del:hover{opacity:1;background:var(--red-dim,#ef44442e);color:var(--red,#ef4444)}.salary-custom-cols-chips{flex-wrap:wrap;gap:8px;display:flex}.salary-chip{border:1px solid var(--border);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 8px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.salary-chip:hover{border-color:var(--brand-primary);color:var(--text-primary)}.salary-chip input{display:none}.salary-chip-box{border:1.5px solid var(--text-muted);color:#fff;background:0 0;border-radius:5px;justify-content:center;align-items:center;width:16px;height:16px;transition:background .15s,border-color .15s;display:inline-flex}.salary-chip.is-on{border-color:var(--brand-primary);background:var(--brand-primary-dim);color:var(--brand-primary)}.salary-chip.is-on .salary-chip-box{background:var(--brand-primary);border-color:var(--brand-primary)}.salary-sheet-wrapper{overflow-x:auto}.salary-sheet-table{min-width:1200px;font-size:12px}.salary-sheet-custom-col{white-space:nowrap}.salary-sheet-custom-col-label{text-overflow:ellipsis;vertical-align:middle;max-width:120px;display:inline-block;overflow:hidden}.salary-sheet-col-delete{color:var(--text-muted);cursor:pointer;vertical-align:middle;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;margin-left:4px;padding:2px;display:inline-flex}.salary-sheet-col-delete:hover{color:var(--red);background:#ef44441f}.salary-sheet-table th{white-space:nowrap;background:var(--bg-table-header);color:var(--text-muted);padding:8px 6px;font-size:11px}.salary-sheet-table td{vertical-align:middle;padding:6px}.salary-sheet-check{text-align:center;width:36px}.salary-sheet-check input[type=checkbox]{cursor:pointer;width:14px;height:14px}.salary-sheet-name{min-width:140px;max-width:180px;font-weight:500}.salary-sheet-name-row{align-items:center;gap:6px;max-width:100%;display:inline-flex}.salary-sheet-name-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.salary-sheet-stage-tag{border-radius:4px;flex-shrink:0;padding:1px 6px;font-size:10px;font-weight:700;line-height:1.4}.salary-sheet-dd{color:var(--text-secondary);min-width:110px;font-size:11px}.salary-sheet-cell-input{border:1px solid var(--border);background:var(--bg-input);width:64px;font-size:12px;font-family:var(--font-mono,monospace);text-align:right;border-radius:6px;padding:4px 6px}.salary-sheet-cell-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 1px var(--border-focus);outline:none}.salary-sheet-cell-input:disabled{opacity:.5;background:var(--bg-surface);cursor:not-allowed}.salary-sheet-ot-cell{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.salary-sheet-ot-earnings{color:var(--green);font-size:11px;font-weight:600;font-family:var(--font-mono,monospace);white-space:nowrap}.salary-sheet-late-deduction{color:var(--red);font-size:11px;font-weight:600;font-family:var(--font-mono,monospace);white-space:nowrap}.salary-sheet-abs-note{color:var(--text-secondary,#64748b);font-size:10px;font-weight:500;font-family:var(--font-mono,monospace);white-space:nowrap;line-height:1.2}.salary-sheet-lock-btn{border:1px solid var(--border);background:var(--bg-input);width:28px;height:28px;color:var(--text-primary);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.salary-sheet-lock-btn:hover:not(:disabled){border-color:var(--border-light);background:var(--surface-hover)}.salary-sheet-lock-btn.is-locked{background:var(--locked-btn-bg);border-color:var(--locked-btn-border);color:var(--locked-btn-text)}.salary-sheet-lock-btn:disabled{opacity:.5;cursor:not-allowed}.review-column-stack{flex-direction:column;align-items:stretch;gap:4px;min-width:172px;display:flex}.review-date-row{background:var(--bg-input);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px;display:flex}.review-date-row--pto{background:var(--green-dim);border-color:#34c75959}.review-date-row--excused{background:var(--amber-dim);border-color:#ff950059}.review-date-row--fixed{background:var(--green-dim);border-color:#34c75959}.review-date-content{flex-direction:column;gap:1px;min-width:0;line-height:1.25;display:flex}.review-date-text{white-space:nowrap;color:var(--text-primary);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;font-weight:600}.review-date-time{color:var(--amber);margin-left:6px;font-weight:700}.review-date-label{color:var(--text-secondary);margin-left:4px;font-weight:500}.review-date-punch{white-space:nowrap;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px}.review-date-punch--assumed{color:var(--amber);font-weight:700}.review-date-punch--normal{color:var(--text-secondary);font-weight:500}.review-pto-badge{background:var(--green-dim);color:var(--green);border:1px solid #34c75959;border-radius:5px;margin-left:6px;padding:1px 6px;font-family:inherit;font-size:9px;font-weight:700}.review-toggle-btn{border:1px solid var(--border);cursor:pointer;text-align:center;background:var(--bg-card);width:30px;height:26px;color:var(--text-secondary);border-radius:6px;flex-shrink:0;padding:0;font-size:13px;font-weight:700;line-height:1;transition:background .12s,border-color .12s,color .12s}.review-toggle-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-light);color:var(--text-primary)}.review-toggle-btn--excused{background:var(--amber-dim);color:var(--amber);border-color:#ff950073}.review-toggle-btn:disabled{opacity:.55;cursor:default}.review-fix-btn{border:1px solid var(--border);cursor:pointer;text-align:center;white-space:nowrap;background:var(--bg-card);height:28px;color:var(--text-secondary);border-radius:6px;flex-shrink:0;padding:0 10px;font-size:11px;font-weight:700;line-height:1;transition:background .12s,border-color .12s,color .12s}.review-fix-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-light);color:var(--text-primary)}.review-fix-btn--fixed{background:var(--green-dim);color:var(--green);border-color:#34c75973}.review-fix-btn:disabled{opacity:.55;cursor:default}.bonus-receipt-wrap{flex-direction:column;align-items:center;gap:12px;display:flex}.bonus-receipt-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.bonus-receipt{background:0 0;width:320px;max-width:100%;overflow:visible;box-shadow:0 18px 28px #0f172a38}.bonus-receipt-zigzag{display:none}.bonus-receipt-zigzag-svg{flex-shrink:0;width:100%;height:14px;display:block}.bonus-receipt-body{color:#1f2937;background:#fff;padding:0 0 18px}.bonus-receipt-header{text-align:center;color:#fff;padding:18px 20px 14px}.bonus-receipt-header.gold{background:linear-gradient(165deg,#8b5e3c 0%,#6b4423 100%)}.bonus-receipt-header.forest{background:linear-gradient(165deg,#1f4d3a 0%,#163528 100%)}.bonus-receipt-brand{letter-spacing:.22em;opacity:.9;margin-bottom:6px;font-family:Syne,Outfit,sans-serif;font-size:11px;font-weight:800}.bonus-receipt-title{letter-spacing:.04em;font-family:Syne,Outfit,sans-serif;font-size:18px;font-weight:800;line-height:1.15}.bonus-receipt-meta{letter-spacing:.08em;color:#6b7280;text-align:center;padding:14px 20px 4px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.bonus-receipt-name{text-align:center;text-transform:uppercase;letter-spacing:-.02em;color:#111827;padding:4px 18px 2px;font-family:Syne,Outfit,sans-serif;font-size:22px;font-weight:800;line-height:1.2}.bonus-receipt-dept{text-align:center;color:#9ca3af;letter-spacing:.04em;padding:0 18px 14px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px}.bonus-receipt-lines{flex-direction:column;gap:9px;padding:0 20px;display:flex}.bonus-receipt-line{color:#374151;justify-content:space-between;gap:12px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:11px;display:flex}.bonus-receipt-line span:last-child{text-align:right;white-space:nowrap;font-weight:600}.bonus-receipt-line.perk{color:#1f4d3a;font-size:10px;font-style:italic}.bonus-receipt-line.perk span:last-child{color:#6b7280;font-style:normal;font-weight:500}.bonus-receipt-total{letter-spacing:.06em;color:#111827;border-top:3px double #111827;justify-content:space-between;align-items:baseline;margin:16px 20px 0;padding-top:12px;font-family:Syne,Outfit,sans-serif;font-size:13px;font-weight:800;display:flex}.bonus-receipt-total-val{letter-spacing:-.02em;font-size:28px;line-height:1}.bonus-receipt-total-val.gold{color:#8b5e3c}.bonus-receipt-total-val.forest{color:#1f4d3a}.bonus-receipt-barcode{justify-content:center;align-items:flex-end;gap:1.5px;height:36px;margin:18px 24px 8px;display:flex}.bonus-receipt-barcode span{background:#111827;border-radius:.5px;height:100%;display:block}.bonus-receipt-footer{letter-spacing:.12em;text-align:center;color:#9ca3af;padding:0 16px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px}.bonus-honors-stage{background:radial-gradient(circle at 20% 20%,#8b5e3c1f,#0000 45%),radial-gradient(circle at 80% 10%,#1f4d3a1a,#0000 40%),linear-gradient(165deg,#2a3544 0%,#1a2330 100%);border-radius:12px;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:20px;margin-bottom:16px;padding:20px;display:flex}.bonus-receipt--roll{width:420px}.bonus-receipt-submeta{letter-spacing:.06em;color:#9ca3af;text-align:center;padding:0 20px 14px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px}.bonus-roll-list{flex-direction:column;gap:10px;padding:0 16px 4px;display:flex}.bonus-roll-row{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;grid-template-columns:64px 1fr 64px;align-items:center;gap:10px;padding:12px;display:grid}.bonus-roll-row.is-first{background:linear-gradient(135deg,#d4af3729,#f8fafc);border-color:#8b5e3c59}.bonus-roll-rank{flex-direction:column;align-items:center;gap:2px;display:flex}.bonus-roll-rank-num{color:#1f2937;font-family:Syne,Outfit,sans-serif;font-size:20px;font-weight:800;line-height:1}.bonus-roll-medal{letter-spacing:.08em;color:#8b5e3c;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;font-weight:700}.bonus-roll-who{min-width:0}.bonus-roll-name{text-transform:uppercase;letter-spacing:-.01em;color:#111827;align-items:center;gap:6px;font-family:Syne,Outfit,sans-serif;font-size:13px;font-weight:800;line-height:1.2;display:flex}.bonus-roll-crown{color:#d4af37;font-size:14px}.bonus-roll-details{color:#9ca3af;letter-spacing:.03em;margin-top:3px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px}.bonus-roll-stats{color:#6b7280;margin-top:5px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;line-height:1.35}.bonus-roll-score{text-align:right}.bonus-roll-score-val{color:#8b5e3c;font-family:Syne,Outfit,sans-serif;font-size:22px;font-weight:800;line-height:1}.bonus-roll-score-label{letter-spacing:.1em;color:#9ca3af;margin-top:2px;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px}.section-title{color:var(--text-primary);margin:0 0 16px;font-size:15px;font-weight:700}.reports-toolbar{flex-wrap:wrap;align-items:flex-end;gap:20px;display:flex}.reports-toolbar-group{flex-direction:column;gap:6px;display:flex}.reports-toolbar-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:11px;font-weight:600}.reports-mode-tabs,.reports-grain-tabs{flex-wrap:wrap;gap:4px;display:flex}.reports-mode-tab,.reports-grain-tab{color:var(--text-secondary);background:var(--surface-muted);border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.reports-mode-tab:hover,.reports-grain-tab:hover{color:var(--text-primary);background:var(--surface-hover)}.reports-mode-tab.active,.reports-grain-tab.active{color:var(--brand-primary);background:var(--brand-primary-dim);border-color:var(--brand-primary)}.reports-employee-select{flex:1;min-width:280px}.reports-detail-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.reports-detail-item{background:var(--surface-muted);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.reports-detail-highlight{background:var(--brand-primary-dim);border:1px solid var(--brand-primary)}.reports-detail-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600}.reports-detail-value{color:var(--text-primary);font-size:14px;font-weight:600}.reports-employee-layout{flex-direction:column;gap:16px;display:flex}.reports-employee-header{align-items:center;gap:16px;display:flex}.reports-employee-name{margin:0 0 4px;font-size:20px;font-weight:700}.reports-employee-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.reports-employee-header .badge{margin-left:auto}
