/* ============================================================
   Intelli Clinic · Diseño Premium (autónomo, sin Bootstrap/Velzon)
   Estética minimalista-SaaS "Flat 2.0": un solo acento (teal salud),
   superficies planas, esquinas suaves, sombra única, mucho aire.
   Cambiar --pc-accent re-tematiza todo el sistema.
   ============================================================ */

:root {
    /* Acento de marca — teal (salud/bienestar) */
    --pc-accent: #0f766e;
    --pc-accent-strong: #0b5c55;
    --pc-accent-soft: #e1f5ee;
    --pc-accent-ring: rgba(15, 118, 110, .16);

    /* Sidebar (teal profundo, plano) */
    --sidebar-bg: #0c3f3a;
    --sidebar-bg-2: #0a352f;
    --sidebar-text: #cfe6e2;
    --sidebar-muted: #7fb0aa;

    /* Neutros */
    --pc-bg: #f4f7f8;
    --pc-surface: #ffffff;
    --pc-surface-muted: #f7fafa;
    --pc-text: #172a34;
    --pc-text-muted: #5c6f79;
    --pc-border: #e3e9ec;

    /* Estados semánticos */
    --ok: #0f7454;
    --ok-soft: #daf4eb;
    --warn: #9a5b04;
    --warn-soft: #fdf1dd;
    --danger: #b42318;
    --danger-soft: #fdecea;
    --info: #175cd3;

    /* Geometría */
    --pc-radius-card: 16px;
    --pc-radius: 12px;
    --pc-radius-sm: 9px;
    --pc-shadow-sm: 0 1px 2px rgba(12, 63, 58, .06);
    --pc-shadow: 0 18px 44px -22px rgba(12, 63, 58, .30);
    --pc-focus: 0 0 0 4px var(--pc-accent-ring);

    /* Aliases retenidos para estilos inline heredados en vistas */
    --border: var(--pc-border);
    --text: var(--pc-text);
    --muted: var(--pc-text-muted);
    --surface: var(--pc-surface);
    --accent: var(--pc-accent);
    --accent-600: var(--pc-accent-strong);
    /* Contrato visual compartido por componentes nuevos y temas. */
    --pc-card: var(--pc-surface);
    --pc-soft: var(--pc-surface-muted);
    --pc-ink: var(--pc-text);
    --pc-muted: var(--pc-text-muted);
    --pc-success: var(--ok);
}

