/*!
 * Reservas v1.0.3 · rbnbrand.es
 * Estilos de la reserva online y del panel de empleados.
 */

@font-face { font-family: "Rsv Manrope"; src: url("../fonts/manrope.woff") format("woff"); font-weight: 200 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Rsv Cinzel"; src: url("../fonts/cinzel.woff") format("woff"); font-weight: 400 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Rsv Cormorant"; src: url("../fonts/cormorant-500.woff") format("woff"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Rsv Cormorant"; src: url("../fonts/cormorant-500-italic.woff") format("woff"); font-weight: 500; font-style: italic; font-display: swap; }

.rsv {
	--rsv-noche: #0F2A1F;
	--rsv-verde: #1E4634;
	--rsv-beige: #E9DFCC;
	--rsv-crema: #F4EEE3;
	--rsv-papel: #FBF8F2;
	--rsv-blanco: #FFFFFF;
	--rsv-borde: #E3D8C3;
	--rsv-borde-2: #CDBF9F;
	--rsv-oro: #B8925A;
	--rsv-oro-claro: #D9BE8C;
	--rsv-texto: #121512;
	--rsv-texto-2: #4F4A3E;
	--rsv-ocre: #6E5428;
	--rsv-error: #9B2C1F;
	--rsv-sans: "Rsv Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
	--rsv-serif: "Rsv Cormorant", Georgia, "Times New Roman", serif;
	--rsv-caps: "Rsv Cinzel", Georgia, serif;
	--rsv-r: 24px;

	font-family: var(--rsv-sans);
	font-size: 16px;
	line-height: 1.5;
	color: var(--rsv-texto);
	background: var(--rsv-crema);
	-webkit-font-smoothing: antialiased;
	max-width: 100%;
}
.rsv *, .rsv *::before, .rsv *::after { box-sizing: border-box; }
.rsv h1, .rsv h2, .rsv h3, .rsv h4, .rsv p, .rsv ul, .rsv ol, .rsv dl, .rsv dd, .rsv figure { margin: 0; padding: 0; }
.rsv ul, .rsv ol { list-style: none; }
.rsv img { max-width: 100%; display: block; }
.rsv a { color: var(--rsv-verde); }
.rsv button, .rsv input, .rsv select, .rsv textarea {
	font: inherit; color: inherit; letter-spacing: normal; text-transform: none; margin: 0;
	box-shadow: none; text-shadow: none; line-height: 1.3;
}
.rsv button { cursor: pointer; background: none; border: 0; padding: 0; border-radius: 0; min-height: 0; width: auto; }
.rsv button:disabled { cursor: not-allowed; }
.rsv :focus-visible { outline: 3px solid var(--rsv-oro); outline-offset: 2px; }
.rsv .rsv-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.rsv-cargando { padding: 48px 16px; text-align: center; color: var(--rsv-texto-2); }

/* ---------- Tipografía y piezas comunes ---------- */
.rsv .rsv-eyebrow { font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--rsv-ocre); font-weight: 600; }
.rsv .rsv-h1 { font-family: var(--rsv-serif); font-weight: 500; font-size: clamp(2.2rem, 4.4vw, 3.6rem); line-height: 1; color: var(--rsv-noche); }
.rsv .rsv-h2 { font-family: var(--rsv-serif); font-weight: 500; font-size: 32px; line-height: 1.05; color: var(--rsv-noche); }
.rsv .rsv-h3 { font-family: var(--rsv-caps); font-size: 15px; letter-spacing: .16em; color: var(--rsv-verde); font-weight: 600; text-transform: uppercase; }
.rsv .rsv-muted { color: var(--rsv-texto-2); font-size: 14px; }
.rsv .rsv-card { background: var(--rsv-papel); border: 1px solid var(--rsv-borde); border-radius: var(--rsv-r); padding: 24px; }
.rsv .rsv-card-dark { background: var(--rsv-noche); color: var(--rsv-crema); border-radius: var(--rsv-r); padding: 24px; }
.rsv .rsv-firma { font-size: 12px; color: var(--rsv-texto-2); text-align: center; padding: 4px 8px; }
.rsv .rsv-firma a { color: var(--rsv-texto-2); }

.rsv .rsv-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 48px; padding: 0 22px; border-radius: 999px; font-weight: 700; font-size: 15px;
	text-decoration: none; border: 1px solid transparent; transition: background .15s, color .15s, opacity .15s;
}
.rsv .rsv-btn svg { flex: none; }
.rsv .rsv-btn-dark { background: var(--rsv-noche); color: var(--rsv-crema); }
.rsv .rsv-btn-dark:hover { background: var(--rsv-verde); color: var(--rsv-crema); }
.rsv .rsv-btn-light { background: var(--rsv-beige); color: var(--rsv-noche); }
.rsv .rsv-btn-light:hover { background: #F1E8D8; color: var(--rsv-noche); }
.rsv .rsv-btn-ghost { background: transparent; color: var(--rsv-verde); border-color: var(--rsv-borde-2); }
.rsv .rsv-btn-ghost:hover { background: var(--rsv-blanco); }
.rsv .rsv-btn-ghost-dark { background: transparent; color: var(--rsv-crema); border-color: rgba(233,223,204,.35); }
.rsv .rsv-btn-danger { background: transparent; color: var(--rsv-error); border-color: #E2B8AF; }
.rsv .rsv-btn-danger:hover { background: #FBEDEA; }
.rsv .rsv-btn-sm { min-height: 40px; padding: 0 16px; font-size: 14px; }
.rsv .rsv-btn-full { width: 100%; }
.rsv .rsv-btn:disabled { background: #D8CCB4; color: var(--rsv-texto-2); border-color: transparent; }
.rsv .rsv-btn-icon { width: 44px; height: 44px; padding: 0; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--rsv-borde-2); color: var(--rsv-verde); background: var(--rsv-papel); }
.rsv .rsv-btn-icon:hover { background: var(--rsv-blanco); }

.rsv .rsv-campo { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.rsv .rsv-campo > label, .rsv .rsv-label { font-size: 14px; font-weight: 600; color: var(--rsv-verde); }
.rsv .rsv-campo input, .rsv .rsv-campo select, .rsv .rsv-campo textarea {
	width: 100%; min-height: 50px; padding: 0 14px; border-radius: 14px;
	border: 1px solid var(--rsv-borde-2); background: var(--rsv-blanco); color: var(--rsv-texto); font-size: 16px;
}
.rsv .rsv-campo textarea { padding: 12px 14px; min-height: 96px; resize: vertical; }
.rsv .rsv-campo input:focus, .rsv .rsv-campo select:focus, .rsv .rsv-campo textarea:focus { border-color: var(--rsv-verde); outline: 2px solid rgba(30,70,52,.25); outline-offset: 0; }
.rsv .rsv-campo .rsv-ayuda { font-size: 13px; color: var(--rsv-texto-2); }
.rsv .rsv-campo.is-error input { border-color: var(--rsv-error); }
.rsv .rsv-campo .rsv-error-txt { font-size: 13px; color: var(--rsv-error); }
.rsv .rsv-mayus { text-transform: uppercase; }
.rsv .rsv-mayus::placeholder { text-transform: none; }
.rsv .rsv-check-linea { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--rsv-texto-2); cursor: pointer; }
.rsv .rsv-check-linea input { width: 20px; height: 20px; accent-color: var(--rsv-verde); }

.rsv .rsv-aviso { padding: 12px 16px; border-radius: 14px; background: #F1E7D3; color: #3E3018; font-size: 14px; display: flex; gap: 10px; align-items: flex-start; }
.rsv .rsv-aviso-error { background: #FBEDEA; color: var(--rsv-error); }
.rsv .rsv-aviso-ok { background: #E3EDE6; color: var(--rsv-verde); }
.rsv .rsv-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; background: var(--rsv-beige); color: var(--rsv-verde); font-size: 12px; font-weight: 700; }
.rsv .rsv-chip-dark { background: var(--rsv-verde); color: var(--rsv-crema); }
.rsv .rsv-chip-off { background: #EDE6D8; color: var(--rsv-texto-2); }

.rsv .rsv-seg { display: flex; gap: 4px; padding: 4px; border-radius: 999px; background: var(--rsv-beige); flex-wrap: wrap; }
.rsv .rsv-seg button { min-height: 40px; padding: 0 16px; border-radius: 999px; font-weight: 600; font-size: 14px; color: var(--rsv-verde); }
.rsv .rsv-seg button[aria-pressed="true"] { background: var(--rsv-noche); color: var(--rsv-crema); }

.rsv .rsv-avatar { width: 40px; height: 40px; flex: none; border-radius: 999px; object-fit: cover; object-position: 50% 25%; background: var(--rsv-verde); color: var(--rsv-beige); display: inline-flex; align-items: center; justify-content: center; font-family: var(--rsv-caps); font-size: 14px; overflow: hidden; }
.rsv .rsv-avatar img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }

/* ---------- Reserva del cliente ---------- */
.rsv-reserva { padding: 32px 16px 48px; border-radius: 0; }
.rsv-reserva .rsv-wrap { max-width: 1200px; margin: 0 auto; display: flex; flex-direction: column; gap: 24px; }
.rsv-reserva .rsv-cabecera { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 18px; }
.rsv-reserva .rsv-cabecera > div { display: flex; flex-direction: column; gap: 10px; }
.rsv .rsv-pasos { display: flex; gap: 4px; flex-wrap: wrap; padding: 6px; border-radius: 26px; background: var(--rsv-beige); }
.rsv .rsv-paso { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 6px; border-radius: 999px; font-weight: 600; font-size: 14px; color: #5F5544; }
.rsv .rsv-paso .rsv-paso-n { width: 32px; height: 32px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; background: var(--rsv-crema); color: #5F5544; }
.rsv .rsv-paso.is-done { color: var(--rsv-verde); }
.rsv .rsv-paso.is-done .rsv-paso-n { background: var(--rsv-oro); color: var(--rsv-noche); }
.rsv .rsv-paso.is-cur { background: var(--rsv-noche); color: var(--rsv-crema); }
.rsv .rsv-paso.is-cur .rsv-paso-n { background: var(--rsv-beige); color: var(--rsv-noche); }

.rsv-reserva .rsv-layout { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.rsv-reserva .rsv-main { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.rsv-reserva .rsv-lateral { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.rsv-reserva .rsv-resumen { display: flex; flex-direction: column; gap: 16px; }
.rsv-reserva .rsv-resumen dl { display: flex; flex-direction: column; }
.rsv-reserva .rsv-resumen dl > div { display: flex; flex-direction: column; gap: 3px; padding: 12px 0; border-bottom: 1px solid rgba(233,223,204,.14); }
.rsv-reserva .rsv-resumen dt { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(244,238,227,.65); }
.rsv-reserva .rsv-resumen dd { font-size: 16px; font-weight: 600; color: var(--rsv-crema); }
.rsv-reserva .rsv-resumen dd.is-vacio { color: rgba(244,238,227,.5); }
.rsv-reserva .rsv-total { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.rsv-reserva .rsv-total span { font-size: 14px; color: rgba(244,238,227,.75); }
.rsv-reserva .rsv-total strong { font-family: var(--rsv-serif); font-weight: 500; font-size: 42px; line-height: 1; color: var(--rsv-beige); }
.rsv-reserva .rsv-nota { padding: 12px 14px; border-radius: 16px; background: rgba(233,223,204,.08); font-size: 13px; color: rgba(244,238,227,.82); }

.rsv .rsv-bandeja { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 16px; border-radius: 16px; background: #F1E7D3; color: #3E3018; font-size: 14px; }
.rsv .rsv-bandeja.is-on { background: var(--rsv-verde); color: var(--rsv-crema); }
.rsv .rsv-bandeja strong { font-size: 18px; }

.rsv .rsv-grupo { display: flex; flex-direction: column; gap: 12px; }
.rsv .rsv-servicios { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px; }
.rsv .rsv-serv {
	position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 14px;
	min-height: 104px; padding: 16px 44px 14px 16px; border-radius: 18px; text-align: left;
	background: var(--rsv-blanco); border: 1px solid var(--rsv-borde); color: var(--rsv-texto);
	transition: border-color .15s, background .15s, transform .1s;
}
.rsv .rsv-serv:hover { border-color: var(--rsv-borde-2); }
.rsv .rsv-serv:active { transform: scale(.99); }
.rsv .rsv-serv-nombre { font-weight: 600; font-size: 15px; line-height: 1.3; }
.rsv .rsv-serv-meta { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.rsv .rsv-serv-dur { font-size: 13px; color: var(--rsv-texto-2); }
.rsv .rsv-serv-precio { font-weight: 700; font-size: 18px; white-space: nowrap; }
.rsv .rsv-serv.is-on { background: var(--rsv-noche); border-color: var(--rsv-noche); color: var(--rsv-crema); }
.rsv .rsv-serv.is-on .rsv-serv-dur { color: rgba(244,238,227,.78); }
.rsv .rsv-serv-check {
	position: absolute; top: 10px; right: 10px; width: 26px; height: 26px; border-radius: 999px;
	background: var(--rsv-oro); color: var(--rsv-noche); display: flex; align-items: center; justify-content: center;
}

.rsv .rsv-barberos { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.rsv .rsv-barbero {
	position: relative; display: flex; flex-direction: column; gap: 12px; padding: 10px 10px 18px; border-radius: 24px; text-align: left;
	background: var(--rsv-blanco); border: 1px solid var(--rsv-borde); color: var(--rsv-texto);
}
.rsv .rsv-barbero.is-on { background: var(--rsv-noche); border-color: var(--rsv-noche); color: var(--rsv-crema); box-shadow: 0 0 0 3px var(--rsv-oro); }
.rsv .rsv-barbero-foto { height: 200px; border-radius: 16px; overflow: hidden; background: var(--rsv-beige); display: flex; align-items: center; justify-content: center; }
.rsv .rsv-barbero-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 45% 25%; }
.rsv .rsv-barbero-foto .rsv-ini { font-family: var(--rsv-caps); font-size: 44px; color: var(--rsv-verde); }
.rsv .rsv-barbero-foto .rsv-duo { display: flex; }
.rsv .rsv-barbero-foto .rsv-duo span { width: 88px; height: 88px; border-radius: 999px; overflow: hidden; border: 3px solid var(--rsv-papel); background: var(--rsv-verde); color: var(--rsv-beige); display: flex; align-items: center; justify-content: center; font-family: var(--rsv-caps); }
.rsv .rsv-barbero-foto .rsv-duo span + span { margin-left: -22px; }
.rsv .rsv-barbero-foto .rsv-duo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; }
.rsv .rsv-barbero-nombre { padding: 0 8px; font-family: var(--rsv-serif); font-size: 26px; line-height: 1.05; }
.rsv .rsv-barbero-sub { padding: 0 8px; font-size: 13px; color: var(--rsv-texto-2); }
.rsv .rsv-barbero.is-on .rsv-barbero-sub { color: var(--rsv-oro-claro); }
.rsv .rsv-barbero .rsv-serv-check { top: 18px; right: 18px; }

.rsv .rsv-cal { display: flex; flex-direction: column; gap: 12px; }
.rsv .rsv-cal-cab { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rsv .rsv-cal-mes { font-family: var(--rsv-serif); font-size: 28px; color: var(--rsv-noche); text-transform: capitalize; }
.rsv .rsv-cal-nav { display: flex; gap: 8px; }
.rsv .rsv-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.rsv .rsv-cal-sem { text-align: center; font-size: 12px; font-weight: 700; letter-spacing: .08em; color: var(--rsv-texto-2); padding: 4px 0; }
.rsv .rsv-dia {
	min-height: 58px; border-radius: 14px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
	background: var(--rsv-blanco); border: 1px solid var(--rsv-borde); color: var(--rsv-texto); padding: 4px 2px;
}
.rsv .rsv-dia-n { font-family: var(--rsv-serif); font-size: 24px; line-height: 1; }
.rsv .rsv-dia-e { font-size: 10.5px; font-weight: 700; color: var(--rsv-verde); white-space: nowrap; }
.rsv .rsv-dia:not(:disabled):hover { border-color: var(--rsv-verde); }
.rsv .rsv-dia.is-on { background: var(--rsv-noche); border-color: var(--rsv-noche); color: var(--rsv-crema); }
.rsv .rsv-dia.is-on .rsv-dia-e { color: var(--rsv-oro-claro); }
.rsv .rsv-dia.is-hoy .rsv-dia-n { text-decoration: underline; text-decoration-color: var(--rsv-oro); text-underline-offset: 4px; }
.rsv .rsv-dia:disabled { background: repeating-linear-gradient(135deg, #EDE4D2 0 4px, var(--rsv-crema) 4px 8px); color: #7A6E58; }
.rsv .rsv-dia:disabled .rsv-dia-e { color: #5F5544; }
.rsv .rsv-dia.is-vacio { visibility: hidden; }
.rsv .rsv-dia.is-pasado:disabled { background: transparent; border-color: transparent; color: #A69C88; }
.rsv .rsv-cal-cargando { opacity: .55; pointer-events: none; }

.rsv .rsv-horas { display: grid; grid-template-columns: repeat(auto-fill, minmax(86px, 1fr)); gap: 8px; }
.rsv .rsv-hora { min-height: 48px; border-radius: 14px; font-weight: 600; font-size: 15px; background: var(--rsv-blanco); color: var(--rsv-noche); border: 1px solid var(--rsv-borde-2); }
.rsv .rsv-hora:not(:disabled):hover { border-color: var(--rsv-verde); }
.rsv .rsv-hora.is-on { background: var(--rsv-noche); color: var(--rsv-crema); border-color: var(--rsv-noche); }
.rsv .rsv-hora:disabled { background: repeating-linear-gradient(135deg, var(--rsv-borde) 0 3px, var(--rsv-crema) 3px 6px); color: #5F5544; border-color: var(--rsv-borde); text-decoration: line-through; }
.rsv .rsv-leyenda { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--rsv-texto-2); }
.rsv .rsv-leyenda span { display: inline-flex; align-items: center; gap: 8px; }
.rsv .rsv-leyenda i { width: 14px; height: 14px; border-radius: 4px; display: inline-block; }

.rsv .rsv-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.rsv .rsv-form .rsv-span { grid-column: 1 / -1; }
.rsv .rsv-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.rsv .rsv-pie-nav { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 22px; border-top: 1px solid var(--rsv-borde); }

.rsv .rsv-hecho { max-width: 680px; width: 100%; margin: 0 auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 20px; padding: 40px 24px; }
.rsv .rsv-hecho-ico { width: 84px; height: 84px; border-radius: 999px; background: var(--rsv-beige); color: var(--rsv-noche); display: flex; align-items: center; justify-content: center; }
.rsv .rsv-hecho .rsv-h1 { color: var(--rsv-crema); }
.rsv .rsv-hecho-tabla { width: 100%; max-width: 460px; text-align: left; border-radius: 18px; background: rgba(233,223,204,.08); padding: 4px 18px; }
.rsv .rsv-hecho-tabla div { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid rgba(233,223,204,.12); font-size: 15px; }
.rsv .rsv-hecho-tabla div:last-child { border-bottom: 0; }
.rsv .rsv-hecho-tabla span { color: rgba(244,238,227,.7); }
.rsv .rsv-hecho-tabla strong { text-align: right; }

/* ---------- Login ---------- */
.rsv-login { padding: 40px 16px; display: flex; justify-content: center; }
.rsv-login .rsv-login-card { width: 100%; max-width: 440px; border-radius: 28px; overflow: hidden; background: var(--rsv-papel); border: 1px solid var(--rsv-borde); display: flex; flex-direction: column; }
.rsv-login .rsv-login-card > .rsv-h2, .rsv-login .rsv-login-card > p, .rsv-login .rsv-login-card > a { margin: 0 28px 16px; }
.rsv-login .rsv-login-card > .rsv-h2 { margin-top: 28px; }
.rsv-login .rsv-login-top { background: var(--rsv-noche); padding: 30px 28px; display: flex; justify-content: center; }
.rsv-login .rsv-login-logo { width: 280px; max-width: 100%; height: auto; }
.rsv-login .rsv-login-form { padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.rsv-login .rsv-link { text-align: center; font-size: 14px; }
.rsv-login .rsv-firma { padding: 0 0 18px; }

/* ---------- Panel ---------- */
.rsv-panel { display: flex; flex-wrap: wrap; align-items: stretch; min-height: 80vh; border-radius: 0; }
.rsv-panel .rsv-side { flex: 1 1 240px; max-width: 100%; background: var(--rsv-noche); color: var(--rsv-beige); padding: 22px 14px; display: flex; flex-direction: column; gap: 20px; }
.rsv-panel .rsv-side-logo { padding: 0 8px; }
.rsv-panel .rsv-side-logo img { width: 190px; max-width: 100%; height: auto; }
.rsv-panel .rsv-side nav { display: flex; flex-wrap: wrap; gap: 4px; }
.rsv-panel .rsv-side nav button { flex: 1 1 160px; display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 14px; border-radius: 14px; font-weight: 600; font-size: 15px; color: var(--rsv-beige); text-align: left; }
.rsv-panel .rsv-side nav button:hover { background: rgba(233,223,204,.08); }
.rsv-panel .rsv-side nav button[aria-current="page"] { background: var(--rsv-beige); color: var(--rsv-noche); }
.rsv-panel .rsv-side-yo { margin-top: auto; display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 18px; background: rgba(233,223,204,.08); }
.rsv-panel .rsv-side-yo .rsv-avatar { width: 42px; height: 42px; background: var(--rsv-beige); color: var(--rsv-noche); }
.rsv-panel .rsv-side-yo div { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.rsv-panel .rsv-side-yo strong { font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rsv-panel .rsv-side-yo span { font-size: 12px; color: rgba(233,223,204,.75); }
.rsv-panel .rsv-side-yo a { color: var(--rsv-beige); font-size: 13px; font-weight: 600; }
.rsv-panel .rsv-side .rsv-firma { color: rgba(233,223,204,.6); text-align: left; padding: 0 8px; }
.rsv-panel .rsv-side .rsv-firma a { color: rgba(233,223,204,.75); }

.rsv-panel .rsv-contenido { flex: 999 1 600px; min-width: 0; padding: 26px 18px 40px; display: flex; flex-direction: column; gap: 20px; }
.rsv-panel .rsv-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 14px; }
.rsv-panel .rsv-cab > div:first-child { display: flex; flex-direction: column; gap: 6px; }
.rsv-panel .rsv-cab .rsv-h1 { font-size: clamp(2rem, 3.6vw, 2.8rem); }
.rsv-panel .rsv-acciones { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.rsv-panel .rsv-acciones input[type="date"] { min-height: 44px; border-radius: 999px; border: 1px solid var(--rsv-borde-2); background: var(--rsv-papel); padding: 0 14px; color: var(--rsv-verde); font-weight: 600; }

.rsv-panel .rsv-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; }
.rsv-panel .rsv-stat { border-radius: 20px; padding: 16px 18px; background: var(--rsv-papel); border: 1px solid var(--rsv-borde); display: flex; flex-direction: column; gap: 6px; }
.rsv-panel .rsv-stat span { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: #5F5544; }
.rsv-panel .rsv-stat strong { font-family: var(--rsv-serif); font-weight: 500; font-size: 36px; line-height: 1; color: var(--rsv-noche); }
.rsv-panel .rsv-stat.is-dark { background: var(--rsv-noche); border-color: var(--rsv-noche); }
.rsv-panel .rsv-stat.is-dark span { color: var(--rsv-oro-claro); }
.rsv-panel .rsv-stat.is-dark strong { color: var(--rsv-crema); }

.rsv-panel .rsv-dos { display: flex; flex-wrap: wrap; gap: 20px; align-items: flex-start; }
.rsv-panel .rsv-dos > .rsv-ancho { flex: 999 1 480px; min-width: 0; }
.rsv-panel .rsv-dos > .rsv-estrecho { flex: 1 1 320px; min-width: 0; }

/* Agenda */
.rsv-panel .rsv-agenda { background: var(--rsv-papel); border: 1px solid var(--rsv-borde); border-radius: var(--rsv-r); overflow-x: auto; }
.rsv-panel .rsv-agenda-in { min-width: calc(58px + var(--cols, 1) * 200px); }
.rsv-panel .rsv-agenda-cab { display: flex; border-bottom: 1px solid var(--rsv-borde); }
.rsv-panel .rsv-agenda-cab > div:first-child { width: 58px; flex: none; }
.rsv-panel .rsv-agenda-col-cab { flex: 1 1 0; min-width: 0; padding: 12px 14px; display: flex; align-items: center; gap: 10px; border-left: 1px solid var(--rsv-borde); }
.rsv-panel .rsv-agenda-col-cab strong { font-size: 15px; color: var(--rsv-noche); display: block; }
.rsv-panel .rsv-agenda-col-cab span { font-size: 12px; color: var(--rsv-texto-2); }
.rsv-panel .rsv-agenda-cuerpo { display: flex; }
.rsv-panel .rsv-agenda-horas { width: 58px; flex: none; }
.rsv-panel .rsv-agenda-horas div { box-sizing: border-box; padding: 4px 8px 0 0; text-align: right; font-size: 12px; font-weight: 600; color: #5F5544; }
.rsv-panel .rsv-agenda-col { flex: 1 1 0; min-width: 0; position: relative; border-left: 1px solid var(--rsv-borde); }
.rsv-panel .rsv-ev {
	position: absolute; left: 5px; right: 5px; overflow: hidden; padding: 5px 9px; border-radius: 12px;
	display: flex; flex-direction: column; gap: 1px; text-align: left; background: var(--rsv-beige); color: var(--rsv-noche);
	border: 1px solid rgba(15,42,31,.08);
}
.rsv-panel button.rsv-ev:hover { box-shadow: 0 0 0 2px var(--rsv-oro); }
.rsv-panel .rsv-ev.is-largo { background: var(--rsv-verde); color: var(--rsv-crema); }
.rsv-panel .rsv-ev small { font-size: 11px; font-weight: 700; color: #5E4628; }
.rsv-panel .rsv-ev.is-largo small { color: var(--rsv-oro-claro); }
.rsv-panel .rsv-ev strong { font-size: 13px; line-height: 1.25; }
.rsv-panel .rsv-ev span { font-size: 12px; opacity: .85; }
.rsv-panel .rsv-ev.is-cierre { background: repeating-linear-gradient(135deg, #F1E7D3 0 6px, var(--rsv-papel) 6px 12px); color: #3E3018; border: 1px dashed #8A6A38; }
.rsv-panel .rsv-ev.is-cierre small { color: #5E4628; }
.rsv-panel .rsv-agenda-vacia { padding: 40px 20px; text-align: center; color: var(--rsv-texto-2); }

/* Formularios oscuros (cierres) */
.rsv .rsv-dark-form { background: var(--rsv-noche); color: var(--rsv-crema); border-radius: var(--rsv-r); padding: 22px; display: flex; flex-direction: column; gap: 16px; }
.rsv .rsv-dark-form .rsv-campo > label { color: var(--rsv-oro-claro); font-size: 13px; }
.rsv .rsv-dark-form .rsv-campo input, .rsv .rsv-dark-form .rsv-campo select { background: var(--rsv-verde); color: var(--rsv-crema); border-color: rgba(233,223,204,.25); color-scheme: dark; min-height: 48px; }
.rsv .rsv-dark-form .rsv-h2 { color: var(--rsv-crema); }
.rsv .rsv-dark-form p { color: rgba(244,238,227,.78); font-size: 14px; }
.rsv .rsv-dark-form .rsv-seg { background: rgba(233,223,204,.1); border-radius: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rsv .rsv-dark-form .rsv-seg button { color: var(--rsv-beige); border-radius: 12px; min-height: 44px; padding: 0 6px; }
.rsv .rsv-dark-form .rsv-seg button[aria-pressed="true"] { background: var(--rsv-beige); color: var(--rsv-noche); }
.rsv .rsv-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }

/* Listas */
.rsv .rsv-lista { display: flex; flex-direction: column; gap: 8px; }
.rsv .rsv-item { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 16px; background: var(--rsv-blanco); border: 1px solid var(--rsv-borde); }
.rsv .rsv-item-txt { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rsv .rsv-item-txt strong { font-size: 14px; color: var(--rsv-noche); }
.rsv .rsv-item-txt span { font-size: 12px; color: var(--rsv-texto-2); }
.rsv .rsv-vacio { padding: 18px; text-align: center; color: var(--rsv-texto-2); font-size: 14px; border: 1px dashed var(--rsv-borde-2); border-radius: 16px; }

/* Historial */
.rsv .rsv-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.rsv .rsv-filtros .rsv-campo { flex: 1 1 160px; }
.rsv .rsv-filtros .rsv-campo input, .rsv .rsv-filtros .rsv-campo select { min-height: 46px; }
.rsv .rsv-tabla { width: 100%; border-collapse: collapse; font-size: 14px; background: var(--rsv-blanco); border-radius: 18px; overflow: hidden; }
.rsv .rsv-tabla th { text-align: left; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: #5F5544; background: var(--rsv-papel); padding: 12px 14px; border-bottom: 1px solid var(--rsv-borde); }
.rsv .rsv-tabla td { padding: 12px 14px; border-bottom: 1px solid var(--rsv-borde); vertical-align: top; }
.rsv .rsv-tabla tr:last-child td { border-bottom: 0; }
.rsv .rsv-tabla td small { display: block; color: var(--rsv-texto-2); font-size: 12px; }
.rsv .rsv-estado { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.rsv .rsv-estado-confirmada { background: #E3EDE6; color: var(--rsv-verde); }
.rsv .rsv-estado-cancelada, .rsv .rsv-estado-anulada { background: #F4E4E0; color: var(--rsv-error); }
.rsv .rsv-paginas { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }

/* Servicios (admin) */
.rsv .rsv-serv-admin { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.3fr) 110px 120px auto; gap: 8px; align-items: end; padding: 12px; border-radius: 16px; background: var(--rsv-blanco); border: 1px solid var(--rsv-borde); }
.rsv .rsv-serv-admin .rsv-campo input, .rsv .rsv-serv-admin .rsv-campo select { min-height: 44px; font-size: 15px; }
.rsv .rsv-serv-admin .rsv-campo > label { font-size: 12px; }
.rsv .rsv-serv-admin-acc { display: flex; gap: 6px; align-items: center; }
.rsv .rsv-serv-admin.is-off { opacity: .65; }

/* Empleados (admin) */
.rsv .rsv-emp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.rsv .rsv-emp { border-radius: 22px; overflow: hidden; background: var(--rsv-blanco); border: 1px solid var(--rsv-borde); display: flex; flex-direction: column; }
.rsv .rsv-emp-foto { height: 220px; background: var(--rsv-verde); display: flex; align-items: center; justify-content: center; color: var(--rsv-beige); font-family: var(--rsv-caps); font-size: 52px; }
.rsv .rsv-emp-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 45% 25%; }
.rsv .rsv-emp-cuerpo { padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.rsv .rsv-emp-cuerpo h3 { font-family: var(--rsv-serif); font-weight: 500; font-size: 26px; line-height: 1.05; color: var(--rsv-noche); }
.rsv .rsv-emp-chips { display: flex; gap: 6px; flex-wrap: wrap; }
.rsv .rsv-emp-acc { display: flex; gap: 6px; flex-wrap: wrap; }

/* Perfil */
.rsv .rsv-perfil-foto { display: flex; flex-wrap: wrap; gap: 22px; align-items: center; }
.rsv .rsv-perfil-img { width: 150px; height: 150px; flex: none; border-radius: 999px; overflow: hidden; background: var(--rsv-verde); color: var(--rsv-beige); display: flex; align-items: center; justify-content: center; font-family: var(--rsv-caps); font-size: 46px; box-shadow: 0 0 0 4px var(--rsv-papel), 0 0 0 6px var(--rsv-oro); }
.rsv .rsv-perfil-img img { width: 100%; height: 100%; object-fit: cover; object-position: 45% 25%; }
.rsv .rsv-perfil-foto > div:last-child { flex: 1 1 220px; display: flex; flex-direction: column; gap: 10px; }
.rsv .rsv-file { position: absolute; width: 1px; height: 1px; opacity: 0; }

/* Horario (admin) */
.rsv .rsv-horario { display: flex; flex-direction: column; gap: 8px; }
.rsv .rsv-horario-dia { display: grid; grid-template-columns: 130px auto 1fr 1fr; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 14px; background: var(--rsv-blanco); border: 1px solid var(--rsv-borde); }
.rsv .rsv-horario-dia input[type="time"] { min-height: 44px; border-radius: 12px; border: 1px solid var(--rsv-borde-2); padding: 0 10px; background: var(--rsv-blanco); width: 100%; }
.rsv .rsv-horario-dia input[type="time"]:disabled { opacity: .45; }

/* Modal */
.rsv .rsv-modal-fondo { position: fixed; inset: 0; z-index: 100000; background: rgba(15,42,31,.55); display: flex; align-items: center; justify-content: center; padding: 16px; }
.rsv .rsv-modal { width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow: auto; background: var(--rsv-papel); border-radius: 26px; padding: 24px; display: flex; flex-direction: column; gap: 16px; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.rsv .rsv-modal-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.rsv .rsv-modal dl > div { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--rsv-borde); font-size: 15px; }
.rsv .rsv-modal dt { color: var(--rsv-texto-2); }
.rsv .rsv-modal dd { font-weight: 600; text-align: right; }

.rsv .rsv-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 100001; background: var(--rsv-noche); color: var(--rsv-crema); padding: 12px 20px; border-radius: 999px; font-weight: 600; font-size: 14px; box-shadow: 0 10px 30px rgba(0,0,0,.25); max-width: calc(100% - 32px); }
.rsv .rsv-toast.is-error { background: var(--rsv-error); }

@media (max-width: 720px) {
	.rsv-reserva { padding: 24px 12px 40px; }
	.rsv .rsv-card, .rsv .rsv-card-dark { padding: 18px; }
	.rsv .rsv-pasos { width: 100%; }
	.rsv .rsv-paso { flex: 1 1 auto; justify-content: center; padding: 0 10px 0 4px; font-size: 13px; }
	.rsv .rsv-dia { min-height: 52px; border-radius: 12px; }
	.rsv .rsv-dia-n { font-size: 20px; }
	.rsv .rsv-dia-e { font-size: 9.5px; }
	.rsv .rsv-cal-grid { gap: 4px; }
	.rsv .rsv-pie-nav .rsv-btn { flex: 1 1 auto; }
	.rsv-panel .rsv-contenido { padding: 20px 12px 32px; }
	.rsv-panel .rsv-side { padding: 16px 12px; }
	.rsv-panel .rsv-side-logo img { width: 160px; }
	.rsv .rsv-serv-admin { grid-template-columns: 1fr 1fr; }
	.rsv .rsv-serv-admin > .rsv-campo:first-child { grid-column: 1 / -1; }
	.rsv .rsv-serv-admin-acc { grid-column: 1 / -1; }
	.rsv .rsv-horario-dia { grid-template-columns: 1fr auto; }
	.rsv .rsv-horario-dia input[type="time"] { grid-column: span 1; }
	.rsv .rsv-tabla thead { display: none; }
	.rsv .rsv-tabla, .rsv .rsv-tabla tbody, .rsv .rsv-tabla tr, .rsv .rsv-tabla td { display: block; width: 100%; }
	.rsv .rsv-tabla tr { padding: 10px 0; border-bottom: 1px solid var(--rsv-borde); }
	.rsv .rsv-tabla td { border: 0; padding: 4px 14px; }
	.rsv .rsv-tabla td[data-l]::before { content: attr(data-l); display: block; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #5F5544; }
}

/* Ancho completo dentro de temas de bloques y clásicos */
.rsv.alignfull { width: auto; max-width: none; margin-left: 0; margin-right: 0; }
.is-layout-constrained > .rsv.alignfull { margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px)) !important; margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px)) !important; max-width: none !important; }

/* Pantalla completa (plantilla propia del plugin) */
html:has(body.rsv-pantalla) { margin: 0 !important; padding: 0 !important; background: #F4EEE3; }
body.rsv-pantalla { margin: 0 !important; padding: 0 !important; background: #F4EEE3; min-height: 100vh; min-height: 100dvh; overflow-x: hidden; }
body.rsv-pantalla > .rsv { width: 100%; max-width: none; margin: 0; min-height: 100vh; min-height: 100dvh; }
body.rsv-pantalla > .rsv-reserva { padding-top: max(32px, env(safe-area-inset-top)); padding-bottom: max(48px, env(safe-area-inset-bottom)); }
body.rsv-pantalla > .rsv-login { align-items: center; }
body.rsv-pantalla > .rsv-panel { min-height: 100vh; min-height: 100dvh; }
@media (min-width: 900px) {
	body.rsv-pantalla > .rsv-panel { height: 100vh; height: 100dvh; flex-wrap: nowrap; overflow: hidden; }
	body.rsv-pantalla > .rsv-panel .rsv-side { flex: 0 0 248px; overflow-y: auto; }
	body.rsv-pantalla > .rsv-panel .rsv-contenido { overflow-y: auto; }
}

/* Blindaje frente a estilos de botones del tema (textos que no se salgan de las tarjetas) */
.rsv button, .rsv button * { white-space: normal !important; overflow-wrap: anywhere; word-break: normal; text-transform: none; letter-spacing: normal; text-decoration: none; }
.rsv button.rsv-serv, .rsv button.rsv-barbero, .rsv button.rsv-ev { width: auto; max-width: 100%; height: auto; min-width: 0; overflow: hidden; text-align: left; font-family: var(--rsv-sans); line-height: 1.3; }
.rsv button.rsv-serv { display: flex !important; flex-direction: column; align-items: stretch; justify-content: space-between; padding: 16px 44px 14px 16px !important; font-size: 15px; }
.rsv .rsv-serv-nombre, .rsv .rsv-serv-meta, .rsv .rsv-barbero-nombre, .rsv .rsv-barbero-sub { display: block; width: 100%; min-width: 0; }
.rsv .rsv-serv-meta { display: flex !important; }
.rsv .rsv-servicios > *, .rsv .rsv-barberos > * { min-width: 0; }
.rsv .rsv-hora, .rsv .rsv-dia, .rsv .rsv-paso { white-space: nowrap !important; }

/* Indicador "en vivo" de la agenda */
.rsv .rsv-vivo { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--rsv-texto-2); }
.rsv .rsv-vivo i { width: 8px; height: 8px; border-radius: 99px; background: #2F8F5B; box-shadow: 0 0 0 0 rgba(47,143,91,.5); animation: rsv-latido 2s infinite; }
@keyframes rsv-latido { 0% { box-shadow: 0 0 0 0 rgba(47,143,91,.5); } 70% { box-shadow: 0 0 0 8px rgba(47,143,91,0); } 100% { box-shadow: 0 0 0 0 rgba(47,143,91,0); } }
@media (prefers-reduced-motion: reduce) { .rsv .rsv-vivo i { animation: none; } }
.rsv .rsv-ev.is-nueva { box-shadow: 0 0 0 3px var(--rsv-oro); }
.rsv .rsv-dia *, .rsv .rsv-hora *, .rsv .rsv-paso * { white-space: nowrap !important; }

/* ---------- Blindaje frente a estilos del tema ----------
 * Muchos temas aplican a todos los botones white-space:nowrap, alturas fijas,
 * mayúsculas o letter-spacing. Dentro del plugin lo anulamos para que ningún
 * texto se salga de su tarjeta. */
.rsv button, .rsv [role="button"] {
	white-space: normal !important;
	height: auto;
	max-width: 100%;
	text-transform: none;
	letter-spacing: normal;
	text-decoration: none;
	box-shadow: none;
	text-shadow: none;
	overflow-wrap: anywhere;
	word-break: normal;
	hyphens: auto;
}
.rsv .rsv-serv, .rsv .rsv-barbero, .rsv .rsv-ev, .rsv .rsv-item, .rsv .rsv-emp, .rsv .rsv-stat,
.rsv .rsv-serv-admin, .rsv .rsv-horario-dia, .rsv .rsv-card, .rsv .rsv-card-dark, .rsv .rsv-bandeja, .rsv .rsv-aviso {
	min-width: 0;
	max-width: 100%;
	overflow-wrap: anywhere;
}
.rsv .rsv-serv { width: 100%; height: auto !important; line-height: 1.3 !important; text-align: left !important; align-items: stretch; padding: 16px 44px 14px 16px !important; }
.rsv .rsv-serv > span, .rsv .rsv-barbero > span, .rsv .rsv-ev > *, .rsv .rsv-item-txt > *, .rsv .rsv-emp-cuerpo > * { min-width: 0; max-width: 100%; }
.rsv .rsv-serv-nombre, .rsv .rsv-barbero-nombre, .rsv .rsv-barbero-sub { display: block; white-space: normal !important; overflow-wrap: anywhere; }
.rsv .rsv-serv-meta { display: flex; width: 100%; flex-wrap: wrap; }
.rsv .rsv-barbero { width: 100%; height: auto !important; text-align: left !important; padding: 10px 10px 18px !important; line-height: 1.3 !important; }
.rsv .rsv-ev { line-height: 1.25 !important; padding: 5px 9px !important; }
.rsv .rsv-ev strong, .rsv .rsv-ev span, .rsv .rsv-ev small { display: block; overflow: hidden; text-overflow: ellipsis; }
.rsv .rsv-ev strong { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; white-space: normal; }
.rsv .rsv-hora, .rsv .rsv-dia { padding-left: 2px !important; padding-right: 2px !important; line-height: 1.1 !important; height: auto; }
.rsv .rsv-dia-e { white-space: nowrap !important; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.rsv .rsv-paso { white-space: nowrap !important; line-height: 1.2 !important; height: auto !important; }
.rsv .rsv-btn { white-space: nowrap !important; line-height: 1.2 !important; height: auto; text-align: center; }
.rsv .rsv-seg button, .rsv .rsv-side nav button { line-height: 1.2 !important; height: auto; }
.rsv .rsv-servicios, .rsv .rsv-barberos, .rsv .rsv-emp-grid, .rsv .rsv-horas, .rsv .rsv-cal-grid, .rsv .rsv-form, .rsv .rsv-grid2, .rsv .rsv-stats { min-width: 0; }
.rsv .rsv-servicios > *, .rsv .rsv-barberos > *, .rsv .rsv-emp-grid > *, .rsv .rsv-form > * { min-width: 0; }
.rsv-reserva .rsv-main, .rsv-reserva .rsv-lateral, .rsv-panel .rsv-contenido { overflow-wrap: anywhere; }
.rsv .rsv-live { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; color: var(--rsv-texto-2); }
.rsv .rsv-live i { width: 8px; height: 8px; border-radius: 99px; background: #2E8B57; box-shadow: 0 0 0 0 rgba(46,139,87,.5); animation: rsv-pulso 2s infinite; }
@keyframes rsv-pulso { 0% { box-shadow: 0 0 0 0 rgba(46,139,87,.5); } 70% { box-shadow: 0 0 0 8px rgba(46,139,87,0); } 100% { box-shadow: 0 0 0 0 rgba(46,139,87,0); } }
@media (prefers-reduced-motion: reduce) { .rsv .rsv-live i { animation: none; } }
.rsv, .rsv.alignfull { box-sizing: border-box; }
body.rsv-pantalla { overflow-x: hidden; }
.rsv .rsv-stat span, .rsv .rsv-stat strong, .rsv .rsv-eyebrow, .rsv .rsv-chip, .rsv .rsv-muted, .rsv label { white-space: normal !important; overflow-wrap: anywhere; }
.rsv .rsv-stat strong { font-size: clamp(26px, 6vw, 36px); }
.rsv .rsv-item-txt strong, .rsv .rsv-item-txt span { white-space: normal !important; overflow-wrap: anywhere; }

/* Añadir al calendario */
.rsv .rsv-hecho-acc { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.rsv .rsv-cal-menu { position: relative; }
.rsv .rsv-cal-opciones { position: absolute; left: 50%; bottom: calc(100% + 10px); transform: translateX(-50%); z-index: 5; min-width: 240px; background: var(--rsv-papel); color: var(--rsv-texto); border-radius: 18px; padding: 8px; box-shadow: 0 16px 40px rgba(0,0,0,.35); display: flex; flex-direction: column; gap: 2px; text-align: left; }
.rsv .rsv-cal-opciones a, .rsv .rsv-cal-opciones button { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 0 14px; border-radius: 12px; color: var(--rsv-noche); font-weight: 600; font-size: 15px; text-decoration: none; width: 100%; text-align: left; }
.rsv .rsv-cal-opciones a:hover, .rsv .rsv-cal-opciones button:hover { background: var(--rsv-beige); }
.rsv .rsv-cal-opciones small { font-weight: 400; color: var(--rsv-texto-2); font-size: 12px; margin-left: auto; }
.rsv .rsv-ayuda, .rsv .rsv-campo > *, .rsv p, .rsv li, .rsv dd, .rsv dt { white-space: normal !important; overflow-wrap: anywhere; }
.rsv .rsv-cal-opciones { min-width: 280px; max-width: calc(100vw - 32px); } .rsv .rsv-cal-opciones a, .rsv .rsv-cal-opciones button { white-space: nowrap !important; }
