:root {
  --epsa-blue: #193f66;
  --epsa-blue-dark: #102c48;
  --epsa-gold: #ecb13b;
  --epsa-white: #ffffff;
  --epsa-surface: #f4f6f9;
  --epsa-text: #243447;
  --epsa-muted: #6c757d;
}

#contratoModal .modal-dialog { max-width: 980px; }
#contratoModal .modal-body { min-height: 470px; }
@media (max-width: 767.98px) { #contratoModal .modal-body { min-height: 0; } }

body { color: var(--epsa-text); background: var(--epsa-surface); }
.main-sidebar { background-color: var(--epsa-blue) !important; }
.epsa-brand {
  min-height: 92px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .15rem;
  padding: .65rem .75rem;
  overflow: hidden;
  background-color: var(--epsa-white) !important;
  border-bottom: 3px solid var(--epsa-gold) !important;
}
.epsa-brand-logo {
  display: block;
  width: auto;
  max-width: 145px;
  height: 48px;
  object-fit: contain;
}
.epsa-brand-caption {
  color: var(--epsa-blue);
  font-size: .68rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.sidebar-collapse .epsa-brand { min-height: 72px; padding: .5rem .25rem; }
.sidebar-collapse .epsa-brand-logo { max-width: 42px; height: 34px; }
.sidebar-collapse .epsa-brand-caption { display: block; font-size: .48rem; letter-spacing: .03em; white-space: nowrap; }
.nav-sidebar .nav-link.active { background-color: var(--epsa-gold) !important; color: var(--epsa-blue-dark) !important; }
.content-header h1 { color: var(--epsa-blue); font-weight: 700; }
.card-primary.card-outline { border-top-color: var(--epsa-gold); }
.btn-primary { background-color: var(--epsa-blue); border-color: var(--epsa-blue); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--epsa-blue-dark); border-color: var(--epsa-blue-dark); }
.text-institutional { color: var(--epsa-blue); }
.border-accent { border-left: .3rem solid var(--epsa-gold); }
.epsa-login-page { display: block !important; min-height: 100vh; padding: 0; background: #f5f7fa; }
.epsa-auth-shell { display: grid; min-height: 100vh; grid-template-columns: minmax(380px, 46%) minmax(480px, 54%); }
.epsa-auth-visual { position: relative; display: flex; overflow: hidden; padding: clamp(2rem, 5vw, 5rem); color: var(--epsa-white); background: linear-gradient(145deg, #102c48 0%, var(--epsa-blue) 58%, #245b8e 100%); }
.epsa-auth-visual::before { position: absolute; inset: 0; content: ''; opacity: .13; background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px); background-size: 52px 52px; mask-image: linear-gradient(to bottom right, #000, transparent 75%); }
.epsa-auth-decoration { position: absolute; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; }
.epsa-auth-decoration-one { right: -11rem; bottom: -11rem; width: 34rem; height: 34rem; box-shadow: 0 0 0 4rem rgba(255,255,255,.025), 0 0 0 8rem rgba(255,255,255,.018); }
.epsa-auth-decoration-two { top: 20%; right: 12%; width: 8rem; height: 8rem; background: rgba(236,177,59,.08); }
.epsa-auth-visual-content { position: relative; z-index: 1; display: flex; width: 100%; max-width: 620px; flex-direction: column; }
.epsa-auth-brand-card { display: inline-flex; width: 210px; flex-direction: column; align-items: center; padding: 1rem 1.2rem .8rem; background: var(--epsa-white); border-radius: .85rem; box-shadow: 0 .7rem 2rem rgba(4,24,43,.2); }
.epsa-auth-logo { display: block; width: 100%; height: 68px; object-fit: contain; }
.epsa-auth-brand-card span, .epsa-auth-mobile-brand span { color: var(--epsa-blue); font-size: .68rem; font-weight: 700; letter-spacing: .16em; }
.epsa-auth-intro { max-width: 550px; margin-top: auto; padding-top: 3rem; }
.epsa-auth-eyebrow { display: block; margin-bottom: .9rem; color: var(--epsa-gold); font-size: .75rem; font-weight: 800; letter-spacing: .16em; }
.epsa-auth-intro h1 { max-width: 520px; margin: 0 0 1rem; font-size: clamp(2.2rem, 4vw, 3.5rem); font-weight: 750; line-height: 1.08; letter-spacing: -.035em; }
.epsa-auth-intro p { max-width: 520px; margin: 0; color: rgba(255,255,255,.76); font-size: 1rem; line-height: 1.7; }
.epsa-auth-benefits { display: grid; gap: .75rem; margin: 2.3rem 0; padding: 0; list-style: none; }
.epsa-auth-benefits li { display: flex; align-items: center; gap: .85rem; }
.epsa-auth-benefits li > i { display: inline-flex; width: 42px; height: 42px; flex: 0 0 42px; align-items: center; justify-content: center; color: var(--epsa-gold); background: rgba(255,255,255,.09); border: 1px solid rgba(255,255,255,.12); border-radius: .7rem; }
.epsa-auth-benefits li span { display: flex; flex-direction: column; }
.epsa-auth-benefits strong { font-size: .9rem; font-weight: 650; }
.epsa-auth-benefits small { color: rgba(255,255,255,.62); font-size: .76rem; }
.epsa-auth-visual-footer { color: rgba(255,255,255,.55); }
.epsa-auth-access { display: flex; align-items: center; justify-content: center; padding: 3rem clamp(2rem, 7vw, 7rem); background: var(--epsa-white); }
.epsa-auth-form-wrap { width: 100%; max-width: 455px; }
.epsa-auth-mobile-brand { display: none; }
.epsa-auth-access-label { display: inline-flex; align-items: center; gap: .25rem; margin-bottom: 1rem; padding: .42rem .7rem; color: var(--epsa-blue); background: rgba(25,63,102,.07); border-radius: 2rem; font-size: .72rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.epsa-auth-heading h2 { margin: 0 0 .45rem; color: var(--epsa-blue-dark); font-size: 2rem; font-weight: 750; letter-spacing: -.025em; }
.epsa-auth-heading p { margin: 0; color: var(--epsa-muted); }
.epsa-auth-heading { margin-bottom: 1.8rem; }
.epsa-auth-field { margin-bottom: 1.15rem; }
.epsa-auth-field label { margin-bottom: .45rem; color: var(--epsa-blue-dark); font-size: .83rem; font-weight: 700; }
.epsa-auth-field .input-group { flex-wrap: wrap; }
.epsa-auth-field .input-group-prepend, .epsa-auth-field .input-group-append { height: 50px; }
.epsa-auth-field .input-group-text { width: 48px; justify-content: center; color: #7b8794; background: #f7f9fb; border-color: #dce2e8; border-right: 0; border-radius: .55rem 0 0 .55rem; }
.epsa-auth-field .form-control { height: 50px; color: var(--epsa-text); border-color: #dce2e8; border-left: 0; font-size: .92rem; box-shadow: none; }
.epsa-auth-field .form-control::placeholder { color: #a5afb9; }
.epsa-auth-field .form-control:focus { border-color: var(--epsa-gold); box-shadow: inset 0 1px 1px rgba(0,0,0,.02); }
.epsa-auth-field .input-group:focus-within .input-group-text { color: var(--epsa-blue); border-color: var(--epsa-gold); background: rgba(236,177,59,.08); }
.epsa-password-toggle { min-width: 48px; height: 50px; color: #718090; background: #f7f9fb; border: 1px solid #dce2e8; border-left: 0; border-radius: 0 .55rem .55rem 0; }
.epsa-password-toggle:hover, .epsa-password-toggle:focus { color: var(--epsa-white); background: var(--epsa-blue); border-color: var(--epsa-blue); box-shadow: none; }
.epsa-auth-options { margin: 1.1rem 0 1.4rem; }
.epsa-auth-options .custom-control-label { color: var(--epsa-text); font-size: .86rem; font-weight: 600; }
.epsa-auth-options .custom-control-input:checked ~ .custom-control-label::before { background-color: var(--epsa-blue); border-color: var(--epsa-blue); }
.epsa-auth-options small { display: block; margin: .2rem 0 0 1.5rem; color: #89949f; font-size: .72rem; }
.epsa-auth-submit { min-height: 52px; border: 0; border-radius: .55rem; font-weight: 700; box-shadow: 0 .55rem 1.1rem rgba(25,63,102,.2); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.epsa-auth-submit:hover { transform: translateY(-1px); box-shadow: 0 .7rem 1.35rem rgba(25,63,102,.25); }
.epsa-auth-submit:focus-visible { outline: 3px solid rgba(236,177,59,.45); outline-offset: 2px; }
.epsa-auth-submit:disabled { transform: none; opacity: .72; }
.epsa-auth-help { margin: 1.5rem 0 0; color: #87929d; font-size: .75rem; line-height: 1.5; text-align: center; }
@media (max-width: 991.98px) {
  .epsa-auth-shell { display: block; }
  .epsa-auth-visual { display: none; }
  .epsa-auth-access { min-height: 100vh; padding: 2.5rem 1.5rem; background: linear-gradient(180deg, #f6f8fb 0, var(--epsa-white) 34%); }
  .epsa-auth-mobile-brand { display: flex; width: 178px; flex-direction: column; align-items: center; margin: 0 auto 2.2rem; }
  .epsa-auth-mobile-brand img { display: block; width: 100%; height: 66px; object-fit: contain; }
}
.epsa-stage-card { border-top: 4px solid var(--epsa-gold); }
.epsa-summary-card { border-top: 4px solid var(--epsa-gold); box-shadow: 0 .2rem .65rem rgba(16, 44, 72, .1); }
.epsa-summary-card .inner h3 { color: var(--epsa-blue); }
.epsa-summary-card .icon { color: rgba(25, 63, 102, .12); }
.epsa-summary-card .small-box-footer { color: var(--epsa-white); background: var(--epsa-blue); }
.epsa-summary-card .small-box-footer:hover { background: var(--epsa-blue-dark); }
.epsa-welcome-message { gap: 1rem; padding: .5rem 0; }
.epsa-welcome-icon { display: inline-flex; flex: 0 0 52px; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: .75rem; color: var(--epsa-blue); background: rgba(236, 177, 59, .2); font-size: 1.35rem; }
.epsa-dashboard-hero { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 1.6rem 1.75rem; overflow: hidden; color: var(--epsa-white); background: linear-gradient(120deg, var(--epsa-blue-dark), var(--epsa-blue)); border-radius: .8rem; box-shadow: 0 .4rem 1.2rem rgba(16, 44, 72, .18); }
.epsa-dashboard-hero h2 { margin: .15rem 0 .25rem; font-size: 1.65rem; font-weight: 700; }
.epsa-dashboard-hero p { margin: 0; color: rgba(255, 255, 255, .78); }
.epsa-dashboard-eyebrow { color: var(--epsa-gold); font-size: .72rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.epsa-dashboard-actions { display: flex; flex: 0 0 auto; gap: .6rem; }
.epsa-dashboard-actions .btn { padding: .65rem 1rem; font-weight: 600; border: 0; }
.epsa-dashboard-actions .btn-warning { color: var(--epsa-blue-dark); background: var(--epsa-gold); }
.epsa-kpi-card { display: flex; min-height: 128px; align-items: center; gap: 1rem; margin-bottom: 1rem; padding: 1.2rem; color: var(--epsa-text); background: var(--epsa-white); border: 1px solid #e4e9ef; border-radius: .7rem; box-shadow: 0 .15rem .5rem rgba(16, 44, 72, .08); transition: transform .18s ease, box-shadow .18s ease; }
.epsa-kpi-card:hover { color: var(--epsa-text); text-decoration: none; transform: translateY(-2px); box-shadow: 0 .4rem 1rem rgba(16, 44, 72, .14); }
.epsa-kpi-card > span:last-child { display: flex; min-width: 0; flex-direction: column; }
.epsa-kpi-card small { color: var(--epsa-muted); font-size: .78rem; font-style: normal; }
.epsa-kpi-card strong { color: var(--epsa-blue); font-size: 1.8rem; line-height: 1.15; }
.epsa-kpi-card em { overflow: hidden; color: #8a96a3; font-size: .72rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.epsa-kpi-icon { display: inline-flex; flex: 0 0 48px; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: .7rem; font-size: 1.15rem; }
.epsa-kpi-icon.is-blue { color: var(--epsa-blue); background: rgba(25, 63, 102, .11); }
.epsa-kpi-icon.is-green { color: #198754; background: rgba(25, 135, 84, .11); }
.epsa-kpi-icon.is-gray { color: #687583; background: rgba(108, 117, 125, .12); }
.epsa-kpi-icon.is-gold { color: #9b6a05; background: rgba(236, 177, 59, .2); }
.epsa-kpi-icon.is-red { color: #c0392b; background: rgba(192, 57, 43, .11); }
.epsa-notification-menu .dropdown-menu { width: min(94vw, 360px); padding: 0; overflow: hidden; border: 0; box-shadow: 0 .5rem 1.25rem rgba(16, 44, 72, .18); }
.epsa-notification-menu .dropdown-header { color: var(--epsa-blue); font-weight: 700; background: #f8fafc; }
.epsa-notification-item { display: flex; align-items: center; white-space: normal; }
.epsa-notification-item > span { display: flex; min-width: 0; flex-direction: column; }
.epsa-notification-item strong, .epsa-notification-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.epsa-notification-item small { color: var(--epsa-muted); font-size: .72rem; }
.epsa-alert-card { overflow: hidden; border-radius: .7rem; box-shadow: 0 .15rem .6rem rgba(16, 44, 72, .09); }
.epsa-expediente-filter { width: min(100%, 250px); }
.epsa-expediente-filter label { color: var(--epsa-blue); font-size: .75rem; font-weight: 700; }
.epsa-movement-badge { padding: .45rem .6rem; font-size: .72rem; }
.epsa-expediente-table td { vertical-align: middle; }
@media (max-width: 767.98px) { .epsa-expediente-filter { width: 100%; margin-top: .8rem; margin-left: 0 !important; } }
.epsa-dashboard-card { margin-bottom: 0; border: 0; border-radius: .7rem; box-shadow: 0 .15rem .6rem rgba(16, 44, 72, .09); }
.epsa-dashboard-card .card-header { min-height: 66px; padding: 1rem 1.2rem; background: var(--epsa-white); border-bottom: 1px solid #e9edf2; }
.epsa-dashboard-card .card-title { float: none; margin: 0; color: var(--epsa-blue); font-size: 1rem; font-weight: 700; }
.epsa-dashboard-card .card-header small { color: var(--epsa-muted); }
.epsa-alert-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
.epsa-alert-header .card-title { float: none; color: var(--epsa-blue); }
.epsa-alert-summary { display: flex; align-items: stretch; flex-wrap: wrap; gap: .75rem; }
.epsa-alert-summary-item { display: flex; align-items: center; min-width: 175px; padding: .65rem .85rem; border: 1px solid #e5eaf0; border-radius: .65rem; background: var(--epsa-white); }
.epsa-alert-summary-item > span { display: grid; place-items: center; width: 2.35rem; height: 2.35rem; margin-right: .7rem; border-radius: .6rem; background: #edf3f9; color: var(--epsa-blue); }
.epsa-alert-summary-item strong, .epsa-alert-summary-item small { display: block; line-height: 1.15; }
.epsa-alert-summary-item strong { color: var(--epsa-blue); font-size: 1.25rem; }
.epsa-alert-summary-item small { margin-top: .15rem; color: var(--epsa-muted); }
.epsa-alert-summary-item.is-danger > span { background: #fcebec; color: #bd3540; }
.epsa-alert-summary-item.is-warning > span { background: #fff6df; color: #a66d00; }
.epsa-alert-summary-item.is-primary > span { background: #eaf1f8; color: var(--epsa-blue); }
.epsa-alert-plazos { display: flex; flex-direction: column; justify-content: center; margin-left: auto; padding: .4rem .2rem; text-align: right; }
.epsa-alert-plazos small { margin-bottom: .35rem; color: var(--epsa-muted); }
.epsa-alert-plazos .badge { margin-left: .25rem; padding: .45rem .6rem; border: 1px solid #dde4ec; color: var(--epsa-blue); font-weight: 600; }
.epsa-alert-table-wrap .table th, .epsa-alert-table-wrap .table td { vertical-align: middle; }
.epsa-alert-actions .btn { margin: .12rem .1rem; }
.epsa-modal-note { border: 0; border-radius: .55rem; }
.epsa-example-box { padding: .75rem .85rem; border-left: 3px solid var(--epsa-gold); background: #f7f9fb; color: #465568; font-size: .9rem; }
@media (max-width: 767.98px) {
  .epsa-alert-header { align-items: stretch; flex-direction: column; }
  .epsa-alert-header .btn { width: 100%; }
  .epsa-alert-summary-item { flex: 1 1 calc(50% - .75rem); min-width: 145px; }
  .epsa-alert-plazos { flex: 1 0 100%; margin-left: 0; text-align: left; }
  .epsa-alert-plazos .badge { margin: 0 .25rem .25rem 0; }
}
.epsa-chart-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; }
.epsa-chart-wrap { position: relative; width: 210px; height: 210px; }
.epsa-chart-total { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; flex-direction: column; pointer-events: none; }
.epsa-chart-total strong { color: var(--epsa-blue); font-size: 1.65rem; line-height: 1; }
.epsa-chart-total span { color: var(--epsa-muted); font-size: .75rem; }
.epsa-chart-legend { display: flex; gap: 1.25rem; margin-top: .75rem; font-size: .8rem; }
.epsa-chart-legend span { display: flex; align-items: center; gap: .35rem; }
.epsa-chart-legend i { width: 9px; height: 9px; border-radius: 50%; }
.epsa-chart-legend i.is-active { background: var(--epsa-blue); }
.epsa-chart-legend i.is-inactive { background: #c8d0d9; }
.epsa-recent-worker { display: flex; min-height: 64px; align-items: center; gap: .8rem; padding: .75rem 1.2rem; color: var(--epsa-text); border-bottom: 1px solid #edf0f3; transition: background .15s ease; }
.epsa-recent-worker:last-child { border-bottom: 0; }
.epsa-recent-worker:hover { color: var(--epsa-text); text-decoration: none; background: #f8fafc; }
.epsa-recent-avatar { display: inline-flex; flex: 0 0 38px; align-items: center; justify-content: center; width: 38px; height: 38px; color: var(--epsa-blue); background: rgba(236, 177, 59, .25); border-radius: 50%; font-size: .78rem; font-weight: 700; }
.epsa-recent-data { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.epsa-recent-data strong, .epsa-recent-data small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.epsa-recent-data strong { font-size: .9rem; }
.epsa-recent-data small { color: var(--epsa-muted); }
.epsa-organization-item { display: flex; min-height: 70px; align-items: center; gap: .75rem; padding: .8rem; color: var(--epsa-text); border: 1px solid #e5eaf0; border-radius: .55rem; }
.epsa-organization-item:hover { color: var(--epsa-blue); text-decoration: none; border-color: rgba(25, 63, 102, .35); background: #f8fafc; }
.epsa-organization-item > span { display: inline-flex; flex: 0 0 38px; align-items: center; justify-content: center; width: 38px; height: 38px; color: var(--epsa-blue); background: rgba(25, 63, 102, .08); border-radius: .5rem; }
.epsa-organization-item > div { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.epsa-organization-item strong { font-size: .88rem; }
.epsa-organization-item small { color: var(--epsa-muted); }
.epsa-organization-item > i { color: #a4adb7; font-size: .75rem; }
.epsa-catalog-modal .modal-content { overflow: visible; border: 0; border-radius: .65rem; box-shadow: 0 1rem 2.5rem rgba(16, 44, 72, .2); }
.epsa-catalog-modal .modal-header { border-radius: .65rem .65rem 0 0; }
.epsa-catalog-modal .modal-footer { border-radius: 0 0 .65rem .65rem; }
.epsa-catalog-modal .modal-body { max-height: calc(100vh - 190px); overflow-y: auto; }
.epsa-catalog-modal select { position: relative; z-index: 2; pointer-events: auto; }
.epsa-worker-steps { margin: -.25rem; }
.epsa-step-progress { display: flex; align-items: center; gap: 1rem; margin-bottom: .9rem; }
.epsa-step-progress > div:first-child { display: flex; min-width: 155px; flex-direction: column; }
.epsa-step-progress strong { color: var(--epsa-blue); font-size: .85rem; }
.epsa-step-progress small { color: var(--epsa-muted); font-size: .7rem; }
.epsa-step-progress .progress { flex: 1; height: 5px; background: #e9edf2; border-radius: 1rem; }
.epsa-step-progress .progress-bar { background: var(--epsa-gold); transition: width .25s ease; }
.epsa-step-nav { display: flex; flex-wrap: nowrap; margin-bottom: 1.2rem; border-bottom: 1px solid #e2e7ec; }
.epsa-step-nav .nav-item { flex: 1; }
.epsa-step-nav .nav-link { display: flex; align-items: center; justify-content: center; gap: .45rem; padding: .7rem .35rem; color: var(--epsa-muted); border-bottom: 3px solid transparent; }
.epsa-step-nav .nav-link:hover { color: var(--epsa-blue); text-decoration: none; }
.epsa-step-nav .nav-link.active { color: var(--epsa-blue); background: rgba(25, 63, 102, .04); border-bottom-color: var(--epsa-gold); font-weight: 700; }
.epsa-step-nav .nav-link span { display: inline-flex; width: 25px; height: 25px; align-items: center; justify-content: center; color: var(--epsa-white); background: #9ba6b1; border-radius: 50%; font-size: .72rem; font-style: normal; }
.epsa-step-nav .nav-link.active span { color: var(--epsa-blue-dark); background: var(--epsa-gold); }
.epsa-step-nav .nav-link em { font-size: .78rem; font-style: normal; }
.epsa-step-content { min-height: 285px; }
.epsa-step-content .tab-pane > h3 { display: flex; align-items: center; gap: .5rem; margin-bottom: .2rem; color: var(--epsa-blue); font-size: 1rem; font-weight: 700; }
.epsa-step-content .tab-pane > p { margin-bottom: 1rem; color: var(--epsa-muted); font-size: .8rem; }
.epsa-step-actions { display: flex; align-items: center; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid #e6eaee; }
.epsa-worker-view-modal .modal-content { overflow: hidden; border: 0; border-radius: .65rem; box-shadow: 0 1rem 2.5rem rgba(16, 44, 72, .2); }
.epsa-worker-summary { display: flex; align-items: center; gap: 1rem; padding: 1.5rem; background: #f8fafc; border-bottom: 1px solid #e3e8ee; }
.epsa-worker-photo { display: flex; flex: 0 0 82px; align-items: center; justify-content: center; width: 82px; height: 82px; overflow: hidden; border-radius: 50%; background: var(--epsa-white); border: 3px solid rgba(236, 177, 59, .55); }
.epsa-worker-photo img { width: 100%; height: 100%; object-fit: cover; }
.epsa-worker-photo-placeholder { color: var(--epsa-blue); background: rgba(25, 63, 102, .08); font-size: 2rem; }
.epsa-detail-heading { display: flex; align-items: center; gap: .55rem; padding-bottom: .55rem; color: var(--epsa-blue); font-size: 1rem; font-weight: 700; border-bottom: 2px solid rgba(236, 177, 59, .55); }
.epsa-detail-grid > div { display: flex; flex-direction: column; gap: .15rem; padding-top: .75rem; padding-bottom: .35rem; }
.epsa-detail-grid span { color: var(--epsa-muted); font-size: .8rem; }
.epsa-detail-grid strong { color: var(--epsa-text); font-size: .95rem; font-weight: 600; }
.epsa-worker-detail-tabs .nav-link { color: var(--epsa-muted); font-size: .85rem; font-weight: 600; }
.epsa-worker-detail-tabs .nav-link.active { color: var(--epsa-blue); border-top: 2px solid var(--epsa-gold); }
.epsa-study-item { display: flex; align-items: center; gap: .75rem; padding: .85rem; margin-bottom: .6rem; border: 1px solid #e4e9ee; border-radius: .55rem; }
.epsa-study-info { display: flex; min-width: 0; flex: 1; flex-direction: column; }
.epsa-study-info strong { color: var(--epsa-blue); font-size: .9rem; }
.epsa-study-info span { font-size: .85rem; }
.epsa-study-info small { overflow: hidden; color: var(--epsa-muted); text-overflow: ellipsis; white-space: nowrap; }
.epsa-study-actions { display: flex; gap: .35rem; }
.epsa-modal-header { color: var(--epsa-white); background: var(--epsa-blue); border-bottom: 3px solid var(--epsa-gold); }
.epsa-modal-header small { color: rgba(255, 255, 255, .78); }
.epsa-modal-header .close { color: var(--epsa-white); opacity: .85; text-shadow: none; }
.epsa-modal-header .close:hover, .epsa-modal-header .close:focus { color: var(--epsa-white); opacity: 1; }
.nav-sidebar > .nav-item > .nav-treeview { padding-left: .35rem; }
.nav-sidebar .nav-treeview > .nav-item > .nav-link { color: rgba(255, 255, 255, .82); }
.nav-sidebar .nav-treeview > .nav-item > .nav-link.active { color: var(--epsa-white) !important; background: rgba(236, 177, 59, .22) !important; border-left: 3px solid var(--epsa-gold); }
.nav-sidebar .nav-treeview > .nav-item > .nav-link:hover { color: var(--epsa-white); background: rgba(255, 255, 255, .08); }
.epsa-user-toggle { display: flex; align-items: center; min-height: 48px; }
.epsa-user-avatar, .epsa-profile-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  color: var(--epsa-white);
  background: var(--epsa-blue);
}
.epsa-user-avatar-lg { width: 62px; height: 62px; margin-bottom: .5rem; font-size: 1.5rem; border: 3px solid rgba(255, 255, 255, .65); }
.epsa-profile-avatar { width: 92px; height: 92px; margin-bottom: .75rem; font-size: 2.25rem; background: var(--epsa-blue); border: 4px solid rgba(236, 177, 59, .35); }
.epsa-user-menu { padding: 0; overflow: hidden; border: 0; box-shadow: 0 .5rem 1.25rem rgba(16, 44, 72, .18); }
.epsa-user-header { padding: 1.25rem; color: var(--epsa-white); background: var(--epsa-blue); border-bottom: 3px solid var(--epsa-gold); }
.epsa-user-header small { color: rgba(255, 255, 255, .82); }
.epsa-empty-state { padding: 2.5rem 1rem; text-align: center; color: var(--epsa-muted); }
.epsa-empty-state-icon { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 1rem; border-radius: 50%; color: var(--epsa-blue); background: rgba(25, 63, 102, .08); font-size: 1.5rem; }

@media (max-width: 575.98px) {
  .epsa-login-page { background: var(--epsa-white); }
  .epsa-auth-access { align-items: flex-start; padding: 1.5rem 1.1rem; }
  .epsa-auth-mobile-brand { width: 152px; margin-bottom: 1.7rem; }
  .epsa-auth-mobile-brand img { height: 56px; }
  .epsa-auth-heading h2 { font-size: 1.7rem; }
  .epsa-auth-access-label { margin-bottom: .75rem; }
  .epsa-brand { min-height: 82px; }
  .epsa-user-menu { width: min(92vw, 280px); }
  .epsa-worker-summary { align-items: flex-start; padding: 1rem; }
  .epsa-worker-photo { flex-basis: 64px; width: 64px; height: 64px; }
  .epsa-worker-view-modal .modal-body > .p-4 { padding: 1rem !important; }
  .epsa-dashboard-hero { align-items: stretch; flex-direction: column; padding: 1.25rem; }
  .epsa-dashboard-actions { flex-direction: column; }
  .epsa-dashboard-actions .btn { width: 100%; }
  .epsa-kpi-card { min-height: 104px; }
  .epsa-recent-worker { padding: .75rem; }
  .epsa-recent-worker .badge { display: none; }
  .epsa-organization-item { margin-bottom: .75rem; }
  .epsa-step-nav .nav-link em { display: none; }
  .epsa-step-progress > div:first-child { min-width: 125px; }
  .epsa-step-content { min-height: 360px; }
  .epsa-study-item { align-items: flex-start; flex-wrap: wrap; }
  .epsa-study-actions { width: 100%; justify-content: flex-end; }
}
@media (max-width: 575.98px) and (min-height: 720px) {
  .epsa-auth-access { align-items: center; }
}
.epsa-audit-stat .icon > i {
  font-size: 3.25rem;
  top: 16px;
}

.epsa-audit-json {
  max-height: 24rem;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  color: #26384a;
  font-size: .78rem;
  line-height: 1.55;
}

@media (max-width: 575.98px) {
  .epsa-audit-stat .inner h3 { font-size: 1.65rem; }
  .epsa-audit-stat .inner p { min-height: 2.5rem; }
}
