/* Portal del paciente (entrar, cuenta, portal-admin) · sobre eutimya.css */
.card-lead{ font-size:15px; color: var(--ink-2); line-height:1.45; margin:0 }
.stack-gap{ display:flex; flex-direction:column; gap:12px }
.stack-cards{ display:flex; flex-direction:column; gap:12px }
.opts{ border-radius: var(--r-card); overflow:hidden }
.opts .check{ background: var(--fill) }
.check-label a, .foot a, .group-foot a{ color: var(--gold-deep) }
.linkbtn{ background:none; border:0; padding:6px 0; color: var(--gold-deep); font: inherit; font-size:15px; cursor:pointer; text-align:left }
.linkbtn:disabled{ opacity:.5 }
.links{ display:flex; flex-wrap:wrap; gap:4px 18px }
.codigo{ font-size:28px; letter-spacing:10px; text-align:center; font-variant-numeric: tabular-nums }
.btn{ position:relative }
.btn .spinner{ border-color: rgba(255,255,255,.35); border-top-color:#fff }
.btn-plain .spinner, .btn-secondary .spinner, .btn-tint .spinner{ border-color: var(--hairline-strong); border-top-color: var(--ink) }
.btn.is-loading > :not(.spinner){ visibility:hidden }
.btn.is-loading .spinner{ position:absolute; left:50%; top:50%; margin:-9px 0 0 -9px }

/* Citas */
.cita{ display:flex; flex-direction:column; gap:12px }
.cita-head{ display:flex; gap:12px; align-items:center }
.cita-fecha{ font-weight:600; font-size:17px; line-height:1.3 }
.cita-sub, .cita-lugar{ color: var(--ink-3); font-size:14px; margin:0 }
.acc > summary{ list-style:none; cursor:pointer }
.acc > summary::-webkit-details-marker{ display:none }
.acc[open] > summary .row-chevron{ transform: rotate(180deg) }

/* Mover: calendario de horarios */
.mes-nav{ display:flex; align-items:center; justify-content:space-between; margin:14px 0 6px }
.mes-nav strong{ font-size:16px }
#huecos{ max-height:46vh; overflow:auto; -webkit-overflow-scrolling:touch }
.dia{ padding:10px 0; border-bottom: 1px solid var(--hairline) }
.dia:last-child{ border-bottom:0 }
.dia-t{ font-weight:600; font-size:14px; margin-bottom:8px }
.hora{ border:0; cursor:pointer; font: inherit; font-size:14px; padding:7px 12px; min-height:34px }
.hora.on{ outline: 2px solid var(--gold); }

/* Administración */
.scroll{ max-height:420px; overflow:auto }
.kv dd{ margin:0; font-weight:600; text-align:right }

/* eutimya.css redeclara .btn después de sus variantes: aquí vuelven los colores de peligro */
.btn.btn-danger{ background: var(--danger); color:#fff }
.btn.btn-danger-soft{ background: var(--danger-soft); color: var(--danger); box-shadow:none }
/* En formularios del portal, una casilla marcada no es una tarea "hecha": sin tachar */
.opts .check input:checked ~ .check-label, .card .check input:checked ~ .check-label{ color: var(--ink); text-decoration:none }
.card .card-lead + .btn{ margin-top:14px }

/* Piloto: nombre arriba, botones abajo en pantallas angostas */
#lista-piloto .row{ flex-wrap:wrap; row-gap:8px }
#lista-piloto .row-body{ min-width:180px }
#form-reporte .textarea{ min-height:84px; resize:vertical }

/* Documento leído en el portal */
.doc-acciones{ margin:10px 0 6px }
.doc-texto{ font-size:16px; line-height:1.55; color: var(--ink); margin-top:10px; overflow-wrap:anywhere }
.doc-texto p{ margin:0 0 10px }
.doc-texto h3{ font-size:15px; font-weight:700; letter-spacing:.02em; margin:18px 0 6px; color: var(--ink) }
.doc-texto h4{ font-size:16px; font-weight:600; margin:14px 0 4px }
.doc-texto ul{ margin:0 0 10px; padding-left:20px }
.doc-texto li{ margin:3px 0 }
.doc-texto .doc-cargando{ padding:18px 0; text-align:center }
.sheet-doc{ max-height:92vh; overflow-y:auto }

/* Google y Mi cuenta */
.separador{ display:flex; align-items:center; gap:10px; color: var(--ink-4); font-size:13px }
.separador::before,.separador::after{ content:''; flex:1; height:.5px; background: var(--hairline-strong) }
.btn-google{ gap:10px }
.g-logo{ width:20px; height:20px; flex:0 0 auto }
.tile .g-logo{ width:18px; height:18px }
.row-value{ color: var(--gold-deep); font-size:15px; flex:0 0 auto }

/* Mis medicamentos (cuenta) */
.med{ padding:10px 0; border-top:1px solid var(--hairline) }
.med:first-of-type{ border-top:0; padding-top:2px }
.med-nombre{ font-size:16px; line-height:1.35; display:flex; flex-wrap:wrap; align-items:center; gap:6px }
.med-tomas{ margin:6px 0 0; padding-left:18px; font-size:14.5px; line-height:1.45; color: var(--ink-2) }
.med-tomas li + li{ margin-top:3px }

/* Mis estudios (19-oct-2026) */
#lista-estudios .chip { margin-right: 6px; white-space: nowrap; }
.est-tabla { width: 100%; border-collapse: collapse; margin: 4px 0 12px; font-size: 15px; }
.est-tabla th, .est-tabla td { text-align: left; vertical-align: top; padding: 7px 0; border-bottom: 1px solid var(--hairline); }
.est-tabla th { font-weight: 500; padding-right: 12px; width: 52%; }
.est-tabla td { font-variant-numeric: tabular-nums; }
.est-marcado td { font-weight: 600; }
.est-flecha { font-weight: 700; }

/* Ronda 2 (20-oct-2026): pendientes, pagos, familia */
.pend { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--hairline); }
.pend:first-of-type { border-top: 0; }
.pend > div { min-width: 0; }
.pend .btn, .pend .linkbtn { flex: none; white-space: nowrap; }
@media (max-width: 420px) { .pend { flex-direction: column; align-items: stretch; } .pend .btn { align-self: flex-start; } }
#lista-solicitudes .chip { white-space: nowrap; }

/* Barra de carga (22-oct-2026): aparece arriba mientras haya peticiones al portal de más de 150 ms */
.eu-carga{ position:fixed; top:env(safe-area-inset-top, 0px); left:0; right:0; height:3px; z-index:1000; overflow:hidden; pointer-events:none; opacity:0; transition:opacity .25s }
.eu-carga.on{ opacity:1 }
.eu-carga::before{ content:''; position:absolute; top:0; bottom:0; left:0; width:40%; border-radius:3px; background:linear-gradient(90deg, transparent, var(--gold), transparent); animation:euCarga 1.1s ease-in-out infinite }
@keyframes euCarga{ from{ transform:translateX(-100%) } to{ transform:translateX(260%) } }
.inv-esq{ display:inline-block; vertical-align:middle }
@media (prefers-reduced-motion: reduce){ .eu-carga::before{ animation:none; width:100%; opacity:.6 } }
