.absence-workspace{padding:26px 34px 60px;display:grid;grid-template-columns:minmax(0,1fr);min-width:0;gap:18px}.absence-workspace[hidden]{display:none}.absence-page-header{display:flex;min-width:0;align-items:end;justify-content:space-between;gap:24px}.absence-page-header h1{margin:5px 0 4px;font-size:clamp(30px,4vw,44px);line-height:1.08}.absence-page-header p:last-child{margin:0;color:var(--zg-text-muted,#64748b)}.absence-tabs{display:flex;min-width:0;gap:8px;border-bottom:1px solid var(--zg-border,#dbe3ec);overflow-x:auto;overscroll-behavior-inline:contain}.absence-tabs button,.absence-view-toggle button{border:0;background:transparent;font:inherit;font-weight:700;color:#64748b;padding:12px 16px;cursor:pointer}.absence-tabs button{flex:0 0 auto;white-space:nowrap}.absence-tabs button.is-active{color:#0284c7;border-bottom:3px solid #0284c7}.absence-tabs span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;border-radius:12px;background:#e0f2fe;color:#0369a1;font-size:12px}.absence-summary{display:grid;min-width:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.absence-metric{padding:17px 18px;border:1px solid var(--zg-border,#dbe3ec);border-radius:14px;background:var(--zg-surface,#fff);box-shadow:0 8px 25px #0f172a0b}.absence-metric span{display:block;color:#64748b;font-size:13px;font-weight:700}.absence-metric strong{display:block;margin-top:7px;font-size:28px}.absence-card{min-width:0;overflow:hidden}.absence-toolbar{display:grid;min-width:0;grid-template-columns:auto auto 1fr;align-items:end;gap:18px;padding:16px 20px;border-bottom:1px solid var(--zg-border,#dbe3ec)}.absence-view-toggle{display:flex;padding:3px;border-radius:10px;background:#f1f5f9}.absence-view-toggle button{padding:8px 12px;border-radius:8px}.absence-view-toggle button.is-active{background:#fff;color:#0284c7;box-shadow:0 1px 4px #0f172a1f}.absence-month-nav{display:flex;align-items:center;gap:7px}.absence-month-nav strong{min-width:150px;text-transform:capitalize}.absence-filters{display:flex;justify-content:end;gap:10px}.absence-filters label{display:grid;gap:4px}.absence-filters label span{font-size:12px;font-weight:700;color:#475569}.absence-filters select{min-width:135px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff}.absence-loading,.absence-empty{padding:55px;text-align:center;color:#64748b}.absence-calendar{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));min-width:805px}.absence-calendar-wrap{width:100%;max-width:100%;min-width:0;overflow:auto}.absence-weekday{padding:9px 12px;background:#f8fafc;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase}.absence-day{min-height:122px;padding:8px;border:solid #e2e8f0;border-width:1px 0 0 1px;background:#fff}.absence-day.is-outside{background:#f8fafc;color:#94a3b8}.absence-day.is-today{box-shadow:inset 0 0 0 2px #38bdf8}.absence-day-number{display:flex;justify-content:space-between;font-weight:700;font-size:13px}.absence-holiday{display:block;color:#b45309;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.absence-event{display:block;width:100%;margin-top:5px;padding:5px 7px;border:0;border-left:4px solid var(--absence-color,#64748b);border-radius:6px;background:color-mix(in srgb,var(--absence-color,#64748b) 18%,white);color:#0f172a;text-align:left;cursor:pointer;font:inherit;font-size:11px}.absence-event strong,.absence-event small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.absence-event small{color:#475569}.absence-event.is-pending{border-style:dashed}.absence-table-wrap{overflow:auto}.absence-table{width:100%;border-collapse:collapse}.absence-table th,.absence-table td{padding:12px 14px;border-bottom:1px solid #e2e8f0;text-align:left;white-space:nowrap}.absence-table th{background:#f8fafc;color:#475569;font-size:12px}.absence-type{display:flex;align-items:center;gap:8px}.absence-type i{width:11px;height:11px;border-radius:50%;background:var(--absence-color)}.absence-pill{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#f1f5f9;font-size:12px;font-weight:700}.absence-pill.pending{background:#fef3c7;color:#92400e}.absence-pill.confirmed{background:#dcfce7;color:#166534}.absence-pill.rejected,.absence-pill.cancelled{background:#fee2e2;color:#991b1b}.absence-pill.document{background:#ffedd5;color:#9a3412}.absence-actions{display:flex;gap:6px}.absence-request-list{display:grid;gap:10px;padding:18px}.absence-request{display:grid;grid-template-columns:1fr auto;gap:14px;padding:16px;border:1px solid #e2e8f0;border-radius:12px}.absence-request p{margin:5px 0;color:#64748b}.absence-request-actions{display:flex;align-items:center;gap:7px}.absence-balance-note{margin:16px;padding:12px 14px;border-radius:10px;background:#fff7ed;color:#9a3412}.absence-dialog{width:min(850px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;border:0;border-radius:18px;box-shadow:0 24px 80px #0f172a55}.absence-dialog::backdrop{background:#0f172a99}.absence-dialog .dialog-close{position:absolute;right:18px;top:18px;z-index:2}.absence-dialog-header{padding:25px 30px 18px;border-bottom:1px solid #e2e8f0}.absence-dialog-header h2{margin:4px 45px 5px 0}.absence-dialog-body{padding:22px 30px}.absence-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.absence-form-grid .full{grid-column:1/-1}.absence-form-grid label{display:grid;gap:5px;font-size:13px;font-weight:700;color:#475569}.absence-form-grid input,.absence-form-grid select,.absence-form-grid textarea{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#0f172a;font:inherit}.absence-form-grid textarea{min-height:90px;resize:vertical}.absence-toggle{display:flex!important;align-items:center;gap:9px!important}.absence-toggle input{width:auto}.absence-repeat,.absence-document-panel,.absence-impact{grid-column:1/-1;padding:14px;border:1px solid #dbe3ec;border-radius:11px;background:#f8fafc}.absence-weekdays{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.absence-weekdays label{display:block}.absence-weekdays input{position:absolute;opacity:0}.absence-weekdays span{display:grid;place-items:center;width:35px;height:35px;border:1px solid #cbd5e1;border-radius:8px;background:#fff}.absence-weekdays input:checked+span{border-color:#0284c7;background:#e0f2fe;color:#0369a1}.absence-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.absence-dialog-actions .danger{margin-right:auto}.absence-detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.absence-detail-meta div{padding:12px;border-radius:9px;background:#f8fafc}.absence-detail-meta span,.absence-detail-meta strong{display:block}.absence-detail-meta span{font-size:11px;color:#64748b}.employee-absence-panel{padding:5px}.employee-absence-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:15px}.employee-absence-summary article{padding:14px;border-radius:10px;background:#f8fafc}.employee-absence-summary strong,.employee-absence-summary span{display:block}.employee-absence-list{display:grid;gap:8px}.employee-absence-list button{display:flex;justify-content:space-between;padding:12px;border:1px solid #e2e8f0;border-radius:9px;background:#fff;text-align:left}.employee-absence-action{margin-bottom:14px}@media(max-width:1000px){.absence-summary{grid-template-columns:repeat(2,1fr)}.absence-toolbar{grid-template-columns:1fr}.absence-filters{justify-content:start;flex-wrap:wrap}}@media(max-width:650px){.absence-workspace{padding:18px 14px}.absence-page-header{align-items:start;flex-direction:column}.absence-summary{grid-template-columns:1fr}.absence-form-grid{grid-template-columns:1fr}.absence-form-grid .full{grid-column:auto}.absence-request{grid-template-columns:1fr}.absence-filters{display:grid;grid-template-columns:1fr 1fr}.absence-filters label:last-child{grid-column:1/-1}.absence-detail-meta,.employee-absence-summary{grid-template-columns:1fr}}

.vacation-details{margin:16px 0;padding:16px;border:1px solid var(--zg-border-soft);border-radius:var(--zg-radius-md);background:var(--zg-surface-card)}
.vacation-details summary{cursor:pointer;font-weight:700;color:var(--zg-accent-primary)}
.vacation-account-content{display:grid;gap:var(--zg-space-4);padding-top:var(--zg-space-4);font-size:var(--zg-font-body);line-height:var(--zg-line-body)}
.vacation-account-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--zg-space-3);margin:0}
.vacation-account-metrics dt{color:var(--zg-text-secondary)}
.vacation-account-metrics dd{margin:var(--zg-space-1) 0 0;font-weight:var(--zg-weight-bold)}
.vacation-account-metrics dd small{font-weight:var(--zg-weight-body)}
.vacation-account-content .vacation-counted-entry{margin:0;padding-block:var(--zg-space-4);border-top:1px solid var(--zg-border-soft)}
.vacation-counted-entry header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--zg-space-3)}
.vacation-date-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--zg-space-2);padding:0;list-style:none}
.vacation-account-content h3,.vacation-account-content p{margin:0}
.vacation-counted-entry details,.vacation-counted-entry>p{margin-top:var(--zg-space-3)}
.vacation-details p{margin-block:10px;line-height:1.6}
.vacation-counted-entry{border-top:1px solid var(--zg-border-soft);padding-block:12px}
.employee-absence-list small{display:block;margin-top:4px}
.absence-day{position:relative;padding-bottom:44px}
.absence-day-add{position:absolute;inset:auto 8px 6px;min-height:32px;padding:4px;border:1px dashed var(--zg-accent-primary);border-radius:var(--zg-radius-sm);background:var(--zg-surface-card);color:var(--zg-accent-primary);font:inherit;font-size:12px;font-weight:700;cursor:pointer;opacity:0}
.absence-day:hover .absence-day-add,.absence-day:focus-within .absence-day-add{opacity:1}
.absence-day-add:focus-visible{outline:2px solid var(--zg-accent-primary);outline-offset:2px}
@media(hover:none),(pointer:coarse){.absence-day-add{opacity:1}}
.absence-balances{display:grid;gap:var(--zg-space-3);min-width:0}
.absence-balances-heading{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--zg-space-3)}
.absence-balances-heading label{min-width:160px}
.absence-balances .zg-table td{vertical-align:top}
.absence-balances .zg-table small{display:block}
.absence-balances .vacation-details{margin:var(--zg-space-2) 0;padding:0;border:0;max-width:440px}
.absence-balances .vacation-details summary{font-weight:var(--zg-weight-body);white-space:normal}
