@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root {
    --blue: #0f62fe;
    --blue-600: #1976d2;
    --blue-soft: #eaf2ff;
    --ink: #111827;
    --muted: #667085;
    --line: #e5eaf3;
    --bg: #f6f8fc;
    --panel: #ffffff;
    --success: #0f9f6e;
    --warning: #f59e0b;
    --danger: #d94848;
    --shadow: 0 18px 45px rgba(15, 35, 70, .08);
    --radius: 8px;
}

/* PM360 cierre visual v33: sidebar sin scroll interno, KPIs limpios y montos robustos. */
.sidebar {
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    gap: 12px !important;
    padding-top: 18px !important;
    padding-bottom: 18px !important;
}
.sidebar .nav-group {
    gap: 4px !important;
    flex: 0 0 auto !important;
}
.sidebar .nav-link {
    min-height: 38px !important;
    height: 38px !important;
    flex-basis: 38px !important;
    font-size: 13px !important;
}
.sidebar-footer {
    margin-top: 14px !important;
    flex: 0 0 auto !important;
}
.kpi-grid .card,
.cash-kpi-grid .card {
    min-width: 0 !important;
    overflow: hidden !important;
}
.kpi-grid .card::before,
.kpi-grid .card::after {
    top: auto !important;
    left: auto !important;
}
.kpi-grid .card::after {
    right: 16px !important;
    bottom: 16px !important;
    width: 44px !important;
    height: 44px !important;
    border-radius: 16px !important;
    opacity: 1 !important;
}
.kpi-grid .card::before {
    right: 28px !important;
    bottom: 28px !important;
    z-index: 1 !important;
}
.kpi-grid .card::before,
.kpi-grid .card::after,
.cash-kpi-grid .card::before,
.cash-kpi-grid .card::after {
    transform: none !important;
}
.kpi-value,
.cash-kpi-grid .kpi-value {
    max-width: 100% !important;
    width: 100% !important;
    padding-right: 0 !important;
    font-size: clamp(24px, 2.05vw, 32px) !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
    font-variant-numeric: tabular-nums !important;
    letter-spacing: -0.045em !important;
}
.cash-kpi-grid .card {
    background: linear-gradient(180deg,#fff 0%,#f8fbff 100%) !important;
}
.cash-kpi-grid .cash-kpi-icon {
    width: 46px !important;
    height: 46px !important;
    padding: 9px !important;
    border: 1px solid #bfdbfe !important;
    border-radius: 16px !important;
    background: var(--kpi-icon-bg, #eff6ff) !important;
    box-sizing: border-box !important;
}
.cash-kpi-grid .kpi-wallet { --kpi-icon-bg:#eff6ff; }
.cash-kpi-grid .kpi-chart { --kpi-icon-bg:#ecfdf5; }
.cash-kpi-grid .kpi-alert-circle { --kpi-icon-bg:#fef2f2; }
.cash-kpi-grid .kpi-calendar-clock { --kpi-icon-bg:#fffbeb; }
.cash-kpi-grid .kpi-shield-medical { --kpi-icon-bg:#f5f3ff; }

* { box-sizing: border-box; }
.sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
html { font-family: Inter, Poppins, Montserrat, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; }
body { margin: 0; background: var(--bg); color: var(--ink); letter-spacing: 0; }
a { color: inherit; }

.login-body { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(circle at top left, #e9f2ff, transparent 34%), linear-gradient(135deg, #f7faff, #eef4fb); padding: 24px; }
.login-card { width: min(430px, 100%); background: rgba(255,255,255,.94); border: 1px solid var(--line); border-radius: 8px; box-shadow: var(--shadow); padding: 34px; }
.login-brand { text-align: center; margin-bottom: 28px; }
.logo-mark { width: 52px; height: 52px; border-radius: 8px; display: inline-grid; place-items: center; background: linear-gradient(135deg, var(--blue), #57a0ff); color: white; font-weight: 800; margin-bottom: 12px; }
.brand-title { font-size: 23px; font-weight: 800; margin: 0; }
.brand-subtitle { color: var(--muted); font-size: 13px; margin: 6px 0 0; }
.demo-box { background: var(--blue-soft); color: #174a95; border: 1px solid #cfe0ff; padding: 12px; border-radius: 8px; font-size: 13px; margin-bottom: 18px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 224px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; background: #fff; border-right: 1px solid var(--line); padding: 16px 10px; display: flex; flex-direction: column; gap: 14px; }
.sidebar-brand { display: flex; align-items: center; gap: 12px; padding: 0 8px 12px; border-bottom: 1px solid var(--line); }
.sidebar-brand .logo-mark { width: 40px; height: 40px; margin: 0; }
.sidebar-title { font-weight: 800; line-height: 1.05; }
.sidebar-title span { display:block; color: var(--muted); font-size: 12px; font-weight: 600; margin-top: 3px; }
.nav-group { display: grid; gap: 6px; }
.nav-link { display: flex; align-items: center; gap: 9px; padding: 9px 10px; color: #344054; text-decoration: none; border-radius: 8px; font-weight: 650; font-size: 13.5px; white-space: nowrap; }
.nav-link:hover, .nav-link.active { background: var(--blue-soft); color: var(--blue); }
.nav-dot { width: 8px; height: 8px; border-radius: 99px; background: currentColor; opacity: .55; }
.sidebar-footer { margin-top: auto; }
.main-area { min-width: 0; }
.topbar { height: 72px; background: rgba(255,255,255,.86); backdrop-filter: blur(10px); border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 clamp(18px, 2vw, 28px); position: sticky; top: 0; z-index: 4; }
.topbar h1 { font-size: 22px; margin: 0; }
.topbar p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.content { padding: clamp(18px, 2vw, 28px); }

.kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 22px; }
.card, .panel { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 1px 2px rgba(16,24,40,.03); }
.card { padding: 18px; }
.kpi-label { color: var(--muted); font-size: 13px; font-weight: 650; margin-bottom: 10px; }
.kpi-value { font-size: 28px; font-weight: 800; letter-spacing: 0; }
.kpi-trend { margin-top: 10px; font-size: 12px; color: var(--success); font-weight: 700; }
.panel { padding: 20px; margin-bottom: 20px; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.panel-title { margin: 0; font-size: 17px; font-weight: 800; }
.panel-subtitle { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.grid-2 { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; }
.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.chart-bars { display: flex; align-items: end; gap: 12px; height: 210px; padding: 18px 8px 0; }
.chart-bar { flex: 1; min-width: 18px; background: linear-gradient(180deg, #4f9cff, var(--blue)); border-radius: 8px 8px 3px 3px; position: relative; }
.chart-bar span { position: absolute; bottom: -24px; left: 50%; transform: translateX(-50%); font-size: 11px; color: var(--muted); }
.progress { height: 10px; background: #eef2f7; border-radius: 99px; overflow: hidden; }
.progress > div { height: 100%; background: var(--blue); border-radius: inherit; }

.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 16px; }
.search-row { display: flex; gap: 10px; flex-wrap: wrap; }
.input, input, select, textarea { width: 100%; border: 1px solid #d8e0ec; background: #fff; border-radius: 8px; padding: 11px 12px; font: inherit; color: var(--ink); outline: none; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(15,98,254,.12); }
label { display: block; font-size: 12px; font-weight: 750; color: #475467; margin-bottom: 7px; }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.form-grid .span-2 { grid-column: span 2; }
.form-actions { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.btn { border: 0; border-radius: 8px; padding: 11px 14px; font-weight: 750; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
.btn-primary { background: var(--blue); color: white; box-shadow: 0 8px 18px rgba(15,98,254,.20); }
.btn-secondary { background: #eef4ff; color: var(--blue); }
.btn-danger { background: #fff1f1; color: var(--danger); }
.btn-ghost { background: #fff; border: 1px solid var(--line); color: #344054; }

.table-wrap { overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
table { width: 100%; border-collapse: collapse; min-width: 760px; background: #fff; }
th { background: #f8fafd; color: #667085; font-size: 12px; text-transform: uppercase; letter-spacing: .02em; }
th, td { padding: 14px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
td { font-size: 14px; color: #344054; }
tr:last-child td { border-bottom: 0; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; font-size: 12px; font-weight: 750; background: #eef4ff; color: var(--blue); }
.badge.success { background: #e9f9f1; color: var(--success); }
.badge.warn { background: #fff7e8; color: #b76a00; }
.badge.danger { background: #fff1f1; color: var(--danger); }
.badge.info { background: #E8F1FF; color: var(--blue); }

.calendar-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; }
.day-card { border: 1px solid var(--line); background: #fff; border-radius: 8px; padding: 14px; min-height: 120px; }
.day-card strong { display:block; margin-bottom: 8px; }
.appointment { padding: 9px; border-radius: 8px; background: var(--blue-soft); color: #174a95; font-size: 12px; margin-top: 8px; }
.kanban { display: grid; grid-template-columns: repeat(5, minmax(220px, 1fr)); gap: 14px; overflow-x: auto; padding-bottom: 8px; }
.kanban-col { background: #f8fafd; border: 1px solid var(--line); border-radius: 8px; padding: 12px; min-height: 320px; }
.kanban-title { font-size: 13px; font-weight: 800; color: #475467; margin: 0 0 12px; }
.kanban-card { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 13px; margin-bottom: 10px; box-shadow: 0 8px 20px rgba(16,24,40,.05); }
.kanban-card h3 { margin: 0 0 8px; font-size: 14px; }
.kanban-card p { margin: 5px 0; color: var(--muted); font-size: 12px; }
.alert-card { border-left: 4px solid var(--blue); }
.actions-inline { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.async-preview-actions { margin-top: 14px; }
.pagination { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; color: var(--muted); font-size: 13px; }
.clinical-kanban { grid-template-columns: repeat(6, minmax(205px, 1fr)); }
.compact-table table { min-width: 680px; }
.compact-table th,
.compact-table td { padding: 11px 13px; }

@media (max-width: 1180px) { .kpi-grid { grid-template-columns: repeat(2, 1fr); } .grid-2, .grid-3 { grid-template-columns: 1fr; } .kanban { grid-template-columns: repeat(5, 240px); } }
@media (max-width: 720px) { .app-shell { grid-template-columns: 1fr; } .sidebar { position: relative; height: auto; } .topbar { position: relative; } .content { padding: 18px; } .form-grid, .kpi-grid { grid-template-columns: 1fr; } }

/* Visual polish pass: stronger contrast, premium shadows, icons */

:root {
    --blue: #0F62FE;
    --blue-600: #1976D2;
    --blue-soft: #E8F1FF;
    --ink: #0F172A;
    --muted: #64748B;
    --line: #DCE6F2;
    --bg: #F4F7FB;
    --panel: #FFFFFF;
    --shadow: 0 14px 34px rgba(15, 23, 42, .08);
    --shadow-soft: 0 6px 18px rgba(15, 23, 42, .06);
}

body { background: var(--bg); color: var(--ink); }
.login-body { background: linear-gradient(135deg, #EDF5FF 0%, #F7FAFF 48%, #EAF2FF 100%); }
.login-card { width: min(520px, 100%); box-shadow: 0 26px 70px rgba(15, 23, 42, .14); border-color: #D7E4F5; }
.login-logo { display: block; width: min(390px, 100%); height: auto; margin: 0 auto 18px; }
.login-brand { margin-bottom: 20px; }
.login-brand .brand-title,
.login-brand .brand-subtitle,
.login-brand .logo-mark { display: none; }

.sidebar { background: #F8FAFC; border-right-color: var(--line); box-shadow: 8px 0 30px rgba(15, 23, 42, .035); }
.topbar { background: rgba(255,255,255,.92); border-bottom-color: var(--line); box-shadow: 0 8px 22px rgba(15, 23, 42, .035); }
.card, .panel, .day-card, .kanban-card { box-shadow: var(--shadow-soft); border-color: var(--line); }
.panel { box-shadow: var(--shadow); }
.table-wrap { border-color: var(--line); box-shadow: 0 10px 28px rgba(15, 23, 42, .045); }
th { background: #EEF4FB; color: #475569; }
tbody tr { transition: background .16s ease, transform .16s ease; }
tbody tr:hover { background: #F8FBFF; }
input, select, textarea { border-color: #D6E2F0; background: #FFFFFF; }
.btn { border-radius: 8px; padding: 12px 15px; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; }
.btn:hover { transform: translateY(-1px); }
.btn-primary { box-shadow: 0 10px 22px rgba(15,98,254,.24); }
.btn-secondary { background: var(--blue-soft); }
.btn-ghost:hover { background: #F8FAFC; }

.nav-link { position: relative; }
.nav-dot { width: 19px; height: 19px; display: inline-grid; place-items: center; background: transparent; opacity: 1; border-radius: 0; }

.report-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.report-card { text-decoration: none; display: block; padding: 20px; }
.report-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 8px; background: var(--blue-soft); color: var(--blue); font-size: 22px; margin-bottom: 14px; }
.report-card h3 { margin: 0 0 8px; font-size: 16px; }
.report-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.report-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }

@media (max-width: 980px) { .report-card-grid { grid-template-columns: 1fr; } }

.login-icon-only { width: 138px; max-width: 42vw; margin-bottom: 10px; }
.login-brand::after { content: 'Organiza. Optimiza. Avanza.'; display: block; color: #0F172A; font-size: 15px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; margin-top: 8px; }

/* Local icon fix: no external icon fonts, no empty squares */
.nav-dot::before,
.btn::before,
.report-icon::before { font-family: inherit !important; }

.nav-dot { width: 20px; height: 20px; display: inline-grid; place-items: center; background: transparent; opacity: 1; flex: 0 0 20px; }
.nav-dot::before {
    content: "" !important;
    width: 18px;
    height: 18px;
    display: block;
    background-color: currentColor;
    -webkit-mask: var(--nav-icon) center / contain no-repeat;
    mask: var(--nav-icon) center / contain no-repeat;
}
.nav-link[href*='dashboard'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 13h4v7H4v-7Zm6-9h4v16h-4V4Zm6 5h4v11h-4V9Z'/%3E%3C/svg%3E"); }
.nav-link[href*='pacientes'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm8 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM2 21a7 7 0 0 1 14 0H2Zm12.5 0a8.7 8.7 0 0 0-2.1-5.7A5.5 5.5 0 0 1 22 19v2h-7.5Z'/%3E%3C/svg%3E"); }
.nav-link[href*='citas'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h2v3h6V2h2v3h3a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h3V2Zm13 8H4v10h16V10Z'/%3E%3C/svg%3E"); }
.nav-link[href*='comunicacion'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 4h16a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H9l-5 4v-4H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2Zm3 5h10V7H7v2Zm0 4h7v-2H7v2Z'/%3E%3C/svg%3E"); }
.nav-link[href*='cirugias'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M10 3h4v6h6v4h-6v6h-4v-6H4V9h6V3Z'/%3E%3C/svg%3E"); }
.nav-link[href*='finanzas'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 19h18v2H3v-2Zm2-8h3v6H5v-6Zm5-5h3v11h-3V6Zm5 3h3v8h-3V9Zm4-5h3v13h-3V4Z'/%3E%3C/svg%3E"); }
.nav-link[href*='fiscal'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6 2h9l5 5v15H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 1.5V8h4.5L14 3.5ZM8 12h8v2H8v-2Zm0 4h8v2H8v-2Z'/%3E%3C/svg%3E"); }
.nav-link[href*='reportes'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M5 3h14v18H5V3Zm3 4v2h8V7H8Zm0 4v2h8v-2H8Zm0 4v2h5v-2H8Z'/%3E%3C/svg%3E"); }
.nav-link[href*='clientes'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M19.4 13.5c.1-.5.1-1 .1-1.5s0-1-.1-1.5l2-1.5-2-3.5-2.4 1a8 8 0 0 0-2.6-1.5L14 2h-4l-.4 2.5A8 8 0 0 0 7 6L4.6 5l-2 3.5 2 1.5A9 9 0 0 0 4.5 12c0 .5 0 1 .1 1.5l-2 1.5 2 3.5 2.4-1a8 8 0 0 0 2.6 1.5L10 22h4l.4-2.5A8 8 0 0 0 17 18l2.4 1 2-3.5-2-1.5ZM12 15.5A3.5 3.5 0 1 1 12 8a3.5 3.5 0 0 1 0 7.5Z'/%3E%3C/svg%3E"); }
.nav-link[href*='login'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M10 17v-3H3v-4h7V7l6 5-6 5Zm2-14h8v18h-8v-2h6V5h-6V3Z'/%3E%3C/svg%3E"); }

.btn::before { display: inline-block; font-weight: 900; line-height: 1; }
.btn-primary::before { content: "+" !important; }
a[href*='excel'].btn::before { content: "XLS" !important; font-size: 11px; }
a[href*='pdf'].btn::before { content: "PDF" !important; font-size: 11px; }

.report-icon { color: var(--blue); }
.report-icon i { display: none !important; }
.report-icon::before {
    content: "" !important;
    width: 24px;
    height: 24px;
    display: block;
    background-color: currentColor;
    -webkit-mask: var(--report-icon) center / contain no-repeat;
    mask: var(--report-icon) center / contain no-repeat;
}
.report-card[href*='resumen'] .report-icon { --report-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 3h16v18H4V3Zm3 4h10v2H7V7Zm0 4h10v2H7v-2Zm0 4h6v2H7v-2Z'/%3E%3C/svg%3E"); }
.report-card[href*='pdf'] .report-icon { --report-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6 2h9l5 5v15H6V2Zm8 1.5V8h4.5L14 3.5ZM8 12h2v6H8v-6Zm3 0h2.5a3 3 0 0 1 0 6H11v-6Zm5 0h3v2h-1v4h-2v-6Z'/%3E%3C/svg%3E"); }
.report-card[href*='excel'] .report-icon { --report-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 3h16v18H4V3Zm3 4 3 5-3 5h3l1.5-2.7L13 17h3l-3-5 3-5h-3l-1.5 2.7L10 7H7Z'/%3E%3C/svg%3E"); }

.login-icon-only {
    width: 176px;
    height: 176px;
    max-width: 48vw;
    object-fit: cover;
    border-radius: 30px;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .16);
    margin-bottom: 14px;
}
.login-brand::after {
    content: 'Organiza. Optimiza. Avanza.';
    display: block;
    color: #0F172A;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-top: 10px;
}

/* Login logo visibility fix */
.login-brand .login-logo { display: block !important; }
.login-brand .logo-mark { display: none !important; }



/* Final icon repair: remove question-mark glyphs and use SVG masks only */
.btn::before {
    content: "" !important;
    width: 16px;
    height: 16px;
    display: inline-block;
    flex: 0 0 16px;
    background-color: currentColor;
    -webkit-mask: var(--btn-icon) center / contain no-repeat;
    mask: var(--btn-icon) center / contain no-repeat;
    font-size: 0 !important;
    line-height: 0 !important;
}
.btn-primary { --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11 5h2v6h6v2h-6v6h-2v-6H5v-2h6V5Z'/%3E%3C/svg%3E"); }
button[type='submit'].btn-primary { --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m9 16.2-3.5-3.5L4 14.2 9 19 20.5 7.5 19 6 9 16.2Z'/%3E%3C/svg%3E"); }
.btn-secondary { --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 17.5V20h2.5L17.1 9.4l-2.5-2.5L4 17.5ZM19 7.5 16.5 5 18 3.5a1.8 1.8 0 0 1 2.5 2.5L19 7.5Z'/%3E%3C/svg%3E"); }
.btn-danger { --btn-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h18%22%2F%3E%3Cpath%20d%3D%22M8%206V4h8v2%22%2F%3E%3Cpath%20d%3D%22M19%206l-1%2014H6L5%206%22%2F%3E%3Cpath%20d%3D%22M10%2011v5%22%2F%3E%3Cpath%20d%3D%22M14%2011v5%22%2F%3E%3C%2Fsvg%3E"); }
/* Stable danger/delete icon: outlined trash can with a visible lid. */
.btn-danger::before {
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 18px !important;
    background-color: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23C62828%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h18%22%2F%3E%3Cpath%20d%3D%22M8%206V4h8v2%22%2F%3E%3Cpath%20d%3D%22M19%206l-1%2014H6L5%206%22%2F%3E%3Cpath%20d%3D%22M10%2011v5%22%2F%3E%3Cpath%20d%3D%22M14%2011v5%22%2F%3E%3C%2Fsvg%3E") !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: 18px 18px !important;
    -webkit-mask: none !important;
    mask: none !important;
}
.invoice-cancel-card .btn-danger::before,
.autofactura-card.autofactura-saas .invoice-cancel-card .btn-danger::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23FFFFFF%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h18%22%2F%3E%3Cpath%20d%3D%22M8%206V4h8v2%22%2F%3E%3Cpath%20d%3D%22M19%206l-1%2014H6L5%206%22%2F%3E%3Cpath%20d%3D%22M10%2011v5%22%2F%3E%3Cpath%20d%3D%22M14%2011v5%22%2F%3E%3C%2Fsvg%3E") !important;
}
.btn-ghost { --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 5h18v2H3V5Zm4 6h10v2H7v-2Zm3 6h4v2h-4v-2Z'/%3E%3C/svg%3E"); }
a[href*='excel'].btn { --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 3h16v18H4V3Zm3 4 3 5-3 5h3l1.5-2.7L13 17h3l-3-5 3-5h-3l-1.5 2.7L10 7H7Z'/%3E%3C/svg%3E"); }
a[href*='pdf'].btn { --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6 2h9l5 5v15H6V2Zm8 1.5V8h4.5L14 3.5ZM8 12h2v6H8v-6Zm3 0h2.5a3 3 0 0 1 0 6H11v-6Zm5 0h3v2h-1v4h-2v-6Z'/%3E%3C/svg%3E"); }
a[href*='reportes'].btn { --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M5 3h14v18H5V3Zm3 4v2h8V7H8Zm0 4v2h8v-2H8Zm0 4v2h5v-2H8Z'/%3E%3C/svg%3E"); }

/* Dynamic dashboards and agenda control center */
.filter-panel { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.filter-panel form { display: flex; align-items: end; gap: 12px; flex-wrap: wrap; }
.filter-field { min-width: 170px; }
.chart-toggle-group { display: flex; gap: 8px; flex-wrap: wrap; }
.chart-toggle { border: 1px solid var(--line); background: #fff; color: #334155; border-radius: 8px; padding: 10px 12px; font-weight: 750; cursor: pointer; }
.chart-toggle.active { background: var(--blue-soft); border-color: #B9D4FF; color: var(--blue); }
.percent-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 20px; }
.percent-pill { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 14px; box-shadow: var(--shadow-soft); color: #334155; }
.percent-pill strong { color: var(--blue); }
.chart-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; }
.chart-card canvas { width: 100%; height: 260px; display: block; }
.no-data { color: var(--muted); font-weight: 650; padding: 18px; background: #F8FAFC; border: 1px dashed var(--line); border-radius: 8px; }

.agenda-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; }
.view-switch { display: flex; flex-wrap: wrap; background: #EEF4FB; border: 1px solid var(--line); border-radius: 8px; padding: 4px; gap: 4px; max-width: 100%; }
.view-switch :is(a, button, .chart-toggle) { flex: 1 1 72px; min-width: 0; text-decoration: none; padding: 9px 12px; border-radius: 8px; color: #475569; font-weight: 750; white-space: nowrap; }
.view-switch :is(a, button, .chart-toggle).active { background: #fff; color: var(--blue); box-shadow: var(--shadow-soft); }
.calendar-board { background: #fff; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; box-shadow: var(--shadow-soft); }
.calendar-row { display: grid; grid-template-columns: 84px minmax(0, 1fr); border-bottom: 1px solid var(--line); min-height: 74px; }
.calendar-row:last-child { border-bottom: 0; }
.calendar-time { background: #F8FAFC; color: var(--muted); padding: 14px; font-weight: 800; font-size: 13px; }
.calendar-slot { padding: 10px; display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-start; }
.event-chip { border-radius: 8px; padding: 9px 11px; font-size: 12px; font-weight: 750; border: 1px solid transparent; }
.event-confirmada, .event-confirmado { background: #E9F9F1; color: #0F7B55; border-color: #BFEBD5; }
.event-pendiente, .event-programada { background: #FFF7E8; color: #A16207; border-color: #F9DA91; }
.event-cancelada { background: #FFF1F1; color: #B42318; border-color: #FAC5C5; }
.event-seguimiento { background: #E8F1FF; color: #0F62FE; border-color: #B9D4FF; }
.event-cirugia { background: #F1EAFE; color: #6D28D9; border-color: #D8C3FF; }
.event-reagendada { background: #F1F5F9; color: #0F172A; border-color: #CBD5E1; }
.timeline-list { display: grid; gap: 10px; }
.timeline-item { display: grid; grid-template-columns: 58px 1fr; gap: 10px; align-items: start; padding: 11px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.timeline-time { font-weight: 850; color: var(--blue); font-size: 13px; }
.quick-actions { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 20px; }
.quick-actions .btn { width: 100%; }
.insight-list { display: grid; gap: 10px; }
.insight-item { padding: 12px; border-left: 4px solid var(--blue); background: #F8FBFF; border-radius: 8px; color: #334155; }

@media (max-width: 1180px) { .chart-grid, .percent-summary, .quick-actions { grid-template-columns: 1fr 1fr; } .agenda-layout { grid-template-columns: 1fr; } }
@media (max-width: 720px) { .filter-panel, .filter-panel form { align-items: stretch; flex-direction: column; } .chart-grid, .percent-summary, .quick-actions { grid-template-columns: 1fr; } }

/* Dynamic dashboard refinements */
.filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(138px, 1fr)); gap: 14px; align-items: end; width: 100%; }
.filter-actions { display: flex; align-items: end; gap: 10px; }
.filter-actions .btn { width: 100%; justify-content: center; }
.slot-empty { color: var(--muted); font-size: 12px; }
.event-chip { display: inline-flex; flex-direction: column; gap: 2px; min-width: 190px; margin: 4px 6px 4px 0; text-decoration: none; color: var(--text); }
.event-chip span { color: var(--muted); font-size: 11px; font-weight: 650; }
.timeline-item { text-decoration: none; color: var(--text); }
.timeline-item small { display: block; color: var(--muted); margin-top: 3px; }
.muted { color: var(--muted); }
.quick-actions .btn { justify-content: center; }
.chart-card h3 { margin: 0 0 12px; font-size: 15px; color: var(--text); }
@media (max-width: 1120px) { .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .filter-grid { grid-template-columns: 1fr; } }

/* Premium analytics layout */
.chart-grid { grid-template-columns: minmax(0, 1.45fr) minmax(280px, .9fr); align-items: stretch; }
.chart-card { background: linear-gradient(180deg, #FFFFFF 0%, #FDFEFF 100%); border: 1px solid #DCE6F2; box-shadow: 0 18px 45px rgba(15, 23, 42, 0.07); }
.chart-card[data-chart-panel="scatter"] { grid-column: span 1; grid-row: span 2; min-height: 420px; }
.chart-card[data-chart-panel="scatter"] canvas { min-height: 340px; }
.chart-card[data-chart-panel="bar"], .chart-card[data-chart-panel="pie"] { min-height: 250px; }
.chart-card[data-chart-panel="bar"] canvas, .chart-card[data-chart-panel="pie"] canvas { min-height: 190px; }
.chart-toggle { border-radius: 12px; box-shadow: 0 8px 18px rgba(15, 98, 254, 0.08); }
@media (max-width: 1180px) { .chart-grid { grid-template-columns: 1fr; } .chart-card[data-chart-panel="scatter"] { grid-row: auto; min-height: 320px; } }
.chart-card[data-chart-panel="scatter"] { order: 1; }
.chart-card[data-chart-panel="bar"] { order: 2; }
.chart-card[data-chart-panel="pie"] { order: 3; }

/* Insight severity cards */
.insight-auto { position: relative; display: flex; align-items: flex-start; gap: 10px; border-left-width: 4px; }
.insight-auto::before { content: ""; width: 11px; height: 11px; border-radius: 999px; flex: 0 0 11px; margin-top: 4px; box-shadow: 0 0 0 4px rgba(15, 98, 254, .08); }
.insight-positive { background: #ECFDF3 !important; border-color: #9CE5BF !important; color: #075E42 !important; }
.insight-positive::before { background: #12B76A; box-shadow: 0 0 0 4px rgba(18, 183, 106, .13); }
.insight-warning { background: #FFFAEB !important; border-color: #FEDF89 !important; color: #8A5200 !important; }
.insight-warning::before { background: #F59E0B; box-shadow: 0 0 0 4px rgba(245, 158, 11, .16); }
.insight-negative { background: #FEF3F2 !important; border-color: #FDA29B !important; color: #912018 !important; }
.insight-negative::before { background: #EF4444; box-shadow: 0 0 0 4px rgba(239, 68, 68, .14); }
.insight-info { background: #EFF6FF !important; border-color: #B9D4FF !important; color: #174A95 !important; }
.insight-info::before { background: #0F62FE; box-shadow: 0 0 0 4px rgba(15, 98, 254, .12); }

/* Professional agenda */
.calendar-board { padding: 0; }
.calendar-board .panel-head { padding: 20px 20px 0; }
.calendar-row-pro { grid-template-columns: 96px minmax(0, 1fr); min-height: 62px; background: #fff; }
.calendar-row-pro:nth-child(even) { background: #FBFDFF; }
.calendar-time { font-variant-numeric: tabular-nums; border-right: 1px solid var(--line); }
.calendar-slot { min-height: 62px; align-items: stretch; }
.event-chip { min-width: 220px; max-width: 340px; border-radius: 10px; padding: 10px 12px; box-shadow: 0 10px 22px rgba(15, 23, 42, .07); color: #0F172A; transition: transform .16s ease, box-shadow .16s ease; }
.event-chip:hover { transform: translateY(-1px); box-shadow: 0 16px 30px rgba(15, 23, 42, .11); }
.event-chip strong { font-size: 12px; line-height: 1.35; }
.event-chip span { color: inherit; opacity: .78; text-transform: capitalize; }
.event-confirmada { background: #E9F9F1; color: #075E42; border-color: #9CE5BF; }
.event-pendiente, .event-programada { background: #FFFAEB; color: #8A5200; border-color: #FEDF89; }
.event-cancelada { background: #FEF3F2; color: #912018; border-color: #FDA29B; }
.event-seguimiento { background: #EFF6FF; color: #174A95; border-color: #B9D4FF; }
.event-cirugia { background: #F4F0FF; color: #5925DC; border-color: #D9D6FE; }
.event-reagendada { background: #F1F5F9; color: #334155; border-color: #CBD5E1; }
.slot-empty { display: inline-flex; align-items: center; color: #94A3B8; font-size: 12px; padding: 8px 0; }
.kpi-grid .card { position: relative; overflow: hidden; }
.kpi-grid .card::after { content: ""; position: absolute; inset: auto 14px 12px auto; width: 34px; height: 34px; border-radius: 12px; background: var(--blue-soft); opacity: .7; }

/* KPI semantic icons */
.kpi-grid .card::after {
    display: grid;
    place-items: center;
    background: var(--kpi-icon-bg, var(--blue-soft));
    color: var(--kpi-icon-color, var(--blue));
    opacity: 1;
    background-color: var(--kpi-icon-bg, var(--blue-soft));
    background-image: none;
}
.kpi-grid .card::before {
    content: "";
    position: absolute;
    right: 22px;
    bottom: 20px;
    width: 20px;
    height: 20px;
    z-index: 1;
    background-color: var(--kpi-icon-color, var(--blue));
    -webkit-mask: var(--kpi-icon) center / contain no-repeat;
    mask: var(--kpi-icon) center / contain no-repeat;
}
.kpi-grid .card.kpi-pacientes,
.kpi-grid .card.kpi-usuarios { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm8 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM2 21a7 7 0 0 1 14 0H2Zm12.5 0a8.7 8.7 0 0 0-2.1-5.7A5.5 5.5 0 0 1 22 19v2h-7.5Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-citas,
.kpi-grid .card.kpi-agenda { --kpi-icon-bg: #F0F7FF; --kpi-icon-color: #1E88E5; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M7 2h2v3h6V2h2v3h3a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h3V2Zm13 8H4v10h16V10Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-ingresos,
.kpi-grid .card.kpi-pagos,
.kpi-grid .card.kpi-facturacion { --kpi-icon-bg: #ECFDF3; --kpi-icon-color: #0F9F6E; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 6h18v12H3V6Zm2 2v8h14V8H5Zm7 1a3 3 0 1 1 0 6 3 3 0 0 1 0-6Zm-5 1h2v2H7v-2Zm8 2h2v2h-2v-2Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-utilidad { --kpi-icon-bg: #EEFDF7; --kpi-icon-color: #059669; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 17h3v3H4v-3Zm5-5h3v8H9v-8Zm5-4h3v12h-3V8Zm5-5h3v17h-3V3ZM4 14l6-6 4 4 6-8 2 1.5-7.8 10.4-4.1-4.1L5.4 16.4 4 14Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-gastos { --kpi-icon-bg: #FFFAEB; --kpi-icon-color: #D97706; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 4h16v16H4V4Zm3 4h10v2H7V8Zm0 4h7v2H7v-2Zm0 4h10v2H7v-2Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-impuestos,
.kpi-grid .card.kpi-isr,
.kpi-grid .card.kpi-iva,
.kpi-grid .card.kpi-fiscal { --kpi-icon-bg: #FFF7E8; --kpi-icon-color: #B76A00; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M6 2h9l5 5v15H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm8 1.5V8h4.5L14 3.5ZM8 12h8v2H8v-2Zm0 4h8v2H8v-2Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-pendientes,
.kpi-grid .card.kpi-cobranza { --kpi-icon-bg: #FEF3F2; --kpi-icon-color: #D94848; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm1 5v6h-2V7h2Zm0 8v2h-2v-2h2Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-cirugias { --kpi-icon-bg: #F4F0FF; --kpi-icon-color: #6D28D9; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M10 3h4v6h6v4h-6v6h-4v-6H4V9h6V3Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-reportes { --kpi-icon-bg: #F1F5F9; --kpi-icon-color: #475569; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M5 3h14v18H5V3Zm3 4v2h8V7H8Zm0 4v2h8v-2H8Zm0 4v2h5v-2H8Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-confirmadas { --kpi-icon-bg: #ECFDF3; --kpi-icon-color: #12B76A; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m9 16.2-3.5-3.5L4 14.2 9 19 20.5 7.5 19 6 9 16.2Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-canceladas { --kpi-icon-bg: #FEF3F2; --kpi-icon-color: #EF4444; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='m6.4 5 12.6 12.6-1.4 1.4L5 6.4 6.4 5Zm11.2 0L19 6.4 6.4 19 5 17.6 17.6 5Z'/%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-default { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 13h4v7H4v-7Zm6-9h4v16h-4V4Zm6 5h4v11h-4V9Z'/%3E%3C/svg%3E"); }

/* Fiscal KPI icon overrides - Lucide-style SVG masks */
.kpi-grid .card.kpi-isr {
    --kpi-icon-bg: rgba(239, 68, 68, .10);
    --kpi-icon-color: #DC2626;
    --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M19 5 5 19M6.5 7.5h.01M17.5 16.5h.01M8 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Zm11 9a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0Z'/%3E%3C/svg%3E");
}
.kpi-grid .card.kpi-iva {
    --kpi-icon-bg: rgba(15, 98, 254, .10);
    --kpi-icon-color: #0F62FE;
    --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1-2-1Zm4 6h8M8 12h8M8 16h5'/%3E%3C/svg%3E");
}
.kpi-grid .card.kpi-no-deducibles {
    --kpi-icon-bg: rgba(245, 158, 11, .16);
    --kpi-icon-color: #D97706;
    --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M20 13c0 5-3.5 7.5-8 9-4.5-1.5-8-4-8-9V5l8-3 8 3v8ZM12 8v4M12 16h.01'/%3E%3C/svg%3E");
}
.kpi-grid .card.kpi-fiscal {
    --kpi-icon-bg: rgba(109, 93, 251, .12);
    --kpi-icon-color: #6D5DFB;
    --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M12 3v18M5 6h14M6 6l-3 7h6L6 6Zm12 0-3 7h6l-3-7ZM8 21h8'/%3E%3C/svg%3E");
}

/* Interactive charts and KPI states */
.chart-tooltip { position: fixed; top: 12px; right: 12px; z-index: 9999; min-width: 190px; background: rgba(15, 23, 42, .94); color: #fff; border-radius: 10px; padding: 10px 12px; box-shadow: 0 18px 40px rgba(15, 23, 42, .24); font-size: 12px; line-height: 1.45; pointer-events: none; opacity: 0; transform: translateY(4px); transition: opacity .12s ease, transform .12s ease; }
.chart-tooltip.show { opacity: 1; transform: translateY(0); }
.chart-tooltip strong { display: block; font-size: 13px; margin-bottom: 3px; }
.chart-legend i[data-chart-color="#3498DB"]{background:#3498DB}
.chart-legend i[data-chart-color="#6C3483"]{background:#6C3483}
.chart-legend i[data-chart-color="#D35400"]{background:#D35400}
.chart-legend i[data-chart-color="#16A085"]{background:#16A085}
.chart-legend i[data-chart-color="#C0392B"]{background:#C0392B}
.chart-legend i[data-chart-color="#B8956A"]{background:#B8956A}
.chart-legend i[data-chart-color="#884EA0"]{background:#884EA0}
.chart-legend i[data-chart-color="#1A5276"]{background:#1A5276}
.kpi-grid .card { cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.kpi-grid .card:hover { transform: translateY(-2px); box-shadow: 0 18px 42px rgba(15, 23, 42, .10); }
.kpi-grid .card.selected { border-color: #0F62FE; box-shadow: 0 0 0 3px rgba(15, 98, 254, .10), 0 18px 42px rgba(15, 23, 42, .10); }

/* Professional week and month calendar */
.week-calendar { display: grid; grid-template-columns: clamp(42px, 5vw, 68px) repeat(7, minmax(0, 1fr)); overflow-x: visible; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.week-header, .week-time, .week-slot { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.week-header { background: #F8FAFC; padding: 12px; min-height: 58px; }
.week-header strong { display: block; font-size: 13px; color: #0F172A; }
.week-header span { color: var(--muted); font-size: 12px; }
.time-spacer { background: #EEF4FB; }
.week-time { background: #F8FAFC; color: var(--muted); padding: 10px; font-weight: 800; font-size: 12px; }
.week-slot { min-height: 72px; padding: 6px; background: #fff; }
.event-chip.mini { min-width: 0; width: 100%; max-width: none; padding: 7px 8px; margin: 0 0 6px; font-size: 11px; }
.event-chip.mini strong { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.month-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); overflow-x: visible; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.month-head { background: #F8FAFC; color: #475569; font-weight: 800; font-size: 12px; padding: 12px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); text-transform: uppercase; }
.month-cell { min-height: 138px; padding: 8px; background: #fff; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.month-cell.muted-cell { background: #F8FAFC; opacity: .68; }
.month-date { font-weight: 850; color: #0F172A; margin-bottom: 6px; }
@media (max-width: 1180px) { .week-calendar { grid-template-columns: clamp(38px, 5vw, 58px) repeat(7, minmax(0, 1fr)); } .month-calendar { grid-template-columns: repeat(7, minmax(0, 1fr)); } }

/* Role login and access polish */
.role-demo-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
.role-demo-card { border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 12px; text-align: left; cursor: pointer; box-shadow: var(--shadow-soft); transition: transform .15s ease, border-color .15s ease; }
.role-demo-card:hover { transform: translateY(-1px); border-color: #0F62FE; }
.role-demo-card span { display: inline-flex; padding: 4px 8px; border-radius: 999px; background: var(--blue-soft); color: var(--blue); font-size: 10px; font-weight: 850; text-transform: uppercase; margin-bottom: 8px; }
.role-demo-card strong { display: block; font-size: 13px; color: #0F172A; }
.role-demo-card small { display: block; color: var(--muted); margin-top: 3px; font-size: 11px; }
body.role-admin .financial-only, body.role-admin .fiscal-only, body.role-admin .super-only,
body.role-fiscal .operational-edit, body.role-fiscal .admin-only, body.role-fiscal .super-only,
body.role-medico_principal .super-only { display: none !important; }
.access-denied-note { padding: 12px; border-radius: 8px; background: #FEF3F2; color: #912018; border: 1px solid #FDA29B; }
@media (max-width: 560px) { .role-demo-grid { grid-template-columns: 1fr; } }
.report-section-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 0; }
.report-section-grid .card { min-height: 112px; }

/* Premium admin panel */
.admin-kpi-grid .kpi-value { font-size: 25px; }
.admin-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.admin-card {
    position: relative;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr) 24px;
    align-items: center;
    gap: 14px;
    min-height: 142px;
    padding: 20px;
    text-decoration: none;
    overflow: hidden;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.admin-card:hover { transform: translateY(-2px); border-color: #B9D4FF; box-shadow: var(--shadow); }
.admin-card::after {
    content: "";
    position: absolute;
    right: -26px;
    top: -26px;
    width: 92px;
    height: 92px;
    border-radius: 28px;
    background: #E8F1FF;
    opacity: .75;
}
.admin-card h3 { margin: 0 0 7px; font-size: 17px; color: #0F172A; }
.admin-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.admin-card-icon {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--blue-soft);
    color: var(--blue);
}
.admin-card-icon::before,
.admin-card-arrow::before {
    content: "";
    display: block;
    background-color: currentColor;
    -webkit-mask: var(--admin-icon) center / contain no-repeat;
    mask: var(--admin-icon) center / contain no-repeat;
}
.admin-card-icon::before { width: 25px; height: 25px; }
.admin-card-arrow {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    color: var(--blue);
    z-index: 1;
}
.admin-card-arrow::before {
    width: 18px;
    height: 18px;
    --admin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M13 5 20 12l-7 7-1.4-1.4 4.6-4.6H4v-2h12.2l-4.6-4.6L13 5Z'/%3E%3C/svg%3E");
}
.admin-card-users .admin-card-icon,
.admin-card-building .admin-card-icon { background: #E8F1FF; color: #0F62FE; }
.admin-card-plans .admin-card-icon,
.admin-card-refresh .admin-card-icon { background: #ECFDF3; color: #0F9F6E; }
.admin-card-card .admin-card-icon,
.admin-card-wallet .admin-card-icon { background: #FFF7E8; color: #B76A00; }
.admin-card-users { --admin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm8 1a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM2 21a7 7 0 0 1 14 0H2Zm12.5 0a8.7 8.7 0 0 0-2.1-5.7A5.5 5.5 0 0 1 22 19v2h-7.5Z'/%3E%3C/svg%3E"); }
.admin-card-building { --admin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 21V3h11v5h5v13h-6v-4H10v4H4Zm3-14h2v2H7V7Zm0 4h2v2H7v-2Zm4-4h2v2h-2V7Zm0 4h2v2h-2v-2Zm4 1h2v2h-2v-2Z'/%3E%3C/svg%3E"); }
.admin-card-plans { --admin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 4h16v4H4V4Zm0 6h7v10H4V10Zm9 0h7v10h-7V10Z'/%3E%3C/svg%3E"); }
.admin-card-refresh { --admin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M17.7 6.3A8 8 0 0 0 4.3 10H2a10 10 0 0 1 17.1-5.1L22 2v8h-8l3.7-3.7ZM6.3 17.7A8 8 0 0 0 19.7 14H22A10 10 0 0 1 4.9 19.1L2 22v-8h8l-3.7 3.7Z'/%3E%3C/svg%3E"); }
.admin-card-card { --admin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 6h18v12H3V6Zm2 2v2h14V8H5Zm0 5v3h14v-3H5Z'/%3E%3C/svg%3E"); }
.admin-card-wallet { --admin-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 5h15a2 2 0 0 1 2 2v2h-5a4 4 0 0 0 0 8h5v2a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2Zm12 6h6v4h-6a2 2 0 0 1 0-4Z'/%3E%3C/svg%3E"); }

.nav-link[href*='admin'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 2 4 5v6c0 5 3.4 9.7 8 11 4.6-1.3 8-6 8-11V5l-8-3Zm1 5v4h4v2h-4v4h-2v-4H7v-2h4V7h2Z'/%3E%3C/svg%3E"); }

@media (max-width: 1180px) { .admin-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .admin-card-grid { grid-template-columns: 1fr; } .admin-card { grid-template-columns: 44px minmax(0, 1fr); } .admin-card-arrow { display: none; } }

/* Stable Lucide-style icon system */
.app-shell { grid-template-columns: 224px minmax(0, 1fr); }
.sidebar {
    width: 224px;
    min-width: 224px;
    padding: 16px 10px;
    overflow-x: hidden;
}
.sidebar-brand { min-height: 54px; flex: 0 0 auto; }
.nav-group { display: grid; gap: 6px; align-content: start; }
.nav-link {
    width: 100%;
    min-height: 40px;
    height: 40px;
    padding: 0 10px;
    gap: 9px;
    border: 1px solid transparent;
    line-height: 1;
    flex: 0 0 40px;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.nav-link:hover,
.nav-link.active {
    transform: none;
    border-color: transparent;
}
.nav-dot {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px;
    flex: 0 0 22px;
    display: inline-grid !important;
    place-items: center;
    background: transparent !important;
    border-radius: 0 !important;
    opacity: 1 !important;
}
.nav-dot::before {
    content: "" !important;
    width: 19px !important;
    height: 19px !important;
    display: block !important;
    background: currentColor !important;
    border-radius: 0 !important;
    -webkit-mask: var(--nav-icon, var(--icon-circle)) center / contain no-repeat !important;
    mask: var(--nav-icon, var(--icon-circle)) center / contain no-repeat !important;
}
.nav-link[data-nav-icon="bar-chart-3"],
.nav-link[href*="/admin/"] { --nav-icon: var(--icon-bar-chart-3); }
.nav-link[data-nav-icon="layout-dashboard"],
.nav-link[href*="/dashboard"] { --nav-icon: var(--icon-layout-dashboard); }
.nav-link[data-nav-icon="building-2"],
.nav-link[href*="/clientes"],
.nav-link[href*="/empresas"] { --nav-icon: var(--icon-building-2); }
.nav-link[data-nav-icon="users"],
.nav-link[href*="/usuarios"],
.nav-link[href*="/pacientes"] { --nav-icon: var(--icon-users); }
.nav-link[data-nav-icon="credit-card"],
.nav-link[href*="/suscripciones"] { --nav-icon: var(--icon-credit-card); }
.nav-link[data-nav-icon="refresh-cw"],
.nav-link[href*="/renovaciones"] { --nav-icon: var(--icon-refresh-cw); }
.nav-link[data-nav-icon="wallet"],
.nav-link[href*="/stripe"],
.nav-link[href*="/mercado-pago"],
.nav-link[href*="/finanzas"] { --nav-icon: var(--icon-wallet); }
.nav-link[data-nav-icon="calendar-days"],
.nav-link[href*="/citas"] { --nav-icon: var(--icon-calendar-days); }
.nav-link[data-nav-icon="activity"],
.nav-link[href*="/cirugias"] { --nav-icon: var(--icon-activity); }
.nav-link[data-nav-icon="receipt-text"],
.nav-link[href*="/fiscal"],
.nav-link[href*="/facturas"] { --nav-icon: var(--icon-receipt-text); }
.nav-link[data-nav-icon="file-bar-chart"] { --nav-icon: var(--icon-file-bar-chart); }
.nav-link[data-nav-icon="file-text"],
.nav-link[href*="/reportes"] { --nav-icon: var(--icon-file-text); }
.nav-link[data-nav-icon="settings"],
.nav-link[href*="/configuracion"] { --nav-icon: var(--icon-settings); }
.nav-link[href*="/caja"] { --nav-icon: var(--icon-wallet); }
.nav-link[data-nav-icon="log-out"],
.nav-link[href*="/login"] { --nav-icon: var(--icon-log-out); }

.chart-toggle-group { align-items: center; min-height: 42px; }
.chart-toggle {
    min-height: 38px;
    padding: 9px 12px;
    border-width: 1px;
    box-shadow: none;
    transform: none !important;
}
.chart-toggle:hover { transform: none !important; }
.chart-toggle.active,
.chart-toggle[aria-pressed="true"] {
    background: var(--blue-soft);
    border-color: #B9D4FF;
    color: var(--blue);
}
.chart-card[hidden] { display: none !important; }

.kpi-grid .card::after {
    width: 38px;
    height: 38px;
    right: 14px;
    bottom: 14px;
    border-radius: 999px;
    background: var(--kpi-icon-bg, var(--blue-soft)) !important;
}
.kpi-grid .card::before {
    width: 20px;
    height: 20px;
    right: 23px;
    bottom: 23px;
    background-color: var(--kpi-icon-color, var(--blue));
    -webkit-mask: var(--kpi-icon, var(--icon-bar-chart-3)) center / contain no-repeat !important;
    mask: var(--kpi-icon, var(--icon-bar-chart-3)) center / contain no-repeat !important;
}
.kpi-grid .card.kpi-ingresos { --kpi-icon-bg: #ECFDF3; --kpi-icon-color: #0F9F6E; --kpi-icon: var(--icon-banknote); }
.kpi-grid .card.kpi-pagos { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: var(--icon-wallet); }
.kpi-grid .card.kpi-facturas,
.kpi-grid .card.kpi-facturacion { --kpi-icon-bg: #EFF6FF; --kpi-icon-color: #1E88E5; --kpi-icon: var(--icon-receipt-text); }
.kpi-grid .card.kpi-impuestos,
.kpi-grid .card.kpi-isr,
.kpi-grid .card.kpi-iva,
.kpi-grid .card.kpi-fiscal { --kpi-icon-bg: #FFF7E8; --kpi-icon-color: #B76A00; --kpi-icon: var(--icon-percent); }
.kpi-grid .card.kpi-medicos-activos,
.kpi-grid .card.kpi-confirmadas { --kpi-icon-bg: #ECFDF3; --kpi-icon-color: #12B76A; --kpi-icon: var(--icon-user-check); }
.kpi-grid .card.kpi-medicos-inactivos,
.kpi-grid .card.kpi-canceladas { --kpi-icon-bg: #FEF3F2; --kpi-icon-color: #EF4444; --kpi-icon: var(--icon-user-x); }
.kpi-grid .card.kpi-renovaciones { --kpi-icon-bg: #F0FDF4; --kpi-icon-color: #16A34A; --kpi-icon: var(--icon-refresh-cw); }
.kpi-grid .card.kpi-tickets { --kpi-icon-bg: #F4F0FF; --kpi-icon-color: #6D28D9; --kpi-icon: var(--icon-life-buoy); }
.kpi-grid .card.kpi-reuniones { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: var(--icon-calendar-check); }
.kpi-grid .card.kpi-clientes { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: var(--icon-building-2); }
.kpi-grid .card.kpi-suscripciones { --kpi-icon-bg: #FFF7E8; --kpi-icon-color: #B76A00; --kpi-icon: var(--icon-credit-card); }
.kpi-grid .card.kpi-pacientes,
.kpi-grid .card.kpi-usuarios { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: var(--icon-users); }
.kpi-grid .card.kpi-citas,
.kpi-grid .card.kpi-agenda { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #1E88E5; --kpi-icon: var(--icon-calendar-days); }
.kpi-grid .card.kpi-cirugias { --kpi-icon-bg: #F4F0FF; --kpi-icon-color: #6D28D9; --kpi-icon: var(--icon-activity); }
.kpi-grid .card.kpi-pendientes,
.kpi-grid .card.kpi-cobranza { --kpi-icon-bg: #FEF3F2; --kpi-icon-color: #D94848; --kpi-icon: var(--icon-alert-circle); }
.kpi-grid .card.kpi-reportes { --kpi-icon-bg: #F1F5F9; --kpi-icon-color: #475569; --kpi-icon: var(--icon-file-text); }

.admin-card-icon {
    border-radius: 999px;
    background: var(--admin-icon-bg, var(--blue-soft)) !important;
    color: var(--admin-icon-color, var(--blue)) !important;
}
.admin-card-icon::before {
    -webkit-mask: var(--admin-icon, var(--icon-settings)) center / contain no-repeat !important;
    mask: var(--admin-icon, var(--icon-settings)) center / contain no-repeat !important;
}
.admin-card-users { --admin-icon-bg: #E8F1FF; --admin-icon-color: #0F62FE; --admin-icon: var(--icon-users); }
.admin-card-building { --admin-icon-bg: #E8F1FF; --admin-icon-color: #0F62FE; --admin-icon: var(--icon-building-2); }
.admin-card-plans { --admin-icon-bg: #FFF7E8; --admin-icon-color: #B76A00; --admin-icon: var(--icon-credit-card); }
.admin-card-refresh { --admin-icon-bg: #ECFDF3; --admin-icon-color: #0F9F6E; --admin-icon: var(--icon-refresh-cw); }
.admin-card-card { --admin-icon-bg: #EFF6FF; --admin-icon-color: #1E88E5; --admin-icon: var(--icon-credit-card); }
.admin-card-wallet { --admin-icon-bg: #E8F1FF; --admin-icon-color: #0F62FE; --admin-icon: var(--icon-wallet); }

:root {
    --icon-circle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='8' fill='black'/%3E%3C/svg%3E");
    --icon-bar-chart-3: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 3v18h18'/%3E%3Cpath d='M18 17V9'/%3E%3Cpath d='M13 17V5'/%3E%3Cpath d='M8 17v-3'/%3E%3C/g%3E%3C/svg%3E");
    --icon-layout-dashboard: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='9' rx='1.5'/%3E%3Crect x='14' y='3' width='7' height='5' rx='1.5'/%3E%3Crect x='14' y='12' width='7' height='9' rx='1.5'/%3E%3Crect x='3' y='16' width='7' height='5' rx='1.5'/%3E%3C/g%3E%3C/svg%3E");
    --icon-building-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18'/%3E%3Cpath d='M6 12H4a2 2 0 0 0-2 2v8h20v-8a2 2 0 0 0-2-2h-2'/%3E%3Cpath d='M10 6h4M10 10h4M10 14h4M10 18h4'/%3E%3C/g%3E%3C/svg%3E");
    --icon-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/g%3E%3C/svg%3E");
    --icon-credit-card: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='5' width='20' height='14' rx='2'/%3E%3Cpath d='M2 10h20M6 15h4'/%3E%3C/g%3E%3C/svg%3E");
    --icon-refresh-cw: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 0 1-15 6.7L3 16'/%3E%3Cpath d='M3 12a9 9 0 0 1 15-6.7L21 8'/%3E%3Cpath d='M3 21v-5h5M21 3v5h-5'/%3E%3C/g%3E%3C/svg%3E");
    --icon-wallet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 7V5a2 2 0 0 0-2-2H5a3 3 0 0 0 0 6h15a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2H5a3 3 0 0 1-3-3V6'/%3E%3Cpath d='M18 13h.01'/%3E%3C/g%3E%3C/svg%3E");
    --icon-calendar-days: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M8 14h.01M12 14h.01M16 14h.01M8 18h.01M12 18h.01M16 18h.01'/%3E%3C/g%3E%3C/svg%3E");
    --icon-calendar-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18M9 16l2 2 4-4'/%3E%3C/g%3E%3C/svg%3E");
    --icon-activity: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M22 12h-4l-3 8L9 4l-3 8H2'/%3E%3C/svg%3E");
    --icon-receipt-text: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1-2-1Z'/%3E%3Cpath d='M8 7h8M8 11h8M8 15h5'/%3E%3C/g%3E%3C/svg%3E");
    --icon-file-text: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M8 13h8M8 17h8M8 9h2'/%3E%3C/g%3E%3C/svg%3E");
    --icon-file-bar-chart: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M8 18v-4M12 18v-7M16 18v-2'/%3E%3C/g%3E%3C/svg%3E");
    --icon-settings: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.2 2h-.4l-1 3a7 7 0 0 0-1.7.7l-2.8-1.4-.3.3-2 3 .2.4 2.5 1.9A7 7 0 0 0 6.5 12l-2.3 2.1-.1.4 2 3 .3.2 2.9-1.2c.5.3 1 .5 1.6.7l1 2.8h.4l1-2.8c.6-.2 1.1-.4 1.6-.7l2.9 1.2.3-.2 2-3-.1-.4-2.3-2.1c0-.7-.1-1.4-.3-2.1L20 8l.1-.4-2-3-.3-.3-2.8 1.4c-.5-.3-1.1-.5-1.7-.7l-1-3Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");
    --icon-log-out: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5M21 12H9'/%3E%3C/g%3E%3C/svg%3E");
    --icon-banknote: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='6' width='20' height='12' rx='2'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M6 12h.01M18 12h.01'/%3E%3C/g%3E%3C/svg%3E");
    --icon-percent: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 5 5 19'/%3E%3Ccircle cx='7' cy='7' r='2'/%3E%3Ccircle cx='17' cy='17' r='2'/%3E%3C/g%3E%3C/svg%3E");
    --icon-user-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='m16 11 2 2 4-4'/%3E%3C/g%3E%3C/svg%3E");
    --icon-user-x: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='m17 8 5 5M22 8l-5 5'/%3E%3C/g%3E%3C/svg%3E");
    --icon-life-buoy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='m4.9 4.9 4.3 4.3M14.8 14.8l4.3 4.3M19.1 4.9l-4.3 4.3M9.2 14.8l-4.3 4.3'/%3E%3C/g%3E%3C/svg%3E");
    --icon-alert-circle: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/g%3E%3C/svg%3E");
}

.nav-link[data-nav-icon="file-bar-chart"] { --nav-icon: var(--icon-file-bar-chart) !important; }

/* SUPER_ADMIN SaaS module tabs */
.saas-tabs {
    padding: 12px;
    margin-bottom: 18px;
}
.saas-tab-list {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.saas-tab {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 10px 14px;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: #F1F5F9;
    color: #334155;
    font-weight: 800;
    font-size: 13px;
    text-decoration: none !important;
    line-height: 1;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.saas-tab:hover {
    background: var(--blue-soft);
    border-color: #B9D4FF;
    color: var(--blue);
    text-decoration: none !important;
}
.saas-tab.active,
.saas-tab[aria-current="page"] {
    background: var(--blue);
    border-color: var(--blue);
    color: #FFFFFF;
    box-shadow: 0 10px 22px rgba(15,98,254,.20);
    text-decoration: none !important;
}
.saas-tab-icon {
    width: 18px;
    height: 18px;
    flex: 0 0 20px;
    background: currentColor;
    -webkit-mask: var(--saas-tab-icon, var(--icon-circle)) center / contain no-repeat;
    mask: var(--saas-tab-icon, var(--icon-circle)) center / contain no-repeat;
}
.saas-tab[data-saas-tab="clientes"] { --saas-tab-icon: var(--icon-users); }
.saas-tab[data-saas-tab="suscripciones"] { --saas-tab-icon: var(--icon-credit-card); }
.saas-tab[data-saas-tab="pagos"] { --saas-tab-icon: var(--icon-wallet); }
.saas-tab[data-saas-tab="renovaciones"] { --saas-tab-icon: var(--icon-refresh-cw); }
.saas-tabs a,
.saas-tab-list a { text-decoration: none !important; }

@media (max-width: 720px) {
    .saas-tab-list { display: grid; grid-template-columns: 1fr; }
    .saas-tab { width: 100%; justify-content: flex-start; }
}

/* UX refinements: typography, compact agenda and patient follow-up */
html,
body,
button,
input,
select,
textarea,
table,
th,
td,
.btn,
.badge,
.card,
.panel {
    font-family: Inter, Poppins, Montserrat, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
body,
input,
select,
textarea,
td {
    font-weight: 400;
}
.panel-subtitle,
.kpi-label,
label,
.timeline-item small,
.event-chip span {
    font-weight: 500;
}
.panel-title,
.topbar h1,
.kanban-title,
th {
    font-weight: 600;
}
.kpi-value {
    font-weight: 700;
}
.btn,
.chart-toggle,
.badge {
    font-weight: 600;
}
.calendar-row-pro {
    grid-template-columns: 86px minmax(0, 1fr);
    min-height: 38px;
}
.calendar-row-pro .calendar-time {
    padding: 9px 10px;
    font-weight: 600;
}
.calendar-row-pro .calendar-slot {
    min-height: 38px;
    padding: 5px 8px;
}
.slot-empty {
    padding: 1px 0;
    font-size: 11px;
}
.week-header {
    min-height: 50px;
    padding: 10px 12px;
}
.week-time {
    padding: 8px 9px;
    font-weight: 600;
}
.week-slot {
    min-height: 42px;
    padding: 5px;
}
.event-chip {
    padding: 8px 10px;
}
.event-chip.mini {
    padding: 6px 7px;
    margin-bottom: 5px;
}
.month-cell {
    min-height: 112px;
}
.clinical-kanban .kanban-col {
    min-height: 0;
}
.compact-kanban-card {
    padding: 10px 11px;
    margin-bottom: 8px;
}
.compact-kanban-card h3 {
    font-size: 13px;
    margin-bottom: 6px;
}
.compact-kanban-card p {
    margin: 3px 0;
}
.kanban-more {
    border: 1px dashed #B9D4FF;
    background: var(--blue-soft);
    color: var(--blue);
    border-radius: 8px;
    padding: 9px 10px;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
}

.analysis-divider {
    display: grid;
    grid-template-columns: minmax(30px, 1fr) auto minmax(30px, 1fr);
    align-items: center;
    gap: 14px;
    margin: 28px 0 18px;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 12px;
    font-weight: 700;
    user-select: none;
}
.analysis-divider span {
    height: 1px;
    background: var(--line);
}

/* Compact agenda density */
.calendar-board .panel-head {
    margin-bottom: 10px;
}
.calendar-row-pro {
    min-height: 30px;
}
.calendar-row-pro .calendar-slot {
    min-height: 30px;
}
.week-slot {
    min-height: 30px;
}
.week-time {
    min-height: 30px;
}
.event-chip.mini {
    line-height: 1.25;
}

/* Global non-editable cursor fix */
body,
.app-shell,
.sidebar,
.sidebar-brand,
.sidebar-title,
.nav-group,
.topbar,
.content,
.panel,
.panel-head,
.panel-title,
.panel-subtitle,
.card,
.kpi-label,
.kpi-value,
.kpi-trend,
.badge,
.table-wrap,
table,
thead,
tbody,
tr,
th,
td,
.calendar-board,
.calendar-row,
.calendar-time,
.calendar-slot,
.week-calendar,
.week-header,
.week-time,
.week-slot,
.month-calendar,
.month-head,
.month-cell,
.timeline-list,
.timeline-item,
.chart-grid,
.chart-card,
canvas,
.kanban,
.kanban-col,
.kanban-title,
.kanban-card,
.percent-summary,
.percent-pill,
.report-card,
.admin-card,
.saas-tabs,
.saas-tab-list,
.analysis-divider,
.muted,
.slot-empty {
    cursor: default;
    user-select: none;
}
a,
button,
.btn,
.chart-toggle,
.nav-link,
.saas-tab,
.event-chip,
.timeline-item,
.role-demo-card {
    cursor: pointer;
}
input,
textarea,
select,
.input,
[contenteditable="true"] {
    cursor: text;
    user-select: text;
}
select,
option,
input[type="date"],
input[type="datetime-local"],
input[type="checkbox"],
input[type="radio"],
input[type="file"] {
    cursor: pointer;
}

/* Intelligent insight and fiscal optimization components */
.smart-insight {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    align-items: flex-start;
    background: #EFF6FF;
    border: 1px solid #CFE0FF;
    border-left: 4px solid var(--blue);
    border-radius: 0 12px 12px 0;
    padding: 16px 18px;
    margin-bottom: 20px;
    box-shadow: var(--shadow-soft);
}
.smart-insight h2 {
    margin: 0 0 6px;
    font-size: 16px;
    font-weight: 700;
    color: #0B3B8F;
}
.smart-insight p {
    margin: 0;
    color: #334155;
    font-size: 14px;
    line-height: 1.55;
}
.smart-insight-icon {
    width: 42px;
    height: 42px;
    border-radius: 999px;
    background: #DBEAFE;
    color: var(--blue);
    display: grid;
    place-items: center;
}
.smart-insight-icon::before {
    content: "";
    width: 21px;
    height: 21px;
    background: currentColor;
    -webkit-mask: var(--icon-alert-circle) center / contain no-repeat;
    mask: var(--icon-alert-circle) center / contain no-repeat;
}

.fiscal-risk-low {
    --kpi-icon-bg: #ECFDF3 !important;
    --kpi-icon-color: #0F9F6E !important;
}
.fiscal-risk-medium {
    --kpi-icon-bg: #FFF7E8 !important;
    --kpi-icon-color: #B76A00 !important;
}
.fiscal-risk-high {
    --kpi-icon-bg: #FFF1F1 !important;
    --kpi-icon-color: #D94848 !important;
}

/* Executive reports center */
.report-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.report-preview-card {
    border-color: #DCE6F2;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.report-preview-card.active {
    border-color: #0F62FE;
    box-shadow: 0 0 0 3px rgba(15, 98, 254, .10), 0 18px 42px rgba(15, 23, 42, .08);
}
.report-preview-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}
.report-preview-head h3,
.report-top-grid h3 {
    margin: 8px 0 0;
    font-size: 16px;
    font-weight: 800;
}
.report-preview-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border-radius: 14px;
    background: #E8F1FF;
    position: relative;
}
.report-preview-icon::before {
    content: "";
    position: absolute;
    inset: 11px;
    background: #0F62FE;
    -webkit-mask: var(--icon-file-text) center / contain no-repeat;
    mask: var(--icon-file-text) center / contain no-repeat;
}
.report-checklist {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 8px;
}
.report-checklist li {
    color: #475569;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}
.report-checklist li::before {
    content: "";
    width: 16px;
    height: 16px;
    border-radius: 999px;
    background: #ECFDF3;
    box-shadow: inset 0 0 0 4px #12B76A;
    flex: 0 0 16px;
}
.report-top-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.report-top-grid .card table {
    width: 100%;
    margin-top: 12px;
}
.report-top-grid .card td {
    padding: 9px 0;
    border-bottom: 1px solid #EEF4FB;
    font-size: 13px;
}
.report-top-grid .card td:last-child {
    text-align: right;
    font-weight: 800;
    color: #0F62FE;
}
.insight-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.insight-auto {
    border: 1px solid #DCE6F2;
    border-left: 4px solid #0F62FE;
    border-radius: 10px;
    background: #F8FBFF;
    padding: 14px 16px;
    color: #334155;
    font-weight: 650;
}
@media (max-width: 980px) {
    .report-preview-grid,
    .report-top-grid,
    .insight-list {
        grid-template-columns: 1fr;
    }
}

/* Formato analitico unificado: dos graficas arriba y dona a ancho completo. */
.chart-grid:has(> .chart-card[data-chart-panel]) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto !important;
    gap: 16px !important;
    align-items: stretch !important;
}
.chart-grid > .chart-card[data-chart-panel="scatter"] {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
}
.chart-grid > .chart-card[data-chart-panel="bar"] {
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
}
.chart-grid > .chart-card[data-chart-panel="pie"] {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
}
.chart-grid > .chart-card[data-chart-panel="scatter"] canvas,
.chart-grid > .chart-card[data-chart-panel="bar"] canvas {
    height: 390px !important;
    min-height: 390px !important;
    flex: 0 0 auto !important;
}
.chart-grid > .chart-card[data-chart-panel="pie"] canvas {
    height: 420px !important;
    min-height: 420px !important;
    flex: 0 0 auto !important;
}
.chart-grid .chart-legend {
    gap: 8px !important;
    margin-top: 6px !important;
    padding-top: 8px !important;
}
.chart-grid .chart-legend-item {
    min-height: 34px !important;
    padding: 6px 9px !important;
}
.chart-grid .chart-legend-item strong,
.chart-grid .chart-legend-item em {
    font-size: 12px !important;
}

/* Reportes: ocho KPI en dos filas y tops ejecutivos en una sola linea. */
.page-reportes .report-section-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
.page-reportes .report-section-grid .card {
    min-width: 0;
    padding: 14px !important;
}
.page-reportes .report-top-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
}
.page-reportes .report-top-grid .card {
    min-width: 0;
    padding: 14px !important;
}

.patient-history-pagination {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    color: #64748B;
    font-size: 12px;
    font-weight: 600;
}
.patient-history-pagination .btn:disabled { opacity: .5; cursor: not-allowed; }

@media (max-width: 1100px) {
    .page-reportes .report-section-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .page-reportes .report-top-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 760px) {
    .chart-grid:has(> .chart-card[data-chart-panel]) { grid-template-columns: 1fr !important; }
    .chart-grid > .chart-card[data-chart-panel] { grid-column: 1 !important; grid-row: auto !important; }
    .page-reportes .report-section-grid { grid-template-columns: 1fr !important; }
    .patient-history-pagination { justify-content: space-between; }
}

/* Ajuste puntual: expediente, paginacion de alertas y composicion analitica. */
.patient-alert-workspace .clinical-alert-edit-detail summary {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #2563EB !important;
}
.patient-alert-workspace .clinical-alert-edit-detail summary:hover {
    color: #1D4ED8 !important;
    text-decoration: underline;
}
.agenda-alert-popover .agenda-alert-carousel-controls {
    position: relative;
    top: 10px;
}

.pm360-shell-page:not(.surgeries-page) .chart-grid,
.page-fiscal .chart-grid,
.dashboard-page .chart-grid,
.admin-dashboard-page .chart-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto;
    gap: 16px !important;
    align-items: stretch;
}
.pm360-shell-page:not(.surgeries-page) .chart-card[data-chart-panel="scatter"],
.page-fiscal .chart-card[data-chart-panel="scatter"],
.dashboard-page .chart-card[data-chart-panel="scatter"],
.admin-dashboard-page .chart-card[data-chart-panel="scatter"] {
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-height: 0 !important;
}
.pm360-shell-page:not(.surgeries-page) .chart-card[data-chart-panel="bar"],
.page-fiscal .chart-card[data-chart-panel="bar"],
.dashboard-page .chart-card[data-chart-panel="bar"],
.admin-dashboard-page .chart-card[data-chart-panel="bar"] {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-height: 0 !important;
}
.pm360-shell-page:not(.surgeries-page) .chart-card[data-chart-panel="pie"],
.page-fiscal .chart-card[data-chart-panel="pie"],
.dashboard-page .chart-card[data-chart-panel="pie"],
.admin-dashboard-page .chart-card[data-chart-panel="pie"] {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    min-height: 0 !important;
}
.pm360-shell-page:not(.surgeries-page) .chart-card[data-chart-panel="scatter"] canvas,
.pm360-shell-page:not(.surgeries-page) .chart-card[data-chart-panel="bar"] canvas,
.page-fiscal .chart-card[data-chart-panel="scatter"] canvas,
.page-fiscal .chart-card[data-chart-panel="bar"] canvas,
.dashboard-page .chart-card[data-chart-panel="scatter"] canvas,
.dashboard-page .chart-card[data-chart-panel="bar"] canvas,
.admin-dashboard-page .chart-card[data-chart-panel="scatter"] canvas,
.admin-dashboard-page .chart-card[data-chart-panel="bar"] canvas {
    height: 390px !important;
    min-height: 390px !important;
}
.pm360-shell-page:not(.surgeries-page) .chart-card[data-chart-panel="pie"] canvas,
.page-fiscal .chart-card[data-chart-panel="pie"] canvas,
.dashboard-page .chart-card[data-chart-panel="pie"] canvas,
.admin-dashboard-page .chart-card[data-chart-panel="pie"] canvas {
    height: 420px !important;
    min-height: 420px !important;
}
.pm360-shell-page:not(.surgeries-page) .chart-legend,
.page-fiscal .chart-legend,
.dashboard-page .chart-legend,
.admin-dashboard-page .chart-legend {
    gap: 8px !important;
    margin-top: 6px !important;
    padding-top: 8px !important;
}
.pm360-shell-page:not(.surgeries-page) .chart-legend-item,
.page-fiscal .chart-legend-item,
.dashboard-page .chart-legend-item,
.admin-dashboard-page .chart-legend-item {
    min-height: 34px !important;
    padding-block: 6px !important;
}
@media (max-width: 980px) {
    .pm360-shell-page:not(.surgeries-page) .chart-grid,
    .page-fiscal .chart-grid,
    .dashboard-page .chart-grid,
    .admin-dashboard-page .chart-grid {
        grid-template-columns: 1fr !important;
    }
    .pm360-shell-page:not(.surgeries-page) .chart-card[data-chart-panel],
    .page-fiscal .chart-card[data-chart-panel],
    .dashboard-page .chart-card[data-chart-panel],
    .admin-dashboard-page .chart-card[data-chart-panel] {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}

/* Intelligent Fiscal Center */
.fiscal-intelligence-panel {
    border-left: 5px solid #0F62FE;
}
.fiscal-status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.fiscal-status-grid .card {
    min-height: 112px;
}
.fiscal-projection-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}
.fiscal-projection-grid article {
    border: 1px solid #DCE6F2;
    border-radius: 12px;
    background: #F8FBFF;
    padding: 14px;
}
.fiscal-projection-grid span,
.deduction-row span {
    display: block;
    color: #64748B;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 6px;
}
.fiscal-projection-grid strong,
.deduction-row strong {
    color: #0F172A;
    font-size: 18px;
    font-weight: 800;
}
.deduction-grid {
    display: grid;
    gap: 10px;
}
.deduction-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #EEF4FB;
    border-radius: 10px;
    background: #FFFFFF;
}
.deduction-row span {
    margin: 0;
}
.fiscal-alert-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.fiscal-alert-card {
    border: 1px solid #DCE6F2;
    border-left: 4px solid #0F62FE;
    border-radius: 12px;
    background: #FFFFFF;
    padding: 16px;
}
.fiscal-alert-card h3 {
    margin: 12px 0 6px;
    font-size: 15px;
    font-weight: 800;
}
.fiscal-alert-card p {
    margin: 0;
    color: #64748B;
    font-size: 13px;
    line-height: 1.45;
}
.fiscal-alert-card.severity-alta {
    border-left-color: #D94848;
    background: #FFF8F8;
}
.fiscal-alert-card.severity-media {
    border-left-color: #B76A00;
    background: #FFFCF4;
}
.fiscal-alert-card.severity-baja {
    border-left-color: #12B76A;
    background: #F7FEFA;
}
.fiscal-timeline {
    display: grid;
    gap: 12px;
    position: relative;
}
.fiscal-timeline-item {
    border: 1px solid #DCE6F2;
    border-radius: 12px;
    background: #FFFFFF;
    padding: 13px 14px;
}
.fiscal-timeline-item span {
    color: #0F62FE;
    font-size: 12px;
    font-weight: 800;
}
.fiscal-timeline-item strong {
    display: block;
    margin-top: 4px;
    font-size: 14px;
}
.fiscal-timeline-item p {
    margin: 5px 0 0;
    color: #64748B;
    font-size: 13px;
}
.fiscal-recommendations.compact .panel-head {
    margin-bottom: 12px;
}
.recommendation-grid.compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.recommendation-grid.compact .recommendation-card {
    padding: 14px;
    min-height: auto;
}
.fiscal-alert-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.fiscal-alert-pill {
    border: 1px solid #DCE6F2;
    border-left: 4px solid #0F62FE;
    border-radius: 10px;
    padding: 10px 12px;
    background: #FFFFFF;
}
.fiscal-alert-pill span {
    display: inline-flex;
    border-radius: 999px;
    padding: 3px 8px;
    background: #EEF4FB;
    color: #475569;
    font-size: 11px;
    font-weight: 800;
}
.fiscal-alert-pill strong {
    display: block;
    margin-top: 7px;
    font-size: 13px;
}
.fiscal-alert-pill small {
    display: block;
    margin-top: 4px;
    color: #64748B;
    font-weight: 600;
}
.fiscal-alert-pill.severity-alta {
    border-left-color: #D94848;
}
.fiscal-alert-pill.severity-media {
    border-left-color: #B76A00;
}
.fiscal-alert-pill.severity-baja {
    border-left-color: #12B76A;
}
.fiscal-simulator.compact .panel-head {
    margin-bottom: 12px;
}
.fiscal-sim-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
    align-items: stretch;
}
.fiscal-sim-grid article,
.fiscal-sim-grid .sim-input,
.fiscal-reference-total {
    border: 1px solid #DCE6F2;
    border-radius: 10px;
    background: #F8FBFF;
    padding: 12px;
}
.fiscal-sim-grid span,
.fiscal-reference-total span {
    display: block;
    color: #64748B;
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 5px;
}
.fiscal-sim-grid strong,
.fiscal-reference-total strong {
    display: block;
    color: #0F172A;
    font-size: 16px;
    font-weight: 800;
}
.fiscal-sim-grid .sim-input label {
    margin-bottom: 5px;
}
.fiscal-sim-grid .sim-input input {
    height: 38px;
}
.deduction-grid.compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.fiscal-reference-total {
    display: inline-block;
    margin-top: 14px;
    background: #FFFFFF;
}
.fiscal-timeline.compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
@media (max-width: 1180px) {
    .fiscal-status-grid,
    .fiscal-alert-grid,
    .fiscal-alert-strip,
    .recommendation-grid.compact,
    .deduction-grid.compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .fiscal-sim-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Autofactura UX cleanup */
.autofactura-card.autofactura-saas .autofactura-hero {
    align-items: center !important;
    gap: 18px !important;
    padding: 22px !important;
}
.autofactura-card.autofactura-saas .hero-copy {
    min-height: 0 !important;
    padding: 18px !important;
}
.autofactura-card.autofactura-saas .hero-title-row {
    gap: 14px !important;
}
.autofactura-card.autofactura-saas .portal-logo-hero {
    width: 142px !important;
}
.autofactura-card.autofactura-saas .hero-title-copy h1 {
    font-size: 44px !important;
    line-height: 1.05 !important;
}
.autofactura-card.autofactura-saas .hero-title-copy p {
    font-size: 18px !important;
    margin-top: 8px !important;
}
.autofactura-card.autofactura-saas .trust-indicators {
    gap: 6px !important;
    margin-top: 12px !important;
}
.autofactura-card.autofactura-saas .trust-indicators span {
    border-radius: 999px !important;
    font-size: 14px !important;
    min-height: 30px !important;
    padding: 6px 11px !important;
}
.autofactura-card.autofactura-saas .trust-indicators span::before {
    height: 10px !important;
    width: 10px !important;
}
.autofactura-card.autofactura-saas .portal-trust-card {
    min-height: 0 !important;
    padding: 14px !important;
}
.autofactura-card.autofactura-saas .portal-trust-card h2 {
    font-size: 15px !important;
    margin-bottom: 8px !important;
}
.autofactura-card.autofactura-saas .portal-trust-card ul {
    display: grid !important;
    gap: 6px !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.autofactura-card.autofactura-saas .portal-trust-card li {
    border-radius: 10px !important;
    font-size: 13px !important;
    gap: 7px !important;
    min-height: 31px !important;
    padding: 6px 7px !important;
}
.autofactura-card.autofactura-saas .portal-benefit-icon {
    flex-basis: 15px !important;
    height: 15px !important;
    width: 15px !important;
}
.invoice-empty-message {
    background: #F8FAFC;
    border-radius: 12px;
    color: #64748B;
    font-size: 13px;
    font-weight: 750;
    margin: 8px 0 0;
    padding: 10px 12px;
}
.invoice-found-message {
    background: #ECFDF3;
    border: 1px solid #BFEBD4;
    border-radius: 12px;
    color: #087443;
    font-size: 14px;
    font-weight: 850;
    padding: 11px 13px;
}
.invoice-results-table {
    overflow-x: auto;
}
.invoice-results-table table {
    min-width: 860px !important;
    table-layout: auto;
}
.invoice-results-table th,
.invoice-results-table td {
    padding-left: 14px !important;
    padding-right: 14px !important;
    white-space: nowrap;
}
.invoice-action-cell {
    text-align: center;
}
.invoice-file-action {
    align-items: center;
    background: #E8F1FF;
    border-radius: 999px;
    color: #0F62FE;
    display: inline-flex;
    font-size: 12px;
    font-weight: 850;
    justify-content: center;
    min-width: 58px;
    padding: 7px 10px;
    text-decoration: none;
}
.invoice-file-action.pdf {
    background: #FFF1F1;
    color: #D94848;
}
.invoice-file-action.xml {
    background: #ECFDF3;
    color: #087443;
}
.invoice-file-action.mail {
    background: #E8F1FF;
    color: #0F62FE;
}
.invoice-file-action.disabled {
    cursor: default;
    opacity: .58;
}
.status-badge-large {
    border-radius: 999px !important;
    font-size: 14px !important;
    min-width: 112px !important;
    padding: 8px 12px !important;
    justify-content: center !important;
}
.status-badge-large::before {
    border-radius: 999px;
    content: "";
    display: inline-block;
    height: 9px;
    margin-right: 7px;
    width: 9px;
}
.status-badge-large.warn::before { background: #F59E0B; }
.status-badge-large.success::before { background: #0F9F6E; }
.status-badge-large.danger::before { background: #D94848; }
.status-badge-large.info::before { background: #0F62FE; }
.cancel-legal-note {
    color: #64748B;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.4;
    margin: -10px 0 -8px !important;
    transform: none !important;
}
@media (max-width: 980px) {
    .autofactura-card.autofactura-saas .portal-trust-card ul {
        grid-template-columns: 1fr !important;
    }
    .autofactura-card.autofactura-saas .hero-title-copy h1 {
        font-size: 30px !important;
    }
}

/* Patient CRM polish: header alert, inline ID, soft delete */
.patient-crm-name h3 small {
    color: #64748B !important;
    font-size: 13px !important;
    font-weight: 750 !important;
    margin-left: 8px !important;
    vertical-align: baseline !important;
}
.patient-crm-card .patient-crm-alert {
    background: #FFF7ED !important;
    border: 1px solid #FED7AA !important;
    border-left: 6px solid #F97316 !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 20px rgba(249, 115, 22, .08) !important;
    justify-self: start !important;
    margin: -2px 0 2px !important;
    max-width: min(100%, 980px) !important;
    padding: 11px 13px !important;
    width: fit-content !important;
}
.patient-crm-card .patient-crm-alert strong {
    color: #9A3412 !important;
    font-size: 12px !important;
    letter-spacing: .03em !important;
}
.patient-crm-card .patient-crm-alert span {
    color: #7C2D12 !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
}
.patient-delete-btn {
    background: #FFF1F1 !important;
    border: 1px solid #F3C6C6 !important;
    border-radius: 10px !important;
    color: #D94848 !important;
    box-shadow: none !important;
}
.patient-delete-btn:hover {
    background: #FFE7E7 !important;
    border-color: #F0A8A8 !important;
    color: #B42318 !important;
    transform: translateY(-1px);
}
.patient-delete-btn::before {
    --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' d='M6 6l12 12M18 6 6 18'/%3E%3C/svg%3E") !important;
    background: currentColor !important;
}
.patient-clinical-detail summary {
    display: grid !important;
    gap: 4px !important;
    padding-right: 30px !important;
    position: relative !important;
}
.patient-clinical-detail summary span {
    color: #64748B !important;
    display: block !important;
    font-size: 11px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.patient-clinical-detail summary::after {
    position: absolute !important;
    right: 12px !important;
    top: 12px !important;
}

/* Autofactura recovery card spacing */
.autofactura-card.autofactura-saas .invoice-recovery-card {
    align-content: start !important;
    gap: 10px !important;
    justify-content: flex-start !important;
}
.autofactura-card.autofactura-saas .invoice-recovery-card .recovery-help-block {
    margin-bottom: 10px !important;
}
.autofactura-card.autofactura-saas .invoice-recovery-card .portal-card-action-form {
    margin-top: 0 !important;
    margin-bottom: 10px !important;
    padding-top: 0 !important;
}
.autofactura-card.autofactura-saas .invoice-recovery-card .portal-inline-fields {
    margin-bottom: 8px !important;
}
.autofactura-card.autofactura-saas .invoice-recovery-card .portal-action-icon-btn {
    margin-top: 2px !important;
}
.autofactura-card.autofactura-saas .invoice-recovery-card .future-invoices-preview {
    margin-top: 2px !important;
}

/* Autofactura cleanup: one progress bar, white cards, no clipped recovery */
.autofactura-card.autofactura-saas {
    overflow: visible !important;
    padding-bottom: 34px !important;
}
.autofactura-card.autofactura-saas .cfdi-timeline {
    display: none !important;
}
.autofactura-card.autofactura-saas .portal-progress {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin: 18px 0 24px !important;
}
.autofactura-card.autofactura-saas .portal-progress span {
    background: #FFFFFF !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .07) !important;
    color: #334155 !important;
    justify-content: center !important;
    min-height: 46px !important;
    padding: 8px 12px !important;
}
.autofactura-card.autofactura-saas .portal-progress span::before,
.autofactura-card.autofactura-saas .portal-progress span::after {
    display: none !important;
}
.autofactura-card.autofactura-saas .portal-progress span.current {
    background: #0F62FE !important;
    border: 1px solid #0F62FE !important;
    color: #FFFFFF !important;
}
.autofactura-card.autofactura-saas .portal-progress span.completed {
    background: #E8F1FF !important;
    border: 1px solid #B9D4FF !important;
    color: #0F62FE !important;
}
.autofactura-card.autofactura-saas .portal-progress span.future {
    background: #FFFFFF !important;
    border: 1px solid #E2E8F0 !important;
    color: #64748B !important;
}
.autofactura-card.autofactura-saas .portal-progress span.current strong {
    background: #FFFFFF !important;
    color: #0F62FE !important;
}
.autofactura-card.autofactura-saas .portal-progress span.completed strong {
    background: #D7E8FF !important;
    color: #0F62FE !important;
}
.autofactura-card.autofactura-saas .portal-progress span.future strong {
    background: #EEF4FB !important;
    color: #64748B !important;
}
.autofactura-card.autofactura-saas .portal-progress strong {
    flex: 0 0 30px !important;
}
.autofactura-card.autofactura-saas .portal-choice-grid-premium {
    align-items: start !important;
    overflow: visible !important;
    padding-bottom: 8px !important;
}
.autofactura-card.autofactura-saas .portal-choice-card {
    background: #FFFFFF !important;
    overflow: visible !important;
}
.autofactura-card.autofactura-saas .action-status,
.autofactura-card.autofactura-saas .action-recover,
.autofactura-card.autofactura-saas .action-invoice,
.autofactura-card.autofactura-saas .action-cancel {
    background: #FFFFFF !important;
}
.autofactura-card.autofactura-saas .invoice-recovery-card {
    margin-bottom: 0 !important;
    min-height: auto !important;
    padding-bottom: 22px !important;
}
.autofactura-card.autofactura-saas .future-invoices-preview {
    margin-bottom: 0 !important;
}
@media (max-width: 920px) {
    .autofactura-card.autofactura-saas .portal-progress {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 560px) {
    .autofactura-card.autofactura-saas .portal-progress {
        grid-template-columns: 1fr !important;
    }
}
@media (max-width: 760px) {
    .fiscal-status-grid,
    .fiscal-alert-grid,
    .fiscal-projection-grid,
    .fiscal-alert-strip,
    .recommendation-grid.compact,
    .deduction-grid.compact,
    .fiscal-sim-grid,
    .fiscal-timeline.compact {
        grid-template-columns: 1fr;
    }
}

/* Expediente: mismo lenguaje visual de alertas, limitado a alergia y medicamentos. */
.patient-alert-workspace .clinical-alert-form { display: grid; gap: 14px; width: 100%; }
.patient-alert-criteria { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; }
.patient-alert-editor {
    display: grid;
    grid-template-columns: 36px max-content minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 9px 10px;
    border: 1px solid #DCE7F2;
    border-radius: 12px;
    background: #F8FBFE;
}
.patient-alert-editor strong { color: #334155; font-size: 12px; }
.patient-alert-editor input { width: 100%; min-width: 0; }
.patient-alert-icon { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid currentColor; border-radius: 10px; background: #FFF; }
.patient-alert-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.patient-alert-icon.is-allergy { color: #E5484D; background: #FFF5F5; }
.patient-alert-icon.is-medication { color: #6D4AFF; background: #F7F4FF; }
.patient-alert-additional { display: grid; grid-template-columns: 145px minmax(180px, 1fr) auto auto; align-items: center; gap: 10px; width: 100%; padding-top: 12px; border-top: 1px solid #E2E8F0; }
.patient-alert-additional > input[type="text"],
.patient-alert-additional > input:not([type]) { width: 100%; }
.pm-op-add-alert select { min-width: 145px; }
@media (max-width: 820px) {
    .patient-alert-criteria { grid-template-columns: 1fr; }
    .patient-alert-additional { grid-template-columns: 1fr; }
    .patient-alert-additional .btn { width: 100%; }
}

/* Patient CRM record */
.patient-record-page {
    display: grid;
    grid-template-columns: minmax(240px, 280px) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.patient-side-column {
    display: grid;
    gap: 14px;
    min-width: 0;
}
.patient-overview-grid,
.patient-crm-layout {
    display: grid;
    grid-template-columns: minmax(240px, 280px) minmax(320px, 1fr) minmax(250px, 300px);
    gap: 16px;
    align-items: stretch;
}
.patient-profile-card,
.patient-executive-card {
    height: auto;
    margin-bottom: 0;
    padding: 14px;
    position: static;
    top: auto;
}
.patient-executive-card .panel-head {
    margin-bottom: 10px;
}
.patient-executive-card .panel-title {
    font-size: 15px;
}
.patient-executive-card .panel-subtitle {
    font-size: 12px;
}
.patient-avatar {
    width: 60px;
    height: 60px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    background: #E8F1FF;
    color: #0F62FE;
    font-size: 21px;
    font-weight: 900;
    margin-bottom: 10px;
}
.patient-profile-card h2 {
    margin: 0 0 8px;
    font-size: 18px;
}
.profile-list,
.executive-list {
    display: grid;
    gap: 7px;
    margin-top: 12px;
}
.profile-list p,
.executive-list p {
    margin: 0;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 1px solid #EEF4FB;
    padding-bottom: 7px;
}
.profile-list span,
.executive-list span {
    color: #64748B;
    font-size: 12px;
    font-weight: 700;
}
.profile-list strong,
.executive-list strong {
    text-align: right;
    color: #0F172A;
    font-size: 13px;
}
.patient-executive-kpis {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 10px;
}
.patient-mini-kpi {
    border: 1px solid #E2E8F0;
    border-radius: 14px;
    padding: 10px;
    min-height: 72px;
}
.patient-mini-kpi strong {
    color: #0F172A;
    display: block;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.15;
    overflow-wrap: anywhere;
}
.patient-mini-kpi span {
    color: #475569;
    display: block;
    font-size: 11px;
    font-weight: 800;
    margin-top: 7px;
    text-transform: uppercase;
}
.patient-mini-kpi.kpi-consultas {
    background: #EFF6FF;
    border-color: #BFDBFE;
}
.patient-mini-kpi.kpi-ingresos {
    background: #ECFDF5;
    border-color: #A7F3D0;
}
.patient-mini-kpi.kpi-cirugias {
    background: #F5F3FF;
    border-color: #DDD6FE;
}
.patient-mini-kpi.kpi-pendiente {
    background: #FFF7ED;
    border-color: #FED7AA;
}
.patient-mini-kpi.kpi-consultas strong { color: #1D4ED8; }
.patient-mini-kpi.kpi-ingresos strong { color: #047857; }
.patient-mini-kpi.kpi-cirugias strong { color: #6D28D9; }
.patient-mini-kpi.kpi-pendiente strong { color: #C2410C; }
.patient-main {
    display: grid;
    gap: 18px;
    min-width: 0;
}
.smart-summary {
    border: 1px solid #BBD7FF;
    border-left: 7px solid #0F62FE;
    background: #EEF6FF;
    box-shadow: 0 16px 34px rgba(15, 98, 254, .11);
    margin-bottom: 0;
}
.smart-summary .panel-head {
    margin-bottom: 12px;
}
.smart-summary .panel-title {
    align-items: center;
    color: #0F172A;
    display: flex;
    font-size: 20px;
    gap: 10px;
}
.smart-summary .panel-title::before {
    align-items: center;
    background: #DBEAFE;
    border: 1px solid #93C5FD;
    border-radius: 999px;
    color: #1D4ED8;
    content: "IA";
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    height: 28px;
    justify-content: center;
    letter-spacing: .02em;
    width: 34px;
}
.smart-summary p {
    margin: 0;
    color: #1E293B;
    font-size: 16px;
    line-height: 1.65;
    font-weight: 650;
}
.clinical-detail-panel .panel-head,
.patient-history-panel .panel-head {
    background: linear-gradient(90deg, #F1F5F9 0%, #F8FAFC 100%);
    border: 1px solid #D8E2EE;
    border-radius: 14px;
    padding: 12px 14px;
}
.clinical-detail-panel .panel-title,
.patient-history-panel .panel-title {
    align-items: center;
    color: #1E293B;
    display: flex;
    gap: 9px;
}
.clinical-detail-panel .panel-title::before {
    align-items: center;
    background: #EEF2FF;
    border-radius: 12px;
    color: #4F46E5;
    content: "MED";
    display: inline-flex;
    font-size: 10px;
    font-weight: 900;
    height: 26px;
    justify-content: center;
    width: 34px;
}
.patient-history-panel .panel-title::before {
    align-items: center;
    background: #E0F2FE;
    border-radius: 12px;
    color: #0369A1;
    content: "TL";
    display: inline-flex;
    font-size: 10px;
    font-weight: 900;
    height: 26px;
    justify-content: center;
    width: 34px;
}
.patient-history-panel .fiscal-timeline.compact {
    border-left: 2px solid #BFDBFE;
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr;
    margin-left: 7px;
    padding-left: 16px;
}
.patient-history-panel .fiscal-timeline-item {
    background: #F8FAFC;
    border-color: #DCE6F2;
    border-radius: 14px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .04);
    padding: 11px 13px;
    position: relative;
}
.patient-history-panel .fiscal-timeline-item::before {
    background: #0F62FE;
    border: 3px solid #E8F1FF;
    border-radius: 999px;
    content: "";
    height: 11px;
    left: -24px;
    position: absolute;
    top: 15px;
    width: 11px;
}
.patient-history-panel .fiscal-timeline-item strong {
    color: #0F172A;
    font-size: 14px;
}
.patient-history-panel .fiscal-timeline-item p {
    color: #475569;
}
@media (max-width: 1180px) {
    .patient-record-page {
        grid-template-columns: 1fr;
    }
    .patient-side-column {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .patient-overview-grid,
    .patient-crm-layout {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
    .clinical-alert-box {
        grid-column: 1 / -1;
    }
}
@media (max-width: 820px) {
    .patient-side-column {
        grid-template-columns: 1fr;
    }
    .patient-overview-grid,
    .patient-crm-layout {
        grid-template-columns: 1fr;
    }
    .clinical-alert-box {
        grid-column: auto;
    }
}

/* Caja as daily cash operation */
.cash-cut-grid,
.payment-method-row,
.cash-alert-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}
.cash-cut-grid article,
.payment-method-row article {
    border: 1px solid #DCE6F2;
    border-radius: 12px;
    background: #F8FBFF;
    padding: 14px;
}
.cash-cut-grid span,
.payment-method-row span {
    display: block;
    color: #64748B;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 6px;
}
.cash-cut-grid strong,
.payment-method-row strong {
    color: #0F172A;
    font-size: 19px;
    font-weight: 850;
}
.payment-method-row article {
    background: #FFFFFF;
    border-left: 4px solid #0F62FE;
}
.cash-alert-grid .fiscal-alert-pill span {
    font-size: 12px !important;
}
.cash-alert-grid .fiscal-alert-pill strong {
    font-size: 15px !important;
}
.cash-alert-grid .fiscal-alert-pill small {
    font-size: 14px !important;
    line-height: 1.35 !important;
}
@media (max-width: 1180px) {
    .cash-cut-grid,
    .payment-method-row,
    .cash-alert-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .cash-cut-grid,
    .payment-method-row,
    .cash-alert-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 1180px) {
    .patient-crm-layout {
        grid-template-columns: 1fr;
    }
    .patient-profile-card,
    .patient-executive-card {
        position: static;
    }
}

.fiscal-recommendations {
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
    border-color: #CFE0FF;
}
.recommendation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.recommendation-card {
    position: relative;
    min-height: 132px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #FFFFFF;
    padding: 16px;
    box-shadow: var(--shadow-soft);
}
.recommendation-card::before {
    content: "";
    position: absolute;
    top: 16px;
    right: 16px;
    width: 34px;
    height: 34px;
    border-radius: 999px;
    background: var(--recommendation-bg, var(--blue-soft));
}
.recommendation-card::after {
    content: "";
    position: absolute;
    top: 23px;
    right: 23px;
    width: 20px;
    height: 20px;
    background: var(--recommendation-color, var(--blue));
    -webkit-mask: var(--icon-receipt-text) center / contain no-repeat;
    mask: var(--icon-receipt-text) center / contain no-repeat;
}
.recommendation-card p {
    margin: 12px 44px 0 0;
    color: #334155;
    font-size: 13px;
    line-height: 1.55;
}
.recommendation-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 11px;
    font-weight: 700;
    background: var(--recommendation-bg, var(--blue-soft));
    color: var(--recommendation-color, var(--blue));
}
.priority-high {
    --recommendation-bg: #FFF1F1;
    --recommendation-color: #D94848;
}
.priority-medium {
    --recommendation-bg: #FFF7E8;
    --recommendation-color: #B76A00;
}
.priority-low {
    --recommendation-bg: #ECFDF3;
    --recommendation-color: #0F9F6E;
}
@media (max-width: 980px) {
    .recommendation-grid { grid-template-columns: 1fr; }
    .smart-insight { grid-template-columns: 1fr; }
}

/* Agenda Clinica: use full width after moving patient follow-up above calendar */
.agenda-layout {
    grid-template-columns: minmax(0, 1fr);
}
.agenda-layout .calendar-board {
    width: 100%;
}
.agenda-layout .week-calendar {
    width: 100%;
    grid-template-columns: 72px repeat(7, minmax(0, 1fr));
}
.agenda-layout .week-header {
    min-width: 0;
}
.agenda-layout .event-chip.mini strong,
.agenda-layout .event-chip.mini span {
    max-width: 100%;
}
@media (max-width: 1180px) {
    .agenda-layout .week-calendar {
        grid-template-columns: 72px repeat(7, 150px);
    }
}

/* Patient clinical preview */
.clinical-preview-cell {
    max-width: 360px;
    color: #475569;
    font-size: 12px;
    line-height: 1.45;
}
.patient-directory-panel .toolbar {
    align-items: center;
}
.patient-directory-wrap {
    border-radius: 12px;
    background: #FFFFFF;
}
.patient-directory-table {
    min-width: 1420px;
}
.patient-directory-table th {
    padding: 15px 18px;
    font-size: 11px;
    letter-spacing: .04em;
}
.patient-directory-table td {
    padding: 20px 18px;
    vertical-align: top;
}
.patient-directory-table tbody tr {
    background: #FFFFFF;
}
.patient-directory-table tbody tr:hover {
    background: #F8FBFF;
}
.patient-id-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 30px;
    border-radius: 999px;
    background: #EEF4FF;
    color: #0F62FE;
    font-size: 13px;
    font-weight: 800;
}
.patient-name-block {
    display: grid;
    gap: 4px;
    min-width: 230px;
}
.patient-name-block strong {
    color: #0F172A;
    font-size: 17px;
    font-weight: 800;
    line-height: 1.25;
}
.patient-name-block span {
    color: #64748B;
    font-size: 12px;
    font-weight: 650;
}
.patient-quick-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-top: 24px;
    max-width: 360px;
}
.patient-quick-summary span {
    border: 1px solid #E2EAF5;
    background: #F8FBFF;
    border-radius: 8px;
    padding: 7px 8px;
    color: #475569;
    font-size: 11px;
    font-weight: 700;
}
.clinical-preview-grid {
    display: grid;
    gap: 8px;
    min-width: 330px;
}
.clinical-preview-grid article {
    border: 1px solid #E2EAF5;
    border-radius: 9px;
    background: #F8FBFF;
    padding: 9px 10px;
}
.clinical-preview-grid span {
    display: block;
    color: #0F62FE;
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 4px;
}
.clinical-preview-grid p {
    margin: 0;
    color: #334155;
    font-size: 12px;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.clinical-preview-source {
    display: block;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
}
.contact-stack {
    display: grid;
    gap: 8px;
    min-width: 190px;
}
.contact-stack span {
    display: block;
    border: 1px solid #E2EAF5;
    background: #FFFFFF;
    border-radius: 8px;
    padding: 8px 10px;
    color: #334155;
    font-size: 13px;
    font-weight: 650;
}
.patient-type-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 10px;
    margin: 0 6px 6px 0;
    font-size: 12px;
    font-weight: 800;
    border: 1px solid transparent;
}
.patient-type-badge.private {
    background: #ECFDF3;
    color: #0F9F6E;
    border-color: #BFEBD4;
}
.patient-type-badge.insured {
    background: #E8F1FF;
    color: #0F62FE;
    border-color: #B9D4FF;
}
.patient-type-badge.followup {
    background: #FFF7E8;
    color: #B76A00;
    border-color: #F9D99B;
}
.patient-type-badge.pending {
    background: #FFF1F1;
    color: #D94848;
    border-color: #F3C6C6;
}
.patient-actions {
    min-width: 390px;
    gap: 9px;
}
.patient-menu-button {
    width: 42px;
    padding-inline: 0;
    font-size: 18px;
    line-height: 1;
}
.patient-menu-button::before {
    display: none !important;
}

/* Premium CRM patient directory */
.patient-crm-toolbar {
    align-items: center;
    border-bottom: 1px solid #E5ECF6;
    margin: -2px -2px 18px;
    padding: 0 0 16px;
}
.patient-crm-list {
    display: grid;
    gap: 16px;
}
.patient-crm-card {
    background: linear-gradient(180deg, #FFFFFF 0%, #FBFDFF 100%);
    border: 1px solid #DCE6F2;
    border-radius: 16px;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .06);
    display: grid;
    gap: 14px;
    padding: 18px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.patient-crm-card:hover {
    border-color: #B9D4FF;
    box-shadow: 0 18px 42px rgba(15, 98, 254, .10);
    transform: translateY(-1px);
}
.patient-crm-primary {
    align-items: flex-start;
    display: grid;
    gap: 14px;
    grid-template-columns: 54px minmax(0, 1fr) auto;
}
.patient-avatar-sm {
    align-items: center;
    background: linear-gradient(135deg, #0F62FE 0%, #41A5FF 100%);
    border-radius: 16px;
    box-shadow: 0 12px 24px rgba(15, 98, 254, .22);
    color: #FFFFFF;
    display: inline-flex;
    font-size: 18px;
    font-weight: 850;
    height: 52px;
    justify-content: center;
    width: 52px;
}
.patient-title-row {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}
.patient-crm-name h3 {
    color: #0F172A;
    font-size: 19px;
    font-weight: 850;
    line-height: 1.2;
    margin: 0;
}
.patient-crm-name p {
    color: #64748B;
    font-size: 12px;
    font-weight: 650;
    margin: 0;
}
.patient-ai-summary {
    color: #334155 !important;
    display: -webkit-box;
    font-size: 13px !important;
    line-height: 1.45;
    margin-top: 8px !important;
    max-width: 760px;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.patient-status-badge {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    padding: 6px 10px;
}
.patient-status-badge.active {
    background: #ECFDF3;
    color: #087443;
}
.patient-crm-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    min-width: 330px;
}
.patient-critical-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(260px, 1.4fr) repeat(3, minmax(145px, 1fr));
}
.patient-critical-grid div,
.patient-kpi-row span {
    background: #F8FBFF;
    border: 1px solid #E2EAF5;
    border-radius: 12px;
    padding: 11px 12px;
}
.patient-critical-grid span {
    color: #64748B;
    display: block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .02em;
    margin-bottom: 5px;
    text-transform: uppercase;
}
.patient-critical-grid strong {
    color: #0F172A;
    display: -webkit-box;
    font-size: 13px;
    font-weight: 800;
    line-height: 1.35;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.patient-kpi-row {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.patient-kpi-row span {
    color: #64748B;
    font-size: 12px;
    font-weight: 700;
    min-height: 48px;
}
.patient-kpi-row strong {
    color: #0F172A;
    display: block;
    font-weight: 800;
    margin-top: 3px;
}
.patient-crm-alert {
    margin-top: 0;
}
.patient-collapsible-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.patient-clinical-detail {
    background: #FFFFFF;
    border: 1px solid #E2EAF5;
    border-radius: 12px;
    overflow: hidden;
}
.patient-clinical-detail summary {
    color: #0F62FE;
    cursor: pointer;
    font-size: 12px;
    font-weight: 850;
    list-style: none;
    padding: 11px 12px;
}
.patient-clinical-detail summary::-webkit-details-marker {
    display: none;
}
.patient-clinical-detail summary::after {
    content: "+";
    float: right;
    font-weight: 900;
}
.patient-clinical-detail[open] summary::after {
    content: "-";
}
.patient-clinical-detail p {
    border-top: 1px solid #E2EAF5;
    color: #334155;
    font-size: 13px;
    line-height: 1.5;
    margin: 0;
    padding: 11px 12px 13px;
}
.patient-empty-state {
    background: #F8FBFF;
    border: 1px dashed #B9D4FF;
    border-radius: 14px;
    color: #64748B;
    font-weight: 750;
    padding: 22px;
    text-align: center;
}
@media (max-width: 1280px) {
    .patient-critical-grid,
    .patient-kpi-row,
    .patient-collapsible-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 860px) {
    .patient-crm-primary {
        grid-template-columns: 48px minmax(0, 1fr);
    }
    .patient-crm-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
        min-width: 0;
    }
    .patient-critical-grid,
    .patient-kpi-row,
    .patient-collapsible-grid {
        grid-template-columns: 1fr;
    }
}
.clinical-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.clinical-detail-grid article {
    border: 1px solid #DCE6F2;
    border-radius: 10px;
    background: #F8FBFF;
    padding: 13px 14px;
}
.clinical-detail-grid span {
    display: block;
    color: #0F62FE;
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 6px;
}
.clinical-detail-grid p {
    margin: 0;
    color: #334155;
    font-size: 13px;
    line-height: 1.55;
}
@media (max-width: 980px) {
    .clinical-detail-grid {
        grid-template-columns: 1fr;
    }
}

/* WhatsApp reminders and external autofacturación portal */
.whatsapp-kpi-grid {
    margin-top: -8px;
}
.btn-whatsapp {
    background: #ECFDF3;
    color: #128C7E;
    border: 1px solid #BFEBD4;
    box-shadow: 0 8px 18px rgba(18, 140, 126, .10);
}
.btn-whatsapp::before {
    --btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M20.5 3.5A10 10 0 0 0 4.7 15.4L3 21l5.8-1.5A10 10 0 0 0 20.5 3.5Zm-8.5 15a8 8 0 0 1-4.1-1.1l-.3-.2-2.4.6.7-2.3-.2-.4A8 8 0 1 1 12 18.5Zm4.4-5.8c-.2-.1-1.4-.7-1.6-.8-.2-.1-.4-.1-.6.1-.2.3-.6.8-.8 1-.1.2-.3.2-.5.1a6.5 6.5 0 0 1-3.2-2.8c-.1-.3 0-.4.1-.5l.4-.5c.1-.2.2-.3.3-.5.1-.2 0-.4 0-.5l-.7-1.6c-.2-.4-.4-.4-.6-.4h-.5c-.2 0-.5.1-.7.3-.3.3-1 1-1 2.3s1 2.7 1.1 2.9c.1.2 2 3.1 4.9 4.3.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.6-.1 1.4-.6 1.6-1.1.2-.6.2-1 .2-1.1-.1-.2-.3-.3-.5-.4Z'/%3E%3C/svg%3E");
}
.communication-center {
    border-color: #BFEBD4;
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FFFB 100%);
}
.whatsapp-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #BFEBD4;
    border-radius: 999px;
    background: #ECFDF3;
    color: #128C7E;
    padding: 8px 12px;
    font-size: 12px;
    font-weight: 850;
}
.whatsapp-chip::before {
    content: "";
    width: 16px;
    height: 16px;
    background: currentColor;
    -webkit-mask: var(--btn-icon) center / contain no-repeat;
    mask: var(--btn-icon) center / contain no-repeat;
}
.communication-kpis {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.no-kpi-corner-icons .card::before,
.no-kpi-corner-icons .card::after {
    display: none !important;
}
.communication-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}
.communication-card {
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: var(--shadow-soft);
    padding: 16px;
}
.communication-card.span-2 {
    grid-column: span 2;
}
.communication-card.span-full {
    grid-column: 1 / -1;
}
.section-title-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.section-title-row h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 850;
}
.section-title-row span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 750;
}
.automation-title-row {
    display: flex;
    justify-content: space-between;
    position: relative;
    align-items: center;
    min-height: 24px;
    overflow: visible;
    margin-bottom: 14px;
}
.automation-title-row span {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    text-align: center;
}
.manual-actions-heading {
    position: absolute;
    top: -32px;
    left: 0;
    z-index: 2;
    display: block;
    width: max-content;
    max-width: 100%;
    background: #FFFFFF;
    color: #0F172A;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.25;
    padding: 0 8px 0 0;
    margin: 0;
}
.communication-table table {
    min-width: 780px;
}
.followup-list,
.metric-list,
.automation-list,
.communication-mini-list {
    display: grid;
    gap: 9px;
}
.followup-list div,
.metric-list p,
.communication-mini-list p {
    margin: 0;
    border: 1px solid #E2EAF5;
    border-radius: 10px;
    background: #F8FBFF;
    padding: 10px 12px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
}
.followup-list strong,
.communication-mini-list p {
    color: #334155;
    font-size: 13px;
}
.followup-list span,
.communication-mini-list span,
.metric-list strong {
    color: var(--blue);
    font-weight: 850;
}
.automation-list label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0;
    border: 1px solid #E2EAF5;
    border-radius: 10px;
    padding: 10px 12px;
    background: #F8FBFF;
}
.automation-list input {
    width: auto;
}
.template-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.template-grid label {
    margin: 0;
}
.template-grid textarea {
    margin-top: 7px;
    resize: vertical;
    min-height: 88px;
}
.kpi-emoji {
    display: inline-flex;
    width: 22px;
    height: 22px;
    align-items: center;
    justify-content: center;
    margin-right: 4px;
}
.communication-pagination {
    align-items: center;
}
.communication-pagination .is-disabled {
    pointer-events: none;
    opacity: .55;
}
.automation-split-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.automation-split-grid.automation-split-wide {
    grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr);
    align-items: start;
}
.automation-split-grid.automation-split-wide > div {
    align-self: start;
}
.automation-list-wide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.manual-actions-column {
    position: relative;
    align-self: start;
    padding-top: 0;
}
.manual-actions-list {
    transform: none;
}
.automation-split-grid h4,
.template-action-card h4 {
    margin: 0 0 10px;
    color: var(--ink);
}
.automation-status-card,
.manual-action-card,
.template-action-card,
.ia-card {
    border: 1px solid #E2EAF5;
    border-radius: 12px;
    background: #F8FBFF;
    padding: 12px;
}
.automation-status-card,
.manual-action-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 54px;
}
.automation-status-card span,
.manual-action-card span,
.ia-card small {
    display: block;
    color: var(--muted);
    font-size: 12px;
    margin-top: 4px;
}
.automation-status-card span {
    color: #0F7A55;
    font-weight: 800;
}
.automation-status-card .automation-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 850;
    margin-top: 0;
}
.automation-badge.active {
    background: #ECFDF3;
    color: #0F7A55;
}
.automation-badge.scheduled {
    background: #EFF6FF;
    color: #0F62FE;
}
.automation-badge.disabled {
    background: #F1F5F9;
    color: #64748B;
}
.priority-list p {
    align-items: center;
    justify-content: flex-start;
    font-weight: 750;
}
.priority-dot {
    width: 10px;
    height: 10px;
    border-radius: 999px;
    flex: 0 0 10px;
    box-shadow: 0 0 0 4px rgba(15, 98, 254, .08);
}
.priority-dot.red { background: #EF4444; }
.priority-dot.orange { background: #F97316; }
.priority-dot.yellow { background: #EAB308; }
.priority-dot.blue { background: #0F62FE; }
.ia-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.ia-status-heading {
    margin: 16px 0 2px;
    color: #0F172A;
    font-size: 18px;
    font-weight: 850;
    letter-spacing: .01em;
}
.ia-card {
    position: relative;
    min-height: 126px;
    padding: 14px 14px 14px 58px;
    overflow: hidden;
}
.ia-card::before {
    content: "";
    position: absolute;
    top: 14px;
    left: 14px;
    width: 32px;
    height: 32px;
    border-radius: 999px;
    background: var(--ia-icon-bg, #EFF6FF);
}
.ia-card-icon {
    position: absolute;
    top: 21px;
    left: 21px;
    width: 18px;
    height: 18px;
    z-index: 1;
    background-color: var(--ia-icon-color, #0F62FE);
    -webkit-mask: var(--ia-icon) center / contain no-repeat;
    mask: var(--ia-icon) center / contain no-repeat;
}
.ia-card-1 {
    --ia-icon-bg: #EFF6FF;
    --ia-icon-color: #0F62FE;
    --ia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/g%3E%3C/svg%3E");
}
.ia-card-2 {
    --ia-icon-bg: #FFFAEB;
    --ia-icon-color: #D97706;
    --ia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4v8Z'/%3E%3C/svg%3E");
}
.ia-card-3 {
    --ia-icon-bg: #ECFDF3;
    --ia-icon-color: #0F7A55;
    --ia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5h6M9 3h6v4H9z'/%3E%3Cpath d='M5 5h14v16H5z'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/g%3E%3C/svg%3E");
}
.ia-card-4 {
    --ia-icon-bg: #F5F3FF;
    --ia-icon-color: #7C3AED;
    --ia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 19a6 6 0 0 0-12 0'/%3E%3Ccircle cx='9' cy='8' r='4'/%3E%3Cpath d='M17 7h4v4M21 7l-5 5'/%3E%3C/g%3E%3C/svg%3E");
}
.ia-card strong {
    display: block;
    color: var(--blue);
    font-size: 24px;
}
.ia-card span {
    display: block;
    color: var(--ink);
    font-weight: 800;
}
.template-action-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.template-action-card {
    display: flex;
    min-height: 172px;
    flex-direction: column;
    height: 100%;
}
.template-action-card p {
    color: var(--muted);
    line-height: 1.45;
    margin: 0 0 14px;
}
.template-action-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: auto;
}
#selector-pacientes textarea {
    resize: none;
    min-height: 96px;
    margin-bottom: 12px;
}
.patient-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    pointer-events: none;
    opacity: 0;
    transition: opacity .18s ease;
}
.patient-modal.open {
    pointer-events: auto;
    opacity: 1;
}
.patient-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .32);
    backdrop-filter: blur(2px);
}
.patient-modal-panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(440px, 100%);
    height: 100%;
    background: #FFFFFF;
    border-left: 1px solid var(--line);
    box-shadow: -24px 0 60px rgba(15, 23, 42, .18);
    padding: 22px;
    overflow: auto;
    transform: translateX(28px);
    transition: transform .18s ease;
}
.patient-modal.open .patient-modal-panel {
    transform: translateX(0);
}

/* Clinical alerts */
.clinical-alert-box {
    align-self: stretch;
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    border-left: 5px solid #F97316;
    border-radius: 14px;
    box-shadow: var(--shadow-soft);
    margin-bottom: 0;
    min-width: 0;
    padding: 13px 14px;
}
.clinical-alert-top-legacy {
    display: none !important;
}
.clinical-alert-compact {
    margin-bottom: 0;
    padding: 12px 14px;
}
.clinical-alert-header {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}
.clinical-alert-title {
    color: #9A3412;
    font-size: 15px;
    font-weight: 800;
    margin-bottom: 2px;
}
.clinical-alert-subtitle {
    color: #9A3412;
    font-size: 12px;
    font-weight: 650;
    margin: 0 0 10px;
}
.clinical-alert-compact .clinical-alert-subtitle {
    margin: 0;
}
.clinical-alert-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    list-style: none;
    margin: 0;
    padding: 0;
}
.clinical-alert-compact .clinical-alert-list {
    max-height: 78px;
    overflow: auto;
    padding-right: 2px;
}
.clinical-alert-list li {
    align-items: center;
    background: #FFFBF5;
    border: 1px solid #FED7AA;
    border-radius: 12px;
    color: #7C2D12;
    display: inline-flex;
    flex: 0 1 auto;
    font-size: 12px;
    gap: 7px;
    justify-content: flex-start;
    line-height: 1.25;
    max-width: 100%;
    padding: 9px 12px;
    width: fit-content;
}

.clinical-alert-list li span { overflow-wrap: anywhere; white-space: normal; }

/* Bitacora: iconografia clinica, alertas heredadas y captura adicional */
.pm-op-dashboard .pm-op-check-icon { padding: 6px; }
.pm-op-dashboard .pm-op-check-icon svg { width: 100%; height: 100%; overflow: visible; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.pm-op-inherited-alerts { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 13px; }
.pm-op-inherited-alert { display: grid; gap: 3px; width: fit-content; max-width: 100%; padding: 9px 12px; border: 1px solid #FED7AA; border-radius: 12px; background: #FFF7ED; color: #7C2D12; }
.pm-op-inherited-alert.is-critical { border-color: #FDA29B; background: #FEF2F2; color: #991B1B; }
.pm-op-inherited-alert span { overflow-wrap: anywhere; font-size: 12px; font-weight: 750; }
.pm-op-inherited-alert small { color: currentColor; font-size: 9px; font-weight: 800; opacity: .75; text-transform: uppercase; }
.pm-op-alert-empty, .pm-op-document-muted { margin: 0 0 12px; color: #64748B; font-size: 11px; }
.pm-op-add-alert { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; gap: 9px; align-items: center; margin-top: 14px; padding-top: 13px; border-top: 1px solid #DBEAFE; }
.pm-op-add-alert input[type="text"], .pm-op-add-alert > input { min-height: 40px; }
.pm-op-add-alert label { display: inline-flex; align-items: center; gap: 6px; color: #475569; font-size: 11px; font-weight: 750; }
.pm-op-add-alert label input { width: auto; }
@media (max-width: 620px) { .pm-op-add-alert { grid-template-columns: 1fr; } .pm-op-add-alert .btn { width: 100%; } }
.clinical-alert-list li.critical {
    background: #FEF2F2;
    border-color: #FDA29B;
    color: #991B1B;
}
.clinical-alert-list li.risk-diabetes {
    background: #FFF7ED;
    border-color: #FDBA74;
    color: #9A3412;
}
.clinical-alert-list li.risk-hipertension {
    background: #FEFCE8;
    border-color: #FDE68A;
    color: #854D0E;
}
.clinical-alert-list li.risk-alergia {
    background: #FEF2F2;
    border-color: #FCA5A5;
    color: #991B1B;
}
.clinical-alert-list li.risk-anticoagulante {
    background: #FFE4E6;
    border-color: #FB7185;
    color: #9F1239;
}
.clinical-alert-list li.critical.risk-anticoagulante,
.clinical-alert-list li.critical.risk-alergia {
    background: #FFE4E6;
    border-color: #F43F5E;
    color: #881337;
}
.clinical-alert-list li span {
    min-width: 0;
}
.clinical-alert-list li strong {
    background: rgba(153, 27, 27, .08);
    border-radius: 999px;
    font-size: 10px;
    padding: 2px 6px;
    white-space: nowrap;
}
.surgical-alert-box {
    margin: 0;
    padding: 14px 16px;
}
.surgical-alert-box .clinical-alert-title {
    font-size: 15px;
    margin-bottom: 2px;
}
.surgical-alert-box .clinical-alert-subtitle {
    margin-bottom: 9px;
}
.surgical-alert-list {
    gap: 6px;
}
.surgical-alert-list li {
    align-items: flex-start;
    gap: 10px;
    min-height: 0;
    padding: 9px 11px;
}
.surgical-alert-content {
    display: grid;
    gap: 3px;
    line-height: 1.35;
    min-width: 0;
}
.surgical-alert-content strong {
    color: #7C2D12;
    font-size: 13px;
    white-space: normal !important;
}
.surgical-alert-content small {
    color: #9A3412;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.35;
    white-space: normal;
}
.clinical-alert-priority {
    background: #FEE2E2;
    border-radius: 999px;
    color: #991B1B;
    flex: 0 0 auto;
    font-size: 11px;
    padding: 4px 8px;
}
.clinical-alert-empty {
    color: #9A3412;
    font-size: 12px;
    font-weight: 650;
    margin: 0;
}
.clinical-alert-form {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(180px, 1fr) auto auto;
    margin-top: 12px;
}
.clinical-alert-compact .clinical-alert-form {
    grid-template-columns: minmax(260px, 1fr) auto auto;
}
.clinical-alert-form input {
    min-height: 38px;
}
.clinical-alert-form label {
    color: #7C2D12;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
.clinical-alert-form .btn {
    padding: 9px 11px;
}
.clinical-alert-form input[type="checkbox"] {
    margin-right: 6px;
    width: auto;
}
.clinical-alert-mini {
    background: #FFF7ED;
    border: 1px solid #FED7AA;
    border-radius: 10px;
    color: #7C2D12;
    display: grid;
    gap: 5px;
    margin-top: 10px;
    padding: 9px 10px;
}
.clinical-alert-mini strong {
    font-size: 12px;
}
.clinical-alert-mini span {
    font-size: 12px;
    line-height: 1.35;
}
.clinical-alert-mini span.critical {
    color: #991B1B;
    font-weight: 750;
}
@media (max-width: 820px) {
    .clinical-alert-form {
        grid-template-columns: 1fr;
    }
}

/* Premium SaaS autofacturación refresh */
.autofactura-saas {
    border: 0;
    box-shadow: 0 22px 60px rgba(15, 23, 42, .12);
}
.autofactura-saas .autofactura-hero {
    background: linear-gradient(135deg, #FFFFFF 0%, #F4F8FF 100%);
    border: 0;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
}
.autofactura-saas .portal-trust-card,
.autofactura-saas .portal-choice-card,
.autofactura-saas .invoice-guide-block,
.autofactura-saas .invoice-mini-grid article,
.autofactura-saas .future-invoices-preview {
    border: 0;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
}
.autofactura-saas .portal-choice-card {
    border-radius: 18px;
    min-height: 0;
    overflow: hidden;
    padding-top: 78px;
}
.autofactura-saas .portal-choice-card::before {
    border-radius: 20px;
    height: 44px;
    width: 44px;
}
.autofactura-saas .portal-choice-card::after {
    height: 26px;
    left: 27px;
    top: 27px;
    width: 26px;
}
.portal-choice-grid-premium {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
}
.portal-choice-grid-premium .portal-choice-card {
    height: 100%;
}
.portal-choice-card.action-invoice {
    background: linear-gradient(180deg, #FFFFFF 0%, #F3F8FF 100%);
}
.portal-choice-card.action-status {
    background: linear-gradient(180deg, #FFFFFF 0%, #FFFBEB 100%);
}
.portal-choice-card.action-recover {
    background: linear-gradient(180deg, #FFFFFF 0%, #F0FDF4 100%);
}
.portal-choice-card.action-cancel {
    background: linear-gradient(180deg, #FFFFFF 0%, #FFF1F2 100%);
}
.portal-choice-card.action-invoice::before {
    background: #E8F1FF;
}
.portal-choice-card.action-status::before {
    background: #FEF3C7;
}
.portal-choice-card.action-recover::before {
    background: #DCFCE7;
}
.portal-choice-card.action-cancel::before {
    background: #FFE4E6;
}
.portal-choice-card.action-status::after {
    background: #D97706;
}
.portal-choice-card.action-recover::after {
    background: #16A34A;
}
.portal-choice-card.action-cancel::after {
    background: #E11D48;
}
.portal-choice-card.icon-cancel {
    --choice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='m10 11 4 4'/%3E%3Cpath d='m14 11-4 4'/%3E%3C/g%3E%3C/svg%3E");
}
.cfdi-timeline {
    align-items: center;
    background: #FFFFFF;
    border-radius: 18px;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr 26px 1fr 26px 1fr 26px 1fr;
    margin: 18px 0;
    padding: 14px;
}
.cfdi-timeline article {
    align-items: center;
    display: flex;
    gap: 10px;
}
.cfdi-timeline strong {
    align-items: center;
    background: #0F62FE;
    border-radius: 999px;
    color: #FFFFFF;
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    height: 30px;
    justify-content: center;
    width: 30px;
}
.cfdi-timeline span {
    color: #334155;
    font-size: 13px;
    font-weight: 800;
}
.cfdi-timeline i {
    background: #CFE0FF;
    display: block;
    height: 2px;
    width: 100%;
}
.invoice-mini-grid.clean article {
    align-items: center;
    display: flex;
    min-height: 58px;
}
.invoice-mini-grid.clean strong::before {
    color: #0F62FE;
    content: "";
    margin-right: 0;
}
.invoice-cancel-card select,
.invoice-cancel-card input {
    min-height: 42px;
}
.invoice-cancel-card .btn-danger {
    background: #E11D48;
    border-color: #E11D48;
    color: #FFFFFF;
    margin-top: 12px;
}
@media (max-width: 860px) {
    .portal-choice-grid-premium,
    .cfdi-timeline {
        grid-template-columns: 1fr;
    }
    .cfdi-timeline i {
        height: 18px;
        justify-self: start;
        margin-left: 15px;
        width: 2px;
    }
}
.patient-selector-grid {
    display: grid;
    gap: 8px;
    max-height: 240px;
    overflow: auto;
    margin-bottom: 12px;
    padding-right: 4px;
}
.patient-selector-grid label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 4px 9px;
    align-items: center;
    border: 1px solid #E2EAF5;
    border-radius: 10px;
    background: #FFFFFF;
    padding: 9px 10px;
    margin: 0;
}
.patient-selector-grid input {
    width: auto;
    grid-row: span 2;
}
.patient-selector-grid small {
    color: var(--muted);
}
.patient-whatsapp-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
@media (max-width: 1180px) {
    .communication-kpis,
    .communication-grid,
    .template-grid,
    .template-action-grid,
    .automation-split-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .communication-card.span-2 {
        grid-column: span 2;
    }
}
@media (max-width: 760px) {
    .communication-kpis,
    .communication-grid,
    .template-grid,
    .template-action-grid,
    .automation-split-grid,
    .automation-split-grid.automation-split-wide,
    .automation-list-wide,
    .ia-card-grid {
        grid-template-columns: 1fr;
    }
    .communication-card.span-2 {
        grid-column: span 1;
    }
    .communication-center .panel-head {
        align-items: flex-start;
        flex-direction: column;
    }
}
.billing-actions {
    align-items: center;
}
.inline-status-form {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.inline-status-form select {
    min-width: 130px;
    height: 42px;
    padding-block: 8px;
}
.autofactura-body {
    min-height: 100vh;
    background: linear-gradient(135deg, #F7FAFF 0%, #EEF4FB 100%);
}
.autofactura-shell {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 28px;
}
.autofactura-card {
    width: min(920px, 100%);
    background: #FFFFFF;
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: 0 26px 70px rgba(15, 23, 42, .12);
    padding: 30px;
}
.autofactura-card.premium {
    width: min(1120px, 100%);
}
.autofactura-brand {
    display: flex;
    align-items: center;
    gap: 16px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 22px;
}
.autofactura-brand.premium {
    align-items: center;
    justify-content: flex-start;
    gap: 22px;
}
.autofactura-brand .logo-mark {
    margin: 0;
}
.portal-logo {
    width: 190px;
    max-width: 34vw;
    height: auto;
    flex: 0 0 auto;
}
.portal-eyebrow {
    display: block;
    color: var(--blue);
    font-size: 13px;
    font-weight: 850;
    margin-bottom: 4px;
}
.autofactura-brand h1 {
    margin: 0;
    font-size: 28px;
    font-weight: 850;
}
.autofactura-brand p,
.portal-step p {
    margin: 6px 0 0;
    color: var(--muted);
}
.portal-step {
    display: grid;
    gap: 16px;
}
.portal-trust-card {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    align-items: start;
    background: linear-gradient(180deg, #F8FBFF 0%, #FFFFFF 100%);
    border: 1px solid #CFE0FF;
    border-radius: 14px;
    padding: 20px;
    margin-bottom: 18px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .07);
}
.portal-trust-card h2 {
    margin: 0 0 10px;
    font-size: 18px;
    font-weight: 850;
}
.portal-trust-card ul {
    margin: 0;
    padding: 0;
    list-style: none;
    color: #475569;
    font-weight: 650;
    line-height: 1.45;
    display: grid;
    gap: 10px;
}
.portal-trust-card li {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.35;
    border-radius: 10px;
    padding: 4px 6px;
    transition: background .16s ease, transform .16s ease, color .16s ease;
}
.portal-trust-card li:hover {
    background: #F1F7FF;
    transform: translateX(2px);
}
.portal-benefit-icon {
    width: 20px;
    height: 20px;
    flex: 0 0 20px;
    display: inline-block;
    background-color: #0F62FE;
    -webkit-mask: var(--benefit-icon) center / contain no-repeat;
    mask: var(--benefit-icon) center / contain no-repeat;
}
.portal-benefit-icon.icon-clock {
    --benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/g%3E%3C/svg%3E");
}
.portal-benefit-icon.icon-shield-check {
    --benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/g%3E%3C/svg%3E");
}
.portal-benefit-icon.icon-zap {
    --benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='M13 2 3 14h8l-1 8 11-14h-8l1-6Z'/%3E%3C/svg%3E");
}
.portal-benefit-icon.icon-cloud-download {
    --benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 13v8'/%3E%3Cpath d='m8 17 4 4 4-4'/%3E%3Cpath d='M20 16.6A4.5 4.5 0 0 0 17.5 8h-1.1A7 7 0 1 0 5 15.7'/%3E%3C/g%3E%3C/svg%3E");
}
.portal-benefit-icon.icon-mail {
    --benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/g%3E%3C/svg%3E");
}
.portal-benefit-icon.icon-file-check {
    --benefit-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='m9 15 2 2 4-4'/%3E%3C/g%3E%3C/svg%3E");
}
.trust-icon {
    width: 46px;
    height: 46px;
    border-radius: 16px;
    background: #E8F1FF;
    position: relative;
}
.trust-icon::before {
    content: "";
    position: absolute;
    inset: 13px;
    background: var(--blue);
    -webkit-mask: var(--icon-receipt-text) center / contain no-repeat;
    mask: var(--icon-receipt-text) center / contain no-repeat;
}
.portal-progress {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 22px;
}
.portal-progress span {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: #FFFFFF;
    padding: 9px 11px;
    color: #64748B;
    font-size: 15px;
    font-weight: 800;
}
.portal-progress strong {
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: #EEF4FB;
    color: #475569;
    font-size: 15px;
}
.portal-progress span.active {
    border-color: #B9D4FF;
    background: #E8F1FF;
    color: var(--blue);
}
.portal-progress span.active strong {
    background: var(--blue);
    color: #FFFFFF;
}
.portal-choice-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    align-items: stretch;
}
.portal-choice-grid.portal-choice-grid-stacked {
    grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
}
.portal-choice-grid-stacked .invoice-start-button {
    margin-top: 16px;
}
.autofactura-card.autofactura-saas .invoice-start-card .invoice-start-button {
    margin-top: 10px !important;
}
.portal-choice-grid-stacked .invoice-start-card {
    min-height: 0;
}
.portal-choice-grid-stacked .icon-status {
    height: 100%;
}
.portal-choice-grid-stacked .icon-status strong {
    margin-bottom: 8px;
}
.portal-choice-grid-stacked .icon-status .invoice-guide-block {
    margin-bottom: 18px;
}
.portal-choice-grid-stacked .icon-status .portal-card-action-form {
    margin-top: auto;
    padding-top: 34px;
}
.portal-choice-grid-stacked .icon-status .portal-inline-fields {
    margin-bottom: 18px;
    transform: translateY(-6px);
}
.portal-choice-grid-stacked .icon-status .consult-action {
    transform: translateY(6px);
}
.autofactura-card.autofactura-saas .action-status .portal-inline-fields {
    margin-top: 30px !important;
}
.portal-choice-grid-stacked .invoice-recovery-full {
    grid-column: 1 / -1;
}
.portal-choice-stack {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-content: stretch;
}
.portal-choice-stack .portal-choice-card {
    min-height: 0;
}
.portal-choice-card {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: var(--shadow-soft);
    padding: 24px;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 16px;
    height: 100%;
}
.portal-choice-card.primary {
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
    border-color: #B9D4FF;
}
.portal-choice-card span {
    color: #0F172A;
    font-size: 17px;
    font-weight: 850;
}
.portal-choice-card strong {
    color: #64748B;
    font-size: 15px;
    line-height: 1.5;
}
.portal-choice-card:hover {
    transform: translateY(-1px);
    box-shadow: var(--shadow);
}
.portal-choice-card.muted-card {
    background: #F8FAFC;
}
.portal-mini-form {
    display: grid;
    gap: 9px;
    margin-top: 6px;
    margin-bottom: 16px;
}
.portal-card-action-form {
    margin-top: auto;
}
.portal-inline-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 16px;
}
.portal-mini-form input {
    height: 42px;
}
.portal-results table {
    min-width: 680px;
}
.autofactura-hero {
    display: grid;
    grid-template-columns: minmax(0, 3.7fr) minmax(270px, 1.3fr);
    gap: 18px;
    align-items: stretch;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--line);
    margin-bottom: 16px;
}
.hero-copy {
    display: grid;
    align-content: center;
    justify-items: start;
    min-height: 210px;
    border-radius: 18px;
    background: linear-gradient(135deg, #FFFFFF 0%, #F8FBFF 52%, #EEF6FF 100%);
    border: 1px solid #CFE0FF;
    padding: 22px 24px;
    box-shadow: var(--shadow-soft);
}
.hero-title-row {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 22px;
    align-items: center;
    width: 100%;
}
.hero-title-copy {
    min-width: 0;
}
.hero-copy .portal-logo {
    width: 138px;
    max-width: 64vw;
    margin-bottom: 0;
}
.hero-copy .portal-logo-hero {
    width: 142px;
    max-width: 42vw;
    border-radius: 18px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .13);
    border: 1px solid #DCE6F2;
    background: #FFFFFF;
}
.hero-copy h1 {
    max-width: 760px;
    margin: 0;
    color: #0F172A;
    font-size: clamp(30px, 3.7vw, 48px);
    font-weight: 850;
    line-height: 1.08;
}
.hero-copy h1 br {
    display: block;
}
.hero-copy p {
    max-width: 560px;
    margin: 10px 0 0;
    color: #334155;
    font-size: 17px;
    line-height: 1.5;
    font-weight: 600;
}
.trust-indicators {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}
.trust-indicators span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid #DCE6F2;
    border-radius: 999px;
    background: #FFFFFF;
    color: #334155;
    padding: 8px 11px;
    font-size: 16px;
    font-weight: 850;
}
.trust-indicators span::before {
    content: "";
    width: 14px;
    height: 14px;
    border-radius: 999px;
    background: #E8F1FF;
    box-shadow: inset 0 0 0 4px #0F62FE;
}
.autofactura-hero .portal-trust-card {
    margin: 0;
    align-content: start;
    min-height: 210px;
}
.portal-choice-card {
    position: relative;
    padding-top: 66px;
    min-height: 230px;
    transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.portal-choice-card::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 18px;
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background: #E8F1FF;
}
.portal-choice-card::after {
    content: "";
    position: absolute;
    top: 27px;
    left: 27px;
    width: 20px;
    height: 20px;
    background: #0F62FE;
    -webkit-mask: var(--choice-icon, var(--icon-file-text)) center / contain no-repeat;
    mask: var(--choice-icon, var(--icon-file-text)) center / contain no-repeat;
}
.portal-choice-card:hover {
    border-color: #B9D4FF;
}
.portal-choice-card.icon-invoice {
    --choice-icon: var(--icon-receipt-text);
}
.portal-choice-card.icon-status {
    --choice-icon: var(--icon-alert-circle);
}
.portal-choice-card.icon-download {
    --choice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11 3h2v10l3.5-3.5 1.5 1.5-6 6-6-6 1.5-1.5L11 13V3ZM5 19h14v2H5v-2Z'/%3E%3C/svg%3E");
}
.portal-choice-card.icon-mail {
    --choice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 5h18v14H3V5Zm2 3.2V17h14V8.2l-7 4.4-7-4.4ZM6.2 7l5.8 3.6L17.8 7H6.2Z'/%3E%3C/svg%3E");
}
.invoice-start-card {
    min-height: 100%;
    gap: 13px;
    justify-content: flex-start;
}
.invoice-recovery-card {
    min-height: 100%;
    gap: 13px;
    justify-content: flex-start;
}
.invoice-guide-block {
    border: 1px solid #DCE6F2;
    border-radius: 14px;
    background: #F8FBFF;
    padding: 13px 14px;
    margin-bottom: 16px;
}
.invoice-guide-block h3 {
    margin: 0 0 10px;
    color: #0F172A;
    font-size: 14px;
    font-weight: 850;
}
.invoice-guide-block ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px 12px;
}
.invoice-guide-block li {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #334155;
    font-size: 13px;
    font-weight: 750;
}
.invoice-guide-block li::before {
    content: "✓";
    width: 18px;
    height: 18px;
    display: inline-grid;
    place-items: center;
    border-radius: 999px;
    background: #E8F1FF;
    color: #0F62FE;
    font-size: 12px;
    font-weight: 900;
    flex: 0 0 18px;
}
.invoice-mini-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 10px;
    margin-bottom: 16px;
}
.invoice-mini-grid article {
    border: 1px solid #DCE6F2;
    border-radius: 14px;
    background: #FFFFFF;
    padding: 12px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .045);
}
.invoice-mini-grid span {
    display: block;
    color: #0F62FE;
    font-size: 12px;
    font-weight: 850;
    margin-bottom: 5px;
}
.invoice-mini-grid strong {
    display: block;
    color: #0F172A;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
}
.future-invoices-preview {
    border: 1px dashed #B9D4FF;
    border-radius: 14px;
    background: #F8FBFF;
    padding: 12px;
    margin-top: 0;
}
.future-invoices-preview h3 {
    margin: 0 0 10px;
    color: #0F172A;
    font-size: 14px;
    font-weight: 850;
}
.future-invoices-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 6px;
    color: #0F62FE;
    font-size: 11px;
    font-weight: 850;
    margin-bottom: 9px;
}
.future-invoices-preview p {
    margin: 0;
    color: #64748B;
    font-size: 13px;
    font-weight: 700;
}
.invoice-start-button {
    width: 100%;
    margin-top: auto;
    pointer-events: none;
}
.portal-choice-card .portal-action-icon-btn {
    margin-top: auto;
}
.portal-action-icon-btn::before {
    display: none !important;
}
.portal-action-icon-btn {
    font-size: 16px;
    gap: 10px;
    min-height: 46px;
    width: 100%;
    padding-block: 12px;
}
.portal-action-icon-btn.consult-action {
    width: calc(100% - 8px);
    margin-inline: 4px;
    margin-top: 24px !important;
}
.portal-action-icon-btn:not(.mail-action) {
    font-size: 16px;
}
.mail-action-icon {
    width: 25px;
    height: 25px;
    border-radius: 999px;
    background: #0F62FE;
    display: inline-grid;
    place-items: center;
    flex: 0 0 25px;
}
.mail-action-icon::before {
    content: "";
    width: 15px;
    height: 15px;
    background: #FFFFFF;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat;
}
.portal-progress span:last-child.active {
    border-color: #BFEBD4;
    background: #ECFDF3;
    color: #0F9F6E;
}
.portal-progress span:last-child.active strong {
    background: #0F9F6E;
}
.portal-step h2 {
    margin: 0;
    font-size: 22px;
}
.portal-step-title-row {
    align-items: center;
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.portal-step-title-row .step-pill {
    flex: 0 0 auto;
}
.step-pill {
    width: fit-content;
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: var(--blue-soft);
    color: var(--blue);
    padding: 6px 10px;
    font-size: 12px;
    font-weight: 800;
}
.step-pill.success {
    background: #ECFDF3;
    color: var(--success);
}
.portal-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.portal-form.grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.portal-form .btn,
.portal-actions {
    align-self: end;
}
.portal-actions.compact {
    grid-column: auto;
    justify-content: flex-start;
}
.portal-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}
.portal-summary {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 10px;
}
.portal-summary article {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #F8FBFF;
    padding: 12px;
}
.portal-summary span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
    margin-bottom: 5px;
}
.portal-summary strong {
    display: block;
    color: var(--ink);
    font-size: 14px;
    line-height: 1.3;
}
.portal-alert {
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 16px;
    font-weight: 700;
}
.portal-alert.danger {
    background: #FFF1F1;
    color: var(--danger);
    border: 1px solid #F3C6C6;
}
.portal-step.confirmation {
    text-align: center;
    justify-items: center;
    padding: 28px 0;
}
@media (max-width: 920px) {
    .portal-form,
    .portal-form.grid,
    .portal-summary,
    .portal-choice-grid,
    .portal-choice-grid.portal-choice-grid-stacked,
    .portal-progress,
    .portal-inline-fields,
    .invoice-guide-block ul,
    .invoice-mini-grid {
        grid-template-columns: 1fr;
    }
    .autofactura-card {
        padding: 22px;
    }
    .autofactura-brand {
        align-items: flex-start;
    }
    .autofactura-brand.premium {
        display: grid;
        gap: 14px;
    }
    .portal-logo {
        max-width: 220px;
    }
    .portal-trust-card {
        grid-template-columns: 1fr;
    }
    .autofactura-hero {
        grid-template-columns: 1fr;
    }
    .hero-copy {
        min-height: auto;
        padding: 22px;
    }
    .hero-title-row {
        grid-template-columns: 1fr;
        gap: 14px;
    }
}

/* Final autofactura premium overrides */
.autofactura-card.autofactura-saas {
    border: 0;
    box-shadow: 0 22px 60px rgba(15, 23, 42, .12);
}
.autofactura-card.autofactura-saas .autofactura-hero,
.autofactura-card.autofactura-saas .portal-trust-card,
.autofactura-card.autofactura-saas .portal-choice-card,
.autofactura-card.autofactura-saas .invoice-guide-block,
.autofactura-card.autofactura-saas .invoice-mini-grid article,
.autofactura-card.autofactura-saas .future-invoices-preview,
.autofactura-card.autofactura-saas .cfdi-timeline {
    border: 0;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
}
.autofactura-card.autofactura-saas .portal-choice-grid-premium {
    align-items: stretch;
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
.autofactura-card.autofactura-saas .portal-choice-card {
    border-radius: 18px;
    min-height: 0;
    overflow: hidden;
    padding-top: 78px;
}
.autofactura-card.autofactura-saas .portal-choice-card::before {
    border-radius: 20px;
    height: 44px;
    width: 44px;
}
.autofactura-card.autofactura-saas .portal-choice-card::after {
    height: 26px;
    left: 27px;
    top: 27px;
    width: 26px;
}
.autofactura-card.autofactura-saas .action-invoice { background: linear-gradient(180deg, #FFFFFF 0%, #F3F8FF 100%); }
.autofactura-card.autofactura-saas .action-status { background: linear-gradient(180deg, #FFFFFF 0%, #FFFBEB 100%); }
.autofactura-card.autofactura-saas .action-recover { background: linear-gradient(180deg, #FFFFFF 0%, #F0FDF4 100%); }
.autofactura-card.autofactura-saas .action-cancel { background: linear-gradient(180deg, #FFFFFF 0%, #FFF1F2 100%); }
.autofactura-card.autofactura-saas .action-invoice::before { background: #E8F1FF; }
.autofactura-card.autofactura-saas .action-status::before { background: #FEF3C7; }
.autofactura-card.autofactura-saas .action-recover::before { background: #DCFCE7; }
.autofactura-card.autofactura-saas .action-cancel::before { background: #FFE4E6; }
.autofactura-card.autofactura-saas .action-status::after { background: #D97706; }
.autofactura-card.autofactura-saas .action-recover::after { background: #16A34A; }
.autofactura-card.autofactura-saas .action-cancel::after { background: #E11D48; }
.autofactura-card.autofactura-saas .cfdi-timeline {
    align-items: center;
    background: #FFFFFF;
    border-radius: 18px;
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr 26px 1fr 26px 1fr 26px 1fr;
    margin: 18px 0;
    padding: 14px;
}
.autofactura-card.autofactura-saas .cfdi-timeline article {
    align-items: center;
    display: flex;
    gap: 10px;
}
.autofactura-card.autofactura-saas .cfdi-timeline strong {
    align-items: center;
    background: #0F62FE;
    border-radius: 999px;
    color: #FFFFFF;
    display: inline-flex;
    font-size: 13px;
    font-weight: 850;
    height: 30px;
    justify-content: center;
    width: 30px;
}
.autofactura-card.autofactura-saas .cfdi-timeline span {
    color: #334155;
    font-size: 13px;
    font-weight: 800;
}
.autofactura-card.autofactura-saas .cfdi-timeline i {
    background: #CFE0FF;
    display: block;
    height: 2px;
    width: 100%;
}
.autofactura-card.autofactura-saas .icon-cancel {
    --choice-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18'/%3E%3Cpath d='M8 6V4h8v2'/%3E%3Cpath d='M19 6l-1 14H6L5 6'/%3E%3Cpath d='m10 11 4 4'/%3E%3Cpath d='m14 11-4 4'/%3E%3C/g%3E%3C/svg%3E");
}
.autofactura-card.autofactura-saas .invoice-cancel-card select,
.autofactura-card.autofactura-saas .invoice-cancel-card input {
    min-height: 42px;
}
.autofactura-card.autofactura-saas .invoice-cancel-card .btn-danger {
    background: #E11D48;
    border-color: #E11D48;
    color: #FFFFFF;
    margin-top: 12px;
}

/* Autofactura process cards: horizontal icon + title header */
.autofactura-card.autofactura-saas .portal-choice-card {
    padding-top: 24px !important;
}
.autofactura-card.autofactura-saas .portal-choice-head {
    align-items: center;
    display: flex;
    gap: 12px;
    min-height: 44px;
    position: relative;
}
.autofactura-card.autofactura-saas .portal-choice-head span {
    line-height: 1.18;
}
.autofactura-card.autofactura-saas .portal-choice-card::before {
    display: none;
}
.autofactura-card.autofactura-saas .portal-choice-card::after {
    display: none;
}
.autofactura-card.autofactura-saas .portal-choice-head::before {
    background: #E8F1FF;
    border-radius: 20px;
    content: "";
    flex: 0 0 44px;
    height: 44px;
    width: 44px;
}
.autofactura-card.autofactura-saas .portal-choice-head::after {
    background: #0F62FE;
    content: "";
    height: 24px;
    left: 10px;
    position: absolute;
    top: 10px;
    width: 24px;
    -webkit-mask: var(--choice-icon, var(--icon-file-text)) center / contain no-repeat;
    mask: var(--choice-icon, var(--icon-file-text)) center / contain no-repeat;
}
.autofactura-card.autofactura-saas .action-status .portal-choice-head::before {
    background: #FEF3C7;
}
.autofactura-card.autofactura-saas .action-status .portal-choice-head::after {
    background: #D97706;
}
.autofactura-card.autofactura-saas .action-recover .portal-choice-head::before {
    background: #DCFCE7;
}
.autofactura-card.autofactura-saas .action-recover .portal-choice-head::after {
    background: #16A34A;
}
.autofactura-card.autofactura-saas .action-cancel .portal-choice-head::before {
    background: #FFE4E6;
}
.autofactura-card.autofactura-saas .action-cancel .portal-choice-head::after {
    background: #E11D48;
}
.autofactura-card.autofactura-saas .recovery-help-block li::before,
.autofactura-card.autofactura-saas .cancel-help-block li::before {
    content: "";
    background: #0F62FE;
    box-shadow: none;
    border-radius: 0;
    flex: 0 0 18px;
    height: 18px;
    margin-left: 0;
    width: 18px;
    -webkit-mask: var(--invoice-list-icon) center / contain no-repeat;
    mask: var(--invoice-list-icon) center / contain no-repeat;
}
.autofactura-card.autofactura-saas .invoice-list-icon {
    align-items: center;
    gap: 9px;
}
.autofactura-card.autofactura-saas .icon-pdf {
    --invoice-list-icon: var(--icon-file-text);
}
.autofactura-card.autofactura-saas .icon-xml {
    --invoice-list-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpath d='M14 2v6h6'/%3E%3Cpath d='m8 13 2 2-2 2'/%3E%3Cpath d='m16 13-2 2 2 2'/%3E%3Cpath d='M11 18h2'/%3E%3C/g%3E%3C/svg%3E");
}
.autofactura-card.autofactura-saas .icon-mail-item {
    --invoice-list-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/g%3E%3C/svg%3E");
}
.autofactura-card.autofactura-saas .icon-history {
    --invoice-list-icon: var(--icon-receipt-text);
}
.autofactura-card.autofactura-saas .icon-search {
    --invoice-list-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3Cpath d='m8.5 11 1.7 1.7 3.4-3.8'/%3E%3C/g%3E%3C/svg%3E");
}
.autofactura-card.autofactura-saas .icon-user {
    --invoice-list-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M5 21a7 7 0 0 1 14 0'/%3E%3C/g%3E%3C/svg%3E");
}
.autofactura-card.autofactura-saas .icon-settings-item {
    --invoice-list-icon: var(--icon-settings);
}
.autofactura-card.autofactura-saas .icon-location {
    --invoice-list-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-4.7 7-11a7 7 0 1 0-14 0c0 6.3 7 11 7 11Z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/g%3E%3C/svg%3E");
}
.autofactura-card.autofactura-saas .icon-copy {
    --invoice-list-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='11' height='13' rx='2'/%3E%3Cpath d='M5 16H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/g%3E%3C/svg%3E");
}
.autofactura-card.autofactura-saas .icon-refresh-item {
    --invoice-list-icon: var(--icon-refresh-cw);
}
.autofactura-card.autofactura-saas .action-invoice .invoice-guide-block li,
.autofactura-card.autofactura-saas .action-invoice .invoice-mini-grid article strong {
    font-size: 15px !important;
    line-height: 1.35 !important;
}
.autofactura-card.autofactura-saas .action-invoice .invoice-delivery-summary strong {
    font-size: 14px !important;
}
.autofactura-card.autofactura-saas .action-status .invoice-guide-block li,
.autofactura-card.autofactura-saas .action-status .portal-inline-fields input,
.autofactura-card.autofactura-saas .action-status .consult-action {
    font-size: 15px !important;
}
.autofactura-card.autofactura-saas .action-recover .invoice-guide-block li,
.autofactura-card.autofactura-saas .action-recover .portal-inline-fields input,
.autofactura-card.autofactura-saas .action-recover .portal-action-icon-btn,
.autofactura-card.autofactura-saas .action-cancel .invoice-guide-block li,
.autofactura-card.autofactura-saas .action-cancel .portal-inline-fields input,
.autofactura-card.autofactura-saas .action-cancel select,
.autofactura-card.autofactura-saas .action-cancel .portal-action-icon-btn {
    font-size: 15px !important;
}
@media (max-width: 920px) {
    .autofactura-card.autofactura-saas .portal-choice-grid-premium,
    .autofactura-card.autofactura-saas .cfdi-timeline {
        grid-template-columns: 1fr;
    }
    .autofactura-card.autofactura-saas .cfdi-timeline i {
        height: 18px;
        justify-self: start;
        margin-left: 15px;
        width: 2px;
    }
}

/* Final emergency CRM patient directory layout */
.patient-directory-panel {
    background: #FFFFFF;
    border: 1px solid #DCE6F2;
    border-radius: 16px;
    box-shadow: 0 14px 34px rgba(15, 23, 42, .08);
}
.patient-crm-toolbar {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    flex-wrap: wrap;
    padding-bottom: 16px;
    border-bottom: 1px solid #E5ECF6;
    margin-bottom: 18px;
}
.patient-crm-list {
    display: grid !important;
    gap: 14px !important;
}
.patient-crm-card {
    display: grid !important;
    gap: 11px !important;
    background: #FFFFFF !important;
    border: 1px solid #DCE6F2 !important;
    border-radius: 18px !important;
    box-shadow: 0 12px 30px rgba(15, 23, 42, .07) !important;
    padding: 16px !important;
    margin: 0 !important;
}
.patient-crm-primary {
    display: grid !important;
    grid-template-columns: 56px minmax(0, 1fr) minmax(190px, auto) !important;
    gap: 14px !important;
    align-items: start !important;
}
.patient-avatar-sm {
    width: 54px !important;
    height: 54px !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, #0F62FE, #41A5FF) !important;
    color: #FFFFFF !important;
    font-weight: 850 !important;
    font-size: 18px !important;
    box-shadow: 0 10px 22px rgba(15, 98, 254, .2) !important;
}
.patient-title-row {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin-bottom: 5px !important;
}
.patient-crm-name h3 {
    margin: 0 !important;
    color: #0F172A !important;
    font-size: 19px !important;
    line-height: 1.2 !important;
    font-weight: 850 !important;
}
.patient-crm-name p {
    margin: 0 !important;
}
.patient-ai-summary {
    margin-top: 6px !important;
    max-width: 760px !important;
    color: #334155 !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}
.patient-status-badge,
.patient-type-badge {
    display: inline-flex !important;
    align-items: center !important;
    border-radius: 999px !important;
    padding: 6px 10px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    margin: 0 !important;
}
.patient-status-badge.active,
.patient-type-badge.clear {
    background: #ECFDF3 !important;
    color: #087443 !important;
}
.patient-type-badge.private {
    background: #E8F1FF !important;
    color: #0F62FE !important;
}
.patient-type-badge.insured {
    background: #EEF4FF !important;
    color: #0B57D0 !important;
}
.patient-type-badge.pending {
    background: #FFF1F1 !important;
    color: #D94848 !important;
}
.patient-type-badge.followup {
    background: #FFF7E8 !important;
    color: #B76A00 !important;
}
.patient-crm-actions {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    min-width: 0 !important;
}
.patient-crm-actions form {
    margin: 0 !important;
}
.patient-expediente-btn {
    font-size: 14px !important;
    min-height: 36px !important;
    padding: 9px 14px !important;
}
.patient-critical-grid {
    display: grid !important;
    gap: 10px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    align-items: stretch !important;
}
.clinical-summary-zone {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.patient-critical-grid div,
.patient-kpi-row span {
    background: #F8FBFF !important;
    border: 1px solid #E2EAF5 !important;
    border-radius: 12px !important;
    padding: 10px 11px !important;
}
.clinical-summary-zone .clinical-card {
    background: #FFFFFF !important;
    border-color: #D7E6FF !important;
    box-shadow: 0 8px 20px rgba(15, 98, 254, .06) !important;
    min-height: 74px !important;
    padding: 13px 14px !important;
}
.clinical-summary-zone .diagnosis-card {
    background: linear-gradient(180deg, #F8FBFF 0%, #FFFFFF 100%) !important;
    border-left: 5px solid #0F62FE !important;
}
.clinical-summary-zone .symptom-card {
    border-left: 5px solid #41A5FF !important;
}
.clinical-summary-zone .evolution-card {
    border-left: 5px solid #94A3B8 !important;
}
.patient-critical-grid span {
    display: block !important;
    color: #64748B !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    margin-bottom: 5px !important;
}
.patient-critical-grid strong {
    color: #0F172A !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    display: block !important;
    overflow: visible !important;
    overflow-wrap: anywhere !important;
}
.patient-kpi-row {
    display: grid !important;
    gap: 8px !important;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)) !important;
}
.patient-kpi-row span {
    color: #64748B !important;
    font-size: 11px !important;
    font-weight: 700 !important;
}
.patient-kpi-row strong {
    display: block !important;
    color: #0F172A !important;
    font-weight: 800 !important;
    margin-top: 3px !important;
}
.patient-operative-row .operative-item {
    min-height: 58px !important;
    padding: 8px 9px 8px 30px !important;
    position: relative !important;
}
.patient-operative-row .operative-item::before {
    background: #0F62FE;
    content: "";
    height: 16px;
    left: 9px;
    position: absolute;
    top: 10px;
    width: 16px;
    -webkit-mask: var(--patient-op-icon) center / contain no-repeat;
    mask: var(--patient-op-icon) center / contain no-repeat;
}
.patient-operative-row .icon-mail {
    overflow: visible !important;
    padding-left: 30px !important;
    padding-right: 7px !important;
}
.patient-operative-row .icon-mail::before {
    left: 9px;
    top: 8px;
}
.patient-operative-row .icon-mail strong {
    margin-left: -22px !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
    width: calc(100% + 22px) !important;
    word-break: break-word !important;
}
.patient-operative-row .icon-next,
.patient-operative-row .icon-last { --patient-op-icon: var(--icon-calendar-days); }
.patient-operative-row .icon-phone { --patient-op-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.4 19.4 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 2 .7 2.8a2 2 0 0 1-.4 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2Z'/%3E%3C/g%3E%3C/svg%3E"); }
.patient-operative-row .icon-mail { --patient-op-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/g%3E%3C/svg%3E"); }
.patient-operative-row .icon-shield { --patient-op-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3C/g%3E%3C/svg%3E"); }
.patient-operative-row .icon-policy { --patient-op-icon: var(--icon-file-text); }
.patient-operative-row .balance-kpi {
    border-width: 1px !important;
    font-size: 12px !important;
}
.patient-operative-row .balance-kpi::before { --patient-op-icon: var(--icon-wallet); }
.patient-operative-row .balance-clear {
    background: #ECFDF3 !important;
    border-color: #B7E4C7 !important;
    color: #087443 !important;
}
.patient-operative-row .balance-low {
    background: #FFF7E8 !important;
    border-color: #FED7AA !important;
    color: #B76A00 !important;
}
.patient-operative-row .balance-high {
    background: #FFF1F1 !important;
    border-color: #F3C6C6 !important;
    color: #B42318 !important;
}
.patient-collapsible-grid {
    display: grid !important;
    gap: 10px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.patient-clinical-detail {
    background: #FFFFFF !important;
    border: 1px solid #E2EAF5 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
}
.patient-clinical-detail summary {
    cursor: pointer !important;
    color: #0F62FE !important;
    font-size: 12px !important;
    font-weight: 850 !important;
    padding: 11px 12px !important;
    list-style: none !important;
}
.patient-clinical-detail p {
    margin: 0 !important;
    padding: 11px 12px !important;
    border-top: 1px solid #E2EAF5 !important;
    color: #334155 !important;
    font-size: 13px !important;
    line-height: 1.5 !important;
}
.patient-crm-alert {
    border-left: 4px solid #F97316 !important;
    margin-top: 0 !important;
}
@media (max-width: 1180px) {
    .patient-crm-primary {
        grid-template-columns: 52px minmax(0, 1fr) !important;
    }
    .patient-crm-actions {
        justify-content: flex-start !important;
        grid-column: 2 / -1 !important;
    }
}
@media (max-width: 860px) {
    .patient-critical-grid,
    .clinical-summary-zone,
    .patient-collapsible-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Compact surgical KPI and percentage summaries */
.surgical-kpi-grid {
    gap: 12px !important;
    margin-bottom: 14px !important;
}
.surgical-kpi-grid .card {
    min-height: 112px !important;
    padding: 14px 16px !important;
}
.surgical-kpi-grid .kpi-label {
    font-size: 12px !important;
    margin-bottom: 8px !important;
}
.surgical-kpi-grid .kpi-value {
    font-size: 25px !important;
    line-height: 1.12 !important;
}
.surgical-kpi-grid .kpi-trend {
    font-size: 11px !important;
    margin-top: 8px !important;
}
.surgical-kpi-grid .card::after {
    border-radius: 10px !important;
    bottom: 12px !important;
    height: 28px !important;
    right: 12px !important;
    width: 28px !important;
}
.surgical-kpi-grid .card::before {
    bottom: 18px !important;
    height: 16px !important;
    right: 18px !important;
    width: 16px !important;
}
.surgical-percent-summary {
    gap: 10px !important;
    margin-bottom: 16px !important;
}
.surgical-percent-summary .percent-pill {
    align-items: center !important;
    border-radius: 12px !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    min-height: 58px !important;
    padding: 12px 14px !important;
}
.surgical-percent-summary .insight-auto::before {
    flex-basis: 9px !important;
    height: 9px !important;
    margin-top: 2px !important;
    width: 9px !important;
}

/* Iconografia especifica para resumenes de Caja y Finanzas */
.kpi-grid .card.kpi-ingresos-dia { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: var(--icon-calendar-check); }
.kpi-grid .card.kpi-ingresos-mes { --kpi-icon-bg: #ECFDF3; --kpi-icon-color: #0F9F6E; --kpi-icon: var(--icon-banknote); }
.kpi-grid .card.kpi-egresos-mes { --kpi-icon-bg: #FFF7E8; --kpi-icon-color: #D97706; --kpi-icon: var(--icon-credit-card); }
.kpi-grid .card.kpi-cobranza-pendiente { --kpi-icon-bg: #FEF3F2; --kpi-icon-color: #D94848; --kpi-icon: var(--icon-alert-circle); }
.kpi-grid .card.kpi-fin-ingresos { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: var(--icon-wallet); }
.kpi-grid .card.kpi-fin-egresos { --kpi-icon-bg: #F1F5F9; --kpi-icon-color: #475569; --kpi-icon: var(--icon-file-text); }
.kpi-grid .card.kpi-fin-facturacion { --kpi-icon-bg: #EFF6FF; --kpi-icon-color: #1E88E5; --kpi-icon: var(--icon-receipt-text); }
.kpi-grid .card.kpi-fin-pagos { --kpi-icon-bg: #F0FDF4; --kpi-icon-color: #16A34A; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3Cpath d='m8 12 2.5 2.5L16 9'/%3E%3C/g%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-fin-pendientes { --kpi-icon-bg: #FFF7E8; --kpi-icon-color: #B76A00; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3C/g%3E%3C/svg%3E"); }

/* Caja: iconos unicos por KPI, sin repetir simbolos en el resumen */
.kpi-grid .card.kpi-ingresos-dia { --kpi-icon-bg: #E8F1FF; --kpi-icon-color: #0F62FE; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 10V7a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v3'/%3E%3Crect x='4' y='10' width='16' height='9' rx='2'/%3E%3Cpath d='M8 14h4M16 14h.01M8 17h8'/%3E%3C/g%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-ingresos-mes { --kpi-icon-bg: #ECFDF3; --kpi-icon-color: #0F9F6E; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='17' rx='2'/%3E%3Cpath d='M8 2v4M16 2v4M3 10h18'/%3E%3Ccircle cx='12' cy='15' r='3'/%3E%3Cpath d='M12 13.8v2.4M10.8 15h2.4'/%3E%3C/g%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-egresos-mes { --kpi-icon-bg: #FFF7E8; --kpi-icon-color: #D97706; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 4v12'/%3E%3Cpath d='m7 11 5 5 5-5'/%3E%3Cpath d='M5 20h14'/%3E%3C/g%3E%3C/svg%3E"); }
.kpi-grid .card.kpi-cobranza-pendiente { --kpi-icon-bg: #FEF3F2; --kpi-icon-color: #D94848; --kpi-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7v5l3 2'/%3E%3Cpath d='M7 18h10'/%3E%3C/g%3E%3C/svg%3E"); }

/* Finanzas: resumen ejecutivo en una sola linea */
.finance-kpi-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
.finance-kpi-grid .card {
    min-height: 118px !important;
    padding: 14px 16px !important;
}
.finance-kpi-grid .kpi-label {
    font-size: 12px !important;
    margin-bottom: 8px !important;
    padding-right: 40px !important;
}
.finance-kpi-grid .kpi-value {
    font-size: clamp(21px, 1.85vw, 28px) !important;
    line-height: 1.1 !important;
    padding-right: 38px !important;
}
.finance-kpi-grid .kpi-trend {
    font-size: 11px !important;
    margin-top: 8px !important;
}
.finance-kpi-grid .card::after {
    bottom: 12px !important;
    height: 30px !important;
    right: 12px !important;
    width: 30px !important;
}
.finance-kpi-grid .card::before {
    bottom: 19px !important;
    height: 16px !important;
    right: 19px !important;
    width: 16px !important;
}
.finance-percent-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-bottom: 16px !important;
}
.finance-percent-summary .percent-pill {
    align-items: center !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    min-height: 54px !important;
    padding: 11px 13px !important;
}
.finance-percent-summary .insight-auto::before {
    flex-basis: 8px !important;
    height: 8px !important;
    margin-top: 2px !important;
    width: 8px !important;
}
@media (max-width: 1280px) {
    .finance-kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    .finance-percent-summary { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 820px) {
    .finance-kpi-grid,
    .finance-percent-summary { grid-template-columns: 1fr !important; }
}

/* Reportes premium: vista previa PDF + tabla HTML */
.report-inline-preview {
    overflow: hidden;
}
.report-pdf-frame {
    width: 100%;
    min-height: 680px;
    border: 1px solid #D9E2EC;
    border-radius: 12px;
    background: #F8FAFC;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .04);
}
.report-html-preview-table table {
    min-width: 760px;
}
.report-preview-card .actions-inline {
    margin-top: auto;
}
.report-preview-card .btn {
    min-width: 92px;
    justify-content: center;
}
@media (max-width: 900px) {
    .report-pdf-frame { min-height: 520px; }
}

/* Navegacion fija en vista previa de reportes */
.report-preview-sticky-nav {
    position: sticky;
    top: 76px;
    z-index: 30;
    display: flex;
    justify-content: flex-start;
    margin: -6px 0 14px;
    padding: 10px 0;
    background: rgba(244, 247, 251, .92);
    backdrop-filter: blur(8px);
}
.report-preview-sticky-nav .btn {
    box-shadow: 0 10px 24px rgba(15, 23, 42, .08);
}

/* Ajuste fino: bajar solo el boton Consultar estado en autofactura */
.autofactura-card.autofactura-saas .action-status .consult-action {
    margin-top: 28px !important;
}




/* Modal inline para vista previa de reportes */
.report-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 1200;
}
.report-modal.open {
    display: block;
}
.report-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .62);
    backdrop-filter: blur(6px);
}
.report-modal-panel {
    position: relative;
    width: min(1180px, calc(100vw - 48px));
    height: min(860px, calc(100vh - 48px));
    margin: 24px auto;
    background: #FFFFFF;
    border: 1px solid #DCE6F2;
    border-radius: 16px;
    box-shadow: 0 30px 80px rgba(15, 23, 42, .28);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.report-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: 1px solid #E2E8F0;
    background: #F8FAFC;
}
.report-modal-head h2 {
    margin: 4px 0 0;
    font-size: 22px;
    color: #0F172A;
}
.report-modal-frame {
    width: 100%;
    flex: 1;
    border: 0;
    background: #F8FAFC;
}
@media (max-width: 760px) {
    .report-modal-panel {
        width: calc(100vw - 20px);
        height: calc(100vh - 20px);
        margin: 10px auto;
    }
    .report-modal-head {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* Reportes: iconos especificos al inicio de cada tarjeta */
.report-preview-head-icon-left {
    align-items: center !important;
    justify-content: flex-start !important;
}
.report-preview-head-icon-left .report-preview-icon {
    box-shadow: 0 10px 24px rgba(37, 99, 235, .12);
}
.report-preview-icon::before {
    -webkit-mask: var(--report-preview-mask, var(--icon-file-text)) center / contain no-repeat !important;
    mask: var(--report-preview-mask, var(--icon-file-text)) center / contain no-repeat !important;
}
.report-preview-icon-ejecutivo {
    background: #EFF6FF !important;
    --report-preview-mask: var(--icon-executive-doctor);
}
.report-preview-icon-operativo {
    background: #ECFDF3 !important;
    --report-preview-mask: var(--icon-activity);
}
.report-preview-icon-financiero {
    background: #E8F1FF !important;
    --report-preview-mask: var(--icon-finance-growth);
}
.report-preview-icon-fiscal {
    background: #FFF7E8 !important;
    --report-preview-mask: var(--icon-tax-calculator);
}
.report-preview-icon-ejecutivo::before { background: #2563EB !important; inset: 8px !important; }
.report-preview-icon-operativo::before { background: #0F9F6E !important; }
.report-preview-icon-financiero::before { background: #1E40AF !important; inset: 8px !important; }
.report-preview-icon-fiscal::before { background: #B76A00 !important; inset: 8px !important; }

/* Reportes: badges de estado premium, sin puntos circulares planos */
.status-cell {
    text-align: center;
    vertical-align: middle;
}
.status-pill {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 800;
    gap: 6px;
    justify-content: center;
    line-height: 1;
    min-height: 24px;
    padding: 4px 10px;
    text-transform: capitalize;
    white-space: nowrap;
}
.status-pill::before {
    align-items: center;
    display: inline-flex;
    font-size: 11px;
    font-weight: 900;
    justify-content: center;
    line-height: 1;
}
.status-pill.status-success {
    background: #E6F4EA;
    border-color: #CDEAD5;
    color: #137333;
}
.status-pill.status-success::before {
    content: "\2713";
}
.status-pill.status-scheduled {
    background: #E8F0FE;
    border-color: #D2E3FC;
    color: #1A73E8;
}
.status-pill.status-scheduled::before {
    content: "\25F7";
    font-size: 12px;
}
.status-pill.status-danger {
    background: #FCE8E6;
    border-color: #F6C6C2;
    color: #C5221F;
}
.status-pill.status-danger::before {
    content: "\00D7";
    font-size: 13px;
}

/* Reportes: checklist corporativo con check vectorial en lugar de circulos planos */
.report-checklist li::before {
    align-items: center !important;
    background: #E8F0FE !important;
    border: 1px solid #D2E3FC !important;
    border-radius: 7px !important;
    box-shadow: 0 4px 10px rgba(26, 115, 232, .10) !important;
    color: #1A73E8 !important;
    content: "\2713" !important;
    display: inline-flex !important;
    flex: 0 0 18px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    height: 18px !important;
    justify-content: center !important;
    line-height: 1 !important;
    width: 18px !important;
}

/* Fiscal y Reportes: iconografia semantica premium */
:root {
    --icon-calculator: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%222%22%20width%3D%2216%22%20height%3D%2220%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%206h8M8%2010h.01M12%2010h.01M16%2010h.01M8%2014h.01M12%2014h.01M16%2014h.01M8%2018h8%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-wallet-alert: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19%207V5a2%202%200%200%200-2-2H5a3%203%200%200%200%200%206h15a2%202%200%200%201%202%202v5a2%202%200%200%201-2%202H5a3%203%200%200%201-3-3V6%22%2F%3E%3Cpath%20d%3D%22M18%2013h.01M12%209v4M12%2017h.01%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-landmark: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021h18M5%2010h14M7%2010v8M11%2010v8M15%2010v8M19%2010v8M12%203%204%208h16l-8-5Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-lightbulb: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%2018h6M10%2022h4M8%2014a6%206%200%201%201%208%200c-.8.7-1%201.5-1%202H9c0-.5-.2-1.3-1-2Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-star: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%202%203%206%206.5.9-4.7%204.6%201.1%206.5L12%2017l-5.9%203%201.1-6.5L2.5%208.9%209%208l3-6Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-table: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18M9%204v16M15%204v16%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-code-file: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8Z%22%2F%3E%3Cpath%20d%3D%22M14%202v6h6M10%2013l-2%202%202%202M14%2013l2%202-2%202%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-executive-doctor: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Ccircle%20cx%3D%2212%22%20cy%3D%226.2%22%20r%3D%222.6%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M7.2%2014.2c.5-2.7%202.3-4.3%204.8-4.3s4.3%201.6%204.8%204.3%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M8.6%2011.6%2012%2015l3.4-3.4%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M9.5%2015.5h5%22%2F%3E%0A%20%20%3Crect%20x%3D%225%22%20y%3D%2216%22%20width%3D%2214%22%20height%3D%224.2%22%20rx%3D%221.2%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M8%2020.2h8%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E");
    --icon-finance-growth: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M4%2020h16%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M20%2020V6%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M7%2020v-4%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M11%2020v-7%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%2020v-5%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M5.5%2012.8%209%209.5l3%202.5%205.2-6%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%225.5%22%20cy%3D%2212.8%22%20r%3D%22.9%22%20fill%3D%22black%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%229%22%20cy%3D%229.5%22%20r%3D%22.9%22%20fill%3D%22black%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%22.9%22%20fill%3D%22black%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2217.2%22%20cy%3D%226%22%20r%3D%22.9%22%20fill%3D%22black%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%227.4%22%20cy%3D%225.8%22%20r%3D%222.5%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M7.4%204.4v2.8%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M8.3%205.1c-.3-.4-1.5-.6-1.7.2-.2.7.7.9%201.3%201.1.9.3.8%201.5-.2%201.6-.6.1-1.2-.1-1.5-.5%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E");
    --icon-tax-calculator: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.95%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%0A%20%20%3Cpath%20d%3D%22M5%203h8l4%204v4.5%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M13%203v5h5%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M5%203v18h8%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M7.2%2011.2h4.6%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M7.2%2014h4.2%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M7.2%2016.8h3.8%22%2F%3E%0A%20%20%3Crect%20x%3D%2213.2%22%20y%3D%2212%22%20width%3D%226.8%22%20height%3D%228.4%22%20rx%3D%221.1%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%2014.1h3.2%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%2016.3h.1M16.8%2016.3h.1M18.5%2016.3h.1%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M15%2018.2h.1M16.8%2018.2h.1M18.5%2018.2h.1%22%2F%3E%0A%3C%2Fg%3E%0A%3Cg%20fill%3D%22black%22%3E%0A%20%20%3Cpath%20d%3D%22M6.6%208.8V7.6h-.8V7h2.2v.6h-.8v1.2h-.6Z%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M8%208.8%208.6%207h.8l.6%201.8h-.6l-.1-.3h-.6l-.1.3H8Zm.9-.8h.3l-.1-.4h-.1L8.9%208Z%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M10.1%208.8l.5-.9-.5-.9h.7l.2.4.2-.4h.7l-.5.9.5.9h-.7l-.2-.4-.2.4h-.7Z%22%2F%3E%0A%3C%2Fg%3E%0A%3C%2Fsvg%3E");
    --icon-gauge: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%2014a8%208%200%201%201%2016%200%22%2F%3E%3Cpath%20d%3D%22M12%2014l4-4%22%2F%3E%3Cpath%20d%3D%22M6%2018h12%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

.kpi-grid .card.kpi-isr {
    --kpi-icon: var(--icon-calculator) !important;
}

.kpi-grid .card.kpi-iva {
    --kpi-icon: var(--icon-receipt-text) !important;
}

.kpi-grid .card.kpi-iva-pagar {
    --kpi-icon: var(--icon-wallet-alert) !important;
}

.kpi-grid .card.kpi-impuestos {
    --kpi-icon: var(--icon-tax-calculator) !important;
}

.kpi-grid .card.kpi-facturacion {
    --kpi-icon: var(--icon-banknote) !important;
}

.kpi-grid .card.kpi-fiscal {
    --kpi-icon: var(--icon-percent) !important;
}

.report-checklist li::before {
    content: "" !important;
    width: 20px !important;
    height: 20px !important;
    flex: 0 0 20px !important;
    border: 0 !important;
    border-radius: 7px !important;
    background-image: none !important;
    background-color: #2563EB !important;
    box-shadow: none !important;
    -webkit-mask: var(--report-check-icon, var(--icon-file-text)) center / 15px 15px no-repeat !important;
    mask: var(--report-check-icon, var(--icon-file-text)) center / 15px 15px no-repeat !important;
}

.report-checklist li.report-icon-document::before { --report-check-icon: var(--icon-file-text); background-color: #2563EB !important; }
.report-checklist li.report-icon-chart::before { --report-check-icon: var(--icon-bar-chart-3); background-color: #1D4ED8 !important; }
.report-checklist li.report-icon-wallet::before { --report-check-icon: var(--icon-wallet); background-color: #0F172A !important; }
.report-checklist li.report-icon-wallet-alert::before { --report-check-icon: var(--icon-wallet-alert); background-color: #1E40AF !important; }
.report-checklist li.report-icon-calculator::before { --report-check-icon: var(--icon-calculator); background-color: #1E40AF !important; }
.report-checklist li.report-icon-lightbulb::before { --report-check-icon: var(--icon-lightbulb); background-color: #2563EB !important; }
.report-checklist li.report-icon-ranking::before { --report-check-icon: var(--icon-star); background-color: #0B5FD7 !important; }
.report-checklist li.report-icon-table::before { --report-check-icon: var(--icon-table); background-color: #3B82F6 !important; }
.report-checklist li.report-icon-invoice::before { --report-check-icon: var(--icon-receipt-text); background-color: #1D4ED8 !important; }
.report-checklist li.report-icon-file::before { --report-check-icon: var(--icon-file-text); background-color: #2563EB !important; }
.report-checklist li.report-icon-code::before { --report-check-icon: var(--icon-code-file); background-color: #0F172A !important; }
.report-checklist li.report-icon-landmark::before { --report-check-icon: var(--icon-landmark); background-color: #1E3A8A !important; }

/* Reportes: iconos superiores SVG premium directos */
.report-preview-icon-ejecutivo::before,
.report-preview-icon-financiero::before,
.report-preview-icon-fiscal::before {
    inset: 4px !important;
    width: auto !important;
    height: auto !important;
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    background-size: 38px 38px !important;
    -webkit-mask: none !important;
    mask: none !important;
}

.report-preview-icon-ejecutivo::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%3E%0A%20%20%3Crect%20x%3D%227%22%20y%3D%2242%22%20width%3D%2250%22%20height%3D%2212%22%20rx%3D%223%22%20fill%3D%22%23DBEAFE%22%2F%3E%0A%20%20%3Crect%20x%3D%2211%22%20y%3D%2245%22%20width%3D%2242%22%20height%3D%225%22%20rx%3D%222.5%22%20fill%3D%22%232563EB%22%20opacity%3D%22.18%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2232%22%20cy%3D%2218%22%20r%3D%228%22%20fill%3D%22%23EFF6FF%22%20stroke%3D%22%232563EB%22%20stroke-width%3D%224%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M18%2042c1.5-10.5%207-16%2014-16s12.5%205.5%2014%2016%22%20fill%3D%22none%22%20stroke%3D%22%232563EB%22%20stroke-width%3D%224.5%22%20stroke-linecap%3D%22round%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M25%2030l7%208%207-8%22%20fill%3D%22none%22%20stroke%3D%22%231E40AF%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M27%2038h10%22%20stroke%3D%22%231E40AF%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M14%2054h36%22%20stroke%3D%22%231E40AF%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%0A%3C%2Fsvg%3E") !important;
}

.report-preview-icon-financiero::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2068%22%3E%0A%20%20%3Cpath%20d%3D%22M12%2055h42M54%2055V18%22%20stroke%3D%22%231E40AF%22%20stroke-width%3D%225%22%20stroke-linecap%3D%22round%22%2F%3E%0A%20%20%3Crect%20x%3D%2218%22%20y%3D%2244%22%20width%3D%227%22%20height%3D%2211%22%20rx%3D%222%22%20fill%3D%22%2360A5FA%22%2F%3E%0A%20%20%3Crect%20x%3D%2230%22%20y%3D%2237%22%20width%3D%227%22%20height%3D%2218%22%20rx%3D%222%22%20fill%3D%22%232563EB%22%2F%3E%0A%20%20%3Crect%20x%3D%2242%22%20y%3D%2229%22%20width%3D%227%22%20height%3D%2226%22%20rx%3D%222%22%20fill%3D%22%230F172A%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M17%2037l10-9%208%206%2014-16%22%20fill%3D%22none%22%20stroke%3D%22%232563EB%22%20stroke-width%3D%224.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2217%22%20cy%3D%2237%22%20r%3D%223.2%22%20fill%3D%22%232563EB%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2227%22%20cy%3D%2228%22%20r%3D%223.2%22%20fill%3D%22%232563EB%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2235%22%20cy%3D%2234%22%20r%3D%223.2%22%20fill%3D%22%232563EB%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2249%22%20cy%3D%2218%22%20r%3D%223.2%22%20fill%3D%22%232563EB%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2220%22%20cy%3D%2212.5%22%20r%3D%2210.2%22%20fill%3D%22%23EFF6FF%22%20stroke%3D%22%231E40AF%22%20stroke-width%3D%224%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M20%206.2v12.5%22%20stroke%3D%22%231E40AF%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M24.2%209.1c-1.4-2.4-8.3-2.7-8.3%201.2%200%204.7%208.6%202.4%208.6%206.7%200%203.8-6.4%203.8-8.7%201%22%20stroke%3D%22%231E40AF%22%20stroke-width%3D%223%22%20stroke-linecap%3D%22round%22%20fill%3D%22none%22%2F%3E%0A%3C%2Fsvg%3E") !important;
}

.report-preview-icon-fiscal::before {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%3E%0A%20%20%3Cpath%20d%3D%22M10%206h28l12%2012v37H10z%22%20fill%3D%22%23FFF7E8%22%20stroke%3D%22%23B76A00%22%20stroke-width%3D%224%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M38%206v13h12%22%20fill%3D%22none%22%20stroke%3D%22%23B76A00%22%20stroke-width%3D%224%22%20stroke-linejoin%3D%22round%22%2F%3E%0A%20%20%3Cpath%20d%3D%22M17%2034h18M17%2042h15M17%2049h12%22%20stroke%3D%22%23F59E0B%22%20stroke-width%3D%224%22%20stroke-linecap%3D%22round%22%2F%3E%0A%20%20%3Ctext%20x%3D%2215%22%20y%3D%2228%22%20font-family%3D%22Arial%2C%20sans-serif%22%20font-size%3D%2215%22%20font-weight%3D%22900%22%20fill%3D%22%23EA580C%22%3ETAX%3C%2Ftext%3E%0A%20%20%3Crect%20x%3D%2235%22%20y%3D%2231%22%20width%3D%2219%22%20height%3D%2224%22%20rx%3D%223%22%20fill%3D%22%23FFF7E8%22%20stroke%3D%22%23EA580C%22%20stroke-width%3D%224%22%2F%3E%0A%20%20%3Crect%20x%3D%2240%22%20y%3D%2236%22%20width%3D%229%22%20height%3D%224.5%22%20rx%3D%221%22%20fill%3D%22%23FDBA74%22%2F%3E%0A%20%20%3Ccircle%20cx%3D%2240%22%20cy%3D%2245%22%20r%3D%221.8%22%20fill%3D%22%23EA580C%22%2F%3E%3Ccircle%20cx%3D%2246%22%20cy%3D%2245%22%20r%3D%221.8%22%20fill%3D%22%23EA580C%22%2F%3E%3Ccircle%20cx%3D%2240%22%20cy%3D%2251%22%20r%3D%221.8%22%20fill%3D%22%23EA580C%22%2F%3E%3Ccircle%20cx%3D%2246%22%20cy%3D%2251%22%20r%3D%221.8%22%20fill%3D%22%23EA580C%22%2F%3E%0A%3C%2Fsvg%3E") !important;
}

/* Reportes: ajuste fino icono financiero */
.report-preview-icon-financiero {
    width: 48px !important;
    height: 48px !important;
    flex-basis: 48px !important;
    border-radius: 16px !important;
}

.report-preview-icon-financiero::before {
    inset: 3px !important;
    background-size: 42px 42px !important;
}

/* KPI SaaS premium: iconografia semantica final */
:root {
    --icon-stethoscope: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%203v5a4%204%200%200%200%208%200V3%22%2F%3E%3Cpath%20d%3D%22M4%203h4M12%203h4%22%2F%3E%3Cpath%20d%3D%22M10%2012v2a5%205%200%200%200%2010%200v-2%22%2F%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2210%22%20r%3D%222%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-badge-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203%2014.3%205.3%2017.5%205.1%2018.9%208%2021.7%209.6%2020.9%2012.7%2021.7%2015.8%2018.9%2017.4%2017.5%2020.3%2014.3%2020.1%2012%2022.4%209.7%2020.1%206.5%2020.3%205.1%2017.4%202.3%2015.8%203.1%2012.7%202.3%209.6%205.1%208%206.5%205.1%209.7%205.3%2012%203Z%22%2F%3E%3Cpath%20d%3D%22m8.5%2012.2%202.2%202.2%204.8-5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-shield-check: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022s8-4%208-10V5l-8-3-8%203v7c0%206%208%2010%208%2010Z%22%2F%3E%3Cpath%20d%3D%22m8.8%2012%202%202%204.5-4.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
    --icon-clock-alert: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cg%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v5l3%202%22%2F%3E%3Cpath%20d%3D%22M7%2019h10%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}

.kpi-grid .card.kpi-pacientes,
.kpi-grid .card.kpi-usuarios {
    --kpi-icon-bg: #E8F1FF !important;
    --kpi-icon-color: #0F62FE !important;
    --kpi-icon: var(--icon-users) !important;
}

.kpi-grid .card.kpi-citas,
.kpi-grid .card.kpi-agenda,
.kpi-grid .card.kpi-reuniones {
    --kpi-icon-bg: #E8F1FF !important;
    --kpi-icon-color: #1E88E5 !important;
    --kpi-icon: var(--icon-calendar-check) !important;
}

.kpi-grid .card.kpi-cirugias {
    --kpi-icon-bg: #EEF2FF !important;
    --kpi-icon-color: #4F46E5 !important;
    --kpi-icon: var(--icon-stethoscope) !important;
}

.kpi-grid .card.kpi-asistencia,
.kpi-grid .card.kpi-confirmadas {
    --kpi-icon-bg: #ECFDF3 !important;
    --kpi-icon-color: #12B76A !important;
    --kpi-icon: var(--icon-badge-check) !important;
}

.kpi-grid .card.kpi-ingresos,
.kpi-grid .card.kpi-fin-ingresos {
    --kpi-icon-bg: #ECFDF3 !important;
    --kpi-icon-color: #0F9F6E !important;
    --kpi-icon: var(--icon-banknote) !important;
}

.kpi-grid .card.kpi-facturas,
.kpi-grid .card.kpi-facturacion,
.kpi-grid .card.kpi-fin-facturacion {
    --kpi-icon-bg: #EFF6FF !important;
    --kpi-icon-color: #1E88E5 !important;
    --kpi-icon: var(--icon-receipt-text) !important;
}

.kpi-grid .card.kpi-aseguradoras {
    --kpi-icon-bg: #ECFDF3 !important;
    --kpi-icon-color: #0F9F6E !important;
    --kpi-icon: var(--icon-shield-check) !important;
}

.kpi-grid .card.kpi-pendientes,
.kpi-grid .card.kpi-cobranza,
.kpi-grid .card.kpi-fin-pendientes {
    --kpi-icon-bg: #FEF3F2 !important;
    --kpi-icon-color: #D94848 !important;
    --kpi-icon: var(--icon-clock-alert) !important;
}

.kpi-grid .card.kpi-impuestos {
    --kpi-icon-bg: #FFF7E8 !important;
    --kpi-icon-color: #B76A00 !important;
    --kpi-icon: var(--icon-tax-calculator) !important;
}

/* Expediente medico: captura primero, vista clinica despues */
.patient-main {
    display: flex;
    flex-direction: column;
}

#historia-clinica,
.clinical-detail-panel {
    order: -5;
}

.patient-main > .clinical-alert-compact {
    order: -6;
}

.clinical-detail-panel .panel-head .btn {
    white-space: nowrap;
}

.clinical-detail-grid article p {
    white-space: pre-wrap;
}

/* Agenda Clinica: alertas compactas tipo subventana */
.agenda-alert-popover {
    border-left: 4px solid var(--warning);
    box-shadow: 0 18px 38px rgba(15, 23, 42, .12);
    margin-top: -8px;
}

.agenda-alert-popover .clinical-alert-list {
    display: grid;
    gap: 8px;
    margin-top: 10px;
}

.agenda-alert-popover .clinical-alert-list li {
    align-items: center;
    background: #fff;
    border: 1px solid #FDE7C5;
    border-radius: 8px;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
    display: flex;
    justify-content: space-between;
    padding: 10px 12px;
}

.agenda-alert-popover .clinical-alert-list li.critical {
    border-color: #FECACA;
}

.agenda-followup-duplicated[hidden] {
    display: none !important;
}

.kpi-grid .card.kpi-postoperatorio {
    --kpi-icon-bg: #EFF6FF !important;
    --kpi-icon-color: #0F766E !important;
    --kpi-icon: var(--icon-badge-check) !important;
}

.kpi-grid .card.kpi-reagendadas {
    --kpi-icon-bg: #FFF7E8 !important;
    --kpi-icon-color: #B76A00 !important;
    --kpi-icon: var(--icon-clock-alert) !important;
}

/* Gestion de procedimientos clinico-operativa */
.surgical-operative-page .filter-panel {
    margin-bottom: 18px;
}

.surgical-summary-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.surgical-process-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 18px;
}

.surgical-process-tabs .chart-toggle {
    text-decoration: none;
}

.ai-recommendation-panel {
    border-left: 4px solid var(--blue);
}

.ai-recommendation-panel p,
.surgical-restricted-panel p {
    color: #344054;
    font-size: 14px;
    line-height: 1.6;
    margin: 0;
}

.surgical-restricted-panel {
    border-left: 4px solid var(--warning);
}

.clinical-alert-grouped {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.clinical-alert-grouped strong {
    color: #7C2D12;
    font-size: 13px;
}

.clinical-alert-grouped small {
    color: #9A3412;
    display: block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.surgical-general-kpis .kpi-grid {
    margin-bottom: 0;
}

.surgical-summary-grid {
    grid-template-columns: repeat(4, minmax(150px, 1fr));
}

.surgical-kanban-panel {
    border-left: 4px solid var(--blue);
}

.surgical-kanban {
    grid-template-columns: repeat(4, minmax(240px, 1fr));
    overflow-x: auto;
}

.surgical-kanban-col {
    background: #F8FAFC;
    min-height: 380px;
    position: relative;
}

.surgical-kanban-col:not(:last-child)::after {
    color: #94A3B8;
    content: ">";
    font-size: 22px;
    font-weight: 900;
    position: absolute;
    right: -17px;
    top: 18px;
    z-index: 1;
}

.surgical-kanban-card {
    display: grid;
    gap: 8px;
    margin-bottom: 12px;
}

.surgical-kanban-card h3,
.surgical-kanban-card p {
    margin: 0;
}

.procedure-card-meta {
    border-top: 1px solid #E2E8F0;
    display: grid;
    gap: 7px;
    margin-top: 2px;
    padding-top: 8px;
}

.procedure-card-meta div {
    display: grid;
    gap: 2px;
}

.procedure-card-meta span {
    color: #64748B;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.procedure-card-meta strong {
    color: #1E293B;
    font-size: 12px;
    line-height: 1.35;
}

.procedure-team-block,
.procedure-reconsulta-block {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    padding: 8px;
}

.procedure-operate-link {
    justify-self: start;
    margin-top: 2px;
}

.procedure-operational-panel {
    border-left: 4px solid var(--blue);
}

.procedure-selector {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin-bottom: 12px;
}

.procedure-selector-item {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    color: #344054;
    display: grid;
    gap: 3px;
    padding: 10px 12px;
    text-decoration: none;
}

.procedure-selector-item strong {
    color: #101828;
    font-size: 13px;
}

.procedure-selector-item span {
    color: #667085;
    font-size: 12px;
}

.procedure-selector-item.active {
    border-color: var(--blue);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}

.compact-pagination {
    justify-content: flex-start;
    margin: 0 0 16px;
}

.procedure-operational-form {
    display: grid;
    gap: 16px;
}

.procedure-alerts {
    background: #FFF7ED;
    border: 1px solid #FDBA74;
    border-left: 4px solid #F97316;
    border-radius: 8px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 10px;
}

.procedure-alerts span {
    background: #FFFFFF;
    border: 1px solid #FED7AA;
    border-radius: 999px;
    color: #9A3412;
    font-size: 12px;
    font-weight: 800;
    padding: 5px 8px;
}

.procedure-alerts span.critical {
    border-color: #FCA5A5;
    color: #991B1B;
}

.procedure-form-grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.procedure-form-section {
    background: #FFFFFF;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    display: grid;
    gap: 10px;
    padding: 14px;
}

.procedure-form-section.span-2 {
    grid-column: 1 / -1;
}

.procedure-form-section h3 {
    color: #101828;
    font-size: 15px;
    margin: 0;
}

.procedure-form-section label {
    color: #344054;
    font-size: 12px;
    font-weight: 800;
}

.procedure-form-section textarea {
    resize: vertical;
}

.procedure-check-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
}

.procedure-check-grid label {
    align-items: center;
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    display: flex;
    gap: 8px;
    padding: 8px 9px;
}

.procedure-check-grid input {
    width: auto;
}

.compact-two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.procedure-timeline-section {
    align-content: start;
}

.procedure-timeline {
    display: grid;
    gap: 10px;
}

.procedure-timeline div {
    align-items: center;
    color: #667085;
    display: grid;
    font-size: 13px;
    font-weight: 800;
    gap: 10px;
    grid-template-columns: 16px 1fr;
    min-height: 24px;
}

.procedure-timeline span {
    background: #E2E8F0;
    border: 3px solid #FFFFFF;
    border-radius: 999px;
    box-shadow: 0 0 0 1px #CBD5E1;
    height: 14px;
    width: 14px;
}

.procedure-timeline div.active {
    color: #1D4ED8;
}

.procedure-timeline div.active span {
    background: var(--blue);
    box-shadow: 0 0 0 1px var(--blue);
}

.procedure-action-bar {
    align-items: center;
    border-top: 1px solid #E2E8F0;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 14px;
}

.surgical-card-alert-band {
    background: #FFF7ED;
    border: 1px solid #FDBA74;
    border-left: 4px solid #F97316;
    border-radius: 8px;
    display: grid;
    gap: 5px;
    padding: 8px 9px;
}

.surgical-card-alert-band span {
    color: #9A3412;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
}

.surgical-card-alert-band span.critical {
    color: #991B1B;
}

.surgical-process-kpis {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1180px) {
    .surgical-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .surgical-summary-grid,
    .surgical-kpi-grid {
        grid-template-columns: 1fr;
    }

    .surgical-kanban {
        grid-template-columns: repeat(4, 260px);
    }

    .surgical-kanban-col:not(:last-child)::after {
        display: none;
    }

    .procedure-form-grid,
    .compact-two {
        grid-template-columns: 1fr;
    }

    .agenda-alert-popover .clinical-alert-list li {
        align-items: flex-start;
        flex-direction: column;
    }
}

/* Finanzas: egresos con icono de tarjeta */
.kpi-grid .card.kpi-fin-egresos {
    --kpi-icon-bg: #F1F5F9 !important;
    --kpi-icon-color: #475569 !important;
    --kpi-icon: var(--icon-credit-card) !important;
    padding-right: 72px !important;
}

.kpi-grid .card.kpi-fin-egresos::after {
    right: 16px !important;
    bottom: 11px !important;
}

.kpi-grid .card.kpi-fin-egresos::before {
    right: 25px !important;
    bottom: 20px !important;
}

/* PM360 interface redesign pass: shell, clinical worklists, dashboard and login */
:root {
    --pm360-ink: #101828;
    --pm360-ink-soft: #344054;
    --pm360-muted: #667085;
    --pm360-blue: #0B5FD7;
    --pm360-blue-strong: #0747A6;
    --pm360-blue-soft: #EAF3FF;
    --pm360-surface: #FFFFFF;
    --pm360-surface-soft: #F7FAFD;
    --pm360-border: #D8E2EE;
    --pm360-border-strong: #B9CCE2;
    --pm360-success: #087443;
    --pm360-warning: #B76A00;
    --pm360-danger: #B42318;
    --pm360-radius-sm: 8px;
    --pm360-radius-md: 12px;
    --pm360-radius-lg: 18px;
    --pm360-control-h: 42px;
    --pm360-focus: 0 0 0 3px rgba(11, 95, 215, .18);
    --pm360-shadow-sm: 0 8px 20px rgba(16, 24, 40, .05);
    --pm360-shadow-md: 0 18px 42px rgba(16, 24, 40, .08);
}

.skip-link {
    position: fixed;
    left: 16px;
    top: 12px;
    z-index: 2000;
    transform: translateY(-140%);
    background: var(--pm360-ink);
    color: #FFFFFF;
    border-radius: var(--pm360-radius-sm);
    padding: 10px 13px;
    font-weight: 800;
    text-decoration: none;
    transition: transform .16s ease-out;
}
.skip-link:focus {
    transform: translateY(0);
    outline: 0;
}

.pm360-shell-page {
    background:
        linear-gradient(180deg, #F6F9FD 0%, #F1F5FA 100%);
    color: var(--pm360-ink);
}
.pm360-shell-page .app-shell {
    grid-template-columns: 280px minmax(0, 1fr);
}
.pm360-shell-page .sidebar {
    width: 280px;
    min-width: 280px;
    background: #FFFFFF;
    border-right: 1px solid var(--pm360-border);
    box-shadow: 12px 0 34px rgba(16, 24, 40, .045);
    padding: 20px 14px;
}
.pm360-shell-page .sidebar-brand {
    border: 1px solid #E6EDF5;
    border-radius: 16px;
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
    padding: 12px;
    min-height: 68px;
}
.pm360-shell-page .sidebar-brand .logo-mark {
    background: #0B5FD7;
    border-radius: 14px;
    box-shadow: 0 12px 24px rgba(11, 95, 215, .22);
}
.pm360-shell-page .sidebar-title {
    color: var(--pm360-ink);
    font-size: 15px;
}
.pm360-shell-page .sidebar-title span {
    color: var(--pm360-muted);
    font-size: 11px;
}
.pm360-shell-page .nav-group {
    gap: 5px;
}
.pm360-shell-page .nav-link {
    min-height: 42px;
    height: auto;
    color: #475467;
    border-radius: 12px;
    font-size: 13px;
    line-height: 1.2;
    padding: 10px 11px;
    transition: background-color .16s ease-out, color .16s ease-out, border-color .16s ease-out, box-shadow .16s ease-out, transform .12s ease-out;
}
.pm360-shell-page .nav-link:hover {
    background: #F3F8FF;
    color: var(--pm360-blue);
    border-color: #D7E8FF;
}
.pm360-shell-page .nav-link.active {
    background: var(--pm360-blue);
    border-color: var(--pm360-blue);
    color: #FFFFFF;
    box-shadow: 0 12px 24px rgba(11, 95, 215, .20);
}
.pm360-shell-page .nav-link:active,
.pm360-shell-page .btn:active,
.pm360-login-page .role-demo-card:active {
    transform: translateY(1px) scale(.99);
}
.pm360-shell-page .main-area {
    background: transparent;
}
.pm360-shell-page .topbar {
    min-height: 82px;
    height: auto;
    padding: 18px 32px;
    background: rgba(255, 255, 255, .94);
    border-bottom: 1px solid var(--pm360-border);
    box-shadow: 0 12px 28px rgba(16, 24, 40, .045);
}
.pm360-shell-page .topbar h1 {
    color: var(--pm360-ink);
    font-size: clamp(23px, 2vw, 30px);
    font-weight: 850;
    line-height: 1.08;
    text-wrap: balance;
}
.pm360-shell-page .topbar p {
    color: var(--pm360-muted);
    font-size: 13px;
    line-height: 1.45;
    max-width: 76ch;
}
.pm360-shell-page .content {
    width: min(100%, 1520px);
    margin: 0 auto;
    padding: 28px 32px 40px;
}
.pm360-shell-page .panel,
.pm360-shell-page .card {
    border-color: var(--pm360-border);
    border-radius: var(--pm360-radius-md);
    box-shadow: var(--pm360-shadow-sm);
}
.pm360-shell-page .panel {
    padding: 20px;
}
.pm360-shell-page .panel-head {
    align-items: flex-start;
    border-bottom: 1px solid #EEF2F6;
    padding-bottom: 14px;
}
.pm360-shell-page .panel-title {
    color: var(--pm360-ink);
    font-size: 18px;
    font-weight: 820;
    line-height: 1.18;
}
.pm360-shell-page .panel-subtitle {
    color: var(--pm360-muted);
    line-height: 1.45;
}
.pm360-shell-page .kpi-grid {
    gap: 14px;
}
.pm360-shell-page .kpi-grid .card {
    min-height: 126px;
    overflow: hidden;
    padding: 16px 64px 16px 16px;
    position: relative;
}
.pm360-shell-page .kpi-label {
    color: var(--pm360-muted);
    font-size: 12px;
    line-height: 1.3;
}
.pm360-shell-page .kpi-value {
    color: var(--pm360-ink);
    font-size: clamp(25px, 2.3vw, 34px);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    line-height: 1;
}
.pm360-shell-page .kpi-trend {
    color: var(--pm360-blue-strong);
}
.pm360-shell-page .btn,
.pm360-login-page .btn {
    min-height: var(--pm360-control-h);
    border-radius: 10px;
    font-size: 13px;
    line-height: 1;
    transition: background-color .16s ease-out, border-color .16s ease-out, color .16s ease-out, box-shadow .16s ease-out, transform .12s ease-out;
}
.pm360-shell-page .btn-primary,
.pm360-login-page .btn-primary {
    background: var(--pm360-blue);
    box-shadow: 0 12px 24px rgba(11, 95, 215, .22);
}
.pm360-shell-page .btn-primary:hover,
.pm360-login-page .btn-primary:hover {
    background: var(--pm360-blue-strong);
}
.pm360-shell-page .btn-secondary {
    background: var(--pm360-blue-soft);
    border: 1px solid #CFE2FF;
    color: var(--pm360-blue-strong);
}
.pm360-shell-page .btn-ghost {
    background: #FFFFFF;
    color: var(--pm360-ink-soft);
}
.pm360-shell-page .btn-danger {
    background: #FFF1F1;
    border: 1px solid #F3C6C6;
    color: var(--pm360-danger);
}
.pm360-shell-page input,
.pm360-shell-page select,
.pm360-shell-page textarea,
.pm360-login-page input {
    min-height: var(--pm360-control-h);
    border-color: #CFDAE8;
    border-radius: 10px;
    color: var(--pm360-ink);
    transition: border-color .16s ease-out, box-shadow .16s ease-out, background-color .16s ease-out;
}
.pm360-shell-page textarea {
    min-height: 84px;
}
.pm360-shell-page label,
.pm360-login-page label {
    color: #475467;
    font-size: 12px;
    font-weight: 760;
}
.pm360-shell-page :is(a, button, input, select, textarea, summary):focus-visible,
.pm360-login-page :is(a, button, input, select, textarea):focus-visible {
    outline: 0;
    box-shadow: var(--pm360-focus);
}
.pm360-shell-page .filter-panel {
    background: #FFFFFF;
    border-color: #D4E4F7;
}
.pm360-shell-page .filter-grid {
    align-items: end;
    gap: 12px;
}
.pm360-shell-page .chart-toggle,
.pm360-shell-page .badge {
    border-radius: 999px;
    font-weight: 780;
}
.pm360-shell-page .chart-toggle {
    background: #FFFFFF;
    border: 1px solid var(--pm360-border);
    color: #475467;
}
.pm360-shell-page .chart-toggle.active {
    background: var(--pm360-blue);
    border-color: var(--pm360-blue);
    color: #FFFFFF;
}
.pm360-shell-page .table-wrap {
    border-radius: 14px;
    box-shadow: none;
}
.pm360-shell-page th {
    background: #F2F6FB;
    color: #475467;
    font-size: 11px;
    letter-spacing: .04em;
}
.pm360-shell-page td {
    color: #344054;
    line-height: 1.45;
}
.pm360-shell-page tbody tr {
    transition: background-color .14s ease-out;
}
.pm360-shell-page tbody tr:hover {
    background: #F8FBFF;
}

.agenda-page .smart-insight-agenda,
.surgeries-page .ai-recommendation-panel {
    background: linear-gradient(180deg, #F7FBFF 0%, #FFFFFF 100%);
    border-color: #CFE2FF;
    border-left-color: var(--pm360-blue);
    border-radius: 14px;
}
.agenda-page .week-calendar,
.agenda-page .month-calendar {
    border: 1px solid var(--pm360-border);
    border-radius: 14px;
    overflow: visible;
    background: #FFFFFF;
}
.agenda-page .week-header,
.agenda-page .month-head {
    background: #F1F6FC;
    color: #344054;
}
.agenda-page .week-slot,
.agenda-page .month-cell,
.agenda-page .calendar-slot {
    background: #FFFFFF;
}
.agenda-page .week-slot:hover,
.agenda-page .month-cell:hover {
    background: #F8FBFF;
}
.agenda-page .event-chip {
    border: 1px solid #CFE2FF;
    border-left: 4px solid var(--pm360-blue);
    border-radius: 10px;
    background: #F7FBFF;
    box-shadow: none;
    color: var(--pm360-ink);
    transition: border-color .16s ease-out, transform .12s ease-out, box-shadow .16s ease-out;
}
.agenda-page .event-chip:hover {
    border-color: #9EC5FE;
    box-shadow: 0 10px 22px rgba(11, 95, 215, .12);
    transform: translateY(-1px);
}
.agenda-page .event-chip span {
    color: var(--pm360-muted);
}
.agenda-page .slot-empty {
    color: #98A2B3;
    font-weight: 700;
}
.agenda-page .agenda-alert-popover {
    margin-top: 0;
}

.patients-page .patient-directory-panel,
.patients-page #form-paciente {
    border-radius: 18px;
}
.patients-page .patient-search-row {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) minmax(140px, .7fr) minmax(96px, auto);
    min-width: 0;
    max-width: min(100%, 620px);
    flex: 1 1 420px;
}
.patients-page .patient-crm-card {
    border-radius: 18px !important;
    transition: border-color .16s ease-out, box-shadow .16s ease-out, transform .12s ease-out;
}
.patients-page .patient-crm-card:hover {
    border-color: #BBD6F6 !important;
    box-shadow: var(--pm360-shadow-md) !important;
}
.patients-page .patient-crm-actions .btn {
    min-height: 38px;
}
.patients-page .clinical-summary-zone .clinical-card {
    border-radius: 14px !important;
}
.patients-page .patient-operative-row .operative-item {
    border-radius: 12px !important;
}

.surgeries-page .surgical-operative-page {
    gap: 0;
}
.surgeries-page .surgical-kanban-panel,
.surgeries-page .procedure-operational-panel,
.surgeries-page .surgical-general-kpis {
    border-radius: 18px;
}
.surgeries-page .surgical-process-tabs {
    background: #FFFFFF;
    border: 1px solid var(--pm360-border);
    border-radius: 14px;
    padding: 10px;
}
.surgeries-page .surgical-kanban-col {
    border-radius: 14px;
}
.surgeries-page .surgical-kanban-card {
    border-radius: 14px;
    box-shadow: 0 10px 24px rgba(16, 24, 40, .06);
}
.surgeries-page .procedure-flow-steps {
    border-radius: 14px;
}
.surgeries-page .procedure-flow-steps div.active {
    background: var(--pm360-blue-soft);
    color: var(--pm360-blue-strong);
}
.surgeries-page .procedure-form-section {
    border-radius: 14px;
}
.surgeries-page .procedure-check-grid label {
    min-height: 42px;
    border-radius: 12px;
}

.dashboard-page .filter-panel form {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: end;
}
.dashboard-page .percent-summary,
.admin-dashboard-page + .percent-summary {
    gap: 10px;
}
.dashboard-page .chart-grid,
.admin-dashboard-page .chart-grid {
    align-items: stretch;
}
.dashboard-page .chart-card,
.admin-dashboard-page .chart-card {
    border-radius: 18px;
}
.admin-dashboard-page .admin-kpi-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.admin-dashboard-page .admin-card-grid {
    gap: 14px;
}
.admin-dashboard-page .admin-card {
    border-radius: 16px;
    min-height: 116px;
}

.pm360-login-page {
    min-height: 100vh;
    background:
        radial-gradient(circle at 14% 18%, rgba(11, 95, 215, .14), transparent 26%),
        linear-gradient(135deg, #F7FAFD 0%, #ECF4FF 100%);
    padding: 28px;
}
.pm360-login-page .login-card {
    width: min(560px, 100%);
    border-radius: 22px;
    border-color: #D7E4F5;
    box-shadow: 0 28px 70px rgba(16, 24, 40, .16);
    padding: clamp(24px, 4vw, 38px);
}
.pm360-login-page .login-icon-only {
    width: 148px;
    height: 148px;
    border-radius: 24px;
}
.pm360-login-page .demo-box {
    background: #F6FAFF;
    border-color: #CFE2FF;
    color: #18447A;
    line-height: 1.5;
}
.pm360-login-page .role-demo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 18px;
}
.pm360-login-page .role-demo-card {
    min-height: 94px;
    border-radius: 14px;
    transition: border-color .16s ease-out, box-shadow .16s ease-out, transform .12s ease-out, background-color .16s ease-out;
}
.pm360-login-page .role-demo-card:hover {
    background: #F8FBFF;
    border-color: #B9D6FF;
    box-shadow: 0 12px 24px rgba(11, 95, 215, .10);
}
.pm360-login-page .login-error {
    margin-bottom: 16px;
}
.pm360-login-page .login-field {
    margin-bottom: 14px;
}
.pm360-login-page .login-field + .login-field {
    margin-bottom: 18px;
}
.pm360-login-page .login-submit {
    width: 100%;
}

@media (hover: hover) and (pointer: fine) {
    .pm360-shell-page .btn:hover,
    .pm360-login-page .btn:hover {
        transform: translateY(-1px);
    }
}

@media (max-width: 1320px) {
    .admin-dashboard-page .admin-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 1020px) {
    .pm360-shell-page .app-shell {
        grid-template-columns: 1fr;
    }
    .pm360-shell-page .sidebar {
        position: relative;
        width: auto;
        min-width: 0;
        height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--pm360-border);
    }
    .pm360-shell-page .nav-group {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .pm360-shell-page .sidebar-footer {
        margin-top: 0;
    }
    .pm360-shell-page .topbar {
        position: relative;
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
    }
    .pm360-shell-page .content {
        padding: 22px;
    }
    .patients-page .patient-search-row {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .pm360-shell-page .content,
    .pm360-login-page {
        padding: 16px;
    }
    .pm360-shell-page .sidebar {
        padding: 14px;
    }
    .pm360-shell-page .nav-group {
        grid-template-columns: 1fr;
    }
    .pm360-shell-page .panel {
        padding: 16px;
    }
    .pm360-shell-page .panel-head,
    .pm360-shell-page .toolbar,
    .pm360-shell-page .actions-inline,
    .pm360-shell-page .form-actions,
    .pm360-shell-page .pagination {
        align-items: stretch;
        flex-direction: column;
    }
    .pm360-shell-page .btn,
    .pm360-login-page .btn {
        width: 100%;
    }
    .pm360-login-page .role-demo-grid {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .skip-link,
    .pm360-shell-page *,
    .pm360-login-page * {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
    }
}

/* PM360 refinement 02: lighter clinical blue, tactile controls, communication and cash polish */
:root {
    --pm360-blue: #2388E8;
    --pm360-blue-strong: #1468B8;
    --pm360-blue-soft: #EAF6FF;
    --pm360-blue-tint: #F4FAFF;
    --pm360-cyan: #38BDF8;
    --pm360-border: #D9E7F3;
    --pm360-border-strong: #AED4F5;
    --pm360-focus: 0 0 0 3px rgba(35, 136, 232, .20);
    --pm360-shadow-sm: 0 8px 18px rgba(20, 104, 184, .055);
    --pm360-shadow-md: 0 18px 38px rgba(20, 104, 184, .095);
    --pm360-shadow-active: 0 12px 24px rgba(35, 136, 232, .18);
}

.pm360-shell-page .sidebar-brand .logo-mark,
.pm360-shell-page .nav-link.active,
.pm360-shell-page .chart-toggle.active,
.pm360-shell-page .btn-primary,
.pm360-login-page .btn-primary {
    background: linear-gradient(135deg, #2B9AF3 0%, #1976D2 100%);
}

.pm360-shell-page .sidebar-brand .logo-mark,
.pm360-shell-page .btn-primary,
.pm360-login-page .btn-primary {
    box-shadow: var(--pm360-shadow-active);
}

.pm360-shell-page .nav-link.active {
    box-shadow: 0 10px 22px rgba(35, 136, 232, .18);
}

.pm360-shell-page .topbar {
    background:
        linear-gradient(180deg, rgba(255, 255, 255, .96) 0%, rgba(247, 251, 255, .96) 100%);
}

.pm360-shell-page .btn,
.pm360-login-page .btn,
.pm360-shell-page .chart-toggle,
.pm360-shell-page .saas-tab,
.pm360-shell-page .patient-type-badge,
.pm360-shell-page .badge,
.pm360-shell-page .event-chip,
.pm360-shell-page .procedure-selector-item,
.pm360-shell-page .automation-status-card,
.pm360-shell-page .manual-action-card,
.pm360-shell-page .template-action-card,
.pm360-shell-page .cash-cut-grid article,
.pm360-shell-page .payment-method-row article,
.pm360-shell-page .fiscal-alert-pill {
    transition:
        background-color .18s ease-out,
        border-color .18s ease-out,
        color .18s ease-out,
        box-shadow .18s ease-out,
        opacity .18s ease-out,
        transform .14s ease-out;
}

.pm360-shell-page .btn:hover,
.pm360-login-page .btn:hover,
.pm360-shell-page .chart-toggle:hover,
.pm360-shell-page .saas-tab:hover {
    box-shadow: 0 10px 22px rgba(35, 136, 232, .12);
}

.pm360-shell-page .btn-secondary:hover,
.pm360-shell-page .chart-toggle:hover,
.pm360-shell-page .saas-tab:hover {
    background: #DFF1FF;
    border-color: #9DCEF6;
    color: var(--pm360-blue-strong);
}

.pm360-shell-page .btn:active,
.pm360-login-page .btn:active,
.pm360-shell-page .chart-toggle:active,
.pm360-shell-page .saas-tab:active,
.pm360-shell-page .event-chip:active,
.pm360-shell-page .procedure-selector-item:active {
    transform: translateY(1px) scale(.985);
    box-shadow: 0 6px 14px rgba(35, 136, 232, .10);
}

.pm360-shell-page .btn:disabled,
.pm360-shell-page button[disabled],
.pm360-login-page button[disabled] {
    cursor: not-allowed;
    filter: grayscale(.12);
    opacity: .62;
    transform: none !important;
    box-shadow: none !important;
}

.pm360-shell-page .card,
.pm360-shell-page .panel {
    background:
        linear-gradient(180deg, #FFFFFF 0%, #FCFEFF 100%);
}

.pm360-shell-page .kpi-grid .card {
    border-width: 1px;
    box-shadow: 0 10px 24px rgba(20, 104, 184, .055);
}

.pm360-shell-page .kpi-grid .card::after {
    background: var(--kpi-icon-bg, var(--pm360-blue-soft)) !important;
    box-shadow: inset 0 0 0 1px rgba(35, 136, 232, .10);
}

.pm360-shell-page .kpi-grid .card:hover {
    border-color: #B8DAF8;
}

.pm360-shell-page .kpi-grid .card.selected {
    border-color: var(--pm360-blue);
    box-shadow: 0 0 0 3px rgba(35, 136, 232, .14), var(--pm360-shadow-md);
}

.pm360-shell-page .chart-card {
    background:
        linear-gradient(180deg, #FFFFFF 0%, #F7FBFF 100%);
    border: 1px solid #D3E5F6;
    box-shadow: 0 16px 34px rgba(20, 104, 184, .075);
    overflow: hidden;
    position: relative;
}

.pm360-shell-page .chart-card::before {
    content: "";
    position: absolute;
    inset: 0 0 auto;
    height: 3px;
    background: linear-gradient(90deg, #38BDF8 0%, #2388E8 48%, #7DD3FC 100%);
    opacity: .85;
}

.pm360-shell-page .chart-card h2,
.pm360-shell-page .chart-card h3 {
    color: var(--pm360-ink);
    line-height: 1.2;
}

.pm360-shell-page .chart-card canvas {
    filter: saturate(1.04);
}

.pm360-shell-page .chart-toggle-group {
    gap: 8px;
}

.pm360-shell-page .badge.success,
.pm360-shell-page .automation-badge.active {
    background: #EAFBF2;
    border: 1px solid #BDEFD3;
    color: #087443;
}

.pm360-shell-page .badge.warn,
.pm360-shell-page .automation-badge.scheduled {
    background: #FFF8E8;
    border: 1px solid #F7DC9D;
    color: #9A5B00;
}

.pm360-shell-page .badge.danger {
    background: #FFF0F0;
    border: 1px solid #F3C6C6;
    color: #B42318;
}

.communication-page .smart-insight,
.communication-page .communication-card,
.cash-page .panel {
    border-color: #D5E9FA;
}

.communication-page .smart-insight {
    background:
        linear-gradient(135deg, #F3FBFF 0%, #FFFFFF 100%);
    border-left-color: #38BDF8;
    box-shadow: 0 14px 30px rgba(56, 189, 248, .12);
}

.communication-page .smart-insight-icon {
    background: #DDF4FF;
    color: var(--pm360-blue);
}

.communication-page .communication-kpis {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
}

.communication-page .communication-kpis .card {
    padding: 16px !important;
    position: relative;
    overflow: hidden;
}

.communication-page .communication-kpis .card::before {
    content: "";
    display: block !important;
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 34px;
    height: 34px;
    border-radius: 12px;
    background: #EAF6FF;
    box-shadow: inset 0 0 0 1px #CDE8FB;
}

.communication-page .communication-kpis .card::after {
    content: "";
    position: absolute;
    right: 22px;
    bottom: 22px;
    width: 18px;
    height: 18px;
    background: var(--pm360-blue);
    -webkit-mask: var(--communication-kpi-icon, var(--icon-file-text)) center / contain no-repeat;
    mask: var(--communication-kpi-icon, var(--icon-file-text)) center / contain no-repeat;
}

.communication-page .communication-kpis .card:nth-child(1) { --communication-kpi-icon: var(--icon-file-text); }
.communication-page .communication-kpis .card:nth-child(2) { --communication-kpi-icon: var(--icon-badge-check); }
.communication-page .communication-kpis .card:nth-child(3) { --communication-kpi-icon: var(--icon-clock-alert); }
.communication-page .communication-kpis .card:nth-child(4) { --communication-kpi-icon: var(--icon-alert-circle); }
.communication-page .communication-kpis .card:nth-child(5) { --communication-kpi-icon: var(--icon-refresh-cw); }

.communication-page .kpi-emoji {
    display: none;
}

.communication-page .communication-card {
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FCFF 100%);
    border-radius: 18px;
    box-shadow: 0 14px 30px rgba(20, 104, 184, .065);
}

.communication-page .communication-card:hover,
.communication-page .template-action-card:hover,
.communication-page .manual-action-card:hover,
.communication-page .automation-status-card:hover {
    border-color: #B8DAF8;
    box-shadow: 0 18px 38px rgba(20, 104, 184, .095);
}

.communication-page .template-action-card,
.communication-page .manual-action-card,
.communication-page .automation-status-card,
.communication-page .ia-card {
    background: #FFFFFF;
    border-color: #D9E9F7;
    border-radius: 14px;
}

.communication-page .ia-card::before {
    background: var(--ia-icon-bg, #EAF6FF);
    box-shadow: inset 0 0 0 1px rgba(35, 136, 232, .10);
}

.communication-page .patient-modal {
    transition: opacity .18s ease-out;
}

.communication-page .patient-modal-panel {
    border-radius: 18px 0 0 18px;
    box-shadow: -22px 0 54px rgba(20, 104, 184, .18);
    transition: transform .2s ease-out;
}

.cash-page .filter-panel {
    border-left: 4px solid var(--pm360-blue);
}

.cash-page .cash-kpi-grid {
    grid-template-columns: repeat(5, minmax(150px, 1fr));
}

.cash-page .cash-kpi-grid .card {
    padding: 16px !important;
}

.cash-page .cash-kpi-icon {
    background: #F4FAFF;
    border: 1px solid #CDE8FB;
    border-radius: 14px;
    box-sizing: content-box;
    padding: 8px;
}

.cash-page .cash-alerts-section,
.cash-page #cobranza-seguimiento,
.cash-page .cash-operations-heading {
    border-radius: 18px;
}

.cash-page .cash-operations-heading {
    border-left-color: var(--pm360-blue) !important;
    background: linear-gradient(135deg, #F3FAFF 0%, #FFFFFF 100%);
}

.cash-page .chart-toggle-group {
    background: #F7FBFF;
    border: 1px solid #D5E9FA;
    border-radius: 14px;
    padding: 8px;
}

.cash-page .chart-toggle {
    text-decoration: none;
}

.cash-page .cash-cut-grid article,
.cash-page .payment-method-row article,
.cash-page .fiscal-alert-pill {
    background: #FFFFFF;
    border-color: #D9E9F7;
    box-shadow: 0 8px 18px rgba(20, 104, 184, .05);
}

.cash-page .cash-cut-grid article:hover,
.cash-page .payment-method-row article:hover,
.cash-page .fiscal-alert-pill:hover {
    border-color: #B8DAF8;
    box-shadow: 0 14px 28px rgba(20, 104, 184, .085);
    transform: translateY(-1px);
}

.cash-page #form-caja {
    border-left: 4px solid #38BDF8;
}

.cash-page .cash-movements-section table,
.cash-page #cobranza-seguimiento table {
    min-width: 980px;
}

/* Caja > Movimientos: el estado se sirve como palabra completa en el asset activo. */
.cash-page td.cash-movement-status-cell {
    min-width: 132px !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}
.cash-page .cash-payment-status-badge {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 100px !important;
    min-width: 100px !important;
    max-width: none !important;
    flex: 0 0 auto;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    text-wrap: nowrap;
}

.agenda-page .event-chip,
.communication-page .btn-whatsapp,
.cash-page .btn-primary,
.dashboard-page .btn-primary {
    transform-origin: center;
}

@media (hover: hover) and (pointer: fine) {
    .pm360-shell-page .nav-link:hover {
        transform: translateX(2px);
    }

    .pm360-shell-page .kpi-grid .card:hover,
    .communication-page .communication-card:hover,
    .cash-page .cash-cut-grid article:hover,
    .cash-page .payment-method-row article:hover,
    .cash-page .fiscal-alert-pill:hover {
        transform: translateY(-1px);
    }
}

@media (max-width: 1280px) {
    .communication-page .communication-kpis,
    .cash-page .cash-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .communication-page .communication-kpis,
    .cash-page .cash-kpi-grid {
        grid-template-columns: 1fr;
    }

    .communication-page .patient-modal-panel {
        border-radius: 18px 18px 0 0;
        height: min(88vh, 720px);
        inset: auto 0 0;
        width: 100%;
        transform: translateY(24px);
    }

    .communication-page .patient-modal.open .patient-modal-panel {
        transform: translateY(0);
    }
}

/* =========================================================
   PM360 unified product pass — remaining modules
   Keeps the approved light-blue visual language across the app.
   ========================================================= */

:root {
    --pm360-blue: #2388E8;
    --pm360-blue-strong: #1468B8;
    --pm360-blue-soft: #EAF6FF;
    --pm360-blue-tint: #F5FBFF;
    --pm360-cyan: #38BDF8;
    --pm360-border: #D9E7F3;
    --pm360-border-strong: #AED4F5;
    --pm360-page-gradient: linear-gradient(180deg, #F7FBFF 0%, #F1F7FC 100%);
    --pm360-card-gradient: linear-gradient(180deg, #FFFFFF 0%, #FBFEFF 100%);
    --pm360-shadow-xs: 0 4px 12px rgba(20, 104, 184, .045);
    --pm360-shadow-sm: 0 9px 22px rgba(20, 104, 184, .06);
    --pm360-shadow-md: 0 18px 38px rgba(20, 104, 184, .10);
}

.pm360-shell-page {
    background: var(--pm360-page-gradient);
}

.pm360-shell-page .content > :is(.panel, .kpi-grid, .grid-2, .grid-3, .percent-summary, .report-preview-grid, .admin-card-grid) {
    animation: pm360-enter .32s cubic-bezier(.2, .75, .25, 1) both;
}
.pm360-shell-page .content > :nth-child(2) { animation-delay: .035s; }
.pm360-shell-page .content > :nth-child(3) { animation-delay: .065s; }
.pm360-shell-page .content > :nth-child(4) { animation-delay: .095s; }
.pm360-shell-page .content > :nth-child(5) { animation-delay: .12s; }

@keyframes pm360-enter {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.pm360-shell-page .panel,
.pm360-shell-page .card {
    background: var(--pm360-card-gradient);
}

.pm360-shell-page .panel {
    border-color: var(--pm360-border);
    box-shadow: var(--pm360-shadow-xs);
}

.pm360-shell-page .panel:hover {
    border-color: #C8DFF2;
}

.pm360-shell-page .btn-primary {
    background: linear-gradient(135deg, #2B9AF3 0%, #1976D2 100%);
}

.pm360-shell-page .btn-primary:hover {
    background: linear-gradient(135deg, #188EE9 0%, #1468B8 100%);
    box-shadow: 0 13px 26px rgba(35, 136, 232, .20);
    transform: translateY(-1px);
}

.pm360-shell-page .btn-secondary:hover,
.pm360-shell-page .btn-ghost:hover {
    transform: translateY(-1px);
}

.pm360-shell-page .table-wrap {
    background: #FFFFFF;
    border-color: var(--pm360-border);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
}

.pm360-shell-page th {
    background: linear-gradient(180deg, #F7FBFF 0%, #EFF6FC 100%);
}

.pm360-shell-page tbody tr:hover td {
    background: #F6FBFF;
}

.pm360-shell-page .filter-panel {
    border-left: 4px solid var(--pm360-cyan);
    border-radius: 16px;
    box-shadow: var(--pm360-shadow-sm);
}

.pm360-shell-page .chart-toggle-group {
    background: #F7FBFF;
    border: 1px solid var(--pm360-border);
    border-radius: 14px;
    padding: 7px;
}

.pm360-shell-page .chart-toggle {
    min-height: 38px;
    padding: 8px 12px;
}

.pm360-shell-page .chart-toggle.active {
    background: linear-gradient(135deg, #2B9AF3 0%, #1976D2 100%);
    box-shadow: 0 8px 18px rgba(35, 136, 232, .18);
}

.pm360-shell-page .chart-card {
    border-radius: 18px;
    transition: border-color .18s ease-out, box-shadow .18s ease-out, transform .14s ease-out;
}

.pm360-shell-page .chart-card:hover {
    border-color: #B8DAF8;
    box-shadow: var(--pm360-shadow-md);
    transform: translateY(-1px);
}

.pm360-shell-page .chart-card canvas {
    animation: pm360-chart-in .46s cubic-bezier(.2, .75, .25, 1) both;
    transform-origin: center bottom;
}

@keyframes pm360-chart-in {
    from { opacity: 0; transform: translateY(7px) scaleY(.97); }
    to { opacity: 1; transform: translateY(0) scaleY(1); }
}

.pm360-shell-page .progress {
    height: 11px;
    border: 1px solid #E3EDF6;
    background: #EEF5FA;
}

.pm360-shell-page .progress > div {
    background: linear-gradient(90deg, #38BDF8 0%, #2388E8 55%, #1976D2 100%);
    box-shadow: 0 0 14px rgba(35, 136, 232, .20);
}

/* Navigation icons for modules that were still using a generic dot */
.nav-link[href*='/caja'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M4 5h16a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2Zm0 4v9h16V9H4Zm11 3h4v3h-4v-3Z'/%3E%3C/svg%3E"); }
.nav-link[href*='/configuracion'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M19.4 13.5c.1-.5.1-1 .1-1.5s0-1-.1-1.5l2-1.5-2-3.5-2.4 1a8 8 0 0 0-2.6-1.5L14 2h-4l-.4 2.5A8 8 0 0 0 7 6L4.6 5l-2 3.5 2 1.5A9 9 0 0 0 4.5 12c0 .5 0 1 .1 1.5l-2 1.5 2 3.5 2.4-1a8 8 0 0 0 2.6 1.5L10 22h4l.4-2.5A8 8 0 0 0 17 18l2.4 1 2-3.5-2-1.5ZM12 15.5A3.5 3.5 0 1 1 12 8a3.5 3.5 0 0 1 0 7.5Z'/%3E%3C/svg%3E"); }
.nav-link[href*='/importacion'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M11 3h2v9l3.5-3.5L18 10l-6 6-6-6 1.5-1.5L11 12V3ZM4 18h16v3H4v-3Z'/%3E%3C/svg%3E"); }
.nav-link[href*='/pagos'] { --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3 5h18v14H3V5Zm2 4h14V7H5v2Zm0 3v5h14v-5H5Zm2 2h4v2H7v-2Z'/%3E%3C/svg%3E"); }

/* Finance — visual only, no business logic changes */
.finance-page .finance-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.finance-page .finance-kpi-grid .card {
    min-height: 132px;
}

.finance-page .finance-percent-summary,
.page-fiscal .percent-summary,
.page-reportes .percent-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: -4px 0 20px;
}

.finance-page .percent-pill,
.page-fiscal .percent-pill,
.page-reportes .percent-pill {
    background: #F5FBFF;
    border: 1px solid #CDE6F8;
    border-radius: 999px;
    color: #245A7B;
    padding: 9px 13px;
    box-shadow: var(--pm360-shadow-xs);
}

.finance-page .grid-2 > .panel,
.finance-page .grid-3 > .panel {
    border-top: 3px solid #D5EBFA;
}

.finance-page .report-section-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.finance-page .billing-actions select,
.finance-page .inline-status-form select {
    min-width: 145px;
}

.finance-page #solicitudes-facturacion,
.finance-page .finance-kpi-grid + .percent-summary + .panel {
    border-radius: 18px;
}

/* Fiscal center */
.page-fiscal .fiscal-recommendations,
.page-fiscal .fiscal-simulator,
.page-fiscal .fiscal-timeline,
.page-fiscal .report-section-grid,
.page-fiscal .chart-grid {
    position: relative;
}

.page-fiscal .recommendation-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.page-fiscal .recommendation-card {
    min-height: 150px;
    border: 1px solid var(--pm360-border);
    border-radius: 16px;
    background: #FFFFFF;
    box-shadow: var(--pm360-shadow-xs);
    padding: 18px;
    transition: transform .14s ease-out, box-shadow .18s ease-out, border-color .18s ease-out;
}

.page-fiscal .recommendation-card:hover {
    border-color: #B8DAF8;
    box-shadow: var(--pm360-shadow-md);
    transform: translateY(-2px);
}

.page-fiscal .recommendation-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    background: var(--pm360-blue-soft);
    color: var(--pm360-blue-strong);
    font-size: 11px;
    font-weight: 800;
    padding: 5px 9px;
}

.page-fiscal .fiscal-alert-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 20px;
}

.page-fiscal .fiscal-alert-pill {
    border-radius: 15px;
    box-shadow: var(--pm360-shadow-xs);
}

.page-fiscal .fiscal-simulator {
    border-left: 4px solid var(--pm360-cyan);
}

.page-fiscal .fiscal-sim-grid,
.page-fiscal .report-section-grid {
    gap: 14px;
}

.page-fiscal .sim-input {
    background: #F7FBFF;
    border: 1px solid var(--pm360-border);
    border-radius: 14px;
    padding: 14px;
}

.page-fiscal .fiscal-timeline-item {
    background: #FFFFFF;
    border: 1px solid var(--pm360-border);
    border-left: 4px solid #B8DAF8;
    border-radius: 12px;
    box-shadow: var(--pm360-shadow-xs);
}

/* Reports and report previews */
.page-reportes .report-preview-grid,
.page-reportes .report-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
}

.page-reportes .report-preview-card,
.page-reportes .report-card {
    border: 1px solid var(--pm360-border);
    border-radius: 18px;
    background: #FFFFFF;
    box-shadow: var(--pm360-shadow-xs);
    transition: border-color .18s ease-out, box-shadow .18s ease-out, transform .14s ease-out;
}

.page-reportes .report-preview-card:hover,
.page-reportes .report-card:hover,
.page-reportes .report-preview-card.active {
    border-color: #A9D2F4;
    box-shadow: var(--pm360-shadow-md);
    transform: translateY(-2px);
}

.page-reportes .report-preview-card.active {
    box-shadow: 0 0 0 3px rgba(35, 136, 232, .12), var(--pm360-shadow-md);
}

.page-reportes .report-preview-icon,
.page-reportes .report-icon,
.page-reportes .report-preview-head-icon-left {
    background: #EAF6FF;
    border: 1px solid #CDE8FB;
    color: var(--pm360-blue);
    border-radius: 14px;
}

.page-reportes .report-checklist {
    display: grid;
    gap: 8px;
}

.page-reportes .report-check-item {
    border-radius: 10px;
    background: #F7FBFF;
    border: 1px solid #E1EDF7;
}

.page-reportes .report-top-grid {
    gap: 14px;
}

.page-reportes .status-pill {
    border: 1px solid transparent;
    border-radius: 999px;
    padding: 5px 9px;
    font-size: 12px;
    font-weight: 800;
}

.page-reportes .status-success { background: #EAFBF2; border-color: #BDEFD3; color: #087443; }
.page-reportes .status-danger { background: #FFF0F0; border-color: #F3C6C6; color: #B42318; }
.page-reportes .status-scheduled { background: #FFF8E8; border-color: #F7DC9D; color: #9A5B00; }

.page-reportes .report-modal {
    backdrop-filter: blur(5px);
}

.page-reportes .report-modal-panel {
    border: 1px solid #CFE3F5;
    border-radius: 20px;
    box-shadow: 0 28px 70px rgba(16, 74, 121, .22);
}

.page-reportes .report-pdf-frame {
    border: 1px solid var(--pm360-border);
    border-radius: 14px;
    background: #F6FAFD;
    box-shadow: inset 0 0 0 1px #FFFFFF;
}

.page-reportes .report-preview-sticky-nav {
    position: sticky;
    top: 96px;
    z-index: 2;
    margin-bottom: 12px;
}

/* Configuration / import-export */
.page-configuracion .admin-card-grid,
.page-configuracion .import-export-grid,
.page-configuracion .export-card-grid,
.page-configuracion .config-data-grid {
    gap: 15px;
}

.page-configuracion .admin-card,
.page-configuracion .config-data-card,
.page-configuracion .import-export-card,
.page-configuracion .export-card {
    border: 1px solid var(--pm360-border);
    border-radius: 18px;
    background: #FFFFFF;
    box-shadow: var(--pm360-shadow-xs);
    transition: transform .14s ease-out, box-shadow .18s ease-out, border-color .18s ease-out;
}

.page-configuracion .admin-card:hover,
.page-configuracion .config-data-card:hover,
.page-configuracion .import-export-card:hover,
.page-configuracion .export-card:hover {
    border-color: #B8DAF8;
    box-shadow: var(--pm360-shadow-md);
    transform: translateY(-2px);
}

.page-configuracion .admin-card-icon,
.page-configuracion .export-icon,
.page-configuracion .config-lucide-icon {
    background: #EAF6FF;
    border: 1px solid #CDE8FB;
    color: var(--pm360-blue);
    border-radius: 14px;
}

.page-configuracion .admin-card-arrow {
    color: var(--pm360-blue);
    transition: transform .14s ease-out;
}

.page-configuracion .admin-card:hover .admin-card-arrow {
    transform: translateX(3px);
}

.page-configuracion .import-export-enhanced,
.page-configuracion .success-import-message {
    border-left: 4px solid var(--pm360-cyan);
}

.page-configuracion .config-example-table {
    border-radius: 12px;
    overflow: hidden;
}

/* Import center */
.page-importacion .content > .panel:first-child {
    border-left: 4px solid var(--pm360-cyan);
}

.page-importacion .alert-card {
    background: #F5FBFF;
    border-color: #CDE6F8;
    border-radius: 14px;
}

.page-importacion input[type='file'] {
    padding: 8px;
    background: #F8FCFF;
}

.page-importacion input[type='file']::file-selector-button {
    border: 1px solid #B8DAF8;
    border-radius: 9px;
    background: #EAF6FF;
    color: var(--pm360-blue-strong);
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    margin-right: 10px;
    padding: 8px 11px;
}

/* Patient record */
.page-pacientes .patient-record-page {
    align-items: start;
    gap: 18px;
}

.page-pacientes .patient-profile-card,
.page-pacientes .patient-executive-card,
.page-pacientes .clinical-detail-panel,
.page-pacientes .patient-history-panel {
    border-radius: 18px;
    border-color: var(--pm360-border);
    box-shadow: var(--pm360-shadow-sm);
}

.page-pacientes .patient-profile-card {
    position: sticky;
    top: 104px;
    background: linear-gradient(180deg, #FFFFFF 0%, #F6FBFF 100%);
}

.page-pacientes .patient-avatar {
    background: linear-gradient(135deg, #DDF4FF 0%, #EAF6FF 100%);
    border: 1px solid #CDE8FB;
    color: var(--pm360-blue-strong);
    box-shadow: 0 12px 24px rgba(35, 136, 232, .12);
}

.page-pacientes .patient-mini-kpi {
    border: 1px solid #D9E9F7;
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: var(--pm360-shadow-xs);
}

.page-pacientes .clinical-alert-box {
    border-radius: 16px;
    box-shadow: var(--pm360-shadow-xs);
}

.page-pacientes .clinical-alert-list li {
    border-radius: 10px;
}

/* Payments and generic CRUD */
.payments-page .content > .panel:first-child,
.crud-page #form-crud {
    border-left: 4px solid var(--pm360-cyan);
}

.payments-page .panel,
.crud-page .panel {
    border-radius: 18px;
}

.payments-page .actions-inline form,
.crud-page .actions-inline form {
    margin: 0;
}

.payments-page .table-wrap,
.crud-page .table-wrap {
    box-shadow: var(--pm360-shadow-xs);
}

.crud-page .toolbar {
    align-items: end;
}

/* Facturación panel inside Configuración */
.page-configuracion .percent-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.page-configuracion .percent-pill {
    border: 1px solid #D3E7F7;
    border-radius: 14px;
    background: #F7FBFF;
    color: #245A7B;
    box-shadow: var(--pm360-shadow-xs);
    padding: 13px;
}

/* Autofactura patient portal */
.autofactura-body {
    background:
        radial-gradient(circle at 8% 0%, rgba(56, 189, 248, .16), transparent 32%),
        linear-gradient(180deg, #F7FCFF 0%, #EDF6FC 100%);
}

.autofactura-card,
.portal-step,
.portal-trust-card,
.portal-choice-card {
    border-color: #D7E8F5;
}

.portal-choice-card,
.portal-trust-card,
.portal-step {
    box-shadow: var(--pm360-shadow-sm);
}

.portal-choice-card {
    transition: transform .14s ease-out, border-color .18s ease-out, box-shadow .18s ease-out;
}

.portal-choice-card:hover {
    border-color: #A9D2F4;
    box-shadow: var(--pm360-shadow-md);
    transform: translateY(-2px);
}

.autofactura-body .btn-primary {
    background: linear-gradient(135deg, #2B9AF3 0%, #1976D2 100%);
    box-shadow: 0 12px 24px rgba(35, 136, 232, .18);
}

.autofactura-body .btn:hover {
    transform: translateY(-1px);
}

.autofactura-body .btn:active {
    transform: translateY(1px) scale(.985);
}

/* Responsive harmonization */
@media (max-width: 1180px) {
    .finance-page .finance-kpi-grid,
    .page-fiscal .recommendation-grid,
    .page-fiscal .fiscal-alert-strip,
    .page-reportes .report-preview-grid,
    .page-reportes .report-card-grid,
    .page-configuracion .percent-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .finance-page .report-section-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .finance-page .finance-kpi-grid,
    .page-fiscal .recommendation-grid,
    .page-fiscal .fiscal-alert-strip,
    .page-reportes .report-preview-grid,
    .page-reportes .report-card-grid,
    .page-configuracion .percent-summary,
    .finance-page .report-section-grid {
        grid-template-columns: 1fr;
    }

    .page-pacientes .patient-profile-card {
        position: static;
    }

    .page-reportes .report-preview-sticky-nav {
        position: static;
    }

    .pm360-shell-page .panel-head,
    .pm360-shell-page .toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .pm360-shell-page .panel-head > .actions-inline,
    .pm360-shell-page .toolbar > .actions-inline,
    .pm360-shell-page .topbar > .actions-inline {
        width: 100%;
    }

    .pm360-shell-page .actions-inline .btn {
        flex: 1 1 auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pm360-shell-page .content > *,
    .pm360-shell-page .chart-card canvas,
    .pm360-shell-page .btn,
    .pm360-shell-page .card,
    .pm360-shell-page .panel,
    .portal-choice-card {
        animation: none !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
    }
}

/* =========================================================
   PM360 refinement v4 — subtone hierarchy + clinical stages
   ========================================================= */
:root {
    --pm360-surface-sky: #F2F9FF;
    --pm360-surface-blue: #EAF5FF;
    --pm360-surface-mint: #F0FBF7;
    --pm360-surface-violet: #F7F4FF;
    --pm360-surface-amber: #FFF9EC;
    --pm360-line-blue: #CFE5F8;
    --pm360-blue-medium: #2388E8;
    --pm360-blue-deep: #155FAF;
    --pm360-green: #159A68;
    --pm360-violet: #7556D8;
    --pm360-amber: #D98718;
}

/* Add calm color hierarchy without returning to a dark interface. */
.pm360-shell-page .content {
    background:
        radial-gradient(circle at 92% 2%, rgba(125, 211, 252, .11), transparent 26%),
        linear-gradient(180deg, #F7FBFF 0%, #F3F8FD 100%);
}

.pm360-shell-page .panel > .panel-head,
.pm360-shell-page .communication-card > .section-title-row,
.pm360-shell-page .cash-alerts-section > .section-title-row {
    position: relative;
    margin: -20px -20px 18px;
    padding: 15px 20px;
    border-bottom: 1px solid var(--pm360-line-blue);
    border-radius: 18px 18px 0 0;
    background: linear-gradient(135deg, var(--pm360-surface-blue) 0%, #F9FCFF 72%);
}

.pm360-shell-page .communication-card > .section-title-row {
    margin: -16px -16px 16px;
    padding: 13px 16px;
    border-radius: 17px 17px 0 0;
}

.pm360-shell-page .panel > .panel-head::after,
.pm360-shell-page .communication-card > .section-title-row::after {
    content: "";
    position: absolute;
    left: 20px;
    bottom: -1px;
    width: 58px;
    height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #38BDF8, var(--pm360-blue-medium));
}

.pm360-shell-page .kpi-grid .card:nth-child(4n + 1) {
    background: linear-gradient(150deg, #FFFFFF 0%, var(--pm360-surface-sky) 100%);
}
.pm360-shell-page .kpi-grid .card:nth-child(4n + 2) {
    background: linear-gradient(150deg, #FFFFFF 0%, var(--pm360-surface-mint) 100%);
}
.pm360-shell-page .kpi-grid .card:nth-child(4n + 3) {
    background: linear-gradient(150deg, #FFFFFF 0%, var(--pm360-surface-violet) 100%);
}
.pm360-shell-page .kpi-grid .card:nth-child(4n + 4) {
    background: linear-gradient(150deg, #FFFFFF 0%, var(--pm360-surface-amber) 100%);
}

.pm360-shell-page .filter-panel,
.pm360-shell-page .toolbar,
.pm360-shell-page .cash-operations-heading,
.pm360-shell-page .procedure-empty-state,
.pm360-shell-page .no-data,
.pm360-shell-page .empty-state {
    background: linear-gradient(135deg, var(--pm360-surface-sky) 0%, #FFFFFF 100%);
    border-color: var(--pm360-line-blue);
}

.pm360-shell-page .table-wrap {
    background: #FFFFFF;
}

.pm360-shell-page th {
    background: linear-gradient(180deg, #EDF6FE 0%, #E7F1FB 100%);
    color: #38536F;
}

.pm360-shell-page .section-title-row:not(.automation-title-row) {
    border-bottom-color: var(--pm360-line-blue);
}

.pm360-shell-page .btn-success {
    color: #FFFFFF;
    border: 1px solid #12875B;
    background: linear-gradient(135deg, #21AE78 0%, #13865B 100%);
    box-shadow: 0 10px 22px rgba(21, 154, 104, .20);
}

.pm360-shell-page .btn-success:hover {
    color: #FFFFFF;
    background: linear-gradient(135deg, #27B980 0%, #10744F 100%);
    box-shadow: 0 13px 26px rgba(21, 154, 104, .25);
}

/* Conectividad: explicit KPI symbols, resilient across browsers. */
.communication-page .communication-kpis .card::before,
.communication-page .communication-kpis .card::after {
    display: none !important;
}

.communication-page .communication-kpi-card {
    min-height: 132px;
    isolation: isolate;
}

.communication-page .communication-kpi-card:nth-child(1) {
    --communication-corner-color: #2388E8;
    --communication-corner-bg: #E6F4FF;
    --communication-corner-icon: var(--icon-file-text);
}
.communication-page .communication-kpi-card:nth-child(2) {
    --communication-corner-color: #159A68;
    --communication-corner-bg: #EAFBF3;
    --communication-corner-icon: var(--icon-badge-check);
}
.communication-page .communication-kpi-card:nth-child(3) {
    --communication-corner-color: #D98718;
    --communication-corner-bg: #FFF7E5;
    --communication-corner-icon: var(--icon-clock-alert);
}
.communication-page .communication-kpi-card:nth-child(4) {
    --communication-corner-color: #D94D5C;
    --communication-corner-bg: #FFF0F2;
    --communication-corner-icon: var(--icon-alert-circle);
}
.communication-page .communication-kpi-card:nth-child(5) {
    --communication-corner-color: #7556D8;
    --communication-corner-bg: #F2EEFF;
    --communication-corner-icon: var(--icon-refresh-cw);
}

.communication-page .communication-kpi-corner {
    position: absolute;
    right: 14px;
    bottom: 14px;
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--communication-corner-color) 18%, white);
    border-radius: 14px;
    background: var(--communication-corner-bg);
    box-shadow: 0 8px 20px color-mix(in srgb, var(--communication-corner-color) 12%, transparent);
    opacity: .82;
    transition: transform .18s ease-out, opacity .18s ease-out, box-shadow .18s ease-out;
}

.communication-page .communication-kpi-corner::before {
    content: "";
    width: 21px;
    height: 21px;
    display: block;
    background: var(--communication-corner-color);
    -webkit-mask: var(--communication-corner-icon) center / contain no-repeat;
    mask: var(--communication-corner-icon) center / contain no-repeat;
}

.communication-page .communication-kpi-card:hover .communication-kpi-corner {
    opacity: 1;
    transform: translateY(-2px) scale(1.04);
    box-shadow: 0 12px 24px color-mix(in srgb, var(--communication-corner-color) 18%, transparent);
}

.communication-page .communication-card:nth-of-type(2) {
    background: linear-gradient(160deg, #FFFFFF 0%, #F4F9FF 100%);
}
.communication-page .communication-card:nth-of-type(3) {
    background: linear-gradient(160deg, #FFFFFF 0%, #F4FBF8 100%);
}
.communication-page .communication-card:nth-of-type(4) {
    background: linear-gradient(160deg, #FFFFFF 0%, #F8F5FF 100%);
}

/* Procedure workflow: large clinical stage navigation and focused panels. */
.surgeries-page #registro-operativo {
    border-left-color: #38BDF8 !important;
    background: linear-gradient(180deg, #FFFFFF 0%, #F8FCFF 100%);
}

.surgeries-page .procedure-context-panel {
    margin: 18px 0;
    padding: 18px;
    border: 1px solid #CFE5F8;
    border-radius: 18px;
    background: linear-gradient(135deg, #F2F9FF 0%, #FFFFFF 100%);
    box-shadow: 0 12px 28px rgba(35, 136, 232, .07);
}

.surgeries-page .procedure-section-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.surgeries-page .procedure-section-heading.compact {
    margin-bottom: 12px;
}

.surgeries-page .procedure-section-heading h3 {
    margin: 2px 0 5px;
    color: #102A43;
    font-size: 20px;
    line-height: 1.25;
}

.surgeries-page .procedure-section-heading p {
    margin: 0;
    max-width: 720px;
    color: #61758A;
    font-size: 13px;
    line-height: 1.5;
}

.surgeries-page .procedure-section-eyebrow {
    display: block;
    color: #2388E8;
    font-size: 11px;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.surgeries-page .procedure-stage-status {
    flex: 0 0 auto;
    padding: 7px 11px;
    border: 1px solid currentColor;
    border-radius: 999px;
    color: var(--stage-color, #2388E8);
    background: var(--stage-soft, #EAF5FF);
    font-size: 12px;
    font-weight: 850;
}

.surgeries-page .procedure-context-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.surgeries-page .procedure-readonly-field input,
.surgeries-page input[disabled],
.surgeries-page textarea[disabled] {
    color: #60758A;
    border-style: dashed;
    background: #EDF4FA;
    cursor: not-allowed;
}

.surgeries-page .procedure-stage-shell {
    margin-top: 20px;
}

.surgeries-page .procedure-stage-navigation {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.surgeries-page .procedure-stage-tab {
    --stage-color: #2388E8;
    --stage-soft: #EAF5FF;
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 82px;
    padding: 14px 16px;
    overflow: hidden;
    border: 1px solid color-mix(in srgb, var(--stage-color) 24%, white);
    border-radius: 16px;
    color: #31475C;
    background: linear-gradient(145deg, #FFFFFF 0%, var(--stage-soft) 100%);
    box-shadow: 0 10px 22px rgba(22, 88, 145, .065);
    cursor: pointer;
    text-align: left;
    transition: transform .16s ease-out, border-color .18s ease-out, box-shadow .18s ease-out, background-color .18s ease-out;
}

.surgeries-page .procedure-stage-tab::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--stage-color);
    opacity: .65;
}

.surgeries-page .procedure-stage-tab::after {
    content: "";
    position: absolute;
    top: 10px;
    right: 10px;
    width: 9px;
    height: 9px;
    border-radius: 999px;
    background: #C7D7E6;
    box-shadow: 0 0 0 4px rgba(199, 215, 230, .22);
}

.surgeries-page .procedure-stage-tab.is-complete::after {
    background: #159A68;
    box-shadow: 0 0 0 4px rgba(21, 154, 104, .13);
}

.surgeries-page .procedure-stage-tab.is-current {
    border-color: var(--stage-color);
    color: #102A43;
    background: linear-gradient(145deg, #FFFFFF 0%, var(--stage-soft) 100%);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--stage-color) 15%, transparent), 0 16px 32px color-mix(in srgb, var(--stage-color) 15%, transparent);
    transform: translateY(-2px);
}

.surgeries-page .procedure-stage-tab:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--stage-color) 24%, transparent);
    outline-offset: 3px;
}

.surgeries-page .procedure-stage-tab strong,
.surgeries-page .procedure-stage-tab small {
    display: block;
}

.surgeries-page .procedure-stage-tab strong {
    margin-bottom: 4px;
    font-size: 14px;
    font-weight: 850;
}

.surgeries-page .procedure-stage-tab small {
    color: #667A8F;
    font-size: 11px;
    line-height: 1.35;
}

.surgeries-page .procedure-stage-icon {
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--stage-color) 18%, white);
    border-radius: 13px;
    color: var(--stage-color);
    background: color-mix(in srgb, var(--stage-soft) 78%, white);
}

.surgeries-page .procedure-stage-icon::before {
    content: "";
    width: 22px;
    height: 22px;
    display: block;
    background: currentColor;
    -webkit-mask: var(--stage-icon) center / contain no-repeat;
    mask: var(--stage-icon) center / contain no-repeat;
}

.surgeries-page .procedure-stage-pre {
    --stage-color: #2388E8;
    --stage-soft: #EAF5FF;
    --stage-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5h6M9 3h6v4H9z'/%3E%3Cpath d='M5 5h14v16H5z'/%3E%3Cpath d='m9 14 2 2 4-4'/%3E%3C/g%3E%3C/svg%3E");
}
.surgeries-page .procedure-stage-procedure {
    --stage-color: #7556D8;
    --stage-soft: #F1EDFF;
    --stage-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m4 20 5-5M14 4l6 6M8 16l8-8M6 9l9 9'/%3E%3Cpath d='m3 21 4-1-3-3-1 4Z'/%3E%3C/g%3E%3C/svg%3E");
}
.surgeries-page .procedure-stage-post {
    --stage-color: #D98718;
    --stage-soft: #FFF6E3;
    --stage-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='black' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h10v4H7zM5 7h14v14H5z'/%3E%3Cpath d='M9 12h6M12 9v6'/%3E%3C/g%3E%3C/svg%3E");
}
.surgeries-page .procedure-stage-final {
    --stage-color: #159A68;
    --stage-soft: #EAFBF3;
    --stage-icon: var(--icon-badge-check);
}

.surgeries-page .procedure-stage-workspace {
    position: relative;
    min-height: 300px;
}

.surgeries-page .procedure-stage-panel[hidden] {
    display: none !important;
}

.surgeries-page .procedure-stage-panel {
    --stage-color: #2388E8;
    --stage-soft: #EAF5FF;
    padding: 22px;
    border: 1px solid color-mix(in srgb, var(--stage-color) 22%, white);
    border-top: 4px solid var(--stage-color);
    border-radius: 18px;
    background: linear-gradient(145deg, #FFFFFF 0%, color-mix(in srgb, var(--stage-soft) 62%, white) 100%);
    box-shadow: 0 18px 38px color-mix(in srgb, var(--stage-color) 10%, transparent);
}

.surgeries-page .procedure-stage-panel.is-current {
    animation: pm360-stage-enter .22s ease-out both;
}

.surgeries-page .procedure-stage-panel-pre { --stage-color: #2388E8; --stage-soft: #EAF5FF; }
.surgeries-page .procedure-stage-panel-procedure { --stage-color: #7556D8; --stage-soft: #F1EDFF; }
.surgeries-page .procedure-stage-panel-post { --stage-color: #D98718; --stage-soft: #FFF6E3; }
.surgeries-page .procedure-stage-panel-final { --stage-color: #159A68; --stage-soft: #EAFBF3; }

.surgeries-page .procedure-stage-content-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.surgeries-page .procedure-clinical-context {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.surgeries-page .procedure-clinical-context article {
    padding: 12px 14px;
    border: 1px solid #D8E7F4;
    border-radius: 13px;
    background: rgba(255,255,255,.72);
}

.surgeries-page .procedure-clinical-context span,
.surgeries-page .procedure-clinical-context strong {
    display: block;
}

.surgeries-page .procedure-clinical-context span {
    margin-bottom: 4px;
    color: #6B7E91;
    font-size: 11px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .045em;
}

.surgeries-page .procedure-clinical-context strong {
    color: #1B344C;
    font-size: 14px;
}

.surgeries-page .procedure-during-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.surgeries-page .procedure-check-grid-enhanced {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.surgeries-page .procedure-check-grid-enhanced label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid #D8E7F4;
    border-radius: 12px;
    color: #344B61;
    background: rgba(255, 255, 255, .78);
    cursor: pointer;
    transition: border-color .16s ease-out, box-shadow .16s ease-out, transform .14s ease-out;
}

.surgeries-page .procedure-check-grid-enhanced label:hover {
    border-color: color-mix(in srgb, var(--stage-color, #2388E8) 38%, white);
    box-shadow: 0 8px 18px rgba(35, 136, 232, .075);
    transform: translateY(-1px);
}

.surgeries-page .procedure-check-grid-enhanced input {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    accent-color: var(--stage-color, #2388E8);
}

.surgeries-page .procedure-stage-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, var(--stage-color) 18%, white);
}

.surgeries-page .procedure-stage-actions-split .btn:first-child {
    margin-right: auto;
}

.surgeries-page .procedure-operational-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.surgeries-page .procedure-operational-summary article:nth-child(1) {
    background: linear-gradient(145deg, #FFFFFF 0%, #EFF8FF 100%);
    border-color: #CFE5F8;
}
.surgeries-page .procedure-operational-summary article:nth-child(2) {
    background: linear-gradient(145deg, #FFFFFF 0%, #F5F1FF 100%);
    border-color: #DDD2FF;
}
.surgeries-page .procedure-operational-summary article:nth-child(3) {
    background: linear-gradient(145deg, #FFFFFF 0%, #F0FBF6 100%);
    border-color: #C9ECDD;
}

.surgeries-page .procedure-timeline-card {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #CFE9DC;
    border-radius: 16px;
    background: rgba(255,255,255,.74);
}

.surgeries-page .procedure-timeline-horizontal {
    display: grid;
    grid-template-columns: repeat(7, minmax(90px, 1fr));
    gap: 0;
    overflow-x: auto;
    padding: 8px 4px 4px;
}

.surgeries-page .procedure-timeline-horizontal div {
    position: relative;
    display: grid;
    justify-items: center;
    gap: 8px;
    min-width: 96px;
    padding: 0 8px;
    color: #718397;
    text-align: center;
}

.surgeries-page .procedure-timeline-horizontal div::before {
    content: "";
    position: absolute;
    top: 9px;
    left: 0;
    right: 0;
    height: 2px;
    background: #D7E3ED;
    z-index: 0;
}

.surgeries-page .procedure-timeline-horizontal div:first-child::before { left: 50%; }
.surgeries-page .procedure-timeline-horizontal div:last-child::before { right: 50%; }

.surgeries-page .procedure-timeline-horizontal span {
    position: relative;
    z-index: 1;
    width: 20px;
    height: 20px;
    margin: 0;
    border: 4px solid #EDF3F8;
    border-radius: 999px;
    background: #B8C8D6;
    box-shadow: 0 0 0 1px #CAD7E2;
}

.surgeries-page .procedure-timeline-horizontal div.active {
    color: #0E7650;
}

.surgeries-page .procedure-timeline-horizontal div.active::before {
    background: #95D8B9;
}

.surgeries-page .procedure-timeline-horizontal div.active span {
    border-color: #EAFBF3;
    background: #159A68;
    box-shadow: 0 0 0 1px #9DD9BD, 0 5px 12px rgba(21, 154, 104, .20);
}

.surgeries-page .procedure-timeline-horizontal strong {
    font-size: 11px;
    line-height: 1.3;
}

@keyframes pm360-stage-enter {
    from { opacity: 0; transform: translateY(7px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1120px) {
    .surgeries-page .procedure-stage-navigation {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .surgeries-page .procedure-context-grid,
    .surgeries-page .procedure-operational-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .pm360-shell-page .panel > .panel-head {
        margin: -18px -18px 16px;
        padding: 14px 18px;
    }
    .surgeries-page .procedure-stage-navigation,
    .surgeries-page .procedure-context-grid,
    .surgeries-page .procedure-stage-content-grid,
    .surgeries-page .procedure-clinical-context,
    .surgeries-page .procedure-during-grid,
    .surgeries-page .procedure-check-grid-enhanced,
    .surgeries-page .procedure-operational-summary {
        grid-template-columns: 1fr;
    }
    .surgeries-page .procedure-stage-tab {
        min-height: 72px;
    }
    .surgeries-page .procedure-stage-panel,
    .surgeries-page .procedure-context-panel {
        padding: 16px;
    }
    .surgeries-page .procedure-stage-actions-split .btn:first-child {
        margin-right: 0;
    }
    .surgeries-page .procedure-stage-actions .btn {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .communication-page .communication-kpi-corner,
    .surgeries-page .procedure-stage-tab,
    .surgeries-page .procedure-stage-panel,
    .surgeries-page .procedure-check-grid-enhanced label {
        animation: none !important;
        transition: none !important;
        transform: none !important;
    }
}

/* =========================================================
   PM360 refinement v5 — colorimetry, depth and visual rhythm
   Audit criteria: Impeccable / Taste / UX accessibility
   ========================================================= */
:root {
    --pm-blue-700: #1859A9;
    --pm-blue-600: #246FC4;
    --pm-blue-500: #3B82D0;
    --pm-blue-200: #BDD9F3;
    --pm-blue-100: #E7F1FC;
    --pm-blue-050: #F3F8FE;
    --pm-slate-050: #F7F9FC;
    --pm-slate-100: #EDF2F7;
    --pm-slate-200: #DCE5EF;
    --pm-slate-600: #52677D;
    --pm-green-050: #EDF9F3;
    --pm-green-200: #BFE6D2;
    --pm-amber-050: #FFF8E8;
    --pm-amber-200: #F5DC9E;
    --pm-violet-050: #F4F0FF;
    --pm-violet-200: #D9CEF9;
    --pm-rose-050: #FFF1F3;
    --pm-shadow-xs: 0 1px 2px rgba(23, 55, 87, .045);
    --pm-shadow-sm: 0 5px 16px rgba(23, 55, 87, .055);
    --pm-shadow-md: 0 12px 30px rgba(23, 55, 87, .075);
    --pm-shadow-focus: 0 0 0 3px rgba(59, 130, 208, .16);
}

/* A calm three-level surface system: canvas, sections and content. */
.pm360-shell-page {
    --bg: #F2F6FA;
    --panel: #FFFFFF;
    --line: var(--pm-slate-200);
    --blue: var(--pm-blue-600);
    --blue-600: var(--pm-blue-700);
    --blue-soft: var(--pm-blue-100);
    --shadow: var(--pm-shadow-md);
}

.pm360-shell-page .content {
    background:
        radial-gradient(circle at 100% 0%, rgba(80, 166, 226, .09), transparent 24%),
        radial-gradient(circle at 8% 82%, rgba(68, 183, 139, .055), transparent 27%),
        linear-gradient(180deg, #F7FAFD 0%, #F2F6FA 100%);
}

/* Primary panels are grounded; only interactive cards receive lift. */
.pm360-shell-page .panel {
    border-color: #D9E4EE;
    box-shadow: var(--pm-shadow-xs);
}

.pm360-shell-page .panel:hover {
    transform: none;
    box-shadow: var(--pm-shadow-sm);
}

.pm360-shell-page .card {
    border-color: #DDE7F0;
    box-shadow: var(--pm-shadow-xs);
}

.pm360-shell-page :is(a.card, button.card, .report-card, .communication-kpi-card, .chart-card, .kanban-card) {
    transition: transform .16s ease-out, box-shadow .16s ease-out, border-color .16s ease-out, background-color .16s ease-out;
}

.pm360-shell-page :is(a.card, button.card, .report-card, .communication-kpi-card, .chart-card, .kanban-card):hover {
    transform: translateY(-2px);
    border-color: #C6DBEC;
    box-shadow: var(--pm-shadow-md);
}

/* Nested information should not look like another floating modal. */
.pm360-shell-page :is(.panel, .card) :is(.card, .panel, .summary-card, .info-card) {
    box-shadow: none;
}

/* Section headers gain subtle identity while preserving plenty of white space. */
.pm360-shell-page .panel > .panel-head,
.pm360-shell-page .communication-card > .section-title-row,
.pm360-shell-page .cash-alerts-section > .section-title-row {
    background:
        linear-gradient(90deg, rgba(231, 241, 252, .96), rgba(247, 251, 255, .96));
    border-bottom-color: #CFE0EF;
}

.pm360-shell-page .panel > .panel-head::before,
.pm360-shell-page .communication-card > .section-title-row::before {
    content: "";
    width: 4px;
    align-self: stretch;
    min-height: 26px;
    margin-right: 11px;
    border-radius: 999px;
    background: linear-gradient(180deg, #52A6E2, var(--pm-blue-600));
    flex: 0 0 4px;
}

.pm360-shell-page .panel > .panel-head::after,
.pm360-shell-page .communication-card > .section-title-row::after {
    display: none;
}

.pm360-shell-page .panel-title,
.pm360-shell-page .section-title-row h2,
.pm360-shell-page .section-title-row h3 {
    color: #213D59;
}

/* KPI color is meaningful but restrained. */
.pm360-shell-page .kpi-grid .card {
    position: relative;
    overflow: hidden;
    border-top: 1px solid #D8E6F1;
}

.pm360-shell-page .kpi-grid .card::after {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    border-radius: 14px 0 0 14px;
    background: var(--kpi-accent, var(--pm-blue-500));
    opacity: .78;
}

.pm360-shell-page .kpi-grid .card:nth-child(4n + 1) {
    --kpi-accent: #3B82D0;
    background: linear-gradient(145deg, #FFFFFF 18%, var(--pm-blue-050) 100%);
}
.pm360-shell-page .kpi-grid .card:nth-child(4n + 2) {
    --kpi-accent: #28A173;
    background: linear-gradient(145deg, #FFFFFF 18%, var(--pm-green-050) 100%);
}
.pm360-shell-page .kpi-grid .card:nth-child(4n + 3) {
    --kpi-accent: #7B62C8;
    background: linear-gradient(145deg, #FFFFFF 18%, var(--pm-violet-050) 100%);
}
.pm360-shell-page .kpi-grid .card:nth-child(4n + 4) {
    --kpi-accent: #D58B25;
    background: linear-gradient(145deg, #FFFFFF 18%, var(--pm-amber-050) 100%);
}

.pm360-shell-page .kpi-label { color: #61768A; }
.pm360-shell-page .kpi-value { color: #16324C; }

/* Toolbars and filter zones read as context, not content cards. */
.pm360-shell-page :is(.filter-panel, .toolbar, .cash-operations-heading) {
    border: 1px solid #D5E4F0;
    background: linear-gradient(135deg, #EEF6FD 0%, #F8FBFE 68%);
    box-shadow: none;
}

.pm360-shell-page :is(.no-data, .empty-state, .procedure-empty-state) {
    border: 1px dashed #C5D8E8;
    color: #60758A;
    background: linear-gradient(145deg, var(--pm-blue-050), #FFFFFF);
    box-shadow: none;
}

/* Tables: clearer header, calmer rows and stronger keyboard focus. */
.pm360-shell-page .table-wrap {
    border-color: #D7E3ED;
    box-shadow: var(--pm-shadow-xs);
}

.pm360-shell-page th {
    background: linear-gradient(180deg, #EAF3FB 0%, #E3EEF8 100%);
    color: #405B74;
    border-bottom-color: #CFDDE9;
}

.pm360-shell-page tbody tr:nth-child(even) td {
    background: rgba(247, 250, 253, .58);
}

.pm360-shell-page tbody tr:hover td {
    background: #EDF6FD;
}

/* Inputs are quieter at rest and unmistakable when active. */
.pm360-shell-page :is(input, select, textarea) {
    border-color: #CBD9E6;
    background: #FCFDFE;
    box-shadow: inset 0 1px 1px rgba(28, 65, 98, .025);
}

.pm360-shell-page :is(input, select, textarea):hover {
    border-color: #AFC8DD;
}

.pm360-shell-page :is(input, select, textarea):focus {
    border-color: var(--pm-blue-500);
    box-shadow: var(--pm-shadow-focus);
    background: #FFFFFF;
}

.pm360-shell-page :is(input, select, textarea):disabled,
.pm360-shell-page :is(input, select, textarea)[readonly] {
    color: #52677D;
    border-color: #D7E1EA;
    background: var(--pm-slate-050);
}

/* Buttons: consistent depth, intent and press feedback. */
.pm360-shell-page .btn {
    border-radius: 10px;
    box-shadow: none;
}

.pm360-shell-page .btn-primary {
    border: 1px solid #1D65B3;
    background: linear-gradient(135deg, #3B8BD2 0%, #246FC4 100%);
    box-shadow: 0 7px 17px rgba(36, 111, 196, .20);
}

.pm360-shell-page .btn-primary:hover {
    background: linear-gradient(135deg, #4696DA 0%, #1E63B2 100%);
    box-shadow: 0 10px 22px rgba(36, 111, 196, .25);
}

.pm360-shell-page .btn-primary:active,
.pm360-shell-page .btn-secondary:active,
.pm360-shell-page .btn-ghost:active {
    transform: translateY(0) scale(.985);
}

.pm360-shell-page .btn-secondary {
    color: #1E63AD;
    border: 1px solid #BCD5EC;
    background: linear-gradient(135deg, #EDF6FE, #E4F0FB);
}

.pm360-shell-page .btn-ghost {
    border-color: #C9D7E4;
    background: rgba(255,255,255,.82);
}

.pm360-shell-page :is(.btn, .nav-link, .chart-toggle, .tab-button):focus-visible {
    outline: none;
    box-shadow: var(--pm-shadow-focus);
}

/* Badges preserve semantic color without overpowering the page. */
.pm360-shell-page .badge { border: 1px solid #C7DCF0; }
.pm360-shell-page .badge.success { border-color: var(--pm-green-200); }
.pm360-shell-page .badge.warn { border-color: var(--pm-amber-200); }
.pm360-shell-page .badge.danger { border-color: #F1C6CC; }
.pm360-shell-page .badge.info { border-color: var(--pm-blue-200); }

/* Charts: a tinted title zone and less floating-card shadow. */
.pm360-shell-page .chart-card {
    overflow: hidden;
    border-color: #D5E3EF;
    background: linear-gradient(180deg, #F5FAFE 0, #FFFFFF 72px);
    box-shadow: var(--pm-shadow-xs);
}

.pm360-shell-page .chart-card:hover {
    box-shadow: var(--pm-shadow-sm);
}

.pm360-shell-page .chart-toggle-group {
    border-color: #C8DCEB;
    background: #EAF3FB;
}

.pm360-shell-page .chart-toggle.active {
    color: #FFFFFF;
    background: linear-gradient(135deg, #438FD3, #246FC4);
    box-shadow: 0 5px 13px rgba(36, 111, 196, .18);
}

/* Sidebar remains light, but the selected module is easier to locate. */
.pm360-shell-page .sidebar {
    background: linear-gradient(180deg, #F9FBFD 0%, #F4F8FB 100%);
    border-right-color: #D7E2EC;
}

.pm360-shell-page .nav-link:hover {
    background: #EAF3FB;
}

.pm360-shell-page .nav-link.active {
    color: var(--pm-blue-700);
    background: linear-gradient(90deg, #DDEDFC 0%, #EDF6FE 100%);
    box-shadow: inset 3px 0 0 var(--pm-blue-500);
}

/* Procedure stages keep their semantics but share the refined depth scale. */
.surgeries-page .procedure-stage-navigation {
    padding: 10px;
    border: 1px solid #D7E4EF;
    border-radius: 18px;
    background: linear-gradient(135deg, #EDF6FD, #F8FBFE);
}

.surgeries-page .procedure-stage-tab {
    box-shadow: var(--pm-shadow-xs);
}

.surgeries-page .procedure-stage-tab:hover,
.surgeries-page .procedure-stage-tab.is-active {
    box-shadow: var(--pm-shadow-sm);
}

.surgeries-page .procedure-stage-panel {
    box-shadow: var(--pm-shadow-sm);
}

.surgeries-page .procedure-clinical-context article,
.surgeries-page .procedure-check-grid-enhanced label,
.surgeries-page .procedure-timeline-card {
    box-shadow: none;
}

/* Communication icons remain visible without becoming decorative noise. */
.communication-page .communication-kpi-corner {
    opacity: .72;
    box-shadow: 0 5px 14px color-mix(in srgb, var(--communication-corner-color) 10%, transparent);
}

.communication-page .communication-kpi-card:hover .communication-kpi-corner {
    opacity: .94;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--communication-corner-color) 14%, transparent);
}

@media (max-width: 760px) {
    .pm360-shell-page .panel > .panel-head::before,
    .pm360-shell-page .communication-card > .section-title-row::before {
        min-height: 22px;
        margin-right: 8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pm360-shell-page :is(a.card, button.card, .report-card, .communication-kpi-card, .chart-card, .kanban-card),
    .pm360-shell-page .btn {
        transition: none !important;
        transform: none !important;
    }
}


/* =========================================================
   PM360 detail pass v6 — left-aligned headers + process focus
   ========================================================= */

/* The blue rail and the heading now form one left-aligned unit on every module. */
.pm360-shell-page .panel > .panel-head,
.pm360-shell-page .communication-card > .section-title-row,
.pm360-shell-page .cash-alerts-section > .section-title-row {
    justify-content: flex-start !important;
    text-align: left !important;
}

.pm360-shell-page .panel > .panel-head > :first-child,
.pm360-shell-page .communication-card > .section-title-row > :first-child,
.pm360-shell-page .cash-alerts-section > .section-title-row > :first-child {
    min-width: 0;
    margin-right: auto;
    text-align: left !important;
}

.pm360-shell-page .panel > .panel-head :is(.panel-title, .panel-subtitle, h2, h3, p),
.pm360-shell-page .communication-card > .section-title-row :is(h2, h3, p),
.pm360-shell-page .cash-alerts-section > .section-title-row :is(h2, h3, p) {
    text-align: left !important;
}

/* Process selector is intentionally the first decision point after filters. */
.surgeries-page .surgical-process-tabs-panel {
    overflow: hidden;
    border-color: #CADFEB;
    background: linear-gradient(145deg, #F7FBFF 0%, #FFFFFF 72%);
}

.surgeries-page .surgical-process-tabs {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.surgeries-page .surgical-process-tab {
    --process-color: #3B82D0;
    --process-soft: #EAF5FF;
    --process-icon: var(--icon-calendar-check);
    position: relative;
    min-height: 88px;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 14px 14px;
    color: #345069;
    text-decoration: none;
    border: 1px solid color-mix(in srgb, var(--process-color) 22%, #D7E4EF);
    border-radius: 15px;
    background: linear-gradient(145deg, #FFFFFF 12%, var(--process-soft) 100%);
    box-shadow: var(--pm-shadow-xs);
    transition: transform .16s ease-out, box-shadow .16s ease-out, border-color .16s ease-out;
}

.surgeries-page .surgical-process-tab-durante {
    --process-color: #7458D7;
    --process-soft: #F3EFFF;
    --process-icon: var(--icon-activity);
}

.surgeries-page .surgical-process-tab-postprocedimiento {
    --process-color: #D58A22;
    --process-soft: #FFF7E8;
    --process-icon: var(--icon-refresh-cw);
}

.surgeries-page .surgical-process-tab:hover {
    transform: translateY(-2px);
    border-color: color-mix(in srgb, var(--process-color) 48%, #D7E4EF);
    box-shadow: var(--pm-shadow-sm);
}

.surgeries-page .surgical-process-tab.active {
    color: #173650;
    border-color: var(--process-color);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--process-color) 13%, transparent), var(--pm-shadow-sm);
}

.surgeries-page .surgical-process-tab.active::after {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    bottom: 0;
    height: 3px;
    border-radius: 999px 999px 0 0;
    background: var(--process-color);
}

.surgeries-page .surgical-process-tab-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    background: color-mix(in srgb, var(--process-color) 10%, white);
    border: 1px solid color-mix(in srgb, var(--process-color) 18%, white);
}

.surgeries-page .surgical-process-tab-icon::before {
    content: "";
    width: 21px;
    height: 21px;
    display: block;
    background: var(--process-color);
    -webkit-mask: var(--process-icon) center / contain no-repeat;
    mask: var(--process-icon) center / contain no-repeat;
}

.surgeries-page .surgical-process-tab-copy {
    min-width: 0;
    display: grid;
    gap: 4px;
}

.surgeries-page .surgical-process-tab-copy strong {
    color: #203E59;
    font-size: 14px;
    line-height: 1.2;
}

.surgeries-page .surgical-process-tab-copy small {
    color: #677C90;
    font-size: 11px;
    line-height: 1.35;
}

.surgeries-page .surgical-process-tab-count {
    min-width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    padding: 0 8px;
    color: var(--process-color);
    font-size: 12px;
    font-weight: 850;
    border: 1px solid color-mix(in srgb, var(--process-color) 22%, white);
    border-radius: 999px;
    background: color-mix(in srgb, var(--process-color) 8%, white);
}

/* Only the records belonging to the selected process are shown. */
.surgeries-page .surgical-kanban-filtered {
    grid-template-columns: minmax(0, 1fr);
    overflow: visible;
}

.surgeries-page .surgical-kanban-filtered .surgical-kanban-col {
    min-height: 220px;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    align-content: start;
    gap: 14px;
    padding: 16px;
    background: linear-gradient(145deg, #F5FAFE, #FFFFFF);
}

.surgeries-page .surgical-kanban-filtered .kanban-title {
    grid-column: 1 / -1;
    margin: 0;
    padding-bottom: 10px;
    border-bottom: 1px solid #D7E5F0;
}

.surgeries-page .surgical-kanban-filtered .surgical-kanban-col::after {
    display: none !important;
}

.surgeries-page .surgical-kanban-filtered .surgical-kanban-card {
    margin: 0;
}

@media (max-width: 980px) {
    .surgeries-page .surgical-process-tabs {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .surgeries-page .surgical-process-tab {
        transition: none !important;
        transform: none !important;
    }
}


/* v7 dashboards: nombres utiles, jerarquia interna y paneles laterales mas amplios */
.pm360-shell-page .chart-grid,
.page-fiscal .chart-grid,
.dashboard-page .chart-grid,
.admin-dashboard-page .chart-grid {
    grid-template-columns: minmax(0, 1.28fr) minmax(360px, 1fr);
    gap: 18px;
    align-items: stretch;
}

.pm360-shell-page .chart-card,
.page-fiscal .chart-card,
.dashboard-page .chart-card,
.admin-dashboard-page .chart-card {
    padding: 18px 18px 16px;
}

.pm360-shell-page .chart-card h2,
.pm360-shell-page .chart-card h3,
.page-fiscal .chart-card h2,
.page-fiscal .chart-card h3,
.dashboard-page .chart-card h2,
.dashboard-page .chart-card h3,
.admin-dashboard-page .chart-card h2,
.admin-dashboard-page .chart-card h3 {
    margin: 0;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 800;
    color: #173b68;
}

.pm360-shell-page .chart-card .chart-card-kicker,
.page-fiscal .chart-card .chart-card-kicker,
.dashboard-page .chart-card .chart-card-kicker,
.admin-dashboard-page .chart-card .chart-card-kicker {
    margin: 6px 0 10px;
    font-size: 11px;
    line-height: 1.3;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #5c7698;
}

.pm360-shell-page .chart-card[data-chart-panel="scatter"],
.page-fiscal .chart-card[data-chart-panel="scatter"],
.dashboard-page .chart-card[data-chart-panel="scatter"],
.admin-dashboard-page .chart-card[data-chart-panel="scatter"] {
    min-height: 430px;
}

.pm360-shell-page .chart-card[data-chart-panel="bar"],
.pm360-shell-page .chart-card[data-chart-panel="pie"],
.page-fiscal .chart-card[data-chart-panel="bar"],
.page-fiscal .chart-card[data-chart-panel="pie"],
.dashboard-page .chart-card[data-chart-panel="bar"],
.dashboard-page .chart-card[data-chart-panel="pie"],
.admin-dashboard-page .chart-card[data-chart-panel="bar"],
.admin-dashboard-page .chart-card[data-chart-panel="pie"] {
    min-height: 270px;
}

.pm360-shell-page .chart-card[data-chart-panel="bar"] canvas,
.pm360-shell-page .chart-card[data-chart-panel="pie"] canvas,
.page-fiscal .chart-card[data-chart-panel="bar"] canvas,
.page-fiscal .chart-card[data-chart-panel="pie"] canvas,
.dashboard-page .chart-card[data-chart-panel="bar"] canvas,
.dashboard-page .chart-card[data-chart-panel="pie"] canvas,
.admin-dashboard-page .chart-card[data-chart-panel="bar"] canvas,
.admin-dashboard-page .chart-card[data-chart-panel="pie"] canvas {
    min-height: 205px;
}

.pm360-shell-page .chart-toggle-group .chart-toggle,
.page-fiscal .chart-toggle-group .chart-toggle,
.dashboard-page .chart-toggle-group .chart-toggle,
.admin-dashboard-page .chart-toggle-group .chart-toggle {
    max-width: 100%;
    white-space: normal;
    text-align: center;
    line-height: 1.25;
}

@media (max-width: 1180px) {
    .pm360-shell-page .chart-grid,
    .page-fiscal .chart-grid,
    .dashboard-page .chart-grid,
    .admin-dashboard-page .chart-grid {
        grid-template-columns: 1fr;
    }
}


/* v8 ajustes finos fiscal, configuracion e informes */
.page-fiscal .fiscal-recommendations-row {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 16px;
    align-items: stretch;
}
.page-fiscal .recommendation-grid.compact,
.page-fiscal .fiscal-alert-strip {
    margin-bottom: 0;
    grid-template-columns: 1fr;
}
.page-fiscal .recommendation-grid.compact .recommendation-card,
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill {
    min-height: 100%;
}
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill {
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
.page-configuracion .admin-card-building { --admin-icon-bg: #E8F1FF; --admin-icon-color: #0F62FE; --admin-icon: var(--icon-building-2); }
.page-configuracion .admin-card-users { --admin-icon-bg: #F0F7FF; --admin-icon-color: #1E88E5; --admin-icon: var(--icon-users); }
.page-configuracion .admin-card-card { --admin-icon-bg: #FFF7E8; --admin-icon-color: #B76A00; --admin-icon: var(--icon-credit-card); }
.page-configuracion .admin-card-plans { --admin-icon-bg: #FFF4E5; --admin-icon-color: #C77B00; --admin-icon: var(--icon-receipt-text); }
.page-configuracion .admin-card-wallet { --admin-icon-bg: #FEF3F2; --admin-icon-color: #D94848; --admin-icon: var(--icon-percent); }
.page-configuracion .admin-card-refresh { --admin-icon-bg: #ECFDF3; --admin-icon-color: #0F9F6E; --admin-icon: var(--icon-settings); }
.page-reportes .report-preview-grid,
.page-reportes .report-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.page-reportes .report-preview-card {
    padding: 18px 18px 16px;
}
.page-reportes .report-checklist {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.page-reportes .report-check-item {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    padding: 7px 11px 7px 32px;
    border: none;
    background: linear-gradient(180deg, #F4F8FF 0%, #EEF5FF 100%);
    box-shadow: inset 0 0 0 1px rgba(188, 215, 244, .65);
}
.page-reportes .report-check-item::before {
    left: 10px;
}
@media (max-width: 980px) {
    .page-fiscal .fiscal-recommendations-row,
    .page-reportes .report-preview-grid,
    .page-reportes .report-card-grid {
        grid-template-columns: 1fr;
    }
}


/* v9 microajustes fiscal, reportes y configuracion */
.page-fiscal .recommendation-grid.compact .recommendation-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 18px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.035);
}
.page-fiscal .recommendation-grid.compact .recommendation-chip {
    flex: 0 0 auto;
    margin: 2px 0 0;
}
.page-fiscal .recommendation-grid.compact .recommendation-card p {
    margin: 0;
    align-self: center;
}
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill {
    box-shadow: 0 8px 20px rgba(15, 23, 42, 0.035);
}
.page-reportes .report-checklist {
    justify-content: flex-start;
    align-items: flex-start;
}
.page-reportes .report-check-item {
    justify-content: flex-start;
    text-align: left;
    background: linear-gradient(180deg, #F8FBFF 0%, #F2F7FD 100%);
    box-shadow: inset 0 0 0 1px rgba(197, 216, 238, .9);
    color: #4A607F;
}
.page-reportes .report-preview-card .report-header {
    margin-bottom: 12px;
}
.page-configuracion .config-data-card {
    padding: 18px 18px 16px;
}
.page-configuracion .config-example-table {
    width: calc(100% - 16px);
    margin: 12px 8px 0;
}
.page-configuracion .config-data-card .helper-text,
.page-configuracion .config-data-card p:not(.config-import-title):not(.config-import-subtitle) {
    padding-inline: 8px;
}
.page-configuracion .config-data-card input[type='file'] {
    width: calc(100% - 16px);
    margin: 0 8px;
}


/* v10 correcciones finales: importacion, resumen financiero y recomendaciones fiscales */
.page-configuracion .config-example-table {
    box-sizing: border-box;
    width: calc(100% - 28px);
    margin: 12px 14px 0;
}
.page-configuracion .config-data-card input[type='file'] {
    box-sizing: border-box;
    width: calc(100% - 28px);
    margin-left: 14px;
    margin-right: 14px;
}

/* Finanzas: restaurar los iconos KPI a la esquina inferior derecha. */
.finance-page .finance-kpi-grid .card::after {
    top: auto !important;
    left: auto !important;
    right: 12px !important;
    bottom: 12px !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 10px !important;
    opacity: 1 !important;
}
.finance-page .finance-kpi-grid .card::before {
    top: auto !important;
    left: auto !important;
    right: 19px !important;
    bottom: 19px !important;
    width: 16px !important;
    height: 16px !important;
}

/* Fiscal: sin icono decorativo y con ambos mensajes alineados. */
.page-fiscal .recommendation-card::before,
.page-fiscal .recommendation-card::after {
    display: none !important;
}
.page-fiscal .fiscal-recommendations-row {
    align-items: stretch;
}
.page-fiscal .recommendation-grid.compact .recommendation-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    column-gap: 12px;
    min-height: 86px;
    padding: 14px 16px;
}
.page-fiscal .recommendation-grid.compact .recommendation-chip {
    grid-column: 1;
    margin: 0;
    align-self: center;
}
.page-fiscal .recommendation-grid.compact .recommendation-card p {
    grid-column: 2;
    margin: 0;
    padding: 0;
    align-self: center;
}
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 12px;
    min-height: 86px;
    padding: 14px 16px;
}
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill > span {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: center;
    margin: 0;
}
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill > strong {
    grid-column: 2;
    grid-row: 1;
    margin: 0;
    align-self: end;
}
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill > small {
    grid-column: 2;
    grid-row: 2;
    margin: 3px 0 0;
    align-self: start;
}

/* v11 microajustes finales: cirugia, reportes, pacientes, configuracion y caja */

/* Centro Quirurgico: mover decorativos de KPI a la esquina inferior derecha y eliminar sobreposiciones superiores. */
.surgeries-page .surgical-general-kpis .kpi-grid .card::after,
.surgeries-page .surgical-general-kpis .kpi-grid .card::before {
    top: auto !important;
    left: auto !important;
}
.surgeries-page .surgical-general-kpis .kpi-grid .card::after {
    right: 12px !important;
    bottom: 12px !important;
    width: 30px !important;
    height: 30px !important;
    border-radius: 10px !important;
    opacity: 1 !important;
}
.surgeries-page .surgical-general-kpis .kpi-grid .card::before {
    right: 19px !important;
    bottom: 19px !important;
    width: 16px !important;
    height: 16px !important;
}

/* Pacientes: encabezados de campos en azul rey. */
.patients-page form label,
.patients-page .filter-grid label,
.patients-page .filter-field label,
.patients-page .form-grid label {
    color: #1D4ED8 !important;
    font-weight: 800 !important;
}

/* Reportes: checklist mas alineado a la izquierda y con chips compactos. */
.report-preview-card .report-checklist {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    gap: 8px 10px !important;
}
.report-preview-card .report-check-item {
    display: inline-flex !important;
    width: auto !important;
    max-width: max-content !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 6px !important;
    padding: 6px 12px 6px 10px !important;
    text-align: left !important;
    background: linear-gradient(180deg, #F8FBFF 0%, #EFF5FD 100%) !important;
    box-shadow: inset 0 0 0 1px rgba(191, 213, 239, 0.95) !important;
    border-radius: 10px !important;
}
.report-preview-card .report-check-item::before {
    margin: 0 !important;
}

/* Configuracion: dar margen respirable a las tablas de importacion, sobre todo a la ultima columna. */
.page-configuracion .import-export-card .config-example-table {
    box-sizing: border-box !important;
    width: calc(100% - 40px) !important;
    margin: 12px 20px 0 !important;
    table-layout: fixed !important;
}
.page-configuracion .import-export-card .config-example-table th,
.page-configuracion .import-export-card .config-example-table td {
    padding: 9px 10px !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th:last-child,
.page-configuracion .import-export-card:first-child .config-example-table td:last-child {
    padding-right: 18px !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(1),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(1) { width: 15%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(2),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(2) { width: 15%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(3),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(3) { width: 18%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(4),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(4) { width: 14%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(5),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(5) { width: 18%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(6),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(6) { width: 14%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(7),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(7) { width: 12%; }

/* Centro Quirurgico: ocultar el bloque colapsable de indicadores adicionales y reforzar el dashboard principal. */
.surgeries-page .surgical-advanced-kpis {
    display: none !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle-group {
    gap: 10px !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle {
    min-height: 46px !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    border-radius: 14px !important;
}
.surgeries-page .surgical-chart-panel .chart-grid {
    gap: 18px !important;
    align-items: stretch !important;
}
.surgeries-page .surgical-chart-panel .chart-card {
    min-height: 330px !important;
    display: flex !important;
    flex-direction: column !important;
}
.surgeries-page .surgical-chart-panel .chart-card canvas {
    flex: 1 1 auto !important;
    min-height: 220px !important;
}
.surgeries-page .surgical-chart-panel .chart-card .panel-subtitle {
    margin-bottom: 10px !important;
}
.surgeries-page .surgical-chart-panel .no-data,
.surgeries-page .surgical-chart-panel .chart-card .no-data {
    min-height: 152px !important;
    white-space: normal !important;
    line-height: 1.45 !important;
    text-align: center !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px !important;
}

/* Caja: unir visualmente el encabezado de operaciones con el bloque de corte de caja que sigue. */
.caja-operativa-page .cash-operations-heading {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}
.caja-operativa-page .cash-operations-heading .panel-head {
    margin-bottom: 0 !important;
}
.caja-operativa-page .cash-operations-heading + .panel {
    margin-top: -1px !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

/* v12 correcciones solicitadas: quirurgico, pacientes y caja */

/* Centro Quirurgico: botones en una sola linea, con buen tamano, y sin el aviso general superior. */
.surgeries-page .surgical-chart-panel > .no-data {
    display: none !important;
}
.surgeries-page .surgical-chart-panel .panel-head {
    margin-bottom: 10px !important;
    align-items: flex-start !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle-group {
    flex-wrap: nowrap !important;
    gap: 9px !important;
    overflow-x: auto !important;
    padding-bottom: 2px !important;
    max-width: 100% !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle {
    flex: 0 0 auto !important;
    min-height: 42px !important;
    min-width: 0 !important;
    padding: 10px 15px !important;
    font-size: 13.5px !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    border-radius: 12px !important;
}
.surgeries-page .surgical-chart-panel .chart-grid {
    margin-top: 0 !important;
    gap: 16px !important;
}
.surgeries-page .surgical-chart-panel .chart-card {
    min-height: 310px !important;
}
.surgeries-page .surgical-chart-panel .chart-card canvas {
    min-height: 205px !important;
}

/* Pacientes: azul medio, similar a los acentos de Agenda Clinica. */
.patients-page form label,
.patients-page .filter-grid label,
.patients-page .filter-field label,
.patients-page .form-grid label {
    color: #246FC4 !important;
}

/* Caja: eliminar solo el encabezado intermedio "Operaciones de Caja". */
.caja-operativa-page .cash-operations-heading {
    display: none !important;
}
.caja-operativa-page .cash-operations-heading + .panel {
    margin-top: 0 !important;
    border-top-left-radius: 18px !important;
    border-top-right-radius: 18px !important;
}

@media (max-width: 900px) {
    .surgeries-page .surgical-chart-panel .panel-head {
        align-items: stretch !important;
    }
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        width: 100% !important;
    }
}

/* v13 - microajustes centro quirurgico y configuracion */

/* Centro quirurgico: hacer que los 3 botones KPI quepan en una sola fila sin barra horizontal. */
.surgeries-page .surgical-chart-panel .panel-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1.15fr) minmax(420px, 0.85fr) !important;
    gap: 14px !important;
    align-items: start !important;
}
.surgeries-page .surgical-chart-panel .panel-head > div:first-child {
    min-width: 0 !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle-group {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
    width: 100% !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle {
    width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    text-align: center !important;
    justify-content: center !important;
    min-height: 50px !important;
    padding: 10px 12px !important;
    font-size: 13px !important;
    line-height: 1.15 !important;
}

/* Centro quirurgico: timeline de resumen y cierre con mas aire para que no se amontone. */
.surgeries-page .procedure-stage-panel-final .procedure-timeline-horizontal,
.surgeries-page .procedure-timeline-horizontal {
    grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)) !important;
    gap: 8px !important;
    overflow: visible !important;
    padding: 10px 8px 8px !important;
}
.surgeries-page .procedure-timeline-horizontal div {
    min-width: 0 !important;
    padding-inline: 6px !important;
}
.surgeries-page .procedure-timeline-horizontal span {
    max-width: 100% !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
    text-align: center !important;
    white-space: normal !important;
}
.surgeries-page .procedure-timeline-horizontal strong {
    font-size: 11px !important;
}

/* Configuracion: reducir visualmente la tabla ejemplo y centrarla con aire a ambos lados. */
.page-configuracion .import-export-card .config-example-table {
    box-sizing: border-box !important;
    width: calc(100% - 76px) !important;
    margin: 12px 38px 0 !important;
    table-layout: fixed !important;
    font-size: 12.5px !important;
}
.page-configuracion .import-export-card .config-example-table th,
.page-configuracion .import-export-card .config-example-table td {
    padding: 8px 10px !important;
    word-break: break-word !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(1),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(1) { width: 14%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(2),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(2) { width: 14%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(3),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(3) { width: 18%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(4),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(4) { width: 14%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(5),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(5) { width: 19%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(6),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(6) { width: 12%; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(7),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(7) { width: 9%; }

@media (max-width: 1200px) {
    .surgeries-page .surgical-chart-panel .panel-head {
        grid-template-columns: 1fr !important;
    }
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 820px) {
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        grid-template-columns: 1fr !important;
    }
    .page-configuracion .import-export-card .config-example-table {
        width: calc(100% - 40px) !important;
        margin: 12px 20px 0 !important;
    }
}

/* v14 - correcciones finas configuracion + centro quirurgico */

/* Configuracion: desplazar la tabla ejemplo mas hacia la izquierda y dejar mas aire a la derecha. */
.page-configuracion .import-export-card:first-child .config-example-table {
    width: calc(100% - 96px) !important;
    margin: 12px 60px 0 16px !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th,
.page-configuracion .import-export-card:first-child .config-example-table td {
    padding: 8px 8px !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(1),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(1) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(2),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(2) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(3),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(3) { width: 18% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(4),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(4) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(5),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(5) { width: 18% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(6),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(6) { width: 11% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(7),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(7) { width: 11% !important; }

/* Centro quirurgico: ocultar por completo el bloque superior de procesos clinicos. */
.surgeries-page .surgical-process-tabs {
    display: none !important;
}

/* Centro quirurgico: ordenar cabecera del dashboard; texto izquierda, botones derecha, sin scroll. */
.surgeries-page .surgical-chart-panel > .panel-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 500px !important;
    gap: 18px !important;
    align-items: center !important;
}
.surgeries-page .surgical-chart-panel > .panel-head > div:first-child {
    min-width: 0 !important;
}
.surgeries-page .surgical-chart-panel > .panel-head > div:first-child .panel-title,
.surgeries-page .surgical-chart-panel > .panel-head > div:first-child .panel-subtitle {
    text-align: left !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle-group {
    justify-self: end !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    width: 500px !important;
    min-width: 500px !important;
    max-width: 500px !important;
    overflow: visible !important;
    padding: 0 !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    padding: 8px 10px !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    text-align: center !important;
    border-radius: 12px !important;
}

@media (max-width: 1180px) {
    .surgeries-page .surgical-chart-panel > .panel-head {
        grid-template-columns: 1fr !important;
        align-items: start !important;
    }
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        justify-self: stretch !important;
    }
}
@media (max-width: 820px) {
    .page-configuracion .import-export-card:first-child .config-example-table {
        width: calc(100% - 44px) !important;
        margin: 12px 24px 0 20px !important;
    }
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        grid-template-columns: 1fr !important;
    }
}

/* v15 - correccion fuerte de centro quirurgico + configuracion */

/* 1) Eliminar por completo el bloque "Procesos clínicos" (panel y tabs). */
.surgeries-page .surgical-process-tabs-panel,
.surgeries-page .surgical-process-tabs {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

/* 2) Cabecera de "Procedimientos por etapa": texto a la izquierda y 3 botones a la derecha. */
.surgeries-page .surgical-chart-panel .panel-head {
    display: flex !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
    gap: 22px !important;
    flex-wrap: nowrap !important;
}
.surgeries-page .surgical-chart-panel .panel-head > div:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 520px) !important;
}
.surgeries-page .surgical-chart-panel .panel-head > div:first-child .panel-title,
.surgeries-page .surgical-chart-panel .panel-head > div:first-child .panel-subtitle {
    text-align: left !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle-group {
    flex: 0 0 500px !important;
    width: 500px !important;
    min-width: 500px !important;
    max-width: 500px !important;
    margin-left: auto !important;
    justify-content: flex-end !important;
    align-items: stretch !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    overflow: visible !important;
    padding: 0 !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    white-space: normal !important;
    line-height: 1.18 !important;
    text-align: center !important;
    padding: 8px 10px !important;
}

/* 3) Ajuste real de tabla ejemplo Importar Pacientes: mover tabla a la izquierda y liberar margen derecho. */
.page-configuracion .import-export-card:first-child .config-example-table {
    width: calc(100% - 132px) !important;
    max-width: calc(100% - 132px) !important;
    margin: 12px 96px 0 12px !important;
    font-size: 10.5px !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th,
.page-configuracion .import-export-card:first-child .config-example-table td {
    padding: 7px 7px !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(1),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(1) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(2),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(2) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(3),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(3) { width: 18% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(4),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(4) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(5),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(5) { width: 18% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(6),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(6) { width: 11% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(7),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(7) { width: 11% !important; }

@media (max-width: 1180px) {
    .surgeries-page .surgical-chart-panel .panel-head {
        flex-wrap: wrap !important;
    }
    .surgeries-page .surgical-chart-panel .panel-head > div:first-child {
        max-width: 100% !important;
    }
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        flex: 1 1 100% !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
}
@media (max-width: 820px) {
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        grid-template-columns: 1fr !important;
    }
    .page-configuracion .import-export-card:first-child .config-example-table {
        width: calc(100% - 40px) !important;
        max-width: calc(100% - 40px) !important;
        margin: 12px 20px 0 20px !important;
    }
}

/* v16 - ajustes extra reportes, fiscal, configuracion y centro quirurgico */

/* Fiscal: dos cuadros del mismo tamano y alineacion consistente. */
.page-fiscal .fiscal-recommendations-row {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px !important;
    align-items: stretch !important;
}
.page-fiscal .recommendation-grid.compact,
.page-fiscal .fiscal-alert-strip {
    margin: 0 !important;
}
.page-fiscal .recommendation-grid.compact .recommendation-card,
.page-fiscal .fiscal-alert-strip .fiscal-alert-pill {
    min-height: 84px !important;
    height: 100% !important;
    box-sizing: border-box !important;
}

/* Centro Quirurgico: 3 dashboards del mismo tamaño y encabezado con botones a la derecha. */
.surgeries-page .surgical-chart-panel > .panel-head {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 18px !important;
    flex-wrap: nowrap !important;
}
.surgeries-page .surgical-chart-panel > .panel-head > div:first-child {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 540px) !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle-group {
    margin-left: auto !important;
    width: 520px !important;
    min-width: 520px !important;
    max-width: 520px !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 10px !important;
    overflow: visible !important;
    padding: 0 !important;
}
.surgeries-page .surgical-chart-panel .chart-toggle {
    width: 100% !important;
    white-space: normal !important;
    min-height: 44px !important;
    padding: 9px 10px !important;
    line-height: 1.15 !important;
}
.surgeries-page .surgical-chart-panel .chart-grid {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    align-items: stretch !important;
}
.surgeries-page .surgical-chart-panel .chart-card {
    min-height: 344px !important;
    height: 344px !important;
}
.surgeries-page .surgical-chart-panel .chart-card canvas,
.surgeries-page .surgical-chart-panel .chart-card .no-data {
    flex: 1 1 auto !important;
}

/* Reportes: chips de contenido mas compactos para subir los ultimos a la primera fila. */
.page-reportes .report-checklist {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px 8px !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
}
.page-reportes .report-check-item {
    padding: 5px 10px 5px 26px !important;
    font-size: 12px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
    border-radius: 9px !important;
}
.page-reportes .report-check-item::before {
    left: 8px !important;
}

/* Reportes: ocultar etiquetas secundarias dentro de graficos y usar solo el titulo principal. */
.page-reportes .chart-card .panel-subtitle {
    display: none !important;
}

/* Reportes: textos vacios alineados dentro de sus tarjetas Top. */
.page-reportes .report-top-grid .card table {
    table-layout: fixed !important;
    min-width: 0 !important;
}
.page-reportes .report-top-grid .card td[colspan] {
    text-align: center !important;
    color: #64748B !important;
    font-weight: 700 !important;
    padding: 28px 12px !important;
    vertical-align: middle !important;
}

/* Reportes: eliminar por completo el bloque de Exportaciones. */
.page-reportes > .panel:has(> .actions-inline) {
    display: none !important;
}

/* Configuración: tablas de importación equilibradas con aire real a izquierda y derecha. */
.page-configuracion .import-export-card {
    overflow: hidden !important;
}
.page-configuracion .import-export-card .config-example-table {
    box-sizing: border-box !important;
    table-layout: fixed !important;
    width: calc(100% - 64px) !important;
    margin: 12px 32px 0 !important;
    font-size: 12px !important;
}
.page-configuracion .import-export-card .config-example-table th,
.page-configuracion .import-export-card .config-example-table td {
    padding: 8px 8px !important;
    word-break: break-word !important;
}
.page-configuracion .import-export-card:first-child .config-example-table {
    width: calc(100% - 86px) !important;
    margin: 12px 48px 0 18px !important;
}
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(1),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(1) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(2),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(2) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(3),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(3) { width: 18% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(4),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(4) { width: 14% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(5),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(5) { width: 18% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(6),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(6) { width: 11% !important; }
.page-configuracion .import-export-card:first-child .config-example-table th:nth-child(7),
.page-configuracion .import-export-card:first-child .config-example-table td:nth-child(7) { width: 11% !important; }
.page-configuracion .import-export-card:last-child .config-example-table th:nth-child(1),
.page-configuracion .import-export-card:last-child .config-example-table td:nth-child(1) { width: 19% !important; }
.page-configuracion .import-export-card:last-child .config-example-table th:nth-child(2),
.page-configuracion .import-export-card:last-child .config-example-table td:nth-child(2) { width: 14% !important; }
.page-configuracion .import-export-card:last-child .config-example-table th:nth-child(3),
.page-configuracion .import-export-card:last-child .config-example-table td:nth-child(3) { width: 26% !important; }
.page-configuracion .import-export-card:last-child .config-example-table th:nth-child(4),
.page-configuracion .import-export-card:last-child .config-example-table td:nth-child(4) { width: 22% !important; }
.page-configuracion .import-export-card:last-child .config-example-table th:nth-child(5),
.page-configuracion .import-export-card:last-child .config-example-table td:nth-child(5) { width: 19% !important; }

@media (max-width: 1200px) {
    .surgeries-page .surgical-chart-panel > .panel-head {
        flex-wrap: wrap !important;
    }
    .surgeries-page .surgical-chart-panel > .panel-head > div:first-child {
        max-width: 100% !important;
    }
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
    .surgeries-page .surgical-chart-panel .chart-grid {
        grid-template-columns: 1fr !important;
    }
}
@media (max-width: 820px) {
    .page-configuracion .import-export-card .config-example-table,
    .page-configuracion .import-export-card:first-child .config-example-table {
        width: calc(100% - 36px) !important;
        margin: 12px 18px 0 !important;
    }
    .surgeries-page .surgical-chart-panel .chart-toggle-group {
        grid-template-columns: 1fr !important;
    }
}

/* v18 - restauracion segura de Configuracion y Reportes */

/* CONFIGURACION: conservar iconos del Centro de configuracion y ajustar solamente tablas. */
.page-configuracion .config-example-table-wrap {
    width: calc(100% - 32px);
    margin: 12px 16px 0;
    overflow-x: auto;
    overflow-y: hidden;
    box-sizing: border-box;
    border-radius: 10px;
}
.page-configuracion .config-example-table-wrap .config-example-table {
    width: 100% !important;
    margin: 0 !important;
    table-layout: fixed !important;
    font-size: 9.5px !important;
}
.page-configuracion .config-example-table-wrap .config-example-table th,
.page-configuracion .config-example-table-wrap .config-example-table td {
    padding: 7px 5px !important;
    line-height: 1.2 !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
}
.page-configuracion .compact-pacientes col:nth-child(1) { width: 13% !important; }
.page-configuracion .compact-pacientes col:nth-child(2) { width: 13% !important; }
.page-configuracion .compact-pacientes col:nth-child(3) { width: 18% !important; }
.page-configuracion .compact-pacientes col:nth-child(4) { width: 14% !important; }
.page-configuracion .compact-pacientes col:nth-child(5) { width: 18% !important; }
.page-configuracion .compact-pacientes col:nth-child(6) { width: 15% !important; }
.page-configuracion .compact-pacientes col:nth-child(7) { width: 9% !important; }
.page-configuracion .compact-agenda col:nth-child(1) { width: 18% !important; }
.page-configuracion .compact-agenda col:nth-child(2) { width: 14% !important; }
.page-configuracion .compact-agenda col:nth-child(3) { width: 25% !important; }
.page-configuracion .compact-agenda col:nth-child(4) { width: 22% !important; }
.page-configuracion .compact-agenda col:nth-child(5) { width: 21% !important; }

/* REPORTES: conservar iconografia y ordenar el contenido incluido por tarjeta. */
.page-reportes .report-preview-card .report-checklist {
    display: grid !important;
    gap: 7px !important;
    align-items: stretch !important;
}
.page-reportes #vista-previa-operativo .report-checklist,
.page-reportes #vista-previa-financiero .report-checklist {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
.page-reportes #vista-previa-fiscal .report-checklist {
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
}
.page-reportes #vista-previa-ejecutivo .report-checklist {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.page-reportes .report-preview-card .report-check-item {
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    padding: 6px 7px 6px 24px !important;
    font-size: 10.5px !important;
    line-height: 1.15 !important;
    white-space: normal !important;
    text-align: left !important;
}
.page-reportes .report-preview-card .report-check-item::before {
    left: 7px !important;
}

/* REPORTES: botones y titulos de graficas descriptivos. */
.page-reportes .chart-toggle-group {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    gap: 10px !important;
}
.page-reportes .chart-toggle-group .chart-toggle {
    padding: 10px 14px !important;
    white-space: nowrap !important;
}
.page-reportes .chart-card h3 {
    margin: 0 0 12px !important;
    font-size: 15px !important;
    line-height: 1.35 !important;
}
.page-reportes .chart-card .panel-subtitle {
    display: none !important;
}

/* REPORTES: estados vacios centrados dentro de su tarjeta. */
.page-reportes .report-top-grid .card {
    min-height: 116px !important;
}
.page-reportes .report-top-empty {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #64748B;
    font-size: 13px;
    font-weight: 700;
    padding: 12px;
    box-sizing: border-box;
}

@media (max-width: 1180px) {
    .page-reportes #vista-previa-operativo .report-checklist,
    .page-reportes #vista-previa-financiero .report-checklist,
    .page-reportes #vista-previa-fiscal .report-checklist,
    .page-reportes #vista-previa-ejecutivo .report-checklist {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 820px) {
    .page-reportes #vista-previa-operativo .report-checklist,
    .page-reportes #vista-previa-financiero .report-checklist,
    .page-reportes #vista-previa-fiscal .report-checklist,
    .page-reportes #vista-previa-ejecutivo .report-checklist {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .page-configuracion .config-example-table-wrap {
        width: calc(100% - 20px);
        margin-inline: 10px;
    }
}

/* v19 - ajuste puntual Reporte Fiscal + selector visual de reportes en graficas */

/* Solo el texto de "Impuestos estimados": recorrerlo ligeramente hacia la izquierda. */
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    text-indent: -4px !important;
    padding-right: 4px !important;
}

/* Selector del conjunto de datos usado por resumen y graficas. */
.page-reportes .report-chart-report-filter {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: -2px 0 18px;
    padding: 12px 14px;
    border: 1px solid #CFE1F5;
    border-radius: 14px;
    background: linear-gradient(135deg, #F5FAFF 0%, #EEF6FF 100%);
}
.page-reportes .report-chart-filter-label {
    color: #365676;
    font-size: 12px;
    font-weight: 800;
    white-space: nowrap;
}
.page-reportes .report-chart-filter-options {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.page-reportes .report-chart-filter-option {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 12px;
    color: #365676;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
    border: 1px solid #C8DBEF;
    border-radius: 10px;
    background: #FFFFFF;
    transition: border-color .16s ease, background .16s ease, color .16s ease, box-shadow .16s ease;
}
.page-reportes .report-chart-filter-option:hover {
    color: #0F62FE;
    border-color: #8FC2F5;
    background: #F8FCFF;
}
.page-reportes .report-chart-filter-option.active {
    color: #FFFFFF;
    border-color: #2388E8;
    background: linear-gradient(135deg, #2388E8 0%, #176FC7 100%);
    box-shadow: 0 7px 16px rgba(35, 136, 232, .18);
}
.page-reportes .report-chart-filter-current {
    margin-left: auto;
    color: #59728D;
    font-size: 11px;
    font-weight: 750;
    white-space: nowrap;
}
.page-reportes #graficas-reportes {
    position: relative;
    top: -12px;
}

@media (max-width: 880px) {
    .page-reportes .report-chart-filter-current {
        width: 100%;
        margin-left: 0;
    }
}


/* v20 - conservar posicion en graficas + mover texto Impuestos estimados */
.page-reportes #graficas-reportes {
    scroll-margin-top: 18px !important;
}

/* Solo el texto de Impuestos estimados: moverlo mas hacia la izquierda sin alterar los demas botones. */
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    text-indent: -13px !important;
    padding-right: 2px !important;
}

/* v21 - ajustar solamente el texto "Impuestos estimados" */
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    text-indent: 0 !important;
    padding-left: 24px !important;
    padding-right: 5px !important;
}
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    display: block !important;
    position: relative !important;
    left: -7px !important;
    text-align: left !important;
    line-height: 1.1 !important;
}

/* v22 - mover un poco mas a la izquierda solo el texto "Impuestos estimados" */
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    left: -14px !important;
}

/* v23 - mover solamente el icono de "Impuestos estimados" mas a la izquierda */
.page-reportes #vista-previa-fiscal .report-check-item:last-child::before {
    left: 1px !important;
}

/* v24 - corregir alineacion conjunta del icono y texto de Impuestos estimados */
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    display: grid !important;
    grid-template-columns: 16px minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 4px !important;
    padding: 6px 6px !important;
    text-indent: 0 !important;
}
.page-reportes #vista-previa-fiscal .report-check-item:last-child::before {
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 16px !important;
    height: 16px !important;
    flex: 0 0 16px !important;
    margin: 0 !important;
    -webkit-mask-size: 14px 14px !important;
    mask-size: 14px 14px !important;
}
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    position: static !important;
    left: auto !important;
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    text-align: left !important;
    line-height: 1.08 !important;
}

/* v25 - mover ligeramente a la derecha icono y texto de Impuestos estimados */
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    padding-left: 10px !important;
    padding-right: 2px !important;
}

/* v26 - Bitácora Quirúrgica: conexión con Agenda, contexto clínico y registro operativo real */
.surgeries-page .surgery-agenda-selector {
    display: grid;
    grid-template-columns: minmax(240px, .8fr) minmax(420px, 1.2fr);
    gap: 22px;
    align-items: end;
    margin-bottom: 18px;
    padding: 18px;
    border: 1px solid #CFE0F4;
    border-radius: 16px;
    background: linear-gradient(135deg, #F7FBFF 0%, #FFFFFF 76%);
}
.surgeries-page .surgery-agenda-selector h3 {
    margin: 4px 0 6px;
    color: #213F5C;
    font-size: 17px;
}
.surgeries-page .surgery-agenda-selector p {
    margin: 0;
    color: #667B91;
    line-height: 1.45;
}
.surgeries-page .surgery-agenda-selector-controls {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: end;
}
.surgeries-page .surgery-agenda-selector-controls label {
    grid-column: 1 / -1;
    color: #36536F;
    font-size: 12px;
    font-weight: 800;
}
.surgeries-page .surgery-agenda-selector-controls select {
    min-width: 0;
}
.surgeries-page .procedure-executive-meta {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}
.surgeries-page .procedure-patient-context {
    margin: 16px 0 18px;
    padding: 18px;
    border: 1px solid #CFE0F4;
    border-radius: 16px;
    background: #FBFDFF;
}
.surgeries-page .procedure-patient-context-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}
.surgeries-page .procedure-patient-context-main h3 {
    margin: 4px 0 0;
    color: #213F5C;
    font-size: 18px;
}
.surgeries-page .procedure-patient-context-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.surgeries-page .procedure-patient-context-grid article {
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #D9E7F5;
    border-radius: 12px;
    background: #FFFFFF;
}
.surgeries-page .procedure-patient-context-grid span {
    display: block;
    margin-bottom: 5px;
    color: #6A7F95;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}
.surgeries-page .procedure-patient-context-grid strong {
    display: block;
    color: #29465F;
    font-size: 13px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}
.surgeries-page .procedure-operational-fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}
.surgeries-page .procedure-operational-fieldset:disabled {
    opacity: .78;
}
.surgeries-page .procedure-closed-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid #A7E3C8;
    border-radius: 14px;
    background: #F0FBF6;
}
.surgeries-page .procedure-closed-banner div {
    display: grid;
    gap: 4px;
}
.surgeries-page .procedure-closed-banner strong {
    color: #147A55;
}
.surgeries-page .procedure-closed-banner span {
    color: #527063;
    font-size: 13px;
}
.surgeries-page .procedure-post-grid {
    align-items: start;
}
.surgeries-page .procedure-linked-followup {
    margin-top: 12px;
    padding: 10px 12px;
    color: #176B50;
    font-size: 12px;
    font-weight: 800;
    border: 1px solid #B9E5D1;
    border-radius: 10px;
    background: #F1FBF7;
}
.surgeries-page .surgical-ai-summary-list {
    display: grid;
    gap: 10px;
}
.surgeries-page .surgical-ai-summary-item {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr);
    gap: 12px;
    align-items: start;
    padding: 11px 13px;
    border: 1px solid #CFE7DF;
    border-radius: 11px;
    background: rgba(255,255,255,.82);
}
.surgeries-page .surgical-ai-summary-item strong {
    color: #13715A;
    font-size: 12px;
}
.surgeries-page .surgical-ai-summary-item span {
    color: #405B54;
    font-size: 13px;
    line-height: 1.45;
}
.surgeries-page .surgical-ai-summary-item[hidden] {
    display: none !important;
}
.surgeries-page .procedure-stage-panel textarea,
.surgeries-page .procedure-stage-panel input,
.surgeries-page .procedure-stage-panel select {
    width: 100%;
}
.surgeries-page .procedure-stage-panel-final .procedure-operational-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}
.surgeries-page .procedure-empty-state.compact {
    margin: 0;
}
@media (max-width: 1180px) {
    .surgeries-page .procedure-executive-meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .surgeries-page .surgery-agenda-selector {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 820px) {
    .surgeries-page .procedure-executive-meta,
    .surgeries-page .procedure-patient-context-grid,
    .surgeries-page .procedure-stage-panel-final .procedure-operational-summary {
        grid-template-columns: 1fr;
    }
    .surgeries-page .surgery-agenda-selector-controls {
        grid-template-columns: 1fr;
    }
    .surgeries-page .procedure-patient-context-main,
    .surgeries-page .procedure-closed-banner {
        align-items: stretch;
        flex-direction: column;
    }
    .surgeries-page .surgical-ai-summary-item {
        grid-template-columns: 1fr;
    }
}


/* v29 - restaura vista guiada del registro operativo y amplia graficas de Bitacora */
.surgeries-page .procedure-empty-preview { opacity: 1 !important; }
.surgeries-page .procedure-empty-preview .procedure-stage-tab { cursor: pointer !important; }
.surgeries-page .procedure-empty-preview input { color: #6B7F95 !important; background: #F8FBFF !important; }
.surgeries-page .surgical-chart-panel .chart-grid { align-items: stretch !important; gap: 18px !important; }
.surgeries-page .surgical-chart-panel .chart-card { min-height: 410px !important; height: 410px !important; display: flex !important; flex-direction: column !important; }
.surgeries-page .surgical-chart-panel .chart-card canvas { flex: 1 1 auto !important; min-height: 285px !important; }
@media (max-width: 1200px) { .surgeries-page .surgical-chart-panel .chart-card { height: 380px !important; min-height: 380px !important; } }

/* v30 - Bitacora Quirurgica conectada sin alterar otras pestañas */
.surgeries-page .surgery-agenda-selector-unified {
    align-items: start;
    grid-template-columns: minmax(260px, .75fr) minmax(480px, 1.25fr);
}
.surgeries-page .surgery-agenda-selector-copy {
    min-width: 0;
}
.surgeries-page .surgery-agenda-selector-controls {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    align-items: start;
}
.surgeries-page .surgery-agenda-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
}
.surgeries-page .surgery-agenda-actions .btn {
    min-width: 190px;
}
.surgeries-page .surgery-agenda-helper {
    margin: 0;
    color: #6A7F95;
    font-size: 12px;
    line-height: 1.45;
}
.surgeries-page .procedure-empty-guidance {
    margin: 16px 0;
    padding: 14px 16px;
    border: 1px dashed #B8D4F0;
    border-radius: 12px;
    background: #F8FBFF;
}
.surgeries-page .procedure-empty-guidance strong {
    display: block;
    margin-bottom: 4px;
    color: #29465F;
}
.surgeries-page .procedure-empty-guidance p {
    margin: 0;
    color: #6A7F95;
    line-height: 1.45;
}
.surgeries-page .procedure-guide-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.surgeries-page .procedure-guide-grid article {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 14px 16px;
    border: 1px solid #D9E7F5;
    border-radius: 12px;
    background: rgba(255,255,255,.76);
}
.surgeries-page .procedure-guide-grid strong {
    color: #29465F;
    font-size: 13px;
}
.surgeries-page .procedure-guide-grid span {
    color: #6A7F95;
    font-size: 12px;
    line-height: 1.45;
}
.surgeries-page .procedure-patient-context-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}
.surgeries-page .field-source-note {
    display: block;
    margin-top: 6px;
    color: #3B6F9F;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.4;
}
.surgeries-page .procedure-validation-alert {
    margin: 14px 0;
    padding: 13px 15px;
    color: #8A4B08;
    border: 1px solid #F6C979;
    border-left: 4px solid #E99A1A;
    border-radius: 11px;
    background: #FFF9ED;
    line-height: 1.45;
}
.surgeries-page .procedure-operational-fieldset.is-readonly {
    opacity: .86;
}
.surgeries-page .procedure-operational-fieldset.is-readonly .procedure-stage-tab {
    opacity: 1;
    cursor: pointer;
}
.surgeries-page .procedure-empty-preview .procedure-stage-tab {
    pointer-events: auto !important;
}
.surgeries-page .procedure-empty-preview .procedure-stage-panel {
    min-height: 190px;
}
@media (max-width: 1180px) {
    .surgeries-page .surgery-agenda-selector-unified {
        grid-template-columns: 1fr;
    }
    .surgeries-page .procedure-patient-context-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 820px) {
    .surgeries-page .surgery-agenda-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .surgeries-page .surgery-agenda-actions .btn {
        width: 100%;
        min-width: 0;
    }
    .surgeries-page .procedure-guide-grid,
    .surgeries-page .procedure-patient-context-grid {
        grid-template-columns: 1fr;
    }
}

/* v31 - Bitácora Quirúrgica: buscador activo, preprocedimiento clínico y timeline despejado */
.surgeries-page .surgery-search-shell {
    display: grid;
    gap: 8px;
}
.surgeries-page .surgery-search-shell input[type="search"] {
    width: 100%;
    border: 1px solid #cfe0f4;
    border-radius: 12px;
    background: #fff;
    min-height: 44px;
    padding: 11px 14px;
}
.surgeries-page .surgery-search-results {
    display: grid;
    gap: 8px;
    max-height: 240px;
    overflow: auto;
    padding-right: 2px;
}
.surgeries-page .surgery-search-result,
.surgeries-page .surgery-search-empty {
    width: 100%;
    text-align: left;
    border: 1px solid #d8e5f4;
    border-radius: 12px;
    background: #fbfdff;
    padding: 11px 13px;
}
.surgeries-page .surgery-search-result {
    cursor: pointer;
    display: grid;
    gap: 3px;
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.surgeries-page .surgery-search-result:hover,
.surgeries-page .surgery-search-result:focus-visible {
    border-color: #3b82f6;
    box-shadow: 0 10px 24px rgba(59,130,246,.12);
    transform: translateY(-1px);
    outline: none;
}
.surgeries-page .surgery-search-result strong {
    color: #243e5a;
    font-size: 14px;
}
.surgeries-page .surgery-search-result span,
.surgeries-page .surgery-search-result small,
.surgeries-page .surgery-search-empty {
    color: #667b91;
    line-height: 1.4;
}
.surgeries-page .procedure-stage-content-grid-pre {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) minmax(280px, .9fr);
    gap: 18px;
}
.surgeries-page .procedure-pre-main-column,
.surgeries-page .procedure-pre-side-column {
    min-width: 0;
    display: grid;
    gap: 14px;
}
.surgeries-page .procedure-pre-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.surgeries-page .procedure-study-panel {
    border: 1px solid #d9e7f5;
    border-radius: 16px;
    background: linear-gradient(180deg, #f9fcff 0%, #ffffff 100%);
    padding: 16px;
    display: grid;
    gap: 12px;
    min-height: 100%;
}
.surgeries-page .procedure-study-panel-head h4 {
    margin: 4px 0 6px;
    color: #243e5a;
    font-size: 18px;
}
.surgeries-page .procedure-study-panel-head p,
.surgeries-page .procedure-study-note {
    margin: 0;
    color: #667b91;
    line-height: 1.5;
}
.surgeries-page .procedure-study-card-list {
    display: grid;
    gap: 10px;
}
.surgeries-page .procedure-study-card {
    border: 1px solid #d9e7f5;
    border-radius: 14px;
    background: #ffffff;
    padding: 14px;
    display: grid;
    gap: 8px;
}
.surgeries-page .procedure-study-card strong {
    color: #243e5a;
}
.surgeries-page .procedure-study-card span {
    color: #667b91;
    line-height: 1.45;
}
.surgeries-page .procedure-study-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.surgeries-page .procedure-empty-guidance {
    margin: 16px 0;
}
.surgeries-page .surgical-chart-panel .chart-grid {
    gap: 20px !important;
}
.surgeries-page .surgical-chart-panel .chart-card {
    min-height: 460px !important;
    height: auto !important;
}
.surgeries-page .surgical-chart-panel .chart-card canvas {
    min-height: 320px !important;
}
.surgeries-page .procedure-timeline-card {
    overflow: visible !important;
}
.surgeries-page .procedure-timeline-horizontal {
    grid-template-columns: repeat(7, minmax(110px, 1fr)) !important;
    gap: 10px !important;
    align-items: start !important;
    padding: 18px 10px 8px !important;
}
.surgeries-page .procedure-timeline-horizontal div {
    position: relative !important;
    min-height: 86px !important;
    padding: 0 6px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
}
.surgeries-page .procedure-timeline-horizontal div::before {
    top: 14px !important;
}
.surgeries-page .procedure-timeline-horizontal span {
    position: relative !important;
    z-index: 2 !important;
    flex: 0 0 auto !important;
}
.surgeries-page .procedure-timeline-horizontal strong {
    display: block !important;
    line-height: 1.3 !important;
    text-align: center !important;
    white-space: normal !important;
    font-size: 12px !important;
    color: #5b7187 !important;
    max-width: 96px !important;
}
.surgeries-page .procedure-timeline-horizontal div.active strong {
    color: #243e5a !important;
}
@media (max-width: 1180px) {
    .surgeries-page .procedure-stage-content-grid-pre {
        grid-template-columns: 1fr;
    }
    .surgeries-page .procedure-pre-grid {
        grid-template-columns: 1fr;
    }
    .surgeries-page .procedure-timeline-horizontal {
        grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important;
    }
}
@media (max-width: 820px) {
    .surgeries-page .surgery-search-results {
        max-height: 200px;
    }
}

/* FINAL GLOBAL DELETE ICON OVERRIDE
   Applies to every real delete action across Agenda, Pacientes, Caja,
   Pagos, Fiscal and generic CRUD tables. The explicit background-image
   prevents browsers from rendering the icon as a solid square. */
form[action*="/eliminar"] .btn-danger::before,
form[action$="/eliminar"] .btn-danger::before,
.patient-delete-btn::before,
[data-action="delete"].btn-danger::before,
a[href*="/eliminar"].btn-danger::before {
    content: "" !important;
    display: inline-block !important;
    width: 19px !important;
    height: 19px !important;
    flex: 0 0 19px !important;
    background-color: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23C62828%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h18%22%2F%3E%3Cpath%20d%3D%22M8%206V4h8v2%22%2F%3E%3Cpath%20d%3D%22M19%206l-1%2014H6L5%206%22%2F%3E%3Cpath%20d%3D%22M10%2011v5%22%2F%3E%3Cpath%20d%3D%22M14%2011v5%22%2F%3E%3C%2Fsvg%3E") !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: 19px 19px !important;
    -webkit-mask: none !important;
    mask: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    clip-path: none !important;
    transform: none !important;
}

/* Expediente: documentos adjuntos visibles y accionables */
.patient-documents-panel { scroll-margin-top: 96px; }
.patient-document-count {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 7px 12px;
    background: #E8F1FF;
    color: #0F62FE;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .02em;
}
.patient-document-alert {
    border-radius: 12px;
    padding: 12px 14px;
    margin: 0 0 14px;
    font-weight: 800;
    border: 1px solid #BFDBFE;
    background: #EFF6FF;
    color: #1D4ED8;
}
.patient-document-alert.success { border-color: #BBF7D0; background: #ECFDF3; color: #047857; }
.patient-document-alert.warning { border-color: #FDE68A; background: #FFFBEB; color: #B45309; }
.patient-document-alert.error { border-color: #FECACA; background: #FEF2F2; color: #B91C1C; }
.patient-document-upload-form {
    padding: 16px;
    margin-bottom: 16px;
    border: 1px solid #DCE6F2;
    border-radius: 14px;
    background: linear-gradient(135deg, #F8FBFF, #FFFFFF);
}
.patient-document-grid {
    display: grid;
    gap: 12px;
    margin: 16px 0;
}
.patient-document-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    padding: 14px;
    border: 1px solid #DCE6F2;
    border-radius: 14px;
    background: #FFFFFF;
    box-shadow: 0 8px 24px rgba(15, 23, 42, .045);
    scroll-margin-top: 110px;
}
.patient-document-card.is-current { border-color: #0F62FE; box-shadow: 0 12px 30px rgba(15, 98, 254, .16); }
.patient-document-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    display: grid;
    place-items: center;
    background: #E8F1FF;
    color: #0F62FE;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .04em;
}
.patient-document-body strong {
    display: block;
    color: #0F172A;
    font-size: 15px;
    font-weight: 900;
    overflow-wrap: anywhere;
}
.patient-document-body p {
    margin: 5px 0 0;
    color: #64748B;
    font-size: 13px;
    line-height: 1.45;
}
.patient-document-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 5px;
}
.patient-document-meta span {
    display: inline-flex;
    border-radius: 999px;
    padding: 4px 8px;
    background: #F1F5F9;
    color: #475569;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.patient-document-empty {
    display: grid;
    gap: 5px;
    margin: 14px 0;
    padding: 18px;
    border: 1px dashed #B9D4FF;
    border-radius: 14px;
    background: #F8FBFF;
    color: #64748B;
    text-align: center;
}
.patient-document-empty strong { color: #0F172A; font-size: 16px; }
.patient-document-table-detail { margin-top: 12px; }
.patient-document-table-detail summary { cursor: pointer; color: #2563EB; font-weight: 850; margin-bottom: 10px; }
.page-pacientes .patient-document-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) !important;
    width: 100%;
    max-width: 100%;
}
.patient-document-card {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}
.patient-document-body,
.patient-document-actions { min-width: 0; }
.patient-document-body strong {
    overflow-wrap: break-word;
    word-break: normal;
}
.patient-document-date { white-space: nowrap; }
.patient-document-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.patient-document-delete { white-space: nowrap; }
.pm360-shell-page .patient-document-table-detail .table-wrap > table.patient-document-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
}
.patient-document-table th,
.patient-document-table td {
    vertical-align: middle;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal;
}
.patient-document-table th:nth-child(1) { width: 96px; }
.patient-document-table th:nth-child(2) { width: 105px; }
.patient-document-table th:nth-child(3) { width: 27%; }
.patient-document-table th:nth-child(5) { width: 146px; }
.patient-document-delete-dialog {
    width: min(92vw, 520px);
    padding: 0;
    border: 0;
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(15, 23, 42, .28);
}
.patient-document-delete-dialog::backdrop { background: rgba(15, 23, 42, .55); }
.patient-document-delete-dialog-card { padding: 24px; }
.patient-document-delete-dialog-card h3 { margin: 0 0 10px; color: #0F172A; }
.patient-document-delete-dialog-card p { margin: 0 0 20px; color: #475569; line-height: 1.55; overflow-wrap: break-word; }
.patient-document-delete-dialog-card .form-actions { justify-content: flex-end; }
.patient-document-delete-dialog > #patient-document-delete-form { display: none; }

/* Centro Quirurgico: adjuntos del expediente del paciente seleccionado */
.pm-op-document-subtitle { margin: 0 0 10px; color: #475569; font-size: 12px; }
.pm-op-attachments { margin-top: 18px; padding-top: 16px; border-top: 1px solid #DBEAFE; }
.pm-op-attachments-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.pm-op-attachments-head h5 { margin: 0; color: #0F172A; font-size: 14px; }
.pm-op-attachment-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.pm-op-attachment-card { display: grid; gap: 7px; min-width: 0; padding: 13px; border: 1px solid #D9E7F5; border-radius: 12px; background: #F8FBFF; }
.pm-op-attachment-card strong { color: #0F172A; overflow-wrap: anywhere; }
.pm-op-attachment-card small, .pm-op-attachment-card p { margin: 0; color: #64748B; font-size: 11px; line-height: 1.45; }
.pm-op-attachment-type { width: max-content; padding: 4px 8px; border-radius: 999px; background: #EFF6FF; color: #1D4ED8; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.pm-op-attachment-card .btn { width: max-content; margin-top: 3px; }
.pm-op-attachment-empty { padding: 16px; border: 1px dashed #BFDBFE; border-radius: 12px; background: #F8FBFF; color: #64748B; text-align: center; }

/* Gráficas globales: leyendas, porcentajes y lectura visual */
.chart-card canvas { min-height: 270px; }
.chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 0;
    padding-top: 10px;
    border-top: 1px solid #E2E8F0;
}
.chart-legend:empty { display: none; }
.chart-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 30px;
    padding: 7px 9px;
    border: 1px solid #DCE6F2;
    border-radius: 999px;
    background: #FFFFFF;
    color: #334155;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .035);
}
.chart-legend-item i {
    width: 11px;
    height: 11px;
    border-radius: 999px;
    flex: 0 0 11px;
}
.chart-legend-item strong {
    font-size: 11px;
    font-weight: 900;
    color: #0F172A;
    white-space: nowrap;
}
.chart-legend-item em {
    font-size: 11px;
    font-style: normal;
    font-weight: 800;
    color: #64748B;
    white-space: nowrap;
}
.chart-legend-pie .chart-legend-item,
.chart-legend-scatter .chart-legend-item { border-radius: 12px; }
@media (max-width: 760px) {
    .patient-document-card { grid-template-columns: 1fr; align-items: start; }
    .patient-document-actions { width: 100%; }
    .patient-document-actions .btn { width: 100%; justify-content: center; }
    .pm360-shell-page .patient-document-table-detail .table-wrap > table.patient-document-table {
        width: 680px !important;
        min-width: 680px !important;
        max-width: none !important;
    }
    .chart-legend { display: grid; grid-template-columns: 1fr; }
    .chart-legend-item { justify-content: flex-start; }
}


/* PM360 V4 - favicon, identidad y botones quirúrgicos refinados */
.sidebar-brand .logo-mark {
    background: linear-gradient(135deg, #0EA5E9 0%, #0F62FE 55%, #0B3A8F 100%) !important;
    box-shadow: 0 10px 22px rgba(15, 98, 254, .18);
    letter-spacing: -.04em;
}
.pm-op-dashboard .pm-op-action svg,
.pm-op-dashboard .pm-op-check-icon svg {
    shape-rendering: geometricPrecision;
}


/* PM360 V5 - Overrides profesionales para Bitácora Quirúrgica: iconos vectoriales planos. */
.pm-op-dashboard .pm-op-action::before {
    content: none !important;
    display: none !important;
}
.pm-op-dashboard .pm-op-action svg,
.pm-op-dashboard .pm-op-check-icon svg,
.pm-op-dashboard .pm-op-alert-icon svg {
    fill: none !important;
    stroke: currentColor !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

/* PM360 V6 - identidad PM, alertas legibles y analitica clinica de alto contraste. */
.chart-card {
    border-color: #D9E6F2 !important;
    border-top: 3px solid #66BCEB !important;
    box-shadow: 0 10px 28px rgba(26, 82, 118, .07) !important;
}
.chart-card :is(h2, h3, .chart-card-title-main) { color: #1A5276 !important; }
.chart-card canvas { font-family: "Open Sans", Inter, Arial, sans-serif; }
.chart-legend { gap: 9px; padding-top: 12px; }
.chart-legend-item { min-height: 32px; padding: 7px 11px; border-color: #D7E4EF; }
.chart-legend-item i { width: 10px; height: 10px; flex-basis: 10px; }

.pm-op-inherited-alerts { gap: 12px !important; align-items: stretch; }
.pm-op-inherited-alert {
    flex: 0 1 360px;
    min-width: min(100%, 260px);
    gap: 6px !important;
    padding: 13px 15px !important;
    line-height: 1.45;
}
.pm-op-inherited-alert span { font-size: 12px !important; line-height: 1.5; }
.pm-op-inherited-alert small { font-size: 9.5px !important; line-height: 1.35; }
.patient-crm-card .patient-crm-alert {
    min-width: min(100%, 280px);
    gap: 7px !important;
    padding: 13px 15px !important;
    line-height: 1.45;
}
.patient-crm-card .patient-crm-alert strong { line-height: 1.35; }
.patient-crm-card .patient-crm-alert span { display: block; margin-top: 2px; line-height: 1.5; }
.clinical-alert-list { gap: 10px !important; }
.clinical-alert-list li { gap: 5px !important; min-width: min(100%, 250px); padding: 12px 14px !important; line-height: 1.45; }

.pm-op-dashboard .pm-op-check-icon-preparacion_confirmada {
    color: #0F8F83 !important;
    border-color: #A7E4DC !important;
    background: #ECFBF8 !important;
}
.pm-op-dashboard .pm-op-check-icon-preparacion_confirmada svg { width: 19px !important; height: 19px !important; }

/* PM360 V7 - lienzos sin escalado posterior: texto y trazos nitidos. */
.chart-card canvas {
    display: block !important;
    width: 100% !important;
    max-width: 100%;
    flex: 0 0 auto !important;
    filter: none !important;
    animation: none !important;
    transform: none !important;
}
.chart-card[data-chart-panel="scatter"] canvas { height: 420px !important; min-height: 420px !important; }
.chart-card[data-chart-panel="bar"] canvas,
.chart-card[data-chart-panel="pie"] canvas { height: 245px !important; min-height: 245px !important; }
.chart-card h2,
.chart-card h3 { line-height: 1.3 !important; }
.chart-card .panel-subtitle {
    margin-top: 5px !important;
    color: #5C7698 !important;
    font-size: 11px !important;
    font-weight: 700;
    letter-spacing: .035em;
    text-transform: uppercase;
}
@media (max-width: 760px) {
    .chart-card[data-chart-panel="scatter"] canvas { height: 340px !important; min-height: 340px !important; }
    .chart-card[data-chart-panel="bar"] canvas,
    .chart-card[data-chart-panel="pie"] canvas { height: 280px !important; min-height: 280px !important; }
}

.patient-alert-workspace .clinical-alert-form {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    min-width: 0;
}
.patient-alert-workspace .clinical-alert-form > * { min-width: 0; width: 100%; }


/* PM360 ajuste final: favicon PM, alertas sin etiquetas redundantes, expediente sticky y gráficas alineadas */
.clinical-alert-vector-icon {
    display: inline-grid;
    width: 18px;
    height: 18px;
    place-items: center;
    flex: 0 0 18px;
    color: #2563EB;
    vertical-align: -3px;
}
.clinical-alert-vector-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}
.clinical-alert-title {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
}
.clinical-alert-mini > strong {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}
.clinical-alert-mini .clinical-alert-vector-icon { color: #F97316; }
.clinical-alert-list {
    gap: 12px !important;
}
.clinical-alert-list li {
    gap: 10px !important;
    min-width: min(100%, 300px) !important;
    max-width: min(100%, 640px) !important;
    padding: 13px 16px !important;
    line-height: 1.5 !important;
}
.clinical-alert-list li > span {
    line-height: 1.5 !important;
}
.clinical-alert-list li > strong,
.agenda-alert-popover .clinical-alert-list li > strong,
.pm-op-inherited-alert small {
    display: none !important;
}
.clinical-alert-edit-detail {
    flex: 1 1 100%;
    width: 100%;
    margin-top: 8px;
}
.clinical-alert-edit-detail summary {
    cursor: pointer;
    color: #2563EB;
    font-size: 12px;
    font-weight: 850;
}
.clinical-alert-edit-form {
    display: grid;
    grid-template-columns: 150px minmax(220px, 1fr) auto auto auto;
    gap: 8px;
    align-items: center;
    margin-top: 8px;
}
.clinical-alert-edit-form input,
.clinical-alert-edit-form select {
    min-height: 38px;
    font-size: 13px;
}
.clinical-alert-edit-form label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.clinical-alert-edit-form label input { width: auto; }
.agenda-alert-popover .clinical-alert-list li {
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 14px 16px !important;
    border-radius: 14px !important;
}
.clinical-alert-grouped {
    gap: 8px !important;
    width: 100%;
}
.clinical-alert-grouped .clinical-alert-patient-name,
.clinical-alert-grouped > strong {
    display: inline-flex !important;
    width: max-content;
    max-width: 100%;
    padding: 6px 10px;
    border-radius: 999px;
    background: #FFF1F2;
    color: #7F1D1D !important;
    font-size: 12px !important;
    font-weight: 900 !important;
}
.clinical-alert-grouped small {
    padding-left: 2px;
    color: #8A3412 !important;
    line-height: 1.5 !important;
}
.patient-crm-alert {
    width: fit-content !important;
    max-width: min(100%, 520px) !important;
    padding: 14px 16px !important;
    border-radius: 14px !important;
}
.patient-record-page .patient-side-column {
    position: sticky;
    top: 92px;
    align-self: start;
    max-height: calc(100vh - 112px);
    overflow: auto;
    padding-right: 2px;
}
.patient-document-meta span {
    font-size: 12.5px !important;
    line-height: 1.25 !important;
    padding: 5px 10px !important;
}
.patient-document-body strong {
    font-size: 16px !important;
}
.patient-document-body p {
    font-size: 13.5px !important;
}
.chart-legend {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    align-items: stretch;
    gap: 10px !important;
}
.chart-legend-item {
    display: grid !important;
    grid-template-columns: 12px minmax(0, 1fr) auto;
    align-items: center !important;
    min-height: 38px !important;
    border-radius: 12px !important;
}
.chart-legend-item strong,
.chart-legend-item em {
    line-height: 1.25 !important;
}
.chart-legend-item strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.chart-card canvas {
    image-rendering: auto !important;
    -webkit-font-smoothing: antialiased;
}
@media (max-width: 1180px) {
    .patient-record-page .patient-side-column {
        position: static;
        max-height: none;
        overflow: visible;
    }
}
@media (max-width: 760px) {
    .clinical-alert-edit-form {
        grid-template-columns: 1fr;
    }
    .chart-legend { grid-template-columns: 1fr !important; }
}


/* PM360 V8 - refinamiento de alertas, agenda y analítica visual */
.patient-alert-workspace .clinical-alert-list li {
    position: relative;
    align-items: flex-start !important;
    padding: 16px 18px 16px 18px !important;
}
.patient-alert-workspace .clinical-alert-list li > span {
    display: block;
    max-width: calc(100% - 92px);
    font-size: 13.5px;
    line-height: 1.58 !important;
}
.patient-alert-workspace .clinical-alert-edit-detail {
    position: absolute;
    top: 12px;
    right: 16px;
    margin-top: 0;
    width: auto;
    flex: 0 0 auto;
}
.patient-alert-workspace .clinical-alert-edit-detail summary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: #2563EB;
    font-weight: 600;
}
.patient-alert-workspace .clinical-alert-edit-detail[open] {
    position: static;
    margin-top: 14px;
    width: 100%;
}
.patient-alert-workspace .clinical-alert-edit-form {
    grid-template-columns: 140px minmax(320px,1fr) auto auto auto;
    gap: 10px;
}
.patient-alert-workspace .clinical-alert-edit-form input,
.patient-alert-workspace .clinical-alert-edit-form select {
    min-height: 42px;
}

.agenda-alert-popover .clinical-alert-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    gap: 12px !important;
}
.agenda-alert-popover .clinical-alert-list li {
    max-width: none !important;
    min-height: 100%;
}
.agenda-alert-carousel {
    display: grid;
    gap: 12px;
}
.agenda-alert-carousel-controls {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}
.agenda-alert-carousel-status {
    color: #64748B;
    font-size: 12px;
    font-weight: 600;
}

.chart-legend-item strong,
.chart-legend-item em {
    font-weight: 600 !important;
}
.chart-legend-item em {
    color: #5C6B7C !important;
}
.pm-op-alert-editor .pm-op-alert-icon svg {
    width: 19px;
    height: 19px;
}
@media (max-width: 980px) {
    .agenda-alert-popover .clinical-alert-list {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 760px) {
    .patient-alert-workspace .clinical-alert-list li > span {
        max-width: 100%;
        padding-top: 30px;
    }
    .patient-alert-workspace .clinical-alert-edit-detail {
        top: 10px;
        right: 12px;
    }
    .patient-alert-workspace .clinical-alert-edit-form {
        grid-template-columns: 1fr;
    }
    .agenda-alert-carousel-controls {
        justify-content: space-between;
    }
}


/* PM360 V9 FIX - solo alertas: no toca gráficas ni iconografía global */
.patient-alert-workspace .patient-alert-criteria {
    display: none !important;
}
.patient-alert-workspace .clinical-alert-form {
    display: block !important;
    width: 100%;
}
.patient-alert-workspace .patient-alert-additional {
    display: grid !important;
    grid-template-columns: 160px minmax(360px, 1fr) auto auto;
    gap: 10px;
    align-items: center;
    width: 100%;
}
.patient-alert-workspace .patient-alert-additional select,
.patient-alert-workspace .patient-alert-additional input {
    min-height: 42px;
}
.patient-alert-workspace .patient-alert-additional input[name="texto"] {
    width: 100%;
}
.patient-alert-workspace .clinical-alert-list li {
    min-width: min(100%, 380px) !important;
    max-width: min(100%, 620px) !important;
    padding: 16px 18px !important;
}
.patient-alert-workspace .clinical-alert-list li > span {
    max-width: calc(100% - 94px) !important;
}

/* Agenda: coloca los botones de página junto a las alertas para no desperdiciar espacio vertical */
.agenda-alert-popover .agenda-alert-carousel {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
}
.agenda-alert-popover .agenda-alert-carousel-viewport {
    min-width: 0;
}
.agenda-alert-popover .agenda-alert-carousel-controls {
    grid-column: 2;
    grid-row: 1;
    align-self: center;
    justify-self: end;
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.agenda-alert-popover .clinical-alert-list {
    margin-top: 8px !important;
}
@media (max-width: 980px) {
    .agenda-alert-popover .agenda-alert-carousel {
        grid-template-columns: 1fr !important;
    }
    .agenda-alert-popover .agenda-alert-carousel-controls {
        grid-column: 1;
        grid-row: auto;
        justify-self: stretch;
        justify-content: space-between;
    }
    .patient-alert-workspace .patient-alert-additional {
        grid-template-columns: 1fr !important;
    }
    .patient-alert-workspace .clinical-alert-list li > span {
        max-width: 100% !important;
    }
}

/* Regla final global para todos los dashboards de tres graficas. */
.chart-grid:has(> .chart-card[data-chart-panel]) {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-rows: auto auto !important;
    gap: 16px !important;
    align-items: stretch !important;
}
.chart-grid > .chart-card[data-chart-panel] {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
}
.chart-grid > .chart-card[data-chart-panel="scatter"] { grid-column: 1 !important; grid-row: 1 !important; }
.chart-grid > .chart-card[data-chart-panel="bar"] { grid-column: 2 !important; grid-row: 1 !important; }
.chart-grid > .chart-card[data-chart-panel="pie"] { grid-column: 1 / -1 !important; grid-row: 2 !important; }
.chart-grid > .chart-card[data-chart-panel="scatter"] canvas,
.chart-grid > .chart-card[data-chart-panel="bar"] canvas {
    height: 390px !important;
    min-height: 390px !important;
    flex: 0 0 auto !important;
}
.chart-grid > .chart-card[data-chart-panel="pie"] canvas {
    height: 420px !important;
    min-height: 420px !important;
    flex: 0 0 auto !important;
}
.chart-grid .chart-legend { gap: 8px !important; margin-top: 6px !important; padding-top: 8px !important; }
.chart-grid .chart-legend-item { min-height: 34px !important; padding: 6px 9px !important; }
.chart-grid .chart-legend-item strong,
.chart-grid .chart-legend-item em { font-size: 12px !important; }
@media (max-width: 760px) {
    .chart-grid:has(> .chart-card[data-chart-panel]) { grid-template-columns: 1fr !important; }
    .chart-grid > .chart-card[data-chart-panel] { grid-column: 1 !important; grid-row: auto !important; }
}
.clinical-config-tabs{display:flex;gap:8px;overflow-x:auto;margin:0 0 16px;padding:4px 1px}.clinical-config-tab{border:1px solid #cbdcf2;background:#fff;color:#35516f;border-radius:9px;padding:9px 13px;font:inherit;font-weight:700;white-space:nowrap;cursor:pointer}.clinical-config-tab.is-active{background:#eaf4ff;border-color:#2684ed;color:#075db8}.clinical-config-card[hidden]{display:none!important}
.cash-fiscal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:16px}.cash-fiscal-summary>div{display:flex;flex-direction:column;gap:5px;padding:12px;border:1px solid #d7e5f4;border-radius:10px;background:#f8fbff}.cash-fiscal-summary span{font-size:12px;color:#60748c}.cash-fiscal-summary strong{font-size:16px;color:#123354}.fiscal-disclaimer{margin:10px 0 0;color:#687b91;font-size:12px;line-height:1.45}
@media(max-width:720px){.cash-fiscal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
.history-pagination{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:12px;color:#60748c;font-size:12px}.history-pagination .is-disabled{opacity:.45;pointer-events:none}
.patient-fiscal-heading{display:flex;flex-direction:column;gap:3px;margin-top:6px;padding:10px 12px;border-left:3px solid #2684ed;background:#f5f9ff;color:#17395d}.patient-fiscal-heading span{font-size:11px;color:#64748b;font-weight:500}
.cash-tax-toggle{display:grid!important;grid-template-columns:auto 1fr 92px;gap:8px;align-items:center;padding:9px 10px;border:1px solid #d7e5f4;border-radius:9px;background:#f8fbff}.cash-tax-toggle input[type="checkbox"]{width:16px;height:16px;margin:0}.cash-tax-toggle input[type="number"]{margin:0}.cash-tax-toggle span{font-size:12px;color:#334e68}
.cash-sat-summary{display:flex;min-width:0;width:100%;box-sizing:border-box;flex-direction:column;gap:5px;padding:12px 14px;border:1px solid #b9d8fa;border-radius:10px;background:#f4f9ff;color:#17395d;overflow-wrap:anywhere}.cash-sat-summary span,.cash-sat-summary small{font-size:11px;color:#5f7389;white-space:normal}.cash-sat-summary strong{font-size:13px}
#formulario-caja,#movimientos-caja,#cobranza-seguimiento,#historial-fiscal,#timeline-fiscal,#solicitudes-facturacion,#historial-paciente,#historial-reportes,#historial-importaciones,#aseguradoras-cirugia{scroll-margin-top:18px}
.fiscal-config-form{display:grid;gap:18px}.fiscal-config-form fieldset{margin:0;padding:16px;border:1px solid #d7e5f4;border-radius:12px}.fiscal-advanced-config{border:1px solid #d7e5f4;border-radius:12px;background:#f8fbff;padding:12px}.fiscal-advanced-config>summary{cursor:pointer;color:#17395d;font-weight:800}.fiscal-advanced-config>p{margin:7px 0 12px;color:#64748b;font-size:12px}.fiscal-advanced-config fieldset{background:#fff}.fiscal-config-form input[type="checkbox"]{width:16px;height:16px;margin-right:6px;vertical-align:middle}
@media(max-width:720px){#formulario-caja .form-grid{grid-template-columns:minmax(0,1fr)!important}#formulario-caja .form-grid>.span-2{grid-column:1!important;min-width:0;width:auto}#formulario-caja textarea{max-width:100%;box-sizing:border-box}}
.history-period-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}.history-period-toolbar label{display:flex;align-items:center;gap:8px;color:#526b84;font-size:12px}.history-period-toolbar select{min-width:120px;margin:0}.history-period-toolbar .history-pagination{margin:0}
/* =========================================================
   Ajuste visual final - Configuración fiscal médico
   Corrige checkbox grandes generados por input width:100%
   ========================================================= */

input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  padding: 0 !important;
  margin: 0 8px 0 0 !important;
  accent-color: #0f62fe;
  cursor: pointer;
  vertical-align: middle;
  display: inline-block;
  flex: 0 0 16px;
}

input[type="checkbox"]:focus {
  box-shadow: 0 0 0 3px rgba(15, 98, 254, 0.12);
}

.form-check,
.checkbox-row,
.tax-check-row,
.fiscal-check-row,
.config-check-row {
  display: flex !important;
  align-items: center !important;
  gap: 8px;
  min-height: 28px;
}

.form-check label,
.checkbox-row label,
.tax-check-row label,
.fiscal-check-row label,
.config-check-row label {
  margin: 0 !important;
  line-height: 1.3;
  font-size: 12px;
  color: #334155;
}

fieldset input[type="checkbox"],
.panel input[type="checkbox"],
.card input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  max-width: 16px !important;
  min-height: 16px !important;
  max-height: 16px !important;
  transform: none !important;
}

@media (max-width: 768px) {
  input[type="checkbox"] {
    margin-top: 2px !important;
  }

  .form-check,
  .checkbox-row,
  .tax-check-row,
  .fiscal-check-row,
  .config-check-row {
    align-items: flex-start !important;
  }
}
.csd-config-panel small{display:block;margin-top:6px;color:#64748b}.csd-config-form input[type=file]{padding:10px;background:#f8fafc}.csd-validation-check{display:flex;align-items:center;gap:8px;margin-top:14px}.csd-validation-check input{width:auto}@media(max-width:520px){.csd-config-form .form-grid{grid-template-columns:1fr}.csd-config-form .span-2{grid-column:auto}}
.cash-day-navigation{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.cash-day-navigation strong{min-width:100px;text-align:center}.history-period-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:0 0 14px;flex-wrap:wrap}.history-period-toolbar label{max-width:220px}@media(max-width:520px){.cash-day-navigation .btn{flex:1 1 42%;text-align:center}.history-period-toolbar{align-items:stretch}.history-period-toolbar label{max-width:none}.history-period-toolbar .history-pagination{width:100%}}
.csd-password-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.csd-password-row .btn{white-space:nowrap}@media(max-width:520px){.csd-password-row{grid-template-columns:1fr}}
.fiscal-cfdi-kpis{grid-template-columns:repeat(4,minmax(0,1fr))!important}.fiscal-portal-body{min-height:100vh;margin:0;background:#eef5fb}.fiscal-portal-shell{width:min(980px,calc(100% - 32px));margin:28px auto}.fiscal-portal-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 16px;border:1px solid #d7e4f2;border-radius:16px;background:#fff}.fiscal-portal-header>div:nth-child(2){display:grid}.fiscal-portal-header span{color:#64748b;font-size:12px}.fiscal-portal-header .btn{margin-left:auto}.fiscal-limited-notice{display:grid;gap:5px;margin-bottom:16px;padding:13px 15px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff;color:#1e3a5f}.fiscal-limited-notice span{font-size:12px;color:#526b87}@media(max-width:760px){.fiscal-cfdi-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}}@media(max-width:430px){.fiscal-portal-shell{width:min(100% - 18px,980px);margin:9px auto}.fiscal-portal-header{align-items:flex-start;flex-wrap:wrap}.fiscal-portal-header .btn{margin-left:0}.fiscal-cfdi-kpis{grid-template-columns:1fr!important}}
.agenda-events-pagination{display:grid!important;grid-template-columns:auto minmax(120px,auto) auto;align-items:center;justify-content:end;gap:10px}.agenda-events-pagination span{display:flex;align-items:center;justify-content:center;min-height:40px;white-space:nowrap}.agenda-events-period .chart-toggle{display:inline-flex;text-decoration:none}@media(max-width:520px){.agenda-events-pagination{grid-template-columns:1fr auto 1fr;justify-content:stretch}.agenda-events-pagination .btn{text-align:center}}
.history-period-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.history-period-links .chart-toggle{display:inline-flex;text-decoration:none}.agenda-events-pagination{display:grid!important;grid-template-columns:auto minmax(120px,auto) auto;align-items:center;justify-content:end;gap:10px}.agenda-events-pagination span{display:flex;align-items:center;justify-content:center;min-height:40px;white-space:nowrap}.agenda-events-period .chart-toggle{display:inline-flex;text-decoration:none}@media(max-width:520px){.agenda-events-pagination{grid-template-columns:1fr auto 1fr;justify-content:stretch}.agenda-events-pagination .btn{text-align:center}}
.config-section-tabs{position:static;z-index:5;display:flex;flex-wrap:wrap;gap:8px;overflow:visible;margin:0 0 16px;padding:10px;border:1px solid #dbe4ef;border-radius:14px;background:rgba(255,255,255,.96)}.config-section-tabs a{flex:1 1 150px;min-width:0;padding:8px 11px;border-radius:9px;color:#334155;font-size:12px;font-weight:800;text-decoration:none}.config-section-tabs a:hover,.config-section-tabs a:focus{background:#eff6ff;color:#1d4ed8}.config-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.config-status-grid .card{display:grid;gap:5px;min-height:72px}.config-status-grid small{color:#64748b}.config-institutional-copy{margin:14px 0 0;color:#475569;line-height:1.6}section[id],article[id]{scroll-margin-top:96px}.pm-scroll-stable{scroll-behavior:auto!important}@media(max-width:760px){.config-status-grid{grid-template-columns:1fr}.config-section-tabs{flex-wrap:wrap;overflow:visible}}
.page-caja #formulario-caja .form-grid>div:has([data-fiscal-iva-type]),.page-caja #formulario-caja .form-grid>div:has([data-fiscal-iva-rate]),.page-caja #formulario-caja .form-grid>div:has([data-fiscal-isr-type]),.page-caja #formulario-caja .form-grid>div:has([data-fiscal-isr-rate]),.page-caja #formulario-caja .cash-tax-toggle{display:none!important}
.ui-panel-leaving{opacity:.35;transition:opacity 150ms ease-out}.ui-panel-entering{opacity:0}.ui-panel-entering:not(.ui-panel-leaving){animation:pm360-panel-in 150ms ease-out forwards}.ui-panel-loading{position:relative;pointer-events:none}.ui-panel-loading::after{position:absolute;top:14px;right:14px;width:18px;height:18px;border:2px solid #bfdbfe;border-top-color:#2563eb;border-radius:50%;content:"";animation:pm360-spin .7s linear infinite}.btn:active,.chart-toggle:active{transform:translateY(1px)}@keyframes pm360-panel-in{to{opacity:1}}@keyframes pm360-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ui-panel-leaving,.ui-panel-entering{opacity:1;transition:none;animation:none}.ui-panel-loading::after{animation-duration:1.4s}}
.page-configuracion #seguridad,.page-configuracion #respaldos,.page-configuracion #almacenamiento-recuperacion,.page-configuracion #confirmaciones,.page-configuracion #preferencias{display:none}.page-configuracion:not(.config-preferences-active) #preferencias~section{display:none!important}.config-section-tabs a.is-active{background:#eff6ff;color:#1d4ed8}.config-friendly-activity{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}[data-config-pane]:focus{outline:none}
.page-configuracion #seguridad.is-active,.page-configuracion #respaldos.is-active,.page-configuracion #almacenamiento-recuperacion.is-active,.page-configuracion #confirmaciones.is-active,.page-configuracion #preferencias.is-active{display:block}
.page-configuracion .config-legacy-launcher{display:none}
.chart-toggle,.history-period-links a,.chart-toggle-group a{text-decoration:none!important}.agenda-alert-popover{border:1px solid #fed7aa!important;border-radius:18px!important;background:linear-gradient(145deg,#fffaf4,#fff7ed)!important;box-shadow:0 14px 34px rgba(154,52,18,.08)!important}.agenda-alert-popover .clinical-alert-list li{border:1px solid #ffedd5!important;border-radius:14px!important;background:rgba(255,255,255,.9)!important;box-shadow:0 5px 16px rgba(124,45,18,.05)!important}.agenda-alert-popover .clinical-alert-patient-name{color:#9a3412!important}.agenda-alert-popover .clinical-alert-grouped small{color:#475569!important;line-height:1.5!important}
.conversation-period-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:12px 0}.conversation-period-filter .history-period-links{margin:0}.conversation-period-filter label{display:grid;gap:5px;min-width:170px}@media(max-width:520px){.conversation-period-filter>*{width:100%}.conversation-period-filter .history-period-links{display:grid;grid-template-columns:repeat(3,1fr)}.conversation-period-filter .chart-toggle{text-align:center;justify-content:center}}
.page-configuracion .config-section-tabs{gap:10px;padding:12px;box-shadow:0 10px 28px rgba(15,23,42,.08)}.page-configuracion .config-section-tabs a{display:flex;align-items:center;min-height:44px;padding:10px 15px;border:1px solid transparent;font-size:14px;letter-spacing:.01em}.page-configuracion .config-section-tabs a::before{width:7px;height:7px;margin-right:8px;border-radius:50%;background:#94a3b8;content:""}.page-configuracion .config-section-tabs a.is-active{border-color:#bfdbfe;background:linear-gradient(145deg,#eff6ff,#fff);box-shadow:0 5px 14px rgba(37,99,235,.1)}.page-configuracion .config-section-tabs a.is-active::before{background:#2563eb;box-shadow:0 0 0 4px #dbeafe}.page-configuracion .config-summary-pane{border-color:#dbeafe;background:linear-gradient(145deg,#fff,#f8fbff)}@media(max-width:760px){.page-configuracion .config-section-tabs a{font-size:13px;padding:9px 12px}}
.page-configuracion .config-section-tabs a::before{display:none}.page-configuracion .config-section-tabs svg{width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:#64748b}.page-configuracion .config-section-tabs a.is-active svg{color:#2563eb}.page-configuracion .config-section-tabs a span{white-space:nowrap}.page-configuracion .config-status-grid .card{position:relative;overflow:hidden;padding:17px 18px;border-color:#dbeafe;background:linear-gradient(150deg,#fff,#f8fbff);box-shadow:0 8px 22px rgba(15,23,42,.055)}.page-configuracion .config-status-grid .card::before{position:absolute;top:0;right:0;width:54px;height:54px;border-radius:0 0 0 54px;background:rgba(37,99,235,.055);content:""}.page-configuracion .config-status-grid strong{color:#0f2748;font-size:15px}.page-configuracion .config-institutional-copy{padding:16px 18px;border:1px solid #bfdbfe;border-radius:14px;background:linear-gradient(135deg,#eff6ff,#f8fbff);color:#294767}.page-configuracion #almacenamiento-recuperacion .config-status-grid .card::after{display:block;width:100%;height:6px;margin-top:13px;border-radius:999px;background:linear-gradient(90deg,#3b82f6 38%,#dbeafe 38%);content:""}.page-configuracion #confirmaciones .config-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-configuracion #confirmaciones .card{min-height:112px;padding-left:48px}.page-configuracion #confirmaciones .card::before{position:absolute;top:17px;left:17px;display:grid;width:22px;height:22px;place-items:center;border-radius:7px;background:#dcfce7;color:#15803d;content:"✓"}.config-eyebrow{display:block;margin-bottom:5px;color:#2563eb;font-size:11px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.config-preferences-intro{border-color:#dbeafe;background:linear-gradient(135deg,#f8fbff,#fff);box-shadow:0 12px 30px rgba(15,23,42,.06)}

/* v17 - responsive quirurgico de Reportes y Configuracion */
.page-reportes .report-preview-grid {
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
    gap: clamp(14px, 1.4vw, 20px);
}
.page-reportes .report-preview-card,
.page-reportes .report-preview-head > div,
.page-reportes .chart-card,
.page-reportes .filter-field { min-width: 0; }
.page-reportes .report-preview-card { padding: clamp(16px, 1.6vw, 22px); }
.page-reportes .report-preview-icon { flex: 0 0 52px; width: 52px; height: 52px; aspect-ratio: 1; }
.page-reportes .report-preview-card .actions-inline { flex-wrap: wrap; gap: 8px; }
.page-reportes .report-preview-card .btn { flex: 1 1 88px; min-width: 0; padding-inline: 10px; font-size: clamp(12px, .9vw, 14px); white-space: normal; }
.page-reportes .report-check-label { min-width: 0; overflow-wrap: anywhere; }
.page-reportes .chart-grid:has(> .chart-card[data-chart-panel]) { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .85fr); }
.page-reportes .chart-card { overflow: hidden; padding: clamp(14px, 1.5vw, 20px); }
.page-reportes .chart-card canvas { width: 100%; min-width: 0; }
.page-reportes #reportes-programados .filter-grid { grid-template-columns: repeat(4, minmax(145px, 1fr)) minmax(190px, auto); }
.page-reportes #reportes-programados .filter-actions .btn { width: 100%; white-space: normal; }
.page-reportes .table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.page-reportes .report-top-grid { grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr); }
.page-reportes .report-top-procedures { min-width: 0; }
.report-top-pagination { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.report-top-pagination span { color: #64748b; font-size: 12px; font-weight: 750; }
.report-top-pagination .btn:disabled { cursor: not-allowed; opacity: .45; }

.page-configuracion .config-section-tabs {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
    max-width: 100%;
    overflow: visible;
    padding: 8px;
    background: rgba(255,255,255,.98);
}
.page-configuracion .config-section-tabs a { min-width: 0; min-height: 42px; justify-content: center; gap: 7px; padding: 8px 9px; font-size: clamp(11px, .85vw, 13px); line-height: 1.2; text-align: center; }
.page-configuracion .config-section-tabs a span { min-width: 0; white-space: normal; }
.page-configuracion .config-section-tabs svg { width: 18px; height: 18px; }
.page-configuracion .panel,
.page-configuracion .config-data-card,
.page-configuracion .import-export-card { min-width: 0; }
.page-configuracion .config-example-table-wrap { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.page-configuracion .config-data-card input,
.page-configuracion .config-data-card select,
.page-configuracion .config-data-card textarea { max-width: 100%; }

@media (max-width: 1180px) {
    .page-reportes .chart-grid:has(> .chart-card[data-chart-panel]) { grid-template-columns: 1fr; }
    .page-reportes #reportes-programados .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .page-reportes #reportes-programados .filter-actions { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
    .page-reportes .report-top-grid { grid-template-columns: 1fr; }
    .page-configuracion .config-section-tabs { display: flex; flex-wrap: wrap; overflow: visible; scrollbar-width: auto; }
    .page-configuracion .config-section-tabs a { flex: 1 1 150px; max-width: 100%; scroll-snap-align: none; }
}
@media (max-width: 620px) {
    .page-reportes #reportes-programados .filter-grid { grid-template-columns: 1fr; }
    .page-reportes .report-preview-head { align-items: flex-start !important; }
    .page-reportes .report-preview-icon { flex-basis: 46px; width: 46px; height: 46px; }
    .page-reportes .report-section-grid { grid-template-columns: 1fr !important; }
    .page-configuracion .config-status-grid,
    .page-configuracion #confirmaciones .config-status-grid { grid-template-columns: 1fr; }
}

/* v21 - Reportes ejecutivos compactos y tipografia refinada en Configuracion. */
.page-reportes .report-preview-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 20px;
}
.page-reportes .report-preview-card > .panel-subtitle { margin: -4px 0 0; font-size: 15px; line-height: 1.5; }
.page-reportes .report-preview-card .report-checklist {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    margin: 0;
    padding: 0;
}
.page-reportes .report-preview-card .report-check-item,
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    min-height: 42px;
    padding: 8px 11px 8px 38px !important;
    border: 1px solid #dbe7f4;
    border-radius: 11px;
    background: #f8fbff;
    box-shadow: none;
}
.page-reportes .report-preview-card .report-check-item::before,
.page-reportes #vista-previa-fiscal .report-check-item:last-child::before {
    position: absolute !important;
    top: 50% !important;
    left: 12px !important;
    width: 17px !important;
    height: 17px !important;
    margin: 0 !important;
    transform: translateY(-50%);
    -webkit-mask-size: 16px 16px !important;
    mask-size: 16px 16px !important;
}
.page-reportes .report-preview-card .report-check-label,
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    position: static !important;
    left: auto !important;
    margin: 0 !important;
    color: #294767;
    font-size: 16px !important;
    font-weight: 650;
    line-height: 1.3 !important;
    text-align: left !important;
}
.page-reportes .report-preview-card .actions-inline {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: auto;
    padding-top: 4px;
}
.page-reportes .report-preview-card .actions-inline .btn,
.page-reportes .report-preview-card .actions-inline .report-preview-modal-trigger {
    grid-column: auto;
    min-width: 0;
    min-height: 42px;
    padding: 9px 12px;
    font-size: 16px !important;
    white-space: nowrap;
}

.page-configuracion .config-section-tabs a,
.page-configuracion .clinical-config-tab { font-size: 15px !important; font-weight: 650; line-height: 1.35 !important; }
.page-configuracion :is(.panel-subtitle,.config-institutional-copy,.config-data-card p,.export-card p) {
    font-size: 15px;
    line-height: 1.6;
}
.page-configuracion :is(.config-status-grid .card,.config-data-card,.export-card) { font-size: 15px; line-height: 1.5; }
.page-configuracion .config-status-grid strong { font-size: 16px; font-weight: 650; line-height: 1.4; }
.page-configuracion .config-import-title { font-size: clamp(21px, 2vw, 25px); font-weight: 650; letter-spacing: -.015em; }
.page-configuracion .clinical-config-heading p,
.page-configuracion .clinical-config-fields label,
.page-configuracion .clinical-config-group legend { font-size: 15px; line-height: 1.45; }
.page-configuracion .clinical-config-group legend { font-weight: 650; letter-spacing: .035em; }
.page-configuracion .config-section-tabs { gap: 8px; }
.page-configuracion .config-section-tabs a { min-height: 44px; padding: 9px 13px; }

@media (max-width: 1080px) {
    .page-reportes .report-preview-card .report-checklist { grid-template-columns: 1fr !important; }
}
@media (max-width: 900px) {
    .page-reportes .report-preview-card .report-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 620px) {
    .page-reportes .report-preview-card { padding: 16px; }
    .page-reportes .report-preview-card .report-checklist,
    .page-reportes .report-preview-card .actions-inline { grid-template-columns: 1fr !important; }
}

/* v18 - auditoria responsive transversal 80%-110% */
.pm360-shell-page,
.pm360-shell-page * { box-sizing: border-box; }
.pm360-shell-page .main-area,
.pm360-shell-page .content,
.pm360-shell-page .panel,
.pm360-shell-page .card,
.pm360-shell-page form,
.pm360-shell-page fieldset { min-width: 0; }
.pm360-shell-page :is(h1,h2,h3,h4,p,strong,small,span,label,td,th) { overflow-wrap: anywhere; }
.pm360-shell-page .actions-inline,
.pm360-shell-page .chart-toggle-group,
.pm360-shell-page .history-period-links,
.pm360-shell-page .form-actions { flex-wrap: wrap; }
.pm360-shell-page .btn { max-width: 100%; white-space: normal; text-align: center; }
.pm360-shell-page .table-wrap { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.pm360-shell-page .table-wrap table { width: 100%; }

/* Expediente y alerta clinica */
.page-pacientes .patient-record-page { grid-template-columns: minmax(250px, 310px) minmax(0, 1fr); }
.page-pacientes .patient-side-column { display: grid; gap: 16px; width: 100%; overflow-x: hidden; }
.page-pacientes .patient-profile-card,
.page-pacientes .patient-executive-card { width: 100%; min-width: 0; margin: 0; }
.page-pacientes .profile-list p { display: grid; grid-template-columns: minmax(80px, .8fr) minmax(0, 1.2fr); gap: 10px; }
.page-pacientes .profile-list strong { min-width: 0; text-align: right; overflow-wrap: anywhere; }
.page-pacientes .patient-executive-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.page-pacientes .patient-mini-kpi { min-width: 0; padding: 12px; }
.page-pacientes .patient-mini-kpi strong { font-size: clamp(16px, 1.35vw, 22px); overflow-wrap: anywhere; }
.page-pacientes .patient-alert-workspace { min-width: 0; overflow: hidden; }
.page-pacientes .patient-alert-workspace .patient-alert-additional { grid-template-columns: minmax(130px, 160px) minmax(220px, 1fr) minmax(120px, auto) minmax(130px, auto); }
.page-pacientes .patient-alert-workspace .patient-alert-additional label { display: flex; align-items: center; gap: 7px; min-width: 0; white-space: normal; }
.page-pacientes .patient-alert-workspace :is(input,select) { min-width: 0; max-width: 100%; }
.page-pacientes .clinical-alert-edit-form { grid-template-columns: minmax(120px, 150px) minmax(190px, 1fr) minmax(110px, auto) auto auto; }
.page-pacientes .clinical-alert-list li { width: 100%; max-width: 100% !important; }
.page-pacientes .clinical-document-type-grid,
.page-pacientes .patient-document-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }

/* Conectividad Paciente */
.communication-page .communication-center,
.communication-page .communication-grid,
.communication-page .communication-card { min-width: 0; }
.communication-page .communication-kpis { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.communication-page .communication-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.communication-page .communication-table { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.communication-page .communication-table table { min-width: 720px; }
.communication-page :is(.followup-list div,.metric-list p,.communication-mini-list p) { align-items: flex-start; flex-wrap: wrap; }
.communication-page :is(.badge,.status-pill) { max-width: 100%; white-space: normal; }
.communication-page .section-title-row { align-items: flex-start; flex-wrap: wrap; }

/* Bitacora Quirurgica */
.surgeries-page .surgery-agenda-selector,
.surgeries-page .surgery-agenda-selector-controls,
.surgeries-page .procedure-patient-context,
.surgeries-page .procedure-stage-panel,
.surgeries-page .procedure-card { min-width: 0; }
.surgeries-page .surgery-agenda-actions { align-items: stretch; }
.surgeries-page .surgery-agenda-actions .btn { flex: 1 1 170px; min-width: 0; }
.surgeries-page .procedure-executive-meta { grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); }
.surgeries-page .procedure-patient-context-grid { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.surgeries-page .procedure-card :is(.actions-inline,.form-actions) { flex-wrap: wrap; }

/* Caja Central */
.page-caja .chart-toggle-group,
.cash-page .chart-toggle-group,
.caja-operativa-page .chart-toggle-group { justify-content: flex-start; }
.page-caja :is(.chart-toggle,.history-period-links a),
.cash-page :is(.chart-toggle,.history-period-links a),
.caja-operativa-page :is(.chart-toggle,.history-period-links a) { flex: 0 1 auto; padding-inline: 11px; white-space: normal; }
.page-caja .cash-operations-heading .panel-head,
.cash-page .cash-operations-heading .panel-head,
.caja-operativa-page .cash-operations-heading .panel-head { align-items: flex-start; flex-wrap: wrap; }
.page-caja :is(.cash-movements-section,#cobranza-seguimiento) .table-wrap,
.cash-page :is(.cash-movements-section,#cobranza-seguimiento) .table-wrap,
.caja-operativa-page :is(.cash-movements-section,#cobranza-seguimiento) .table-wrap { overflow-x: auto; }
.page-caja :is(.cash-movements-section,#cobranza-seguimiento) table,
.cash-page :is(.cash-movements-section,#cobranza-seguimiento) table,
.caja-operativa-page :is(.cash-movements-section,#cobranza-seguimiento) table { min-width: 860px; }
.page-caja td:last-child .btn,
.cash-page td:last-child .btn,
.caja-operativa-page td:last-child .btn { min-width: max-content; }

/* Centro Fiscal */
.page-fiscal .filter-grid { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.page-fiscal .kpi-grid { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.page-fiscal .fiscal-recommendations-row { grid-template-columns: minmax(0, 1.35fr) minmax(260px, .65fr); }
.page-fiscal .fiscal-sim-grid { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.page-fiscal :is(.fiscal-alert-pill,.recommendation-card,.fiscal-timeline-item) { min-width: 0; }
.page-fiscal .table-wrap table { min-width: max-content; }
.page-fiscal .chart-toggle-group { justify-content: flex-start; }

/* Iconos de los dos reportes nuevos */
.page-reportes .report-preview-icon-operativo_financiero { background: #E8F1FF !important; --report-preview-mask: var(--icon-finance-growth); }
.page-reportes .report-preview-icon-quirurgico { background: #ECFDF3 !important; --report-preview-mask: var(--icon-activity); }
.page-reportes .report-preview-icon-operativo_financiero::before { background: #1E40AF !important; }
.page-reportes .report-preview-icon-quirurgico::before { background: #0F9F6E !important; }

@media (max-width: 1180px) {
    .page-pacientes .patient-record-page { grid-template-columns: minmax(230px, 280px) minmax(0, 1fr); }
    .page-pacientes .clinical-alert-edit-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .communication-page .communication-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .communication-page .communication-card.span-2 { grid-column: span 2; }
    .page-fiscal .fiscal-recommendations-row { grid-template-columns: 1fr; }
}
@media (min-width: 768px) and (max-width: 1024px) {
    .page-pacientes .patient-alert-workspace .patient-alert-additional {
        grid-template-columns: minmax(145px, auto) minmax(0, 1fr) !important;
        column-gap: 12px !important;
        row-gap: 10px !important;
        align-items: center !important;
    }
    .page-pacientes .patient-alert-workspace .patient-alert-additional > select,
    .page-pacientes .patient-alert-workspace .patient-alert-additional > input[type="text"],
    .page-pacientes .patient-alert-workspace .patient-alert-additional > input:not([type]) {
        min-width: 0 !important;
        width: 100% !important;
    }
    .page-pacientes .patient-alert-workspace .patient-alert-additional > label {
        grid-column: 1 !important;
        grid-row: 2 !important;
        justify-self: start !important;
        white-space: nowrap !important;
    }
    .page-pacientes .patient-alert-workspace .patient-alert-additional > .btn {
        grid-column: 2 !important;
        grid-row: 2 !important;
        justify-self: start !important;
        width: auto !important;
        min-width: max-content !important;
    }
}
@media (max-width: 900px) {
    .page-pacientes .patient-record-page { grid-template-columns: 1fr; }
    .page-pacientes .patient-side-column { position: static; max-height: none; overflow: visible; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .communication-page .communication-grid { grid-template-columns: 1fr; }
    .communication-page .communication-card.span-2 { grid-column: span 1; }
    .surgeries-page .surgical-chart-panel .chart-card { height: auto !important; min-height: 340px !important; }
}
@media (max-width: 620px) {
    .pm360-shell-page .topbar { align-items: flex-start; height: auto; min-height: 72px; gap: 12px; flex-wrap: wrap; padding: 14px 18px; }
    .pm360-shell-page .topbar > div { min-width: 0; }
    .page-pacientes .patient-side-column { grid-template-columns: 1fr; }
    .page-pacientes .patient-alert-workspace .patient-alert-additional,
    .page-pacientes .clinical-alert-edit-form { grid-template-columns: 1fr; }
    .page-pacientes .clinical-alert-edit-form .btn,
    .page-pacientes .patient-alert-additional .btn { width: 100%; }
    .communication-page .communication-kpis { grid-template-columns: 1fr; }
    .surgeries-page .surgery-agenda-actions { flex-direction: column; }
    .surgeries-page .surgery-agenda-actions .btn { width: 100%; }
    .page-fiscal .kpi-grid,
    .page-fiscal .fiscal-sim-grid { grid-template-columns: 1fr; }
}
.agenda-alert-popover{position:relative;overflow:hidden;padding:18px 20px!important}.agenda-alert-popover::before{position:absolute;inset:0 auto 0 0;width:4px;background:linear-gradient(#fb923c,#f59e0b);content:""}.agenda-alert-popover .clinical-alert-title{display:flex;align-items:center;gap:10px;color:#7c2d12!important;font-size:16px!important;letter-spacing:-.01em}.agenda-alert-popover .clinical-alert-subtitle{margin:5px 0 14px!important;color:#78716c!important;font-size:12px!important}.agenda-alert-popover .clinical-alert-list{gap:10px!important}.agenda-alert-popover .clinical-alert-list li{position:relative;padding:13px 15px!important;transition:border-color .15s ease,box-shadow .15s ease}.agenda-alert-popover .clinical-alert-list li::after{position:absolute;top:12px;right:12px;padding:3px 7px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:9px;font-weight:850;letter-spacing:.05em;text-transform:uppercase;content:"Atención"}.agenda-alert-popover .clinical-alert-list li.critical::after{background:#ffedd5;color:#9a3412;content:"Prioridad"}.agenda-alert-popover .clinical-alert-grouped{padding-right:64px}.agenda-alert-popover .clinical-alert-grouped small{padding-top:4px;border-top:1px solid #ffedd5}.agenda-alert-popover .clinical-alert-grouped small:first-of-type{margin-top:6px}@media(max-width:760px){.page-configuracion #confirmaciones .config-status-grid{grid-template-columns:1fr}.agenda-alert-popover{padding:15px!important}.agenda-alert-popover .clinical-alert-grouped{padding-right:0}.agenda-alert-popover .clinical-alert-list li::after{position:static;display:inline-flex;width:max-content;margin-bottom:5px;order:-1}}

/* v19 - segunda pasada estatica de estabilidad entre zoom 80% y 110% */
html,
body { width: 100%; max-width: 100%; margin: 0; }
.pm360-shell-page .app-shell,
.pm360-shell-page .main-area,
.pm360-shell-page .content { width: 100%; max-width: 100%; min-width: 0; }
.pm360-shell-page .content > *,
.pm360-shell-page .panel > *,
.pm360-shell-page .card > * { min-width: 0; max-width: 100%; }
.pm360-shell-page :is(input,select,textarea) { min-width: 0; max-width: 100%; }

/* Encabezados y acciones: permitir descenso antes de empujar el shell. */
.pm360-shell-page .topbar { height: auto; min-height: 72px; gap: 14px; }
.pm360-shell-page .topbar > :first-child { flex: 1 1 260px; min-width: 0; }
.pm360-shell-page .topbar > .actions-inline { flex: 0 1 auto; justify-content: flex-end; min-width: 0; }
.pm360-shell-page :is(.panel-head,.section-title-row,.cash-operations-heading .panel-head) { min-width: 0; flex-wrap: wrap; }
.pm360-shell-page :is(.panel-head,.section-title-row) > :first-child { flex: 1 1 240px; min-width: 0; }
.pm360-shell-page :is(.actions-inline,.form-actions,.chart-toggle-group,.history-period-links) { min-width: 0; max-width: 100%; }
.pm360-shell-page :is(.btn,.chart-toggle,.history-period-links a) { min-width: 0; padding-inline: clamp(9px, 1vw, 14px); line-height: 1.25; }

/* Las tablas son el unico componente autorizado a desplazarse horizontalmente. */
.pm360-shell-page .table-wrap,
.pm360-shell-page .communication-table,
.page-configuracion .config-example-table-wrap { display: block; width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; overflow-y: hidden; }
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) > table { width: max-content; min-width: 100%; max-width: none; }
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) th,
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) td { white-space: normal; overflow-wrap: anywhere; }
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) td:last-child { min-width: 112px; }
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) td:last-child :is(.btn,.actions-inline,form) { max-width: none; }
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) td:last-child .btn { white-space: nowrap; }

/* Reportes: tablas compactas, cards y controles sin minimos heredados. */
.page-reportes .report-preview-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.page-reportes .report-preview-card :is(h3,.panel-subtitle,.report-check-label) { max-width: 100%; overflow-wrap: anywhere; }
.page-reportes .report-preview-card .actions-inline { display: grid; grid-template-columns: repeat(auto-fit, minmax(82px, 1fr)); width: 100%; }
.page-reportes .report-preview-card .btn { width: 100%; min-width: 0; }
.page-reportes .report-top-grid .card:not(.report-top-procedures) table,
.page-reportes .report-top-grid .card:not(.report-top-procedures) tbody { width: 100%; min-width: 0; }
.page-reportes .report-top-grid .card:not(.report-top-procedures) td { white-space: normal; overflow-wrap: anywhere; }
.page-reportes .report-top-procedures .table-wrap table { min-width: 100%; }
.page-reportes :is(.report-chart-filter-label,.report-chart-filter-current) { white-space: normal; }
.page-reportes .report-chart-filter-options { min-width: 0; }
.page-reportes .report-chart-filter-option { flex: 1 1 150px; min-width: 0; white-space: normal; }
.page-reportes #reportes-programados .filter-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 170px), 1fr)); }
.page-reportes #reportes-programados .filter-actions { min-width: 0; }

/* Configuracion: cinco tabs compactas, sin nowrap heredado en escritorio. */
.page-configuracion .config-section-tabs { width: 100%; max-width: 100%; min-width: 0; }
.page-configuracion .config-section-tabs a { min-width: 0; padding: 7px 8px; }
.page-configuracion .config-section-tabs a span { white-space: normal; overflow-wrap: anywhere; }
.page-configuracion :is(.config-status-grid,.config-data-grid,.import-export-grid,.export-card-grid) > * { min-width: 0; }
.page-configuracion .config-example-table-wrap { width: 100%; margin-inline: 0; }
.page-configuracion :is(.clinical-config-tabs,.clinical-config-actions) { max-width: 100%; flex-wrap: wrap; overflow-x: visible; }
.page-configuracion .clinical-config-tab { flex: 1 1 170px; min-width: 0; white-space: normal; }

/* Expediente: columna lateral autocontenida y formularios de alerta sin presion minima. */
.page-pacientes .patient-record-page { width: 100%; max-width: 100%; }
.page-pacientes .patient-side-column { min-width: 0; max-width: 100%; scrollbar-gutter: stable; }
.page-pacientes :is(.patient-profile-card,.patient-executive-card,.patient-main) { min-width: 0; max-width: 100%; }
.page-pacientes .patient-executive-kpis { width: 100%; }
.page-pacientes .patient-mini-kpi :is(strong,span),
.page-pacientes .profile-list :is(strong,span) { max-width: 100%; overflow-wrap: anywhere; }
.page-pacientes .patient-alert-workspace .clinical-alert-list li > span { max-width: calc(100% - 72px) !important; }
.page-pacientes .patient-alert-workspace :is(.patient-alert-additional,.clinical-alert-edit-form) > * { min-width: 0; max-width: 100%; }
.page-pacientes .patient-alert-workspace :is(.patient-alert-additional,.clinical-alert-edit-form) label { white-space: normal; }

/* Caja: filtros compactos y columna Acciones visible dentro del scroll de tabla. */
.page-caja :is(.chart-toggle-group,.history-period-links),
.cash-page :is(.chart-toggle-group,.history-period-links),
.caja-operativa-page :is(.chart-toggle-group,.history-period-links) { overflow: visible; }
.page-caja :is(.chart-toggle,.history-period-links a),
.cash-page :is(.chart-toggle,.history-period-links a),
.caja-operativa-page :is(.chart-toggle,.history-period-links a) { flex: 1 1 auto; padding: 7px 10px; }
.page-caja :is(.cash-movements-section,#cobranza-seguimiento) .table-wrap table,
.cash-page :is(.cash-movements-section,#cobranza-seguimiento) .table-wrap table,
.caja-operativa-page :is(.cash-movements-section,#cobranza-seguimiento) .table-wrap table { width: max-content; min-width: 100%; }

@media (max-width: 980px) {
    .page-pacientes .patient-record-page { grid-template-columns: 1fr; }
    .page-pacientes .patient-side-column { position: static; grid-template-columns: repeat(2, minmax(0, 1fr)); max-height: none; overflow: visible; }
    .page-reportes .chart-grid:has(> .chart-card[data-chart-panel]) { grid-template-columns: 1fr !important; }
}
@media (max-width: 720px) {
    .pm360-shell-page .app-shell { grid-template-columns: 1fr; }
    .pm360-shell-page .sidebar { position: relative; width: 100%; min-width: 0; height: auto; }
    .pm360-shell-page .topbar { position: relative; }
}
@media (max-width: 760px) {
    .pm360-shell-page .content { padding-inline: 14px; }
    .pm360-shell-page .topbar > .actions-inline { width: 100%; justify-content: flex-start; }
    .pm360-shell-page .topbar > .actions-inline .btn { flex: 1 1 140px; }
    .page-configuracion .config-section-tabs { display: flex; overflow: visible; flex-wrap: wrap; }
    .page-configuracion .config-section-tabs a { flex: 1 1 150px; }
    .page-configuracion .clinical-config-tabs { overflow-x: auto; flex-wrap: nowrap; }
    .page-configuracion .clinical-config-tab { flex: 0 0 min(78vw, 220px); }
    .page-pacientes .patient-side-column { grid-template-columns: 1fr; }
    .page-pacientes .patient-alert-workspace .clinical-alert-list li > span { max-width: 100% !important; }
    .page-reportes .report-preview-card .actions-inline { grid-template-columns: 1fr; }
}

/* v20 - texto horizontal y acciones legibles en Reportes, Bitacora y Fiscal */
.pm360-shell-page :is(
    .btn,
    button,
    [role="button"],
    .chart-toggle,
    .config-section-tabs a,
    .clinical-config-tab,
    .history-period-links a,
    .report-check-label,
    .surgery-result-action
),
.pm360-shell-page :is(
    .btn,
    button,
    [role="button"],
    .chart-toggle,
    .config-section-tabs a,
    .clinical-config-tab,
    .history-period-links a,
    .report-check-label,
    .surgery-result-action
) * {
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    writing-mode: horizontal-tb !important;
}
.pm360-shell-page :is(.btn,button,[role="button"],.chart-toggle,.config-section-tabs a,.clinical-config-tab,.history-period-links a) {
    font-size: 16px !important;
    line-height: 1.25 !important;
}

/* Reportes: siempre dos cards amplias en laptop/escritorio. */
.page-reportes .report-preview-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.page-reportes .report-preview-card { min-width: 0; }
.page-reportes .report-checklist {
    grid-template-columns: 1fr !important;
    align-content: start;
}
.page-reportes .report-check-item {
    align-items: flex-start;
    min-width: 0;
    padding-inline: 0 !important;
}
.page-reportes .report-check-label {
    display: block !important;
    min-width: 0;
    max-width: 100%;
    text-indent: 0 !important;
    font-size: 16px;
    line-height: 1.35 !important;
    white-space: normal;
}
.page-reportes #vista-previa-fiscal .report-check-item:last-child,
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    left: auto !important;
    margin-inline: 0 !important;
    padding-inline: 0 !important;
    text-indent: 0 !important;
}
.page-reportes .report-preview-card .actions-inline {
    display: grid;
    grid-template-columns: repeat(2, minmax(140px, 1fr));
    gap: 10px;
}
.page-reportes .report-preview-card .actions-inline .btn {
    min-width: 140px;
    min-height: 44px;
    padding: 10px 14px;
    white-space: normal;
}
.page-reportes .report-preview-card .actions-inline .report-preview-modal-trigger {
    grid-column: 1 / -1;
}
.page-reportes .topbar .actions-inline .btn {
    min-width: 145px;
    white-space: nowrap;
}
.page-reportes :is(.report-chart-filter-option,.chart-toggle-group .chart-toggle) {
    min-width: 170px;
    font-size: 16px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Bitacora: el resultado reparte contenido y una accion de ancho protegido. */
.surgeries-page .surgery-agenda-selector-unified .surgery-search-result {
    grid-template-columns: minmax(0, 1fr) minmax(160px, auto) !important;
    grid-auto-flow: row;
    min-width: 0;
}
.surgeries-page .surgery-agenda-selector-unified .surgery-search-result > *:not(.surgery-result-main):not(.surgery-result-action) {
    grid-column: 1;
    min-width: 0;
}
.surgeries-page .surgery-agenda-selector-unified .surgery-result-main {
    grid-column: 1;
    min-width: 0;
}
.surgeries-page .surgery-agenda-selector-unified .surgery-result-action {
    grid-column: 2;
    grid-row: 1 / span 5;
    align-self: center;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 160px;
    min-height: 44px;
    padding: 10px 16px;
    font-size: 16px !important;
    line-height: 1.25;
    white-space: nowrap;
}
.surgeries-page .surgery-stage-badge {
    max-width: 100%;
    font-size: 14px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: normal;
}
.surgeries-page :is(.surgery-agenda-actions,.procedure-stage-actions,.pm-op-stage-actions) .btn {
    flex: 0 1 auto;
    min-width: 160px;
    font-size: 16px !important;
}

/* Fiscal: scroll interno deliberado, columnas alineadas y acciones legibles. */
.page-fiscal .topbar .actions-inline .btn {
    min-width: 140px;
    font-size: 16px !important;
    white-space: nowrap;
}
.page-fiscal .table-wrap {
    position: relative;
    border: 1px solid #DCE6F2;
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: inset -12px 0 18px -20px rgba(15,23,42,.35);
}
.page-fiscal .table-wrap > table {
    width: max-content;
    min-width: 1180px;
    table-layout: auto;
}
.page-fiscal .table-wrap th {
    min-width: 112px;
    padding: 12px 14px;
    font-size: 14px;
    line-height: 1.3;
    white-space: nowrap;
}
.page-fiscal .table-wrap td {
    min-width: 112px;
    padding: 12px 14px;
    font-size: 15px;
    line-height: 1.4;
    vertical-align: middle;
    white-space: nowrap;
}
.page-fiscal .table-wrap th:nth-child(2),
.page-fiscal .table-wrap td:nth-child(2) {
    min-width: 210px;
    max-width: 280px;
    white-space: normal;
}
.page-fiscal .table-wrap th:last-child,
.page-fiscal .table-wrap td:last-child { min-width: 140px; }
.page-fiscal .table-wrap :is(.btn,.badge) {
    overflow-wrap: normal !important;
    word-break: normal !important;
    white-space: nowrap;
}

/* Configuracion y Caja comparten botones/tabs, pero no deben comprimirse. */
.page-configuracion .config-section-tabs a { min-width: 150px; }
.page-configuracion .config-section-tabs a span { overflow-wrap: normal !important; word-break: normal !important; }
.page-caja :is(.chart-toggle,.history-period-links a),
.cash-page :is(.chart-toggle,.history-period-links a),
.caja-operativa-page :is(.chart-toggle,.history-period-links a) {
    min-width: 105px;
    font-size: 16px !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

@media (max-width: 900px) {
    .page-reportes .report-preview-grid { grid-template-columns: 1fr; }
    .page-reportes .report-preview-card .actions-inline { grid-template-columns: repeat(2, minmax(130px, 1fr)); }
    .page-reportes :is(.report-chart-filter-option,.chart-toggle-group .chart-toggle) { min-width: 150px; }
}
@media (max-width: 620px) {
    .page-reportes .report-preview-card .actions-inline { grid-template-columns: 1fr; }
    .page-reportes .report-preview-card .actions-inline .report-preview-modal-trigger { grid-column: auto; }
    .surgeries-page .surgery-agenda-selector-unified .surgery-search-result { grid-template-columns: 1fr !important; }
    .surgeries-page .surgery-agenda-selector-unified .surgery-search-result > *,
    .surgeries-page .surgery-agenda-selector-unified .surgery-result-action {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
    .surgeries-page .surgery-agenda-selector-unified .surgery-result-action {
        justify-self: stretch;
        width: 100%;
    }
}

/* v21-final - capa de cierre para Reportes y Configuracion. */
.page-reportes .report-preview-card { display:flex; flex-direction:column; gap:12px; padding:20px; }
.page-reportes .report-preview-card > .panel-subtitle { margin:-4px 0 0; font-size:15px; line-height:1.5; }
.page-reportes .report-preview-card .report-checklist { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr))!important; gap:8px!important; margin:0; padding:0; align-content:start; }
.page-reportes .report-preview-card .report-check-item,
.page-reportes #vista-previa-fiscal .report-check-item:last-child { position:relative!important; display:flex!important; align-items:center!important; min-height:42px; padding:8px 11px 8px 38px!important; border:1px solid #dbe7f4; border-radius:11px; background:#f8fbff; box-shadow:none; }
.page-reportes .report-preview-card .report-check-item::before,
.page-reportes #vista-previa-fiscal .report-check-item:last-child::before { position:absolute!important; top:50%!important; left:12px!important; width:17px!important; height:17px!important; margin:0!important; transform:translateY(-50%); -webkit-mask-size:16px 16px!important; mask-size:16px 16px!important; }
.page-reportes .report-preview-card .report-check-label,
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label { position:static!important; left:auto!important; margin:0!important; color:#294767; font-size:16px!important; font-weight:650; line-height:1.3!important; text-align:left!important; }
.page-reportes .report-preview-card .actions-inline { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:auto; padding-top:4px; }
.page-reportes .report-preview-card .actions-inline .btn,
.page-reportes .report-preview-card .actions-inline .report-preview-modal-trigger { grid-column:auto; min-width:0; min-height:42px; padding:9px 12px; font-size:16px!important; white-space:nowrap; }
.page-configuracion .config-section-tabs a,
.page-configuracion .clinical-config-tab { font-size:15px!important; font-weight:650; line-height:1.35!important; }
.page-configuracion :is(.panel-subtitle,.config-institutional-copy,.config-data-card p,.export-card p) { font-size:15px; line-height:1.6; }
.page-configuracion :is(.config-status-grid .card,.config-data-card,.export-card) { font-size:15px; line-height:1.5; }
.page-configuracion .config-status-grid strong { font-size:16px; font-weight:650; line-height:1.4; }
.page-configuracion .config-import-title { font-size:clamp(21px,2vw,25px); font-weight:650; letter-spacing:-.015em; }
.page-configuracion .clinical-config-heading p,
.page-configuracion .clinical-config-fields label,
.page-configuracion .clinical-config-group legend { font-size:15px; line-height:1.45; }
.page-configuracion .clinical-config-group legend { font-weight:650; letter-spacing:.035em; }
.page-configuracion .config-section-tabs { gap:8px; }
.page-configuracion .config-section-tabs a { min-height:44px; padding:9px 13px; }
@media (max-width:1080px) { .page-reportes .report-preview-card .report-checklist { grid-template-columns:1fr!important; } }
@media (max-width:900px) { .page-reportes .report-preview-card .report-checklist { grid-template-columns:repeat(2,minmax(0,1fr))!important; } }
@media (max-width:620px) { .page-reportes .report-preview-card { padding:16px; } .page-reportes .report-preview-card .report-checklist,.page-reportes .report-preview-card .actions-inline { grid-template-columns:1fr!important; } }

/* v22-rc-responsive-formulas - reglas explicitas contra deformacion visual.
   Usa selectores reales del proyecto y gana precedencia sobre v19/v20/v21. */
.pm360-shell-page,
.pm360-shell-page .app-shell,
.pm360-shell-page .main-area,
.pm360-shell-page .content,
.pm360-shell-page :is(.panel,.card,.communication-card,.patient-main,.patient-alert-workspace,.report-preview-card,.config-data-card,.export-card,.chart-card) {
    min-width: 0;
    max-width: 100%;
}

/* Grids principales: cards amplias; si no caben, bajan a otra linea. */
.pm360-shell-page :is(.kpi-grid,.admin-card-grid,.role-demo-grid),
.page-reportes :is(.report-preview-grid,.report-card-grid,.report-section-grid),
.page-configuracion :is(.config-status-grid,.config-data-grid,.import-export-grid,.export-card-grid),
.communication-page :is(.communication-kpis,.template-grid),
.surgeries-page :is(.procedure-patient-context-grid,.procedure-executive-meta),
.page-fiscal :is(.fiscal-sim-grid,.fiscal-kpi-grid) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: clamp(14px, 1.5vw, 20px);
    width: 100%;
    align-items: stretch;
}

.page-reportes .report-preview-grid,
.communication-page .communication-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
}

/* Grids internos densos: KPIs, chips, estados, hallazgos y listas compactas. */
.page-reportes :is(.report-checklist,.percent-summary,.report-top-grid),
.page-configuracion :is(.config-status-grid,.clinical-config-fields),
.communication-page :is(.followup-list,.metric-list,.communication-mini-list),
.page-pacientes :is(.patient-executive-kpis,.patient-mini-kpi-grid,.patient-alert-criteria),
.page-caja :is(.cash-kpi-grid,.finance-kpi-grid,.finance-percent-summary),
.cash-page :is(.cash-kpi-grid,.finance-kpi-grid,.finance-percent-summary),
.caja-operativa-page :is(.cash-kpi-grid,.finance-kpi-grid,.finance-percent-summary) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: clamp(10px, 1vw, 14px);
    width: 100%;
}

.page-reportes .report-checklist,
.communication-page :is(.metric-list,.followup-list,.communication-mini-list) {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
}

/* Conectividad Paciente: conversaciones no aplastan IA Hallazgos/Estatus. */
.communication-page .communication-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(340px, 420px) !important;
    gap: 20px;
    align-items: start;
}
.communication-page .communication-card.span-2 {
    grid-column: auto !important;
    min-width: 0;
}
.communication-page .communication-card.span-full {
    grid-column: 1 / -1 !important;
}
.communication-page .communication-card {
    min-width: 0;
}
.communication-page :is(.metric-list p,.followup-list div,.communication-mini-list p) {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    min-width: 0;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Botones, tabs y filtros: nunca verticales; bajan de linea como bloque completo. */
.pm360-shell-page :is(
    .filter-group,
    .tabs-group,
    .action-filter-row,
    .actions-inline,
    .form-actions,
    .chart-toggle-group,
    .history-period-links,
    .config-section-tabs,
    .clinical-config-tabs,
    .clinical-config-actions,
    .surgery-agenda-actions,
    .procedure-stage-actions,
    .pm-op-stage-actions
) {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    min-width: 0;
    max-width: 100%;
}

.pm360-shell-page :is(
    .btn,
    button,
    [role="button"],
    .chart-toggle,
    .history-period-links a,
    .config-section-tabs a,
    .clinical-config-tab,
    .report-chart-filter-option,
    .surgery-result-action,
    .pm-op-action,
    .table-action,
    .row-action,
    .btn-action
) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
    min-width: max-content !important;
    height: fit-content;
    align-self: center;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
    writing-mode: horizontal-tb !important;
}
.pm360-shell-page :is(.btn,button,[role="button"],.chart-toggle,.history-period-links a,.config-section-tabs a,.clinical-config-tab) * {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Acciones dentro de tablas: legibles y contenidas por scroll interno. */
.pm360-shell-page :is(td,th) :is(.btn,.table-action,.row-action,.btn-action,.actions-inline,form) {
    min-width: max-content !important;
    white-space: nowrap !important;
}
.pm360-shell-page :is(td,th) .actions-inline {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

/* Tablas: el scroll horizontal vive solo en wrappers reales. */
.pm360-shell-page .table-wrap,
.pm360-shell-page .communication-table,
.page-configuracion .config-example-table-wrap,
.payments-page .table-wrap,
.crud-page .table-wrap {
    display: block;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    overflow-x: auto;
    overflow-y: visible;
    overscroll-behavior-inline: contain;
}
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) > table {
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
    border-collapse: collapse;
    table-layout: auto;
}
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) th {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) td {
    white-space: normal;
    overflow-wrap: break-word;
    word-break: normal !important;
}
.pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) td:last-child {
    min-width: 150px;
    white-space: nowrap !important;
}

/* Reportes: cards, chips y acciones reales sin columnas minimas de 0. */
.page-reportes .report-preview-card .report-checklist {
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
}
.page-reportes .report-preview-card .actions-inline {
    display: flex !important;
    flex-wrap: wrap;
}
.page-reportes .report-preview-card .actions-inline .btn,
.page-reportes .report-preview-card .actions-inline .report-preview-modal-trigger {
    flex: 0 0 auto;
    min-width: max-content !important;
    white-space: nowrap !important;
}
.page-reportes #reportes-programados .filter-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
}
.page-reportes .report-chart-filter-options {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* Configuracion: tabs y tarjetas no parten texto letra por letra. */
.page-configuracion .config-section-tabs a,
.page-configuracion .clinical-config-tab {
    flex: 0 0 auto;
    min-width: max(170px, max-content) !important;
}
.page-configuracion .config-section-tabs a span {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Expediente: columna lateral con minimo real y layout que baja completo. */
.page-pacientes .patient-record-page {
    display: grid;
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr) !important;
    gap: 20px;
}
.page-pacientes :is(.patient-side-column,.patient-profile-card,.patient-executive-card) {
    min-width: 280px;
}
.page-pacientes .patient-executive-kpis,
.page-pacientes .patient-mini-kpi-grid {
    grid-template-columns: repeat(2, minmax(120px, 1fr)) !important;
}
.page-pacientes :is(.patient-mini-kpi,.patient-type-badge,.clinical-alert-list li,.pm-op-inherited-alert) {
    overflow-wrap: normal !important;
    word-break: normal !important;
}
.page-pacientes :is(.clinical-alert-list li span,.pm-op-inherited-alert span,.profile-list span) {
    overflow-wrap: break-word;
    word-break: normal !important;
}

/* Agenda Clinica: alerta y filtros no se comprimen ni duplican visualmente. */
.agenda-alert-popover .clinical-alert-list li,
.agenda-alert-popover .clinical-alert-grouped,
.clinical-alert-list li {
    min-width: 0;
    overflow-wrap: normal !important;
    word-break: normal !important;
}
.agenda-alert-popover .clinical-alert-grouped small {
    overflow-wrap: break-word;
    word-break: normal !important;
}

/* Graficas: contenedor estable para Chart.js/canvas. */
.pm360-shell-page :is(.chart-container,.chart-card) {
    position: relative;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.pm360-shell-page .chart-container {
    min-height: 300px;
    height: clamp(300px, 36vw, 420px);
}
.pm360-shell-page .chart-card canvas,
.pm360-shell-page .chart-container canvas {
    display: block;
    width: 100% !important;
    max-width: 100%;
    height: 100% !important;
}

/* Breakpoints obligatorios de aceptacion. */
@media (max-width: 1200px) {
    .communication-page .communication-grid {
        grid-template-columns: 1fr !important;
    }
    .communication-page .communication-card.span-2,
    .communication-page .communication-card.span-full {
        grid-column: 1 / -1 !important;
    }
    .page-reportes .report-top-grid,
    .page-fiscal .fiscal-recommendations-row {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 980px) {
    .page-pacientes .patient-record-page {
        grid-template-columns: 1fr !important;
    }
    .page-pacientes :is(.patient-side-column,.patient-profile-card,.patient-executive-card) {
        min-width: 0;
    }
    .page-configuracion .config-section-tabs,
    .page-configuracion .clinical-config-tabs {
        justify-content: flex-start;
    }
}

@media (max-width: 760px) {
    .pm360-shell-page :is(.filter-group,.tabs-group,.action-filter-row,.actions-inline,.form-actions,.chart-toggle-group,.history-period-links) {
        justify-content: flex-start;
    }
    .pm360-shell-page :is(.table-wrap,.communication-table,.config-example-table-wrap) {
        overflow-x: auto;
    }
    .page-reportes .report-preview-card .actions-inline {
        display: grid !important;
        grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
    }
}

@media (max-width: 480px) {
    .pm360-shell-page :is(.btn,button,[role="button"],.chart-toggle,.history-period-links a,.config-section-tabs a,.clinical-config-tab) {
        width: 100%;
        min-width: 100% !important;
    }
    .page-reportes .report-preview-card .actions-inline,
    .page-pacientes .patient-executive-kpis,
    .page-pacientes .patient-mini-kpi-grid {
        grid-template-columns: 1fr !important;
    }
}

/* v23-final-human-visual-pass - ajustes manuales de cierre visual solicitados.
   Enfocado en Agenda, Conectividad, Expediente, Bitacora, Finanzas, Fiscal y Reportes. */

/* Cache/typography safety: botones compactos sin texto vertical, pero no fuerzan cards gigantes. */
.pm360-shell-page :is(.topbar .btn,.panel-head .btn,.pagination .btn,.history-pagination .btn,.patient-history-pagination .btn,.agenda-events-pagination .btn,.agenda-alert-carousel-controls .btn,.patient-document-upload-form .btn,.clinical-alert-form .btn,.clinical-alert-edit-form .btn) {
    min-height: 40px !important;
    padding: 9px 14px !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
    border-radius: 12px !important;
}
.pm360-shell-page :is(.btn,.chart-toggle) svg,
.pm360-shell-page :is(.btn,.chart-toggle)::before {
    flex: 0 0 auto;
}
.pm360-shell-page :is(.kpi-label,.kpi-trend,.panel-subtitle,.metric-list p,.insight-auto,.report-check-label) {
    word-break: normal !important;
    overflow-wrap: break-word;
}

/* AGENDA CLINICA: alerta mas limpia, controles compactos y proximos eventos menos pesados. */
.agenda-page .clinical-alert-title {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 0;
}
.agenda-page .clinical-alert-subtitle {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin: 6px 0 0 36px !important;
    color: #7a6a5d;
    font-size: 14px !important;
    font-weight: 650;
}
.agenda-page .clinical-alert-subtitle span {
    color: #9a3412;
    font-weight: 800;
}
.agenda-page .agenda-alert-carousel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: center;
}
.agenda-page .agenda-alert-carousel-viewport {
    min-width: 0;
}
.agenda-page .agenda-alert-carousel-controls {
    position: static !important;
    display: inline-flex !important;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    min-width: 360px;
    max-width: 100%;
}
.agenda-page .agenda-alert-carousel-controls .btn {
    min-width: 118px !important;
}
.agenda-page .agenda-alert-carousel-status,
.agenda-page .agenda-events-pagination span,
.communication-page .communication-pagination span {
    white-space: nowrap;
    color: #5f7187;
    font-weight: 650;
}
.agenda-page #proximos-eventos .panel-head {
    align-items: center;
    gap: 12px;
}
.agenda-page #proximos-eventos .panel-subtitle {
    font-size: 14px;
}
.agenda-page #proximos-eventos table td,
.agenda-page #proximos-eventos table th {
    padding-block: 12px !important;
}
.agenda-page #proximos-eventos .actions-inline {
    gap: 8px;
}
.agenda-page #proximos-eventos .actions-inline .btn,
.agenda-page #proximos-eventos .btn-whatsapp {
    min-height: 36px !important;
    padding: 8px 11px !important;
    font-size: 14px !important;
}

/* CONECTIVIDAD: IA Hallazgos arriba, sin tarjetas repetidas de estatus, conversaciones con ancho completo. */
.communication-page .communication-grid {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
}
.communication-page .communication-grid > .communication-card {
    grid-column: 1 / -1 !important;
}
.communication-page .communication-insights-card {
    order: 0;
}
.communication-page .conversations-card {
    order: 1;
}
.communication-page .communication-insights-card .section-title-row {
    margin-bottom: 10px;
}
.communication-page .communication-insight-list,
.communication-page .metric-list {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 10px !important;
}
.communication-page .communication-insight-list p,
.communication-page .metric-list p {
    margin: 0;
    min-height: 48px;
    padding: 11px 14px;
    border: 1px solid #d7e6f6;
    border-radius: 12px;
    background: #f8fbff;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    font-size: 15px;
    line-height: 1.3;
}
.communication-page .communication-insight-list strong,
.communication-page .metric-list strong {
    flex: 0 0 auto;
    color: #1f6fc5;
    font-size: 17px;
}
.communication-page .ia-status-heading,
.communication-page .ia-card-grid {
    display: none !important;
}
.communication-page .communication-kpis {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
    gap: 16px !important;
}
.communication-page .communication-kpi-card {
    min-height: 126px;
    padding: 18px 20px !important;
}
.communication-page .communication-kpi-card .kpi-trend {
    font-size: 14px;
    line-height: 1.25;
}
.communication-page .conversation-period-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 12px;
}
.communication-page .conversation-period-filter label {
    min-width: 210px;
    max-width: 240px;
}
.communication-page .communication-pagination {
    justify-content: center;
    gap: 18px;
}

/* EXPEDIENTE: perfil/resumen estables, recetas mas compactas, historial sin duplicidad visual. */
.page-pacientes .patient-side-column {
    align-self: start;
}
.page-pacientes .patient-profile-card,
.page-pacientes .patient-executive-card {
    position: relative !important;
    inset: auto !important;
    transform: none !important;
}
.page-pacientes .patient-profile-card {
    padding: 24px 26px !important;
}
.page-pacientes .profile-list p {
    display: grid;
    grid-template-columns: minmax(90px, 1fr) auto;
    align-items: center;
    gap: 12px;
}
.page-pacientes .patient-executive-card {
    margin-top: 14px !important;
    padding: 0 !important;
    overflow: hidden;
}
.page-pacientes .patient-executive-card .panel-head {
    padding: 20px 22px 16px !important;
}
.page-pacientes .patient-executive-kpis {
    padding: 18px 20px 22px !important;
}
.clinical-documents-panel .clinical-document-actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}
.clinical-documents-panel .clinical-document-action {
    min-height: 108px !important;
    padding: 18px 22px !important;
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr);
    align-items: center;
    gap: 20px;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
}
.clinical-documents-panel .clinical-document-action-icon {
    width: 64px !important;
    height: 64px !important;
    border-radius: 18px !important;
}
.clinical-documents-panel .clinical-document-action-copy strong {
    font-size: 20px !important;
    line-height: 1.25 !important;
}
.clinical-documents-panel .clinical-document-action-copy span {
    font-size: 15px !important;
    line-height: 1.4 !important;
}
.clinical-documents-panel .clinical-document-action-copy,
.clinical-documents-panel .clinical-document-action-copy strong,
.clinical-documents-panel .clinical-document-action-copy span {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.page-pacientes .patient-history-panel[data-period-pager="manual"] .history-period-toolbar {
    display: none !important;
}
.page-pacientes .patient-history-pagination {
    display: flex !important;
    justify-content: flex-end !important;
    align-items: center;
    gap: 16px;
    margin-top: 16px;
}
.page-pacientes .patient-history-pagination .btn {
    min-width: 128px !important;
}

/* BITACORA QUIRURGICA: pacientes a la izquierda, acciones legibles y estados grises sin textos estorbosos. */
.surgeries-page .surgery-agenda-selector-unified .surgery-search-results {
    display: grid;
    gap: 12px;
}
.surgeries-page .surgery-agenda-selector-unified .surgery-search-result {
    width: 100%;
    text-align: left !important;
    justify-items: start !important;
    grid-template-columns: minmax(260px, 1.35fr) minmax(220px, 1fr) minmax(160px, .7fr) minmax(140px, .65fr) minmax(160px, auto) !important;
    padding: 16px 20px !important;
}
.surgeries-page .surgery-agenda-selector-unified .surgery-result-main {
    justify-self: start;
    text-align: left;
}
.surgeries-page .surgery-agenda-selector-unified .surgery-result-main strong,
.surgeries-page .surgery-agenda-selector-unified .surgery-result-main span {
    text-align: left;
}
.surgeries-page .surgery-agenda-selector-unified .surgery-result-action {
    justify-self: end;
    min-width: 160px !important;
}
.surgeries-page .pm-op-stage-tab-state:empty,
.surgeries-page .pm-op-process-state:empty {
    display: none !important;
}
.surgeries-page .pm-op-stage-tab:not(.is-complete) .pm-op-stage-tab-state {
    opacity: 0;
    visibility: hidden;
    width: 0;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}
.surgeries-page .procedure-reserved-stage small {
    color: #8290a3 !important;
}

/* FINANZAS: tarjetas de resumen compactas y alineadas; facturacion menos pesada. */
.finance-page .finance-kpi-grid,
.finance-page .report-section-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 14px !important;
}
.finance-page .finance-kpi-grid .card,
.finance-page .report-section-grid .card {
    min-height: 112px !important;
    padding: 18px 20px !important;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto 1fr auto;
    align-items: center;
    column-gap: 12px;
}
.finance-page .finance-kpi-grid .kpi-label,
.finance-page .report-section-grid .kpi-label {
    grid-column: 1 / -1;
    font-size: 14px !important;
    line-height: 1.25;
}
.finance-page .finance-kpi-grid .kpi-value,
.finance-page .report-section-grid .kpi-value {
    font-size: clamp(25px, 2.4vw, 36px) !important;
    line-height: 1.05;
    min-width: 0;
}
.finance-page .finance-kpi-grid .kpi-trend,
.finance-page .report-section-grid .kpi-trend {
    grid-column: 1 / -1;
    font-size: 13px !important;
    line-height: 1.25;
    white-space: normal !important;
}
.finance-page .filter-panel .filter-grid,
.page-fiscal .filter-panel .filter-grid {
    align-items: end;
}
.finance-page .topbar .actions-inline .btn,
.page-fiscal .topbar .actions-inline .btn,
.page-reportes .topbar .actions-inline .btn {
    min-height: 42px !important;
    padding: 10px 16px !important;
    font-size: 15px !important;
}

/* RC v33.1: prioridad final para evitar cortes de importes en KPIs a 100/110% zoom. */
.finance-page .finance-kpi-grid .kpi-value,
.finance-page .report-section-grid .kpi-value,
.page-fiscal .kpi-grid .kpi-value,
.page-reportes #resumen-reporte-ejecutivo .kpi-value,
.pm360-shell-page .kpi-value,
.kpi-grid .kpi-value,
.cash-kpi-grid .kpi-value {
    max-width: 100% !important;
    width: 100% !important;
    padding-right: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    font-size: clamp(23px, 2vw, 32px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    font-variant-numeric: tabular-nums !important;
}

/* RC safe restore final precedence. */
@media (min-width: 1181px) {
    .page-pacientes .patient-record-page { overflow: visible !important; padding-bottom: 0 !important; }
    .page-pacientes .patient-side-column { position: sticky !important; top: 92px !important; align-self: start !important; max-height: none !important; overflow: visible !important; transform: none !important; z-index: 3 !important; }
}
.page-pacientes .patient-profile-card { padding: 18px 22px !important; }
.page-pacientes .patient-profile-identity { gap: 10px !important; margin-bottom: 12px !important; }
.page-pacientes .patient-executive-card { margin-top: 12px !important; }
.page-pacientes .patient-executive-card .panel-head { padding: 14px 16px !important; margin: 0 0 12px !important; }
.page-pacientes .patient-executive-kpis { gap: 10px !important; }
.page-pacientes .patient-executive-kpis .card { min-height: 86px !important; padding: 13px 14px !important; }
.page-pacientes .patient-history-panel > .panel-head { width: calc(100% + 40px) !important; max-width: none !important; margin: -20px -20px 16px !important; padding: 18px 20px !important; background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important; border-bottom: 1px solid #cfe3f7 !important; border-radius: 18px 18px 0 0 !important; box-sizing: border-box !important; }
.cash-page .cash-kpi-grid .card, .caja-operativa-page .cash-kpi-grid .card { overflow: hidden !important; }
.cash-page .cash-kpi-grid .card::before, .cash-page .cash-kpi-grid .card::after, .caja-operativa-page .cash-kpi-grid .card::before, .caja-operativa-page .cash-kpi-grid .card::after { display: none !important; content: none !important; }
.cash-page .cash-kpi-grid .cash-kpi-icon, .caja-operativa-page .cash-kpi-grid .cash-kpi-icon { display: block !important; width: 38px !important; height: 38px !important; padding: 12px !important; border-radius: 16px !important; background: #eef6ff !important; border: 1px solid #bfdbfe !important; box-sizing: content-box !important; }
.cash-page .cash-kpi-grid .kpi-wallet .cash-kpi-icon { color: #2563eb !important; background: #eff6ff !important; }
.cash-page .cash-kpi-grid .kpi-chart .cash-kpi-icon { color: #059669 !important; background: #ecfdf5 !important; }
.cash-page .cash-kpi-grid .kpi-alert-circle .cash-kpi-icon { color: #dc2626 !important; background: #fff1f2 !important; }
.cash-page .cash-kpi-grid .kpi-calendar-clock .cash-kpi-icon { color: #d97706 !important; background: #fffbeb !important; }
.cash-page .cash-kpi-grid .kpi-shield-medical .cash-kpi-icon { color: #7c3aed !important; background: #f5f3ff !important; }
.cash-page .cash-movements-section > .panel-head.cash-movements-head, .caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head, .finance-page .panel > .panel-head, .page-fiscal .panel > .panel-head { width: calc(100% + 40px) !important; max-width: none !important; margin: -20px -20px 16px !important; padding: 18px 20px !important; background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important; border-bottom: 1px solid #cfe3f7 !important; border-radius: 18px 18px 0 0 !important; box-sizing: border-box !important; }
.cash-page .cash-movements-section > .panel-head.cash-movements-head, .caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head, .finance-page .finance-chart-panel > .panel-head, .page-fiscal .fiscal-chart-panel > .panel-head { display: flex !important; align-items: flex-end !important; justify-content: space-between !important; gap: 18px !important; }
.cash-page .cash-movements-section .cash-movement-period-form, .caja-operativa-page .cash-movements-section .cash-movement-period-form { display: flex !important; align-items: flex-end !important; justify-content: flex-end !important; flex-wrap: wrap !important; gap: 10px !important; margin: 0 0 0 auto !important; }
.finance-page .finance-chart-panel > .panel-head > div:first-child, .page-fiscal .fiscal-chart-panel > .panel-head > div:first-child { min-width: 0 !important; flex: 1 1 420px !important; }
.finance-page .finance-chart-panel > .panel-head .chart-toggle-group, .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group { align-self: flex-end !important; justify-content: flex-end !important; margin: 0 0 0 auto !important; max-width: min(560px, 100%) !important; }
.finance-page .finance-insights-combined .finance-insight-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
.finance-page .finance-insights-combined .alert-card { position: relative !important; min-height: 58px !important; padding: 16px 18px 16px 52px !important; border-radius: 14px !important; font-weight: 800 !important; color: #1e3a5f !important; background: #eef6ff !important; border: 1px solid #bfdbfe !important; }
.finance-page .finance-insights-combined .alert-card::before { content: "" !important; position: absolute !important; left: 18px !important; top: 50% !important; width: 14px !important; height: 14px !important; border-radius: 999px !important; transform: translateY(-50%) !important; background: #2563eb !important; box-shadow: 0 0 0 7px rgba(37,99,235,.12) !important; }
.finance-page .finance-insights-combined .alert-card:nth-child(2n)::before { background: #10b981 !important; box-shadow: 0 0 0 7px rgba(16,185,129,.14) !important; }
.finance-page .finance-insights-combined .alert-card:nth-child(3n)::before { background: #f59e0b !important; box-shadow: 0 0 0 7px rgba(245,158,11,.16) !important; }
.finance-page .chart-grid + .insight-list { display: none !important; }
.page-reportes .report-preview-card .report-checklist { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important; gap: 10px !important; }
.page-reportes .report-preview-card .report-check-item, .page-reportes #vista-previa-fiscal .report-check-item:last-child { display: grid !important; grid-template-columns: 22px minmax(0, 1fr) !important; align-items: center !important; gap: 10px !important; width: 100% !important; min-width: 0 !important; min-height: 52px !important; padding: 10px 12px !important; border: 1px solid #dbe7f4 !important; border-radius: 12px !important; background: #f8fbff !important; box-shadow: none !important; overflow: hidden !important; }
.page-reportes .report-preview-card .report-check-item::before, .page-reportes #vista-previa-fiscal .report-check-item:last-child::before { position: static !important; width: 19px !important; height: 19px !important; margin: 0 !important; transform: none !important; -webkit-mask-size: 18px 18px !important; mask-size: 18px 18px !important; }
.page-reportes .report-preview-card .report-check-label, .page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label { min-width: 0 !important; margin: 0 !important; color: #294767 !important; font-size: 15px !important; line-height: 1.25 !important; text-align: left !important; white-space: normal !important; overflow-wrap: anywhere !important; }
.page-reportes .report-checklist li.report-icon-document::before { background-color: #2563eb !important; }
.page-reportes .report-checklist li.report-icon-chart::before { background-color: #0891b2 !important; }
.page-reportes .report-checklist li.report-icon-wallet::before, .page-reportes .report-checklist li.report-icon-wallet-alert::before { background-color: #0f766e !important; }
.page-reportes .report-checklist li.report-icon-calculator::before { background-color: #ea580c !important; }
.page-reportes .report-checklist li.report-icon-lightbulb::before { background-color: #ca8a04 !important; }
.page-reportes .report-checklist li.report-icon-ranking::before { background-color: #7c3aed !important; }
.page-reportes .report-checklist li.report-icon-table::before { background-color: #475569 !important; }
.page-reportes .report-checklist li.report-icon-invoice::before, .page-reportes .report-checklist li.report-icon-file::before { background-color: #1d4ed8 !important; }
.page-reportes .report-checklist li.report-icon-code::before { background-color: #0f172a !important; }
.page-reportes .report-checklist li.report-icon-landmark::before { background-color: #92400e !important; }
.communication-page .message-templates-card .template-action-buttons { justify-content: flex-start !important; align-items: flex-start !important; }
.communication-page .message-templates-card .template-action-buttons .btn { flex: 0 1 auto !important; max-width: 100% !important; white-space: nowrap !important; }
.pm360-shell-page .chart-card canvas, .pm360-shell-page .chart-container canvas { display: block !important; visibility: visible !important; opacity: 1 !important; }
.communication-page .patient-modal[aria-hidden="true"] { visibility: hidden !important; }
@media (max-width: 520px) {
    .pm360-shell-page .history-pagination {
        justify-content: center !important;
        flex-wrap: wrap !important;
    }
    .pm360-shell-page .history-pagination .btn {
        flex: 0 1 auto !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
    .page-reportes #historial-reportes .history-download-btn {
        display: inline-flex !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        text-align: center !important;
    }
    .communication-page .communication-table table {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
    }
    .communication-page .communication-table th,
    .communication-page .communication-table td {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }
    .communication-page .communication-table .btn-whatsapp {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        justify-content: center !important;
        padding-inline: 8px !important;
    }
    .communication-page .communication-table td:last-child {
        min-width: 0 !important;
        white-space: normal !important;
    }
}

@media (max-width: 900px) {
    .cash-page .cash-movements-section > .panel-head.cash-movements-head, .caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head, .finance-page .finance-chart-panel > .panel-head, .page-fiscal .fiscal-chart-panel > .panel-head { align-items: flex-start !important; flex-direction: column !important; }
    .finance-page .finance-chart-panel > .panel-head .chart-toggle-group, .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group, .cash-page .cash-movements-section .cash-movement-period-form, .caja-operativa-page .cash-movements-section .cash-movement-period-form { justify-content: flex-start !important; margin-left: 0 !important; }
    .finance-page .finance-insights-combined .finance-insight-grid { grid-template-columns: 1fr !important; }
}

/* RC chart restore: ajustes visuales puntuales sin tocar lógica. */
@media (min-width: 1181px) {
    body.page-pacientes .patient-record-page {
        grid-template-columns: minmax(320px, 360px) minmax(0, 1fr) !important;
        gap: 18px !important;
        align-items: start !important;
        overflow: visible !important;
    }
    body.page-pacientes .patient-side-column {
        position: sticky !important;
        top: 96px !important;
        width: 100% !important;
        max-height: none !important;
        overflow: visible !important;
        z-index: 2 !important;
        transform: none !important;
    }
    body.page-pacientes .patient-main {
        grid-column: 2 !important;
        min-width: 0 !important;
    }
}

body.page-pacientes .patient-history-panel > .panel-head {
    width: calc(100% + 40px) !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
}

body.page-caja .cash-movements-section > .panel-head.cash-movements-head,
body.finance-page .finance-chart-panel > .panel-head,
body.page-fiscal .fiscal-chart-panel > .panel-head {
    width: calc(100% + 40px) !important;
    max-width: none !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
    box-sizing: border-box !important;
}

body.page-caja .cash-movements-section > .panel-head.cash-movements-head,
body.finance-page .finance-chart-panel > .panel-head,
body.page-fiscal .fiscal-chart-panel > .panel-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 18px !important;
}

body.page-caja .cash-movements-section .cash-movement-period-form {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 0 0 auto !important;
}

body.finance-page .finance-chart-panel > .panel-head > div:first-child,
body.page-fiscal .fiscal-chart-panel > .panel-head > div:first-child {
    min-width: 0 !important;
    flex: 1 1 420px !important;
}

body.finance-page .finance-chart-panel > .panel-head .chart-toggle-group,
body.page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group {
    align-self: flex-end !important;
    justify-content: flex-end !important;
    margin: 0 0 0 auto !important;
    max-width: min(560px, 100%) !important;
}

body.communication-page .message-templates-card .template-action-buttons {
    display: flex !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
}

body.communication-page .message-templates-card .template-action-buttons .btn {
    flex: 0 1 auto !important;
    max-width: 100% !important;
    white-space: nowrap !important;
}

/* RC safe restore: only undo regressions from duplicated late visual overrides. */
@media (min-width: 1181px) {
    .page-pacientes .patient-record-page {
        overflow: visible !important;
        padding-bottom: 0 !important;
    }
    .page-pacientes .patient-side-column {
        position: sticky !important;
        top: 96px !important;
        align-self: start !important;
        max-height: none !important;
        overflow: visible !important;
        transform: none !important;
        z-index: 3 !important;
    }
}
.page-pacientes .patient-profile-card {
    padding: 18px 22px !important;
}
.page-pacientes .patient-profile-identity {
    gap: 10px !important;
    margin-bottom: 12px !important;
}
.page-pacientes .patient-executive-card {
    margin-top: 12px !important;
}
.page-pacientes .patient-executive-card .panel-head {
    padding: 14px 16px !important;
    margin: 0 0 12px !important;
}
.page-pacientes .patient-executive-kpis {
    gap: 10px !important;
}
.page-pacientes .patient-executive-kpis .card {
    min-height: 86px !important;
    padding: 13px 14px !important;
}
.page-pacientes .patient-history-panel > .panel-head {
    width: calc(100% + 40px) !important;
    max-width: none !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
    box-sizing: border-box !important;
}

.cash-page .cash-kpi-grid .card,
.caja-operativa-page .cash-kpi-grid .card {
    overflow: hidden !important;
}
.cash-page .cash-kpi-grid .card::before,
.cash-page .cash-kpi-grid .card::after,
.caja-operativa-page .cash-kpi-grid .card::before,
.caja-operativa-page .cash-kpi-grid .card::after {
    display: none !important;
    content: none !important;
}
.cash-page .cash-kpi-grid .cash-kpi-icon,
.caja-operativa-page .cash-kpi-grid .cash-kpi-icon {
    display: block !important;
    width: 38px !important;
    height: 38px !important;
    padding: 12px !important;
    border-radius: 16px !important;
    background: #eef6ff !important;
    border: 1px solid #bfdbfe !important;
    box-sizing: content-box !important;
}
.cash-page .cash-kpi-grid .kpi-wallet .cash-kpi-icon { color: #2563eb !important; background: #eff6ff !important; }
.cash-page .cash-kpi-grid .kpi-chart .cash-kpi-icon { color: #059669 !important; background: #ecfdf5 !important; }
.cash-page .cash-kpi-grid .kpi-alert-circle .cash-kpi-icon { color: #dc2626 !important; background: #fff1f2 !important; }
.cash-page .cash-kpi-grid .kpi-calendar-clock .cash-kpi-icon { color: #d97706 !important; background: #fffbeb !important; }
.cash-page .cash-kpi-grid .kpi-shield-medical .cash-kpi-icon { color: #7c3aed !important; background: #f5f3ff !important; }

.cash-page .cash-movements-section > .panel-head.cash-movements-head,
.caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head,
.finance-page .panel > .panel-head,
.page-fiscal .panel > .panel-head {
    width: calc(100% + 40px) !important;
    max-width: none !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
    box-sizing: border-box !important;
}
.cash-page .cash-movements-section > .panel-head.cash-movements-head,
.caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head,
.finance-page .finance-chart-panel > .panel-head,
.page-fiscal .fiscal-chart-panel > .panel-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 18px !important;
}
.cash-page .cash-movements-section .cash-movement-period-form,
.caja-operativa-page .cash-movements-section .cash-movement-period-form {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    margin: 0 0 0 auto !important;
}
.cash-page .cash-movements-section .cash-movement-period-form label,
.caja-operativa-page .cash-movements-section .cash-movement-period-form label {
    margin: 0 !important;
}
.finance-page .finance-chart-panel > .panel-head > div:first-child,
.page-fiscal .fiscal-chart-panel > .panel-head > div:first-child {
    min-width: 0 !important;
    flex: 1 1 420px !important;
}
.finance-page .finance-chart-panel > .panel-head .chart-toggle-group,
.page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group {
    align-self: flex-end !important;
    justify-content: flex-end !important;
    margin: 0 0 0 auto !important;
    max-width: min(560px, 100%) !important;
}

.finance-page .finance-insights-combined .finance-insight-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
.finance-page .finance-insights-combined .alert-card {
    position: relative !important;
    min-height: 58px !important;
    padding: 16px 18px 16px 52px !important;
    border-radius: 14px !important;
    font-weight: 800 !important;
    color: #1e3a5f !important;
    background: #eef6ff !important;
    border: 1px solid #bfdbfe !important;
}
.finance-page .finance-insights-combined .alert-card::before {
    content: "" !important;
    position: absolute !important;
    left: 18px !important;
    top: 50% !important;
    width: 14px !important;
    height: 14px !important;
    border-radius: 999px !important;
    transform: translateY(-50%) !important;
    background: #2563eb !important;
    box-shadow: 0 0 0 7px rgba(37, 99, 235, .12) !important;
}
.finance-page .finance-insights-combined .alert-card:nth-child(2n)::before { background: #10b981 !important; box-shadow: 0 0 0 7px rgba(16, 185, 129, .14) !important; }
.finance-page .finance-insights-combined .alert-card:nth-child(3n)::before { background: #f59e0b !important; box-shadow: 0 0 0 7px rgba(245, 158, 11, .16) !important; }
.finance-page .chart-grid + .insight-list {
    display: none !important;
}

.page-reportes .report-preview-card .report-checklist {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
    gap: 10px !important;
}
.page-reportes .report-preview-card .report-check-item,
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    display: grid !important;
    grid-template-columns: 22px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 52px !important;
    padding: 10px 12px !important;
    border: 1px solid #dbe7f4 !important;
    border-radius: 12px !important;
    background: #f8fbff !important;
    box-shadow: none !important;
    overflow: hidden !important;
}
.page-reportes .report-preview-card .report-check-item::before,
.page-reportes #vista-previa-fiscal .report-check-item:last-child::before {
    position: static !important;
    width: 19px !important;
    height: 19px !important;
    margin: 0 !important;
    transform: none !important;
    -webkit-mask-size: 18px 18px !important;
    mask-size: 18px 18px !important;
}
.page-reportes .report-preview-card .report-check-label,
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    min-width: 0 !important;
    margin: 0 !important;
    color: #294767 !important;
    font-size: 15px !important;
    line-height: 1.25 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
}
.page-reportes .report-checklist li.report-icon-document::before { background-color: #2563eb !important; }
.page-reportes .report-checklist li.report-icon-chart::before { background-color: #0891b2 !important; }
.page-reportes .report-checklist li.report-icon-wallet::before,
.page-reportes .report-checklist li.report-icon-wallet-alert::before { background-color: #0f766e !important; }
.page-reportes .report-checklist li.report-icon-calculator::before { background-color: #ea580c !important; }
.page-reportes .report-checklist li.report-icon-lightbulb::before { background-color: #ca8a04 !important; }
.page-reportes .report-checklist li.report-icon-ranking::before { background-color: #7c3aed !important; }
.page-reportes .report-checklist li.report-icon-table::before { background-color: #475569 !important; }
.page-reportes .report-checklist li.report-icon-invoice::before,
.page-reportes .report-checklist li.report-icon-file::before { background-color: #1d4ed8 !important; }
.page-reportes .report-checklist li.report-icon-code::before { background-color: #0f172a !important; }
.page-reportes .report-checklist li.report-icon-landmark::before { background-color: #92400e !important; }

.communication-page .message-templates-card .template-action-buttons {
    justify-content: flex-start !important;
    align-items: flex-start !important;
}
.communication-page .message-templates-card .template-action-buttons .btn {
    flex: 0 1 auto !important;
    max-width: 100% !important;
    white-space: nowrap !important;
}

.pm360-shell-page .chart-card canvas,
.pm360-shell-page .chart-container canvas {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}

@media (max-width: 900px) {
    .cash-page .cash-movements-section > .panel-head.cash-movements-head,
    .caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head,
    .finance-page .finance-chart-panel > .panel-head,
    .page-fiscal .fiscal-chart-panel > .panel-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
    .finance-page .finance-chart-panel > .panel-head .chart-toggle-group,
    .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group,
    .cash-page .cash-movements-section .cash-movement-period-form,
    .caja-operativa-page .cash-movements-section .cash-movement-period-form {
        justify-content: flex-start !important;
        margin-left: 0 !important;
    }
    .finance-page .finance-insights-combined .finance-insight-grid {
        grid-template-columns: 1fr !important;
    }
}

/* RC v37 definitivo: visual final tras reparación UTF-8. */
@media (min-width: 1181px) {
    .page-pacientes .patient-record-page,
    .patient-record-page {
        overflow: visible !important;
        padding-bottom: 420px !important;
        align-items: start !important;
    }
    .page-pacientes .patient-side-column,
    .patient-side-column {
        position: sticky !important;
        top: 112px !important;
        align-self: start !important;
        max-height: none !important;
        overflow: visible !important;
        transform: none !important;
    }
}
.page-pacientes .patient-history-panel > .panel-head,
.patient-history-panel > .panel-head {
    width: auto !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    box-sizing: border-box !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
}
.cash-page .panel > .panel-head,
.caja-operativa-page .panel > .panel-head,
.page-fiscal .panel > .panel-head,
.finance-page .panel > .panel-head {
    width: auto !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    box-sizing: border-box !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
}
.cash-movements-section > .panel-head.cash-movements-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 18px !important;
}
.cash-movements-section .cash-movement-period-form {
    margin-left: auto !important;
    align-items: end !important;
    justify-content: flex-end !important;
}
.cash-movements-section .cash-movement-period-form {
    display: flex;
    flex: 1 1 560px;
    flex-wrap: wrap;
    gap: 10px;
    max-width: 760px;
}
.cash-movements-section .cash-movement-period-form label {
    display: grid;
    gap: 5px;
    min-width: 0;
    color: #334155;
    font-size: 12px;
    font-weight: 850;
}
.cash-movements-section .cash-movement-period-form .cash-period-mode { flex: 0 0 118px; }
.cash-movements-section .cash-movement-period-form :is(.cash-date-field,.cash-month-field) { flex: 1 1 190px; }
.cash-movements-section .cash-movement-period-form :is(select,input) {
    width: 100%;
    min-width: 0;
    min-height: 40px;
}
.cash-movements-section .cash-movement-period-form [hidden] { display: none !important; }
.page-fiscal .fiscal-chart-panel > .panel-head,
.finance-page .finance-chart-panel > .panel-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 18px !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head > div:first-child,
.finance-page .finance-chart-panel > .panel-head > div:first-child {
    flex: 1 1 420px !important;
    min-width: 0 !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group,
.finance-page .finance-chart-panel > .panel-head .chart-toggle-group {
    align-self: flex-end !important;
    justify-content: flex-end !important;
    margin: 0 0 0 auto !important;
    max-width: min(560px, 100%) !important;
}
.communication-page .message-templates-card .template-action-buttons {
    justify-content: flex-start !important;
    align-items: flex-start !important;
}
.communication-page .message-templates-card .template-action-buttons .btn {
    flex: 0 1 auto !important;
    max-width: 100% !important;
    white-space: nowrap !important;
}
@media (max-width: 900px) {
    .cash-page .panel > .panel-head,
    .caja-operativa-page .panel > .panel-head,
    .page-fiscal .panel > .panel-head,
    .finance-page .panel > .panel-head,
    .page-pacientes .patient-history-panel > .panel-head,
    .patient-history-panel > .panel-head {
        margin: -16px -16px 14px !important;
        padding: 16px !important;
    }
    .cash-movements-section > .panel-head.cash-movements-head,
    .page-fiscal .fiscal-chart-panel > .panel-head,
    .finance-page .finance-chart-panel > .panel-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
    .cash-movements-section .cash-movement-period-form,
    .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group,
    .finance-page .finance-chart-panel > .panel-head .chart-toggle-group {
        margin-left: 0 !important;
        justify-content: flex-start !important;
        max-width: 100%;
    }
}

/* RC v36: encabezados azules solo en header, sin hueco derecho; botones de gráficas al fondo derecho. */
.cash-page .panel > .panel-head,
.caja-operativa-page .panel > .panel-head,
.page-fiscal .panel > .panel-head,
.finance-page .panel > .panel-head {
    width: auto !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    box-sizing: border-box !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head,
.finance-page .finance-chart-panel > .panel-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 18px !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head > div:first-child,
.finance-page .finance-chart-panel > .panel-head > div:first-child {
    flex: 1 1 420px !important;
    min-width: 0 !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group,
.finance-page .finance-chart-panel > .panel-head .chart-toggle-group {
    align-self: flex-end !important;
    justify-content: flex-end !important;
    margin: 0 0 0 auto !important;
    max-width: min(560px, 100%) !important;
}
.cash-movements-section > .panel-head.cash-movements-head {
    align-items: flex-end !important;
    justify-content: space-between !important;
}
.cash-movements-section .cash-movement-period-form {
    margin-left: auto !important;
    align-items: end !important;
    justify-content: flex-end !important;
}
.communication-page .message-templates-card .template-action-buttons {
    justify-content: flex-start !important;
    align-items: flex-start !important;
}
.communication-page .message-templates-card .template-action-buttons .btn {
    flex: 0 1 auto !important;
    max-width: 100% !important;
    white-space: nowrap !important;
}
@media (max-width: 900px) {
    .cash-page .panel > .panel-head,
    .caja-operativa-page .panel > .panel-head,
    .page-fiscal .panel > .panel-head,
    .finance-page .panel > .panel-head {
        width: auto !important;
        margin: -16px -16px 14px !important;
        padding: 16px !important;
    }
    .page-fiscal .fiscal-chart-panel > .panel-head,
    .finance-page .finance-chart-panel > .panel-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
    .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group,
    .finance-page .finance-chart-panel > .panel-head .chart-toggle-group,
    .cash-movements-section .cash-movement-period-form {
        justify-content: flex-start !important;
        margin-left: 0 !important;
    }
}

/* RC final puntual: correcciones visuales y filtros solicitados antes de auditoria. */
.agenda-page .kpi-grid .card::before,
.agenda-page .kpi-grid .card::after,
.finance-page .report-section-grid .card::before,
.finance-page .report-section-grid .card::after {
    box-shadow: none !important;
    filter: none !important;
    transform: none !important;
}
.finance-page .report-section-grid .card::before,
.finance-page .report-section-grid .card::after {
    display: none !important;
}
.agenda-page .clinical-alert-subtitle {
    margin-left: 0 !important;
    padding-left: 0 !important;
    text-indent: 0 !important;
}
.agenda-page .clinical-alert-subtitle span { margin-left: 0 !important; }
.agenda-page .insight-list {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: start !important;
}
.agenda-page .insight-list .panel-title {
    grid-column: 1 / -1 !important;
    margin-bottom: 0 !important;
}
.agenda-page .insight-list .insight-auto { margin-top: 0 !important; }
.cash-movements-head {
    align-items: end !important;
    gap: 16px !important;
}
.cash-movement-period-form {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    justify-content: flex-end !important;
    align-items: end !important;
}
.cash-movement-period-form label {
    display: grid !important;
    gap: 4px !important;
    color: #334155 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
}
.cash-movement-period-form input {
    min-height: 40px !important;
    border: 1px solid #c8d8ea !important;
    border-radius: 12px !important;
    padding: 8px 10px !important;
}
.finance-page .finance-business-grid .panel p {
    margin: 0 0 14px !important;
    color: #111827 !important;
    font-size: 17px !important;
    line-height: 1.35 !important;
}
.finance-page .finance-business-grid .panel p strong {
    color: #111827 !important;
    font-weight: 800 !important;
}
.finance-page #aseguradoras-cirugia .history-pagination {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    margin-top: 14px !important;
}
.patients-page #form-paciente :is(input, select, textarea) {
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease !important;
}
.patients-page #form-paciente :is(input, select, textarea):hover { border-color: #93c5fd !important; }
.patients-page #form-paciente :is(input, select, textarea):focus,
.patients-page #form-paciente :is(input, select, textarea):focus-visible {
    background: #eff6ff !important;
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, .14) !important;
    outline: none !important;
}
.patients-page #form-paciente :is(input, select, textarea).is-filled,
.patients-page #form-paciente input[value]:not([value=""]),
.patients-page #form-paciente textarea:not(:empty) {
    background: #f0f7ff !important;
    border-color: #bfdbfe !important;
}
.patients-page #form-paciente.was-validated :is(input, select, textarea):invalid,
.patients-page #form-paciente :is(input, select, textarea):user-invalid {
    background: #fff1f2 !important;
    border-color: #fb7185 !important;
}
.patients-page #form-paciente :is(input, select, textarea):disabled {
    background: #f1f5f9 !important;
    border-color: #dbe3ee !important;
    color: #64748b !important;
}
.agenda-page .clinical-alert-subtitle,
.agenda-page .clinical-alert-subtitle span {
    color: #4b5563 !important;
}
.cash-movements-section > .panel-head.cash-movements-head {
    width: auto !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    box-sizing: border-box !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
}
.cash-movements-section .cash-movement-period-form {
    align-items: end !important;
    justify-content: flex-end !important;
    margin-left: auto !important;
}
.cash-movements-section .cash-movement-period-form :is(input,.btn) {
    min-height: 40px !important;
}
.page-fiscal .panel > .panel-head {
    width: auto !important;
    margin: -20px -20px 16px !important;
    padding: 18px 20px !important;
    box-sizing: border-box !important;
    background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important;
    border-bottom: 1px solid #cfe3f7 !important;
    border-radius: 18px 18px 0 0 !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 18px !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head > div:first-child {
    flex: 1 1 420px !important;
    min-width: 0 !important;
}
.page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group {
    align-self: flex-end !important;
    justify-content: flex-end !important;
    margin: 0 0 0 auto !important;
    max-width: min(540px, 100%) !important;
}
@media (max-width: 900px) {
    .cash-movements-section > .panel-head.cash-movements-head,
    .page-fiscal .panel > .panel-head {
        width: auto !important;
        margin: -16px -16px 14px !important;
        padding: 16px !important;
    }
    .page-fiscal .fiscal-chart-panel > .panel-head {
        align-items: flex-start !important;
        flex-direction: column !important;
    }
    .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group {
        justify-content: flex-start !important;
        margin-left: 0 !important;
        margin-top: 10px !important;
    }
}
@media (max-width: 820px) {
    .agenda-page .insight-list { grid-template-columns: 1fr !important; }
    .cash-movements-head,
    .cash-movement-period-form { justify-content: flex-start !important; }
}

/* FISCAL: KPIs mas limpios, no encimados, interpretación alineada a la izquierda. */
.page-fiscal > .content > .kpi-grid,
.page-fiscal .fiscal-cfdi-kpis,
.page-fiscal .report-section-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 14px !important;
}
.page-fiscal .kpi-grid .card,
.page-fiscal .fiscal-cfdi-kpis .card {
    min-height: 112px !important;
    padding: 18px 20px !important;
    overflow: hidden;
}
.page-fiscal .kpi-grid .kpi-label {
    font-size: 14px !important;
    line-height: 1.25;
    max-width: 100%;
}
.page-fiscal .kpi-grid .kpi-value {
    font-size: clamp(28px, 2.7vw, 42px) !important;
    line-height: 1.05;
    white-space: nowrap;
}
.page-fiscal .kpi-grid .kpi-trend {
    font-size: 13px !important;
    line-height: 1.25;
    white-space: normal !important;
}
.page-fiscal .insight-list {
    align-items: stretch !important;
    text-align: left !important;
    margin-top: 18px;
}
.page-fiscal .insight-list .panel-title {
    margin: 0 0 10px !important;
    text-align: left !important;
}
.page-fiscal .insight-list .insight-auto {
    margin: 0 0 10px !important;
    text-align: left !important;
    padding: 14px 16px !important;
}
.page-fiscal .chart-toggle-group .chart-toggle {
    min-height: 38px !important;
    padding: 8px 12px !important;
    font-size: 14px !important;
}

/* REPORTES: vista previa y resumen ejecutivo con números alineados. */
.page-reportes .report-preview-grid {
    grid-template-columns: repeat(2, minmax(420px, 1fr)) !important;
    gap: 22px !important;
    align-items: stretch;
}
.page-reportes .report-preview-card {
    min-height: 0 !important;
    padding: 22px 24px !important;
}
.page-reportes .report-preview-card .report-checklist {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
    gap: 10px !important;
}
.page-reportes .report-preview-card .report-check-item,
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    min-width: 0 !important;
    min-height: 48px !important;
    padding: 9px 12px 9px 38px !important;
}
.page-reportes .report-preview-card .report-check-label,
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    font-size: 15px !important;
    line-height: 1.25 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}
.page-reportes .report-preview-card .actions-inline {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 10px !important;
    margin-top: auto;
}
.page-reportes .report-preview-card .actions-inline .btn,
.page-reportes .report-preview-card .actions-inline .report-preview-modal-trigger {
    min-width: 0 !important;
    width: 100%;
    min-height: 40px !important;
    padding: 9px 11px !important;
    font-size: 15px !important;
}
.page-reportes #resumen-reporte-ejecutivo .report-section-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 14px !important;
}
.page-reportes #resumen-reporte-ejecutivo .card {
    min-height: 112px !important;
    padding: 18px 20px !important;
    display: grid;
    grid-template-columns: minmax(0, auto) minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    column-gap: 10px;
    align-items: center;
}
.page-reportes #resumen-reporte-ejecutivo .kpi-label {
    grid-column: 1 / -1;
    font-size: 14px !important;
    line-height: 1.2;
}
.page-reportes #resumen-reporte-ejecutivo .kpi-value {
    grid-column: 1 / span 1;
    font-size: clamp(24px, 2.2vw, 34px) !important;
    line-height: 1.05 !important;
    white-space: nowrap;
}
.page-reportes #resumen-reporte-ejecutivo .kpi-trend {
    grid-column: 2 / span 1;
    align-self: center;
    font-size: 13px !important;
    line-height: 1.25;
    white-space: normal !important;
    color: #0f6bc4;
    font-weight: 700;
}

@media (max-width: 1280px) {
    .page-reportes .report-preview-grid { grid-template-columns: 1fr 1fr !important; }
    .page-reportes .report-preview-card .report-checklist { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important; }
}
@media (max-width: 1100px) {
    .agenda-page .agenda-alert-carousel { grid-template-columns: 1fr; }
    .agenda-page .agenda-alert-carousel-controls { justify-content: flex-start; min-width: 0; }
    .surgeries-page .surgery-agenda-selector-unified .surgery-search-result { grid-template-columns: 1fr !important; }
    .surgeries-page .surgery-agenda-selector-unified .surgery-result-action { justify-self: start; }
    .page-reportes .report-preview-grid { grid-template-columns: 1fr !important; }
}
@media (max-width: 760px) {
    .clinical-documents-panel .clinical-document-action { grid-template-columns: 56px minmax(0,1fr); min-height: 96px !important; }
    .clinical-documents-panel .clinical-document-action-icon { width: 52px !important; height: 52px !important; }
    .page-reportes .report-preview-card .actions-inline { grid-template-columns: 1fr !important; }
    .page-reportes #resumen-reporte-ejecutivo .card { grid-template-columns: 1fr; }
    .page-reportes #resumen-reporte-ejecutivo .kpi-trend { grid-column: 1; }
    .communication-page .communication-insight-list, .communication-page .metric-list { grid-template-columns: 1fr !important; }
}

/* v29 visual QA - respaldo global para zoom 60/80/100 sin botones verticales. */
.page-reportes .report-preview-card .report-checklist {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px 16px !important;
    align-items: center !important;
}
.page-reportes .report-preview-card .report-check-item,
.page-reportes #vista-previa-fiscal .report-check-item:last-child {
    display: inline-flex !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: max-content !important;
    max-width: 100% !important;
    min-height: 34px !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}
.page-reportes .report-preview-card .report-check-label,
.page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label {
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}
.page-reportes .report-preview-card .actions-inline {
    display: flex !important;
    flex-wrap: wrap !important;
}
.page-reportes .report-preview-card .actions-inline .btn {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    width: auto !important;
    white-space: nowrap !important;
}

/* RC v33.2 final: importes largos visibles en KPIs globales, Finanzas, Fiscal, Reportes y Caja. */
.finance-page .finance-kpi-grid .kpi-value,
.finance-page .report-section-grid .kpi-value,
.page-fiscal .kpi-grid .kpi-value,
.page-reportes #resumen-reporte-ejecutivo .kpi-value,
.pm360-shell-page .kpi-value,
.kpi-grid .kpi-value,
.cash-kpi-grid .kpi-value {
    max-width: 100% !important;
    width: 100% !important;
    padding-right: 0 !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    font-size: clamp(23px, 2vw, 32px) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.045em !important;
    font-variant-numeric: tabular-nums !important;
}

/* RC safe restore final tail. */
@media (min-width: 1181px) {
    .page-pacientes .patient-record-page { overflow: visible !important; padding-bottom: 0 !important; }
    .page-pacientes .patient-side-column { position: sticky !important; top: 96px !important; align-self: start !important; max-height: none !important; overflow: visible !important; transform: none !important; z-index: 3 !important; }
}
.page-pacientes .patient-profile-card { padding: 18px 22px !important; }
.page-pacientes .patient-profile-identity { gap: 10px !important; margin-bottom: 12px !important; }
.page-pacientes .patient-executive-card { margin-top: 12px !important; }
.page-pacientes .patient-executive-card .panel-head { padding: 14px 16px !important; margin: 0 0 12px !important; }
.page-pacientes .patient-executive-kpis { gap: 10px !important; }
.page-pacientes .patient-executive-kpis .card { min-height: 86px !important; padding: 13px 14px !important; }
.page-pacientes .patient-history-panel > .panel-head { width: calc(100% + 40px) !important; max-width: none !important; margin: -20px -20px 16px !important; padding: 18px 20px !important; background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important; border-bottom: 1px solid #cfe3f7 !important; border-radius: 18px 18px 0 0 !important; box-sizing: border-box !important; }
.cash-page .cash-kpi-grid .card, .caja-operativa-page .cash-kpi-grid .card { overflow: hidden !important; }
.cash-page .cash-kpi-grid .card::before, .cash-page .cash-kpi-grid .card::after, .caja-operativa-page .cash-kpi-grid .card::before, .caja-operativa-page .cash-kpi-grid .card::after { display: none !important; content: none !important; }
.cash-page .cash-kpi-grid .cash-kpi-icon, .caja-operativa-page .cash-kpi-grid .cash-kpi-icon { display: block !important; width: 38px !important; height: 38px !important; padding: 12px !important; border-radius: 16px !important; background: #eef6ff !important; border: 1px solid #bfdbfe !important; box-sizing: content-box !important; }
.cash-page .cash-kpi-grid .kpi-wallet .cash-kpi-icon { color: #2563eb !important; background: #eff6ff !important; }
.cash-page .cash-kpi-grid .kpi-chart .cash-kpi-icon { color: #059669 !important; background: #ecfdf5 !important; }
.cash-page .cash-kpi-grid .kpi-alert-circle .cash-kpi-icon { color: #dc2626 !important; background: #fff1f2 !important; }
.cash-page .cash-kpi-grid .kpi-calendar-clock .cash-kpi-icon { color: #d97706 !important; background: #fffbeb !important; }
.cash-page .cash-kpi-grid .kpi-shield-medical .cash-kpi-icon { color: #7c3aed !important; background: #f5f3ff !important; }
.cash-page .cash-movements-section > .panel-head.cash-movements-head, .caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head, .finance-page .panel > .panel-head, .page-fiscal .panel > .panel-head { width: calc(100% + 40px) !important; max-width: none !important; margin: -20px -20px 16px !important; padding: 18px 20px !important; background: linear-gradient(135deg, #eef6ff 0%, #f8fbff 100%) !important; border-bottom: 1px solid #cfe3f7 !important; border-radius: 18px 18px 0 0 !important; box-sizing: border-box !important; }
.cash-page .cash-movements-section > .panel-head.cash-movements-head, .caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head, .finance-page .finance-chart-panel > .panel-head, .page-fiscal .fiscal-chart-panel > .panel-head { display: flex !important; align-items: flex-end !important; justify-content: space-between !important; gap: 18px !important; }
.cash-page .cash-movements-section .cash-movement-period-form, .caja-operativa-page .cash-movements-section .cash-movement-period-form { display: flex !important; align-items: flex-end !important; justify-content: flex-end !important; flex-wrap: wrap !important; gap: 10px !important; margin: 0 0 0 auto !important; }
.finance-page .finance-chart-panel > .panel-head > div:first-child, .page-fiscal .fiscal-chart-panel > .panel-head > div:first-child { min-width: 0 !important; flex: 1 1 420px !important; }
.finance-page .finance-chart-panel > .panel-head .chart-toggle-group, .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group { align-self: flex-end !important; justify-content: flex-end !important; margin: 0 0 0 auto !important; max-width: min(560px, 100%) !important; }
.finance-page .finance-insights-combined .finance-insight-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
.finance-page .finance-insights-combined .alert-card { position: relative !important; min-height: 58px !important; padding: 16px 18px 16px 52px !important; border-radius: 14px !important; font-weight: 800 !important; color: #1e3a5f !important; background: #eef6ff !important; border: 1px solid #bfdbfe !important; }
.finance-page .finance-insights-combined .alert-card::before { content: "" !important; position: absolute !important; left: 18px !important; top: 50% !important; width: 14px !important; height: 14px !important; border-radius: 999px !important; transform: translateY(-50%) !important; background: #2563eb !important; box-shadow: 0 0 0 7px rgba(37,99,235,.12) !important; }
.finance-page .finance-insights-combined .alert-card:nth-child(2n)::before { background: #10b981 !important; box-shadow: 0 0 0 7px rgba(16,185,129,.14) !important; }
.finance-page .finance-insights-combined .alert-card:nth-child(3n)::before { background: #f59e0b !important; box-shadow: 0 0 0 7px rgba(245,158,11,.16) !important; }
.finance-page .chart-grid + .insight-list { display: none !important; }
.page-reportes .report-preview-card .report-checklist { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important; gap: 10px !important; }
.page-reportes .report-preview-card .report-check-item, .page-reportes #vista-previa-fiscal .report-check-item:last-child { display: grid !important; grid-template-columns: 22px minmax(0, 1fr) !important; align-items: center !important; gap: 10px !important; width: 100% !important; min-width: 0 !important; min-height: 52px !important; padding: 10px 12px !important; border: 1px solid #dbe7f4 !important; border-radius: 12px !important; background: #f8fbff !important; box-shadow: none !important; overflow: hidden !important; }
.page-reportes .report-preview-card .report-check-item::before, .page-reportes #vista-previa-fiscal .report-check-item:last-child::before { position: static !important; width: 19px !important; height: 19px !important; margin: 0 !important; transform: none !important; -webkit-mask-size: 18px 18px !important; mask-size: 18px 18px !important; }
.page-reportes .report-preview-card .report-check-label, .page-reportes #vista-previa-fiscal .report-check-item:last-child .report-check-label { min-width: 0 !important; margin: 0 !important; color: #294767 !important; font-size: 15px !important; line-height: 1.25 !important; text-align: left !important; white-space: normal !important; overflow-wrap: anywhere !important; }
.page-reportes .report-checklist li.report-icon-document::before { background-color: #2563eb !important; }
.page-reportes .report-checklist li.report-icon-chart::before { background-color: #0891b2 !important; }
.page-reportes .report-checklist li.report-icon-wallet::before, .page-reportes .report-checklist li.report-icon-wallet-alert::before { background-color: #0f766e !important; }
.page-reportes .report-checklist li.report-icon-calculator::before { background-color: #ea580c !important; }
.page-reportes .report-checklist li.report-icon-lightbulb::before { background-color: #ca8a04 !important; }
.page-reportes .report-checklist li.report-icon-ranking::before { background-color: #7c3aed !important; }
.page-reportes .report-checklist li.report-icon-table::before { background-color: #475569 !important; }
.page-reportes .report-checklist li.report-icon-invoice::before, .page-reportes .report-checklist li.report-icon-file::before { background-color: #1d4ed8 !important; }
.page-reportes .report-checklist li.report-icon-code::before { background-color: #0f172a !important; }
.page-reportes .report-checklist li.report-icon-landmark::before { background-color: #92400e !important; }
.communication-page .message-templates-card .template-action-buttons { justify-content: flex-start !important; align-items: flex-start !important; }
.communication-page .message-templates-card .template-action-buttons .btn { flex: 0 1 auto !important; max-width: 100% !important; white-space: nowrap !important; }
.pm360-shell-page .chart-card canvas, .pm360-shell-page .chart-container canvas { display: block !important; visibility: visible !important; opacity: 1 !important; }
@media (max-width: 900px) {
    .cash-page .cash-movements-section > .panel-head.cash-movements-head, .caja-operativa-page .cash-movements-section > .panel-head.cash-movements-head, .finance-page .finance-chart-panel > .panel-head, .page-fiscal .fiscal-chart-panel > .panel-head { align-items: flex-start !important; flex-direction: column !important; }
    .finance-page .finance-chart-panel > .panel-head .chart-toggle-group, .page-fiscal .fiscal-chart-panel > .panel-head .chart-toggle-group, .cash-page .cash-movements-section .cash-movement-period-form, .caja-operativa-page .cash-movements-section .cash-movement-period-form { justify-content: flex-start !important; margin-left: 0 !important; }
    .finance-page .finance-insights-combined .finance-insight-grid { grid-template-columns: 1fr !important; }
}
/* PRUEBA WORKSPACE */

/* Temporal filter shared across analytics modules. */
.filter-grid .filter-field select[name="periodo_valor"],
.filter-grid .filter-field select[name="analytics_periodo_valor"]{min-width:220px;}
.filter-grid{align-items:end;}
.agenda-analytics-filter{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:8px 0;max-width:100%;}
.agenda-analytics-filter .filter-field{min-width:150px;flex:1 1 150px;}
.agenda-analytics-filter .filter-actions{flex:0 0 auto;}
.agenda-analytics-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px;}
@media(max-width:760px){.agenda-analytics-filter .filter-field,.agenda-analytics-filter .filter-actions{flex:1 1 100%;}.filter-grid .filter-field select[name="periodo_valor"],.filter-grid .filter-field select[name="analytics_periodo_valor"]{min-width:0;width:100%;}}

/* PM360 Fase 5: correcciones visuales aisladas, basadas en estados y capacidad real. */
/* GLOBAL-001: un estado vacío no necesita reservar el alto de una gráfica con datos. */
.finance-page .finance-chart-panel:has(> .no-data) .chart-grid,
.page-reportes #graficas-reportes:has(> .no-data) .chart-grid {
    gap: 12px !important;
    margin-bottom: 0 !important;
}
.finance-page .finance-chart-panel:has(> .no-data) .chart-card,
.page-reportes #graficas-reportes:has(> .no-data) .chart-card {
    min-height: 0 !important;
    padding: 14px !important;
}
.finance-page .finance-chart-panel:has(> .no-data) .chart-card canvas,
.page-reportes #graficas-reportes:has(> .no-data) .chart-card canvas {
    height: 96px !important;
    min-height: 96px !important;
}

/* ROOT-003: las etiquetas completas siguen siendo tabs y conservan foco/estado activo. */
@media (max-width: 480px) {
    .page-configuracion .config-section-tabs {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        overflow: visible !important;
        gap: 6px !important;
    }
    .page-configuracion .config-section-tabs a {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        justify-content: flex-start !important;
        text-align: left !important;
        white-space: normal !important;
    }
    .page-configuracion .config-section-tabs a span {
        white-space: normal !important;
        overflow-wrap: break-word !important;
    }
}
@media (min-width: 481px) and (max-width: 760px) {
    .page-configuracion .config-section-tabs {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        overflow: visible !important;
        gap: 6px !important;
    }
    .page-configuracion .config-section-tabs a {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        justify-content: flex-start !important;
        text-align: left !important;
        white-space: normal !important;
    }
    .page-configuracion .config-section-tabs a span {
        white-space: normal !important;
        overflow-wrap: break-word !important;
    }
}

/* GLOBAL-002: agrupar controles relacionados sólo donde cada control conserva su medida táctil. */
@media (max-width: 600px) {
    .agenda-page .filter-grid,
    .finance-page .filter-panel .filter-grid,
    .page-reportes > .filter-panel .filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .agenda-page .filter-grid > .filter-field,
    .finance-page .filter-panel .filter-grid > .filter-field,
    .page-reportes > .filter-panel .filter-grid > .filter-field {
        min-width: 0 !important;
    }
    .agenda-page .filter-grid > .filter-field:nth-child(1),
    .agenda-page .filter-grid > .filter-field:nth-child(3),
    .agenda-page .filter-grid > .filter-actions,
    .page-reportes > .filter-panel .filter-grid > .filter-field:nth-child(1),
    .page-reportes > .filter-panel .filter-grid > .filter-actions {
        grid-column: 1 / -1 !important;
    }
    .finance-page .filter-panel .filter-actions {
        grid-column: 1 / -1 !important;
    }
    .agenda-page .filter-grid input,
    .agenda-page .filter-grid select,
    .finance-page .filter-panel .filter-grid input,
    .finance-page .filter-panel .filter-grid select,
    .page-reportes > .filter-panel .filter-grid input,
    .page-reportes > .filter-panel .filter-grid select {
        min-width: 0 !important;
        width: 100% !important;
    }
    .agenda-page .filter-grid .view-switch {
        width: 100% !important;
    }
    .page-reportes #reportes-programados .filter-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
    .page-reportes #reportes-programados .filter-grid > .filter-field {
        min-width: 0 !important;
    }
    .page-reportes #reportes-programados .filter-actions {
        grid-column: 1 / -1 !important;
    }
    .page-reportes #reportes-programados .filter-actions .btn {
        width: 100% !important;
        min-width: 0 !important;
    }
}

@media (max-width: 520px) {
    .communication-page .conversations-card .communication-table table {
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        table-layout: fixed !important;
    }
    .communication-page .conversations-card .communication-table th,
    .communication-page .conversations-card .communication-table td {
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }
    .communication-page .conversations-card .communication-table td:last-child {
        min-width: 0 !important;
        white-space: normal !important;
    }
    .communication-page .conversations-card .communication-table .btn-whatsapp {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        justify-content: center !important;
        padding-inline: 8px !important;
        white-space: normal !important;
    }
}

/* Phase 8 definitive layout correction: one source per breakpoint. */
.pm360-shell-page .sidebar {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-gutter: auto;
}
.pm360-shell-page :is(.individual-sidebar-nav, .clinic-sidebar-nav) {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    flex: 0 0 auto !important;
    gap: 4px;
    width: 100%;
    min-width: 0;
    max-height: none;
    overflow: visible;
    padding-right: 0;
}
.pm360-shell-page :is(.individual-sidebar-nav, .clinic-sidebar-nav) > .nav-link {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    flex-basis: auto;
    gap: 10px;
    width: 100%;
    min-width: 0;
    min-height: 40px;
    height: auto;
    padding: 8px 10px;
    line-height: 1.25;
    white-space: normal;
    word-break: normal;
    overflow-wrap: normal;
}
.pm360-shell-page :is(.individual-sidebar-nav, .clinic-sidebar-nav) > .nav-link > .nav-dot {
    flex: 0 0 22px;
}
.pm360-shell-page .sidebar > .superadmin-sidebar-nav {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    flex: 0 0 auto !important;
    gap: 5px;
    width: 100%;
    min-width: 0;
    max-height: none;
    overflow: visible;
    padding-right: 0;
}
.pm360-shell-page .superadmin-sidebar-nav > .superadmin-nav {
    display: grid;
    align-content: start;
    gap: 5px;
    height: max-content;
    min-height: max-content;
}
.pm360-shell-page .sidebar:has(> .superadmin-sidebar-nav) {
    gap: 10px !important;
    padding-block: 12px !important;
}
.pm360-shell-page .sidebar:has(> .superadmin-sidebar-nav) .sidebar-brand {
    min-height: 62px;
    padding: 10px;
}
.pm360-shell-page .superadmin-sidebar-nav .superadmin-nav-group-summary {
    min-height: 40px;
    padding: 8px 10px;
}
.pm360-shell-page .superadmin-sidebar-nav .superadmin-nav-items {
    gap: 3px;
    padding: 4px 0 6px 18px;
}
.pm360-shell-page .superadmin-sidebar-nav .superadmin-nav-group:not([open]) > .superadmin-nav-items {
    display: none;
}
.pm360-shell-page .superadmin-sidebar-nav .superadmin-nav-items .nav-link {
    min-height: 36px;
    padding: 7px 9px;
}
.pm360-shell-page .sidebar-footer {
    margin-top: 8px !important;
}
.pm360-shell-page .sidebar:has(> .superadmin-sidebar-nav) .sidebar-footer {
    margin-top: 6px !important;
}

@media (min-width: 641px) and (max-height: 640px) {
    .pm360-shell-page .sidebar:has(> .superadmin-sidebar-nav) {
        gap: 7px !important;
        padding-block: 10px !important;
    }
    .pm360-shell-page .sidebar:has(> .superadmin-sidebar-nav) .sidebar-brand {
        min-height: 58px;
        padding: 8px;
    }
    .pm360-shell-page .superadmin-sidebar-nav .superadmin-nav-group-summary {
        min-height: 38px;
        padding: 7px 9px;
    }
    .pm360-shell-page .superadmin-sidebar-nav .superadmin-nav-items {
        padding: 3px 0 4px 16px;
    }
    .pm360-shell-page .superadmin-sidebar-nav .superadmin-nav-items .nav-link {
        min-height: 34px;
        padding: 6px 8px;
    }
    .pm360-shell-page .sidebar:has(> .superadmin-sidebar-nav) .sidebar-footer {
        margin-top: 3px !important;
    }
}

@media (max-width: 1020px) {
    .pm360-shell-page .topbar {
        justify-content: flex-start;
    }
    .pm360-shell-page .topbar > :first-child,
    .pm360-shell-page .topbar > .actions-inline {
        flex: 0 1 auto;
    }
    .pm360-shell-page .topbar > .actions-inline .btn {
        flex: 0 1 auto;
        min-height: 40px;
    }
}

@media (max-width: 760px) {
    .pm360-shell-page .topbar {
        min-height: 0;
        padding-block: 14px;
    }
    .pm360-shell-page .topbar > .actions-inline {
        gap: 10px;
    }
    .pm360-shell-page .topbar > .actions-inline .btn {
        height: auto;
        min-width: 0;
    }
    .pm360-shell-page .panel > .panel-head,
    .pm360-shell-page .communication-card > .section-title-row {
        position: relative;
        height: auto;
        min-height: 0;
        justify-content: flex-start;
        padding-left: 30px !important;
    }
    .pm360-shell-page .panel > .panel-head > :first-child,
    .pm360-shell-page .communication-card > .section-title-row > :first-child {
        flex: 0 1 auto;
        width: 100%;
        margin-right: 0;
    }
    .pm360-shell-page .panel > .panel-head::before,
    .pm360-shell-page .communication-card > .section-title-row::before {
        position: absolute;
        top: 14px;
        bottom: 14px;
        left: 16px;
        width: 4px;
        height: auto;
        min-height: 0;
        margin: 0;
    }
}

body.page-reportes .content > .kpi-grid:first-child > .card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 10px;
}
/* CSP-safe equivalents for legacy role visibility and logout presentation. */
.pm-hidden{display:none!important}
.pm-display-contents{display:contents}
.pm-nav-logout-reset{background:none;border:0;font:inherit;text-align:left;cursor:pointer}
.pm360-environment-banner{position:sticky;top:0;z-index:1200;width:100%;box-sizing:border-box;padding:7px 16px;background:#eef6ff;color:#24527a;border-bottom:1px solid #b9d7f2;text-align:center;font:700 12px/1.35 system-ui,sans-serif;letter-spacing:.08em}
@media(max-width:640px){.pm360-environment-banner{padding:6px 58px 6px 12px;font-size:11px}}

/* PM360 Fase 5: precedencia final de los tres cambios aislados. */
@media (max-width: 480px) {
    .page-configuracion .config-section-tabs { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; overflow: visible !important; gap: 6px !important; }
    .page-configuracion .config-section-tabs a { width: 100% !important; min-width: 0 !important; max-width: none !important; justify-content: flex-start !important; text-align: left !important; white-space: normal !important; }
    .page-configuracion .config-section-tabs a span { white-space: normal !important; overflow-wrap: break-word !important; }
}
@media (min-width: 481px) and (max-width: 760px) {
    .page-configuracion .config-section-tabs { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; overflow: visible !important; gap: 6px !important; }
    .page-configuracion .config-section-tabs a { width: 100% !important; min-width: 0 !important; max-width: none !important; justify-content: flex-start !important; text-align: left !important; white-space: normal !important; }
    .page-configuracion .config-section-tabs a span { white-space: normal !important; overflow-wrap: break-word !important; }
}
@media (max-width: 600px) {
    .agenda-page .filter-grid, .finance-page .filter-panel .filter-grid, .page-reportes > .filter-panel .filter-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
    .agenda-page .filter-grid > .filter-field, .finance-page .filter-panel .filter-grid > .filter-field, .page-reportes > .filter-panel .filter-grid > .filter-field { min-width: 0 !important; }
    .agenda-page .filter-grid > .filter-field:nth-child(1), .agenda-page .filter-grid > .filter-field:nth-child(3), .agenda-page .filter-grid > .filter-actions, .page-reportes > .filter-panel .filter-grid > .filter-field:nth-child(1), .page-reportes > .filter-panel .filter-grid > .filter-actions, .finance-page .filter-panel .filter-actions { grid-column: 1 / -1 !important; }
    .agenda-page .filter-grid input, .agenda-page .filter-grid select, .finance-page .filter-panel .filter-grid input, .finance-page .filter-panel .filter-grid select, .page-reportes > .filter-panel .filter-grid input, .page-reportes > .filter-panel .filter-grid select { min-width: 0 !important; width: 100% !important; }
    .agenda-page .filter-grid .view-switch { width: 100% !important; }
}
@media (min-width: 380px) and (max-width: 600px) {
    .page-reportes #reportes-programados .filter-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
    .page-reportes #reportes-programados .filter-field { min-width: 0 !important; }
    .page-reportes #reportes-programados .filter-actions { grid-column: 1 / -1 !important; }
    .page-reportes #reportes-programados .filter-actions .btn { width: 100% !important; min-width: 0 !important; }
}
@media (max-width: 379px) { .page-reportes #reportes-programados .filter-grid { grid-template-columns: 1fr !important; } }
