#rous-booking-app {
  --rb-navy: #24187f; --rb-blue: #3423ad; --rb-teal: #01aebb; --rb-mint: #ece9ff;
  --rb-ink: #292451; --rb-muted: #6a6785; --rb-line: #dedcf1; --rb-bg: #f8f7fd;
  --rb-white: #fff; --rb-danger: #b42318; --rb-warning: #9a6700; --rb-radius: 18px;
  color: var(--rb-ink); background: var(--rb-bg); font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",Inter,ui-sans-serif,system-ui,sans-serif;
  line-height: 1.5; min-height: 100vh; -webkit-font-smoothing: antialiased;
  animation: rousAppEnter 420ms ease-out both;
}
@keyframes rousAppEnter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@keyframes bookingStepEnter { from { opacity:0; transform:translateX(6px); } to { opacity:1; transform:translateX(0); } }
#rous-booking-app *, #rous-booking-app *::before, #rous-booking-app *::after { box-sizing: border-box; }
#rous-booking-app button, #rous-booking-app input, #rous-booking-app select, #rous-booking-app textarea { font: inherit; }
#rous-booking-app button { cursor: pointer; }
#rous-booking-app a { color: inherit; }
#rous-booking-app .rb-shell { width: min(1120px, calc(100% - 32px)); margin: 0 auto; }
#rous-booking-app .rb-topbar { background: rgba(255,255,255,.92); border-bottom: 1px solid var(--rb-line); position: sticky; top: 0; z-index: 10; backdrop-filter: blur(14px); }
#rous-booking-app .rb-topbar-inner { min-height: 72px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
#rous-booking-app .rb-brand { display:flex; align-items:center; gap:11px; text-decoration:none; font-weight:800; letter-spacing:-.02em; color:var(--rb-navy); }
#rous-booking-app .rb-brand-logo { display:block; width:210px; height:42px; object-fit:contain; object-position:left center; }
#rous-booking-app .rb-brand-fallback { display:none; color:var(--rb-navy); font-size:1.25rem; font-weight:850; }
#rous-booking-app .rb-brand-logo:not([src]), #rous-booking-app .rb-brand-logo[src=""] { display:none; }
#rous-booking-app .rb-brand-logo:not([src]) + .rb-brand-fallback, #rous-booking-app .rb-brand-logo[src=""] + .rb-brand-fallback { display:block; }
#rous-booking-app .rb-mark { width:38px; height:38px; border-radius:12px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,var(--rb-blue),var(--rb-teal)); box-shadow:0 7px 20px rgba(23,107,135,.22); }
#rous-booking-app .rb-mark svg { width:22px; height:22px; }
#rous-booking-app .rb-trust { display:flex; align-items:center; gap:7px; color:var(--rb-muted); font-size:.88rem; }
#rous-booking-app .rb-trust svg { width:17px; color:var(--rb-teal); }
#rous-booking-app .rb-top-status { display:flex; align-items:center; gap:10px; }
#rous-booking-app .rb-connection { padding:5px 9px; border-radius:999px; color:#765405; background:#fff4d6; font-size:.72rem; font-weight:800; }
#rous-booking-app .rb-connection[data-state="online"] { color:#08736e; background:#e7f7f3; }
#rous-booking-app .rb-connection[data-state="offline"] { color:#b42318; background:#feeceb; }
#rous-booking-app .rb-hero { padding:54px 0 26px; text-align:center; }
#rous-booking-app.is-process-active .rb-hero,
#rous-booking-app.is-process-active .rb-welcome-card { display:none; }
#rous-booking-app.is-process-active #booking-progress-anchor { padding-top:1px; }
#rous-booking-app #booking-progress-anchor { scroll-margin-top:calc(72px + 16px); }
#rous-booking-app .rb-eyebrow { color:var(--rb-blue); font-weight:750; font-size:.78rem; letter-spacing:.1em; text-transform:uppercase; }
#rous-booking-app h1 { margin:10px auto 12px; max-width:700px; color:var(--rb-navy); font-size:clamp(2rem,4vw,3.35rem); line-height:1.06; letter-spacing:-.045em; }
#rous-booking-app .rb-lead { max-width:650px; margin:0 auto; color:var(--rb-muted); font-size:1.05rem; }
#rous-booking-app .rb-welcome-card { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr); gap:24px; align-items:center; margin:0 auto 28px; padding:22px 24px; border:1px solid rgba(52,35,173,.14); border-radius:20px; color:var(--rb-ink); background:linear-gradient(135deg,#fff 0%,#f3f0ff 68%,#e6fbfc 100%); box-shadow:0 14px 38px rgba(52,35,173,.08); }
#rous-booking-app .rb-welcome-copy { display:grid; gap:5px; }
#rous-booking-app .rb-welcome-copy > span { color:var(--rb-blue); font-size:.73rem; font-weight:850; letter-spacing:.07em; text-transform:uppercase; }
#rous-booking-app .rb-welcome-copy > strong { color:var(--rb-navy); font-size:clamp(1.08rem,2vw,1.35rem); letter-spacing:-.02em; }
#rous-booking-app .rb-welcome-copy p { max-width:680px; margin:3px 0 0; color:var(--rb-muted); font-size:.88rem; line-height:1.55; }
#rous-booking-app .rb-welcome-values { display:grid; gap:8px; }
#rous-booking-app .rb-welcome-values span { display:flex; align-items:center; gap:9px; padding:9px 11px; border:1px solid rgba(52,35,173,.1); border-radius:12px; color:var(--rb-navy); background:rgba(255,255,255,.78); font-size:.8rem; font-weight:800; }
#rous-booking-app .rb-welcome-values i { width:25px; height:25px; border-radius:8px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--rb-blue),#2554ba); font-size:.68rem; font-style:normal; }
#rous-booking-app .rb-progress { margin:28px auto 30px; max-width:880px; }
#rous-booking-app .rb-progress-track { display:grid; grid-template-columns:repeat(5,1fr); position:relative; }
#rous-booking-app .rb-progress-track.rb-progress-six { grid-template-columns:repeat(6,1fr); }
#rous-booking-app .rb-progress-track::before { content:""; height:2px; background:var(--rb-line); position:absolute; left:10%; right:10%; top:18px; }
#rous-booking-app .rb-progress-item { position:relative; z-index:1; text-align:center; color:var(--rb-muted); font-size:.78rem; }
#rous-booking-app .rb-step-dot { width:36px; height:36px; border:2px solid var(--rb-line); border-radius:50%; margin:0 auto 7px; display:grid; place-items:center; background:var(--rb-white); font-weight:800; }
#rous-booking-app .rb-progress-item.is-active { color:var(--rb-blue); font-weight:700; }
#rous-booking-app .rb-progress-item.is-active .rb-step-dot, #rous-booking-app .rb-progress-item.is-done .rb-step-dot { color:white; border-color:var(--rb-blue); background:var(--rb-blue); }
#rous-booking-app .rb-mobile-progress { display:none; margin:20px 0; }
#rous-booking-app .rb-mobile-progress strong { display:block; margin-bottom:8px; }
#rous-booking-app .rb-mobile-bar { height:6px; border-radius:9px; background:var(--rb-line); overflow:hidden; }
#rous-booking-app .rb-mobile-bar span { height:100%; display:block; background:var(--rb-teal); transition:width .25s; }
#rous-booking-app .rb-panel { background:var(--rb-white); border:1px solid var(--rb-line); border-radius:24px; padding:clamp(22px,4vw,42px); box-shadow:0 18px 60px rgba(16,42,67,.08); margin-bottom:56px; }
#rous-booking-app .rb-step[hidden] { display:none; }
#rous-booking-app .rb-step:not([hidden]) { animation:bookingStepEnter 240ms ease-out both; }
#rous-booking-app .rb-step-head { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:28px; }
#rous-booking-app h2 { color:var(--rb-navy); font-size:clamp(1.45rem,3vw,2rem); letter-spacing:-.025em; margin:0 0 5px; }
#rous-booking-app h3 { color:var(--rb-navy); margin:0 0 5px; font-size:1.05rem; }
#rous-booking-app p { margin-top:0; }
#rous-booking-app .rb-subtle { color:var(--rb-muted); font-size:.92rem; }
#rous-booking-app .rb-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#rous-booking-app .rb-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
#rous-booking-app .rb-choice { border:1.5px solid var(--rb-line); border-radius:var(--rb-radius); padding:20px; background:#fff; text-align:left; transition:.18s; position:relative; }
#rous-booking-app .rb-choice:hover { transform:translateY(-2px); border-color:#9ccfcc; box-shadow:0 10px 24px rgba(16,42,67,.08); }
#rous-booking-app .rb-choice.is-selected { border-color:var(--rb-blue); background:linear-gradient(145deg,#fff,#f0eeff); box-shadow:0 0 0 3px rgba(52,35,173,.13),0 12px 28px rgba(52,35,173,.1); }
#rous-booking-app .service-card.is-selected::after { content:"✓ Seleccionado"; position:absolute; right:14px; top:14px; padding:5px 9px; border-radius:999px; color:#fff; background:linear-gradient(135deg,var(--rb-blue),#2554ba); font-size:.7rem; font-weight:800; }
#rous-booking-app .service-card:disabled { cursor:not-allowed; opacity:.48; transform:none; box-shadow:none; background:#f3f5f5; border-color:var(--rb-line); }
#rous-booking-app .service-card:disabled::after { content:"No disponible"; position:absolute; right:14px; top:14px; padding:5px 9px; border-radius:999px; color:var(--rb-muted); background:#e5ebec; font-size:.7rem; font-weight:800; }
#rous-booking-app .rb-choice-badge { display:inline-flex; padding:5px 9px; border-radius:999px; background:var(--rb-mint); color:var(--rb-blue); font-weight:750; font-size:.74rem; margin-bottom:12px; }
#rous-booking-app .rb-choice-meta { display:flex; gap:15px; margin-top:15px; color:var(--rb-muted); font-size:.84rem; }
#rous-booking-app .rb-field { display:flex; flex-direction:column; gap:7px; min-width:0; }
#rous-booking-app .rb-field label, #rous-booking-app .rb-label { color:var(--rb-navy); font-weight:700; font-size:.88rem; }
#rous-booking-app .rb-field-help { margin-top:-2px; color:var(--rb-muted); font-size:.82rem; line-height:1.4; }
#rous-booking-app input, #rous-booking-app select, #rous-booking-app textarea { width:100%; border:1.5px solid var(--rb-line); background:#fff; color:var(--rb-ink); border-radius:12px; min-height:48px; padding:11px 13px; outline:none; transition:.15s; }
#rous-booking-app textarea { min-height:92px; resize:vertical; }
#rous-booking-app input:focus, #rous-booking-app select:focus, #rous-booking-app textarea:focus, #rous-booking-app button:focus-visible { border-color:var(--rb-teal); box-shadow:0 0 0 3px rgba(32,163,158,.16); outline:none; }
#rous-booking-app .rb-field-error { color:var(--rb-danger); font-size:.8rem; min-height:1.2em; font-weight:700; }
#rous-booking-app .rb-needs-attention { border-color:#d92d20 !important; box-shadow:0 0 0 4px rgba(217,45,32,.12) !important; scroll-margin-top:150px; }
#rous-booking-app .rb-inline-validation { display:flex; align-items:flex-start; gap:8px; margin:10px 0 0; padding:11px 13px; border:1px solid #f3b7b2; border-radius:12px; color:#9f251c; background:#fff1f0; font-size:.82rem; font-weight:750; }
#rous-booking-app .rb-inline-validation::before { content:"!"; flex:0 0 20px; height:20px; border-radius:50%; display:grid; place-items:center; color:#fff; background:#d92d20; font-size:.72rem; }
#rous-booking-app .rb-span-2 { grid-column:span 2; }
#rous-booking-app .rb-callout { border-radius:14px; padding:14px 16px; display:flex; gap:11px; align-items:flex-start; margin:18px 0; background:#f1f8fb; color:#315568; font-size:.9rem; }
#rous-booking-app .rb-callout svg { width:19px; min-width:19px; }
#rous-booking-app .rb-callout.warning { background:#fff8e6; color:#765405; }
#rous-booking-app .rb-date-occupied div { display:grid; gap:4px; }
#rous-booking-app .rb-date-occupied span { color:#765405; line-height:1.45; }
#rous-booking-app .rb-turns { display:flex; flex-wrap:wrap; gap:10px; }
#rous-booking-app .rb-pill { min-height:43px; padding:9px 15px; border-radius:999px; border:1.5px solid var(--rb-line); background:#fff; color:var(--rb-ink); font-weight:700; }
#rous-booking-app .rb-pill.is-selected { color:#fff; border-color:var(--rb-blue); background:var(--rb-blue); }
#rous-booking-app .rb-calendar { margin-top:20px; border:1px solid var(--rb-line); border-radius:16px; overflow:hidden; }
#rous-booking-app .rb-cal-head { display:flex; justify-content:space-between; align-items:center; padding:15px 17px; border-bottom:1px solid var(--rb-line); }
#rous-booking-app .rb-icon-btn { width:40px; height:40px; border:1px solid var(--rb-line); border-radius:11px; background:#fff; display:grid; place-items:center; }
#rous-booking-app .rb-icon-btn svg { width:19px; }
#rous-booking-app .rb-week, #rous-booking-app .rb-days { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; padding:6px 12px; }
#rous-booking-app .rb-week span { text-align:center; color:var(--rb-muted); font-size:.72rem; font-weight:800; padding:7px 0; text-transform:uppercase; }
#rous-booking-app .rb-day { min-height:55px; border:1px solid #e1e1e8; border-radius:10px; background:#f1f1f5; position:relative; font-weight:700; color:#8e8e93; }
#rous-booking-app .rb-day.available { border-color:#92e5e9; color:#146f78; background:#dffbfc; }
#rous-booking-app .rb-day.partial { border-color:#c8bdf8; color:var(--rb-blue); background:#ece9ff; }
#rous-booking-app .rb-day::after { content:""; width:5px; height:5px; border-radius:50%; background:var(--rb-teal); position:absolute; bottom:7px; left:calc(50% - 2px); }
#rous-booking-app .rb-day.partial::after { background:#967af5; }
#rous-booking-app .rb-day.occupied { border-color:#d5d5dc; color:#8e8e93; cursor:not-allowed; background:#e5e5ea; text-decoration:line-through; }
#rous-booking-app .rb-day.occupied::after { width:8px; height:8px; bottom:6px; background:#9ba8ad; }
#rous-booking-app .rb-day:disabled { color:#aeaeb2; cursor:not-allowed; background:#f2f2f7; }
#rous-booking-app .rb-day:disabled::after { background:#cbd5d8; }
#rous-booking-app .rb-day.is-selected { border-color:var(--rb-blue); background:var(--rb-blue); color:white; outline:3px solid rgba(52,35,173,.2); }
#rous-booking-app .rb-legend { display:flex; flex-wrap:wrap; gap:15px; padding:12px 16px 16px; color:var(--rb-muted); font-size:.75rem; }
#rous-booking-app .rb-legend i { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:5px; }
#rous-booking-app .rb-slot-section { margin-top:22px; }
#rous-booking-app .rb-slots { display:flex; flex-wrap:wrap; gap:9px; }
#rous-booking-app .rb-staff-card { position:relative; display:flex; flex-direction:column; align-items:center; min-height:215px; margin-top:58px; padding:70px 16px 18px; overflow:visible; text-align:center; }
#rous-booking-app .rb-staff-card.is-unavailable { opacity:.58; filter:grayscale(.35); cursor:not-allowed; border-style:dashed; }
#rous-booking-app .rb-staff-card.is-unavailable:hover { transform:none; box-shadow:none; }
#rous-booking-app .rb-staff-card.is-selected .rb-staff-photo,
#rous-booking-app .rb-staff-card.is-selected .rb-avatar-fallback { border-color:#01aebb; box-shadow:0 0 0 4px rgba(1,174,187,.16),0 12px 28px rgba(36,24,127,.22); }
#rous-booking-app .rb-staff-photo { position:absolute; top:-58px; left:50%; width:118px; height:118px; border:5px solid #fff; border-radius:50%; object-fit:cover; object-position:center 22%; background:#dceceb; box-shadow:0 12px 28px rgba(36,24,127,.2); transform:translateX(-50%); }
#rous-booking-app .rb-avatar-fallback { position:absolute; top:-58px; left:50%; width:118px; height:118px; display:grid; place-items:center; border:5px solid #fff; border-radius:50%; font-size:2rem; font-weight:800; color:#3423ad; background:linear-gradient(145deg,#ece9ff,#dffbfc); box-shadow:0 12px 28px rgba(36,24,127,.18); transform:translateX(-50%); }
#rous-booking-app .rb-staff-body { width:100%; padding:0; }
#rous-booking-app .rb-staff-body h3 { margin:8px 0 5px; }
#rous-booking-app .rb-status { display:inline-flex; align-items:center; gap:6px; color:#08736e; font-size:.76rem; font-weight:800; }
#rous-booking-app .rb-status::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--rb-teal); }
#rous-booking-app .rb-date-available{display:inline-flex;margin:12px 0 8px;padding:7px 11px;border-radius:999px;background:#e7f7f3;color:#08736e;font-size:.78rem;font-weight:850}
#rous-booking-app .rb-upload { border:1.5px dashed #9dbdc2; border-radius:14px; padding:20px; background:#fbfdfd; }
#rous-booking-app .rb-summary { display:grid; gap:12px; }
#rous-booking-app .rb-summary-row { border:1px solid var(--rb-line); border-radius:14px; padding:16px; display:grid; grid-template-columns:145px 1fr auto; align-items:start; gap:16px; }
#rous-booking-app .rb-summary-row > strong { color:var(--rb-navy); }
#rous-booking-app .rb-link-btn { border:0; background:none; color:var(--rb-blue); font-weight:750; padding:2px; }
#rous-booking-app .rb-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:30px; }
#rous-booking-app .rb-btn { min-height:48px; border:0; border-radius:12px; padding:12px 20px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
#rous-booking-app .rb-btn svg { width:19px; }
#rous-booking-app .rb-btn-primary { background:linear-gradient(135deg,var(--rb-blue),#198b9a); color:#fff; box-shadow:0 8px 18px rgba(23,107,135,.2); }
#rous-booking-app .rb-btn-primary:disabled { opacity:.6; cursor:wait; }
#rous-booking-app .rb-btn-secondary { background:#fff; border:1.5px solid var(--rb-line); color:var(--rb-navy); }
#rous-booking-app .rb-success { text-align:center; padding:32px 0; }
#rous-booking-app .rb-thank-you-card{width:min(720px,100%);margin:0 auto;padding:clamp(24px,5vw,48px);border:1px solid #bce4df;border-radius:24px;background:linear-gradient(145deg,#fff,#f0faf9);box-shadow:0 20px 55px rgba(16,42,67,.11)}
#rous-booking-app .rb-thank-you-eyebrow{display:block;margin-bottom:8px;color:#08736e;font-size:.76rem;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
#rous-booking-app .rb-thank-you-card h2{max-width:600px;margin:0 auto 16px;font-size:clamp(1.7rem,4vw,2.5rem)}
#rous-booking-app .rb-thank-you-card>p{max-width:620px;margin:10px auto;color:var(--rb-muted);font-size:1rem;line-height:1.65}
#rous-booking-app .rb-success-reference{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:24px auto 16px;max-width:520px}
#rous-booking-app .rb-success-reference>div{display:grid;gap:4px;padding:14px;border:1px solid var(--rb-line);border-radius:13px;background:#fff}
#rous-booking-app .rb-success-reference small{color:var(--rb-muted)}
#rous-booking-app .rb-success-reference strong{color:var(--rb-navy)}
#rous-booking-app .rb-redirect-note{margin:22px auto 13px;color:var(--rb-muted);font-size:.86rem}
#rous-booking-app .rb-finish-prompt{margin:28px auto 0;display:grid;justify-items:center;gap:6px;max-width:430px;padding:20px;border-radius:18px;background:#f0faf9;border:1px solid #bce4df}
#rous-booking-app .rb-finish-prompt>strong{color:var(--rb-navy);font-size:1.05rem}
#rous-booking-app .rb-finish-prompt>span,#rous-booking-app .rb-finish-prompt>small{color:var(--rb-muted)}
#rous-booking-app .rb-finish-attention{position:relative;margin:12px 0 4px;min-width:220px;min-height:56px;font-size:1.05rem;box-shadow:0 10px 25px rgba(23,107,135,.28);animation:rb-finish-pulse 1.4s ease-in-out 4}
#rous-booking-app .rb-finish-attention::after{content:"";position:absolute;inset:-5px;border:2px solid rgba(32,163,158,.42);border-radius:17px;animation:rb-finish-ring 1.4s ease-out 4;pointer-events:none}
@keyframes rb-finish-pulse{0%,100%{transform:scale(1)}45%{transform:scale(1.07)}}
@keyframes rb-finish-ring{0%{opacity:.8;transform:scale(.96)}100%{opacity:0;transform:scale(1.16)}}
#rous-booking-app .rb-success-icon { width:72px; height:72px; display:grid; place-items:center; border-radius:50%; background:var(--rb-mint); color:#08736e; margin:0 auto 20px; }
#rous-booking-app .rb-success-icon svg { width:36px; }
#rous-booking-app .rb-folio { display:inline-block; margin:14px 0 24px; padding:12px 18px; border:1px solid var(--rb-line); border-radius:12px; font-weight:850; color:var(--rb-navy); letter-spacing:.06em; }
#rous-booking-app .rb-footer { border-top:1px solid var(--rb-line); padding:25px 0 38px; color:var(--rb-muted); font-size:.82rem; text-align:center; }
#rous-booking-app .rb-scroll-cue{display:none}
#rous-booking-app .rb-scroll-cue[hidden]{display:none!important}
#rous-booking-app .rb-edit-dates{white-space:nowrap}
#rous-booking-app .rb-student-field { max-width:420px; margin-bottom:20px; }
#rous-booking-app .rb-count-badge { padding:7px 11px; border-radius:999px; background:var(--rb-mint); color:#08736e; font-size:.78rem; font-weight:800; white-space:nowrap; }
#rous-booking-app .rb-selected-block { margin-top:24px; }
#rous-booking-app .rb-section-label { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:12px; }
#rous-booking-app .rb-section-label h3 { margin:0; }
#rous-booking-app .rb-section-label span { color:var(--rb-muted); font-size:.8rem; }
#rous-booking-app .rb-session-list, #rous-booking-app .rb-staff-sessions { display:grid; gap:12px; }
#rous-booking-app .rb-session-card, #rous-booking-app .rb-staff-session { min-width:0; max-width:100%; border:1px solid var(--rb-line); border-radius:16px; padding:17px; background:#fff; }
#rous-booking-app .rb-session-card { border-color:#9ccfcc; box-shadow:0 8px 22px rgba(16,42,67,.06); }
#rous-booking-app .rb-session-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }
#rous-booking-app .rb-session-head h3 { text-transform:capitalize; }
#rous-booking-app .rb-session-index { display:inline-block; color:var(--rb-blue); font-size:.72rem; font-weight:850; text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px; }
#rous-booking-app .rb-remove-session { color:var(--rb-danger); font-size:1.35rem; }
#rous-booking-app .rb-session-controls { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:14px; }
#rous-booking-app .rb-session-controls label { color:var(--rb-muted); display:grid; gap:6px; font-size:.76rem; font-weight:750; }
#rous-booking-app .rb-session-controls select, #rous-booking-app .rb-session-controls input { color:var(--rb-navy); font-weight:750; background:#f9fcfc; }
#rous-booking-app .rb-session-controls input:disabled { cursor:not-allowed; color:#9aabb1; background:#eef3f3; }
#rous-booking-app .rb-session-controls-simple { align-items:start; }
#rous-booking-app .rb-shift-students { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
#rous-booking-app .rb-shift-students label { color:var(--rb-muted); display:grid; gap:6px; font-size:.76rem; font-weight:750; }
#rous-booking-app .rb-mode-question, #rous-booking-app .rb-start-selection { margin-top:18px; display:grid; gap:10px; }
#rous-booking-app .rb-mode-question > strong, #rous-booking-app .rb-start-selection > strong { color:var(--rb-navy); font-size:.86rem; }
#rous-booking-app .rb-mode-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
#rous-booking-app .rb-mode-card { min-height:155px; }
#rous-booking-app .rb-mode-card p { color:var(--rb-muted); font-size:.84rem; margin:6px 0; }
#rous-booking-app .rb-mode-card small { color:#08736e; font-weight:800; }
#rous-booking-app .rb-customer-schedule { margin-top:16px; padding:15px; border-radius:14px; background:#f0faf9; border:1px solid #bce4df; display:grid; gap:5px; }
#rous-booking-app .rb-customer-schedule > strong { color:var(--rb-navy); }
#rous-booking-app .rb-customer-schedule > span:not(.rb-session-index), #rous-booking-app .rb-customer-schedule small { color:var(--rb-muted); }
#rous-booking-app .rb-student-allocation { margin-top:14px; padding:13px 15px; border-radius:14px; background:#f5f3ff; border:1px solid #dcd6ff; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:3px 12px; }
#rous-booking-app .rb-student-allocation span { color:var(--rb-muted); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
#rous-booking-app .rb-student-allocation strong { color:var(--rb-navy); text-align:right; }
#rous-booking-app .rb-student-allocation small { grid-column:1/-1; color:var(--rb-muted); }
#rous-booking-app .rb-session-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px 16px; color:var(--rb-muted); font-size:.79rem; margin-top:12px; }
#rous-booking-app .rb-empty-state { min-height:130px; display:grid; place-items:center; align-content:center; gap:4px; border:1.5px dashed var(--rb-line); border-radius:15px; color:var(--rb-muted); text-align:center; }
#rous-booking-app .rb-empty-state strong { color:var(--rb-navy); }
#rous-booking-app .rb-staff-session > .rb-session-head { margin-bottom:13px; }
#rous-booking-app .rb-staff-scroll { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
#rous-booking-app .rb-staff-scroll .rb-avatar-fallback { width:118px; height:118px; font-size:2rem; }
#rous-booking-app .rb-search-input { position:relative; }
#rous-booking-app .rb-search-input > svg { position:absolute; width:19px; left:14px; top:14px; color:var(--rb-muted); pointer-events:none; }
#rous-booking-app .rb-search-input input { padding-left:43px; }
#rous-booking-app .rb-address-suggestions { display:grid; border-radius:14px; overflow:hidden; box-shadow:0 12px 28px rgba(16,42,67,.12); }
#rous-booking-app .rb-address-option { border:0; border-bottom:1px solid var(--rb-line); background:#fff; padding:13px; display:grid; grid-template-columns:28px 1fr; gap:9px; text-align:left; color:var(--rb-ink); }
#rous-booking-app .rb-address-option:hover, #rous-booking-app .rb-address-option:focus-visible, #rous-booking-app .rb-address-option.is-active { background:#f0faf9; }
#rous-booking-app .rb-address-option svg { width:20px; color:var(--rb-teal); }
#rous-booking-app .rb-address-option span:last-child { display:grid; }
#rous-booking-app .rb-address-option b { color:var(--rb-ink); font-size:.86rem; font-weight:650; margin-top:2px; }
#rous-booking-app .rb-address-option small { color:var(--rb-muted); margin-top:2px; }
#rous-booking-app .rb-address-state { padding:14px; background:#fff; border:1px solid var(--rb-line); color:var(--rb-muted); }
#rous-booking-app .rb-inline-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:10px; }
#rous-booking-app .rb-inline-actions .rb-btn { min-height:42px; padding:8px 13px; font-size:.82rem; }
#rous-booking-app .rb-address-preview { display:grid; grid-template-columns:170px 1fr; gap:17px; border:1.5px solid var(--rb-line); border-radius:16px; padding:13px; background:#fff; }
#rous-booking-app .rb-address-preview.is-confirmed { border-color:var(--rb-teal); box-shadow:0 0 0 3px rgba(32,163,158,.1); }
#rous-booking-app .rb-map-preview { min-height:125px; display:grid; place-items:center; border-radius:12px; color:#08736e; background-color:#dff3ef; background-image:linear-gradient(30deg,rgba(255,255,255,.65) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.65) 87.5%),linear-gradient(150deg,rgba(255,255,255,.65) 12%,transparent 12.5%,transparent 87%,rgba(255,255,255,.65) 87.5%); background-size:42px 72px; }
#rous-booking-app .rb-map-preview svg { width:35px; filter:drop-shadow(0 3px 5px rgba(16,42,67,.2)); }
#rous-booking-app .rb-map-preview { align-content:center; gap:9px; text-align:center; }
#rous-booking-app .rb-map-preview a { color:var(--rb-blue); font-size:.78rem; font-weight:800; text-decoration:none; }
#rous-booking-app .rb-address-details h3 { margin:0; color:var(--rb-navy); font-size:1.05rem; }
#rous-booking-app .rb-tepic-map-picker{margin-top:12px;border:1px solid var(--rb-line);border-radius:16px;padding:13px;background:#fff}
#rous-booking-app .rb-map-picker-head{display:grid;gap:3px;margin-bottom:10px}.rb-map-picker-head span{color:var(--rb-muted);font-size:.82rem}
#rous-booking-app #tepic-map-surface{position:relative;width:100%;height:230px;overflow:hidden;border:0;border-radius:13px;cursor:crosshair;background-color:#dcefeb;background-image:linear-gradient(28deg,transparent 46%,rgba(255,255,255,.85) 47%,rgba(255,255,255,.85) 50%,transparent 51%),linear-gradient(118deg,transparent 45%,rgba(255,255,255,.7) 46%,rgba(255,255,255,.7) 49%,transparent 50%),repeating-linear-gradient(0deg,transparent 0 34px,rgba(23,107,135,.08) 35px 36px),repeating-linear-gradient(90deg,transparent 0 48px,rgba(23,107,135,.08) 49px 50px)}
#rous-booking-app #tepic-map-marker{position:absolute;left:48%;top:46%;width:22px;height:22px;border:5px solid #fff;border-radius:50% 50% 50% 0;background:var(--rb-teal);box-shadow:0 3px 10px rgba(16,42,67,.3);transform:translate(-50%,-100%) rotate(-45deg);z-index:3}
#rous-booking-app .rb-map-label{position:absolute;padding:3px 7px;border-radius:7px;background:rgba(255,255,255,.85);color:var(--rb-navy);font-size:.72rem;font-weight:800}.rb-map-centro{left:45%;top:46%}.rb-map-xalisco{left:43%;bottom:8%}.rb-map-bellavista{left:42%;top:8%}
#rous-booking-app .rb-map-picker-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;color:var(--rb-muted);font-size:.8rem}
#rous-booking-app .rb-staff-scroll .rb-staff-photo{width:118px;height:118px}
#rous-booking-app .rb-address-details { display:flex; flex-direction:column; justify-content:center; gap:4px; }
#rous-booking-app .rb-address-details span, #rous-booking-app .rb-address-details small { color:var(--rb-muted); }
#rous-booking-app .rb-address-more, #rous-booking-app .rb-address-edit, #rous-booking-app .rb-optional-details { margin-top:10px; color:var(--rb-blue); }
#rous-booking-app .rb-address-more summary, #rous-booking-app .rb-address-edit summary, #rous-booking-app .rb-optional-details summary { cursor:pointer; font-weight:800; }
#rous-booking-app .rb-optional-details { padding:14px; border:1px solid var(--rb-line); border-radius:14px; background:#fbfdfd; }
#rous-booking-app .rb-optional-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:15px; }
#rous-booking-app .rb-address-correction{display:grid;grid-template-columns:2fr .7fr 1.5fr .8fr;gap:9px;margin:10px 0}
#rous-booking-app .rb-address-correction label{display:grid;gap:5px;color:var(--rb-navy);font-size:.72rem;font-weight:800}
#rous-booking-app .rb-address-correction input{width:100%;min-width:0;min-height:44px;padding:9px 10px;border:1px solid var(--rb-line);border-radius:10px;background:#fff;color:var(--rb-ink)}
#rous-booking-app .rb-database-options { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:22px 0; }
#rous-booking-app .rb-database-choice { min-height:132px; padding:18px; border:1.5px solid var(--rb-line); border-radius:16px; background:#fff; display:grid; grid-template-columns:44px 1fr 20px; gap:13px; align-items:center; text-align:left; color:var(--rb-ink); }
#rous-booking-app .rb-database-choice:hover { border-color:#9ccfcc; transform:translateY(-1px); }
#rous-booking-app .rb-database-choice.is-selected { border-color:var(--rb-blue); background:#f0eeff; box-shadow:0 0 0 3px rgba(52,35,173,.13); }
#rous-booking-app .rb-database-choice > span:nth-child(2) { display:grid; gap:5px; }
#rous-booking-app .rb-database-choice small { color:var(--rb-muted); line-height:1.4; }
#rous-booking-app .rb-database-choice > i { width:18px; height:18px; border:2px solid var(--rb-line); border-radius:50%; }
#rous-booking-app .rb-database-choice.is-selected > i { border:5px solid var(--rb-blue); }
#rous-booking-app .rb-database-icon { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; color:var(--rb-blue); background:#e8f5f6; }
#rous-booking-app .rb-database-icon svg { width:22px; }
#rous-booking-app .rb-upload-dropzone { min-height:190px; border:1.5px dashed #8db8bd; border-radius:16px; background:#fbfdfd; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; text-align:center; padding:22px; cursor:pointer; }
#rous-booking-app .rb-upload-dropzone:hover, #rous-booking-app .rb-upload-dropzone.is-dragging { border-color:var(--rb-teal); background:#f0faf9; }
#rous-booking-app .rb-upload-dropzone > svg { width:34px; color:var(--rb-teal); margin-bottom:5px; }
#rous-booking-app .rb-upload-dropzone > small { color:var(--rb-muted); }
#rous-booking-app .rb-file-valid { min-width:min(460px,100%); margin-top:14px; padding:12px; border-radius:12px; background:#e8f7f3; display:grid; grid-template-columns:28px 1fr auto; gap:10px; align-items:center; color:#08736e; text-align:left; }
#rous-booking-app .rb-file-valid svg { width:24px; }
#rous-booking-app .rb-file-valid span { display:grid; }
#rous-booking-app .rb-file-valid small { color:#3f716f; }
#rous-booking-app .rb-confirm-hero { padding:20px; border-radius:16px; color:#fff; background:linear-gradient(135deg,var(--rb-navy),var(--rb-blue)); display:grid; gap:4px; }
#rous-booking-app .rb-confirm-hero span { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; opacity:.8; }
#rous-booking-app .rb-confirm-hero strong { font-size:1.35rem; }
#rous-booking-app .rb-finish-message { display:grid; grid-template-columns:54px 1fr; gap:14px; align-items:start; padding:18px; border:1px solid var(--rb-line); border-radius:15px; background:#fff; }
#rous-booking-app .rb-finish-message h3 { margin-bottom:4px; }
#rous-booking-app .rb-finish-message p { color:var(--rb-muted); margin:0; }
#rous-booking-app .rb-success-icon-small { width:48px; height:48px; margin:0; }
#rous-booking-app .rb-success-icon-small svg { width:24px; }
#rous-booking-app .rb-contact-check { display:grid; grid-template-columns:repeat(3,1fr) auto; gap:12px; align-items:center; padding:15px; border:1px solid var(--rb-line); border-radius:15px; background:#fbfdfd; }
#rous-booking-app .rb-contact-check span { display:grid; color:var(--rb-muted); font-size:.84rem; min-width:0; overflow-wrap:anywhere; }
#rous-booking-app .rb-contact-check strong { color:var(--rb-navy); font-size:.73rem; text-transform:uppercase; letter-spacing:.04em; }
#rous-booking-app .rb-confirm-section { border:1px solid var(--rb-line); border-radius:15px; padding:16px; }
#rous-booking-app .rb-summary-title { display:flex; justify-content:space-between; gap:12px; }
#rous-booking-app .rb-confirm-session { display:flex; justify-content:space-between; align-items:start; gap:14px; padding:13px 0; border-bottom:1px solid var(--rb-line); }
#rous-booking-app .rb-confirm-session:last-child { border-bottom:0; }
#rous-booking-app .rb-confirm-session > div { display:grid; gap:3px; }
#rous-booking-app .rb-confirm-session span, #rous-booking-app .rb-confirm-session small { color:var(--rb-muted); }
#rous-booking-app .rb-success-dates { width:min(620px,100%); margin:18px auto; text-align:left; display:grid; gap:8px; color:var(--rb-muted); }
/* Productividad visual: superficies limpias, controles táctiles y movimiento discreto. */
#rous-booking-app h1, #rous-booking-app h2, #rous-booking-app h3 { font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,sans-serif; text-wrap:balance; }
#rous-booking-app .rb-topbar { background:rgba(255,255,255,.82); box-shadow:0 1px 0 rgba(36,24,127,.04); backdrop-filter:saturate(180%) blur(20px); -webkit-backdrop-filter:saturate(180%) blur(20px); }
#rous-booking-app .rb-panel { border-color:rgba(36,24,127,.1); box-shadow:0 20px 60px rgba(36,24,127,.08); }
#rous-booking-app .rb-choice, #rous-booking-app .rb-session-card, #rous-booking-app .rb-confirm-section { border-radius:20px; }
#rous-booking-app input, #rous-booking-app select, #rous-booking-app textarea { border-width:1px; border-radius:14px; box-shadow:inset 0 1px 2px rgba(36,24,127,.025); }
#rous-booking-app .rb-btn { min-height:50px; border-radius:14px; padding-inline:22px; letter-spacing:-.01em; transition:transform .16s ease,box-shadow .16s ease,background .16s ease; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
#rous-booking-app .rb-btn-primary { background:linear-gradient(135deg,#3423ad,#2554ba); box-shadow:0 9px 22px rgba(52,35,173,.22); }
#rous-booking-app .rb-btn-primary:hover { box-shadow:0 12px 28px rgba(52,35,173,.28); transform:translateY(-1px); }
#rous-booking-app .rb-btn-secondary:hover { border-color:#b9b4dc; background:#faf9ff; }
#rous-booking-app .rb-btn:active, #rous-booking-app .rb-choice:active, #rous-booking-app .rb-pill:active { transform:scale(.98); }
#rous-booking-app .rb-day, #rous-booking-app .rb-icon-btn, #rous-booking-app .rb-pill { -webkit-tap-highlight-color:transparent; touch-action:manipulation; transition:transform .14s ease,background .14s ease,box-shadow .14s ease; }
#rous-booking-app .rb-day.is-selected { box-shadow:0 6px 16px rgba(52,35,173,.22); }
@media (max-width:760px) {
  #rous-booking-app .rb-shell { width:min(100% - 22px, 680px); }
  #rous-booking-app .rb-hero { padding:36px 8px 8px; }
  #rous-booking-app .rb-welcome-card { grid-template-columns:1fr; gap:15px; margin-bottom:18px; padding:18px 16px; }
  #rous-booking-app .rb-welcome-values { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
  #rous-booking-app .rb-welcome-values span { min-width:0; padding:8px 6px; flex-direction:column; justify-content:center; gap:5px; text-align:center; font-size:.78rem; line-height:1.25; }
  #rous-booking-app #booking-progress-anchor { scroll-margin-top:calc(72px + env(safe-area-inset-top) + 8px); }
  #rous-booking-app .rb-progress { display:none; }
  #rous-booking-app .rb-mobile-progress { display:block; position:sticky; top:72px; z-index:8; padding:12px 4px; background:rgba(248,247,253,.9); backdrop-filter:saturate(180%) blur(18px); -webkit-backdrop-filter:saturate(180%) blur(18px); }
  #rous-booking-app .rb-mobile-progress > div:first-child { display:flex; justify-content:space-between; gap:10px; margin-bottom:8px; }
  #rous-booking-app .rb-mobile-progress strong { margin:0; }
  #rous-booking-app .rb-mobile-progress span { color:var(--rb-muted); font-size:.82rem; }
  #rous-booking-app .rb-grid-2, #rous-booking-app .rb-grid-3 { grid-template-columns:1fr; }
  #rous-booking-app .rb-span-2 { grid-column:auto; }
  #rous-booking-app .rb-panel { border-radius:18px; padding:20px 16px; }
  #rous-booking-app .rb-summary-row { grid-template-columns:1fr auto; }
  #rous-booking-app .rb-summary-row > div { grid-column:1/-1; grid-row:2; }
  #rous-booking-app .rb-actions { position:sticky; bottom:0; z-index:7; background:rgba(255,255,255,.96); padding:12px 0 calc(2px + env(safe-area-inset-bottom)); box-shadow:0 -8px 18px rgba(16,42,67,.05); }
  #rous-booking-app .rb-actions .rb-btn { flex:1; }
  #rous-booking-app .rb-day { min-height:46px; }
  #rous-booking-app .rb-trust span { display:none; }
  #rous-booking-app .rb-step-head { flex-direction:column; }
  #rous-booking-app .rb-count-badge { align-self:flex-start; }
  #rous-booking-app .rb-calendar { overflow-x:auto; }
  #rous-booking-app .rb-calendar > * { min-width:610px; }
  #rous-booking-app .rb-session-controls, #rous-booking-app .rb-shift-students, #rous-booking-app .rb-mode-grid, #rous-booking-app .rb-address-preview, #rous-booking-app .rb-database-options, #rous-booking-app .rb-address-correction, #rous-booking-app .rb-optional-grid { grid-template-columns:1fr; }
  #rous-booking-app .rb-step[data-step="2"]:not([hidden]) { display:flex; flex-direction:column; }
  #rous-booking-app .rb-step[data-step="2"] .rb-step-head { order:0; }
  #rous-booking-app .rb-step[data-step="2"] .rb-calendar { order:1; }
  #rous-booking-app .rb-step[data-step="2"] .rb-selected-block { order:2; }
  #rous-booking-app .rb-step[data-step="2"].has-sessions .rb-selected-block { margin-top:20px; }
  #rous-booking-app .rb-step[data-step="2"] > .rb-callout { order:3; }
  #rous-booking-app .rb-step[data-step="2"] .rb-actions { order:4; position:static; margin-top:18px; box-shadow:none; padding-bottom:calc(4px + env(safe-area-inset-bottom)); }
  #rous-booking-app .rb-session-card { padding:16px; background:linear-gradient(145deg,#fff,#f2fbfa); border-width:2px; }
  #rous-booking-app .rb-session-controls label { font-size:.82rem; color:var(--rb-navy); }
  #rous-booking-app .rb-session-controls select, #rous-booking-app .rb-session-controls input { min-height:52px; font-size:1rem; background:#fff; }
  #rous-booking-app .rb-staff-sessions, #rous-booking-app .rb-staff-session { width:100%; min-width:0; max-width:100%; }
  #rous-booking-app .rb-staff-session { overflow:hidden; }
  #rous-booking-app .rb-staff-scroll { box-sizing:border-box; display:flex; width:100%; max-width:100%; min-width:0; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:3px; padding:3px 3px 12px; -webkit-overflow-scrolling:touch; touch-action:pan-x; }
  #rous-booking-app .rb-staff-scroll .rb-staff-card { box-sizing:border-box; flex:0 0 78%; width:78%; min-width:0; max-width:300px; margin-top:58px; scroll-snap-align:start; }
  #rous-booking-app .rb-database-choice { min-height:128px; width:100%; }
  #rous-booking-app .rb-inline-actions { display:grid; grid-template-columns:1fr; }
  #rous-booking-app .rb-confirm-session { flex-direction:column; }
  #rous-booking-app .rb-finish-message, #rous-booking-app .rb-contact-check { grid-template-columns:1fr; }
  #rous-booking-app .rb-success-icon-small { margin:0 auto; }
  #rous-booking-app .rb-thank-you-card{padding:26px 18px;border-radius:18px}
  #rous-booking-app .rb-success-reference{grid-template-columns:1fr}
  #rous-booking-app .rb-finish-message { text-align:center; }
  #rous-booking-app .rb-file-valid { min-width:0; grid-template-columns:28px 1fr; }
  #rous-booking-app .rb-file-valid .rb-link-btn { grid-column:2; justify-self:start; }
  #rous-booking-app input, #rous-booking-app select, #rous-booking-app textarea { font-size:16px; }
  #rous-booking-app { font-size:18px; line-height:1.5; }
  #rous-booking-app h1 { font-size:2.25rem; }
  #rous-booking-app h2 { font-size:1.75rem; line-height:1.15; }
  #rous-booking-app h3 { font-size:1.16rem; }
  #rous-booking-app .rb-lead { font-size:1.08rem; }
  #rous-booking-app .rb-subtle, #rous-booking-app .rb-callout { font-size:1.06rem; line-height:1.55; }
  #rous-booking-app .rb-field label, #rous-booking-app .rb-label { font-size:1.05rem; }
  #rous-booking-app .rb-field-help { font-size:1rem; }
  #rous-booking-app .rb-choice-meta, #rous-booking-app .rb-address-option small { font-size:1rem; }
  #rous-booking-app .rb-address-option strong, #rous-booking-app .rb-address-details strong { font-size:1.02rem; }
  #rous-booking-app .rb-address-details > span, #rous-booking-app .rb-address-state, #rous-booking-app .rb-address-more summary { font-size:1.02rem; line-height:1.55; }
  #rous-booking-app .rb-field-error, #rous-booking-app .rb-inline-validation { font-size:.98rem; }
  #rous-booking-app .rb-choice-badge, #rous-booking-app .rb-count-badge, #rous-booking-app .rb-status, #rous-booking-app .rb-date-available { font-size:.92rem; }
  #rous-booking-app .rb-session-index, #rous-booking-app .rb-session-controls label, #rous-booking-app .rb-shift-students label { font-size:.95rem; }
  #rous-booking-app .rb-week span, #rous-booking-app .rb-legend, #rous-booking-app .rb-section-label span { font-size:.9rem; }
  #rous-booking-app .rb-btn { font-size:1.05rem; }
  #rous-booking-app .rb-section-label{align-items:flex-start;gap:12px}
  #rous-booking-app .rb-section-label > div{min-width:0}
  #rous-booking-app .rb-edit-dates{white-space:normal;text-align:right}
  #rous-booking-app .rb-scroll-cue{position:static!important;justify-self:center;margin:-3px auto -4px!important;width:38px;height:38px;display:none;place-items:center;padding:0;border:1px solid rgba(52,35,173,.18);border-radius:50%;color:var(--rb-blue);background:rgba(255,255,255,.9);box-shadow:0 7px 18px rgba(36,24,127,.14);animation:rb-scroll-cue 1.8s ease-in-out infinite;-webkit-tap-highlight-color:transparent}
  #rous-booking-app .rb-scroll-cue.is-visible{display:grid!important}
  #rous-booking-app .rb-scroll-cue span{font-size:1.3rem;font-weight:800;line-height:1;transform:translateY(-3px)}
}
@keyframes rb-scroll-cue{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@media (prefers-color-scheme:dark) and (max-width:0px) {
  #rous-booking-app { color-scheme:dark; --rb-navy:#f3f1ff; --rb-blue:#9d91ff; --rb-teal:#23ced7; --rb-mint:#292745; --rb-ink:#eeedf8; --rb-muted:#b6b3c9; --rb-line:#343650; --rb-bg:#090d17; --rb-white:#151827; background:#090d17; color:#eeedf8; }
  #rous-booking-app .rb-topbar { background:rgba(13,16,29,.9); border-color:#303247; }
  #rous-booking-app .rb-brand-logo { filter:brightness(1.75) saturate(.85); }
  #rous-booking-app .rb-welcome-card { color:#eeedf8; border-color:#343650; background:linear-gradient(135deg,#171a2b,#1c1d36 68%,#102b32); box-shadow:0 18px 42px rgba(0,0,0,.32); }
  #rous-booking-app .rb-welcome-values span, #rous-booking-app .rb-panel, #rous-booking-app .rb-choice, #rous-booking-app .rb-session-card, #rous-booking-app .rb-staff-session, #rous-booking-app .rb-summary-row, #rous-booking-app .rb-address-option, #rous-booking-app .rb-address-state, #rous-booking-app .rb-address-preview, #rous-booking-app .rb-tepic-map-picker, #rous-booking-app .rb-calendar, #rous-booking-app .rb-upload-dropzone, #rous-booking-app .rb-database-choice, #rous-booking-app .rb-success-reference>div { background:#151827; border-color:#343650; color:#eeedf8; }
  #rous-booking-app .rb-choice.is-selected, #rous-booking-app .rb-database-choice.is-selected { background:linear-gradient(145deg,#20213a,#292552); border-color:#8e82ff; box-shadow:0 0 0 3px rgba(157,145,255,.15); }
  #rous-booking-app input, #rous-booking-app select, #rous-booking-app textarea, #rous-booking-app .rb-btn-secondary, #rous-booking-app .rb-icon-btn, #rous-booking-app .rb-pill { color:#f3f1ff; background:#1b1e2e; border-color:#3b3d55; }
  #rous-booking-app .rb-mobile-progress, #rous-booking-app .rb-actions { background:rgba(9,13,23,.94); }
  #rous-booking-app .rb-day { color:#9da0b1; background:#1b1e2c; border-color:#34364b; }
  #rous-booking-app .rb-day.available { color:#78ecf0; background:#123239; border-color:#278b91; }
  #rous-booking-app .rb-day.partial { color:#c1b8ff; background:#292643; border-color:#7266be; }
  #rous-booking-app .rb-day.occupied, #rous-booking-app .rb-day:disabled { color:#717486; background:#131622; border-color:#292c3d; }
  #rous-booking-app .rb-day.is-selected { color:#fff; background:#6557d9; border-color:#a79cff; }
  #rous-booking-app .rb-callout, #rous-booking-app .rb-customer-schedule { color:#c8e9eb; background:#12252e; border-color:#28515a; }
  #rous-booking-app .rb-callout.warning { color:#f1d28c; background:#302713; border-color:#665122; }
  #rous-booking-app .rb-optional-details, #rous-booking-app .rb-confirm-section, #rous-booking-app .rb-contact-check, #rous-booking-app .rb-finish-message { color:#eeedf8; background:#171a29; border-color:#343650; }
  #rous-booking-app .rb-map-preview { background-color:#17353a; }
  #rous-booking-app .rb-thank-you-card { color:#eeedf8; border-color:#28515a; background:linear-gradient(145deg,#151827,#10262c); }
  #rous-booking-app .rb-footer { border-color:#303247; }
}
@media (prefers-reduced-motion:reduce) { #rous-booking-app, #rous-booking-app .rb-step:not([hidden]),#rous-booking-app .rb-finish-attention,#rous-booking-app .rb-finish-attention::after,#rous-booking-app .rb-scroll-cue { animation:none!important; } #rous-booking-app * { scroll-behavior:auto!important; transition:none!important; } }
.rous-theme-control{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:4px 7px;border:1px solid var(--rb-line,#dedcf1);border-radius:11px;color:var(--rb-muted,#6a6785);background:var(--rb-white,#fff);font-size:.78rem;font-weight:800;white-space:nowrap}
.rous-theme-control select{width:auto!important;min-height:28px!important;padding:2px 22px 2px 5px!important;border:0!important;border-radius:7px!important;background:transparent!important;color:inherit!important;box-shadow:none!important;font-size:inherit!important;font-weight:800}
html[data-theme="dark"] #rous-booking-app{color-scheme:dark;--rb-navy:#f3f1ff;--rb-blue:#9d91ff;--rb-teal:#23ced7;--rb-mint:#292745;--rb-ink:#eeedf8;--rb-muted:#b6b3c9;--rb-line:#343650;--rb-bg:#090d17;--rb-white:#151827;background:#090d17;color:#eeedf8}
html[data-theme="dark"] #rous-booking-app .rb-topbar,html[data-theme="dark"] #rous-booking-app .rb-mobile-progress,html[data-theme="dark"] #rous-booking-app .rb-actions{background:rgba(13,16,29,.94);border-color:#303247}
html[data-theme="dark"] #rous-booking-app .rb-welcome-card{background:linear-gradient(135deg,#171a2b,#1c1d36 68%,#102b32);border-color:#343650}
html[data-theme="dark"] #rous-booking-app :is(.rb-welcome-values span,.rb-panel,.rb-choice,.rb-session-card,.rb-staff-session,.rb-summary-row,.rb-address-option,.rb-address-state,.rb-address-preview,.rb-calendar,.rb-database-choice,.rb-success-reference>div){color:#eeedf8;background:#151827;border-color:#343650}
html[data-theme="dark"] #rous-booking-app :is(input,select,textarea,.rb-btn-secondary,.rb-icon-btn,.rb-pill){color:#f3f1ff;background:#1b1e2e;border-color:#3b3d55}
html[data-theme="dark"] #rous-booking-app .rb-day{color:#9da0b1;background:#1b1e2c;border-color:#34364b}html[data-theme="dark"] #rous-booking-app .rb-day.available{color:#78ecf0;background:#123239;border-color:#278b91}html[data-theme="dark"] #rous-booking-app .rb-day.partial{color:#c1b8ff;background:#292643;border-color:#7266be}html[data-theme="dark"] #rous-booking-app .rb-day.is-selected{color:#fff;background:#6557d9;border-color:#a79cff}
@media (prefers-color-scheme:dark){html[data-theme="light"] #rous-booking-app{color-scheme:light;--rb-navy:#24187f;--rb-blue:#3423ad;--rb-teal:#01aebb;--rb-mint:#ece9ff;--rb-ink:#292451;--rb-muted:#6a6785;--rb-line:#dedcf1;--rb-bg:#f8f7fd;--rb-white:#fff;background:#f8f7fd;color:#292451}html[data-theme="light"] #rous-booking-app .rb-topbar{background:rgba(255,255,255,.92)}html[data-theme="light"] #rous-booking-app :is(.rb-welcome-values span,.rb-panel,.rb-choice,.rb-session-card,.rb-staff-session,.rb-summary-row,.rb-address-option,.rb-address-state,.rb-address-preview,.rb-calendar,.rb-database-choice,.rb-success-reference>div){color:#292451;background:#fff;border-color:#dedcf1}html[data-theme="light"] #rous-booking-app :is(input,select,textarea,.rb-btn-secondary,.rb-icon-btn,.rb-pill){color:#292451;background:#fff;border-color:#dedcf1}html[data-theme="light"] #rous-booking-app .rb-mobile-progress{background:rgba(248,247,253,.9)}html[data-theme="light"] #rous-booking-app .rb-actions{background:rgba(255,255,255,.96)}}
@media(max-width:760px){.rous-theme-label{display:none}.rous-theme-control{padding:3px 5px}.rous-theme-control>span{display:none}.rous-theme-control select{max-width:92px}}

/* Contraste por tema: superficie, contenido, estado y selección no comparten color. */
html[data-theme="light"] #rous-booking-app{color-scheme:light;--rb-navy:#24187f;--rb-blue:#3423ad;--rb-teal:#008b94;--rb-mint:#ece9ff;--rb-ink:#292451;--rb-muted:#625f79;--rb-line:#d8d5eb;--rb-bg:#f7f6fc;--rb-white:#fff;color:#292451;background:#f7f6fc}
html[data-theme="light"] #rous-booking-app :is(.rb-panel,.rb-choice,.rb-session-card,.rb-staff-session,.rb-summary-row,.rb-address-option,.rb-address-state,.rb-address-preview,.rb-calendar,.rb-database-choice,.rb-success-reference>div,.rb-thank-you-card){color:#292451;background:#fff;border-color:#d8d5eb}
html[data-theme="light"] #rous-booking-app :is(input,select,textarea,.rb-btn-secondary,.rb-icon-btn,.rb-pill){color:#292451;background:#fff;border-color:#c9c5e2}
html[data-theme="light"] #rous-booking-app :is(input,select,textarea)::placeholder{color:#817d95;opacity:1}
html[data-theme="light"] #rous-booking-app .rb-session-controls :is(select,input){color:#24187f;background:#fafaff;border-color:#bbb6db}
html[data-theme="light"] #rous-booking-app :is(.rb-customer-schedule,.rb-callout){color:#315568;background:#eef9f8;border-color:#b7dedb}
html[data-theme="light"] #rous-booking-app .rb-customer-schedule :is(strong,span,small){color:#315568}
html[data-theme="light"] #rous-booking-app .rb-topbar{background:rgba(255,255,255,.94)}
html[data-theme="light"] #rous-booking-app .rb-actions{background:rgba(255,255,255,.97)}
html[data-theme="light"] #rous-booking-app .service-card:disabled{color:#777485;background:#f0f0f4;border-color:#d4d3de}
html[data-theme="light"] #rous-booking-app .rous-theme-control{color:#332a6b;background:#fff;border-color:#c9c5e2}
html[data-theme="light"] #rous-booking-app .rous-theme-control select{color:#332a6b!important}

html[data-theme="dark"] #rous-booking-app{color-scheme:dark;--rb-navy:#f5f3ff;--rb-blue:#a99fff;--rb-teal:#35d5dc;--rb-mint:#292745;--rb-ink:#f1f0f8;--rb-muted:#bcb9cd;--rb-line:#3b3e56;--rb-bg:#0b0f1a;--rb-white:#171a29;color:#f1f0f8;background:#0b0f1a}
html[data-theme="dark"] #rous-booking-app :is(.rb-panel,.rb-choice,.rb-session-card,.rb-staff-session,.rb-summary-row,.rb-address-option,.rb-address-state,.rb-address-preview,.rb-calendar,.rb-database-choice,.rb-success-reference>div,.rb-thank-you-card){color:#f1f0f8;background:#171a29;border-color:#3b3e56}
html[data-theme="dark"] #rous-booking-app :is(input,select,textarea,.rb-btn-secondary,.rb-icon-btn,.rb-pill){color:#f5f3ff;background:#212536;border-color:#4b4e68}
html[data-theme="dark"] #rous-booking-app :is(input,select,textarea)::placeholder{color:#9f9caf;opacity:1}
html[data-theme="dark"] #rous-booking-app .rb-session-controls :is(select,input){color:#fff;background:#23273a;border-color:#5a5e7b}
html[data-theme="dark"] #rous-booking-app :is(.rb-session-index,.rb-field label,.rb-label,.rb-start-selection>strong,.rb-summary-row>strong,.rb-success-reference strong){color:#d9d4ff}
html[data-theme="dark"] #rous-booking-app :is(.rb-customer-schedule,.rb-callout){color:#d8f5f6;background:#112c34;border-color:#32636c}
html[data-theme="dark"] #rous-booking-app .rb-customer-schedule :is(strong,span,small){color:#d8f5f6}
html[data-theme="dark"] #rous-booking-app .rb-student-allocation{background:#202039;border-color:#46436d}
html[data-theme="dark"] #rous-booking-app .rb-student-allocation :is(span,strong,small){color:#e4e0ff}
html[data-theme="dark"] #rous-booking-app .service-card:disabled{color:#9694a4;background:#141825;border-color:#34394b}
html[data-theme="dark"] #rous-booking-app .rous-theme-control{color:#f1efff;background:#1d2131;border-color:#4b4e68}
html[data-theme="dark"] #rous-booking-app .rous-theme-control select{color:#f1efff!important}

html[data-theme] #rous-booking-app .rb-day{color:#696779;background:#ececf2;border-color:#d7d7df;text-decoration:none}
html[data-theme] #rous-booking-app .rb-day.available{color:#075e66;background:#d6f8f7;border:2px solid #12a9b2}
html[data-theme] #rous-booking-app .rb-day.partial{color:#4934a8;background:#eeeaff;border:2px solid #8f7ce8}
html[data-theme] #rous-booking-app .rb-day.occupied{color:#6f7078;background:#d7d8df;border:2px solid #a7a9b3;text-decoration:line-through}
html[data-theme] #rous-booking-app .rb-day:disabled:not(.occupied){color:#9b9ba3;background:#f1f1f4;border-color:#dedee4}
html[data-theme] #rous-booking-app .rb-day.is-selected{color:#fff;background:#3423ad;border:2px solid #fff;outline:3px solid #3423ad;text-decoration:none}
html[data-theme] #rous-booking-app .rb-day.blocked{color:#70414b;background:repeating-linear-gradient(135deg,#f7e8eb 0,#f7e8eb 8px,#ead2d8 8px,#ead2d8 16px);border:2px solid #bd8591;text-decoration:none}
html[data-theme="dark"] #rous-booking-app .rb-day{color:#8f91a2;background:#1b1f2e;border-color:#33384b}
html[data-theme="dark"] #rous-booking-app .rb-day.available{color:#8ff9fa;background:#123b42;border-color:#28c5cc}
html[data-theme="dark"] #rous-booking-app .rb-day.partial{color:#d0c8ff;background:#312c50;border-color:#9483ef}
html[data-theme="dark"] #rous-booking-app .rb-day.occupied{color:#a4a5ae;background:#2b2e3a;border-color:#656978}
html[data-theme="dark"] #rous-booking-app .rb-day:disabled:not(.occupied){color:#686b78;background:#151824;border-color:#292d3d}
html[data-theme="dark"] #rous-booking-app .rb-day.is-selected{color:#fff;background:#6b5ce7;border-color:#fff;outline-color:#6b5ce7}
html[data-theme="dark"] #rous-booking-app .rb-day.blocked{color:#efbfc8;background:repeating-linear-gradient(135deg,#37262e 0,#37262e 8px,#442d36 8px,#442d36 16px);border-color:#a76573}

html[data-theme] #rous-booking-app .rb-staff-card.is-unavailable{opacity:1;filter:none;color:#777785;background:#ececf1;border:2px dashed #a8a9b2;cursor:not-allowed}
html[data-theme] #rous-booking-app .rb-staff-card.is-unavailable::after{content:"No disponible";position:absolute;top:12px;right:12px;padding:5px 9px;border-radius:999px;color:#fff;background:#686a75;font-size:.7rem;font-weight:850}
html[data-theme] #rous-booking-app .rb-staff-card.is-unavailable .rb-staff-photo{filter:grayscale(1);opacity:.5;border-color:#bbbcc3}
html[data-theme] #rous-booking-app .rb-staff-card.is-unavailable :is(h3,p,.rb-status){color:#6f707a}
html[data-theme] #rous-booking-app .rb-staff-card.is-unavailable .rb-status::before{background:#777985}
html[data-theme="dark"] #rous-booking-app .rb-staff-card.is-unavailable{color:#9294a0;background:#111521;border-color:#515566}
html[data-theme="dark"] #rous-booking-app .rb-staff-card.is-unavailable :is(h3,p,.rb-status){color:#858795}
html[data-theme="dark"] #rous-booking-app .rb-staff-card.is-unavailable::after{background:#575b69}
html[data-theme] #rous-booking-app .rb-confirm-hero{color:#fff;background:linear-gradient(135deg,#24187f,#6355dc)}
html[data-theme] #rous-booking-app .rb-confirm-hero :is(span,strong,small){color:#fff}
