/* ============================================================
   Portal de Paciente — estilos propios (sobre core/design.css)
   ============================================================ */

/* ---------------- Línea resumen (bajo el menú) ---------------- */
.summary{display:flex;flex-wrap:wrap;align-items:center;gap:9px;font-size:12.5px;color:var(--ink-soft);margin:2px 2px 22px;line-height:1.6}
.summary .sm-item b{color:var(--ink);font-weight:700}
.summary .sm-sep{color:var(--ink-faint);opacity:.55}
.summary .sm-muted{color:var(--ink-faint)}

/* ---------------- Tarjetas de módulo (una fila, repartidas al 100%) ---------------- */
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:stretch}
.module-card{
  display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;
  background:linear-gradient(160deg, color-mix(in srgb,var(--acc,var(--brand)) 15%,#fff), color-mix(in srgb,var(--acc,var(--brand)) 4%,#fff));
  border:1px solid color-mix(in srgb,var(--acc,var(--brand)) 22%,var(--line));
  border-top:4px solid var(--acc,var(--brand));
  border-radius:16px;box-shadow:var(--shadow);padding:18px 18px 15px;
  transition:transform .06s,box-shadow .15s;
}
.module-card:hover{transform:translateY(-3px);box-shadow:0 6px 14px rgba(20,40,70,.10),0 18px 40px rgba(20,40,70,.12)}
.module-card .mc-icon{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:27px;background:#fff;box-shadow:0 1px 3px rgba(20,40,70,.12)}
.module-card .mc-name{font-size:17px;font-weight:700;letter-spacing:-.2px;margin-top:2px}
.module-card .mc-period{font-size:12px;font-weight:600;color:var(--acc,var(--brand))}
.module-card .mc-desc{font-size:13px;color:var(--ink-soft);flex:1}
.module-card .mc-foot{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:4px;padding-top:11px;border-top:1px solid color-mix(in srgb,var(--acc,var(--brand)) 18%,var(--line))}
.module-card .mc-count{font-size:12.5px;color:var(--ink-soft)}
.module-card .mc-count b{font-size:22px;font-weight:700;color:var(--ink);margin-right:4px}
.module-card .mc-go{font-size:12.5px;font-weight:700;color:var(--acc,var(--brand));white-space:nowrap}

/* ---------------- Actividad reciente (acordeón) ---------------- */
details.acc{margin-top:26px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
details.acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:9px;padding:14px 16px;user-select:none}
details.acc>summary::-webkit-details-marker{display:none}
details.acc>summary:hover{background:var(--surface-2)}
/* chevron a la derecha que gira al abrir */
details.acc>summary::after{content:"";margin-left:auto;flex:none;width:9px;height:9px;border-right:2px solid var(--ink-faint);border-bottom:2px solid var(--ink-faint);transform:translateY(-2px) rotate(45deg);transition:transform .18s}
details.acc[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
details.acc[open]>summary{border-bottom:1px solid var(--line)}
.acc-icon{font-size:16px}
.acc-title{font-size:15px;font-weight:700}
.acc-hint{font-size:12.5px;color:var(--ink-faint);font-weight:500}
.recent{display:grid;padding:2px 6px 6px}
.recent-row{display:grid;grid-template-columns:92px 1fr auto;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}
.recent-row:last-child{border-bottom:0}
.recent-row .rr-date{font-size:12.5px;color:var(--ink-faint);text-align:right;white-space:nowrap}
.recent-row .rr-main{min-width:0}
.recent-row .rr-title{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.recent-row .rr-sub{font-size:12px;color:var(--ink-soft)}
.recent-row .rr-act a{font-size:12.5px;font-weight:600;color:var(--brand);text-decoration:none;white-space:nowrap}
.recent-row .rr-act a:hover{text-decoration:underline}

/* ---------------- Cronología global ---------------- */
.year-head{font-size:13px;font-weight:700;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.6px;margin:20px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.timeline{position:relative;margin:0;padding:0 0 0 2px}
.tl-item{position:relative;display:grid;grid-template-columns:104px 30px 1fr;gap:14px;padding:0 0 16px}
@media(max-width:680px){.tl-item{grid-template-columns:78px 24px 1fr;gap:9px}}
.tl-date{text-align:right;padding-top:13px}
.tl-date .d{font-weight:700;font-size:14px}
.tl-date .y{font-size:12px;color:var(--ink-faint)}
.tl-rail{position:relative;display:flex;justify-content:center}
.tl-rail::before{content:"";position:absolute;top:0;bottom:-16px;width:2px;background:var(--line)}
.tl-item:last-child .tl-rail::before{display:none}
.tl-node{width:30px;height:30px;border-radius:50%;background:var(--surface);border:2px solid var(--acc,var(--line));display:grid;place-items:center;font-size:15px;margin-top:9px;z-index:1;box-shadow:0 0 0 3px var(--surface)}
.tl-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 15px;border-left:4px solid var(--acc,var(--brand))}
.tl-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tl-title{font-weight:700;font-size:14.5px}
.tl-persona{font-size:13px;color:var(--ink-soft);margin:4px 0 0}
.tl-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.tl-actions{display:flex;gap:14px;margin-top:10px}
.tl-actions a{font-size:12.5px;font-weight:600;color:var(--brand);text-decoration:none}
.tl-actions a:hover{text-decoration:underline}
.badge.esp{color:#fff}

/* ---------------- Buscar ---------------- */
.search-box{margin:4px 0 14px}
.search-box input{width:100%;max-width:540px;font:inherit;font-size:15px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink)}
.search-meta{font-size:13px;color:var(--ink-faint);margin:0 0 12px}
.res-list{display:grid;gap:11px}
.res-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:13px 15px;border-left:4px solid var(--acc,var(--brand))}
.res-top{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap}
.res-title{font-weight:700;font-size:14px}
.res-snip{font-size:13px;color:var(--ink-soft);margin:7px 0 0}
.res-snip mark{background:#fff1a8;color:inherit;padding:0 2px;border-radius:3px}
.res-actions{display:flex;gap:14px;margin-top:9px}
.res-actions a{font-size:12.5px;font-weight:600;color:var(--brand);text-decoration:none}
.res-actions a:hover{text-decoration:underline}
