#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-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 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-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 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-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-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:.67rem; line-height:1.2; }
  #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 { 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 .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-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; } }
