.absence-workspace{--absence-blue:#2563eb;--absence-navy:#10203d;--absence-muted:#6b7d98;--absence-line:#dce6f4;--absence-soft:#f6f9fe;display:grid;gap:20px;min-width:0;max-width:1480px;margin:0 auto}.absence-workspace *{box-sizing:border-box}.absence-heading,.absence-card{padding:28px!important}.absence-heading{display:flex;align-items:center;justify-content:space-between;gap:28px;overflow:hidden}.absence-heading>div{max-width:790px}.absence-heading h1{margin:5px 0 9px;font-size:clamp(28px,3vw,42px);letter-spacing:-.035em;color:var(--absence-navy)}.absence-heading p,.absence-card p{color:var(--absence-muted);line-height:1.55}.absence-heading .eyebrow,.absence-card .eyebrow{margin:0;color:var(--absence-blue);font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.absence-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:22px}.absence-section-heading h2{margin:5px 0 5px;font-size:24px;letter-spacing:-.025em}.absence-section-heading p{margin:0;max-width:790px}.absence-workspace label{display:grid;gap:7px;font-size:12px;font-weight:750;color:var(--absence-navy)}.absence-workspace input:not([type=checkbox]):not([type=radio]),.absence-workspace select,.absence-workspace textarea{width:100%;min-width:0;border:1px solid #d4e0f3;border-radius:12px;padding:11px 13px;background:#fbfdff;color:var(--absence-navy);font:inherit;box-sizing:border-box;outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.absence-workspace input:focus,.absence-workspace select:focus,.absence-workspace textarea:focus{border-color:#76a2ff;box-shadow:0 0 0 4px rgba(37,99,235,.1);background:#fff}.absence-workspace textarea{height:82px;min-height:72px;resize:vertical}.absence-workspace .button{white-space:normal;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}.absence-workspace .button:hover{transform:translateY(-2px)}.absence-workspace .compact-button{min-width:40px;padding:9px 12px}.absence-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;margin-bottom:22px}.absence-toolbar>label{min-width:220px;flex:1}.absence-toolbar>button,.absence-toolbar>a{flex:0 0 auto}.absence-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:18px 0}.absence-form-grid .full{grid-column:1/-1}.absence-form-grid label small{font-weight:500;color:var(--absence-muted)}.absence-workspace .check-row{display:flex;align-items:center;gap:9px}.absence-workspace .check-row input{flex:0 0 auto}.absence-empty{padding:38px 24px;text-align:center;border:1px dashed #c9d7ed;border-radius:16px;background:#f8fbff}.absence-empty strong{font-size:18px}.absence-empty p{margin:7px 0 0}.absence-notice{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid #cfe0fa;border-radius:13px;background:#f0f6ff;color:#234a82}.absence-notice strong{flex:0 0 auto}.absence-notice span{line-height:1.45}.absence-notice.is-warning{border-color:#f2d49b;background:#fff9eb;color:#7b5411}.is-hidden-form{display:none!important}

/* Shared searchable picker */
.absence-workspace [data-employee-picker]{position:relative}.absence-workspace [data-employee-picker-trigger]{width:100%;min-height:43px;border:1px solid #d4e0f3;border-radius:12px;background:#fbfdff;color:var(--absence-navy);text-align:left;padding:10px 38px 10px 13px;box-shadow:none}.absence-workspace [data-employee-picker-menu]{z-index:50}

/* Availability */
.availability-hero{background:linear-gradient(125deg,#fff 45%,#edf4ff)}.availability-guide,.leave-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.availability-guide article,.leave-guide article{display:flex;gap:14px;padding:18px;border:1px solid var(--absence-line);border-radius:17px;background:#fff;box-shadow:0 12px 30px rgba(27,58,105,.06);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}.availability-guide article:hover,.leave-guide article:hover{transform:translateY(-3px);border-color:#b6cced;box-shadow:0 18px 38px rgba(27,58,105,.1)}.availability-guide article>span,.leave-guide article>span{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:11px;background:#edf4ff;color:var(--absence-blue);font-size:11px;font-weight:850}.availability-guide strong,.leave-guide strong{display:block;margin:2px 0 5px;color:var(--absence-navy)}.availability-guide p,.leave-guide p{margin:0;color:var(--absence-muted);font-size:12px;line-height:1.45}.availability-board{overflow:hidden}.availability-filters{padding-bottom:20px;border-bottom:1px solid #e5ecf6}.availability-monthbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:17px}.availability-monthnav,.availability-selection-actions{display:flex;align-items:center;gap:9px}.availability-monthnav>strong{min-width:150px;text-align:center;font-size:17px;text-transform:capitalize}.availability-selection-count{padding:8px 11px;border-radius:999px;background:#edf4ff;color:#2153ad;font-size:12px;font-weight:800}.availability-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.availability-weekday{text-align:center;color:#73839c;font-size:11px;text-transform:uppercase;letter-spacing:.08em;padding:6px}.availability-blank{min-height:1px}.availability-day{position:relative;display:flex;flex-direction:column;gap:7px;min-width:0;min-height:128px;padding:10px;border:1px solid var(--absence-line);border-radius:14px;background:#fbfdff;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.availability-day:hover{transform:translateY(-2px);border-color:#b9cceb;box-shadow:0 9px 22px rgba(31,62,107,.08)}.availability-day:has(.availability-day-select input:checked){border-color:#3977ed;box-shadow:0 0 0 2px rgba(37,99,235,.17),0 10px 22px rgba(37,99,235,.1);background:#f5f9ff}.availability-day.has-conflict{border-color:#efb261}.availability-day-select{display:flex!important;align-items:center;justify-content:space-between;gap:8px;cursor:pointer}.availability-day-select span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#eef3fa;color:var(--absence-navy);font-size:15px;font-weight:850}.availability-day-select input{order:2;width:16px;height:16px;accent-color:var(--absence-blue)}.availability-intervals{display:grid;gap:5px;min-width:0}.availability-default{padding:5px 2px;color:#8a99ae;font-size:10px}.availability-chip{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;padding:6px 24px 6px 7px;border-radius:9px;font-size:9px;line-height:1.25}.availability-chip.is-unavailable{background:#fff0ee;color:#9b3328}.availability-chip.is-available{background:#eaf4ff;color:#1757a5}.availability-chip>span{display:flex;align-items:center;gap:4px;min-width:0;font-weight:750}.availability-chip i{display:block;width:5px;height:5px;border-radius:50%;background:currentColor}.availability-chip strong{font-size:9px}.availability-chip small{grid-column:1/-1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:.8}.availability-chip button{position:absolute;top:50%;right:5px;display:grid;place-items:center;width:18px;height:18px;padding:0;transform:translateY(-50%);border:0;border-radius:6px;background:transparent;color:currentColor;font-size:16px;cursor:pointer;transition:background .16s ease}.availability-chip button:hover{background:rgba(0,0,0,.08)}.availability-shifts{margin-top:auto;padding-top:6px;border-top:1px solid #e9eef6;color:#667792;font-size:9px}.availability-shifts.is-conflict{color:#a15b00}.availability-editor{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.7fr);gap:30px;margin-top:22px;padding:24px;border-radius:18px;background:linear-gradient(135deg,#0c1a35,#183d82);color:#fff}.availability-editor-copy h2{margin:5px 0 8px;font-size:23px}.availability-editor-copy p:not(.eyebrow){margin:0;color:#bdcbe2;font-size:12px;line-height:1.55}.availability-editor .eyebrow{color:#7fb0ff}.availability-editor-fields{display:grid;grid-template-columns:1fr 1.1fr;gap:14px}.availability-editor-fields>label{grid-column:1/-1;color:#eaf1ff}.availability-editor-fields input:not([type=radio]){background:rgba(255,255,255,.98)}.availability-kind{display:flex;align-items:end;gap:8px;margin:0;padding:0;border:0}.availability-kind legend{margin-bottom:7px;color:#eaf1ff;font-size:12px;font-weight:750}.availability-kind label{display:block}.availability-kind input{position:absolute;opacity:0}.availability-kind span{display:block;padding:10px 15px;border:1px solid rgba(255,255,255,.22);border-radius:11px;background:rgba(255,255,255,.08);cursor:pointer;transition:background .18s ease,border-color .18s ease}.availability-kind input:checked+span{border-color:#8db7ff;background:#fff;color:#174a9e}.availability-time-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.availability-time-row label{color:#eaf1ff}.availability-editor-footer{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px}.availability-editor-footer p{margin:0;color:#afbfda;font-size:11px}.availability-editor-footer .button{flex:0 0 auto}

/* Leave */
.leave-hero{background:linear-gradient(125deg,#fff 45%,#f2efff)}.leave-guide article>span{background:#f0ecff;color:#6d3ce8}.leave-balance-filters{align-items:end;padding:15px;border:1px solid #e0e8f4;border-radius:15px;background:#f7faff}.leave-balance-filters>label:first-child{flex:2}.leave-person-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:22px 0 14px}.leave-person-row h3{margin:0;font-size:22px}.leave-person-row p{margin:4px 0 0}.leave-no-limit,.leave-pending-badge{padding:8px 12px;border-radius:999px;background:#eef3fa;color:#50627e;font-size:11px;font-weight:800}.absence-balances{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:17px 0}.absence-balances article{padding:16px;border:1px solid #dbe6f5;border-radius:14px;background:#f8fbff}.absence-balances span{display:block;color:#697a94;font-size:10px}.absence-balances strong{display:block;margin-top:7px;color:var(--absence-navy);font-size:21px}.absence-balances .is-remaining{background:linear-gradient(145deg,#eaf2ff,#f6f9ff);border-color:#92b6f7}.leave-pending-copy{margin:0 0 20px;font-size:12px}.absence-split{display:grid;grid-template-columns:1fr 1fr;gap:14px}.absence-details{margin:0;border:1px solid #dde6f3;border-radius:15px;background:#fbfdff;overflow:hidden}.absence-details>summary{display:flex;flex-direction:column;gap:3px;padding:16px 18px;cursor:pointer;list-style:none;color:var(--absence-navy);font-weight:800}.absence-details>summary::-webkit-details-marker{display:none}.absence-details>summary:after{content:'+';position:absolute;right:18px;font-size:20px}.absence-details[open]>summary:after{content:'−'}.absence-details>summary{position:relative}.absence-details>summary small{padding-right:25px;color:var(--absence-muted);font-size:10px;font-weight:500}.absence-details>form,.absence-details>.absence-history,.absence-details>p{margin-left:18px;margin-right:18px}.absence-details>form{padding-bottom:18px}.leave-history-details{margin-top:14px}.absence-history{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 15px;padding:11px 0;border-top:1px solid #e5ebf4;font-size:12px}.absence-history>span{font-weight:800}.absence-history small{grid-column:1/-1;color:#7788a0}.leave-request-create{border-top:3px solid #5d83ef}.leave-request-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.absence-preview{grid-column:1/-1;padding:13px 15px;border:1px solid #cfe0fb;border-radius:12px;background:#eff6ff;color:#28568e;font-size:12px;line-height:1.45}.leave-requests-card{overflow:hidden}.leave-request-list{display:grid;gap:12px}.absence-request{padding:18px;border:1px solid #dfe7f2;border-radius:16px;background:#fbfdff;transition:border-color .2s ease,box-shadow .2s ease}.absence-request:hover{border-color:#bdcdea;box-shadow:0 10px 25px rgba(26,56,101,.07)}.absence-request header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.absence-request header>div>strong{font-size:16px}.absence-request header p{margin:5px 0 0;font-size:12px}.leave-request-note,.leave-decision-note{padding:10px 12px;border-radius:10px;background:#f2f6fc;font-size:12px}.leave-decision-form{margin-top:14px;padding-top:14px;border-top:1px solid #e2e9f3}.leave-decision-form .absence-form-grid{grid-template-columns:minmax(180px,.4fr) minmax(0,1fr);margin:0 0 12px}.leave-over-limit{align-items:flex-start!important;margin:10px 0;padding:12px;border:1px solid #f0c676;border-radius:12px;background:#fff9e9;color:#76500e}.leave-over-limit span{display:grid;gap:3px}.leave-over-limit small{font-weight:500}.absence-request .actions,.leave-cancel-form{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:12px}.leave-cancel-form input{flex:1;min-width:210px}.absence-schedule-confirmations{grid-column:1/-1;display:grid;gap:9px;padding:12px;border:1px solid #f1d496;border-radius:11px;background:#fff9ec}.absence-schedule-confirmations label{display:flex;align-items:center;gap:8px;font-size:11px}.shift-card.is-leave{background:#fff3e8!important;border-color:#eab980!important}.shift-card.is-leave .shift-card-footer{color:#994b10}

.absence-schedule-confirmations{gap:10px;padding:14px 15px;border-color:#edc66f;border-radius:14px;color:#63450c}.absence-schedule-confirmations[hidden],.absence-schedule-confirmation[hidden]{display:none!important}.absence-schedule-confirmations-title{display:grid;gap:2px}.absence-schedule-confirmations-title strong{font-size:12px}.absence-schedule-confirmations-title small{color:#876727;font-size:10px}.absence-schedule-confirmation{display:grid!important;grid-template-columns:18px 26px minmax(0,1fr);align-items:start!important;gap:10px!important;padding:11px 12px;border:1px solid #efd99e;border-radius:11px;background:#fff;cursor:pointer;font-size:11px!important}.absence-schedule-confirmation input{position:absolute;opacity:0}.absence-confirmation-mark{display:grid;place-items:center;width:18px;height:18px;border:1px solid #b9c7dc;border-radius:5px;background:#fff;color:transparent;font-size:12px;transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease}.absence-schedule-confirmation input:checked+.absence-confirmation-mark{border-color:#2563eb;background:#2563eb;color:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.absence-schedule-confirmation input:focus-visible+.absence-confirmation-mark{outline:2px solid #2563eb;outline-offset:2px}.absence-schedule-confirmation>span:last-child{display:grid;gap:2px}.absence-schedule-confirmation>span:last-child>strong{color:#172541}.absence-schedule-confirmation>span:last-child>span{color:#556781;font-weight:500;line-height:1.4}.absence-schedule-confirmation>span:last-child>small{color:#9a6510;font-weight:750}

@media(max-width:1200px){.absence-balances{grid-template-columns:repeat(3,minmax(0,1fr))}.availability-editor{grid-template-columns:1fr}.availability-editor-fields{grid-template-columns:1fr 1fr}.availability-day{min-height:118px;padding:8px}.availability-chip{grid-template-columns:1fr}.availability-chip strong{grid-column:1}.availability-chip small{display:none}}

/* Keep compact calendar controls readable even in narrow day columns. */
.availability-day-select input {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    min-width: 22px;
}

.availability-chip {
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
}

.availability-chip > span,
.availability-chip strong {
    min-width: 0;
    overflow-wrap: anywhere;
}

.availability-chip strong {
    grid-column: 1;
}

/* The native input is visually hidden, so the custom mark and copy use two columns. */
.absence-schedule-confirmation {
    grid-template-columns: 26px minmax(0, 1fr);
}

.absence-schedule-confirmation > span:last-child {
    min-width: 0;
}

/* Compact leave decisions: keep the list scannable and reveal forms on demand. */
.leave-requests-card {
    padding: 22px !important;
}

.leave-requests-card .absence-section-heading {
    align-items: center;
    margin-bottom: 15px;
}

.leave-requests-card .absence-section-heading h2 {
    font-size: 21px;
}

.leave-requests-card .absence-section-heading p:not(.eyebrow) {
    font-size: 11px;
}

.leave-request-row {
    overflow: hidden;
    padding: 0;
    background: #fff;
}

.leave-request-row > summary {
    list-style: none;
}

.leave-request-row > summary::-webkit-details-marker {
    display: none;
}

.leave-request-summary {
    display: grid;
    grid-template-columns: minmax(190px, 1.4fr) minmax(180px, 1fr) minmax(82px, .45fr) auto minmax(92px, auto);
    gap: 14px;
    align-items: center;
    min-height: 70px;
    padding: 11px 14px;
    color: var(--absence-navy);
    cursor: pointer;
}

.leave-request-summary:focus-visible {
    outline: 3px solid rgba(37, 99, 235, .2);
    outline-offset: -3px;
}

.leave-request-person {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.leave-request-person > span:last-child,
.leave-request-fact {
    display: grid;
    gap: 2px;
    min-width: 0;
}

.leave-request-avatar {
    display: grid;
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    place-items: center;
    border-radius: 11px;
    color: #2563eb;
    background: #eaf2ff;
}

.leave-request-avatar .icon {
    width: 17px;
    height: 17px;
}

.leave-request-person strong,
.leave-request-fact strong {
    overflow: hidden;
    font-size: 12px;
    line-height: 1.3;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.leave-request-person small,
.leave-request-fact small {
    color: #8190a5;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.leave-request-fact > span {
    color: #75849a;
    font-size: 9px;
}

.leave-request-summary > .badge {
    justify-self: end;
    white-space: nowrap;
}

.leave-request-open {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    color: #2159bb;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.leave-request-open .icon {
    width: 15px;
    height: 15px;
    transition: transform .18s ease;
}

.leave-request-row[open] .leave-request-open .icon {
    transform: rotate(180deg);
}

.leave-request-row[open] .leave-request-summary {
    background: #f8fbff;
}

.leave-request-body {
    padding: 14px 18px 17px 63px;
    border-top: 1px solid #e7edf5;
}

.leave-request-details {
    display: flex;
    gap: 8px;
    margin-bottom: 10px;
}

.leave-request-details > span {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 9px;
    border-radius: 8px;
    background: #f1f5fa;
}

.leave-request-details small {
    color: #7b8aa0;
    font-size: 9px;
}

.leave-request-details strong {
    font-size: 10px;
}

.leave-request-body .leave-request-note,
.leave-request-body .leave-decision-note {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 9px;
    margin: 8px 0;
    padding: 9px 11px;
    font-size: 10px;
}

.leave-request-body .leave-request-note strong,
.leave-request-body .leave-decision-note strong {
    color: #344761;
    white-space: nowrap;
}

.leave-request-body .absence-notice {
    margin-top: 9px;
    padding: 10px 12px;
    font-size: 10px;
}

.leave-request-body .leave-decision-form {
    margin-top: 11px;
    padding-top: 11px;
}

.leave-request-body .leave-decision-form .absence-form-grid {
    gap: 10px;
}

.leave-request-body .leave-decision-form input,
.leave-request-body .leave-cancel-form input {
    min-height: 40px;
}

.leave-request-body .actions .button,
.leave-request-body .leave-cancel-form .button {
    min-height: 40px;
    padding-top: 9px;
    padding-bottom: 9px;
}

@media(max-width:1050px) {
    .leave-request-summary {
        grid-template-columns: minmax(180px, 1fr) minmax(165px, auto) minmax(74px, auto) auto;
    }

    .leave-request-summary > .badge {
        display: none;
    }
}

@media(max-width:760px) {
    .leave-request-summary {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 7px 12px;
        padding: 12px;
    }

    .leave-request-person {
        grid-column: 1;
    }

    .leave-request-summary > .leave-request-fact {
        grid-row: 2;
    }

    .leave-request-summary > .leave-request-fact:nth-of-type(3) {
        display: none;
    }

    .leave-request-open {
        grid-column: 2;
        grid-row: 1 / 3;
    }

    .leave-request-body {
        padding: 13px;
    }
}
@media(max-width:900px){.absence-heading{align-items:flex-start;flex-direction:column}.availability-guide,.leave-guide{grid-template-columns:1fr}.absence-split{grid-template-columns:1fr}.availability-calendar{min-width:760px}.availability-board{overflow-x:auto}.availability-monthbar{min-width:760px}.availability-editor{min-width:760px}.availability-filters{min-width:0}.leave-request-grid,.absence-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.absence-heading,.absence-card{padding:18px!important}.absence-section-heading{flex-direction:column}.absence-toolbar{align-items:stretch}.absence-toolbar>label{min-width:100%}.availability-monthbar{min-width:0;align-items:stretch;flex-direction:column}.availability-monthnav{justify-content:space-between}.availability-selection-actions{flex-wrap:wrap}.availability-calendar{display:grid;grid-template-columns:1fr;min-width:0}.availability-weekday,.availability-blank{display:none}.availability-day{min-height:0}.availability-day-select{position:absolute;right:9px;top:9px}.availability-day-select span{position:absolute;right:31px}.availability-intervals{padding-right:72px}.availability-default{min-height:29px;display:flex;align-items:center}.availability-editor{min-width:0;padding:18px}.availability-editor-fields,.availability-time-row,.leave-request-grid,.absence-form-grid{grid-template-columns:1fr}.absence-form-grid .full{grid-column:auto}.availability-kind{flex-wrap:wrap}.availability-editor-footer{align-items:flex-start;flex-direction:column}.absence-balances{grid-template-columns:repeat(2,minmax(0,1fr))}.leave-decision-form .absence-form-grid{grid-template-columns:1fr}.absence-request header{flex-direction:column}.leave-cancel-form{align-items:stretch;flex-direction:column}.leave-cancel-form input{min-width:0}.absence-notice{flex-direction:column}}
