:root{--font-primary:"Inter", sans-serif;--font-display:"Outfit", sans-serif;--bg-primary:#0b0f19;--bg-secondary:#111827;--bg-tertiary:#1f2937;--card-bg:#111827a6;--card-bg-hover:#1f2937cc;--card-border:#ffffff0f;--card-border-focus:#6366f166;--color-present:#10b981;--color-present-light:#10b98126;--color-absent:#ef4444;--color-absent-light:#ef444426;--color-lop:#f97316;--color-lop-light:#f9731626;--color-cl:#06b6d4;--color-cl-light:#06b6d426;--color-weeklyoff:#6366f1;--color-weeklyoff-light:#6366f126;--color-holiday:#a855f7;--color-holiday-light:#a855f726;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#4f46e5;--accent-secondary:#06b6d4;--accent-gradient:linear-gradient(135deg, #4f46e5 0%, #06b6d4 100%);--accent-hover:#4338ca;--shadow-lg:0 10px 25px -5px #0000004d, 0 8px 10px -6px #0000004d;--shadow-glow:0 0 15px #6366f126;--glass-blur:blur(16px);--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:20px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-primary);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background-color:var(--accent-primary);color:#fff}@media print{body{color:#000!important;background:#fff!important}.no-print{display:none!important}}.animate-fade-in{animation:.4s cubic-bezier(.16,1,.3,1) forwards fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.font-bold{font-weight:700}.text-present{color:var(--color-present)}.text-absent{color:var(--color-absent)}.text-lop{color:var(--color-lop)}.text-cl{color:var(--color-cl)}.text-weeklyoff{color:var(--color-weeklyoff)}.text-holiday{color:var(--color-holiday)}.text-indigo{color:#818cf8}.text-cyan{color:#22d3ee}.glass-panel{background:var(--card-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--card-border);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);padding:1rem;transition:border-color .3s,box-shadow .3s}.glass-panel:hover{box-shadow:var(--shadow-lg), var(--shadow-glow);border-color:#ffffff1f}.btn{font-family:var(--font-primary);border-radius:var(--border-radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.95rem;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 4px 14px #4f46e54d}.btn-primary:hover{opacity:.95;transform:translateY(-2px);box-shadow:0 6px 20px #4f46e573}.btn-outline{border:1px solid var(--card-border);color:var(--text-primary);background:0 0}.btn-outline:hover{background:var(--bg-tertiary);border-color:var(--text-secondary)}.form-group{flex-direction:column;gap:.5rem;margin-bottom:1.25rem;display:flex}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:500}.form-control{background-color:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-primary);padding:.5rem;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-control:focus{border-color:var(--accent-primary);outline:none;box-shadow:0 0 0 3px #6366f133}.select-wrapper{position:relative}select.form-control{appearance:none;cursor:pointer}.divider{background:var(--card-border);border:0;height:1px;margin:1.5rem 0}.login-overlay{background:radial-gradient(circle at 10% 20%,#131a2d 0%,#090c15 90%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-card{border-radius:var(--border-radius-lg);flex-direction:column;width:100%;max-width:440px;padding:2.5rem;display:flex}.login-brand{text-align:center;margin-bottom:2rem}.brand-logo-accent{background:var(--accent-gradient);border-radius:var(--border-radius-md);color:#fff;justify-content:center;align-items:center;width:54px;height:54px;margin-bottom:1rem;font-size:1.5rem;display:inline-flex;box-shadow:0 4px 15px #06b6d44d}.login-brand h2{letter-spacing:.05em;margin-bottom:.25rem;font-size:1.75rem}.login-brand p{color:var(--text-secondary);font-size:.9rem;font-weight:500}.login-tabs{background:var(--bg-secondary);border-radius:var(--border-radius-sm);border:1px solid var(--card-border);grid-template-columns:1fr 1fr;margin-bottom:2rem;padding:.25rem;display:grid}.login-tab-btn{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem;font-size:.85rem;font-weight:600;transition:all .2s;display:flex}.login-tab-btn.active{background:var(--bg-tertiary);color:var(--text-primary);box-shadow:0 2px 6px #00000026}.login-form{flex-direction:column;gap:1.25rem;display:flex}.input-with-icon{align-items:center;display:flex;position:relative}.input-icon{color:var(--text-muted);position:absolute;left:1rem}.input-with-icon .form-control{padding-left:2.75rem}.disabled-input{opacity:.6;background-color:var(--bg-tertiary);cursor:not-allowed}.error-message{background-color:var(--color-absent-light);border-radius:var(--border-radius-sm);color:var(--color-absent);border:1px solid #ef444440;padding:.75rem 1rem;font-size:.85rem;font-weight:500;line-height:1.4}.login-footer{text-align:center;color:var(--text-muted);margin-top:2.5rem;font-size:.75rem}.portal-container{flex-direction:column;gap:2rem;max-width:1280px;margin:0 auto;padding:2rem 1.5rem;display:flex}.portal-header{border-radius:var(--border-radius-md);justify-content:space-between;align-items:center;display:flex}.header-brand{align-items:center;gap:1rem;display:flex}.brand-dot{background-color:var(--color-present);width:12px;height:12px;box-shadow:0 0 10px var(--color-present);border-radius:50%}.brand-dot.admin-mode{background-color:var(--color-weeklyoff);box-shadow:0 0 10px var(--color-weeklyoff)}.user-profile-controls{align-items:center;gap:1.5rem;display:flex}.user-avatar-tag{background:var(--bg-secondary);border-radius:var(--border-radius-sm);border:1px solid var(--card-border);align-items:center;gap:.75rem;padding:.5rem 1rem;display:flex}.user-avatar-tag svg{color:var(--accent-secondary);font-size:1.5rem}.user-text-details{flex-direction:column;display:flex}.user-name-title{font-size:.95rem;font-weight:700;font-family:var(--font-display)}.user-badge{color:var(--text-secondary);font-size:.75rem}.portal-content{grid-template-columns:1fr 1fr;gap:2rem;display:grid}@media (width<=900px){.portal-content{grid-template-columns:1fr}}.portal-grid-left{flex-direction:column;gap:2rem;display:flex}.widget-title{color:var(--text-primary);border-bottom:1px solid var(--card-border);align-items:center;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.75rem;font-size:1.15rem;display:flex}.date-clock-ticker{text-align:center;border-radius:var(--border-radius-md);border:1px solid var(--card-border);background:radial-gradient(circle,#1f293766 0%,#11182799 100%);margin-bottom:1.5rem;padding:1.5rem}.clock-time{font-size:2.25rem;font-weight:800;font-family:var(--font-display);color:var(--text-primary);letter-spacing:.05em;text-shadow:0 0 10px #ffffff1a;margin-bottom:.25rem}.clock-date{color:var(--text-secondary);font-size:.9rem;font-weight:500}.day-select-bar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.day-select-bar label{color:var(--text-secondary);font-size:.9rem;font-weight:600}.selector-day{max-width:200px}.current-status-display{text-align:center;margin:1.25rem 0;font-size:1rem;font-weight:600}.status-badge{text-transform:uppercase;border-radius:6px;padding:.35rem .75rem;font-size:.85rem;font-weight:700}.status-badge.P{background-color:var(--color-present-light);color:var(--color-present);border:1px solid #10b9814d}.status-badge.A{background-color:var(--color-absent-light);color:var(--color-absent);border:1px solid #ef44444d}.status-badge.LOP{background-color:var(--color-lop-light);color:var(--color-lop);border:1px solid #f973164d}.status-badge.CL{background-color:var(--color-cl-light);color:var(--color-cl);border:1px solid #06b6d44d}.status-badge.WO{background-color:var(--color-weeklyoff-light);color:var(--color-weeklyoff);border:1px solid #6366f14d}.status-badge.H{background-color:var(--color-holiday-light);color:var(--color-holiday);border:1px solid #a855f74d}.status-badge.empty{background-color:var(--bg-secondary);color:var(--text-muted);border:1px solid var(--card-border)}.checkin-action-buttons{grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;display:grid}.checkin-action-buttons .btn{height:50px;font-size:.95rem}.checkin-action-buttons .btn-leave{grid-column:span 2}.btn-present{color:var(--color-present);background:#10b9811a;border:1px solid #10b9814d}.btn-present:hover,.active-present{box-shadow:0 4px 15px #10b9814d;background:var(--color-present)!important;color:#fff!important}.btn-absent{color:var(--color-absent);background:#ef44441a;border:1px solid #ef44444d}.btn-absent:hover,.active-absent{box-shadow:0 4px 15px #ef44444d;background:var(--color-absent)!important;color:#fff!important}.btn-lop{color:var(--color-lop);background:#f973161a;border:1px solid #f973164d}.btn-lop:hover,.active-lop{box-shadow:0 4px 15px #f973164d;background:var(--color-lop)!important;color:#fff!important}.btn-cl{color:var(--color-cl);background:#06b6d41a;border:1px solid #06b6d44d}.btn-cl:hover,.active-cl{box-shadow:0 4px 15px #06b6d44d;background:var(--color-cl)!important;color:#fff!important}.checkin-disclaimer{color:var(--text-muted);margin-top:1rem;font-size:.75rem;line-height:1.4}.stats-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.kpi-box{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1rem;display:flex}.kpi-label{text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.kpi-value{font-size:1.5rem;font-weight:800;font-family:var(--font-display)}.salary-estimate-box{border-radius:var(--border-radius-sm);background:#6366f10d;border:1px solid #6366f126;margin-top:1rem;padding:1.25rem}.est-header{justify-content:space-between;align-items:center;font-size:.95rem;font-weight:500;display:flex}.est-gross{font-weight:700}.footer-est{font-size:1.1rem;font-weight:700}.est-net{font-size:1.3rem;font-weight:800;font-family:var(--font-display)}.calc-disclaimer{color:var(--text-muted);margin-top:.5rem;font-size:.72rem;line-height:1.4}.calendar-status-legend{background:var(--bg-secondary);border-radius:var(--border-radius-sm);border:1px solid var(--card-border);flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.5rem;padding:.6rem;font-size:.75rem;display:flex}.legend-item{color:var(--text-secondary);align-items:center;gap:.35rem;display:flex}.legend-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.legend-dot.status-p,.calendar-cell.P{background-color:var(--color-present)}.legend-dot.status-a,.calendar-cell.A{background-color:var(--color-absent)}.legend-dot.status-lop,.calendar-cell.LOP{background-color:var(--color-lop)}.legend-dot.status-cl,.calendar-cell.CL{background-color:var(--color-cl)}.legend-dot.status-wo,.calendar-cell.WO{background-color:var(--color-weeklyoff)}.legend-dot.status-h,.calendar-cell.H{background-color:var(--color-holiday)}.calendar-grid-container{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}.calendar-day-header{text-align:center;text-transform:uppercase;color:var(--text-muted);letter-spacing:.05em;padding:.5rem 0;font-size:.8rem;font-weight:700}.calendar-cell{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:var(--border-radius-sm);aspect-ratio:1.1;cursor:pointer;color:var(--text-primary);flex-direction:column;justify-content:space-between;align-items:center;padding:.75rem .25rem;transition:all .2s;display:flex}.calendar-cell:hover{border-color:#fff3;transform:scale(1.05)}.calendar-cell.selected{outline:2px solid var(--accent-secondary);outline-offset:1px}.cell-day-num{font-size:.85rem;font-weight:700}.cell-status-label{text-align:center;background-color:#00000040;border-radius:4px;min-width:24px;padding:1px 4px;font-size:.72rem;font-weight:800}.calendar-cell.P,.calendar-cell.A,.calendar-cell.LOP,.calendar-cell.CL,.calendar-cell.WO,.calendar-cell.H{border:none;color:#fff!important}.admin-container{flex-direction:column;gap:1.5rem;min-height:100vh;padding:1.5rem;display:flex}.admin-header{justify-content:space-between;align-items:center;display:flex}.admin-actions{gap:1rem;display:flex}.admin-layout{grid-template-columns:240px 1fr;align-items:start;gap:1.5rem;transition:grid-template-columns .25s cubic-bezier(.4,0,.2,1);display:grid}.admin-layout.collapsed{grid-template-columns:1fr;gap:0}@media (width<=1024px){.admin-layout{grid-template-columns:1fr}.admin-layout.collapsed{gap:0}}.admin-sidebar{flex-direction:column;gap:.5rem;padding:1rem;transition:opacity .2s,transform .2s;display:flex}.admin-sidebar.collapsed{display:none!important}.sidebar-toggle-btn{border-radius:var(--border-radius-sm);background:var(--bg-secondary);border:1px solid var(--card-border);width:38px;height:38px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.sidebar-toggle-btn:hover{background:var(--bg-tertiary);border-color:var(--accent-secondary);color:var(--accent-secondary);box-shadow:var(--shadow-glow)}.sidebar-toggle-btn:active{transform:scale(.95)}.sidebar-nav{flex-direction:column;gap:.5rem;display:flex}.nav-btn{border-radius:var(--border-radius-sm);color:var(--text-secondary);font-family:var(--font-primary);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:.5rem;padding:.85rem 1rem;font-size:.95rem;font-weight:600;transition:all .2s;display:flex}.nav-btn:hover{background:var(--bg-secondary);color:var(--text-primary);padding-left:1.25rem}.nav-btn.active{background:var(--accent-gradient);color:#fff;box-shadow:0 4px 12px #4f46e533}.btn-icon{font-size:1.05rem}.admin-content{min-width:0}.table-card{border-radius:var(--border-radius-md);overflow:hidden}.table-header-bar{border-bottom:1px solid var(--card-border);margin-bottom:1.5rem;padding-bottom:.75rem}.table-header-bar h3{margin-bottom:.25rem;font-size:1.2rem}.spreadsheet-container{border-radius:var(--border-radius-sm);border:1px solid var(--card-border);max-width:100%;overflow-x:auto}.spreadsheet-table{border-collapse:separate;border-spacing:0;width:100%}.spreadsheet-table th,.spreadsheet-table td{border-right:1px solid var(--card-border);border-bottom:1px solid var(--card-border);text-align:center;min-width:54px;padding:.5rem;font-size:.82rem}.spreadsheet-table th{background-color:var(--bg-secondary);font-weight:700;font-family:var(--font-display);color:var(--text-secondary);height:48px}.head-sunday{color:var(--color-weeklyoff)!important;background-color:#6366f11a!important}.day-name-sub{opacity:.7;margin-top:1px;font-size:.6rem;font-weight:800;display:block}.spreadsheet-table .sticky-col{z-index:10;background-color:var(--bg-primary);position:sticky}.spreadsheet-table .first-col-head{background-color:var(--bg-secondary);min-width:80px;left:0}.spreadsheet-table .second-col-head{text-align:left;background-color:var(--bg-secondary);min-width:130px;left:80px}.spreadsheet-table .first-col-body{min-width:80px;font-weight:700;left:0}.spreadsheet-table .second-col-body{text-align:left;min-width:130px;font-weight:600;left:80px}.spreadsheet-table tr:hover td.sticky-col{background-color:var(--bg-secondary)}.spreadsheet-table .summary-col-head{background-color:var(--bg-tertiary);color:var(--text-primary);min-width:65px}.summary-val{background-color:#1f29374d;font-weight:700}.cell-editable-container{padding:.25rem!important}.cell-status-select{width:100%;height:32px;color:var(--text-primary);text-align:center;cursor:pointer;text-align-last:center;background-color:#0000;border:1px solid #0000;border-radius:4px;font-weight:800;transition:all .15s}.cell-status-select:focus{background-color:var(--bg-tertiary);border-color:var(--accent-secondary);outline:none}.cell-status-select.P{background-color:var(--color-present);color:#fff}.cell-status-select.A{background-color:var(--color-absent);color:#fff}.cell-status-select.LOP{background-color:var(--color-lop);color:#fff}.cell-status-select.CL{background-color:var(--color-cl);color:#fff}.cell-status-select.WO{background-color:var(--color-weeklyoff);color:#fff}.cell-status-select.H{background-color:var(--color-holiday);color:#fff}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid var(--card-border);text-align:left;padding:.5rem;font-size:.9rem}.admin-table th{background-color:var(--bg-secondary);font-weight:700;font-family:var(--font-display);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.8rem}.admin-table tr:hover{background-color:#ffffff05}.emp-name-tag{color:var(--text-primary);font-weight:700}.btn-icon-only{cursor:pointer;background:0 0;border:none;font-size:1.1rem;transition:transform .2s}.btn-icon-only:hover{transform:scale(1.2)}.master-grid-layout{grid-template-columns:380px 1fr;align-items:start;gap:1.5rem;display:grid}@media (width<=1100px){.master-grid-layout{grid-template-columns:1fr}}.vertical-form{flex-direction:column;gap:1rem;display:flex}.form-row-2{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.section-subtitle{color:var(--accent-secondary);text-transform:uppercase;letter-spacing:.05em;margin-top:.5rem;font-size:.9rem}.gross-salary-preview{background-color:var(--bg-secondary);border-radius:var(--border-radius-sm);border:1px solid var(--card-border);justify-content:space-between;align-items:center;margin:.5rem 0;padding:1rem;font-size:.95rem;display:flex}.gross-salary-preview strong{color:var(--color-present);font-size:1.1rem}.payroll-table td{padding:.6rem .5rem}.table-input{background-color:var(--bg-secondary);border:1px solid var(--card-border);width:70px;color:var(--text-primary);text-align:right;border-radius:4px;padding:.35rem .5rem;font-size:.85rem;font-weight:600}.table-input:focus{border-color:var(--accent-secondary);outline:none}.dashboard-charts-row{grid-template-columns:1.5fr 1fr;gap:1.5rem;margin-top:1.5rem;display:grid}@media (width<=900px){.dashboard-charts-row{grid-template-columns:1fr}}.dashboard-chart-card h3,.quick-links-card h3{border-bottom:1px solid var(--card-border);margin-bottom:1.25rem;padding-bottom:.5rem;font-size:1.1rem}.bar-chart-container{flex-direction:column;gap:.85rem;display:flex}.bar-chart-row{align-items:center;gap:1rem;font-size:.85rem;display:flex}.bar-label{text-overflow:ellipsis;white-space:nowrap;width:140px;font-weight:600;overflow:hidden}.bar-wrapper{background-color:var(--bg-secondary);border:1px solid var(--card-border);border-radius:4px;flex-grow:1;height:20px;overflow:hidden}.bar-fill{border-radius:3px;align-items:center;height:100%;padding-left:.5rem;transition:width .6s;display:flex}.bar-value{color:#fff;font-size:.72rem;font-weight:800}.info-list{flex-direction:column;gap:.85rem;list-style:none;display:flex}.info-list li{color:var(--text-secondary);padding-left:1.25rem;font-size:.85rem;line-height:1.5;position:relative}.info-list li:before{content:"→";color:var(--accent-secondary);font-weight:800;position:absolute;left:0}.payslip-selector-bar{align-items:center;gap:1.5rem;margin-bottom:1.5rem;display:flex}.select-payslip{max-width:250px}.payslip-print-container{border-radius:var(--border-radius-md);border:1px solid var(--card-border);background-color:#1e293b;justify-content:center;padding:2.5rem;display:flex}.payslip-sheet{color:#1e293b;width:790px;min-height:1050px;font-family:var(--font-primary);background:#fff;border-radius:4px;flex-direction:column;padding:3rem;display:flex;box-shadow:0 4px 20px #0006}.payslip-header{text-align:center;margin-bottom:1rem}.payslip-header h1{font-family:var(--font-display);color:#0f172a;letter-spacing:.05em;margin-bottom:.25rem;font-size:2.25rem;font-weight:900}.payslip-header .sub{color:#64748b;margin-bottom:1rem;font-size:.85rem;font-weight:500}.payslip-header h2{color:#1e293b;letter-spacing:.1em;text-transform:uppercase;margin-top:.5rem;font-size:1.25rem;font-weight:700}.payslip-divider{background:#cbd5e1;border:0;height:1px;margin:1.25rem 0}.payslip-divider-double{border:1px solid #94a3b8;border-left:0;border-right:0;height:3px;margin:1rem 0}.payslip-meta-grid{grid-template-columns:1fr 1fr;gap:.6rem 3rem;padding:.5rem 0;font-size:.9rem;display:grid}.meta-row{border-bottom:1px dashed #e2e8f0;justify-content:space-between;padding-bottom:.25rem;display:flex}.meta-row span:first-child{color:#475569}.meta-row span:last-child{color:#0f172a;font-weight:600}.payslip-ledger-grid{grid-template-columns:1fr 1fr;gap:2rem;margin-top:1rem;display:grid}.ledger-column h3{color:#0f172a;background:#f1f5f9;border-left:3px solid #334155;margin-bottom:.5rem;padding:.5rem;font-size:.95rem;font-weight:700}.ledger-table{border-collapse:collapse;width:100%}.ledger-table th,.ledger-table td{border-bottom:1px solid #e2e8f0;padding:.5rem;font-size:.85rem}.ledger-table th{color:#475569;text-transform:uppercase;font-size:.72rem;font-weight:700}.ledger-table td{color:#334155}.ledger-table td:last-child{color:#0f172a;font-weight:600}.highlight-row td{background-color:#f8fafc;border-top:1px solid #94a3b8;color:#0f172a!important;font-weight:700!important}.blank-row td{border-bottom:none!important}.payslip-totals-row{justify-content:flex-end;gap:2rem;margin:1rem 0;display:flex}.totals-block{flex-direction:column;align-items:flex-end;font-size:.85rem;display:flex}.totals-block .label{color:#475569;margin-bottom:.15rem}.totals-block .value{color:#0f172a;font-weight:700}.net-salary-block{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;padding:.5rem 1rem}.net-salary-block .label{color:#334155;font-weight:700}.net-salary-block .value{color:#0f172a;font-size:1.25rem}.payslip-attendance-summary h3{color:#0f172a;margin-bottom:.5rem;font-size:.95rem;font-weight:700}.summary-badges-container{grid-template-columns:repeat(4,1fr);gap:1rem;display:grid}.summary-badge-item{text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:4px;flex-direction:column;padding:.5rem;font-size:.8rem;display:flex}.summary-badge-item span{color:#64748b;margin-bottom:.15rem}.summary-badge-item strong{color:#0f172a;font-size:1rem}.payslip-signatures{justify-content:space-between;margin-top:auto;padding-top:4rem;display:flex}.sig-block{text-align:center;width:200px}.sig-block p{color:#475569;font-size:.85rem;font-weight:600}.sig-line{border-top:1px solid #94a3b8;margin-top:2.5rem}@media print{body,.app-container{margin:0;padding:0;background:#fff!important}.admin-container{padding:0}.admin-layout{grid-template-columns:1fr!important;display:block!important}.admin-content{margin:0!important;padding:0!important}.payslip-print-container{background:0 0!important;border:none!important;padding:0!important}.payslip-sheet{box-shadow:none!important;border:none!important;width:100%!important;height:auto!important;min-height:0!important;padding:0!important}.no-print{display:none!important}}.rule-selector-container{align-items:center;display:flex}.select-payroll-rule{cursor:pointer;background-color:var(--bg-secondary)!important;border:1px solid var(--card-border)!important;width:240px!important;color:var(--text-primary)!important;height:44px!important;padding:.25rem .75rem!important;font-size:.85rem!important;font-weight:600!important}.select-payroll-rule:focus{border-color:var(--accent-secondary)!important;box-shadow:0 0 0 3px #06b6d426!important}.table-wrapper{-webkit-overflow-scrolling:touch;max-width:100%;margin-bottom:1rem;overflow-x:auto}@media (width<=600px){.portal-container,.admin-container{gap:1rem;padding:1rem .75rem}.glass-panel{padding:1rem}.login-card{border-radius:var(--border-radius-md);max-width:100%;padding:1.5rem 1rem}.login-brand h2{font-size:1.5rem}.portal-header,.admin-header{text-align:center;flex-direction:column;align-items:stretch;gap:1rem}.header-brand{text-align:center;flex-direction:column;align-items:center;gap:.5rem}.user-profile-controls{flex-direction:column;align-items:stretch;gap:.75rem}.user-avatar-tag{justify-content:center}.logout-btn{width:100%}.admin-actions{flex-direction:column;align-items:stretch;gap:.5rem}.admin-actions select,.admin-actions button{width:100%!important}.checkin-action-buttons{grid-template-columns:1fr 1fr;gap:.75rem}.checkin-action-buttons .btn{border-radius:var(--border-radius-sm);flex-direction:column;justify-content:center;align-items:center;gap:.25rem;height:64px;padding:.5rem;font-size:.85rem}.checkin-action-buttons .btn svg{font-size:1.25rem}.day-select-bar{flex-direction:column;align-items:stretch;gap:.5rem}.day-select-bar label{text-align:center}.day-select-bar div{justify-content:center}.stats-kpi-grid{grid-template-columns:1fr 1fr;gap:.75rem}.kpi-box{padding:.75rem}.kpi-label{font-size:.7rem}.kpi-value{font-size:1.25rem}.calendar-grid-container{gap:4px}.calendar-day-header{padding:.25rem 0;font-size:.7rem}.calendar-cell{aspect-ratio:1;border-radius:4px;padding:.35rem .1rem}.cell-day-num{font-size:.75rem}.cell-status-label{border-radius:2px;min-width:18px;padding:1px 2px;font-size:.6rem}.calendar-status-legend{gap:.5rem;padding:.5rem;font-size:.7rem}.legend-item{gap:.25rem}.legend-dot{width:8px;height:8px}.admin-layout{grid-template-columns:1fr;gap:1rem}.admin-sidebar{border-radius:var(--border-radius-sm);padding:.5rem}.sidebar-nav{white-space:nowrap;-webkit-overflow-scrolling:touch;flex-direction:row;gap:.5rem;padding-bottom:.5rem;overflow-x:auto}.sidebar-nav::-webkit-scrollbar{height:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--accent-secondary);border-radius:2px}.nav-btn{flex-shrink:0;justify-content:center;margin:0;padding:.6rem .85rem;font-size:.85rem}.nav-btn:hover{padding-left:.85rem}.spreadsheet-table th,.spreadsheet-table td{padding:.35rem .25rem;font-size:.72rem}.cell-status-select{height:26px;padding:0;font-size:.7rem}.spreadsheet-table .first-col-head,.spreadsheet-table .first-col-body{min-width:60px}.spreadsheet-table .second-col-head,.spreadsheet-table .second-col-body{min-width:90px;left:60px}.payroll-table td{padding:.4rem .25rem;font-size:.72rem}.table-input{width:50px;padding:.2rem .3rem;font-size:.75rem}.admin-table th,.admin-table td{padding:.5rem;font-size:.75rem}.btn-icon-only{font-size:.95rem}.form-row-2{grid-template-columns:1fr;gap:.75rem}.payslip-selector-bar{flex-direction:column;align-items:stretch;gap:.75rem}.select-payslip{max-width:100%}.print-payslip-btn{width:100%}.payslip-print-container{justify-content:center;padding:.5rem;overflow-x:auto}.payslip-sheet{flex-shrink:0}.rule-selector-container{width:100%}.rule-selector-container select{flex-grow:1;width:50%!important}}@media (width<=500px){.bar-chart-row{flex-direction:column;align-items:stretch;gap:.25rem}.bar-label{width:100%}}@media (width<=820px){.payslip-sheet{zoom:.9;padding:2rem}}@media (width<=720px){.payslip-sheet{zoom:.8;padding:1.5rem}}@media (width<=640px){.payslip-sheet{zoom:.7}}@media (width<=560px){.payslip-sheet{zoom:.6}}@media (width<=480px){.payslip-sheet{zoom:.5;padding:1rem}}@media (width<=400px){.payslip-sheet{zoom:.42}}@media (width<=340px){.payslip-sheet{zoom:.38}}@media print{.payslip-sheet{zoom:1!important}}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:9999;background:#000000a6;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-box{background:var(--bg-secondary);border:1px solid var(--card-border);border-radius:1.25rem;width:100%;max-width:460px;padding:1.75rem;animation:.25s cubic-bezier(.16,1,.3,1) fadeIn;box-shadow:0 24px 64px #000000b3,inset 0 1px #ffffff0d}.modal-box h2,.modal-box h3{color:var(--text-primary);margin-top:0}.profile-modal-box{flex-direction:column;display:flex;overflow:hidden;border-radius:1.25rem!important;max-width:520px!important;padding:0!important}.profile-modal-body{flex-direction:column;flex:1;gap:0;padding:1.25rem 1.5rem;display:flex;overflow:hidden!important}.profile-modal-body table{width:100%}.popup-overlay{-webkit-backdrop-filter:blur(8px);z-index:10005;background:#04060ccc;justify-content:center;align-items:center;padding:1.5rem;animation:.2s ease-out popupFadeIn;display:flex;position:fixed;inset:0}.popup-box{background:var(--bg-secondary);border:1px solid var(--card-border);text-align:center;border-radius:1.25rem;flex-direction:column;align-items:center;width:100%;max-width:420px;padding:2.25rem 2rem 2rem;animation:.3s cubic-bezier(.34,1.56,.64,1) popupScaleIn;display:flex;box-shadow:0 24px 64px #000000b3,inset 0 1px #ffffff0d}.popup-icon-container{justify-content:center;align-items:center;margin-bottom:1.25rem;font-size:3rem;display:flex}.popup-icon-success{color:var(--color-present)}.popup-icon-error{color:var(--color-absent)}.popup-icon-warning{color:var(--color-lop)}.popup-icon-info{color:var(--color-cl)}.popup-title{color:var(--text-primary);margin-bottom:.75rem;font-size:1.3rem;font-weight:700}.popup-message{color:var(--text-secondary);text-align:center;margin-bottom:1.75rem;font-size:.95rem;line-height:1.6}.popup-buttons{justify-content:center;gap:1rem;width:100%;display:flex}.popup-buttons .btn{flex:1;height:44px;padding:0 1.5rem;font-size:.95rem}@keyframes popupFadeIn{0%{opacity:0}to{opacity:1}}@keyframes popupScaleIn{0%{opacity:0;transform:scale(.9)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.bill-preview-modal-box{color:var(--text-primary);animation:.3s cubic-bezier(.34,1.56,.64,1) popupScaleIn;-webkit-backdrop-filter:blur(24px)saturate(180%)!important;backdrop-filter:blur(24px)saturate(180%)!important;background:#0f172ad9!important;border:1px solid #ffffff14!important;border-radius:1.25rem!important;flex-direction:column!important;width:90%!important;max-width:950px!important;height:85vh!important;padding:1.5rem!important;display:flex!important;box-shadow:0 32px 80px #000c,inset 0 1px #ffffff1a!important}.bill-preview-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;display:flex}.bill-preview-title{color:var(--text-primary);align-items:center;gap:.5rem;margin:0;font-size:1.2rem;font-weight:700;display:flex}.bill-preview-subtitle{color:var(--text-muted);word-break:break-all;margin-top:.2rem;font-size:.8rem;display:block}.bill-preview-toolbar{background:#ffffff05;border:1px solid #ffffff0d;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;padding:.5rem 1rem;display:flex}.bill-preview-toolbar-group{align-items:center;gap:.5rem;display:flex}.bill-preview-scale-text{color:var(--text-secondary);text-align:center;background:#ffffff0d;border:1px solid #ffffff0d;border-radius:6px;min-width:48px;padding:.25rem .5rem;font-size:.85rem;font-weight:600}.bill-preview-content{background:#00000059 radial-gradient(#ffffff0a 1px,#0000 0) 0 0/20px 20px;border:1px solid #ffffff0d;border-radius:8px;flex:1;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:relative;overflow:auto}.bill-preview-viewport{justify-content:center;align-items:center;width:100%;max-width:100%;height:100%;max-height:100%;display:flex;overflow:auto}.bill-preview-image{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:auto;border:1px solid #ffffff1a;border-radius:6px;width:auto;height:auto;box-shadow:0 12px 40px #0009}.bill-preview-pdf-iframe{background:var(--bg-primary);border:none;border-radius:6px;width:100%;height:100%}@media print{body:has(.wages-print-wrapper){color:#f8fafc!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#0b0f19!important}.app-container:has(.wages-print-wrapper){background:#0b0f19!important}.admin-content:has(.wages-print-wrapper){margin:0!important;padding:0!important}.wages-print-wrapper{zoom:.7;box-shadow:none!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;background:#111827!important;border:none!important;width:100%!important;max-width:100%!important;padding:1.5rem!important}.wages-print-wrapper *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.wages-print-wrapper input.table-input{text-align:center;color:#fff!important;background:#0000004d!important;border:1px solid #ffffff26!important}}
