:root{--primary-color: #2563eb;--primary-hover: #1d4ed8;--secondary-color: #64748b;--success-color: #10b981;--danger-color: #ef4444;--warning-color: #f59e0b;--background: #f8fafc;--surface: #ffffff;--text-primary: #1e293b;--text-secondary: #64748b;--border-color: #e2e8f0;--shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--background);color:var(--text-primary);line-height:1.6}.container{max-width:1600px;margin:0 auto;padding:0 1rem}.card{background:var(--surface);border-radius:8px;padding:1.5rem;box-shadow:var(--shadow);margin-bottom:1.5rem}.btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-primary{background-color:var(--primary-color);color:#fff}.btn-primary:hover{background-color:var(--primary-hover)}.btn-secondary{background-color:var(--secondary-color);color:#fff}.btn-secondary:hover{background-color:#475569}.btn-danger{background-color:var(--danger-color);color:#fff}.btn-danger:hover{background-color:#dc2626}.btn-success{background-color:var(--success-color);color:#fff}.btn-success:hover{background-color:#059669}.btn:disabled{opacity:.5;cursor:not-allowed}.form-group{margin-bottom:1rem}.form-label{display:block;margin-bottom:.5rem;font-weight:500;color:var(--text-primary)}.form-input,.form-select,.form-textarea{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;transition:border-color .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #2563eb1a}.form-textarea{resize:vertical;min-height:100px}.form-error{color:var(--danger-color);font-size:.875rem;margin-top:.25rem}input[type=checkbox]{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1px solid #c7d7ec;border-radius:4px;background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;vertical-align:middle}input[type=checkbox]:hover{border-color:#9fb8dc;background:#f8fbff}input[type=checkbox]:focus-visible{outline:2px solid rgba(37,99,235,.35);outline-offset:1px}input[type=checkbox]:before{content:"";width:4px;height:8px;border:solid #ffffff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transform-origin:center;transition:transform .12s ease}input[type=checkbox]:checked{border-color:var(--primary-color);background:var(--primary-color)}input[type=checkbox]:checked:before{transform:rotate(45deg) scale(1)}input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed}.table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.table thead{background-color:#f1f5f9}.table th,.table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}.table th{font-weight:600;color:var(--text-primary);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.table tbody tr:hover{background-color:#f8fafc}.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;padding:.25rem .75rem;border-radius:9999px;font-size:.75rem;font-weight:500}.badge-success{background-color:#d1fae5;color:#065f46}.badge-warning{background-color:#fef3c7;color:#92400e}.badge-danger{background-color:#fee2e2;color:#991b1b}.badge-info{background-color:#dbeafe;color:#1e40af}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:var(--surface);border-radius:8px;padding:1.5rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-title{font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-secondary);padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:var(--text-primary)}.alert{padding:1rem;border-radius:6px;margin-bottom:1rem}.alert-success{background-color:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.alert-error{background-color:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.alert-info{background-color:#dbeafe;color:#1e40af;border:1px solid #93c5fd}.loading{display:flex;justify-content:center;align-items:center;padding:2rem}.spinner{border:3px solid var(--border-color);border-top:3px solid var(--primary-color);border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.grid{display:grid;gap:1.5rem}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(1,minmax(0,1fr))}}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;align-items:center;gap:.5rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.space-y-2>*+*{margin-top:.5rem}.space-y-4>*+*{margin-top:1rem}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:.875rem}.text-lg{font-size:1.125rem}.text-xl{font-size:1.25rem}.text-2xl{font-size:1.5rem}.font-bold{font-weight:700}.notification-center{position:fixed;top:5.25rem;right:1rem;z-index:3200;display:flex;flex-direction:column;gap:.625rem;width:min(420px,calc(100vw - 2rem))}@media(max-width:768px){.notification-center{top:8.5rem}}.notification{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem .875rem;border-radius:10px;border:1px solid var(--border-color);box-shadow:var(--shadow-md);background:var(--surface)}.notification-title{font-size:.875rem;font-weight:700;margin-bottom:.125rem}.notification-message{font-size:.8125rem;line-height:1.35}.notification-body{flex:1;min-width:0}.notification-close{border:none;background:transparent;color:var(--text-secondary);font-size:1.1rem;line-height:1;cursor:pointer}.notification-success{border-color:#86efac;background:#f0fdf4;color:#14532d}.notification-error{border-color:#fca5a5;background:#fef2f2;color:#7f1d1d}.notification-info{border-color:#93c5fd;background:#eff6ff;color:#1e3a8a}.notification-warning{border-color:#fcd34d;background:#fffbeb;color:#78350f}.font-semibold{font-weight:600}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.dashboard{max-width:1600px;margin:0 auto;padding:0 1rem}.dashboard-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.dashboard-title{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.dashboard-greeting{font-size:.875rem;color:var(--text-secondary)}.dashboard-greeting strong{color:var(--primary-color);font-weight:600}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:1.25rem}.dashboard-kpi{background:var(--surface);border-radius:8px;padding:1rem 1.25rem;box-shadow:var(--shadow);border-left:3px solid var(--primary-color);min-width:0}.dashboard-kpi-label{font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.25rem}.dashboard-kpi-value{font-size:1.5rem;font-weight:700;color:var(--text-primary);line-height:1.2}.dashboard-overview{background:var(--surface);border-radius:8px;padding:1.25rem 1.5rem;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:center}.dashboard-overview-section h2{font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.75rem}.dashboard-status-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.dashboard-status-item{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem}.dashboard-status-item span:first-child{color:var(--text-secondary)}.dashboard-status-item .dashboard-status-count{font-weight:600;color:var(--text-primary)}.dashboard-quicklinks{display:flex;gap:.75rem;flex-wrap:wrap}.dashboard-quicklink{display:inline-flex;align-items:center;padding:.5rem 1rem;background:var(--background);border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;font-weight:500;color:var(--text-primary);text-decoration:none;transition:background .15s,border-color .15s}.dashboard-quicklink:hover{background:#eef2ff;border-color:var(--primary-color);color:var(--primary-color)}@media(max-width:900px){.dashboard-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.dashboard-kpis{grid-template-columns:1fr}.dashboard-overview{grid-template-columns:1fr;gap:1.25rem}.dashboard-quicklinks{justify-content:flex-start}}.employees-page{max-width:1600px;margin:0 auto;padding:0 1rem}.employee-contacts-page{max-width:1600px}.employee-contacts-empty{text-align:center;color:var(--text-secondary);padding:1rem!important}.employees-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem}.employees-toolbar .employees-search{flex:1;min-width:200px;max-width:400px;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem}.employees-toolbar .employees-search:focus{outline:none;border-color:var(--primary-color)}.employees-table-wrap{background:var(--surface);border-radius:8px;box-shadow:var(--shadow);overflow:hidden}.employees-table{width:100%;border-collapse:collapse;font-size:.875rem}.employees-table th,.employees-table td{padding:.625rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.employees-table th{background:#f8fafc;font-weight:600;color:var(--text-secondary);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.employees-table tbody tr{transition:background .15s}.employees-table tbody tr:hover{background:#f8fafc}.employees-table tbody tr:last-child td{border-bottom:none}.employees-table .employees-link{color:var(--primary-color);text-decoration:none;font-weight:500}.employees-table .employees-link:hover{text-decoration:underline}.employees-table .employees-link-id{color:var(--text-secondary);font-size:.8125rem}.employees-table .employees-actions{display:flex;align-items:center;gap:.5rem}.employees-table .employees-actions .btn{padding:.35rem .65rem;font-size:.8125rem}.employee-id-readonly{background:#f1f5f9;border-color:#cbd5e1;color:#475569;cursor:not-allowed}.employee-id-readonly:focus{outline:none;box-shadow:none;border-color:#cbd5e1}.employee-form-image-row{display:flex;align-items:center;gap:.85rem;flex-wrap:wrap}.employee-form-image-preview,.employee-form-image-placeholder{width:92px;height:92px;border-radius:10px;object-fit:cover}.employee-form-image-preview{border:1px solid #d9e4f2}.employee-form-image-placeholder{border:1px dashed #c7d6ea;background:#f8fbff;color:var(--text-secondary);font-size:.78rem;display:flex;align-items:center;justify-content:center;text-align:center;padding:.4rem}.employee-form-image-actions{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.employee-form-image-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.employee-detail{max-width:1600px;margin:0 auto;padding:0 .85rem}.employee-detail-header{margin-bottom:1.1rem;padding:1rem 1.15rem;border:1px solid #e5edf7;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:var(--shadow)}.employee-detail-header-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.55rem}.employee-detail-back{color:var(--text-secondary);text-decoration:none;font-size:.875rem}.employee-detail-back:hover{color:var(--primary-color)}.employee-detail-actions{display:flex;align-items:center;gap:1rem}.employee-detail-mask{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-secondary);cursor:pointer}.employee-detail-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0}.employee-detail-subtitle{font-size:.875rem;color:var(--text-secondary);margin:.25rem 0 0}.employee-detail-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.95rem}.employee-detail-section{background:var(--surface);border-radius:10px;border:1px solid #e8eef6;padding:.95rem 1rem;box-shadow:var(--shadow)}.employee-detail-section-full{grid-column:1 / -1}.employee-detail-section-basic,.employee-detail-section-contact,.employee-detail-section-job,.employee-detail-section-bank{grid-column:span 4}.employee-detail-section-compensation{grid-column:span 8}.employee-detail-profile-row{display:flex;align-items:center;gap:1.15rem;margin-top:.3rem}.employee-detail-avatar-wrap{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:.5rem}.employee-detail-avatar,.employee-detail-avatar-placeholder{width:96px;height:96px;border-radius:50%;object-fit:cover}.employee-detail-avatar-placeholder{background:var(--primary-color);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:600}.employee-detail-avatar-upload{margin:0}.employee-detail-avatar-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.employee-detail-avatar-btn{font-size:.8125rem}.employee-detail-doc-file-input{position:absolute;width:0;height:0;opacity:0;overflow:hidden}.employee-detail-doc-upload{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.employee-detail-doc-upload.mb-3{margin-bottom:1rem}.employee-detail-doc-list{margin:0;padding:0;list-style:none}.employee-detail-doc-item{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--border-color)}.employee-detail-doc-item:last-child{border-bottom:none}.employee-detail-doc-name{font-weight:500;min-width:160px}.employee-detail-doc-type{font-size:.8125rem;color:var(--text-secondary);text-transform:capitalize}.employee-detail-doc-actions{display:flex;gap:.5rem;margin-left:auto}.employee-detail-section-title{font-size:.8125rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .55rem;padding-bottom:.4rem;border-bottom:1px solid var(--border-color)}.employee-detail-dl{margin:0}.employee-detail-row{display:grid;grid-template-columns:150px 1fr;gap:.45rem .9rem;align-items:baseline;padding:.3rem 0;border-bottom:1px solid #f1f5f9;font-size:.875rem}.employee-detail-row:last-child{border-bottom:none}.employee-detail-dt{margin:0;color:var(--text-secondary);font-weight:500}.employee-detail-dd{margin:0;color:var(--text-primary);word-break:break-word}.employee-detail-notes{margin:0;font-size:.875rem;line-height:1.5;color:var(--text-primary);white-space:pre-wrap}@media(max-width:640px){.employee-detail-row{grid-template-columns:1fr}}.employee-form{display:flex;flex-direction:column;gap:.85rem;align-content:start}.employee-form .form-group{margin-bottom:0;display:flex;flex-direction:column;gap:.3rem}.employee-form-section-title{font-size:.9375rem;font-weight:600;color:#334155;margin:0 0 .55rem;padding-bottom:.4rem;border-bottom:1px solid rgba(148,163,184,.35)}.employee-form-full{grid-column:1 / -1}.employee-form-section{border:1px solid #dbe6f4;border-radius:12px;padding:.85rem .95rem}.employee-form-section-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem 1rem}.employee-form-section-basic{background:#f0f7ff}.employee-form-section-account{background:#f4f3ff}.employee-form-section-job{background:#eefcf2}.employee-form-section-contact{background:#fff8ec}.employee-form-section-bank{background:#f5f7fb}.employee-form-section-compensation{background:#fff4f0}.employee-form-page{max-width:1600px;margin:0 auto;padding:0 .85rem}.employee-form-card{border:1px solid #e5edf7;border-radius:12px;box-shadow:var(--shadow);padding:1.2rem 1.25rem}.employee-form-actions .btn{min-height:38px;line-height:1;justify-content:center}.employee-form-cancel-btn{text-decoration:none}@media(max-width:1160px){.employee-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.employee-detail-section-basic,.employee-detail-section-contact,.employee-detail-section-job,.employee-detail-section-bank,.employee-detail-section-compensation{grid-column:span 1}.employee-detail-section-full{grid-column:1 / -1}.employee-form{gap:.75rem}.employee-form-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.employee-form-section-grid,.employee-detail-grid{grid-template-columns:1fr}.employee-detail-header{padding:.9rem}}.app-pagination{margin-top:1rem;display:flex;align-items:center;justify-content:space-between;gap:.9rem;flex-wrap:wrap;padding:.65rem .8rem;border:1px solid #dde8f6;border-radius:10px;background:#f9fbff}.app-pagination-summary{font-size:.86rem;font-weight:600}.app-pagination-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.app-pagination-btn{min-width:88px;justify-content:center}.app-pagination-pages{display:inline-flex;align-items:center;gap:.35rem}.app-page-chip{border:1px solid #d1deef;background:#fff;color:#39587f;border-radius:8px;min-width:34px;height:34px;padding:0 .45rem;font-size:.84rem;font-weight:600;cursor:pointer}.app-page-chip:hover{background:#eef4ff}.app-page-chip-active{border-color:#3b82f6;background:#e8f1ff;color:#0f2f57}.app-page-ellipsis{color:#7a8da8;min-width:14px;text-align:center}.leave-draft-modal{max-width:620px;width:min(88vw,620px);max-height:94vh;border:1px solid #d8e3f2;background:linear-gradient(180deg,#fff,#f6faff)}.leave-draft-scope-switch{display:inline-flex;align-items:center;gap:.25rem;border-bottom:1px solid #d7e3f3;padding:0;background:transparent;margin-bottom:.9rem}.leave-draft-scope-btn{border:none;background:transparent;color:#58708e;border-radius:0;padding:.55rem .9rem .65rem;font-weight:600;cursor:pointer;min-width:170px;display:inline-flex;justify-content:center;border-bottom:2px solid transparent;transition:color .16s ease,border-color .16s ease}.leave-draft-scope-btn:hover{color:#28466d}.leave-draft-scope-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:1px}.leave-draft-scope-tab-active{color:#0f2f57;border-bottom-color:#3b82f6}.leave-draft-employee-row{margin-bottom:.85rem}.leave-draft-actions-row{display:grid;grid-template-columns:minmax(160px,220px) minmax(220px,1fr) auto;gap:.75rem;align-items:end;border:1px solid #dde8f7;border-radius:10px;background:#fbfdff;padding:.7rem .75rem;margin-bottom:.85rem}.leave-draft-actions-row--single{grid-template-columns:minmax(160px,220px) auto}.leave-draft-actions-row--all{grid-template-columns:minmax(160px,220px) minmax(220px,1fr) auto}.leave-draft-year{margin:0}.leave-draft-overwrite{border:none;background:transparent;padding:0;height:auto;min-height:40px}.leave-draft-load-btn{white-space:nowrap;height:40px;align-self:end;min-width:170px;justify-content:center}.leave-draft-actions-row--single .leave-draft-load-btn{justify-self:start}.leave-draft-table-wrap{border:1px solid var(--border-color);border-radius:10px;overflow:auto;max-height:min(62vh,560px);background:#fff}.leave-draft-table-wrap .table{box-shadow:none;border-radius:0;min-width:560px}.leave-draft-table-wrap .table thead th{position:sticky;top:0;z-index:1;background:#eef4ff}.leave-draft-table-wrap .table tbody tr:nth-child(odd){background:#fcfdff}.leave-draft-table-wrap .table tbody tr:nth-child(2n){background:#f7fbff}.leave-draft-table-wrap .form-input{text-align:right;min-width:120px}.leave-draft-actions{display:flex;gap:.65rem;justify-content:flex-end;margin-top:.9rem;padding-top:.9rem;border-top:1px solid #e6edf7}.leave-draft-actions .btn{min-width:160px;height:40px}.leave-draft-cancel{min-width:160px}@media(max-width:900px){.leave-draft-actions-row{grid-template-columns:1fr}.leave-draft-load-btn{width:100%;justify-content:center}}.leave-tab-shell{display:flex;flex-direction:column;gap:0}.leave-tabs-card{border:1px solid #d7e2f1;background:linear-gradient(180deg,#f9fbff,#f2f6fd);margin-bottom:0;padding:.35rem .55rem .5rem;border-radius:8px 8px 0 0;border-bottom:none}.leave-tabs{display:flex;align-items:center;gap:0;border-bottom:none;padding:0;background:transparent;flex-wrap:wrap}.leave-tab-btn{border:none;border-right:1px solid #dde6f4;background:transparent;color:#4f6788;border-radius:0;padding:.55rem .95rem .58rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;border-bottom:2px solid transparent;transition:all .16s ease}.leave-tab-btn:hover{background:#f1f6ff;color:#1d3f6f}.leave-tab-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:1px}.leave-tab-btn.is-active{color:#153a6e;background:#fff;border-bottom-color:var(--primary-color)}.leave-tab-count{font-size:.72rem;font-weight:700;color:#58708e;border:1px solid #d7e3f3;border-radius:999px;background:#f8fbff;min-width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;padding:0 .32rem}.leave-tab-btn.is-active .leave-tab-count{border-color:#a8c4e8;background:#e4efff;color:#153a6e}.leave-tab-panel{border:1px solid #e6edf7}.leave-admin-overview-grid{display:grid;grid-template-columns:1fr 1.5fr;gap:.8rem;align-items:start}.leave-setup-panel{margin-bottom:0}.leave-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.leave-panel-header--top{margin-bottom:.55rem}.leave-panel-title-group{display:flex;flex-direction:column;gap:.2rem}.leave-weekend-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.leave-weekday-chip{border:1px solid #d9e5f5;background:#f8fbff;border-radius:8px;padding:.48rem .58rem;display:inline-flex;align-items:center;gap:.45rem;font-size:.92rem;color:#36527a;transition:border-color .16s ease,background-color .16s ease}.leave-weekday-chip.is-selected{border-color:#93c5fd;background:#eff6ff}.leave-weekday-chip input{margin:0}.leave-types-table-wrap{border:1px solid #e2e8f3;border-radius:8px;overflow:auto}.leave-types-table-wrap .table{box-shadow:none;border-radius:0}.leave-types-table-wrap .table thead th{background:#edf4ff;position:sticky;top:0;z-index:1}.leave-form-modal{max-width:760px;width:min(94vw,760px)}.leave-form{display:flex;flex-direction:column;gap:.2rem}.leave-type-modal{max-width:720px;width:min(92vw,720px)}.leave-type-form{gap:.55rem}.leave-type-section{border:1px solid #dbe6f6;border-radius:10px;padding:.6rem .65rem;background:linear-gradient(180deg,#fff,#f8fbff)}.leave-type-section-title{margin:0 0 .4rem;font-size:.88rem;color:#0f2f57}.leave-type-toggle-row{margin-bottom:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.leave-type-toggle-row .leave-toggle{padding:0;border:none;background:transparent;min-height:auto;font-size:.82rem;gap:.35rem}.leave-type-form .form-group{margin-bottom:.35rem}.leave-type-form .form-label{margin-bottom:.25rem}.leave-type-form .leave-form-actions{margin-top:.5rem;padding-top:.6rem}@media(max-width:700px){.leave-type-toggle-row{grid-template-columns:1fr}}.leave-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.leave-preview-card{border:1px solid #dbe6f6;background:#f8fbff;border-radius:8px;padding:.75rem .8rem;margin-bottom:.85rem}.leave-form-actions{display:flex;gap:.65rem;justify-content:flex-end;margin-top:.9rem;padding-top:.9rem;border-top:1px solid #e6edf7}.leave-toggle-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.55rem;margin:.1rem 0 .45rem}.leave-toggle{border:1px solid #dbe6f6;background:#f8fbff;border-radius:8px;padding:.55rem .65rem;display:flex;align-items:center;gap:.45rem;font-size:.86rem}.leave-balance-modal{max-width:640px;width:min(92vw,640px)}.leave-balance-empty{border:1px dashed #d8e3f2;border-radius:8px;padding:.85rem;color:var(--text-secondary);background:#f8fbff;font-size:.9rem}.leave-balance-card{border:1px solid var(--border-color);border-radius:8px;padding:.75rem .8rem;background:#fff}@media(max-width:900px){.leave-admin-overview-grid{grid-template-columns:1fr}.leave-panel-header{flex-direction:column;align-items:stretch}.leave-form-grid,.leave-toggle-row,.leave-weekend-grid{grid-template-columns:1fr}}.calendar-page{display:flex;flex-direction:column;gap:1rem}.calendar-hero{border:1px solid #d8e3f2;background:linear-gradient(150deg,#fff,#f8fbff 40%,#f2f8ff);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.65rem}.calendar-hero-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,auto);align-items:start;gap:.9rem}.calendar-title{font-size:1.35rem;line-height:1.2;margin:0;color:#0f2f57}.calendar-subtitle{margin-top:.25rem;color:var(--text-secondary);max-width:74ch;line-height:1.45}.calendar-command-bar{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.7rem;align-items:end;border:1px solid #dbe6f5;border-radius:10px;background:#fbfdff;padding:.55rem .6rem}.calendar-year-controls{display:flex;flex-direction:row;align-items:center;gap:.5rem;align-items:flex-start;margin-top:0}.calendar-year-controls .form-label{margin:0;white-space:nowrap}.calendar-year-input-wrap{display:grid;grid-template-columns:auto 120px auto;gap:.4rem;align-items:center}.calendar-year-input-wrap .form-input{text-align:center}.calendar-year-nav-btn{border:1px solid #cddcf2;background:linear-gradient(180deg,#f8fbff,#edf4ff);color:#1f4e79;border-radius:10px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;cursor:pointer;transition:all .16s ease}.calendar-year-nav-btn:hover{background:linear-gradient(180deg,#edf4ff,#e2eeff);border-color:#bcd2f2}.calendar-year-nav-btn:focus-visible{outline:2px solid #60a5fa;outline-offset:2px}.calendar-hero-actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;justify-content:flex-start}.calendar-hero-actions .btn{min-height:38px}.calendar-hero-options{display:flex;flex-wrap:wrap;gap:.35rem;padding:.05rem .1rem}.calendar-option-row{display:inline-flex;align-items:center;gap:.45rem;color:#36527a;font-size:.86rem;font-weight:500}.calendar-option-row input{width:16px;height:16px}.calendar-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(116px,1fr));gap:.45rem;align-self:start}.calendar-tabs-card{border:1px solid #d7e2f1;background:linear-gradient(180deg,#f9fbff,#f2f6fd);margin-bottom:0;padding:.35rem .55rem 0;border-radius:8px 8px 0 0;border-bottom:none}.calendar-tabs{display:flex;align-items:center;gap:0;border-bottom:none;padding:0;background:transparent}.calendar-tab-shell{display:flex;flex-direction:column;gap:0}.calendar-tab-btn{border:none;border-right:1px solid #dde6f4;background:transparent;color:#4f6788;border-radius:0;padding:.55rem .95rem .58rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;border-bottom:2px solid transparent;transition:all .16s ease}.calendar-tab-btn:hover{background:#f1f6ff;color:#1d3f6f}.calendar-tab-btn.is-active{color:#153a6e;background:#fff;border-bottom-color:var(--primary-color)}.calendar-tab-count{font-size:.68rem;font-weight:700;color:#567196;border:1px solid #c6d6ec;border-radius:999px;background:#edf4ff;min-width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;padding:0 .32rem}.calendar-tab-btn.is-active .calendar-tab-count{border-color:#a8c4e8;background:#e4efff;color:#153a6e}.calendar-stat-card{border:1px solid #d9e4f5;border-radius:10px;padding:.5rem .65rem;background:#fff}.calendar-stat-label{display:block;color:#5b708f;font-size:.8rem;margin-bottom:.2rem}.calendar-stat-value{font-size:1rem;color:#0f2f57;line-height:1}.calendar-panel{border:1px solid #d8e3f2;background:linear-gradient(180deg,#fff,#f9fbff);margin-bottom:0;border-radius:0 0 8px 8px;border-top:1px solid #d7e2f1}.calendar-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.7rem}.calendar-panel-title-wrap{display:flex;align-items:center}.calendar-panel-title{margin:0;font-size:1rem;line-height:1.2;color:#153a6e}.calendar-panel-actions{display:inline-flex;align-items:center;gap:.5rem;flex-wrap:wrap}.calendar-filter-bar{display:grid;grid-template-columns:minmax(260px,1.6fr) minmax(180px,.8fr) auto;gap:.6rem;align-items:center;margin-bottom:.7rem}.calendar-add-row{display:grid;grid-template-columns:160px 1fr 1fr auto;gap:.6rem;margin-bottom:.85rem}.calendar-source-pill{display:inline-flex;align-items:center;border:1px solid #d8e6f9;background:#f4f8ff;color:#2f4d73;border-radius:999px;padding:.2rem .55rem;font-size:.76rem;font-weight:600}.calendar-row-actions{display:flex;gap:.4rem;flex-wrap:wrap}.table-wrapper{overflow:auto;border:1px solid #e2e8f3;border-radius:8px}.table-wrapper .table{box-shadow:none;border-radius:0}.table-wrapper .table thead th{position:sticky;top:0;z-index:1;background:#edf4ff}.table-wrapper .table tbody tr:nth-child(odd){background:#fcfdff}.table-wrapper .table tbody tr:nth-child(2n){background:#f8fbff}@media(max-width:980px){.calendar-hero-top{grid-template-columns:1fr}.calendar-command-bar{grid-template-columns:1fr;align-items:stretch}.calendar-year-controls{flex-direction:column;align-items:flex-start}.calendar-hero-stats,.calendar-filter-bar,.calendar-add-row,.calendar-year-input-wrap{grid-template-columns:1fr}.calendar-panel-context-row{justify-content:flex-start}.calendar-hero-actions{flex-direction:column;align-items:stretch}.calendar-hero-options{flex-direction:column}.calendar-panel-header{flex-direction:column;align-items:flex-start}}.payroll-page{max-width:1600px;padding-bottom:1.5rem}.payroll-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.4rem}.payroll-subtitle{margin-top:.35rem;color:var(--text-secondary);font-size:.92rem}.payroll-header-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}.payroll-header-count{color:var(--text-secondary);font-size:.88rem;background:#f8fafc;border:1px solid var(--border-color);border-radius:999px;padding:.2rem .6rem}.payroll-tab-shell{display:flex;flex-direction:column;gap:0}.payroll-tabs-card{border:1px solid #d7e2f1;background:linear-gradient(180deg,#f9fbff,#f2f6fd);margin-bottom:0;padding:.35rem .55rem 0;border-radius:8px 8px 0 0;border-bottom:none}.payroll-tabs{display:flex;align-items:center;gap:0;border-bottom:none;padding:0;background:transparent}.payroll-tab{border:none;border-right:1px solid #dde6f4;background:transparent;padding:.55rem .95rem .58rem;border-radius:0;color:#58708e;cursor:pointer;min-width:0;display:inline-flex;align-items:center;gap:.45rem;border-bottom:2px solid transparent;transition:all .16s ease}.payroll-tab:hover{background:#f1f6ff;color:#1d3f6f}.payroll-tab:focus-visible{outline:2px solid #60a5fa;outline-offset:1px}.payroll-tab-title{font-weight:600;font-size:.9rem;letter-spacing:.01em}.payroll-tab.is-active{color:#153a6e;background:#fff;border-bottom-color:var(--primary-color)}.payroll-tab-count{font-size:.68rem;font-weight:700;color:#567196;border:1px solid #c6d6ec;border-radius:999px;background:#edf4ff;min-width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;padding:0 .32rem}.payroll-tab.is-active .payroll-tab-count{border-color:#a8c4e8;background:#e4efff;color:#153a6e}.payroll-command-bar{position:sticky;top:.6rem;z-index:6;display:grid;grid-template-columns:auto minmax(260px,1fr) auto;align-items:center;gap:.75rem;padding:.7rem .8rem;border:1px solid #d8e3f2;border-radius:10px;background:linear-gradient(180deg,#fff,#f4f8ff)}.payroll-command-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}.payroll-command-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;justify-content:flex-end}.payroll-command-search .payroll-search-input{max-width:none}.payroll-dirty-pill{border-color:#f4c7ce;background:#fff1f3;color:#9f1239}.payroll-more-menu{position:relative}.payroll-more-menu summary{list-style:none}.payroll-more-menu summary::-webkit-details-marker{display:none}.payroll-more-trigger{min-width:2.1rem;justify-content:center;font-size:1.2rem;line-height:1;padding:.2rem .55rem}.payroll-more-menu-pop{position:absolute;right:0;top:calc(100% + .35rem);min-width:210px;display:flex;flex-direction:column;gap:.35rem;padding:.55rem;border:1px solid #dbe6f6;border-radius:10px;background:#fff;box-shadow:var(--shadow-md)}.payroll-modal-overlay-top{z-index:1200}.payroll-modal-overlay-topmost{z-index:1300}.payroll-setup-drawer{max-width:900px;border:1px solid #d8e3f2;background:linear-gradient(180deg,#fff,#f6faff)}.payroll-setup-subtitle{margin-top:.25rem;color:var(--text-secondary);font-size:.9rem}.payroll-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;margin-bottom:.9rem}.payroll-setup-section-head{margin-bottom:.6rem}.payroll-setup-section-head p{margin:.2rem 0 0;color:var(--text-secondary);font-size:.84rem}.payroll-setup-period-quick{margin-bottom:.45rem}.payroll-setup-period-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-density-row{display:flex;align-items:center;justify-content:space-between;gap:.7rem;margin-top:.75rem}.payroll-density-row span{color:var(--text-secondary);font-size:.86rem}.payroll-density-actions{display:flex;gap:.45rem}.payroll-freeze-toggles{display:flex;gap:.8rem}.payroll-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.85rem 1rem;border:1px solid #e5edf7;background:linear-gradient(180deg,#f9fbff,#f4f8ff)}.payroll-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem}.payroll-toolbar .payroll-actions+.payroll-actions{margin-left:auto}.payroll-meta{display:flex;align-items:center;gap:1rem}.payroll-header-actions{display:flex;flex-wrap:wrap;gap:.7rem}.payroll-btn-income{background:#e7f5ec;border:1px solid #b7e3c6;color:#14532d;font-weight:600}.payroll-btn-income:hover{background:#d6eedf}.payroll-btn-deduction{background:#fdecee;border:1px solid #f4c7ce;color:#7f1d1d;font-weight:600}.payroll-btn-deduction:hover{background:#fbdde2}.payroll-controls-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:.35rem}.payroll-controls-panel{border:1px solid var(--border-color);border-radius:10px;background:#fbfdff;padding:.9rem 1rem}.payroll-controls-title{font-size:.86rem;color:var(--text-secondary);margin-bottom:.55rem;text-transform:uppercase;letter-spacing:.03em}.payroll-column-controls{display:flex;flex-wrap:wrap;gap:.5rem .75rem;padding:.6rem .25rem .25rem}.payroll-column-controls-wrap{border:1px solid var(--border-color);border-radius:10px;background:#fcfdff;padding:.65rem .75rem;margin-bottom:.75rem}.payroll-column-bar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.65rem .85rem;border:1px solid #e5edf7;border-radius:10px;background:#f8fbff}.payroll-column-controls-title{font-size:.84rem;color:var(--text-secondary);font-weight:600;margin-bottom:.15rem}.payroll-columns-drawer{max-width:760px}.payroll-columns-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.9rem}.payroll-columns-toolbar .form-input{flex:1 1 220px;min-width:220px}.payroll-columns-toolbar-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.payroll-columns-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.payroll-columns-section{border:1px solid var(--border-color);border-radius:10px;padding:.65rem .75rem;background:#fbfdff}.payroll-columns-section h3{margin:0 0 .45rem;font-size:.86rem;color:var(--text-secondary)}.payroll-columns-section-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.45rem}.payroll-columns-section-header h3{margin:0}.payroll-col-toggle-section{font-size:.78rem}.payroll-col-required{display:inline-flex;align-items:center;border-radius:999px;padding:.08rem .45rem;font-size:.72rem;font-weight:600;color:#1e3a8a;background:#dbeafe}.payroll-col-toggle{display:inline-flex;align-items:center;gap:.35rem;font-size:.82rem;color:var(--text-secondary)}.payroll-note{margin:0;padding:.9rem 1rem;border-left:4px solid #1f6feb;border-radius:6px;background:#eef6ff;color:#0f2f57;font-size:.9rem;font-weight:500;line-height:1.5}.payroll-setup-footer{margin-top:.85rem;padding-top:.85rem;border-top:1px solid #deebfb;display:flex;justify-content:flex-end;gap:.6rem}.payroll-table-wrap{overflow-x:auto;overflow-y:auto;max-height:68vh;margin-top:.8rem;border:1px solid var(--border-color);border-radius:10px}.payroll-search-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:.4rem 0 .1rem}.payroll-search-actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;justify-content:flex-end}.payroll-search-entity{display:inline-flex;align-items:center;padding-left:.65rem;border-left:1px solid #dbe4f0}.payroll-search-actions .payroll-search-entity:first-child{border-left:none;padding-left:0}.payroll-rows-per-page{gap:.4rem;font-size:.84rem;color:var(--text-secondary);font-weight:600;white-space:nowrap}.payroll-rows-per-page .form-input{min-width:4.5rem;padding:.3rem .5rem}.payroll-search-actions .payroll-column-controls-title{margin-bottom:0}.payroll-density-toggle{display:inline-flex;align-items:center;gap:.5rem;-webkit-user-select:none;user-select:none;cursor:pointer;color:var(--text-secondary);font-size:.84rem;font-weight:600}.payroll-density-toggle input{position:absolute;opacity:0;pointer-events:none}.payroll-density-toggle-slider{position:relative;width:42px;height:24px;border-radius:999px;background:#cbd5e1;transition:background .2s ease}.payroll-density-toggle-slider:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:transform .2s ease}.payroll-density-toggle input:checked+.payroll-density-toggle-slider{background:#3b82f6}.payroll-density-toggle input:checked+.payroll-density-toggle-slider:after{transform:translate(18px)}.payroll-search-group{min-width:280px;flex:1}.payroll-search-input{max-width:420px}.payroll-search-count{color:var(--text-secondary);font-size:.86rem;padding-bottom:.2rem}.payroll-table{width:100%;border-collapse:collapse;font-size:.875rem}.payroll-table th,.payroll-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-color);white-space:nowrap;background:var(--payroll-row-bg, #ffffff)}.payroll-table-compact th,.payroll-table-compact td{padding:.34rem .5rem;font-size:.82rem}.payroll-table-compact .payroll-input{width:80px!important;padding:.25rem .35rem!important}.payroll-table th{background:#f8fafc;font-weight:600;color:var(--text-secondary);position:sticky;top:0;z-index:3}.payroll-table tbody tr:nth-child(odd){--payroll-row-bg: #ffffff}.payroll-table tbody tr:nth-child(2n){--payroll-row-bg: #f8fafc}.payroll-table tbody tr:hover td{background:#eef3f8}.payroll-table .payroll-sticky-col{position:sticky;background:var(--payroll-row-bg, #ffffff);z-index:2}.payroll-table th.payroll-sticky-col{background:#f8fafc;z-index:5}.payroll-table .payroll-sticky-id{left:0;min-width:10rem}.payroll-table .payroll-sticky-name{min-width:14rem}.payroll-table .payroll-num{text-align:right}.payroll-empty-row{text-align:center!important;color:var(--text-secondary);padding:1rem!important}.payroll-totals-row td{border-top:2px solid #d1deef;font-weight:700}.payroll-totals-row-section td{background:#f8fbff}.payroll-totals-row-grand td{background:#eef4ff}.payroll-table th.payroll-income-col{background:#e7f5ec}.payroll-table td.payroll-income-col{background:#d7f0e259}.payroll-table th.payroll-deduction-col{background:#fdecee}.payroll-table td.payroll-deduction-col{background:#f9dde159}.payroll-table th.payroll-net-col{background:#fff4cf;font-weight:700}.payroll-table td.payroll-net-col{background:#ffe9a873;font-weight:700}.payroll-table .payroll-num .payroll-input{width:90px;padding:.35rem .5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;text-align:right}.payroll-remove-col{margin-left:.25rem;padding:0 .25rem;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:1rem;line-height:1}.payroll-remove-col:hover{color:var(--danger-color)}.payroll-history-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.75rem}.payroll-history-filter{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.payroll-history-filter span{color:var(--text-secondary);font-weight:500}.payroll-history-filter .form-input{min-width:10rem}.payroll-pay-period-month .form-input{min-width:11.5rem}.payroll-payslips-list{width:100%;margin-top:.7rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.payroll-history-advanced summary{cursor:pointer;color:#305180;font-weight:600;font-size:.88rem}.payroll-history-cards{display:flex;flex-direction:column;gap:.7rem}.payroll-history-card{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap;border:1px solid #dde8f6;border-radius:10px;padding:.75rem .8rem;background:#fbfdff}.payroll-history-card-highlight{border-color:#93c5fd;background:#eff6ff;box-shadow:0 0 0 2px #3b82f640}.payroll-history-card-meta h3{margin:0;font-size:.93rem}.payroll-history-card-meta p{margin:.2rem 0 0;color:var(--text-secondary);font-size:.83rem}.payroll-history-card-actions{display:flex;gap:.5rem;flex-wrap:wrap}.payroll-payslips-actions{margin-bottom:.75rem}.payroll-payslips-ul{list-style:none;margin:0;padding:0}.payroll-payslip-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid var(--border-color);font-size:.875rem}.payroll-payslip-item:last-child{border-bottom:none}.payroll-empty-state{text-align:left}.payroll-finalize-modal{max-width:560px}.payroll-finalize-lead{margin:0 0 .9rem;color:var(--text-primary);font-size:.95rem}.payroll-finalize-summary{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.8rem}.payroll-finalize-summary>div{background:#f8fafc;border:1px solid var(--border-color);border-radius:8px;padding:.65rem .75rem}.payroll-finalize-summary span{display:block;font-size:.8rem;color:var(--text-secondary);margin-bottom:.2rem}.payroll-finalize-summary strong{font-size:.92rem;color:var(--text-primary)}.payroll-finalize-warning{margin:0 0 1rem;padding:.65rem .75rem;border-left:4px solid #ef4444;background:#fef2f2;color:#7f1d1d;border-radius:6px;font-size:.88rem}.payroll-finalize-actions{display:flex;justify-content:flex-end;gap:.6rem}.payroll-btn-neutral{background:#eef4ff;border:1px solid #c9daf9;color:#1f3a67;font-weight:600}.payroll-btn-neutral:hover{background:#e0ecff}.payroll-btn-finalize{background:#fff4cf;border:1px solid #f0d27a;color:#7a4a00;font-weight:700}.payroll-btn-finalize:hover{background:#ffebad}.payroll-btn-cancel{font-weight:700}.payroll-addcol-modal{max-width:500px;border-top:5px solid transparent}.payroll-addcol-modal-income{border-top-color:#86cf9f}.payroll-addcol-modal-deduction{border-top-color:#e8a5af}.payroll-addcol-help{margin:0 0 .8rem;font-size:.9rem;color:var(--text-secondary)}.payroll-confirm-modal{max-width:460px;border-top:5px solid #93c5fd}.payroll-confirm-modal-income{border-top-color:#86cf9f}.payroll-confirm-modal-deduction{border-top-color:#e8a5af}.payroll-info-message{margin:0 0 .95rem;color:var(--text-primary);font-size:.93rem;line-height:1.45}@media(max-width:960px){.payroll-command-bar{grid-template-columns:1fr;top:.35rem}.payroll-command-actions{justify-content:flex-start}.payroll-setup-grid,.payroll-setup-period-range{grid-template-columns:1fr}.payroll-density-row{flex-direction:column;align-items:flex-start}.payroll-controls-grid,.payroll-columns-sections{grid-template-columns:1fr}.payroll-toolbar{align-items:stretch}.payroll-actions{width:100%}.payroll-actions .btn{flex:1 1 auto;justify-content:center}.payroll-toolbar .payroll-actions+.payroll-actions{margin-left:0}}.layout{min-height:100vh;display:flex;flex-direction:column}.navbar{background-color:var(--surface);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow);position:sticky;top:0;z-index:3000}.navbar-content{max-width:1600px;margin:0 auto;padding:1rem;display:flex;justify-content:space-between;align-items:center;gap:2rem}.navbar-brand{font-size:1.5rem;font-weight:700;color:var(--primary-color)}.navbar-brand a{text-decoration:none;color:inherit;display:flex;align-items:center}.navbar-logo{display:block;height:40px;width:auto;object-fit:contain}.navbar-menu{display:flex;gap:1.5rem;flex:1;justify-content:center}.navbar-menu a{text-decoration:none;color:var(--text-secondary);font-weight:500;padding:.5rem 1rem;border-radius:6px;transition:all .2s}.navbar-menu a:hover{color:var(--primary-color);background-color:#f1f5f9}.navbar-menu a.active{color:var(--primary-color);background-color:#eff6ff}.navbar-dropdown{position:relative;display:flex;align-items:center}.navbar-dropdown>a{display:inline-block}.navbar-dropdown:hover .navbar-dropdown-menu{opacity:1;visibility:visible}.navbar-dropdown-menu{position:absolute;top:100%;left:0;margin-top:.25rem;min-width:10rem;padding:.5rem 0;background-color:var(--surface);border:1px solid var(--border-color);border-radius:6px;box-shadow:var(--shadow);opacity:0;visibility:hidden;transition:opacity .15s,visibility .15s;display:flex;flex-direction:column;gap:0;z-index:3100}.navbar-dropdown-menu a{display:block;padding:.5rem 1rem;white-space:nowrap;border-radius:0}.navbar-dropdown-menu a:hover{background-color:#f1f5f9}.navbar-user-menu{position:relative;display:flex;align-items:center}.navbar-user-trigger{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:none;border-radius:50%;background:var(--background);color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s}.navbar-user-trigger:hover{background:#e2e8f0;color:var(--primary-color)}.navbar-user-icon{width:1.375rem;height:1.375rem}.navbar-user-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;min-width:11rem;padding:.5rem 0;background-color:var(--surface);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;z-index:3100}.navbar-user-dropdown-header{padding:.5rem 1rem .75rem;border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:.25rem}.navbar-user-dropdown .user-name{font-weight:600;color:var(--text-primary);font-size:.875rem}.navbar-user-dropdown .user-role{padding:0;background:none;color:var(--text-secondary);border-radius:0;font-size:.75rem;font-weight:500;text-transform:uppercase}.navbar-user-dropdown a{display:block;padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-primary);text-decoration:none;transition:background .15s}.navbar-user-dropdown a:hover,.navbar-user-dropdown a.active{background:#f1f5f9;color:var(--primary-color)}.navbar-user-logout{display:block;width:100%;padding:.5rem 1rem;margin:.25rem 0 0;border:none;border-top:1px solid var(--border-color);background:none;font-size:.875rem;font-weight:500;color:var(--text-secondary);text-align:left;cursor:pointer;transition:background .15s,color .15s}.navbar-user-logout:hover{background:#fef2f2;color:var(--danger-color)}.user-name{font-weight:500;color:var(--text-primary)}.user-role{padding:.25rem .75rem;background-color:#eff6ff;color:var(--primary-color);border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase}.main-content{flex:1;padding:2rem 1rem}@media(max-width:768px){.navbar-content{flex-direction:column;gap:1rem}.navbar-menu{flex-direction:column;width:100%;gap:.5rem}.navbar-user-menu{align-self:flex-end}}
