/* Reservas AVIGA: widget para reservar el diagnóstico (portada) y página "gestionar mi cita" (cita.html).
   Usa las variables de color de la web (--night, --glow...). */
.rv{display:grid;gap:22px;padding:clamp(18px,3.5vw,32px);border:1px solid var(--night-line);border-radius:var(--r-lg,18px);background:var(--night-2);color:var(--night-ink)}
.rv h3{color:var(--night-ink);font-size:clamp(1.15rem,1rem + .6vw,1.35rem)}
.rv-paso{display:grid;gap:12px}
.rv-paso>p{color:var(--night-muted);font-size:.95rem}
.rv-num{display:inline-grid;place-items:center;width:26px;height:26px;margin-right:8px;border-radius:50%;background:var(--glow);color:var(--on-glow);font:700 .85rem/1 var(--font)}
/* Paso 1: calendario mensual compacto (solo los días con huecos se pueden pulsar) */
.rv-cal{width:100%;max-width:400px;padding:14px;border:1px solid var(--night-line);border-radius:var(--r,14px);background:var(--night)}
.rv-cal[hidden]{display:none}
.rv-cal-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.rv-mes{margin:0;font:700 1rem/1.2 var(--font);color:var(--night-ink)}
.rv-flecha{width:40px;height:40px;border:1px solid var(--night-line);border-radius:10px;background:transparent;color:var(--night-ink);font:600 1.3rem/1 var(--font);cursor:pointer}
.rv-flecha:hover:not(:disabled){border-color:var(--glow)}
.rv-flecha:disabled{opacity:.3;cursor:default}
.rv-semana,.rv-rejilla{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.rv-semana span{padding:4px 0;text-align:center;font:600 .75rem/1 var(--font);color:var(--night-muted)}
.rv-dia,.rv-hora{font:600 .95rem/1.2 var(--font);color:var(--night-ink);background:transparent;border:1px solid var(--night-line);border-radius:var(--r-sm,10px);cursor:pointer;transition:border-color .15s ease,background .15s ease,color .15s ease}
.rv-dia{aspect-ratio:1;min-height:40px;padding:0;display:grid;place-items:center}
.rv-dia:disabled{border-color:transparent;color:var(--night-muted);opacity:.35;cursor:default}
/* Paso 2: horas del día elegido, en "chips" */
.rv-horas-tit{margin:4px 0 0;font-size:.92rem;font-weight:600;color:var(--night-muted)}
.rv-horas-tit:empty{display:none}
.rv-horas{width:100%;max-width:400px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rv-horas:empty{display:none}
.rv-hora{min-height:40px;padding:6px 4px;font-size:.9rem;border-radius:999px;background:var(--night)}
.rv-dia:hover:not(:disabled),.rv-hora:hover{border-color:var(--glow)}
.rv-dia[aria-pressed="true"],.rv-hora[aria-pressed="true"]{background:var(--glow);color:var(--on-glow);border-color:var(--glow)}
.rv-dia:focus-visible,.rv-hora:focus-visible,.rv-flecha:focus-visible{outline:2px solid var(--glow);outline-offset:2px}
.rv button[type=submit]:disabled{opacity:.45;cursor:not-allowed;transform:none}
@media (max-width:720px){.rv-cal,.rv-horas{max-width:none}.rv-dia{aspect-ratio:auto;height:44px}}
@media (max-width:380px){.rv-horas{grid-template-columns:repeat(3,1fr)}}
.rv-elegido{font-weight:650;color:var(--hl,#9AD3DB)}
/* Campos del formulario (los mismos que en la portada, para que también funcionen en otras páginas) */
.rv .fields{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:end}   /* los campos quedan alineados aunque una etiqueta ocupe más líneas */
.rv .fields label{display:grid;gap:8px;font:600 .92rem/1.3 var(--font);color:var(--night-ink);min-width:0}
.rv .fields .full{grid-column:1/-1}
.rv .fields input,.rv .fields textarea{width:100%;font:400 1rem/1.4 var(--font);color:var(--night-ink);background:var(--night);border:1px solid var(--night-line);border-radius:var(--r-sm,10px);padding:.75em .9em}
.rv .fields input:focus,.rv .fields textarea:focus{outline:none;border-color:var(--glow);box-shadow:0 0 0 3px rgba(46,196,214,.2)}
.rv .consent{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;color:var(--night-muted)}
.rv .consent input{margin-top:.25em;accent-color:var(--glow);flex-shrink:0;width:18px;height:18px}
.rv .consent a{color:var(--hl,#9AD3DB)}
.rv .fields select{width:100%;font:400 1rem/1.4 var(--font);color:var(--night-ink);background:var(--night);border:1px solid var(--night-line);border-radius:var(--r-sm,10px);padding:.75em .9em}
.rv .fields select:focus{outline:none;border-color:var(--glow);box-shadow:0 0 0 3px rgba(46,196,214,.2)}
.rv-nota{font-weight:400;color:var(--night-muted);font-size:.82rem}
.rv-msg{padding:12px 14px;border-radius:var(--r-sm,10px);border:1px solid var(--night-line);background:var(--night);font-size:.95rem}
.rv-msg.err{border-color:#E07A5F;color:#F4C7B8}
.rv-msg.ok{border-color:var(--glow)}
.rv-ok{display:grid;gap:14px;text-align:left}
.rv-ok strong{font-size:1.15rem}
.rv-datos{display:grid;gap:4px;font-size:1.05rem}
.rv-acciones{display:flex;flex-wrap:wrap;gap:10px}
.rv-cargando{color:var(--night-muted);font-size:.95rem}
.rv-trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:720px){.rv .fields{grid-template-columns:1fr}}