/* POS v7: flujo táctil, auditable y optimizado para PWA. */
.pos-page{max-width:1540px;margin:0 auto 80px}.pos-page-head{margin-bottom:22px}.pos-cash-pill{display:flex;align-items:center;gap:12px;padding:12px 18px;border:1px solid #e7e2ef;border-radius:18px;background:#fff}.pos-cash-pill div{display:grid;gap:2px}.pos-cash-pill small{color:#8a8097;font-size:.82rem}.pos-cash-dot{width:12px;height:12px;border-radius:50%;background:#ef476f;box-shadow:0 0 0 6px #fff0f4}.pos-cash-pill.is-open .pos-cash-dot{background:#00a878;box-shadow:0 0 0 6px #e4faf3}.pos-notice{display:flex;align-items:center;gap:14px;padding:14px 18px;margin-bottom:18px;border:1px solid #ffd38b;border-radius:18px;background:#fff8e8;color:#74500a}.pos-notice>span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:#ffedbd;font-weight:900}.pos-notice div{display:grid;flex:1}.pos-notice small{margin-top:2px}.pos-notice a{font-weight:800;color:#7955f7}.pos-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;gap:22px;align-items:start}.pos-workspace{display:grid;gap:18px}.pos-card,.pos-summary{background:#fff;border:1px solid #e7e2ef;border-radius:24px;box-shadow:0 12px 34px rgba(38,23,66,.05)}.pos-card{padding:24px}.pos-card.has-error{border-color:#ef476f;box-shadow:0 0 0 4px #fff0f4}.pos-card-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}.pos-card-head h2{margin:0;color:#171225;font-size:1.22rem}.pos-card-head p{margin:4px 0 0;color:#81768f;font-size:.92rem}.pos-step{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:12px;color:#6d3df5;background:#eee7ff;font-weight:900}.pos-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin-bottom:20px;border-radius:15px;background:#f5f2fa}.pos-mode-switch button{min-height:44px;border:0;border-radius:11px;background:transparent;color:#746a80;font-weight:800;cursor:pointer}.pos-mode-switch button.is-active{background:#fff;color:#6d3df5;box-shadow:0 5px 16px rgba(50,32,76,.09)}.pos-mode-switch span{display:inline-grid;place-items:center;min-width:23px;height:23px;margin-left:5px;border-radius:50%;background:#eee7ff}.pos-label{display:block;margin-bottom:8px;color:#52485e;font-size:.86rem;font-weight:800}.pos-money-input{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:0 18px;border:2px solid #dcd4e8;border-radius:18px;background:#fbfaff;transition:.2s}.pos-money-input:focus-within{border-color:#7955f7;box-shadow:0 0 0 5px #f0ebff}.pos-money-input>span{font-size:1.8rem;font-weight:800;color:#786e83}.pos-money-input input{width:100%;height:72px;border:0!important;background:transparent!important;box-shadow:none!important;font-size:2.1rem;font-weight:900;color:#171225}.pos-money-input b{color:#7955f7}.pos-currency-row{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap}.pos-currency-row>label{padding:9px 14px;border:1px solid #e4deeb;border-radius:12px;font-weight:800;cursor:pointer}.pos-currency-row input{accent-color:#7955f7}.pos-fx{display:flex;align-items:center;gap:8px;margin-left:auto;color:#776c83;font-size:.84rem}.pos-fx input{width:105px;height:40px}.pos-search,.pos-select{width:100%;height:50px;border:1px solid #dfd8e8;border-radius:14px;background:#faf8fd;padding:0 15px;color:#272031;font-size:.94rem}.pos-select{margin-top:10px}.pos-quote-list{display:grid;gap:8px;max-height:330px;margin-top:10px;overflow:auto;overscroll-behavior:contain}.pos-quote{display:grid;grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid #e7e1ed;border-radius:16px;background:#fff;text-align:left;color:#2c2437;cursor:pointer}.pos-quote:hover,.pos-quote.is-selected{border-color:#7955f7;background:#f7f3ff}.pos-quote>span:nth-child(2){display:grid;gap:3px}.pos-quote small{color:#887d93}.pos-quote>b{color:#5e36dd}.pos-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:linear-gradient(135deg,#ece4ff,#dff7f1);color:#7040ef;font-weight:900}.pos-empty{display:grid;place-items:center;gap:7px;padding:30px;border:1px dashed #dcd4e8;border-radius:18px;text-align:center;color:#83788f}.pos-empty strong{color:#2d2637}.pos-empty a{margin-top:6px;color:#7040ef;font-weight:800}.pos-methods{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pos-methods label{position:relative;display:grid;place-items:center;gap:5px;min-height:130px;padding:14px;border:1px solid #e4deea;border-radius:18px;text-align:center;cursor:pointer}.pos-methods label:has(input:checked){border-color:#7955f7;background:#f6f2ff;box-shadow:inset 0 0 0 1px #7955f7}.pos-methods input{position:absolute;opacity:0}.pos-methods small{color:#8b8096}.pos-methods .is-disabled{opacity:.5;cursor:not-allowed}.pos-method-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:#ede6ff;color:#7040ef;font-size:1.2rem;font-weight:900}.pos-summary{position:sticky;top:112px;padding:22px}.pos-summary-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid #ece7f1;font-weight:900}.pos-summary-head b{padding:6px 10px;border-radius:20px;background:#eee7ff;color:#7040ef;font-size:.72rem;text-transform:uppercase}.pos-summary-patient{display:flex;align-items:center;gap:12px;padding:20px 0}.pos-summary-patient div{display:grid;gap:3px}.pos-summary-patient small{color:#8b8096}.pos-summary dl{display:grid;gap:0;margin:0}.pos-summary dl div{display:flex;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid #f0ecf3}.pos-summary dt{color:#85798f}.pos-summary dd{margin:0;text-align:right;font-weight:800}.pos-total{display:grid;gap:3px;margin:18px -6px;padding:18px;border-radius:18px;background:linear-gradient(135deg,#2b1953,#7840ee 65%,#bd35c6);color:#fff}.pos-total strong{font-size:2rem}.pos-total small{color:#e9dcff}.pos-pay-btn{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:58px;padding:0 18px;border:0;border-radius:16px;background:linear-gradient(135deg,#713cf2,#bf31c6);color:#fff;font-size:1rem;font-weight:900;box-shadow:0 12px 24px rgba(116,61,239,.24);cursor:pointer}.pos-pay-btn:disabled{opacity:.65}.pos-cancel{display:block;margin-top:16px;text-align:center;color:#766b82;font-weight:700}.pos-security{text-align:center;color:#008e69;font-size:.76rem}.pos-mobile-checkout{display:none}

@media(max-width:980px){.pos-page{margin-bottom:110px}.pos-page-head{align-items:flex-start}.pos-layout{display:block}.pos-workspace{gap:14px}.pos-card{padding:18px;border-radius:20px}.pos-summary{position:static;margin-top:14px;padding:18px}.pos-summary .pos-pay-btn,.pos-summary .pos-cancel{display:none}.pos-methods{grid-template-columns:repeat(3,1fr)}.pos-mobile-checkout{position:fixed;z-index:90;right:12px;bottom:12px;left:12px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 10px 10px 16px;border:1px solid rgba(255,255,255,.55);border-radius:20px;background:rgba(35,23,54,.96);color:#fff;box-shadow:0 16px 42px rgba(26,15,44,.35);backdrop-filter:blur(16px)}.pos-mobile-checkout div{display:grid}.pos-mobile-checkout small{color:#cfc3df}.pos-mobile-checkout strong{font-size:1.2rem}.pos-mobile-checkout button{min-width:145px;min-height:50px;border:0;border-radius:14px;background:linear-gradient(135deg,#7a46f7,#c333c8);color:#fff;font-weight:900}.pos-notice{align-items:flex-start;flex-wrap:wrap}.pos-notice a{width:100%;padding-left:48px}}
@media(max-width:600px){.pos-page-head{gap:12px}.pos-page-head h1{font-size:1.8rem}.pos-cash-pill{width:100%;box-sizing:border-box}.pos-card-head p{font-size:.84rem}.pos-money-input input{height:62px;font-size:1.75rem}.pos-methods{grid-template-columns:1fr}.pos-methods label{grid-template-columns:44px 1fr;grid-template-rows:auto auto;justify-items:start;min-height:78px;text-align:left}.pos-method-icon{grid-row:1/3}.pos-quote{grid-template-columns:42px minmax(0,1fr)}.pos-quote>b{grid-column:2}.pos-summary dl div{font-size:.9rem}.pos-mobile-checkout button{min-width:125px}}

@media print{.sidebar,.sidebar-overlay,.topbar,.pos-cancel,.receipt-actions,.refund-card{display:none!important}.app-main,.main-inner{margin:0!important;padding:0!important;background:#fff!important}.receipt-page{margin:0 auto!important}.receipt-paper{box-shadow:none!important}}

.billing-hub{max-width:1540px;margin:0 auto}.billing-kpis .ops-kpi{font:inherit;text-align:left;cursor:pointer}.billing-kpis .ops-kpi.is-active{border-color:#8c64f9;box-shadow:inset 0 -3px #8c64f9,0 10px 28px rgba(56,35,87,.06)}.billing-cash-card{margin-top:18px}.billing-cash-card .ops-card-head{align-items:center}.billing-cash-card .pos-cash-pill{margin-left:auto}.billing-cash-form{display:flex;align-items:end;gap:12px;padding:0 24px 24px;flex-wrap:wrap}.billing-cash-form label{display:grid;gap:7px;min-width:230px;color:#554b60;font-weight:800}.billing-cash-form input{height:50px;border:1px solid #ded7e7;border-radius:14px;background:#faf9fc;padding:0 14px}.billing-cash-form small{flex:1;min-width:260px;color:#8a7f95}.billing-activity{margin-top:18px;overflow:hidden}.billing-activity .ops-card-head{padding-top:4px}.billing-feed{display:grid}.billing-feed-row{display:grid;grid-template-columns:48px minmax(220px,1fr) minmax(130px,.45fr) minmax(150px,.5fr) auto;align-items:center;gap:14px;padding:15px 24px;border-top:1px solid #eee9f2}.billing-feed-row[hidden]{display:none}.billing-feed-row>div{display:grid;gap:3px}.billing-feed-row small,.billing-feed-row time{color:#887d93;font-size:.84rem}.billing-feed-row>a{padding:10px 13px;border:1px solid #ded5eb;border-radius:12px;color:#6d3df5;font-weight:800}.billing-feed-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;font-weight:900}.billing-feed-icon.payment{color:#008f6b;background:#dff8ef}.billing-feed-icon.quote{color:#6e3bf1;background:#eee7ff}
@media(max-width:760px){.billing-cash-card .ops-card-head{align-items:flex-start}.billing-cash-card .pos-cash-pill{width:auto}.billing-cash-form{align-items:stretch;padding:0 18px 20px}.billing-cash-form label,.billing-cash-form small{width:100%;min-width:0}.billing-feed-row{grid-template-columns:44px minmax(0,1fr) auto;padding:14px 16px}.billing-feed-row>b{grid-column:2}.billing-feed-row>time,.billing-feed-row>.badge{grid-column:2}.billing-feed-row>a{grid-column:3;grid-row:1/4}.billing-activity .ops-list-toolbar{align-items:stretch}.billing-activity .ops-filter-left{width:100%;overflow:auto}.billing-activity .ops-search{width:100%;box-sizing:border-box}}

.receipt-page{max-width:860px;margin:0 auto 70px}.receipt-actions{display:flex;justify-content:flex-end;gap:9px;margin-bottom:18px}.receipt-paper{overflow:hidden;border:1px solid #e5deeb;border-radius:26px;background:#fff;box-shadow:0 18px 50px rgba(35,21,61,.08)}.receipt-success{display:grid;place-items:center;padding:34px 24px;text-align:center;background:linear-gradient(135deg,#251747,#7040ec 65%,#b738c5);color:#fff}.receipt-success>span{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.18);font-size:1.7rem}.receipt-success p{margin:14px 0 4px}.receipt-success h1{margin:0;font-size:2.6rem}.receipt-success h1 small{font-size:1rem}.receipt-success>b{margin-top:8px;color:#ded0fb}.receipt-brand{display:flex;align-items:center;gap:12px;padding:22px 28px;border-bottom:1px solid #eee9f2}.receipt-brand>div:nth-child(2){display:grid;flex:1}.receipt-brand small{color:#8b8094}.receipt-logo{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eee6ff;color:#7140ef;font-size:1.5rem}.receipt-details{display:grid;margin:0;padding:10px 28px 22px}.receipt-details>div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px dashed #e6e0ea}.receipt-details dt{color:#82778e}.receipt-details dd{margin:0;text-align:right;font-weight:800}.receipt-footer{display:grid;place-items:center;gap:4px;padding:23px;background:#f8f5fc;color:#786d84}.receipt-footer strong{color:#2d2437}.refund-card{margin-top:18px}.refund-card .billing-feed-row{grid-template-columns:48px 1fr auto}
@media(max-width:600px){.receipt-actions{display:grid;grid-template-columns:1fr 1fr}.receipt-actions .btn:last-child{grid-column:1/3}.receipt-success h1{font-size:2.1rem}.receipt-brand,.receipt-details{padding-right:18px;padding-left:18px}.receipt-details>div{display:grid;gap:5px}.receipt-details dd{text-align:left}}
@media(max-width:980px){.pos-mobile-checkout{bottom:calc(12px + env(safe-area-inset-bottom))}}

*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--pc-bg);
    color: var(--pc-text);
    font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
a { color: var(--pc-accent); text-decoration: none; text-underline-offset: 3px; }
a:hover { text-decoration: underline; }
img, svg { max-width: 100%; }
h1, h2, h3, h4 { color: var(--pc-text); letter-spacing: -.015em; }
:focus-visible { outline: 0; box-shadow: var(--pc-focus); border-radius: 6px; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.clinic-skip-link, .skip-link { position: fixed; left: 16px; top: -80px; z-index: 1200; background: var(--sidebar-bg); color: #fff; padding: 10px 16px; border-radius: var(--pc-radius-sm); }
.clinic-skip-link:focus, .skip-link:focus { top: 12px; color: #fff; }

/* ============================================================
   Shell: sidebar + main
   ============================================================ */
.app { min-height: 100vh; }
.sidebar {
    position: fixed; inset: 0 auto 0 0; z-index: 90; width: min(280px, 86vw);
    display: flex; flex-direction: column; padding: 22px 16px;
    background: var(--sidebar-bg); color: var(--sidebar-text);
    overflow: hidden; transform: translateX(-104%); transition: transform .22s ease;
}
body.nav-open { overflow: hidden; }
body.nav-open .sidebar { transform: translateX(0); }
.sidebar-overlay { position: fixed; inset: 0; z-index: 80; border: 0; background: rgba(7, 28, 26, .5); opacity: 0; visibility: hidden; transition: opacity .2s; }
body.nav-open .sidebar-overlay { opacity: 1; visibility: visible; }

.brand { display: flex; align-items: center; gap: 12px; padding: 4px 8px 20px; color: #fff; text-decoration: none; }
.brand:hover { text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: var(--pc-accent); color: #fff; font-size: 22px; font-weight: 800; line-height: 1; flex-shrink: 0; }
.brand-copy strong { display: block; font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; }
.brand-copy small { display: block; margin-top: 1px; color: var(--sidebar-muted); font-size: 10px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }

.nav-label { padding: 14px 12px 8px; color: var(--sidebar-muted); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.sidebar-nav-scroll { min-height:0; flex:1 1 auto; overflow-y:auto; overscroll-behavior:contain; padding-right:5px; scrollbar-width:thin; scrollbar-color:rgba(169,140,255,.55) transparent; }
.sidebar-nav-scroll::-webkit-scrollbar { width:5px; }
.sidebar-nav-scroll::-webkit-scrollbar-thumb { background:rgba(169,140,255,.55); border-radius:999px; }
.sidebar-nav-scroll::-webkit-scrollbar-track { background:transparent; }
.nav { display: grid; gap: 3px; }
.nav a { display: flex; align-items: center; gap: 12px; min-height: 44px; padding: 10px 12px; border-radius: 10px; color: var(--sidebar-text); font-size: 14px; font-weight: 500; text-decoration: none; transition: background .14s, color .14s; }
.nav a:hover { background: rgba(255,255,255,.08); color: #fff; text-decoration: none; }
.nav a.active { background: rgba(255,255,255,.12); color: #fff; box-shadow: inset 3px 0 0 var(--pc-accent); }
.nav a i, .nav-icon { display: inline-grid; place-items: center; width: 22px; font-size: 18px; color: var(--sidebar-muted); }
.nav a.active i, .nav a:hover i { color: #7fe3d6; }
.sidebar-footer { flex:0 0 auto; margin-top:10px; padding:12px 10px 4px; color:var(--sidebar-muted); font-size:11px; }

.main { min-width: 0; }
.mobile-header { position: sticky; top: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 60px; padding: 9px 16px; background: rgba(255,255,255,.92); border-bottom: 1px solid var(--pc-border); backdrop-filter: blur(12px); }
.menu-toggle { display: inline-grid; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid var(--pc-border); border-radius: 10px; background: #fff; color: var(--sidebar-bg); font-size: 20px; cursor: pointer; }
.mobile-brand { display: flex; align-items: center; gap: 8px; font-weight: 600; color: var(--pc-text); }
.mobile-brand .brand-mark { width: 30px; height: 30px; font-size: 17px; border-radius: 9px; }
.main-inner { padding: 22px 16px 52px; }

/* Topbar dentro del contenido */
.topbar { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 16px; margin-bottom: 22px; }
.page-eyebrow { margin: 0 0 3px; color: var(--pc-accent); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.topbar h1 { margin: 0; font-size: clamp(22px, 3vw, 28px); line-height: 1.18; }
.session-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.content { width: min(100%, 1280px); }

.chip { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 13px; background: var(--pc-surface); border: 1px solid var(--pc-border); border-radius: 999px; color: var(--pc-text-muted); font-size: 12.5px; box-shadow: var(--pc-shadow-sm); }
.chip i { color: var(--pc-accent); }
.btn-logout { display: inline-grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--pc-border); border-radius: 50%; background: var(--pc-surface); color: var(--pc-text-muted); font-size: 19px; text-decoration: none; transition: color .14s, border-color .14s; }
.btn-logout:hover { color: var(--danger); border-color: #f3b7b2; background: #fff7f6; text-decoration: none; }

/* ============================================================
   Flash / alertas
   ============================================================ */
.flash { display: flex; align-items: flex-start; gap: 10px; padding: 13px 15px; margin-bottom: 16px; border: 1px solid; border-radius: var(--pc-radius); font-size: 14px; }
.flash i { font-size: 18px; margin-top: 1px; }
.flash-ok { background: var(--ok-soft); color: #086447; border-color: #a6f0d0; }
.flash-err { background: var(--danger-soft); color: #9d2118; border-color: #ffc9c4; }
.flash-info { background: #e8f1fd; color: #1a4fa0; border-color: #bcd6f7; }

/* ============================================================
   Tarjetas / paneles
   ============================================================ */
.panel { margin-bottom: 20px; padding: clamp(18px, 2.2vw, 24px); background: var(--pc-surface); border: 1px solid var(--pc-border); border-radius: var(--pc-radius-card); box-shadow: var(--pc-shadow-sm); }
.panel-flush { padding: 0; overflow: hidden; }
.toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
h2.section, h3.section { margin: 0 0 14px; font-size: 16px; font-weight: 600; }
.muted { color: var(--pc-text-muted); font-size: 13px; }
.small { font-size: 12.5px; }

/* ============================================================
   Botones
   ============================================================ */
.btn, button.btn, a.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 7px;
    min-height: 42px; padding: 9px 17px; border: 1px solid transparent; border-radius: var(--pc-radius);
    background: var(--pc-accent); color: #fff; font-size: 14px; font-weight: 600; text-decoration: none;
    cursor: pointer; transition: filter .14s, transform .05s, box-shadow .14s; box-shadow: var(--pc-shadow-sm);
}
.btn:hover { filter: brightness(1.07); color: #fff; text-decoration: none; }
.btn:active { transform: scale(.99); }
.btn:disabled, .btn[disabled] { opacity: .55; cursor: not-allowed; filter: none; }
/* Variantes: doble clase (.btn.btn-ghost) para ganar especificidad a a.btn */
.btn.btn-ghost, .btn.btn-outline, .btn.btn-secondary, .btn.btn-outline-primary,
a.btn.btn-ghost, a.btn.btn-outline, a.btn.btn-secondary, a.btn.btn-outline-primary { background: var(--pc-surface); color: var(--pc-text); border-color: var(--pc-border); box-shadow: none; filter: none; }
.btn.btn-ghost:hover, .btn.btn-outline:hover, .btn.btn-secondary:hover, .btn.btn-outline-primary:hover,
a.btn.btn-ghost:hover, a.btn.btn-outline:hover, a.btn.btn-secondary:hover, a.btn.btn-outline-primary:hover { background: var(--pc-surface-muted); color: var(--pc-accent-strong); border-color: #ccd7d9; filter: none; }
.btn.btn-danger, a.btn.btn-danger { background: var(--danger); color: #fff; }
.btn-sm { min-height: 34px; padding: 6px 12px; font-size: 12.5px; }
.btn-lg { min-height: 50px; padding: 12px 22px; font-size: 15.5px; }
.w-100 { width: 100%; }

/* ============================================================
   Tablas
   ============================================================ */
.table-scroll, .panel:has(> table.data), .panel:has(> .table-responsive), .table-responsive { overflow-x: auto; }
table.data, table.table {
    width: 100%; min-width: 560px; border-collapse: separate; border-spacing: 0; background: #fff;
    border: 1px solid var(--pc-border); border-radius: var(--pc-radius); overflow: hidden; box-shadow: var(--pc-shadow-sm);
}
table.data th, table.data td, table.table th, table.table td { padding: 12px 15px; text-align: left; border-bottom: 1px solid #eef2f3; font-size: 13.5px; vertical-align: middle; }
table.data th, table.table th { background: var(--pc-surface-muted); color: #4b6570; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
table.data tbody tr:hover, table.table tbody tr:hover { background: #f8fcfb; }
table.data tr:last-child td, table.table tr:last-child td { border-bottom: 0; }
table.data a:not(.btn), table.table a:not(.btn) { color: var(--pc-accent); font-weight: 600; }

/* ============================================================
   Badges / estados
   ============================================================ */
.badge { display: inline-flex; align-items: center; gap: 4px; min-height: 22px; padding: 3px 10px; border-radius: 999px; background: var(--pc-accent-soft); color: var(--pc-accent-strong); font-size: 11.5px; font-weight: 600; }
.badge-green, .badge.accepted, .badge.sent, .badge.paid { background: var(--ok-soft); color: var(--ok); }
.badge-red, .badge.failed, .badge.closed { background: var(--danger-soft); color: #a1261d; }
.badge-gray, .badge.needs, .badge.draft { background: #eef2f4; color: #536873; }
.badge-warn, .badge.pending { background: var(--warn-soft); color: var(--warn); }

/* ============================================================
   Formularios
   ============================================================ */
.field { margin-bottom: 16px; }
.field label, .form-label { display: block; margin-bottom: 6px; color: #4a626d; font-size: 12.5px; font-weight: 600; }
.field input, .field select, .field textarea,
.form-control, .form-select,
form > input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
form > select, form > textarea {
    width: 100%; min-height: 44px; padding: 10px 12px; border: 1.5px solid var(--pc-border);
    border-radius: var(--pc-radius); background: #fff; color: var(--pc-text); transition: border-color .14s, box-shadow .14s;
}
textarea { resize: vertical; min-height: 90px; }
.field input:hover, .field select:hover, .form-control:hover, .form-select:hover { border-color: #b7c6ca; }
.field input:focus, .field select:focus, .field textarea:focus,
.form-control:focus, .form-select:focus { outline: none; border-color: var(--pc-accent); box-shadow: var(--pc-focus); }
.field input:disabled, .field select:disabled, .form-control:disabled { background: #f0f3f4; color: #778a92; cursor: not-allowed; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--pc-accent); width: auto; min-height: 0; }
.form-control-sm, .form-select-sm { min-height: 36px; padding: 6px 10px; font-size: 13px; border-radius: var(--pc-radius-sm); }
input:-webkit-autofill, input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 1000px #fff inset; box-shadow: 0 0 0 1000px #fff inset;
    -webkit-text-fill-color: var(--pc-text); transition: background-color 9999s ease-in-out 0s;
}
.row2 { display: grid; grid-template-columns: 1fr; gap: 0 18px; }

/* Pares clave/valor */
.kv { display: grid; grid-template-columns: minmax(110px, 160px) 1fr; gap: 9px 16px; margin: 0; font-size: 14px; }
.kv dt { color: var(--pc-text-muted); }
.kv dd { margin: 0; font-weight: 500; }

/* ============================================================
   KPIs (dashboard)
   ============================================================ */
.grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.kpi { position: relative; display: block; min-height: 150px; padding: 20px; overflow: hidden; background: #fff; border: 1px solid var(--pc-border); border-radius: var(--pc-radius-card); color: var(--pc-text); text-decoration: none; box-shadow: var(--pc-shadow-sm); transition: transform .16s, border-color .16s, box-shadow .16s; }
.kpi::after { content: ""; position: absolute; width: 78px; height: 78px; right: -26px; top: -28px; border-radius: 50%; background: var(--pc-accent-soft); }
a.kpi:hover { transform: translateY(-2px); border-color: #9dcfc9; box-shadow: var(--pc-shadow); color: var(--pc-text); text-decoration: none; }
.kpi h2 { position: relative; z-index: 1; margin: 0 0 9px; color: #58707a; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.kpi .num { color: var(--sidebar-bg); font-size: 30px; font-weight: 700; line-height: 1.15; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.kpi .hint { margin-top: 9px; color: var(--pc-text-muted); font-size: 12px; }
.kpi .drill { margin-top: 10px; color: var(--pc-accent); font-size: 12px; font-weight: 600; }
.kpi-static { cursor: default; }
.kpi-critical .num { color: var(--danger); }
.dashboard-context { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.dashboard-context input { min-height: 38px; padding: 7px 10px; border: 1.5px solid var(--pc-border); border-radius: var(--pc-radius-sm); }
.kpi-dictionary { margin-top: 20px; }

/* ============================================================
   Páginas de error
   ============================================================ */
.error-page { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: radial-gradient(circle at top, var(--pc-accent-soft), var(--pc-bg) 55%); }
.error-card { width: min(100%, 470px); padding: 40px 32px; background: #fff; border: 1px solid var(--pc-border); border-radius: var(--pc-radius-card); text-align: center; box-shadow: var(--pc-shadow); }
.error-badge { display: inline-grid; place-items: center; width: 62px; height: 62px; margin: 0 auto 16px; border-radius: 16px; background: var(--pc-accent-soft); color: var(--pc-accent); font-size: 30px; }
.error-code { margin: 0; color: var(--danger); font-size: 42px; font-weight: 800; }
.error-card h1 { margin: 8px 0; font-size: 21px; }
.error-card p { margin: 0 0 22px; color: var(--pc-text-muted); }

/* ============================================================
   Capa de compatibilidad (utilidades Bootstrap heredadas)
   ============================================================ */
.card { background: var(--pc-surface); border: 1px solid var(--pc-border); border-radius: var(--pc-radius-card); box-shadow: var(--pc-shadow-sm); margin-bottom: 20px; overflow: hidden; }
.card-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 16px 20px; border-bottom: 1px solid var(--pc-border); }
.card-title { margin: 0; font-size: 16px; font-weight: 600; }
.card-body { padding: 20px; }
.list-group { margin: 0; padding: 0; list-style: none; border: 1px solid var(--pc-border); border-radius: var(--pc-radius); overflow: hidden; counter-reset: lg; }
.list-group-item { padding: 13px 16px; border-bottom: 1px solid #eef2f3; font-size: 14px; }
.list-group-item:last-child { border-bottom: 0; }
.list-group-numbered .list-group-item { counter-increment: lg; }
.list-group-numbered .list-group-item::before { content: counter(lg) ". "; color: var(--pc-accent); font-weight: 700; }
.alert { display: flex; align-items: flex-start; gap: 10px; padding: 13px 15px; margin-bottom: 16px; border: 1px solid; border-radius: var(--pc-radius); font-size: 14px; }
.alert-success { background: var(--ok-soft); color: #086447; border-color: #a6f0d0; }
.alert-danger { background: var(--danger-soft); color: #9d2118; border-color: #ffc9c4; }
.alert-info, .alert-primary { background: #e8f1fd; color: #1a4fa0; border-color: #bcd6f7; }
.alert-warning { background: var(--warn-soft); color: var(--warn); border-color: #f3d9a8; }
.bg-info-subtle { background: #e8f1fd !important; } .text-info { color: #1a4fa0 !important; }
.bg-primary-subtle { background: var(--pc-accent-soft) !important; } .text-primary { color: var(--pc-accent) !important; }
.text-muted { color: var(--pc-text-muted) !important; }
.d-flex { display: flex !important; } .d-none { display: none !important; } .d-inline { display: inline !important; }
.align-middle { vertical-align: middle !important; } .align-items-center { align-items: center !important; } .align-items-end { align-items: flex-end !important; }
.justify-content-between { justify-content: space-between !important; } .justify-content-end { justify-content: flex-end !important; }
.flex-wrap { flex-wrap: wrap !important; }
.gap-1 { gap: 4px !important; } .gap-2 { gap: 8px !important; } .gap-3 { gap: 16px !important; } .gap-4 { gap: 24px !important; }
.mb-0 { margin-bottom: 0 !important; } .mb-2 { margin-bottom: 8px !important; } .mb-3 { margin-bottom: 16px !important; } .mb-4 { margin-bottom: 24px !important; }
.mt-2 { margin-top: 8px !important; } .mt-3 { margin-top: 16px !important; } .me-1 { margin-right: 4px !important; } .me-2 { margin-right: 8px !important; }
.row { display: grid; grid-template-columns: 1fr; gap: 20px; }
.g-4 { gap: 24px; }
@media (min-width: 992px) {
    .row.g-4, .row { grid-template-columns: repeat(12, 1fr); }
    .col-lg-8 { grid-column: span 8; } .col-lg-4 { grid-column: span 4; }
    .col-md-6, .col-sm-6 { grid-column: span 6; } .col-lg-6 { grid-column: span 6; }
}

/* ============================================================
   Responsivo
   ============================================================ */
@media (min-width: 640px) {
    .row2 { grid-template-columns: 1fr 1fr; }
    .grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .main-inner { padding: 28px 26px 56px; }
}
@media (min-width: 992px) {
    .app { display: grid; grid-template-columns: 280px minmax(0, 1fr); }
    .sidebar { position: sticky; top: 0; height: 100vh; transform: none; }
    .sidebar-overlay, .mobile-header { display: none; }
    .main-inner { padding: 34px 40px 64px; }
    .grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Intelli Clinic x TrendyAdmin: violet identity, dark navigation,
   floating header and softly elevated surfaces. */
:root {
    --pc-accent: #7656f6; --pc-accent-strong: #5d3ee8;
    --pc-accent-soft: #eeeaff; --pc-accent-ring: rgba(118,86,246,.2);
    --sidebar-bg: #191622; --sidebar-bg-2: #121019;
    --sidebar-text: #c9c5d4; --sidebar-muted: #817b91;
    --pc-bg: #f5f5f9; --pc-surface: #fff; --pc-surface-muted: #f8f8fb;
    --pc-text: #252230; --pc-text-muted: #777386; --pc-border: #eae8f0;
    --ok: #178b65; --ok-soft: #e1f7ef; --warn: #a96805; --warn-soft: #fff4df;
    --danger: #d13c68; --danger-soft: #ffe8ef; --info: #3b76e8;
    --pc-radius-card: 20px; --pc-radius: 13px; --pc-radius-sm: 10px;
    --pc-shadow-sm: 0 2px 8px rgba(32,25,55,.045);
    --pc-shadow: 0 18px 45px rgba(41,31,72,.1);
}
body {
    background: radial-gradient(circle at 88% 1%, rgba(118,86,246,.08), transparent 24rem), var(--pc-bg);
    font-family: Inter, "Segoe UI", system-ui, sans-serif;
}
.sidebar {
    padding: 20px 14px;
    background: radial-gradient(circle at 10% 0, rgba(139,92,246,.18), transparent 16rem), linear-gradient(180deg,var(--sidebar-bg),var(--sidebar-bg-2));
    border-right: 1px solid rgba(255,255,255,.045); scrollbar-width: thin; scrollbar-color: #3d374b transparent;
}
.brand { min-height: 64px; padding: 4px 10px 22px; gap: 11px; }
.brand-mark { width: 43px; height: 43px; border-radius: 14px; background: linear-gradient(135deg,#7457f5 10%,#a64ff0 58%,#ec5a9e); box-shadow: 0 10px 25px rgba(118,86,246,.35); font-size: 21px; }
.brand-copy strong { font-size: 16px; font-weight: 700; letter-spacing: -.02em; }
.brand-copy small { color: #958fa5; font-size: 9.5px; letter-spacing: .16em; }
.brand-corporate{display:block;width:min(220px,100%);padding:3px 0}.brand-corporate>.brand-logo{display:block;width:100%;height:auto;object-fit:contain}.brand-corporate>.brand-logo-light{display:none}.brand-corporate .legacy-brand{display:none}.mobile-brand img{width:40px;height:40px;border-radius:12px;object-fit:cover}.mobile-brand>span{font-weight:800}
.nav-label { padding: 13px 13px 9px; color: #706b7e; font-size: 9.5px; letter-spacing: .16em; }
.nav { gap: 4px; }
.nav a { position: relative; min-height: 46px; padding: 10px 13px; border-radius: 12px; color: #aaa5b6; font-size: 13.5px; transition: transform .16s,background .16s,color .16s; }
.nav a:hover { background: rgba(255,255,255,.055); color: #fff; transform: translateX(2px); }
.nav a.active { background: linear-gradient(100deg,rgba(118,86,246,.28),rgba(165,79,240,.13)); color: #fff; box-shadow: none; }
.nav a.active::before { content: ""; position: absolute; left: 0; width: 3px; height: 22px; border-radius: 0 5px 5px 0; background: linear-gradient(#9d79ff,#ec5a9e); box-shadow: 0 0 14px rgba(157,121,255,.65); }
.nav a i,.nav-icon { color: #777184; font-size: 19px; }
.nav a.active i,.nav a:hover i { color: #a98cff; }
.sidebar-footer { color: #696373; border-top: 1px solid rgba(255,255,255,.06); margin-top: 20px; }
.main-inner { padding-top: 20px; }
.topbar { align-items: center; padding: 15px 18px; margin-bottom: 24px; background: rgba(255,255,255,.84); border: 1px solid rgba(234,232,240,.9); border-radius: 18px; box-shadow: 0 8px 30px rgba(35,27,58,.055); backdrop-filter: blur(16px); }
.page-eyebrow { color: var(--pc-accent); font-size: 10px; letter-spacing: .15em; }
.topbar h1 { font-size: clamp(22px,3vw,27px); font-weight: 700; letter-spacing: -.035em; }
.session-tools { gap: 7px; }
.chip { min-height: 38px; background: #faf9fd; border-color: #edeaf3; color: #6f6a7c; box-shadow: none; }
.chip i { display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--pc-accent-soft); color: var(--pc-accent); }
.btn-logout { border-color: #edeaf3; background: #faf9fd; }
.panel,.card { border-color: rgba(231,228,238,.92); border-radius: var(--pc-radius-card); box-shadow: 0 5px 22px rgba(38,30,61,.045); }
.panel:hover,.card:hover { border-color: #dfdaeb; }
.panel-flush { padding: 0; }
h2.section,h3.section,.card-title { font-weight: 700; letter-spacing: -.025em; }
.btn,button.btn,a.btn { border-radius: 12px; background: linear-gradient(135deg,#7357f5,#8e55ee); box-shadow: 0 7px 17px rgba(118,86,246,.18); font-weight: 650; }
.btn:hover { filter: brightness(1.05); box-shadow: 0 9px 22px rgba(118,86,246,.25); }
.btn.btn-ghost,.btn.btn-outline,.btn.btn-secondary,.btn.btn-outline-primary,a.btn.btn-ghost,a.btn.btn-outline,a.btn.btn-secondary,a.btn.btn-outline-primary { background: #fff; border-color: #e6e2ed; color: #5b5666; }
.btn.btn-ghost:hover,.btn.btn-outline:hover,.btn.btn-secondary:hover,.btn.btn-outline-primary:hover,a.btn.btn-ghost:hover,a.btn.btn-outline:hover,a.btn.btn-secondary:hover,a.btn.btn-outline-primary:hover { background: var(--pc-accent-soft); border-color: #d9cffd; color: var(--pc-accent-strong); }
table.data,table.table { border-color: #ebe8f0; border-radius: 14px; box-shadow: none; }
table.data th,table.table th { background: #f9f8fc; color: #777182; letter-spacing: .075em; }
table.data th,table.data td,table.table th,table.table td { border-bottom-color: #efedf3; }
table.data tbody tr:hover,table.table tbody tr:hover { background: #faf9ff; }
table.data a:not(.btn),table.table a:not(.btn) { color: var(--pc-accent-strong); }
.badge { padding: 4px 10px; background: var(--pc-accent-soft); color: var(--pc-accent-strong); }
.field input,.field select,.field textarea,.form-control,.form-select,form>input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),form>select,form>textarea { border-color: #e4e0eb; background: #fbfafd; }
.grid { gap: 17px; }
.kpi { min-height: 158px; padding: 21px; border-color: #e9e6ef; background: linear-gradient(145deg,#fff 58%,#faf8ff); box-shadow: 0 6px 24px rgba(38,30,61,.045); }
.kpi::before { content: ""; position: absolute; left: 0; top: 21px; width: 4px; height: 34px; border-radius: 0 6px 6px 0; background: linear-gradient(#7457f5,#d556bd); }
.kpi::after { width: 100px; height: 100px; right: -43px; top: -44px; background: linear-gradient(135deg,#eee9ff,#fdebf6); }
a.kpi:hover { border-color: #d9cffd; box-shadow: 0 16px 34px rgba(89,65,166,.12); }
.kpi h2 { color: #817b8c; font-size: 10.5px; letter-spacing: .085em; }
.kpi .num { color: #292431; font-size: 31px; font-weight: 750; }
.kpi .drill { color: var(--pc-accent-strong); }
.mobile-header { background: rgba(25,22,34,.96); border: 0; color: #fff; }
.mobile-brand { color: #fff; }
.mobile-header .menu-toggle,.mobile-header .btn-logout { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); color: #fff; }
.mobile-brand .brand-mark { box-shadow: none; }
@media (min-width: 992px) {
    .app { grid-template-columns: 264px minmax(0,1fr); }
    .sidebar { width: 264px; }
    .main-inner { padding: 22px 30px 64px; }
    .content { width: min(100%,1440px); margin: 0 auto; }
}
@media (max-width: 639px) {
    .topbar { padding: 14px; border-radius: 15px; }
    .session-tools { width: 100%; }
    .chip { flex: 1; justify-content: center; }
    .panel { padding: 16px; border-radius: 16px; }
    .panel-flush { padding: 0; }
}

/* Seguimiento clínico: command center de continuidad */
.followup-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 16px; padding: 25px 28px; border-radius: 22px; background: linear-gradient(120deg,#fff 0%,#f4efff 65%,#fcebf8); border: 1px solid #e8e0f5; box-shadow: 0 10px 30px rgba(58,39,98,.06); }
.followup-hero>div:first-child>span { display: inline-flex; align-items: center; gap: 6px; color: #7250df; font-size: 10px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }.followup-hero h2 { margin: 6px 0 4px; font-size: clamp(22px,3vw,30px); letter-spacing: -.04em; }.followup-hero p { margin: 0; color: var(--pc-text-muted); font-size: 12.5px; }
.followup-health { display: grid; grid-template-columns: 38px auto; min-width: 155px; padding: 12px 15px; border: 1px solid #d7eee5; border-radius: 15px; background: rgba(255,255,255,.78); }.followup-health>i { grid-row: 1/3; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 11px; background: #dff7ed; color: #0b9368; font-size: 18px; }.followup-health strong,.followup-health small { display: block; }.followup-health strong { font-size: 12px; }.followup-health small { color: var(--pc-text-muted); font-size: 9px; }
.followup-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-bottom: 16px; }.followup-stats>div { display: grid; grid-template-columns: 44px 1fr; align-items: center; gap: 11px; min-height: 82px; padding: 14px 16px; border: 1px solid var(--pc-border); border-radius: 17px; background: #fff; box-shadow: 0 5px 20px rgba(37,28,60,.04); }.fu-stat-icon { grid-row: 1/3; display: grid; place-items: center; width: 43px; height: 43px; border-radius: 14px; font-size: 20px; }.fu-stat-icon.violet { background:#eee7ff;color:#7049eb }.fu-stat-icon.red { background:#ffe7ed;color:#dc4167 }.fu-stat-icon.amber { background:#fff0d4;color:#da8500 }.fu-stat-icon.green { background:#def7ee;color:#098b65 }.followup-stats p { margin: 0; }.followup-stats strong,.followup-stats small { display: block; }.followup-stats strong { font-size: 21px; line-height: 1.05; }.followup-stats small { margin-top: 3px; color: #696272; font-size: 10.5px; }.followup-stats em { grid-column: 2; color: #9a93a3; font-size: 9px; font-style: normal; }
.followup-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 16px; }.fu-action-card { padding: 18px; border: 1px solid var(--pc-border); border-radius: 19px; background: #fff; box-shadow: 0 5px 22px rgba(37,28,60,.04); }.fu-action-head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }.fu-action-head>span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: #eee8ff; color: #7049eb; font-size: 18px; }.fu-action-card.alarm .fu-action-head>span { background: #ffe8ee; color: #d94368; }.fu-action-head h3 { margin: 0 0 2px; font-size: 14px; }.fu-action-head p { margin: 0; color: var(--pc-text-muted); font-size: 9.5px; }
.fu-action-form { display: grid; grid-template-columns: minmax(180px,1.1fr) minmax(180px,1fr) 130px auto; align-items: end; gap: 8px; }.fu-action-form label>span:first-child { display: block; margin-bottom: 4px; color: #635c6d; font-size: 9.5px; font-weight: 650; }.fu-action-form select,.fu-action-form input:not([type=checkbox]) { width: 100%; min-height: 38px; padding: 7px 9px; border: 1px solid #e3deeb; border-radius: 9px; background: #faf9fc; color: var(--pc-text); font-size: 10.5px; }.fu-action-form .btn { min-height: 38px; padding: 7px 12px; white-space: nowrap; font-size: 10.5px; }
.alarm-form { grid-template-columns: minmax(170px,.9fr) auto minmax(160px,1fr) auto; }.alarm-toggle { align-self: end; display: flex; min-height: 38px; align-items: center; cursor: pointer; }.alarm-toggle>span { display: flex!important; align-items: center; gap: 6px; margin: 0!important; white-space: nowrap; font-size: 10px!important; }.alarm-toggle input { width: 15px; height: 15px; }.alarm-toggle input:checked+span { color: var(--danger); }.alarm-toggle input:checked+span i { width: 7px; height: 7px; border-radius: 50%; background: var(--danger); }
.followup-workspace { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,.65fr); gap: 15px; align-items: start; }.followup-timeline,.message-stream { overflow: hidden; border: 1px solid var(--pc-border); border-radius: 20px; background: #fff; box-shadow: 0 6px 24px rgba(37,28,60,.045); }.fu-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--pc-border); }.fu-section-head h3 { margin: 0 0 2px; font-size: 15px; }.fu-section-head p { margin: 0; color: var(--pc-text-muted); font-size: 9.5px; }.live-pill { display: inline-flex; align-items: center; gap: 5px; padding: 5px 8px; border-radius: 999px; background: #e4f8f0; color: #07855f; font-size: 9px; font-weight: 700; }.live-pill i { width: 6px; height: 6px; border-radius: 50%; background: #12a978; box-shadow: 0 0 0 3px rgba(18,169,120,.13); }.message-count { display: grid; place-items: center; min-width: 27px; height: 27px; border-radius: 9px; background: var(--pc-accent-soft); color: var(--pc-accent); font-size: 10px; font-weight: 700; }
.fu-filters { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding: 12px 18px; background: #fcfbfe; border-bottom: 1px solid var(--pc-border); }.fu-filters .filter-tab { min-height: 33px; padding: 5px 10px; font-size: 10px; }.fu-filters .filter-tab span { height: 19px; min-width: 19px; font-size: 8px; }.fu-search { display: flex; align-items: center; width: 190px; min-height: 34px; padding: 0 10px; border-radius: 999px; background: #f2eff7; color: #91899d; }.fu-search input { width: 100%; min-width: 0; padding: 6px; border: 0; outline: 0; background: transparent; font-size: 10px; }
.clinical-timeline { position: relative; padding: 18px 20px 22px 55px; }.clinical-timeline::before { content:""; position:absolute; left:34px; top:22px; bottom:22px; width:2px; background: linear-gradient(#bda9fc,#ece7f5); }.fu-task { position: relative; margin-bottom: 12px; }.fu-task:last-child { margin-bottom: 0; }.timeline-node { position: absolute; z-index: 1; left: -42px; top: 18px; display: grid; place-items: center; width: 25px; height: 25px; border: 4px solid #fff; border-radius: 50%; background: #ece6ff; color: #7049e8; box-shadow: 0 0 0 2px #d7cafb; font-size: 10px; }.fu-task.is-overdue .timeline-node,.fu-task.is-escalated .timeline-node { background:#ffe4eb;color:#d63c62;box-shadow:0 0 0 2px #f7bdcc }.fu-task-card { padding: 14px; border: 1px solid #ebe7f1; border-radius: 15px; background: linear-gradient(110deg,#fff,#fcfbfe); transition: transform .16s,box-shadow .16s; }.fu-task-card:hover { transform: translateY(-2px); box-shadow: 0 10px 25px rgba(49,35,78,.075); }.fu-task.is-overdue .fu-task-card { border-left: 3px solid #e2486d; }
.fu-task-top { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 9px; }.fu-avatar { display: grid; place-items:center; width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#e9e2ff,#f8e5f5);color:#7049df;font-size:13px;font-weight:800 }.fu-task-top h4 { margin:0 0 2px;font-size:11.5px }.fu-task-top p { margin:0;color:#77707f;font-size:10px }.fu-priority { padding:5px 8px;border-radius:999px;background:#eee9ff;color:#6740d8;font-size:8px;font-weight:750;text-transform:uppercase;letter-spacing:.04em }.fu-priority.urgent { background:#ffe6ed;color:#cf355b }.fu-task-meta { display:flex;flex-wrap:wrap;gap:12px;margin:10px 0 0 45px;color:#958e9e;font-size:9px }.fu-task-meta span { display:inline-flex;align-items:center;gap:4px }.fu-task-meta i { color:var(--pc-accent) }.fu-complete { display:flex;align-items:center;gap:7px;margin:11px 0 0 45px;padding-top:10px;border-top:1px solid #f0edf4 }.fu-complete input { flex:1;min-width:0;min-height:34px;padding:6px 9px;border:1px solid #e5e0eb;border-radius:9px;background:#faf9fc;font-size:9.5px }.fu-complete .btn { min-height:34px;padding:5px 10px;font-size:9.5px }
.message-list { padding: 5px 15px 14px; }.message-item { position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 7px;align-items:start;gap:9px;padding:13px 0;border-bottom:1px solid #f0edf4 }.message-item:last-child { border-bottom:0 }.message-icon { display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#eee8ff;color:#7049df;font-size:15px }.message-icon.sent { background:#e0f7ee;color:#078862 }.message-icon.failed { background:#ffe7ed;color:#d63e63 }.message-item h4 { margin:0 0 2px;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }.message-item p,.message-item small { display:block;margin:0;color:#8b8494;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }.message-item small { margin-top:3px;color:#b0aab6 }.message-state { align-self:center;width:6px;height:6px;border-radius:50%;background:#d1cbd8 }.message-state.sent { background:#0ea575 }.message-state.failed { background:#e2496d }.fu-empty { display:grid;place-items:center;padding:55px 20px;text-align:center;color:#8a8393 }.fu-empty[hidden] { display:none }.fu-empty>i { color:var(--pc-accent);font-size:30px }.fu-empty h4 { margin:8px 0 2px;color:var(--pc-text);font-size:13px }.fu-empty p { margin:0;font-size:9.5px }.fu-empty.compact { padding:35px 15px }
@media (max-width: 1180px) { .followup-stats { grid-template-columns:repeat(2,1fr) }.followup-actions { grid-template-columns:1fr }.followup-workspace { grid-template-columns:minmax(0,1fr) 280px } }
@media (max-width: 850px) { .followup-workspace { grid-template-columns:1fr }.message-stream { order:2 }.fu-action-form,.alarm-form { grid-template-columns:repeat(2,minmax(0,1fr)) }.followup-hero { align-items:flex-start }.followup-health { min-width:140px } }
@media (max-width: 560px) { .followup-hero { flex-direction:column;padding:20px }.followup-health { width:100% }.followup-stats { grid-template-columns:1fr 1fr;gap:8px }.followup-stats>div { grid-template-columns:36px 1fr;padding:11px;min-height:70px }.fu-stat-icon { width:36px;height:36px }.followup-stats em { display:none }.fu-action-form,.alarm-form { grid-template-columns:1fr }.alarm-toggle { min-height:30px }.fu-filters { align-items:stretch;flex-direction:column }.fu-filters .filter-tabs { overflow-x:auto;flex-wrap:nowrap }.fu-search { width:100% }.clinical-timeline { padding-left:47px;padding-right:11px }.clinical-timeline::before { left:28px }.timeline-node { left:-33px }.fu-task-top { grid-template-columns:34px minmax(0,1fr) }.fu-priority { grid-column:2;width:max-content }.fu-task-meta,.fu-complete { margin-left:0 }.fu-complete { align-items:stretch;flex-direction:column }.fu-complete .btn { width:100% } }

/* Dashboard CRM clínico */
.crm-welcome { display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px }.crm-eyebrow { display:inline-flex;align-items:center;gap:6px;color:var(--pc-accent);font-size:9.5px;font-weight:750;letter-spacing:.13em;text-transform:uppercase }.crm-welcome h2 { margin:5px 0 3px;font-size:clamp(22px,3vw,29px);letter-spacing:-.04em }.crm-welcome p { margin:0;color:var(--pc-text-muted);font-size:11.5px }.crm-date-actions { display:flex;align-items:center;gap:7px }.crm-date-actions form,.crm-date-actions>a { display:flex;align-items:center;gap:7px;min-height:39px;padding:0 12px;border:1px solid #e4dfeb;border-radius:11px;background:#fff;color:#655e70;font-size:10.5px;font-weight:650 }.crm-date-actions input { width:125px;min-height:0;padding:0;border:0;outline:0;background:transparent;font-size:10.5px }.crm-date-actions>a:hover { border-color:#cfc2ef;color:var(--pc-accent);text-decoration:none }
.crm-metrics { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px }.crm-metric { position:relative;display:grid;grid-template-columns:43px minmax(0,1fr) 25px;align-items:center;gap:11px;min-height:105px;padding:16px;border:1px solid var(--pc-border);border-radius:18px;background:#fff;color:var(--pc-text);box-shadow:0 5px 20px rgba(37,28,60,.04);transition:transform .16s,box-shadow .16s }.crm-metric:hover { transform:translateY(-2px);box-shadow:0 12px 26px rgba(49,35,78,.09);text-decoration:none }.crm-metric>span { display:grid;place-items:center;width:43px;height:43px;border-radius:14px;font-size:20px }.crm-metric.purple>span { background:#eee7ff;color:#7049eb }.crm-metric.green>span { background:#def7ee;color:#078b64 }.crm-metric.blue>span { background:#e0f1ff;color:#2582ce }.crm-metric.coral>span { background:#ffe7ed;color:#db4167 }.crm-metric small,.crm-metric strong,.crm-metric p { display:block }.crm-metric small { color:#7f7789;font-size:9.5px }.crm-metric strong { margin:2px 0;font-size:20px;letter-spacing:-.03em }.crm-metric p { margin:0;color:#aaa3b1;font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis }.crm-metric em { display:grid;place-items:center;width:24px;height:24px;border-radius:8px;background:#f6f3fa;color:#82798e;font-style:normal }
.crm-dashboard-grid { display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:15px }.crm-card { overflow:hidden;border:1px solid var(--pc-border);border-radius:20px;background:#fff;box-shadow:0 6px 24px rgba(37,28,60,.045) }.revenue-card { grid-column:span 8 }.appointment-mix { grid-column:span 4 }.pipeline-card { grid-column:span 7 }.attention-card { grid-column:span 5 }.quick-card { grid-column:span 12 }.crm-card-head { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #efecf3 }.crm-card-head span { display:block;color:#9a92a3;font-size:8.5px;font-weight:650;text-transform:uppercase;letter-spacing:.08em }.crm-card-head h3 { margin:2px 0 0;font-size:14.5px }.crm-card-head>a { color:var(--pc-accent);font-size:9.5px;font-weight:650 }.crm-period { display:inline-flex!important;align-items:center;gap:5px;padding:6px 8px;border-radius:9px;background:#f6f3fa;color:#756d80!important;font-size:8.5px!important;letter-spacing:0!important;text-transform:none!important }
.revenue-summary { display:flex;align-items:flex-end;justify-content:space-between;gap:18px;padding:18px 20px 4px }.revenue-summary small,.revenue-summary strong,.revenue-summary span { display:block }.revenue-summary small { color:#8d8596;font-size:9px }.revenue-summary strong { margin:3px 0;font-size:24px;letter-spacing:-.04em }.revenue-summary strong sup { color:#91899b;font-size:8px;letter-spacing:.03em }.revenue-summary>div:first-child>span { color:#aaa3b1;font-size:8.5px }.today-contribution { width:170px }.today-contribution>span { color:#8a8293;font-size:8.5px }.today-contribution>strong { font-size:14px }.today-contribution>div { height:6px;overflow:hidden;border-radius:999px;background:#eeeaf3 }.today-contribution i { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7351ed,#bd3dc2) }
.revenue-visual { position:relative;display:grid;grid-template-columns:48px 1fr;padding:12px 20px 17px;height:220px }.chart-y { display:flex;flex-direction:column;justify-content:space-between;padding:0 7px 22px 0;color:#aaa4b1;font-size:8px;text-align:right }.bar-stage { position:relative;display:flex;align-items:flex-end;justify-content:center;gap:50px;padding:12px 30px 22px;border-bottom:1px solid #e9e5ef }.chart-grid-lines { position:absolute;inset:0 0 22px;background:repeating-linear-gradient(to bottom,#f0edf4 0,#f0edf4 1px,transparent 1px,transparent 33.33%) }.revenue-bar { position:relative;z-index:1;width:min(72px,22%);min-height:4px;border-radius:9px 9px 2px 2px;transition:height .4s }.revenue-bar.month { background:linear-gradient(180deg,#7452ed,#a33dc9);box-shadow:0 7px 18px rgba(116,82,237,.2) }.revenue-bar.today { background:linear-gradient(180deg,#50d1aa,#0d9e73);box-shadow:0 7px 18px rgba(13,158,115,.17) }.revenue-bar span { position:absolute;left:50%;top:-20px;transform:translateX(-50%);padding:3px 5px;border-radius:6px;background:#282331;color:#fff;font-size:7.5px;white-space:nowrap }.chart-labels { grid-column:2;display:flex;justify-content:center;gap:50px;margin-top:-17px;padding-left:0;color:#837b8d;font-size:8px }.chart-labels span { width:min(72px,22%);text-align:center }
.appointment-mix { padding-bottom:15px }.appointment-donut { display:grid;place-items:center;width:142px;height:142px;margin:22px auto 16px;border-radius:50%;background:conic-gradient(#7451ed 0 var(--done-turn),#27a7d8 var(--done-turn) var(--scheduled-turn),#ef5b7d var(--scheduled-turn) 360deg);box-shadow:0 10px 25px rgba(92,65,169,.12) }.appointment-donut::before { content:"";grid-area:1/1;width:98px;height:98px;border-radius:50%;background:#fff }.appointment-donut>div { z-index:1;grid-area:1/1;text-align:center }.appointment-donut strong,.appointment-donut span { display:block }.appointment-donut strong { font-size:25px;line-height:1 }.appointment-donut span { margin-top:4px;color:#9991a1;font-size:8px;text-transform:uppercase }.appointment-legend { padding:0 18px }.appointment-legend>div { display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #f1eef4 }.appointment-legend>div:last-child { border:0 }.appointment-legend i { width:7px;height:7px;border-radius:3px }.appointment-legend i.done { background:#7451ed }.appointment-legend i.scheduled { background:#27a7d8 }.appointment-legend i.noshow { background:#ef5b7d }.appointment-legend span { color:#5f5868;font-size:9.5px }.appointment-legend small { display:block;color:#aaa3b1;font-size:7.5px }.appointment-legend strong { font-size:11px }
.pipeline-list { padding:12px 19px 17px }.pipeline-row { display:grid;grid-template-columns:28px minmax(0,1fr) 34px;align-items:center;gap:10px;padding:10px 0 }.pipeline-number { color:#b1aaba;font-size:8px;font-weight:700 }.pipeline-row header { display:flex;justify-content:space-between;gap:8px;margin-bottom:6px }.pipeline-row header strong { font-size:10px }.pipeline-row header span { color:#9992a1;font-size:8px }.pipeline-track { height:7px;overflow:hidden;border-radius:999px;background:#f0edf4 }.pipeline-track i { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#704cf0,#c53bbd) }.pipeline-row:nth-child(2n) .pipeline-track i { background:linear-gradient(90deg,#28a6dd,#6959e9) }.pipeline-row b { color:#675f70;font-size:9px;text-align:right }.crm-empty { display:grid;place-items:center;padding:45px 18px;text-align:center }.crm-empty>i { font-size:28px;color:var(--pc-accent) }.crm-empty h4 { margin:8px 0 2px;font-size:12px }.crm-empty p { margin:0 0 12px;color:#91899a;font-size:9px }
.attention-count { display:grid!important;place-items:center;min-width:27px;height:27px;border-radius:9px;background:#ffe6ed;color:#d83960!important;font-size:10px!important;letter-spacing:0!important }.attention-list { padding:5px 17px 12px }.attention-list>a { display:grid;grid-template-columns:36px minmax(0,1fr) 24px 16px;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid #f0edf4;color:var(--pc-text) }.attention-list>a:last-child { border:0 }.attention-list>a:hover { text-decoration:none }.attention-icon { display:grid;place-items:center;width:34px;height:34px;border-radius:11px;font-size:15px }.attention-icon.red { background:#ffe7ed;color:#d93c63 }.attention-icon.amber { background:#fff0d4;color:#d58400 }.attention-icon.purple { background:#eee7ff;color:#7049e8 }.attention-icon.blue { background:#e0f2ff;color:#2584ce }.attention-list strong,.attention-list small { display:block }.attention-list strong { font-size:9.5px }.attention-list small { color:#a39caa;font-size:7.8px }.attention-list b { font-size:10px;text-align:center }.attention-list>a>i { color:#aaa3b2 }
.quick-card { display:grid;grid-template-columns:180px minmax(0,1fr) 300px;align-items:center }.quick-card .crm-card-head { height:100%;border-bottom:0;border-right:1px solid #efecf3 }.quick-actions { display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:13px }.quick-actions a { display:flex;align-items:center;justify-content:center;gap:7px;min-height:43px;border:1px solid #e9e5ef;border-radius:12px;background:#faf9fc;color:#625b6c;font-size:9px;font-weight:650 }.quick-actions a i { color:var(--pc-accent);font-size:15px }.quick-actions a:hover { border-color:#cfc3ef;background:#f5f0ff;color:var(--pc-accent);text-decoration:none }.branch-context { display:grid;grid-template-columns:35px 1fr 18px;align-items:center;gap:9px;margin-right:14px;padding:10px;border-radius:13px;background:linear-gradient(110deg,#f5f1ff,#fff0fa) }.branch-context>span { display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#fff;color:var(--pc-accent) }.branch-context strong,.branch-context small { display:block }.branch-context strong { font-size:9.5px }.branch-context small { color:#8e8797;font-size:7.5px }.branch-context>i { color:#0d9a6f }
.kpi-reference { margin-top:15px;border:1px solid var(--pc-border);border-radius:16px;background:#fff;overflow:hidden }.kpi-reference summary { display:flex;align-items:center;justify-content:space-between;padding:14px 17px;cursor:pointer;color:#625b6b;font-size:10px;font-weight:650;list-style:none }.kpi-reference summary span { display:flex;align-items:center;gap:7px }.kpi-reference summary span i { color:var(--pc-accent);font-size:15px }.kpi-reference>div { padding:0 16px 16px;border-top:1px solid #efecf3 }.kpi-reference>div>p { color:#918a99;font-size:8.5px }.kpi-reference table.data th,.kpi-reference table.data td { padding:8px 10px;font-size:9px }
@media (max-width:1100px) { .crm-metrics { grid-template-columns:repeat(2,1fr) }.revenue-card,.appointment-mix { grid-column:span 6 }.pipeline-card,.attention-card { grid-column:span 6 }.quick-card { grid-template-columns:150px 1fr }.branch-context { display:none } }
@media (max-width:760px) { .crm-welcome { align-items:flex-start;flex-direction:column }.crm-date-actions { width:100% }.crm-date-actions form { flex:1 }.crm-metrics { grid-template-columns:1fr 1fr }.crm-dashboard-grid { display:block }.crm-card { margin-bottom:12px }.quick-card { display:block }.quick-card .crm-card-head { border-right:0;border-bottom:1px solid #efecf3 }.quick-actions { grid-template-columns:1fr 1fr }.revenue-summary { align-items:flex-start;flex-direction:column }.today-contribution { width:100% } }
@media (max-width:520px) { .crm-metrics { grid-template-columns:1fr }.crm-welcome h2 { font-size:22px }.crm-date-actions>a { font-size:0 }.crm-date-actions>a i { font-size:15px }.crm-metric { min-height:91px }.appointment-donut { width:125px;height:125px }.appointment-donut::before { width:86px;height:86px }.bar-stage { gap:25px;padding-inline:10px }.chart-labels { gap:25px }.quick-actions { grid-template-columns:1fr 1fr } }
.quick-actions { grid-template-columns:repeat(auto-fit,minmax(105px,1fr)); }
.quick-card-top { margin-bottom:15px; }

/* CRM / Leads · Users directory */
.crm-users-head { display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:17px }.crm-users-head h2 { margin:0 0 3px;font-size:22px;letter-spacing:-.035em }.crm-users-head p { margin:0;color:var(--pc-text-muted);font-size:11px }.crm-users-head .btn { min-height:40px;padding:8px 14px;font-size:11px }
.crm-user-stats { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:15px }.crm-user-stats>div { display:grid;grid-template-columns:43px 1fr auto;align-items:center;gap:10px;min-height:84px;padding:14px 15px;border:1px solid var(--pc-border);border-radius:18px;background:#fff;box-shadow:0 5px 20px rgba(37,28,60,.04) }.crm-user-stats>div>span { display:grid;place-items:center;width:42px;height:42px;border-radius:14px;font-size:20px }.crm-user-stats>div>span.violet { background:#eee7ff;color:#7048ed }.crm-user-stats>div>span.green { background:#dcf7ed;color:#079167 }.crm-user-stats>div>span.blue { background:#def1ff;color:#2582cd }.crm-user-stats>div>span.amber { background:#fff0d2;color:#dc8500 }.crm-user-stats strong,.crm-user-stats small { display:block }.crm-user-stats strong { font-size:20px;line-height:1.05 }.crm-user-stats small { margin-top:3px;color:#716a7a;font-size:9.5px }.crm-user-stats em { padding:4px 7px;border-radius:999px;background:#f5f2f8;color:#948d9d;font-size:7.5px;font-style:normal;white-space:nowrap }.crm-user-stats em i { color:#0c9e70 }
.crm-users-card { overflow:hidden;border:1px solid var(--pc-border);border-radius:20px;background:#fff;box-shadow:0 6px 24px rgba(37,28,60,.045) }.crm-users-toolbar { display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:13px;padding:18px;border-bottom:1px solid var(--pc-border) }.crm-users-toolbar .filter-tab { min-height:35px;padding:6px 12px;font-size:10px }.crm-users-toolbar .filter-tab span { min-width:20px;height:20px;font-size:8px }.crm-filter-tools { display:flex;align-items:center;gap:7px }.crm-filter-tools .table-search { width:220px;min-height:38px;font-size:11px }.crm-filter-tools .table-search input { font-size:10px }.crm-stage-filter { display:flex;align-items:center;gap:5px;min-height:38px;padding:0 10px;border:1px solid #e3deea;border-radius:999px;background:#fff;color:#746c7e }.crm-stage-filter select { max-width:135px;min-height:0;padding:6px 3px;border:0;outline:0;background:transparent;color:#5f5869;font-size:9.5px }
.crm-users-table { width:100%;min-width:900px;border-collapse:collapse }.crm-users-table th,.crm-users-table td { padding:12px 13px;border-bottom:1px solid #efecf3;text-align:left;vertical-align:middle }.crm-users-table th { background:#f8f6fb;color:#81798b;font-size:8px;font-weight:750;letter-spacing:.07em;text-transform:uppercase }.crm-users-table tbody tr { transition:background .14s }.crm-users-table tbody tr:hover { background:#fbf9ff }.crm-users-table tbody tr:last-child td { border-bottom:0 }.select-col { width:38px;text-align:center!important }.select-col input,.fake-check { width:15px;height:15px;margin:0;border:1px solid #dcd6e5;border-radius:5px;accent-color:var(--pc-accent) }.fake-check { display:inline-block;background:#fff }
.crm-contact { display:flex;align-items:center;gap:10px;color:var(--pc-text) }.crm-contact:hover { text-decoration:none }.crm-avatar { display:grid;place-items:center;width:37px;height:37px;flex:0 0 37px;border-radius:12px;font-size:10px;font-weight:800 }.crm-avatar.tone-1 { background:#eae3ff;color:#6b45df }.crm-avatar.tone-2 { background:#daf6ed;color:#07865f }.crm-avatar.tone-3 { background:#dff1ff;color:#227eba }.crm-avatar.tone-4 { background:#fff0d5;color:#c77700 }.crm-avatar.tone-5 { background:#ffe3ec;color:#d33b61 }.crm-contact strong,.crm-contact small { display:block;max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }.crm-contact strong { font-size:10.5px }.crm-contact small { margin-top:2px;color:#9891a0;font-size:8.5px }.language-pill { display:inline-grid;place-items:center;min-width:28px;height:24px;padding:0 6px;border-radius:8px;background:#f0ebff;color:#6c47db;font-size:8px;font-weight:750 }
.stage-pill,.contact-status { display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:8px;font-weight:700;white-space:nowrap }.stage-pill i,.contact-status i { width:5px;height:5px;border-radius:50%;background:currentColor }.stage-pill.violet { background:#eee8ff;color:#6942dd }.stage-pill.blue { background:#e0f2ff;color:#237eb8 }.stage-pill.green { background:#dff7ee;color:#07855f }.stage-pill.amber { background:#fff0d3;color:#c97800 }.stage-pill.rose { background:#ffe3ed;color:#d43a61 }.stage-pill.gray { background:#f0eef3;color:#7c7485 }.contact-status.patient { background:#e0f7ee;color:#07875f }.contact-status.lead { background:#e6f3ff;color:#247bad }.registered-date { color:#817a89;font-size:8.5px;white-space:nowrap }.crm-row-actions { display:flex;align-items:center;justify-content:flex-end;gap:5px }.crm-row-actions>a { display:grid;place-items:center;width:29px;height:29px;border:1px solid #e6e1eb;border-radius:9px;background:#fff;color:#736b7c;font-size:12px }.crm-row-actions>a:hover { border-color:#cfc1ef;background:var(--pc-accent-soft);color:var(--pc-accent);text-decoration:none }.crm-row-actions .open-action { display:flex;width:auto;padding:0 8px;gap:4px;border-color:#d7cdf4;color:#6742d8;font-size:9px }.crm-row-actions .open-action i { font-size:11px }
.crm-table-footer { display:flex;align-items:center;justify-content:space-between;padding:12px 17px;border-top:1px solid #efecf3;color:#8e8796;font-size:8.5px }.crm-table-footer>div { display:flex;align-items:center;gap:5px }.crm-table-footer button,.crm-table-footer>div>span { display:grid;place-items:center;width:26px;height:26px;border:1px solid #e4dfe9;border-radius:8px;background:#fff;color:#81798b }.crm-table-footer>div>span { border-color:#bfaefa;background:var(--pc-accent-soft);color:var(--pc-accent);font-weight:700 }.crm-directory-empty { display:grid;place-items:center;padding:70px 20px;border:1px solid var(--pc-border);border-radius:20px;background:#fff;text-align:center }.crm-directory-empty>span { display:grid;place-items:center;width:60px;height:60px;border-radius:19px;background:var(--pc-accent-soft);color:var(--pc-accent);font-size:26px }.crm-directory-empty h3 { margin:13px 0 3px;font-size:15px }.crm-directory-empty p { margin:0 0 13px;color:var(--pc-text-muted);font-size:10px }
@media (max-width:1100px) { .crm-user-stats { grid-template-columns:repeat(2,1fr) } }
@media (max-width:700px) { .crm-users-head { align-items:flex-start }.crm-users-head p { max-width:230px }.crm-users-toolbar { align-items:stretch;flex-direction:column }.crm-users-toolbar .filter-tabs { overflow-x:auto;flex-wrap:nowrap }.crm-filter-tools,.crm-filter-tools .table-search { width:100% }.crm-filter-tools .table-search { flex:1 }.crm-stage-filter { flex:0 0 auto }.crm-row-actions>a:not(.open-action) { display:none } }
@media (max-width:520px) { .crm-user-stats { grid-template-columns:1fr 1fr;gap:8px }.crm-user-stats>div { grid-template-columns:36px 1fr;min-height:70px;padding:11px }.crm-user-stats>div>span { width:36px;height:36px }.crm-user-stats em { display:none }.crm-users-head { flex-direction:column }.crm-users-head .btn { width:100% }.crm-filter-tools { align-items:stretch;flex-direction:column }.crm-stage-filter { width:100% }.crm-stage-filter select { flex:1;max-width:none } }

/* Corrección de escala tipográfica CRM: paridad visual con TrendyAdmin. */
.crm-users-head h2 { font-size:26px; }
.crm-users-head p { font-size:14px; }
.crm-users-head .btn { min-height:44px; padding:9px 17px; font-size:13px; }
.crm-user-stats>div { min-height:96px; padding:16px 17px; }
.crm-user-stats strong { font-size:25px; }
.crm-user-stats small { font-size:12px; }
.crm-user-stats em { padding:5px 8px; font-size:10px; }
.crm-users-toolbar { padding:20px; }
.crm-users-toolbar .filter-tab { min-height:40px; padding:7px 14px; font-size:12px; }
.crm-users-toolbar .filter-tab span { min-width:23px; height:22px; font-size:10px; }
.crm-filter-tools .table-search { width:250px; min-height:42px; }
.crm-filter-tools .table-search input,.crm-stage-filter select { font-size:12px; }
.crm-stage-filter { min-height:42px; padding-inline:13px; }
.crm-stage-filter select { max-width:160px; }
.crm-users-table th,.crm-users-table td { padding:15px 14px; }
.crm-users-table th { font-size:11px; letter-spacing:.065em; }
.crm-users-table tbody tr { height:76px; }
.select-col input,.fake-check { width:17px; height:17px; }
.crm-avatar { width:44px; height:44px; flex-basis:44px; border-radius:13px; font-size:12px; }
.crm-contact { gap:12px; }
.crm-contact strong,.crm-contact small { max-width:250px; }
.crm-contact strong { font-size:14px; line-height:1.25; }
.crm-contact small { margin-top:3px; font-size:11px; }
.language-pill { min-width:34px; height:29px; padding-inline:8px; font-size:10.5px; }
.stage-pill,.contact-status { gap:6px; padding:7px 11px; font-size:11px; }
.stage-pill i,.contact-status i { width:6px; height:6px; }
.registered-date { font-size:12px; }
.crm-row-actions { gap:7px; }
.crm-row-actions>a { width:36px; height:36px; border-radius:11px; font-size:15px; }
.crm-row-actions .open-action { padding-inline:12px; gap:6px; font-size:12px; }
.crm-row-actions .open-action i { font-size:14px; }
.crm-table-footer { padding:15px 19px; font-size:11.5px; }
.crm-table-footer button,.crm-table-footer>div>span { width:31px; height:31px; font-size:12px; }
@media (max-width:700px) {
    .crm-users-head h2 { font-size:23px; }
    .crm-users-head p { font-size:12.5px; }
    .crm-users-table th,.crm-users-table td { padding-block:13px; }
    .crm-contact strong { font-size:13px; }
    .crm-contact small { font-size:10.5px; }
}

/* ============================================================
   Política tipográfica global · mínimo legible
   Evita microtexto en vistas actuales y componentes futuros.
   ============================================================ */
:root {
    --type-caption: 12px;
    --type-small: 13px;
    --type-body: 15px;
    --type-label: 13px;
    --type-card-title: 17px;
}
body { font-size: var(--type-body); }
body small,.small { font-size: var(--type-caption)!important; line-height:1.4; }
body label,.field label,.form-label { font-size:var(--type-label)!important; }
.muted,.text-muted { font-size:var(--type-small); }
.badge,.stage-pill,.contact-status,.profile-status,.appointment-status,.fu-priority,.opportunity-state { font-size:12px!important; }
table.data th,table.table th,.crm-users-table th { font-size:12px!important; }
table.data td,table.table td,.crm-users-table td { font-size:14px; }
input,select,textarea,button { font-size:13px; }
.field input,.field select,.field textarea,.form-control,.form-select { font-size:14px; }
.panel h2.section,.panel h3.section,.card-title { font-size:17px; }
.nav-label { font-size:11px; }
.nav a { font-size:14px; }
.sidebar-footer { font-size:12px; }
.page-eyebrow { font-size:12px; }
.chip { font-size:13px; }

/* Dashboard */
.crm-eyebrow { font-size:12px; }
.crm-welcome p { font-size:14px; }
.crm-date-actions form,.crm-date-actions>a,.crm-date-actions input { font-size:13px; }
.crm-metric small { font-size:12px!important; }
.crm-metric strong { font-size:25px; }
.crm-metric p { font-size:11.5px; }
.crm-card-head span { font-size:11px; }
.crm-card-head h3 { font-size:17px; }
.crm-card-head>a { font-size:12px; }
.crm-period { font-size:11px!important; }
.quick-actions a { min-height:48px; font-size:12px; }
.branch-context strong { font-size:12px; }
.branch-context small { font-size:10.5px!important; }
.revenue-summary small { font-size:12px!important; }
.revenue-summary>div:first-child>span,.today-contribution>span { font-size:11px; }
.chart-y,.chart-labels,.revenue-bar span { font-size:10px; }
.appointment-donut span { font-size:11px; }
.appointment-legend span { font-size:12px; }
.appointment-legend small { font-size:10px!important; }
.pipeline-number { font-size:11px; }
.pipeline-row header strong { font-size:13px; }
.pipeline-row header span,.pipeline-row b { font-size:11px; }
.attention-list strong { font-size:13px; }
.attention-list small { font-size:10.5px!important; }
.kpi-reference summary { font-size:13px; }
.kpi-reference>div>p { font-size:11.5px; }
.kpi-reference table.data th,.kpi-reference table.data td { font-size:12px!important; }

/* Agenda */
.schedule-kicker { font-size:12px; }
.schedule-hero p { font-size:14px; }
.schedule-stat small { font-size:12px!important; }
.mini-calendar header strong { font-size:15px; }
.mini-week { font-size:11px; }
.mini-days a { font-size:13px; }
.schedule-legend h3 { font-size:15px; }
.schedule-legend>div { font-size:13px; }
.schedule-legend b { font-size:11px; }
.schedule-board-head h3 { font-size:18px; }
.schedule-board-head>div>span { font-size:12px; }
.schedule-controls input,.day-arrow,.today-button,.catalog-link { font-size:12px; }
.appointment-time strong { font-size:15px; }
.appointment-time span { font-size:12px; }
.appointment-main h4 { font-size:15px; }
.appointment-main p { font-size:12px; }

/* Seguimiento */
.followup-hero>div:first-child>span { font-size:12px; }
.followup-hero p { font-size:14px; }
.followup-health strong { font-size:14px; }
.followup-health small { font-size:11px!important; }
.followup-stats small { font-size:12px!important; }
.followup-stats em { font-size:10.5px; }
.fu-action-head h3 { font-size:16px; }
.fu-action-head p { font-size:11px; }
.fu-action-form label>span:first-child { font-size:11px; }
.fu-action-form select,.fu-action-form input:not([type="checkbox"]),.fu-action-form .btn { font-size:12px; }
.fu-section-head h3 { font-size:17px; }
.fu-section-head p { font-size:11px; }
.live-pill,.message-count { font-size:11px; }
.fu-filters .filter-tab,.fu-search input { font-size:12px; }
.fu-task-top h4 { font-size:14px; }
.fu-task-top p { font-size:12px; }
.fu-task-meta { font-size:11px; }
.fu-complete input,.fu-complete .btn { font-size:12px; }
.message-item h4 { font-size:13px; }
.message-item p,.message-item small { font-size:11px!important; }
.fu-empty p { font-size:12px; }

/* Formularios, perfiles y paneles auxiliares */
.form-card-heading h2 { font-size:17px; }
.form-card-heading p { font-size:12px; }
.choice-chip { font-size:13px!important; }
.page-intro p,.crm-users-head p { font-size:14px; }
.record-total { font-size:13px; }
.filter-tab,.filter-button,.table-search input { font-size:12px; }
.flash,.alert { font-size:14px; }
.kv { font-size:14px; }

@media (max-width:639px) {
    :root { --type-body:14px; --type-small:12.5px; --type-label:12.5px; }
}

/* Directorio de pacientes sobre el patrón Users */
.patient-mrn { display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:10px;background:#f3efff;color:#6741db;font-size:12px;font-weight:700;white-space:nowrap }.patient-mrn i { font-size:15px }.patient-mrn:hover { background:#ebe3ff;color:#5834ca;text-decoration:none }.contact-status.inactive { background:#f0eef3;color:#777080 }.patient-users-table .crm-contact strong { font-size:14px }.patient-users-table .crm-contact small { font-size:11px!important }.patient-users-table .contact-status { font-size:12px!important }.patient-users-table .registered-date { font-size:12px }.patient-directory .filter-button { min-height:42px;padding-inline:14px }.patient-directory .crm-filter-tools .table-search { width:270px }.patient-user-stats small { font-size:12px!important }.patient-user-stats em { font-size:10px }.patient-users-head p { font-size:14px }
@media (max-width:700px) { .patient-directory .crm-filter-tools .table-search { width:100% } }

/* Lead detail · User View */
.lead-profile-hero { overflow:hidden;margin-bottom:16px;border:1px solid var(--pc-border);border-radius:21px;background:#fff;box-shadow:0 7px 25px rgba(37,28,60,.05) }.lead-cover { position:relative;height:116px;overflow:hidden;background:linear-gradient(120deg,#21163d 0%,#6941ce 52%,#b53ebd 100%) }.lead-cover::before,.lead-cover::after,.lead-cover span,.lead-cover i { content:"";position:absolute;border-radius:50%;border:24px solid rgba(255,255,255,.07) }.lead-cover::before { width:190px;height:190px;right:9%;top:-90px }.lead-cover::after { width:120px;height:120px;left:25%;bottom:-92px }.lead-cover span { width:70px;height:70px;right:28%;bottom:-40px;border-width:13px }.lead-cover i { width:230px;height:230px;left:-110px;top:-140px;border-width:35px }.lead-profile-main { position:relative;display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:end;gap:16px;padding:0 24px 18px }.lead-profile-avatar { display:grid;place-items:center;width:88px;height:88px;margin-top:-38px;border:5px solid #fff;border-radius:25px;background:linear-gradient(135deg,#e9e0ff,#f9e1f4);color:#6840db;font-size:25px;font-weight:800;box-shadow:0 8px 20px rgba(64,43,104,.13) }.lead-profile-avatar i { position:absolute;width:13px;height:13px;margin:62px 0 0 62px;border:3px solid #fff;border-radius:50%;background:#11a676 }.lead-profile-name { align-self:center;padding-top:11px }.lead-profile-name>div { display:flex;align-items:center;gap:9px;flex-wrap:wrap }.lead-profile-name h2 { margin:0;font-size:22px;letter-spacing:-.035em }.lead-profile-name p { display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:5px 0 0;color:#8d8596;font-size:11px }.lead-profile-name p i { color:var(--pc-accent) }.profile-status { display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;font-size:9px;font-weight:700 }.profile-status i { width:6px;height:6px;border-radius:50%;background:currentColor }.profile-status.patient { background:#def7ed;color:#08875f }.profile-status.lead { background:#e5f3ff;color:#257db9 }.lead-profile-actions { display:flex;align-items:center;gap:7px;padding-bottom:3px }.lead-profile-actions .btn { min-height:39px;padding:7px 13px;font-size:11px }.lead-profile-tabs { display:flex;align-items:center;gap:4px;padding:0 20px;border-top:1px solid #efecf3;overflow-x:auto }.lead-profile-tabs a { position:relative;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 13px;color:#7a7284;font-size:10.5px;font-weight:650;white-space:nowrap }.lead-profile-tabs a:hover { color:var(--pc-accent);text-decoration:none }.lead-profile-tabs a.active { color:var(--pc-accent) }.lead-profile-tabs a.active::after { content:"";position:absolute;left:11px;right:11px;bottom:0;height:2px;border-radius:2px;background:var(--pc-accent) }
.patient-linked { display:grid;grid-template-columns:39px minmax(0,1fr) auto;align-items:center;gap:11px;margin-bottom:15px;padding:12px 15px;border:1px solid #bce9d8;border-radius:15px;background:#e8faf3 }.patient-linked>span { display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#fff;color:#098862;font-size:18px }.patient-linked strong,.patient-linked p { display:block;margin:0 }.patient-linked strong { color:#12684f;font-size:11px }.patient-linked p { margin-top:2px;color:#4f8a76;font-size:9px }.patient-linked>a { display:flex;align-items:center;gap:5px;color:#087a57;font-size:10px;font-weight:700 }
.lead-profile-grid { display:grid;grid-template-columns:290px minmax(0,1fr);gap:15px;align-items:start;scroll-margin-top:100px }.lead-profile-side,.lead-profile-content { display:grid;gap:15px }.lead-view-card { overflow:hidden;border:1px solid var(--pc-border);border-radius:19px;background:#fff;box-shadow:0 5px 21px rgba(37,28,60,.04);scroll-margin-top:100px }.lead-view-card>header:not(.lead-card-heading) { display:flex;align-items:center;justify-content:space-between;padding:16px 17px;border-bottom:1px solid #efecf3 }.lead-view-card>header h3 { margin:0;font-size:13px }.lead-view-card>header>a { display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#f3effa;color:var(--pc-accent) }.contact-card { padding-bottom:8px }.contact-detail { display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:10px 16px }.contact-detail>span { display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#f2edff;color:#7049e8;font-size:14px }.contact-detail small,.contact-detail strong { display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }.contact-detail small { color:#9d96a5;font-size:8px }.contact-detail strong { margin-top:2px;font-size:10.5px }.profile-meta { padding-bottom:8px }.profile-meta>div { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 16px;color:#877f90;font-size:9.5px }.profile-meta b { padding:4px 7px;border-radius:999px;background:#f0edf4;color:#716a79;font-size:8px }.profile-meta b.green { background:#dff7ee;color:#07865f }.profile-meta b.blue { background:#e1f2ff;color:#237cb8 }.profile-meta b.violet { background:#eee8ff;color:#6942da }.profile-meta strong { color:#4f4956;font-size:9px }.convert-card { padding:20px;border:0;background:linear-gradient(135deg,#23173e,#7040cf 65%,#a43dbb);color:#fff;box-shadow:0 12px 28px rgba(75,45,133,.2) }.convert-card>span { display:grid;place-items:center;width:39px;height:39px;border-radius:13px;background:rgba(255,255,255,.14);font-size:19px }.convert-card h3 { margin:11px 0 4px;color:#fff;font-size:14px }.convert-card p { margin:0 0 12px;color:rgba(255,255,255,.68);font-size:9px }.convert-card .btn { width:100%;min-height:38px;background:#fff;color:#6740cd;box-shadow:none;font-size:10px }.convert-card small { display:block;margin-top:9px;color:#d8c9fa;font-size:8px;text-align:center }
.lead-card-heading { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #efecf3 }.lead-card-heading>div { display:flex;align-items:center;gap:10px }.lead-card-heading>div>span { display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:#eee8ff;color:#7049e8;font-size:17px }.lead-card-heading h3 { margin:0 0 2px;font-size:13px }.lead-card-heading p { margin:0;color:#9a93a2;font-size:8.5px }.opportunity-state { display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;background:#e2f8ef;color:#07875f;font-size:8px;font-weight:700;text-transform:uppercase }.opportunity-state i { width:6px;height:6px;border-radius:50%;background:currentColor }.opportunity-state.closed,.opportunity-state.lost { background:#ffe6ed;color:#d23b61 }
.pipeline-progress { padding:18px 19px 10px }.pipeline-progress>div:first-child { display:flex;justify-content:space-between;color:#777080;font-size:9px }.pipeline-progress>div:first-child strong { color:var(--pc-accent) }.pipeline-progress-track { height:7px;margin:7px 0;overflow:hidden;border-radius:999px;background:#eeeaf3 }.pipeline-progress-track i { display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#704bf0,#bd3ec0);box-shadow:0 3px 9px rgba(112,75,240,.2) }.pipeline-steps { display:flex;justify-content:space-between;color:#b0a9b7;font-size:7.5px }.pipeline-steps span.complete { color:#6841d4;font-weight:700 }.opportunity-summary { display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:7px 19px 15px }.opportunity-summary>div { padding:11px;border-radius:12px;background:#f9f7fc }.opportunity-summary small,.opportunity-summary strong { display:block }.opportunity-summary small { color:#9e97a6;font-size:8px }.opportunity-summary strong { margin-top:3px;font-size:10.5px }.stage-update-form { display:grid;grid-template-columns:190px minmax(180px,1fr) auto;align-items:end;gap:8px;margin:0 19px 17px;padding:14px;border:1px solid #e7e1ef;border-radius:14px;background:#fcfbfe }.stage-update-form label>span { display:block;margin-bottom:4px;color:#6d6576;font-size:8.5px;font-weight:650 }.stage-update-form select,.stage-update-form input { width:100%;min-height:37px;padding:7px 9px;border:1px solid #e0dbe7;border-radius:9px;background:#fff;font-size:10px }.stage-update-form .btn { min-height:37px;padding:6px 11px;font-size:9.5px }.opportunity-edit { margin:0 19px 18px;border-top:1px solid #efecf3 }.opportunity-edit summary { padding-top:12px;cursor:pointer;color:#756d80;font-size:9px;font-weight:650 }.opportunity-edit>form { margin-top:12px;padding:13px;border-radius:12px;background:#f9f7fc }
.consent-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:17px }.consent-item { position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 18px;align-items:center;gap:9px;padding:12px;border:1px solid #ebe7f0;border-radius:14px;background:#fcfbfe }.consent-item>span { display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:#f0edf4;color:#857d8e;font-size:15px }.consent-item strong,.consent-item small { display:block }.consent-item strong { font-size:9.5px }.consent-item small { margin-top:2px;color:#a29ba9;font-size:7.5px }.consent-item>i { color:#aaa3b2;font-size:15px }.consent-item.granted { border-color:#c9eadc;background:#f5fdf9 }.consent-item.granted>span { background:#def7ed;color:#07875f }.consent-item.granted>i { color:#0a9a6e }.consent-item form { grid-column:1/-1 }.consent-item button { width:100%;padding-top:8px;border:0;border-top:1px solid #efecf3;background:transparent;color:#7049df;font-size:8px;font-weight:700;cursor:pointer }
.history-count { display:grid;place-items:center;min-width:27px;height:27px;border-radius:9px;background:var(--pc-accent-soft);color:var(--pc-accent);font-size:9px;font-weight:700 }.lead-activity-list { padding:7px 18px 14px }.lead-activity-list article { display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #f0edf4 }.lead-activity-list article:last-child { border:0 }.activity-node { display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:#eee8ff;color:#7049e8;font-size:13px }.lead-activity-list h4 { margin:0 0 2px;font-size:9.5px }.lead-activity-list h4 i { color:#a9a2af;font-size:10px }.lead-activity-list p { margin:0;color:#9d96a4;font-size:8px }.lead-activity-list time { color:#918a99;font-size:8px;white-space:nowrap }
@media (max-width:900px) { .lead-profile-grid { grid-template-columns:250px minmax(0,1fr) }.consent-grid { grid-template-columns:1fr }.stage-update-form { grid-template-columns:1fr 1fr }.stage-update-form .btn { grid-column:1/-1 }.opportunity-summary { grid-template-columns:1fr 1fr } }
@media (max-width:700px) { .lead-profile-main { grid-template-columns:70px 1fr;padding-inline:17px }.lead-profile-avatar { width:68px;height:68px;margin-top:-28px;border-radius:20px;font-size:19px }.lead-profile-avatar i { display:none }.lead-profile-actions { grid-column:1/-1;width:100% }.lead-profile-actions .btn { flex:1 }.lead-profile-grid { grid-template-columns:1fr }.lead-profile-side { grid-template-columns:1fr 1fr }.convert-card { grid-column:1/-1 }.lead-profile-name h2 { font-size:18px }.patient-linked { grid-template-columns:36px minmax(0,1fr) }.patient-linked>a { grid-column:2 }.opportunity-summary { grid-template-columns:1fr }.stage-update-form { grid-template-columns:1fr } }
@media (max-width:480px) { .lead-cover { height:90px }.lead-profile-main { grid-template-columns:1fr;text-align:center }.lead-profile-avatar { margin:-28px auto 0 }.lead-profile-name>div,.lead-profile-name p { justify-content:center }.lead-profile-actions { flex-direction:column }.lead-profile-actions .btn { width:100% }.lead-profile-side { grid-template-columns:1fr }.lead-profile-tabs { padding-inline:8px }.pipeline-steps { display:none }.opportunity-summary,.stage-update-form { padding-inline:11px;margin-inline:11px }.consent-grid { padding:12px } }

/* Escala tipográfica legible para la ficha individual del lead. */
.lead-profile-name h2 { font-size:27px; }
.lead-profile-name p { font-size:13px; }
.profile-status { padding:6px 10px; font-size:11px; }
.lead-profile-actions .btn { min-height:43px; padding:8px 15px; font-size:13px; }
.lead-profile-tabs a { min-height:52px; padding-inline:15px; font-size:13px; }
.patient-linked strong { font-size:14px; }
.patient-linked p,.patient-linked>a { font-size:12px; }
.lead-view-card>header h3,.lead-card-heading h3 { font-size:16px; }
.contact-detail { grid-template-columns:39px minmax(0,1fr); gap:12px; padding:12px 18px; }
.contact-detail>span { width:37px; height:37px; font-size:17px; }
.contact-detail small { font-size:11px; }
.contact-detail strong { margin-top:3px; font-size:14px; }
.profile-meta>div { padding:11px 18px; font-size:12px; }
.profile-meta b { padding:5px 9px; font-size:10.5px; }
.profile-meta strong { font-size:12px; }
.convert-card h3 { font-size:17px; }
.convert-card p { font-size:12px; line-height:1.5; }
.convert-card .btn { min-height:42px; font-size:12px; }
.convert-card small { font-size:10px; }
.lead-card-heading { padding:18px 20px; }
.lead-card-heading>div>span { width:42px; height:42px; font-size:20px; }
.lead-card-heading p { font-size:11px; }
.opportunity-state { padding:6px 10px; font-size:10.5px; }
.pipeline-progress { padding:21px 22px 12px; }
.pipeline-progress>div:first-child { font-size:12px; }
.pipeline-progress-track { height:9px; margin:9px 0; }
.pipeline-steps { font-size:10px; }
.opportunity-summary { gap:11px; padding:9px 22px 18px; }
.opportunity-summary>div { padding:14px; }
.opportunity-summary small { font-size:10.5px; }
.opportunity-summary strong { margin-top:4px; font-size:14px; }
.stage-update-form { grid-template-columns:220px minmax(220px,1fr) auto; gap:10px; margin:0 22px 20px; padding:17px; }
.stage-update-form label>span { margin-bottom:6px; font-size:11px; }
.stage-update-form select,.stage-update-form input { min-height:42px; padding:8px 11px; font-size:12.5px; }
.stage-update-form .btn { min-height:42px; padding-inline:14px; font-size:12px; }
.opportunity-edit { margin-inline:22px; }
.opportunity-edit summary { padding-block:15px; font-size:11.5px; }
/* Los menús nativos de Windows no heredan de forma consistente el tema.
   Mantener la lista desplegada clara y de alto contraste evita texto blanco
   sobre fondo blanco tanto en el pipeline como en su configuración avanzada. */
.opportunity-card select {
    color-scheme: light;
    border-color: #d7dfe2;
    background-color: #fff;
    color: #1f2f31;
    -webkit-text-fill-color: #1f2f31;
    opacity: 1;
}
.opportunity-card select:hover {
    border-color: #aebec2;
}
.opportunity-card select:focus {
    border-color: var(--pc-accent);
    box-shadow: 0 0 0 4px var(--pc-accent-ring);
    outline: 0;
}
.opportunity-card select option,
.opportunity-card select optgroup {
    background: #fff !important;
    color: #1f2f31 !important;
    -webkit-text-fill-color: #1f2f31;
}
.opportunity-card select option:checked {
    background: #dceff1 !important;
    color: #075f68 !important;
    font-weight: 700;
}
.opportunity-card select option:disabled {
    background: #f1f5f5 !important;
    color: #819092 !important;
    -webkit-text-fill-color: #819092;
}
.opportunity-card select:disabled {
    background-color: #f1f5f5;
    color: #69787a;
    -webkit-text-fill-color: #69787a;
    cursor: not-allowed;
}
.consent-grid { gap:12px; padding:20px; }
.consent-item { grid-template-columns:42px minmax(0,1fr) 20px; gap:11px; padding:15px; }
.consent-item>span { width:40px; height:40px; font-size:18px; }
.consent-item strong { font-size:13px; }
.consent-item small { margin-top:3px; font-size:10px; }
.consent-item>i { font-size:18px; }
.consent-item button { padding-top:10px; font-size:11px; }
.history-count { min-width:31px; height:31px; font-size:11px; }
.lead-activity-list { padding:9px 20px 16px; }
.lead-activity-list article { grid-template-columns:38px minmax(0,1fr) auto; gap:12px; padding:14px 0; }
.activity-node { width:36px; height:36px; font-size:15px; }
.lead-activity-list h4 { font-size:13px; }
.lead-activity-list p,.lead-activity-list time { font-size:11px; }
@media (max-width:900px) {
    .stage-update-form { grid-template-columns:1fr 1fr; }
    .stage-update-form .btn { grid-column:1/-1; }
}
@media (max-width:700px) {
    .lead-profile-name h2 { font-size:22px; }
    .stage-update-form { grid-template-columns:1fr; }
    .stage-update-form .btn { grid-column:auto; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior: auto!important; transition-duration: .01ms!important; } }

/* TrendyAdmin composition: global pill header, page heading, KPI icons,
   tabbed filters and unified data card. */
.desktop-header { display: none; }
.page-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin: 4px 0 22px; }
.page-intro h2 { margin: 0 0 3px; font-size: 19px; letter-spacing: -.025em; }
.page-intro p { margin: 0; }
.record-total { padding: 8px 12px; border-radius: 999px; background: var(--pc-accent-soft); color: var(--pc-accent-strong); font-size: 12px; }

.data-card { overflow: hidden; }
.data-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 20px; border-bottom: 1px solid var(--pc-border); }
.filter-tabs,.filter-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.filter-tab { min-height: 40px; padding: 8px 15px; border: 0; border-radius: 999px; background: #f5f3fa; color: #736d80; cursor: pointer; font-size: 13px; font-weight: 600; }
.filter-tab span { display: inline-grid; place-items: center; min-width: 24px; height: 23px; margin-left: 6px; padding: 0 6px; border-radius: 999px; background: #fff; font-size: 11px; }
.filter-tab.active { background: linear-gradient(135deg,#704cf2,#a53ed0); color: #fff; box-shadow: 0 8px 17px rgba(118,86,246,.22); }
.filter-tab.active span { color: var(--pc-accent-strong); }
.table-search { display: flex; align-items: center; width: min(280px,70vw); min-height: 42px; padding: 0 14px; border-radius: 999px; background: #f7f5fb; color: #8b8497; }
.table-search input { width: 100%; min-width: 0; padding: 9px; border: 0; outline: 0; background: transparent; color: var(--pc-text); }
.filter-button { display: inline-flex; align-items: center; gap: 7px; min-height: 42px; padding: 8px 15px; border: 1px solid #e2ddec; border-radius: 999px; background: #fff; color: #625c6d; cursor: pointer; font-size: 13px; font-weight: 600; }
.filter-button:hover { border-color: #cfc4ef; color: var(--pc-accent-strong); }
.empty-filter { display: grid; place-items: center; gap: 5px; padding: 45px 20px; color: var(--pc-text-muted); }
.empty-filter[hidden] { display: none; }
.empty-filter i { font-size: 29px; color: var(--pc-accent); }
.empty-filter strong { color: var(--pc-text); }
.empty-filter span { font-size: 12px; }
tr[hidden] { display: none; }

/* Perfil propio: jerarquía tipo TrendyAdmin, adaptada al contexto clínico. */
.self-profile-hero { overflow:hidden; margin-bottom:22px; border:1px solid var(--pc-border); border-radius:24px; background:#fff; box-shadow:0 10px 28px rgba(42,30,73,.06); }
.self-profile-cover { position:relative; height:145px; overflow:hidden; background:linear-gradient(120deg,#241741 0%,#6d43dc 58%,#bd39c1 100%); }
.self-profile-cover span { position:absolute; border:25px solid rgba(255,255,255,.08); border-radius:50%; }.self-profile-cover span:nth-child(1){width:170px;height:170px;top:-80px;left:-45px}.self-profile-cover span:nth-child(2){width:210px;height:210px;right:8%;top:-100px}.self-profile-cover span:nth-child(3){width:90px;height:90px;left:35%;bottom:-65px}
.self-profile-identity { position:relative; display:flex; align-items:center; gap:20px; min-height:105px; padding:18px 28px 14px 145px; }
.self-profile-photo { position:absolute; left:30px; top:-32px; z-index:2; }.self-profile-avatar { position:relative; display:grid; place-items:center; width:92px; height:92px; overflow:hidden; border:6px solid #fff; border-radius:25px; background:#eee7ff; color:#7347ed; box-shadow:0 0 0 2px #ad80fa; font-size:25px; font-weight:800; }.self-profile-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }.self-profile-avatar.has-photo>span { visibility:hidden; }
.self-profile-photo-actions { position:absolute; right:-12px; bottom:-9px; display:flex; gap:4px; }.self-profile-photo-actions button { display:grid; place-items:center; width:32px; height:32px; padding:0; border:3px solid #fff; border-radius:50%; background:#7448ee; color:#fff; cursor:pointer; box-shadow:0 4px 12px rgba(62,39,102,.2); }.self-profile-photo-actions button.danger { background:#e54870; }.self-profile-photo-actions button:disabled { cursor:wait; opacity:.65; }.self-profile-photo-actions button.loading i { animation:spin .8s linear infinite; }.self-photo-feedback { position:absolute; top:105px; left:0; width:150px; color:#078a62; font-size:9px; font-weight:700; }.self-photo-feedback.error { color:#d93461; }
.self-profile-identity>div { min-width:0; }.self-profile-identity h1 { margin:2px 0 4px; font-size:25px; }.self-profile-identity p { margin:0; color:var(--pc-text-muted); font-size:12px; }.self-profile-identity p span { margin:0 5px; }.self-profile-identity>.status-pill { margin-left:auto; max-width:260px; white-space:normal; text-align:center; }
.self-profile-tabs { display:flex; gap:8px; padding:0 28px; border-top:1px solid var(--pc-border); }.self-profile-tabs a { display:flex; align-items:center; gap:7px; padding:15px 10px 13px; border-bottom:2px solid transparent; color:#675f72; font-size:12px; font-weight:700; }.self-profile-tabs a:hover { border-color:#7851ef; color:#704cf2; text-decoration:none; }
.profile-edit-grid { display:grid; grid-template-columns:290px minmax(0,1fr); gap:20px; align-items:start; }.profile-edit-main { display:grid; gap:20px; }
.profile-context-card { position:sticky; top:112px; padding:24px; }.profile-context-icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:18px; border-radius:16px; background:#eee7ff; color:#704cf2; font-size:24px; }.profile-context-card>span { display:block; margin-bottom:5px; color:#91889d; font-size:10px; text-transform:uppercase; letter-spacing:.06em; }.profile-context-card>strong { display:block; font-size:13px; line-height:1.45; }.profile-context-card hr { margin:16px 0; border:0; border-top:1px solid var(--pc-border); }.profile-context-card p { margin:20px -7px -7px; padding:12px; border-radius:13px; background:#f8f5fc; color:#756d80; font-size:10.5px; line-height:1.55; }
.profile-form-card { overflow:hidden; }.profile-form-card>header { display:flex; align-items:center; gap:13px; padding:20px 24px; border-bottom:1px solid var(--pc-border); }.profile-form-card>header h2 { margin:0 0 3px; font-size:17px; }.profile-form-card>header p { margin:0; color:var(--pc-text-muted); font-size:11px; }.profile-section-icon { display:grid; place-items:center; width:43px; height:43px; border-radius:14px; background:#eee7ff; color:#704cf2; font-size:20px; }.profile-section-icon.secure { background:#dcf6ec; color:#00956b; }
.profile-form-card form { padding:23px 24px; }.profile-form-section+.profile-form-section { margin-top:25px; padding-top:22px; border-top:1px solid var(--pc-border); }.profile-form-section h3 { margin:0 0 15px; color:#5f576a; font-size:12px; text-transform:uppercase; letter-spacing:.05em; }
.profile-fields { display:grid; gap:16px; }.profile-fields.two { grid-template-columns:repeat(2,minmax(0,1fr)); }.profile-fields label { display:grid; gap:7px; }.profile-fields label.wide { grid-column:1/-1; }.profile-fields label>span { color:#51495d; font-size:11px; font-weight:700; }.profile-fields input { width:100%; min-height:46px; padding:11px 13px; border:1px solid #dfd8e9; border-radius:12px; outline:0; background:#fbfafd; color:var(--pc-text); font:inherit; }.profile-fields input:focus { border-color:#8d69f5; background:#fff; box-shadow:0 0 0 3px rgba(116,76,242,.1); }.profile-fields small { color:#91899c; font-size:9.5px; }
.profile-form-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:22px; padding-top:18px; border-top:1px solid var(--pc-border); }.security-note { margin-right:auto; color:#81798d; font-size:10.5px; }.security-note i { color:#00a476; }
@media(max-width:900px){.profile-edit-grid{grid-template-columns:1fr}.profile-context-card{position:static}.self-profile-identity{padding-left:122px}.self-profile-photo{left:20px}.self-profile-avatar{width:82px;height:82px}.self-profile-tabs{overflow-x:auto}.self-profile-tabs a{white-space:nowrap}}
@media(max-width:620px){.self-profile-cover{height:105px}.self-profile-identity{display:block;padding:55px 18px 18px}.self-profile-photo{top:-42px}.self-profile-identity>.status-pill{display:inline-flex;margin:12px 0 0}.self-profile-tabs{padding:0 12px}.profile-fields.two{grid-template-columns:1fr}.profile-form-card form,.profile-form-card>header{padding-left:17px;padding-right:17px}.profile-form-actions{align-items:stretch;flex-direction:column-reverse}.profile-form-actions .btn{justify-content:center}.security-note{margin:0}}

.kpi-icon { position: absolute; z-index: 2; top: 20px; right: 20px; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; font-size: 21px; }
.kpi-icon.violet { color: #7148f3; background: #eee7ff; }
.kpi-icon.green { color: #06966b; background: #dff7ee; }
.kpi-icon.amber { color: #e68a00; background: #fff0ce; }
.kpi-icon.rose { color: #ed4774; background: #ffe2ea; }
.kpi-icon.blue { color: #2585d8; background: #dff1ff; }
.kpi-icon.gray { color: #7d768b; background: #f0eef4; }
.kpi h2,.kpi .num,.kpi .hint,.kpi .drill { max-width: calc(100% - 52px); }

@media (min-width: 992px) {
    .desktop-header { position: sticky; top: 0; z-index: 60; display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 82px; margin: 14px 28px 0; padding: 10px 12px; border: 1px solid rgba(234,232,240,.9); border-radius: 999px; background: rgba(255,255,255,.9); box-shadow: 0 9px 30px rgba(37,27,67,.07); backdrop-filter: blur(18px); }
    .header-leading,.header-actions { display: flex; align-items: center; gap: 9px; }
    .header-leading { flex: 1; min-width: 0; }
    .header-icon { position: relative; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: #f7f5fb; color: #655e73; cursor: pointer; font-size: 19px; }
    .global-search { display: flex; align-items: center; width: min(500px,48vw); min-height: 46px; padding: 0 15px; border-radius: 999px; background: #f7f5fb; color: #8b8498; }
    .global-search input { flex: 1; min-width: 0; padding: 10px; border: 0; outline: 0; background: transparent; color: var(--pc-text); }
    .global-search kbd { padding: 3px 7px; border: 1px solid #e1ddeb; border-radius: 7px; background: #fff; color: #8b8498; font: 600 10px/1.4 inherit; }
    .header-create { display: inline-flex; align-items: center; gap: 7px; min-height: 46px; padding: 0 20px; border-radius: 999px; background: linear-gradient(135deg,#704cf2,#b536c5); color: #fff; font-size: 13px; font-weight: 700; box-shadow: 0 9px 20px rgba(135,65,220,.28); }
    .header-create:hover { color: #fff; text-decoration: none; transform: translateY(-1px); }
    .header-export-pdf { display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:0 15px; border:1px solid #e6dff1; border-radius:999px; background:#fff; color:#6245d9; font-size:12px; font-weight:750; white-space:nowrap; }
    .header-export-pdf:hover { border-color:#bca8f5; background:#f7f3ff; color:#4f31c9; text-decoration:none; transform:translateY(-1px); }
    .header-profile { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 4px 12px 4px 5px; border: 1px solid #ede9f2; border-radius: 999px; background:#fff; cursor:pointer; text-align:left; }
    .profile-avatar { display: grid; place-items: center; width: 38px; height: 38px; border: 2px solid #9a70fb; border-radius: 50%; background: #eee8ff; color: var(--pc-accent); }
    .profile-avatar { position:relative; overflow:hidden; }.profile-avatar>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }.profile-avatar.has-photo>span { visibility:hidden; }
    .header-profile strong,.header-profile small { display: block; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .header-profile strong { color: var(--pc-text); font-size: 12px; }
    .header-profile small { color: var(--pc-text-muted); font-size: 9px; }
    .header-menu { position:relative; }
    .header-badge { position:absolute; top:-5px; right:-4px; display:grid; place-items:center; min-width:20px; height:20px; padding:0 5px; border:2px solid #fff; border-radius:999px; background:#ed3d72; color:#fff; font-size:10px; font-weight:800; }
    .header-dropdown { position:absolute; z-index:120; top:calc(100% + 13px); right:0; width:360px; overflow:hidden; border:1px solid #e9e3f2; border-radius:22px; background:#fff; box-shadow:0 24px 65px rgba(34,22,67,.18); }
    .header-dropdown[hidden] { display:none; }
    .dropdown-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:19px 20px; border-bottom:1px solid #eee9f3; }
    .dropdown-heading span,.dropdown-heading strong { display:block; }.dropdown-heading span { color:#8d849a; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.dropdown-heading strong { margin-top:2px; font-size:17px; }.dropdown-heading b { padding:5px 9px; border-radius:999px; background:#f1eaff; color:#704cf2; font-size:10px; }
    .notification-list { max-height:360px; overflow:auto; padding:8px; }
    .notification-item { display:grid; grid-template-columns:44px 1fr auto; align-items:center; gap:11px; padding:11px; border-radius:15px; color:var(--pc-text); }.notification-item:hover { background:#f8f5fc; text-decoration:none; }.notification-item strong,.notification-item small { display:block; }.notification-item strong { font-size:13px; }.notification-item small { margin-top:3px; color:var(--pc-text-muted); font-size:11px; }.notification-item>b { min-width:25px; padding:4px 7px; border-radius:999px; background:#f3eff8; text-align:center; font-size:11px; }
    .notification-symbol { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; font-size:19px; }.notification-symbol.danger { color:#e33467; background:#ffe5ed; }.notification-symbol.warning { color:#dc8500; background:#fff0cf; }.notification-symbol.info { color:#238bce; background:#dff2ff; }
    .notification-empty { display:grid; justify-items:center; gap:4px; padding:30px 15px; text-align:center; }.notification-empty i { color:#06a477; font-size:28px; }.notification-empty strong { font-size:14px; }.notification-empty span { color:var(--pc-text-muted); font-size:11px; }
    .dropdown-foot { padding:11px 18px; border-top:1px solid #eee9f3; color:#8c8497; font-size:10px; }.dropdown-foot i { color:#0aa578; }
    .profile-dropdown { width:310px; }.profile-summary { display:grid; justify-items:center; gap:5px; padding:25px 20px 19px; background:linear-gradient(180deg,#faf7ff,#fff); text-align:center; }.profile-avatar-large { width:68px; height:68px; margin-bottom:5px; border-width:3px; font-size:20px; box-shadow:0 0 0 4px #fff,0 0 0 6px #9b63f2; }.profile-summary>strong { font-size:17px; }.profile-summary>span { max-width:100%; overflow:hidden; color:#8a8196; font-size:12px; text-overflow:ellipsis; }.profile-summary>b { margin-top:4px; padding:5px 10px; border-radius:999px; background:#eee6ff; color:#7148f3; font-size:9px; text-transform:uppercase; }
    .profile-links { padding:9px; border-top:1px solid #eee9f3; }.profile-links a { display:flex; align-items:center; gap:11px; padding:9px 11px; border-radius:13px; color:#464051; font-size:13px; }.profile-links a:hover { background:#f8f5fc; color:#704cf2; text-decoration:none; }.profile-links i { display:grid; place-items:center; width:35px; height:35px; border-radius:11px; background:#f4f1f8; font-size:18px; }
    .profile-signout { display:flex; align-items:center; justify-content:center; gap:8px; margin:0 10px 10px; padding:12px; border-radius:13px; background:#ffe5eb; color:#ed3d67; font-size:13px; font-weight:700; }.profile-signout:hover { color:#d92756; text-decoration:none; }
    .main-inner { padding-top: 28px; }
    .topbar { padding: 0 8px; margin-bottom: 26px; border: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
    .topbar h1 { font-size: 29px; }
    .topbar .session-tools { display: none; }
}
.mobile-pdf-action { color:#7450ec; text-decoration:none; }
.receipt-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
/* Un visor PDF incrustado puede bloquear PWA/WebView móviles. Las descargas
   documentales se reservan al navegador de escritorio. */
@media (max-width: 991px) {
    [data-pdf-download] { display:none !important; }
}
@media (max-width: 720px) {
    .data-toolbar,.page-intro { align-items: stretch; flex-direction: column; }
    .filter-tabs { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }
    .filter-tab { white-space: nowrap; }
    .filter-tools,.table-search { width: 100%; }
    .table-search { flex: 1; }
}

/* Agenda clínica: calendar cockpit */
.schedule-hero { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; padding: 25px 28px; overflow: hidden; border-radius: 22px; background: linear-gradient(118deg,#24173c 0%,#5d35c8 58%,#a839c3 100%); color: #fff; box-shadow: 0 18px 38px rgba(81,45,153,.2); }
.schedule-hero::after { content: ""; position: absolute; right: 9%; top: -90px; width: 250px; height: 250px; border: 42px solid rgba(255,255,255,.07); border-radius: 50%; }
.schedule-hero>div,.schedule-hero>a { position: relative; z-index: 1; }
.schedule-kicker { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 7px; color: #dacdff; font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.schedule-hero h2 { margin: 0 0 5px; color: #fff; font-size: clamp(23px,3vw,31px); letter-spacing: -.04em; }
.schedule-hero p { margin: 0; color: rgba(255,255,255,.7); font-size: 13px; }
.schedule-primary { border-color: rgba(255,255,255,.2)!important; background: rgba(255,255,255,.16)!important; box-shadow: none!important; backdrop-filter: blur(10px); }
.schedule-primary:hover { background: rgba(255,255,255,.25)!important; }
.schedule-stats { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 13px; margin-bottom: 18px; }
.schedule-stat { display: flex; align-items: center; gap: 12px; min-height: 82px; padding: 15px 17px; border: 1px solid var(--pc-border); border-radius: 17px; background: #fff; box-shadow: 0 5px 20px rgba(37,28,60,.04); }
.stat-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; font-size: 20px; }
.stat-icon.purple { color: #7047ee; background: #eee8ff; }.stat-icon.green { color: #079269; background: #dff7ee; }.stat-icon.amber { color: #da8500; background: #fff0d0; }.stat-icon.blue { color: #2783d1; background: #e0f1ff; }
.schedule-stat strong,.schedule-stat small { display: block; }.schedule-stat strong { color: #262131; font-size: 22px; line-height: 1.1; }.schedule-stat small { margin-top: 3px; color: var(--pc-text-muted); font-size: 11px; }
.schedule-layout { display: grid; grid-template-columns: 270px minmax(0,1fr); gap: 18px; align-items: start; }
.schedule-side { display: grid; gap: 14px; }
.schedule-create { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 47px; border-radius: 13px; background: linear-gradient(135deg,#7148f3,#ac39c5); color: #fff; font-size: 13px; font-weight: 700; box-shadow: 0 10px 22px rgba(118,67,219,.24); }
.schedule-create:hover { color: #fff; text-decoration: none; transform: translateY(-1px); }
.mini-calendar,.schedule-legend,.schedule-board { border: 1px solid var(--pc-border); border-radius: 19px; background: #fff; box-shadow: 0 6px 24px rgba(37,28,60,.045); }
.mini-calendar { padding: 18px; }
.mini-calendar header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.mini-calendar header strong { font-size: 14px; }.mini-calendar header div { display: flex; gap: 4px; }.mini-calendar header a { display: grid; place-items: center; width: 27px; height: 27px; border-radius: 8px; color: #746d82; font-size: 19px; }.mini-calendar header a:hover { background: var(--pc-accent-soft); text-decoration: none; }
.mini-week,.mini-days { display: grid; grid-template-columns: repeat(7,1fr); gap: 4px; text-align: center; }
.mini-week { margin-bottom: 7px; color: #958da1; font-size: 9px; font-weight: 700; }
.mini-days a { display: grid; place-items: center; aspect-ratio: 1; border-radius: 9px; color: #514a5d; font-size: 11px; }.mini-days a:hover { background: #f2edff; color: var(--pc-accent-strong); text-decoration: none; }.mini-days a.outside { color: #cbc6d1; }.mini-days a.today { outline: 1px solid #a98df7; }.mini-days a.selected { background: linear-gradient(135deg,#7148f3,#a33fd0); color: #fff; box-shadow: 0 5px 11px rgba(113,72,243,.25); outline: 0; }
.schedule-legend { padding: 17px 19px; }.schedule-legend h3 { margin: 0 0 13px; font-size: 13px; }.schedule-legend>div { display: flex; align-items: center; gap: 9px; min-height: 30px; color: #686171; font-size: 11.5px; }.schedule-legend b { margin-left: auto; padding: 2px 7px; border-radius: 999px; background: #f4f2f7; color: #756f7f; font-size: 10px; }.legend-dot { width: 8px; height: 8px; border-radius: 3px; }.legend-dot.scheduled { background: #7955f3; }.legend-dot.confirmed { background: #27a9e8; }.legend-dot.completed { background: #16a779; }.legend-dot.cancelled { background: #ed5477; }
.schedule-board { min-height: 480px; overflow: hidden; }
.schedule-board-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 19px 21px; border-bottom: 1px solid var(--pc-border); }
.schedule-board-head h3 { margin: 0 0 2px; font-size: 17px; }.schedule-board-head>div>span { color: var(--pc-text-muted); font-size: 10.5px; }
.schedule-controls { display: flex; align-items: center; gap: 6px; }.schedule-controls form { display: flex; }.schedule-controls input { min-height: 38px; padding: 6px 9px; border: 1px solid #e4e0eb; border-radius: 10px; background: #faf9fc; color: #514b5d; font-size: 11px; }
.day-arrow,.today-button,.catalog-link { display: inline-flex; align-items: center; justify-content: center; min-height: 38px; border: 1px solid #e4e0eb; background: #fff; color: #625b6f; font-size: 11px; font-weight: 600; }.day-arrow { width: 38px; border-radius: 10px; font-size: 18px; }.today-button { padding: 0 13px; border-radius: 10px; }.catalog-link { gap: 5px; padding: 0 12px; border-radius: 10px; }.day-arrow:hover,.today-button:hover,.catalog-link:hover { border-color: #cfc4ef; background: var(--pc-accent-soft); color: var(--pc-accent-strong); text-decoration: none; }
.appointment-list { position: relative; padding: 13px 20px 24px; }.appointment-list::before { content: ""; position: absolute; left: 109px; top: 0; bottom: 0; width: 1px; background: #eeeaf3; }
.appointment-card { position: relative; display: grid; grid-template-columns: 72px 18px 44px minmax(150px,1fr) auto 38px; align-items: center; gap: 13px; min-height: 92px; margin: 9px 0; padding: 14px 14px 14px 3px; border: 1px solid #ebe8f0; border-radius: 16px; background: linear-gradient(100deg,#fff,#fcfbfe); transition: transform .16s,box-shadow .16s,border-color .16s; }
.appointment-card:hover { transform: translateY(-2px); border-color: #dcd4ed; box-shadow: 0 12px 25px rgba(48,34,79,.08); }
.appointment-time { text-align: right; }.appointment-time strong,.appointment-time span { display: block; }.appointment-time strong { color: #2d2835; font-size: 13px; }.appointment-time span { color: #9992a1; font-size: 10px; }
.appointment-line { position: relative; align-self: stretch; }.appointment-line::before { content: ""; position: absolute; top: -15px; bottom: -15px; left: 8px; width: 1px; background: #eeeaf3; }.appointment-line span { position: absolute; z-index: 1; left: 3px; top: calc(50% - 5px); width: 11px; height: 11px; border: 3px solid #fff; border-radius: 50%; background: #7955f3; box-shadow: 0 0 0 2px #cfc1fd; }
.patient-avatar { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 13px; background: linear-gradient(135deg,#eee8ff,#f8e7f7); color: #7148e7; font-size: 15px; font-weight: 800; }
.appointment-main h4 { margin: 0 0 4px; font-size: 13.5px; }.appointment-main p { margin: 0; color: var(--pc-text-muted); font-size: 10.5px; }.appointment-main p i { color: var(--pc-accent); }
.appointment-status { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: #f0ebff; color: #6842d8; font-size: 10px; font-weight: 700; }.appointment-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }.appointment-status.confirmed { background: #e2f5ff; color: #1885ba; }.appointment-status.completed { background: #e0f7ef; color: #07845e; }.appointment-status.cancelled,.appointment-status.no_show { background: #ffe6ed; color: #d83a63; }
.appointment-open { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: #f4f1fa; color: #665e72; font-size: 16px; }.appointment-open:hover { background: var(--pc-accent); color: #fff; text-decoration: none; }
.schedule-empty { display: grid; place-items: center; padding: 70px 20px; text-align: center; }.schedule-empty>span { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 20px; background: var(--pc-accent-soft); color: var(--pc-accent); font-size: 29px; }.schedule-empty h3 { margin: 14px 0 3px; font-size: 17px; }.schedule-empty p { margin: 0 0 15px; color: var(--pc-text-muted); font-size: 12px; }
@media (max-width: 1100px) { .schedule-stats { grid-template-columns: repeat(2,1fr); }.schedule-layout { grid-template-columns: 235px minmax(0,1fr); }.appointment-card { grid-template-columns: 62px 16px 40px minmax(120px,1fr) 35px; }.appointment-status { display: none; }.appointment-list::before { left: 99px; } }
@media (max-width: 780px) { .schedule-hero { padding: 21px; }.schedule-hero p { max-width: 70%; }.schedule-layout { grid-template-columns: 1fr; }.schedule-side { grid-template-columns: 1fr 1fr; }.schedule-create { grid-column: 1/-1; }.schedule-board-head { align-items: flex-start; flex-direction: column; }.schedule-controls { width: 100%; flex-wrap: wrap; }.schedule-controls input { max-width: 135px; }.appointment-list { padding: 10px; }.appointment-list::before { display: none; }.appointment-card { grid-template-columns: 57px 39px minmax(100px,1fr) 34px; gap: 9px; padding: 12px; }.appointment-line { display: none; }.appointment-time { text-align: left; }.patient-avatar { width: 38px; height: 38px; }.schedule-hero .schedule-primary { align-self: flex-start; white-space: nowrap; } }
@media (max-width: 520px) { .schedule-stats { grid-template-columns: 1fr 1fr; gap: 8px; }.schedule-stat { min-height: 70px; padding: 11px; }.stat-icon { width: 37px; height: 37px; }.schedule-side { grid-template-columns: 1fr; }.schedule-hero { align-items: flex-start; flex-direction: column; }.schedule-hero p { max-width: none; }.schedule-controls form,.catalog-link { display: none; }.appointment-main p { max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } }

/* ============================================================
   Sistema de formularios compactos
   Contrato para vistas futuras: .form-compact + .row2/.form-grid;
   data-size="sm|md|lg|date|time" permite declarar intención.
   ============================================================ */
.form-card { max-width: 1120px; padding: 0; overflow: hidden; }
.form-card-heading { display: flex; align-items: center; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--pc-border); background: linear-gradient(105deg,#fff,#faf8ff); }
.form-card-heading>span { display: grid; place-items: center; width: 39px; height: 39px; border-radius: 12px; background: var(--pc-accent-soft); color: var(--pc-accent); font-size: 19px; }
.form-card-heading h2 { margin: 0 0 2px; font-size: 15px; }.form-card-heading p { margin: 0; color: var(--pc-text-muted); font-size: 10.5px; }
.form-compact { max-width: 980px; padding: 21px 22px 23px; }

/* Altura y ritmo comunes: suficientemente cómodos sin desperdiciar espacio. */
.field { margin-bottom: 13px; }
.field label,.form-label { margin-bottom: 5px; color: #5d5768; font-size: 11.5px; font-weight: 650; }
.field input,.field select,.field textarea,.form-control,.form-select,
form>input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),form>select,form>textarea {
    min-height: 40px; padding: 8px 11px; border-width: 1px; border-color: #e3deeb;
    border-radius: 10px; background: #fbfafd; font-size: 13px;
}
.field textarea,textarea.form-control { min-height: 72px; line-height: 1.45; }
.row2,.form-grid { gap: 0 14px; }

/* Dimensionamiento semántico automático. */
.field input[type="time"],input.form-control[type="time"],input[data-size="time"] { width: 145px; max-width: 100%; }
.field input[type="date"],input.form-control[type="date"],input[data-size="date"] { width: 195px; max-width: 100%; }
.field input[type="number"],input.form-control[type="number"],input[data-size="sm"] { width: 145px; max-width: 100%; }
.field input[type="color"] { width: 54px; padding: 5px; }
.field input[type="tel"],input[data-size="md"],select[data-size="md"] { width: min(100%,320px); }
input[data-size="lg"],select[data-size="lg"] { width: min(100%,560px); }
.field input[maxlength="2"],.field input[maxlength="3"] { width: 88px; text-transform: uppercase; }
.field select[name="currency"],.field select[name="language"],.field select[name="type"],.field select[name="status"],.field select[name="method"] { width: min(100%,210px); }

/* Filas de fecha/hora y formularios flex heredados. */
.form-datetime-row { grid-template-columns: 195px 145px; gap: 14px; }
.row2:has(input[type="time"]) { grid-template-columns: minmax(180px,195px) minmax(130px,145px); }
.row2:has(input[type="number"]):not(:has(select)) { grid-template-columns: repeat(2,minmax(145px,260px)); }
form[style*="display:flex"] { row-gap: 10px!important; }
form[style*="display:flex"]>.field { flex: 0 1 260px; min-width: 150px; }
form[style*="display:flex"]>.field:has(input[type="number"]),form[style*="display:flex"]>.field:has(input[type="date"]),form[style*="display:flex"]>.field:has(input[type="time"]) { flex-basis: 170px; }
form[style*="display:flex"]>.field:has(input[maxlength="2"]),form[style*="display:flex"]>.field:has(input[maxlength="3"]) { flex-basis: 95px; min-width: 80px; }

/* Selectores múltiples y checkboxes convertidos en chips legibles. */
.choice-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.choice-chip { display: inline-flex!important; align-items: center; gap: 7px; min-height: 35px; margin: 0!important; padding: 6px 9px; border: 1px solid #e5e0ec; border-radius: 10px; background: #faf9fc; color: var(--pc-text)!important; font-size: 11.5px!important; font-weight: 550!important; cursor: pointer; }
.choice-chip:hover { border-color: #cfc3ef; background: #f7f3ff; }.choice-chip:has(input:checked) { border-color: #bca9f8; background: var(--pc-accent-soft); }
.choice-chip input { width: 15px!important; height: 15px; min-height: 0!important; margin: 0; }
.choice-chip .badge { min-height: 19px; padding: 2px 6px; font-size: 9px; }

.form-actions { display: flex; align-items: center; gap: 8px; margin-top: 5px; padding-top: 14px; border-top: 1px solid #efecf3; }
.form-actions .btn { min-height: 39px; padding: 7px 15px; font-size: 12px; }

/* Mejora inmediata de formularios estructurados existentes. */
.panel>form:has(.row2):not(.cat-edit) { max-width: 980px; }
.panel>form:has(.row2):not(.form-compact) { padding: 2px; }

/* Documentos clínicos estructurados NOM-004 */
.clinical-new-documents { display:grid; gap:14px; margin-top:18px; }
.clinical-document-category { margin:12px 0 -4px; padding:0 2px; color:var(--pc-muted); font-size:13px; letter-spacing:.06em; text-transform:uppercase; }
.clinical-document-category:first-child { margin-top:0; }
.clinical-document-category i { color:var(--pc-primary); margin-right:6px; }
.clinical-new-documents>details,.clinical-editor { border:1px solid var(--pc-border); border-radius:14px; background:#fbfaff; overflow:hidden; }
.clinical-new-documents summary,.clinical-editor summary { padding:14px 16px; cursor:pointer; font-weight:700; color:var(--pc-text); list-style:none; }
.clinical-new-documents summary::-webkit-details-marker,.clinical-editor summary::-webkit-details-marker { display:none; }
.clinical-new-documents details[open]>summary,.clinical-editor[open]>summary { border-bottom:1px solid var(--pc-border); background:#f7f4ff; color:var(--pc-primary); }
.clinical-document-form { padding:16px; }
.clinical-document-form .row2 { align-items:start; }
.clinical-document-form textarea { min-height:76px; resize:vertical; }
.clinical-document-form .clinical-field-wide { grid-column:1/-1; }
.clinical-legal-list { display:grid; gap:14px; }
.clinical-legal-card { border:1px solid var(--pc-border); border-radius:16px; padding:18px; background:#fff; }
.clinical-legal-card header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:12px; }
.clinical-legal-card header>div { display:flex; gap:9px; align-items:center; flex-wrap:wrap; }
.clinical-legal-card p { margin:8px 0; }
.clinical-legal-signers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0; }
.clinical-legal-signers span { padding:12px; border-radius:12px; background:#f8f6ff; }
.clinical-legal-signers small,.clinical-legal-signers strong { display:block; }
.clinical-legal-signers small { color:var(--pc-muted); margin-bottom:4px; }
.legal-attestation { display:flex; gap:10px; align-items:flex-start; padding:13px; margin:0 0 14px; border:1px solid #c8b8ff; border-radius:12px; background:#f8f4ff; }
.legal-attestation input { margin-top:3px; }
@media (max-width:800px) { .clinical-legal-signers { grid-template-columns:1fr; } .clinical-legal-card header { flex-direction:column; } }
.clinical-repeatable { border:1px solid var(--pc-border); border-radius:12px; padding:14px; margin:4px 0 16px; }
.clinical-repeatable legend { padding:0 7px; font-weight:700; }
.clinical-repeat-row { display:grid; grid-template-columns:minmax(120px,.7fr) minmax(220px,2fr) minmax(130px,.8fr); gap:8px; margin-bottom:8px; }
.clinical-medication-row { display:grid; grid-template-columns:1.5fr repeat(4,minmax(105px,1fr)); gap:8px; margin-bottom:8px; }
.clinical-sign-form { max-width:440px; padding:14px; border:1px solid var(--pc-border); border-radius:12px; background:#faf8ff; }
@media (max-width:900px) { .clinical-repeat-row,.clinical-medication-row { grid-template-columns:1fr; } }
.clinical-retention-panel.has-legal-hold { border-color:#fda29b; box-shadow:0 0 0 3px rgba(240,68,56,.06); }
.clinical-retention-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:14px; }
.clinical-retention-summary>div { display:flex; align-items:center; gap:10px; padding:12px; background:#faf9fd; border-radius:12px; }
.clinical-retention-summary>div>span { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; color:var(--pc-primary); background:#eee8ff; font-size:20px; }
.clinical-retention-summary small,.clinical-retention-summary strong { display:block; }
.clinical-retention-summary small { color:var(--pc-muted); margin-bottom:2px; }
.retention-hold-form { display:flex; gap:8px; flex-wrap:wrap; align-items:end; padding-top:12px; }
.retention-hold-form input { min-width:300px; }
.retention-events { margin:12px 0 0; padding:0; list-style:none; }
.retention-events li { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-bottom:1px solid var(--pc-border); }
.retention-events span { color:var(--pc-muted); }
@media (max-width:760px) { .clinical-retention-summary { grid-template-columns:1fr; } }
.badge-red { color:#b42318; background:#fee4e2; border-color:#fecdca; }
@media (min-width:900px) { .clinical-new-documents { grid-template-columns:1fr; } }

@media (min-width: 640px) {
    .form-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); }
    .form-grid>.field { grid-column: span 6; }.form-grid>.field[data-span="4"] { grid-column: span 4; }.form-grid>.field[data-span="3"] { grid-column: span 3; }.form-grid>.field[data-span="8"] { grid-column: span 8; }.form-grid>.field[data-span="12"] { grid-column: 1/-1; }
}
@media (max-width: 639px) {
    .form-card { border-radius: 16px; }.form-card-heading { padding: 15px 16px; }.form-compact { padding: 17px 16px; }
    .form-datetime-row { grid-template-columns: minmax(0,1fr) minmax(120px,.72fr); }
    .field input[type="date"],.field input[type="time"],input[data-size="date"],input[data-size="time"] { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
@media print {
    .sidebar, .mobile-header, .sidebar-overlay, .btn, .btn-logout, .toolbar .btn { display: none !important; }
    .app { display: block; }
    .main-inner { padding: 0; }
    body { background: #fff; }
    .panel, .kpi, .card, table.data { box-shadow: none; break-inside: avoid; }
}

/* Directorio de expedientes clínicos · composición Users, escala legible. */
.clinical-users-head { margin-bottom:20px }.clinical-user-stats { margin-bottom:22px }.clinical-user-stats small { font-size:12px!important }.clinical-user-stats em { font-size:10px }.clinical-directory .crm-filter-tools .table-search { width:285px }
.clinical-directory .crm-users-toolbar { justify-content:flex-start }.clinical-directory .crm-filter-tools { justify-content:flex-start;width:100% }
.crm-users-card .crm-users-toolbar { justify-content:flex-start }.crm-users-card .crm-filter-tools { justify-content:flex-start;width:100% }.fu-filters { justify-content:flex-start }.fu-filters .fu-search { width:min(320px,100%) }
.clinical-kpi { position:relative;cursor:pointer;outline:0;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease }.clinical-kpi::after { content:"";position:absolute;left:18px;right:18px;bottom:-1px;height:3px;border-radius:4px;background:linear-gradient(90deg,#7148f3,#b63cc4);opacity:0;transform:scaleX(.4);transition:opacity .16s ease,transform .16s ease }.clinical-kpi:hover { transform:translateY(-2px);border-color:#d7ccef;box-shadow:0 12px 26px rgba(65,42,112,.1) }.clinical-kpi:focus-visible { box-shadow:0 0 0 3px rgba(115,74,239,.18),0 10px 24px rgba(65,42,112,.08) }.clinical-kpi.is-selected { border-color:#cbbaf6;background:linear-gradient(112deg,#fff,#fbf8ff);box-shadow:0 11px 26px rgba(91,55,164,.11) }.clinical-kpi.is-selected::after { opacity:1;transform:scaleX(1) }
.clinical-users-table { min-width:1050px }.clinical-users-table .crm-contact strong { font-size:14px }.clinical-users-table .crm-contact small { font-size:11px!important }.clinical-users-table .patient-mrn { font-size:12px }.clinical-users-table .contact-status { font-size:12px!important }
.clinical-count,.clinical-alert-count { display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:5px 9px;border-radius:999px;background:#f3f1f7;color:#7c7587;font-size:12px;font-weight:650;white-space:nowrap }.clinical-count i,.clinical-alert-count i { font-size:15px }.clinical-count.has-data { background:#e5f4ff;color:#2583bd }.clinical-alert-count.has-alerts { background:#ffe5ec;color:#d93e68 }.clinical-alert-count:not(.has-alerts) { background:#e6f7f1;color:#168260 }
@media (max-width:700px) { .clinical-directory .crm-filter-tools .table-search { width:100% }.clinical-users-head { margin-bottom:16px } }

/* Thumbnail fotográfica del paciente con fallback de iniciales. */
.patient-thumb { position:relative;display:grid;place-items:center;width:44px;height:44px;flex:0 0 44px;overflow:visible;border-radius:50%;background:#eae3ff;color:#6b45df;font-size:12px;font-weight:800;box-shadow:inset 0 0 0 1px rgba(86,58,145,.05) }.patient-thumb-fallback { display:grid;place-items:center;width:100%;height:100%;border-radius:inherit }.patient-thumb img { position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:inherit;object-fit:cover;opacity:0;transition:opacity .16s ease }.patient-thumb.is-loaded img { opacity:1 }.patient-thumb-presence { position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:2px solid #fff;border-radius:50%;background:#12a778;z-index:2 }
.patient-thumb.tone-2 { background:#daf6ed;color:#07865f }.patient-thumb.tone-3 { background:#dff1ff;color:#227eba }.patient-thumb.tone-4 { background:#fff0d5;color:#c77700 }.patient-thumb.tone-5 { background:#ffe3ec;color:#d33b61 }
.fu-avatar-thumb { width:38px;height:38px;flex-basis:38px;border-radius:11px }.appointment-patient-thumb { width:43px;height:43px;flex-basis:43px;border-radius:13px }.patient-thumb-md { width:52px;height:52px;flex-basis:52px;font-size:15px }.lead-profile-photo { width:88px;height:88px;flex-basis:88px;margin-top:-38px;border:5px solid #fff;border-radius:25px;font-size:25px;box-shadow:0 8px 20px rgba(64,43,104,.13);overflow:visible }.lead-profile-photo img,.lead-profile-photo .patient-thumb-fallback { border-radius:20px }.lead-profile-photo .patient-thumb-presence { right:1px;bottom:1px;width:14px;height:14px;border-width:3px }
.toolbar>div:has(.patient-thumb) { display:flex;align-items:center;gap:10px;flex-wrap:wrap }
.patient-thumb-sm { width:34px;height:34px;flex-basis:34px;font-size:10px }.patient-name-inline { display:inline-flex;align-items:center;gap:9px;color:var(--pc-text) }.patient-name-inline:hover { text-decoration:none;color:var(--pc-accent-strong) }
@media (max-width:700px) { .lead-profile-photo { width:68px;height:68px;flex-basis:68px;margin-top:-28px;border-radius:20px;font-size:19px }.lead-profile-photo img,.lead-profile-photo .patient-thumb-fallback { border-radius:15px } }

/* Calendario clínico multivista: día, semana y mes. */
.compact-calendar-hero { padding-block:20px }.calendar-board { min-height:600px }.calendar-board-head { align-items:center }.calendar-head-actions { display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap }.calendar-view-switch { display:flex;overflow:hidden;border:1px solid #e1dceb;border-radius:11px;background:#fff }.calendar-view-switch a { display:grid;place-items:center;min-width:70px;min-height:40px;padding:7px 13px;color:#625b6d;font-size:13px;font-weight:650;border-right:1px solid #e6e1ed }.calendar-view-switch a:last-child { border-right:0 }.calendar-view-switch a:hover { background:#f7f3ff;color:var(--pc-accent-strong);text-decoration:none }.calendar-view-switch a.active { background:linear-gradient(135deg,#7148f3,#a63dcc);color:#fff }
.mini-days a { position:relative }.mini-days a span { position:relative;z-index:1 }.mini-days a.has-events::after { content:"";position:absolute;left:50%;bottom:2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:#8b55f5 }.mini-days a.has-events b { position:absolute;right:-2px;top:-3px;display:grid;place-items:center;min-width:13px;height:13px;padding:0 3px;border:2px solid #fff;border-radius:999px;background:#ed4e78;color:#fff;font-size:7px;line-height:1 }.mini-days a.selected.has-events::after { background:#fff }.mini-days a.selected b { background:#fff;color:#7548e7 }
.week-calendar { display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));min-height:540px;overflow-x:auto }.week-day { min-width:130px;border-right:1px solid #ebe7f0;background:linear-gradient(180deg,#fff,#fdfcff) }.week-day:last-child { border-right:0 }.week-day.today { background:linear-gradient(180deg,#faf7ff,#fff) }.week-day-head { display:grid;place-items:center;gap:2px;min-height:112px;padding:13px;border-bottom:1px solid #e9e5ee;color:#5e5768 }.week-day-head:hover { background:#faf7ff;text-decoration:none }.week-day-head span { color:#8d8498;font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.08em }.week-day-head strong { display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-size:24px;line-height:1 }.week-day.today .week-day-head strong { background:linear-gradient(135deg,#7148f3,#a83dcc);color:#fff;box-shadow:0 7px 16px rgba(117,72,231,.25) }.week-day-head small { color:#9890a0;font-size:10px }.week-day-events { display:grid;align-content:start;gap:9px;min-height:425px;padding:12px 9px }.week-free { display:flex;align-items:center;justify-content:center;gap:5px;min-height:42px;border:1px dashed #e0dbe8;border-radius:11px;color:#aaa3b2;font-size:10px }.week-event { display:grid;gap:3px;padding:11px;border-left:4px solid #7952ed;border-radius:11px;background:#f2edff;color:#4e4758;box-shadow:0 4px 12px rgba(42,30,73,.05) }.week-event:hover { transform:translateY(-1px);text-decoration:none;box-shadow:0 8px 18px rgba(42,30,73,.09) }.week-event time { color:#6f47dc;font-size:11px;font-weight:750 }.week-event strong { overflow:hidden;text-overflow:ellipsis;font-size:12px;white-space:nowrap }.week-event span { color:#8a8293;font-size:9px }.week-event.confirmed { border-color:#26a8df;background:#eaf8ff }.week-event.completed { border-color:#17a677;background:#e9f9f3 }.week-event.cancelled,.week-event.no_show { border-color:#ed4e75;background:#fff0f4 }
.month-calendar { min-width:760px;overflow:auto }.month-weekdays { display:grid;grid-template-columns:repeat(7,1fr);border-bottom:1px solid #e7e2ec;background:#faf9fc }.month-weekdays span { padding:13px;text-align:center;color:#81788b;font-size:11px;font-weight:750;text-transform:uppercase }.month-grid { display:grid;grid-template-columns:repeat(7,minmax(108px,1fr)) }.month-cell { min-height:122px;padding:10px;border-right:1px solid #eae6ef;border-bottom:1px solid #eae6ef;color:#4d4657;background:#fff }.month-cell:nth-child(7n) { border-right:0 }.month-cell:hover { background:#faf7ff;text-decoration:none }.month-cell>strong { display:grid;place-items:center;width:29px;height:29px;border-radius:50%;font-size:13px }.month-cell.today>strong { background:linear-gradient(135deg,#7148f3,#a63dcc);color:#fff }.month-cell.outside { background:#fcfbfd;color:#c1bac8 }.month-cell>div { display:grid;gap:4px;margin-top:5px }.event-chip { display:block;overflow:hidden;padding:4px 6px;border-left:3px solid #7952ed;border-radius:6px;background:#f1ecff;color:#665e70;font-size:8.5px;text-overflow:ellipsis;white-space:nowrap }.event-chip b { color:#6940d6 }.event-chip.confirmed { border-color:#28a9df;background:#eaf8ff }.event-chip.completed { border-color:#17a677;background:#e9f9f3 }.event-chip.cancelled,.event-chip.no_show { border-color:#ed4e75;background:#fff0f4 }.month-cell small { color:#7e7489;font-size:8.5px;font-weight:650 }
@media (max-width:1100px) { .calendar-head-actions { justify-content:flex-start }.calendar-board-head { align-items:flex-start;flex-direction:column }.calendar-view-switch a { min-width:62px }.calendar-layout { grid-template-columns:230px minmax(0,1fr) } }
@media (max-width:780px) { .calendar-layout { grid-template-columns:1fr }.calendar-head-actions { width:100% }.calendar-view-switch { order:-1;width:100% }.calendar-view-switch a { flex:1 }.calendar-board { overflow:hidden }.week-calendar { min-width:910px }.month-calendar { min-width:760px }.compact-calendar-hero { display:none } }

/* Captura NOM-004 y perfil de paciente */
.form-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:8px 8px 26px}.form-page-head h1{margin:7px 0 4px;font-size:34px;letter-spacing:-.04em}.form-page-head p{margin:0;color:var(--pc-text-muted);font-size:15px}.eyebrow{display:inline-flex;align-items:center;gap:7px;color:var(--pc-accent);font-size:13px;font-weight:800;letter-spacing:.11em;text-transform:uppercase}.nom-form{display:grid;gap:18px}.form-section-card{padding:0;overflow:hidden}.form-section-card>header{display:flex;align-items:center;gap:14px;padding:20px 26px;border-bottom:1px solid var(--pc-border)}.form-section-card>header>div{min-width:0;flex:1}.form-section-card>header span:not(.form-section-icon):not(.form-state){display:block;margin-bottom:2px;color:#968da0;font-size:12px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}.form-section-card h2,.profile-card h2,.profile-readiness h2,.profile-quick-actions h2,.profile-consents h2{margin:0;font-size:18px}.form-section-card header p,.profile-card header p,.profile-readiness header p,.profile-quick-actions header p,.profile-consents header p{margin:3px 0 0;color:var(--pc-text-muted);font-size:13px}.form-section-icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#eee7ff;color:#7345ed;font-size:22px}.form-section-icon.mint{background:#dff7ef;color:#079a70}.form-section-icon.blue{background:#e0f2ff;color:#1689c8}.form-section-icon.amber{background:#fff1d7;color:#d78700}.form-state{padding:7px 11px;border-radius:999px;background:#fff4dc;color:#a66700;font-size:12px;font-weight:750}.form-grid{display:grid;gap:17px 20px;padding:24px 26px}.form-grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid .span-2{grid-column:span 2}.form-grid .field{margin:0}.form-grid label{font-size:14px}.form-grid label b{color:#dc3970}.form-grid input,.form-grid select{min-height:48px}.form-grid .compact-field input,.form-grid .compact-field select{max-width:300px}.form-grid small{display:block;margin-top:6px;color:#92899c;font-size:12px}.duplicate-confirm{display:flex;align-items:center;gap:9px;padding:14px 18px;border:1px solid #f1c4cc;border-radius:14px;background:#fff4f6}.duplicate-confirm input{width:auto;min-height:auto}.sticky-form-actions{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:13px 16px;border:1px solid var(--pc-border);border-radius:17px;background:rgba(255,255,255,.94);box-shadow:0 12px 34px rgba(42,25,73,.13);backdrop-filter:blur(12px)}.sticky-form-actions>div{display:flex;align-items:center;gap:7px;margin-right:auto;color:#81778b;font-size:13px}.sticky-form-actions>div i{color:#08a679;font-size:18px}
.patient-profile-hero{overflow:hidden;margin-bottom:18px;border:1px solid var(--pc-border);border-radius:24px;background:#fff;box-shadow:0 10px 32px rgba(43,28,72,.07)}.patient-profile-cover{position:relative;height:138px;overflow:hidden;background:linear-gradient(120deg,#20163d,#6840ce 55%,#bd3fbf)}.patient-profile-cover:before,.patient-profile-cover:after,.patient-profile-cover span,.patient-profile-cover i{content:"";position:absolute;border-radius:50%;border:25px solid rgba(255,255,255,.07)}.patient-profile-cover:before{width:205px;height:205px;right:9%;top:-105px}.patient-profile-cover:after{width:130px;height:130px;left:27%;bottom:-98px}.patient-profile-cover span{width:75px;height:75px;right:30%;bottom:-45px;border-width:14px}.patient-profile-cover i{width:230px;height:230px;left:-120px;top:-145px;border-width:38px}.patient-profile-main{position:relative;display:grid;grid-template-columns:126px minmax(0,1fr) auto;align-items:center;gap:20px;padding:0 28px 20px}.pat-photo{position:relative;align-self:end;text-align:center;margin-top:-48px}.pat-avatar,.pat-avatar-ph{width:118px;height:118px;border:5px solid #fff;border-radius:30px;background:#eee4ff;box-shadow:0 9px 24px rgba(45,28,77,.16)}.pat-avatar{display:block;object-fit:cover}.pat-avatar-ph{display:grid;place-items:center;color:#6940dc;font-size:29px;font-weight:850}.pat-photo-actions{position:absolute;right:-2px;bottom:-7px;display:flex;gap:5px}.icon-btn{display:grid;place-items:center;width:34px;height:34px;padding:0;border:3px solid #fff;border-radius:50%;background:#7448ee;color:#fff;box-shadow:0 4px 12px rgba(62,39,102,.18);cursor:pointer}.icon-btn.danger{background:#e74a70}.pat-progress,.pat-progress-txt,.pat-photo-err{display:none}.patient-profile-name{padding-top:17px}.patient-profile-name>div{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.patient-profile-name h1{margin:0;font-size:27px;letter-spacing:-.04em}.patient-profile-name p{display:flex;flex-wrap:wrap;gap:14px;margin:7px 0 0;color:#81778c;font-size:13px}.profile-status{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:750}.profile-status i{width:7px;height:7px;border-radius:50%;background:currentColor}.profile-status.patient{background:#def7ed;color:#078a62}.patient-profile-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:17px}.patient-profile-tabs{display:flex;gap:3px;padding:0 24px;border-top:1px solid var(--pc-border);overflow-x:auto}.patient-profile-tabs a{position:relative;display:inline-flex;align-items:center;gap:7px;min-height:52px;padding:0 15px;color:#72697d;font-size:13px;font-weight:700;white-space:nowrap}.patient-profile-tabs a:hover{text-decoration:none;color:#7045e8}.patient-profile-tabs a.active{color:#7045e8}.patient-profile-tabs a.active:after{content:"";position:absolute;right:12px;bottom:0;left:12px;height:3px;background:#7548ee}.patient-profile-grid{display:grid;grid-template-columns:350px minmax(0,1fr);gap:18px}.patient-profile-grid aside,.patient-profile-grid main{display:grid;align-content:start;gap:18px}.profile-card,.profile-readiness,.profile-quick-actions,.profile-consents{padding:0;overflow:hidden}.profile-card>header,.profile-readiness>header,.profile-quick-actions>header,.profile-consents>header{display:flex;align-items:center;gap:13px;padding:18px 20px;border-bottom:1px solid var(--pc-border)}.profile-card>header>div,.profile-readiness>header>div,.profile-quick-actions>header>div,.profile-consents>header>div{min-width:0;flex:1}.profile-card>header>a{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#eee7ff;color:#7044e9}.profile-info-list{display:grid;gap:18px;padding:20px}.profile-info-list>div{display:flex;align-items:flex-start;gap:12px}.profile-info-list>div>i{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:#eee8ff;color:#7448ee;font-size:19px}.profile-info-list small,.profile-info-list strong{display:block}.profile-info-list small{color:#92889c;font-size:12px}.profile-info-list strong{overflow-wrap:anywhere;font-size:14px}.profile-kv{display:grid;grid-template-columns:1fr auto;gap:15px;margin:0;padding:20px}.profile-kv dt{color:#8c8296;font-size:13px}.profile-kv dd{margin:0;font-size:13px;font-weight:750}.profile-readiness>header>strong{font-size:24px;color:#7044ec}.readiness-track{height:9px;margin:20px 20px 10px;border-radius:999px;background:#ede9f2;overflow:hidden}.readiness-track span{display:block;height:100%;background:linear-gradient(90deg,#7548ef,#c43abb)}.readiness-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px 20px 20px}.readiness-stats div{padding:13px;border-radius:13px;background:#f8f6fb}.readiness-stats small,.readiness-stats strong{display:block}.readiness-stats small{font-size:11px;color:#91879a}.readiness-stats strong{margin-top:4px;font-size:14px}.readiness-stats .ok{color:#078b63}.readiness-stats .warning{color:#c07700}.profile-warning{display:flex;align-items:center;gap:12px;margin:0 20px 20px;padding:13px 15px;border:1px solid #f1d59e;border-radius:14px;background:#fff9e9;color:#795719}.profile-warning:hover{text-decoration:none}.profile-warning span{flex:1;font-size:12px}.profile-warning b{display:block;font-size:13px}.profile-quick-actions>div{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;padding:18px}.profile-quick-actions>div>a{display:flex;align-items:center;gap:11px;padding:14px;border:1px solid var(--pc-border);border-radius:14px;color:var(--pc-text)}.profile-quick-actions>div>a:hover{text-decoration:none;border-color:#cfc1f7;background:#faf8ff}.profile-quick-actions>div>a>i{display:grid;place-items:center;flex:0 0 39px;width:39px;height:39px;border-radius:11px;background:#eee7ff;color:#7246ec;font-size:19px}.profile-quick-actions span{min-width:0;flex:1}.profile-quick-actions strong,.profile-quick-actions small{display:block}.profile-quick-actions strong{font-size:13px}.profile-quick-actions small{font-size:11px;color:#92899c}.profile-consents header>a{font-size:12px;font-weight:750}.profile-consents>div{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:18px}.profile-consents article{display:flex;align-items:center;gap:11px;padding:15px;border:1px solid var(--pc-border);border-radius:14px;background:#faf9fc}.profile-consents article>i{font-size:22px;color:#8b8195}.profile-consents article strong,.profile-consents article small{display:block}.profile-consents article strong{font-size:13px}.profile-consents article small{font-size:11px;color:#908698}.profile-consents article.granted{border-color:#bce9d9;background:#f0fbf7}.profile-consents article.granted>i{color:#079a70}.profile-consents article.missing{border-color:#f2c5ce;background:#fff5f7}.profile-consents article.missing>i{color:#d83964}
@media(max-width:1000px){.form-grid.cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-profile-grid{grid-template-columns:1fr}.patient-profile-grid aside{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-profile-main{grid-template-columns:110px 1fr}.patient-profile-actions{grid-column:1/-1;padding:0}.profile-quick-actions>div,.profile-consents>div{grid-template-columns:1fr}}
@media(max-width:680px){.form-page-head h1{font-size:28px}.form-grid.cols-2,.form-grid.cols-3,.patient-profile-grid aside{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.form-section-card>header{align-items:flex-start;padding:18px}.form-state{display:none}.form-grid{padding:20px 18px}.patient-profile-cover{height:100px}.patient-profile-main{display:flex;align-items:flex-start;flex-wrap:wrap;padding:0 18px 18px}.pat-photo{margin-top:-42px}.pat-avatar,.pat-avatar-ph{width:96px;height:96px}.patient-profile-name{flex:1;min-width:190px}.patient-profile-name h1{font-size:22px}.patient-profile-actions{width:100%}.readiness-stats{grid-template-columns:1fr}.sticky-form-actions>div{display:none}}

/* Episodio clínico: workspace de captura sin scroll documental excesivo. */
.encounter-context-stack{position:sticky;top:108px;z-index:24;margin:0 0 16px;border:1px solid var(--pc-border);border-radius:20px;background:rgba(255,255,255,.97);box-shadow:0 12px 34px rgba(43,28,75,.1);backdrop-filter:blur(16px)}
.encounter-patient-bar{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:15px;align-items:center;margin:0;padding:14px 18px;border:0;border-radius:20px 20px 0 0;background:transparent}
.encounter-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:17px;background:linear-gradient(135deg,#e9e2ff,#d9f7ef);color:#7042ea;font-size:21px;font-weight:850}.encounter-patient-copy>span,.clinical-document-launcher .eyebrow{color:#7a4cf2;font-size:10px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.encounter-patient-copy h1{margin:2px 0;font-size:20px;line-height:1.2}.encounter-patient-copy p{margin:0;color:var(--pc-text-muted);font-size:12px}.encounter-patient-status{display:flex;align-items:flex-end;flex-direction:column;gap:7px}.encounter-patient-status>span:last-child{color:#158366;font-size:11px;font-weight:700}
.encounter-context-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 10px 9px;border-top:1px solid var(--pc-border);border-radius:0 0 20px 20px;background:#faf8fd}.encounter-view-tabs{display:flex;min-width:0;gap:6px;margin:0;padding:0}.encounter-view-tabs button{display:inline-flex;align-items:center;gap:7px;min-height:42px;padding:0 14px;border:0;border-radius:11px;background:transparent;color:#6f6879;cursor:pointer;font-size:13px;font-weight:750;white-space:nowrap}.encounter-view-tabs button.active{background:#fff;color:#7042ea;box-shadow:0 5px 16px rgba(52,33,91,.1)}.encounter-view-tabs b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#eee9f7;font-size:10px}.encounter-tab-panel{display:none;scroll-margin-top:250px}.encounter-tab-panel.active{display:block}
.encounter-action-bar{display:flex;flex:0 0 auto;justify-content:flex-end;gap:8px;margin:0}.encounter-action-bar form{margin:0}.encounter-action-bar .btn{min-height:42px}
.encounter-notes-panel{padding:18px}.encounter-notes-panel>h3.section{display:flex;align-items:center;gap:8px;margin-top:0}.encounter-note-card{position:relative;margin-bottom:9px;padding:13px 15px;border:1px solid var(--pc-border);border-radius:14px;background:#fff;transition:.15s}.encounter-note-card:not(.is-expanded){cursor:pointer}.encounter-note-card:not(.is-expanded)>div:nth-child(n+2),.encounter-note-card:not(.is-expanded)>form,.encounter-note-card:not(.is-expanded)>details{display:none}.encounter-note-card:not(.is-expanded):after{content:'Ver detalle';position:absolute;right:14px;top:14px;color:#7447ed;font-size:11px;font-weight:800}.encounter-note-card.is-expanded{padding:18px;border-color:#cfc1f7;box-shadow:0 9px 25px rgba(59,37,101,.08)}
.clinical-document-launcher{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:19px 0 12px;padding:17px 19px;border:1px solid #d8cdf7;border-radius:17px;background:linear-gradient(110deg,#fbf9ff,#f5f9ff)}.clinical-document-launcher h3{margin:3px 0;font-size:18px}.clinical-document-launcher p{margin:0;color:var(--pc-text-muted);font-size:12px}.document-picker{position:relative;display:flex;align-items:center;min-width:300px}.document-picker i{position:absolute;z-index:2;left:15px;color:#7549ec;font-size:18px;pointer-events:none}.document-picker select{width:100%;min-height:50px;padding:10px 44px 10px 44px;border:1px solid #d8cdf7;border-radius:13px;background-color:#fff;color:#1f2f31;font-weight:700;-webkit-text-fill-color:#1f2f31;color-scheme:light;opacity:1}

/* Desplegables clínicos: Windows/Chrome no heredan de forma consistente el
   color de option/optgroup. Se fija una superficie clara y contrastada para
   que cada documento, medicamento y opción médico-legal siga siendo legible. */
.encounter-tab-panel select,
.clinical-document-select{
    color-scheme:light;
    background-color:#fff;
    color:#1f2f31;
    -webkit-text-fill-color:#1f2f31;
    opacity:1;
}
.encounter-tab-panel select:hover,
.clinical-document-select:hover{border-color:#a995e8}
.encounter-tab-panel select:focus,
.clinical-document-select:focus{
    border-color:#7955f7;
    outline:0;
    box-shadow:0 0 0 4px rgba(121,85,247,.14);
}
.encounter-tab-panel select option,
.encounter-tab-panel select optgroup,
.clinical-document-select option,
.clinical-document-select optgroup{
    background:#fff!important;
    color:#1f2f31!important;
    -webkit-text-fill-color:#1f2f31;
}
.encounter-tab-panel select optgroup,
.clinical-document-select optgroup{font-weight:800}
.encounter-tab-panel select option,
.clinical-document-select option{font-weight:600}
.encounter-tab-panel select option:checked,
.clinical-document-select option:checked{
    background:#e8e1fb!important;
    color:#4f2bc0!important;
    -webkit-text-fill-color:#4f2bc0;
    font-weight:800;
}
.encounter-tab-panel select option:disabled,
.clinical-document-select option:disabled{
    background:#f2f4f5!important;
    color:#7d898b!important;
    -webkit-text-fill-color:#7d898b;
}
.clinical-new-documents{margin:0}.clinical-new-documents>.clinical-document-category{display:none}.clinical-new-documents>details{display:none!important}.clinical-new-documents>details.is-selected-document{display:block!important;border-radius:17px}.clinical-new-documents>details.is-selected-document>summary{display:none}.clinical-new-documents>details.is-selected-document .clinical-document-form{padding:0}
.clinical-document-form.is-workspace-form{padding-bottom:76px!important}.clinical-document-form.is-workspace-form>.field:first-of-type{max-width:none!important;padding:13px 16px;border:1px solid var(--pc-border);border-radius:13px;background:#faf9fd}.clinical-document-form.is-workspace-form>.row2{display:block}.clinical-form-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 14px;border:1px solid var(--pc-border);border-radius:14px;background:#fff}.clinical-form-progress ol{display:flex;gap:5px;margin:0;padding:0;list-style:none}.clinical-form-progress button{width:31px;height:31px;border:0;border-radius:10px;background:#f2eff8;color:#877e94;cursor:pointer;font-weight:800}.clinical-form-progress button.active{background:#7748ef;color:#fff}.clinical-form-progress span{color:#756d80;font-size:12px}.clinical-form-progress strong{color:#6740d1}.clinical-step{display:none}.clinical-step.active{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px;padding:18px;border:1px solid var(--pc-border);border-radius:16px;background:#fff}.clinical-step>.clinical-field-wide,.clinical-step>fieldset{grid-column:1/-1}.clinical-step .field{margin:0}.clinical-step textarea{min-height:92px}.clinical-workspace-actions{position:sticky;z-index:12;bottom:10px;display:flex;align-items:center;justify-content:flex-end;gap:9px;margin-top:14px;padding:11px 13px;border:1px solid var(--pc-border);border-radius:16px;background:rgba(255,255,255,.95);box-shadow:0 12px 30px rgba(42,26,74,.14);backdrop-filter:blur(12px)}.clinical-workspace-actions .draft-state{display:flex;align-items:center;gap:7px;margin-right:auto;color:#80778c;font-size:11px}.clinical-workspace-actions .draft-state i{color:#0a9b71;font-size:17px}.clinical-workspace-actions .step-prev{margin-right:auto}.clinical-workspace-actions .step-prev[hidden],.clinical-workspace-actions .step-next[hidden]{display:none}.clinical-restore{display:flex;align-items:center;gap:9px;margin:10px 0;padding:10px 12px;border:1px solid #ead9a5;border-radius:12px;background:#fff9e8;color:#745715;font-size:12px}.clinical-restore button{margin-left:auto}
@media(max-width:1180px){.encounter-context-stack{position:relative;top:auto}.encounter-context-nav{align-items:stretch;flex-direction:column}.encounter-view-tabs{overflow-x:auto;padding-bottom:2px}.encounter-action-bar{justify-content:flex-start}.encounter-tab-panel{scroll-margin-top:20px}.clinical-step.active{grid-template-columns:1fr}.clinical-step>.clinical-field-wide,.clinical-step>fieldset{grid-column:auto}}
@media(max-width:650px){.encounter-patient-bar{grid-template-columns:48px 1fr;padding:12px}.encounter-avatar{width:48px;height:48px}.encounter-patient-copy h1{font-size:18px}.encounter-patient-status{grid-column:1/-1;align-items:center;justify-content:space-between;flex-direction:row}.encounter-context-nav{padding:7px}.encounter-view-tabs{width:100%}.encounter-view-tabs button{min-height:46px;padding-inline:12px}.encounter-action-bar{display:grid;grid-template-columns:1fr 1fr}.encounter-action-bar form,.encounter-action-bar .btn{width:100%}.encounter-action-bar .btn{justify-content:center}.clinical-document-launcher{align-items:stretch;flex-direction:column}.document-picker{min-width:0;width:100%}.clinical-form-progress{align-items:flex-start;flex-direction:column}.clinical-workspace-actions .draft-state{display:none}.clinical-step.active{padding:13px}.encounter-note-card:not(.is-expanded):after{display:none}}
.clinical-workspace-actions [hidden]{display:none!important}

/* Tablas por breakpoint: completas en escritorio, prioritarias en tablet y tarjetas en móvil. */
.breakpoint-table-shell{width:100%;margin-bottom:14px;overflow-x:auto;border:1px solid var(--pc-border);border-radius:16px;background:#fff}.breakpoint-responsive-table{width:100%;margin:0!important}.breakpoint-responsive-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.breakpoint-responsive-table th,.breakpoint-responsive-table td{padding:14px 16px}.breakpoint-responsive-table .breakpoint-action{text-align:right}.breakpoint-responsive-table .btn{min-height:40px}.encounter-file-upload{display:flex;align-items:center;gap:10px;padding:13px;border:1px dashed #d5c9f7;border-radius:14px;background:#faf8ff}.encounter-file-upload input[type=file]{min-width:0;flex:1}
@media(min-width:641px) and (max-width:920px){.breakpoint-responsive-table .breakpoint-tertiary{display:none}.breakpoint-responsive-table th:nth-child(3){display:none}}
@media(max-width:640px){.breakpoint-table-shell{border:0;background:transparent;overflow:visible}.breakpoint-responsive-table,.breakpoint-responsive-table tbody,.breakpoint-responsive-table tr,.breakpoint-responsive-table td{display:block;width:100%}.breakpoint-responsive-table thead{display:none}.breakpoint-responsive-table tbody{display:grid;gap:10px}.breakpoint-responsive-table tr{overflow:hidden;border:1px solid var(--pc-border);border-radius:15px;background:#fff;box-shadow:0 6px 18px rgba(43,28,75,.05)}.breakpoint-responsive-table td{display:grid;grid-template-columns:minmax(100px,36%) minmax(0,1fr);align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid #f0edf4;text-align:left!important;overflow-wrap:anywhere}.breakpoint-responsive-table td:last-child{border-bottom:0}.breakpoint-responsive-table td:before{content:attr(data-label);color:#766c81;font-size:12px;font-weight:800}.breakpoint-responsive-table .breakpoint-action .btn{width:100%;justify-content:center}.encounter-file-upload{align-items:stretch;flex-direction:column}.encounter-file-upload .btn{min-height:46px;justify-content:center}}

/* Consola de usuarios y roles */
.access-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:8px 0 26px}.access-page-head h1{margin:7px 0 4px;font-size:34px;letter-spacing:-.04em}.access-page-head p{margin:0;color:var(--pc-text-muted);font-size:15px}.access-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:25px}.access-kpis article{display:flex;align-items:center;gap:13px;min-height:108px;padding:20px;border:1px solid var(--pc-border);border-radius:20px;background:#fff;box-shadow:0 7px 24px rgba(43,28,72,.05)}.access-kpi-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;font-size:23px}.access-kpi-icon.violet{background:#eee6ff;color:#7447ed}.access-kpi-icon.green{background:#dff7ee;color:#07986d}.access-kpi-icon.blue{background:#e1f2ff;color:#168ac9}.access-kpi-icon.pink{background:#ffe4ec;color:#d83667}.access-kpis strong,.access-kpis small{display:block}.access-kpis strong{font-size:24px;line-height:1}.access-kpis small{margin-top:5px;color:#776d81;font-size:13px}.access-kpis em{margin-left:auto;padding:6px 9px;border-radius:999px;background:#f6f3f9;color:#897e93;font-size:11px;font-style:normal}.new-user-panel{padding:0;margin-bottom:25px;overflow:hidden}.new-user-panel>header{display:flex;align-items:center;gap:13px;padding:18px 22px;border-bottom:1px solid var(--pc-border)}.new-user-panel>header>div{flex:1}.new-user-panel h2{margin:0;font-size:18px}.new-user-panel p{margin:3px 0 0;color:#8a8094;font-size:13px}.access-close{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:10px;background:#f3f0f6;color:#746b7e;font-size:20px;cursor:pointer}.access-create-form{display:grid;grid-template-columns:1fr 1.4fr 1fr 1fr 1.2fr auto;align-items:end;gap:12px;padding:20px 22px}.access-create-form .field{margin:0}.access-create-form label{font-size:12px}.access-create-form input,.access-create-form select{min-height:44px}.section-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 15px}.section-title-row h2{margin:0;font-size:22px}.section-title-row p{margin:4px 0 0;color:#8a8094;font-size:13px}.role-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:28px}.role-card{position:relative;overflow:hidden;min-height:244px;padding:20px;border:1px solid var(--pc-border);border-radius:20px;background:#fff;box-shadow:0 7px 22px rgba(43,28,72,.045)}.role-card:after{content:"";position:absolute;right:-35px;top:-40px;width:100px;height:100px;border-radius:50%;background:var(--role-soft)}.role-card header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between}.role-card header>span{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--role-soft);color:var(--role-color);font-size:22px}.role-card header em{padding:5px 8px;border-radius:999px;background:#f6f3f8;color:#887e91;font-size:10px;font-style:normal}.role-card h3{margin:16px 0 5px;font-size:17px}.role-card>p{min-height:36px;margin:0;color:#8c8295;font-size:12px}.role-card>a{display:inline-flex;align-items:center;gap:6px;margin-top:14px;color:var(--role-color);font-size:12px;font-weight:750}.role-permission-preview{display:grid;gap:5px;margin-top:14px}.role-permission-preview span{overflow:hidden;color:#625969;font-size:10.5px;text-overflow:ellipsis;white-space:nowrap}.role-permission-preview span i{margin-right:5px;color:var(--role-color)}.role-permission-preview small{color:#958b9e;font-size:10px}.role-card.violet{--role-color:#7145ed;--role-soft:#eee7ff}.role-card.blue{--role-color:#2188c6;--role-soft:#e2f3ff}.role-card.pink{--role-color:#d83d6c;--role-soft:#ffe5ed}.role-card.green{--role-color:#078f68;--role-soft:#dff7ee}.role-card.teal{--role-color:#087f8f;--role-soft:#dff6f7}.role-card.amber{--role-color:#c47a00;--role-soft:#fff0d3}.role-card.orange{--role-color:#d25f27;--role-soft:#ffeadf}.role-card.slate{--role-color:#5e6275;--role-soft:#eceef4}.access-users{padding:0;overflow:visible}.access-users-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border-bottom:1px solid var(--pc-border)}.access-users-head h2{margin:0;font-size:19px}.access-users-head p{margin:3px 0 0;color:#8b8194;font-size:12px}.access-user-tools{display:flex;gap:9px}.access-user-tools .table-search{width:290px}.access-user-tools select{min-height:42px;width:170px}.access-table-wrap{overflow-x:auto}.access-user-table{min-width:900px}.access-user-table th{font-size:11px}.access-user-table td{padding-block:14px}.access-user-identity{display:flex;align-items:center;gap:12px}.user-avatar{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:#eee6ff;color:#7045e8;font-size:13px;font-weight:800}.user-avatar.tone-2{background:#dff7ee;color:#078e67}.user-avatar.tone-3{background:#e1f2ff;color:#187fad}.user-avatar.tone-4{background:#fff0d5;color:#c67600}.user-avatar.tone-5{background:#ffe3ec;color:#d43869}.user-avatar i{position:absolute;right:-1px;bottom:-1px;width:11px;height:11px;border:3px solid #fff;border-radius:50%;background:#aaa1b2}.user-avatar i.online{background:#0ba77a}.access-user-identity strong,.access-user-identity small{display:block}.access-user-identity strong{font-size:14px}.access-user-identity small{margin-top:3px;color:#8e8497;font-size:11px}.contact-status{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:750}.contact-status i{width:7px;height:7px;border-radius:50%;background:currentColor}.contact-status.active{background:#def7ed;color:#078d65}.contact-status.inactive{background:#f0edf3;color:#82788b}.role-assignment-list{display:flex;flex-wrap:wrap;gap:6px}.role-assignment-list>span{display:grid;grid-template-columns:auto 24px;position:relative;padding:7px 30px 7px 10px;border-radius:11px;background:#f3efff;color:#6840db}.role-assignment-list b,.role-assignment-list small{display:block}.role-assignment-list b{font-size:10.5px}.role-assignment-list small{color:#8a7caf;font-size:9px}.role-assignment-list form{position:absolute;right:4px;top:50%;transform:translateY(-50%)}.role-assignment-list button{display:grid;place-items:center;width:23px;height:23px;padding:0;border:0;border-radius:7px;background:transparent;color:#8b77c3;cursor:pointer}.role-assignment-list button:hover{background:#e4dafc;color:#5530c1}.user-actions-menu{position:relative}.user-actions-menu>summary{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--pc-border);border-radius:10px;background:#fff;cursor:pointer;list-style:none}.user-actions-menu>summary::-webkit-details-marker{display:none}.user-actions-menu>div{position:absolute;z-index:20;right:0;top:42px;display:grid;width:205px;padding:7px;border:1px solid var(--pc-border);border-radius:13px;background:#fff;box-shadow:0 13px 34px rgba(38,25,63,.16)}.user-actions-menu button,.user-actions-menu span{display:flex;align-items:center;gap:9px;width:100%;padding:9px;border:0;border-radius:8px;background:transparent;color:#5e5567;font-size:11px;text-align:left;cursor:pointer}.user-actions-menu button:hover{background:#f6f2ff;color:#6840dc}.user-actions-menu button.danger{color:#d33b64}.access-inline-editor td{padding:0!important;background:#faf8fd}.access-inline-editor form{display:flex;align-items:center;gap:9px;padding:14px 20px}.access-inline-editor strong{margin-right:auto;font-size:12px}.access-inline-editor input,.access-inline-editor select{width:auto;min-width:180px;min-height:39px}.permission-matrix{margin-top:20px;padding:0;overflow:hidden}.permission-matrix>summary{display:flex;align-items:center;justify-content:space-between;padding:18px 21px;cursor:pointer;list-style:none}.permission-matrix>summary span{display:grid;grid-template-columns:40px 1fr;align-items:center}.permission-matrix>summary span>i{grid-row:1/3;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:#eee7ff;color:#7044e8;font-size:18px}.permission-matrix>summary b{font-size:14px}.permission-matrix>summary small{color:#91879a;font-size:11px}.permission-table-wrap{overflow:auto;border-top:1px solid var(--pc-border)}.permission-matrix table{min-width:1100px}.permission-matrix td:not(:first-child),.permission-matrix th:not(:first-child){text-align:center}.permission-matrix td:first-child strong,.permission-matrix td:first-child small{display:block}.permission-matrix td:first-child small{color:#9a90a2;font-size:9px}.permission-matrix .granted{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#def7ed;color:#078e65}.permission-matrix .denied{color:#c0b8c7}.permission-matrix .role-focus{background:#f3efff}
@media(max-width:1200px){.access-kpis,.role-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.access-create-form{grid-template-columns:repeat(3,1fr)}.patient-profile-grid{grid-template-columns:1fr}}
@media(max-width:760px){.access-page-head{align-items:flex-start}.access-page-head h1{font-size:28px}.access-kpis,.role-card-grid,.access-create-form{grid-template-columns:1fr}.access-users-head{align-items:flex-start;flex-direction:column}.access-user-tools{width:100%;flex-direction:column}.access-user-tools .table-search,.access-user-tools select{width:100%}.access-inline-editor form{align-items:stretch;flex-direction:column}.access-inline-editor input,.access-inline-editor select{width:100%}}

/* Horizontal Form global: captura densa, legible y responsive. */
.horizontal-form-card{padding:0;overflow:hidden}.horizontal-form-card>.section:first-child,.horizontal-form-card>h3.section:first-child{margin:0;padding:21px 26px 7px;font-size:20px}.horizontal-form-card>p.muted:first-of-type{margin:0;padding:0 26px 20px;border-bottom:1px solid var(--pc-border);font-size:13px}.clinic-horizontal-form{display:grid;gap:0;padding:8px 26px 22px}.clinic-horizontal-form>.row2{display:block}.clinic-horizontal-form>.field,.clinic-horizontal-form>.row2>.field{display:grid;grid-template-columns:minmax(170px,24%) minmax(0,1fr);align-items:start;gap:7px 22px;margin:0;padding:14px 0;border-bottom:1px solid #f0edf3}.clinic-horizontal-form>.field>label,.clinic-horizontal-form>.row2>.field>label{grid-column:1;grid-row:1;align-self:center;margin:0;color:#3d3546;font-size:14px;font-weight:700;line-height:1.35}.clinic-horizontal-form>.field>input,.clinic-horizontal-form>.field>select,.clinic-horizontal-form>.field>textarea,.clinic-horizontal-form>.field>.choice-grid,.clinic-horizontal-form>.field>.choices,.clinic-horizontal-form>.field>.input-group,.clinic-horizontal-form>.row2>.field>input,.clinic-horizontal-form>.row2>.field>select,.clinic-horizontal-form>.row2>.field>textarea,.clinic-horizontal-form>.row2>.field>.choice-grid{grid-column:2;grid-row:1;min-width:0;max-width:760px;min-height:46px}.clinic-horizontal-form>.field>textarea,.clinic-horizontal-form>.row2>.field>textarea{min-height:92px}.clinic-horizontal-form>.field>small,.clinic-horizontal-form>.field>.muted,.clinic-horizontal-form>.row2>.field>small,.clinic-horizontal-form>.row2>.field>.muted{grid-column:2;margin:0;color:#92899c;font-size:12px}.clinic-horizontal-form .section{display:flex;align-items:center;gap:10px;margin:18px -26px 0;padding:18px 26px 10px;border-top:1px solid var(--pc-border);font-size:16px}.clinic-horizontal-form .section:before{content:"";width:4px;height:20px;border-radius:999px;background:linear-gradient(#7648ef,#bd3dbd)}.clinic-horizontal-form .section+.muted{margin:0;padding:0 0 8px 192px;font-size:12px}.clinic-horizontal-form .horizontal-choice-field{grid-template-columns:minmax(170px,24%) minmax(0,1fr)}.clinic-horizontal-form .horizontal-choice-field>label{grid-column:2;display:flex;align-items:center;gap:9px}.clinic-horizontal-form .horizontal-choice-field>label input{width:auto;min-height:auto}.clinic-horizontal-form .choice-grid{display:flex;flex-wrap:wrap;gap:8px}.clinic-horizontal-form .choice-chip{min-height:40px;padding:8px 11px}.clinic-horizontal-form .form-actions{display:flex;justify-content:flex-start;gap:9px;margin:0;padding:18px 0 0 192px}.clinic-horizontal-form input[data-size="time"]{max-width:170px}.clinic-horizontal-form input[data-size="date"]{max-width:240px}.clinic-horizontal-form input[data-size="md"]{max-width:430px}.clinic-horizontal-form input:focus,.clinic-horizontal-form select:focus,.clinic-horizontal-form textarea:focus{border-color:#9777ee;box-shadow:0 0 0 3px rgba(117,72,239,.1)}
@media(max-width:820px){.clinic-horizontal-form{padding-inline:19px}.clinic-horizontal-form>.field,.clinic-horizontal-form>.row2>.field{grid-template-columns:1fr;gap:7px;padding:12px 0}.clinic-horizontal-form>.field>label,.clinic-horizontal-form>.row2>.field>label,.clinic-horizontal-form>.field>input,.clinic-horizontal-form>.field>select,.clinic-horizontal-form>.field>textarea,.clinic-horizontal-form>.field>.choice-grid,.clinic-horizontal-form>.row2>.field>input,.clinic-horizontal-form>.row2>.field>select,.clinic-horizontal-form>.row2>.field>textarea,.clinic-horizontal-form>.row2>.field>.choice-grid,.clinic-horizontal-form>.field>small,.clinic-horizontal-form>.row2>.field>small{grid-column:1;grid-row:auto;max-width:none}.clinic-horizontal-form .horizontal-choice-field>label{grid-column:1}.clinic-horizontal-form .section{margin-inline:-19px;padding-inline:19px}.clinic-horizontal-form .section+.muted{padding-left:0}.clinic-horizontal-form .form-actions{padding-left:0;flex-wrap:wrap}.horizontal-form-card>.section:first-child,.horizontal-form-card>h3.section:first-child,.horizontal-form-card>p.muted:first-of-type{padding-inline:19px}}
.nom-form.clinic-horizontal-form{gap:18px;padding:0}.nom-form.clinic-horizontal-form .form-grid{display:block}.nom-form.clinic-horizontal-form .form-grid .field{display:grid;grid-template-columns:minmax(170px,24%) minmax(0,1fr);align-items:start;gap:7px 22px;margin:0;padding:13px 0;border-bottom:1px solid #f0edf3}.nom-form.clinic-horizontal-form .form-grid .field:last-child{border-bottom:0}.nom-form.clinic-horizontal-form .form-grid .field>label{grid-column:1;align-self:center;margin:0}.nom-form.clinic-horizontal-form .form-grid .field>input,.nom-form.clinic-horizontal-form .form-grid .field>select{grid-column:2;max-width:760px}.nom-form.clinic-horizontal-form .form-grid .field>small{grid-column:2;margin:0}.nom-form.clinic-horizontal-form .form-grid .compact-field input,.nom-form.clinic-horizontal-form .form-grid .compact-field select{max-width:300px}
@media(max-width:820px){.nom-form.clinic-horizontal-form .form-grid .field{grid-template-columns:1fr}.nom-form.clinic-horizontal-form .form-grid .field>label,.nom-form.clinic-horizontal-form .form-grid .field>input,.nom-form.clinic-horizontal-form .form-grid .field>select,.nom-form.clinic-horizontal-form .form-grid .field>small{grid-column:1;max-width:none}}

/* Fix v6: neutraliza layouts flex inline heredados por formularios antiguos. */
.clinic-horizontal-form{display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;gap:0!important}.clinic-horizontal-form>.row2{display:block!important;width:100%!important}.clinic-horizontal-form>.field,.clinic-horizontal-form>.row2>.field{display:grid!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important}.clinic-horizontal-form>button.btn,.clinic-horizontal-form>a.btn{justify-self:start;margin-top:16px;margin-left:calc(24% + 22px)}
@media(max-width:820px){.clinic-horizontal-form>button.btn,.clinic-horizontal-form>a.btn{margin-left:0}}

/* Consolas clínicas orientadas a tarea: organización, personal, inventario, compras y programas. */
.ops-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin:8px 0 24px}.ops-page-head h1{margin:6px 0 4px;font-size:34px;line-height:1.12;letter-spacing:-.045em}.ops-page-head p{max-width:760px;margin:0;color:var(--pc-text-muted);font-size:15px;line-height:1.55}.ops-eyebrow{display:inline-flex;align-items:center;gap:7px;color:#7548ef;font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.ops-page-actions{display:flex;gap:9px;flex-wrap:wrap}.ops-context-pill,.ops-count-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border-radius:999px;background:#f3effa;color:#71677b;font-size:12px;font-weight:750;white-space:nowrap}.ops-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:22px}.ops-kpi{display:flex;align-items:center;gap:13px;min-width:0;min-height:106px;padding:18px;border:1px solid var(--pc-border);border-radius:20px;background:#fff;color:var(--pc-text);box-shadow:0 7px 22px rgba(43,28,72,.045);font:inherit;text-align:left}.ops-kpi:is(button){cursor:pointer;transition:.18s}.ops-kpi:is(button):hover,.ops-kpi:is(button).is-active{transform:translateY(-2px);border-color:#cdbff5;box-shadow:0 11px 28px rgba(69,42,117,.1)}.ops-kpi:is(button).is-active{box-shadow:inset 0 -3px #7b4bec,0 11px 28px rgba(69,42,117,.1)}.ops-kpi__icon{display:grid;place-items:center;flex:0 0 50px;width:50px;height:50px;border-radius:15px;background:#eee7ff;color:#7548ec;font-size:23px}.ops-kpi--green .ops-kpi__icon{background:#def7ed;color:#07966c}.ops-kpi--blue .ops-kpi__icon{background:#e0f2ff;color:#1889c7}.ops-kpi--amber .ops-kpi__icon{background:#fff0d3;color:#c67700}.ops-kpi--red .ops-kpi__icon{background:#ffe4ec;color:#d83b69}.ops-kpi>span:nth-child(2){min-width:0}.ops-kpi strong,.ops-kpi small{display:block}.ops-kpi strong{font-size:25px;line-height:1.1;letter-spacing:-.025em}.ops-kpi strong.ops-kpi__text-value{overflow:hidden;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.ops-kpi strong.ops-kpi__money{font-size:20px}.ops-kpi small{margin-top:4px;color:#706677;font-size:12px}.ops-kpi em{margin-left:auto;padding:6px 8px;border-radius:999px;background:#f6f3f8;color:#8b8194;font-size:10px;font-style:normal;white-space:nowrap}.ops-card{padding:0;overflow:visible}.ops-card__head{display:flex;align-items:center;gap:13px;padding:19px 22px;border-bottom:1px solid var(--pc-border)}.ops-card__head>div{min-width:0;flex:1}.ops-card__head h2{margin:0;font-size:19px;letter-spacing:-.02em}.ops-card__head p{margin:3px 0 0;color:#8b8194;font-size:12px;line-height:1.45}.ops-card__icon{display:grid;place-items:center;flex:0 0 46px;width:46px;height:46px;border-radius:14px;background:#eee7ff;color:#7346ed;font-size:21px}.ops-card__icon--green{background:#def7ed;color:#078f68}.ops-card__icon--blue{background:#e1f2ff;color:#1886bf}.ops-card__icon--amber{background:#fff0d6;color:#c17800}.ops-horizontal-form{padding:7px 25px 20px}.ops-form-row{display:grid;grid-template-columns:minmax(210px,25%) minmax(0,1fr);align-items:center;gap:22px;padding:16px 0;border-bottom:1px solid #f0edf3}.ops-form-row .field{margin:0}.ops-form-label label,.ops-form-label small{display:block}.ops-form-label label{font-size:14px;font-weight:750}.ops-form-label small{margin-top:4px;color:#92899b;font-size:11px;line-height:1.4}.ops-form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:17px}.ops-stacked-form{display:grid;gap:14px;padding:20px 22px}.ops-stacked-form .field,.ops-form-grid .field{margin:0}.ops-guidance,.program-safety-note{display:flex;align-items:flex-start;gap:9px;padding:12px 13px;border:1px solid #d8cdf6;border-radius:13px;background:#faf8ff;color:#71657b;font-size:11px;line-height:1.45}.ops-guidance i,.program-safety-note i{color:#7548eb;font-size:17px}.org-console-grid{display:grid;grid-template-columns:minmax(280px,34%) minmax(0,1fr);gap:18px;margin-top:18px}.org-directory-card{min-width:0}.ops-empty{display:grid;justify-items:center;padding:46px 22px;text-align:center}.ops-empty>span{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:#eee7ff;color:#7548ec;font-size:28px}.ops-empty h3{margin:14px 0 4px;font-size:18px}.ops-empty p{margin:0 0 15px;color:#8d8396;font-size:13px}.ops-empty--filtered{padding:32px}.ops-primary-cell{display:flex;align-items:center;gap:11px;min-width:220px}.ops-primary-cell>span:last-child{min-width:0}.ops-primary-cell strong,.ops-primary-cell small{display:block}.ops-primary-cell strong{font-size:13.5px}.ops-primary-cell small,.ops-cell-note{margin-top:3px;color:#91879a;font-size:10.5px}.branch-mark,.staff-avatar,.product-mark,.po-mark{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:13px;background:#eee7ff;color:#7044e8;font-size:18px;font-weight:850}.staff-avatar{background:linear-gradient(135deg,#eee6ff,#dff5ff);font-size:12px}.product-mark{background:#dff7ee;color:#078f68}.product-mark.is-low{background:#ffe4ec;color:#d53b68}.po-mark{background:#e2f2ff;color:#1683ba}.ops-meta{display:inline-flex;align-items:center;gap:6px;color:#756b7f;font-size:11px}.ops-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.ops-current-label{display:inline-flex;align-items:center;gap:5px;color:#078c65;font-size:11px;font-weight:750}.ops-row-editor{position:relative}.ops-row-editor>summary{list-style:none}.ops-row-editor>summary::-webkit-details-marker{display:none}.ops-inline-editor{position:absolute;z-index:30;right:0;top:44px;display:grid;grid-template-columns:repeat(2,minmax(190px,1fr));align-items:end;gap:10px;width:min(520px,80vw);padding:15px;border:1px solid var(--pc-border);border-radius:16px;background:#fff;box-shadow:0 16px 38px rgba(42,27,71,.18)}.ops-inline-editor--wide{grid-template-columns:repeat(2,minmax(180px,1fr));width:min(760px,86vw)}.ops-inline-editor .field{margin:0}.ops-inline-editor label{font-size:11px}.ops-inline-editor input,.ops-inline-editor select{min-height:41px}.ops-table{border:0}.ops-table th{font-size:10.5px}.ops-table td{font-size:12px}.ops-table .badge{white-space:nowrap}.ops-table .badge i{font-size:7px}.ops-create-disclosure{padding:0;margin-bottom:20px;overflow:hidden}.ops-create-disclosure>summary{display:flex;align-items:center;gap:13px;padding:18px 22px;cursor:pointer;list-style:none}.ops-create-disclosure>summary::-webkit-details-marker{display:none}.ops-create-disclosure>summary>span:nth-child(2){min-width:0;flex:1}.ops-create-disclosure>summary strong,.ops-create-disclosure>summary small{display:block}.ops-create-disclosure>summary strong{font-size:18px}.ops-create-disclosure>summary small{margin-top:3px;color:#8e8497;font-size:12px}.ops-create-disclosure[open]>summary{border-bottom:1px solid var(--pc-border)}.ops-create-disclosure[open]>summary>i{transform:rotate(180deg)}.staff-create-form{display:grid;gap:0;padding:5px 22px 22px}.staff-create-form fieldset{margin:0;padding:19px 0;border:0;border-bottom:1px solid #f0edf3}.staff-create-form legend{display:flex;align-items:center;gap:8px;margin-bottom:14px;font-size:13px;font-weight:800}.staff-create-form legend span{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#eee7ff;color:#7044e8;font-size:11px}.ops-form-grid{display:grid;gap:13px}.ops-form-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-form-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.field-help{display:block;margin-top:5px;color:#948a9d;font-size:10.5px}.ops-directory-toolbar{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:15px 20px;border-bottom:1px solid var(--pc-border)}.ops-search{position:relative;display:flex;align-items:center;min-width:260px;max-width:390px;flex:1}.ops-search i{position:absolute;left:14px;color:#92889c;font-size:17px}.ops-search input{width:100%;min-height:43px;padding-left:41px;border:0;border-radius:999px;background:#f6f3f9}.filter-tabs{display:flex;gap:6px;flex-wrap:wrap}.filter-tab{min-height:38px;padding:0 13px;border:1px solid transparent;border-radius:999px;background:#f5f2f8;color:#726879;cursor:pointer;font:inherit;font-size:11px;font-weight:750}.filter-tab:hover,.filter-tab.is-active{background:#7a49ed;color:#fff}.inventory-risk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:18px}.inventory-risk-card{display:flex;align-items:center;gap:13px;min-height:82px;padding:14px 16px;border:1px solid #f0c5cc;border-radius:18px;background:#fff6f7;color:#643843;cursor:pointer;text-align:left}.inventory-risk-card--amber{border-color:#eed7a9;background:#fff9ea;color:#674f23}.inventory-risk-card__icon{display:grid;place-items:center;flex:0 0 43px;width:43px;height:43px;border-radius:13px;background:#ffe1e8;color:#d73b68;font-size:20px}.inventory-risk-card--amber .inventory-risk-card__icon{background:#ffedc6;color:#c27700}.inventory-risk-card>span:nth-child(2){min-width:0;flex:1}.inventory-risk-card strong,.inventory-risk-card small{display:block}.inventory-risk-card strong{font-size:13px}.inventory-risk-card small{margin-top:3px;font-size:10.5px;line-height:1.4}.inventory-risk-card em{font-size:10.5px;font-style:normal;font-weight:750;white-space:nowrap}.stock-value{display:inline-block;margin-right:5px;font-size:16px}.stock-value.is-low{color:#d63c68}.stock-level{min-width:120px}.stock-level>div{height:7px;border-radius:999px;background:#ece8f1;overflow:hidden}.stock-level>div>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#18ac82,#5bc59f)}.stock-level>div>span.is-low{background:linear-gradient(90deg,#ef5b78,#f39577)}.stock-level small{display:block;margin-top:5px;color:#918799;font-size:10px}.po-create-card{margin-bottom:18px}.po-workflow{display:flex;align-items:center;justify-content:center;gap:12px;padding:17px 22px;border-bottom:1px solid var(--pc-border);background:#faf9fc}.po-workflow>i{color:#c0b6c8}.po-step{display:grid;grid-template-columns:31px 1fr;min-width:150px;gap:1px 9px;color:#89808f}.po-step>span{grid-row:1/3;display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:#eeeaf2;font-size:11px;font-weight:850}.po-step strong,.po-step small{display:block}.po-step strong{font-size:11px}.po-step small{font-size:9.5px}.po-step.is-current{color:#6640d5}.po-step.is-current>span{background:#7849ed;color:#fff}.po-create-form{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:13px;padding:19px 22px}.po-create-form .field{margin:0}.program-console-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(310px,.75fr);align-items:start;gap:18px}.program-console-grid--single{grid-template-columns:1fr}.program-catalog{min-width:0}.program-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;padding:18px}.program-card{display:flex;flex-direction:column;min-height:235px;padding:17px;border:1px solid var(--pc-border);border-radius:17px;background:#fff}.program-card>header{display:flex;align-items:center;justify-content:space-between}.program-card__mark{display:grid;place-items:center;width:43px;height:43px;border-radius:13px;background:#eee9f7;color:#776c82;font-size:19px}.program-card__mark.is-active{background:#def7ed;color:#078e67}.program-card h3{margin:15px 0 5px;font-size:16px}.program-card>p{min-height:37px;margin:0;color:#887e91;font-size:11.5px;line-height:1.45}.program-rule{margin-top:14px;padding:11px 12px;border-radius:12px;background:#f8f6fa}.program-rule small,.program-rule strong{display:block}.program-rule small{color:#948a9d;font-size:9.5px}.program-rule strong{overflow-wrap:anywhere;margin-top:3px;font-size:10.5px}.program-card>footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:14px}.program-builder{position:sticky;top:112px}.program-builder form{display:grid;gap:0;padding:8px 20px 20px}.program-builder-step{display:grid;grid-template-columns:29px minmax(0,1fr);gap:11px;padding:15px 0;border-bottom:1px solid #f0edf3}.program-builder-step>span{display:grid;place-items:center;width:29px;height:29px;border-radius:9px;background:#eee7ff;color:#7044e8;font-size:11px;font-weight:850}.program-builder-step .field{margin:0}.program-builder-step textarea{min-height:82px}.program-builder-label{display:block;margin-bottom:9px;font-size:12px;font-weight:750}.program-safety-note{margin:15px 0}.program-drafts{margin-top:18px}.program-draft-list{display:grid;gap:9px;padding:17px}.program-draft-editor{border:1px solid var(--pc-border);border-radius:15px;background:#fff}.program-draft-editor>summary{display:flex;align-items:center;gap:11px;padding:13px;cursor:pointer;list-style:none}.program-draft-editor>summary::-webkit-details-marker{display:none}.program-draft-editor>summary>span:nth-child(2){min-width:0;flex:1}.program-draft-editor>summary strong,.program-draft-editor>summary small{display:block}.program-draft-editor>summary strong{font-size:13px}.program-draft-editor>summary small{overflow:hidden;margin-top:2px;color:#91879a;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.program-draft-editor>form{display:grid;gap:13px;padding:16px;border-top:1px solid var(--pc-border)}
@media(max-width:1200px){.ops-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.program-console-grid{grid-template-columns:1fr}.program-builder{position:relative;top:auto}.org-console-grid{grid-template-columns:1fr}.ops-inline-editor{position:fixed;top:50%;right:50%;transform:translate(50%,-50%);max-height:80vh;overflow:auto}}
@media(max-width:820px){.ops-page-head{align-items:flex-start;flex-direction:column}.ops-page-head h1{font-size:29px}.ops-context-pill{align-self:flex-start}.ops-form-row{grid-template-columns:1fr;gap:8px}.ops-form-actions{justify-content:flex-start}.ops-form-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-directory-toolbar{align-items:stretch;flex-direction:column}.ops-search{max-width:none;width:100%}.inventory-risk-grid{grid-template-columns:1fr}.po-create-form{grid-template-columns:1fr}.po-create-form .btn{justify-self:start}.po-workflow{justify-content:flex-start;overflow-x:auto}.program-card-grid{grid-template-columns:1fr}.program-builder .ops-form-grid--2{grid-template-columns:1fr}}
@media(max-width:640px){.ops-kpis{grid-template-columns:1fr}.ops-kpi{min-height:96px}.ops-kpi em{white-space:normal;text-align:right}.ops-page-actions{display:grid;width:100%;grid-template-columns:1fr 1fr}.ops-page-actions .btn{justify-content:center}.ops-card__head{align-items:flex-start;padding:17px}.ops-card__head>.badge,.ops-card__head>.ops-count-pill{display:none}.ops-horizontal-form,.ops-stacked-form,.staff-create-form{padding-inline:17px}.ops-form-grid--2,.ops-form-grid--3{grid-template-columns:1fr}.filter-tabs{display:grid;grid-template-columns:repeat(2,1fr);width:100%}.filter-tab{padding-inline:8px}.ops-row-actions{justify-content:stretch}.ops-row-actions .btn,.ops-row-actions form{flex:1}.ops-row-actions form .btn{width:100%;justify-content:center}.ops-inline-editor,.ops-inline-editor--wide{grid-template-columns:1fr;width:calc(100vw - 28px)}.inventory-risk-card{align-items:flex-start}.inventory-risk-card em{display:none}.breakpoint-responsive-table .ops-primary-cell{min-width:0}.breakpoint-responsive-table .ops-row-actions{display:grid;grid-template-columns:1fr 1fr}.program-card-grid{padding:13px}.program-draft-list{padding:13px}.po-workflow>i{display:none}.po-workflow{display:grid;grid-template-columns:1fr}.po-step{min-width:0}}

/* Fix móvil v6: cada lista controla su desplazamiento y el drawer conserva scroll propio. */
html,body{max-width:100%;overflow-x:clip}.app,.main,.main-inner,.panel,.ops-card,.org-console-grid,.org-directory-card{min-width:0;max-width:100%}.table-scroll,.table-responsive,.breakpoint-table-shell,.access-table-wrap,.permission-table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.sidebar-nav-scroll{-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable;contain:layout paint}
@media(max-width:991px){.sidebar{top:0;bottom:auto;height:100vh;height:100dvh;max-height:100dvh;overflow:hidden;overscroll-behavior:contain}.sidebar-nav-scroll{min-height:0;height:0;flex:1 1 0;overflow-x:hidden;overflow-y:scroll;padding-bottom:18px}.sidebar-footer{position:relative;z-index:2;margin-top:0;background:linear-gradient(180deg,rgba(18,16,25,.25),#121019 28%)}body.nav-open{height:100%;overflow:hidden;overscroll-behavior:none}}
@media(max-width:640px){.main-inner{width:100%;overflow-x:clip}.breakpoint-table-shell{width:100%;max-width:100%;overflow:visible}.breakpoint-responsive-table{min-width:0!important;max-width:100%!important;table-layout:fixed}.breakpoint-responsive-table tbody,.breakpoint-responsive-table tr,.breakpoint-responsive-table td{min-width:0!important;max-width:100%}.breakpoint-responsive-table td>*{min-width:0;max-width:100%}.breakpoint-responsive-table td:before{min-width:0}.breakpoint-responsive-table a,.breakpoint-responsive-table strong,.breakpoint-responsive-table small,.breakpoint-responsive-table span{overflow-wrap:anywhere}.ops-inline-editor,.ops-inline-editor--wide{max-width:calc(100vw - 28px)}}

/* Agenda semanal y mensual: el panel conserva su ancho y solo el calendario se desplaza. */
.calendar-board{min-width:0}
.week-scroll-hint,.month-scroll-hint{display:none}
.week-calendar-scroll,.month-calendar-scroll{
    width:100%;
    max-width:100%;
    min-width:0;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
    scrollbar-width:thin;
    scrollbar-color:#9b7bea #eee9f4;
    scroll-snap-type:x proximity;
}
.week-calendar-scroll::-webkit-scrollbar,.month-calendar-scroll::-webkit-scrollbar{height:8px}
.week-calendar-scroll::-webkit-scrollbar-track,.month-calendar-scroll::-webkit-scrollbar-track{background:#eee9f4}
.week-calendar-scroll::-webkit-scrollbar-thumb,.month-calendar-scroll::-webkit-scrollbar-thumb{border:2px solid #eee9f4;border-radius:999px;background:#9b7bea}
.week-calendar{
    width:max(100%,910px);
    min-width:910px;
    overflow:visible;
}
.month-calendar{
    width:max(100%,760px);
    min-width:760px;
    overflow:visible;
}
.week-day{scroll-snap-align:start}
.week-day.selected:not(.today) .week-day-head{background:#f6f1ff}
.week-day.selected:not(.today) .week-day-head strong{color:#7448e9;box-shadow:inset 0 0 0 2px #cdbdf6}
.month-cell{scroll-snap-align:start}
.month-cell.selected:not(.today)>strong{color:#7448e9;box-shadow:inset 0 0 0 2px #cdbdf6}

/* Fichas demográficas: aire uniforme entre la información y el borde de la tarjeta. */
.patient-data-form-card{
    --patient-form-gutter:36px;
    overflow:hidden;
}
.patient-data-form-card>.section:first-child,
.patient-data-form-card>h3.section:first-child{
    padding-inline:var(--patient-form-gutter);
}
.patient-data-form-card>p.muted:first-of-type{
    padding-inline:var(--patient-form-gutter);
}
.patient-data-form.clinic-horizontal-form{
    padding-right:var(--patient-form-gutter)!important;
    padding-left:var(--patient-form-gutter)!important;
    padding-bottom:30px!important;
}
.patient-data-form.clinic-horizontal-form .section{
    margin-right:calc(var(--patient-form-gutter) * -1);
    margin-left:calc(var(--patient-form-gutter) * -1);
    padding-right:var(--patient-form-gutter);
    padding-left:var(--patient-form-gutter);
}
.nom-form .form-section-card>.form-grid{
    padding-right:32px;
    padding-left:32px;
}

@media(max-width:780px){
    .week-scroll-hint,.month-scroll-hint{
        display:flex;
        align-items:center;
        justify-content:center;
        gap:7px;
        min-height:38px;
        padding:7px 16px;
        border-bottom:1px solid #ebe6f0;
        background:linear-gradient(90deg,#faf8ff,#f2edff,#faf8ff);
        color:#6f5c81;
        font-size:11px;
        font-weight:750;
    }
    .week-scroll-hint i:first-child,.month-scroll-hint i:first-child{color:#7548eb;font-size:16px}
    .week-scroll-hint i:last-child,.month-scroll-hint i:last-child{animation:week-scroll-nudge 1.5s ease-in-out infinite;color:#7548eb;font-size:15px}
    .week-calendar-scroll,.month-calendar-scroll{scroll-padding-inline:0}
    .week-calendar{grid-template-columns:repeat(7,minmax(130px,1fr));width:910px;min-width:910px}
    .month-calendar{width:760px;min-width:760px}
}

@media(max-width:680px){
    .patient-data-form-card{--patient-form-gutter:24px}
    .nom-form .form-section-card>.form-grid{
        padding-right:22px;
        padding-left:22px;
    }
}

@keyframes week-scroll-nudge{
    0%,100%{transform:translateX(0)}
    50%{transform:translateX(4px)}
}
.clinical-prescription-list{display:grid;gap:10px;margin-top:16px}.clinical-prescription-list article{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--pc-border);border-radius:14px}.clinical-prescription-list a{color:var(--pc-primary);font-weight:800;text-decoration:none}.clinical-prescription-form{padding-top:16px}.rx-line{display:grid;grid-template-columns:minmax(220px,2fr) repeat(5,minmax(110px,1fr));gap:12px;padding:16px 0;border-bottom:1px solid var(--pc-border)}.rx-instructions{grid-column:1/-1}@media(max-width:1000px){.rx-line{grid-template-columns:1fr 1fr}.rx-instructions{grid-column:1/-1}}@media(max-width:600px){.rx-line{grid-template-columns:1fr}.rx-instructions{grid-column:auto}.clinical-prescription-list article{grid-template-columns:auto 1fr}.clinical-prescription-list article a{grid-column:2}}
/* Patient care launchers + communication workspace */
.patient-profile-tabbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:0 20px;border-top:1px solid var(--border)}
.patient-profile-tabbar .patient-profile-tabs{border-top:0;padding:0;min-width:0;overflow-x:auto}
.patient-care-launchers{display:flex;gap:8px;flex:0 0 auto}
.patient-care-menu{position:relative}
.patient-care-menu>summary{list-style:none;display:flex;align-items:center;gap:7px;min-height:42px;padding:0 14px;border:1px solid var(--border);border-radius:12px;background:var(--card);color:var(--text);font-weight:800;cursor:pointer;white-space:nowrap}
.patient-care-menu>summary::-webkit-details-marker{display:none}
.patient-care-menu[open]>summary{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 38%,var(--border));background:color-mix(in srgb,var(--primary) 7%,var(--card))}
.patient-care-menu-popover{position:absolute;right:0;top:calc(100% + 10px);z-index:45;width:340px;max-height:480px;overflow:auto;padding:10px;background:var(--card);border:1px solid var(--border);border-radius:18px;box-shadow:0 22px 55px rgba(25,15,55,.2)}
.patient-care-menu-popover header{padding:8px 10px 12px}.patient-care-menu-popover header strong,.patient-care-menu-popover header small{display:block}.patient-care-menu-popover header small{margin-top:3px;color:var(--muted)}
.patient-care-menu-popover form{margin:0}.patient-care-menu-popover button{display:grid;grid-template-columns:42px 1fr 20px;align-items:center;gap:11px;width:100%;padding:10px;border:0;border-radius:12px;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.patient-care-menu-popover button:hover,.patient-care-menu-popover button:focus-visible{background:color-mix(in srgb,var(--primary) 8%,var(--card));outline:none}
.patient-care-menu-popover button>i:first-child{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:color-mix(in srgb,var(--primary) 12%,var(--card));color:var(--primary);font-size:20px}.patient-care-menu-popover button span strong,.patient-care-menu-popover button span small{display:block}.patient-care-menu-popover button span small{margin-top:2px;color:var(--muted);font-size:12px}
.patient-communication{margin-top:24px;scroll-margin-top:110px;overflow:visible}
.patient-communication-header{display:flex;align-items:center;gap:14px;padding:22px 24px;border-bottom:1px solid var(--border)}.patient-communication-header h2,.communication-history h3{margin:2px 0}.patient-communication-header p,.communication-history p{margin:4px 0 0;color:var(--muted)}
.communication-privacy{margin-left:auto;padding:8px 11px;border-radius:999px;background:#e4f8f0;color:#087f5b;font-size:12px;font-weight:800;white-space:nowrap}
.patient-communication-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:0}
.communication-composer{padding:24px;border-right:1px solid var(--border)}.communication-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.communication-composer textarea{min-height:132px;resize:vertical}.communication-composer .field small{display:block;margin-top:6px;color:var(--muted)}
.communication-recipient{display:flex;align-items:center;gap:10px;margin:14px 0;padding:11px 13px;border-radius:12px;background:color-mix(in srgb,var(--card) 88%,var(--primary) 12%)}.communication-recipient>i{color:var(--primary);font-size:21px}.communication-recipient small,.communication-recipient strong{display:block}
.communication-history{padding:24px;max-height:440px;overflow:auto}.communication-history>article{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--border)}.communication-history>article>i{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--primary) 10%,var(--card));color:var(--primary);font-size:18px}.communication-history article span strong,.communication-history article span small{display:block}.communication-history article span small,.communication-history time{color:var(--muted);font-size:11px}.communication-empty{display:flex;align-items:center;gap:10px;margin-top:18px;padding:16px;border-radius:13px;background:color-mix(in srgb,var(--card) 88%,var(--primary) 12%);color:var(--muted)}
@media(max-width:1100px){.patient-profile-tabbar{align-items:flex-start;flex-direction:column;padding-bottom:14px}.patient-care-launchers{width:100%}.patient-care-menu{flex:1}.patient-care-menu>summary{justify-content:center}.patient-care-menu-popover{left:0;right:auto}.patient-communication-grid{grid-template-columns:1fr}.communication-composer{border-right:0;border-bottom:1px solid var(--border)}}
@media(max-width:700px){.patient-profile-tabbar{padding:0 14px 14px}.patient-care-launchers{display:grid;grid-template-columns:1fr 1fr}.patient-care-menu>summary{font-size:13px;padding:0 9px}.patient-care-menu-popover{position:fixed;left:14px;right:14px;top:auto;bottom:18px;width:auto;max-height:min(68vh,540px);z-index:110}.communication-options{grid-template-columns:1fr}.patient-communication-header{align-items:flex-start;flex-wrap:wrap;padding:18px}.communication-privacy{margin-left:0}.communication-composer,.communication-history{padding:18px}.communication-history>article{grid-template-columns:38px 1fr}.communication-history time{grid-column:2}}

/* Fix v17: los menús clínicos rápidos deben salir de la tarjeta del perfil. */
.patient-profile-hero{overflow:visible}
.patient-profile-cover{border-radius:23px 23px 0 0}
.patient-profile-tabbar{position:relative;z-index:20;border-radius:0 0 23px 23px;background:var(--card)}
.patient-care-menu-popover{z-index:120}

/* Fix v18: popovers opacos y legibles; nunca muestran dos capas simultáneas. */
.patient-profile-tabbar{background:var(--pc-surface,#fff)}
.patient-care-menu>summary{background:var(--pc-surface,#fff);color:var(--pc-text,#171225);border-color:var(--pc-border,#e6e1eb)}
.patient-care-menu[open]>summary{color:var(--pc-accent,#7548ef);border-color:color-mix(in srgb,var(--pc-accent,#7548ef) 38%,var(--pc-border,#e6e1eb));background:color-mix(in srgb,var(--pc-accent,#7548ef) 7%,var(--pc-surface,#fff))}
.patient-care-menu-popover{isolation:isolate;opacity:1;background:var(--pc-surface,#fff);color:var(--pc-text,#171225);border-color:var(--pc-border,#e6e1eb);box-shadow:0 24px 60px rgba(21,14,42,.28);backdrop-filter:none}
.patient-care-menu-popover button{color:var(--pc-text,#171225)}
.patient-care-menu-popover button:hover,.patient-care-menu-popover button:focus-visible{background:color-mix(in srgb,var(--pc-accent,#7548ef) 9%,var(--pc-surface,#fff))}
.patient-care-menu-popover button>i:first-child{background:color-mix(in srgb,var(--pc-accent,#7548ef) 12%,var(--pc-surface,#fff));color:var(--pc-accent,#7548ef)}

/* Clinical workspace v20: more room for care, clearer prescribing and stable mobile care menus. */
@media(min-width:1181px){
  .encounter-patient-bar{
    max-height:116px;
    overflow:hidden;
    opacity:1;
    transition:max-height .24s ease,opacity .18s ease,transform .24s ease,padding .24s ease,border-color .24s ease;
  }
  .encounter-context-stack.is-condensed .encounter-patient-bar{
    max-height:0;
    padding-top:0;
    padding-bottom:0;
    border-color:transparent;
    opacity:0;
    transform:translateY(-12px);
    pointer-events:none;
  }
  .encounter-context-stack.is-condensed{
    border-radius:0 0 18px 18px;
    box-shadow:0 10px 25px rgba(30,20,58,.1);
  }
  .encounter-context-stack.is-condensed .encounter-context-nav{
    min-height:58px;
  }
}

.clinical-prescription-intro{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0 0 18px;
}
.clinical-prescription-step{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px;
  border:1px solid var(--pc-border,var(--border));
  border-radius:14px;
  background:color-mix(in srgb,var(--pc-accent,var(--primary)) 4%,var(--pc-surface,var(--card)));
}
.clinical-prescription-step>b{
  display:grid;
  place-items:center;
  flex:0 0 34px;
  width:34px;
  height:34px;
  border-radius:11px;
  background:color-mix(in srgb,var(--pc-accent,var(--primary)) 14%,var(--pc-surface,var(--card)));
  color:var(--pc-accent,var(--primary));
  font-size:15px;
}
.clinical-prescription-step strong,.clinical-prescription-step small{display:block}
.clinical-prescription-step strong{font-size:13px}
.clinical-prescription-step small{margin-top:2px;color:var(--pc-muted,var(--muted));font-size:11px}
.clinical-prescription-form .field>label{
  display:flex;
  align-items:center;
  min-height:20px;
  margin-bottom:7px;
  font-size:13px;
  font-weight:800;
}
.clinical-prescription-form input,
.clinical-prescription-form select,
.clinical-prescription-form textarea{
  width:100%;
  min-height:48px;
  border-color:color-mix(in srgb,var(--pc-border,var(--border)) 82%,var(--pc-accent,var(--primary)));
  background:var(--pc-surface,var(--card));
}
.clinical-prescription-form textarea{
  min-height:76px;
  resize:vertical;
  line-height:1.45;
}
.clinical-prescription-form input:focus,
.clinical-prescription-form select:focus,
.clinical-prescription-form textarea:focus{
  border-color:var(--pc-accent,var(--primary));
  box-shadow:0 0 0 4px color-mix(in srgb,var(--pc-accent,var(--primary)) 12%,transparent);
  outline:0;
}
.rx-clinical-indication{
  padding:16px;
  border:1px solid var(--pc-border,var(--border));
  border-radius:16px;
  background:var(--pc-surface,var(--card));
}
.rx-line{
  position:relative;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
  margin-top:14px;
  padding:18px;
  border:1px solid var(--pc-border,var(--border));
  border-radius:18px;
  background:color-mix(in srgb,var(--pc-accent,var(--primary)) 2.5%,var(--pc-surface,var(--card)));
  box-shadow:0 8px 22px rgba(35,23,62,.045);
}
.rx-line-heading{
  display:flex;
  align-items:center;
  gap:9px;
  grid-column:1/-1;
  padding-bottom:10px;
  border-bottom:1px solid var(--pc-border,var(--border));
}
.rx-line-heading strong{flex:1;font-size:14px}
.rx-line-number{
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:10px;
  background:var(--pc-accent,var(--primary));
  color:#fff;
  font-weight:850;
}
.rx-remove-line{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  padding:0;
  border:0;
  border-radius:10px;
  background:#fff0f3;
  color:#d9365f;
  cursor:pointer;
}
.rx-remove-line[hidden]{display:none}
.rx-medication{grid-column:span 2}
.rx-instructions{grid-column:span 5}
.rx-signature{
  margin-top:16px;
  padding:16px;
  border:1px solid color-mix(in srgb,#079a70 34%,var(--pc-border,var(--border)));
  border-radius:16px;
  background:color-mix(in srgb,#079a70 5%,var(--pc-surface,var(--card)));
}
.rx-signature small{display:block;margin-top:7px;color:#07835f}
.clinical-prescription-actions{
  position:sticky;
  bottom:10px;
  z-index:8;
  margin-top:14px;
  padding:11px;
  border:1px solid var(--pc-border,var(--border));
  border-radius:16px;
  background:color-mix(in srgb,var(--pc-surface,var(--card)) 94%,transparent);
  box-shadow:0 12px 32px rgba(30,19,57,.12);
  backdrop-filter:blur(14px);
}

/* Make all clinical capture steps easier to scan without creating long, dense walls. */
.clinical-step>.field,
.clinical-step>fieldset{
  padding:14px;
  border:1px solid color-mix(in srgb,var(--pc-border,var(--border)) 86%,transparent);
  border-radius:14px;
  background:color-mix(in srgb,var(--pc-surface,var(--card)) 96%,var(--pc-accent,var(--primary)));
}
.clinical-step .field>label,.clinical-step legend{
  margin-bottom:7px;
  color:var(--pc-text,var(--text));
  font-size:13px;
  font-weight:800;
}
.clinical-step input,.clinical-step select,.clinical-step textarea{min-height:48px}
.clinical-step textarea{min-height:112px;line-height:1.5;resize:vertical}
.clinical-step input:focus,.clinical-step select:focus,.clinical-step textarea:focus{
  border-color:var(--pc-accent,var(--primary));
  box-shadow:0 0 0 4px color-mix(in srgb,var(--pc-accent,var(--primary)) 11%,transparent);
  outline:0;
}

@media(max-width:1180px){
  .rx-line{grid-template-columns:repeat(3,minmax(0,1fr))}
  .rx-medication{grid-column:span 2}
  .rx-instructions{grid-column:span 2}
}
@media(max-width:700px){
  .clinical-prescription-intro{grid-template-columns:1fr}
  .clinical-prescription-step{padding:10px}
  .rx-line{grid-template-columns:1fr 1fr;padding:14px;gap:12px}
  .rx-line-heading,.rx-medication,.rx-instructions{grid-column:1/-1}
  .clinical-prescription-actions{position:static;display:grid;grid-template-columns:1fr}

  .patient-profile-tabbar{overflow:visible}
  .patient-profile-tabbar .patient-profile-tabs{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px;
    width:100%;
    padding:8px 0;
    overflow:visible;
  }
  .patient-profile-tabbar .patient-profile-tabs a{
    justify-content:flex-start;
    min-width:0;
    min-height:46px;
    padding:0 10px;
    border-radius:10px;
    white-space:normal;
    line-height:1.2;
  }
  .patient-profile-tabbar .patient-profile-tabs a.active{
    background:color-mix(in srgb,var(--pc-accent,var(--primary)) 8%,var(--pc-surface,var(--card)));
  }
  .patient-profile-tabbar .patient-profile-tabs a.active:after{display:none}

  .patient-care-launchers{position:relative;overflow:visible}
  .patient-care-menu{position:relative;min-width:0}
  .patient-care-menu-popover{
    position:absolute;
    top:calc(100% + 8px);
    bottom:auto;
    left:0;
    right:auto;
    width:calc(200% + 8px);
    max-height:58vh;
    z-index:125;
  }
  .patient-care-menu:last-child .patient-care-menu-popover{right:0;left:auto}
}
/* ==========================================================================
   Configuración institucional · Settings hub
   ========================================================================== */
.settings-page-head{margin-bottom:24px}
.settings-schema-alert{display:flex;align-items:flex-start;gap:14px;margin:0 0 22px;padding:16px 18px;border:1px solid #f3c66a;border-radius:18px;background:#fff8e8;color:#78520d}
.settings-schema-alert>i{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#ffedbf;font-size:21px;flex:0 0 auto}
.settings-schema-alert div{display:grid;gap:3px}.settings-schema-alert span{font-size:14px;line-height:1.5}.settings-schema-alert code{font-weight:800;color:inherit}
.institution-settings{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:22px;align-items:start}
.settings-side{position:sticky;top:112px;padding:12px;border-radius:24px;overflow:hidden}
.settings-side__title{display:flex;gap:12px;align-items:center;padding:12px 12px 18px;border-bottom:1px solid var(--pc-border)}
.settings-side__title>span{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;color:#7045ee;background:#eee7ff;font-size:20px}
.settings-side__title div{display:grid}.settings-side__title strong{font-size:17px}.settings-side__title small{margin-top:2px;color:var(--pc-muted);font-size:12px}
.settings-nav{display:grid;gap:5px;padding:10px 0}
.settings-nav__item{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr) 8px 18px;gap:10px;align-items:center;width:100%;padding:10px 11px;border:0;border-radius:15px;background:transparent;color:var(--pc-muted);text-align:left;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.settings-nav__item>i:first-child{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--pc-soft);font-size:19px}
.settings-nav__item span{display:grid;min-width:0}.settings-nav__item strong{color:var(--pc-ink);font-size:14px}.settings-nav__item small{margin-top:2px;overflow:hidden;color:var(--pc-muted);font-size:11px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.settings-nav__item:hover{background:var(--pc-soft);transform:translateX(2px)}
.settings-nav__item.is-active{color:#fff;background:linear-gradient(135deg,#7443f3,#b633c7);box-shadow:0 10px 24px rgba(119,67,241,.22)}
.settings-nav__item.is-active>i:first-child{color:#fff;background:rgba(255,255,255,.16)}.settings-nav__item.is-active strong,.settings-nav__item.is-active small{color:#fff}
.settings-nav__arrow{font-size:18px}.settings-nav__item em{display:none;width:7px;height:7px;border-radius:50%;background:#ffbd3d;box-shadow:0 0 0 3px rgba(255,189,61,.2)}
.settings-nav__item.is-dirty em{display:block}.settings-side__note{display:flex;gap:9px;margin:5px 2px 2px;padding:13px;border-radius:14px;background:var(--pc-soft);color:var(--pc-muted);font-size:11px;line-height:1.45}
.settings-side__note i{color:#00a17d;font-size:17px}
.settings-content{min-width:0}.settings-panel{padding:0;border-radius:24px;overflow:hidden;animation:settingsReveal .24s ease}
.settings-panel[hidden]{display:none!important}@keyframes settingsReveal{from{opacity:.45;transform:translateY(5px)}to{opacity:1;transform:none}}
.settings-panel__head{display:flex;align-items:center;gap:14px;padding:22px 24px;border-bottom:1px solid var(--pc-border)}
.settings-panel__icon{display:grid;place-items:center;width:50px;height:50px;border-radius:16px;color:#7045ee;background:#eee7ff;font-size:23px;flex:0 0 auto}
.settings-panel__icon--green{color:#008c6b;background:#daf6ec}.settings-panel__icon--blue{color:#198dcc;background:#dff2ff}.settings-panel__icon--amber{color:#c57400;background:#fff0ce}.settings-panel__icon--rose{color:#d7336a;background:#ffe4ed}
.settings-panel__head>div{min-width:0}.settings-panel__head span:not(.settings-panel__icon):not(.settings-status){display:block;margin-bottom:3px;color:#8067a5;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.settings-panel__head h2{margin:0;font-size:23px}.settings-panel__head p{margin:4px 0 0;color:var(--pc-muted);font-size:13px;line-height:1.45}
.settings-status{margin-left:auto;padding:7px 11px;border-radius:999px;background:#e4f7f0;color:#007d60;font-size:11px;font-style:normal;font-weight:750;white-space:nowrap}
.settings-form{padding:4px 24px 0}.settings-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:22px}
.settings-form-grid--single{grid-template-columns:1fr}.settings-field{padding:18px 0;border-bottom:1px solid var(--pc-border)}
.settings-field--wide{grid-column:1/-1}.settings-field--small{max-width:280px}.settings-field label{font-size:14px;font-weight:750}.settings-field small{display:block;min-height:18px;margin:4px 0 9px;color:var(--pc-muted);font-size:11px}
.settings-field input,.settings-field select{min-height:50px;background:var(--pc-soft)}
.settings-save{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -24px;padding:17px 24px;border-top:1px solid var(--pc-border);background:var(--pc-card);background:color-mix(in srgb,var(--pc-card) 94%,transparent);backdrop-filter:blur(12px)}
.settings-save>span{display:flex;align-items:center;gap:7px;color:#078a69;font-size:12px}.settings-save>span.is-dirty{color:#b36a00}.settings-save .btn{min-width:190px}
.document-preview{margin:20px 0;padding:20px;border:1px solid #d8cafa;border-radius:18px;background:linear-gradient(145deg,#fff,#faf7ff);box-shadow:0 10px 32px rgba(79,49,130,.07)}
.document-preview>div{display:grid;grid-template-columns:minmax(170px,220px) minmax(0,1fr);align-items:start;gap:20px;padding:2px 2px 16px;border-bottom:2px solid #7745ee}.document-preview span{display:grid;justify-items:start;gap:5px;font-size:15px;font-weight:800}.document-preview span img{display:block;width:170px;max-width:100%;height:auto}.document-preview span b{padding-left:2px;color:var(--pc-muted);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.document-preview small{color:var(--pc-muted);font-size:10px;line-height:1.5;text-align:right}
.document-preview footer{display:flex;justify-content:space-between;gap:15px;padding-top:13px;color:var(--pc-muted);font-size:10px}.document-preview em{font-style:normal}
@media(max-width:600px){.document-preview>div{grid-template-columns:1fr}.document-preview small{text-align:left}}
.settings-branch-create{display:grid;grid-template-columns:1.5fr 1fr auto;gap:14px;align-items:end;padding:20px 24px;background:var(--pc-soft)}.settings-branch-create .btn{min-height:50px}
.settings-branches{display:grid}.settings-branch{display:flex;align-items:center;gap:14px;padding:17px 24px;border-top:1px solid var(--pc-border)}
.settings-branch__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;color:#7045ee;background:#eee7ff;font-size:20px}.settings-branch__identity{display:grid;flex:1;min-width:160px}.settings-branch__identity strong{font-size:15px}.settings-branch__identity small{margin-top:3px;color:var(--pc-muted);font-size:11px}
.settings-branch__editor{position:relative}.settings-branch__editor>form{position:absolute;right:0;top:calc(100% + 8px);z-index:10;width:min(430px,80vw);padding:16px;border:1px solid var(--pc-border);border-radius:16px;background:var(--pc-card);box-shadow:0 20px 55px rgba(31,20,54,.18)}.settings-branch__editor>form .field{margin-bottom:10px}
@media(max-width:1050px){.institution-settings{grid-template-columns:1fr}.settings-side{position:static}.settings-nav{display:flex;overflow-x:auto;scrollbar-width:thin}.settings-nav__item{grid-template-columns:36px max-content 7px;min-width:max-content}.settings-nav__item>i:first-child{width:36px;height:36px}.settings-nav__arrow{display:none}.settings-side__note{display:none}}
@media(max-width:720px){.settings-panel__head{align-items:flex-start;padding:18px}.settings-status{display:none}.settings-form{padding:2px 18px 0}.settings-form-grid{grid-template-columns:1fr}.settings-field--wide{grid-column:auto}.settings-field--small{max-width:none}.settings-save{margin:0 -18px;padding:14px 18px}.settings-save>span{display:none}.settings-save .btn{width:100%}.settings-branch-create{grid-template-columns:1fr;padding:18px}.settings-branch{align-items:flex-start;flex-wrap:wrap;padding:16px 18px}.settings-branch__identity{min-width:calc(100% - 60px)}}

/* Membrete institucional compartido por fichas y documentos imprimibles HTML. */
.print-letterhead{display:none}
.print-document-footer{margin-top:28px;padding-top:12px;border-top:1px solid var(--pc-border);color:var(--pc-muted);font-size:11px;text-align:center}
@media print{
  .print-letterhead{display:flex!important;align-items:flex-start;justify-content:space-between;gap:22px;margin:0 0 18px;padding:0 0 14px;border-bottom:2px solid #0b7890}
  .print-letterhead__identity{display:grid;gap:3px}
  .print-letterhead__identity img{display:block;width:150px;height:auto}
  .print-letterhead__identity span,.print-letterhead__identity small{color:#4b5f70;font-size:10px}
  .print-letterhead__meta{max-width:46%;color:#4b5f70;font-size:9px;line-height:1.45;text-align:right}
  .print-document-footer{break-inside:avoid;color:#536676}
}

/* ==========================================================================
   Formularios clínicos y operativos · lectura compacta y márgenes consistentes
   ========================================================================== */
:root{--form-page-gutter:38px;--form-reading-width:1120px;--form-control-width:680px;--form-label-width:210px}
.horizontal-form-card{--form-card-gutter:var(--form-page-gutter)}
.horizontal-form-card>.section:first-child,
.horizontal-form-card>h3.section:first-child{padding-inline:var(--form-card-gutter)}
.horizontal-form-card>p.muted:first-of-type{padding-inline:var(--form-card-gutter)}
.clinic-horizontal-form.legacy-form-upgraded{
  width:min(100%,var(--form-reading-width))!important;
  margin-inline:auto!important;
  padding:12px var(--form-page-gutter) 30px!important;
}
.clinic-horizontal-form.legacy-form-upgraded>.field,
.clinic-horizontal-form.legacy-form-upgraded>.row2>.field{
  grid-template-columns:minmax(180px,var(--form-label-width)) minmax(0,var(--form-control-width))!important;
  gap:8px 24px!important;
  padding:16px 0!important;
}
.clinic-horizontal-form.legacy-form-upgraded>.field>input,
.clinic-horizontal-form.legacy-form-upgraded>.field>select,
.clinic-horizontal-form.legacy-form-upgraded>.field>textarea,
.clinic-horizontal-form.legacy-form-upgraded>.field>.choice-grid,
.clinic-horizontal-form.legacy-form-upgraded>.field>.choices,
.clinic-horizontal-form.legacy-form-upgraded>.field>.input-group,
.clinic-horizontal-form.legacy-form-upgraded>.row2>.field>input,
.clinic-horizontal-form.legacy-form-upgraded>.row2>.field>select,
.clinic-horizontal-form.legacy-form-upgraded>.row2>.field>textarea,
.clinic-horizontal-form.legacy-form-upgraded>.row2>.field>.choice-grid{
  width:100%;
  max-width:var(--form-control-width);
}
.clinic-horizontal-form.legacy-form-upgraded .section{
  margin-inline:calc(var(--form-page-gutter) * -1)!important;
  padding-inline:var(--form-page-gutter)!important;
}
.clinic-horizontal-form.legacy-form-upgraded .section+.muted{padding-left:calc(var(--form-label-width) + 24px)!important}
.clinic-horizontal-form.legacy-form-upgraded .form-actions{padding-left:calc(var(--form-label-width) + 24px)!important}
.clinic-horizontal-form.legacy-form-upgraded>button.btn,
.clinic-horizontal-form.legacy-form-upgraded>a.btn{margin-left:calc(var(--form-label-width) + 24px)!important}

/* Tarjetas no horizontales: el contenido nunca vuelve a tocar el borde. */
.form-card>.form-compact.no-horizontal-form{padding:26px var(--form-page-gutter) 30px}
.form-card>.form-compact.no-horizontal-form>.form-actions{margin-top:24px;padding-top:18px;border-top:1px solid var(--pc-border)}
.form-card-heading{padding-inline:var(--form-page-gutter)}

/* Cotizaciones: configuración corta, renglones escaneables y totales fáciles de capturar. */
.quote-builder-card{max-width:1220px;margin-inline:auto;overflow:hidden}
.quote-builder-form{max-width:none!important}
.quote-config-grid{display:grid;grid-template-columns:minmax(300px,1.8fr) repeat(4,minmax(115px,.58fr));gap:18px;align-items:start}
.quote-config-grid .field{margin:0;min-width:0}
.quote-config-grid .field input,.quote-config-grid .field select{width:100%;max-width:none;min-height:48px}
.quote-contact-field small{display:block;margin-top:7px;color:var(--pc-muted);font-size:12px;line-height:1.4}
.quote-lines-section{margin-top:26px;padding:0;border:1px solid var(--pc-border);border-radius:18px;background:color-mix(in srgb,var(--pc-soft) 60%,var(--pc-card));overflow:hidden}
.quote-lines-section>header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 18px;border-bottom:1px solid var(--pc-border);background:var(--pc-card)}
.quote-lines-section>header>div{display:flex;align-items:center;gap:11px}.quote-lines-section>header>div>span{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:var(--pc-accent-soft);color:var(--pc-accent);font-size:19px}
.quote-lines-section h3{margin:0;font-size:17px}.quote-lines-section p{margin:3px 0 0;color:var(--pc-muted);font-size:12px}.quote-lines-section header>small{color:var(--pc-muted);font-size:11px}
.quote-line-head,.quote-line{display:grid;grid-template-columns:minmax(0,1fr) 110px 190px;gap:14px;align-items:end;padding-inline:18px}
.quote-line-head{padding-block:11px 8px;color:var(--pc-muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.quote-line{padding-block:10px;border-top:1px solid color-mix(in srgb,var(--pc-border) 75%,transparent)}
.quote-line .field{margin:0;min-width:0}.quote-line .field>label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.quote-line input{width:100%;min-height:45px;background:var(--pc-card)}
.money-input{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;border:1px solid var(--pc-border);border-radius:12px;background:var(--pc-card);overflow:hidden}
.money-input>span{display:grid;place-items:center;height:100%;color:var(--pc-muted);font-weight:800;background:var(--pc-soft)}
.money-input>input{border:0;border-radius:0;box-shadow:none!important}
.quote-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.quote-notes-grid .field{margin:0}
.inventory-receive-card{max-width:1100px;margin-inline:auto;overflow:hidden}.inventory-receive-form{max-width:none!important}
.inventory-receive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px 22px}.inventory-receive-grid .field{margin:0}.inventory-receive-grid input,.inventory-receive-grid select{width:100%;max-width:none}
.inventory-serial-field{grid-column:1/-1;max-width:720px}.inventory-serial-field small{display:block;margin-top:7px;color:var(--pc-muted);font-size:12px}
.appointment-create-form{width:min(100%,980px);margin-inline:auto}.appointment-create-form>.row2{gap:20px}.appointment-create-form>.field{max-width:none}
.reschedule-panel-body{padding:0 26px 26px;border-top:1px solid var(--pc-border)}
.appointment-reschedule-form{width:min(100%,980px);margin-inline:auto;padding-top:4px}.appointment-reschedule-form>.row2{gap:20px}.appointment-reschedule-form>.field{max-width:none}
.appointment-create-form .choice-grid,.appointment-reschedule-form .choice-grid{margin-top:2px}.appointment-create-form textarea{min-height:88px}

@media(max-width:1100px){
  :root{--form-page-gutter:24px;--form-label-width:190px}
  .quote-config-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-contact-field{grid-column:1/-1}
}
@media(max-width:820px){
  :root{--form-page-gutter:22px}
  .clinic-horizontal-form.legacy-form-upgraded{width:100%!important;padding:8px var(--form-page-gutter) 24px!important}
  .clinic-horizontal-form.legacy-form-upgraded>.field,
  .clinic-horizontal-form.legacy-form-upgraded>.row2>.field{grid-template-columns:1fr!important;gap:7px!important;padding:14px 0!important}
  .clinic-horizontal-form.legacy-form-upgraded .section+.muted,
  .clinic-horizontal-form.legacy-form-upgraded .form-actions{padding-left:0!important}
  .clinic-horizontal-form.legacy-form-upgraded>button.btn,
  .clinic-horizontal-form.legacy-form-upgraded>a.btn{margin-left:0!important}
  .form-card>.form-compact.no-horizontal-form{padding:22px}
  .reschedule-panel-body{padding:0 22px 22px}
}
@media(max-width:620px){
  :root{--form-page-gutter:20px}
  .form-card-heading{padding-inline:20px}
  .quote-config-grid,.quote-notes-grid,.inventory-receive-grid{grid-template-columns:1fr}
  .inventory-serial-field{grid-column:auto}
  .quote-lines-section{margin-inline:-4px}
  .quote-lines-section>header{align-items:flex-start;padding:15px}.quote-lines-section header>small{display:none}
  .quote-line-head{display:none}.quote-line{grid-template-columns:1fr 1fr;gap:12px;padding:15px}
  .quote-line .field:first-child{grid-column:1/-1}
  .quote-line .field>label{position:static;width:auto;height:auto;margin:0 0 6px;overflow:visible;clip:auto;white-space:normal}
  .form-card>.form-compact.no-horizontal-form>.form-actions{display:grid;grid-template-columns:1fr}
  .form-card>.form-compact.no-horizontal-form>.form-actions .btn{width:100%}
}

/* Captura asistida: contacto LIVE y altas rápidas sin abandonar el flujo. */
.live-capture-card,.quote-builder-card{overflow:visible}
.live-capture-card>.form-card-heading,.quote-builder-card>.form-card-heading{border-radius:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0}
.live-picker-field{position:relative;z-index:4}
.live-contact-picker{position:relative;max-width:760px}
.live-picker-control{position:relative;display:flex;align-items:center}
.live-picker-control>i{position:absolute;left:17px;z-index:1;color:var(--pc-muted);font-size:19px}
.live-picker-control .live-picker-input{width:100%;max-width:none;padding-left:48px;padding-right:45px;background:var(--pc-card)}
.live-picker-control .live-picker-input[data-selected=true]{border-color:color-mix(in srgb,var(--pc-success) 50%,var(--pc-border));background:color-mix(in srgb,var(--pc-success) 5%,var(--pc-card))}
.live-picker-clear{position:absolute;right:9px;display:grid;place-items:center;width:33px;height:33px;border:0;border-radius:9px;background:var(--pc-soft);color:var(--pc-muted);cursor:pointer}
.live-picker-results,.quote-catalog-results{position:absolute;z-index:50;top:calc(100% + 7px);left:0;right:0;max-height:330px;overflow:auto;padding:8px;border:1px solid var(--pc-border);border-radius:15px;background:var(--pc-card);box-shadow:0 18px 45px rgba(31,22,58,.16)}
.live-picker-option,.quote-catalog-results button{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;padding:11px;border:0;border-radius:11px;background:transparent;color:var(--pc-text);text-align:left;cursor:pointer}
.live-picker-option:hover,.live-picker-option:focus-visible,.quote-catalog-results button:hover{background:var(--pc-soft);outline:none}
.live-picker-option>span:nth-child(2),.quote-catalog-results button>span:nth-child(2){min-width:0}.live-picker-option strong,.live-picker-option small,.quote-catalog-results strong,.quote-catalog-results small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.live-picker-option small,.quote-catalog-results small{margin-top:3px;color:var(--pc-muted);font-size:12px}
.live-picker-avatar{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--pc-accent-soft);color:var(--pc-accent);font-size:12px;font-weight:900}
.live-picker-assist{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;color:var(--pc-muted);font-size:12px}.live-picker-assist>span i{color:var(--pc-success)}
.live-picker-create{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:8px 13px;border-color:color-mix(in srgb,var(--pc-accent) 38%,var(--pc-border));background:var(--pc-accent-soft);color:var(--pc-accent);font-weight:800;white-space:nowrap}
.live-picker-create:hover,.live-picker-create:focus-visible{border-color:var(--pc-accent);background:var(--pc-accent);color:#fff}
.live-picker-selection{display:flex;align-items:center;gap:10px;margin-top:9px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--pc-success) 25%,var(--pc-border));border-radius:12px;background:color-mix(in srgb,var(--pc-success) 6%,var(--pc-card))}.live-picker-selection>span:nth-child(2){display:flex;flex:1;min-width:0;flex-direction:column}.live-picker-selection small{margin-top:2px;color:var(--pc-muted)}
.live-picker-empty,.live-picker-loading,.catalog-empty{display:flex;align-items:center;justify-content:center;gap:8px;min-height:72px;padding:14px;color:var(--pc-muted);text-align:center}.live-picker-empty{flex-direction:column}.live-picker-empty i{font-size:25px;color:var(--pc-accent)}.live-picker-empty span{font-size:12px}

.quick-modal{width:min(760px,calc(100% - 32px));max-width:none;padding:0;border:0;border-radius:22px;background:transparent;color:var(--pc-text);overflow:visible;isolation:isolate;opacity:1}
.quick-modal::backdrop{background:rgba(21,14,35,.58);backdrop-filter:blur(6px)}
.quick-modal-card{display:block;max-height:min(86vh,780px);overflow:auto;border:1px solid var(--pc-border);border-radius:22px;background:var(--pc-surface,#fff);color:var(--pc-text,#172a34);box-shadow:0 28px 90px rgba(24,15,45,.3);opacity:1;filter:none}
.quick-modal-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start;padding:22px 24px;border-bottom:1px solid var(--pc-border);background:linear-gradient(135deg,color-mix(in srgb,var(--pc-accent-soft) 75%,var(--pc-surface,#fff)),var(--pc-surface,#fff));color:var(--pc-text,#172a34)}
.quick-modal-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:var(--pc-accent);color:#fff;font-size:23px}.quick-modal-icon.medication{background:linear-gradient(135deg,#00a884,#24b6d7)}
.quick-modal-header h2{margin:3px 0 4px;font-size:22px}.quick-modal-header p{margin:0;color:var(--pc-muted);font-size:13px}.quick-modal-header .eyebrow{color:var(--pc-accent);font-size:10px;font-weight:900;letter-spacing:.11em}
.quick-modal-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--pc-border);border-radius:11px;background:var(--pc-card);color:var(--pc-muted);font-size:20px;cursor:pointer}
.quick-modal-body{padding:22px 24px;background:var(--pc-surface,#fff);color:var(--pc-text,#172a34)}.quick-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.quick-form-grid .field{margin:0}.quick-form-grid label{color:var(--pc-text,#172a34);font-weight:750}.quick-form-grid input,.quick-form-grid select{width:100%;max-width:none;background:var(--pc-surface,#fff);color:var(--pc-text,#172a34);opacity:1}
.quick-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px 22px;border-top:1px solid var(--pc-border);background:var(--pc-surface,#fff)}
.quick-modal-footer .btn{opacity:1}
.quick-form-feedback{margin-top:14px;padding:0;color:var(--pc-muted)}.quick-form-feedback:not(:empty){padding:11px 13px;border-radius:11px;background:var(--pc-soft)}.quick-form-feedback.is-error{color:#b42318;background:#fff1f0}.quick-form-feedback.is-warning{color:#8b5b00;background:#fff8e6}
.quick-duplicate-list{margin-top:10px}.quick-duplicate-list button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:11px 13px;border:1px solid var(--pc-border);border-radius:11px;background:var(--pc-card);color:var(--pc-text);text-align:left;cursor:pointer}.quick-duplicate-list span{display:flex;flex-direction:column}.quick-duplicate-list small{color:var(--pc-muted)}.quick-duplicate-list b{color:var(--pc-accent);white-space:nowrap}
.spin{display:inline-block;animation:clinic-spin .8s linear infinite}@keyframes clinic-spin{to{transform:rotate(360deg)}}

/* Buscador de conceptos y selector de medicamentos con stock visible. */
.quote-lines-section{overflow:visible}.quote-lines-section>header{border-radius:18px 18px 0 0}.quote-catalog-toolbar{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px 18px;border-bottom:1px solid var(--pc-border);background:color-mix(in srgb,var(--pc-soft) 75%,var(--pc-card))}
.quote-catalog-search{position:relative}.quote-catalog-search>i{position:absolute;z-index:1;left:15px;top:50%;transform:translateY(-50%);color:var(--pc-muted)}.quote-catalog-search>input{width:100%;min-height:43px;padding-left:42px;border-radius:12px;background:var(--pc-card)}
.quote-catalog-results{top:calc(100% + 5px)}.catalog-result-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--pc-accent-soft);color:var(--pc-accent)}.quote-catalog-results b{color:var(--pc-accent);font-size:12px}
.quote-line.is-new{animation:quote-line-added .9s ease}@keyframes quote-line-added{0%,35%{background:color-mix(in srgb,var(--pc-success) 18%,var(--pc-card))}100%{background:transparent}}
.medication-modal{width:min(900px,calc(100% - 32px))}.medication-search{position:relative}.medication-search i{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--pc-muted);font-size:19px}.medication-search input{width:100%;padding-left:47px}
.medication-results{display:grid;gap:9px;margin-top:16px;max-height:460px;overflow:auto}.medication-result{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto;gap:13px;align-items:center;padding:12px;border:1px solid var(--pc-border);border-radius:14px;background:var(--pc-card)}.medication-result.is-out{opacity:.65;background:var(--pc-soft)}
.medication-result-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:#e5faf5;color:#008b6d;font-size:20px}.medication-result>span:nth-child(2){min-width:0}.medication-result strong,.medication-result small{display:block}.medication-result small{margin-top:3px;color:var(--pc-muted)}
.medication-stock{padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800}.medication-stock.is-ok{color:#087f5b;background:#ddf8ed}.medication-stock.is-empty{color:#b42318;background:#ffe8e6}.medication-price{font-weight:900;white-space:nowrap}.medication-empty{display:flex;min-height:150px;align-items:center;justify-content:center;flex-direction:column;gap:7px;color:var(--pc-muted);text-align:center}.medication-empty i{font-size:30px;color:var(--pc-accent)}

@media(max-width:760px){
  .live-picker-assist{align-items:flex-start;flex-direction:column}.live-picker-create{width:100%}
  .quick-modal{width:calc(100% - 20px)}.quick-modal-header{grid-template-columns:auto minmax(0,1fr);padding:18px}.quick-modal-close{position:absolute;top:12px;right:12px}.quick-modal-body{padding:18px}.quick-form-grid{grid-template-columns:1fr}.quick-modal-footer{display:grid;grid-template-columns:1fr 1fr;padding:14px 18px 18px}
  .quote-lines-section>header{flex-direction:column}.quote-medication-open{width:100%}.quote-catalog-toolbar{grid-template-columns:1fr}.quote-catalog-toolbar>.btn{width:100%}
  .medication-result{grid-template-columns:auto minmax(0,1fr) auto}.medication-stock{grid-column:2}.medication-price{grid-column:3;grid-row:1}.medication-result .btn{grid-column:1/-1;width:100%}
}

/* Márgenes consistentes para los directorios administrativos. */
.access-table-wrap{margin:16px 20px 20px;overflow-x:auto;border:1px solid var(--pc-border);border-radius:16px;background:var(--pc-card)}
.access-user-table{border:0}.access-user-table tbody tr:last-child td{border-bottom:0}

/* Portal de pacientes: invitaciones y bandeja operativa de la clínica. */
.access-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.patient-user-panel{overflow:hidden;margin-bottom:24px;border-color:color-mix(in srgb,var(--pc-accent) 24%,var(--pc-border))}
.patient-user-panel>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:15px;padding:22px 24px;border-bottom:1px solid var(--pc-border);background:linear-gradient(135deg,color-mix(in srgb,var(--pc-accent-soft) 72%,var(--pc-card)),var(--pc-card))}
.patient-user-panel>header h2{margin:3px 0 4px}.patient-user-panel>header p{margin:0;color:var(--pc-muted)}
.form-section-icon.patient{background:linear-gradient(135deg,#dff8ef,#e9efff);color:#008a6d}
.patient-invite-form{display:grid;gap:0;padding:4px 24px 24px}
.patient-invite-step{min-width:0;margin:0;padding:21px 0;border:0;border-bottom:1px solid var(--pc-border)}
.patient-invite-step legend{display:flex;align-items:center;gap:11px;width:100%;margin:0 0 17px;padding:0}
.patient-invite-step legend>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:10px;background:var(--pc-accent-soft);color:var(--pc-accent);font-size:12px;font-weight:900}
.patient-invite-step legend>div{min-width:0}.patient-invite-step legend strong,.patient-invite-step legend small{display:block}.patient-invite-step legend strong{font-size:14px}.patient-invite-step legend small{margin-top:2px;color:var(--pc-muted);font-size:11px;font-weight:500}
.patient-invite-grid{display:grid;gap:16px}.patient-invite-grid--identity{grid-template-columns:minmax(0,2fr) minmax(240px,.8fr)}.patient-invite-grid--credentials{grid-template-columns:repeat(3,minmax(0,1fr))}
.patient-invite-form .field{min-width:0;margin:0}.patient-invite-form label{display:block;margin-bottom:7px;font-size:13px;font-weight:800}.patient-invite-form input,.patient-invite-form select{width:100%;max-width:none;min-height:48px}
.patient-invite-form .field>small{display:block;margin-top:6px;color:var(--pc-muted);font-size:10.5px;line-height:1.4}
.patient-invite-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:20px}.patient-invite-actions p{display:flex;align-items:center;gap:8px;max-width:620px;margin:0;color:var(--pc-muted);font-size:11px;line-height:1.45}.patient-invite-actions p i{color:var(--pc-success);font-size:18px}.patient-invite-submit{flex:0 0 auto;min-width:235px;justify-content:center}
.patient-portal-setup{display:flex;align-items:flex-start;gap:13px;margin:22px 24px;padding:16px;border:1px solid #f4ce7b;border-radius:14px;background:#fff9e9;color:#795400}
.patient-portal-setup>i{font-size:24px}.patient-portal-setup strong,.patient-portal-setup p{display:block;margin:0}.patient-portal-setup p{margin-top:4px;color:#876c2e}
.patient-inbox-heading{align-items:flex-end}.patient-inbox-heading p{margin-bottom:0}
.patient-inbox-kpis{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}
.patient-inbox-card{margin-top:22px;overflow:hidden}.patient-inbox-card>.ops-card__head{padding:20px 24px}
.patient-inbox-body{padding:18px 20px 20px}
.patient-inbox-list,.patient-message-list{display:grid;overflow:hidden;border:1px solid var(--pc-border);border-radius:18px;background:var(--pc-card)}
.patient-inbox-item{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(310px,.75fr);gap:16px;align-items:start;padding:20px 22px;border-top:1px solid var(--pc-border)}
.patient-inbox-item:first-child{border-top:0}
.patient-inbox-avatar{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,var(--pc-accent-soft),#dff8ef);color:var(--pc-accent);font-weight:900}
.patient-inbox-main{min-width:0}.patient-inbox-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.patient-inbox-main p{margin:7px 0 3px}.patient-inbox-main small{color:var(--pc-muted)}
.patient-inbox-main blockquote{margin:12px 0 0;padding:11px 13px;border-left:3px solid var(--pc-accent);border-radius:0 11px 11px 0;background:var(--pc-soft);color:var(--pc-text)}
.patient-inbox-actions{display:grid;gap:9px}.patient-inbox-actions input{width:100%;max-width:none}.patient-inbox-actions>div{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.patient-inbox-empty{min-height:220px;padding:34px 20px}.patient-inbox-empty p{max-width:480px;margin-bottom:0}
.patient-message-row{margin:0;padding:19px 20px;border:0;border-bottom:1px solid var(--pc-border);border-radius:0;background:var(--pc-card)}.patient-message-row:last-child{border-bottom:0}.patient-message-row.incoming{border-left:4px solid var(--pc-accent)}.patient-message-row.outgoing{margin-left:12%;border-left:4px solid var(--pc-success);background:color-mix(in srgb,var(--pc-success) 4%,var(--pc-card))}
.patient-message-meta{display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--pc-muted);font-size:12px}.patient-message-meta span{font-weight:850;color:var(--pc-accent)}
.patient-message-row h3{margin:10px 0 5px}.patient-message-row p{margin:0 0 8px}.patient-message-row>small{color:var(--pc-muted)}
.patient-message-row form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:15px}.patient-message-row textarea{width:100%;max-width:none;min-height:64px}
@media(max-width:1180px){
  .patient-invite-grid--credentials{grid-template-columns:repeat(2,minmax(0,1fr))}.patient-invite-grid--credentials .field:last-child{grid-column:1/-1}
  .patient-inbox-item{grid-template-columns:auto minmax(0,1fr)}.patient-inbox-actions{grid-column:2}
}
@media(max-width:760px){
  .access-head-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.access-head-actions .btn{width:100%}
  .access-table-wrap{margin:12px}
  .patient-user-panel>header{padding:18px}.patient-invite-form{padding:2px 17px 18px}.patient-invite-grid--identity,.patient-invite-grid--credentials{grid-template-columns:1fr}.patient-invite-grid--credentials .field:last-child{grid-column:auto}.patient-invite-actions{align-items:stretch;flex-direction:column}.patient-invite-actions p{align-items:flex-start}.patient-invite-submit{width:100%;min-width:0}
  .patient-portal-setup{margin:18px}.patient-inbox-heading{align-items:flex-start;flex-direction:column}.patient-inbox-heading .btn{width:100%}
  .patient-inbox-kpis{grid-template-columns:1fr}.patient-inbox-body{padding:12px}.patient-inbox-item{grid-template-columns:auto minmax(0,1fr);padding:17px}.patient-inbox-actions{grid-column:1/-1}
  .patient-inbox-actions>div{display:grid;grid-template-columns:1fr 1fr}.patient-inbox-actions .btn{width:100%}
  .patient-message-row,.patient-message-row.outgoing{margin:0}.patient-message-row form{grid-template-columns:1fr}.patient-message-row form .btn{width:100%}
}

/* CMS comercial */
.cms-settings{margin-top:22px}
.cms-color-grid input[type=color]{width:100%;max-width:none;height:58px;padding:7px;border:1px solid var(--pc-border);border-radius:14px;background:var(--pc-soft);cursor:pointer}
.cms-secondary-input{margin-top:9px}
.cms-item-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:22px 24px;border-bottom:1px solid var(--pc-border);background:color-mix(in srgb,var(--pc-accent) 3%,var(--pc-card))}
.cms-item-form .field{margin:0}.cms-item-form input,.cms-item-form select,.cms-item-form textarea{width:100%;max-width:none}.cms-item-form__wide{grid-column:span 2}.cms-item-form>.btn{align-self:end;justify-self:start}
.cms-content-list{display:grid;gap:12px;padding:22px 24px}
.cms-content-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:16px;border:1px solid var(--pc-border);border-radius:16px;background:var(--pc-card)}
.cms-content-card>span{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--pc-accent-soft);color:var(--pc-accent);font-size:21px}
.cms-content-card>div{display:grid;gap:3px;min-width:0}.cms-content-card>div small{color:var(--pc-accent);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.cms-content-card>div p{margin:0;color:var(--pc-muted)}
.cms-content-card details{position:relative}.cms-content-card details[open]>form{position:absolute;z-index:20;top:calc(100% + 8px);right:0;display:grid;gap:11px;width:min(440px,80vw);padding:18px;border:1px solid var(--pc-border);border-radius:16px;background:var(--pc-card);box-shadow:0 22px 55px rgba(27,19,52,.18)}.cms-content-card details form input,.cms-content-card details form textarea{width:100%;max-width:none}
.cms-inquiries{display:grid}.cms-inquiries>article{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(150px,auto);gap:14px;align-items:center;padding:18px 24px;border-top:1px solid var(--pc-border)}.cms-inquiries>article:first-child{border-top:0}
.cms-inquiry-avatar{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,var(--pc-accent-soft),#dff8ef);color:var(--pc-accent);font-weight:900}.cms-inquiries article>div{display:grid;gap:3px}.cms-inquiries small{color:var(--pc-muted)}.cms-inquiries p{margin:2px 0 0}.cms-inquiries select{min-width:150px}
@media(max-width:900px){.cms-item-form{grid-template-columns:repeat(2,minmax(0,1fr))}.cms-item-form__wide{grid-column:1/-1}}
@media(max-width:680px){.cms-settings{margin-top:16px}.cms-item-form{grid-template-columns:1fr;padding:18px}.cms-item-form__wide{grid-column:auto}.cms-item-form>.btn{width:100%}.cms-content-list{padding:16px}.cms-content-card{grid-template-columns:auto minmax(0,1fr) auto}.cms-content-card details{grid-column:2}.cms-inquiries>article{grid-template-columns:auto minmax(0,1fr);padding:16px}.cms-inquiries>article>form{grid-column:1/-1}.cms-inquiries select{width:100%;max-width:none}}

/* Selector de idioma · base bilingüe ES/EN */
.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}
.locale-switch{display:inline-flex;align-items:center;gap:7px;height:44px;padding:0 12px;border:1px solid var(--pc-border);border-radius:999px;background:rgba(255,255,255,.82);box-shadow:var(--pc-shadow-soft);color:var(--pc-ink);font-weight:900}
.locale-switch i{color:var(--pc-primary,#7c3aed);font-size:1.05rem}
.locale-switch select{border:0;background:transparent;color:inherit;font:inherit;font-weight:900;outline:0;min-width:48px;cursor:pointer}
.mobile-locale-switch{height:42px;width:auto;padding:0 9px}
@media(max-width:760px){.header-locale-switch{display:none}.mobile-locale-switch select{min-width:40px}}
.profile-locale-switch{display:grid;grid-template-columns:35px minmax(0,1fr) auto;align-items:center;gap:11px;width:calc(100% - 18px);height:auto;min-height:54px;margin:0 9px 9px;padding:8px 11px;border:0;border-top:1px solid #eee9f3;border-radius:0;background:transparent;box-shadow:none;font-size:13px}
.profile-locale-switch>i{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#f4f1f8;color:#704cf2;font-size:18px}
.profile-locale-switch .locale-switch-label{font-weight:700;text-align:left}
.profile-locale-switch select{min-width:82px;padding:7px 9px;border:1px solid #e5deed;border-radius:10px;background:#f8f5fc;text-align:center}
.mobile-profile-locale-switch{width:calc(100% - 20px);margin:0 10px 10px;grid-template-columns:42px minmax(0,1fr) auto;padding:8px 10px;border-top:1px solid #eee9f3}
.mobile-profile-locale-switch>i{width:42px;height:42px;border-radius:12px;font-size:20px}
.demo-mode-bar{position:relative;z-index:30;margin:12px 24px 0;padding:13px 15px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;color:#3b285f;background:linear-gradient(135deg,#f6f0ff,#eefbf9);border:1px solid #ded0ff;border-radius:17px;box-shadow:0 10px 28px rgba(65,42,105,.08)}.demo-mode-bar__icon{display:grid;place-items:center;width:40px;height:40px;color:#fff;background:linear-gradient(135deg,#704cf2,#15a88a);border-radius:12px;font-size:20px}.demo-mode-bar strong,.demo-mode-bar small{display:block}.demo-mode-bar strong{font-size:13px}.demo-mode-bar small{margin-top:2px;color:#776b86;font-size:11px}.demo-mode-bar__actions{display:flex;align-items:center;gap:7px}.demo-mode-bar__actions>a,.demo-mode-bar__actions button{min-height:36px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#5d4c72;background:#fff;border:1px solid #ddd4e8;border-radius:10px;font-size:11px;font-weight:800;cursor:pointer}.demo-mode-bar__actions .is-commercial{color:#fff;background:#704cf2;border-color:#704cf2}.demo-mode-bar__actions form{margin:0}.demo-mode-bar__actions button:hover,.demo-mode-bar__actions a:hover{border-color:#704cf2;color:#704cf2}.demo-mode-bar__actions .is-commercial:hover{color:#fff;background:#5f3ee0}
@media(max-width:980px){.demo-mode-bar{margin:10px 14px 0;grid-template-columns:auto minmax(0,1fr)}.demo-mode-bar__actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr}.demo-mode-bar__actions>a,.demo-mode-bar__actions form,.demo-mode-bar__actions button{width:100%}}
@media(max-width:620px){.demo-mode-bar{padding:11px}.demo-mode-bar__actions{grid-template-columns:1fr}.demo-mode-bar__actions .is-commercial{order:-1}}
