/* Inicio (hall) */
.hall{max-width:1032px;margin:0 auto;padding:26px 16px 56px}
.saludo{padding:4px 2px 0}
.hall-fecha{margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--acento)}
.hall-fecha::first-letter{text-transform:uppercase}
.saludo h2{font-size:clamp(28px,6vw,40px);margin:4px 0 6px;font-weight:400;color:var(--tinta);line-height:1.1}
.saludo p{margin:0;color:var(--gris-2);font-size:15px;min-height:1.4em}

/* Tarjetas de módulo */
.modulos{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:26px 0 30px}
.mod{
  --c:var(--acento);--t:var(--beige-2);
  position:relative;overflow:hidden;isolation:isolate;
  display:flex;flex-direction:column;gap:14px;padding:22px 22px 18px;border-radius:18px;
  background:#fff;border:1px solid var(--linea);color:var(--tinta);text-decoration:none;
  box-shadow:0 1px 2px rgba(43,39,36,.04),0 10px 28px rgba(43,39,36,.06);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.mod::before{ /* halo decorativo del color del módulo */
  content:'';position:absolute;z-index:-1;width:190px;height:190px;border-radius:50%;
  right:-70px;top:-80px;background:var(--t);transition:transform .35s ease;
}
.mod:hover{transform:translateY(-3px);border-color:color-mix(in srgb, var(--c) 45%, var(--linea));
  box-shadow:0 2px 4px rgba(43,39,36,.05),0 18px 38px rgba(43,39,36,.10)}
.mod:hover::before{transform:scale(1.12)}
.mod:active{transform:translateY(-1px)}
.mod:focus-visible{outline:3px solid color-mix(in srgb, var(--c) 40%, transparent);outline-offset:2px}
.mod-ic{width:54px;height:54px;border-radius:15px;display:grid;place-items:center;
  background:var(--t);color:var(--c);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c) 14%, transparent)}
.mod-ic svg{width:27px;height:27px}
.mod-tx b{display:block;font-size:20px;margin-bottom:4px}
.mod-tx small{display:block;color:var(--gris-2);font-size:13.5px;line-height:1.45}
.mod-pie{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:auto;padding-top:14px;border-top:1px solid var(--beige-2)}
.mod-dato{font-size:13px;color:var(--gris-2);visibility:hidden}
.mod-dato b{font-size:16px;color:var(--c);margin-right:2px}
.mod-flecha{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:var(--beige-3);color:var(--c);font-size:17px;line-height:1;padding-bottom:2px;transition:transform .2s ease, background .2s ease, color .2s ease}
.mod:hover .mod-flecha{transform:translateX(3px);background:var(--c);color:#fff}
.mod-pres{--c:#8C6E5D;--t:#F3EAE5}
.mod-hist{--c:#7A5C86;--t:#F2EBF4}
.mod-ag  {--c:#2F7D5A;--t:#E6F2EB}

@media(max-width:820px){
  .modulos{grid-template-columns:1fr;gap:12px;margin:22px 0 26px}
  .mod{display:grid;grid-template-columns:54px 1fr;column-gap:16px;row-gap:12px;padding:18px}
  .mod-tx{align-self:center}
  .mod-pie{grid-column:1/-1;padding-top:12px}
  .mod::before{width:150px;height:150px;right:-60px;top:-70px}
}

/* Agenda del día */
.hoy-caja{background:#fff;border:1px solid var(--linea);border-radius:18px;padding:18px 18px 8px;
  box-shadow:0 1px 2px rgba(43,39,36,.04),0 10px 28px rgba(43,39,36,.04)}
.hoy-tit{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}
.hoy-tit .sec{margin:0}
.hoy-tit a{font-size:13px;color:var(--acento-d);text-decoration:none}
.hoy-tit a:hover{text-decoration:underline}
.hoy-fila{display:flex;align-items:center;gap:14px;padding:12px 4px;border-top:1px solid var(--beige-2);
  text-decoration:none;color:inherit;border-radius:8px}
.hoy-fila:first-child{border-top:none}
.hoy-fila:hover{background:var(--beige-3)}
.hoy-hora{flex:none;width:52px;font-weight:bold;font-variant-numeric:tabular-nums;border-left:3px solid var(--pc);padding-left:9px;line-height:1.15}
.hoy-hora small{display:block;font-weight:normal;color:var(--gris);font-size:11px}
.hoy-pac{flex:1;min-width:0}
.hoy-pac b{display:block;font-weight:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hoy-pac small{display:block;color:var(--gris-2);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hoy-est{flex:none;font-size:11px;padding:3px 9px;border-radius:999px;background:var(--beige-2);color:var(--gris-2)}
.hoy-est.est-confirmada{background:#E6F2EB;color:#2F7D5A}
.hoy-fila.prox .hoy-est{background:var(--acento);color:#fff}
.hoy-fila.prox{background:#FFFCF7}
.hoy-fila.pasada{opacity:.5}
.hoy-vacio{padding:18px 4px 14px;color:var(--gris-2);font-size:14px}
.hoy-vacio a{display:inline-block;margin-left:10px;color:var(--acento-d)}

/* Atajos */
.atajos{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.atajo{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;
  background:#fff;border:1px solid var(--linea);color:var(--tinta);text-decoration:none;font-size:14px;
  transition:background .15s, border-color .15s}
.atajo:hover{background:var(--beige-2);border-color:var(--acento)}
.atajo span{color:var(--acento);font-weight:bold}

/* Entrada escalonada al quitar el velo */
body.listo .saludo, body.listo .mod, body.listo .hoy-caja, body.listo .atajos{animation:subir .5s cubic-bezier(.2,.7,.2,1) both}
body.listo .mod-pres{animation-delay:.05s}
body.listo .mod-hist{animation-delay:.10s}
body.listo .mod-ag{animation-delay:.15s}
body.listo .hoy-caja{animation-delay:.2s}
body.listo .atajos{animation-delay:.25s}
@keyframes subir{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){ body.listo *{animation:none !important} }
.sin-backend.suave{background:var(--beige-2);border-color:var(--linea);margin:0 0 18px}
