.leave-view-selector { position:relative; display:grid; grid-template-columns:1fr 1fr; width:250px; padding:4px; border:1px solid #cfdddd; border-radius:12px; background:#eaf4f3; isolation:isolate; }
.leave-view-selector button { border:0; background:transparent; color:#48616c; border-radius:8px; min-height:38px; z-index:1; font-size:.875rem; font-weight:600; }
.leave-view-selector button[aria-pressed="true"] { color:#fff; }
.leave-view-selector button:disabled { opacity:.5; cursor:not-allowed; }
.leave-view-selector button:focus-visible { outline:2px solid #0f766e; outline-offset:3px; }
.leave-view-slider { position:absolute; inset:4px auto 4px 4px; width:calc(50% - 4px); background:#0f766e; border-radius:8px; transition:transform .2s ease; }
.leave-view-selector.is-leave .leave-view-slider { transform:translateX(100%); }
.leave-employees-table td small { display:block; margin-top:5px; font-size:.75rem; color:#64748b; }
.leave-employees-table td .leave-employee-position,
.leave-applications-table td .leave-employee-position { display:block; margin-top:4px; font-size:.75rem; font-weight:400; line-height:1.4; color:var(--muted,#64748b); white-space:normal; overflow-wrap:anywhere; }
.leave-employees-toolbar { display:block; }
.leave-employees-panel[hidden] { display:none !important; }
body:has(.employee-ledger-window) .leave-page-heading { display:none; }
.employee-ledger-window.content-panel { padding:0; width:100%; min-width:0; }
.employee-ledger-window .employee-ledger-dialog-body { overflow:visible; }
.employee-ledger-window #employeeLedgerTitle:focus { outline:none; }
.employee-ledger-window .employee-ledger-dialog-header { flex-wrap:wrap; }
.employee-ledger-heading { flex:1 1 220px; min-width:0; }
.employee-ledger-header-actions { display:flex; align-items:center; flex:0 0 auto; gap:8px; margin-left:auto; }
.employee-ledger-header-actions .employee-ledger-header-year { width:120px; }
.employee-ledger-header-actions .employee-ledger-header-action { width:42px; height:42px; min-height:42px; flex:0 0 42px; }
.employee-ledger-header-action svg { flex:0 0 18px; }
/* This shared component does not inherit Leave.razor's scoped styles.
   Anchor its absolute loading overlay to the results, never the viewport. */
.leave-employees-panel .leave-results-host { position:relative; isolation:isolate; min-height:260px; }
.leave-employees-toolbar .records-search-form { display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; gap:8px; width:100%; }
.leave-employees-toolbar .search-composer { grid-column:1; grid-row:1; }
.leave-employees-toolbar .filter-actions { grid-column:2; grid-row:1; }
.leave-employees-toolbar .leave-employees-export-action { display:inline-grid; place-items:center; width:38px; height:38px; padding:0; border-radius:10px; }
.leave-employees-toolbar .search-composer.animated-search.is-open { width:min(400px,100%) !important; min-width:0 !important; }
.leave-employees-toolbar .filter-slide-panel { grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto; }
.leave-employees-toolbar .filter-slide-panel:has(details[open]) { overflow:visible; }
.leave-employees-toolbar .records-filter-menu { min-width:0; }
.leave-employees-table { min-width:740px; }
.leave-employees-table td { vertical-align:middle; }
.leave-employees-table th:nth-child(3),
.leave-employees-table th:nth-child(4),
.leave-employees-table td:nth-child(3),
.leave-employees-table td:nth-child(4) { text-align:right !important; }
.leave-employees-table th:nth-child(5),
.leave-employees-table th:nth-child(6),
.leave-employees-table td:nth-child(5),
.leave-employees-table td:nth-child(6) { text-align:center !important; }
.leave-employees-table .leave-balance-number { font-variant-numeric:tabular-nums; font-weight:600; }
.leave-processing-status { display:inline-flex; border-radius:999px; padding:4px 10px; font-size:.75rem; font-weight:600; }
.leave-processing-status.is-updated { color:#126348; background:#e4f5ed; }
.leave-processing-status.is-pending { color:#855618; background:#fff3d9; }
.leave-employee-ledger-action svg { flex:0 0 16px; }
.leave-employees-panel .pagination-row label { display:flex; align-items:center; gap:8px; }
.leave-employees-panel .pagination-row select { width:80px; }
.leave-ledger-selected-employee { display:flex; flex:1; flex-direction:column; justify-content:center; min-width:180px; padding:4px 12px; }
.leave-ledger-selected-employee small { color:#64748b; }
@media(max-width:640px) { .leave-view-selector { width:100%; margin-top:12px; } .leave-employees-toolbar .filter-slide-panel { grid-template-columns:1fr; } .leave-employees-toolbar .filter-slide-panel.is-open { max-height:500px; } }
@media(prefers-reduced-motion:reduce) { .leave-view-slider { transition:none; } }
html[data-theme="dark"] .leave-view-selector { background:#1d3039; border-color:#38505d; }
html[data-theme="dark"] .leave-view-selector button { color:#d7e4e8; }

.employee-ledger-dialog { width:min(1280px,calc(100vw - 48px)); max-width:none; max-height:calc(100dvh - 48px); padding:0; border:1px solid var(--border-color,#dce5ee); border-radius:20px; background:var(--panel-bg,#fff); color:var(--text-color,#243449); box-shadow:0 24px 80px #14283840; }
.employee-ledger-dialog:not([open]) { display:none; }
.employee-ledger-dialog[open] { display:flex; flex-direction:column; animation:employee-ledger-enter .18s ease-out; }
.employee-ledger-dialog::backdrop { background:#16233870; backdrop-filter:blur(4px); }
.employee-ledger-dialog-header { position:relative; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px 16px; border-bottom:1px solid #dce5ee; flex-shrink:0; }
.employee-ledger-header-year { position:relative; flex:0 0 120px; margin:0; }
.employee-ledger-header-year > span { position:absolute; top:-8px; left:10px; padding:0 4px; color:#0f766e; background:var(--panel-bg,#fff); font-size:.7rem; }
.employee-ledger-dialog-header h2 { margin:0; font-size:1.35rem; font-weight:600; }
.employee-ledger-dialog-header p { margin:5px 0 0; color:#64748b; font-size:.875rem; }
.employee-ledger-dialog-body { overflow:auto; min-height:0; flex:1; padding:20px 24px; }
.employee-ledger-dialog-body > .leave-ledger-shell { position:relative; isolation:isolate; min-height:260px; }
.employee-ledger-dialog-body > .leave-ledger-shell.content-panel { margin:0; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; }
.employee-ledger-dialog-footer { padding:12px 24px; display:flex; justify-content:flex-end; gap:8px; border-top:1px solid #dce5ee; flex-shrink:0; }
.employee-ledger-dialog-footer .btn { display:inline-flex; align-items:center; gap:6px; }
.employee-ledger-modal-year { display:flex; align-items:center; justify-content:space-between; gap:16px; width:100%; min-height:42px; padding:9px 12px; border:1px solid #c6d7e4; border-radius:10px; background:var(--panel-bg,#fff); color:inherit; font:inherit; font-size:.875rem; cursor:pointer; }
.employee-ledger-modal-year:hover,.employee-ledger-modal-year[aria-expanded="true"] { border-color:#0f766e; }
.employee-ledger-modal-year:focus-visible { outline:2px solid #0f766e; outline-offset:2px; }
.employee-ledger-modal-year:disabled { opacity:.65; cursor:wait; }
.employee-ledger-year-chevron { width:8px; height:8px; border-right:2px solid #64748b; border-bottom:2px solid #64748b; transform:rotate(45deg) translateY(-2px); }
.employee-ledger-modal-year[aria-expanded="true"] .employee-ledger-year-chevron { transform:rotate(225deg); }
.employee-ledger-year-options { position:absolute; top:calc(100% + 6px); right:0; z-index:20; width:100%; min-width:120px; max-height:min(240px,40dvh); overflow-y:auto; padding:5px; border:1px solid #c6d7e4; border-radius:12px; background:var(--panel-bg,#fff); color:inherit; box-shadow:0 12px 32px #14283824; }
.employee-ledger-year-options[hidden] { display:none; }
.employee-ledger-year-options [role="option"] { display:flex; justify-content:space-between; width:100%; min-height:40px; border:0; border-radius:7px; padding:9px 10px; font:inherit; font-size:.875rem; color:inherit; background:transparent; cursor:pointer; }
.employee-ledger-year-options [role="option"]:hover,.employee-ledger-year-options [role="option"]:focus-visible,.employee-ledger-year-options [aria-selected="true"] { background:#e5f3f1; color:#0f766e; outline:none; }
body:has(.employee-ledger-dialog[open]) { overflow:hidden; }
@keyframes employee-ledger-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:640px) {
    .employee-ledger-dialog { width:calc(100vw - 16px); max-height:calc(100dvh - 24px); border-radius:14px; }
    .employee-ledger-dialog-header,.employee-ledger-dialog-body,.employee-ledger-dialog-footer { padding:14px; }
}
@media(prefers-reduced-motion:reduce) { .employee-ledger-dialog[open] { animation:none; } }

/* One auto-layout table keeps the sticky headings aligned with their data. */
.leave-ledger-category-panel.is-merged .leave-ledger-auto-viewport { max-height:580px; overflow:auto; }
.leave-ledger-auto-table { table-layout:auto !important; width:100% !important; }
.leave-ledger-auto-table thead { position:sticky; top:0; z-index:3; }
.leave-ledger-auto-table thead th { position:static !important; white-space:nowrap; }
.leave-ledger-auto-table th,
.leave-ledger-auto-table tbody td { min-width:0 !important; }
.leave-ledger-auto-table thead th[rowspan]:nth-child(1),
.leave-ledger-auto-table tbody td:nth-child(1) { min-width:76px !important; }
.leave-ledger-auto-table thead th[rowspan]:nth-child(2),
.leave-ledger-auto-table tbody td:nth-child(2) { min-width:112px !important; }
.leave-ledger-auto-table thead th[rowspan]:nth-child(3),
.leave-ledger-auto-table tbody td:nth-child(3) { width:1%; white-space:nowrap; }
.leave-ledger-auto-table thead th[rowspan]:nth-child(4),
.leave-ledger-auto-table tbody td:nth-child(4) { min-width:170px !important; }
.leave-ledger-auto-table .leave-numeric-cell {
    /* Fit Earned/LD/SD/Balance to their heading or widest value, rather than
       assigning the same minimum width to every numeric column. */
    width:1%;
    min-width:0 !important;
    white-space:nowrap;
    padding-left:10px;
    padding-right:10px;
}
