/* 04-MODULES — auth, cuenta, resumen-pdf, exámenes, ficha, privacidad, timeline, recetas, médicos, dashboard */
/* AUTH */
.auth-screen { display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background:linear-gradient(135deg,#daeaf8 0%,#edf4fc 40%,#e8eff8 100%);position:relative;overflow:hidden; }
.auth-screen::before { content:'';position:absolute;top:-100px;right:-60px;width:380px;height:380px;background:radial-gradient(circle,rgba(55,138,221,0.13) 0%,transparent 70%);pointer-events:none; }
.auth-screen::after { content:'';position:absolute;bottom:-80px;left:-40px;width:280px;height:280px;background:radial-gradient(circle,rgba(0,179,204,0.10) 0%,transparent 70%);pointer-events:none; }
.auth-box { background:#fff;border-radius:24px;padding:44px 40px 36px;width:100%;max-width:420px;box-shadow:0 8px 40px rgba(24,95,165,0.13);position:relative;z-index:1; }
.auth-logo-wrap { display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:8px; }
.auth-logo-img { height:52px;width:auto; }
.auth-logo-text { font-size:28px;font-weight:700;color:#0f2d6b;letter-spacing:-0.3px; }
.auth-sub { font-size:13px;color:#6b7e96;text-align:center;margin-bottom:32px; }
.auth-tabs { display:flex;margin-bottom:28px;border-bottom:1.5px solid #e8eef5; }
.auth-tab { flex:1;padding:10px 8px;font-size:12px;font-weight:600;letter-spacing:0.3px;cursor:pointer;border:none;background:transparent;color:#aab8cc;font-family:inherit;border-bottom:2.5px solid transparent;margin-bottom:-1.5px;transition:all 0.2s;text-align:center;text-transform:uppercase; }
.auth-tab.active { color:#1a50a0;border-bottom-color:#1a50a0; }
.auth-field { margin-bottom:16px; }
.auth-field label { font-size:10px;color:#7a9ab8;letter-spacing:0.8px;display:block;margin-bottom:6px;font-weight:600;text-transform:uppercase; }
.auth-field-wrap { position:relative; }
.auth-field-ico { position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#a0b5cc;display:flex;align-items:center;pointer-events:none;z-index:1; }
.auth-field input { width:100%;background:#f5f8fc;border:1.5px solid #e0eaf5;border-radius:12px;padding:13px 44px;color:#1a2a3a;font-family:inherit;font-size:14px;transition:all 0.15s; }
.auth-field input:focus { outline:none;border-color:#378add;background:#fff;box-shadow:0 0 0 3px rgba(55,138,221,0.10); }
.auth-field input::placeholder { color:#b0bfcc; }
.auth-field input::-ms-reveal, .auth-field input::-ms-clear { display:none; }
.auth-field input::-webkit-credentials-auto-fill-button, .auth-field input::-webkit-strong-password-auto-fill-button { display:none !important; visibility:hidden; pointer-events:none; }
.eye-btn { position:absolute;right:14px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:#a0b5cc;padding:2px;display:flex;align-items:center;transition:color 0.15s; }
.eye-btn:hover { color:#378add; }
.eye-btn svg { width:17px;height:17px;display:block; }
.auth-forgot { display:block;text-align:right;font-size:11.5px;color:#378add;text-decoration:none;margin-top:-8px;margin-bottom:20px;cursor:pointer;background:none;border:none;font-family:inherit;padding:0; }
.auth-forgot:hover { color:#185fa5; }
.auth-btn { width:100%;padding:13px;border-radius:12px;border:none;cursor:pointer;font-family:inherit;font-size:14px;font-weight:700;background:linear-gradient(90deg,#1a50a0 0%,#00b3cc 100%);color:#fff;margin-top:4px;transition:all 0.2s;letter-spacing:0.3px; }
.auth-btn:hover { background:linear-gradient(90deg,#153e82 0%,#0099b0 100%);box-shadow:0 4px 16px rgba(26,80,160,0.25); }
.auth-btn:disabled { opacity:0.55;cursor:not-allowed;box-shadow:none; }
.auth-sep { display:flex;align-items:center;gap:12px;margin:20px 0; }
.auth-sep-line { flex:1;height:1px;background:#e8eef5; }
.auth-sep-txt { font-size:12px;color:#b0bfcc; }
.auth-google-btn { width:100%;padding:12px;border-radius:12px;border:1.5px solid #e0eaf5;background:#fff;cursor:pointer;font-family:inherit;font-size:14px;color:#1a2a3a;font-weight:500;display:flex;align-items:center;justify-content:center;gap:10px;transition:all 0.15s; }
.auth-google-btn:hover { border-color:#b0c8e8;background:#f7fafd; }
.auth-trust { display:flex;align-items:center;justify-content:center;gap:7px;margin-top:24px;font-size:11px;color:#9aafcc; }
.auth-err { font-size:12px;color:#e24b4a;margin-top:12px;text-align:center;min-height:18px; }
.auth-ok { color:#1d9e75 !important; }
/* ── Selector de ficha activa (dashboard) ── */
.dash-ficha-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap;}
.dash-ficha-label{font-size:11px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;color:#8aa0b8;}
.dash-ficha-select{position:relative;}
.dash-ficha-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:#fff;border:1px solid #d8e4f0;border-radius:999px;cursor:pointer;font:inherit;box-shadow:0 1px 3px rgba(16,50,79,.06);}
.dash-ficha-pill:hover{border-color:#378add;}
.dash-ficha-name{font-size:13px;font-weight:700;color:#16324f;}
.dash-ficha-tipo{font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:#185fa5;background:#e6f1fb;border-radius:999px;padding:2px 8px;}
.dash-ficha-pill .ti{font-size:14px;color:#8aa0b8;}
.dash-ficha-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:220px;background:#fff;border:1px solid #e2ecf6;border-radius:12px;box-shadow:0 8px 28px rgba(16,50,79,.16);padding:6px;z-index:40;}
.dash-ficha-menu-item{display:flex;align-items:center;gap:8px;padding:9px 10px;border-radius:8px;font-size:13px;font-weight:600;color:#16324f;}
.dash-ficha-menu-item.is-active{background:#f0f6fc;}
.dash-ficha-menu-item .ti{color:#185fa5;font-size:15px;}

/* ── Mi cuenta ── */
.cuenta-h1{font-size:22px;font-weight:800;color:#16324f;margin:0 0 18px;letter-spacing:-.3px;}
.cuenta-header{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #e6eef7;border-radius:16px;padding:18px 20px;box-shadow:0 2px 10px rgba(16,50,79,.04);}
.cuenta-avatar{width:52px;height:52px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#245f97,#0e2f52);color:#fff;font-size:18px;font-weight:700;}
.cuenta-nombre{font-size:16px;font-weight:800;color:#16324f;}
.cuenta-email{font-size:13px;color:#7089a5;margin-top:1px;}
.cuenta-section-title{font-size:11px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:#8aa0b8;margin:24px 0 12px;}
.cuenta-fichas{display:grid;grid-template-columns:1fr;gap:12px;}
.cuenta-ficha-card{background:#fff;border:1px solid #e6eef7;border-radius:14px;padding:16px 18px;box-shadow:0 2px 10px rgba(16,50,79,.04);}
.cuenta-ficha-card.is-active{border-color:#b5d4f4;background:#f4f8fd;}
.cuenta-ficha-top{display:flex;align-items:center;gap:8px;}
.cuenta-ficha-nombre{font-size:15px;font-weight:800;color:#16324f;}
.cuenta-ficha-badge{font-size:9px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#0f7a56;background:#e1f3ec;border-radius:999px;padding:2px 8px;}
.cuenta-ficha-badge.soon{color:#5a6b7d;background:#eef2f6;}
.cuenta-ficha-tipo{font-size:12.5px;color:#7089a5;margin-top:3px;}
.cuenta-ficha-acts{display:flex;gap:10px;margin-top:12px;}
.cuenta-ficha-btn{font:inherit;font-size:12.5px;font-weight:700;padding:7px 14px;border-radius:9px;cursor:pointer;background:#fff;border:1px solid #d8e4f0;color:#185fa5;}
.cuenta-ficha-btn:hover{border-color:#378add;}
.cuenta-ficha-btn.is-primary{background:linear-gradient(135deg,#245f97,#0e2f52);color:#fff;border:none;}
.cuenta-ficha-add{border-style:dashed;background:#fafcff;}
.cuenta-opts{background:#fff;border:1px solid #e6eef7;border-radius:14px;overflow:hidden;box-shadow:0 2px 10px rgba(16,50,79,.04);}
.cuenta-opt{width:100%;display:flex;align-items:center;gap:12px;padding:14px 18px;background:none;border:none;border-bottom:1px solid #f0f4f9;font:inherit;font-size:14px;color:#16324f;cursor:pointer;text-align:left;}
.cuenta-opt:last-child{border-bottom:none;}
.cuenta-opt>.ti:first-child{font-size:18px;color:#185fa5;flex-shrink:0;}
.cuenta-opt>span{flex:1;}
.cuenta-opt:hover:not(.is-soon){background:#f6f9fd;}
.cuenta-opt-chev{font-size:15px;color:#c0d0e2;}
.cuenta-opt.is-soon{cursor:default;color:#98a8bd;}
.cuenta-opt.is-soon>.ti:first-child{color:#b3c2d4;}
.cuenta-opt-soon{font-size:8.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#5a6b7d;background:#eef2f6;border-radius:999px;padding:2px 7px;}
.cuenta-opt-logout{color:#a32d2d;}
.cuenta-opt-logout>.ti:first-child{color:#a32d2d;}
.pdf-share-modal { max-width:560px; }
.pdf-share-card { background:#f0f6ff;border:1px solid #d0e4f7;border-radius:12px;padding:18px;margin:16px 0; }
.pdf-share-card-top { display:flex;align-items:center;gap:14px;margin-bottom:12px; }
.pdf-share-doc-icon { width:44px;height:44px;background:#185fa5;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0; }
.pdf-share-badges { display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px; }
.pdf-badge { background:#fff;border:0.5px solid #d0dff0;border-radius:100px;padding:3px 10px;font-size:11px;color:#4b5563;display:inline-flex;align-items:center;gap:4px; }
.pdf-badge-red { background:#fff0f0;border-color:#fca5a5;color:#dc2626; }
.pdf-badge-green { background:#d1fae5;border-color:#a7f3d0;color:#065f46; }
.pdf-share-actions { display:flex;flex-direction:column;gap:8px; }
.pdf-share-row { display:flex;gap:8px; }
.pdf-share-row .btn { flex:1;font-size:12px;justify-content:center; }
.badge-pronto { background:#f3f4f6;color:#6b7280;font-size:8.5px;font-weight:700;padding:1px 5px;border-radius:3px;letter-spacing:0.3px;text-transform:uppercase;margin-left:4px; }
.pdf-loading-row { text-align:center;padding:6px 0;font-size:12px;color:#aab8cc;display:none; }
.send-email-modal { max-width:420px; }
.send-email-status { font-size:12px;padding:10px 12px;border-radius:8px;margin-top:12px;display:none; }
.send-email-status.ok { background:#d1fae5;color:#065f46; }
.send-email-status.error { background:#fee2e2;color:#991b1b; }
.send-email-status.loading { background:#f0f6ff;color:#185fa5; }
.type-select { display:flex;gap:8px;margin-bottom:18px; }
.type-btn { flex:1;padding:10px;border-radius:8px;border:0.5px solid #d0dff0;background:#f7fafd;color:#7a9ab8;font-family:inherit;font-size:12px;cursor:pointer;transition:all 0.15s; }
.type-btn.active { border-color:#378add;color:#185fa5;background:#e6f1fb;font-weight:500; }
.tl-item { display:flex;gap:12px;align-items:flex-start;padding:12px 16px;background:#fff;border:0.5px solid #d0dff0;border-radius:8px;cursor:pointer;transition:all 0.12s;margin-bottom:6px; }
.tl-item:hover { border-color:#378add;background:#f7fafd; }
.tl-dot { width:8px;height:8px;border-radius:50%;margin-top:4px;flex-shrink:0; }
.tl-year { font-size:10px;color:#aab8cc;letter-spacing:2px;padding:8px 0 4px;border-top:0.5px solid #e0ebf5;margin-top:4px; }

/* FICHA */
.ficha-grid { display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px; }
.ficha-card { background:#fff;border:0.5px solid #d0dff0;border-radius:10px;padding:18px; }
.ficha-card h3 { font-size:9px;color:#185fa5;letter-spacing:1.5px;margin-bottom:14px;font-weight:600; }
.ficha-field { margin-bottom:10px; }
.ficha-label { font-size:9px;color:#aab8cc;letter-spacing:0.5px;margin-bottom:3px;font-weight:500; }
.ficha-value { font-size:13px;color:#1a2a3a; }
.ficha-value.empty-val { color:#ccd8e8;font-style:italic; }
/* EMERGENCY */

.med-info-box { margin-top:10px; padding:10px 12px; background:#f0f7ff; border:0.5px solid #b5d4f4; border-radius:8px; font-size:11px; color:#1a2a3a; line-height:1.6; }
.med-info-box .info-label { font-size:9px; color:#378add; letter-spacing:1px; font-weight:600; margin-bottom:3px; }
.med-info-loading { font-size:11px; color:#aab8cc; margin-top:8px; }

.privacy-mode td.private { filter: blur(4px); user-select: none; pointer-events: none; transition: filter 0.2s; }
#timelineBody.privacy-mode .tl-item { filter: blur(4px); user-select: none; pointer-events: none; transition: filter 0.2s; }
#timelineUnificado.privacy-mode .tl2-card { filter: blur(4px); user-select: none; pointer-events: none; transition: filter 0.2s; }
#medsList.privacy-mode .med-item,
#vacunasList.privacy-mode .med-item,
#recetasList.privacy-mode .med-item,
#cirugiasList.privacy-mode .med-item,
#medicosList.privacy-mode .med-item,
#viewHabitos.privacy-mode .med-item { filter: blur(4px); user-select: none; pointer-events: none; transition: filter 0.2s; }
#viewFicha.privacy-mode .ficha-value { filter: blur(4px); user-select: none; pointer-events: none; transition: filter 0.2s; }
#viewInicio.privacy-mode .dash-hero-chips,
#viewInicio.privacy-mode .dash-quick-item,
#viewInicio.privacy-mode .dash-last-visit-info,
#viewInicio.privacy-mode .dash-kpi-num,
#viewInicio.privacy-mode .dash-act-item,
#viewInicio.privacy-mode .dash-health-val { filter: blur(4px); user-select: none; pointer-events: none; transition: filter 0.2s; }
#viewTimeline2.privacy-mode .tl2-card { filter: blur(4px); user-select: none; pointer-events: none; transition: filter 0.2s; }
.privacy-btn { background:none; border:none; cursor:pointer; padding:4px 6px; color:#aab8cc; font-size:16px; line-height:1; transition:color 0.15s; }
.privacy-btn:hover { color:#378add; }
.privacy-btn.active { color:#378add; }
.tl2-year { font-size:11px;font-weight:500;color:#aab8cc;letter-spacing:2px;margin:20px 0 10px 44px; }
.tl2-item { display:flex;gap:12px;align-items:flex-start;margin-bottom:8px; }
.tl2-icon-col { display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:32px; }
.tl2-icon { width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:17px; }
.tl2-line { width:1px;background:#d0dff0;flex:1;min-height:10px;margin-top:2px; }
.tl2-card { flex:1;background:#fff;border:0.5px solid #d0dff0;border-radius:10px;padding:10px 14px;cursor:default; }
.tl2-type { font-size:9px;font-weight:600;letter-spacing:1.5px;margin-bottom:3px; }
.tl2-nombre { font-size:13px;font-weight:500;color:#1a2a3a; }
.tl2-detalle { font-size:11px;color:#7a9ab8;margin-top:2px; }
#examMobileCards { display: none; }
/* ── Recetas ───────────────────────────────────────────── */
.receta-badges{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.badge-tipo-rec{font-size:9px;font-weight:600;letter-spacing:0.5px;padding:2px 7px;border-radius:10px;text-transform:uppercase;}
.badge-rec-med{background:#e6f1fb;color:#0c447c;}
.badge-rec-ind{background:#faeeda;color:#633806;}
.badge-rec-ord{background:#eeedfe;color:#3c3489;}
.badge-vigente-rec{font-size:9px;font-weight:600;padding:2px 7px;border-radius:10px;background:#d1fae5;color:#065f46;}
.badge-pronto-rec{font-size:9px;font-weight:600;padding:2px 7px;border-radius:10px;background:#fef3c7;color:#92400e;}
.badge-vencida-rec{font-size:9px;font-weight:600;padding:2px 7px;border-radius:10px;background:#e8edf4;color:#7a9ab8;}
/* badges de estado de card (vigencia + despacho) */
.badge-rec-estado{font-size:9px;font-weight:600;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:0.3px;display:inline-block;}
.badge-rec-vig-vigente{background:#d1fae5;color:#065f46;}
.badge-rec-vig-expirada{background:#fee2e2;color:#991b1b;}
.badge-rec-vig-pronto{background:#fef3c7;color:#92400e;}
.badge-rec-vig-desconocida{background:#f3f4f6;color:#6b7280;}
.badge-rec-desp-no{background:#f3f4f6;color:#6b7280;}
.badge-rec-desp-parcial{background:#fef3c7;color:#92400e;}
.badge-rec-desp-despachada{background:#d1fae5;color:#065f46;}
.badge-rec-desp-desc{background:#f1f5f9;color:#94a3b8;}
/* ── MÉDICOS CARDS ── */
.medico-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;}
.medico-content{flex:1;min-width:0;}
.medico-title-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px;}
.medico-nombre{font-size:13px;font-weight:600;color:#1a2a3a;}
.medico-specialty-badge{font-size:9px;font-weight:700;letter-spacing:.4px;color:#185fa5;background:#e6f1fb;border:1px solid #b5d4f4;border-radius:999px;padding:2px 8px;text-transform:uppercase;}
.medico-meta{font-size:12px;color:#6f8dbb;margin-bottom:4px;}
.medico-motivo{font-size:12px;font-weight:600;color:#1a2a3a;margin-bottom:4px;}
.medico-notas{font-size:12px;color:#6f8dbb;line-height:1.4;word-break:break-word;}
.medico-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}
.badge-med-tipo{font-size:9px;font-weight:600;padding:2px 8px;border-radius:100px;text-transform:uppercase;letter-spacing:0.3px;background:#f0f4f9;color:#7a9ab8;border:1px solid #d0dff0;display:inline-block;}
.medico-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.rec-detail-sheet{position:fixed;bottom:0;left:0;right:0;background:#fff;border-radius:16px 16px 0 0;padding:16px 20px 40px;max-height:85vh;overflow-y:auto;z-index:301;}
.rec-detail-handle{width:40px;height:4px;background:#d0dff0;border-radius:2px;margin:0 auto 16px;}
.med-row-form{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px;background:#f4f8fd;border-radius:8px;margin-bottom:8px;}
/* ─── INICIO / DASHBOARD ─── */
/* ── Hero banner ── */
.dash-hero{background:#fff;border:0.5px solid #d0dff0;border-radius:16px;overflow:hidden;margin-bottom:20px;box-shadow:0 1px 6px rgba(55,138,221,0.06);}
.dash-hero-main{display:grid;grid-template-columns:1fr 1fr;padding:24px 28px;gap:0;}
.dash-hero-profile{display:flex;align-items:flex-start;gap:16px;padding-right:28px;}
.dash-hero-avatar{width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#378add 0%,#0f6e56 100%);color:#fff;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;letter-spacing:-0.5px;}
.dash-hero-copy{flex:1;min-width:0;}
.dash-hero-title{font-size:22px;font-weight:700;color:#0f2d6b;line-height:1.2;margin-bottom:5px;}
.dash-hero-sub{font-size:12px;color:#6b7e96;margin-bottom:14px;line-height:1.4;}
.dash-hero-chips{display:flex;flex-wrap:wrap;gap:6px;}
.dash-hero-chip{font-size:10px;font-weight:600;padding:3px 10px;border-radius:100px;background:#f0f4f9;color:#4a5a7a;border:0.5px solid #d0dff0;white-space:nowrap;}
.dash-hero-chip.chip-danger{background:#fef6f6;color:#a32d2d;border-color:#fad2d2;}
.chip-relacion{background:#e6f1fb !important;color:#185fa5 !important;border-color:#b5d4f4 !important;}
.dash-quick{border-left:1px solid #eef3f9;padding-left:28px;}
.dash-quick-head{font-size:9px;font-weight:600;letter-spacing:1.5px;color:#aab8cc;text-transform:uppercase;margin-bottom:10px;}
.dash-quick-item{display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:8px;cursor:pointer;transition:background .15s;margin-bottom:2px;}
.dash-quick-item:hover{background:#f4f8fd;}
.dash-quick-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.dash-quick-texts{flex:1;min-width:0;}
.dash-quick-title{font-size:12px;font-weight:600;color:#1a2a3a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dash-quick-sub{font-size:10px;color:#8fa3bb;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:1px;}
.dash-last-visit{border-top:0.5px solid #eef3f9;padding:12px 28px;display:flex;align-items:center;gap:14px;background:#fafcff;}
.dash-last-visit-label{font-size:8px;font-weight:700;letter-spacing:1.2px;color:#aab8cc;text-transform:uppercase;flex-shrink:0;white-space:nowrap;}
.dash-last-visit-info{flex:1;min-width:0;}
.dash-last-visit-name{font-size:12px;font-weight:600;color:#1a2a3a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dash-last-visit-sub{font-size:10px;color:#8fa3bb;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dash-last-visit-btn{font-size:10px;font-weight:600;color:#185fa5;background:none;border:none;cursor:pointer;flex-shrink:0;padding:0;white-space:nowrap;}
/* ── KPIs ── */
.dash-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px;}
.dash-kpi{background:#fff;border:0.5px solid #d0dff0;border-radius:10px;padding:14px 16px;display:flex;gap:12px;align-items:center;}
.dash-kpi-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.dash-kpi-label{font-size:9px;letter-spacing:1.5px;color:#aab8cc;font-weight:500;margin-bottom:4px;}
.dash-kpi-num{font-size:26px;font-weight:500;}
.dash-kpi-sub{font-size:10px;color:#aab8cc;margin-top:2px;}
/* ── Cards inferiores ── */
.dash-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.dash-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.07);}
.dash-card-title{font-size:9px;font-weight:500;letter-spacing:1.5px;color:#aab8cc;margin-bottom:14px;}
.dash-act-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f0f5fa;}
.dash-act-item:last-of-type{border-bottom:none;}
.dash-act-icon{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.dash-act-title{font-size:12px;font-weight:600;color:#1a2b3c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dash-act-sub{font-size:10px;color:#8fa3bb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.dash-act-badge{font-size:8px;font-weight:700;letter-spacing:.4px;padding:2px 6px;border-radius:4px;}
.dash-act-date{font-size:9px;color:#aab8cc;}
.dash-health-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:12px;}
.dash-health-item{border-bottom:1px solid #f0f5fa;padding-bottom:8px;}
.dash-health-label{font-size:8px;letter-spacing:.5px;color:#8fa3bb;font-weight:600;}
.dash-health-val{font-size:12px;font-weight:600;color:#1a2b3c;margin-top:2px;word-break:break-word;}
.dash-emerg{display:flex;align-items:center;justify-content:space-between;background:#fef6f6;border:1px solid #fad2d2;border-radius:8px;padding:8px 12px;margin-bottom:10px;}
.dash-emerg-label{font-size:11px;font-weight:600;color:#a32d2d;}
.dash-link{background:none;border:none;padding:0;font-size:11px;color:#185fa5;cursor:pointer;font-weight:600;display:block;margin-top:10px;}
.cfg-privacidad-link { background:none; border:none; padding:0; color:#378add; font-family:inherit; font-size:13px; cursor:pointer; display:inline-flex; align-items:center; gap:6px; }
#btnEliminarCuenta:disabled { opacity:0.45; cursor:not-allowed; }
.pdf-exp-chip { flex:1; padding:7px 0; font-size:11px; font-weight:600; color:#5a7a9a; background:#fff; border:0.5px solid #d0dff0; border-radius:100px; cursor:pointer; font-family:inherit; }
.pdf-exp-chip:hover { border-color:#378add; }
.pdf-exp-chip.active { color:#185fa5; background:#e6f1fb; border-color:#378add; }
/* ── DASHBOARD: resumen de salud — alineación real ── */
.dash-health-grid-icons {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  border-top: 1px solid #eef3f9;
  border-bottom: 1px solid #eef3f9;
}

.dash-health-grid-icons .dash-health-item-icon {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  column-gap: 10px;
  align-items: start;
  min-width: 0;
  min-height: 92px;
  padding: 14px 12px;
  border-bottom: 1px solid #eef3f9;
}

.dash-health-grid-icons .dash-health-item-icon:nth-child(3n+1),
.dash-health-grid-icons .dash-health-item-icon:nth-child(3n+2) {
  border-right: 1px solid #eef3f9;
}

.dash-health-grid-icons .dash-health-item-icon:nth-child(n+4) {
  border-bottom: none;
}

.dash-health-copy {
  min-width: 0;
  display: grid;
  grid-template-rows: 28px auto;
  align-content: start;
}

.dash-health-grid-icons .dash-health-label {
  display: flex;
  align-items: flex-start;
  font-size: 7.5px;
  font-weight: 700;
  color: #9aaac0;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.15;
  margin: 0;
}

.dash-health-grid-icons .dash-health-val {
  font-size: 11.5px;
  font-weight: 700;
  color: #0f2d6b;
  line-height: 1.22;
  margin: 0;
  max-width: 100%;
  white-space: normal;
  word-break: normal;
  overflow-wrap: break-word;
}

.dash-health-grid-icons .dash-health-val[style*="color"] {
  font-weight: 700;
}

.dash-health-ico {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  flex-shrink: 0;
}

.dash-health-ico-red { color: #ef4444; }
.dash-health-ico-orange { color: #f97316; }
.dash-health-ico-green { color: #10b981; }
.dash-health-ico-bluegray { color: #64748b; }

.dash-health-ico-transfusion {
  color: #2f3440;
}

.med-ico-svg {
  width: 24px;
  height: 24px;
  display: block;
}

/* ── CONSENTIMIENTO (Ley 21.719) ────────────────────────────────────── */
.consent-box { max-width: 520px; text-align: left; }
.consent-box .onb-title, .consent-box .onb-sub { text-align: center; }
.consent-row { display: flex; align-items: flex-start; gap: 11px; background: #f7fafd; border: 0.5px solid #e3edf7; border-radius: 10px; padding: 14px 16px; margin-bottom: 12px; cursor: pointer; font-size: 12px; line-height: 1.6; color: #3a4a5a; }
.consent-row:hover { border-color: #d0dff0; }
.consent-row input { margin-top: 2px; width: 16px; height: 16px; flex-shrink: 0; accent-color: #185fa5; cursor: pointer; }
.consent-row strong { color: #1a2a3a; }
.consent-row em { color: #7a8aaa; font-style: normal; }
.consent-err { font-size: 11.5px; color: #c0392b; background: #fdf0ef; border: 0.5px solid #f5c6c2; border-radius: 8px; padding: 10px 12px; margin-bottom: 12px; }
.consent-note { font-size: 10.5px; color: #aab8cc; text-align: center; margin-top: 14px; line-height: 1.5; }
/* Checkboxes del formulario de registro */
.auth-consent { margin: 4px 0 16px; display: flex; flex-direction: column; gap: 9px; }
.auth-consent-row { display: flex; align-items: flex-start; gap: 9px; font-size: 10.5px; line-height: 1.55; color: #5a7a9a; cursor: pointer; }
.auth-consent-row input { margin-top: 1px; width: 14px; height: 14px; flex-shrink: 0; accent-color: #185fa5; cursor: pointer; }
.auth-consent-row strong { color: #3a4a5a; }
.auth-consent-row em { color: #aab8cc; font-style: normal; }

/* Aviso de registro cerrado (acceso por invitación) — ver REGISTRO_ABIERTO en auth.js */
.auth-closed { text-align: center; padding: 8px 4px 4px; }
.auth-closed-ico { width: 46px; height: 46px; margin: 0 auto 14px; border-radius: 14px;
  display: flex; align-items: center; justify-content: center;
  background: #eaf3fb; color: #185fa5; }
.auth-closed h3 { font-size: 15px; font-weight: 700; color: #1a2a3a; margin: 0 0 8px; }
.auth-closed p { font-size: 12.5px; line-height: 1.6; color: #5a7a9a; margin: 0 0 20px; }
.auth-btn-link { display: block; text-decoration: none; text-align: center; box-sizing: border-box; }
.auth-closed-back { width: 100%; margin-top: 12px; padding: 4px; border: none; background: none;
  font-family: inherit; font-size: 12px; color: #185fa5; font-weight: 600; cursor: pointer; }
.auth-closed-back:hover { text-decoration: underline; }

/* ── CONECTAR CLÍNICA (MiVitae Connect) ─────────────────────────────── */
.side-connect { padding: 6px 12px 2px; }
.side-connect-btn { width: 100%; display: flex; align-items: center; gap: 10px; background: #185fa5; color: #fff; border: none; border-radius: 10px; padding: 10px 14px; cursor: pointer; text-align: left; font-family: inherit; transition: background .15s; }
.side-connect-btn:hover { background: #134b84; }
.side-connect-btn i { font-size: 18px; flex-shrink: 0; }
.side-connect-txt { display: flex; flex-direction: column; line-height: 1.3; }
.side-connect-txt strong { font-size: 12.5px; font-weight: 600; }
.side-connect-txt small { font-size: 10px; opacity: .85; }
.conectar-modal { position: relative; }
.conectar-close { position: absolute; top: 14px; right: 16px; background: none; border: none; font-size: 22px; line-height: 1; color: #aab8cc; cursor: pointer; padding: 2px 6px; }
.conectar-close:hover { color: #1a2a3a; }
.conectar-title { text-align: center; font-size: 16px !important; letter-spacing: 0 !important; margin-bottom: 6px !important; }
.conectar-sub { font-size: 11.5px; color: #5a7a9a; text-align: center; margin-bottom: 18px; }
.conectar-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.conectar-item { background: #fff; border: 0.5px solid #d0dff0; border-radius: 10px; padding: 18px 10px; font-size: 12px; font-weight: 600; color: #1a2a3a; font-family: inherit; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.conectar-item:hover { border-color: #378add; box-shadow: 0 2px 10px rgba(55,138,221,0.12); }
.conectar-status { margin-top: 14px; font-size: 11.5px; color: #185fa5; background: #eef5fc; border: 0.5px solid #d0dff0; border-radius: 8px; padding: 10px 12px; }
.conectar-note { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 10.5px; color: #aab8cc; margin-top: 16px; }
/* Clínicas aún no disponibles: visibles pero sin prometer nada. */
.conectar-item.is-soon { color: #7a8aaa; position: relative; }
.conectar-item.is-soon:hover { border-color: #d0dff0; box-shadow: none; }
.conectar-soon { display: block; margin-top: 4px; font-size: 9px; font-weight: 500; text-transform: uppercase; letter-spacing: .5px; color: #aab8cc; }
/* Paso de aviso previo */
.conectar-aviso { font-size: 12.5px; line-height: 1.65; color: #3a4a5a; text-align: center; margin-bottom: 16px; }
.conectar-puntos { list-style: none; padding: 0; margin: 0 0 20px; display: flex; flex-direction: column; gap: 9px; }
.conectar-puntos li { display: flex; align-items: flex-start; gap: 9px; font-size: 11.5px; color: #5a7a9a; line-height: 1.5; }
.conectar-puntos i { color: #378add; font-size: 14px; flex-shrink: 0; margin-top: 1px; }
.conectar-acciones { display: flex; gap: 10px; justify-content: flex-end; margin-top: 4px; }
.conectar-acciones .btn { flex: 0 0 auto; }
/* CTA "Conectar clínica" de INICIO — SOLO MÓVIL.
   En desktop este acceso vive en el sidebar (.side-connect); al ocultarse el
   sidebar bajo 769px el conector quedaba inalcanzable. Oculto por defecto: lo
   muestra 05-responsive.css en el mismo breakpoint que oculta el sidebar.
   Reutiliza los colores del botón del sidebar (#185fa5 / hover #134b84). */
.dash-connect-mobile { display: none; width: 100%; align-items: center; gap: 13px; background: #185fa5; color: #fff; border: none; border-radius: 14px; padding: 14px 16px; min-height: 66px; font-family: inherit; text-align: left; cursor: pointer; margin-bottom: 16px; transition: background .15s; }
.dash-connect-mobile:hover { background: #134b84; }
.dash-connect-mobile:active { background: #103f70; }
.dash-connect-mobile:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.dash-connect-mobile-ico { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dash-connect-mobile-ico i { font-size: 26px; }
/* min-width:0 deja que el texto se comprima sin empujar la flecha fuera. */
.dash-connect-mobile-txt { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; line-height: 1.3; }
.dash-connect-mobile-txt strong { font-size: 15px; font-weight: 700; }
.dash-connect-mobile-txt small { font-size: 12px; font-weight: 400; opacity: .88; }
.dash-connect-mobile-arrow { font-size: 20px; flex-shrink: 0; opacity: .95; }
/* Paso de progreso */
.conectar-progreso { display: flex; flex-direction: column; align-items: center; gap: 14px; padding: 22px 0 26px; }
.conectar-spinner { width: 26px; height: 26px; border: 2.5px solid #d0dff0; border-top-color: #378add; border-radius: 50%; animation: spin 0.9s linear infinite; }
.conectar-estado { font-size: 12.5px; color: #3a4a5a; text-align: center; line-height: 1.55; margin: 0; }
