.employee-timeoff-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: none;
  place-items: center;
  padding: 20px;
  background: rgba(0, 6, 14, 0.78);
  backdrop-filter: blur(8px);
}

.employee-timeoff-modal.open {
  display: grid;
}

.modal-card {
  width: min(100%, 520px);
  padding: 28px;
  border: 1px solid #183552;
  border-radius: 22px;
  background: #071321;
}

.modal-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.modal-heading h2 {
  margin: 0;
}

.modal-close {
  width: 42px;
  height: 42px;
  border: 1px solid #203b55;
  border-radius: 12px;
  color: white;
  background: #0a1726;
  cursor: pointer;
}

#employeeTimeOffForm {
  display: grid;
  gap: 12px;
}

#employeeTimeOffForm input,
#employeeTimeOffForm select,
#employeeTimeOffForm textarea {
  width: 100%;
  padding: 13px 14px;
  border: 1px solid #1c3a54;
  border-radius: 12px;
  color: white;
  background: #020a12;
  font: inherit;
}

#employeeTimeOffForm textarea {
  min-height: 110px;
  resize: vertical;
}

.date-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.date-grid label {
  display: grid;
  gap: 8px;
}

.request-card {
  margin-bottom: 14px;
  padding: 20px;
  border: 1px solid #183552;
  border-radius: 16px;
  background: #071321;
}

.request-card-top {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.request-card h3 {
  margin: 7px 0 0;
}

.request-type {
  color: #67aaff;
  font-size: 0.85rem;
  font-weight: 700;
}

.status-badge {
  height: fit-content;
  padding: 7px 11px;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 700;
}

.status-badge.pending {
  color: #ffd16d;
  background: rgba(255, 186, 52, 0.13);
}

.status-badge.approved {
  color: #67e5ac;
  background: rgba(39, 218, 139, 0.13);
}

.status-badge.declined,
.status-badge.cancelled {
  color: #ff8181;
  background: rgba(255, 77, 77, 0.13);
}

.cancel-request-button {
  margin-top: 14px;
  border: 0;
  color: #ff9292;
  background: transparent;
  cursor: pointer;
}

.empty-state {
  padding: 48px 20px;
  text-align: center;
  color: #91a5b8;
}

.empty-state h3 {
  margin-top: 0;
  color: white;
}

#requestStatus.success {
  color: #65e7af;
}

#requestStatus.error,
.empty-state.error {
  color: #ff8181;
}

@media (max-width: 600px) {
  .date-grid {
    grid-template-columns: 1fr;
  }
}

