:root {
    --saes-primary: #1478e5;
    --saes-primary-dark: #0a5fbe;
    --saes-primary-soft: #eaf4ff;
    --saes-cyan: #13aaa6;
    --saes-red: #e94b5f;
    --saes-violet: #7758d7;
    --saes-green: #2ea86b;
    --saes-warning: #e9a21a;
    --saes-ink: #182235;
    --saes-muted: #6f7a8d;
    --saes-line: #e5eaf1;
    --saes-bg: #f5f7fb;
    --saes-card: #ffffff;
    --sidebar-width: 252px;
    --topbar-height: 76px;
    --shadow-sm: 0 8px 28px rgba(36, 53, 80, .07);
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; color: var(--saes-ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--saes-bg); }
a { color: inherit; }
button, input, select { font: inherit; }

.saes-body { overflow-x: hidden; }
.app-shell { min-height: 100vh; }
.app-sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); display: flex; flex-direction: column; background: #fff; border-right: 1px solid var(--saes-line); z-index: 1040; }
.sidebar-brand { min-height: var(--topbar-height); display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid var(--saes-line); }
.brand-mark { width: 43px; height: 43px; flex: 0 0 auto; }
.brand-copy { min-width: 0; display: flex; flex-direction: column; }
.brand-copy strong { font-size: 20px; line-height: 1; letter-spacing: .04em; }
.brand-copy span { margin-top: 5px; color: var(--saes-muted); font-size: 11px; white-space: nowrap; }
.sidebar-close { margin-left: auto; border: 0; background: transparent; font-size: 20px; }
.sidebar-nav { flex: 1; overflow-y: auto; padding: 16px 12px; scrollbar-width: thin; }
.nav-section { padding: 16px 12px 7px; color: #9aa3b2; font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.sidebar-link { min-height: 43px; display: flex; align-items: center; gap: 12px; margin: 3px 0; padding: 10px 12px; border-radius: 10px; color: #596477; font-size: 14px; font-weight: 600; text-decoration: none; transition: .18s ease; }
.sidebar-link i { width: 20px; color: #778397; font-size: 18px; text-align: center; }
.sidebar-link:hover { color: var(--saes-primary); background: #f4f8fd; }
.sidebar-link.active { color: var(--saes-primary); background: var(--saes-primary-soft); box-shadow: inset 3px 0 var(--saes-primary); }
.sidebar-link.active i { color: var(--saes-primary); }
.nav-badge { margin-left: auto; padding: 3px 6px; border-radius: 5px; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.nav-badge.danger { color: #ba2f42; background: #ffe9ed; }
.sidebar-user { display: flex; align-items: center; gap: 10px; padding: 16px; border-top: 1px solid var(--saes-line); background: #fbfcfe; }
.sidebar-user-copy { min-width: 0; display: flex; flex: 1; flex-direction: column; }
.sidebar-user-copy strong { overflow: hidden; font-size: 13px; white-space: nowrap; text-overflow: ellipsis; }
.sidebar-user-copy span { color: var(--saes-muted); font-size: 11px; }
.sidebar-user-link { color: var(--saes-muted); }

.app-main { min-height: 100vh; margin-left: var(--sidebar-width); }
.app-topbar { position: sticky; top: 0; z-index: 1020; min-height: var(--topbar-height); display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 28px; border-bottom: 1px solid rgba(229, 234, 241, .9); background: rgba(255, 255, 255, .92); backdrop-filter: blur(14px); }
.topbar-left, .topbar-actions { display: flex; align-items: center; gap: 14px; }
.topbar-kicker { color: var(--saes-muted); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.topbar-title { margin: 2px 0 0; font-size: 20px; font-weight: 760; }
.topbar-icon { position: relative; width: 40px; height: 40px; display: inline-grid; place-items: center; border: 1px solid var(--saes-line); border-radius: 11px; color: #657083; background: #fff; }
.notification-dot { position: absolute; top: 8px; right: 8px; width: 7px; height: 7px; border: 2px solid #fff; border-radius: 50%; background: var(--saes-red); }
.global-search { width: min(330px, 28vw); align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--saes-line); border-radius: 11px; background: #f8fafc; }
.global-search input { min-width: 0; flex: 1; padding: 10px 2px; border: 0; outline: 0; background: transparent; font-size: 13px; }
.global-search i { color: #8e98a8; }
.global-search kbd { padding: 2px 6px; border: 1px solid #dfe5ec; border-radius: 5px; color: #8993a3; background: #fff; box-shadow: none; font-size: 9px; }
.user-menu { display: flex; align-items: center; gap: 9px; padding: 4px 7px 4px 4px; border: 0; border-radius: 12px; background: transparent; }
.user-menu:hover { background: #f4f7fb; }
.user-menu-copy { display: flex; flex-direction: column; align-items: flex-start; }
.user-menu-copy strong { font-size: 12px; }
.user-menu-copy span { color: var(--saes-muted); font-size: 10px; }

.app-content { padding: 26px 28px 40px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 22px; }
.page-heading h2, .patient-header h2 { margin: 3px 0 5px; font-size: clamp(25px, 3vw, 34px); font-weight: 760; letter-spacing: -.025em; }
.page-heading p, .patient-header p { max-width: 750px; margin: 0; color: var(--saes-muted); }
.eyebrow { display: inline-block; color: var(--saes-primary); font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.page-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.btn { border-radius: 9px; font-weight: 650; }
.btn-primary { border-color: var(--saes-primary); background: var(--saes-primary); }
.btn-primary:hover { border-color: var(--saes-primary-dark); background: var(--saes-primary-dark); }
.btn-light { border: 1px solid var(--saes-line); color: #4d596b; background: #fff; }

.avatar { width: 42px; height: 42px; display: inline-grid; flex: 0 0 auto; place-items: center; border-radius: 12px; color: #1766b6; background: linear-gradient(145deg, #dceeff, #edf7ff); font-weight: 800; }
.avatar-sm { width: 34px; height: 34px; border-radius: 10px; font-size: 12px; }
.avatar-lg { width: 54px; height: 54px; border-radius: 16px; font-size: 18px; }
.avatar-xl { width: 76px; height: 76px; border-radius: 22px; font-size: 24px; }

.saes-alert { border: 0; border-radius: 12px; box-shadow: var(--shadow-sm); }
.stat-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.stat-card { min-width: 0; display: flex; align-items: center; gap: 13px; padding: 17px; border: 1px solid var(--saes-line); border-radius: 15px; background: #fff; box-shadow: 0 3px 14px rgba(36, 53, 80, .035); }
.stat-icon { width: 45px; height: 45px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 13px; font-size: 20px; }
.stat-icon.blue { color: #176fc8; background: #e8f3ff; }
.stat-icon.violet { color: #6847cc; background: #f0ebff; }
.stat-icon.red { color: #cf3f53; background: #ffecef; }
.stat-icon.green { color: #238d59; background: #e8f8ef; }
.stat-icon.cyan { color: #0e8885; background: #e6f8f7; }
.stat-card > div:last-child { min-width: 0; display: flex; flex-direction: column; }
.stat-card span { overflow: hidden; color: var(--saes-muted); font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.stat-card strong { margin: 1px 0; font-size: 25px; line-height: 1.1; }
.stat-card small { color: #9aa4b3; font-size: 10px; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(300px, .85fr); gap: 18px; }
.panel, .clinical-card, .table-panel, .toolbar-card { border: 1px solid var(--saes-line); border-radius: 15px; background: var(--saes-card); box-shadow: 0 3px 16px rgba(36, 53, 80, .035); }
.panel { min-width: 0; padding: 20px; }
.panel-wide { min-width: 0; }
.panel-header, .clinical-card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 15px; }
.panel-header h3, .clinical-card-header h3 { margin: 2px 0 0; font-size: 16px; font-weight: 750; }
.panel-kicker { color: #9aa3b2; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.panel-link { color: var(--saes-primary); font-size: 12px; font-weight: 700; text-decoration: none; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 16px; color: var(--saes-muted); font-size: 11px; }
.legend-dot { width: 8px; height: 8px; display: inline-block; margin-right: 6px; border-radius: 50%; }
.legend-dot.consultation, .bar.consultation { background: var(--saes-primary); }
.legend-dot.emergency, .bar.emergency { background: var(--saes-red); }
.legend-dot.inpatient, .bar.inpatient { background: var(--saes-green); }
.bar-chart { height: 255px; display: grid; grid-template-columns: repeat(12, minmax(25px, 1fr)); align-items: end; gap: 8px; margin-top: 18px; padding-top: 18px; border-bottom: 1px solid var(--saes-line); background-image: linear-gradient(to bottom, transparent calc(25% - 1px), #eef1f5 25%, transparent calc(25% + 1px)), linear-gradient(to bottom, transparent calc(50% - 1px), #eef1f5 50%, transparent calc(50% + 1px)), linear-gradient(to bottom, transparent calc(75% - 1px), #eef1f5 75%, transparent calc(75% + 1px)); }
.bar-group { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; }
.bars { width: 100%; height: calc(100% - 28px); display: flex; align-items: flex-end; justify-content: center; gap: 2px; }
.bar { width: 22%; min-height: 2px; border-radius: 4px 4px 0 0; opacity: .9; transition: opacity .2s; }
.bar:hover { opacity: 1; }
.bar-group small { margin-top: 8px; color: #8993a2; font-size: 9px; }
.agenda-list, .compact-list, .timeline-list, .attention-list { display: flex; flex-direction: column; }
.agenda-item { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 11px 0; border-bottom: 1px solid #eef1f5; }
.agenda-item:last-child { border-bottom: 0; }
.agenda-date { width: 42px; height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 9px; color: var(--saes-primary); background: var(--saes-primary-soft); }
.agenda-date strong { font-size: 17px; line-height: 1; }
.agenda-date span { font-size: 9px; font-weight: 800; }
.agenda-copy { min-width: 0; display: flex; flex-direction: column; }
.agenda-copy strong, .compact-person strong { overflow: hidden; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; }
.agenda-copy span, .agenda-copy small, .compact-person span { overflow: hidden; color: var(--saes-muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.compact-person { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 10px 0; border-bottom: 1px solid #eef1f5; text-decoration: none; }
.compact-person:last-child { border-bottom: 0; }
.compact-person > div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.compact-person > i { color: #a2abb9; }
.timeline-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid #eef1f5; }
.timeline-item:last-child { border-bottom: 0; }
.timeline-icon, .log-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--saes-primary); background: var(--saes-primary-soft); }
.timeline-item strong { font-size: 12px; }
.timeline-item p { margin: 1px 0 0; color: #616d7e; font-size: 12px; }
.timeline-item time { color: #9ba4b1; font-size: 10px; }

.status-pill { display: inline-flex; align-items: center; justify-content: center; padding: 4px 8px; border-radius: 999px; font-size: 9px; font-weight: 800; white-space: nowrap; }
.status-pill.success { color: #197548; background: #e5f7ed; }
.status-pill.info { color: #1766b6; background: #e8f3ff; }
.status-pill.muted { color: #667184; background: #eef1f5; }
.empty-state { min-height: 210px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 28px; color: var(--saes-muted); text-align: center; }
.empty-state.small { min-height: 120px; padding: 16px; }
.empty-state > i { margin-bottom: 8px; color: #a9b9ca; font-size: 32px; }
.empty-state h3 { color: var(--saes-ink); font-size: 17px; }
.empty-state p { margin: 0; font-size: 12px; }

.toolbar-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding: 12px 15px; }
.toolbar-search { width: min(480px, 70vw); display: flex; align-items: center; gap: 9px; }
.toolbar-search.wide { width: min(690px, 75vw); }
.toolbar-search i { color: #8e98a8; }
.toolbar-search input { width: 100%; border: 0; outline: 0; background: transparent; font-size: 13px; }
.toolbar-meta { color: var(--saes-muted); font-size: 11px; }
.user-grid { display: grid; grid-template-columns: repeat(4, minmax(230px, 1fr)); gap: 14px; }
.user-card { min-width: 0; display: grid; grid-template-columns: 78px minmax(0, 1fr); min-height: 160px; overflow: hidden; border: 1px solid var(--saes-line); border-radius: 13px; background: #fff; box-shadow: 0 3px 15px rgba(36, 53, 80, .035); }
.user-card-avatar { display: grid; place-items: center; color: #fff; background: linear-gradient(145deg, #1580e7, #15a5ae); font-size: 28px; font-weight: 800; }
.user-card-avatar img { width: 100%; height: 100%; object-fit: cover; }
.user-card-body { min-width: 0; display: flex; flex-direction: column; padding: 13px; }
.user-card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.user-card-heading h3 { margin: 0; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.role-label { color: var(--saes-muted); font-size: 9px; }
.status-dot { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; }
.status-dot.activo { background: #31ad68; box-shadow: 0 0 0 3px #e4f6ec; }
.status-dot.inactivo { background: #e4a62b; box-shadow: 0 0 0 3px #fff4d9; }
.status-dot.bloqueado { background: #dc4b5f; box-shadow: 0 0 0 3px #ffe9ed; }
.user-contact-list { display: flex; flex-direction: column; gap: 5px; margin: 12px 0; padding: 0; list-style: none; }
.user-contact-list li { min-width: 0; display: flex; align-items: center; gap: 7px; color: #606b7c; font-size: 10px; }
.user-contact-list li i { color: var(--saes-primary); }
.user-contact-list li span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.user-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 7px; margin-top: auto; padding-top: 8px; border-top: 1px solid #eef1f5; color: #9ba4b1; font-size: 8px; }
.icon-button { width: 30px; height: 30px; display: inline-grid; place-items: center; border: 1px solid var(--saes-line); border-radius: 8px; color: #647084; background: #fff; }
.modal-state-icon { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 14px; border-radius: 18px; color: var(--saes-primary); background: var(--saes-primary-soft); font-size: 25px; }

.table-panel { overflow: hidden; }
.saes-table { margin: 0; }
.saes-table thead th { padding: 13px 16px; border-bottom-color: var(--saes-line); color: #9099a8; background: #fafbfd; font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.saes-table tbody td { padding: 13px 16px; border-bottom-color: #edf1f5; font-size: 12px; }
.saes-table tbody tr:hover { background: #fbfdff; }
.table-person { min-width: 220px; display: flex; align-items: center; gap: 10px; }
.table-person > div:last-child { display: flex; flex-direction: column; }
.table-person strong { font-size: 12px; }
.table-person span, .contact-cell small { color: var(--saes-muted); font-size: 10px; }
.contact-cell { display: flex; flex-direction: column; }
.mono-chip { padding: 5px 7px; border-radius: 7px; color: #556173; background: #f1f4f8; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; }

.patient-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.patient-heading-main { display: flex; align-items: center; gap: 13px; }
.back-link { width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--saes-line); border-radius: 10px; color: var(--saes-muted); background: #fff; }
.patient-workspace { display: grid; grid-template-columns: minmax(235px, .72fr) minmax(420px, 1.65fr) minmax(240px, .78fr); align-items: start; gap: 14px; }
.patient-summary-column, .patient-clinical-column, .patient-actions-column { min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.clinical-card { padding: 16px; }
.patient-card-profile { display: flex; flex-direction: column; align-items: center; padding: 8px 0 16px; border-bottom: 1px solid #edf1f5; text-align: center; }
.patient-card-profile h3 { margin: 10px 0 1px; font-size: 14px; }
.patient-card-profile span { color: var(--saes-muted); font-size: 10px; }
.patient-data-list { margin: 7px 0 0; }
.patient-data-list > div { padding: 8px 0; border-bottom: 1px solid #f0f2f5; }
.patient-data-list > div:last-child { border-bottom: 0; }
.patient-data-list dt { color: #96a0ae; font-size: 9px; font-weight: 700; text-transform: uppercase; }
.patient-data-list dd { margin: 2px 0 0; color: #4e5a6c; font-size: 11px; overflow-wrap: anywhere; }
.alert-card { border-color: #ffd9df; background: #fffafb; }
.alert-card .clinical-card-header h3 { color: #bd3a4d; }
.alert-card p { margin: 0; color: #7b4c54; font-size: 11px; }
.relative-item { display: flex; align-items: center; gap: 9px; padding: 9px 0; border-bottom: 1px solid #eef1f5; }
.relative-item:last-child { border-bottom: 0; }
.relative-item > div:last-child { display: flex; flex-direction: column; }
.relative-item strong { font-size: 11px; }
.relative-item span, .muted-copy { color: var(--saes-muted); font-size: 9px; }
.clinical-notice { display: flex; align-items: center; gap: 12px; padding: 13px 15px; border-radius: 12px; }
.clinical-notice.warning { border: 1px solid #ffe2a0; color: #755013; background: #fff9e9; }
.clinical-notice > i { font-size: 22px; }
.clinical-notice > div { flex: 1; }
.clinical-notice strong { font-size: 12px; }
.clinical-notice p { margin: 1px 0 0; font-size: 10px; }
.clinical-accordion { border-top: 1px solid #edf1f5; }
.clinical-accordion-item { width: 100%; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 11px 4px; border: 0; border-bottom: 1px solid #edf1f5; color: #405066; background: #fff; text-align: left; }
.clinical-accordion-item:hover { background: #fbfdff; }
.clinical-accordion-item strong { font-size: 11px; }
.accordion-plus { width: 25px; height: 25px; display: grid; place-items: center; border: 1px dashed #77b3f2; border-radius: 6px; color: var(--saes-primary); }
.accordion-status { color: #9ba4b0; font-size: 9px; }
.attention-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid #eef1f5; }
.attention-item:last-child { border-bottom: 0; }
.attention-type { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; }
.attention-type.consulta { color: var(--saes-primary); background: var(--saes-primary-soft); }
.attention-type.urgencia { color: #c63f52; background: #ffecef; }
.attention-type.internamiento { color: #238d59; background: #e8f8ef; }
.attention-item > div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.attention-item strong { font-size: 11px; }
.attention-item span { overflow: hidden; color: var(--saes-muted); font-size: 9px; white-space: nowrap; text-overflow: ellipsis; }
.action-card { display: flex; flex-direction: column; gap: 7px; }
.quick-action { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 2px; border: 0; border-bottom: 1px solid #edf1f5; color: #4f5d70; background: transparent; text-align: left; }
.quick-action:last-child { border-bottom: 0; }
.quick-action span { display: flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 650; }
.quick-action span i { color: var(--saes-primary); font-size: 15px; }
.status-summary { display: flex; align-items: center; justify-content: space-between; padding: 8px 0; border-bottom: 1px solid #eef1f5; font-size: 10px; }
.status-summary:last-child { border-bottom: 0; }

.log-list { display: flex; flex-direction: column; }
.log-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 11px; padding: 12px 0; border-bottom: 1px solid #edf1f5; }
.log-row:last-child { border-bottom: 0; }
.log-copy p { margin: 0; color: #566274; font-size: 11px; }
.log-copy p strong { color: var(--saes-ink); }
.log-copy > span, .log-row time { color: #9aa3b1; font-size: 9px; }
.log-action { color: #e67a23; font-weight: 700; }
.module-placeholder { min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.module-placeholder-icon { width: 72px; height: 72px; display: grid; place-items: center; margin-bottom: 15px; border-radius: 22px; color: var(--saes-primary); background: var(--saes-primary-soft); font-size: 30px; }
.module-placeholder h3 { margin: 5px 0; }
.module-placeholder p { max-width: 580px; color: var(--saes-muted); font-size: 13px; }
.module-progress { width: min(380px, 80%); height: 7px; margin: 15px 0 7px; overflow: hidden; border-radius: 999px; background: #edf1f5; }
.module-progress span { height: 100%; display: block; border-radius: inherit; background: linear-gradient(90deg, var(--saes-primary), var(--saes-cyan)); }
.module-placeholder small { color: #8d97a6; }

.guest-body { min-height: 100vh; background: #fff; }
.login-page { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(420px, .85fr); }
.login-visual { position: relative; min-height: 100vh; display: flex; flex-direction: column; justify-content: space-between; overflow: hidden; padding: 40px 52px 58px; color: #fff; background: linear-gradient(145deg, #0754a3 0%, #0c7cce 45%, #0c9c9b 100%); }
.login-visual::before, .login-visual::after { content: ''; position: absolute; border-radius: 50%; background: rgba(255, 255, 255, .08); }
.login-visual::before { width: 520px; height: 520px; top: -230px; right: -130px; }
.login-visual::after { width: 430px; height: 430px; bottom: -210px; left: -100px; }
.login-visual-overlay { position: absolute; inset: 0; opacity: .18; background-image: linear-gradient(rgba(255,255,255,.2) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.2) 1px, transparent 1px); background-size: 42px 42px; mask-image: linear-gradient(to bottom, transparent, #000, transparent); }
.login-brand, .login-message { position: relative; z-index: 1; }
.login-brand { display: flex; align-items: center; gap: 13px; }
.login-brand img { width: 49px; height: 49px; }
.login-brand div { display: flex; flex-direction: column; }
.login-brand strong { font-size: 23px; letter-spacing: .04em; }
.login-brand span { color: rgba(255,255,255,.75); font-size: 11px; }
.login-message { max-width: 650px; }
.login-message .eyebrow { color: #bfe9ff; }
.login-message h1 { margin: 12px 0 16px; font-size: clamp(36px, 4.6vw, 65px); font-weight: 760; letter-spacing: -.045em; line-height: 1.02; }
.login-message p { max-width: 580px; margin: 0; color: rgba(255,255,255,.78); font-size: 16px; line-height: 1.7; }
.login-panel { display: grid; place-items: center; padding: 35px; }
.login-card { width: min(430px, 100%); }
.login-card h2 { margin: 5px 0 5px; font-size: 34px; font-weight: 760; }
.login-form { margin-top: 28px; }
.form-label { color: #536074; font-size: 12px; font-weight: 700; }
.input-icon { position: relative; }
.input-icon > i { position: absolute; top: 50%; left: 14px; z-index: 2; color: #98a2b0; transform: translateY(-50%); }
.input-icon .form-control { min-height: 49px; padding-left: 42px; border-color: var(--saes-line); border-radius: 10px; }
.password-toggle { position: absolute; top: 50%; right: 8px; width: 34px; height: 34px; border: 0; color: #7d8796; background: transparent; transform: translateY(-50%); }
.login-help { display: flex; align-items: flex-start; gap: 9px; margin-top: 25px; padding: 13px; border-radius: 10px; color: #6c7788; background: #f5f8fb; font-size: 10px; line-height: 1.5; }
.login-help i { color: var(--saes-green); font-size: 17px; }
.login-mobile-brand { display: none; }
.error-page { min-height: 60vh; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.error-code { color: #dbe9f8; font-size: 100px; font-weight: 900; line-height: 1; }
.error-page h2 { margin-top: -14px; }
.error-page p { color: var(--saes-muted); }
.sidebar-overlay { display: none; }

@media (max-width: 1450px) {
    .stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .user-grid { grid-template-columns: repeat(3, minmax(230px, 1fr)); }
    .patient-workspace { grid-template-columns: 245px minmax(390px, 1fr); }
    .patient-actions-column { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1199px) {
    .user-grid { grid-template-columns: repeat(2, minmax(230px, 1fr)); }
    .dashboard-grid { grid-template-columns: 1fr; }
    .patient-workspace { grid-template-columns: 235px minmax(0, 1fr); }
}

@media (max-width: 991.98px) {
    .app-sidebar { transform: translateX(-105%); transition: transform .23s ease; box-shadow: 14px 0 45px rgba(20, 34, 55, .17); }
    .app-sidebar.open { transform: translateX(0); }
    .app-main { margin-left: 0; }
    .sidebar-overlay { position: fixed; inset: 0; z-index: 1035; display: block; visibility: hidden; background: rgba(17, 27, 43, .43); opacity: 0; transition: .2s ease; }
    .sidebar-overlay.show { visibility: visible; opacity: 1; }
    body.sidebar-open { overflow: hidden; }
    .app-topbar { padding: 11px 18px; }
    .app-content { padding: 22px 18px 35px; }
    .patient-workspace { grid-template-columns: 1fr; }
    .patient-summary-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .patient-card { grid-row: span 2; }
    .patient-actions-column { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .login-page { grid-template-columns: 1fr; }
    .login-visual { display: none; }
    .login-panel { min-height: 100vh; }
    .login-mobile-brand { display: flex; align-items: center; gap: 10px; margin-bottom: 35px; }
    .login-mobile-brand img { width: 42px; }
    .login-mobile-brand strong { font-size: 21px; }
}

@media (max-width: 767.98px) {
    .topbar-kicker, .user-menu > i { display: none; }
    .topbar-title { font-size: 17px; }
    .app-content { padding-inline: 13px; }
    .page-heading, .patient-header { align-items: flex-start; flex-direction: column; }
    .page-actions { width: 100%; }
    .page-actions .btn { flex: 1; }
    .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stat-card:last-child { grid-column: 1 / -1; }
    .user-grid { grid-template-columns: 1fr; }
    .toolbar-card { align-items: stretch; flex-direction: column; }
    .toolbar-search, .toolbar-search.wide { width: 100%; }
    .patient-summary-column, .patient-actions-column { display: flex; }
    .bar-chart { gap: 3px; }
    .timeline-item, .log-row { grid-template-columns: auto minmax(0, 1fr); }
    .timeline-item time, .log-row time { grid-column: 2; }
}

@media (max-width: 480px) {
    .stat-grid { grid-template-columns: 1fr; }
    .stat-card:last-child { grid-column: auto; }
    .app-topbar { padding-inline: 10px; }
    .topbar-actions { gap: 5px; }
    .page-heading h2, .patient-header h2 { font-size: 27px; }
    .patient-heading-main { align-items: flex-start; flex-wrap: wrap; }
    .patient-heading-main > div:last-child { width: calc(100% - 54px); }
    .panel { padding: 15px; }
    .login-panel { padding: 22px; }
    .agenda-item { grid-template-columns: 42px minmax(0, 1fr); }
    .agenda-item .status-pill { grid-column: 2; justify-self: start; }
}

/* Pacientes: formularios y validación */
.patient-form-layout { display: grid; grid-template-columns: minmax(0, 1fr) 285px; gap: 18px; align-items: start; }
.patient-form-main { min-width: 0; display: grid; gap: 18px; }
.form-section-card, .form-side-card, .duplicate-panel, .form-summary-error { border: 1px solid var(--saes-line); border-radius: 15px; background: #fff; box-shadow: 0 3px 16px rgba(36, 53, 80, .035); }
.form-section-card { padding: 22px; }
.form-section-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.form-section-heading h3, .form-side-card h3 { margin: 0 0 4px; font-size: 16px; font-weight: 760; }
.form-section-heading p, .form-side-card p { margin: 0; color: var(--saes-muted); font-size: 12px; line-height: 1.55; }
.form-section-icon, .form-side-icon { width: 39px; height: 39px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 11px; color: var(--saes-primary); background: var(--saes-primary-soft); font-size: 18px; }
.form-label span { color: var(--saes-red); }
.patient-form .form-control, .patient-form .form-select { min-height: 44px; border-color: #dfe5ed; border-radius: 9px; font-size: 13px; }
.patient-form textarea.form-control { min-height: auto; }
.patient-form .form-control:focus, .patient-form .form-select:focus { border-color: #88bdf6; box-shadow: 0 0 0 .2rem rgba(20, 120, 229, .10); }
.patient-form-aside { position: sticky; top: calc(var(--topbar-height) + 18px); display: grid; gap: 14px; }
.form-side-card { padding: 18px; }
.form-side-card.subtle { background: #fbfcfe; }
.form-side-card .form-side-icon { margin-bottom: 13px; }
.form-side-list { display: grid; gap: 9px; margin: 13px 0 0; padding: 0; list-style: none; color: #586477; font-size: 12px; }
.form-side-list i { margin-right: 7px; color: var(--saes-green); }
.form-sticky-actions { display: grid; grid-template-columns: 1fr 1.45fr; gap: 9px; padding: 14px; border: 1px solid var(--saes-line); border-radius: 15px; background: #fff; box-shadow: var(--shadow-sm); }
.form-sticky-actions .btn { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.form-summary-error { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; padding: 15px 17px; border-color: #f4c7cd; color: #a82f41; background: #fff5f6; }
.form-summary-error > i { margin-top: 1px; font-size: 20px; }
.form-summary-error strong { display: block; font-size: 13px; }
.form-summary-error p { margin: 2px 0 0; font-size: 12px; }
.duplicate-panel { margin-bottom: 18px; overflow: hidden; border-color: #f0d29b; }
.duplicate-panel-heading { display: flex; align-items: flex-start; gap: 11px; padding: 15px 17px; color: #875b0d; background: #fff8e9; }
.duplicate-panel-heading > i { font-size: 22px; }
.duplicate-panel-heading strong, .duplicate-panel-heading span { display: block; }
.duplicate-panel-heading strong { font-size: 13px; }
.duplicate-panel-heading span { margin-top: 2px; color: #8d7444; font-size: 11px; }
.duplicate-list { display: grid; }
.duplicate-list a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 12px 16px; border-top: 1px solid #f0e4cd; text-decoration: none; }
.duplicate-list a:hover { background: #fffdf8; }
.duplicate-list span { min-width: 0; display: flex; flex-direction: column; }
.duplicate-list strong { font-size: 12px; }
.duplicate-list small { overflow: hidden; color: var(--saes-muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.confirmation-check { margin-top: 14px; padding: 12px 12px 12px 36px; border-radius: 10px; background: #fff8e9; font-size: 11px; line-height: 1.45; }
.table-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; }
.icon-button.danger { color: #c23c50; background: #fff1f3; }
.relative-item { grid-template-columns: auto minmax(0, 1fr) auto; }
.relative-item form { margin: 0; }
.mini-form-alert { display: flex; align-items: flex-start; gap: 7px; margin-bottom: 10px; padding: 9px 10px; border-radius: 8px; color: #946110; background: #fff8e6; font-size: 10px; }

@media (max-width: 1199px) {
    .patient-form-layout { grid-template-columns: 1fr; }
    .patient-form-aside { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .form-sticky-actions { grid-column: 1 / -1; }
}

@media (max-width: 767.98px) {
    .form-section-card { padding: 17px; }
    .patient-form-aside { grid-template-columns: 1fr; }
    .form-sticky-actions { grid-column: auto; }
    .duplicate-list small { white-space: normal; }
}

/* Médicos */
.doctor-grid { display: grid; grid-template-columns: repeat(4, minmax(240px, 1fr)); gap: 16px; }
.doctor-card { min-width: 0; overflow: hidden; border: 1px solid var(--saes-line); border-radius: 15px; background: #fff; box-shadow: 0 3px 16px rgba(36,53,80,.035); }
.doctor-card-main { min-height: 190px; display: flex; gap: 14px; padding: 19px; color: inherit; text-decoration: none; }
.doctor-card-main:hover { background: #fbfdff; }
.doctor-avatar-wrap { position: relative; flex: 0 0 auto; }
.doctor-avatar { width: 58px; height: 58px; border-radius: 16px; font-size: 19px; }
.availability-dot { position: absolute; right: -2px; bottom: 1px; width: 12px; height: 12px; border: 2px solid #fff; border-radius: 50%; }
.availability-dot.online { background: var(--saes-green); }
.availability-dot.offline { background: #aab2bf; }
.doctor-card-copy { min-width: 0; }
.doctor-specialty { display: block; overflow: hidden; color: var(--saes-primary); font-size: 9px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; text-overflow: ellipsis; }
.doctor-card-copy h3 { margin: 4px 0 11px; font-size: 15px; line-height: 1.3; }
.doctor-card-copy p { display: flex; align-items: center; gap: 7px; margin: 5px 0; overflow: hidden; color: var(--saes-muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.doctor-card-copy p i { color: #8490a1; }
.doctor-card-footer { display: grid; grid-template-columns: 1fr 1fr 1.25fr; border-top: 1px solid var(--saes-line); background: #fbfcfe; }
.doctor-card-footer > div { min-width: 0; display: flex; flex-direction: column; padding: 11px 12px; border-right: 1px solid var(--saes-line); }
.doctor-card-footer > div:last-child { border-right: 0; }
.doctor-card-footer strong { font-size: 16px; }
.doctor-card-footer span { overflow: hidden; color: var(--saes-muted); font-size: 8px; white-space: nowrap; text-overflow: ellipsis; }
.doctor-user-status { justify-content: center; }
.doctor-user-status i { margin-bottom: 2px; }
.doctor-card-actions { display: flex; justify-content: flex-end; gap: 7px; padding: 10px 12px; border-top: 1px solid var(--saes-line); }
.doctor-profile-grid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 18px; align-items: start; }
.doctor-profile-card { padding: 20px; }
.doctor-profile-hero { display: flex; flex-direction: column; align-items: center; padding: 12px 0 20px; text-align: center; }
.doctor-profile-hero h3 { margin: 12px 0 2px; font-size: 18px; }
.doctor-profile-hero span { color: var(--saes-muted); font-size: 11px; }
.appointment-history-item { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 12px 0; border-bottom: 1px solid #eef1f5; }
.appointment-date-box { width: 46px; height: 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 10px; color: var(--saes-primary); background: var(--saes-primary-soft); }
.appointment-date-box strong { font-size: 18px; line-height: 1; }
.appointment-date-box span { margin-top: 3px; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.appointment-history-item > div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.appointment-history-item > div:nth-child(2) strong { font-size: 12px; }
.appointment-history-item > div:nth-child(2) span { overflow: hidden; color: var(--saes-muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }

/* Agenda */
.agenda-stats { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 12px; margin-bottom: 15px; }
.agenda-stats article { position: relative; min-height: 92px; overflow: hidden; padding: 16px; border: 1px solid var(--saes-line); border-radius: 14px; background: #fff; }
.agenda-stats article span { color: var(--saes-muted); font-size: 10px; }
.agenda-stats article strong { display: block; margin-top: 3px; font-size: 27px; }
.agenda-stats article > i { position: absolute; right: 13px; bottom: 8px; color: #e4eef9; font-size: 37px; }
.agenda-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 15px; padding: 12px; border: 1px solid var(--saes-line); border-radius: 14px; background: #fff; }
.week-navigation, .agenda-filters { display: flex; align-items: center; gap: 8px; }
.week-navigation input { width: 145px; }
.agenda-filters select { min-width: 175px; }
.week-agenda { display: grid; grid-template-columns: repeat(7, minmax(210px,1fr)); gap: 10px; overflow-x: auto; padding-bottom: 8px; scrollbar-width: thin; }
.agenda-day { min-height: 500px; overflow: hidden; border: 1px solid var(--saes-line); border-radius: 14px; background: #f8fafc; }
.agenda-day.today { border-color: #9cc9fa; box-shadow: inset 0 3px var(--saes-primary); }
.agenda-day > header { min-height: 86px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-bottom: 1px solid var(--saes-line); background: #fff; }
.agenda-day > header span { color: var(--saes-muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.agenda-day > header strong { margin: 2px 0; font-size: 22px; }
.agenda-day > header small { color: #98a2b0; font-size: 8px; }
.agenda-day-body { display: grid; gap: 9px; padding: 9px; }
.agenda-day-empty { min-height: 150px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: #abb3c0; font-size: 10px; }
.agenda-day-empty i { margin-bottom: 7px; font-size: 24px; }
.agenda-appointment { padding: 11px; border: 1px solid #e2e8f0; border-left: 3px solid var(--saes-primary); border-radius: 11px; background: #fff; box-shadow: 0 2px 8px rgba(36,53,80,.035); }
.agenda-appointment.status-cancelada, .agenda-appointment.status-no_asistio { border-left-color: var(--saes-red); opacity: .78; }
.agenda-appointment.status-atendida { border-left-color: #8792a2; }
.agenda-appointment.status-en_atencion { border-left-color: var(--saes-green); box-shadow: 0 4px 14px rgba(46,168,107,.10); }
.appointment-top { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.appointment-top time { font-size: 15px; font-weight: 800; }
.appointment-patient { display: flex; align-items: center; gap: 8px; margin-top: 10px; text-decoration: none; }
.appointment-patient > div:last-child { min-width: 0; display: flex; flex-direction: column; }
.appointment-patient strong { overflow: hidden; font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.appointment-patient span { color: var(--saes-muted); font-size: 8px; }
.appointment-motive { margin: 10px 0 8px; color: #505c6e; font-size: 10px; line-height: 1.45; }
.appointment-doctor { display: flex; align-items: center; gap: 6px; color: var(--saes-muted); font-size: 9px; }
.appointment-doctor span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.appointment-actions { display: flex; align-items: center; justify-content: flex-end; gap: 5px; margin-top: 10px; padding-top: 8px; border-top: 1px solid #eef1f5; }
.appointment-actions form { margin: 0; }
.status-pill.primary { color: #1766b6; background: #e8f3ff; }
.status-pill.warning { color: #8a620d; background: #fff3d7; }
.status-pill.danger { color: #b63044; background: #ffe9ed; }
.appointment-form-layout { display: grid; grid-template-columns: minmax(0,1fr) 285px; gap: 18px; align-items: start; }
.patient-picker { position: relative; }
.patient-search-input { position: relative; }
.patient-search-input > i { position: absolute; top: 50%; left: 13px; z-index: 2; color: #8f99a8; transform: translateY(-50%); }
.patient-search-input .form-control { padding-left: 39px; padding-right: 40px; }
.patient-clear { position: absolute; top: 50%; right: 8px; width: 30px; height: 30px; border: 0; color: #8c96a6; background: transparent; transform: translateY(-50%); }
.patient-search-results { position: absolute; z-index: 20; top: calc(100% + 5px); left: 0; right: 0; max-height: 330px; overflow-y: auto; border: 1px solid var(--saes-line); border-radius: 11px; background: #fff; box-shadow: 0 15px 35px rgba(36,53,80,.15); }
.patient-search-result { width: 100%; display: grid; grid-template-columns: auto minmax(0,1fr); align-items: center; gap: 9px; padding: 10px 12px; border: 0; border-bottom: 1px solid #eef1f5; text-align: left; background: #fff; }
.patient-search-result:hover { background: #f6faff; }
.patient-search-result > span { min-width: 0; display: flex; flex-direction: column; }
.patient-search-result strong { font-size: 13px; font-weight: 700; color: var(--saes-ink); line-height: 1.25; }
.patient-search-result small { margin-top: 3px; overflow: hidden; color: var(--saes-muted); font-size: 10px; white-space: nowrap; text-overflow: ellipsis; }
.patient-search-message { padding: 14px; color: var(--saes-muted); font-size: 11px; text-align: center; }
.selected-patient-card { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 10px; margin-top: 10px; padding: 11px; border: 1px solid #cfe4fa; border-radius: 10px; background: #f5faff; }
.selected-patient-card > div:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.selected-patient-card strong { font-size: 12px; }
.selected-patient-card span { color: var(--saes-muted); font-size: 9px; }
.selected-patient-card a { color: var(--saes-primary); }
.patient-appointment-list { display: grid; }
.patient-appointment-list > a { display: grid; grid-template-columns: 61px minmax(0,1fr) auto; align-items: center; gap: 8px; padding: 9px 0; border-bottom: 1px solid #eef1f5; text-decoration: none; }
.patient-appointment-list time { color: var(--saes-primary); font-size: 9px; font-weight: 800; }
.patient-appointment-list div { min-width: 0; display: flex; flex-direction: column; }
.patient-appointment-list strong, .patient-appointment-list span { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.patient-appointment-list strong { font-size: 10px; }
.patient-appointment-list div span { color: var(--saes-muted); font-size: 8px; }

/* Consulta abierta */
.consultation-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; padding: 14px 0; }
.consultation-patient { display: flex; align-items: center; gap: 12px; }
.consultation-title-row { display: flex; align-items: center; gap: 9px; }
.consultation-title-row h2 { margin: 0; font-size: 23px; }
.consultation-patient p { margin: 3px 0 0; color: var(--saes-muted); font-size: 11px; }
.consultation-shell { display: grid; grid-template-columns: minmax(0,1fr) 315px; min-height: calc(100vh - 185px); border: 1px solid var(--saes-line); border-radius: 15px; background: #fff; box-shadow: 0 3px 16px rgba(36,53,80,.035); }
.consultation-main { min-width: 0; border-right: 1px solid var(--saes-line); }
.consultation-tabs { display: flex; overflow-x: auto; border-bottom: 1px solid var(--saes-line); }
.consultation-tabs button { min-height: 48px; padding: 0 17px; border: 0; border-bottom: 2px solid transparent; color: var(--saes-muted); background: #fff; font-size: 10px; font-weight: 700; white-space: nowrap; }
.consultation-tabs button.active { border-bottom-color: var(--saes-primary); color: var(--saes-primary); }
.consultation-workarea { padding: 16px; background: #f8fafc; }
.consultation-form-column { display: grid; gap: 14px; }
.consultation-form-column .clinical-card { padding: 18px; }
.consultation-prefill-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.consultation-prefill-grid > div { display: flex; flex-direction: column; padding: 12px; border: 1px solid var(--saes-line); border-radius: 10px; background: #fbfcfe; }
.consultation-prefill-grid .wide { grid-column: 1 / -1; }
.consultation-prefill-grid span { color: var(--saes-muted); font-size: 9px; }
.consultation-prefill-grid strong { margin-top: 3px; font-size: 12px; }
.consultation-summary { padding: 17px; }
.summary-heading { display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid var(--saes-line); font-size: 11px; font-weight: 800; text-transform: uppercase; }
.summary-alert { display: flex; gap: 9px; margin: 13px 0; padding: 11px; border-radius: 9px; color: #ab3043; background: #fff0f2; }
.summary-alert > div { display: flex; flex-direction: column; }
.summary-alert strong { font-size: 10px; }
.summary-alert span { font-size: 9px; }
.summary-accordion { display: grid; }
.summary-accordion a, .summary-accordion button { min-height: 45px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0; border: 0; border-bottom: 1px solid var(--saes-line); color: #4d596b; text-decoration: none; background: #fff; font-size: 10px; }
.summary-accordion a span, .summary-accordion button span { display: flex; align-items: center; gap: 8px; }
.summary-accordion i:first-child { color: var(--saes-primary); }
.consultation-doctor-card { display: flex; flex-direction: column; margin-top: 15px; padding: 13px; border-radius: 10px; background: var(--saes-primary-soft); }
.consultation-doctor-card span { color: var(--saes-primary); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.consultation-doctor-card strong { margin-top: 4px; font-size: 11px; }
.consultation-doctor-card small { color: var(--saes-muted); font-size: 9px; }
.clinical-notice.info { color: #1766b6; background: #eef7ff; }

@media (max-width: 1500px) { .doctor-grid { grid-template-columns: repeat(3,minmax(240px,1fr)); } }
@media (max-width: 1199px) {
    .doctor-grid { grid-template-columns: repeat(2,minmax(240px,1fr)); }
    .agenda-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .agenda-toolbar { align-items: stretch; flex-direction: column; }
    .appointment-form-layout { grid-template-columns: 1fr; }
    .consultation-shell { grid-template-columns: 1fr; }
    .consultation-main { border-right: 0; }
    .consultation-summary { border-top: 1px solid var(--saes-line); }
}
@media (max-width: 767.98px) {
    .doctor-grid { grid-template-columns: 1fr; }
    .doctor-profile-grid { grid-template-columns: 1fr; }
    .agenda-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .agenda-filters, .week-navigation { flex-wrap: wrap; }
    .agenda-filters select { min-width: 0; flex: 1; }
    .consultation-header { align-items: flex-start; flex-direction: column; }
    .consultation-prefill-grid { grid-template-columns: 1fr; }
    .consultation-prefill-grid .wide { grid-column: auto; }
}
@media (max-width: 480px) { .agenda-stats { grid-template-columns: 1fr; } }

/* ========================================================================== */
/* BLOQUE 4 · CAPTURA CLÍNICA DE CONSULTAS                                    */
/* ========================================================================== */
.clinical-prefill-banner,
.clinical-error-summary {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    margin-bottom: 14px;
    padding: 13px 15px;
    border-radius: 13px;
}
.clinical-prefill-banner { border: 1px solid #cfe3fb; color: #315f8d; background: #eef7ff; }
.clinical-prefill-banner > i,
.clinical-error-summary > i { font-size: 23px; }
.clinical-prefill-banner strong,
.clinical-error-summary strong { font-size: 12px; }
.clinical-prefill-banner p,
.clinical-error-summary p { margin: 2px 0 0; font-size: 10px; }
.clinical-prefill-banner a { color: var(--saes-primary); font-size: 10px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.clinical-error-summary { grid-template-columns: auto minmax(0, 1fr); border: 1px solid #ffc8d0; color: #a93245; background: #fff0f2; }
.clinical-lock-label { display: inline-flex; align-items: center; padding: 9px 12px; border-radius: 10px; color: #687386; background: #edf1f5; font-size: 10px; font-weight: 750; }

.clinical-capture-shell { align-items: stretch; }
.clinical-workarea { min-height: calc(100vh - 250px); }
.clinical-tabs button { display: inline-flex; align-items: center; gap: 7px; }
.clinical-tabs button i { font-size: 13px; }
.clinical-tab-panel[hidden] { display: none !important; }
.clinical-tab-panel { display: block; }
.clinical-form-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 14px; padding: 15px 17px; border: 1px solid var(--saes-line); border-radius: 13px; background: #fff; }
.clinical-form-toolbar h3 { margin: 2px 0; font-size: 16px; }
.clinical-form-toolbar p { margin: 0; color: var(--saes-muted); font-size: 10px; }
.clinical-form-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.clinical-card small { color: var(--saes-muted); font-size: 9px; }

.clinical-grid { display: grid; gap: 13px; }
.clinical-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.clinical-grid .wide { grid-column: 1 / -1; }
.form-field { min-width: 0; display: flex; flex-direction: column; }
.form-field label,
.vital-field label { margin-bottom: 6px; color: #596477; font-size: 10px; font-weight: 750; }
.form-field label span,
.vital-field label::first-letter { color: inherit; }
.form-field label span { color: #b63c4f; font-size: 8px; font-weight: 700; }
.form-field .form-control,
.vital-field .form-control { border-color: #dfe5ec; border-radius: 9px; color: #27354a; background: #fff; font-size: 11px; }
.form-field .form-control:focus,
.vital-field .form-control:focus { border-color: #8ec2f5; box-shadow: 0 0 0 .18rem rgba(20, 120, 229, .11); }
.form-field textarea { min-height: 118px; resize: vertical; }
.form-field textarea.clinical-textarea-lg { min-height: 165px; }
.form-field .form-control:disabled,
.vital-field .form-control:disabled { color: #4e5a6d; background: #f3f5f8; opacity: 1; }
.clinical-readonly-field { display: flex; flex-direction: column; justify-content: center; padding: 11px 13px; border: 1px solid var(--saes-line); border-radius: 10px; background: #f8fafc; }
.clinical-readonly-field span { color: var(--saes-muted); font-size: 9px; }
.clinical-readonly-field strong { margin-top: 3px; font-size: 11px; }

.vitals-grid { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 12px; }
.vital-field { min-width: 0; }
.vital-input-wrap { position: relative; }
.vital-input-wrap input { min-height: 43px; padding-right: 53px; font-weight: 760; }
.vital-input-wrap > span { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); color: #8f99a8; font-size: 9px; font-weight: 700; pointer-events: none; }
.vital-input-wrap input[readonly] { color: #1766b6; background: #edf7ff; }

.clinical-summary { display: flex; flex-direction: column; gap: 13px; }
.summary-ok { display: flex; align-items: center; gap: 8px; padding: 10px 11px; border-radius: 9px; color: #247b50; background: #eaf8f0; font-size: 9px; font-weight: 700; }
.clinical-summary-block { padding-top: 2px; }
.summary-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.summary-section-title { display: block; margin-bottom: 8px; color: #8892a2; font-size: 8px; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; }
.summary-section-heading small { color: #9ba4b1; font-size: 8px; }
.summary-data-list { display: grid; gap: 0; margin: 0; }
.summary-data-list > div { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 8px; padding: 7px 0; border-bottom: 1px solid #eef1f5; }
.summary-data-list dt { color: var(--saes-muted); font-size: 8px; font-weight: 650; }
.summary-data-list dd { min-width: 0; margin: 0; overflow-wrap: anywhere; color: #334158; font-size: 9px; font-weight: 750; text-align: right; }
.mini-vitals-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.mini-vitals-grid > div { display: flex; flex-direction: column; padding: 9px; border: 1px solid var(--saes-line); border-radius: 9px; background: #f9fbfd; text-align: center; }
.mini-vitals-grid strong { font-size: 12px; }
.mini-vitals-grid span { color: var(--saes-muted); font-size: 8px; }
.summary-empty-copy { margin: 0; color: var(--saes-muted); font-size: 9px; }
.summary-accordion small { margin-left: auto; color: var(--saes-muted); font-size: 8px; }
.past-consultations-block { display: grid; gap: 6px; }
.past-consultation-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; padding: 9px 0; border-bottom: 1px solid #eef1f5; text-decoration: none; }
.past-consultation-item:last-child { border-bottom: 0; }
.past-consultation-item > div { min-width: 0; display: flex; flex-direction: column; }
.past-consultation-item strong { color: #405066; font-size: 9px; }
.past-consultation-item span,
.past-consultation-item small { color: var(--saes-muted); font-size: 8px; }
.past-consultation-item > i { color: #a1abba; }
.past-consultation-item small { grid-column: 1 / -1; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }

@media (max-width: 1280px) {
    .vitals-grid { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
}

@media (max-width: 900px) {
    .clinical-form-toolbar { align-items: flex-start; flex-direction: column; }
    .clinical-grid.two-columns { grid-template-columns: 1fr; }
    .clinical-grid .wide { grid-column: auto; }
    .vitals-grid { grid-template-columns: repeat(2, minmax(110px, 1fr)); }
}

@media (max-width: 575px) {
    .clinical-prefill-banner { grid-template-columns: auto minmax(0, 1fr); }
    .clinical-prefill-banner a { grid-column: 2; }
    .clinical-form-actions { width: 100%; }
    .clinical-form-actions .btn { flex: 1; }
    .vitals-grid { grid-template-columns: 1fr; }
    .summary-data-list > div { grid-template-columns: 1fr; }
    .summary-data-list dd { text-align: left; }
}

/* ========================================================================== */
/* BLOQUE 5 · HISTORIA CLÍNICA ÚNICA                                          */
/* ========================================================================== */
.clinical-notice.success { border: 1px solid #bfe7d1; color: #266f4b; background: #eefaf3; }
.history-header { margin-bottom: 15px; }
.history-shell {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    overflow: hidden;
    border: 1px solid var(--saes-line);
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(37, 52, 77, .06);
}
.history-main { min-width: 0; border-right: 1px solid var(--saes-line); }
.history-summary { min-width: 0; }
.history-tabs {
    display: flex;
    overflow-x: auto;
    padding: 0 15px;
    scrollbar-width: thin;
}
.history-tabs button { flex: 0 0 auto; white-space: nowrap; }
.history-workarea { padding: 15px; background: #f5f7fa; }
.history-workarea .clinical-card { margin-bottom: 14px; }
.history-workarea .clinical-card:last-child { margin-bottom: 0; }
.history-patient-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 15px;
}
.history-patient-facts > div {
    min-width: 0;
    display: flex;
    flex-direction: column;
    padding: 11px 12px;
    border: 1px solid var(--saes-line);
    border-radius: 10px;
    background: #f8fafc;
}
.history-patient-facts span { color: var(--saes-muted); font-size: 8px; font-weight: 750; text-transform: uppercase; }
.history-patient-facts strong { margin-top: 4px; overflow-wrap: anywhere; color: #35445a; font-size: 10px; }
.history-check-grid { display: grid; grid-template-columns: repeat(4, minmax(135px, 1fr)); gap: 10px; }
.history-check-item { cursor: pointer; }
.history-check-item input { position: absolute; opacity: 0; pointer-events: none; }
.history-check-item span {
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid #dce3eb;
    border-radius: 10px;
    color: #59677b;
    background: #fff;
    font-size: 10px;
    font-weight: 730;
    transition: .16s ease;
}
.history-check-item span i {
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    border: 1px solid #cbd5e0;
    border-radius: 6px;
    color: transparent;
    background: #f6f8fa;
}
.history-check-item input:checked + span { border-color: #86bdf2; color: #1766b6; background: #edf7ff; }
.history-check-item input:checked + span i { border-color: var(--saes-primary); color: #fff; background: var(--saes-primary); }
.history-check-item input:disabled + span { cursor: default; opacity: .72; }
.history-subheading { margin-top: 18px; padding-top: 17px; border-top: 1px solid var(--saes-line); }
.history-four-columns { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.history-bottom-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 15px;
    padding: 15px 17px;
    border: 1px solid var(--saes-line);
    border-radius: 13px;
    background: #fff;
}
.history-bottom-actions > div:first-child { display: flex; flex-direction: column; }
.history-bottom-actions strong { color: #35445a; font-size: 11px; }
.history-bottom-actions span { margin-top: 2px; color: var(--saes-muted); font-size: 9px; }
.history-status-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    border-radius: 10px;
}
.history-status-card i { font-size: 20px; }
.history-status-card > div { min-width: 0; display: flex; flex-direction: column; }
.history-status-card strong { font-size: 10px; }
.history-status-card span { margin-top: 2px; color: inherit; font-size: 8px; opacity: .8; }
.history-status-card.success { color: #247b50; background: #eaf8f0; }
.history-status-card.warning { color: #8a6418; background: #fff6da; }
.history-status-card.danger { color: #a93245; background: #fff0f2; }

@media (max-width: 1280px) {
    .history-shell { grid-template-columns: minmax(0, 1fr) 270px; }
    .history-check-grid { grid-template-columns: repeat(3, minmax(135px, 1fr)); }
    .history-four-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
    .history-shell { grid-template-columns: 1fr; }
    .history-main { border-right: 0; }
    .history-summary { border-top: 1px solid var(--saes-line); }
}
@media (max-width: 767.98px) {
    .history-patient-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .history-check-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
    .history-four-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .history-bottom-actions { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 480px) {
    .history-patient-facts,
    .history-check-grid,
    .history-four-columns { grid-template-columns: 1fr; }
    .history-workarea { padding: 10px; }
    .history-bottom-actions .clinical-form-actions { width: 100%; }
}
.clinical-accordion a.clinical-accordion-item { text-decoration: none; }

/* ========================================================================== 
   Urgencias
   ========================================================================== */
.form-section-icon.emergency { color: #c73a4e; background: #fff0f2; }
.emergency-side-card { border-color: #ffd8df; background: linear-gradient(180deg, #fff7f8, #fff); }
.emergency-side-card .form-side-icon { color: #c73a4e; background: #ffe7eb; }
.emergency-header { border-bottom: 2px solid #f4d6db; }
.emergency-avatar { color: #b82d44; background: #fff0f2; }
.emergency-complete-label { color: #26724d; background: #eaf8f0; }
.emergency-capture-shell { border-top: 3px solid #d64559; }
.emergency-workarea { background: #fbf8f9; }
.emergency-summary { background: #fffdfd; }
.emergency-folio-card { display: flex; flex-direction: column; padding: 14px; border: 1px solid #f0d7dc; border-radius: 12px; background: #fff7f8; }
.emergency-folio-card span { color: #a55a67; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.emergency-folio-card strong { margin-top: 3px; color: #9e2f43; font-size: 15px; }
.emergency-folio-card small { color: var(--saes-muted); font-size: 9px; }
.triage-pill { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border: 1px solid var(--saes-line); border-radius: 999px; background: #fff; font-size: 9px; font-weight: 800; white-space: nowrap; }
.triage-pill i, .triage-color { width: 10px; height: 10px; display: inline-block; flex: 0 0 10px; border-radius: 50%; background: #aeb9c6; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); }
.triage-pill.rojo i, .triage-option.rojo .triage-color, .triage-status-card.rojo .triage-color { background: #d9364f; }
.triage-pill.naranja i, .triage-option.naranja .triage-color, .triage-status-card.naranja .triage-color { background: #ef7f2d; }
.triage-pill.amarillo i, .triage-option.amarillo .triage-color, .triage-status-card.amarillo .triage-color { background: #e8bd24; }
.triage-pill.verde i, .triage-option.verde .triage-color, .triage-status-card.verde .triage-color { background: #2ca86f; }
.triage-pill.azul i, .triage-option.azul .triage-color, .triage-status-card.azul .triage-color { background: #2f83d5; }
.triage-pill.sin_clasificar i, .triage-status-card.sin_clasificar .triage-color { background: #aeb9c6; }
.triage-selector { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.triage-option { position: relative; min-height: 82px; display: grid; grid-template-columns: auto minmax(0,1fr); grid-template-rows: auto auto; align-items: center; gap: 2px 8px; padding: 12px; border: 1px solid var(--saes-line); border-radius: 12px; background: #fff; cursor: pointer; transition: .18s ease; }
.triage-option:hover { transform: translateY(-1px); box-shadow: 0 7px 20px rgba(35,48,68,.08); }
.triage-option input { position: absolute; opacity: 0; pointer-events: none; }
.triage-option .triage-color { grid-row: 1 / 3; width: 14px; height: 14px; flex-basis: 14px; }
.triage-option strong { color: #3b4657; font-size: 11px; }
.triage-option small { color: var(--saes-muted); font-size: 8px; }
.triage-option:has(input:checked) { border-width: 2px; box-shadow: 0 0 0 3px rgba(62,122,180,.08); }
.triage-option.rojo:has(input:checked) { border-color: #d9364f; background: #fff3f5; }
.triage-option.naranja:has(input:checked) { border-color: #ef7f2d; background: #fff7ef; }
.triage-option.amarillo:has(input:checked) { border-color: #d1a900; background: #fffbea; }
.triage-option.verde:has(input:checked) { border-color: #2ca86f; background: #effaf5; }
.triage-option.azul:has(input:checked) { border-color: #2f83d5; background: #eff7ff; }
.emergency-vitals-grid { grid-template-columns: repeat(4, minmax(0,1fr)); }
.emergency-summary-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 11px; }
.emergency-summary-grid article { display: flex; flex-direction: column; min-height: 92px; padding: 13px; border: 1px solid var(--saes-line); border-radius: 11px; background: #fbfcfe; }
.emergency-summary-grid span { color: var(--saes-muted); font-size: 9px; }
.emergency-summary-grid strong { margin-top: 5px; color: #354257; font-size: 12px; }
.emergency-summary-grid small { margin-top: 3px; color: var(--saes-muted); font-size: 8px; }
.triage-status-card { display: flex; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--saes-line); border-radius: 11px; background: #fbfcfe; }
.triage-status-card .triage-color { width: 16px; height: 16px; flex-basis: 16px; }
.triage-status-card div { display: flex; flex-direction: column; }
.triage-status-card strong { color: #3d495b; font-size: 10px; }
.triage-status-card small { color: var(--saes-muted); font-size: 8px; }

@media (max-width: 1100px) {
    .triage-selector { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .emergency-vitals-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
    .emergency-summary-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 720px) {
    .triage-selector { grid-template-columns: 1fr; }
    .emergency-vitals-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .emergency-summary-grid { grid-template-columns: 1fr; }
}

/* ========================================================================== 
   Urgencias - documentos clínicos y cierre
   ========================================================================== */
.emergency-progress-strip {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}
.emergency-progress-strip > div {
    min-width: 0;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    gap: 1px 8px;
    padding: 10px 12px;
    border: 1px solid var(--saes-line);
    border-radius: 12px;
    background: #fff;
}
.emergency-progress-strip i { grid-row: 1 / 3; color: #aeb9c6; }
.emergency-progress-strip span { overflow: hidden; color: #435064; font-size: 10px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.emergency-progress-strip small { color: var(--saes-muted); font-size: 8px; }
.emergency-progress-strip .complete { border-color: #ccebdc; background: #f3fbf7; }
.emergency-progress-strip .complete i { color: #279665; }
.emergency-document-tabs { overflow-x: auto; scrollbar-width: thin; }
.emergency-document-tabs button { min-width: max-content; }
.clinical-error-summary.compact { margin-bottom: 14px; padding: 10px 12px; }
.clinical-prefill-banner.inline { margin: 0 0 14px; }
.consent-check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.consent-check-grid label { display: flex; align-items: flex-start; gap: 10px; padding: 13px; border: 1px solid var(--saes-line); border-radius: 11px; background: #fbfcfe; cursor: pointer; }
.consent-check-grid label:has(input:checked) { border-color: #6ea8df; background: #f1f7fd; box-shadow: 0 0 0 3px rgba(70, 134, 196, .08); }
.consent-check-grid input { margin-top: 3px; }
.consent-check-grid span { display: flex; min-width: 0; flex-direction: column; }
.consent-check-grid strong { color: #354257; font-size: 11px; }
.consent-check-grid small { overflow: hidden; color: var(--saes-muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.consent-check-grid.has-error { padding: 4px; border: 1px solid #dc3545; border-radius: 13px; }
.clinical-card-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--saes-line); }
.emergency-indications-list { display: flex; flex-direction: column; gap: 10px; }
.emergency-indications-list article { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 12px; padding: 13px; border: 1px solid var(--saes-line); border-radius: 12px; background: #fbfcfe; }
.indication-number { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: #4c84bc; font-size: 11px; font-weight: 800; }
.indication-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px 12px; margin-bottom: 7px; }
.indication-meta strong { color: #3c495d; font-size: 10px; }
.indication-meta span { color: var(--saes-muted); font-size: 9px; }
.emergency-indications-list p { margin: 0; color: #526073; font-size: 10px; line-height: 1.55; }
.closure-checklist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-bottom: 14px; }
.closure-checklist > div { display: flex; align-items: center; gap: 8px; padding: 11px; border: 1px solid var(--saes-line); border-radius: 11px; background: #fbfcfe; color: #566274; font-size: 9px; font-weight: 700; }
.closure-checklist .complete { border-color: #ccebdc; color: #247c55; background: #f3fbf7; }
.closure-checklist .pending { border-color: #f0d8b6; color: #a06d1c; background: #fffaf1; }
.clinical-readonly-copy { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--saes-line); }
.clinical-readonly-copy h4 { margin: 14px 0 5px; color: #3b4759; font-size: 11px; }
.clinical-readonly-copy p { margin: 0; color: #586477; font-size: 10px; line-height: 1.6; }
.status-pill.success { color: #247c55; background: #eaf8f0; }
.clinical-notice.success { border-color: #ccebdc; background: #f1fbf6; }
.clinical-notice.success > i { color: #279665; }

@media (max-width: 1050px) {
    .emergency-progress-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .emergency-progress-strip,
    .closure-checklist,
    .consent-check-grid { grid-template-columns: 1fr; }
    .clinical-card-actions { align-items: stretch; flex-direction: column; }
    .clinical-card-actions .btn { width: 100%; }
}

/* ========================================================================== 
   Internamientos y habitaciones
   ========================================================================== */
.room-status { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 10px; font-size: 10px; font-weight: 800; }
.room-status.occupied { color: #9f3540; background: #fff0f1; }
.room-status.large { padding: 10px 13px; font-size: 11px; }
.internment-layout { display: grid; grid-template-columns: minmax(0, 1fr) 285px; gap: 16px; align-items: start; }
.internment-main { min-width: 0; }
.internment-tabs { display: flex; overflow-x: auto; margin-bottom: 14px; border: 1px solid var(--saes-line); border-radius: 13px; background: #fff; }
.internment-tabs .clinical-tab { flex: 1 0 auto; justify-content: center; border-bottom: 0; }
.internment-summary-side { min-width: 0; }
.sticky-summary { position: sticky; top: 82px; }
.internment-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.current-room-card { display: flex; align-items: center; gap: 14px; min-height: 125px; padding: 18px; border: 1px solid #efd1d5; border-radius: 14px; background: #fff6f7; }
.current-room-card .room-number { width: 54px; height: 54px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 15px; color: #c44552; background: #fff; box-shadow: 0 8px 24px rgba(151, 42, 54, .08); font-size: 24px; }
.current-room-card div { display: flex; min-width: 0; flex-direction: column; }
.current-room-card strong { color: #243148; font-size: 18px; }
.current-room-card span { color: #68758a; font-size: 10px; }
.current-room-card small { margin-top: 7px; color: #9a5960; font-size: 9px; }
.document-readiness { display: flex; flex-direction: column; gap: 8px; margin-bottom: 10px; }
.document-status { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 10px 11px; border: 1px solid var(--saes-line); border-radius: 10px; color: #69768a; background: #fbfcfe; font-size: 9px; }
.document-status i { color: #c2cad4; }
.document-status strong { color: #9a6b22; font-size: 8px; text-transform: uppercase; }
.document-status.ready { border-color: #ccebdc; background: #f3fbf7; }
.document-status.ready i, .document-status.ready strong { color: #27885e; }
.consent-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.consent-grid .clinical-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.room-timeline { position: relative; display: flex; flex-direction: column; gap: 0; padding-left: 8px; }
.room-timeline-item { position: relative; display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 12px; padding: 0 0 20px; }
.room-timeline-item:not(:last-child)::before { content: ''; position: absolute; left: 7px; top: 15px; bottom: 0; width: 1px; background: #dfe5ec; }
.timeline-dot { position: relative; z-index: 1; width: 15px; height: 15px; margin-top: 3px; border: 3px solid #fff; border-radius: 50%; background: #aab6c5; box-shadow: 0 0 0 1px #d8e0e8; }
.room-timeline-item.active .timeline-dot { background: #2e9b68; box-shadow: 0 0 0 1px #8ed0b1; }
.room-timeline-item p { margin: 4px 0; color: #5d697b; font-size: 10px; }
.room-timeline-item small { color: var(--saes-muted); font-size: 8px; }
.readonly-text { min-height: 90px; padding: 13px; border: 1px solid var(--saes-line); border-radius: 11px; color: #4e5b6e; background: #fbfcfe; font-size: 10px; line-height: 1.55; }
.rooms-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.room-card { display: flex; min-height: 260px; flex-direction: column; padding: 15px; border: 1px solid var(--saes-line); border-radius: 15px; background: #fff; box-shadow: var(--saes-shadow); transition: transform .18s ease, box-shadow .18s ease; }
.room-card:hover { transform: translateY(-2px); box-shadow: 0 15px 36px rgba(31, 52, 78, .10); }
.room-card.available { border-top: 4px solid #4fb780; }
.room-card.occupied { border-top: 4px solid #d35d69; }
.room-card.disabled { border-top: 4px solid #9ca7b5; opacity: .78; background: #f8fafc; }
.room-card-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; gap: 10px; }
.room-door { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: #3979b7; background: #edf5fc; font-size: 18px; }
.room-card.occupied .room-door { color: #c54855; background: #fff0f1; }
.room-card.disabled .room-door { color: #7d8997; background: #edf0f4; }
.room-card-top span { color: var(--saes-muted); font-size: 8px; text-transform: uppercase; }
.room-card-top h3 { margin: 2px 0 0; color: #26354b; font-size: 15px; }
.room-state-label { padding: 5px 7px; border-radius: 8px; font-weight: 800; }
.room-card.available .room-state-label { color: #27885e; background: #eaf8f0; }
.room-card.occupied .room-state-label { color: #b53e4a; background: #fff0f1; }
.room-card.disabled .room-state-label { color: #697585; background: #e9edf2; }
.room-patient { display: flex; align-items: center; gap: 9px; margin: 18px 0 12px; padding: 11px; border-radius: 11px; background: #fafbfd; }
.room-patient > div:last-child { display: flex; min-width: 0; flex-direction: column; }
.room-patient strong { overflow: hidden; color: #334056; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.room-patient span { color: var(--saes-muted); font-size: 8px; }
.room-data { display: flex; flex-direction: column; gap: 7px; margin: 0 0 14px; }
.room-data div { display: flex; justify-content: space-between; gap: 10px; border-bottom: 1px dashed #e5eaf0; padding-bottom: 6px; }
.room-data dt { color: var(--saes-muted); font-size: 8px; font-weight: 600; }
.room-data dd { margin: 0; color: #455267; font-size: 8px; font-weight: 700; text-align: right; }
.room-actions { margin-top: auto; }
.room-empty-copy { display: grid; place-items: center; flex: 1; padding: 20px 8px; text-align: center; }
.room-empty-copy i { color: #4eaf7b; font-size: 30px; }
.room-card.disabled .room-empty-copy i { color: #8995a2; }
.room-empty-copy p { max-width: 190px; margin: 9px 0 0; color: #758195; font-size: 9px; line-height: 1.5; }
.room-legend { display: flex; align-items: center; gap: 14px; color: #667286; font-size: 9px; }
.room-legend span { display: inline-flex; align-items: center; gap: 6px; }
.room-legend i { width: 9px; height: 9px; border-radius: 50%; }
.room-legend i.available { background: #4fb780; }
.room-legend i.occupied { background: #d35d69; }
.room-legend i.disabled { background: #9ca7b5; }
.clinical-notice.danger { border-color: #f0c8cc; background: #fff2f3; }
.clinical-notice.danger > i { color: #c94c58; }

@media (max-width: 1250px) {
    .rooms-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1050px) {
    .internment-layout { grid-template-columns: 1fr; }
    .sticky-summary { position: static; }
    .rooms-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .internment-summary-grid, .consent-grid, .rooms-grid { grid-template-columns: 1fr; }
    .consent-grid .clinical-card:last-child:nth-child(odd) { grid-column: auto; }
    .room-legend { display: none; }
}

/* ========================================================================== */
/* Bloque 10: Formatos e impresión PDF                                        */
/* ========================================================================== */
.formats-heading { align-items: center; }
.formats-heading-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.formats-stats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.format-stat-card { background: #fff; border: 1px solid var(--saes-border, #e3eaf0); border-radius: 16px; padding: 17px 18px; display: flex; gap: 14px; align-items: center; box-shadow: 0 8px 24px rgba(36, 63, 88, .05); }
.format-stat-card > i { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; background: #edf7fb; color: #0e78aa; font-size: 1.25rem; }
.format-stat-card strong { display: block; font-size: 1.25rem; color: #172b3d; }
.format-stat-card span { display: block; color: #708091; font-size: .78rem; margin-top: 2px; }
.formats-tabs-nav { display: flex; gap: 6px; padding: 5px; border: 1px solid #e1e9ef; background: #f7fafc; border-radius: 14px; width: fit-content; margin-bottom: 16px; }
.formats-tab-button { border: 0; background: transparent; color: #66788a; border-radius: 10px; padding: 10px 17px; font-weight: 700; font-size: .84rem; display: flex; align-items: center; gap: 8px; }
.formats-tab-button.active { background: #fff; color: #0877b1; box-shadow: 0 3px 10px rgba(40, 70, 90, .09); }
.formats-tab-panel { display: none; }
.formats-tab-panel.active { display: block; }
.formats-filter-card { padding: 14px; margin-bottom: 15px; }
.formats-filter-form { display: flex; align-items: center; gap: 10px; }
.formats-filter-form .form-select { width: 210px; }
.formats-attention-list { display: grid; gap: 10px; }
.format-attention-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 15px; align-items: center; background: #fff; border: 1px solid #e2e9ef; border-radius: 15px; padding: 14px 16px; transition: .18s ease; }
.format-attention-row:hover { border-color: #b9d8e8; box-shadow: 0 8px 22px rgba(33, 75, 102, .07); transform: translateY(-1px); }
.format-type-icon { width: 44px; height: 44px; border-radius: 13px; display: grid; place-items: center; font-size: 1.2rem; }
.format-type-icon.consulta { background: #ebf5ff; color: #146eb2; }
.format-type-icon.urgencia { background: #fff0f1; color: #d12a3a; }
.format-type-icon.internamiento { background: #edf9f4; color: #198965; }
.format-attention-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.format-attention-title strong { color: #172b3d; font-size: .93rem; }
.attention-type-badge { padding: 3px 8px; border-radius: 999px; font-size: .63rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.attention-type-badge.consulta { color: #146eb2; background: #ebf5ff; }
.attention-type-badge.urgencia { color: #c42636; background: #fff0f1; }
.attention-type-badge.internamiento { color: #137d5b; background: #edf9f4; }
.format-attention-meta { display: flex; flex-wrap: wrap; gap: 7px 15px; color: #758596; font-size: .72rem; margin-top: 7px; }
.format-attention-meta span { display: flex; align-items: center; gap: 5px; }
.format-attention-docs { min-width: 90px; text-align: center; padding: 7px 13px; border-left: 1px solid #e7edf1; border-right: 1px solid #e7edf1; }
.format-attention-docs strong { display: block; color: #0877b1; font-size: 1.1rem; }
.format-attention-docs span { display: block; color: #7a8998; font-size: .65rem; }
.formats-patient-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.format-patient-card { background: #fff; border: 1px solid #e1e9ef; border-radius: 16px; padding: 16px; display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.format-patient-card-copy strong, .format-patient-card-copy span { display: block; }
.format-patient-card-copy strong { color: #172b3d; font-size: .9rem; }
.format-patient-card-copy span { color: #778795; font-size: .72rem; margin-top: 3px; }
.history-state { width: 100%; padding: 8px 10px; border-radius: 10px; font-size: .69rem; font-weight: 700; color: #a46c17; background: #fff8e9; }
.history-state.ready { color: #147759; background: #ecf9f4; }
.document-patient-banner { display: grid; grid-template-columns: auto minmax(220px, 1fr) minmax(130px, auto) minmax(210px, auto); gap: 14px; align-items: center; background: #fff; border: 1px solid #e1e9ef; border-radius: 16px; padding: 15px 17px; margin-bottom: 16px; }
.document-patient-banner > div:nth-child(2) strong, .document-patient-banner > div:nth-child(2) span { display: block; }
.document-patient-banner > div:nth-child(2) strong { color: #172b3d; }
.document-patient-banner > div:nth-child(2) span { color: #778795; font-size: .74rem; margin-top: 4px; }
.document-alert-data { padding: 9px 12px; border-radius: 11px; background: #edf7fb; min-height: 53px; }
.document-alert-data span, .document-alert-data strong { display: block; }
.document-alert-data span { color: #648092; font-size: .61rem; font-weight: 800; text-transform: uppercase; }
.document-alert-data strong { color: #116f9b; font-size: .76rem; margin-top: 4px; max-width: 240px; }
.document-alert-data.danger { background: #fff0f1; }
.document-alert-data.danger strong { color: #b92a38; }
.formats-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 17px; align-items: start; }
.formats-catalog-column { min-width: 0; }
.format-group-section { margin-bottom: 17px; }
.format-group-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 3px 8px; }
.format-group-heading span { color: #263c4f; font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.format-group-heading small { color: #8b99a6; }
.format-document-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.format-document-card { background: #fff; border: 1px solid #e2e9ef; border-radius: 15px; padding: 14px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; min-height: 116px; }
.format-document-card.pending { background: #fbfcfd; opacity: .78; }
.format-document-card-icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: #edf7fb; color: #0e78aa; font-size: 1.15rem; }
.format-document-card.pending .format-document-card-icon { background: #f0f2f4; color: #8896a3; }
.format-document-card-copy strong { display: block; color: #1b3042; font-size: .82rem; line-height: 1.25; }
.format-document-card-copy p { color: #788897; font-size: .69rem; line-height: 1.35; margin: 5px 0 8px; }
.document-source-state { color: #996f22; font-size: .65rem; font-weight: 700; display: flex; align-items: center; gap: 5px; }
.document-source-state.ready { color: #167b5c; }
.formats-history-column { min-width: 0; }
.sticky-document-history { position: sticky; top: 85px; padding: 15px; max-height: calc(100vh - 110px); overflow: auto; }
.generated-document-list { display: grid; gap: 8px; margin-top: 12px; }
.generated-document-item { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; border: 1px solid #e2e9ef; border-radius: 11px; padding: 10px; text-decoration: none; color: inherit; }
.generated-document-item > i:first-child { color: #c72e3d; font-size: 1.15rem; }
.generated-document-item > i:last-child { color: #8a99a7; }
.generated-document-item strong, .generated-document-item small { display: block; }
.generated-document-item strong { color: #263c4f; font-size: .72rem; line-height: 1.25; }
.generated-document-item small { color: #84929f; font-size: .61rem; margin-top: 3px; }
.small-empty-state { text-align: center; padding: 25px 10px; color: #8997a4; }
.small-empty-state i { font-size: 1.7rem; }
.small-empty-state p { font-size: .72rem; margin: 8px 0 0; }

@media (max-width: 1200px) {
    .formats-patient-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .formats-workspace { grid-template-columns: minmax(0, 1fr) 285px; }
    .format-document-grid { grid-template-columns: 1fr; }
}
@media (max-width: 991px) {
    .formats-workspace { grid-template-columns: 1fr; }
    .sticky-document-history { position: static; max-height: none; }
    .document-patient-banner { grid-template-columns: auto 1fr; }
    .document-alert-data { grid-column: span 1; }
    .formats-patient-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 767px) {
    .formats-stats-grid { grid-template-columns: 1fr; }
    .formats-filter-form { align-items: stretch; flex-direction: column; }
    .formats-filter-form .form-select { width: 100%; }
    .format-attention-row { grid-template-columns: auto 1fr; }
    .format-attention-docs { border: 0; text-align: left; padding: 0; }
    .format-attention-row > .btn { grid-column: span 2; }
    .formats-patient-grid { grid-template-columns: 1fr; }
    .document-patient-banner { grid-template-columns: 1fr; }
    .format-document-card { grid-template-columns: auto 1fr; }
    .format-document-card form, .format-document-card > .btn, .format-document-card > .small { grid-column: span 2; }
    .formats-heading-actions { width: 100%; }
}

/* ========================================================================== 
   Bloque 11 · Generador de recetas
   ========================================================================== */
.prescription-stats-grid { margin-bottom: 18px; }
.prescription-filter-card { margin-bottom: 16px; }
.prescription-doctor-filter { width: min(280px, 100%); }
.prescription-list { display: grid; gap: 10px; }
.prescription-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 16px;
    padding: 16px;
    border: 1px solid var(--saes-line);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 20px rgba(26, 51, 75, .04);
}
.prescription-row-icon {
    display: grid;
    width: 44px;
    height: 44px;
    place-items: center;
    border-radius: 12px;
    background: #e9f7fb;
    color: #087eb2;
    font-size: 20px;
}
.prescription-row-main { min-width: 0; }
.prescription-row-title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.prescription-row-title strong { color: #1b2b3b; font-size: 14px; }
.prescription-row-meta { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 6px; color: var(--saes-muted); font-size: 10px; }
.prescription-row-meta span { display: inline-flex; align-items: center; gap: 5px; }
.prescription-row-main p { margin: 7px 0 0; overflow: hidden; color: #556577; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.prescription-row-count { min-width: 72px; text-align: center; }
.prescription-row-count strong { display: block; color: #1f3346; font-size: 18px; }
.prescription-row-count span { display: block; color: var(--saes-muted); font-size: 8px; }

.prescription-context {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr);
    gap: 14px;
    margin-top: 15px;
    padding: 14px;
    border: 1px solid #dbe8ef;
    border-radius: 12px;
    background: #f8fbfd;
}
.prescription-allergy { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border-radius: 10px; }
.prescription-allergy i { margin-top: 1px; font-size: 16px; }
.prescription-allergy div { display: grid; gap: 3px; min-width: 0; }
.prescription-allergy strong { font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.prescription-allergy span { color: #435366; font-size: 11px; line-height: 1.45; }
.prescription-allergy.danger { border: 1px solid #f2c7cc; background: #fff0f2; color: #b22735; }
.prescription-allergy.safe { border: 1px solid #cce9da; background: #f2fbf6; color: #258a5f; }
.readonly-doctor-card { display: flex; align-items: center; gap: 11px; min-height: 39px; padding: 8px 12px; border: 1px solid var(--saes-line); border-radius: 9px; background: #f8fafc; }
.readonly-doctor-card i { color: var(--saes-primary); font-size: 19px; }
.readonly-doctor-card div { display: grid; gap: 2px; }
.readonly-doctor-card strong { color: #23384b; font-size: 11px; }
.readonly-doctor-card span { color: var(--saes-muted); font-size: 9px; }
.readonly-doctor-card.invalid { border-color: #efb3ba; background: #fff2f3; }
.prescription-medicines-section .form-section-heading { align-items: center; }
.prescription-medicine-list { display: grid; gap: 12px; }
.prescription-medicine-card {
    position: relative;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 14px;
    padding: 16px 48px 16px 14px;
    border: 1px solid #dce7ee;
    border-radius: 13px;
    background: #fbfdfe;
}
.medicine-number { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 10px; background: var(--saes-primary); color: #fff; font-size: 13px; font-weight: 800; }
.medicine-remove { position: absolute; top: 13px; right: 13px; display: grid; width: 30px; height: 30px; place-items: center; border: 0; border-radius: 8px; background: #fff0f2; color: #c73947; }
.medicine-remove:hover { background: #f9d8dc; }
.medicine-remove:disabled { cursor: not-allowed; opacity: .35; }
.prescription-preview-card .form-select { font-size: 10px; }
.prescription-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.prescription-actions .btn:first-child { grid-column: 1 / -1; }

.prescription-show-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.prescription-document-card { overflow: hidden; border: 1px solid #d9e6ed; border-radius: 16px; background: #fff; box-shadow: 0 12px 35px rgba(27, 55, 78, .07); }
.prescription-document-header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 20px 22px; background: linear-gradient(120deg, #0d83b7, #16a3b7); color: #fff; }
.prescription-document-mark { display: grid; width: 46px; height: 46px; place-items: center; border-radius: 12px; background: #fff; color: #0786b7; font-size: 23px; }
.prescription-document-header span { display: block; font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.prescription-document-header h3 { margin: 3px 0 0; font-size: 18px; }
.prescription-folio { text-align: right; }
.prescription-folio strong { display: block; margin-top: 3px; font-size: 12px; }
.prescription-folio small { display: block; margin-top: 3px; opacity: .85; font-size: 8px; }
.prescription-patient-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, .55fr); gap: 16px; margin: 20px; padding: 16px; border-radius: 13px; background: #f2f8fb; }
.prescription-patient-summary > div:first-child { display: grid; gap: 4px; }
.prescription-patient-summary > div:first-child span,
.prescription-diagnosis > span,
.prescription-general > span { color: #0a80b1; font-size: 8px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.prescription-patient-summary > div:first-child strong { color: #1d3447; font-size: 15px; }
.prescription-patient-summary > div:first-child small { color: #687889; font-size: 9px; }
.prescription-diagnosis, .prescription-general { margin: 0 20px 16px; padding: 14px 16px; border: 1px solid #dce8ee; border-radius: 12px; }
.prescription-diagnosis p, .prescription-general p { margin: 7px 0 0; color: #32485b; font-size: 11px; line-height: 1.55; }
.prescription-detail-list { display: grid; gap: 10px; margin: 0 20px 18px; }
.prescription-detail-item { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 13px; padding: 14px; border: 1px solid #dce8ee; border-radius: 12px; }
.prescription-detail-number { display: grid; width: 38px; height: 38px; place-items: center; border-radius: 10px; background: var(--saes-primary); color: #fff; font-weight: 800; }
.prescription-detail-item h4 { margin: 1px 0 4px; color: #21384b; font-size: 12px; }
.prescription-detail-item p { margin: 3px 0 0; color: #667789; font-size: 10px; line-height: 1.5; }
.prescription-detail-item .prescription-dose { color: #087eae; font-weight: 700; }
.prescription-doctor-signature { display: grid; justify-items: center; width: min(360px, calc(100% - 40px)); margin: 40px 20px 24px auto; text-align: center; }
.prescription-doctor-signature div { width: 80%; border-top: 1px solid #35495b; }
.prescription-doctor-signature strong { margin-top: 9px; color: #243b4d; font-size: 11px; }
.prescription-doctor-signature span { margin-top: 3px; color: #768594; font-size: 8px; }
.prescription-history-column { display: grid; gap: 14px; }
.prescription-print-history { display: grid; gap: 7px; }
.prescription-print-history a { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 10px; border: 1px solid #e1e9ee; border-radius: 9px; color: inherit; text-decoration: none; }
.prescription-print-history a:hover { border-color: #8bc7e1; background: #f5fbfd; }
.print-version { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 8px; background: #eaf6fb; color: #087faf; font-size: 9px; font-weight: 800; }
.prescription-print-history div { min-width: 0; }
.prescription-print-history strong, .prescription-print-history small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.prescription-print-history strong { color: #314659; font-size: 9px; }
.prescription-print-history small { margin-top: 3px; color: var(--saes-muted); font-size: 7.5px; }

@media (max-width: 1180px) {
    .prescription-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .prescription-row-count { display: none; }
    .prescription-show-layout { grid-template-columns: 1fr; }
    .prescription-history-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .prescription-history-column .clinical-notice { grid-column: 1 / -1; }
}
@media (max-width: 767px) {
    .prescription-row { grid-template-columns: auto minmax(0, 1fr); }
    .prescription-row > .btn { grid-column: 1 / -1; }
    .prescription-context { grid-template-columns: 1fr; }
    .prescription-medicine-card { grid-template-columns: 1fr; padding: 14px 42px 14px 14px; }
    .medicine-number { width: 30px; height: 30px; }
    .prescription-history-column { grid-template-columns: 1fr; }
    .prescription-patient-summary { grid-template-columns: 1fr; margin: 14px; }
    .prescription-diagnosis, .prescription-general, .prescription-detail-list { margin-right: 14px; margin-left: 14px; }
    .prescription-document-header { grid-template-columns: auto minmax(0, 1fr); }
    .prescription-folio { grid-column: 1 / -1; text-align: left; }
    .prescription-actions { grid-template-columns: 1fr; }
    .prescription-actions .btn:first-child { grid-column: auto; }
}

/* ========================================================================== */
/* BLOQUE 12: EXPEDIENTE GENERAL                                               */
/* ========================================================================== */
.records-heading { margin-bottom: 1.15rem; }
.record-stat-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; margin-bottom:1rem; }
.record-stat-card { background:#fff; border:1px solid var(--border-color,#e7edf4); border-radius:16px; padding:1rem 1.1rem; display:flex; align-items:center; gap:.9rem; box-shadow:0 8px 26px rgba(31,45,61,.045); }
.record-stat-card .record-stat-icon { width:44px; height:44px; border-radius:13px; display:grid; place-items:center; background:#eaf6ff; color:#087fc1; font-size:1.15rem; }
.record-stat-card .record-stat-icon.warning { background:#fff5dd; color:#bf7a00; }
.record-stat-card .record-stat-icon.success { background:#e8f8ef; color:#16864b; }
.record-stat-card .record-stat-icon.primary { background:#eeeaff; color:#6353cf; }
.record-stat-card strong { display:block; font-size:1.45rem; line-height:1.1; }
.record-stat-card span { font-size:.78rem; color:#718096; }
.record-filter-bar { display:grid; grid-template-columns:minmax(280px,1fr) 210px 180px auto auto; gap:.75rem; align-items:center; }
.record-filter-bar .form-select { min-height:44px; }
.record-list-panel { padding:0; overflow:hidden; }
.record-list-panel .panel-header { padding:1rem 1.15rem; border-bottom:1px solid #edf1f5; }
.record-list { display:flex; flex-direction:column; }
.record-list-item { color:inherit; text-decoration:none; display:grid; grid-template-columns:auto minmax(0,1fr) 125px 185px auto; align-items:center; gap:1rem; padding:1rem 1.15rem; border-bottom:1px solid #eef2f6; transition:.18s ease; }
.record-list-item:hover { background:#f8fbff; }
.record-list-item:last-child { border-bottom:0; }
.record-avatar { width:46px; height:46px; background:#eaf5ff; color:#147caf; font-weight:800; }
.record-list-main { min-width:0; }
.record-list-title { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; margin-bottom:.35rem; }
.record-list-title strong { color:#17213a; font-size:.94rem; }
.record-list-meta { display:flex; gap:.8rem; flex-wrap:wrap; color:#748198; font-size:.75rem; }
.record-list-meta span { display:inline-flex; align-items:center; gap:.3rem; }
.record-list-meta .record-allergy { color:#cf4251; }
.record-list-history { border-left:1px solid #edf1f5; padding-left:1rem; }
.record-list-history strong { display:block; color:#17213a; font-size:1.05rem; }
.record-list-history span,.record-list-history small { display:block; color:#8490a4; font-size:.7rem; }
.record-list-badges { display:flex; flex-direction:column; gap:.35rem; color:#647189; font-size:.72rem; }
.record-list-badges span { display:flex; align-items:center; gap:.35rem; }
.record-list-arrow { color:#9ba8ba; }
.record-profile-header { display:flex; align-items:center; gap:.9rem; margin-bottom:1rem; }
.back-square { width:38px; height:38px; border:1px solid #dfe7ef; border-radius:10px; display:grid; place-items:center; color:#506078; background:#fff; }
.record-profile-avatar { width:52px; height:52px; background:#eaf5ff; color:#117eb5; font-weight:800; }
.record-profile-title { min-width:0; }
.record-profile-title h2 { margin:.1rem 0; font-size:1.35rem; }
.record-profile-title p { margin:0; color:#78859a; font-size:.78rem; }
.record-profile-actions { margin-left:auto; display:flex; flex-wrap:wrap; gap:.55rem; }
.record-anchor-nav { background:#fff; border:1px solid #e5ebf2; border-radius:14px; padding:.35rem; display:flex; flex-wrap:wrap; gap:.2rem; margin-bottom:1rem; position:sticky; top:74px; z-index:5; box-shadow:0 6px 20px rgba(31,45,61,.04); }
.record-anchor-nav a { color:#5d6b80; text-decoration:none; border-radius:10px; padding:.58rem .78rem; font-size:.78rem; font-weight:700; display:flex; align-items:center; gap:.4rem; }
.record-anchor-nav a:hover { background:#edf7ff; color:#087fbd; }
.record-summary-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.75rem; margin-bottom:1rem; scroll-margin-top:140px; }
.record-summary-grid article { background:#fff; border:1px solid #e6edf4; border-radius:14px; padding:.85rem; display:flex; align-items:center; gap:.7rem; }
.record-summary-grid article > span { width:36px; height:36px; border-radius:10px; background:#eef7fd; color:#0b83bd; display:grid; place-items:center; }
.record-summary-grid strong,.record-summary-grid small { display:block; }
.record-summary-grid strong { font-size:1.15rem; }
.record-summary-grid small { color:#8290a4; font-size:.69rem; }
.record-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:1rem; align-items:start; }
.record-main-column,.record-side-column { display:flex; flex-direction:column; gap:1rem; min-width:0; }
.record-side-column { position:sticky; top:132px; }
.record-overview-card { scroll-margin-top:140px; }
.record-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.9rem; }
.record-detail-grid > div { border-bottom:1px solid #edf1f5; padding-bottom:.65rem; }
.record-detail-grid .wide { grid-column:span 3; }
.record-detail-grid span,.record-side-details span { display:block; color:#8793a6; font-size:.68rem; text-transform:uppercase; letter-spacing:.04em; margin-bottom:.2rem; }
.record-detail-grid strong,.record-side-details strong { color:#26334a; font-size:.79rem; font-weight:700; }
.record-section-header { align-items:center; }
.record-section-header form { min-width:160px; }
.record-timeline { position:relative; padding-left:.2rem; }
.record-timeline:before { content:""; position:absolute; left:22px; top:24px; bottom:24px; width:2px; background:#e4ebf2; }
.record-timeline-item { display:grid; grid-template-columns:46px minmax(0,1fr); gap:.8rem; position:relative; padding:.4rem 0 1.15rem; }
.record-timeline-marker { width:44px; height:44px; border-radius:14px; display:grid; place-items:center; background:#eef7fd; color:#1684ba; z-index:1; border:4px solid #fff; box-shadow:0 0 0 1px #e5edf4; }
.record-timeline-marker.emergency { background:#fff0f2; color:#d83b50; }
.record-timeline-marker.internment { background:#edf8f2; color:#238b58; }
.record-timeline-content { border:1px solid #e6edf4; border-radius:14px; padding:.9rem; background:#fff; }
.record-timeline-head { display:flex; justify-content:space-between; gap:.8rem; }
.record-timeline-head span { color:#8490a4; font-size:.68rem; }
.record-timeline-head h4 { font-size:.88rem; margin:.15rem 0 .45rem; }
.record-timeline-content > p { color:#5e6b7f; font-size:.78rem; margin-bottom:.7rem; white-space:pre-line; }
.record-timeline-meta { display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:.75rem; color:#7d899d; font-size:.7rem; }
.record-timeline-meta span { display:flex; align-items:center; gap:.3rem; }
.record-document-list { display:flex; flex-direction:column; }
.record-document-list > a { text-decoration:none; color:inherit; display:grid; grid-template-columns:auto minmax(0,1fr) 145px auto; gap:.75rem; align-items:center; padding:.75rem 0; border-bottom:1px solid #edf1f5; }
.record-document-list > a:last-child { border-bottom:0; }
.record-document-list > a:hover strong { color:#087fbd; }
.record-document-list strong,.record-document-list small { display:block; }
.record-document-list strong { font-size:.79rem; color:#253149; }
.record-document-list small,.record-document-list > a > span { color:#8490a4; font-size:.68rem; }
.record-document-list p { margin:.2rem 0 0; color:#657287; font-size:.72rem; }
.record-file-icon { width:38px; height:38px; border-radius:10px; background:#edf5fb; color:#187eac; display:grid; place-items:center; font-size:1rem; }
.record-file-icon.pdf { background:#fff0f2; color:#d44154; }
.record-prescription-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.record-prescription-grid a { text-decoration:none; color:inherit; border:1px solid #e6edf4; border-radius:13px; padding:.8rem; display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.65rem; align-items:center; }
.record-prescription-grid a:hover { border-color:#bfe0f2; background:#f8fcff; }
.record-prescription-grid a > span { width:38px; height:38px; border-radius:10px; background:#f0ecff; color:#6b55c5; display:grid; place-items:center; }
.record-prescription-grid strong,.record-prescription-grid small { display:block; }
.record-prescription-grid strong { font-size:.8rem; }
.record-prescription-grid small,.record-prescription-grid p { color:#8290a4; font-size:.68rem; margin:0; }
.record-quick-actions { display:flex; flex-direction:column; }
.record-quick-actions a { display:grid; grid-template-columns:28px minmax(0,1fr) auto; align-items:center; gap:.55rem; color:#38465c; text-decoration:none; padding:.7rem 0; border-bottom:1px solid #edf1f5; font-size:.76rem; font-weight:700; }
.record-quick-actions a:last-child { border-bottom:0; }
.record-quick-actions a > i:first-child { color:#1684ba; }
.record-vitals-list > small { display:block; color:#8793a6; margin-bottom:.55rem; }
.record-vitals-list > div,.record-side-details > div { display:flex; justify-content:space-between; gap:.8rem; padding:.47rem 0; border-bottom:1px solid #eef2f6; }
.record-vitals-list > div:last-child,.record-side-details > div:last-child { border-bottom:0; }
.record-vitals-list span { color:#718096; font-size:.72rem; }
.record-vitals-list strong { font-size:.72rem; color:#253149; text-align:right; }
.record-relative-list { display:flex; flex-direction:column; gap:.55rem; }
.record-relative-list article { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:.55rem; align-items:center; }
.record-relative-list article > span { width:34px; height:34px; border-radius:10px; background:#edf7ff; color:#1280b4; display:grid; place-items:center; font-size:.7rem; font-weight:800; }
.record-relative-list strong,.record-relative-list small { display:block; }
.record-relative-list strong { font-size:.73rem; }
.record-relative-list small { color:#8490a4; font-size:.65rem; }
.record-relative-list .bi-star-fill { color:#e5a21b; font-size:.72rem; }

@media (max-width:1199.98px) {
    .record-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .record-filter-bar { grid-template-columns:minmax(260px,1fr) 190px 170px auto; }
    .record-filter-bar .btn-light { grid-column:4; }
    .record-list-item { grid-template-columns:auto minmax(0,1fr) 110px auto; }
    .record-list-badges { display:none; }
    .record-layout { grid-template-columns:minmax(0,1fr) 280px; }
    .record-summary-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:991.98px) {
    .record-layout { grid-template-columns:1fr; }
    .record-side-column { position:static; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
    .record-profile-header { align-items:flex-start; flex-wrap:wrap; }
    .record-profile-actions { width:100%; margin-left:0; }
    .record-anchor-nav { position:static; }
}
@media (max-width:767.98px) {
    .record-stat-grid { grid-template-columns:1fr 1fr; }
    .record-filter-bar { display:flex; flex-direction:column; align-items:stretch; }
    .record-list-item { grid-template-columns:auto minmax(0,1fr) auto; gap:.7rem; }
    .record-list-history { grid-column:2 / 4; border-left:0; padding-left:0; display:flex; align-items:center; gap:.35rem; }
    .record-list-history strong,.record-list-history span,.record-list-history small { display:inline; }
    .record-list-meta span:nth-child(n+3) { display:none; }
    .record-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .record-detail-grid { grid-template-columns:1fr 1fr; }
    .record-detail-grid .wide { grid-column:span 2; }
    .record-side-column { grid-template-columns:1fr; }
    .record-document-list > a { grid-template-columns:auto minmax(0,1fr) auto; }
    .record-document-list > a > span { display:none; }
    .record-prescription-grid { grid-template-columns:1fr; }
}
@media (max-width:479.98px) {
    .record-stat-grid { grid-template-columns:1fr; }
    .record-summary-grid { grid-template-columns:1fr 1fr; }
    .record-profile-actions .btn { flex:1 1 auto; }
    .record-anchor-nav a { flex:1 1 42%; justify-content:center; }
    .record-detail-grid { grid-template-columns:1fr; }
    .record-detail-grid .wide { grid-column:span 1; }
    .record-timeline-head { flex-direction:column; }
}

/* ========================================================================== */
/* SAES v14 - Inicio por módulos + TRIAGE independiente                       */
/* ========================================================================== */
.module-home-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:24px; }
.module-home-heading h2 { margin:4px 0 6px; font-size:32px; font-weight:800; color:#1f2f46; }
.module-home-heading p { margin:0; color:var(--saes-muted); font-size:13px; }
.module-home-user { min-width:220px; display:flex; flex-direction:column; align-items:flex-end; padding:13px 16px; border:1px solid var(--saes-line); border-radius:14px; background:#fff; }
.module-home-user span, .module-home-user small { color:var(--saes-muted); font-size:9px; }
.module-home-user strong { margin:2px 0; font-size:13px; }
.module-home-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.module-home-card { min-height:210px; display:flex; flex-direction:column; padding:22px; border:1px solid var(--saes-line); border-radius:20px; background:#fff; color:inherit; text-decoration:none; box-shadow:0 8px 30px rgba(31,52,78,.055); transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.module-home-card:hover { transform:translateY(-3px); box-shadow:0 16px 40px rgba(31,52,78,.11); border-color:#cddced; color:inherit; }
.module-home-icon { width:58px; height:58px; display:grid; place-items:center; margin-bottom:20px; border-radius:17px; font-size:26px; }
.module-home-card h3 { margin:0 0 7px; font-size:21px; font-weight:800; }
.module-home-card p { margin:0; max-width:330px; color:var(--saes-muted); font-size:11px; line-height:1.6; }
.module-home-enter { display:flex; align-items:center; gap:7px; margin-top:auto; padding-top:20px; font-size:11px; font-weight:800; }
.module-home-card.blue .module-home-icon { color:#176ed1; background:#eaf4ff; }
.module-home-card.violet .module-home-icon { color:#7255c7; background:#f0ecff; }
.module-home-card.red .module-home-icon { color:#c63b50; background:#fff0f2; }
.module-home-card.green .module-home-icon { color:#248c5c; background:#eaf8f0; }
.module-home-card.slate .module-home-icon { color:#53657c; background:#eef2f6; }
.module-home-card.cyan .module-home-icon { color:#168aa0; background:#e8f8fb; }
.module-home-card.amber .module-home-icon { color:#9b7019; background:#fff6db; }
.module-home-secondary { display:flex; justify-content:center; margin-top:22px; }
.module-home-secondary a { color:var(--saes-muted); font-size:11px; font-weight:700; text-decoration:none; }
.module-home-secondary a:hover { color:var(--saes-primary); }

.triage-patient-search { max-width:900px; margin:0 auto; }
.triage-search-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; }
.triage-patient-results { display:grid; gap:8px; margin-top:15px; }
.triage-patient-result { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:12px; padding:11px 13px; border:1px solid var(--saes-line); border-radius:12px; color:inherit; text-decoration:none; }
.triage-patient-result:hover { background:#f8fbff; color:inherit; }
.triage-patient-result > div:nth-child(2) { min-width:0; display:flex; flex-direction:column; }
.triage-patient-result strong { font-size:11px; }
.triage-patient-result span { color:var(--saes-muted); font-size:9px; }
.triage-patient-banner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:14px; margin-bottom:16px; padding:16px; border:1px solid #cfe4fa; border-radius:16px; background:#f7fbff; }
.triage-patient-banner > div:nth-child(2) { min-width:0; }
.triage-patient-banner span { color:var(--saes-primary); font-size:8px; font-weight:800; text-transform:uppercase; }
.triage-patient-banner h3 { margin:2px 0; font-size:16px; }
.triage-patient-banner p { margin:0; color:var(--saes-muted); font-size:10px; }
.triage-form-stack { display:grid; gap:14px; }
.triage-classification-compact { display:flex; flex-wrap:wrap; gap:7px; }
.triage-choice { display:flex; align-items:center; gap:6px; padding:8px 10px; border:1px solid var(--saes-line); border-radius:999px; background:#fff; font-size:9px; font-weight:800; cursor:pointer; }
.triage-choice input { position:absolute; opacity:0; pointer-events:none; }
.triage-choice-dot { width:10px; height:10px; border-radius:50%; background:#aeb9c6; box-shadow:0 0 0 3px rgba(174,185,198,.14); }
.triage-choice.rojo .triage-choice-dot { background:#d9364f; }
.triage-choice.naranja .triage-choice-dot { background:#ef7f2d; }
.triage-choice.amarillo .triage-choice-dot { background:#e8bd24; }
.triage-choice.verde .triage-choice-dot { background:#2ca86f; }
.triage-choice.azul .triage-choice-dot { background:#2f83d5; }
.triage-choice:has(input:checked) { border-color:#93bce9; background:#f4f9ff; box-shadow:0 0 0 2px rgba(24,126,219,.08); }
.triage-sticky-actions { position:sticky; bottom:14px; z-index:8; display:flex; justify-content:flex-end; gap:9px; margin-top:16px; padding:12px; border:1px solid var(--saes-line); border-radius:14px; background:rgba(255,255,255,.96); box-shadow:0 10px 35px rgba(31,52,78,.12); backdrop-filter:blur(8px); }
.triage-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:16px; align-items:start; }
.triage-linked-card { position:sticky; top:88px; }
.triage-linked-attention { display:flex; flex-direction:column; gap:2px; margin-bottom:8px; padding:11px; border:1px solid var(--saes-line); border-radius:10px; color:inherit; text-decoration:none; }
.triage-linked-attention:hover { background:#f8fbff; color:inherit; }
.triage-linked-attention span { color:var(--saes-primary); font-size:8px; font-weight:800; }
.triage-linked-attention strong { font-size:11px; }
.triage-linked-attention small { color:var(--saes-muted); font-size:8px; }
.triage-attention-notice { display:flex; align-items:flex-start; }
.triage-attention-actions { display:flex; align-items:center; gap:7px; margin-left:auto; }
.same-day-triage-list { display:grid; gap:6px; margin-top:10px; }
.same-day-triage-item { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; border:1px solid rgba(139,100,24,.18); border-radius:10px; background:rgba(255,255,255,.6); }
.same-day-triage-item > span { display:flex; min-width:0; flex-direction:column; }
.same-day-triage-item strong { font-size:9px; }
.same-day-triage-item small { margin-top:2px; color:var(--saes-muted); font-size:8px; }

@media (max-width: 1100px) {
    .module-home-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .triage-detail-grid { grid-template-columns:1fr; }
    .triage-linked-card { position:static; }
}
@media (max-width: 700px) {
    .module-home-heading { align-items:stretch; flex-direction:column; }
    .module-home-user { align-items:flex-start; min-width:0; }
    .module-home-grid { grid-template-columns:1fr; }
    .module-home-card { min-height:165px; }
    .triage-patient-banner { grid-template-columns:auto minmax(0,1fr); }
    .triage-patient-banner .summary-alert { grid-column:1 / -1; }
    .triage-search-row { grid-template-columns:1fr; }
    .triage-sticky-actions, .triage-attention-actions, .same-day-triage-item { align-items:stretch; flex-direction:column; }
    .triage-sticky-actions .btn, .triage-attention-actions .btn, .same-day-triage-item .btn { width:100%; }
}

/* ========================================================================== */
/* SAES v14.1 - Navegación sin menú lateral                                   */
/* ========================================================================== */
.app-shell-no-sidebar { min-height:100vh; }
.app-main-full { min-height:100vh; margin-left:0; }
.app-content-full { width:100%; max-width:1760px; margin:0 auto; padding:30px 34px 48px; }
.app-topbar-no-sidebar { padding-left:28px; padding-right:28px; }
.topbar-left-wide { min-width:0; }
.topbar-home-button { display:flex; align-items:center; gap:10px; min-width:118px; padding:7px 11px 7px 8px; border:1px solid var(--saes-line); border-radius:13px; color:var(--saes-ink); background:#fff; text-decoration:none; transition:.16s ease; }
.topbar-home-button:hover { color:var(--saes-primary); border-color:#cbdceb; background:#f7fbff; }
.topbar-home-mark { width:34px; height:34px; flex:0 0 auto; }
.topbar-home-copy { min-width:0; display:flex; flex-direction:column; line-height:1.05; }
.topbar-home-copy strong { font-size:14px; font-weight:850; letter-spacing:.035em; }
.topbar-home-copy small { margin-top:3px; color:var(--saes-muted); font-size:9px; font-weight:700; }
.topbar-title-block { min-width:0; padding-left:15px; border-left:1px solid var(--saes-line); }
.topbar-grid-shortcut { text-decoration:none; }

.module-section { margin-top:8px; }
.module-section + .module-section { margin-top:34px; }
.module-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:14px; }
.module-section-heading h3 { margin:2px 0 0; color:#26364d; font-size:17px; font-weight:800; }
.module-section-kicker { color:#8d99aa; font-size:9px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.module-section-count { padding:6px 9px; border:1px solid var(--saes-line); border-radius:999px; color:#7c899a; background:#fff; font-size:9px; font-weight:750; }
.module-home-grid-primary { grid-template-columns:repeat(4,minmax(0,1fr)); }
.module-home-grid-primary .module-home-card { min-height:205px; }

.module-compact-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.module-compact-card { min-width:0; display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:12px; min-height:92px; padding:14px 15px; border:1px solid var(--saes-line); border-radius:15px; color:inherit; background:#fff; text-decoration:none; box-shadow:0 4px 18px rgba(31,52,78,.04); transition:.16s ease; }
.module-compact-card:hover { transform:translateY(-2px); border-color:#cbdceb; color:inherit; box-shadow:0 10px 26px rgba(31,52,78,.08); }
.module-compact-icon { width:46px; height:46px; display:grid; place-items:center; border-radius:13px; font-size:20px; }
.module-compact-copy { min-width:0; display:flex; flex-direction:column; }
.module-compact-copy strong { color:#26364d; font-size:13px; font-weight:800; }
.module-compact-copy small { margin-top:3px; overflow:hidden; color:var(--saes-muted); font-size:9px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.module-compact-arrow { color:#a1adbc; font-size:12px; }
.module-compact-card.blue .module-compact-icon { color:#176ed1; background:#eaf4ff; }
.module-compact-card.violet .module-compact-icon { color:#7255c7; background:#f0ecff; }
.module-compact-card.red .module-compact-icon { color:#c63b50; background:#fff0f2; }
.module-compact-card.green .module-compact-icon { color:#248c5c; background:#eaf8f0; }
.module-compact-card.slate .module-compact-icon { color:#53657c; background:#eef2f6; }
.module-compact-card.cyan .module-compact-icon { color:#168aa0; background:#e8f8fb; }
.module-compact-card.amber .module-compact-icon { color:#9b7019; background:#fff6db; }

@media (max-width: 1320px) {
    .module-home-grid-primary { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .module-compact-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width: 991.98px) {
    .app-content-full { padding:24px 20px 40px; }
    .app-topbar-no-sidebar { padding-left:18px; padding-right:18px; }
    .module-home-grid-primary { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .module-compact-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 767.98px) {
    .topbar-home-button { min-width:auto; padding:6px; border:0; background:transparent; }
    .topbar-home-mark { width:36px; height:36px; }
    .topbar-home-copy { display:none; }
    .topbar-title-block { padding-left:10px; }
    .topbar-kicker { display:none; }
    .topbar-title { max-width:45vw; overflow:hidden; font-size:16px; white-space:nowrap; text-overflow:ellipsis; }
    .topbar-grid-shortcut { display:none; }
    .module-home-heading { align-items:stretch; flex-direction:column; }
    .module-home-user { align-items:flex-start; min-width:0; }
}

@media (max-width: 620px) {
    .app-content-full { padding:20px 14px 34px; }
    .app-topbar-no-sidebar { min-height:66px; padding:9px 12px; gap:10px; }
    .module-home-heading h2 { font-size:27px; }
    .module-home-grid-primary,
    .module-compact-grid { grid-template-columns:1fr; }
    .module-home-grid-primary .module-home-card { min-height:170px; }
    .module-section-heading { align-items:flex-start; flex-direction:column; gap:7px; }
}

/* ========================================================================== */
/* SAES v15 - Navegación por iconos + módulos clínicos independientes         */
/* ========================================================================== */
.launcher-heading { margin:12px 0 24px; text-align:center; }
.launcher-heading h2 { margin:4px 0 0; color:#25364d; font-size:26px; font-weight:800; }
.module-launcher { width:min(1050px,100%); margin:0 auto; display:grid; grid-template-columns:repeat(6,minmax(110px,1fr)); gap:30px 24px; align-items:start; }
.module-launcher-item { min-width:0; display:flex; flex-direction:column; align-items:center; gap:10px; color:#33435a; text-decoration:none; text-align:center; transition:transform .15s ease,color .15s ease; }
.module-launcher-item:hover { transform:translateY(-3px); color:var(--saes-primary); }
.module-launcher-icon { width:76px; height:76px; display:grid; place-items:center; border:1px solid #dce5ed; border-radius:15px; background:#fff; box-shadow:0 6px 18px rgba(31,52,78,.07); font-size:33px; color:#167db5; transition:.15s ease; }
.module-launcher-item:nth-child(4n+2) .module-launcher-icon { color:#7359bd; }
.module-launcher-item:nth-child(4n+3) .module-launcher-icon { color:#cf4a5d; }
.module-launcher-item:nth-child(4n+4) .module-launcher-icon { color:#278e62; }
.module-launcher-item:hover .module-launcher-icon { border-color:#b9d8e9; box-shadow:0 10px 24px rgba(31,52,78,.11); }
.module-launcher-item strong { overflow:hidden; max-width:130px; font-size:12px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }

/* Pacientes: información personal únicamente */
.personal-patient-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:start; }
.personal-patient-grid .span-full { grid-column:1 / -1; }
.personal-data-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; margin:0; }
.personal-data-grid > div { min-width:0; padding:11px 0; border-bottom:1px solid #edf1f5; }
.personal-data-grid > div.span-2 { grid-column:span 2; }
.personal-data-grid dt { margin-bottom:3px; color:#8793a6; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.personal-data-grid dd { margin:0; overflow-wrap:anywhere; color:#27364b; font-size:12px; font-weight:650; }
.patient-allergy-personal { border-color:#f1ccd1; background:#fffafb; }
.patient-allergy-personal p { margin:0; color:#aa3448; font-size:13px; font-weight:700; }
.personal-relative-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.personal-relative-grid article { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:12px; border:1px solid #e5edf4; border-radius:12px; }
.personal-relative-grid article > div:nth-child(2) { min-width:0; display:flex; flex-direction:column; }
.personal-relative-grid strong { font-size:11px; }
.personal-relative-grid span,.personal-relative-grid small { color:#7f8da1; font-size:9px; }

/* Expedientes: cuadrícula de pacientes */
.patient-record-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.patient-record-card { min-width:0; display:flex; flex-direction:column; align-items:center; padding:20px 16px 15px; border:1px solid #e1e9f0; border-radius:16px; background:#fff; color:inherit; text-align:center; text-decoration:none; box-shadow:0 5px 18px rgba(31,52,78,.045); transition:.15s ease; }
.patient-record-card:hover { transform:translateY(-2px); border-color:#bfd8e7; color:inherit; box-shadow:0 10px 26px rgba(31,52,78,.08); }
.patient-record-avatar { width:58px; height:58px; display:grid; place-items:center; margin-bottom:12px; border-radius:18px; background:#eaf6fd; color:#167fae; font-size:18px; font-weight:850; }
.patient-record-body { width:100%; min-width:0; }
.patient-record-body h3 { margin:0 0 7px; overflow:hidden; color:#26364d; font-size:13px; font-weight:800; text-overflow:ellipsis; white-space:nowrap; }
.patient-record-body > p { margin:8px 0; color:#7e8b9e; font-size:10px; }
.record-card-alert { min-height:38px; display:flex; align-items:center; justify-content:center; gap:6px; margin:10px 0; padding:7px 9px; border-radius:9px; background:#fff0f2; color:#bd3f51; font-size:9px; font-weight:750; }
.record-card-alert.clear { background:#edf8f3; color:#2c8d62; }
.record-card-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; padding-top:10px; border-top:1px solid #edf1f5; color:#8491a4; font-size:8px; }
.history-state { display:flex; align-items:center; gap:4px; font-weight:700; }
.history-state.complete { color:#25885d; }
.history-state.pending { color:#b67c18; }

/* Expediente: barra lateral informativa + historial */
.record-page-heading { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.record-page-heading h2 { margin:2px 0 0; color:#26364d; font-size:22px; font-weight:800; }
.record-clinical-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:18px; align-items:start; }
.record-patient-sidebar { position:sticky; top:92px; overflow:hidden; border:1px solid #e1e9f0; border-radius:16px; background:#fff; }
.record-sidebar-profile { padding:22px 18px 16px; text-align:center; border-bottom:1px solid #edf1f5; }
.record-sidebar-profile .avatar { margin:0 auto 10px; }
.record-sidebar-profile h3 { margin:0 0 4px; font-size:14px; font-weight:800; }
.record-sidebar-profile > span { color:#8491a4; font-size:9px; }
.record-sidebar-data { margin:0; padding:8px 16px; }
.record-sidebar-data > div { padding:9px 0; border-bottom:1px solid #edf1f5; }
.record-sidebar-data > div:last-child { border-bottom:0; }
.record-sidebar-data dt { margin-bottom:2px; color:#909bad; font-size:8px; font-weight:700; text-transform:uppercase; }
.record-sidebar-data dd { margin:0; overflow-wrap:anywhere; color:#344157; font-size:10px; font-weight:650; }
.record-sidebar-section { display:flex; flex-direction:column; padding:13px 16px; border-top:1px solid #edf1f5; }
.record-sidebar-section span { color:#909bad; font-size:8px; font-weight:750; text-transform:uppercase; }
.record-sidebar-section strong { margin-top:3px; color:#2c3b51; font-size:10px; }
.record-sidebar-section small { margin-top:2px; color:#7f8da0; font-size:8px; }
.record-history-main { min-width:0; display:flex; flex-direction:column; gap:14px; }
.record-priority-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.record-priority-card { min-width:0; display:flex; align-items:center; gap:12px; padding:15px; border:1px solid #e2eaf1; border-radius:14px; background:#fff; }
.record-priority-card > div:nth-child(2) { min-width:0; display:flex; flex:1; flex-direction:column; }
.record-priority-card span { color:#8995a6; font-size:8px; font-weight:800; letter-spacing:.06em; }
.record-priority-card strong { margin-top:3px; overflow-wrap:anywhere; color:#344157; font-size:11px; }
.record-priority-card small { margin-top:2px; color:#8491a3; font-size:8px; }
.record-priority-icon { width:40px; height:40px; flex:0 0 auto; display:grid; place-items:center; border-radius:11px; font-size:17px; }
.record-priority-card.allergy { border-color:#f0cbd1; background:#fffafb; }
.record-priority-card.allergy .record-priority-icon { color:#c33f52; background:#ffecef; }
.record-priority-card.allergy.clear { border-color:#cee7da; background:#fbfffd; }
.record-priority-card.allergy.clear .record-priority-icon { color:#29875e; background:#eaf8f1; }
.record-priority-card.history.complete .record-priority-icon { color:#27895f; background:#eaf8f1; }
.record-priority-card.history.pending { border-color:#f1dfb4; background:#fffdf8; }
.record-priority-card.history.pending .record-priority-icon { color:#b87919; background:#fff5d9; }
.record-history-panel { border:1px solid #e1e9f0; border-radius:16px; background:#fff; overflow:hidden; }
.record-history-header { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; padding:16px 18px; border-bottom:1px solid #edf1f5; }
.record-history-header h3 { margin:2px 0 0; font-size:15px; font-weight:800; }
.record-history-filters { display:flex; flex-wrap:wrap; gap:5px; }
.record-history-filters a { padding:6px 9px; border-radius:8px; color:#748297; background:#f4f7fa; text-decoration:none; font-size:8px; font-weight:750; }
.record-history-filters a.active { color:#fff; background:var(--saes-primary); }
.clinical-timeline { position:relative; padding:12px 18px 18px 48px; }
.clinical-timeline:before { content:""; position:absolute; left:31px; top:24px; bottom:24px; width:2px; background:#e6edf3; }
.clinical-timeline-item { position:relative; padding:6px 0 12px; }
.clinical-timeline-marker { position:absolute; left:-35px; top:16px; width:30px; height:30px; display:grid; place-items:center; border:3px solid #fff; border-radius:10px; color:#147dae; background:#e9f6fd; box-shadow:0 0 0 1px #dbe5ed; z-index:1; }
.clinical-timeline-item.emergency .clinical-timeline-marker { color:#c94558; background:#fff0f2; }
.clinical-timeline-item.triage .clinical-timeline-marker { color:#288b60; background:#eaf8f1; }
.clinical-timeline-item.internment .clinical-timeline-marker { color:#7357bf; background:#f1edff; }
.clinical-timeline-card { padding:13px 14px; border:1px solid #e6edf3; border-radius:12px; background:#fff; }
.clinical-timeline-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.clinical-timeline-top > div { display:flex; align-items:center; gap:8px; }
.attention-type { color:#217fae; font-size:8px; font-weight:850; text-transform:uppercase; }
.clinical-timeline-top time { color:#8793a5; font-size:8px; }
.clinical-timeline-card h4 { margin:7px 0 4px; color:#29384e; font-size:12px; font-weight:800; }
.clinical-timeline-card > p { margin:0 0 8px; color:#637187; font-size:9px; line-height:1.5; }
.timeline-meta-row { display:flex; flex-wrap:wrap; gap:10px; color:#78869a; font-size:8px; }
.timeline-meta-row > span:not(.triage-pill) { display:flex; align-items:center; gap:4px; }
.clinical-timeline-actions { display:flex; justify-content:flex-end; margin-top:9px; }

/* Agenda mensual */
.calendar-toolbar { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:10px; padding:12px 14px; border:1px solid #e1e9f0; border-radius:14px; background:#fff; }
.calendar-month-navigation { display:flex; align-items:center; gap:10px; }
.calendar-month-navigation > div { min-width:160px; display:flex; flex-direction:column; text-align:center; }
.calendar-month-navigation strong { color:#2b3a50; font-size:13px; text-transform:capitalize; }
.calendar-month-navigation span { color:#8c98aa; font-size:8px; }
.appointment-status-legend { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 10px; }
.calendar-status-dot { display:flex; align-items:center; gap:4px; color:#748196; font-size:8px; }
.calendar-status-dot i { width:7px; height:7px; border-radius:50%; background:#5b9bd5; }
.calendar-status-dot.status-confirmada i { background:#2b9a68; }
.calendar-status-dot.status-en_espera i { background:#e0a31e; }
.calendar-status-dot.status-en_atencion i { background:#2579d8; }
.calendar-status-dot.status-atendida i { background:#8793a5; }
.calendar-status-dot.status-cancelada i,.calendar-status-dot.status-no_asistio i { background:#d54b5e; }
.month-calendar { overflow:hidden; border:1px solid #dfe7ee; border-radius:14px; background:#fff; }
.month-calendar-weekdays { display:grid; grid-template-columns:repeat(7,1fr); border-bottom:1px solid #dfe7ee; background:#f7f9fb; }
.month-calendar-weekdays span { padding:9px; border-right:1px solid #e6edf3; color:#748196; text-align:center; font-size:8px; font-weight:800; text-transform:uppercase; }
.month-calendar-weekdays span:last-child { border-right:0; }
.month-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.month-calendar-day { min-height:145px; padding:7px; border-right:1px solid #e6edf3; border-bottom:1px solid #e6edf3; background:#fff; cursor:default; }
.month-calendar-day[data-calendar-create] { cursor:pointer; }
.month-calendar-day:nth-child(7n) { border-right:0; }
.month-calendar-day.outside { background:#fafbfc; opacity:.55; }
.month-calendar-day.today { box-shadow:inset 0 0 0 2px #59a9d4; }
.month-calendar-day > header { display:flex; align-items:center; justify-content:space-between; margin-bottom:5px; }
.calendar-day-number { width:25px; height:25px; display:grid; place-items:center; border-radius:8px; color:#56657a; font-size:9px; font-weight:800; }
.month-calendar-day.today .calendar-day-number { color:#fff; background:#1684ba; }
.calendar-day-add { width:23px; height:23px; display:grid; place-items:center; border-radius:7px; color:#7d899b; text-decoration:none; font-size:10px; }
.calendar-day-add:hover { color:#fff; background:#1684ba; }
.calendar-day-events { display:flex; flex-direction:column; gap:4px; }
.calendar-event { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px; padding:6px 7px; border-left:3px solid #5b9bd5; border-radius:7px; background:#f5f9fc; }
.calendar-event.status-confirmada { border-left-color:#2b9a68; background:#f2fbf6; }
.calendar-event.status-en_espera { border-left-color:#e0a31e; background:#fffaf0; }
.calendar-event.status-en_atencion { border-left-color:#2579d8; background:#f1f7ff; }
.calendar-event.status-atendida { border-left-color:#8793a5; background:#f5f6f8; }
.calendar-event.status-cancelada,.calendar-event.status-no_asistio { border-left-color:#d54b5e; background:#fff5f6; opacity:.75; }
.calendar-event-main { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr); gap:1px 5px; align-items:center; }
.calendar-event-main time { grid-row:1 / 3; color:#536278; font-size:8px; font-weight:850; }
.calendar-event-main strong { overflow:hidden; color:#344157; font-size:8px; text-overflow:ellipsis; white-space:nowrap; }
.calendar-event-main small { overflow:hidden; color:#8390a3; font-size:7px; text-overflow:ellipsis; white-space:nowrap; }
.calendar-event-main .status-pill { grid-column:1 / -1; justify-self:start; margin-top:2px; transform:scale(.88); transform-origin:left center; }
.calendar-event-actions { display:flex; align-items:flex-start; }
.calendar-event-actions a { color:#748398; font-size:9px; }
.calendar-empty-label { display:block; padding-top:18px; color:#b0bac7; text-align:center; font-size:8px; }

@media (max-width:1300px) {
    .module-launcher { grid-template-columns:repeat(5,minmax(100px,1fr)); }
    .patient-record-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1050px) {
    .module-launcher { grid-template-columns:repeat(4,minmax(100px,1fr)); }
    .record-clinical-layout { grid-template-columns:240px minmax(0,1fr); }
    .month-calendar { overflow-x:auto; }
    .month-calendar-weekdays,.month-calendar-grid { min-width:950px; }
}
@media (max-width:850px) {
    .personal-patient-grid,.record-priority-grid { grid-template-columns:1fr; }
    .personal-patient-grid .span-full { grid-column:auto; }
    .personal-relative-grid { grid-template-columns:1fr; }
    .patient-record-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .record-clinical-layout { grid-template-columns:1fr; }
    .record-patient-sidebar { position:static; }
    .calendar-toolbar { align-items:stretch; flex-direction:column; }
}
@media (max-width:620px) {
    .module-launcher { grid-template-columns:repeat(3,minmax(82px,1fr)); gap:24px 12px; }
    .module-launcher-icon { width:64px; height:64px; font-size:27px; }
    .module-launcher-item strong { font-size:10px; }
    .patient-record-grid { grid-template-columns:1fr; }
    .personal-data-grid { grid-template-columns:1fr; }
    .personal-data-grid > div.span-2 { grid-column:auto; }
    .record-history-header { align-items:flex-start; flex-direction:column; }
    .clinical-timeline { padding-left:43px; }
}


/* SAES v18 - Consultas y Agenda */
.consultation-summary-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    margin:0 0 14px;
}
.consultation-summary-card {
    padding:14px 16px;
    border:1px solid #e1e9f0;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 18px rgba(34,62,93,.035);
}
.consultation-summary-card span,
.consultation-summary-card small {
    display:block;
    color:#8491a4;
}
.consultation-summary-card span {
    margin-bottom:4px;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.consultation-summary-card strong {
    display:block;
    color:#24344b;
    font-size:22px;
    line-height:1;
}
.consultation-summary-card small {
    margin-top:4px;
    font-size:8px;
}
.assigned-doctor-card {
    display:flex;
    align-items:center;
    gap:12px;
    padding:14px;
    border:1px solid #cfe9dc;
    border-radius:13px;
    background:#f4fbf7;
}
.assigned-doctor-icon {
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    flex:0 0 auto;
    border-radius:11px;
    color:#1f8d61;
    background:#e2f5ea;
    font-size:17px;
}
.assigned-doctor-card > div:nth-child(2) {
    min-width:0;
    display:flex;
    flex:1;
    flex-direction:column;
}
.assigned-doctor-card span:not(.status-pill) {
    color:#758397;
    font-size:8px;
    font-weight:800;
    text-transform:uppercase;
}
.assigned-doctor-card strong {
    color:#25364c;
    font-size:12px;
}
.assigned-doctor-card small {
    color:#708095;
    font-size:8px;
}
.agenda-status-summary {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
    margin-bottom:10px;
}
.agenda-status-summary > div {
    padding:10px 12px;
    border:1px solid #e2e9f0;
    border-radius:11px;
    background:#fff;
}
.agenda-status-summary span {
    display:block;
    color:#8692a3;
    font-size:8px;
}
.agenda-status-summary strong {
    display:block;
    margin-top:2px;
    color:#2b3b51;
    font-size:16px;
}
.calendar-help {
    display:flex;
    align-items:center;
    gap:7px;
    margin:0 0 10px;
    padding:8px 10px;
    border:1px solid #dce9f4;
    border-radius:10px;
    color:#64758b;
    background:#f7fbfe;
    font-size:8px;
}
.calendar-event {
    position:relative;
    grid-template-columns:minmax(0,1fr);
}
.calendar-event-main {
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
}
.calendar-event-time-row {
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:5px;
}
.calendar-event-main time {
    color:#526278;
    font-size:8px;
    font-weight:850;
}
.calendar-event-main strong {
    width:100%;
    overflow:hidden;
    color:#344157;
    font-size:8px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.calendar-event-main small {
    width:100%;
    overflow:hidden;
    color:#8390a3;
    font-size:7px;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.calendar-event-main em {
    width:100%;
    overflow:hidden;
    color:#8c98a8;
    font-size:7px;
    font-style:normal;
    text-overflow:ellipsis;
    white-space:nowrap;
}
.calendar-event-main .status-pill {
    margin:0;
    transform:scale(.82);
    transform-origin:right center;
}
.calendar-event-quick-actions {
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    margin-top:4px;
}
.calendar-event-quick-actions form { margin:0; }
.calendar-quick-start,
.calendar-quick-open {
    min-height:24px;
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 7px;
    border:0;
    border-radius:7px;
    color:#fff;
    background:#177ed2;
    text-decoration:none;
    font-size:7px;
    font-weight:800;
}
.calendar-quick-open { background:#63758c; }
.calendar-event-menu {
    position:relative;
}
.calendar-event-menu summary {
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    border:1px solid #dce4ec;
    border-radius:7px;
    color:#6d7b8e;
    background:#fff;
    cursor:pointer;
    list-style:none;
}
.calendar-event-menu summary::-webkit-details-marker { display:none; }
.calendar-event-menu-panel {
    position:absolute;
    z-index:40;
    right:0;
    top:29px;
    width:190px;
    padding:5px;
    border:1px solid #dce4ec;
    border-radius:10px;
    background:#fff;
    box-shadow:0 14px 35px rgba(35,55,80,.16);
}
.calendar-event-menu-panel a,
.calendar-event-menu-panel button {
    width:100%;
    display:flex;
    align-items:center;
    gap:7px;
    padding:7px 8px;
    border:0;
    border-radius:7px;
    color:#526175;
    background:transparent;
    text-align:left;
    text-decoration:none;
    font-size:8px;
}
.calendar-event-menu-panel a:hover,
.calendar-event-menu-panel button:hover {
    background:#f3f7fa;
}
.calendar-event-menu-panel button.danger { color:#bb4051; }
.calendar-event-menu-panel form { margin:0; }
.calendar-assigned-note {
    display:flex;
    align-items:center;
    gap:4px;
    margin-top:4px;
    color:#9a6b16;
    font-size:7px;
}
@media (max-width:900px) {
    .consultation-summary-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .agenda-status-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:620px) {
    .consultation-summary-grid { grid-template-columns:1fr 1fr; }
    .agenda-status-summary { grid-template-columns:1fr 1fr; }
}

@media (min-width:1051px) {
    .month-calendar { overflow:visible; }
    .month-calendar-day { position:relative; }
    .month-calendar-day:has(.calendar-event-menu[open]) { z-index:25; }
}

/* SAES v19 - alertas de solicitudes de internamiento */
.module-launcher-item { position: relative; }
.module-alert-badge {
    position: absolute;
    top: 8px;
    right: 10px;
    min-width: 24px;
    height: 24px;
    padding: 0 7px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #dc3545;
    color: #fff;
    font-size: .74rem;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 4px 12px rgba(220,53,69,.28);
}
.internment-request-panel {
    margin-bottom: 1.25rem;
    padding: 1.25rem;
    border: 1px solid #f2d69a;
    border-radius: 18px;
    background: linear-gradient(180deg, #fffdf7 0%, #fff 100%);
}
.internment-request-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}
.internment-request-heading h3 { margin: .1rem 0 .25rem; font-size: 1.05rem; }
.internment-request-heading p { margin: 0; color: var(--saes-text-muted, #6b7280); }
.internment-request-list { display: grid; gap: .75rem; }
.internment-request-item {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .9rem 1rem;
    border: 1px solid #edf0f4;
    border-radius: 14px;
    background: #fff;
}
.internment-request-main { flex: 1; min-width: 0; }
.internment-request-title { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; }
.internment-request-title strong { color: #172033; }
.internment-request-title span,
.internment-request-main small { color: #7b8494; }
.internment-request-main p { margin: .25rem 0; color: #3e485b; }
.internment-request-actions { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 760px) {
    .internment-request-heading,
    .internment-request-item { align-items: stretch; flex-direction: column; }
    .internment-request-actions { justify-content: flex-start; }
}


/* SAES v20 - Procesamiento de internamientos */
.internment-process-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 1.5rem;
    align-items: start;
}
.internment-process-layout > aside {
    position: sticky;
    top: 96px;
}
.internment-process-steps {
    display: grid;
    gap: .8rem;
    margin-top: 1rem;
}
.internment-process-steps span {
    display: flex;
    gap: .6rem;
    align-items: center;
    color: #3e485b;
    font-size: .92rem;
}
.internment-process-steps i {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-grid;
    place-items: center;
    background: #eaf7ef;
    color: #198754;
}
.internment-request-summary {
    cursor: pointer;
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.1rem;
}
.internment-request-summary::-webkit-details-marker { display: none; }
.compact-card[open] .internment-request-summary {
    border-bottom: 1px solid var(--saes-border, #e6e9ef);
}
@media (max-width: 991.98px) {
    .internment-process-layout { grid-template-columns: 1fr; }
    .internment-process-layout > aside { position: static; }
}


/* SAES v22 - Hospitalización */
.segmented-filter {
    display: inline-flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--saes-line);
    border-radius: 10px;
    background: #f8fafc;
}
.segmented-filter button {
    border: 0;
    border-radius: 7px;
    padding: 7px 12px;
    background: transparent;
    color: var(--saes-muted);
    font-size: 10px;
    font-weight: 700;
}
.segmented-filter button.active {
    background: #fff;
    color: var(--saes-primary);
    box-shadow: 0 1px 4px rgba(15, 42, 66, .10);
}
.doctor-auto-card {
    display: grid;
    gap: 2px;
    min-height: 48px;
    padding: 9px 12px;
    border: 1px solid #b9d7ff;
    border-radius: 9px;
    background: var(--saes-primary-soft);
}
.doctor-auto-card strong {
    color: #20384f;
    font-size: 11px;
}
.doctor-auto-card span {
    color: var(--saes-muted);
    font-size: 9px;
}
.doctor-auto-card small {
    color: var(--saes-primary);
    font-size: 8px;
    font-weight: 700;
}
.doctor-auto-card.compact {
    min-height: 42px;
    padding-block: 7px;
}

/* SAES v23 - Expediente clínico integral definitivo */
.record-filter-bar-v23 { grid-template-columns:minmax(300px,1fr) 220px auto auto; }
.records-grid-caption { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 2px 12px; color:#7b899c; font-size:9px; }
.records-grid-caption > span { display:flex; align-items:center; gap:6px; color:#506078; font-weight:700; }
.patient-record-grid-v23 { align-items:stretch; }
.patient-record-card-v23 { align-items:stretch; padding:15px; text-align:left; }
.patient-record-card-top { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.patient-record-card-v23 .patient-record-avatar { width:48px; height:48px; margin:0; border-radius:14px; font-size:15px; }
.patient-record-card-id { min-width:0; display:flex; align-items:flex-end; flex-direction:column; gap:5px; }
.patient-record-card-id .status-pill { gap:3px; padding:3px 6px; font-size:7px; }
.patient-record-card-id .status-pill i { font-size:5px; }
.patient-record-card-v23 .patient-record-body h3 { margin-bottom:4px; font-size:13px; }
.patient-record-card-v23 .patient-record-body > p { margin:0 0 9px; }
.patient-record-card-v23 .record-card-alert { justify-content:flex-start; min-height:42px; margin:8px 0; text-align:left; }
.patient-record-card-v23 .record-card-alert > div { min-width:0; display:flex; flex-direction:column; }
.patient-record-card-v23 .record-card-alert small { opacity:.72; font-size:7px; font-weight:800; letter-spacing:.04em; }
.patient-record-card-v23 .record-card-alert span { overflow-wrap:anywhere; font-size:9px; }
.record-card-history-row { min-height:25px; display:flex; align-items:center; padding:5px 0 8px; }
.record-card-footer-v23 { align-items:flex-start; }
.record-card-footer-v23 span { display:flex; align-items:center; gap:4px; }

.record-page-heading-v23 p { margin:3px 0 0; color:#8491a4; font-size:9px; }
.record-clinical-layout-v23 { grid-template-columns:290px minmax(0,1fr); }
.record-patient-sidebar-v23 { max-height:calc(100vh - 105px); overflow:auto; }
.record-patient-sidebar-v23 .record-sidebar-data .wide dd { line-height:1.45; }
.record-sidebar-vitals { background:#f8fbfd; }
.record-priority-grid-v23 { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
.record-priority-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.record-priority-actions form { margin:0; }
.record-history-panel-v23 { overflow:visible; }
.record-history-panel-v23 .record-history-header { align-items:flex-start; border-bottom:0; padding-bottom:7px; }
.record-history-panel-v23 .record-history-header p { margin:3px 0 0; color:#8491a4; font-size:8px; }
.record-history-filters-v23 { position:sticky; top:70px; z-index:4; flex-wrap:nowrap; overflow-x:auto; padding:8px 18px 10px; border-bottom:1px solid #edf1f5; background:#fff; scrollbar-width:thin; }
.record-history-filters-v23 a { flex:0 0 auto; }
.clinical-timeline-v23 { padding-top:8px; }
.clinical-timeline-item.hospitalization .clinical-timeline-marker { color:#a15a17; background:#fff4e8; }
.clinical-timeline-item.initial .clinical-timeline-marker { color:#267f9b; background:#eaf8fb; }
.timeline-status-stack { display:flex!important; align-items:flex-end!important; flex-direction:column; gap:3px!important; }
.timeline-status-stack small { display:flex; align-items:center; gap:3px; color:#9aa5b4; font-size:7px; }
.hospitalization-progress-mini { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; padding:8px 9px; border-radius:9px; background:#fafbfc; }
.hospitalization-progress-mini span { display:inline-flex; align-items:center; gap:4px; padding:4px 6px; border-radius:7px; font-size:7px; font-weight:750; }
.hospitalization-progress-mini .done { color:#27875d; background:#eaf8f1; }
.hospitalization-progress-mini .pending { color:#8b96a5; background:#f0f3f6; }
.clinical-timeline-actions-v23 { align-items:center; flex-wrap:wrap; gap:6px; }
.clinical-timeline-actions-v23 form { display:inline-flex; margin:0; }
.clinical-timeline-actions-v23 .btn { white-space:nowrap; }

@media (max-width:1100px) {
    .record-clinical-layout-v23 { grid-template-columns:250px minmax(0,1fr); }
    .record-priority-grid-v23 { grid-template-columns:1fr; }
}
@media (max-width:850px) {
    .record-filter-bar-v23 { grid-template-columns:1fr; }
    .records-grid-caption { align-items:flex-start; flex-direction:column; }
    .record-clinical-layout-v23 { grid-template-columns:1fr; }
    .record-patient-sidebar-v23 { position:static; max-height:none; }
    .record-history-filters-v23 { top:62px; }
}
@media (max-width:620px) {
    .record-priority-card { align-items:flex-start; flex-wrap:wrap; }
    .record-priority-actions { width:100%; justify-content:flex-start; }
    .clinical-timeline-actions-v23 { justify-content:flex-start; }
}

/* SAES v25 - Administración de usuarios */
.user-summary-grid { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); gap: 12px; margin-bottom: 14px; }
.user-summary-card { position: relative; min-height: 88px; padding: 16px 18px; overflow: hidden; border: 1px solid var(--saes-line); border-radius: 14px; background: #fff; box-shadow: 0 3px 16px rgba(36,53,80,.035); }
.user-summary-card span { display: block; color: var(--saes-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.user-summary-card strong { display: block; margin-top: 3px; color: var(--saes-text); font-size: 25px; line-height: 1; }
.user-summary-card > i { position: absolute; right: 15px; bottom: 10px; color: rgba(21,128,231,.16); font-size: 34px; }
.user-grid-admin .user-card { min-height: 184px; }
.user-card-inactive { opacity: .7; background: #fafbfc; }
.user-card-inactive .user-card-avatar { filter: grayscale(.7); }
.user-doctor-link { color: #177a72; }
.user-doctor-link.missing { color: #b24b58; font-weight: 700; }
.user-card-footer-actions { align-items: flex-end; }
.user-card-actions { display: inline-flex; align-items: center; gap: 5px; }
.user-card-actions form { margin: 0; }
.icon-button.danger-soft { color: #b53949; background: #fff0f2; }
.icon-button.success-soft { color: #15745f; background: #eaf9f4; }
.user-role-help { min-height: 38px; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 10px; color: #526172; background: #f7f9fc; font-size: 12px; line-height: 1.4; }
.user-role-help i { flex: 0 0 auto; color: var(--saes-primary); }
.doctor-link-panel { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(300px, 1.2fr); gap: 18px; padding: 17px; border: 1px solid #bfe7df; border-radius: 13px; background: #f2fbf8; }
.doctor-link-copy { display: flex; align-items: flex-start; gap: 11px; }
.doctor-link-copy > i { width: 38px; height: 38px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 10px; color: #117467; background: #dff6ef; font-size: 18px; }
.doctor-link-copy strong, .doctor-link-copy span { display: block; }
.doctor-link-copy strong { margin-bottom: 4px; color: #164e48; font-size: 13px; }
.doctor-link-copy span { color: #5f7773; font-size: 11px; line-height: 1.5; }
.user-active-switch { padding: 14px 14px 14px 48px; border: 1px solid var(--saes-line); border-radius: 12px; background: #fbfcfe; }
.user-active-switch .form-check-input { margin-left: -34px; }
.user-active-switch label strong, .user-active-switch label span { display: block; }
.user-active-switch label span { margin-top: 2px; color: var(--saes-muted); font-size: 11px; }
.user-account-status .status-pill { display: inline-flex; padding: 3px 8px; border-radius: 999px; font-size: 9px; font-weight: 800; }
.user-account-status .status-pill.activo { color: #146f5a; background: #e6f8f1; }
.user-account-status .status-pill.inactivo { color: #9f3f4c; background: #fff0f2; }
@media (max-width: 900px) { .user-summary-grid { grid-template-columns: repeat(2, minmax(140px, 1fr)); } .doctor-link-panel { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .user-summary-grid { grid-template-columns: 1fr 1fr; } }

/* SAES v27 - Logs y Auditoría */
.audit-summary-grid { display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)); gap:12px; margin-bottom:14px; }
.audit-summary-card { position:relative; min-height:88px; padding:16px 18px; overflow:hidden; border:1px solid var(--saes-line); border-radius:14px; background:#fff; box-shadow:0 3px 16px rgba(36,53,80,.035); }
.audit-summary-card span { display:block; color:var(--saes-muted); font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.audit-summary-card strong { display:block; margin-top:4px; font-size:25px; line-height:1; }
.audit-summary-card > i { position:absolute; right:15px; bottom:9px; color:rgba(20,120,229,.14); font-size:34px; }
.audit-filter-panel { display:grid; grid-template-columns:minmax(260px,1.4fr) minmax(180px,.85fr) minmax(150px,.75fr) minmax(150px,.75fr) 145px 145px 115px; gap:11px; align-items:end; margin-bottom:14px; padding:15px; border:1px solid var(--saes-line); border-radius:15px; background:#fff; box-shadow:0 3px 16px rgba(36,53,80,.035); }
.audit-filter-panel > div > label { display:block; margin:0 0 5px; color:#778396; font-size:9px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.audit-filter-search .toolbar-search { width:100%; }
.audit-filter-actions { display:flex; gap:7px; grid-column:1 / -1; justify-content:flex-end; padding-top:2px; }
.audit-list-panel { padding:0; overflow:hidden; }
.audit-list-header { margin:0; padding:18px 20px 13px; border-bottom:1px solid #eef1f5; }
.audit-readonly-note { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border-radius:8px; color:#647185; background:#f3f6f9; font-size:9px; font-weight:700; }
.audit-event-list { display:flex; flex-direction:column; }
.audit-event-row { display:grid; grid-template-columns:42px minmax(0,1fr) 110px; gap:12px; align-items:start; padding:14px 20px; border-bottom:1px solid #eef1f5; transition:.15s ease; }
.audit-event-row:hover { background:#fbfdff; }
.audit-event-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:11px; font-size:16px; }
.audit-event-icon.blue, .audit-action-pill.blue { color:#1669bd; background:#e9f3ff; }
.audit-event-icon.success, .audit-action-pill.success { color:#15745b; background:#e7f8f1; }
.audit-event-icon.warning, .audit-action-pill.warning { color:#936713; background:#fff5d8; }
.audit-event-icon.danger, .audit-action-pill.danger { color:#ad3d4c; background:#ffedf0; }
.audit-event-icon.violet, .audit-action-pill.violet { color:#6244ba; background:#f1ecff; }
.audit-event-icon.muted, .audit-action-pill.muted { color:#667386; background:#eff2f5; }
.audit-event-main { min-width:0; }
.audit-event-title { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.audit-event-title strong { font-size:12px; }
.audit-event-title > span:not(.audit-action-pill) { color:#8a95a5; font-size:9px; }
.audit-action-pill { display:inline-flex; align-items:center; padding:3px 6px; border-radius:7px; font-size:8px; font-weight:850; letter-spacing:.03em; }
.audit-event-main > p { margin:5px 0 7px; color:#4e5b6e; font-size:11px; line-height:1.5; }
.audit-event-meta { display:flex; flex-wrap:wrap; gap:11px; color:#8a96a5; font-size:9px; }
.audit-event-meta span { display:inline-flex; align-items:center; gap:4px; }
.audit-event-side { display:flex; align-items:flex-end; flex-direction:column; gap:7px; }
.audit-event-side time { color:#647184; font-size:10px; font-weight:700; text-align:right; }
.audit-event-side time small { display:block; margin-top:1px; color:#9ca6b3; font-size:8px; font-weight:600; }
.audit-pagination { display:flex; align-items:center; justify-content:center; gap:12px; padding:14px 18px; border-top:1px solid #eef1f5; background:#fbfcfe; }
.audit-page-link, .audit-page-number { display:inline-flex; align-items:center; justify-content:center; gap:4px; min-height:30px; border:1px solid var(--saes-line); border-radius:8px; color:#637084; background:#fff; font-size:9px; font-weight:750; text-decoration:none; }
.audit-page-link { padding:0 10px; }
.audit-page-numbers { display:flex; gap:4px; }
.audit-page-number { width:30px; }
.audit-page-number.active { border-color:var(--saes-primary); color:#fff; background:var(--saes-primary); }
.audit-page-caption { color:#8c97a6; font-size:9px; }
.audit-detail-heading { align-items:center; }
.audit-detail-grid { display:grid; grid-template-columns:280px minmax(0,1fr); gap:16px; }
.audit-detail-sidebar { align-self:start; position:sticky; top:92px; }
.audit-actor-card { display:flex; align-items:center; gap:11px; padding-bottom:15px; border-bottom:1px solid #eef1f5; }
.audit-actor-card > div:last-child { min-width:0; display:flex; flex-direction:column; }
.audit-actor-card span { color:#94a0af; font-size:8px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
.audit-actor-card strong { margin-top:2px; font-size:12px; }
.audit-actor-card small { margin-top:3px; color:#748194; font-size:9px; }
.audit-detail-list { margin:14px 0 0; }
.audit-detail-list > div { display:grid; grid-template-columns:92px minmax(0,1fr); gap:9px; padding:8px 0; border-bottom:1px solid #f0f2f5; }
.audit-detail-list dt { color:#8d98a8; font-size:8px; font-weight:800; text-transform:uppercase; }
.audit-detail-list dd { margin:0; overflow-wrap:anywhere; color:#4c596c; font-size:10px; font-weight:650; }
.audit-detail-content { min-width:0; display:flex; flex-direction:column; gap:14px; }
.audit-description-box { padding:14px; border:1px solid #e6ebf1; border-radius:11px; color:#3f4c5f; background:#fafcfe; font-size:12px; line-height:1.6; }
.audit-change-count { color:#7e8a9b; font-size:9px; font-weight:700; }
.audit-change-table-wrap { overflow:auto; border:1px solid #edf1f5; border-radius:11px; }
.audit-change-table tbody td:first-child { min-width:145px; }
.audit-change-table td strong, .audit-change-table td small { display:block; }
.audit-change-table td small { margin-top:2px; color:#9aa5b3; font-size:8px; }
.audit-change-table pre { max-width:520px; margin:0; white-space:pre-wrap; overflow-wrap:anywhere; color:#526073; background:transparent; font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; font-size:9px; line-height:1.45; }
.audit-raw-details { padding:0; overflow:hidden; }
.audit-raw-details summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:15px 18px; cursor:pointer; list-style:none; }
.audit-raw-details summary::-webkit-details-marker { display:none; }
.audit-raw-details summary span { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:750; }
.audit-raw-details summary small { color:#8e99a8; font-size:8px; }
.audit-raw-details[open] summary { border-bottom:1px solid #edf1f5; }
.audit-raw-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:14px 18px 18px; }
.audit-raw-grid strong, .audit-user-agent strong { display:block; margin-bottom:6px; color:#697689; font-size:9px; text-transform:uppercase; }
.audit-raw-grid pre { max-height:380px; margin:0; padding:12px; overflow:auto; border-radius:9px; color:#405066; background:#f7f9fb; font-size:8px; line-height:1.5; }
.audit-user-agent { padding:14px 18px 18px; }
.audit-user-agent p { margin:0; overflow-wrap:anywhere; color:#526073; font-size:9px; line-height:1.5; }
@media (max-width:1200px) { .audit-filter-panel { grid-template-columns:repeat(4,minmax(150px,1fr)); } .audit-filter-search { grid-column:span 2; } }
@media (max-width:900px) { .audit-summary-grid { grid-template-columns:repeat(2,minmax(140px,1fr)); } .audit-filter-panel { grid-template-columns:repeat(2,minmax(0,1fr)); } .audit-filter-search { grid-column:1 / -1; } .audit-detail-grid { grid-template-columns:1fr; } .audit-detail-sidebar { position:static; } }
@media (max-width:650px) { .audit-filter-panel { grid-template-columns:1fr; } .audit-filter-search, .audit-filter-actions { grid-column:auto; } .audit-filter-actions { justify-content:flex-start; } .audit-event-row { grid-template-columns:38px minmax(0,1fr); padding:13px 14px; } .audit-event-side { grid-column:2; align-items:flex-start; flex-direction:row; justify-content:space-between; } .audit-event-side time { text-align:left; } .audit-pagination { flex-wrap:wrap; } .audit-raw-grid { grid-template-columns:1fr; } }

/* =========================================================
   SAES v28 · Dashboard estadístico
   ========================================================= */
.dashboard-stat-grid { grid-template-columns: repeat(6, minmax(150px, 1fr)); }
.stat-icon.warning { color: #a96e00; background: #fff4d9; }
.stat-card-alert { border-color: #f1d58a; background: linear-gradient(180deg, #fffdf8, #fff); }

.dashboard-key-grid {
    display: grid;
    grid-template-columns: 1.08fr .88fr 1.04fr;
    gap: 18px;
    margin-bottom: 18px;
}

.consultation-period-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.consultation-period-grid article {
    min-width: 0;
    padding: 14px;
    border: 1px solid #edf1f5;
    border-radius: 13px;
    background: #fbfdff;
}
.consultation-period-grid small,
.consultation-period-grid strong { display: block; }
.consultation-period-grid small { margin-top: 8px; color: var(--saes-muted); font-size: 10px; }
.consultation-period-grid strong { margin-top: 2px; font-size: 26px; line-height: 1; }
.consultation-period-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: var(--saes-primary);
    background: var(--saes-primary-soft);
}
.dashboard-note { margin: 13px 0 0; color: #8c96a5; font-size: 10px; }

.room-occupancy-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    min-height: 150px;
}
.occupancy-ring {
    width: 126px;
    height: 126px;
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--saes-primary) 0 var(--occupancy), #edf1f5 var(--occupancy) 100%);
    position: relative;
}
.occupancy-ring::after {
    content: '';
    position: absolute;
    inset: 13px;
    border-radius: 50%;
    background: #fff;
}
.occupancy-ring > div {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.occupancy-ring strong { font-size: 24px; line-height: 1; }
.occupancy-ring span { margin-top: 4px; color: var(--saes-muted); font-size: 9px; text-transform: uppercase; letter-spacing: .08em; }
.room-occupancy-copy { min-width: 125px; display: flex; flex-direction: column; gap: 12px; }
.room-occupancy-copy > div { display: grid; grid-template-columns: auto auto 1fr; align-items: baseline; gap: 7px; }
.room-occupancy-copy strong { font-size: 17px; }
.room-occupancy-copy small { color: var(--saes-muted); font-size: 10px; }
.room-dot { width: 8px; height: 8px; border-radius: 50%; }
.room-dot.free { background: var(--saes-green); }
.room-dot.occupied { background: var(--saes-primary); }
.room-dot.total { background: #9aa4b3; }

.today-metric-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.today-metric-grid article {
    min-width: 0;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 12px;
    border: 1px solid #edf1f5;
    border-radius: 12px;
    background: #fbfcfe;
}
.today-metric-grid i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    color: #54708d;
    background: #edf3f8;
}
.today-metric-grid span { color: var(--saes-muted); font-size: 10px; }
.today-metric-grid strong { font-size: 19px; }

.dashboard-insight-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 18px;
    margin-bottom: 18px;
}

.internment-four-month-chart {
    height: 250px;
    display: grid;
    grid-template-columns: repeat(4, minmax(55px, 1fr));
    align-items: end;
    gap: 20px;
    padding: 15px 10px 0;
    border-bottom: 1px solid var(--saes-line);
    background-image:
        linear-gradient(to bottom, transparent calc(25% - 1px), #eef1f5 25%, transparent calc(25% + 1px)),
        linear-gradient(to bottom, transparent calc(50% - 1px), #eef1f5 50%, transparent calc(50% + 1px)),
        linear-gradient(to bottom, transparent calc(75% - 1px), #eef1f5 75%, transparent calc(75% + 1px));
}
.internment-month-column {
    height: 100%;
    display: grid;
    grid-template-rows: 22px minmax(0, 1fr) 18px 15px;
    align-items: end;
    justify-items: center;
}
.internment-month-column > strong { align-self: center; font-size: 13px; }
.internment-month-track {
    width: min(58px, 72%);
    height: 100%;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    border-radius: 9px 9px 0 0;
    background: rgba(20, 120, 229, .06);
}
.internment-month-track span {
    width: 100%;
    min-height: 3px;
    display: block;
    border-radius: 9px 9px 0 0;
    background: linear-gradient(180deg, #42a4ff, var(--saes-primary));
}
.internment-month-column small { margin-top: 5px; color: #667184; font-size: 10px; font-weight: 800; }
.internment-month-column em { color: #a0a9b5; font-size: 8px; font-style: normal; }

.dashboard-doctor-header { align-items: flex-start; }
.dashboard-month-form { width: 142px; flex: 0 0 auto; }
.doctor-ranking { display: flex; flex-direction: column; gap: 12px; }
.doctor-ranking-row {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) 36px;
    align-items: center;
    gap: 10px;
}
.doctor-rank {
    width: 29px;
    height: 29px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    color: #627086;
    background: #f0f3f7;
    font-size: 10px;
    font-weight: 800;
}
.doctor-ranking-row.leader .doctor-rank { color: #9d6900; background: #fff0c7; }
.doctor-ranking-copy { min-width: 0; }
.doctor-ranking-copy > div:first-child { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.doctor-ranking-copy strong { overflow: hidden; font-size: 11px; white-space: nowrap; text-overflow: ellipsis; }
.doctor-ranking-copy small { flex: 0 0 auto; color: var(--saes-muted); font-size: 9px; }
.doctor-ranking-bar { height: 7px; margin-top: 6px; overflow: hidden; border-radius: 999px; background: #edf1f5; }
.doctor-ranking-bar span { height: 100%; display: block; border-radius: 999px; background: linear-gradient(90deg, var(--saes-primary), #5dafef); }
.doctor-ranking-row.leader .doctor-ranking-bar span { background: linear-gradient(90deg, #e6a018, #f0c764); }
.doctor-ranking-total { text-align: right; font-size: 15px; }

.dashboard-annual-panel { margin-bottom: 18px; }
.dashboard-list-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.dashboard-list-grid .timeline-item { grid-template-columns: auto minmax(0, 1fr); }
.dashboard-list-grid .timeline-item time { grid-column: 2; }

@media (max-width: 1550px) {
    .dashboard-stat-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .dashboard-key-grid { grid-template-columns: 1fr 1fr; }
    .dashboard-key-grid > section:last-child { grid-column: 1 / -1; }
    .today-metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 1180px) {
    .dashboard-insight-grid { grid-template-columns: 1fr; }
    .dashboard-list-grid { grid-template-columns: 1fr 1fr; }
    .dashboard-list-grid > section:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

@media (max-width: 900px) {
    .dashboard-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-key-grid { grid-template-columns: 1fr; }
    .dashboard-key-grid > section:last-child { grid-column: auto; }
    .today-metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-list-grid { grid-template-columns: 1fr; }
    .dashboard-list-grid > section:last-child:nth-child(odd) { grid-column: auto; }
}

@media (max-width: 600px) {
    .dashboard-stat-grid { grid-template-columns: 1fr; }
    .consultation-period-grid { grid-template-columns: 1fr; }
    .room-occupancy-content { flex-direction: column; }
    .room-occupancy-copy { width: 100%; }
    .today-metric-grid { grid-template-columns: 1fr; }
    .internment-four-month-chart { gap: 8px; padding-inline: 0; }
    .internment-month-track { width: 70%; }
    .dashboard-doctor-header { flex-direction: column; }
    .dashboard-month-form { width: 100%; }
    .doctor-ranking-copy > div:first-child { display: block; }
    .doctor-ranking-copy small { display: block; margin-top: 2px; }
}

/* =========================================================
   SAES v29 - Topbar, perfil, notificaciones y Caja Urgencias
   ========================================================= */
.notification-count-badge {
    position: absolute;
    top: -4px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #dc3545;
    color: #fff;
    font-size: 9px;
    font-weight: 800;
    line-height: 1;
    box-shadow: 0 0 0 2px #fff;
}
.notification-dropdown { width: 380px; max-width: calc(100vw - 24px); overflow: hidden; border-radius: 14px; }
.notification-dropdown-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; background:#f7f9fc; border-bottom:1px solid #e9edf3; }
.notification-dropdown-head strong { display:block; font-size:13px; }
.notification-dropdown-head span { display:block; color:#8793a5; font-size:10px; margin-top:2px; }
.notification-dropdown-head > i { color:#2d7fb8; font-size:18px; }
.notification-dropdown-body { max-height:360px; overflow:auto; }
.notification-dropdown-item { display:flex; gap:10px; padding:12px 14px; color:inherit; text-decoration:none; border-bottom:1px solid #eef1f5; }
.notification-dropdown-item:hover { background:#f8fafc; color:inherit; }
.notification-dropdown-item > span:last-child { min-width:0; }
.notification-dropdown-item strong { display:block; font-size:11px; line-height:1.35; }
.notification-dropdown-item small { display:block; color:#7f8b9c; font-size:9px; line-height:1.4; margin-top:3px; }
.notification-item-icon { flex:0 0 34px; width:34px; height:34px; border-radius:10px; display:flex; align-items:center; justify-content:center; background:#eef6ff; color:#2684c2; }
.notification-dropdown-item.tone-warning .notification-item-icon { background:#fff5d9; color:#b17a00; }
.notification-dropdown-item.tone-danger .notification-item-icon { background:#ffe8eb; color:#c93344; }
.notification-dropdown-item.tone-info .notification-item-icon { background:#e8f6ff; color:#267fae; }
.notification-empty { padding:24px 16px; display:flex; flex-direction:column; align-items:center; text-align:center; color:#8190a2; }
.notification-empty i { font-size:28px; color:#21a268; margin-bottom:6px; }
.notification-empty span { font-weight:700; color:#4d5968; }
.notification-empty small { margin-top:3px; }
.notification-dropdown-footer { display:flex; align-items:center; justify-content:center; gap:7px; padding:11px 14px; background:#fff; color:#2879af; font-size:10px; font-weight:700; text-decoration:none; }
.notification-page-list { display:grid; gap:12px; }
.notification-page-item { display:flex; align-items:center; gap:14px; padding:16px 18px; background:#fff; border:1px solid #e8edf3; border-radius:14px; color:inherit; text-decoration:none; box-shadow:0 3px 12px rgba(32,51,72,.04); }
.notification-page-item:hover { color:inherit; border-color:#cdd9e5; transform:translateY(-1px); }
.notification-page-icon { width:42px; height:42px; flex:0 0 42px; display:flex; align-items:center; justify-content:center; border-radius:12px; background:#eef6ff; color:#227fae; font-size:18px; }
.notification-page-item.tone-warning .notification-page-icon { background:#fff4d5; color:#a87100; }
.notification-page-item.tone-danger .notification-page-icon { background:#ffe7ea; color:#c42e40; }
.notification-page-item strong { display:block; font-size:13px; }
.notification-page-item p { margin:3px 0 0; color:#7d8998; font-size:10px; }
.topbar-avatar-image { object-fit:cover; border:1px solid #dce5ee; }

.profile-settings-grid { display:grid; grid-template-columns:280px minmax(0,1fr); gap:20px; align-items:start; }
.profile-summary-card { text-align:center; padding:24px 20px; position:sticky; top:92px; }
.profile-photo-wrap { display:flex; justify-content:center; margin-bottom:12px; }
.profile-photo { width:96px; height:96px; border-radius:24px; object-fit:cover; border:4px solid #f2f6fa; box-shadow:0 8px 24px rgba(27,61,91,.12); }
.profile-photo-fallback { width:96px; height:96px; border-radius:24px; font-size:30px; }
.profile-summary-card h3 { margin:0 0 8px; font-size:16px; }
.profile-meta-list { display:grid; gap:10px; margin-top:22px; text-align:left; }
.profile-meta-list > div { padding:10px 12px; background:#f8fafc; border-radius:10px; }
.profile-meta-list span { display:block; color:#8793a4; font-size:9px; text-transform:uppercase; letter-spacing:.05em; }
.profile-meta-list strong { display:block; margin-top:2px; font-size:11px; }
.profile-meta-list small { display:block; margin-top:2px; color:#8793a4; font-size:9px; }

.caja-selector-card { background:#fff; border:1px solid #e6ecf2; border-radius:14px; padding:14px 16px; margin-bottom:16px; box-shadow:0 2px 10px rgba(31,53,75,.03); }
.caja-selector-form { display:grid; grid-template-columns:minmax(180px,240px) minmax(180px,240px) auto; gap:12px; align-items:end; }
.caja-empty-turn { min-height:240px; }
.caja-empty-turn > i { font-size:42px; color:#2d8fbd; }
.caja-turn-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:16px 18px; margin-bottom:16px; background:#173653; color:#fff; border-radius:14px; }
.caja-turn-header.is-closed { background:#4e5f70; }
.caja-turn-header h3 { margin:3px 0 2px; font-size:18px; }
.caja-turn-header p { margin:0; color:rgba(255,255,255,.78); font-size:10px; }
.caja-turn-header .eyebrow { color:#8fd5ff; }
.caja-summary-strip { display:grid; grid-template-columns:repeat(5,minmax(90px,1fr)); gap:8px; min-width:min(720px,65vw); }
.caja-summary-strip > div { padding:10px 12px; border-radius:10px; background:rgba(255,255,255,.1); }
.caja-summary-strip span { display:block; font-size:8px; text-transform:uppercase; letter-spacing:.04em; color:rgba(255,255,255,.72); }
.caja-summary-strip strong { display:block; margin-top:3px; font-size:14px; }
.caja-summary-strip .has-alert { background:#9a3040; }
.caja-capture-card { margin-bottom:16px; }
.caja-capture-grid { display:grid; grid-template-columns:repeat(6,minmax(120px,1fr)); gap:12px; }
.caja-capture-grid .span-2 { grid-column:span 2; }
.caja-section-title { margin:18px 0 10px; display:flex; align-items:center; gap:10px; color:#355269; font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.caja-section-title::after { content:""; height:1px; background:#e3eaf0; flex:1; }
.caja-money-grid { display:grid; grid-template-columns:repeat(7,minmax(120px,1fr)); gap:10px; }
.caja-money-grid-payment { grid-template-columns:repeat(3,minmax(160px,220px)); }
.caja-validation-hint { display:flex; gap:9px; align-items:flex-start; padding:10px 12px; border-radius:10px; background:#eef8f3; color:#4b6759; font-size:9px; }
.caja-validation-hint i { color:#26936a; font-size:15px; }
.caja-table-panel { overflow:hidden; }
.caja-table-scroll { max-height:560px; overflow:auto; }
.caja-table { min-width:2100px; font-size:9px; }
.caja-table thead th { position:sticky; top:0; z-index:2; white-space:nowrap; background:#0c5a5c; color:#fff; }
.caja-table td { white-space:nowrap; }
.caja-row-alert td { background:#fff2f2 !important; }
.caja-close-card { margin-top:16px; }
.caja-recent-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.caja-recent-card { display:block; padding:14px 15px; background:#fff; border:1px solid #e6ecf2; border-radius:12px; color:inherit; text-decoration:none; }
.caja-recent-card:hover { color:inherit; border-color:#bad0e2; }
.caja-recent-card span { display:block; color:#758394; font-size:9px; }
.caja-recent-card strong { display:block; margin:5px 0 2px; font-size:16px; }
.caja-recent-card small { color:#8290a0; font-size:9px; }

@media (max-width: 1100px) {
    .profile-settings-grid { grid-template-columns:1fr; }
    .profile-summary-card { position:static; }
    .caja-turn-header { align-items:flex-start; flex-direction:column; }
    .caja-summary-strip { min-width:0; width:100%; grid-template-columns:repeat(5,1fr); }
    .caja-capture-grid { grid-template-columns:repeat(3,1fr); }
    .caja-money-grid { grid-template-columns:repeat(4,1fr); }
    .caja-recent-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 700px) {
    .notification-dropdown { width:calc(100vw - 20px); }
    .caja-selector-form { grid-template-columns:1fr; }
    .caja-summary-strip { grid-template-columns:repeat(2,1fr); }
    .caja-capture-grid { grid-template-columns:1fr; }
    .caja-capture-grid .span-2 { grid-column:span 1; }
    .caja-money-grid, .caja-money-grid-payment { grid-template-columns:repeat(2,1fr); }
    .caja-recent-grid { grid-template-columns:1fr; }
}
.caja-live-validation { display:flex; gap:9px; align-items:center; padding:10px 12px; border-radius:10px; background:#f3f6f9; color:#667687; font-size:9px; font-weight:600; }
.caja-live-validation.is-ok { background:#eaf8f0; color:#267352; }
.caja-live-validation.is-alert { background:#fff0f1; color:#a73543; }
