:root {
    --ink: #102a35;
    --navy: #123747;
    --navy-2: #0b2835;
    --teal: #138a83;
    --teal-soft: #e0f3f1;
    --coral: #ed765f;
    --coral-soft: #fff0ec;
    --gold: #d99a30;
    --surface: #ffffff;
    --canvas: #f4f7f8;
    --muted: #667b84;
    --line: #dfe7e9;
    --shadow: 0 16px 45px rgba(16, 42, 53, .09);
    --radius: 18px;
    --scheduler-deep: #050b24;
    --scheduler-surface: #081431;
    --scheduler-surface-2: #0c1c3f;
    --scheduler-line: #317f9b;
    --scheduler-accent: #69dce5;
    --scheduler-text: #f4f8ff;
    --scheduler-muted: #c4d2e8;
}

/* Perfil y reporte individual del empleado */
.employee-report-page { --employee-report-section-title:clamp(1.24rem,1.08rem + .45vw,1.45rem); --employee-report-subtitle:.92rem; --employee-report-label:.72rem; --employee-report-value:.9rem; --employee-report-secondary:.68rem; --employee-report-body:.76rem; display:grid; width:min(1180px,100%); margin:0 auto; gap:1rem; }
.employee-report-hero { display:flex; padding:1.15rem; align-items:center; justify-content:space-between; gap:1rem; border:1px solid #d7e6eb; border-radius:20px; background:linear-gradient(135deg,#f7fbfd,#edf7fa); box-shadow:0 12px 30px rgba(14,55,76,.08); }
.employee-report-person { display:flex; min-width:0; align-items:center; gap:1rem; }
.employee-report-avatar { width:76px; height:76px; flex:0 0 76px; object-fit:cover; border:3px solid #fff; border-radius:22px; box-shadow:0 8px 22px rgba(11,55,76,.16); }
.employee-report-avatar.is-placeholder { display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--teal),#1b7897); font-size:1.65rem; font-weight:900; }
.employee-report-person h1 { margin:0; color:#0d2947; font-size:clamp(1.45rem,3vw,2rem); }
.employee-report-person p:last-child { margin:.28rem 0 0; color:#58717d; font-size:.78rem; font-weight:700; }
.employee-report-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; }
.employee-report-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.employee-report-period { display:grid; padding:1rem; gap:.75rem; border:1px solid #dfe9ec; border-radius:18px; background:#fff; }
.employee-report-period-heading span,.employee-report-info-grid span { display:block; color:#6d838d; font-size:var(--employee-report-label); font-weight:800; line-height:1.3; letter-spacing:.045em; text-transform:uppercase; }
.employee-report-period-heading strong { display:block; margin-top:.18rem; color:#173d57; font-size:.88rem; }
.employee-report-period-presets { display:flex; min-width:0; flex-wrap:wrap; gap:.4rem; }
.employee-report-period-presets>a,.employee-report-week-arrows a { display:inline-flex; min-height:38px; padding:.45rem .72rem; align-items:center; justify-content:center; color:#244f64; border:1px solid #cfe0e6; border-radius:10px; background:#f7fbfc; font-size:.7rem; font-weight:800; text-decoration:none; }
.employee-report-period-presets>a:hover,.employee-report-period-presets>a:focus-visible,.employee-report-week-arrows a:hover,.employee-report-week-arrows a:focus-visible,.employee-report-period-presets>a.is-active { color:#fff; border-color:#126d78; background:#126d78; }
.employee-report-week-arrows { display:inline-flex; gap:.22rem; }
.employee-report-week-arrows a { width:38px; padding:0; font-size:1rem; }
.employee-report-custom-period { display:grid; grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto; align-items:end; gap:.55rem; }
.employee-report-custom-period label { color:#536e7b; font-size:.65rem; font-weight:800; }
.employee-report-custom-period .form-control { min-height:40px; margin-top:.25rem; }
.employee-report-section-nav { display:flex; padding:.38rem; flex-wrap:wrap; gap:.18rem; border:1px solid #d9e6ea; border-radius:14px; background:#f4f9fa; }
.employee-report-section-nav::-webkit-scrollbar { display:none; }
.employee-report-section-nav a { flex:0 0 auto; padding:.5rem .7rem; color:#315869; border-radius:9px; font-size:.67rem; font-weight:850; text-decoration:none; }
.employee-report-section-nav a:hover,.employee-report-section-nav a:focus-visible { color:#0b716d; background:#fff; }
.employee-report-section { padding:1rem; border:1px solid #dce7ea; border-radius:18px; background:#fff; box-shadow:0 7px 20px rgba(16,55,70,.045); scroll-margin-top:84px; }
.employee-report-section-heading { display:flex; margin-bottom:.9rem; align-items:center; justify-content:space-between; gap:.75rem; }
.employee-report-section-heading>div { min-width:0; }
.employee-report-section-heading h2,.employee-report-attendance h2 { margin:0; color:#123451; font-size:var(--employee-report-section-title); line-height:1.2; letter-spacing:-.012em; }
.employee-report-section-heading .eyebrow,.employee-report-attendance .eyebrow { margin-bottom:.38rem; font-size:.76rem; line-height:1.3; }
.employee-report-section-heading .btn { font-size:.875rem; line-height:1.25; }
.employee-report-section-heading>strong { color:#0b7b75; font-size:.83rem; }
.employee-report-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.7rem; }
.employee-report-summary-grid article { min-width:0; padding:.85rem; border:1px solid #e0eaed; border-radius:14px; background:#f9fcfd; }
.employee-report-summary-grid article.is-warning { border-color:#efd38e; background:#fff8e5; }
.employee-report-summary-grid article.is-complete { border-color:#a9d9ce; background:#eef9f5; }
.employee-report-summary-grid span { display:block; min-height:2.1em; color:#607983; font-size:.64rem; font-weight:800; }
.employee-report-summary-grid strong { display:block; margin-top:.3rem; color:#14364f; font-size:1.12rem; }
.employee-report-summary-grid small { display:block; margin-top:.25rem; overflow:hidden; color:#6d8189; font-size:.58rem; line-height:1.35; text-overflow:ellipsis; }
.employee-report-week-chart { margin-top:.85rem; padding:.85rem; border:1px solid #e0eaed; border-radius:15px; background:#fbfdfe; }
.employee-report-chart-heading { display:flex; align-items:center; justify-content:space-between; gap:.5rem; }
.employee-report-chart-heading h3 { margin:0; color:#24485c; font-size:.78rem; }
.employee-report-chart-heading span { color:#748992; font-size:.62rem; }
.employee-report-bars { display:grid; height:170px; margin-top:.7rem; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.45rem; }
.employee-report-bar { display:grid; min-width:0; grid-template-rows:18px 1fr 34px; align-items:end; text-align:center; }
.employee-report-bar>strong { color:#345d6d; font-size:.59rem; }
.employee-report-bar>div { position:relative; height:100%; overflow:hidden; border-radius:7px 7px 4px 4px; background:#edf3f5; }
.employee-report-bar>div span { position:absolute; right:0; bottom:0; left:0; min-height:0; border-radius:7px 7px 3px 3px; background:linear-gradient(180deg,#4ec3cb,#127b83); }
.employee-report-bar small { display:block; padding-top:.25rem; color:#506e79; font-size:.57rem; font-weight:800; }
.employee-report-bar small b { display:block; margin-top:.1rem; color:#809199; font-size:.52rem; }
.employee-report-shift-list,.employee-report-change-list { display:grid; gap:.55rem; }
.employee-report-shift-list>article { display:grid; padding:.72rem; grid-template-columns:58px minmax(0,1fr) auto; align-items:center; gap:.75rem; border:1px solid #e0eaed; border-radius:14px; background:#fbfdfe; }
.employee-report-shift-date { display:grid; min-height:52px; place-content:center; border-radius:11px; background:#eaf5f7; text-align:center; }
.employee-report-shift-date span { color:#3a7885; font-size:.58rem; font-weight:900; text-transform:uppercase; }
.employee-report-shift-date strong { color:#153c55; font-size:.8rem; }
.employee-report-shift-main strong,.employee-report-shift-main span,.employee-report-shift-main small { display:block; }
.employee-report-shift-main strong { color:#17384f; font-size:.8rem; }
.employee-report-shift-main span { margin-top:.16rem; color:#32616e; font-size:.68rem; font-weight:750; }
.employee-report-shift-main small { margin-top:.14rem; color:#748991; font-size:.6rem; }
.employee-report-shift-status { display:grid; justify-items:end; gap:.22rem; text-align:right; }
.employee-report-shift-status small { max-width:150px; color:#9a6415; font-size:.57rem; font-weight:750; }
.employee-report-change-list article { display:grid; padding:.8rem; grid-template-columns:minmax(0,1fr) auto minmax(210px,.5fr); align-items:center; gap:.75rem; border:1px solid #e1eaed; border-radius:14px; }
.employee-report-change-list p { margin:.25rem 0; color:#244d5d; font-size:.72rem; font-weight:800; }
.employee-report-change-list small { color:#74868e; font-size:.59rem; }
.employee-report-change-list dl { display:grid; margin:0; grid-template-columns:1fr 1fr; gap:.5rem; }
.employee-report-change-list dl div { min-width:0; }
.employee-report-change-list dt { color:#80929a; font-size:.55rem; }
.employee-report-change-list dd { margin:.12rem 0 0; color:#405d69; font-size:.59rem; font-weight:750; }
.employee-report-availability-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:.45rem; }
.employee-report-availability-grid article { min-width:0; padding:.65rem; border:1px solid #e1eaed; border-radius:12px; background:#fbfdfe; }
.employee-report-availability-grid article>strong { display:block; margin-bottom:.35rem; color:#20485b; font-size:.8rem; line-height:1.3; }
.employee-report-availability-grid article span,.employee-report-availability-grid article small { display:block; margin-top:.2rem; padding:.28rem; overflow-wrap:anywhere; color:#57717b; border-radius:7px; background:#eef4f5; font-size:.65rem; line-height:1.4; }
.employee-report-availability-grid article span.type-unavailable { color:#87483e; background:#fff0ed; }
.employee-report-availability-grid article span.type-preferred { color:#157068; background:#e9f8f4; }
.employee-report-subsection { margin-top:.9rem; padding-top:.8rem; border-top:1px solid #e8eff1; }
.employee-report-subsection h3,.employee-report-transfer-history h3 { margin:0 0 .55rem; color:#315767; font-size:var(--employee-report-subtitle); line-height:1.3; }
.employee-report-timeoff-list { display:grid; gap:.4rem; }
.employee-report-timeoff-list article { display:flex; padding:.62rem .7rem; align-items:center; justify-content:space-between; gap:.6rem; border:1px solid #e2eaed; border-radius:11px; }
.employee-report-timeoff-list article strong,.employee-report-timeoff-list article span { display:block; font-size:var(--employee-report-body); line-height:1.35; }
.employee-report-timeoff-list article div>span { margin-top:.12rem; color:#70858e; }
.employee-report-info-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.6rem; }
.employee-report-info-grid article { min-width:0; padding:.8rem; border:1px solid #e0e9ec; border-radius:13px; background:#f9fcfd; }
.employee-report-info-grid strong,.employee-report-info-grid small { display:block; }
.employee-report-info-grid strong { margin-top:.32rem; overflow-wrap:anywhere; color:#1e4659; font-size:var(--employee-report-value); line-height:1.3; }
.employee-report-info-grid small { margin-top:.18rem; overflow-wrap:anywhere; color:#73878f; font-size:var(--employee-report-secondary); line-height:1.45; }
.employee-report-transfer-history { margin-top:.85rem; }
.employee-report-transfer-history article { display:flex; padding:.55rem 0; align-items:center; justify-content:space-between; gap:.7rem; border-top:1px solid #e8eff1; }
.employee-report-transfer-history article>div { min-width:0; flex:1 1 auto; }
.employee-report-transfer-history article div strong,.employee-report-transfer-history article div span { display:block; }
.employee-report-transfer-history article strong { overflow-wrap:anywhere; color:#294f60; font-size:.82rem; line-height:1.35; }
.employee-report-transfer-history article span,.employee-report-transfer-history article small { color:#738891; font-size:var(--employee-report-secondary); line-height:1.4; }
.employee-report-transfer-history article>small { flex:0 0 auto; text-align:right; }
.employee-report-administration { margin-top:.9rem; overflow:hidden; border:1px solid #dce7ea; border-radius:14px; }
.employee-report-administration>summary { display:flex; padding:.78rem; align-items:center; justify-content:space-between; gap:.65rem; list-style:none; cursor:pointer; background:#f4f9fa; }
.employee-report-administration>summary>span { min-width:0; }
.employee-report-administration>summary::-webkit-details-marker { display:none; }
.employee-report-administration>summary strong,.employee-report-administration>summary small { display:block; }
.employee-report-administration>summary strong { color:#21495b; font-size:.86rem; line-height:1.3; }
.employee-report-administration>summary small { margin-top:.15rem; color:#71868e; font-size:var(--employee-report-secondary); line-height:1.4; }
.employee-report-administration>summary i { color:#247b83; font-style:normal; }
.employee-report-administration[open]>summary i { transform:rotate(180deg); }
.employee-report-administration>div { padding:.9rem; border-top:1px solid #dfe9ec; }
.employee-report-administration .detail-grid { margin-top:0; }
.employee-report-administration .detail-card h3 { font-size:1.08rem; line-height:1.25; }
.employee-report-administration .detail-list dt { font-size:var(--employee-report-label); line-height:1.35; }
.employee-report-administration .detail-list dd { font-size:var(--employee-report-value); line-height:1.4; }
.employee-report-administration .detail-list dd small,.employee-report-administration .assigned-position-list small { font-size:var(--employee-report-secondary); line-height:1.4; }
.employee-report-administration .assigned-position-list strong { font-size:.86rem; line-height:1.35; }
.employee-report-empty { padding:1rem; color:#71858d; border:1px dashed #cfdde1; border-radius:12px; background:#fafcfd; font-size:var(--employee-report-body); line-height:1.5; text-align:center; }
.employee-report-empty.is-compact { margin:0; padding:.7rem; }
.employee-report-attendance { display:flex; align-items:center; justify-content:space-between; gap:1rem; border-style:dashed; background:linear-gradient(135deg,#f7fafb,#eef5f6); }
.employee-report-attendance p:last-child { max-width:760px; margin:.35rem 0 0; color:#687f88; font-size:var(--employee-report-body); line-height:1.55; }
.employee-report-attendance>span { flex:0 0 auto; padding:.4rem .65rem; color:#587681; border:1px solid #c7d9de; border-radius:999px; background:#fff; font-size:.7rem; font-weight:850; line-height:1.25; text-transform:uppercase; }

@media(max-width:991.98px){
    .employee-report-summary-grid,.employee-report-info-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .employee-report-availability-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767.98px){
    .employee-report-page { gap:.75rem; }
    .employee-report-hero { padding:.9rem; align-items:stretch; flex-direction:column; }
    .employee-report-avatar { width:64px; height:64px; flex-basis:64px; border-radius:18px; }
    .employee-report-actions { justify-content:stretch; }
    .employee-report-actions .btn { flex:1 1 0; min-height:44px; }
    .employee-report-period,.employee-report-section { padding:.8rem; border-radius:15px; }
    .employee-report-section-heading { align-items:flex-start; flex-wrap:wrap; }
    .employee-report-section-heading>div { flex:1 1 240px; }
    .employee-report-custom-period { grid-template-columns:1fr 1fr; }
    .employee-report-custom-period .btn { min-height:44px; grid-column:1/-1; }
    .employee-report-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.45rem; }
    .employee-report-summary-grid article { padding:.7rem; }
    .employee-report-shift-list>article { grid-template-columns:52px minmax(0,1fr); gap:.55rem; }
    .employee-report-shift-status { grid-column:2; justify-items:start; text-align:left; }
    .employee-report-change-list article { grid-template-columns:minmax(0,1fr) auto; gap:.55rem; }
    .employee-report-change-list dl { grid-column:1/-1; }
    .employee-report-info-grid,.employee-report-availability-grid { grid-template-columns:1fr; }
    .employee-report-attendance { align-items:flex-start; flex-direction:column; }
    .employee-report-administration>div { padding:.65rem; }
    .employee-report-administration .detail-grid { grid-template-columns:1fr; }
}
@media(max-width:420px){
    .employee-report-person { align-items:flex-start; }
    .employee-report-title-row { align-items:flex-start; flex-direction:column; }
    .employee-report-period-presets>a { flex:1 1 calc(50% - .4rem); }
    .employee-report-week-arrows { flex:1 1 100%; }
    .employee-report-week-arrows a { flex:1 1 0; }
    .employee-report-summary-grid { grid-template-columns:1fr; }
    .employee-report-custom-period { grid-template-columns:1fr; }
    .employee-report-custom-period .btn { grid-column:auto; }
    .employee-report-section-heading .btn { width:100%; }
    .employee-report-bars { gap:.25rem; }
}

* { box-sizing: border-box; }

body {
    margin: 0;
    color: var(--ink);
    background: var(--canvas);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--teal); }

.btn-primary {
    --bs-btn-bg: var(--teal);
    --bs-btn-border-color: var(--teal);
    --bs-btn-hover-bg: #0f746e;
    --bs-btn-hover-border-color: #0f746e;
    --bs-btn-active-bg: #0c625d;
    --bs-btn-active-border-color: #0c625d;
    border-radius: 12px;
    font-weight: 700;
}

.btn-outline-primary {
    --bs-btn-color: var(--teal);
    --bs-btn-border-color: #9ecfcb;
    --bs-btn-hover-bg: var(--teal);
    --bs-btn-hover-border-color: var(--teal);
    border-radius: 10px;
    font-weight: 650;
}

.form-control {
    border-color: #cbd8dc;
    border-radius: 12px;
    color: var(--ink);
}

.form-control:focus {
    border-color: var(--teal);
    box-shadow: 0 0 0 .25rem rgba(19, 138, 131, .13);
}

.alert { border: 0; border-radius: 12px; font-size: .93rem; }
.alert-danger { color: #8d3226; background: var(--coral-soft); }
.alert-success { color: #0e615c; background: var(--teal-soft); }

.brand-logo { display: inline-flex; min-width: 0; align-items: center; gap: .8rem; }
.brand-logo__surface { display: block; flex: 0 0 auto; padding: 0; overflow: visible; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.brand-logo__image { display: block; width: 100%; height: auto; aspect-ratio: 569 / 428; object-fit: contain; }
.brand-logo__copy { display: block; min-width: 0; }
.brand-logo__copy strong,.brand-logo__copy small { display: block; }
.brand-logo__copy strong { font-size: 1.08rem; letter-spacing: -.02em; }
.brand-logo__copy small { margin-top: .08rem; color: var(--muted); font-size: .7rem; line-height: 1.25; }
.brand-logo--compact .brand-logo__surface { width: 60px; }
.brand-logo--compact .brand-logo__image { filter: drop-shadow(0 4px 8px rgba(16,42,53,.14)); }
.brand-logo--sidebar { width: 100%; }
.brand-logo--sidebar .brand-logo__surface { width: 48px; }
.brand-logo--sidebar .brand-logo__image { filter: drop-shadow(0 4px 9px rgba(0,0,0,.28)); }
.brand-logo--sidebar .brand-logo__copy strong { color: #fff; font-size: 1.08rem; }
.brand-logo--sidebar .brand-logo__copy small { color: #829da8; font-size: .65rem; }
.brand-logo--login { position: relative; z-index: 1; flex-direction: column; align-items: flex-start; gap: .5rem; }
.brand-logo--login .brand-logo__surface { width: clamp(145px, 15vw, 190px); }
.brand-logo--login .brand-logo__image { filter: drop-shadow(0 10px 18px rgba(0,0,0,.3)); }
.brand-logo--login .brand-logo__copy strong { color: #fff; font-size: 1.16rem; }
.brand-logo--login .brand-logo__copy small { color: #9fb7c1; font-size: .7rem; letter-spacing: .025em; }
.brand-logo--header { flex-direction: column; gap: .45rem; }
.brand-logo--header .brand-logo__surface { width: 96px; }
.brand-logo--header .brand-logo__image { filter: drop-shadow(0 5px 10px rgba(16,42,53,.14)); }
.brand-logo--header .brand-logo__copy { text-align: center; }
.brand-logo--print .brand-logo__surface { width: 120px; }
.eyebrow { margin: 0 0 .45rem; color: var(--teal); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.text-coral { color: var(--coral) !important; }

/* Acceso */
.auth-body { min-height: 100vh; background: #fff; }
.auth-shell { display: grid; min-height: 100vh; }
.auth-brand-panel { display: none; }
.auth-form-panel { display: grid; align-items: center; padding: 2rem 1.25rem; }
.auth-card { width: min(100%, 440px); margin: auto; }
.mobile-brand { display: flex; }
.mobile-brand .brand-logo__surface { width: 62px; }
.mobile-brand .brand-logo__copy strong { font-size: 1.12rem; }
.mobile-brand .brand-logo__copy small { font-size: .67rem; }
.auth-heading h2 { margin-bottom: .5rem; font-size: clamp(1.75rem, 5vw, 2.35rem); font-weight: 780; letter-spacing: -.04em; }
.auth-heading > p:last-child { margin-bottom: 2rem; color: var(--muted); }
.auth-form .form-label { color: #294550; font-size: .87rem; font-weight: 700; }
.auth-form .form-control-lg { min-height: 52px; font-size: 1rem; }
.auth-form .btn-lg { min-height: 52px; font-size: 1rem; }
.password-wrap { position: relative; }
.password-wrap .form-control { padding-right: 5rem; }
.password-toggle { position: absolute; top: 50%; right: .7rem; border: 0; color: var(--teal); background: transparent; font-size: .8rem; font-weight: 800; transform: translateY(-50%); }
.auth-help { margin: 1.7rem 0 0; color: var(--muted); font-size: .82rem; text-align: center; }

/* Aplicación */
.app-frame { min-height: 100vh; }
.sidebar {
    position: fixed;
    z-index: 1040;
    inset: 0 auto 0 0;
    display: flex;
    width: min(86vw, 280px);
    padding: 1.35rem 1rem;
    flex-direction: column;
    color: #d6e2e6;
    background: var(--navy-2);
    transform: translateX(-100%);
    transition: transform .24s ease;
}
.sidebar-open .sidebar { transform: translateX(0); }
.sidebar-backdrop { position: fixed; z-index: 1030; inset: 0; visibility: hidden; background: rgba(4, 20, 28, .48); opacity: 0; transition: .24s ease; }
.sidebar-open .sidebar-backdrop { visibility: visible; opacity: 1; }
.sidebar-brand { display: flex; align-items: center; margin: 0 .3rem 1.45rem; color: #fff; text-decoration: none; }
.nav-label { margin: 0 .7rem .7rem; color: #6f909d; font-size: .66rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sidebar-nav { display: grid; gap: .35rem; }
.nav-item { display: flex; min-height: 46px; padding: .65rem .8rem; align-items: center; gap: .75rem; border-radius: 11px; color: #bdd0d7; font-size: .9rem; font-weight: 650; text-decoration: none; transition: .18s ease; }
.nav-item:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-item.active { color: #fff; background: rgba(19, 138, 131, .27); box-shadow: inset 3px 0 var(--teal); }
.nav-item.disabled { cursor: default; opacity: .55; }
.nav-item small { margin-left: auto; font-size: .58rem; }
.nav-icon { display: inline-grid; width: 25px; height: 25px; place-items: center; color: #6bc2bd; font-size: 1.2rem; }
.owner-operations-nav { margin-top: .85rem; padding-top: .8rem; border-top: 1px solid rgba(255,255,255,.09); }
.owner-operations-toggle { display: flex; width: 100%; min-height: 46px; padding: .65rem .8rem; align-items: center; justify-content: space-between; border: 0; border-radius: 11px; color: #91aab4; background: transparent; font-size: .82rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.owner-operations-toggle:hover,.owner-operations-toggle:focus-visible { color: #fff; background: rgba(255,255,255,.06); }
.owner-operations-toggle:focus-visible { outline: 3px solid rgba(107,194,189,.45); outline-offset: 2px; }
.owner-operations-toggle span:last-child { font-size: 1.1rem; transition: transform .18s ease; }
.owner-operations-toggle[aria-expanded="true"] span:last-child { transform: rotate(180deg); }
.owner-operations-links { display: grid; gap: .2rem; }
.owner-operations-links[hidden] { display: none; }
.sidebar-user { display: flex; margin-top: auto; padding: 1rem .35rem 0; align-items: center; gap: .65rem; border-top: 1px solid rgba(255,255,255,.09); }
.sidebar-profile-link { display: flex; min-width: 0; flex: 1; align-items: center; gap: .65rem; color: inherit; text-decoration: none; }
.sidebar-profile-link:hover .user-copy strong { color: #74d4cf; }
.user-avatar { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 50%; color: #fff; background: var(--teal); font-weight: 800; }
.user-copy { min-width: 0; flex: 1; }
.user-copy strong, .user-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-copy strong { color: #fff; font-size: .78rem; }
.user-copy small { color: #819ca7; font-size: .68rem; }
.logout-button { border: 0; color: #8fa9b3; background: transparent; font-size: 1.2rem; }
.topbar { display: flex; min-height: 82px; padding: 1rem; align-items: center; gap: .8rem; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.9); }
.topbar-kicker { display: none; }
.topbar h1 { margin: 0; font-size: 1.2rem; font-weight: 780; }
.menu-button { display: grid; width: 42px; height: 42px; flex: 0 0 auto; place-items: center; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: #fff; font-size: 1.2rem; }
.content-area { width: min(100%, 1500px); margin: auto; padding: 1.25rem 1rem 2rem; }
.welcome-panel, .section-intro { display: flex; margin-bottom: 1.4rem; align-items: flex-end; justify-content: space-between; gap: 1rem; }
.welcome-panel h2, .section-intro h2 { margin: 0; font-size: clamp(1.65rem, 4vw, 2.25rem); font-weight: 780; letter-spacing: -.04em; }
.welcome-panel p:last-child, .section-intro p:last-child { margin: .35rem 0 0; color: var(--muted); }
.today-pill { display: none; padding: .65rem 1rem; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.today-pill span, .today-pill strong { display: block; }
.today-pill span { color: var(--muted); font-size: .66rem; text-transform: uppercase; }
.today-pill strong { font-size: .85rem; }
.page-modern .welcome-panel .today-pill {
    display: grid;
    min-width: 142px;
    flex: 0 0 auto;
    padding: .8rem 1rem .85rem;
    gap: .25rem;
    border-color: rgba(173,232,238,.28);
    border-radius: 16px;
    color: #f4feff;
    background: linear-gradient(135deg,rgba(8,35,70,.78),rgba(19,77,104,.72));
    box-shadow: inset 0 1px 0 rgba(255,255,255,.1),0 10px 22px rgba(1,15,39,.18);
    backdrop-filter: blur(10px);
}
.page-modern .welcome-panel .today-pill-label {
    color: #9fe8eb;
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .14em;
    line-height: 1.1;
    text-transform: uppercase;
}
.page-modern .welcome-panel .today-pill-date {
    color: #fff;
    font-size: .98rem;
    font-variant-numeric: tabular-nums;
    font-weight: 780;
    letter-spacing: .01em;
    line-height: 1.2;
    white-space: nowrap;
}
.stat-card { display: flex; height: 100%; min-height: 118px; padding: 1.25rem; align-items: center; gap: 1rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface); box-shadow: 0 7px 25px rgba(16,42,53,.045); }
.stat-icon { display: grid; width: 48px; height: 48px; flex: 0 0 auto; place-items: center; border-radius: 14px; font-size: 1.45rem; }
.tone-teal { color: var(--teal); background: var(--teal-soft); }
.tone-navy { color: var(--navy); background: #e3edf1; }
.tone-coral { color: var(--coral); background: var(--coral-soft); }
.tone-gold { color: var(--gold); background: #fff4db; }
.stat-card p { margin: 0 0 .15rem; color: var(--muted); font-size: .78rem; font-weight: 650; }
.stat-card strong { font-size: 1.75rem; line-height: 1; }
.dashboard-grid { display: grid; margin-top: 1rem; gap: 1rem; }
.content-card { padding: 1.35rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.content-card h3 { margin: 0; font-size: 1.1rem; font-weight: 750; }
.card-heading { display: flex; margin-bottom: .8rem; align-items: center; justify-content: space-between; gap: 1rem; }
.phase-card { color: #fff; border: 0; background: linear-gradient(135deg, var(--navy), var(--navy-2)); }
.phase-card .eyebrow { color: #76d0cb; }
.phase-card p { color: #b8ccd4; font-size: .88rem; }
.phase-progress { height: 6px; margin: 1.2rem 0 .55rem; overflow: hidden; border-radius: 99px; background: rgba(255,255,255,.13); }
.phase-progress span { display: block; width: 32%; height: 100%; border-radius: inherit; background: var(--coral); }
.phase-card small { color: #8ea8b3; }
.count-badge { flex: 0 0 auto; padding: .55rem .85rem; border-radius: 99px; color: var(--teal); background: var(--teal-soft); font-size: .76rem; font-weight: 800; }
.owner-operational-mode { display: flex; margin: 0 0 1rem; padding: .9rem 1rem; align-items: center; justify-content: space-between; gap: 1rem; border: 1px solid #cbd8dc; border-radius: 15px; background: #fff; }
.owner-operational-mode.is-active { border-color: #91ccc7; background: #f3fbfa; }
.owner-operational-mode > div { min-width: 0; }
.owner-operational-mode p { margin: .35rem 0 0; color: var(--muted); font-size: .86rem; line-height: 1.45; }
.owner-mode-badge { display: inline-flex; padding: .32rem .65rem; border-radius: 99px; color: #405b65; background: #e9eff1; font-size: .8rem; font-weight: 800; }
.owner-operational-mode.is-active .owner-mode-badge { color: #0c716b; background: var(--teal-soft); }
.owner-operational-mode form { flex: 0 0 auto; }
.owner-operational-mode .btn { min-height: 44px; font-size: .9rem; white-space: nowrap; }
.owner-mode-dialog .confirm-dialog-card { width: min(100%,520px); }
.owner-mode-dialog .confirm-dialog-card > p { font-size: .94rem; line-height: 1.55; }
@media (max-width: 575.98px) {
    .owner-operational-mode { align-items: stretch; flex-direction: column; }
    .owner-operational-mode form,.owner-operational-mode .btn { width: 100%; }
}
.location-card { position: relative; height: 100%; min-height: 220px; padding: 1.3rem; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 7px 25px rgba(16,42,53,.04); }
.location-card::after { position: absolute; right: -55px; bottom: -65px; width: 160px; height: 160px; border: 25px solid var(--teal-soft); border-radius: 50%; content: ""; }
.location-topline { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; }
.location-code { color: var(--muted); font-size: .7rem; font-weight: 800; letter-spacing: .12em; }
.status-badge { padding: .34rem .65rem; border-radius: 99px; font-size: .7rem; font-weight: 800; }
.status-badge.active { color: #0c716b; background: var(--teal-soft); }
.status-badge.inactive { color: #7e4f4a; background: var(--coral-soft); }
.status-badge.warning { color: #87631f; background: #fff0c8; }
.rate-status-link { display: inline-flex; text-decoration: none; }
.rate-status-link:hover,.rate-status-link:focus-visible { color: #6f4d0f; box-shadow: 0 0 0 2px #e6bf69; }
.rate-status-link.active:hover,.rate-status-link.active:focus-visible { color:#08766f; box-shadow:0 0 0 2px #72c7c0; }
#compensacion-privada { scroll-margin-top:1rem; }
#compensacion-privada:target { box-shadow:0 0 0 3px rgba(19,138,131,.2),0 12px 28px rgba(19,138,131,.08); }
.location-pin { display: grid; width: 42px; height: 42px; margin: 1.15rem 0 .9rem; place-items: center; border-radius: 12px; color: var(--coral); background: var(--coral-soft); font-size: 1.25rem; }
.location-card h3 { position: relative; z-index: 1; margin: 0 0 .4rem; font-size: 1.05rem; font-weight: 780; }
.location-card p { position: relative; z-index: 1; margin: 0; color: var(--muted); font-size: .88rem; }
.location-admin-heading { align-items: center; gap: 1rem; }
.location-filter { display:flex; padding:1rem; align-items:end; gap:.75rem; }
.location-filter .form-label { margin:0; }
.location-filter .form-select { width:min(100%,260px); }
.location-filter .count-badge { margin-left:auto; }
.location-admin-card { display:flex; min-height:285px; flex-direction:column; }
.location-admin-card.is-inactive { background:#fafbfb; }
.location-timezone { margin-top:.65rem!important; font-size:.75rem!important; }
.location-actions { position:relative; z-index:2; display:flex; margin-top:auto; padding-top:1rem; gap:.55rem; }
.location-actions .btn { min-height:40px; }
.location-state-dialog { text-align:left; }
.location-state-dialog h3,.location-state-dialog>p { text-align:center; }
.location-dependency-list { display:grid; margin:1rem 0; gap:.45rem; }
.location-dependency-list div { display:flex; padding:.45rem .55rem; justify-content:space-between; gap:1rem; border-radius:8px; background:#f4f7f7; }
.location-dependency-list dt { color:#405b65; font-size:.74rem; }
.location-dependency-list dd { margin:0; font-weight:800; }
.location-form { max-width:900px; }
.location-active-check { min-height:48px; padding:.7rem .8rem; border:1px solid var(--line); border-radius:10px; }
@media(max-width:575.98px){.location-admin-heading{align-items:stretch}.location-admin-heading .btn{width:100%}.location-filter{align-items:stretch;flex-direction:column}.location-filter .form-select{width:100%}.location-filter .count-badge{margin-left:0;align-self:flex-start}.location-actions .btn{flex:1}}
.profile-admin-heading{align-items:center;gap:1rem}.profile-card-grid{display:grid;gap:1rem}.manager-profile-card{display:flex;min-width:0;flex-direction:column}.manager-profile-card.is-inactive{opacity:.72}.profile-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.profile-card-heading h3{margin:.5rem 0 0;font-size:1.05rem}.manager-profile-card>p{margin:.8rem 0;color:var(--muted)}.profile-manager-count{font-size:.78rem}.profile-permission-pills{display:flex;margin-top:.8rem;flex-wrap:wrap;gap:.35rem}.profile-permission-pills span{padding:.26rem .48rem;border-radius:99px;color:#32666a;background:var(--teal-soft);font-size:.65rem;font-weight:750}.profile-form{max-width:980px}.permission-groups{display:grid;margin-top:1.25rem;gap:1rem}.permission-groups section{padding:1rem;border:1px solid var(--line);border-radius:13px}.permission-groups h3{margin:0 0 .7rem;font-size:.9rem}.permission-option{display:flex;padding:.65rem 0;align-items:flex-start;gap:.65rem;border-top:1px solid #edf1f2}.permission-option:first-of-type{border-top:0}.permission-option strong,.permission-option small{display:block}.permission-option strong{font-size:.8rem}.permission-option small{margin-top:.15rem;color:var(--muted);font-size:.68rem;line-height:1.4}@media(min-width:768px){.profile-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:1200px){.profile-card-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.empty-state { padding: 3rem; border: 1px dashed #b8c8cd; border-radius: var(--radius); color: var(--muted); background: #fff; text-align: center; }

/* Errores */
.error-body { display: grid; min-height: 100vh; padding: 1.5rem; place-items: center; background: var(--canvas); }
.error-card { width: min(100%, 520px); padding: 2.5rem 2rem; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow); text-align: center; }
.error-brand { margin: auto; }
.error-code { margin: 1.4rem 0 .2rem; color: var(--coral); font-size: .75rem; font-weight: 900; letter-spacing: .18em; }
.error-card h1 { font-size: 1.7rem; }
.error-card > p:not(.error-code) { color: var(--muted); }
.error-link { display: inline-block; margin-top: .8rem; font-weight: 800; text-decoration: none; }

@media (min-width: 768px) {
    .content-area { padding: 1.75rem 2rem 3rem; }
    .topbar { padding: 1rem 2rem; }
    .today-pill { display: block; }
    .dashboard-grid { grid-template-columns: minmax(0, 1.5fr) minmax(280px, .75fr); margin-top: 1.5rem; gap: 1.5rem; }
    .content-card { padding: 1.6rem; }
}

@media (min-width: 992px) {
    .auth-shell { grid-template-columns: minmax(390px, .9fr) minmax(500px, 1.1fr); }
    .auth-brand-panel { position: relative; display: flex; padding: clamp(3rem, 7vw, 7rem); overflow: hidden; flex-direction: column; justify-content: center; color: #fff; background: linear-gradient(145deg, var(--navy-2), var(--navy)); }
    .auth-brand-panel::before { position: absolute; top: -180px; right: -180px; width: 480px; height: 480px; border: 70px solid rgba(19,138,131,.16); border-radius: 50%; content: ""; }
    .auth-brand-panel h1 { position: relative; z-index: 1; max-width: 560px; margin: 1.45rem 0 0; font-size: clamp(2.6rem, 5vw, 4.8rem); font-weight: 780; letter-spacing: -.055em; line-height: 1.02; }
    .auth-brand-copy { max-width: 510px; margin-top: 1.5rem; color: #b8ccd4; font-size: 1.02rem; line-height: 1.7; }
    .wave-lines { display: flex; margin-top: 3rem; align-items: center; gap: .45rem; }
    .wave-lines span { display: block; width: 55px; height: 3px; border-radius: 99px; background: var(--coral); }
    .wave-lines span:nth-child(2) { width: 30px; opacity: .65; }
    .wave-lines span:nth-child(3) { width: 12px; opacity: .35; }
    .auth-form-panel { padding: 4rem; }
    .mobile-brand { display: none; }
    .sidebar { width: 270px; transform: none; }
    .sidebar-backdrop, .menu-button { display: none; }
    .app-main { margin-left: 270px; }
    .topbar { min-height: 94px; }
    .topbar-kicker { display: block; margin: 0 0 .1rem; color: var(--muted); font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
    .topbar h1 { font-size: 1.45rem; }
    .sidebar.is-collapsed .sidebar-brand,.sidebar-collapsed .sidebar-brand { justify-content: center; margin-inline: 0; }
    .sidebar.is-collapsed .brand-logo--sidebar,.sidebar-collapsed .brand-logo--sidebar { justify-content: center; }
    .sidebar.is-collapsed .brand-logo--sidebar .brand-logo__copy,.sidebar-collapsed .brand-logo--sidebar .brand-logo__copy { display: none; }
}

@media (max-width: 575.98px) {
    .brand-logo--sidebar .brand-logo__surface { width: 44px; }
    .brand-logo--sidebar .brand-logo__copy strong { font-size: 1.02rem; }
    .brand-logo--login .brand-logo__surface { width: min(48vw, 170px); }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Catálogo de empleados */
.page-actions-bar { display: flex; margin-bottom: 1.4rem; align-items: center; justify-content: space-between; gap: 1rem; }
.page-actions-bar h2 { margin: .25rem 0 0; font-size: clamp(1.55rem, 4vw, 2rem); font-weight: 780; letter-spacing: -.035em; }
.page-actions-bar p { margin: .2rem 0 0; color: var(--muted); }
.employee-detail-hero { display:flex; align-items:flex-end; justify-content:space-between; gap:1.5rem; margin-bottom:1.35rem; padding:.25rem 0 .4rem; }
.employee-detail-identity .back-link { display:inline-block; margin-bottom:.8rem; }
.employee-detail-identity .eyebrow { margin:0 0 .28rem; }
.employee-detail-title-row { display:flex; align-items:center; flex-wrap:wrap; gap:.75rem; }
.employee-detail-title-row h1 { margin:0; font-size:clamp(2.25rem,4vw,3.35rem); line-height:1; letter-spacing:-.055em; font-weight:820; color:var(--navy); }
.employee-detail-summary { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; margin:.65rem 0 0; color:var(--muted); font-size:.95rem; }
.employee-detail-summary span { color:var(--teal); font-weight:800; }
.employee-detail-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.65rem; }
@media (max-width: 767px) { .employee-detail-hero { align-items:flex-start; flex-direction:column; } .employee-detail-actions { width:100%; justify-content:flex-start; } .employee-detail-title-row h1 { font-size:2.25rem; } }
.back-link { color: var(--teal); font-size: .8rem; font-weight: 800; text-decoration: none; }
.filter-card { display: grid; padding: 1rem; gap: .9rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.filter-card .form-label, .employee-form .form-label, .catalog-form .form-label { margin-bottom: .35rem; color: #3b555f; font-size: .76rem; font-weight: 750; }
.filter-actions { display: flex; align-items: end; gap: .5rem; }
.result-bar { margin: 1.1rem 0 .7rem; color: var(--muted); font-size: .82rem; }
.result-bar strong { color: var(--ink); }
.employee-table-wrap { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.employee-table { width: 100%; border-collapse: collapse; }
.employee-table th { padding: .8rem 1rem; color: #71858d; background: #f8fafb; font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.employee-table td { padding: 1rem; border-top: 1px solid #edf1f2; color: #334f59; font-size: .82rem; vertical-align: middle; }
.employee-name { color: var(--ink); font-size: .9rem; font-weight: 780; }
.employee-meta { color: var(--muted); font-size: .7rem; }
.position-chip { display: inline-flex; padding: .3rem .6rem; align-items: center; border: 1px solid color-mix(in srgb, var(--chip-color) 35%, white); border-radius: 99px; color: color-mix(in srgb, var(--chip-color) 80%, #102a35); background: color-mix(in srgb, var(--chip-color) 12%, white); font-size: .7rem; font-weight: 800; }
.position-chip-link { cursor: pointer; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
.position-chip-link:hover { border-color: color-mix(in srgb, var(--chip-color) 58%, white); color: color-mix(in srgb, var(--chip-color) 88%, #102a35); background: color-mix(in srgb, var(--chip-color) 18%, white); }
.position-chip-link:focus-visible { outline: 3px solid color-mix(in srgb, var(--chip-color) 30%, transparent); outline-offset: 2px; }
#puestos { scroll-margin-top: 1rem; }
#puestos:target { border-color: color-mix(in srgb, var(--teal) 55%, var(--line)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--teal) 13%, transparent), var(--shadow); }
.table-actions { white-space: nowrap; }
.table-actions a { margin-left: .7rem; font-weight: 750; text-decoration: none; }
.employee-card-list { display: grid; gap: .8rem; }
.employee-list-card { padding: 1rem; border: 1px solid var(--line); border-radius: 15px; background: #fff; }
.employee-card-head { display: flex; margin-bottom: .8rem; align-items: flex-start; justify-content: space-between; gap: .7rem; }
.employee-card-head h3 { margin: 0; font-size: 1rem; font-weight: 780; }
.employee-card-head p { margin: .15rem 0 0; color: var(--muted); font-size: .7rem; }
.employee-card-details { display: grid; margin: 1rem 0; grid-template-columns: 1fr 1fr; gap: .8rem; }
.employee-card-details dt { color: var(--muted); font-size: .65rem; font-weight: 700; }
.employee-card-details dd { margin: .1rem 0 0; font-size: .8rem; font-weight: 700; }
.employee-card-actions { display: flex; gap: .5rem; }

/* Formularios */
.employee-form { display: grid; gap: 1rem; }
.form-section-card { padding: 1.15rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.employee-form-error-summary { padding: 1rem 1.1rem; border: 1px solid #e7b9b0; border-radius: 14px; color: #713d36; background: #fff8f6; }
.employee-form-error-summary.is-enhanced { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; border: 0; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.employee-form-error-summary h3 { margin: 0; color: #713d36; font-size: 1rem; font-weight: 820; }
.employee-form-error-summary p { margin: .25rem 0 .65rem; font-size: .78rem; }
.employee-form-error-summary ul { margin: 0; padding-left: 1.15rem; font-size: .8rem; }
.employee-form-error-summary li + li { margin-top: .3rem; }
.employee-form [aria-invalid="true"] { border-color: #c76d5f; box-shadow: 0 0 0 3px rgba(199,109,95,.11); }
.employee-form input[type="checkbox"][aria-invalid="true"],
.employee-form input[type="radio"][aria-invalid="true"] { outline: 2px solid rgba(199,109,95,.48); outline-offset: 2px; box-shadow: none; }
.employee-form-error-section { border-color: #e7b9b0; background: linear-gradient(135deg,#fff,#fffaf8); }
.employee-form-error-highlight { animation: employee-form-error-pulse 1.8s ease-out; }
@keyframes employee-form-error-pulse {
    0%,35% { border-color: #c96c5d; box-shadow: 0 0 0 5px rgba(201,108,93,.2); }
    100% { box-shadow: 0 0 0 0 rgba(201,108,93,0); }
}
.employee-validation-dialog-card { width: min(92vw,540px); padding: 1.25rem; text-align: left; }
.employee-validation-dialog-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.employee-validation-dialog-heading > div { display: flex; min-width: 0; align-items: center; gap: .7rem; }
.employee-validation-dialog-heading h3 { margin: 0; font-size: 1.15rem; }
.employee-validation-dialog-icon { display: grid; width: 32px; height: 32px; flex: 0 0 auto; place-items: center; border-radius: 50%; color: #8a4c18; background: #fff0c9; font-weight: 900; }
.employee-validation-dialog-close { display: grid; width: 36px; height: 36px; flex: 0 0 auto; place-items: center; border: 1px solid #dbe4e6; border-radius: 10px; color: #587079; background: #fff; font-size: 1.25rem; line-height: 1; }
.employee-validation-dialog-close:hover,
.employee-validation-dialog-close:focus-visible { color: #173b49; border-color: #9fc4ca; outline: 3px solid rgba(19,138,131,.16); }
.employee-validation-dialog-card > p { margin: .75rem 0; color: var(--muted); font-size: .82rem; }
.employee-validation-dialog-errors { margin: 0; padding: .85rem 1rem .85rem 2rem; border: 1px solid #ead4cf; border-radius: 12px; color: #713d36; background: #fff9f7; font-size: .82rem; }
.employee-validation-dialog-errors li + li { margin-top: .4rem; }
.employee-validation-dialog-actions { display: flex; margin-top: 1rem; justify-content: flex-end; }
.form-section-heading { display: flex; margin-bottom: 1.2rem; align-items: flex-start; gap: .8rem; }
.form-section-heading > span { display: grid; width: 34px; height: 34px; flex: 0 0 auto; place-items: center; border-radius: 10px; color: var(--teal); background: var(--teal-soft); font-size: .68rem; font-weight: 900; }
.form-section-heading h3 { margin: 0; font-size: 1rem; font-weight: 780; }
.form-section-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .76rem; }
.employee-access-summary>div>strong,.employee-access-summary>div>div,.employee-access-summary>div>small { display:block; }
.employee-access-summary>div>strong { color:#61747b; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.035em; }
.employee-access-summary>div>div { margin-top:.18rem; color:#243f4b; font-size:.88rem; font-weight:760; overflow-wrap:anywhere; }
.employee-access-summary>div>small { max-width:32rem; margin-top:.28rem; color:#71848b; font-size:.68rem; line-height:1.45; }
.employee-access-actions { display:grid; grid-template-columns:minmax(0,1.4fr) minmax(250px,.8fr); align-items:stretch; gap:1rem; }
.employee-access-primary-action,.employee-access-status-action { display:flex; min-width:0; padding:.85rem .9rem; align-items:center; justify-content:space-between; gap:1rem; border:1px solid var(--line); border-radius:13px; background:#f8fafb; }
.employee-access-primary-action>div,.employee-access-status-action>div { min-width:0; }
.employee-access-primary-action strong,.employee-access-primary-action small,.employee-access-status-action strong,.employee-access-status-action small { display:block; }
.employee-access-primary-action strong,.employee-access-status-action strong { color:#294652; font-size:.76rem; }
.employee-access-primary-action small,.employee-access-status-action small { margin-top:.18rem; color:#71848b; font-size:.66rem; line-height:1.4; }
.employee-access-primary-action .btn,.employee-access-status-action .btn { flex:0 0 auto; }
.employee-access-primary-action .btn.is-active { color:#fff; border-color:var(--teal); background:var(--teal); box-shadow:0 0 0 3px rgba(13,143,135,.12); }
.employee-access-risk-zone { border-color:#ead7d2; background:#fff9f7; }
.employee-access-risk-zone strong { color:#8b493e; }
.employee-access-enable-zone { border-color:#cfe4df; background:#f6fbfa; }
.employee-access-password-panel { padding:1rem; border:1px solid #cfe1e4; border-radius:14px; background:#f8fbfc; box-shadow:inset 4px 0 0 #7cb9c1; }
.employee-access-password-heading { margin-bottom:.85rem; padding-bottom:.7rem; border-bottom:1px solid #dce8ea; }
.employee-access-password-heading strong,.employee-access-password-heading small { display:block; }
.employee-access-password-heading strong { color:#244854; font-size:.9rem; }
.employee-access-password-heading small { margin-top:.18rem; color:#71848b; font-size:.68rem; }
.employee-access-password-actions { display:flex; align-items:center; gap:.6rem; }
.employee-assignment-home { padding:.8rem .9rem; color:#365461; border:1px solid #dbe6e9; border-radius:12px; background:#f8fafb; }
.employee-assignment-home strong,.employee-assignment-home span { display:block; }
.employee-assignment-home strong { color:#263f4c; font-size:.74rem; }
.employee-assignment-home span { color:#56707a; font-size:.82rem; font-weight:700; }
.employee-assignment-option { position:relative; margin-top:1rem; padding:1rem; overflow:hidden; border:1px solid; border-radius:14px; }
.employee-assignment-option>h4 { margin:0; color:#203e4d; font-size:1rem; font-weight:780; }
.employee-assignment-option>.form-text { margin:.25rem 0 1rem; color:#607780; line-height:1.45; }
.employee-assignment-option--temporary { border-color:#cce3e7; background:linear-gradient(135deg,#f7fbfc,#f1f8fa); box-shadow:inset 4px 0 0 #7abac3; }
.employee-assignment-option--permanent { border-color:#e5dbc4; background:linear-gradient(135deg,#fcfaf6,#f8f4ea); box-shadow:inset 4px 0 0 #c3a66c; }
.employee-assignment-option--permanent>h4 { color:#55492f; }
.employee-assignment-option .content-card { border-color:rgba(157,187,195,.45); background:rgba(255,255,255,.82); }
.employee-assignment-option .empty-state { border-color:rgba(151,184,191,.58); background:rgba(255,255,255,.56); }
@media (max-width:767.98px) {
    .employee-access-actions { grid-template-columns:1fr; }
    .employee-access-primary-action,.employee-access-status-action { align-items:stretch; flex-direction:column; }
    .employee-access-primary-action .btn,.employee-access-status-action .btn { width:100%; }
    .employee-access-password-actions { align-items:stretch; flex-direction:column; }
    .employee-access-password-actions .btn { width:100%; }
    .employee-assignment-option { padding:.85rem; }
    .employee-assignment-option .row>[class*="col-"] { min-width:0; }
}
.label-note { color: var(--muted); font-size: .67rem; font-weight: 500; }
.position-selector { display: grid; gap: .55rem; }
.position-select-row { display: flex; min-height: 58px; padding: .65rem .8rem; align-items: center; justify-content: space-between; gap: .7rem; border: 1px solid var(--line); border-radius: 12px; }
.position-check { display: flex; min-width: 0; align-items: center; gap: .65rem; cursor: pointer; }
.position-check > span:last-child strong, .position-check > span:last-child small { display: block; }
.position-check strong { font-size: .82rem; }
.position-check small { color: var(--muted); font-size: .67rem; }
.color-dot { display: inline-block; width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; }
.color-dot-lg { width: 15px; height: 15px; }
.primary-radio { display: flex; flex: 0 0 auto; align-items: center; gap: .35rem; color: var(--muted); font-size: .7rem; font-weight: 750; cursor: pointer; }
.setting-switch { display: flex; min-height: 55px; padding: .75rem 1rem .75rem 3.3rem; align-items: center; border: 1px solid var(--line); border-radius: 12px; }
.setting-switch .form-check-input { margin-left: -2.35rem; }
.setting-switch strong, .setting-switch small { display: block; }
.setting-switch strong { font-size: .82rem; }
.setting-switch small { color: var(--muted); font-size: .68rem; }
.private-section { position: relative; border-color: #e7d5a7; background: #fffdf7; }
.private-label { display: inline-flex; margin-bottom: .8rem; padding: .25rem .55rem; border-radius: 99px; color: #87631f; background: #fff0c8; font-size: .63rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.form-submit-bar { position: sticky; z-index: 5; bottom: 0; display: flex; padding: .9rem 0; justify-content: flex-end; gap: .6rem; background: linear-gradient(transparent, var(--canvas) 25%); }

/* Detalle */
.detail-grid { display: grid; gap: 1rem; }
.detail-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.detail-card h3 { margin: 0 0 1rem; font-size: 1rem; font-weight: 780; }
.detail-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .8rem; }
.detail-list { display: grid; margin: 0; gap: .9rem; }
.detail-list dt { color: var(--muted); font-size: .67rem; font-weight: 750; }
.detail-list dd { margin: .12rem 0 0; font-size: .84rem; font-weight: 680; }
.detail-list dd small { display: block; color: var(--muted); font-size: .64rem; font-weight: 500; }
.notes-box { margin-top: 1.2rem; padding: .9rem; border-radius: 12px; background: #f5f8f9; }
.notes-box strong { font-size: .72rem; }
.notes-box p { margin: .35rem 0 0; color: var(--muted); font-size: .78rem; }
.assigned-position-list { display: grid; gap: .6rem; }
.assigned-position-list > div { display: flex; padding: .65rem; align-items: center; gap: .6rem; border-radius: 10px; background: #f7f9fa; }
.assigned-position-list strong, .assigned-position-list small { display: block; }
.assigned-position-list strong { font-size: .8rem; }
.assigned-position-list small { color: var(--muted); font-size: .65rem; }
.primary-badge { margin-left: auto; padding: .2rem .45rem; border-radius: 99px; color: var(--teal); background: var(--teal-soft); font-size: .6rem; font-weight: 850; }
.pay-history-card { position: relative; }
.pay-timeline { display: grid; margin-left: .3rem; padding-left: 1.2rem; gap: 1rem; border-left: 2px solid var(--line); }
.pay-timeline article { position: relative; }
.timeline-dot { position: absolute; top: .2rem; left: -1.62rem; width: 11px; height: 11px; border: 2px solid #fff; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 2px var(--teal-soft); }
.pay-record-head { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.pay-record-head strong { font-size: .84rem; }
.pay-timeline p { margin: .15rem 0; color: var(--muted); font-size: .72rem; }
.pay-timeline small { color: #86969c; font-size: .64rem; }

/* Departamentos y puestos */
.catalog-layout { display: grid; gap: 1rem; }
.catalog-list, .catalog-forms { display: grid; align-content: start; gap: 1rem; }
.department-card, .catalog-form { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.department-card > header { display: flex; padding: 1rem; align-items: center; justify-content: space-between; gap: .8rem; background: #f8fafb; }
.department-card > header > div:first-child, .catalog-position > div:first-child { display: flex; align-items: center; gap: .65rem; }
.department-card h3 { margin: 0; font-size: .95rem; font-weight: 780; }
.department-card p { margin: .1rem 0 0; color: var(--muted); font-size: .64rem; }
.catalog-actions { display: flex; align-items: center; gap: .55rem; }
.catalog-actions a, .catalog-actions button { border: 0; color: var(--teal); background: transparent; font-size: .66rem; font-weight: 760; text-decoration: none; }
.catalog-actions button { color: #9b5144; }
.position-list { display: grid; }
.catalog-position { display: flex; min-height: 62px; padding: .7rem 1rem; align-items: center; justify-content: space-between; gap: .7rem; border-top: 1px solid #edf1f2; }
.catalog-position strong, .catalog-position small { display: block; }
.catalog-position strong { font-size: .78rem; }
.catalog-position small { color: var(--muted); font-size: .62rem; }
.catalog-empty { padding: 1rem; color: var(--muted); font-size: .75rem; }
.catalog-form { padding: 1.1rem; }
.form-title { display: flex; margin-bottom: 1rem; align-items: center; justify-content: space-between; }
.form-title h3 { margin: 0; font-size: .95rem; font-weight: 780; }
.form-title a { font-size: .7rem; font-weight: 750; text-decoration: none; }

/* Confirmación propia */
.dialog-open { overflow: hidden; }
.confirm-dialog[hidden] { display: none; }
.confirm-dialog { position: fixed; z-index: 1100; inset: 0; display: grid; padding: 1rem; place-items: center; background: rgba(4,20,28,.58); }
.confirm-dialog-card { width: min(100%, 420px); padding: 1.5rem; border-radius: 20px; background: #fff; box-shadow: 0 25px 70px rgba(0,0,0,.25); text-align: center; }
.confirm-icon { display: grid; width: 46px; height: 46px; margin: 0 auto .8rem; place-items: center; border-radius: 50%; color: #a34536; background: var(--coral-soft); font-size: 1.2rem; font-weight: 900; }
.confirm-dialog h3 { margin: 0; font-size: 1.15rem; font-weight: 780; }
.confirm-dialog p { margin: .55rem 0 1.2rem; color: var(--muted); font-size: .8rem; }
.confirm-dialog-card > div:last-child { display: flex; justify-content: center; gap: .6rem; }
.confirm-dialog.employee-validation-dialog .employee-validation-dialog-card { width: min(92vw,540px); padding: 1.25rem; text-align: left; }
.confirm-dialog.employee-validation-dialog .employee-validation-dialog-card > p { margin: .75rem 0; }
.confirm-dialog.employee-validation-dialog .employee-validation-dialog-actions { margin-top: 1rem; justify-content: flex-end; }
.employee-username-dialog .confirm-dialog-card { width:min(100%,520px); }
.employee-username-dialog .confirm-dialog-card>p { font-size:.9rem; line-height:1.55; }
.employee-username-dialog .confirm-dialog-card>p+p { margin-top:-.45rem; }
.employee-username-dialog .confirm-dialog-card strong { color:#234956; overflow-wrap:anywhere; }
@media (max-width:575.98px) {
    .employee-username-dialog .confirm-dialog-card>div:last-child { align-items:stretch; flex-direction:column; }
    .employee-username-dialog .confirm-dialog-card>div:last-child .btn { width:100%; }
}
.scheduler-ended-shift-dialog { z-index: 1200; }
.scheduler-ended-shift-dialog .confirm-dialog-card { width: min(100%,440px); padding: 1.65rem; text-align: center; }
.scheduler-ended-shift-icon { display: grid; width: 48px; height: 48px; margin: 0 auto .7rem; place-items: center; border-radius: 50%; color: #087f92; background: #e2f7f8; font-size: 1.6rem; font-weight: 800; }
.scheduler-ended-shift-kicker { margin: 0 0 .25rem !important; color: #087f92 !important; font-size: .68rem !important; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.scheduler-ended-shift-dialog h3 { color: #163d50; font-size: 1.12rem; }
.scheduler-ended-shift-dialog p:not(.scheduler-ended-shift-kicker) { max-width: 345px; margin-inline: auto; color: #506972; font-size: .86rem; line-height: 1.5; }
.scheduler-ended-shift-dialog .btn { min-width: 126px; min-height: 42px; }

@media (min-width: 768px) {
    .filter-card { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .filter-search { grid-column: span 2; }
    .form-section-card { padding: 1.5rem; }
    .detail-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
    .filter-card { grid-template-columns: minmax(220px, 1.5fr) repeat(4, minmax(130px, 1fr)) auto; align-items: end; }
    .filter-search { grid-column: auto; }
    .detail-grid { grid-template-columns: minmax(0, 1.45fr) minmax(270px, .65fr); }
    .pay-history-card { grid-column: 1 / -1; }
    .catalog-layout { grid-template-columns: minmax(0, 1.6fr) minmax(300px, .7fr); gap: 1.5rem; }
    .catalog-forms { position: sticky; top: 1rem; }
}

/* Labor Forecast · contenido monetario exclusivo del owner */
.labor-disclaimer, .labor-dashboard-note { margin: .8rem 0 0; color: #5b6f77; font-size: .72rem; }
.labor-disclaimer { padding: .8rem 1rem; border-left: 4px solid var(--coral); border-radius: 10px; background: #fff7f4; }
.labor-week-toolbar { position: relative; display: grid; margin: 1rem 0; padding: .8rem 1rem; grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto; justify-items: center; gap: .18rem; border: 1px solid #1c5a7b; border-radius: 16px; background: linear-gradient(135deg,var(--scheduler-deep),var(--scheduler-surface) 58%,var(--scheduler-surface-2)); box-shadow: 0 9px 22px rgba(2,7,25,.16),inset 0 1px 0 rgba(220,251,255,.12); }
.labor-week-navigation { display: grid; grid-column: 1; grid-row: 1; min-width: 0; justify-items: center; }
.labor-week-strip.scheduler-week-strip { max-width: 100%; }
.labor-week-caption { grid-column: 1; grid-row: 2; margin: 0; color: var(--scheduler-muted); font-size: .72rem; font-weight: 720; text-align: center; }
.labor-week-picker { position: absolute; top: 50%; left: calc(50% + clamp(220px,22vw,270px)); display: grid; width: 142px; gap: .14rem; transform: translateY(-50%); }
.labor-week-picker label { color: var(--scheduler-muted); font-size: .6rem; font-weight: 780; }
.labor-week-picker .form-control { min-height: 34px; padding: .32rem .48rem; border-color: rgba(105,220,229,.28); color: #17394b; background: rgba(251,254,255,.94); font-size: .72rem; }
.labor-week-picker .form-control:focus { border-color: var(--scheduler-accent); box-shadow: 0 0 0 3px rgba(105,220,229,.2); }
.labor-cost-cards { display: grid; margin-top: 1rem; grid-template-columns: repeat(auto-fit,minmax(145px,1fr)); gap: .65rem; }
.labor-cost-card { min-width: 0; padding: .9rem; border: 1px solid #dce6e8; border-radius: 13px; background: #fff; box-shadow: 0 6px 18px rgba(25,54,63,.04); }
.labor-cost-card span, .labor-cost-card strong { display: block; }
.labor-cost-card span { color: var(--muted); font-size: .63rem; font-weight: 750; }
.labor-cost-card strong { margin-top: .28rem; color: var(--navy); font-size: 1rem; font-weight: 820; }
.labor-cost-card.is-complete { border-color: #a9d8c9; background: #f2fbf7; }
.labor-cost-card.is-warning { border-color: #e8c27a; background: #fff8e8; }
.labor-comparison { margin: .8rem 0 0; color: #536a72; font-size: .72rem; }
.labor-filter { display: grid; margin-top: 1rem; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: .7rem; }
.labor-filter .filter-actions { align-self: end; }
.labor-filter select { min-width: 0; }
.labor-filter .form-label { color: #425f68; font-size: .875rem; font-weight: 760; }
.labor-filter .form-select, .labor-filter .btn { min-height: 44px; font-size: 1rem; }
.labor-filter-status { grid-column: 1 / -1; margin: -.15rem 0 0; color: #527078; font-size: .875rem; }
.labor-filter-summary { display: flex; margin: 1rem 0 .15rem; align-items: center; flex-wrap: wrap; gap: .35rem; color: #526a73; font-size: .9rem; }
.labor-filter-summary strong { color: var(--navy); font-weight: 820; }
.labor-forecast-results { margin: 1rem 0 0; padding: .8rem 1rem; align-items: center; justify-content: space-between; gap: .8rem 1.2rem; border: 1px solid #d8e7e8; border-radius: 13px; background: linear-gradient(135deg,#f5fbfb,#fff); box-shadow: 0 5px 16px rgba(25,54,63,.035); }
.labor-forecast-results h3 { margin: 0; color: var(--navy); font-size: .9rem; font-weight: 820; }
.labor-filter-summary-metrics { display: flex; align-items: center; flex-wrap: wrap; gap: .35rem; }
.labor-results-empty { margin-top: 1rem; }
.labor-employee-accordion { margin-top: .75rem; }
.labor-employee-toolbar { display: flex; margin-bottom: .6rem; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .55rem .8rem; }
.labor-employee-quick-filter { display: inline-flex; padding: 3px; gap: 2px; border: 1px solid #d6e3e5; border-radius: 10px; background: #edf3f4; }
.labor-employee-quick-filter button { min-height: 38px; padding: .45rem .78rem; border: 0; border-radius: 7px; color: #587078; background: transparent; font-size: .875rem; font-weight: 800; }
.labor-employee-quick-filter button:hover, .labor-employee-quick-filter button:focus-visible { color: var(--teal); outline: 2px solid var(--teal); outline-offset: -2px; }
.labor-employee-quick-filter button.is-active, .labor-employee-quick-filter button[aria-pressed="true"] { color: #08766f; background: #fff; box-shadow: 0 2px 7px rgba(25,54,63,.1); }
.labor-employee-empty-toggle { min-height: 38px; padding: .4rem .2rem; border: 0; color: #08766f; background: transparent; font-size: .875rem; font-weight: 800; text-decoration: underline; text-decoration-color: rgba(8,118,111,.35); text-underline-offset: 3px; }
.labor-employee-empty-toggle:hover, .labor-employee-empty-toggle:focus-visible { color: var(--navy); outline: 2px solid var(--teal); outline-offset: 2px; }
.labor-employee-list { overflow: hidden; border: 1px solid #d8e4e6; border-radius: 13px; background: #fff; box-shadow: 0 5px 16px rgba(25,54,63,.04); }
.labor-employee-list-head, .labor-employee-toggle { display: grid; grid-template-columns: minmax(230px,1.7fr) minmax(130px,.7fr) minmax(100px,.55fr) minmax(125px,.7fr) 18px; align-items: center; gap: .8rem; }
.labor-employee-list-head { min-height: 40px; padding: .55rem .9rem; border-bottom: 1px solid #d8e4e6; color: #526a73; background: #f6f9fa; font-size: .75rem; font-weight: 820; letter-spacing: .035em; text-transform: uppercase; }
.labor-employee-list-head span:nth-child(n+2):nth-child(-n+4) { text-align: right; }
.labor-employee-group { overflow: hidden; border-bottom: 1px solid #e4ebec; background: #fff; }
.labor-employee-group:last-child { border-bottom: 0; }
.labor-employee-group[hidden] { display: none; }
.labor-employee-toggle { width: 100%; min-height: 50px; padding: .64rem .9rem; border: 0; color: var(--ink); background: #fff; text-align: left; }
.labor-employee-toggle:hover, .labor-employee-toggle:focus-visible { background: #f4faf9; outline: 2px solid var(--teal); outline-offset: -2px; }
.labor-employee-name { min-width: 0; }
.labor-employee-name > strong, .labor-employee-mobile-summary { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.labor-employee-name > strong { color: var(--navy); font-size: .96rem; font-weight: 830; }
.labor-employee-mobile-summary { display: none; margin-top: .18rem; color: var(--muted); font-size: .8rem; font-weight: 650; }
.labor-employee-row-metric { min-width: 0; color: var(--navy); text-align: right; white-space: nowrap; }
.labor-employee-row-metric strong { font-size: .92rem; font-weight: 820; }
.labor-employee-row-metric small { margin-left: .2rem; color: var(--muted); font-size: .75rem; font-weight: 700; }
.labor-employee-chevron { width: 9px; height: 9px; justify-self: end; border-right: 2px solid #5f777e; border-bottom: 2px solid #5f777e; transform: rotate(45deg) translateY(-2px); transition: transform .16s ease; }
.labor-employee-toggle[aria-expanded="true"] .labor-employee-chevron { transform: rotate(225deg) translateY(-2px); }
.labor-employee-panel { border-top: 1px solid #dce6e8; background: #fbfdfd; }
.labor-employee-panel .labor-table-wrap { max-height: min(520px,calc(100vh - 230px)); margin-top: 0; border: 0; border-radius: 0; }
.labor-table-wrap { max-height: calc(100vh - 185px); margin-top: 1rem; overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.labor-table { width: 100%; min-width: 1120px; border-collapse: separate; border-spacing: 0; font-size: .875rem; }
.labor-table--snapshot { min-width: 1210px; }
.labor-table th, .labor-table td { padding: .78rem .72rem; border-bottom: 1px solid #edf1f2; text-align: left; vertical-align: top; }
.labor-table th { position: sticky; top: 0; z-index: 2; color: #526a73; background: #f6f9fa; box-shadow: 0 1px 0 #dce6e8; font-size: .78rem; letter-spacing: .03em; text-transform: uppercase; }
.labor-table tbody tr:last-child td { border-bottom: 0; }
.labor-col-employee { min-width: 175px; width: 18%; }.labor-col-date { min-width: 115px; width: 12%; }.labor-col-location { min-width: 145px; width: 14%; }.labor-col-position { min-width: 145px; width: 14%; }.labor-col-pay { min-width: 76px; width: 8%; }.labor-col-hours { min-width: 96px; width: 9%; }.labor-col-rate { min-width: 104px; width: 10%; }.labor-col-total { min-width: 118px; width: 11%; }
.labor-cell-primary, .labor-cell-secondary { display: block; }
.labor-cell-primary { color: var(--ink); font-weight: 780; line-height: 1.3; white-space: normal; }
.labor-cell-secondary { margin-top: .16rem; color: var(--muted); font-size: .82rem; line-height: 1.3; white-space: normal; }
.labor-block-badge, .labor-pay-badge { display: inline-flex; margin-top: .3rem; padding: .2rem .44rem; align-items: center; border-radius: 99px; color: #41616a; background: #edf3f4; font-size: .78rem; font-weight: 820; line-height: 1.2; white-space: nowrap; }
.labor-block-badge.weekly { color: #08766f; background: var(--teal-soft); }.labor-block-badge.unallocated { color: #725b78; background: #f3edf5; }
.labor-pay-badge { margin-top: 0; color: #405b65; }
.labor-align-right { text-align: right !important; }.labor-align-right .labor-cell-secondary { text-align: right; }
.labor-total-cell .labor-cell-primary { color: var(--navy); font-size: 1rem; font-weight: 850; }
.labor-warning-list { display: grid; margin-top: 1rem; gap: .5rem; }
.labor-warning-list article { padding: .75rem .9rem; border: 1px solid #ead49f; border-radius: 10px; color: #775f2d; background: #fff9e9; font-size: .7rem; }
.labor-history { margin-top: 1.2rem; }
.labor-history-grid { display: grid; gap: .7rem; }
.labor-history-grid article { padding: .9rem; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.labor-history-grid article > div { display: flex; align-items: center; justify-content: space-between; gap: .6rem; }
.labor-history-grid article p, .labor-history-grid article small { margin: .35rem 0; color: var(--muted); font-size: .65rem; }
.labor-history-grid article a { color: var(--teal); font-size: .68rem; font-weight: 780; text-decoration: none; }
.labor-settings-form { max-width: 920px; }
.owner-labor-dashboard, .scheduler-labor-private { margin-top: 1rem; padding: 1rem; border: 1px solid #d8e4e6; border-radius: var(--radius); background: linear-gradient(145deg,#f9fcfc,#fff); }
.labor-location-compact { display: grid; margin-top: .8rem; grid-template-columns: repeat(auto-fit,minmax(175px,1fr)); gap: .55rem; }
.labor-location-compact article { padding: .7rem; border: 1px solid #dce7e8; border-radius: 10px; background: #fff; }
.labor-location-compact article > div { display: flex; align-items: start; justify-content: space-between; gap: .5rem; }
.labor-location-compact strong, .labor-location-compact span { display: block; }
.labor-location-compact strong { color: var(--navy); font-size: .68rem; }
.labor-location-compact span { margin-top: .12rem; color: var(--muted); font-size: .57rem; }
.labor-location-bar { height: 6px; margin-top: .6rem; overflow: hidden; border-radius: 99px; background: #e7eff0; }
.labor-location-bar i { display: block; height: 100%; min-width: 0; border-radius: inherit; background: var(--teal); }
.labor-distribution { margin-top: 1.2rem; padding: 1rem; border: 1px solid #d8e4e6; border-radius: var(--radius); background: linear-gradient(145deg,#f9fcfc,#fff); }
.labor-distribution .card-heading > div > p:last-child { margin: .25rem 0 0; color: var(--muted); font-size: .875rem; }
.labor-distribution-tabs { display: flex; margin-top: 1rem; gap: .4rem; border-bottom: 1px solid #dce6e8; overflow-x: auto; }
.labor-distribution-tabs button { min-height: 44px; padding: .55rem .8rem; flex: 0 0 auto; border: 0; border-bottom: 3px solid transparent; color: #61777e; background: transparent; font-size: .94rem; font-weight: 800; }
.labor-distribution-tabs button[aria-selected="true"] { border-bottom-color: var(--teal); color: var(--teal); }
.labor-distribution-panel { display: grid; margin-top: .85rem; gap: .55rem; }
.labor-distribution-row { display: block; padding: .8rem; border: 1px solid #dce6e8; border-left: 4px solid var(--distribution-color); border-radius: 12px; color: inherit; background: #fff; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.labor-distribution-row:hover, .labor-distribution-row:focus-visible { border-color: var(--distribution-color); box-shadow: 0 5px 15px rgba(25,54,63,.08); outline: 0; }
.labor-distribution-heading { display: flex; align-items: center; gap: .5rem; }
.labor-distribution-heading > div { min-width: 0; flex: 1; }
.labor-distribution-heading strong, .labor-distribution-heading small { display: block; }
.labor-distribution-heading strong { color: var(--ink); font-size: 1rem; }
.labor-distribution-heading small { margin-top: .1rem; color: var(--muted); font-size: .82rem; }
.labor-distribution-color { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 99px; background: var(--distribution-color); }
.labor-distribution-total { color: var(--navy); font-size: 1rem; font-weight: 850; white-space: nowrap; }
.labor-distribution-empty { margin: .45rem 0 0; color: var(--muted); font-size: .875rem; font-style: italic; }
.labor-distribution-metrics { display: flex; margin-top: .55rem; flex-wrap: wrap; gap: .3rem .7rem; color: #587078; font-size: .82rem; }
.labor-distribution-metrics b { color: var(--ink); font-weight: 800; }
.labor-distribution-bar { height: 7px; margin-top: .6rem; overflow: hidden; border-radius: 99px; background: #e8eff0; }
.labor-distribution-bar span { display: block; width: var(--distribution-percent); min-width: 0; height: 100%; border-radius: inherit; background: var(--distribution-color); }
.labor-distribution-percent { display: block; margin-top: .3rem; color: var(--muted); font-size: .8rem; text-align: right; }
.labor-position-switch { display: flex; padding-bottom: .6rem; align-items: center; flex-wrap: wrap; gap: .4rem; border-bottom: 1px solid #e2eaeb; color: var(--muted); font-size: .875rem; }
.labor-position-switch a { padding: .25rem .45rem; border-radius: 99px; color: #526a73; background: #edf3f4; font-weight: 750; text-decoration: none; }
.labor-position-switch a.active { color: #08766f; background: var(--teal-soft); }
.labor-position-group { display: grid; gap: .5rem; }
.labor-position-group h4 { margin: .6rem 0 0; color: #47636b; font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.publish-labor-warning { padding: .65rem .75rem; border-radius: 9px; color: #73581f; background: #fff2cf; font-size: .68rem; font-weight: 700; }

@media (min-width: 768px) {
    .labor-history-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 959.98px) {
    .labor-week-toolbar { grid-template-rows: auto auto auto; }
    .labor-week-navigation { width: 100%; }
    .labor-week-picker { position: static; grid-column: 1; grid-row: 3; margin-top: .35rem; justify-self: end; transform: none; }
}

@media (max-width: 575.98px) {
    .labor-cost-cards { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .owner-labor-dashboard, .scheduler-labor-private { padding: .8rem; }
    .scheduler-labor-private .card-heading { align-items: stretch; flex-direction: column; }
    .scheduler-labor-private .btn { min-height: 44px; }
    .labor-distribution { padding: .8rem; }
    .labor-distribution .card-heading { align-items: stretch; flex-direction: column; }
    .labor-distribution .card-heading .btn { min-height: 44px; }
}

@media (max-width: 767.98px) {
    .labor-week-toolbar { padding: .72rem; }
    .labor-week-strip.scheduler-week-strip .scheduler-week-date { min-width: 0; margin-inline: .3rem; font-size: .92rem; }
    .labor-week-picker { width: min(190px,100%); }
    .labor-week-picker .form-control { width: 100%; min-height: 36px; }
    .labor-filter { grid-template-columns: 1fr; }
    .labor-filter .form-select, .labor-filter .btn { min-height: 44px; }
    .labor-filter-summary { margin-top: .9rem; font-size: .72rem; }
    .labor-forecast-results { margin-top: .9rem; padding: .75rem .8rem; align-items: flex-start; flex-direction: column; font-size: .82rem; }
    .labor-employee-toolbar { align-items: stretch; flex-direction: column; }
    .labor-employee-quick-filter { align-self: flex-start; }
    .labor-employee-quick-filter button { min-height: 44px; }
    .labor-employee-empty-toggle { min-height: 44px; align-self: flex-start; text-align: left; }
    .labor-employee-list-head { display: none; }
    .labor-employee-toggle { min-height: 58px; padding: .7rem .82rem; grid-template-columns: minmax(0,1fr) 18px; gap: .65rem; }
    .labor-employee-row-metric { display: none; }
    .labor-employee-mobile-summary { display: block; }
    .labor-employee-name > strong { font-size: .98rem; }
    .labor-employee-panel .labor-table-wrap { max-height: none; }
    .labor-employee-panel .labor-table tbody tr { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .labor-employee-panel .labor-table td:nth-child(1) { grid-column: 1 / -1; }
    .labor-employee-panel .labor-table td:nth-child(1)::before { display: block; }
    .labor-employee-panel .labor-table td:nth-child(2), .labor-employee-panel .labor-table td:nth-child(3), .labor-employee-panel .labor-table td:nth-child(4), .labor-employee-panel .labor-table td:nth-child(5) { grid-column: auto; }
    .labor-employee-panel .labor-table td:nth-child(n+6) { padding-top: .1rem; }
    .labor-table-wrap { max-height: none; overflow: visible; border: 0; border-radius: 0; background: transparent; }
    .labor-table, .labor-table tbody, .labor-table tr, .labor-table td { display: block; width: auto; min-width: 0; }
    .labor-table { font-size: .72rem; }
    .labor-table thead, .labor-table colgroup { display: none; }
    .labor-table tbody { display: grid; gap: .75rem; }
    .labor-table tbody tr { display: grid; padding: .85rem; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .6rem .75rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 6px 16px rgba(25,54,63,.04); }
    .labor-table td { min-width: 0; padding: 0; border: 0; text-align: left !important; }
    .labor-table td::before { display: block; margin-bottom: .16rem; color: var(--muted); font-size: .55rem; font-weight: 820; letter-spacing: .04em; line-height: 1.2; text-transform: uppercase; content: attr(data-label); }
    .labor-table td:nth-child(1) { grid-column: 1 / -1; padding-bottom: .1rem; }
    .labor-table td:nth-child(1)::before { display: none; }
    .labor-table td:nth-child(2), .labor-table td:nth-child(3), .labor-table td:nth-child(4) { grid-column: 1 / -1; }
    .labor-table td:nth-child(5) { grid-column: 1 / -1; }
    .labor-table td:nth-child(5)::before { display: none; }
    .labor-table td:nth-child(5) .labor-pay-badge { margin-top: 0; }
    .labor-table td:nth-child(n+6) { padding-top: .1rem; }
    .labor-table .labor-total-cell { grid-column: 1 / -1; margin-top: .1rem; padding: .7rem; border-radius: 10px; background: #edf5f4; }
    .labor-table .labor-total-cell::before { color: #46646c; }
    .labor-table .labor-total-cell .labor-cell-primary { font-size: 1rem; }
    .labor-align-right .labor-cell-secondary { text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
    .labor-employee-chevron { transition: none; }
}

.manager-employee-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(310px,1fr)); gap:1rem; }
.manager-availability { margin-top:1rem; padding-top:.85rem; border-top:1px solid #e7eceb; }
.manager-availability ul { margin:.5rem 0 0; padding-left:1.1rem; color:#52605e; font-size:.86rem; }
.manager-location-grid { margin-top:1.5rem; }
.dashboard-block-statuses { display:grid; margin:.75rem 0; grid-template-columns:1fr 1fr; gap:.5rem; }
.dashboard-block-statuses span { padding:.55rem; border-radius:10px; color:var(--muted); background:#f3f6f7; font-size:.82rem; }
.dashboard-block-statuses b { display:block; margin-bottom:.15rem; color:var(--ink); }
.manager-summary-heading { display:flex; margin-bottom:1rem; align-items:center; justify-content:space-between; gap:1rem; }
.manager-summary-heading h2 { margin:0; font-size:clamp(1.55rem,3vw,2rem); font-weight:780; letter-spacing:-.035em; }
.manager-summary-heading p:last-child { margin:.25rem 0 0; color:var(--muted); font-size:.86rem; }
.manager-kpi-strip { display:grid; margin-bottom:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.manager-kpi-strip article { position:relative; display:flex; min-height:72px; padding:.85rem 1rem .85rem 1.2rem; align-items:center; justify-content:space-between; gap:.8rem; color:var(--ink); border-top:1px solid var(--line); background:#fff; }
.manager-kpi-strip article:nth-child(-n+2) { border-top:0; }
.manager-kpi-strip article:nth-child(even) { border-left:1px solid var(--line); }
.manager-kpi-strip article::before { position:absolute; inset:.8rem auto .8rem 0; width:4px; border-radius:0 99px 99px 0; background:var(--kpi-color,var(--teal)); content:""; }
.manager-kpi-strip article.tone-teal { --kpi-color:var(--teal); }
.manager-kpi-strip article.tone-navy { --kpi-color:#5b8797; }
.manager-kpi-strip article.tone-coral { --kpi-color:var(--coral); }
.manager-kpi-strip article.tone-gold { --kpi-color:var(--gold); }
.manager-kpi-strip span { color:var(--muted); font-size:.72rem; font-weight:700; }
.manager-kpi-strip strong { font-size:1.15rem; font-weight:820; white-space:nowrap; }
.manager-locations-panel { overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#fff; box-shadow:0 8px 24px rgba(25,54,63,.035); }
.manager-locations-panel > header { display:flex; min-height:72px; padding:.9rem 1rem; align-items:center; justify-content:space-between; gap:1rem; border-bottom:1px solid var(--line); }
.manager-locations-panel > header .eyebrow { margin-bottom:.2rem; color:var(--teal); }
.manager-locations-panel > header h3 { margin:0; font-size:1rem; font-weight:800; }
.manager-location-head,.manager-location-row { display:grid; grid-template-columns:minmax(230px,1.4fr) minmax(150px,.75fr) 90px 80px minmax(120px,.65fr) 115px; align-items:center; gap:.8rem; }
.manager-location-head { min-height:38px; padding:0 1rem; color:#71868e; background:#f8fafb; font-size:.56rem; font-weight:850; letter-spacing:.06em; text-transform:uppercase; }
.manager-location-row { min-height:72px; padding:.7rem 1rem; border-top:1px solid #edf1f2; transition:background-color .15s ease; }
.manager-location-row:first-child { border-top:0; }
.manager-location-row:hover { background:#fbfdfd; }
.manager-location-name { display:flex; min-width:0; align-items:center; gap:.7rem; }
.manager-location-name > span { display:grid; width:34px; height:34px; flex:0 0 auto; place-items:center; border-radius:10px; color:var(--teal); background:var(--teal-soft); font-size:.95rem; }
.manager-location-name > div { min-width:0; }
.manager-location-name strong,.manager-location-name small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.manager-location-name strong { font-size:.8rem; }
.manager-location-name small { margin-top:.15rem; color:var(--muted); font-size:.62rem; }
.manager-location-state .schedule-status { font-size:.62rem; white-space:nowrap; }
.manager-location-metric strong { font-size:.78rem; }
.manager-location-action { text-align:right; }
.manager-location-action a { display:inline-flex; padding:.45rem .55rem; align-items:center; gap:.3rem; border-radius:8px; color:var(--teal); font-size:.68rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.manager-location-action a:hover { background:var(--teal-soft); }

@media(min-width:768px){
    .manager-kpi-strip { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .manager-kpi-strip article { border-top:0; border-left:1px solid var(--line); }
    .manager-kpi-strip article:first-child { border-left:0; }
}

@media(max-width:899.98px){
    .manager-summary-heading { align-items:stretch; flex-direction:column; }
    .manager-summary-heading .btn { width:100%; }
    .manager-location-head { display:none; }
    .manager-location-list { display:grid; padding:.65rem; gap:.6rem; background:#f6f9f9; }
    .manager-location-row { position:relative; min-height:0; padding:.9rem; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; border:1px solid var(--line); border-radius:13px; background:#fff; }
    .manager-location-row:first-child { border-top:1px solid var(--line); }
    .manager-location-name { grid-column:1 / -1; padding-right:95px; padding-bottom:.7rem; border-bottom:1px solid #edf1f2; }
    .manager-location-state { position:absolute; top:.9rem; right:.9rem; }
    .manager-location-metric::before { display:block; margin-bottom:.2rem; color:#82949b; content:attr(data-label); font-size:.52rem; font-weight:800; text-transform:uppercase; }
    .manager-location-action { grid-column:1 / -1; text-align:left; }
    .manager-location-action a { width:100%; justify-content:center; background:var(--teal-soft); }
}

@media(max-width:420px){
    .manager-kpi-strip { grid-template-columns:1fr; }
    .manager-kpi-strip article,.manager-kpi-strip article:nth-child(even) { min-height:60px; border-top:1px solid var(--line); border-left:0; }
    .manager-kpi-strip article:first-child { border-top:0; }
}
.owner-publication-dashboard { margin:1rem 0; padding:1.2rem; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.owner-publication-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:.75rem; }
.owner-publication-grid article { padding:.8rem; border:1px solid #e3eaec; border-radius:12px; background:#f8fafb; }
.owner-publication-grid article > div { display:flex; align-items:center; justify-content:space-between; gap:.75rem; }
.owner-publication-grid article > div strong { font-size:.88rem; }
.owner-publication-grid article > div a { font-size:.82rem; font-weight:750; }
.owner-publication-grid p { display:grid; margin:.55rem 0 0; grid-template-columns:1fr 1fr; gap:.4rem; }
.owner-publication-grid p span { color:var(--muted); font-size:.78rem; }
.owner-publication-grid p b { display:block; color:var(--ink); }

/* Portal mobile-first del empleado */
.employee-welcome { display:flex; padding:1.2rem; align-items:flex-start; justify-content:space-between; gap:1rem; border-radius:18px; color:#fff; background:linear-gradient(135deg,var(--navy),#173d4d); }
.employee-welcome h2 { margin:.1rem 0 .3rem; font-size:1.55rem; }
.employee-welcome p { margin:0; color:#b7c9cf; font-size:.8rem; }
.employee-welcome > span { padding:.35rem .55rem; border-radius:99px; background:rgba(255,255,255,.1); font-size:.66rem; font-weight:800; }
.employee-location-status { display:flex; margin-top:1rem; padding:.85rem 1rem; align-items:center; justify-content:space-between; gap:.75rem; border:1px solid #b9d8d6; border-radius:14px; color:#16434c; background:#f3fbfa; }
.employee-location-status span { color:#52717a; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }.employee-location-status strong { color:var(--teal); font-size:.82rem; text-align:right; }
.employee-location-status.is-current-shift { border-color:#9acbd2; background:#edf9fb; }.employee-location-status.is-current-shift strong { color:#126c7b; }
.employee-next-shift { position:relative; margin-top:1rem; padding:1.2rem; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#fff; box-shadow:var(--shadow); }
.employee-next-shift::before,.employee-shift-card::before { position:absolute; inset:0 auto 0 0; width:5px; background:var(--shift-color); content:""; }
.employee-shift-label { display:flex; align-items:flex-start; justify-content:space-between; gap:.8rem; }
.employee-shift-label span { color:var(--muted); font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.employee-shift-label strong { color:var(--teal); font-size:.75rem; text-align:right; }
.employee-next-date { display:flex; margin-top:1.2rem; align-items:baseline; gap:.5rem; }
.employee-next-date strong { font-size:1.25rem; }.employee-next-date span { color:var(--muted); font-size:.75rem; }
.employee-next-time { display:flex; margin:.45rem 0 .7rem; align-items:center; flex-wrap:wrap; gap:.45rem; font-size:1.75rem; font-weight:850; letter-spacing:-.04em; }
.employee-next-time b,.employee-shift-time b { padding:.25rem .42rem; border-radius:7px; color:#87631f; background:#fff0c8; font-size:.62rem; letter-spacing:0; }
.employee-position-pill { display:inline-flex; padding:.3rem .55rem; border-radius:99px; color:#38515b; background:#edf3f4; font-size:.68rem; font-weight:800; }
.employee-shift-facts { display:grid; margin:1rem 0 0; padding-top:.85rem; grid-template-columns:1fr 1fr; gap:.7rem; border-top:1px solid var(--line); }
.employee-shift-facts dt,.employee-shift-facts dd { margin:0; }.employee-shift-facts dt { color:var(--muted); font-size:.62rem; }.employee-shift-facts dd { margin-top:.15rem; font-size:.76rem; font-weight:800; }
.employee-empty-state { margin-top:1rem; padding:2rem 1.2rem; border:1px dashed #bfcdd1; border-radius:18px; background:#fff; text-align:center; }
.employee-empty-state > span { display:grid; width:48px; height:48px; margin:0 auto .7rem; place-items:center; border-radius:14px; color:var(--teal); background:var(--teal-soft); font-size:1.5rem; }
.employee-empty-state h3 { margin:0; font-size:1.05rem; }.employee-empty-state p { margin:.35rem 0 0; color:var(--muted); font-size:.75rem; }
.employee-week-summary { display:flex; margin-top:1rem; padding:1rem; align-items:center; justify-content:space-between; gap:1rem; border-radius:16px; color:#fff; background:var(--navy); }
.employee-week-summary span,.employee-week-summary strong,.employee-week-summary small { display:block; }.employee-week-summary span { color:#a9bec6; font-size:.62rem; }.employee-week-summary strong { font-size:1.3rem; }.employee-week-summary small { color:#91aab4; font-size:.58rem; }
.employee-week-summary .btn { min-height:44px; display:flex; align-items:center; }
@media (max-width:575.98px) {
    .employee-week-summary { align-items:stretch; }
    .employee-week-summary > div:first-child { min-width:0; align-self:center; }
    .employee-week-summary-actions { display:grid !important; width:min(48%,11.25rem); min-width:9.75rem; flex:0 1 11.25rem; grid-template-columns:minmax(0,1fr); gap:.5rem !important; }
    .employee-week-summary-actions .btn { width:100%; min-width:0; padding:.55rem .7rem; justify-content:center; text-align:center; white-space:normal; }
}
@media (max-width:359.98px) {
    .employee-week-summary { flex-direction:column; }
    .employee-week-summary > div:first-child { align-self:stretch; }
    .employee-week-summary-actions { width:100%; min-width:0; flex-basis:auto; }
}
.employee-page-heading h2 { margin:.1rem 0; font-size:1.5rem; }.employee-page-heading > p:last-child { margin:0; color:var(--muted); font-size:.78rem; }
.employee-week-nav { display:grid; margin:1rem 0; grid-template-columns:1fr 1fr 1fr; gap:.4rem; }
.employee-week-nav a { display:flex; min-height:44px; padding:.45rem; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:11px; color:#526a73; background:#fff; font-size:.68rem; font-weight:800; text-align:center; text-decoration:none; }
.employee-week-nav a.current { color:var(--teal); border-color:#93cbc7; background:var(--teal-soft); }
.employee-week-total { padding:1rem; border-radius:15px; color:#fff; background:linear-gradient(135deg,var(--teal),#0f716c); }
.employee-week-total span,.employee-week-total strong,.employee-week-total small { display:block; }.employee-week-total span { color:#d4efed; font-size:.64rem; }.employee-week-total strong { margin:.12rem 0; font-size:1.45rem; }.employee-week-total small { color:#c4e4e1; font-size:.6rem; }
.employee-schedule-groups { display:grid; margin-top:1rem; gap:1rem; }.employee-schedule-group { overflow:hidden; border:1px solid var(--line); border-radius:17px; background:#fff; }.employee-schedule-group > header { padding:1rem; border-bottom:1px solid var(--line); background:#f7fafb; }.employee-schedule-group h3 { margin:0; font-size:1rem; }
.employee-day-list { display:grid; }.employee-day-card { padding:1rem; border-top:1px solid #edf1f2; }.employee-day-card:first-child { border-top:0; }.employee-day-card.is-empty { background:#fbfcfc; }
.employee-day-heading { display:flex; align-items:center; justify-content:space-between; }.employee-day-heading strong,.employee-day-heading span { display:block; }.employee-day-heading strong { font-size:.9rem; }.employee-day-heading span,.employee-day-heading small { color:var(--muted); font-size:.62rem; }
.employee-no-shift { margin:.75rem 0 0; padding:.75rem; border-radius:10px; color:#7b8a8f; background:#eef2f3; font-size:.72rem; font-weight:700; text-align:center; }
.employee-shift-card { position:relative; margin-top:.75rem; padding:.9rem .9rem .9rem 1.1rem; overflow:hidden; border:1px solid var(--line); border-radius:13px; background:#fff; }
.employee-shift-location { display:block; margin-bottom:.45rem; color:var(--teal); font-size:.78rem; }.employee-shift-time { display:flex; margin:.65rem 0; align-items:center; flex-wrap:wrap; gap:.4rem; font-size:1.28rem; font-weight:850; }
.employee-shift-details { display:flex; padding-top:.65rem; align-items:flex-end; justify-content:space-between; gap:.6rem; border-top:1px solid #edf1f2; }.employee-shift-details span { color:var(--muted); font-size:.62rem; }.employee-shift-details strong { font-size:.7rem; text-align:right; }
.employee-availability-list { display:grid; margin-top:1rem; gap:.7rem; }.employee-availability-day { overflow:hidden; border:1px solid var(--line); border-radius:15px; background:#fff; }.employee-availability-day > header { display:flex; padding:.85rem 1rem; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:#f8fafb; }.employee-availability-day > header strong { font-size:.88rem; }.employee-availability-day > header span { color:var(--muted); font-size:.62rem; }
.employee-availability-window { display:flex; margin:.75rem; padding:.8rem; align-items:center; justify-content:space-between; gap:.7rem; border-radius:11px; }.employee-availability-window b { font-size:.72rem; }.employee-availability-window span { font-size:.7rem; text-align:right; }.employee-availability-window span strong { margin-left:.25rem; padding:.15rem .3rem; border-radius:5px; background:rgba(255,255,255,.55); font-size:.56rem; }
.employee-availability-window.type-available { color:#0c716b; background:var(--teal-soft); }.employee-availability-window.type-preferred { color:#806020; background:#fff0c8; }.employee-availability-window.type-unavailable { color:#984638; background:var(--coral-soft); }.employee-availability-window.undefined { color:#65767c; background:#eef2f3; }
.employee-profile-card { display:flex; margin-top:1rem; padding:1rem; align-items:center; gap:.85rem; border:1px solid var(--line); border-radius:16px; background:#fff; }.employee-profile-avatar { display:grid; width:52px; height:52px; flex:0 0 auto; place-items:center; border-radius:15px; color:#fff; background:var(--teal); font-size:1.25rem; font-weight:850; }.employee-profile-card h3 { margin:0; font-size:1rem; }.employee-profile-card p { margin:.2rem 0 0; color:var(--muted); font-size:.7rem; }
.employee-profile-details { display:grid; margin-top:.8rem; gap:.8rem; }.employee-profile-details article { padding:1rem; border:1px solid var(--line); border-radius:15px; background:#fff; }.employee-profile-details article > span { display:block; margin-bottom:.4rem; color:var(--muted); font-size:.62rem; }.employee-profile-details article > strong { font-size:.82rem; }.employee-profile-positions { display:flex; flex-wrap:wrap; gap:.4rem; }
.employee-password-card { margin-top:.8rem; padding:1rem; border:1px solid var(--line); border-radius:16px; background:#fff; }.employee-password-card h3 { margin:0; font-size:1rem; }.employee-password-card > div > p:last-child { color:var(--muted); font-size:.7rem; }.employee-password-card form { margin-top:1rem; padding-top:1rem; border-top:1px solid var(--line); }.employee-password-card .form-control { min-height:46px; }

.employee-access-confirmation { width:min(100%,760px); margin:0 auto; }
.employee-access-confirmation-header { margin-bottom:1rem; }
.employee-access-confirmation-header h1 { font-size:clamp(1.55rem,3vw,2rem); }
.employee-access-confirmation-header .text-muted { margin-bottom:0; }
.employee-access-credentials-card { display:grid; width:100%; padding:clamp(1.1rem,3vw,1.5rem); gap:1.1rem; border:1px solid #dce7ea; border-radius:20px; background:#fff; box-shadow:0 12px 32px rgba(20,57,72,.08); }
.employee-access-security-notice { display:flex; margin:0; padding:.75rem .85rem; align-items:flex-start; gap:.65rem; border-radius:12px; }
.employee-access-security-notice p { margin:0; font-size:.78rem; line-height:1.45; }
.employee-access-warning-icon { display:grid; width:24px; height:24px; flex:0 0 24px; place-items:center; border-radius:50%; color:#76550f; background:rgba(255,255,255,.58); font-size:.78rem; font-weight:900; }
.employee-access-credentials-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }
.employee-access-credential-field { display:grid; min-width:0; padding:.85rem .9rem; gap:.32rem; border:1px solid #d8e5e8; border-radius:14px; color:#294550; background:#f6fafb; cursor:text; transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease; }
.employee-access-credential-field > span { display:block; color:#617983; font-size:.62rem; font-weight:850; letter-spacing:.075em; text-transform:uppercase; }
.employee-access-credential-field:focus-within { border-color:var(--teal); background:#fff; box-shadow:0 0 0 3px rgba(19,138,131,.16); }
.employee-access-credential-input { width:100%; min-width:0; padding:0; border:0; outline:0; color:#173d57; background:transparent; font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace; font-size:1rem; font-weight:750; line-height:1.45; }
.employee-access-copy-action { display:flex; padding:.1rem 0; align-items:center; flex-wrap:wrap; gap:.75rem; }
.employee-access-copy-action .btn { flex:0 0 auto; }
.employee-access-copy-action [data-copy-access-status] { min-height:1.25rem; font-size:.76rem; font-weight:700; }
.employee-access-secondary-actions { display:flex; padding-top:1rem; align-items:center; flex-wrap:wrap; gap:.65rem; border-top:1px solid #e4ecee; }
@media (max-width:767.98px) {
    .employee-access-credentials-grid { grid-template-columns:minmax(0,1fr); gap:.8rem; }
    .employee-access-secondary-actions .btn { flex:1 1 100%; }
}
@media (max-width:575.98px) {
    .employee-access-confirmation-header { margin-bottom:.8rem; }
    .employee-access-credentials-card { padding:1rem; gap:1rem; border-radius:16px; }
}

.password-generator-input { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; align-items:stretch; }
.password-generator-input .btn { min-width:5rem; }
.password-generator-actions { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.65rem; }
.password-generator-status { margin-top:.55rem; color:var(--teal-dark); font-size:.8rem; font-weight:700; }
.password-generator-status.is-error { color:#8d3226; }
@media (max-width:575.98px) {
    .password-generator-input { grid-template-columns:1fr; }
    .password-generator-input .btn,.password-generator-actions .btn { width:100%; }
    .password-generator-actions { display:grid; grid-template-columns:1fr; }
}
.table-actions { display:flex; align-items:center; justify-content:flex-end; gap:.35rem; }.table-actions .user-action-button { display:inline-flex; min-height:34px; margin:0; padding:.35rem .55rem; align-items:center; border:1px solid #9ecfcb; border-radius:8px; color:var(--teal); background:#fff; font-size:.62rem; font-weight:800; text-decoration:none; }.table-actions button.user-action-button { cursor:pointer; }.table-actions .user-action-button.is-password { color:#405b65; border-color:#cad5d8; background:#f6f8f9; }.table-actions .user-action-button.is-danger { color:#9b5144; border-color:#edc6be; background:var(--coral-soft); }.table-actions .user-action-button.is-success { color:#0c716b; border-color:#a9d6d2; background:var(--teal-soft); }

@media (min-width:768px) {
    .employee-welcome,.employee-location-status,.employee-next-shift,.employee-week-summary,.employee-page-heading,.employee-week-nav,.employee-week-total,.employee-schedule-groups,.employee-availability-list,.employee-profile-card,.employee-profile-details,.employee-password-card,.employee-empty-state { max-width:900px; margin-left:auto; margin-right:auto; }
    .employee-schedule-groups { grid-template-columns:1fr 1fr; }.employee-availability-list { grid-template-columns:1fr 1fr; }.employee-profile-details { grid-template-columns:1fr 1fr; }.employee-password-card { display:grid; grid-template-columns:.8fr 1.2fr; gap:1.5rem; }.employee-password-card form { margin:0; padding:0 0 0 1.5rem; border-top:0; border-left:1px solid var(--line); }
}

/* Scheduler semanal */
.scheduler-hero { display:flex; margin-bottom:1rem; align-items:flex-end; justify-content:space-between; gap:1rem; }
.scheduler-hero h2 { margin:0; font-size:clamp(1.45rem,4vw,2rem); font-weight:780; letter-spacing:-.035em; }
.scheduler-hero p:last-child { margin:.3rem 0 0; color:var(--muted); font-size:.78rem; }
.schedule-status { padding:.45rem .8rem; border-radius:99px; font-size:.7rem; font-weight:850; text-transform:uppercase; }
.schedule-status.draft { color:#87631f; background:#fff0c8; }
.schedule-status.published { color:#0c716b; background:var(--teal-soft); }
.schedule-status.partial { color:#87631f; background:#fff0c8; }
.scheduler-toolbar { display:grid; margin-bottom:1rem; gap:.8rem; }
.week-navigation { display:flex; overflow-x:auto; gap:.4rem; }
.week-navigation .btn { flex:0 0 auto; font-size:.72rem; }
.scheduler-selectors { display:grid; grid-template-columns:1fr 1fr; gap:.6rem; }
.scheduler-selectors label { color:var(--muted); font-size:.65rem; font-weight:750; }
.publication-progress { margin-bottom:1rem; padding:.85rem 1rem; border:1px solid var(--line); border-radius:14px; background:#fff; }
.publication-progress > strong { display:block; margin-bottom:.55rem; font-size:.7rem; }
.publication-progress > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:.65rem; }
.publication-location-card { display:flex; min-width:0; padding:.75rem; align-items:center; justify-content:space-between; gap:.65rem; border:1px solid #e3eaec; border-radius:11px; color:var(--ink); background:#f8fafb; text-decoration:none; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease; }
.publication-location-card:hover { border-color:#8bcac5; color:var(--ink); background:#f1faf9; box-shadow:0 6px 16px rgba(13,143,135,.1); transform:translateY(-1px); }
.publication-location-card:focus-visible { outline:3px solid rgba(19,138,131,.3); outline-offset:2px; }
.publication-location-card.is-current { border-color:#65b8b1; background:#e9f7f5; box-shadow:inset 4px 0 0 var(--teal); }
.publication-location-copy { display:grid; min-width:0; gap:.2rem; }
.publication-location-copy > strong { overflow:hidden; font-size:.86rem; text-overflow:ellipsis; white-space:nowrap; }
.publication-location-copy > small { color:var(--muted); font-size:.8rem; }
.publication-location-arrow { flex:0 0 auto; color:var(--teal); font-size:1.35rem; font-weight:700; line-height:1; }
.publication-location-card b { color:var(--ink); }
.publication-item { display:inline-flex; align-items:center; gap:.3rem; color:var(--muted); font-size:.65rem; }
.publication-item i { width:7px; height:7px; border-radius:50%; background:#aebbc0; }
.publication-item.draft i { background:var(--gold); }
.publication-item.published i { background:var(--teal); }
.scheduler-stats { display:grid; margin-bottom:1rem; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
.scheduler-stats article { padding:.8rem; border:1px solid var(--line); border-radius:13px; background:#fff; }
.scheduler-stats span,.scheduler-stats strong { display:block; }
.scheduler-stats span { color:var(--muted); font-size:.6rem; }
.scheduler-stats strong { margin-top:.1rem; font-size:1.15rem; }
.scheduler-actions-bar { display:flex; margin:1rem 0; overflow-x:auto; gap:.5rem; }
.scheduler-actions-bar .btn { flex:0 0 auto; }
.scheduler-view-empty { margin:1rem 0; padding:.85rem 1rem; border:1px dashed #b5c6ca; border-radius:12px; color:var(--muted); background:#fbfcfc; font-size:.78rem; }
.schedule-anchor { display:block; height:0; scroll-margin-top:1rem; }
.desktop-scheduler { width:100%; min-width:0; gap:1rem; }
.schedule-block { width:100%; min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.schedule-block > header { padding:.85rem 1rem; border-bottom:1px solid var(--line); background:#f8fafb; }
.schedule-block-header { display:grid; align-items:start; gap:.8rem; }
.schedule-block-header > div:first-child > p:last-child { margin:.4rem 0 0; color:var(--muted); font-size:.84rem; }
.schedule-block-actions { display:flex; flex-wrap:wrap; justify-content:flex-start; padding-top:.75rem; border-top:1px solid #e2eaec; gap:.5rem; }
.schedule-block-actions .btn { min-height:42px; }
.schedule-block-actions .confirmation-link { display:inline-flex; align-items:center; gap:.42rem; box-shadow:0 6px 16px rgba(13,143,135,.18); }
.schedule-block-actions .confirmation-link strong { padding:.12rem .45rem; border-radius:99px; color:#075f5a; background:#fff; font-size:.82em; }
.schedule-block-actions .confirmation-link em { padding:.12rem .45rem; border-radius:99px; color:#7a4c00; background:#fff0c8; font-size:.76em; font-style:normal; font-weight:800; }
.schedule-department-nav { display:flex; min-width:0; padding-top:.7rem; align-items:center; gap:.65rem; border-top:1px solid #e2eaec; }
.schedule-department-nav > span { flex:0 0 auto; color:#526a73; font-size:.72rem; font-weight:800; }
.schedule-department-nav > div { display:flex; min-width:0; overflow-x:auto; padding:.1rem .1rem .25rem; gap:.4rem; scrollbar-width:thin; }
.schedule-department-nav button { display:inline-flex; flex:0 0 auto; min-height:34px; padding:.35rem .65rem; align-items:center; gap:.4rem; border:1px solid #d8e5e7; border-radius:99px; color:#31515a; background:#fff; font-size:.72rem; font-weight:750; white-space:nowrap; transition:border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.schedule-department-nav button:hover { border-color:var(--department-color,var(--teal)); background:#f4f9f9; box-shadow:0 3px 10px rgba(31,71,78,.08); }
.schedule-department-nav button:focus-visible { outline:3px solid color-mix(in srgb,var(--department-color,var(--teal)) 30%,transparent); outline-offset:2px; }
.schedule-department-nav button i { width:9px; height:9px; border-radius:50%; background:var(--department-color,var(--teal)); box-shadow:0 0 0 3px color-mix(in srgb,var(--department-color,var(--teal)) 14%,transparent); }
.schedule-department-nav button small { display:inline-grid; min-width:20px; height:20px; padding:0 .3rem; place-items:center; border-radius:99px; color:#49656d; background:#edf3f4; font-size:.64rem; }
.schedule-block h3 { margin:0; font-size:.95rem; font-weight:780; }
.schedule-table-wrap { max-height:min(72vh,780px); overflow:auto; }
.schedule-table { width:100%; min-width:940px; border-collapse:collapse; table-layout:fixed; }
.schedule-table th,.schedule-table td { border-right:1px solid #e9eef0; border-bottom:1px solid #e9eef0; vertical-align:top; }
.schedule-table thead th { position:sticky; top:0; z-index:3; padding:.7rem; color:#526a73; background:#fbfcfc; font-size:.7rem; text-align:center; box-shadow:0 1px 0 #dfe7e9; }
.schedule-table thead th small { display:block; margin-top:.15rem; color:#8a9ba1; font-size:.58rem; }
.schedule-table .employee-column { position:sticky; left:0; z-index:5; width:205px; text-align:left; box-shadow:2px 0 0 #e9eef0; }
.employee-cell { position:sticky; left:0; z-index:2; padding:.7rem; background:#fbfcfc; text-align:left; box-shadow:2px 0 0 #e9eef0; }
.scheduler-employee-hit-area { position:absolute; z-index:1; inset:0; border-radius:2px; }
.scheduler-employee-hit-area:hover { background:rgba(19,138,131,.055); }
.scheduler-employee-hit-area:focus-visible { outline:3px solid rgba(19,138,131,.28); outline-offset:-3px; }
.employee-cell:has(.scheduler-employee-hit-area) { cursor:pointer; }
.scheduler-employee { position:relative; display:flex; min-width:0; align-items:center; gap:.45rem; pointer-events:none; }
.scheduler-employee-copy { min-width:0; flex:1; }
.scheduler-employee-avatar { width:30px; height:30px; flex:0 0 30px; object-fit:cover; border:2px solid #fff; border-radius:9px; box-shadow:0 2px 7px rgba(20,63,84,.16); }
.scheduler-employee-avatar.is-placeholder { display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#178d91,#286f91); font-size:.68rem; font-weight:900; }
.scheduler-return-focus .employee-cell { background:#eaf7f5; box-shadow:inset 4px 0 0 var(--teal),2px 0 0 #d8e7e8; }
.mobile-employee-availability-link { display:block; color:var(--ink); font-size:.88rem; font-weight:800; text-decoration:none; }
.mobile-employee-availability-link:hover,.mobile-employee-availability-link:focus-visible { color:var(--teal); text-decoration:underline; }
.mobile-employee-day.scheduler-return-focus { border-color:#8dcac5; box-shadow:inset 4px 0 0 var(--teal); }
.department-table-header th { padding:0; background:#f4f8f9; }
.department-table-header.is-navigation-target th { animation:department-navigation-highlight 1.35s ease; }
@keyframes department-navigation-highlight { 0%,100% { background:#f4f8f9; } 28% { background:color-mix(in srgb,var(--department-color,var(--teal)) 19%,#fff); } }
.department-toggle { display:grid; width:100%; min-height:44px; padding:.55rem .75rem; border:0; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:.45rem; color:#26454e; background:transparent; font-size:.72rem; font-weight:780; text-align:left; }
.department-toggle:hover { background:#edf5f5; }
.department-toggle small { color:#60777f; font-size:.59rem; font-weight:600; white-space:nowrap; }
.department-toggle small b { color:#365761; font-weight:780; }
.department-color-dot { width:10px; height:10px; border-radius:50%; background:var(--department-color,var(--teal)); box-shadow:0 0 0 3px color-mix(in srgb,var(--department-color,var(--teal)) 16%,transparent); }
.department-toggle-icon { color:#6f858c; font-size:1rem; transition:transform .16s ease; }
.department-toggle[aria-expanded="false"] .department-toggle-icon { transform:rotate(-90deg); }
.scheduler-employee strong,.scheduler-employee small,.scheduler-employee em { display:block; }
.scheduler-employee strong { font-size:.76rem; }
.scheduler-employee small { margin-top:.15rem; color:var(--muted); font-size:.57rem; font-weight:500; }
.scheduler-employee em { margin-top:.25rem; color:#597079; font-size:.57rem; font-style:normal; font-weight:650; }
.scheduler-employee-subline { display:flex; min-width:0; margin-top:.18rem; align-items:center; justify-content:space-between; gap:.35rem; }
.scheduler-employee-subline small { display:flex; min-width:0; margin:0; overflow:hidden; flex:1 1 auto; align-items:center; gap:.18rem; white-space:nowrap; }
.scheduler-employee-position { min-width:0; overflow:hidden; flex:1 1 auto; text-overflow:ellipsis; white-space:nowrap; }
.scheduler-employee-separator,.scheduler-employee-location { flex:0 0 auto; white-space:nowrap; }
.scheduler-employee-subline em { flex:0 0 auto; margin:0; color:#365761; font-size:.72rem; font-weight:750; line-height:1.3; letter-spacing:.01em; white-space:nowrap; }
.hours-progress { height:5px; margin-top:.45rem; overflow:hidden; border-radius:99px; background:#e7edef; }
.hours-progress span { display:block; height:100%; min-width:0; border-radius:inherit; transition:width .18s ease; }
.hours-progress span.under-20 { background:#79cf72; }
.hours-progress span.from-20 { background:#f4df18; }
.hours-progress span.from-30 { background:#52c7e8; }
.hours-progress span.from-40 { background:#b95017; }
.hours-color-legend { display:flex; margin:0 0 1rem; padding:.7rem .85rem; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.65rem; border:1px solid var(--line); border-radius:12px; background:#fff; }
.hours-color-legend > strong { color:#405b64; font-size:.68rem; }
.hours-color-legend > div { display:flex; flex-wrap:wrap; gap:.4rem; }
.hours-color-legend span { display:inline-flex; padding:.28rem .5rem; align-items:center; gap:.35rem; border-radius:99px; color:#29444d; background:#f5f8f9; font-size:.58rem; font-weight:750; }
.hours-color-legend span::before { width:9px; height:9px; border-radius:50%; content:""; }
.hours-color-legend span.under-20::before { background:#79cf72; }
.hours-color-legend span.from-20::before { background:#f4df18; }
.hours-color-legend span.from-30::before { background:#52c7e8; }
.hours-color-legend span.from-40::before { background:#b95017; }
.shift-cell { position:relative; display:grid; min-height:112px; padding:.35rem; align-content:start; gap:.35rem; }
.calendar-shift { position:relative; padding:.5rem; border:1px solid rgba(21,150,105,.14); border-left:4px solid #159669; border-radius:9px; background:#f0faf5; box-shadow:0 3px 10px rgba(25,54,63,.035); }
.calendar-shift.availability-preferred { border-left-color:#159669; background:#f0faf5; }
.calendar-shift.availability-unavailable,.calendar-shift.availability-outside { border-left-color:var(--coral); background:var(--coral-soft); }
.calendar-shift.availability-undefined { border-color:#f0d49a; border-left-color:#d39424; background:#fff8e8; }
.calendar-shift[role="button"] { cursor:pointer; }
.calendar-shift[role="button"]:hover { box-shadow:0 5px 14px rgba(25,54,63,.1); transform:translateY(-1px); }
.calendar-shift[role="button"]:focus-visible { outline:3px solid rgba(19,138,131,.28); outline-offset:2px; }
.shift-compact-line { display:flex; min-width:0; align-items:center; gap:.3rem; }
.shift-compact-line > strong { min-width:0; overflow:hidden; font-size:.68rem; font-weight:820; letter-spacing:-.015em; text-overflow:ellipsis; white-space:nowrap; }
.shift-compact-line > strong > span { color:#7b9097; }
.shift-compact-line > strong em { font-size:.6rem; font-style:normal; font-weight:760; }
.shift-compact-line > small { margin-left:auto; padding:.08rem .25rem; border-radius:5px; color:#87631f; background:#fff0c8; font-size:.5rem; font-weight:800; }
.shift-status-dot { width:9px; height:9px; flex:0 0 auto; border:2px solid #fff; border-radius:50%; background:#159669; box-shadow:0 0 0 1px #8fd2b9; }
.availability-preferred .shift-status-dot { background:#159669; box-shadow:0 0 0 1px #8fd2b9; }
.availability-undefined .shift-status-dot { background:#d39424; box-shadow:0 0 0 1px #e7c474; }
.availability-unavailable .shift-status-dot,.availability-outside .shift-status-dot { background:var(--coral); box-shadow:0 0 0 1px #e9a99d; }
.shift-compact-meta { margin-top:.28rem; overflow:hidden; color:#31545d; font-size:.62rem; font-weight:740; text-overflow:ellipsis; white-space:nowrap; }
.shift-time { display:flex; align-items:center; justify-content:space-between; gap:.3rem; }
.shift-time strong { font-size:.64rem; }
.shift-time span { padding:.1rem .25rem; border-radius:5px; color:#87631f; background:#fff0c8; font-size:.5rem; }
.shift-summary { display:flex; margin-top:.25rem; align-items:center; justify-content:space-between; gap:.35rem; }
.calendar-shift p { margin:0; min-width:0; overflow:hidden; font-size:.62rem; font-weight:730; text-overflow:ellipsis; white-space:nowrap; }
.shift-summary > strong { flex:0 0 auto; padding:.16rem .32rem; border-radius:6px; color:#31545d; background:rgba(255,255,255,.72); font-size:.53rem; font-weight:800; }
.calendar-shift > small { display:block; color:var(--muted); font-size:.52rem; }
.shift-location { margin-top:.16rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.shift-availability { display:inline-flex; margin-top:.3rem; padding:.14rem .32rem; align-items:center; gap:.26rem; border-radius:99px; color:#526a73; background:rgba(255,255,255,.68); font-size:.51rem; font-weight:700; }
.shift-availability::before { width:5px; height:5px; flex:0 0 auto; border-radius:99px; background:var(--teal); content:""; }
.availability-preferred .shift-availability::before { background:var(--gold); }
.availability-unavailable .shift-availability::before,.availability-outside .shift-availability::before { background:var(--coral); }
.availability-undefined .shift-availability::before { background:#8a9ba1; }
.shift-buttons { display:flex; margin-top:.35rem; gap:.5rem; }
.shift-buttons button { padding:0; border:0; color:var(--teal); background:transparent; font-size:.52rem; font-weight:750; }
.shift-buttons button:last-child { color:#a04e40; }
.cell-add { display:grid; width:25px; height:25px; place-items:center; border:1px dashed #aabcc1; border-radius:7px; color:var(--teal); background:#fff; font-size:.9rem; }
.shift-cell.is-empty { align-content: center; justify-items: center; }
.mobile-day-tabs { display:flex; margin-bottom:.7rem; overflow-x:auto; gap:.35rem; }
.mobile-day-tab-group { flex:0 0 auto; padding:.35rem; border:1px solid var(--line); border-radius:12px; background:#f7fafb; }
.mobile-day-tab-group > span { display:block; margin:0 .2rem .3rem; color:var(--muted); font-size:.52rem; font-weight:780; letter-spacing:.04em; text-transform:uppercase; }
.mobile-day-tab-group > div { display:flex; gap:.3rem; }
.mobile-day-tabs button { min-width:58px; padding:.5rem; border:1px solid var(--line); border-radius:10px; color:#526a73; background:#fff; font-size:.68rem; font-weight:760; }
.mobile-day-tabs button small { display:block; color:#8a9ba1; font-size:.52rem; }
.mobile-day-tabs button.active { color:var(--teal); border-color:#8dc9c5; background:var(--teal-soft); }
.mobile-day-panel > header { display:flex; margin-bottom:.6rem; align-items:center; justify-content:space-between; }
.mobile-day-panel h3 { margin:0; font-size:1rem; }
.mobile-day-panel > header span { color:var(--muted); font-size:.65rem; }
.mobile-employee-schedule { display:grid; gap:.55rem; }
.mobile-department { display:grid; gap:.45rem; }
.mobile-department > .department-toggle { border:1px solid var(--line); border-left:4px solid var(--department-color,var(--teal)); border-radius:11px; background:#f8fafb; }
.mobile-employee-day { padding:.8rem; border:1px solid var(--line); border-radius:13px; background:#fff; }
.mobile-employee-head { display:flex; align-items:center; justify-content:space-between; }
.mobile-employee-head>div { min-width:0; flex:1 1 auto; }
.mobile-employee-head strong,.mobile-employee-head small { display:block; }
.mobile-employee-head strong { font-size:.78rem; }
.mobile-employee-head small { color:var(--muted); font-size:.57rem; font-weight:650; line-height:1.35; }
.mobile-department-label { display:block; margin-bottom:.14rem; color:var(--department-color,var(--teal)); font-size:.52rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.mobile-employee-head button { display:grid; width:44px; height:44px; place-items:center; border:0; border-radius:10px; color:#fff; background:var(--teal); font-size:1.1rem; }
.mobile-scheduler-employee-identity { display:flex; min-width:0; align-items:center; gap:.55rem; }
.mobile-scheduler-employee-identity>div { min-width:0; flex:1; }
.mobile-scheduler-employee-avatar { display:grid; width:42px; height:42px; flex:0 0 42px; place-items:center; overflow:hidden; color:#fff; border-radius:12px; background:linear-gradient(145deg,#178d91,#286f91); font-size:.82rem; font-weight:900; text-decoration:none; }
.mobile-scheduler-employee-avatar img { width:100%; height:100%; object-fit:cover; }
.mobile-scheduler-employee-name { display:block; overflow:hidden; color:#112845; font-size:.78rem; font-weight:800; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.mobile-scheduler-employee-name:hover,.mobile-scheduler-employee-name:focus-visible { color:#0d7d7c; text-decoration:underline; }
.mobile-scheduler-employee-subline { display:flex!important; min-width:0; margin-top:.12rem; align-items:center; justify-content:space-between; gap:.35rem; }
.mobile-scheduler-employee-meta { display:flex; min-width:0; overflow:hidden; flex:1 1 auto; align-items:center; gap:.18rem; white-space:nowrap; }
.mobile-scheduler-employee-subline em { flex:0 0 auto; padding:0 .32rem; border:1px solid #bed5e2; border-radius:999px; color:#183a5f; background:rgba(255,255,255,.72); font-size:.57rem; font-style:normal; font-weight:820; line-height:1.1; white-space:nowrap; }
.mobile-shift-line { display:grid; margin-top:.55rem; padding:.55rem; grid-template-columns:1fr auto; border-left:4px solid var(--teal); border-radius:9px; background:#f3f7f8; }
.mobile-shift-line.availability-preferred { border-left-color:#159669; background:#f0faf5; }
.mobile-shift-line.availability-unavailable,.mobile-shift-line.availability-outside { border-left-color:var(--coral); background:var(--coral-soft); }
.mobile-shift-line.availability-undefined { border-left-color:#d39424; background:#fff8e8; }
.mobile-shift-line strong { font-size:.67rem; }
.mobile-shift-line span { grid-column:1; color:var(--muted); font-size:.55rem; }
.mobile-shift-actions { display:grid; grid-row:1/3; grid-column:2; align-content:center; justify-items:end; gap:.2rem; }
.mobile-shift-actions button { min-height:34px; padding:.3rem .45rem; border:0; border-radius:7px; color:var(--teal); background:#e6f3f2; font-size:.62rem; font-weight:750; }
.mobile-shift-actions button:last-child { color:#a04e40; }
.no-shifts { margin:.5rem 0 0; color:var(--muted); font-size:.65rem; }
.schedule-totals-grid { display:grid; margin-top:1rem; gap:1rem; }
.schedule-totals-grid h3 { margin:0 0 .7rem; font-size:.9rem; }
.total-line { display:flex; padding:.42rem 0; align-items:center; justify-content:space-between; border-top:1px solid #edf1f2; font-size:.68rem; }
.total-line span { color:var(--muted); }
.scheduler-modal { overflow-y:auto; align-items:start; padding-block:2rem; }
.scheduler-modal-card { width:min(100%,780px); padding:1.2rem; border-radius:20px; background:#fff; box-shadow:0 25px 70px rgba(0,0,0,.25); }
.modal-heading { display:flex; margin-bottom:1rem; align-items:start; justify-content:space-between; }
.modal-heading h3 { margin:0; font-size:1.2rem; }
.modal-heading button { display:grid; width:34px; height:34px; place-items:center; border:0; border-radius:9px; color:#6f8289; background:#eef2f3; font-size:1.2rem; }
.smart-time-picker { display:grid; grid-template-columns:56px 8px 62px minmax(72px,1fr); align-items:center; gap:.3rem; }
.smart-time-picker > span { color:#6d8188; font-size:1rem; font-weight:850; text-align:center; }
.smart-time-picker .form-select { min-width:0; min-height:42px; padding:.55rem 1.45rem .55rem .5rem; background-position:right .4rem center; background-size:11px 8px; font-size:.78rem; font-weight:760; }
.scheduler-shift-time-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(140px,.55fr); gap:1rem; }
.scheduler-shift-time-fields > div { min-width:0; }
.scheduler-shift-time-fields .form-label { display:block; margin-bottom:.4rem; }
.scheduler-shift-time-fields > div:last-child .form-control { min-height:42px; }
.scheduler-shift-time-options { display:flex; align-items:flex-start; flex-wrap:wrap; gap:.55rem 1.25rem; }
.scheduler-shift-time-options > div { display:grid; gap:.2rem; }
@media (max-width: 640px) { .scheduler-shift-time-fields { grid-template-columns:1fr; gap:.8rem; } .scheduler-shift-time-options { align-items:stretch; flex-direction:column; gap:.5rem; } }
.smart-time-period { display:grid; padding:3px; grid-template-columns:1fr 1fr; gap:2px; border:1px solid var(--line); border-radius:10px; background:#f1f5f6; }
.smart-time-period button { min-height:34px; padding:.25rem .32rem; border:0; border-radius:7px; color:#667c84; background:transparent; font-size:.68rem; font-weight:850; }
.smart-time-period button[aria-pressed="true"] { color:#fff; background:var(--teal); box-shadow:0 3px 8px rgba(19,138,131,.2); }
.smart-time-picker:focus-within { border-radius:11px; box-shadow:0 0 0 3px rgba(19,138,131,.1); }
.smart-time-note { display:block; margin-top:.28rem; color:#7c9097; font-size:.58rem; }
.scheduler-locked-employee { display:grid; min-height:42px; padding:.38rem .45rem; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:.6rem; border:1px solid #b7ddda; border-radius:11px; background:#f1faf9; }
.scheduler-locked-employee[hidden] { display:none; }
.scheduler-locked-employee > span { display:grid; width:34px; height:34px; place-items:center; border-radius:50%; color:#fff; background:var(--teal); font-size:.72rem; font-weight:900; }
.scheduler-locked-employee > div { min-width:0; }
.scheduler-locked-employee strong,.scheduler-locked-employee small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scheduler-locked-employee strong { color:var(--ink); font-size:.76rem; }
.scheduler-locked-employee small { margin-top:.05rem; color:#6d8188; font-size:.56rem; }
.scheduler-locked-employee button { min-height:30px; padding:.35rem .55rem; border:1px solid #a9d4d1; border-radius:8px; color:#08766f; background:#fff; font-size:.62rem; font-weight:800; }
.scheduler-locked-employee button:hover,.scheduler-locked-employee button:focus-visible { border-color:var(--teal); background:var(--teal-soft); }
.scheduler-locked-position { display:grid; min-height:42px; padding:.38rem .45rem; grid-template-columns:34px minmax(0,1fr) auto; align-items:center; gap:.6rem; border:1px solid #cbdedf; border-radius:11px; background:#f6f9f9; }
.scheduler-locked-position[hidden] { display:none; }
.scheduler-locked-position > span { display:grid; width:34px; height:34px; place-items:center; border-radius:10px; color:#08766f; background:#dff2f0; font-size:.72rem; font-weight:900; }
.scheduler-locked-position > div { min-width:0; }
.scheduler-locked-position strong,.scheduler-locked-position small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.scheduler-locked-position strong { color:var(--ink); font-size:.76rem; }
.scheduler-locked-position small { margin-top:.05rem; color:#6d8188; font-size:.56rem; }
.scheduler-locked-position button { min-height:30px; padding:.35rem .55rem; border:1px solid #c2d9da; border-radius:8px; color:#08766f; background:#fff; font-size:.62rem; font-weight:800; }
.scheduler-locked-position button:hover,.scheduler-locked-position button:focus-visible { border-color:var(--teal); background:var(--teal-soft); }
.scheduler-position-context { display:block; margin-top:.4rem; padding-left:.55rem; border-left:4px solid var(--position-color,var(--teal)); color:#526a73; font-size:.65rem; font-weight:750; }
.published-adjustment-card { width:min(100%,690px); }
.published-shift-person { display:grid; margin-bottom:1rem; padding:.7rem; grid-template-columns:42px minmax(0,1fr); align-items:center; gap:.7rem; border:1px solid #b7ddda; border-radius:13px; background:#f1faf9; }
.published-shift-person > span { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; color:#fff; background:var(--teal); font-size:.82rem; font-weight:900; }
.published-shift-person strong,.published-shift-person small { display:block; }
.published-shift-person strong { font-size:.9rem; }
.published-shift-person small { margin-top:.1rem; color:#60777f; font-size:.64rem; }
.published-adjustment-options { display:grid; margin-bottom:1rem; grid-template-columns:1fr 1fr; gap:.55rem; }
.published-adjustment-options label { display:flex; min-height:44px; padding:.65rem .75rem; align-items:center; gap:.5rem; border:1px solid var(--line); border-radius:11px; color:#365761; background:#fff; font-size:.72rem; font-weight:800; cursor:pointer; }
.published-adjustment-options label:has(input:checked) { color:#08766f; border-color:#8dcac5; background:var(--teal-soft); }
.published-adjustment-options label.is-cancel:has(input:checked) { color:#9b4337; border-color:#efb4a9; background:var(--coral-soft); }
.published-position-field { margin-top:1rem; }
.published-notification-preview { margin-top:1rem; padding:.85rem 1rem; border:1px solid #c5dddd; border-radius:12px; background:#f7fbfb; }
.published-notification-preview > span { display:block; margin-bottom:.35rem; color:var(--teal); font-size:.6rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.published-notification-preview p { margin:0; color:#365761; font-size:.72rem; line-height:1.5; }
.published-server-message { margin-top:.75rem; padding:.7rem .8rem; border:1px solid var(--line); border-radius:10px; color:#48656c; background:#f5f8f8; font-size:.76rem; font-weight:800; }
.published-server-message.is-working { color:#35666b; border-color:#b8d9d6; background:#f1f9f8; }
.published-server-message.is-success { color:#087269; border-color:#8fd2c9; background:#eaf8f5; }
.published-server-message.is-warning { color:#845b13; border-color:#ebcf91; background:#fff7df; }
.published-server-message.is-error { color:#9b3f35; border-color:#efb0a8; background:#fff0ed; }
.calendar-shift[data-adjust-published-shift] { cursor:pointer; }
.calendar-shift[data-adjust-published-shift]:hover { box-shadow:0 6px 16px rgba(11,65,72,.13); transform:translateY(-1px); }
.mobile-shift-line[data-adjust-published-shift] { cursor:pointer; }
.mobile-shift-line[data-adjust-published-shift]:hover,.mobile-shift-line[data-adjust-published-shift]:focus-visible { outline:2px solid rgba(19,138,131,.28); outline-offset:2px; }
.shift-notice-status { display:inline-flex; margin:.28rem .25rem .08rem; padding:.2rem .42rem; align-items:center; border:1px solid transparent; border-radius:999px; font-size:.55rem; font-weight:900; line-height:1.1; white-space:nowrap; }
.shift-notice-status.is-pending { color:#845b13; border-color:#ecd28f; background:#fff6dc; }
.shift-notice-status.is-read { color:#23637a; border-color:#a9d4df; background:#edf8fb; }
.shift-notice-status.is-acknowledged { color:#087269; border-color:#8fd2c9; background:#eaf8f5; }
.shift-notice-status.is-no-account { color:#9b3f35; border-color:#efb0a8; background:#fff0ed; }
.point-change-report { margin-top:1rem; }
.point-change-report-list { display:grid; }
.point-change-report-list article { display:grid; padding:.7rem 0; grid-template-columns:minmax(180px,1fr) auto minmax(130px,.45fr) minmax(130px,.45fr); align-items:center; gap:.7rem; border-top:1px solid #edf1f2; }
.point-change-report-list article:first-child { border-top:0; }
.point-change-report-list strong,.point-change-report-list small { display:block; }
.point-change-report-list article>div:first-child strong { color:var(--ink); font-size:.8rem; }
.point-change-report-list small { color:var(--muted); font-size:.61rem; }
.point-change-report-list .point-change-detail { margin:.24rem 0 0; color:#31515a; font-size:.7rem; font-weight:700; line-height:1.35; }
.point-change-report-list article>div:not(:first-child) strong { margin-top:.1rem; font-size:.68rem; }
@media(max-width:767.98px){.point-change-report-list article{grid-template-columns:minmax(0,1fr) auto}.point-change-report-list article>div:nth-last-child(-n+2){display:none}}
.live-notification-toast { position:fixed; z-index:1200; top:78px; right:18px; display:flex; width:min(390px,calc(100vw - 28px)); overflow:hidden; border:1px solid #9bd8d2; border-left:5px solid var(--teal); border-radius:14px; background:#fff; box-shadow:0 18px 45px rgba(7,49,57,.2); animation:notification-arrive .22s ease-out; }
.live-notification-copy { flex:1; padding:.85rem 1rem; text-align:left; color:var(--ink); border:0; background:transparent; cursor:pointer; }
.live-notification-copy span { display:block; margin-bottom:.18rem; color:var(--teal); font-size:.65rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.live-notification-copy strong { display:block; margin-bottom:.2rem; font-size:.92rem; }
.live-notification-copy p { margin:0; color:#496770; font-size:.76rem; line-height:1.45; }
.live-notification-close { width:40px; align-self:stretch; color:#6b858c; border:0; background:#f6faf9; font-size:1.25rem; }
.employee-live-notice { display:flex; margin:0 0 .85rem; padding:.8rem .9rem; align-items:flex-start; gap:.7rem; color:#0a5f5a; border:1px solid #8fd2cc; border-left:5px solid var(--teal); border-radius:13px; background:#effaf8; text-decoration:none; box-shadow:0 8px 22px rgba(10,92,88,.09); }
.employee-live-notice>span { margin-top:.1rem; font-size:1rem; }
.employee-live-notice>div { flex:1; min-width:0; }
.employee-live-notice small { display:block; color:#11847d; font-size:.61rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.employee-live-notice strong { display:block; margin:.1rem 0; color:var(--ink); font-size:.83rem; }
.employee-live-notice p { margin:0; color:#42656c; font-size:.72rem; line-height:1.4; }
.employee-live-notice>b { align-self:center; font-size:.7rem; }
@keyframes notification-arrive { from { opacity:0; transform:translateY(-10px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:575.98px){.live-notification-toast{top:68px;right:14px}.live-notification-copy{padding:.75rem .85rem}}
@media(max-width:575.98px){.published-adjustment-options{grid-template-columns:1fr}.published-adjustment-card{padding:1rem}}
.scheduler-warning { margin-top:1rem; padding:.7rem; border:1px solid #efd8a4; border-radius:10px; color:#72571c; background:#fff6dc; font-size:.68rem; }
.scheduler-warning.is-clear { color:#0b6b4f; border-color:#a9dec9; background:#edf9f4; }
.scheduler-warning.is-warning { color:#72571c; border-color:#efd08c; background:#fff4d8; }
.scheduler-modal .shift-preview { grid-template-columns:repeat(2,1fr); }
.modal-actions { display:flex; margin-top:1rem; justify-content:flex-end; gap:.5rem; }
.scheduler-delete-shift { margin-right:auto; }
.publish-facts { display:grid; margin:1rem 0; grid-template-columns:repeat(2,1fr); gap:.5rem; }
.publish-facts span { padding:.55rem; border-radius:9px; color:var(--muted); background:#f3f6f7; font-size:.62rem; }
.publish-facts strong { display:block; color:var(--ink); font-size:.82rem; }

@media (min-width:768px){
    .scheduler-toolbar { grid-template-columns:1fr auto; align-items:end; }
    .scheduler-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .scheduler-filter { grid-template-columns:1.4fr 1fr 1fr 1fr auto; }
    .scheduler-filter .filter-search { grid-column:auto; }
    .schedule-totals-grid { grid-template-columns:1fr 1fr; }
    .scheduler-modal .shift-preview { grid-template-columns:repeat(4,1fr); }
    .publish-facts { grid-template-columns:repeat(3,1fr); }
}
@media (min-width:992px){
    .cell-add { width:32px; height:32px; font-size:1.1rem; }
}
@media (min-width:1200px){.scheduler-stats{grid-template-columns:repeat(6,minmax(0,1fr));}}

/* Legibilidad del Scheduler */
.department-toggle:focus-visible,
.shift-buttons button:focus-visible,
.cell-add:focus-visible,
.mobile-shift-actions button:focus-visible { outline:3px solid rgba(19,138,131,.42); outline-offset:2px; }

@media (min-width:992px) {
    .brand-logo--sidebar .brand-logo__copy small { font-size:.65rem; }
    .nav-label { font-size:.72rem; }
    .nav-item { min-height:50px; font-size:.98rem; }
    .user-copy strong { font-size:.88rem; }
    .user-copy small { font-size:.76rem; }
    .topbar h1 { font-size:1.32rem; }

    .scheduler-hero p:last-child { font-size:.94rem; }
    .schedule-status { font-size:.82rem; }
    .week-navigation .btn,
    .scheduler-actions-bar .btn { min-height:42px; font-size:.95rem; }
    .scheduler-selectors label,
    .scheduler-filter .form-label { font-size:.9rem; }
    .scheduler-selectors .form-control,
    .scheduler-selectors .form-select,
    .scheduler-filter .form-control,
    .scheduler-filter .form-select { min-height:42px; font-size:.98rem; }
    .publication-progress > strong { font-size:.9rem; }
    .publication-item { font-size:.84rem; }
    .scheduler-stats span { font-size:.8rem; }
    .scheduler-stats strong { font-size:1.35rem; }
    .scheduler-view-empty,
    .scheduler-warning { font-size:.82rem; }
    .publish-facts span { font-size:.82rem; }
    .publish-facts strong { font-size:.98rem; }
    .desktop-scheduler { gap:1.25rem; }
    .schedule-block > header { padding:1rem 1.15rem; }
    .schedule-block h3 { font-size:1.08rem; }
    .schedule-table-wrap { max-height:min(74vh,860px); }
    .schedule-table { min-width:1180px; }
    .schedule-block--full_week .schedule-table { min-width:2100px; }
    .schedule-table thead th { padding:.9rem .8rem; font-size:.9rem; }
    .schedule-table thead th small { margin-top:.25rem; font-size:.8rem; }
    .schedule-table .employee-column { width:280px; }
    .employee-cell { padding:1rem; }
    .department-toggle { min-height:52px; padding:.72rem 1rem; gap:.6rem; font-size:.96rem; }
    .department-toggle small { font-size:.82rem; }
    .department-color-dot { width:12px; height:12px; }
    .department-toggle-icon { font-size:1.15rem; }
    .scheduler-employee strong { font-size:1rem; font-weight:700; }
    .scheduler-employee small { margin-top:.25rem; font-size:.84rem; line-height:1.35; }
    .scheduler-employee em { margin-top:.4rem; font-size:.82rem; line-height:1.35; }
    .hours-progress { height:7px; margin-top:.6rem; }
    .shift-cell { min-height:170px; padding:.65rem; gap:.6rem; }
    .calendar-shift { padding:.8rem; border-left-width:5px; border-radius:11px; }
    .shift-time { gap:.55rem; }
    .shift-time strong { font-size:1rem; font-weight:800; line-height:1.25; }
    .shift-time span { padding:.18rem .4rem; font-size:.76rem; }
    .shift-summary { margin-top:.4rem; }
    .calendar-shift p { font-size:.9rem; line-height:1.35; }
    .shift-summary > strong { padding:.2rem .4rem; font-size:.72rem; }
    .calendar-shift > small { font-size:.82rem; line-height:1.4; }
    .shift-availability { margin-top:.45rem; padding:.2rem .42rem; font-size:.76rem; line-height:1.2; }
    .shift-availability::before { width:7px; height:7px; }
    .shift-buttons { margin-top:.65rem; gap:.75rem; }
    .shift-buttons button { min-height:34px; padding:.2rem 0; font-size:.82rem; }
    .cell-add { width:40px; height:40px; border-radius:9px; font-size:1.25rem; }

}

@media (max-width:991.98px) {
    .schedule-block-header { align-items:stretch; flex-direction:column; }
    .schedule-block-actions { display:grid; grid-template-columns:1fr; }
    .schedule-block-actions .btn { width:100%; }
    .owner-publication-grid,.publication-progress > div { grid-template-columns:1fr; }
    .scheduler-hero p:last-child { font-size:.82rem; }
    .schedule-status { font-size:.78rem; }
    .scheduler-selectors label,
    .scheduler-filter .form-label { font-size:.82rem; }
    .scheduler-selectors .form-control,
    .scheduler-selectors .form-select,
    .scheduler-filter .form-control,
    .scheduler-filter .form-select,
    .scheduler-actions-bar .btn { min-height:42px; font-size:.94rem; }
    .publication-progress > strong { font-size:.84rem; }
    .publication-item { font-size:.78rem; }
    .scheduler-stats span { font-size:.76rem; }
    .scheduler-view-empty,
    .scheduler-warning { font-size:.8rem; }
    .mobile-day-tab-group > span,
    .mobile-day-tabs button small,
    .mobile-department-label { font-size:.75rem; }
    .mobile-day-tabs button { min-height:42px; font-size:.86rem; }
    .mobile-day-panel > header span { font-size:.82rem; }
    .department-toggle { min-height:48px; padding:.65rem .8rem; font-size:.94rem; }
    .department-toggle small { font-size:.78rem; white-space:normal; }
    .mobile-employee-day { padding:1rem; }
    .mobile-employee-head strong { font-size:1rem; }
    .mobile-employee-head small { margin-top:.22rem; font-size:.82rem; line-height:1.35; }
    .mobile-employee-head button { width:46px; height:46px; }
    .mobile-shift-line { margin-top:.7rem; padding:.75rem; gap:.35rem; }
    .mobile-shift-line strong { font-size:.96rem; line-height:1.3; }
    .mobile-shift-line span { margin-top:.15rem; font-size:.8rem; line-height:1.4; }
    .mobile-shift-actions { gap:.35rem; }
    .mobile-shift-actions button { min-height:38px; font-size:.8rem; }
    .no-shifts { font-size:.8rem; }
    .total-line { padding:.55rem 0; font-size:.84rem; }
    .publish-facts span { font-size:.8rem; }
    .publish-facts strong { font-size:.95rem; }
}

/* Disponibilidad semanal */
.availability-summary-card { grid-column: 1 / -1; }
.availability-employee-heading .back-link { display:inline-flex; margin-bottom:.65rem; }
.availability-employee-heading .eyebrow { margin:0 0 .18rem; }
.availability-employee-heading h2 { margin:0; font-size:clamp(1.8rem,3vw,2.45rem); line-height:1.08; letter-spacing:-.025em; }
.availability-employee-heading > p:last-child { margin:.42rem 0 0; color:var(--muted); }
.availability-employee-heading > p:last-child strong { color:#365761; }
.availability-summary-card .detail-card-heading h3 { margin-bottom: 0; }
.availability-summary-groups { display: grid; gap: 1rem; }
.availability-summary-group { padding: .8rem; border: 1px solid var(--line); border-radius: 13px; }
.availability-summary-group h4 { margin: 0 0 .6rem; color: var(--muted); font-size: .7rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.availability-summary-day { display: grid; padding: .55rem 0; grid-template-columns: 86px 1fr; gap: .5rem; border-top: 1px solid #edf1f2; }
.availability-summary-day:first-of-type { border-top: 0; }
.availability-summary-day > strong { font-size: .76rem; }
.availability-summary-day > div { display: flex; flex-wrap: wrap; gap: .35rem; }
.availability-summary-item, .undefined-text { display: inline-flex; padding: .22rem .5rem; border-radius: 99px; font-size: .65rem; font-weight: 700; }
.availability-summary-item.type-available { color: #0c716b; background: var(--teal-soft); }
.availability-summary-item.type-preferred { color: #87631f; background: #fff0c8; }
.availability-summary-item.type-unavailable { color: #994637; background: var(--coral-soft); }
.undefined-text { color: var(--muted); background: #eef2f3; }
.availability-form { display: grid; gap: 1rem; }
.availability-group-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.availability-group-card > header { display: flex; padding: 1rem 1.1rem; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: #f8fafb; }
.availability-group-card > header h3 { margin: 0; font-size: 1rem; font-weight: 780; }
.availability-group-card > header > span { padding: .3rem .55rem; border-radius: 99px; color: var(--teal); background: var(--teal-soft); font-size: .65rem; font-weight: 800; }
.availability-days { display: grid; grid-template-columns:1fr; }
.availability-day-card { padding: 1rem; border-top: 1px solid #edf1f2; }
.availability-day-card:first-child { border-top: 0; }
.availability-day-heading { display: flex; margin-bottom: .7rem; align-items: center; justify-content: space-between; }
.availability-day-heading strong, .availability-day-heading small { display: block; }
.availability-day-heading strong { font-size: .88rem; }
.availability-day-heading small { color: var(--muted); font-size: .63rem; }
.availability-window-list { display: grid; gap: .55rem; }
.availability-window { padding: .7rem; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfc; }
.availability-window-main { display: flex; align-items: center; gap: .5rem; }
.availability-window-main .form-select { min-width: 0; font-size: .75rem; }
.window-remove { display: grid; width: 32px; height: 32px; flex: 0 0 auto; place-items: center; border: 0; border-radius: 9px; color: #9b5144; background: var(--coral-soft); font-size: 1.1rem; }
.window-time-fields { display: grid; margin-top: .6rem; grid-template-columns: 1fr 1fr; gap: .5rem; }
.window-time-fields label { color: var(--muted); font-size: .65rem; font-weight: 700; }
.window-time-fields .next-day-check { grid-column: 1 / -1; }
.availability-time-control { min-width:0; }
.availability-time-control > span { display:block; margin-bottom:.28rem; color:var(--muted); font-size:.65rem; font-weight:700; }
.availability-time-control > small { display:block; margin-top:.22rem; color:#7c9097; font-size:.56rem; }
.availability-smart-time { max-width:330px; }
.availability-smart-time > b { color:#6d8188; font-size:1rem; text-align:center; }
.next-day-check { display: flex; align-items: center; gap: .4rem; color: #405b65; font-size: .72rem; font-weight: 700; }
.availability-empty { padding: .75rem; border: 1px dashed #c8d3d6; border-radius: 10px; color: var(--muted); background: #fafcfc; font-size: .72rem; text-align: center; }
@media (max-width:575.98px) {
    .window-time-fields { grid-template-columns:1fr; }
    .availability-smart-time { max-width:none; }
}

/* Plantillas de turnos */
.template-layout { display: grid; margin-top: 1rem; gap: 1rem; }
.template-groups { display: grid; align-content: start; gap: 1rem; }
.template-group-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.template-group-card > header { display: flex; padding: 1rem; align-items: center; justify-content: space-between; gap: .8rem; border-bottom: 1px solid var(--line); background: #f8fafb; }
.template-group-card h3 { margin: 0; font-size: 1rem; font-weight: 780; }
.day-pills { display: flex; gap: .3rem; }
.day-pills span { display: grid; min-width: 30px; height: 27px; padding: 0 .3rem; place-items: center; border-radius: 8px; color: var(--teal); background: var(--teal-soft); font-size: .6rem; font-weight: 850; }
.template-card-grid { display: grid; padding: .8rem; gap: .7rem; }
.shift-template-card { position: relative; padding: 1rem; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.shift-template-card::before { position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--template-color); content: ""; }
.shift-template-card.is-inactive { opacity: .68; }
.template-card-top { display: flex; align-items: center; justify-content: space-between; }
.template-card-top .status-badge { margin-left: auto; }
.template-code { color: var(--muted); font-size: .6rem; font-weight: 850; letter-spacing: .08em; }
.shift-template-card h4 { margin: .65rem 0 .1rem; font-size: .95rem; font-weight: 780; }
.shift-template-card > p { margin: 0; color: var(--muted); font-size: .68rem; }
.template-time { margin-top: .8rem; color: var(--ink); font-size: 1.05rem; font-weight: 800; }
.template-time small { margin-left: .35rem; padding: .18rem .35rem; border-radius: 6px; color: #87631f; background: #fff0c8; font-size: .58rem; }
.template-days { display: flex; margin-top: .55rem; flex-wrap: wrap; gap: .3rem; }
.template-days span { padding: .2rem .4rem; border-radius: 6px; color: #526a73; background: #eef3f4; font-size: .6rem; font-weight: 750; }
.template-metrics { display: grid; margin: .85rem 0; padding: .7rem 0; grid-template-columns: repeat(3, 1fr); gap: .4rem; border-block: 1px solid #edf1f2; }
.template-metrics dt { color: var(--muted); font-size: .56rem; font-weight: 700; }
.template-metrics dd { margin: .1rem 0 0; font-size: .68rem; font-weight: 780; }
.template-actions { display: flex; gap: .8rem; }
.template-actions a, .template-actions button { border: 0; color: var(--teal); background: transparent; font-size: .66rem; font-weight: 780; text-decoration: none; }
.template-actions button:last-child { color: #9b5144; }
.template-empty { padding: 2rem; color: var(--muted); font-size: .75rem; text-align: center; }
.template-form-column { min-width: 0; }
.shift-template-form { overflow: visible; }
.week-checks { display: grid; grid-template-columns: repeat(4, 1fr); gap: .35rem; }
.week-checks label { display: flex; min-height: 34px; padding: .35rem; align-items: center; justify-content: center; gap: .25rem; border: 1px solid var(--line); border-radius: 8px; color: #526a73; font-size: .63rem; font-weight: 750; cursor: pointer; }
.week-checks label:has(input:checked) { color: var(--teal); border-color: #92cbc7; background: var(--teal-soft); }
.permission-card-section { padding:clamp(1rem,2vw,1.4rem); border:1px solid #d8e4e7; border-radius:16px; background:linear-gradient(145deg,#fbfdfd,#f5f9fa); }
.permission-card-heading { display:flex; margin-bottom:1rem; padding-bottom:1rem; align-items:flex-end; justify-content:space-between; gap:1.25rem; border-bottom:1px solid #dce7e9; }
.permission-card-heading .eyebrow { margin:0 0 .25rem; color:#168a8c; font-size:.7rem; }
.permission-card-heading h3 { margin:0; color:var(--navy); font-size:clamp(1.18rem,2vw,1.4rem); font-weight:850; letter-spacing:-.015em; }
.permission-card-heading>p { max-width:470px; margin:0; color:#617780; font-size:.82rem; line-height:1.45; }
.permission-options-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:.85rem; }
.permission-option-card { display:grid; min-width:0; min-height:116px; padding:1rem; grid-column:span 2; grid-template-columns:1.3rem minmax(0,1fr); align-items:start; gap:.75rem; border:1px solid #d6e2e5; border-radius:13px; color:#294652; background:#fff; box-shadow:0 3px 10px rgba(26,70,78,.045); cursor:pointer; transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.permission-option-card:nth-child(n+4) { grid-column:span 3; }
.permission-option-card:hover { border-color:#9dc9cb; box-shadow:0 7px 17px rgba(20,91,96,.09); transform:translateY(-1px); }
.permission-option-card:has(.permission-option-control:checked) { border-color:#73bdb8; background:#f0faf8; box-shadow:inset 4px 0 0 var(--teal),0 5px 14px rgba(20,109,105,.08); }
.permission-option-control { width:1.18rem; height:1.18rem; margin:.08rem 0 0; accent-color:var(--teal); cursor:pointer; }
.permission-option-copy { display:block; min-width:0; }
.permission-option-copy strong,.permission-option-copy small { display:block; }
.permission-option-copy strong { color:#203f4c; font-size:.92rem; font-weight:820; line-height:1.3; }
.permission-option-copy small { margin-top:.4rem; color:#687d85; font-size:.78rem; font-weight:500; line-height:1.45; }
.permission-section-note { display:flex; margin:1rem 0 0; padding:.85rem 1rem; align-items:flex-start; gap:.45rem; border:1px solid #d9e5e7; border-radius:11px; color:#5c727a; background:#fff; font-size:.8rem; line-height:1.45; }
.permission-section-note strong { flex:0 0 auto; color:#365863; }
@media (max-width:1199.98px) {
    .permission-options-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .permission-option-card,.permission-option-card:nth-child(n+4) { grid-column:auto; }
    .permission-option-card:last-child { grid-column:1/-1; }
}
@media (max-width:767.98px) {
    .permission-card-heading { align-items:flex-start; flex-direction:column; gap:.45rem; }
    .permission-card-heading>p { max-width:none; }
    .permission-options-grid { grid-template-columns:1fr; gap:.7rem; }
    .permission-option-card,.permission-option-card:last-child { min-height:0; grid-column:auto; }
    .permission-section-note { flex-direction:column; gap:.18rem; }
}
.manager-schedule-access-grid { display:grid; gap:1rem; }
.manager-schedule-access-location { min-width:0; margin:0; padding:1rem; border:1px solid var(--line); border-radius:12px; }
.manager-schedule-access-location legend { width:auto; margin:0 0 .75rem; padding:0 .3rem; color:var(--navy); font-size:.9rem; font-weight:800; }
.manager-schedule-access-location .form-label { display:flex; align-items:center; gap:.4rem; }
.mobile-department[data-schedule-readonly] [data-open-shift],.mobile-department[data-schedule-readonly] .mobile-shift-actions { display:none!important; }
@media (max-width:575.98px) { .manager-schedule-access-location { padding:.85rem; } }
.shift-preview { display: grid; margin-top: 1rem; padding: .8rem; grid-template-columns: repeat(3, 1fr); gap: .5rem; border-radius: 12px; color: #fff; background: var(--navy); }
.shift-preview span, .shift-preview strong { display: block; }
.shift-preview span { color: #99b1ba; font-size: .55rem; }
.shift-preview strong { margin-top: .1rem; font-size: .68rem; }
.duplicate-dialog-card { text-align: left; }
.duplicate-dialog-card > p { margin-top: .2rem; text-align: center; }
.duplicate-mode { display: grid; margin-bottom: 1rem; grid-template-columns: 1fr 1fr; gap: .5rem; }
.duplicate-mode label { display: flex; padding: .7rem; align-items: center; gap: .4rem; border: 1px solid var(--line); border-radius: 10px; font-size: .72rem; font-weight: 750; }
.duplicate-dialog-card > div:last-child { display: flex; justify-content: flex-end; gap: .5rem; }

@media (min-width: 768px) {
    .availability-summary-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .schedule-filter { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .template-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1200px) {
    .template-layout { grid-template-columns: minmax(0, 1.55fr) minmax(330px, .65fr); gap: 1.4rem; }
    .template-form-column { position: sticky; top: 1rem; align-self: start; }
    .schedule-filter { grid-template-columns: repeat(4, minmax(130px, 1fr)) auto; }
}

/* Biblioteca profesional de plantillas */
.template-page-heading { align-items: center; }
.template-new-button { min-width: 152px; }
.template-new-button span { margin-right: .2rem; font-size: 1rem; line-height: 0; }
.template-filters { margin-bottom: 1rem; }
.template-library-card { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 10px 28px rgba(25,54,63,.045); }
.template-library-header { display: flex; min-height: 78px; padding: 1rem 1.15rem; align-items: center; justify-content: space-between; gap: 1rem; border-bottom: 1px solid var(--line); }
.template-library-header .eyebrow { margin-bottom: .25rem; color: var(--teal); }
.template-library-header h3 { margin: 0; font-size: 1rem; font-weight: 800; }
.template-library-summary { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.template-library-summary span { display: inline-flex; padding: .4rem .6rem; align-items: center; gap: .38rem; border-radius: 99px; color: #526a73; background: #f3f6f7; font-size: .65rem; font-weight: 780; }
.template-library-summary i { width: 7px; height: 7px; border-radius: 99px; background: #a6b5ba; }
.template-library-summary i.is-active { background: var(--teal); }
.template-library-summary i.is-inactive { background: #c28d82; }
.template-table-heading, .template-list-row { display: grid; grid-template-columns: minmax(220px,1.3fr) minmax(170px,.9fr) minmax(205px,1fr) minmax(145px,.75fr) 78px minmax(205px,.9fr); align-items: center; column-gap: .9rem; }
.template-table-heading { min-height: 42px; padding: 0 1.15rem; color: #71868e; background: #f8fafb; font-size: .58rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.template-table-heading-readonly, .template-list-row-readonly { grid-template-columns: minmax(220px,1.3fr) minmax(180px,.9fr) minmax(215px,1fr) minmax(160px,.8fr) 85px; }
.template-list-row { position: relative; min-height: 84px; padding: .85rem 1.15rem; border-top: 1px solid #edf1f2; transition: background-color .16s ease, box-shadow .16s ease; }
.template-list-row:first-child { border-top: 0; }
.template-list-row:hover { z-index: 1; background: #fbfdfd; box-shadow: inset 3px 0 0 var(--template-color); }
.template-list-row.is-inactive { background: #fbfbfb; }
.template-list-row.is-inactive > div:not(.template-row-actions) { opacity: .7; }
.template-list-identity { display: flex; min-width: 0; align-items: center; gap: .75rem; }
.template-color-mark { width: 10px; height: 40px; flex: 0 0 auto; border-radius: 99px; background: var(--template-color); }
.template-list-identity > div { min-width: 0; }
.template-list-identity h4 { margin: 0; overflow: hidden; font-size: .82rem; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.template-list-identity p { margin: .2rem 0 0; overflow: hidden; color: var(--muted); font-size: .64rem; text-overflow: ellipsis; white-space: nowrap; }
.template-list-identity p span { color: #b1bdc1; }
.template-list-time strong, .template-list-time small, .template-list-duration strong, .template-list-duration small { display: block; }
.template-list-time strong { font-size: .78rem; font-weight: 820; }
.template-list-time small, .template-list-duration small { margin-top: .2rem; color: var(--muted); font-size: .6rem; line-height: 1.3; }
.template-list-duration strong { font-size: .76rem; font-weight: 800; }
.template-list-days { display: flex; gap: .25rem; }
.template-list-days span { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid #e5ebed; border-radius: 7px; color: #a6b3b8; background: #fafbfb; font-size: .55rem; font-weight: 800; }
.template-list-days span.is-selected { color: #08766f; border-color: #bce0dd; background: var(--teal-soft); }
.template-row-actions { display: flex; align-items: center; justify-content: flex-end; gap: .25rem; }
.template-row-actions a, .template-row-actions button { min-height: 32px; padding: .43rem .52rem; border: 0; border-radius: 8px; color: #526a73; background: transparent; font-size: .62rem; font-weight: 790; line-height: 1; text-decoration: none; white-space: nowrap; }
.template-row-actions a:hover, .template-row-actions button:hover { color: var(--teal); background: var(--teal-soft); }
.template-row-actions .template-action-main { color: var(--teal); border: 1px solid #b5dcd9; background: #fff; }
.template-row-actions .template-action-status { color: #995244; }
.template-row-actions .template-action-status:hover { color: #8b4134; background: var(--coral-soft); }
.template-empty-state { padding: 3rem 1rem; color: var(--muted); text-align: center; }
.template-empty-state > span { display: grid; width: 48px; height: 48px; margin: 0 auto .8rem; place-items: center; border-radius: 14px; color: var(--teal); background: var(--teal-soft); font-size: 1.25rem; }
.template-empty-state h4 { margin: 0; color: var(--ink); font-size: .95rem; }
.template-empty-state p { margin: .35rem 0 1rem; font-size: .72rem; }
.template-editor-dialog { padding: 1rem; overflow-y: auto; place-items: start center; }
.template-editor-card { width: min(100%,720px); margin: auto; padding: 1.35rem; overflow: visible; border: 0; border-radius: 20px; box-shadow: 0 25px 70px rgba(0,0,0,.25); text-align: left; }
.template-editor-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.template-editor-heading .eyebrow { margin-bottom: .25rem; color: var(--teal); }
.template-editor-heading h3 { font-size: 1.25rem; }
.template-dialog-close { display: grid; width: 36px; height: 36px; flex: 0 0 auto; padding: 0; place-items: center; border: 0; border-radius: 10px; color: #60777f; background: #f1f5f6; font-size: 1.45rem; line-height: 1; text-decoration: none; }
.template-dialog-close:hover { color: var(--ink); background: #e9eff1; }
.template-editor-card .template-editor-help { margin: .35rem 0 1.15rem; font-size: .72rem; text-align: left; }
.template-editor-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .85rem 1rem; }
.template-field-wide { grid-column: 1 / -1; }
.template-paid-field { display: flex; padding-bottom: .65rem; align-items: flex-end; }
.template-color-palette { display:flex; min-height:42px; align-items:center; flex-wrap:wrap; gap:.42rem; }
.template-color-palette label { position:relative; margin:0; cursor:pointer; }
.template-color-palette input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.template-color-swatch { display:block; width:31px; height:31px; border:3px solid #fff; border-radius:50%; background:var(--palette-color); box-shadow:0 0 0 1px #cbd8db; transition:box-shadow .15s ease,transform .15s ease; }
.template-color-palette label:hover .template-color-swatch { transform:scale(1.07); box-shadow:0 0 0 2px #93b9b6; }
.template-color-palette input:checked + .template-color-swatch { box-shadow:0 0 0 3px #fff,0 0 0 5px var(--palette-color); }
.template-color-auto > span { display:inline-flex; min-height:32px; padding:.35rem .65rem; align-items:center; border:1px solid #cbd8db; border-radius:99px; color:#526a73; background:#f8fafb; font-size:.68rem; font-weight:760; transition:border-color .15s ease,background .15s ease,box-shadow .15s ease; }
.template-color-auto input:checked + span { border-color:#6bbdb6; color:#08766f; background:var(--teal-soft); box-shadow:0 0 0 2px #fff,0 0 0 4px #b9dfdc; }
.template-color-palette input:focus-visible + span { outline:3px solid rgba(19,138,131,.28); outline-offset:3px; }
.template-color-help { display:block; margin-top:.35rem; color:var(--muted); font-size:.6rem; line-height:1.35; }
.template-editor-card .week-checks { grid-template-columns: repeat(7,minmax(0,1fr)); }
.template-editor-card .shift-preview { margin-top: 1.1rem; padding: .9rem 1rem; }
.template-editor-actions { display: flex; margin-top: 1rem; justify-content: flex-end; gap: .6rem; }
.template-editor-actions .btn { min-width: 120px; }

@media (max-width: 1199.98px) {
    .template-table-heading, .template-list-row { grid-template-columns: minmax(210px,1.2fr) minmax(160px,.8fr) minmax(195px,1fr) minmax(130px,.7fr) 76px; }
    .template-table-heading > span:nth-child(6) { display: none; }
    .template-list-row { padding-bottom: 3.2rem; }
    .template-row-actions { position: absolute; right: 1rem; bottom: .65rem; }
    .template-table-heading-readonly, .template-list-row-readonly { grid-template-columns: minmax(210px,1.2fr) minmax(160px,.8fr) minmax(195px,1fr) minmax(140px,.75fr) 76px; }
    .template-list-row-readonly { padding-bottom: .85rem; }
}

@media (max-width: 767.98px) {
    .template-page-heading { align-items: flex-start; }
    .template-new-button { width: 100%; }
    .template-library-header { align-items: flex-start; flex-direction: column; }
    .template-library-summary { justify-content: flex-start; }
    .template-table-heading { display: none; }
    .template-list { display: grid; padding: .7rem; gap: .65rem; background: #f6f9f9; }
    .template-list-row, .template-list-row-readonly { display: grid; min-height: 0; padding: 1rem; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; border: 1px solid var(--line); border-radius: 14px; background: #fff; box-shadow: 0 6px 16px rgba(25,54,63,.04); }
    .template-list-row:hover { box-shadow: inset 3px 0 0 var(--template-color),0 6px 16px rgba(25,54,63,.04); }
    .template-list-identity { grid-column: 1 / -1; padding-bottom: .75rem; border-bottom: 1px solid #edf1f2; }
    .template-list-days { grid-column: 1 / -1; }
    .template-list-status { position: absolute; top: 1rem; right: 1rem; }
    .template-list-identity { padding-right: 70px; }
    .template-list-time::before, .template-list-days::before, .template-list-duration::before { display: block; margin-bottom: .3rem; color: #82949b; content: attr(data-label); font-size: .53rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
    .template-row-actions { position: static; grid-column: 1 / -1; padding-top: .7rem; justify-content: stretch; border-top: 1px solid #edf1f2; }
    .template-row-actions a, .template-row-actions button { flex: 1; text-align: center; }
    .template-list-row.is-inactive > div:not(.template-row-actions) { opacity: .82; }
    .template-editor-fields { grid-template-columns: 1fr; }
    .template-field-wide { grid-column: auto; }
    .template-editor-card .week-checks { grid-template-columns: repeat(4,minmax(0,1fr)); }
    .template-editor-actions .btn { min-width: 0; flex: 1; }
}

@media (max-width: 420px) {
    .template-list-row, .template-list-row-readonly { grid-template-columns: 1fr; }
    .template-list-time, .template-list-duration { grid-column: 1; }
    .template-list-days { grid-column: 1; }
    .template-list-days span { width: 27px; height: 27px; }
    .template-row-actions { flex-wrap: wrap; }
    .template-row-actions .template-action-status { flex-basis: 100%; }
    .template-editor-card { padding: 1rem; }
}

/* Notificaciones internas y confirmaciones de publicación */
.topbar { justify-content: flex-start; }
.topbar-actions { display: flex; margin-left: auto; align-items: center; gap: .55rem; }
.notification-bell { position: relative; display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fff; font-size: 1.15rem; text-decoration: none; }
.notification-bell:hover,.notification-bell:focus-visible,.notification-bell.active { color: var(--teal); border-color: #91ccc7; background: var(--teal-soft); }
.notification-bell:focus-visible { outline: 3px solid rgba(19,138,131,.22); outline-offset: 2px; }
.notification-bell b { position: absolute; top: -7px; right: -7px; display: grid; min-width: 22px; height: 22px; padding: 0 .3rem; place-items: center; border: 2px solid #fff; border-radius: 99px; color: #fff; background: var(--coral); font-size: .58rem; line-height: 1; }
.notification-bell b[hidden] { display:none; }
.notification-heading { align-items: center; }
.notification-filters { display: flex; margin-bottom: 1rem; padding: .35rem; overflow-x: auto; gap: .25rem; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.notification-filters a { padding: .65rem .85rem; border-radius: 9px; color: #526a73; font-size: .75rem; font-weight: 780; text-decoration: none; white-space: nowrap; }
.notification-filters a.active { color: #0c716b; background: var(--teal-soft); }
.notification-list { display: grid; gap: .7rem; }
.notification-card { display: grid; padding: 1rem; grid-template-columns: 38px minmax(0,1fr); gap: .8rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.notification-card.is-unread { border-color: #9ad0cc; box-shadow: inset 4px 0 0 var(--teal); }
.notification-card-icon { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 11px; color: var(--teal); background: var(--teal-soft); font-weight: 900; }
.notification-card-copy { min-width: 0; }
.notification-card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: .7rem; }
.notification-card-title h3 { margin: .15rem 0 0; font-size: .92rem; }
.notification-title-button { display: inline; padding: 0; border: 0; color: inherit; background: transparent; font: inherit; font-weight: inherit; text-align: left; }
.notification-title-button:hover { color: var(--teal); text-decoration: underline; text-underline-offset: 3px; }
.notification-title-button:focus-visible { border-radius: 4px; outline: 3px solid rgba(19,138,131,.2); outline-offset: 3px; }
.notification-card-copy p { margin: .45rem 0; color: #405b65; font-size: .82rem; line-height: 1.5; }
.notification-card-copy small { display: block; color: var(--muted); font-size: .66rem; }
.notification-card-actions { display: flex; grid-column: 2; flex-wrap: wrap; gap: .45rem; }
.notification-card-actions form { margin: 0; }
.notification-confirmed-state { display: inline-flex; min-height: 38px; padding: .5rem .7rem; align-items: center; gap: .3rem; border-radius: 9px; color: #0c716b; background: var(--teal-soft); font-size: .7rem; font-weight: 800; }
.notification-detail-open { overflow: hidden; }
.notification-detail-backdrop { position: fixed; z-index: 1100; inset: 0; display: grid; padding: 1rem; place-items: center; overflow-y: auto; background: rgba(9,32,40,.58); backdrop-filter: blur(3px); }
.notification-detail-backdrop[hidden] { display: none; }
.notification-detail-modal { width: min(620px,100%); max-height: calc(100vh - 2rem); padding: 1.25rem; overflow-y: auto; border: 1px solid rgba(255,255,255,.65); border-radius: 20px; background: #fff; box-shadow: 0 24px 70px rgba(8,35,44,.28); }
.notification-detail-modal:focus { outline: none; }
.notification-detail-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.notification-detail-header .eyebrow { margin-bottom: .25rem; }
.notification-detail-header h2 { margin: 0; font-size: 1.15rem; }
.notification-detail-close { display: grid; width: 40px; height: 40px; flex: 0 0 40px; padding: 0; place-items: center; border: 1px solid var(--line); border-radius: 11px; color: #405b65; background: #fff; font-size: 1.35rem; line-height: 1; }
.notification-detail-close:hover { color: var(--teal); border-color: #91ccc7; background: var(--teal-soft); }
.notification-detail-feedback { margin: 1rem 0 0; padding: .7rem .8rem; border-radius: 10px; color: #0c716b; background: var(--teal-soft); font-size: .76rem; font-weight: 750; }
.notification-detail-feedback.is-error { color: #9c392b; background: #fff0ed; }
.notification-detail-description { margin: 1rem 0; color: #365762; font-size: .85rem; line-height: 1.58; }
.notification-detail-meta { display: grid; margin: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem; }
.notification-detail-meta > div { padding: .7rem .75rem; border: 1px solid #e7edef; border-radius: 11px; background: #fbfcfc; }
.notification-detail-meta dt { color: var(--muted); font-size: .59rem; font-weight: 820; letter-spacing: .04em; text-transform: uppercase; }
.notification-detail-meta dd { margin: .18rem 0 0; color: var(--ink); font-size: .75rem; font-weight: 720; }
.notification-time-change { display: grid; margin-top: .75rem; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: .65rem; }
.notification-time-change > div { min-width: 0; padding: .8rem; border-radius: 12px; background: #f4f7f8; }
.notification-time-change > div:last-child { background: var(--teal-soft); }
.notification-time-change span,.notification-time-change strong { display: block; }
.notification-time-change > span { color: var(--muted); font-size: 1rem; }
.notification-time-change div span { color: var(--muted); font-size: .6rem; font-weight: 820; text-transform: uppercase; }
.notification-time-change strong { margin-top: .2rem; color: var(--ink); font-size: .78rem; }
.notification-manager-note { margin-top: .75rem; padding: .8rem; border-left: 4px solid var(--coral); border-radius: 0 11px 11px 0; background: #fff7f4; }
.notification-manager-note strong { color: #9b4d3e; font-size: .68rem; }
.notification-manager-note p { margin: .3rem 0 0; color: #5a4a46; font-size: .78rem; line-height: 1.5; }
.notification-detail-actions { display: flex; margin-top: 1.1rem; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .55rem; }
.notification-detail-actions > span { margin-right: auto; color: #0c716b; font-size: .75rem; font-weight: 820; }
.notification-detail-actions form { margin: 0; }
.notification-pagination { display: flex; margin-top: 1rem; flex-wrap: wrap; gap: .35rem; }
.notification-pagination a { display: grid; min-width: 36px; height: 36px; padding: 0 .4rem; place-items: center; border: 1px solid var(--line); border-radius: 9px; color: #405b65; background: #fff; font-size: .72rem; font-weight: 800; text-decoration: none; }
.notification-pagination a.active { color: #fff; border-color: var(--teal); background: var(--teal); }
.confirmation-stats { display: grid; margin-bottom: 1rem; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .65rem; }
.confirmation-stats article { padding: .9rem; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.confirmation-stats span,.confirmation-stats strong { display: block; }
.confirmation-stats span { color: var(--muted); font-size: .65rem; font-weight: 750; }
.confirmation-stats strong { margin-top: .15rem; font-size: 1.25rem; }
.confirmation-list { display: grid; }
.confirmation-list article { display: grid; padding: .85rem 0; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: .6rem; border-top: 1px solid #edf1f2; }
.confirmation-list article:first-child { border-top: 0; }
.confirmation-list article > div strong,.confirmation-list article > div small { display: block; }
.confirmation-list article > div small { color: var(--muted); font-size: .62rem; }
.confirmation-list article > div strong { font-size: .76rem; }
.mobile-block-release-cards { display: grid; margin: 1rem 0; gap: .65rem; }
.mobile-block-release-cards article { padding: .9rem; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.mobile-block-release-cards article > div:first-child strong,.mobile-block-release-cards article > div:first-child span { display: block; }
.mobile-block-release-cards article > div:first-child span { margin-top: .15rem; color: var(--muted); font-size: .68rem; }
.mobile-block-release-cards article > div:last-child { display: flex; margin-top: .7rem; flex-wrap: wrap; gap: .4rem; }
.mobile-block-release-cards .btn { min-height: 38px; font-size: .7rem; }

@media (max-width: 575.98px) {
    .notification-heading { align-items: stretch; flex-direction: column; }
    .notification-heading form,.notification-heading .btn { width: 100%; }
    .notification-card-actions { grid-column: 1 / -1; }
    .notification-card-actions form,.notification-card-actions .btn { width: 100%; }
    .notification-detail-backdrop { padding: 0; place-items: end center; }
    .notification-detail-modal { width: 100%; max-height: min(88vh,760px); padding: 1rem; border-radius: 20px 20px 0 0; }
    .notification-detail-meta { grid-template-columns: 1fr; }
    .notification-detail-actions { align-items: stretch; }
    .notification-detail-actions > span { width: 100%; margin: 0; }
    .notification-detail-actions form,.notification-detail-actions .btn { width: 100%; }
}

@media (max-width: 359.98px) {
    .notification-time-change { grid-template-columns: 1fr; }
    .notification-time-change > span { transform: rotate(90deg); text-align: center; }
}

@media (min-width: 768px) {
    .notification-card { padding: 1.1rem 1.2rem; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; }
    .notification-card-actions { grid-column: auto; justify-content: flex-end; }
    .confirmation-stats { grid-template-columns: repeat(5,minmax(0,1fr)); }
    .confirmation-list article { grid-template-columns: minmax(220px,1fr) auto minmax(120px,.45fr) minmax(120px,.45fr); }
}

@media (min-width: 992px) {
    .mobile-block-release-cards { display: none; }
}

/* Directorio profesional de empleados y onboarding fotográfico */
.employee-directory-intro { align-items: flex-end; }
.employee-directory-filters { grid-template-columns: minmax(230px,1.4fr) repeat(3,minmax(160px,1fr)) auto; }
.directory-summary { margin: 1rem 0; color: var(--muted); font-size: .82rem; }
.directory-summary strong { color: var(--ink); font-size: 1rem; }
.directory-summary span { padding: 0 .35rem; color: #b3c0c5; }
.employee-directory-group { margin-bottom: 1.15rem; overflow: visible; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: 0 8px 25px rgba(15,52,65,.035); }
.directory-group-heading { display: flex; min-height: 58px; padding: .8rem 1.1rem; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); background: #fbfcfc; border-radius: 18px 18px 0 0; }
.directory-group-heading > div { display: flex; align-items: center; gap: .6rem; }
.directory-group-heading h3 { margin: 0; font-size: 1rem; }
.directory-group-heading > span { color: var(--muted); font-size: .72rem; font-weight: 700; }
.directory-group-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--coral); box-shadow: 0 0 0 5px rgba(237,118,95,.12); }
.employee-directory-table { position: relative; }
.employee-directory-row { display: grid; min-height: 76px; padding: .7rem 1rem; grid-template-columns: minmax(210px,1.25fr) minmax(130px,.8fr) minmax(180px,1fr) minmax(230px,1.35fr) 70px 145px; align-items: center; gap: .8rem; border-top: 1px solid #edf1f2; }
.employee-directory-row.is-header { min-height: 38px; padding-top: .45rem; padding-bottom: .45rem; border-top: 0; color: var(--muted); background: #fff; font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.directory-person { display: flex; min-width: 0; align-items: center; gap: .75rem; }
.directory-person img,.directory-avatar-placeholder { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; object-fit: cover; background: #dff2f0; }
.directory-avatar-placeholder { display: grid; place-items: center; color: var(--teal); font-weight: 900; }
.directory-person strong,.directory-person small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.directory-person strong { color: var(--ink); font-size: .82rem; }
.directory-person small { margin-top: .12rem; color: var(--muted); font-size: .62rem; }
.directory-location { color: var(--ink); font-size: .7rem; font-weight: 650; }
.availability-state { display: flex; color: #365762; font-size: .67rem; line-height: 1.35; align-items: flex-start; gap: .4rem; }
.availability-state i { width: 8px; height: 8px; margin-top: .12rem; flex: 0 0 8px; border-radius: 50%; background: var(--teal); }
.availability-state.undefined i { background: #d99a30; }
.directory-actions { position: relative; display: flex; align-items: center; justify-content: flex-end; gap: .35rem; }
.directory-more { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--ink); font-weight: 900; }
.directory-menu { position: absolute; z-index: 20; top: 39px; right: 0; width: 190px; padding: .35rem; border: 1px solid var(--line); border-radius: 11px; background: #fff; box-shadow: 0 14px 35px rgba(11,47,60,.16); }
.directory-menu a { display: block; padding: .6rem .7rem; border-radius: 8px; color: var(--ink); font-size: .7rem; font-weight: 700; text-decoration: none; }
.directory-menu a:hover { background: #eef7f6; color: var(--teal); }
.directory-mobile-card .directory-person { margin-bottom: .8rem; }
.directory-mobile-card .directory-person h3 { margin: 0 0 .35rem; font-size: .95rem; }
.user-avatar-photo { padding: 0; object-fit: cover; border: 2px solid rgba(255,255,255,.2); }
.employee-profile-photo { padding: 0; object-fit: cover; }
.photo-onboarding-body { min-height: 100vh; margin: 0; color: var(--ink); background: radial-gradient(circle at top,#eff9f8 0,#f5f7f8 42%,#edf1f2 100%); }
.photo-onboarding-shell { display: grid; min-height: 100vh; padding: 2rem 1rem; place-items: center; }
.photo-onboarding-card { width: min(100%,520px); padding: 2rem; text-align: center; border: 1px solid rgba(17,91,98,.12); border-radius: 24px; background: #fff; box-shadow: 0 24px 70px rgba(12,50,64,.12); }
.photo-brand { display: flex; margin: 0 auto 1.5rem; justify-content: center; text-align: left; }
.photo-brand .brand-logo__surface { width: 58px; }
.photo-brand .brand-logo__copy small { font-size: .68rem; }
.photo-copy h1 { margin: .15rem 0 .45rem; font-size: clamp(1.75rem,5vw,2.3rem); }
.photo-copy > p:last-child { max-width: 410px; margin: 0 auto 1.25rem; color: var(--muted); font-size: .82rem; }
.photo-camera { position: relative; width: min(100%,370px); aspect-ratio: 1; margin: 0 auto 1.2rem; overflow: hidden; border: 8px solid #edf5f4; border-radius: 50%; background: #dfe8ea; }
.photo-camera video,.photo-camera img { width: 100%; height: 100%; object-fit: cover; transform: scaleX(-1); }
.photo-camera img { transform: none; }
.photo-face-guide { position: absolute; inset: 11%; pointer-events: none; border: 2px dashed rgba(255,255,255,.85); border-radius: 50%; box-shadow: 0 0 0 100px rgba(6,31,40,.14); }
.photo-camera-message { position: absolute; inset: 0; display: grid; padding: 2.5rem; place-items: center; color: #45626c; font-size: .78rem; font-weight: 700; }
.photo-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: .55rem; }
.photo-privacy { margin: 1rem 0 .2rem; color: var(--muted); font-size: .68rem; }
.photo-alert { position: fixed; z-index: 5; top: 1rem; left: 50%; width: min(92%,520px); transform: translateX(-50%); }
@media(max-width:1199.98px){.employee-directory-filters{grid-template-columns:repeat(2,minmax(0,1fr));}.employee-directory-filters .filter-actions{align-self:end;}}
@media(max-width:575.98px){.employee-directory-filters{grid-template-columns:1fr}.photo-onboarding-card{padding:1.25rem}.photo-camera{width:min(92%,330px)}.photo-actions .btn{width:100%}}

/* Solicitudes de vacaciones y tiempo libre */
.time-off-heading { align-items: flex-end; }
.time-off-employee-layout { display: grid; align-items: start; gap: 1rem; }
.time-off-request-form { margin: 0; }
.time-off-history-heading { display: flex; margin-bottom: .7rem; align-items: flex-end; justify-content: space-between; gap: .8rem; }
.time-off-history-heading h3 { margin: .1rem 0 0; font-size: 1.1rem; }
.time-off-history-heading > span { color: var(--muted); font-size: .7rem; font-weight: 750; }
.time-off-request-list,.management-request-list { display: grid; gap: .75rem; }
.time-off-request-card { padding: 1rem; border: 1px solid var(--line); border-left: 5px solid #d8a23c; border-radius: 15px; background: #fff; box-shadow: 0 8px 24px rgba(9,48,62,.035); }
.time-off-request-card.is-approved { border-left-color: var(--teal); }
.time-off-request-card.is-rejected,.time-off-request-card.is-cancelled { border-left-color: #c7d1d5; }
.time-off-request-card > header,.time-off-request-card > footer { display: flex; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.time-off-request-card > header strong,.time-off-request-card > header span { display: block; }
.time-off-request-card > header strong { font-size: .9rem; }
.time-off-request-card > header div > span { margin-top: .12rem; color: var(--muted); font-size: .7rem; }
.time-off-request-card > p { margin: .8rem 0; color: #405c65; font-size: .78rem; line-height: 1.5; }
.time-off-request-card > footer { margin-top: .85rem; padding-top: .7rem; align-items: center; border-top: 1px solid #edf1f2; }
.time-off-request-card > footer small { color: var(--muted); font-size: .63rem; }
.time-off-request-card > footer div { display: flex; align-items: center; gap: .55rem; }
.time-off-request-card > footer a { color: var(--teal); font-size: .7rem; font-weight: 800; }
.time-off-request-card > footer form { margin: 0; }
.time-off-response { margin-top: .75rem; padding: .7rem .8rem; border-radius: 10px; background: #eef7f6; }
.time-off-response strong { display: block; color: var(--teal); font-size: .65rem; text-transform: uppercase; letter-spacing: .04em; }
.time-off-response p { margin: .25rem 0 0; color: #365762; font-size: .75rem; line-height: 1.45; }
.notification-filters a b { display: inline-grid; min-width: 20px; height: 20px; margin-left: .25rem; padding: 0 .3rem; place-items: center; border-radius: 99px; background: #edf2f3; font-size: .58rem; }
.notification-filters a.active b { color: var(--teal); background: #fff; }
.management-request-card { display: grid; overflow: hidden; border: 1px solid var(--line); border-left: 5px solid #d8a23c; border-radius: 17px; background: #fff; box-shadow: 0 10px 28px rgba(9,48,62,.045); }
.management-request-card.is-approved { border-left-color: var(--teal); }
.management-request-card.is-rejected,.management-request-card.is-cancelled { border-left-color: #c7d1d5; }
.management-request-main { padding: 1rem; }
.management-request-main > header { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: .7rem; }
.management-request-main h3 { margin: 0; font-size: .95rem; }
.management-request-main header p { margin: .12rem 0 0; color: var(--muted); font-size: .65rem; }
.management-request-avatar { display: grid; width: 42px; height: 42px; place-items: center; border-radius: 50%; color: var(--teal); background: var(--teal-soft); font-weight: 900; }
.management-request-period { display: grid; margin-top: .9rem; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .55rem; }
.management-request-period div { padding: .65rem .75rem; border-radius: 10px; background: #f6f8f8; }
.management-request-period span,.management-request-period strong { display: block; }
.management-request-period span { color: var(--muted); font-size: .58rem; font-weight: 750; text-transform: uppercase; letter-spacing: .035em; }
.management-request-period strong { margin-top: .15rem; font-size: .7rem; }
.management-request-note { margin-top: .75rem; }
.management-request-note span { color: var(--muted); font-size: .62rem; font-weight: 800; }
.management-request-note p { margin: .2rem 0 0; color: #365762; font-size: .76rem; line-height: 1.5; }
.management-request-main > footer { display: flex; margin-top: .9rem; padding-top: .7rem; align-items: center; justify-content: space-between; gap: .7rem; border-top: 1px solid #edf1f2; }
.management-request-main > footer small { color: var(--muted); font-size: .62rem; }
.management-request-main > footer div { display: flex; gap: .65rem; }
.management-request-main > footer a { color: var(--teal); font-size: .68rem; font-weight: 800; }
.management-request-decision { padding: 1rem; border-top: 1px solid var(--line); background: #f8faf9; }
.request-conflict { margin-bottom: .75rem; padding: .7rem .8rem; border: 1px solid #f0cf87; border-radius: 10px; background: #fff7e5; }
.request-conflict strong { color: #94630b; font-size: .7rem; }
.request-conflict p { margin: .15rem 0; color: #785b27; font-size: .65rem; }
.request-conflict a { color: #8b5d0a; font-size: .65rem; font-weight: 850; }
.request-decision-actions { display: grid; margin-top: .65rem; grid-template-columns: 1fr 1fr; gap: .5rem; }
@media(min-width:992px){.time-off-employee-layout{grid-template-columns:minmax(320px,.65fr) minmax(0,1.35fr)}.management-request-card{grid-template-columns:minmax(0,1fr) 340px}.management-request-decision{border-top:0;border-left:1px solid var(--line)}}
@media(max-width:575.98px){.time-off-heading{align-items:stretch;flex-direction:column}.time-off-request-card>header,.time-off-request-card>footer,.management-request-main>footer{align-items:stretch;flex-direction:column}.management-request-period{grid-template-columns:1fr}.management-request-main>header{grid-template-columns:42px minmax(0,1fr)}.management-request-main>header>.status-badge{grid-column:1/-1;width:max-content}.request-decision-actions{grid-template-columns:1fr}.time-off-request-card>footer div{flex-wrap:wrap}}
.audit-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem}.audit-total{min-width:120px;padding:.75rem 1rem;border:1px solid var(--line);border-radius:14px;background:#fff;text-align:center}.audit-total strong{display:block;font-size:1.55rem;color:var(--navy)}.audit-total span{font-size:.75rem;color:var(--muted)}.audit-filter-card{margin-bottom:.8rem}.audit-filter-grid{display:grid;grid-template-columns:1.3fr 1fr 1.15fr .85fr .85fr auto;align-items:end;gap:.7rem}.audit-filter-grid label>span{display:block;margin-bottom:.3rem;font-size:.75rem;font-weight:800;color:var(--navy)}.audit-filter-actions{display:flex;gap:.4rem}.audit-category-tabs{display:flex;gap:.45rem;overflow-x:auto;margin:0 0 .8rem;padding:.15rem 0}.audit-category-tabs a{white-space:nowrap;padding:.5rem .8rem;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--navy);font-size:.78rem;font-weight:800;text-decoration:none}.audit-category-tabs a.active{border-color:var(--teal);background:var(--teal);color:#fff}.audit-history-card{padding:0;overflow:hidden}.audit-table-wrap{overflow-x:auto}.audit-table{width:100%;border-collapse:collapse;font-size:.8rem}.audit-table th{padding:.7rem .8rem;background:#f5f8f9;color:var(--muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;text-align:left}.audit-table td{padding:.72rem .8rem;border-top:1px solid var(--line);vertical-align:middle;color:var(--navy)}.audit-table td strong,.audit-table td small{display:block}.audit-table td small{margin-top:.18rem;color:var(--muted);font-size:.68rem}.audit-category{display:inline-block;margin-bottom:.25rem;padding:.18rem .42rem;border-radius:999px;background:#edf3f4;color:#44616b;font-size:.62rem;font-weight:900;text-transform:uppercase}.audit-category-schedules{background:#e2f5f1;color:#087c70}.audit-category-employees{background:#e8f3fb;color:#286b91}.audit-category-access{background:#fff0dd;color:#9a6415}.audit-category-catalogs{background:#f1edfb;color:#66508e}.audit-category-sessions{background:#edf1f3;color:#50656e}.audit-pagination{margin-top:.9rem}.audit-privacy-note{margin:.8rem 0 0;text-align:center;color:var(--muted);font-size:.72rem}
@media(max-width:1100px){.audit-filter-grid{grid-template-columns:repeat(3,1fr)}.audit-filter-actions{grid-column:span 3;justify-content:flex-end}}
@media(max-width:700px){.audit-heading{align-items:flex-start}.audit-total{min-width:88px}.audit-filter-grid{grid-template-columns:1fr 1fr}.audit-filter-grid label:first-child,.audit-filter-grid label:nth-child(3),.audit-filter-actions{grid-column:1/-1}.audit-filter-actions .btn{flex:1}.audit-table thead{display:none}.audit-table,.audit-table tbody,.audit-table tr,.audit-table td{display:block}.audit-table tr{padding:.65rem .8rem;border-top:1px solid var(--line)}.audit-table tr:first-child{border-top:0}.audit-table td{display:grid;grid-template-columns:100px 1fr;gap:.5rem;padding:.3rem 0;border:0}.audit-table td:before{content:attr(data-label);color:var(--muted);font-size:.68rem;font-weight:800;text-transform:uppercase}.audit-table td>*{grid-column:2}.audit-table td:before{grid-column:1;grid-row:1/span 3}.audit-category{justify-self:start}}

/* Scheduler view switcher, coverage matrix and daily timeline. */
.timeline-now:before{content:attr(data-label)!important}
.schedule-view-controls{display:flex;margin:1rem 0;align-items:center;justify-content:flex-start;gap:1rem}.schedule-view-tabs{display:inline-flex;padding:.25rem;border:1px solid #d7e4e6;border-radius:13px;background:#edf3f4;gap:.2rem}.schedule-view-tabs button{min-height:38px;padding:.45rem .85rem;border:0;border-radius:9px;color:#49626b;background:transparent;font-size:.76rem;font-weight:850;white-space:nowrap}.schedule-view-tabs button.active{color:#fff;background:var(--teal);box-shadow:0 4px 12px rgba(13,143,135,.22)}.schedule-view-tabs button:focus-visible{outline:3px solid rgba(13,143,135,.25);outline-offset:2px}.schedule-analysis-panel{margin:0 0 1.2rem;padding:1rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.analysis-heading{display:flex;margin-bottom:1rem;align-items:flex-start;justify-content:space-between;gap:1rem}.analysis-heading h3{margin:.1rem 0;font-size:1.2rem}.analysis-heading p:last-child{margin:.25rem 0 0;color:var(--muted);font-size:.76rem}.analysis-heading dl{display:flex;margin:0;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}.analysis-heading dl div{min-width:130px;padding:.6rem .75rem;border:1px solid #e2eaec;border-radius:11px;background:#f8fafb}.analysis-heading dt{color:var(--muted);font-size:.58rem;text-transform:uppercase}.analysis-heading dd{margin:.18rem 0 0;font-size:.72rem;font-weight:800}.analysis-heading dd .schedule-status{display:inline-block;padding:.25rem .5rem;font-size:.55rem}.analysis-filters{display:flex;margin-bottom:.8rem;align-items:flex-end;gap:.65rem}.analysis-filters label{color:var(--muted);font-size:.65rem;font-weight:800}.analysis-filters .form-select{min-width:170px;margin-top:.25rem}.coverage-table-wrap{overflow:auto;max-height:68vh;border:1px solid var(--line);border-radius:12px}.coverage-table{width:100%;min-width:760px;border-collapse:separate;border-spacing:0}.coverage-table th{padding:.6rem;border-right:1px solid #e6edef;border-bottom:1px solid #dbe5e7;color:#567078;background:#f5f8f9;font-size:.7rem;text-align:center}.coverage-table thead th{position:sticky;top:0;z-index:3}.coverage-table th:first-child{position:sticky;left:0;z-index:4;width:110px;white-space:nowrap}.coverage-table thead th:first-child{z-index:5}.coverage-table th small{display:block;margin-top:.12rem}.coverage-table td{min-width:88px;padding:.25rem;border-right:1px solid #edf1f2;border-bottom:1px solid #edf1f2;background:#fff}.coverage-cell{display:grid;width:100%;min-height:42px;place-items:center;border:1px solid color-mix(in srgb,var(--teal) calc(var(--coverage-level) * 35%),#dfe8ea);border-radius:8px;color:#21464d;background:color-mix(in srgb,var(--teal-soft) calc(var(--coverage-level) * 100%),#f4f6f6);font-size:.85rem}.coverage-cell:hover,.coverage-cell:focus-visible{border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,143,135,.13)}.timeline-day-tabs{display:flex;margin-bottom:.8rem;overflow-x:auto;gap:.4rem}.timeline-day-tabs button{display:flex;flex:0 0 auto;min-width:84px;min-height:46px;padding:.45rem .65rem;align-items:center;justify-content:center;gap:.25rem;border:1px solid #d9e5e7;border-radius:10px;color:#4b646c;background:#fff;font-size:.73rem;font-weight:750}.timeline-day-tabs button.active{border-color:var(--teal);color:#08766f;background:var(--teal-soft)}.timeline-day-tabs button small{padding:.1rem .3rem;border-radius:99px;background:#fff;font-size:.55rem}.timeline-day-panel{border:1px solid var(--line);border-radius:12px;background:#fff}.timeline-scroll{overflow-x:auto}.timeline-scale,.timeline-row{display:grid;width:calc(180px + var(--timeline-width));min-width:calc(180px + var(--timeline-width));grid-template-columns:180px var(--timeline-width)}.timeline-scale{position:sticky;top:0;z-index:5;min-height:42px;border-bottom:1px solid #dfe8ea;background:#f6f9f9}.timeline-scale>div:first-child{position:sticky;left:0;z-index:3;background:#f6f9f9}.timeline-scale-track,.timeline-track{position:relative}.timeline-scale-track>span:not(.timeline-now){position:absolute;bottom:.5rem;color:#627981;font-size:.6rem;transform:translateX(-50%);white-space:nowrap}.timeline-group h4{display:flex;width:calc(180px + var(--timeline-width));min-width:calc(180px + var(--timeline-width));margin:0;padding:.55rem .75rem;align-items:center;gap:.45rem;border-bottom:1px solid #e3eaec;color:#304f58;background:#eef3f4;font-size:.72rem}.timeline-group h4 i{width:9px;height:9px;border-radius:50%;background:var(--department-color)}.timeline-row{min-height:62px;border-bottom:1px solid #edf1f2}.timeline-employee{position:sticky;left:0;z-index:3;display:flex;padding:.65rem .75rem;align-items:center;border-right:1px solid #dfe7e9;background:#fff}.timeline-employee strong{font-size:.7rem}.timeline-track{min-height:62px;background:repeating-linear-gradient(to right,transparent 0,transparent 59px,rgba(197,211,214,.22) 60px)}.timeline-gridline{position:absolute;top:0;bottom:0;width:1px;background:#e4ebed}.timeline-shift{position:absolute;top:8px;min-width:52px;max-width:none;height:46px;overflow:hidden;padding:.32rem .45rem;border:1px solid color-mix(in srgb,var(--shift-color) 75%,#fff);border-left:4px solid var(--shift-color);border-radius:8px;color:#173f45;background:color-mix(in srgb,var(--shift-color) 18%,#fff);text-align:left;white-space:nowrap}.timeline-shift strong,.timeline-shift small{display:block;overflow:hidden;text-overflow:ellipsis}.timeline-shift strong{font-size:.65rem}.timeline-shift small{margin-top:.12rem;font-size:.57rem}.timeline-shift:hover,.timeline-shift:focus-visible{z-index:4;outline:3px solid color-mix(in srgb,var(--shift-color) 25%,transparent);box-shadow:0 5px 14px rgba(28,65,72,.18)}.timeline-now{position:absolute!important;top:0!important;bottom:0!important;z-index:3;width:2px!important;background:#ef6f5e!important;transform:none!important}.timeline-now:before{content:'Ahora';position:absolute;top:1px;padding:1px 3px;border-radius:3px;color:#fff;background:#ef6f5e;font-size:.48rem;transform:translateX(-50%)}.schedule-readonly-dialog .confirm-dialog-card{width:min(600px,calc(100vw - 2rem));max-height:88vh;overflow:auto}.coverage-detail-list{display:grid;gap:.65rem}.schedule-detail-line{display:flex;padding:.35rem 0;justify-content:space-between;gap:1rem;border-bottom:1px solid #edf1f2}.schedule-detail-line span{color:var(--muted);font-size:.68rem}.schedule-detail-line strong{font-size:.72rem;text-align:right}.schedule-detail-shift{padding:.75rem;border:1px solid #dde7e9;border-left:4px solid var(--teal);border-radius:10px;background:#fbfcfc}.schedule-detail-shift h4{margin:0 0 .35rem;font-size:.82rem}
@media(max-width:767.98px){.schedule-view-controls,.analysis-heading{align-items:stretch;flex-direction:column}.schedule-view-tabs{display:grid;width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-view-tabs button{padding:.4rem .25rem;font-size:.65rem}.analysis-heading dl{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.analysis-heading dl div:last-child{grid-column:1/-1}.analysis-filters{display:grid;grid-template-columns:1fr 1fr}.analysis-filters .form-select{min-width:0}.schedule-analysis-panel{padding:.75rem}.coverage-table-wrap{max-height:62vh}.timeline-scale,.timeline-row{grid-template-columns:130px var(--timeline-width);width:calc(130px + var(--timeline-width));min-width:calc(130px + var(--timeline-width))}.timeline-group h4{width:calc(130px + var(--timeline-width));min-width:calc(130px + var(--timeline-width))}.timeline-employee{padding:.55rem}.timeline-employee strong{font-size:.65rem}}

.push-toggle{border:1px solid #c8d3df;background:#fff;color:#123c69;border-radius:999px;padding:.45rem .8rem;font-size:.82rem;font-weight:700;white-space:nowrap}.push-toggle:disabled{opacity:.6}@media(max-width:575.98px){.push-toggle{padding:.42rem .65rem;font-size:.74rem}}

/* Published shift lifecycle locks */
.smart-time-picker.is-readonly { opacity:.68; }
.smart-time-picker.is-readonly:focus-within { box-shadow:none; }
.published-adjustment-options label.is-disabled { opacity:.55; cursor:not-allowed; }

/* Temporal protection for shifts in reopened weeks. */
.scheduler-temporal-notice {
    display: grid;
    gap: .08rem;
    margin: 0 0 .65rem;
    padding: .5rem .7rem;
    border: 1px solid color-mix(in srgb, var(--primary, #0e7c7b) 35%, #d7e5e8);
    border-radius: .65rem;
    background: color-mix(in srgb, var(--primary, #0e7c7b) 8%, #fff);
}
.scheduler-temporal-notice strong { color: var(--primary-dark, #075d5c); font-size: .78rem; line-height: 1.25; }
.scheduler-temporal-notice span { color: #526a73; font-size: .76rem; line-height: 1.3; }
.scheduler-modal .is-temporally-locked { opacity: .72; }
.scheduler-modal .smart-time-picker.is-temporally-locked { background: #f1f5f6; }
.scheduler-modal .is-temporally-locked select,
.scheduler-modal .is-temporally-locked input,
.scheduler-modal .is-temporally-locked button { cursor: not-allowed; }

/* La salida conserva una apariencia inequívocamente editable aun junto a la entrada bloqueada. */
[data-shift-dialog] [data-shift-end-picker] .form-select {
    border-color: #7fa7ad;
    color: #123747;
    background-color: #fff;
    cursor: pointer;
}
[data-shift-dialog] [data-shift-end-picker] .form-select:hover { border-color: #138a83; }
[data-shift-dialog] [data-shift-end-picker] .form-select:focus {
    border-color: #08766f;
    box-shadow: 0 0 0 3px rgba(19,138,131,.18);
}
[data-shift-dialog] [data-shift-end-picker] .smart-time-period {
    border-color: #7fa7ad;
    background: #e8f3f2;
}
[data-shift-dialog] [data-shift-end-picker] .smart-time-period button {
    color: #315d62;
    cursor: pointer;
}
[data-shift-dialog] [data-shift-end-picker] .smart-time-period button:hover,
[data-shift-dialog] [data-shift-end-picker] .smart-time-period button:focus-visible {
    color: #075d5c;
    background: #d6ebe8;
    outline: 2px solid rgba(19,138,131,.22);
    outline-offset: 1px;
}
[data-shift-dialog] [data-shift-end-picker] .smart-time-period button[aria-pressed="true"] {
    color: #fff;
    background: #138a83;
}
[data-shift-dialog] [data-shift-start-picker].is-temporally-locked .form-select,
[data-shift-dialog] [data-shift-start-picker].is-temporally-locked .smart-time-period {
    border-color: #d2dcdf;
    color: #7d9198;
    background: #edf1f2;
}
[data-shift-dialog] [data-shift-start-picker].is-temporally-locked .smart-time-period button {
    color: #7d9198;
    background: transparent;
    box-shadow: none;
}

.service-area-heading { margin-bottom: 1rem; }
.service-area-filters { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(160px, .6fr) auto; align-items: end; gap: .75rem; }
.service-area-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, .8fr); align-items: start; gap: 1rem; }
.service-area-list, .service-area-editor { padding: 1rem; }
.service-area-editor { position: sticky; top: 1rem; }
.service-area-row { display: grid; padding: .75rem 0; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; border-bottom: 1px solid #e5ecee; }
.service-area-row:last-child { border-bottom: 0; }
.service-area-row > div:first-child { display: grid; gap: .15rem; }
.service-area-row small { color: var(--muted); font-size: .65rem; }
.service-area-row.is-inactive > div:first-child { opacity: .72; }
.service-area-actions { display: flex; gap: .55rem; }
.service-area-actions a, .service-area-actions button { padding: 0; border: 0; color: var(--teal); background: none; font-size: .68rem; font-weight: 800; text-decoration: none; }
.service-area-actions button { color: #a4423c; }
.shift-service-area { color: #557078; font-size: .62rem; font-style: normal; font-weight: 800; }

/* Scheduler workbench: the calendar stays first, reporting stays contextual. */
.scheduler-location-entry {
    padding: clamp(1.1rem,3vw,2rem);
    border: 1px solid #cfe0e3;
    border-radius: 22px;
    background:
        radial-gradient(circle at 92% 8%,rgba(36,160,191,.13),transparent 34%),
        linear-gradient(145deg,#f5fbfc 0%,#fff 54%,#f0f8f7 100%);
    box-shadow: 0 18px 48px rgba(24,63,72,.08);
}
.scheduler-location-entry-copy { max-width: 660px; }
.scheduler-location-entry h2 { margin: .15rem 0 .35rem; color: var(--navy); font-size: clamp(1.55rem,4vw,2.2rem); letter-spacing: -.04em; }
.scheduler-location-entry-copy > p:last-child { margin: 0; color: #587078; font-size: .88rem; }
.scheduler-location-grid { display: grid; margin-top: 1.25rem; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: .75rem; }
.scheduler-location-choice {
    display: grid;
    min-width: 0;
    min-height: 88px;
    padding: .85rem;
    grid-template-columns: 44px minmax(0,1fr) auto auto;
    align-items: center;
    gap: .75rem;
    border: 1px solid #d9e6e8;
    border-radius: 15px;
    color: var(--ink);
    background: rgba(255,255,255,.94);
    box-shadow: 0 8px 22px rgba(25,61,70,.055);
    text-decoration: none;
    transition: transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.scheduler-location-choice:hover { color: var(--ink); border-color: #72c0ba; box-shadow: 0 12px 28px rgba(10,113,107,.12); transform: translateY(-2px); }
.scheduler-location-choice:focus-visible { outline: 3px solid rgba(13,143,135,.28); outline-offset: 3px; }
.scheduler-location-choice > span:nth-child(2) { min-width: 0; }
.scheduler-location-choice strong,.scheduler-location-choice small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.scheduler-location-choice strong { color: var(--navy); font-size: .9rem; }
.scheduler-location-choice small { margin-top: .2rem; color: var(--muted); font-size: .68rem; }
.scheduler-location-choice > i { color: var(--teal); font-size: 1.05rem; font-style: normal; }
.scheduler-location-icon { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 13px; color: #fff; background: linear-gradient(145deg,var(--teal),#176e83); font-size: 1rem; font-weight: 900; box-shadow: 0 8px 18px rgba(13,143,135,.2); }

.scheduler-workbench {
    position: relative;
    z-index: 20;
    display: grid;
    margin-bottom: .7rem;
    padding: .9rem 1rem;
    grid-template-columns: minmax(190px,1.1fr) minmax(300px,1.25fr) auto auto;
    align-items: center;
    gap: .75rem 1rem;
    border: 1px solid #cfe0e3;
    border-radius: 18px;
    background:
        linear-gradient(105deg,rgba(238,249,249,.96),rgba(255,255,255,.98) 46%,rgba(244,249,251,.98));
    box-shadow: 0 12px 34px rgba(24,61,70,.075),inset 0 1px 0 rgba(255,255,255,.9);
}
.scheduler-workbench:before { position: absolute; top: 0; right: 12%; left: 12%; height: 2px; background: linear-gradient(90deg,transparent,#58bbb4,transparent); content: ""; }
.scheduler-workbench-title { min-width: 0; }
.scheduler-workbench-title .eyebrow { margin-bottom: .08rem; }
.scheduler-workbench-title h2 { margin: 0; overflow: hidden; color: var(--navy); font-size: 1.08rem; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.scheduler-workbench-title > p:last-child { margin: .2rem 0 0; color: #60777f; font-size: .7rem; }
.scheduler-context-selectors { display: grid; grid-template-columns: minmax(150px,1fr) minmax(142px,.8fr); gap: .55rem; }
.scheduler-context-selectors label { color: #526a73; font-size: .61rem; font-weight: 820; }
.scheduler-context-selectors .form-control,.scheduler-context-selectors .form-select { min-height: 40px; margin-top: .2rem; padding-block: .48rem; font-size: .78rem; }
.scheduler-week-strip { display: inline-grid; padding: 3px; grid-template-columns: 38px auto 38px; align-items: center; border: 1px solid #d6e3e5; border-radius: 11px; background: #fff; }
.scheduler-week-strip a { display: grid; min-height: 34px; padding: 0 .5rem; place-items: center; border-radius: 8px; color: #45636b; font-size: .7rem; font-weight: 820; text-decoration: none; white-space: nowrap; }
.scheduler-week-strip a:hover,.scheduler-week-strip a:focus-visible { color: #086f69; background: var(--teal-soft); }
.scheduler-week-strip a:focus-visible { outline: 2px solid rgba(13,143,135,.3); }
.scheduler-workbench-state { display: grid; justify-items: end; gap: .28rem; }
.scheduler-workbench-state > span { color: #6a8087; font-size: .56rem; font-weight: 780; text-transform: uppercase; }
.scheduler-point-notice-indicator { display: inline-flex; min-height: 32px; max-width: 100%; padding: .35rem .62rem; align-items: center; justify-content: center; border: 1px solid #73d9a1; border-radius: 9px; color: #063f32; background: linear-gradient(135deg,#d5f8e2,#87e0ad); box-shadow: inset 0 1px 0 rgba(255,255,255,.7),0 4px 10px rgba(6,86,56,.2); font-size: .68rem; font-weight: 850; line-height: 1.1; text-align: center; text-decoration: none; white-space: nowrap; }
.scheduler-point-notice-indicator:hover,.scheduler-point-notice-indicator:focus-visible { border-color: #bff9d4; color: #fff; background: linear-gradient(135deg,#08795e,#19a478); outline: 0; }
.scheduler-point-notice-indicator:focus-visible { box-shadow: 0 0 0 3px rgba(117,234,178,.4); }
.scheduler-point-notice-indicator.has-pending { border-color: #efbd48; color: #4d3507; background: linear-gradient(135deg,#fff1bf,#edbc48); box-shadow: inset 0 1px 0 rgba(255,255,255,.7),0 4px 10px rgba(120,78,10,.2); }
.scheduler-point-notice-indicator.has-pending:hover,.scheduler-point-notice-indicator.has-pending:focus-visible { border-color: #f7d77f; color: #4d3507; background: linear-gradient(135deg,#fff5cf,#f3c95e); }
.scheduler-reopen-confirmation { display: inline-flex; min-height: 32px; max-width: 100%; padding: .35rem .58rem; align-items: center; justify-content: center; gap: .28rem; border: 1px solid #efbd48; border-radius: 9px; color: #4d3507; background: linear-gradient(135deg,#fff2c4,#edbd4b); box-shadow: inset 0 1px 0 rgba(255,255,255,.7),0 4px 10px rgba(120,78,10,.2); font-size: .66rem; font-weight: 850; line-height: 1.1; text-align: center; text-decoration: none; white-space: nowrap; }
.scheduler-reopen-confirmation strong { padding: .12rem .28rem; border-radius: 99px; color: #4d3507; background: rgba(255,255,255,.5); font-size: .96em; }
.scheduler-reopen-confirmation:hover,.scheduler-reopen-confirmation:focus-visible { border-color: #f8d77b; color: #4d3507; background: linear-gradient(135deg,#fff7d8,#f6cc62); outline: 0; }
.scheduler-reopen-confirmation:focus-visible { box-shadow: 0 0 0 3px rgba(241,192,74,.42); }
.scheduler-reopen-confirmation.is-complete { border-color: #74daa1; color: #063f32; background: linear-gradient(135deg,#d5f8e2,#87e0ad); box-shadow: inset 0 1px 0 rgba(255,255,255,.7),0 4px 10px rgba(6,86,56,.2); }
.scheduler-reopen-confirmation.is-complete strong { color: #063f32; }
.schedule-status.reopened { color: #215e78; background: #e3f1f8; }
.scheduler-primary-actions { display: flex; grid-column: 1/-1; justify-content: flex-end; flex-wrap: wrap; gap: .45rem; border-top: 1px solid rgba(204,220,223,.75); padding-top: .7rem; }
.scheduler-primary-actions .btn { min-height: 42px; }
.scheduler-primary-actions .btn-primary { min-width: 142px; box-shadow: 0 8px 20px rgba(13,143,135,.2); }

.scheduler-quick-tools { margin-bottom: .7rem; border: 1px solid #d8e5e7; border-radius: 15px; background: #fff; box-shadow: 0 7px 22px rgba(22,57,65,.045); }
.scheduler-quick-tools-heading { display: flex; min-height: 46px; padding: .45rem .6rem; align-items: center; justify-content: flex-end; gap: .65rem; }
.scheduler-tools-toggle { display: none; min-height: 42px; padding: .55rem .7rem; align-items: center; justify-content: space-between; gap: .5rem; border: 1px solid #d6e3e5; border-radius: 10px; color: #34555e; background: #f8fafb; font-size: .74rem; font-weight: 820; }
.scheduler-tools-toggle span { transition: transform .16s ease; }
.scheduler-tools-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.scheduler-warning-chips { display: flex; min-width: 0; overflow-x: auto; gap: .35rem; scrollbar-width: thin; }
.scheduler-warning-chips a,.scheduler-warning-chips > span { display: inline-flex; min-height: 32px; padding: .34rem .58rem; flex: 0 0 auto; align-items: center; gap: .3rem; border: 1px solid #e2d49f; border-radius: 99px; color: #72571c; background: #fff9e7; font-size: .61rem; font-weight: 740; text-decoration: none; white-space: nowrap; }
.scheduler-warning-chips a:hover,.scheduler-warning-chips a:focus-visible { border-color: #cfad4d; color: #624704; outline: 2px solid rgba(207,173,77,.22); }
.scheduler-warning-chips a.is-critical { color: #933f34; border-color: #efb7ae; background: #fff0ed; }
.scheduler-warning-chips > span.is-clear { color: #0a6f56; border-color: #a9d9c6; background: #eff9f4; }
.scheduler-warning-chips .is-clear i { font-style: normal; }
.scheduler-tools-panel { display: grid; padding: .65rem; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: .65rem; border-top: 1px solid #e1e9eb; background: #fbfcfc; border-radius: 0 0 15px 15px; }
.scheduler-tools-panel .scheduler-filter { display: grid; margin: 0; padding: 0; grid-template-columns: minmax(175px,1.3fr) repeat(3,minmax(120px,.8fr)) auto; align-items: end; gap: .5rem; border: 0; background: transparent; box-shadow: none; }
.scheduler-tools-panel .scheduler-filter .form-label { margin-bottom: .2rem; color: #526a73; font-size: .64rem; font-weight: 800; }
.scheduler-tools-panel .scheduler-filter .form-control,.scheduler-tools-panel .scheduler-filter .form-select { min-height: 38px; font-size: .76rem; }
.scheduler-tools-panel .filter-actions .btn { min-height: 38px; }
.scheduler-tools-panel .schedule-view-controls { display: flex; margin: 0; align-items: end; gap: .5rem; }
.scheduler-tools-panel .schedule-view-tabs { flex: 0 0 auto; }
.scheduler-tools-panel .schedule-view-tabs button { min-height: 36px; padding: .4rem .62rem; font-size: .68rem; }
.scheduler-tools-panel .schedule-view-controls .scheduler-point-notice-indicator { flex: 0 0 auto; min-height: 36px; margin-left: auto; }

.schedule-block { box-shadow: 0 10px 28px rgba(24,60,68,.055); }
.schedule-block > header { padding: .65rem .8rem; }
.schedule-block-header { gap: .55rem; }
.schedule-block-header > div:first-child { display: flex; min-width: 0; align-items: center; gap: .55rem; }
.schedule-block-header > div:first-child .eyebrow { display: none; }
.schedule-block-header > div:first-child h3 { flex: 0 0 auto; }
.schedule-block-header > div:first-child > p:last-child { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.schedule-department-nav { padding-top: .5rem; }
.schedule-table-wrap { max-height: min(76vh,860px); }
.scheduler-view-empty { margin: .7rem 0; }

.scheduler-secondary { display: grid; margin-top: .8rem; gap: .55rem; }
.scheduler-secondary-panel { overflow: clip; border: 1px solid #dce6e8; border-radius: 13px; background: #fff; }
.scheduler-secondary-panel > summary { display: flex; min-height: 54px; padding: .7rem .85rem; align-items: center; justify-content: space-between; gap: 1rem; list-style: none; cursor: pointer; }
.scheduler-secondary-panel > summary::-webkit-details-marker { display: none; }
.scheduler-secondary-panel > summary:hover { background: #f7fafb; }
.scheduler-secondary-panel > summary:focus-visible { outline: 3px solid rgba(13,143,135,.26); outline-offset: -3px; }
.scheduler-secondary-panel > summary span { min-width: 0; }
.scheduler-secondary-panel > summary strong,.scheduler-secondary-panel > summary small { display: block; }
.scheduler-secondary-panel > summary strong { color: #294d55; font-size: .76rem; }
.scheduler-secondary-panel > summary small { margin-top: .14rem; overflow: hidden; color: var(--muted); font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.scheduler-secondary-panel > summary i { color: #6c838a; font-size: .9rem; font-style: normal; transition: transform .16s ease; }
.scheduler-secondary-panel[open] > summary { border-bottom: 1px solid #e1e9eb; background: #f7fafb; }
.scheduler-secondary-panel[open] > summary i { transform: rotate(180deg); }
.scheduler-secondary-content { padding: .8rem; background: #fcfdfd; }
.scheduler-secondary-content .scheduler-stats { margin: 0 0 .7rem; }
.scheduler-secondary-content .hours-color-legend { margin: 0; }
.scheduler-secondary-content .publication-progress { margin: 0; padding: 0; border: 0; background: transparent; }
.scheduler-secondary-content .scheduler-labor-private { margin: 0; }
.scheduler-secondary-content .point-change-report { margin: 0; padding: 0; border: 0; box-shadow: none; }
.scheduler-secondary-content .schedule-totals-grid { margin: 0; }

@media (max-width: 1199.98px) {
    .scheduler-workbench { grid-template-columns: minmax(180px,1fr) minmax(290px,1.4fr) auto; }
    .scheduler-workbench-state { grid-column: 3; grid-row: 1; }
    .scheduler-week-strip { grid-column: 1; grid-row: 2; justify-self: start; }
    .scheduler-primary-actions { grid-column: 2/-1; grid-row: 2; padding-top: 0; border-top: 0; }
    .scheduler-tools-panel { grid-template-columns: 1fr; }
    .scheduler-tools-panel .schedule-view-controls { justify-content: flex-start; }
}

@media (max-width: 767.98px) {
    .scheduler-location-entry { padding: 1rem; border-radius: 17px; }
    .scheduler-location-grid { grid-template-columns: 1fr; }
    .scheduler-location-choice { grid-template-columns: 42px minmax(0,1fr) auto; min-height: 82px; }
    .scheduler-location-choice .schedule-status { display: none; }
    .scheduler-location-choice > i { grid-column: 3; }
    .scheduler-workbench { padding: .8rem; grid-template-columns: minmax(0,1fr) auto; gap: .7rem; border-radius: 15px; }
    .scheduler-workbench-title { grid-column: 1; grid-row: 1; }
    .scheduler-workbench-state { grid-column: 2; grid-row: 1; }
    .scheduler-workbench-state > span { display: none; }
    .scheduler-point-notice-indicator { min-height: 34px; padding-inline: .5rem; font-size: .64rem; }
    .scheduler-reopen-confirmation { min-height: 34px; max-width: 170px; padding-inline: .45rem; font-size: .62rem; white-space: normal; }
    .scheduler-context-selectors { grid-column: 1/-1; grid-row: 2; grid-template-columns: minmax(0,1.15fr) minmax(132px,.85fr); }
    .scheduler-context-selectors .form-control,.scheduler-context-selectors .form-select { min-height: 44px; }
    .scheduler-week-strip { grid-column: 1/-1; grid-row: 3; width: 100%; grid-template-columns: 44px 1fr 44px; }
    .scheduler-week-strip a { min-height: 40px; }
    .scheduler-primary-actions { display: grid; grid-column: 1/-1; grid-row: 4; grid-template-columns: minmax(0,1fr) minmax(0,1fr); padding-top: .65rem; border-top: 1px solid #dce6e8; }
    .scheduler-primary-actions .btn { width: 100%; min-width: 0; min-height: 46px; padding-inline: .55rem; font-size: .76rem; }
    .scheduler-quick-tools-heading { align-items: stretch; flex-direction: column; }
    .scheduler-tools-toggle { display: flex; width: 100%; }
    .scheduler-warning-chips { width: 100%; padding-bottom: .08rem; }
    .scheduler-tools-panel { display: none; padding: .7rem; }
    .scheduler-tools-panel.is-open { display: grid; }
    .scheduler-tools-panel .scheduler-filter { grid-template-columns: 1fr 1fr; }
    .scheduler-tools-panel .scheduler-filter .filter-search { grid-column: 1/-1; }
    .scheduler-tools-panel .scheduler-filter .filter-actions { grid-column: 1/-1; }
    .scheduler-tools-panel .scheduler-filter .filter-actions .btn { width: 100%; min-height: 44px; }
    .scheduler-tools-panel .scheduler-filter .form-control,.scheduler-tools-panel .scheduler-filter .form-select { min-height: 44px; font-size: .84rem; }
    .scheduler-tools-panel .schedule-view-controls { display: grid; grid-template-columns: 1fr; }
    .scheduler-tools-panel .schedule-view-tabs { width: 100%; }
    .scheduler-tools-panel .schedule-view-controls .scheduler-point-notice-indicator { width: 100%; min-height: 44px; margin-left: 0; }
    .schedule-block-header > div:first-child { align-items: flex-start; flex-direction: column; gap: .25rem; }
    .schedule-block-header > div:first-child > p:last-child { width: 100%; white-space: normal; }
    .scheduler-secondary-panel > summary { min-height: 58px; }
    .scheduler-secondary-content { padding: .65rem; }
    .scheduler-secondary-content .scheduler-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .scheduler-secondary-content .hours-color-legend { align-items: flex-start; flex-direction: column; }
    .scheduler-secondary-content .publication-progress > div { grid-template-columns: 1fr; }
    .scheduler-secondary-content .schedule-totals-grid { grid-template-columns: 1fr; }
}

@media (max-width: 420px) {
    .scheduler-workbench-title > p:last-child { font-size: .62rem; }
    .scheduler-context-selectors { grid-template-columns: 1fr; }
    .scheduler-context-selectors label:first-child { grid-row: 1; }
    .scheduler-primary-actions { grid-template-columns: 1fr; }
    .scheduler-tools-panel .scheduler-filter { grid-template-columns: 1fr; }
    .scheduler-tools-panel .scheduler-filter .filter-search,.scheduler-tools-panel .scheduler-filter .filter-actions { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
    .scheduler-location-choice,.scheduler-tools-toggle span,.scheduler-secondary-panel > summary i { transition: none; }
    .scheduler-location-choice:hover { transform: none; }
}

/* Scheduler visual polish: restrained planning-console accents, never a dark calendar. */
.scheduler-location-entry {
    border-color: #b9d0d8;
    background:
        linear-gradient(90deg,rgba(21,54,74,.05) 1px,transparent 1px) 0 0/28px 28px,
        linear-gradient(0deg,rgba(21,54,74,.035) 1px,transparent 1px) 0 0/28px 28px,
        radial-gradient(circle at 92% 7%,rgba(40,181,202,.16),transparent 28%),
        linear-gradient(145deg,#f5fafc 0%,#fff 58%,#f1f8f9 100%);
}
.scheduler-location-entry-copy .eyebrow { color: #177f90; letter-spacing: .13em; }
.scheduler-location-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,310px),1fr)); }
.scheduler-location-choice {
    position: relative;
    min-height: 94px;
    grid-template-columns: 46px minmax(0,1fr) auto auto;
    border-color: #c8d9de;
    border-radius: 12px;
    background: linear-gradient(135deg,#fff,#f8fcfd);
    box-shadow: 0 7px 18px rgba(20,57,70,.045);
}
.scheduler-location-choice:before {
    position: absolute;
    top: 10px;
    bottom: 10px;
    left: 0;
    width: 3px;
    border-radius: 0 4px 4px 0;
    background: linear-gradient(#27b6c9,#15394e);
    content: "";
}
.scheduler-location-choice:after {
    position: absolute;
    top: 0;
    right: 14px;
    left: 14px;
    height: 1px;
    background: linear-gradient(90deg,transparent,rgba(30,172,190,.76),transparent);
    content: "";
    opacity: .65;
}
.scheduler-location-choice:hover { border-color: #59adbb; box-shadow: 0 11px 24px rgba(16,103,120,.12); }
.scheduler-location-choice:focus-visible { outline-color: rgba(24,152,175,.42); }
.scheduler-location-icon { border-radius: 11px; background: linear-gradient(145deg,#183d55,#206e83); box-shadow: 0 7px 15px rgba(21,57,78,.18); }
.scheduler-location-name { min-width: 0; }
.scheduler-location-choice strong {
    overflow: visible;
    color: #16374c;
    font-size: .84rem;
    line-height: 1.3;
    text-overflow: clip;
    white-space: normal;
}
.scheduler-location-prefix { font-weight: 760; }
.scheduler-location-accent { display: inline-block; color: #087b91; font-weight: 900; letter-spacing: .035em; }
.scheduler-location-choice small { white-space: normal; }
.scheduler-location-choice .schedule-status { align-self: start; font-size: .57rem; }

.scheduler-workbench {
    overflow: visible;
    border-color: #183e55;
    background:
        linear-gradient(90deg,rgba(91,211,222,.09) 1px,transparent 1px) 0 0/32px 32px,
        radial-gradient(circle at 86% 8%,rgba(41,190,206,.18),transparent 24%),
        linear-gradient(135deg,#102d43 0%,#153b53 52%,#1a465d 100%);
    box-shadow: 0 12px 28px rgba(16,47,68,.17),inset 0 1px 0 rgba(204,250,255,.17);
}
.scheduler-workbench:before { right: 6%; left: 6%; height: 1px; background: linear-gradient(90deg,transparent,#50d0d9 22%,#b4f2f2 50%,#50d0d9 78%,transparent); opacity: .82; }
.scheduler-workbench-title .eyebrow { color: #84dce1; font-size: .57rem; letter-spacing: .15em; }
.scheduler-workbench-title h2 { color: #f5ffff; }
.scheduler-workbench-title > p:last-child { color: #bed6dc; }
.scheduler-context-selectors label { color: #c5dde1; }
.scheduler-context-selectors .form-control,.scheduler-context-selectors .form-select {
    border-color: rgba(159,212,219,.44);
    color: #17394b;
    background-color: rgba(251,254,255,.98);
    box-shadow: inset 0 1px 0 rgba(22,67,87,.06);
}
.scheduler-context-selectors .form-control:focus,.scheduler-context-selectors .form-select:focus { border-color: #54d0d7; box-shadow: 0 0 0 3px rgba(81,208,215,.19); }
.scheduler-week-strip { border-color: rgba(152,218,223,.38); background: rgba(7,33,50,.38); box-shadow: inset 0 1px 0 rgba(207,252,255,.1); }
.scheduler-week-strip a { color: #c7e5e8; }
.scheduler-week-strip a:hover,.scheduler-week-strip a:focus-visible { color: #fff; background: rgba(68,187,197,.28); }
.scheduler-week-strip a.is-current { color: #e9ffff; background: rgba(89,205,211,.16); }
.scheduler-workbench-state > span { color: #abd3d9; }
.scheduler-workbench .schedule-status { border: 1px solid transparent; box-shadow: inset 0 1px 0 rgba(255,255,255,.22); }
.scheduler-workbench .schedule-status.draft { color: #ffe6a3; border-color: rgba(255,215,121,.45); background: rgba(145,97,22,.35); }
.scheduler-workbench .schedule-status.published { color: #b9fff0; border-color: rgba(114,234,202,.38); background: rgba(18,126,111,.35); }
.scheduler-workbench .schedule-status.partial { color:#ffe6a3; border-color:rgba(255,215,121,.45); background:rgba(145,97,22,.35); }
.scheduler-workbench .schedule-status.reopened { color: #d2efff; border-color: rgba(128,201,240,.45); background: rgba(32,100,139,.36); }
.scheduler-primary-actions { border-top-color: rgba(170,223,228,.18); }
.scheduler-primary-actions .btn-primary { border-color: #54d5d9; background: linear-gradient(135deg,#148d94,#1aafb4); box-shadow: 0 8px 18px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.24); }
.scheduler-primary-actions .btn-success { border-color: #a7e3bf; box-shadow: 0 7px 16px rgba(0,0,0,.14); }
.scheduler-primary-actions .btn-outline-danger { border-color: #e7aaa7; color: #ffd8d4; background: rgba(114,43,43,.2); }

.scheduler-quick-tools { border-color: #c5d9df; box-shadow: 0 6px 16px rgba(20,59,73,.045); }
.scheduler-quick-tools-heading { background: linear-gradient(90deg,#fbfdfe,#f2f8fa); border-radius: 15px 15px 0 0; }
.scheduler-tools-toggle { border-color: #b7d2d9; color: #244f60; background: #f7fcfd; }
.scheduler-tools-toggle:hover,.scheduler-tools-toggle:focus-visible { border-color: #52b7c4; background: #e9f8fa; }
.scheduler-warning-chips a,.scheduler-warning-chips > span { box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }
.scheduler-tools-panel { border-top-color: #d5e4e8; background: linear-gradient(180deg,#fbfdfe,#f6fafb); }
.scheduler-tools-panel .scheduler-filter .form-control,.scheduler-tools-panel .scheduler-filter .form-select { border-color: #c8d9de; }
.scheduler-tools-panel .scheduler-filter .form-control:focus,.scheduler-tools-panel .scheduler-filter .form-select:focus { border-color: #42afbc; box-shadow: 0 0 0 3px rgba(45,170,184,.15); }
.schedule-view-tabs { border-color: #b9d4da; background: #edf6f8; }
.schedule-view-tabs button.active { background: linear-gradient(135deg,#176e83,#0d9196); box-shadow: 0 4px 11px rgba(16,103,120,.2); }

.schedule-block { border-color: #c9d9de; box-shadow: 0 9px 21px rgba(22,60,72,.05); }
.schedule-block > header { border-bottom-color: #cfdee2; background: linear-gradient(90deg,#f6fafb,#fcfeff); }
.schedule-block-header > div:first-child h3 { color: #193c4f; letter-spacing: -.015em; }
.schedule-department-nav { border-top-color: #dce8eb; }
.schedule-department-nav button { border-color: #c7d9de; background: #fff; }
.schedule-department-nav button:hover { background: #eefafb; }
.schedule-table thead th { color: #31576a; background: linear-gradient(180deg,#f9fcfd,#eef5f7); }
.schedule-table thead th.is-today { position: sticky; color: #08778a; background: linear-gradient(180deg,#dff5f7,#effbfc); box-shadow: inset 0 3px 0 #1aaeb9,0 1px 0 #c8dde2; }
.schedule-table thead th.is-today small { color: #08778a; font-weight: 850; }
.schedule-table th,.schedule-table td { border-color: #e0e9ec; }
.employee-cell { background: #fbfdfe; }
.schedule-table tbody tr:hover .employee-cell { background: #f1f9fa; }
.shift-cell { background-image: linear-gradient(180deg,rgba(247,251,252,.42),rgba(255,255,255,0)); }
.shift-cell.is-transferred { align-items:center; justify-content:center; background-color:#f5f8fa; background-image:repeating-linear-gradient(135deg,rgba(111,133,145,.045) 0,rgba(111,133,145,.045) 6px,transparent 6px,transparent 12px); }
.temporary-transfer-notice { display:inline-flex; max-width:100%; padding:.28rem .42rem; align-items:center; justify-content:center; border:1px solid #cfdae0; border-radius:7px; color:#526875; background:#f8fafb; font-size:.64rem; font-weight:750; line-height:1.25; text-align:center; overflow-wrap:anywhere; }
.mobile-employee-day > .temporary-transfer-notice { display:flex; margin:.5rem .75rem .75rem; }
.calendar-shift { box-shadow: 0 3px 9px rgba(25,64,74,.045),inset 0 1px 0 rgba(255,255,255,.65); }
.calendar-shift[role="button"]:hover { box-shadow: 0 7px 15px rgba(19,82,94,.12),inset 0 1px 0 rgba(255,255,255,.8); }
.calendar-shift[role="button"]:focus-visible { outline-color: rgba(19,145,164,.48); }
.shift-service-area { padding: .08rem .28rem; border: 1px solid rgba(49,130,145,.24); border-radius: 5px; color: #226779; background: rgba(224,246,248,.68); }
.cell-add { border-color: #86bfc8; color: #08798a; background: #f7fdfe; }
.cell-add:hover,.cell-add:focus-visible { border-style: solid; border-color: #29a8b5; background: #eaf9fa; box-shadow: 0 0 0 3px rgba(41,168,181,.13); }
.mobile-day-tabs button.is-today { border-color: #51b9c3; color: #08788b; background: #e6f7f8; box-shadow: inset 0 2px 0 #23aebb; }
.mobile-day-panel > header { padding-bottom: .45rem; border-bottom: 1px solid #dce8eb; }
.mobile-employee-day { border-color: #d5e3e7; box-shadow: 0 4px 12px rgba(25,61,71,.035); }
.mobile-shift-line { box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }

.scheduler-secondary-panel { border-color: #cbdde2; box-shadow: 0 5px 14px rgba(25,62,73,.035); }
.scheduler-secondary-panel > summary { background: linear-gradient(90deg,#fcfeff,#f3f9fa); }
.scheduler-secondary-panel[open] > summary { background: linear-gradient(90deg,#edf8fa,#f8fcfd); }
.scheduler-secondary-panel > summary strong { color: #1e4b5d; }
.scheduler-secondary-panel > summary i { color: #16889a; }
.scheduler-secondary-content { background: #fcfeff; }
.schedule-analysis-panel { border-color: #c8dce1; box-shadow: 0 7px 18px rgba(22,61,72,.045); }
.analysis-heading { padding-bottom: .65rem; border-bottom: 1px solid #e1ebee; }
.analysis-heading h3 { color: #1d485a; }
.timeline-day-panel { border-color: #ccdde2; }
.timeline-group h4 { color: #294e5e; background: linear-gradient(90deg,#edf6f8,#f8fbfc); }
.timeline-shift { box-shadow: inset 0 1px 0 rgba(255,255,255,.55); }

@media (max-width: 767.98px) {
    .scheduler-location-grid { grid-template-columns: 1fr; }
    .scheduler-location-choice { grid-template-columns: 44px minmax(0,1fr) auto; min-height: 88px; }
    .scheduler-location-choice .schedule-status { display: inline-flex; grid-column: 3; grid-row: 1; }
    .scheduler-location-choice > i { grid-column: 3; grid-row: 2; justify-self: end; }
    .scheduler-location-choice strong { font-size: .88rem; }
    .scheduler-workbench { background: linear-gradient(135deg,#123149,#174259 68%,#1b4a60); }
    .scheduler-primary-actions .btn-primary { min-width: 0; }
    .scheduler-tools-panel .scheduler-filter .form-control,.scheduler-tools-panel .scheduler-filter .form-select { font-size: .85rem; }
    .schedule-table thead th.is-today { box-shadow: inset 0 3px 0 #1aaeb9,0 1px 0 #c8dde2; }
}

@media (max-width: 767.98px) {
    .service-area-filters, .service-area-layout { grid-template-columns: 1fr; }
    .service-area-editor { position: static; }
    .service-area-row { grid-template-columns: minmax(0, 1fr) auto; }
    .service-area-actions { grid-column: 1 / -1; justify-content: flex-end; }
}

/* Calendar frame: a light interior inside a restrained planning-console shell. */
@media (min-width: 992px) {
    .desktop-scheduler .schedule-block {
        position: relative;
        isolation: isolate;
        overflow: hidden;
        border-color: #4fc3ce;
        border-radius: 16px 11px 16px 11px;
        background: #14384e;
        box-shadow: 0 0 0 2px #16384d,0 12px 26px rgba(13,48,67,.14),0 0 18px rgba(43,179,192,.12);
        transition: border-color .16s ease,box-shadow .16s ease,transform .16s ease;
    }
    .desktop-scheduler .schedule-block::before {
        position: absolute;
        z-index: 0;
        top: 1px;
        right: 22px;
        left: 22px;
        height: 42px;
        background: linear-gradient(180deg,rgba(199,255,255,.16),rgba(90,208,219,.045) 48%,transparent);
        clip-path: polygon(12px 0,calc(100% - 12px) 0,100% 100%,0 100%);
        content: "";
        opacity: .72;
        pointer-events: none;
    }
    .desktop-scheduler .schedule-block::after {
        position: absolute;
        z-index: 3;
        inset: 0;
        background:
            linear-gradient(90deg,transparent,#8be7ea,transparent) 18px 0/86px 1px no-repeat,
            linear-gradient(90deg,transparent,#52cbd3,transparent) calc(100% - 104px) 0/86px 1px no-repeat,
            linear-gradient(90deg,transparent,#53cbd4,transparent) 18px 100%/64px 1px no-repeat,
            linear-gradient(180deg,#90edf0,transparent) 0 16px/1px 34px no-repeat,
            linear-gradient(180deg,transparent,#4fc5ce) 100% calc(100% - 50px)/1px 34px no-repeat;
        content: "";
        opacity: .86;
        pointer-events: none;
    }
    .desktop-scheduler .schedule-block > header,
    .desktop-scheduler .schedule-block > .schedule-table-wrap { position: relative; z-index: 1; }
    .desktop-scheduler .schedule-block > header {
        border-bottom-color: #c8dde2;
        background: linear-gradient(105deg,rgba(247,251,252,.96) 0%,rgba(252,254,255,.94) 56%,rgba(234,245,247,.93) 100%);
        box-shadow: inset 0 -1px 0 rgba(21,92,111,.04);
    }
    .desktop-scheduler .schedule-block > .schedule-table-wrap {
        border-top: 1px solid rgba(13,75,94,.08);
        background: #fff;
    }
    .desktop-scheduler .schedule-block:hover,
    .desktop-scheduler .schedule-block:focus-within {
        border-color: #76dce1;
        box-shadow: 0 0 0 2px #173c52,0 15px 30px rgba(13,48,67,.17),0 0 22px rgba(43,179,192,.16);
    }
}

@media (prefers-reduced-motion: reduce) {
    .desktop-scheduler .schedule-block { transition: none; }
}

/* Scheduler final contrast pass: dark structure, clear operational workspace. */
.scheduler-workbench {
    border-color: #1c5a7b;
    background:
        linear-gradient(90deg,rgba(105,220,229,.075) 1px,transparent 1px) 0 0/32px 32px,
        radial-gradient(circle at 84% 0,rgba(69,174,207,.19),transparent 27%),
        linear-gradient(135deg,var(--scheduler-deep) 0%,var(--scheduler-surface) 54%,var(--scheduler-surface-2) 100%);
    box-shadow: 0 16px 32px rgba(2,7,25,.34),inset 0 1px 0 rgba(220,251,255,.16);
}
.scheduler-workbench:before { background: linear-gradient(90deg,transparent,var(--scheduler-accent) 20%,#d9fdff 50%,var(--scheduler-accent) 80%,transparent); opacity: .9; }
.scheduler-workbench-title h2 { color: var(--scheduler-text); }
.scheduler-workbench-title > p:last-child,.scheduler-context-selectors label,.scheduler-workbench-state > span { color: var(--scheduler-muted); }
.scheduler-context-selectors .form-control,.scheduler-context-selectors .form-select { color: #142642; background-color: #f8fbff; }
.scheduler-context-selectors .form-control:focus,.scheduler-context-selectors .form-select:focus { border-color: var(--scheduler-accent); box-shadow: 0 0 0 3px rgba(105,220,229,.22); }
.scheduler-week-strip { border-color: rgba(105,220,229,.42); background: rgba(2,9,29,.56); }
.scheduler-week-strip a { color: var(--scheduler-muted); }
.scheduler-week-strip a:hover,.scheduler-week-strip a:focus-visible { color: var(--scheduler-text); background: rgba(70,183,201,.28); outline: 2px solid rgba(105,220,229,.5); outline-offset: -2px; }
.scheduler-week-strip a.is-current { color: var(--scheduler-text); background: rgba(76,190,205,.22); }
.scheduler-primary-actions { border-top-color: rgba(169,227,234,.23); }
.scheduler-primary-actions .btn-primary { border-color: var(--scheduler-accent); background: linear-gradient(135deg,#147f94,#1baab7); }

.scheduler-quick-tools { border-color: #bdd3df; background: #f8fbfe; box-shadow: 0 9px 22px rgba(5,11,36,.11); }
.scheduler-quick-tools-heading { border-bottom: 1px solid #275f7c; background: linear-gradient(105deg,var(--scheduler-surface),var(--scheduler-surface-2)); }
.scheduler-tools-toggle { border-color: rgba(142,218,229,.52); color: var(--scheduler-text); background: rgba(2,11,34,.52); }
.scheduler-tools-toggle:hover,.scheduler-tools-toggle:focus-visible { border-color: var(--scheduler-accent); color: #fff; background: rgba(59,169,186,.28); outline: 2px solid rgba(105,220,229,.42); outline-offset: 2px; }
.scheduler-tools-panel { border-top-color: #c9dbe5; background: linear-gradient(180deg,#f9fcff,#f2f7fb); }
.scheduler-tools-panel .scheduler-filter .form-label { color: #334d68; }
.scheduler-tools-panel .scheduler-filter .form-control,.scheduler-tools-panel .scheduler-filter .form-select { border-color: #aac5d3; color: #152b47; background: #fff; }
.scheduler-tools-panel .scheduler-filter .form-control:focus,.scheduler-tools-panel .scheduler-filter .form-select:focus { border-color: #238da7; box-shadow: 0 0 0 3px rgba(35,141,167,.18); }

@media (min-width: 992px) {
    .desktop-scheduler .schedule-block {
        border-color: var(--scheduler-line);
        background: var(--scheduler-deep);
        box-shadow: 0 0 0 2px #06132e,0 16px 34px rgba(2,7,25,.28),0 0 20px rgba(61,187,202,.14);
    }
    .desktop-scheduler .schedule-block::before {
        height: 52px;
        background: linear-gradient(180deg,rgba(202,250,255,.21),rgba(89,211,225,.075) 48%,transparent);
        opacity: .88;
    }
    .desktop-scheduler .schedule-block::after { opacity: .94; }
    .desktop-scheduler .schedule-block > header {
        border-bottom-color: #4ba4b5;
        background:
            linear-gradient(180deg,rgba(239,253,255,.1),transparent 40%),
            linear-gradient(115deg,var(--scheduler-deep),var(--scheduler-surface) 60%,var(--scheduler-surface-2));
        box-shadow: inset 0 1px 0 rgba(222,252,255,.14),inset 0 -1px 0 rgba(105,220,229,.32);
    }
    .desktop-scheduler .schedule-block-header > div:first-child h3 { color: var(--scheduler-text); }
    .desktop-scheduler .schedule-block-header > div:first-child > p:last-child,.desktop-scheduler .schedule-department-nav > span { color: var(--scheduler-muted); }
    .desktop-scheduler .schedule-block .eyebrow { color: var(--scheduler-accent); }
    .desktop-scheduler .schedule-department-nav { border-top-color: rgba(149,221,230,.22); }
    .desktop-scheduler .schedule-department-nav button { border-color: rgba(132,208,220,.36); color: var(--scheduler-text); background: rgba(3,14,39,.58); }
    .desktop-scheduler .schedule-department-nav button:hover { border-color: var(--department-color,var(--scheduler-accent)); background: rgba(54,158,181,.27); box-shadow: 0 3px 10px rgba(0,0,0,.2); }
    .desktop-scheduler .schedule-department-nav button:focus-visible { outline-color: rgba(105,220,229,.62); }
    .desktop-scheduler .schedule-department-nav button small { color: #d8e8f4; background: rgba(118,188,204,.2); }
    .desktop-scheduler .schedule-block > .schedule-table-wrap { border-top-color: #65c4d0; background: #f8fbff; }
    .desktop-scheduler .schedule-table thead th {
        border-color: #275d7a;
        color: var(--scheduler-text);
        background: linear-gradient(180deg,#0d2853,#081b3d);
        box-shadow: inset 0 1px 0 rgba(224,251,255,.12),0 1px 0 #4ba4b5;
    }
    .desktop-scheduler .schedule-table thead th small { color: var(--scheduler-muted); }
    .desktop-scheduler .schedule-table thead th.is-today {
        color: #fff;
        background: linear-gradient(180deg,#174a78,#0c2856);
        box-shadow: inset 0 3px 0 var(--scheduler-accent),inset 0 0 0 1px rgba(148,238,244,.38),0 1px 0 #65d9e3;
    }
    .desktop-scheduler .schedule-table thead th.is-today small { color: #d9fbff; }
    .desktop-scheduler .schedule-table th,.desktop-scheduler .schedule-table td { border-color: #d6e2ea; }
    .desktop-scheduler .employee-cell { background: #f7faff; box-shadow: 2px 0 0 #d6e2ea; }
    .desktop-scheduler .schedule-table tbody tr:hover .employee-cell { background: #edf6fc; }
    .desktop-scheduler .scheduler-employee strong { color: #112845; }
    .desktop-scheduler .scheduler-employee small { color: #4a607b; }
    .desktop-scheduler .scheduler-employee-subline em { color: #263f5d; }
    .desktop-scheduler .shift-cell { background-image: linear-gradient(180deg,rgba(225,238,247,.5),rgba(255,255,255,0)); }
    .desktop-scheduler .calendar-shift[role="button"]:focus-visible,.desktop-scheduler .cell-add:focus-visible { outline: 3px solid rgba(22,158,181,.58); outline-offset: 2px; }
    .desktop-scheduler .schedule-block:hover,.desktop-scheduler .schedule-block:focus-within {
        border-color: var(--scheduler-accent);
        box-shadow: 0 0 0 2px #071735,0 18px 38px rgba(2,7,25,.34),0 0 23px rgba(61,187,202,.18);
    }
}

@media (max-width: 767.98px) {
    .scheduler-workbench { background: linear-gradient(135deg,var(--scheduler-deep),var(--scheduler-surface) 62%,var(--scheduler-surface-2)); box-shadow: 0 9px 20px rgba(2,7,25,.24),inset 0 1px 0 rgba(220,251,255,.12); }
    .scheduler-primary-actions { border-top-color: rgba(169,227,234,.23); }
    .scheduler-quick-tools-heading { border-bottom-color: #275f7c; }
}

/* Scheduler operational canvas: depth without changing scheduling states or layout. */
@media (min-width: 992px) {
    .desktop-scheduler .department-table-header th {
        background: linear-gradient(105deg,#0a1b3b,#102b52 62%,#0b2145);
        box-shadow: inset 0 1px 0 rgba(229,252,255,.12),inset 0 -1px 0 rgba(105,220,229,.18);
    }
    .desktop-scheduler .department-toggle {
        position: relative;
        overflow: hidden;
        color: var(--scheduler-text);
        background: linear-gradient(90deg,rgba(255,255,255,.045),transparent 44%);
    }
    .desktop-scheduler .department-toggle::before {
        position: absolute;
        z-index: 0;
        top: 0;
        bottom: 0;
        left: 0;
        width: 4px;
        background: var(--department-color,var(--scheduler-accent));
        box-shadow: 2px 0 8px color-mix(in srgb,var(--department-color,var(--scheduler-accent)) 42%,transparent);
        content: "";
        pointer-events: none;
    }
    .desktop-scheduler .department-toggle > * { position: relative; z-index: 1; }
    .desktop-scheduler .department-toggle:hover { background: linear-gradient(90deg,rgba(105,220,229,.11),transparent 52%); }
    .desktop-scheduler .department-toggle small {
        padding: .2rem .42rem;
        border: 1px solid rgba(174,226,234,.24);
        border-radius: 999px;
        color: var(--scheduler-muted);
        background: rgba(2,12,34,.3);
        font-weight: 720;
    }
    .desktop-scheduler .department-toggle small b { color: var(--scheduler-text); }
    .desktop-scheduler .department-toggle-icon { color: var(--scheduler-accent); }
    .desktop-scheduler .department-color-dot { box-shadow: 0 0 0 3px color-mix(in srgb,var(--department-color,var(--scheduler-accent)) 25%,transparent); }

    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row] > td { background: #fbfdff; }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row]:nth-of-type(even) > td { background: #f7fbfe; }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row]:hover > td { background: #eef7fc; }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row] > .employee-cell {
        background: linear-gradient(105deg,#f9fcff,#edf5fb);
        box-shadow: inset 3px 0 0 rgba(58,153,177,.48),2px 0 0 #d6e2ea;
    }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row]:hover > .employee-cell {
        background: linear-gradient(105deg,#f3faff,#e7f3fb);
        box-shadow: inset 4px 0 0 #42a8bd,2px 0 0 #c7dce7;
    }
    .desktop-scheduler .scheduler-employee strong { color: #0c2444; font-weight: 780; }
    .desktop-scheduler .scheduler-employee small { color: #435d7a; font-weight: 600; }
    .desktop-scheduler .scheduler-employee-subline em {
        padding: .08rem .32rem;
        border: 1px solid #bed5e2;
        border-radius: 999px;
        color: #183a5f;
        background: rgba(255,255,255,.72);
        font-weight: 820;
    }
    .desktop-scheduler .hours-progress { height: 8px; background: #dce8ef; box-shadow: inset 0 1px 1px rgba(22,54,78,.1); }

    .desktop-scheduler .shift-cell {
        background-image: linear-gradient(145deg,rgba(219,235,245,.52),rgba(255,255,255,0) 58%);
        transition: background-color .15s ease,box-shadow .15s ease;
    }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row] > td:hover .shift-cell {
        background-color: rgba(83,179,198,.07);
        box-shadow: inset 0 0 0 1px rgba(58,159,181,.15);
    }
    .desktop-scheduler .schedule-table:has(thead th:nth-child(2).is-today) tbody tr[data-scheduler-employee-row] > td:nth-child(2),
    .desktop-scheduler .schedule-table:has(thead th:nth-child(3).is-today) tbody tr[data-scheduler-employee-row] > td:nth-child(3),
    .desktop-scheduler .schedule-table:has(thead th:nth-child(4).is-today) tbody tr[data-scheduler-employee-row] > td:nth-child(4),
    .desktop-scheduler .schedule-table:has(thead th:nth-child(5).is-today) tbody tr[data-scheduler-employee-row] > td:nth-child(5),
    .desktop-scheduler .schedule-table:has(thead th:nth-child(6).is-today) tbody tr[data-scheduler-employee-row] > td:nth-child(6),
    .desktop-scheduler .schedule-table:has(thead th:nth-child(7).is-today) tbody tr[data-scheduler-employee-row] > td:nth-child(7),
    .desktop-scheduler .schedule-table:has(thead th:nth-child(8).is-today) tbody tr[data-scheduler-employee-row] > td:nth-child(8) {
        background-color: #eefaff;
        box-shadow: inset 1px 0 0 rgba(70,190,204,.25),inset -1px 0 0 rgba(70,190,204,.25);
    }
    .desktop-scheduler .no-shifts { color: #61758d; font-weight: 650; }

    .desktop-scheduler .calendar-shift {
        background-image: linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 54%);
        box-shadow: 0 4px 10px rgba(20,51,76,.09),inset 0 1px 0 rgba(255,255,255,.78);
    }
    .desktop-scheduler .calendar-shift[role="button"]:hover,.desktop-scheduler .calendar-shift[data-adjust-published-shift]:hover {
        box-shadow: 0 7px 15px rgba(17,65,89,.15),inset 0 1px 0 rgba(255,255,255,.86);
    }
    .desktop-scheduler .shift-compact-line > strong { color: #173653; font-weight: 850; }
    .desktop-scheduler .shift-compact-meta { color: #294d6a; font-weight: 780; }
    .desktop-scheduler .shift-service-area { border-color: rgba(38,121,146,.32); color: #175a72; background: rgba(226,247,250,.76); }
    .desktop-scheduler .shift-notice-status { box-shadow: inset 0 1px 0 rgba(255,255,255,.68); }
    .desktop-scheduler .cell-add {
        border-style: solid;
        border-color: #58b8c8;
        color: #086d83;
        background: linear-gradient(145deg,rgba(255,255,255,.92),rgba(220,246,250,.84));
        box-shadow: inset 0 1px 0 rgba(255,255,255,.94),0 2px 6px rgba(20,88,108,.09);
    }
    .desktop-scheduler .cell-add:hover,.desktop-scheduler .cell-add:focus-visible {
        border-color: #168ea5;
        color: #064e66;
        background: linear-gradient(145deg,#f8feff,#cdeff4);
        box-shadow: 0 0 0 3px rgba(38,170,189,.17),inset 0 1px 0 #fff;
    }
}

@media (max-width: 991.98px) {
    .mobile-department > .department-toggle { background: linear-gradient(105deg,#edf5fa,#f8fbfd); box-shadow: inset 0 1px 0 rgba(255,255,255,.78); }
    .mobile-employee-day { background: linear-gradient(135deg,#fff,#f5f9fc); }
    .mobile-employee-head strong { color: #112845; }
    .mobile-employee-head small { color: #49617b; }
    .mobile-shift-line { box-shadow: 0 2px 6px rgba(20,51,76,.06),inset 0 1px 0 rgba(255,255,255,.72); }
}

@media (prefers-reduced-motion: reduce) {
    .desktop-scheduler .shift-cell { transition: none; }
}

/* Keep the combined role and service-area line safely inside each shift card. */
.shift-compact-meta { min-width: 0; }
.mobile-shift-line > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Operational calendar readability: layered blue-grey work surfaces without a dark-table treatment. */
@media (min-width: 992px) {
    .desktop-scheduler {
        --scheduler-body-base: #e6eef3;
        --scheduler-body-cell: #edf3f7;
        --scheduler-body-alt: #e8f0f5;
        --scheduler-body-employee: #dfeaf2;
        --scheduler-body-line: #c3d3de;
    }
    .desktop-scheduler .schedule-block > .schedule-table-wrap {
        background: var(--scheduler-body-base);
        box-shadow: inset 0 1px 3px rgba(24,63,88,.1);
    }
    .desktop-scheduler .schedule-table th,.desktop-scheduler .schedule-table td { border-color: var(--scheduler-body-line); }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row] > td {
        background: linear-gradient(180deg,var(--scheduler-body-cell),#eaf2f6);
    }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row]:nth-of-type(even) > td {
        background: linear-gradient(180deg,var(--scheduler-body-alt),#e4edf3);
    }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row]:hover > td {
        background: linear-gradient(180deg,#e6f4f8,#e1f0f5);
        box-shadow: inset 0 1px 0 rgba(79,172,190,.18),inset 0 -1px 0 rgba(79,172,190,.12);
    }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row] > .employee-cell {
        background: linear-gradient(105deg,var(--scheduler-body-employee),#d7e5ee);
        box-shadow: inset 4px 0 0 rgba(42,143,166,.52),2px 0 0 #aec5d3;
    }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row]:hover > .employee-cell {
        background: linear-gradient(105deg,#dcecf4,#d3e6f0);
        box-shadow: inset 4px 0 0 #329eb5,2px 0 0 #9ebdcd;
    }
    .desktop-scheduler .scheduler-employee strong { color: #09213f; font-size: 1.06rem; font-weight: 780; }
    .desktop-scheduler .scheduler-employee small { color: #385675; font-size: .89rem; font-weight: 620; }
    .desktop-scheduler .scheduler-employee-subline em { color: #123a60; font-size: .86rem; }
    .desktop-scheduler .hours-progress { height: 8px; background: #cddce5; box-shadow: inset 0 1px 2px rgba(15,51,75,.14); }
    .desktop-scheduler .shift-cell {
        background-image: linear-gradient(180deg,rgba(214,230,239,.42),rgba(255,255,255,0) 62%);
    }
    .desktop-scheduler .schedule-table tbody tr[data-scheduler-employee-row] > td:hover .shift-cell {
        background-color: rgba(76,171,190,.08);
        box-shadow: inset 0 0 0 1px rgba(44,145,168,.18),inset 0 1px 0 rgba(255,255,255,.5);
    }
    .desktop-scheduler .no-shifts { color: #536c84; font-size: .72rem; font-weight: 650; }
    .desktop-scheduler .calendar-shift { box-shadow: 0 4px 9px rgba(17,52,76,.11),inset 0 1px 0 rgba(255,255,255,.8); }
    .desktop-scheduler .calendar-shift[role="button"]:hover,.desktop-scheduler .calendar-shift[data-adjust-published-shift]:hover {
        transform: none;
        box-shadow: 0 6px 12px rgba(17,62,86,.15),inset 0 1px 0 rgba(255,255,255,.88);
    }
    .desktop-scheduler .shift-compact-line > strong { color: #102f4f; font-size: .78rem; line-height: 1.3; }
    .desktop-scheduler .shift-compact-meta { color: #214b6a; font-size: .72rem; font-weight: 800; }
    .desktop-scheduler .shift-notice-status { font-size: .62rem; }
    .desktop-scheduler .cell-add {
        color: #075d75;
        font-weight: 850;
        background: linear-gradient(145deg,#e5f3f7,#cfe7ee);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.88),0 2px 5px rgba(16,73,94,.12);
    }
    .desktop-scheduler .cell-add:hover,.desktop-scheduler .cell-add:focus-visible {
        background: linear-gradient(145deg,#e7f7fa,#c1e5ec);
        box-shadow: 0 0 0 3px rgba(38,170,189,.18),inset 0 1px 0 #fff;
    }
}

@media (max-width: 991.98px) {
    .mobile-employee-day { background: linear-gradient(135deg,#eef5f9,#e5eef4); }
    .mobile-employee-head strong { color: #0d2745; font-weight: 760; }
    .mobile-employee-head small { color: #405d79; }
    .mobile-shift-line { box-shadow: 0 2px 5px rgba(17,52,76,.08),inset 0 1px 0 rgba(255,255,255,.76); }
    .mobile-shift-line > span { color: #3b5874; font-weight: 680; }
}

/* Atmósfera compartida para todas las pantallas autenticadas. */
body.app-body {
    --scheduler-page-top: #d8e2e9;
    --scheduler-page-mid: #c9d7e1;
    --scheduler-page-bottom: #bfcfdc;
    background: linear-gradient(180deg,var(--scheduler-page-top),var(--scheduler-page-mid) 48%,var(--scheduler-page-bottom));
}
body.app-body .app-main {
    background:
        radial-gradient(ellipse 48% 28% at 57% 30%,rgba(99,196,207,.13),transparent 72%),
        radial-gradient(ellipse 42% 24% at 14% 72%,rgba(143,187,203,.12),transparent 74%),
        linear-gradient(180deg,var(--scheduler-page-top),var(--scheduler-page-mid) 48%,var(--scheduler-page-bottom));
}
body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .topbar {
    border-bottom-color: #91b6c5;
    background: linear-gradient(180deg,rgba(239,245,248,.92),rgba(220,231,237,.9));
    box-shadow: 0 3px 10px rgba(28,65,86,.09);
}
body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .topbar h1 { color: #17364d; }
body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .topbar-kicker { color: #557488; }
body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .menu-button,
body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .notification-bell {
    border-color: #aec8d3;
    background: rgba(246,251,253,.72);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72);
}
body.app-body .content-area {
    background: radial-gradient(ellipse 58% 34% at 50% 20%,rgba(211,247,249,.18),transparent 76%);
}

@media (max-width: 767.98px) {
    body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .app-main {
        background: linear-gradient(180deg,var(--scheduler-page-top),var(--scheduler-page-mid) 54%,var(--scheduler-page-bottom));
    }
    body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .topbar {
        background: #e1ebf0;
        box-shadow: 0 2px 6px rgba(28,65,86,.07);
    }
    body.app-body:has(.scheduler-workbench, .scheduler-location-entry) .content-area { background: transparent; }
}

/* Compact Scheduler context: the location title is the selector; week navigation owns date changes. */
.scheduler-workbench {
    grid-template-columns: minmax(245px,1fr) auto auto;
}
.scheduler-workbench-title {
    align-self: center;
}
.scheduler-location-title-selector,
.scheduler-location-title-selector label {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin: 0;
}
.scheduler-location-title-control {
    position: relative;
    display: inline-flex;
    max-width: 100%;
    align-items: center;
}
.scheduler-location-title-control:after {
    position: absolute;
    right: .08rem;
    color: #8ce6eb;
    font-size: .76rem;
    line-height: 1;
    content: "⌄";
    pointer-events: none;
}
.scheduler-location-title-control select {
    max-width: min(100%,340px);
    min-height: 28px;
    padding: 0 1.2rem 0 0;
    overflow: hidden;
    border: 0;
    border-bottom: 1px solid transparent;
    border-radius: 0;
    outline: 0;
    color: var(--scheduler-text);
    background: transparent;
    font: inherit;
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: -.025em;
    text-overflow: ellipsis;
    white-space: nowrap;
    appearance: none;
    cursor: pointer;
}
.scheduler-location-title-control select:hover {
    border-bottom-color: rgba(140,230,235,.55);
}
.scheduler-location-title-control select:focus-visible {
    border-bottom-color: var(--scheduler-accent);
    box-shadow: 0 2px 0 rgba(105,220,229,.3);
}
.scheduler-location-title-control select option {
    color: #142642;
    background: #f8fbff;
}
.scheduler-location-title-static {
    margin: 0;
    color: var(--scheduler-text);
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: -.025em;
}
.scheduler-workbench-title > .scheduler-week-range {
    margin-top: .28rem;
    color: #d2e8ec;
    font-size: .82rem;
    font-weight: 680;
    letter-spacing: .005em;
}

@media (max-width: 1199.98px) {
    .scheduler-workbench { grid-template-columns: minmax(230px,1fr) auto auto; }
    .scheduler-week-strip { grid-column: auto; grid-row: auto; }
    .scheduler-primary-actions { grid-column: 1/-1; grid-row: auto; padding-top: .7rem; border-top: 1px solid rgba(169,227,234,.23); }
}

@media (max-width: 767.98px) {
    .scheduler-workbench { grid-template-columns: minmax(0,1fr) auto; }
    .scheduler-location-title-control select { max-width: 100%; min-height: 30px; font-size: 1rem; }
    .scheduler-workbench-title > .scheduler-week-range { font-size: .76rem; line-height: 1.35; }
    .scheduler-week-strip { grid-column: 1/-1; grid-row: 2; }
    .scheduler-primary-actions { grid-row: 3; }
}

@media (max-width: 420px) {
    .scheduler-workbench-title > .scheduler-week-range { font-size: .72rem; }
}

/* Scheduler planning console: unified filters, views and live weekly context. */
.scheduler-quick-tools {
    overflow: hidden;
    border-color: rgba(80,154,177,.58);
    border-radius: 17px;
    background: #eef5f9;
    box-shadow: 0 14px 28px rgba(8,28,58,.16),inset 0 1px 0 rgba(255,255,255,.34);
}

/* Scheduler workbench alignment: week centered, primary actions balanced. */
@media (min-width: 1200px) {
    .scheduler-workbench {
        grid-template-columns: minmax(260px,1fr) auto minmax(260px,1fr);
    }
    .scheduler-workbench-title {
        grid-column: 1;
        grid-row: 1;
    }
    .scheduler-week-strip {
        grid-column: 2;
        grid-row: 1;
        justify-self: center;
    }
    .scheduler-workbench-state {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
    }
}

.scheduler-primary-actions {
    display: grid;
    width: 100%;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
    align-items: center;
    gap: .75rem;
}
.scheduler-action-slot {
    display: flex;
    min-width: 0;
}
.scheduler-action-slot--start {
    justify-content: flex-start;
}
.scheduler-action-slot--center {
    justify-content: center;
}
.scheduler-action-slot--end {
    justify-content: flex-end;
}

@media (max-width: 767.98px) {
    .scheduler-primary-actions {
        grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    }
    .scheduler-primary-actions.has-copy-action {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }
    .scheduler-action-slot .btn {
        width: 100%;
    }
    .scheduler-action-slot--start,
    .scheduler-action-slot--center {
        justify-content: stretch;
    }
    .scheduler-action-slot--end {
        grid-column: auto;
        width: 100%;
    }
    .scheduler-copy-previous-week {
        height: 100%;
        padding-inline: .4rem;
        font-size: .68rem;
        line-height: 1.15;
        white-space: normal;
    }
}

@media (max-width: 420px) {
    .scheduler-primary-actions {
        grid-template-columns: 1fr;
    }
    .scheduler-primary-actions.has-copy-action {
        grid-template-columns: repeat(3,minmax(0,1fr));
    }
    .scheduler-action-slot--end {
        grid-column: auto;
    }
}
.scheduler-quick-tools-heading {
    min-height: 74px;
    padding: .72rem .82rem;
    justify-content: flex-start;
    border-bottom: 1px solid rgba(105,220,229,.3);
    background:
        linear-gradient(180deg,rgba(220,251,255,.1),transparent 48%),
        linear-gradient(105deg,#071630,#0b2146 58%,#0d2a50);
    box-shadow: inset 0 -1px 0 rgba(1,8,28,.64);
}
.scheduler-planning-title {
    display: grid;
    min-width: 148px;
    margin-right: auto;
    gap: .08rem;
}
.scheduler-planning-title span {
    color: #86d9e5;
    font-size: .59rem;
    font-weight: 820;
    letter-spacing: .105em;
    text-transform: uppercase;
}
.scheduler-planning-title strong {
    color: #f4f8ff;
    font-size: .94rem;
    letter-spacing: -.01em;
}
.scheduler-planning-summary {
    display: flex;
    margin: 0;
    align-items: stretch;
    gap: .42rem;
}
.scheduler-planning-summary > div {
    display: grid;
    min-width: 82px;
    padding: .4rem .58rem;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: .18rem .45rem;
    border: 1px solid rgba(131,199,214,.3);
    border-radius: 11px;
    background: rgba(2,11,34,.42);
    box-shadow: inset 0 1px 0 rgba(224,251,255,.08);
}
.scheduler-planning-summary dt {
    grid-column: 1/-1;
    color: #acc8db;
    font-size: .54rem;
    font-weight: 760;
    letter-spacing: .035em;
    line-height: 1.15;
    text-transform: uppercase;
}
.scheduler-planning-summary dd {
    margin: 0;
    color: #f7fbff;
    font-size: .86rem;
    font-weight: 850;
    line-height: 1;
}
.scheduler-planning-summary dd a {
    color: inherit;
    text-decoration: none;
}
.scheduler-planning-summary .has-warning {
    border-color: rgba(244,197,91,.66);
    background: rgba(101,69,7,.3);
}
.scheduler-planning-summary .has-warning dd,
.scheduler-planning-summary .has-warning dd a { color: #ffe09a; }
.scheduler-planning-summary .is-clear dd,
.scheduler-planning-summary .is-clear dd a { color: #8ee9c8; }
.scheduler-planning-summary .scheduler-confirmation-summary {
    min-width: 132px;
    padding: 0;
    overflow: hidden;
}
.scheduler-planning-summary .scheduler-confirmation-summary dd {
    width: 100%;
    font-size: .78rem;
    white-space: nowrap;
}
.scheduler-confirmation-trigger {
    display: flex;
    width: 100%;
    min-height: 52px;
    padding: .4rem .58rem;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: .3rem;
    border: 0;
    color: #f7fbff;
    background: transparent;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.scheduler-confirmation-trigger-label {
    color: #acc8db;
    font-size: .54rem;
    font-weight: 760;
    letter-spacing: .035em;
    line-height: 1.15;
    text-transform: uppercase;
}
.scheduler-confirmation-trigger:hover {
    color: #fff;
    background: rgba(59,169,186,.16);
}
.scheduler-confirmation-trigger:focus-visible {
    outline: 2px solid #69dce5;
    outline-offset: -3px;
}
.scheduler-planning-summary .scheduler-confirmation-summary.is-complete {
    border-color: rgba(116,224,185,.52);
    background: rgba(15,91,67,.34);
}
.scheduler-planning-summary .scheduler-confirmation-summary.is-complete dd,
.scheduler-planning-summary .scheduler-confirmation-summary.is-complete .scheduler-confirmation-trigger {
    color: #a8f1d4;
}
.scheduler-planning-summary dd a:hover,
.scheduler-planning-summary dd a:focus-visible {
    color: #fff;
    outline: 2px solid #69dce5;
    outline-offset: 3px;
    border-radius: 3px;
}
.scheduler-quick-tools-heading > .scheduler-warning-chips:empty { display: none; }
.scheduler-quick-tools-heading .scheduler-warning-chips {
    max-width: 36%;
    padding-left: .12rem;
}
.scheduler-quick-tools-heading .scheduler-warning-chips a,
.scheduler-quick-tools-heading .scheduler-warning-chips > span {
    min-height: 34px;
    border-color: rgba(245,203,104,.62);
    color: #ffe6aa;
    background: rgba(92,62,4,.34);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.scheduler-quick-tools-heading .scheduler-warning-chips a:hover,
.scheduler-quick-tools-heading .scheduler-warning-chips a:focus-visible {
    border-color: #ffe19b;
    color: #fff;
    background: rgba(127,87,8,.48);
}
.scheduler-quick-tools-heading .scheduler-warning-chips a.is-critical {
    border-color: rgba(255,153,143,.68);
    color: #ffc5be;
    background: rgba(113,36,31,.42);
}
.scheduler-quick-tools-heading .scheduler-warning-chips > span.is-clear {
    border-color: rgba(116,224,185,.52);
    color: #a8f1d4;
    background: rgba(15,91,67,.34);
}
.scheduler-tools-panel {
    padding: .78rem;
    grid-template-columns: minmax(0,1fr) auto;
    gap: .75rem;
    border-top: 0;
    background: linear-gradient(180deg,#b2c8d2,#a4bcc7);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.72),inset 0 -1px 0 rgba(112,151,173,.2);
}
.scheduler-tools-panel .scheduler-filter { grid-column: 1/-1; gap: .58rem; }
.scheduler-tools-panel .scheduler-filter > div:not(.filter-actions) {
    min-width: 0;
}
.scheduler-tools-panel .scheduler-filter .form-label {
    color: #2b4965;
    letter-spacing: .012em;
}
.scheduler-tools-panel .scheduler-filter .form-control,
.scheduler-tools-panel .scheduler-filter .form-select {
    border-color: #9dbdcc;
    border-radius: 10px;
    color: #102b48;
    background-color: rgba(250,253,255,.88);
    box-shadow: inset 0 1px 2px rgba(16,53,77,.06),0 1px 0 rgba(255,255,255,.75);
}
.scheduler-tools-panel .scheduler-filter .form-control:hover,
.scheduler-tools-panel .scheduler-filter .form-select:hover { border-color: #65aabd; }
.scheduler-tools-panel .filter-actions .btn {
    display: inline-flex;
    align-items: center;
    gap: .34rem;
    border-color: #a8c4d0;
    color: #31546c;
    background: rgba(242,248,251,.74);
}
.scheduler-tools-panel .filter-actions .btn:hover,
.scheduler-tools-panel .filter-actions .btn:focus-visible {
    border-color: #398fa7;
    color: #0d5e75;
    background: #e1f2f6;
}
.scheduler-tools-panel .schedule-view-tabs {
    padding: .24rem;
    border-color: #9fbfca;
    background: rgba(207,224,232,.72);
    box-shadow: inset 0 1px 2px rgba(18,59,79,.08);
}
.scheduler-tools-panel .schedule-view-tabs button {
    color: #35576d;
    text-shadow: 0 1px 0 rgba(255,255,255,.54);
}
.scheduler-tools-panel .schedule-view-tabs button:hover { color: #0f6277; background: rgba(246,252,253,.68); }
.scheduler-tools-panel .schedule-view-tabs button.active {
    color: #fff;
    background: linear-gradient(135deg,#126f88,#169bac);
    box-shadow: 0 4px 11px rgba(9,83,105,.24),inset 0 1px 0 rgba(211,250,255,.28);
    text-shadow: none;
}
.scheduler-tools-panel .schedule-view-controls { grid-column: 1/-1; width: 100%; align-items: center; justify-content: flex-start; flex-wrap: wrap; }
.scheduler-confirmation-panel {
    padding: .78rem;
    border-top: 1px solid #91aebd;
    background: linear-gradient(180deg,#edf5f8,#e3eef2);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.78);
}
.scheduler-confirmation-panel > header {
    display: flex;
    margin-bottom: .62rem;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}
.scheduler-confirmation-panel > header .eyebrow {
    margin: 0 0 .06rem;
    color: #397085;
    font-size: .54rem;
}
.scheduler-confirmation-panel > header h3 {
    margin: 0;
    color: #123747;
    font-size: 1rem;
    font-weight: 850;
}
.scheduler-confirmation-panel > header > strong {
    display: inline-grid;
    min-width: 30px;
    min-height: 30px;
    padding: .25rem .48rem;
    place-items: center;
    border-radius: 99px;
    color: #fff;
    background: #126f88;
    font-size: .78rem;
}
.scheduler-confirmation-pending-list {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: .5rem;
}
.scheduler-confirmation-pending-list article {
    display: grid;
    min-width: 0;
    padding: .62rem .7rem;
    grid-template-columns: minmax(0,1fr) auto;
    align-items: start;
    gap: .22rem .65rem;
    border: 1px solid #bed2db;
    border-radius: 11px;
    background: rgba(255,255,255,.75);
    box-shadow: 0 2px 7px rgba(35,73,91,.08);
}
.scheduler-confirmation-pending-list article > div { min-width: 0; }
.scheduler-confirmation-pending-list article > div > strong {
    display: block;
    overflow: hidden;
    color: #173d50;
    font-size: .82rem;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.scheduler-confirmation-pending-list article p {
    margin: .08rem 0 0;
    overflow-wrap: anywhere;
    color: #527080;
    font-size: .68rem;
}
.scheduler-confirmation-pending-list article > small {
    grid-column: 1/-1;
    color: #607b88;
    font-size: .63rem;
    line-height: 1.35;
}
.scheduler-confirmation-pending-list article > small b { color: #2d6174; }
.scheduler-confirmation-pending-list .status-badge {
    padding: .2rem .42rem;
    font-size: .58rem;
}
.scheduler-confirmation-complete-message {
    margin: 0;
    padding: .72rem;
    border: 1px solid #9bd5b7;
    border-radius: 11px;
    color: #14583e;
    background: #e4f6eb;
    font-size: .78rem;
    font-weight: 760;
    text-align: center;
}

/* Modal de alta de turno: compacto y alineado con la paleta del Scheduler. */
[data-shift-dialog] { padding-block: 1.7rem; }
[data-shift-dialog] .scheduler-modal-card {
    width: min(calc(100% - 2rem), 700px);
    padding: 1.05rem 1.1rem;
    border: 1px solid #b8ccd3;
    border-top: 5px solid #123747;
    border-radius: 18px;
    background: #fbfdfe;
    box-shadow: 0 22px 58px rgba(11,40,53,.28);
}
[data-shift-dialog] .modal-heading { margin-bottom: .85rem; }
[data-shift-dialog] .modal-heading .eyebrow { color: #138a83; font-weight: 850; }
[data-shift-dialog] .modal-heading h3 { color: #123747; font-size: 1.28rem; font-weight: 850; }
[data-shift-dialog] .modal-heading button { color: #123747; background: #e8f0f3; }
[data-shift-dialog] .modal-heading button:hover,
[data-shift-dialog] .modal-heading button:focus-visible { color: #fff; background: #123747; outline: 3px solid rgba(19,138,131,.22); }
[data-shift-dialog] .row.g-3 { --bs-gutter-x: .8rem; --bs-gutter-y: .75rem; }
[data-shift-dialog] .form-control,
[data-shift-dialog] .form-select { border-color: #b8ccd3; background-color: #fff; }
[data-shift-dialog] .form-control:focus,
[data-shift-dialog] .form-select:focus { border-color: #138a83; box-shadow: 0 0 0 3px rgba(19,138,131,.15); }
[data-shift-dialog] .scheduler-locked-employee { border-color: #9fcfca; background: #e0f3f1; }
[data-shift-dialog] .scheduler-locked-employee strong { color: #123747; }
[data-shift-dialog] .scheduler-locked-employee button { color: #08766f; border-color: #83c4be; background: #fff; }
[data-shift-dialog] .scheduler-locked-employee button:hover,
[data-shift-dialog] .scheduler-locked-employee button:focus-visible { color: #fff; border-color: #138a83; background: #138a83; outline: 3px solid rgba(19,138,131,.18); }
[data-shift-dialog] .smart-time-period { border-color: #b8ccd3; background: #eef4f5; }
[data-shift-dialog] .smart-time-period button[aria-pressed="true"],
[data-shift-dialog] .modal-actions .btn-primary { background: #138a83; border-color: #138a83; }
[data-shift-dialog] .smart-time-period button[aria-pressed="true"] { box-shadow: 0 3px 8px rgba(19,138,131,.22); }
[data-shift-dialog] .modal-actions { margin-top: .85rem; }
[data-shift-dialog] .scheduler-warning { margin-top: .85rem; border-color: #c6dfdc; color: #216560; background: #f0f8f7; }
[data-shift-dialog] .scheduler-warning.is-clear { border-color: #a7d8d2; color: #0b6b64; background: #eaf7f5; }
[data-shift-dialog] .shift-preview { margin-top: .85rem; padding: .68rem .75rem; border: 1px solid #1d5669; background: linear-gradient(135deg,#0b2835,#123747); }
[data-shift-dialog] textarea.form-control { min-height: 58px; }
@media (max-width: 640px) {
    [data-shift-dialog] { padding: 1rem .65rem; }
    [data-shift-dialog] .scheduler-modal-card { width: 100%; padding: .95rem; }
}
@media (max-width: 1199.98px) {
    .scheduler-quick-tools-heading .scheduler-warning-chips { max-width: 30%; }
    .scheduler-planning-summary > div { min-width: 76px; }
}

@media (max-width: 767.98px) {
    .scheduler-quick-tools { border-radius: 15px; box-shadow: 0 8px 17px rgba(8,28,58,.12); }
    .scheduler-quick-tools-heading {
        min-height: auto;
        padding: .68rem;
        align-items: stretch;
        flex-direction: column;
        gap: .58rem;
    }
    .scheduler-planning-title { display: none; }
    .scheduler-tools-toggle {
        order: 2;
        background: rgba(2,11,34,.5);
    }
    .scheduler-planning-summary {
        order: 1;
        display: grid;
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: .36rem;
    }
    .scheduler-planning-summary > div {
        min-width: 0;
        padding: .42rem .48rem;
    }
    .scheduler-planning-summary dt { overflow: visible; font-size: .5rem; line-height: 1.15; text-overflow: clip; white-space: normal; }
    .scheduler-planning-summary dd { font-size: .82rem; }
    .scheduler-planning-summary .scheduler-confirmation-summary { min-width: 0; }
    .scheduler-planning-summary .scheduler-confirmation-summary dd { font-size: .75rem; }
    .scheduler-confirmation-trigger { min-height: 50px; padding: .4rem .48rem; }
    .scheduler-confirmation-trigger-label { font-size: .5rem; }
    .scheduler-quick-tools-heading .scheduler-warning-chips {
        order: 3;
        width: 100%;
        max-width: none;
        padding: 0 0 .04rem;
    }
    .scheduler-tools-panel {
        padding: .7rem;
        background: linear-gradient(180deg,#b2c8d2,#a4bcc7);
        box-shadow: inset 0 1px 0 rgba(255,255,255,.62);
    }
    .scheduler-confirmation-panel { padding: .68rem; }
    .scheduler-confirmation-pending-list { grid-template-columns: 1fr; }
    .scheduler-confirmation-pending-list article > div > strong { white-space: normal; }
}

@media (max-width: 420px) {
    .scheduler-planning-summary dt { font-size: .47rem; letter-spacing: 0; }
    .scheduler-planning-summary > div { padding-inline: .4rem; }
}

/* Weekly navigation gives the selected Monday-to-Sunday range visual priority. */
.scheduler-week-strip {
    width: auto;
    padding: .18rem .28rem;
    grid-template-columns: max-content 44px max-content 44px max-content;
    justify-content: center;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.scheduler-week-strip .scheduler-week-date {
    display: flex;
    min-height: 44px;
    align-items: center;
    color: var(--scheduler-text);
    font-size: 1.13rem;
    font-weight: 700;
    letter-spacing: -.025em;
    line-height: 1.1;
    white-space: nowrap;
}
.scheduler-week-strip .scheduler-week-date--start { justify-content: flex-end; margin-right: .65rem; }
.scheduler-week-strip .scheduler-week-date--end { justify-content: flex-start; margin-left: .65rem; }
.scheduler-week-strip a {
    min-width: 44px;
    min-height: 44px;
    padding: 0;
    border: 1px solid rgba(105,220,229,.32);
    border-radius: 9px;
    color: #c7e8eb;
    background: rgba(10,42,67,.72);
    font-size: 1.16rem;
    transition: border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease;
}
.scheduler-week-strip a.is-current {
    min-width: auto;
    padding: 0 .78rem;
    color: #ebffff;
    background: rgba(25,78,101,.78);
    font-size: .92rem;
    font-weight: 850;
}
.scheduler-week-strip .scheduler-week-date.is-offset { color: #ffd166; }
.scheduler-week-strip a.is-current.is-offset {
    border-color: #f1bd45;
    color: #302208;
    background: linear-gradient(135deg,#ffe6a0,#f4bd43);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.58),0 3px 10px rgba(151,100,12,.2);
}
.scheduler-week-strip a:hover,
.scheduler-week-strip a:focus-visible { border-color: rgba(122,230,237,.72); color: #fff; background: rgba(42,111,135,.86); }
.scheduler-week-strip a:focus-visible { outline: 2px solid rgba(135,235,241,.65); outline-offset: 2px; }
.scheduler-week-strip a.is-current.is-offset:hover,
.scheduler-week-strip a.is-current.is-offset:focus-visible { border-color: #d99b20; color: #302208; background: linear-gradient(135deg,#ffedb8,#eeb43a); }
.scheduler-week-strip a.is-current.is-offset:focus-visible { outline-color: rgba(244,189,67,.72); }
.employee-week-nav.scheduler-week-strip {
    margin: .8rem 0 1rem;
    border: 1px solid rgba(105,220,229,.34);
    border-radius: 14px;
    background: linear-gradient(135deg,#09243f,#0d3958);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.08),0 7px 16px rgba(5,28,48,.12);
}
.scheduler-week-strip .scheduler-week-nav-disabled {
    display: grid;
    min-width: 44px;
    min-height: 44px;
    place-items: center;
    border: 1px solid rgba(135,167,177,.22);
    border-radius: 9px;
    color: rgba(174,204,210,.42);
    background: rgba(10,42,67,.3);
    font-size: 1.16rem;
    cursor: not-allowed;
}
.scheduler-copy-previous-week {
    border-color: rgba(105,220,229,.68);
    color: #d9fbff;
    background: rgba(17,89,116,.76);
}
.scheduler-copy-previous-week:hover,
.scheduler-copy-previous-week:focus-visible { border-color: var(--scheduler-accent); color: #fff; background: rgba(28,139,159,.82); }
.scheduler-workbench-title > .scheduler-week-range {
    color: #d2e8ec;
    font-size: .88rem;
    font-weight: 720;
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .scheduler-workbench { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); }
    .scheduler-week-strip { justify-self: center; }
    .scheduler-workbench-state { justify-self: end; }
}

@media (max-width: 767.98px) {
    .scheduler-week-strip {
        width: 100%;
        grid-template-columns: minmax(0,1fr) 44px max-content 44px minmax(0,1fr);
    }
    .scheduler-week-strip .scheduler-week-date { font-size: 1.04rem; }
    .employee-week-nav.scheduler-week-strip { margin-top: .7rem; }
}

@media (max-width: 480px) {
    .scheduler-week-strip {
        grid-template-columns: 1fr max-content 1fr;
        row-gap: .1rem;
    }
    .scheduler-week-strip .scheduler-week-date--start { grid-column: 1; grid-row: 1; }
    .scheduler-week-strip .scheduler-week-date--end { grid-column: 3; grid-row: 1; }
    .scheduler-week-strip a[aria-label="Semana anterior"] { grid-column: 1; grid-row: 2; justify-self: end; }
    .scheduler-week-strip a.is-current { grid-column: 2; grid-row: 2; }
    .scheduler-week-strip :is(a[aria-label="Semana siguiente"],.scheduler-week-nav-disabled) { grid-column: 3; grid-row: 2; justify-self: start; }
}

/* The period belongs to the workspace header; keep the calendar header for department navigation. */
.desktop-scheduler .schedule-block-header > div:first-child { display: none; }
.desktop-scheduler .schedule-block-header:not(:has(.schedule-block-actions)) .schedule-department-nav {
    padding-top: 0;
    border-top: 0;
}
.scheduler-workbench-title > .scheduler-week-range {
    color: #e8fbfc;
    font-size: 1.08rem;
    font-weight: 700;
}

/* Service-area filter for the Scheduler calendar navigation. */
.schedule-department-nav > div { flex: 1 1 auto; }
.scheduler-service-area-filter { position: relative; z-index: 8; flex: 0 0 auto; margin-left: auto; }
.scheduler-service-area-filter > summary { display: inline-flex; min-height: 34px; padding: .35rem .65rem; align-items: center; justify-content: space-between; gap: .45rem; border: 1px solid #c7d9de; border-radius: 9px; color: #244f60; background: #fff; font-size: .72rem; font-weight: 800; line-height: 1.2; list-style: none; cursor: pointer; }
.scheduler-service-area-filter > summary::-webkit-details-marker { display: none; }
.scheduler-service-area-filter > summary i { font-style: normal; transition: transform .16s ease; }
.scheduler-service-area-filter[open] > summary { border-color: #39aabd; background: #eefafb; }
.scheduler-service-area-filter[open] > summary i { transform: rotate(180deg); }
.scheduler-service-area-filter > summary:focus-visible { outline: 3px solid rgba(35,141,167,.28); outline-offset: 2px; }
.scheduler-service-area-menu { position: absolute; top: auto; right: 0; bottom: calc(100% + 6px); display: grid; width: min(280px,calc(100vw - 2rem)); max-height: min(320px,60vh); overflow: auto; padding: .35rem; gap: .16rem; border: 1px solid #9cc5d0; border-radius: 10px; background: #fff; box-shadow: 0 12px 24px rgba(8,37,58,.2); }
.scheduler-service-area-menu a,.scheduler-service-area-menu button { display: block; width: 100%; padding: .52rem .6rem; border: 0; border-radius: 7px; color: #173d52; background: transparent; font-size: .74rem; font-weight: 750; line-height: 1.28; text-align: left; text-decoration: none; white-space: normal; overflow-wrap: anywhere; }
.scheduler-service-area-menu a:hover,.scheduler-service-area-menu a:focus-visible,.scheduler-service-area-menu a[aria-current="page"],.scheduler-service-area-menu button:hover,.scheduler-service-area-menu button:focus-visible { color: #075d69; background: #e4f7f8; outline: none; }
.scheduler-service-area-empty { margin: 0; padding: .75rem .9rem; color: #526a73; background: #f8fbfc; font-size: .78rem; font-weight: 700; }
.desktop-scheduler .scheduler-service-area-filter > summary { border-color: rgba(132,208,220,.42); color: var(--scheduler-text); background: rgba(3,14,39,.58); }
.desktop-scheduler .scheduler-service-area-filter[open] > summary,.desktop-scheduler .scheduler-service-area-filter > summary:hover { border-color: var(--scheduler-accent); background: rgba(54,158,181,.27); }
.desktop-scheduler .scheduler-service-area-menu { border-color: rgba(104,209,221,.62); background: #092144; box-shadow: 0 13px 26px rgba(0,0,0,.32); }
.desktop-scheduler .scheduler-service-area-menu a,.desktop-scheduler .scheduler-service-area-menu button { color: #e8fbfc; }
.desktop-scheduler .scheduler-service-area-menu a:hover,.desktop-scheduler .scheduler-service-area-menu a:focus-visible,.desktop-scheduler .scheduler-service-area-menu a[aria-current="page"],.desktop-scheduler .scheduler-service-area-menu button:hover,.desktop-scheduler .scheduler-service-area-menu button:focus-visible { color: #fff; background: rgba(56,172,187,.3); }
.desktop-scheduler .schedule-block:has(.scheduler-service-area-filter[open]) { overflow: visible; }

@media (min-width: 992px) {
    .desktop-scheduler .schedule-block-header { display: block; }
    .desktop-scheduler .schedule-department-nav { display: flex; min-height: 34px; margin: 0; padding: 0; align-items: center; justify-content: space-between; flex-direction: row; flex-wrap: nowrap; gap: .65rem; border-top: 0; }
    .desktop-scheduler .schedule-department-nav > div { flex: 1 1 auto; min-width: 0; }
    .desktop-scheduler .scheduler-service-area-filter { position: relative; flex: 0 0 auto; width: auto; align-self: center; margin-top: 0; margin-left: auto; }
}

@media (max-width: 991.98px) {
    .scheduler-service-area-filter--mobile { display: block; width: 100%; margin: 0 0 .65rem; }
    .scheduler-service-area-filter--mobile > summary { display: flex; width: 100%; min-height: 42px; font-size: .8rem; }
    .scheduler-service-area-filter--mobile .scheduler-service-area-menu { left: 0; right: auto; width: min(100%,320px); }
}

.scheduler-service-area-dialog { z-index: 1200; overflow-y: auto; align-items: start; padding-block: 1.25rem; }
.scheduler-service-area-card { width: min(760px,100%); max-height: calc(100vh - 2.5rem); overflow: auto; border-radius: 18px; background: #fff; box-shadow: 0 25px 70px rgba(0,0,0,.28); }
.scheduler-service-area-modal-heading { position: sticky; top: 0; z-index: 2; display: flex; padding: 1rem 1.15rem; align-items: center; justify-content: space-between; gap: 1rem; color: #fff; background: #082344; }
.scheduler-service-area-modal-heading .eyebrow { margin: 0 0 .2rem; color: #8ee4ec; }
.scheduler-service-area-modal-heading h3 { margin: 0; font-size: 1.25rem; font-weight: 800; }
.scheduler-service-area-modal-heading button { display: grid; width: 44px; height: 44px; flex: 0 0 auto; place-items: center; border: 1px solid rgba(142,228,236,.5); border-radius: 10px; color: #eaffff; background: rgba(255,255,255,.08); font-size: 1.35rem; }
.scheduler-service-area-days { position: sticky; top: 76px; z-index: 1; display: flex; padding: .8rem 1.15rem; overflow-x: auto; gap: .4rem; border-bottom: 1px solid #dce8eb; background: #fff; }
.scheduler-service-area-days button { min-height: 38px; flex: 0 0 auto; padding: .4rem .62rem; border: 1px solid #cedfe3; border-radius: 9px; color: #315563; background: #f8fbfc; font-size: .72rem; font-weight: 800; }
.scheduler-service-area-days button.active { border-color: #1594a9; color: #075d69; background: #e1f7f8; }
.scheduler-service-area-summary,.scheduler-service-area-feedback { margin: .8rem 1.15rem 0; color: #496771; font-size: .8rem; font-weight: 750; }
.scheduler-service-area-feedback { padding: .55rem .65rem; border-radius: 9px; color: #075d69; background: #e4f7f8; }
.scheduler-service-area-feedback.is-error { color: #9a2631; background: #fff0f1; }
.scheduler-service-area-list { display: grid; padding: 1rem 1.15rem 1.2rem; gap: .65rem; }
.scheduler-service-area-assignment { display: flex; min-height: 72px; padding: .75rem .8rem; align-items: center; justify-content: space-between; gap: .8rem; border: 1px solid #dce7e9; border-left: 4px solid #1594a9; border-radius: 11px; background: #fff; }
.scheduler-service-area-assignment > div { display: grid; min-width: 0; gap: .14rem; }
.scheduler-service-area-assignment strong { overflow: hidden; color: #143c51; font-size: 1.12rem; font-weight: 700; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.scheduler-service-area-assignment small { color: #5b727a; font-size: .7rem; }
.scheduler-service-area-time { color: #0b6775; font-size: 1rem; font-weight: 700; line-height: 1.2; }
.scheduler-service-area-assignment .form-select { width: 154px; min-height: 40px; flex: 0 0 auto; font-size: .73rem; font-weight: 750; }
.scheduler-service-area-modal-empty { margin: 0; padding: 1rem; border: 1px dashed #b7cdd2; border-radius: 11px; color: #60777f; background: #f8fbfc; font-size: .82rem; text-align: center; }
.scheduler-service-area-confirm { margin: 0 1.15rem 1.15rem; padding: 1rem; border: 1px solid #8ed1d9; border-radius: 12px; background: #edfafa; }
.scheduler-service-area-confirm h4 { margin: 0; color: #0d5364; font-size: .95rem; }
.scheduler-service-area-confirm p { margin: .55rem 0 .8rem; color: #315563; white-space: pre-line; }
@media (max-width: 575.98px) {
    .scheduler-service-area-dialog { padding: .5rem; }
    .scheduler-service-area-card { max-height: calc(100vh - 1rem); }
    .scheduler-service-area-modal-heading { padding: .8rem .9rem; }
    .scheduler-service-area-days { top: 68px; padding-inline: .9rem; }
    .scheduler-service-area-summary,.scheduler-service-area-feedback { margin-inline: .9rem; }
    .scheduler-service-area-list { padding-inline: .9rem; }
    .scheduler-service-area-assignment { align-items: stretch; flex-direction: column; }
    .scheduler-service-area-assignment .form-select { width: 100%; min-height: 44px; }
    .scheduler-service-area-confirm { margin-inline: .9rem; }
}

@media (max-width: 767.98px) {
    .scheduler-workbench-title > .scheduler-week-range { font-size: .94rem; }
}

/* Keep the summary labels in place while centering only their values. */
.scheduler-quick-tools-heading .scheduler-planning-summary > div > dd {
    grid-column: 1/-1;
    text-align: center;
}

.scheduler-workbench-title > .scheduler-week-range {
    color: #e8fbfc;
    font-size: 1.35rem;
    font-weight: 700;
    line-height: 1.2;
}

@media (max-width: 1199.98px) {
    .scheduler-workbench-title > .scheduler-week-range { font-size: 1.18rem; }
}

@media (max-width: 767.98px) {
    .scheduler-workbench-title > .scheduler-week-range { font-size: 1.06rem; }
}

/* Shared application sidebar: navy/cyan identity for every role without changing navigation structure. */
.sidebar {
    isolation: isolate;
    padding: 1.15rem .85rem .9rem;
    overflow-y: auto;
    overscroll-behavior: contain;
    border-right: 1px solid rgba(117,211,222,.2);
    background:
        radial-gradient(ellipse 52% 30% at 100% 3%,rgba(83,207,217,.11),transparent 72%),
        linear-gradient(165deg,#06172e 0%,#0a2944 53%,#12384c 100%);
    box-shadow: 8px 0 24px rgba(2,11,30,.2),inset -1px 0 rgba(219,252,255,.05);
    scrollbar-color: rgba(115,205,214,.45) transparent;
}
.sidebar::before {
    position: absolute;
    z-index: -1;
    top: 0;
    right: 8%;
    left: 8%;
    height: 1px;
    background: linear-gradient(90deg,transparent,rgba(163,243,246,.62),transparent);
    content: "";
}
.sidebar-brand {
    flex-direction: column;
    justify-content: center;
    margin: 0 .15rem 1.3rem;
    padding: .35rem .18rem 1rem;
    gap: .35rem;
    border-bottom: 1px solid rgba(157,222,228,.17);
}
.brand-logo--sidebar { justify-content: center; }
.brand-logo--sidebar .brand-logo__surface { width: 72px; }
.brand-logo--sidebar .brand-logo__image { filter: drop-shadow(0 6px 12px rgba(0,0,0,.34)); }
.sidebar-brand-company { color: #c5e6e9; font-size: .72rem; font-weight: 750; letter-spacing: .025em; line-height: 1.2; }
.brand-logo--sidebar .brand-logo__copy strong { color: #f2ffff; font-size: 1.16rem; font-weight: 800; letter-spacing: -.025em; }
.brand-logo--sidebar .brand-logo__copy small { color: #9fc9d0; font-size: .68rem; letter-spacing: .02em; }
.sidebar .nav-label {
    margin: 0 .6rem .65rem;
    color: #83bdc7;
    font-size: .61rem;
    font-weight: 850;
    letter-spacing: .16em;
}
.sidebar .sidebar-nav { gap: .3rem; }
.sidebar .nav-item {
    min-height: 47px;
    padding: .52rem .65rem;
    gap: .68rem;
    border: 1px solid transparent;
    border-left: 3px solid transparent;
    border-radius: 10px;
    color: #c4dde2;
    font-size: .84rem;
    font-weight: 680;
    transition: transform .18s ease,background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease;
}
.sidebar .nav-item:hover {
    border-color: rgba(126,214,221,.17);
    color: #fff;
    background: rgba(73,164,180,.17);
    box-shadow: inset 0 1px 0 rgba(219,252,255,.06);
    transform: translateX(1px);
}
.sidebar .nav-item.active {
    border-color: rgba(112,218,224,.3);
    border-left-color: #69dce5;
    color: #fff;
    background: linear-gradient(100deg,rgba(31,143,160,.44),rgba(20,91,125,.34));
    box-shadow: inset 0 1px 0 rgba(217,252,255,.13),0 5px 13px rgba(1,11,31,.16);
    font-weight: 760;
}
.sidebar .nav-item:focus-visible,.sidebar .owner-operations-toggle:focus-visible,.sidebar .logout-button:focus-visible,.sidebar .sidebar-profile-link:focus-visible {
    outline: 3px solid rgba(119,226,232,.5);
    outline-offset: 2px;
}
.sidebar .nav-icon {
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    border: 1px solid rgba(113,207,216,.16);
    border-radius: 9px;
    color: #78dce1;
    background: rgba(74,170,185,.1);
    font-size: 1rem;
}
.sidebar .nav-item:hover .nav-icon,.sidebar .nav-item.active .nav-icon { border-color: rgba(172,244,246,.29); color: #d9ffff; background: rgba(99,207,215,.17); }
.sidebar .owner-operations-nav { margin: .75rem .1rem 0; padding-top: .7rem; border-top-color: rgba(157,222,228,.16); }
.sidebar .owner-operations-toggle { min-height: 44px; padding: .5rem .65rem; border: 1px solid transparent; border-radius: 10px; color: #91c1ca; font-size: .67rem; }
.sidebar .owner-operations-toggle:hover,.sidebar .owner-operations-toggle:focus-visible { border-color: rgba(126,214,221,.17); color: #fff; background: rgba(73,164,180,.17); }
.sidebar .owner-operations-links { margin-top: .18rem; gap: .24rem; }
.sidebar .sidebar-user {
    margin: auto .1rem 0;
    padding: .65rem;
    gap: .58rem;
    border: 1px solid rgba(150,222,229,.2);
    border-radius: 13px;
    background: rgba(3,18,43,.42);
    box-shadow: inset 0 1px 0 rgba(218,252,255,.07),0 7px 18px rgba(1,10,29,.15);
}
.sidebar .sidebar-profile-link { gap: .58rem; border-radius: 9px; }
.sidebar .sidebar-profile-link:hover .user-copy strong { color: #d9ffff; }
.sidebar .user-avatar { width: 42px; height: 42px; border: 1px solid rgba(202,255,255,.34); color: #efffff; background: linear-gradient(145deg,#168e9b,#46bcc2); box-shadow: 0 4px 10px rgba(0,0,0,.2); }
.sidebar .user-avatar-photo { object-fit: cover; }
.sidebar .user-copy strong { color: #f4ffff; font-size: .77rem; }
.sidebar .user-copy small { color: #9fc5cd; font-size: .65rem; }
.sidebar .logout-button {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid transparent;
    border-radius: 9px;
    color: #b9d9df;
    background: transparent;
    font-size: 1.08rem;
    transition: color .18s ease,background .18s ease,border-color .18s ease;
}
.sidebar .logout-button:hover { border-color: rgba(157,222,228,.23); color: #fff; background: rgba(87,181,195,.18); }

@media (max-width: 991.98px) {
    .sidebar { padding-top: max(1rem,env(safe-area-inset-top)); padding-bottom: max(.9rem,env(safe-area-inset-bottom)); }
    .sidebar .nav-item { min-height: 48px; }
}

@media (max-width: 767.98px) {
    .sidebar-nav--employee > a[href$="/"] { order: 1; }
    .sidebar-nav--employee > a[href$="/mi-horario"] { order: 2; }
    .sidebar-nav--employee > a[href$="/mi-disponibilidad"] { order: 3; }
    .sidebar-nav--employee > a[href$="/mi-tiempo-libre"] { order: 4; }
    .sidebar-nav--employee > a[href$="/mi-perfil"] { order: 5; }
}

/* Sistema visual unificado · vistas generales (Scheduler excluido desde el layout) */
.page-modern {
    --modern-card-radius: 18px;
    --modern-card-border: #d8e5e8;
    --modern-card-shadow: 0 10px 30px rgba(8,38,52,.065);
    --modern-soft-surface: #f7fafb;
    --modern-focus: rgba(66,202,211,.34);
}

.page-modern .app-main {
    min-width: 0;
    overflow-x: clip;
    background:
        radial-gradient(circle at 92% 0,rgba(105,220,229,.1),transparent 24rem),
        var(--canvas);
}

.page-modern .topbar {
    position: relative;
    z-index: 20;
    color: var(--scheduler-text);
    border-bottom-color: rgba(105,220,229,.3);
    background: linear-gradient(115deg,var(--scheduler-deep),var(--scheduler-surface-2));
    box-shadow: 0 8px 24px rgba(3,14,39,.14);
}

.page-modern .topbar-kicker {
    display: block;
    margin: 0 0 .16rem;
    color: var(--scheduler-accent);
    font-size: .62rem;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.page-modern .topbar h1 {
    color: #fff;
    font-size: clamp(1.08rem,2vw,1.3rem);
    letter-spacing: -.02em;
}

.page-modern .menu-button,
.page-modern .notification-bell {
    color: var(--scheduler-text);
    border-color: rgba(105,220,229,.3);
    background: rgba(255,255,255,.065);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}

.page-modern .menu-button:hover,
.page-modern .menu-button:focus-visible,
.page-modern .notification-bell:hover,
.page-modern .notification-bell:focus-visible,
.page-modern .notification-bell.active {
    color: #fff;
    border-color: rgba(105,220,229,.72);
    background: rgba(105,220,229,.15);
}

.page-modern .menu-button:focus-visible,
.page-modern .notification-bell:focus-visible {
    outline: 3px solid var(--modern-focus);
    outline-offset: 2px;
}


.page-modern .content-area {
    min-width: 0;
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) {
    position: relative;
    min-width: 0;
    padding: clamp(1.15rem,2.4vw,1.75rem);
    overflow: hidden;
    align-items: center;
    border: 1px solid rgba(105,220,229,.34);
    border-radius: 22px;
    color: var(--scheduler-text);
    background:
        radial-gradient(circle at 92% 18%,rgba(105,220,229,.17),transparent 13rem),
        linear-gradient(125deg,var(--scheduler-deep),var(--scheduler-surface-2));
    box-shadow: 0 16px 36px rgba(4,20,47,.14);
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero)::after {
    position: absolute;
    right: -38px;
    bottom: -68px;
    width: 180px;
    height: 180px;
    border: 28px solid rgba(105,220,229,.08);
    border-radius: 50%;
    content: "";
    pointer-events: none;
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) > * {
    position: relative;
    z-index: 1;
    min-width: 0;
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) :where(h1,h2) {
    color: #fff;
    font-size: clamp(1.55rem,3.2vw,2.25rem);
    line-height: 1.08;
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) p:last-child {
    max-width: 760px;
    color: var(--scheduler-muted);
    line-height: 1.55;
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) .eyebrow {
    color: var(--scheduler-accent) !important;
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) .status-badge {
    color: #073345;
    background: #a8edf1;
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) .btn-light {
    color: #eafcff;
    border-color: rgba(184,236,241,.38);
    background: rgba(255,255,255,.08);
}

.page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) .btn-light:hover {
    color: #fff;
    border-color: rgba(105,220,229,.72);
    background: rgba(105,220,229,.16);
}

.page-modern :where(.content-card,.detail-card,.filter-card,.card-panel,.form-section-card,.department-card,.catalog-form,.location-card,.manager-profile-card,.notification-card,.time-off-request-card,.management-request-card,.availability-group-card,.template-library-card,.service-area-list,.service-area-editor,.coverage-rules-list,.coverage-rule-editor) {
    border-color: var(--modern-card-border);
    border-radius: var(--modern-card-radius);
    background-color: var(--surface);
    box-shadow: var(--modern-card-shadow);
}

.page-modern :where(.owner-labor-dashboard,.owner-publication-dashboard,.employee-next-shift,.employee-profile-card,.employee-profile-details > article,.employee-password-card,.employee-schedule-group,.employee-day-card,.employee-shift-card,.employee-list-card,.confirmation-stats > article,.confirmation-list > article) {
    border-color: var(--modern-card-border);
    border-radius: var(--modern-card-radius);
    box-shadow: var(--modern-card-shadow);
}

.page-modern .employee-welcome,
.page-modern .employee-week-summary {
    border: 1px solid rgba(105,220,229,.3);
    background:
        radial-gradient(circle at 92% 10%,rgba(105,220,229,.15),transparent 10rem),
        linear-gradient(125deg,var(--scheduler-deep),var(--scheduler-surface-2));
    box-shadow: 0 14px 32px rgba(4,20,47,.13);
}

.page-modern .employee-welcome p,
.page-modern .employee-week-summary :where(span,small) {
    color: var(--scheduler-muted);
}

.page-modern .employee-profile-avatar {
    background: linear-gradient(145deg,#168e9b,#46bcc2);
    box-shadow: 0 6px 16px rgba(17,114,127,.2);
}

.page-modern :where(.content-card,.detail-card,.card-panel,.form-section-card) {
    padding: clamp(1.05rem,2vw,1.5rem);
}

.page-modern :where(.content-card,.detail-card,.card-panel,.department-card,.catalog-form,.location-card,.manager-profile-card,.notification-card,.time-off-request-card,.management-request-card,.availability-group-card,.template-library-card,.service-area-list,.service-area-editor,.coverage-rules-list,.coverage-rule-editor) {
    transition: border-color .18s ease,box-shadow .18s ease;
}

.page-modern :where(.content-card,.detail-card,.card-panel,.department-card,.catalog-form,.location-card,.manager-profile-card,.notification-card,.time-off-request-card,.management-request-card,.availability-group-card,.template-library-card,.service-area-list,.service-area-editor,.coverage-rules-list,.coverage-rule-editor):focus-within {
    border-color: #9bcfd3;
    box-shadow: 0 12px 34px rgba(8,57,72,.09),0 0 0 3px rgba(105,220,229,.1);
}

.page-modern :where(.card-heading,.detail-card-heading,.form-title) h3,
.page-modern :where(.content-card,.detail-card,.card-panel) > h3 {
    color: var(--navy-2);
    letter-spacing: -.015em;
}

.page-modern .stat-card {
    min-width: 0;
    min-height: 132px;
    padding: 1.25rem;
    border-color: var(--modern-card-border);
    border-radius: var(--modern-card-radius);
    background: linear-gradient(145deg,#fff,#f8fbfc);
    box-shadow: var(--modern-card-shadow);
}

.page-modern .stat-icon {
    width: 50px;
    height: 50px;
    border-radius: 15px;
}

.page-modern .stat-card p {
    color: #58717b;
    font-size: .74rem;
    font-weight: 750;
}

.page-modern .stat-card strong {
    display: block;
    overflow-wrap: anywhere;
    color: var(--navy-2);
    font-size: clamp(1.35rem,2.7vw,1.85rem);
    font-weight: 820;
    line-height: 1.08;
    letter-spacing: -.035em;
}

.page-modern .filter-card {
    padding: 1rem;
    border-color: #cfe0e4;
    background:
        linear-gradient(180deg,rgba(227,243,245,.55),rgba(255,255,255,.9)),
        #fff;
}

.page-modern :where(.form-label,label > span:first-child) {
    color: #294d5a;
    font-weight: 750;
}

.page-modern :where(.form-control,.form-select) {
    min-height: 44px;
    border-color: #bfd1d6;
    border-radius: 11px;
    color: var(--ink);
    background-color: #fff;
    box-shadow: inset 0 1px 2px rgba(8,38,52,.025);
    transition: border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}

.page-modern textarea.form-control {
    min-height: 96px;
}

.page-modern :where(.form-control,.form-select):hover {
    border-color: #9fbdc4;
}

.page-modern :where(.form-control,.form-select):focus {
    border-color: #38aeb6;
    box-shadow: 0 0 0 .24rem var(--modern-focus);
}

.page-modern :where(.form-check-input,input[type="checkbox"],input[type="radio"]):focus-visible {
    outline: 3px solid var(--modern-focus);
    outline-offset: 2px;
}

.page-modern .btn {
    min-height: 42px;
    padding-inline: .95rem;
    border-radius: 10px;
    align-items: center;
    justify-content: center;
    font-weight: 740;
    transition: color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}

.page-modern .btn-sm {
    min-height: 38px;
    padding-inline: .72rem;
}

.page-modern .btn:hover {
    transform: translateY(-1px);
}

.page-modern .btn:focus-visible {
    outline: 3px solid var(--modern-focus);
    outline-offset: 2px;
    box-shadow: none;
}

.page-modern .btn-primary {
    border-color: #168e9b;
    background: linear-gradient(135deg,#168e9b,#11727f);
    box-shadow: 0 6px 15px rgba(17,114,127,.18);
}

.page-modern .btn-primary:hover {
    border-color: #0d6874;
    background: linear-gradient(135deg,#137c88,#0e6571);
}

.page-modern .btn-light,
.page-modern .btn-outline-secondary {
    color: #345763;
    border-color: #c5d4d8;
    background: #f7fafb;
}

.page-modern .btn-light:hover,
.page-modern .btn-outline-secondary:hover {
    color: #113d4b;
    border-color: #8dbdc3;
    background: #edf7f8;
}

.page-modern .btn-danger {
    border-color: #c85d4c;
    background: #c85d4c;
}

.page-modern :where(.status-badge,.count-badge,.primary-badge) {
    display: inline-flex;
    min-height: 28px;
    align-items: center;
    justify-content: center;
    border: 1px solid transparent;
    font-weight: 800;
}

.page-modern .status-badge.active {
    border-color: #a8d9d5;
}

.page-modern .status-badge.warning {
    border-color: #ead18d;
}

.page-modern .empty-state,
.page-modern .employee-empty-state,
.page-modern .template-empty-state {
    padding: clamp(2rem,5vw,3.4rem) 1.25rem;
    border: 1px dashed #a9c4ca;
    border-radius: var(--modern-card-radius);
    color: #5a727b;
    background:
        radial-gradient(circle at 50% 0,rgba(105,220,229,.12),transparent 10rem),
        #fbfdfd;
    box-shadow: 0 8px 24px rgba(8,38,52,.035);
}

.page-modern :where(.empty-state,.employee-empty-state,.template-empty-state) strong,
.page-modern :where(.empty-state,.employee-empty-state,.template-empty-state) h3,
.page-modern :where(.empty-state,.employee-empty-state,.template-empty-state) h4 {
    color: var(--navy-2);
    font-weight: 800;
}

.page-modern :where(.table-responsive,.audit-table-wrap,.employee-directory-table,.template-table-scroll,.coverage-table-wrap) {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.page-modern .table {
    margin-bottom: 0;
    color: var(--ink);
}

.page-modern .table > :not(caption) > * > * {
    padding: .8rem .9rem;
    border-bottom-color: #e4ecee;
    vertical-align: middle;
}

.page-modern .table thead th {
    color: #48646e;
    background: #eef5f6;
    font-size: .66rem;
    font-weight: 850;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.page-modern .table tbody tr {
    transition: background-color .15s ease;
}

.page-modern .table tbody tr:hover {
    background: #f7fbfb;
}

.page-modern .employee-directory-group,
.page-modern .audit-history-card {
    overflow: hidden;
    border-color: var(--modern-card-border);
    box-shadow: var(--modern-card-shadow);
}

.page-modern .employee-directory-row.is-header,
.page-modern .template-table-heading,
.page-modern .department-card > header {
    color: #496670;
    background: linear-gradient(180deg,#f1f7f8,#eaf2f4);
}

.page-modern .notification-card.is-unread {
    border-color: #82c9ce;
    box-shadow: inset 4px 0 0 #35b9c2,var(--modern-card-shadow);
}

.page-modern .notification-filters {
    border-color: var(--modern-card-border);
    border-radius: 14px;
    box-shadow: 0 6px 20px rgba(8,38,52,.045);
}

.page-modern .notification-filters a {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
}

.page-modern .confirm-dialog,
.page-modern .notification-detail-backdrop {
    background: rgba(3,12,33,.68);
    backdrop-filter: blur(4px);
}

.page-modern .confirm-dialog-card,
.page-modern .notification-detail-modal {
    border: 1px solid rgba(255,255,255,.76);
    border-radius: 22px;
    box-shadow: 0 28px 80px rgba(3,13,34,.32);
}

.page-modern .confirm-dialog-card h3,
.page-modern .notification-detail-modal h2 {
    color: var(--navy-2);
    letter-spacing: -.02em;
}

.page-modern :where(.pagination,.notification-pagination) a {
    min-width: 40px;
    min-height: 40px;
}

@media (prefers-reduced-motion: reduce) {
    .page-modern .btn,
    .page-modern :where(.content-card,.detail-card,.card-panel,.form-control,.form-select) {
        transition: none;
    }

    .page-modern .btn:hover {
        transform: none;
    }
}

@media (max-width: 767.98px) {
    .page-modern .topbar {
        min-height: 72px;
        padding: .75rem 1rem;
    }

    .page-modern .content-area {
        width: 100%;
        padding: 1rem .75rem 2rem;
    }

    .page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) {
        margin-bottom: 1rem;
        padding: 1.15rem;
        align-items: stretch;
        flex-direction: column;
        border-radius: 17px;
    }

    .page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) > :where(.d-flex,.btn,form) {
        width: 100%;
    }

    .page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) .d-flex .btn,
    .page-modern .content-area > :where(.section-intro,.welcome-panel,.page-heading,.page-actions-bar,.employee-page-heading,.employee-detail-hero) > .btn {
        flex: 1 1 auto;
    }

    .page-modern :where(.filter-card,.service-area-filters,.employee-directory-filters,.audit-filter-grid,.labor-filter,.analysis-filters) {
        grid-template-columns: minmax(0,1fr);
    }

    .page-modern :where(.filter-actions,.audit-filter-actions) {
        width: 100%;
        grid-column: 1 / -1;
        flex-wrap: wrap;
    }

    .page-modern :where(.filter-actions,.audit-filter-actions) .btn {
        flex: 1 1 140px;
    }

    .page-modern :where(.card-heading,.detail-card-heading,.form-title,.time-off-history-heading) {
        align-items: flex-start;
        flex-wrap: wrap;
    }
}

@media (max-width: 575.98px) {
    .page-modern .topbar-kicker {
        display: none;
    }

    .page-modern .welcome-panel .today-pill {
        min-width: 136px;
        align-self: flex-end;
    }

    .page-modern .topbar h1 {
        max-width: 45vw;
        overflow: hidden;
        font-size: 1rem;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .page-modern .stat-card {
        min-height: 112px;
        padding: 1rem;
    }

    .page-modern :where(.content-card,.detail-card,.card-panel,.form-section-card,.catalog-form) {
        padding: 1rem;
    }

    .page-modern .btn:not(.btn-sm) {
        min-height: 44px;
    }

    .page-modern .confirm-dialog-card,
    .page-modern .notification-detail-modal {
        padding: 1.15rem;
        border-radius: 18px;
    }
}

/* Scheduler · consulta semanal compacta */
.scheduler-employee-column-heading {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: space-between;
    gap: .65rem;
    text-align: left;
}

.scheduler-compact-week-trigger {
    display: grid;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(105,220,229,.42);
    border-radius: 10px;
    color: #bff7fa;
    background: rgba(105,220,229,.09);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.07);
    cursor: pointer;
    transition: color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}

.scheduler-compact-week-trigger svg {
    width: 18px;
    height: 18px;
}

.scheduler-compact-week-trigger rect {
    fill: currentColor;
}

.scheduler-compact-week-trigger:hover {
    color: #fff;
    border-color: var(--scheduler-accent);
    background: rgba(105,220,229,.2);
    box-shadow: 0 6px 14px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.1);
    transform: translateY(-1px);
}

.scheduler-compact-week-trigger:focus-visible {
    outline: 3px solid rgba(105,220,229,.52);
    outline-offset: 2px;
}

.scheduler-compact-week-trigger--mobile {
    margin: 0 0 .65rem auto;
    color: #0d7182;
    border-color: #9bcfd7;
    background: #edf9fa;
    box-shadow: 0 5px 14px rgba(11,61,78,.09);
}

.scheduler-compact-week-trigger--mobile:hover {
    color: #075668;
    border-color: #42aebb;
    background: #dff4f6;
}

.scheduler-compact-week-dialog {
    z-index: 1250;
    padding: clamp(.65rem,2vw,1.25rem);
    background: rgba(2,9,29,.74);
    backdrop-filter: blur(5px);
}

.scheduler-compact-week-card {
    display: flex;
    width: min(1120px,calc(100vw - 2rem));
    max-height: min(90vh,920px);
    padding: 0;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid rgba(105,220,229,.42);
    border-radius: 22px;
    background: #f6fafc;
    box-shadow: 0 30px 90px rgba(0,7,27,.42);
    text-align: left;
}

.scheduler-compact-week-heading {
    position: relative;
    display: flex;
    flex: 0 0 auto;
    padding: 1.2rem 1.3rem;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    color: var(--scheduler-text);
    border-bottom: 1px solid rgba(105,220,229,.32);
    background:
        radial-gradient(circle at 88% 8%,rgba(105,220,229,.15),transparent 14rem),
        linear-gradient(125deg,var(--scheduler-deep),var(--scheduler-surface-2));
}

.scheduler-compact-week-heading .eyebrow {
    margin-bottom: .25rem;
    color: var(--scheduler-accent);
}

.scheduler-compact-week-heading h3 {
    margin: 0;
    color: #fff;
    font-size: clamp(1.2rem,2.2vw,1.55rem);
    font-weight: 820;
    letter-spacing: -.025em;
}

.scheduler-compact-week-heading p:last-child {
    margin: .35rem 0 0;
    color: var(--scheduler-muted);
    font-size: .78rem;
    line-height: 1.4;
}

.scheduler-compact-week-close {
    display: grid;
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    padding: 0;
    place-items: center;
    border: 1px solid rgba(105,220,229,.34);
    border-radius: 11px;
    color: #dffcff;
    background: rgba(255,255,255,.07);
    font-size: 1.65rem;
    line-height: 1;
}

.scheduler-compact-week-close:hover {
    color: #fff;
    border-color: var(--scheduler-accent);
    background: rgba(105,220,229,.17);
}

.scheduler-compact-week-close:focus-visible {
    outline: 3px solid rgba(105,220,229,.56);
    outline-offset: 2px;
}

.scheduler-compact-week-scroll {
    min-height: 0;
    margin: .85rem;
    overflow: auto;
    border: 1px solid #cbdce2;
    border-radius: 13px;
    background: #fff;
    overscroll-behavior: contain;
    scrollbar-color: #83bec7 #e5eef1;
}

.scheduler-compact-week-table {
    width: 100%;
    min-width: 1050px;
    margin: 0;
    border-collapse: separate;
    border-spacing: 0;
    table-layout: fixed;
}

.scheduler-compact-week-table th,
.scheduler-compact-week-table td {
    border-right: 1px solid #dce7eb;
    border-bottom: 1px solid #e2eaed;
}

.scheduler-compact-week-table tr > :last-child {
    border-right: 0;
}

.scheduler-compact-week-table thead th {
    position: sticky;
    top: 0;
    z-index: 4;
    height: 52px;
    padding: .55rem .4rem;
    color: #effcff;
    background: linear-gradient(180deg,#0b2b4b,#0d3958);
    box-shadow: 0 2px 0 rgba(105,220,229,.34);
    font-size: .74rem;
    text-align: center;
}

.scheduler-compact-week-table thead th strong,
.scheduler-compact-week-table thead th span {
    display: block;
}

.scheduler-compact-week-table thead th strong {
    font-size: .8rem;
    font-weight: 850;
}

.scheduler-compact-week-table thead th span {
    margin-top: .12rem;
    color: #a9e5eb;
    font-size: .66rem;
    font-weight: 720;
}

.scheduler-compact-week-table .scheduler-compact-person-column {
    position: sticky;
    left: 0;
    width: 190px;
    min-width: 190px;
}

.scheduler-compact-week-table thead .scheduler-compact-person-column {
    z-index: 6;
    padding-left: .75rem;
    text-align: left;
}

.scheduler-compact-department-row th {
    position: relative;
    padding: .5rem .75rem;
    color: #eefcff;
    background: linear-gradient(90deg,#0b2345,#154965);
    box-shadow: inset 4px 0 var(--compact-department-color,var(--scheduler-accent));
    font-size: .74rem;
    font-weight: 870;
    letter-spacing: .07em;
    text-align: left;
    text-transform: uppercase;
}

.scheduler-compact-department-row th i {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: .42rem;
    border-radius: 50%;
    background: var(--compact-department-color,var(--scheduler-accent));
    box-shadow: 0 0 0 3px color-mix(in srgb,var(--compact-department-color,var(--scheduler-accent)) 24%,transparent);
}

.scheduler-compact-position-row th {
    padding: .4rem .75rem;
    color: #315666;
    background: #eaf3f5;
    font-size: .71rem;
    font-weight: 830;
    text-align: left;
}

.scheduler-compact-position-row th span {
    color: #168391;
    font-weight: 760;
}

.scheduler-compact-employee-row > th {
    z-index: 2;
    padding: .48rem .65rem;
    color: #102e48;
    background: #f8fbfc;
    box-shadow: 2px 0 0 #d9e5e9;
    text-align: left;
}

.scheduler-compact-employee-row > th strong,
.scheduler-compact-employee-row > th span {
    display: block;
}

.scheduler-compact-employee-row > th strong {
    overflow-wrap: anywhere;
    font-size: .77rem;
    font-weight: 820;
    line-height: 1.25;
}

.scheduler-compact-employee-row > th span {
    margin-top: .14rem;
    color: #16808d;
    font-size: .69rem;
    font-weight: 800;
}

.scheduler-compact-employee-row td {
    min-width: 120px;
    height: 48px;
    padding: .3rem;
    vertical-align: top;
    background: #fff;
}

.scheduler-compact-employee-row:nth-child(even) td {
    background: #fbfdfe;
}

.scheduler-compact-employee-row:hover > th,
.scheduler-compact-employee-row:hover > td {
    background: #edf7f9;
}

.scheduler-compact-shifts {
    display: grid;
    gap: .24rem;
}

.scheduler-compact-shift {
    min-width: 0;
    padding: .32rem .38rem;
    border: 1px solid #b8dce1;
    border-left: 3px solid #2db5c0;
    border-radius: 7px;
    color: #0c5265;
    background: linear-gradient(135deg,#e6f7f8,#f5fbfc);
}

.scheduler-compact-shift time {
    display: block;
    font-size: .69rem;
    font-weight: 840;
    line-height: 1.3;
    white-space: nowrap;
}

.scheduler-compact-shift small {
    display: block;
    margin-top: .16rem;
    color: #5a717b;
    font-size: .58rem;
    font-weight: 760;
}

.scheduler-compact-no-shift {
    display: block;
    padding-top: .36rem;
    color: #a7b5ba;
    font-size: .75rem;
    text-align: center;
}

.scheduler-compact-week-empty {
    padding: 2rem 1rem;
    color: #6d828a;
    background: #fbfdfd;
    font-size: .75rem;
    font-weight: 700;
    text-align: center;
}

@media (max-width: 767.98px) {
    .scheduler-compact-week-card {
        width: min(100%,calc(100vw - 1rem));
        max-height: calc(100dvh - 1rem);
        border-radius: 17px;
    }

    .scheduler-compact-week-heading {
        padding: 1rem;
    }

    .scheduler-compact-week-heading p:last-child {
        font-size: .7rem;
    }

    .scheduler-compact-week-scroll {
        margin: .55rem;
    }

    .scheduler-compact-week-table {
        min-width: 980px;
    }

    .scheduler-compact-week-table .scheduler-compact-person-column {
        width: 165px;
        min-width: 165px;
    }
}

@media (max-width: 420px) {
    .scheduler-compact-week-dialog {
        padding: .35rem;
    }

    .scheduler-compact-week-card {
        width: calc(100vw - .7rem);
        max-height: calc(100dvh - .7rem);
    }

    .scheduler-compact-week-heading h3 {
        font-size: 1.12rem;
    }

    .scheduler-compact-week-table .scheduler-compact-person-column {
        width: 150px;
        min-width: 150px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .scheduler-compact-week-trigger {
        transition: none;
    }

    .scheduler-compact-week-trigger:hover {
        transform: none;
    }
}

/* El selector se eliminó; el calendario de escritorio conserva la densidad Compacta fija. */
@media (min-width: 992px) {
    :root .desktop-scheduler .schedule-table { min-width: 1000px; }
    :root .desktop-scheduler .schedule-block--full_week .schedule-table { min-width: 1360px; }
    :root .desktop-scheduler .schedule-table .employee-column { width: 190px; }
    :root .desktop-scheduler .schedule-table thead th { padding: .58rem .6rem; font-size: .78rem; }
    :root .desktop-scheduler .schedule-table thead th small { margin-top: .12rem; font-size: .68rem; }
    :root .desktop-scheduler .employee-cell { padding: .45rem .55rem; }
    :root .desktop-scheduler .department-toggle { min-height: 40px; padding: .48rem .7rem; font-size: .84rem; }
    :root .desktop-scheduler .department-toggle small { font-size: .7rem; }
    :root .desktop-scheduler .scheduler-employee strong { overflow: hidden; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
    :root .desktop-scheduler .scheduler-employee small,
    :root .desktop-scheduler .scheduler-employee em { font-size: .58rem; }
    :root .desktop-scheduler .scheduler-employee small { margin-top: .12rem; overflow: hidden; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
    :root .desktop-scheduler .scheduler-employee { min-width: 0; overflow: hidden; }
    :root .desktop-scheduler .scheduler-employee-subline { margin-top: .12rem; gap: .25rem; }
    :root .desktop-scheduler .scheduler-employee-subline small,
    :root .desktop-scheduler .scheduler-employee-subline em { margin: 0; font-size: .7rem; }
    :root .desktop-scheduler .scheduler-employee > .hours-progress { height: 4px; margin-top: .3rem; }
    :root .desktop-scheduler .scheduler-employee-metrics { display: grid; min-width: 0; margin-top: .32rem; grid-template-columns: minmax(0,1fr); gap: .22rem; }
    :root .desktop-scheduler .scheduler-employee-metrics .hours-progress { margin: 0; }
    :root .desktop-scheduler .scheduler-employee-metrics em { margin: 0; overflow: hidden; font-size: .68rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
    :root .desktop-scheduler .scheduler-employee-metrics em b { color: #365761; }
    :root .desktop-scheduler .hours-progress { height: 4px; }
    :root .desktop-scheduler .shift-cell { min-height: 60px; padding: .28rem; gap: .28rem; }
    :root .desktop-scheduler .calendar-shift { padding: .4rem .42rem .38rem .5rem; border-left-width: 4px; border-radius: 8px; }
    :root .desktop-scheduler .shift-compact-line { gap: .25rem; }
    :root .desktop-scheduler .shift-compact-line > strong { font-size: .66rem; }
    :root .desktop-scheduler .shift-compact-line > strong em { font-size: .55rem; }
    :root .desktop-scheduler .shift-status-dot { width: 8px; height: 8px; }
    :root .desktop-scheduler .shift-compact-meta { margin-top: .22rem; font-size: .61rem; }
    :root .desktop-scheduler .shift-time strong { font-size: .8rem; letter-spacing: -.015em; }
    :root .desktop-scheduler .shift-time span { font-size: .62rem; }
    :root .desktop-scheduler .shift-summary { margin-top: .28rem; }
    :root .desktop-scheduler .calendar-shift p { font-size: .72rem; }
    :root .desktop-scheduler .shift-summary > strong { padding: .14rem .28rem; font-size: .62rem; }
    :root .desktop-scheduler .shift-location { display: none; }
    :root .desktop-scheduler .calendar-shift > small,
    :root .desktop-scheduler .shift-availability,
    :root .desktop-scheduler .shift-buttons button { font-size: .66rem; }
    :root .desktop-scheduler .shift-availability { margin-top: .28rem; padding: .12rem .3rem; }
    :root .desktop-scheduler .shift-buttons { margin-top: .35rem; }
    :root .desktop-scheduler .calendar-shift:not(:hover):not(:focus-within) .shift-buttons { display: none; }
    :root .desktop-scheduler .cell-add { width: 25px; height: 25px; font-size: .9rem; }
    :root .desktop-scheduler .shift-cell.has-shifts .cell-add { position: absolute; right: 2px; bottom: 2px; width: 19px; height: 19px; opacity: 0; border-style: solid; border-color: #b7d8d5; border-radius: 6px; font-size: .72rem; transition: opacity .15s ease; }
    :root .desktop-scheduler .shift-cell.has-shifts:hover .cell-add,
    :root .desktop-scheduler .shift-cell.has-shifts .cell-add:focus-visible { z-index: 2; opacity: 1; }
}