/* ShiftLynx V1.5.3 scheduling conflict rules */
.vacation-conflict-settings{margin-top:22px;padding:20px;border:1px solid rgba(59,130,246,.18);border-radius:18px;background:rgba(8,22,38,.52);display:grid;gap:16px}.vacation-conflict-heading strong{font-size:1rem}.settings-field{display:grid;gap:7px}.settings-field>span{font-weight:800}.settings-field small{color:var(--muted,#8396aa);line-height:1.45}.settings-field select{min-height:44px;border:1px solid rgba(148,163,184,.2);border-radius:12px;background:#071525;color:#edf7ff;padding:0 12px}.vacation-conflict-visibility{display:flex;flex-wrap:wrap;gap:10px 18px}.vacation-conflict-visibility label{display:flex;align-items:center;gap:8px}.vacation-conflict-legend{display:flex;flex-wrap:wrap;gap:12px;padding-top:4px}.vacation-conflict-legend span{display:flex;align-items:center;gap:7px;color:#a9bacb;font-size:.83rem;font-weight:700}.conflict-dot{width:9px;height:9px;border-radius:50%;display:inline-block}.conflict-dot.information{background:#38bdf8;box-shadow:0 0 10px rgba(56,189,248,.5)}.conflict-dot.warning{background:#fbbf24;box-shadow:0 0 10px rgba(251,191,36,.45)}.conflict-dot.critical{background:#fb7185;box-shadow:0 0 10px rgba(251,113,133,.45)}
.timeoff-conflict-summary{margin-top:12px;padding:12px 14px;border-radius:13px;border:1px solid rgba(56,189,248,.2);background:rgba(14,31,49,.72)}.timeoff-conflict-summary.warning{border-color:rgba(251,191,36,.35)}.timeoff-conflict-summary.critical{border-color:rgba(251,113,133,.38)}.timeoff-conflict-summary strong{display:block;margin-bottom:5px}.timeoff-conflict-summary ul{margin:7px 0 0;padding-left:18px;color:#aab9c8;font-size:.82rem;line-height:1.45}


/* V1.6.5 vacation balance visibility */
.timeoff-balance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px 14px;border-radius:14px;background:rgba(37,131,247,.08);border:1px solid rgba(61,178,255,.18)}
.timeoff-balance-summary span,.timeoff-balance-summary strong{display:block}
.timeoff-balance-summary span{font-size:.72rem;color:#8ca6bd}.timeoff-balance-summary strong{margin-top:3px;color:#f6fbff}
.timeoff-balance-summary.is-short{border-color:rgba(255,82,115,.28);background:rgba(255,82,115,.07)}
.timeoff-balance-summary.is-short>div:last-child strong{color:#ff7893}
.selected-employee-vacation-balance{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:-2px 0 12px;padding:12px 14px;border-radius:14px;background:rgba(16,185,129,.08);border:1px solid rgba(16,185,129,.18)}
.selected-employee-vacation-balance span{color:#91a9be;font-size:.78rem}.selected-employee-vacation-balance strong{color:#65e7b5}
.blocked-time-empty{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;

    min-height:320px;

    padding:48px;
}

.blocked-time-empty-icon{
    width:72px;
    height:72px;

    border-radius:18px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:
        rgba(45,146,255,.10);

    border:
        1px solid rgba(45,146,255,.20);

    margin-bottom:24px;
}

.blocked-time-empty-icon svg{
    width:34px;
    height:34px;

    color:#3B82F6;
}

.blocked-time-empty h3{
    margin:0;

    color:#fff;

    font-size:24px;
    font-weight:700;
}

.blocked-time-empty p{
    margin-top:12px;

    max-width:480px;

    color:#93A4BD;

    line-height:1.6;
}

.blocked-time-empty button{
    margin-top:28px;
}
#timeOffModal.show > .modal {
  position: relative;
  inset: auto;
  display: block;
  width: min(92vw, 640px);
  max-height: calc(100vh - 40px);
  overflow-y: auto;
}

/* =========================================================
   ShiftLynx Premium Time-Off Workspace — 2026-07-24
========================================================= */
.timeoff-page{padding:34px 38px 64px;max-width:1600px;margin:0 auto}.timeoff-hero{position:relative;display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:24px;padding:30px 32px;border:1px solid rgba(67,170,255,.17);border-radius:26px;overflow:visible;background:radial-gradient(circle at 15% 0%,rgba(36,142,255,.16),transparent 42%),linear-gradient(135deg,rgba(8,24,41,.96),rgba(3,13,24,.98));box-shadow:0 22px 70px rgba(0,0,0,.22)}.timeoff-hero:after{content:"";position:absolute;inset:auto -50px -95px auto;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(22,145,255,.13),transparent 68%);pointer-events:none}.page-eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:8px;color:#65c7ff;font-size:.73rem;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.page-eyebrow svg{width:16px;height:16px}.timeoff-hero h1{margin:10px 0 8px;font-size:clamp(2rem,3vw,3.25rem);line-height:1;color:#f8fbff;letter-spacing:-.045em}.timeoff-hero-copy>p{max-width:720px;margin:0;color:#91a7bb;font-size:1rem;line-height:1.65}.timeoff-hero-actions{position:relative;z-index:5;display:flex;align-items:center;gap:12px}.timeoff-new-request{display:inline-flex!important;align-items:center;gap:9px;min-height:48px;padding:0 19px!important;border-radius:14px!important;box-shadow:0 12px 30px rgba(37,131,247,.25)}.timeoff-new-request svg{width:18px;height:18px}.timeoff-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.timeoff-metric{position:relative;display:flex;align-items:center;gap:15px;min-height:132px;padding:20px;border:1px solid rgba(130,173,211,.14);border-radius:21px;overflow:hidden;background:linear-gradient(145deg,rgba(8,22,38,.94),rgba(4,15,27,.96));box-shadow:0 16px 44px rgba(0,0,0,.14);transition:transform .2s ease,border-color .2s ease}.timeoff-metric:hover{transform:translateY(-2px);border-color:rgba(74,178,255,.25)}.timeoff-metric:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--metric-accent,#2f9fff)}.metric-icon{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;border-radius:15px;color:var(--metric-accent,#59b9ff);background:color-mix(in srgb,var(--metric-accent,#2f9fff) 13%,transparent);border:1px solid color-mix(in srgb,var(--metric-accent,#2f9fff) 23%,transparent)}.metric-icon svg{width:22px;height:22px}.timeoff-metric span,.timeoff-metric small{display:block}.timeoff-metric span{color:#a7bbcd;font-size:.77rem;font-weight:700}.timeoff-metric strong{display:block;margin:3px 0 1px;color:#fff;font-size:2rem;line-height:1}.timeoff-metric small{color:#6f879c;font-size:.72rem}.metric-trend{position:absolute;right:15px;top:16px;width:18px;height:18px;color:color-mix(in srgb,var(--metric-accent,#2f9fff) 65%,#fff)}.metric-pending{--metric-accent:#f6b94a}.metric-approved{--metric-accent:#27d99a}.metric-month{--metric-accent:#ff8659}.metric-employees{--metric-accent:#a77cff}.timeoff-workspace{border:1px solid rgba(106,160,205,.16);border-radius:26px;background:linear-gradient(180deg,rgba(6,19,33,.96),rgba(3,13,23,.98));box-shadow:0 28px 80px rgba(0,0,0,.22);overflow:hidden}.workspace-header{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;padding:25px 28px;border-bottom:1px solid rgba(104,155,198,.13)}.workspace-header h2,.blocked-time-header h2{margin:5px 0 5px;color:#f7fbff;font-size:1.24rem}.workspace-header p,.blocked-time-header p{margin:0;color:#8299ad;font-size:.85rem}.timeoff-search-wrap{display:flex;align-items:center;gap:10px;width:min(100%,340px);height:46px;padding:0 14px;border:1px solid rgba(107,157,199,.19);border-radius:14px;background:#030e1a;transition:border-color .2s,box-shadow .2s}.timeoff-search-wrap:focus-within{border-color:#2f9fff;box-shadow:0 0 0 3px rgba(47,159,255,.1)}.timeoff-search-wrap svg{width:17px;height:17px;color:#6f879b}.timeoff-search-wrap input{width:100%;border:0;outline:0;color:#eef8ff;background:transparent;font:inherit}.timeoff-search-wrap input::placeholder{color:#5f768a}.timeoff-list{display:grid;gap:15px;padding:20px}.timeoff-request-card{position:relative;padding:21px;border:1px solid rgba(116,165,206,.15);border-radius:20px;background:linear-gradient(145deg,rgba(8,24,40,.93),rgba(3,15,27,.96));box-shadow:0 14px 38px rgba(0,0,0,.12);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.timeoff-request-card:hover{transform:translateY(-1px);border-color:rgba(63,165,247,.25);box-shadow:0 20px 50px rgba(0,0,0,.18)}.request-card-header{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:17px}.request-person{display:flex;align-items:center;gap:13px;min-width:0}.request-avatar{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:15px;color:#e8f7ff;font-size:.82rem;font-weight:900;background:linear-gradient(145deg,#147ee6,#22b8ff);box-shadow:0 9px 24px rgba(19,130,230,.23)}.request-name-row{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.request-name-row h3{margin:0;color:#fff;font-size:1rem}.request-name-row p,.request-person p{margin:4px 0 0;color:#6f879c;font-size:.76rem}.request-type-chip{padding:5px 9px;border:1px solid rgba(80,181,255,.2);border-radius:999px;color:#78caff;background:rgba(36,139,232,.09);font-size:.68rem;font-weight:800}.request-status{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;font-size:.71rem;font-weight:850;text-transform:capitalize}.status-dot{width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}.status-pending{color:#ffc85d;background:rgba(246,185,74,.11)}.status-approved{color:#54e4af;background:rgba(39,217,154,.11)}.status-rejected,.status-cancelled{color:#ff7f91;background:rgba(255,77,108,.1)}.request-detail-grid{display:grid;grid-template-columns:1.2fr .8fr 1.2fr;gap:10px;margin-bottom:12px}.request-detail{min-width:0;padding:13px 14px;border:1px solid rgba(107,157,199,.11);border-radius:14px;background:rgba(2,12,22,.55)}.request-detail span{display:flex;align-items:center;gap:7px;margin-bottom:6px;color:#71889d;font-size:.68rem;font-weight:750;text-transform:uppercase;letter-spacing:.055em}.request-detail span svg{width:14px;height:14px;color:#4cb7ff}.request-detail strong{display:block;overflow:hidden;color:#dceaf5;font-size:.82rem;line-height:1.45;text-overflow:ellipsis}.request-insight-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:10px}.coverage-insight{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid rgba(38,211,155,.15);border-radius:15px;background:rgba(24,173,126,.055)}.coverage-warning{border-color:rgba(246,185,74,.22);background:rgba(246,185,74,.055)}.coverage-critical{border-color:rgba(255,85,112,.25);background:rgba(255,85,112,.06)}.insight-icon{display:grid;place-items:center;width:35px;height:35px;flex:0 0 35px;border-radius:11px;color:#44dba7;background:rgba(42,207,153,.1)}.coverage-warning .insight-icon{color:#ffc85d;background:rgba(246,185,74,.1)}.coverage-critical .insight-icon{color:#ff7890;background:rgba(255,85,112,.1)}.insight-icon svg{width:17px;height:17px}.coverage-insight span{color:#6f879b;font-size:.67rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.coverage-insight strong{display:block;margin-top:3px;color:#eaf7ff;font-size:.82rem}.coverage-insight p{margin:4px 0 0;color:#8fa5b8;font-size:.74rem;line-height:1.45}.timeoff-balance-summary{margin:0!important;padding:13px!important;border-radius:15px!important}.timeoff-balance-summary>div{min-width:0}.request-card-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(109,158,199,.11)}.request-id{color:#587086;font-size:.68rem}.request-actions{display:flex;align-items:center;gap:8px}.request-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 13px;border:1px solid rgba(79,171,245,.2);border-radius:11px;color:#dff3ff;background:rgba(38,133,219,.08);font:inherit;font-size:.76rem;font-weight:800;cursor:pointer;transition:.18s ease}.request-action:hover{border-color:#369fff;background:rgba(38,133,219,.15)}.request-action svg{width:15px;height:15px}.request-action.danger{width:38px;padding:0;color:#ff8395;border-color:rgba(255,91,115,.15);background:rgba(255,70,98,.055)}.blocked-time-section{margin:0 20px 20px;border:1px solid rgba(105,155,198,.13);border-radius:20px;background:rgba(2,12,22,.42);overflow:hidden}.blocked-time-header{padding:20px;border-bottom:1px solid rgba(105,155,198,.11)}.blocked-time-title-row{display:flex;gap:13px;align-items:flex-start}.blocked-time-icon{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(144,108,255,.22);border-radius:13px;color:#b997ff;background:rgba(139,92,246,.09)}.blocked-time-icon svg{width:19px;height:19px}.blocked-time-list{padding:14px}.timeoff-empty{display:grid;justify-items:center;gap:7px;padding:54px 20px;text-align:center;color:#71889d}.empty-icon{display:grid;place-items:center;width:48px;height:48px;border:1px solid rgba(80,181,255,.18);border-radius:15px;color:#55baff;background:rgba(37,131,247,.07)}.empty-icon svg{width:22px;height:22px}.timeoff-empty strong{color:#eaf5ff}.timeoff-empty span{font-size:.8rem}.modal-backdrop.show{backdrop-filter:blur(12px);background:rgba(0,7,15,.76)}.modal-backdrop .modal{width:min(92vw,640px);border:1px solid rgba(73,166,242,.21);border-radius:24px;background:linear-gradient(160deg,#071828,#030e19);box-shadow:0 32px 100px rgba(0,0,0,.48)}.modal-backdrop .modal-header{padding:22px 24px;border-bottom:1px solid rgba(94,150,198,.14)}.modal-backdrop #timeOffForm{padding:22px 24px 25px;gap:15px}.modal-backdrop #timeOffForm label{gap:8px;color:#a7bbcd;font-size:.77rem;font-weight:750}.modal-backdrop #timeOffForm input,.modal-backdrop #timeOffForm select,.modal-backdrop #timeOffForm textarea{min-height:46px;border:1px solid rgba(105,157,200,.18);border-radius:13px;background:#020d18}.modal-backdrop #timeOffForm textarea{min-height:105px}.modal-backdrop #timeOffForm>.primary-btn{min-height:48px;margin-top:4px;border-radius:13px}
@media(max-width:1180px){.timeoff-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.request-insight-grid{grid-template-columns:1fr}.request-detail-grid{grid-template-columns:1fr 1fr}.request-detail:last-child{grid-column:1/-1}}
@media(max-width:760px){.timeoff-page{padding:20px 14px 90px}.timeoff-hero{align-items:flex-start;flex-direction:column;padding:23px 20px;border-radius:22px}.timeoff-hero-actions{width:100%;justify-content:space-between}.timeoff-new-request{flex:1}.timeoff-overview{grid-template-columns:1fr 1fr;gap:10px}.timeoff-metric{min-height:112px;padding:15px}.metric-trend{display:none}.workspace-header{align-items:stretch;flex-direction:column;padding:20px}.timeoff-search-wrap{width:100%}.timeoff-list{padding:13px}.request-card-header{align-items:flex-start}.request-detail-grid{grid-template-columns:1fr}.request-detail:last-child{grid-column:auto}.request-insight-grid{grid-template-columns:1fr}.request-card-footer{align-items:flex-start;flex-direction:column}.request-actions{width:100%}.request-action.secondary{flex:1}.blocked-time-section{margin:0 13px 13px}.timeoff-balance-summary{grid-template-columns:1fr!important}.modal-backdrop .modal{width:calc(100vw - 24px);max-height:calc(100vh - 28px);overflow:auto}}
@media(max-width:480px){.timeoff-overview{grid-template-columns:1fr}.request-name-row{align-items:flex-start;flex-direction:column;gap:5px}.request-status{padding:6px 9px}.request-person{align-items:flex-start}.timeoff-request-card{padding:16px}.request-actions{display:grid;grid-template-columns:1fr 42px}.request-action{min-height:42px}}
