:root{
  --teal:#0b9fb2;
  --teal-dark:#087f91;
  --navy:#243b53;
  --text:#263238;
  --muted:#7b8794;
  --border:#c9d3dc;
  --bg:#f4f7f9;
  --white:#fff;
  --danger:#d64545;
  --shadow:0 10px 30px rgba(24,55,74,.12);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--text);background:var(--bg)}
body{min-height:100vh}
.page{min-height:100vh}
.hero{background:linear-gradient(135deg,#0a9caf 0%,#087f99 100%);color:#fff;padding:34px 20px 30px}
.hero-inner{max-width:960px;margin:auto;text-align:center}
.hero h1{margin:0;font-size:32px;line-height:1.2;font-weight:800;letter-spacing:-.5px}
.hero p{margin:10px 0 30px;font-size:16px;opacity:.92}
.steps{display:flex;align-items:flex-start;max-width:680px;margin:auto}
.step{width:180px;display:flex;flex-direction:column;align-items:center;gap:9px;position:relative}
.step span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.25);font-weight:800;border:2px solid rgba(255,255,255,.5);transition:.2s}
.step strong{font-size:13px;font-weight:700;white-space:nowrap}
.step.active span{background:#fff;color:var(--teal);border-color:#fff}
.step-line{height:2px;background:rgba(255,255,255,.45);flex:1;margin-top:21px}
.card{max-width:960px;margin:0 auto 50px;background:#fff;padding:34px 42px 38px;border-radius:0 0 18px 18px;box-shadow:var(--shadow)}
.form-step{display:none}
.form-step.active{display:block}
h2{margin:0;font-size:25px;color:var(--navy)}
.section-subtitle{margin:8px 0 28px;color:var(--muted);font-size:14px}
.grid{display:grid;gap:20px}
.grid.two{grid-template-columns:1fr 1fr}
label{display:flex;flex-direction:column;gap:8px;font-size:14px;font-weight:700;color:var(--navy)}
label em{color:var(--danger);font-style:normal}
input,select{width:100%;height:48px;border:1px solid var(--border);border-radius:9px;background:#fff;padding:0 15px;font-size:15px;color:var(--text);outline:none;transition:.2s}
input:focus,select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(11,159,178,.12)}
input::placeholder{color:#a0aab2}
input:disabled,select:disabled{background:#f1f4f6;cursor:not-allowed}
small{margin-top:-3px;color:var(--muted);font-size:11px;font-weight:400}
.actions{display:flex;justify-content:flex-end;gap:12px;margin-top:30px}
.btn{border:0;border-radius:9px;min-height:46px;padding:0 24px;font-size:14px;font-weight:800;cursor:pointer;transition:.2s}
.btn.primary{background:var(--teal);color:#fff}
.btn.primary:hover{background:var(--teal-dark);transform:translateY(-1px)}
.btn.primary:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn.secondary{background:#edf2f5;color:var(--navy)}
.btn.secondary:hover{background:#e2e9ee}
.availability-head{display:flex;justify-content:space-between;align-items:center;margin-top:28px}
.availability-head h3{margin:0;color:var(--navy);font-size:17px}
#availabilityStatus{font-size:12px;color:var(--muted)}
.times{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}
.time-btn{border:1px solid var(--border);background:#fff;color:var(--navy);border-radius:8px;padding:12px 8px;font-weight:700;cursor:pointer}
.time-btn:hover,.time-btn.selected{background:var(--teal);border-color:var(--teal);color:#fff}
.empty{grid-column:1/-1;border:1px dashed var(--border);border-radius:9px;padding:20px;text-align:center;color:var(--muted);font-size:14px}
.alert{padding:13px 15px;border-radius:8px;margin-bottom:22px;background:#fff4f4;color:#9b2c2c;border:1px solid #f0c2c2;font-size:14px}
.alert.success{background:#effaf7;color:#176b5b;border-color:#b8e5da}
[hidden]{display:none!important}
@media(max-width:720px){
  .hero{padding:26px 16px}
  .hero h1{font-size:25px}
  .card{margin:0 12px 30px;padding:26px 20px;border-radius:0 0 14px 14px}
  .grid.two{grid-template-columns:1fr}
  .steps{max-width:100%}
  .step{width:130px}
  .step strong{font-size:11px}
  .times{grid-template-columns:repeat(2,1fr)}
  .actions{flex-direction:column-reverse}
  .btn{width:100%}
}


.field-feedback{min-height:16px;margin-top:-2px;font-size:11px;font-weight:500;color:var(--muted)}
.field-feedback.valid{color:#19765a}
.field-feedback.invalid{color:var(--danger)}
input.field-valid{border-color:#2f9e78;background:#f3fcf8}
input.field-valid:focus{border-color:#2f9e78;box-shadow:0 0 0 3px rgba(47,158,120,.13)}
input.field-invalid{border-color:var(--danger);background:#fff8f8}
input.field-invalid:focus{border-color:var(--danger);box-shadow:0 0 0 3px rgba(214,69,69,.12)}
.date-field{grid-column:1/-1}.available-dates{display:grid;grid-template-columns:repeat(auto-fill,minmax(115px,1fr));gap:10px;margin-top:8px}.date-btn{border:1px solid #cbd5e1;background:#fff;border-radius:12px;padding:10px 8px;cursor:pointer;text-align:center}.date-btn:hover{border-color:#0f766e}.date-btn.selected{background:#0f766e;color:#fff;border-color:#0f766e}.date-btn strong,.date-btn span{display:block}.date-btn span{font-size:12px;opacity:.8;margin-top:3px}

/* v14: alineación uniforme de campos */
.grid.two{align-items:start}
.form-field{display:grid;grid-template-rows:22px 48px 18px;gap:8px;min-width:0}
.field-label{display:block;line-height:22px;font-size:14px;font-weight:700;color:var(--navy)}
.field-label em{display:inline;color:var(--danger);font-style:normal;margin-left:2px}
.form-field input,.form-field select{min-width:0}
.form-field .field-feedback{display:block;min-height:18px;margin:0;line-height:18px}
.field-feedback-placeholder{visibility:hidden}
.patient-grid{row-gap:22px}
@media(max-width:720px){
  .form-field{grid-template-rows:22px 48px auto}
  .patient-grid{row-gap:18px}
}

/* v16: comprobante de reserva y acciones de calendario */
.confirmation{animation:confirmationIn .35s ease-out}
@keyframes confirmationIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.confirmation-header{display:flex;align-items:flex-start;gap:18px;padding-bottom:25px;border-bottom:1px solid #e3e9ee}
.confirmation-icon{flex:0 0 52px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#e9f8f4;color:#19765a;font-size:28px;font-weight:900;border:1px solid #b8e5da}
.confirmation-kicker{display:block;margin-bottom:5px;color:var(--teal-dark);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.confirmation-header h2{font-size:27px;margin:0 0 7px}
.confirmation-header p{margin:0;color:var(--muted);line-height:1.55}
.reservation-number{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:24px 0;padding:18px 20px;border-radius:12px;background:linear-gradient(135deg,#edf9fb,#f7fcfd);border:1px solid #b9e1e7}
.reservation-number span{font-size:13px;color:#496273;font-weight:700}
.reservation-number strong{font-size:24px;color:var(--navy);letter-spacing:.04em}
.confirmation-section{margin-top:25px}
.confirmation-section h3{margin:0 0 14px;color:var(--navy);font-size:17px}
.confirmation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;border:1px solid #e1e7ec;border-radius:12px;overflow:hidden;background:#fff}
.confirmation-grid>div{min-height:88px;padding:17px 18px;border-right:1px solid #e7ecef;border-bottom:1px solid #e7ecef}
.confirmation-grid>div:nth-child(3n){border-right:0}
.confirmation-grid>div:nth-last-child(-n+3){border-bottom:0}
.patient-summary>div:nth-last-child(-n+3){border-bottom:1px solid #e7ecef}
.patient-summary>div:last-child{border-bottom:0}
.confirmation-grid dt{margin:0 0 7px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.confirmation-grid dd{margin:0;color:var(--navy);font-size:15px;font-weight:750;line-height:1.35;overflow-wrap:anywhere}
.confirmation-note{margin-top:24px;padding:14px 17px;border-radius:10px;background:#f7fafc;border-left:4px solid var(--teal);font-size:13px;color:#526777;line-height:1.5}
.confirmation-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:28px;padding-top:24px;border-top:1px solid #e3e9ee}
.btn.calendar{background:#fff;border:1px solid var(--border);color:var(--navy)}
.btn.calendar:hover{border-color:var(--teal);color:var(--teal-dark);transform:translateY(-1px)}
@media(max-width:800px){
  .confirmation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .confirmation-grid>div,.confirmation-grid>div:nth-child(3n){border-right:1px solid #e7ecef;border-bottom:1px solid #e7ecef}
  .confirmation-grid>div:nth-child(2n){border-right:0}
  .confirmation-grid>div:nth-last-child(-n+2){border-bottom:0}
  .patient-summary>div:nth-last-child(-n+2){border-bottom:1px solid #e7ecef}
  .patient-summary>div:last-child{border-bottom:0}
}
@media(max-width:560px){
  .confirmation-header{align-items:flex-start}.confirmation-icon{width:44px;height:44px;flex-basis:44px;font-size:23px}
  .confirmation-header h2{font-size:22px}
  .reservation-number{align-items:flex-start;flex-direction:column;gap:5px}
  .confirmation-grid{grid-template-columns:1fr}
  .confirmation-grid>div,.confirmation-grid>div:nth-child(2n),.confirmation-grid>div:nth-child(3n){border-right:0;border-bottom:1px solid #e7ecef}
  .confirmation-grid>div:last-child{border-bottom:0}
  .confirmation-actions{flex-direction:column}.confirmation-actions .btn{width:100%}
}
@media print{
  body{background:#fff}.hero,.alert,#bookingForm,.confirmation-actions{display:none!important}
  .card{max-width:none;margin:0;padding:0;box-shadow:none;border-radius:0}
  .confirmation{display:block!important}.confirmation-header{padding-top:10px}
  .confirmation-grid{break-inside:avoid}.confirmation-section{break-inside:avoid}
  .confirmation-note{border:1px solid #ddd}
}

/* v17: modalidad de consulta */
.consultation-mode-field{grid-column:1/-1;margin:2px 0 0;padding:0;border:0;min-width:0}
.consultation-mode-field legend{padding:0;color:var(--navy);font-size:14px;font-weight:800;line-height:22px}
.consultation-mode-field legend em{color:var(--danger);font-style:normal}
.consultation-mode-field>p{margin:5px 0 12px;color:var(--muted);font-size:12px;line-height:1.45}
.consultation-mode-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.consultation-mode-option{position:relative;display:block;cursor:pointer}
.consultation-mode-option input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.consultation-mode-content{display:block;min-height:82px;padding:16px 18px 15px 50px;border:1px solid var(--border);border-radius:11px;background:#fff;transition:.2s;position:relative}
.consultation-mode-content:before{content:"";position:absolute;left:18px;top:20px;width:18px;height:18px;border-radius:50%;border:2px solid #aab7c2;background:#fff;box-shadow:inset 0 0 0 4px #fff;transition:.2s}
.consultation-mode-content strong{display:block;color:var(--navy);font-size:15px;line-height:1.25}
.consultation-mode-content small{display:block;margin:6px 0 0;color:var(--muted);font-size:12px;font-weight:500;line-height:1.4}
.consultation-mode-option:hover .consultation-mode-content{border-color:var(--teal);background:#fbfeff}
.consultation-mode-option input:focus-visible + .consultation-mode-content{outline:3px solid rgba(11,159,178,.18);outline-offset:2px}
.consultation-mode-option input:checked + .consultation-mode-content{border-color:var(--teal);background:#f1fbfc;box-shadow:0 0 0 1px var(--teal)}
.consultation-mode-option input:checked + .consultation-mode-content:before{border-color:var(--teal);background:var(--teal);box-shadow:inset 0 0 0 4px #fff}

.consultation-mode-option:has(input:disabled){cursor:not-allowed}
.consultation-mode-option input:disabled + .consultation-mode-content{opacity:.5;background:#f4f6f8;border-color:#d9e0e5;box-shadow:none}
.consultation-mode-option input:disabled + .consultation-mode-content:before{border-color:#c5ced6;background:#eef1f3}
.consultation-mode-option:has(input:disabled):hover .consultation-mode-content{border-color:#d9e0e5;background:#f4f6f8}
@media(max-width:620px){.consultation-mode-options{grid-template-columns:1fr}.consultation-mode-content{min-height:76px}}

/* v18: membrete, contactos y comprobante Carta de una sola página */
.print-letterhead,.print-footer{display:none}
.confirmation-note strong{display:block;color:var(--navy);margin-bottom:7px}
.confirmation-note ul{margin:0;padding-left:20px}
.confirmation-note li+li{margin-top:4px}
.confirmation-contact{margin-top:24px;border-radius:12px;overflow:hidden;border:1px solid #dce5eb;background:#fff}
.confirmation-contact h3{margin:0;padding:12px 17px;background:var(--navy);color:#fff;font-size:15px}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.contact-grid>div{padding:13px 17px;border-right:1px solid #e5ebef;border-bottom:1px solid #e5ebef}
.contact-grid>div:nth-child(2n){border-right:0}
.contact-grid>div:nth-last-child(-n+2){border-bottom:0}
.contact-grid span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.contact-grid strong{display:block;color:var(--navy);font-size:14px;overflow-wrap:anywhere}
@media(max-width:560px){.contact-grid{grid-template-columns:1fr}.contact-grid>div{border-right:0!important;border-bottom:1px solid #e5ebef!important}.contact-grid>div:last-child{border-bottom:0!important}}

@media print{
  @page{size:Letter portrait;margin:9mm 10mm 8mm}
  html,body{width:215.9mm;min-height:279.4mm;margin:0!important;padding:0!important;background:#fff!important;color:#162f4b!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  body{font-family:Arial,Helvetica,sans-serif;font-size:9pt}
  .page{min-height:0!important}
  .hero,.alert,#bookingForm,.confirmation-actions{display:none!important}
  .card{width:100%!important;max-width:none!important;margin:0!important;padding:0!important;box-shadow:none!important;border:0!important;border-radius:0!important}
  .confirmation{display:block!important;width:100%!important;max-height:257mm!important;overflow:hidden!important;animation:none!important}
  .print-letterhead{display:block!important;text-align:center;margin:0 0 4mm;padding:0}
  .print-letterhead img{display:block;width:auto;height:24mm;max-width:105mm;object-fit:contain;margin:0 auto 1.5mm}
  .print-letterhead h1{margin:0;color:#173a63;font-size:15pt;line-height:1.1;text-transform:uppercase;letter-spacing:.02em}
  .print-letterhead-line{height:.6mm;margin-top:2.5mm;background:#149cb2}
  .confirmation-header{display:flex!important;gap:3mm;align-items:center;padding:3mm 4mm!important;border:1px solid #b8dfe3!important;border-radius:3mm;background:#f1fafb!important;break-inside:avoid}
  .confirmation-icon{width:10mm!important;height:10mm!important;flex-basis:10mm!important;font-size:16pt!important}
  .confirmation-kicker{font-size:7.5pt!important;margin-bottom:1mm!important}
  .confirmation-header h2{margin:0 0 .8mm!important;font-size:13pt!important;line-height:1.15!important}
  .confirmation-header p{margin:0!important;font-size:8pt!important;line-height:1.25!important}
  .reservation-number{margin:3mm 0!important;padding:2.4mm 4mm!important;border-radius:2.5mm!important;break-inside:avoid}
  .reservation-number span{font-size:8pt!important}.reservation-number strong{font-size:16pt!important}
  .confirmation-section{margin-top:3mm!important;break-inside:avoid!important}
  .confirmation-section h3{margin:0 0 1.5mm!important;font-size:10pt!important;text-transform:uppercase;letter-spacing:.025em}
  .confirmation-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;border-radius:2.5mm!important;break-inside:avoid!important}
  .confirmation-grid>div,.confirmation-grid>div:nth-child(2n),.confirmation-grid>div:nth-child(3n){min-height:0!important;padding:2.1mm 2.5mm!important;border-right:1px solid #e1e8ed!important;border-bottom:1px solid #e1e8ed!important}
  .confirmation-grid>div:nth-child(4n){border-right:0!important}
  .confirmation-grid>div:nth-last-child(-n+4){border-bottom:0!important}
  .patient-summary>div:nth-last-child(-n+4){border-bottom:0!important}
  .confirmation-grid dt{margin:0 0 .8mm!important;font-size:6.6pt!important;line-height:1.1!important}
  .confirmation-grid dd{font-size:8.4pt!important;line-height:1.18!important;font-weight:700!important}
  .confirmation-note{margin-top:3mm!important;padding:2.2mm 3mm!important;border:1px solid #b9dce6!important;border-left:1.2mm solid #149cb2!important;border-radius:2.2mm!important;font-size:7.6pt!important;line-height:1.25!important;break-inside:avoid!important}
  .confirmation-note strong{margin-bottom:1mm!important;font-size:8.5pt!important}
  .confirmation-note ul{padding-left:4mm!important}.confirmation-note li+li{margin-top:.5mm!important}
  .confirmation-contact{margin-top:3mm!important;border-radius:2.3mm!important;break-inside:avoid!important}
  .confirmation-contact h3{padding:1.7mm 3mm!important;font-size:9pt!important;text-transform:uppercase}
  .contact-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .contact-grid>div,.contact-grid>div:nth-child(2n){padding:1.8mm 2.3mm!important;border-right:1px solid #e1e8ed!important;border-bottom:0!important}
  .contact-grid>div:last-child{border-right:0!important}
  .contact-grid span{font-size:6.3pt!important;margin-bottom:.6mm!important}
  .contact-grid strong{font-size:7.7pt!important;line-height:1.15!important}
  .print-footer{display:block!important;text-align:center;margin-top:3mm;padding-top:2mm;border-top:.4mm solid #149cb2;color:#176f82;break-inside:avoid!important}
  .print-footer p{margin:0 0 .7mm;font-size:8pt;font-weight:700}
  .print-footer small{font-size:6.7pt;color:#64798a}
  *{orphans:3;widows:3}
}

/* v19: comprobante impreso fiel al diseño aprobado */
.print-receipt{display:none}
/* Cierra visualmente toda la grilla de atención en pantalla. */
.confirmation-grid:not(.patient-summary)>div:nth-last-child(-n+3){border-bottom:1px solid #e7ecef}
.confirmation-grid:not(.patient-summary)>div:last-child{border-bottom:0}

@media print{
  @page{size:Letter portrait;margin:8mm 10mm}
  html,body{width:auto!important;min-height:0!important;margin:0!important;padding:0!important;background:#fff!important}
  .hero,.alert,#bookingForm,.confirmation-header,.reservation-number,.confirmation-section,.confirmation-note,.confirmation-contact,.print-footer,.confirmation-actions,.print-letterhead{display:none!important}
  .page,.card,.confirmation{display:block!important;width:100%!important;max-width:none!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important;overflow:visible!important;background:#fff!important}
  .print-receipt{display:block!important;width:100%;font-family:Arial,Helvetica,sans-serif;color:#092e63;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  .print-receipt *{box-sizing:border-box}
  .print-receipt__header{text-align:center;margin:0 0 4mm}
  .print-receipt__header img{display:block;width:auto;height:25mm;max-width:112mm;object-fit:contain;margin:0 auto 1.5mm}
  .print-receipt__header h1{margin:0;font-size:15pt;line-height:1.1;text-transform:uppercase;letter-spacing:.01em;color:#07346f}
  .print-receipt__rule{height:.55mm;margin-top:2.5mm;background:#159eb5}
  .print-receipt__status{display:grid;grid-template-columns:13mm 32mm 1fr 1fr;align-items:center;min-height:25mm;margin-bottom:4mm;padding:3mm 4mm;border:1px solid #cbd8e5;border-radius:3mm;background:#fff;break-inside:avoid}
  .print-receipt__check{display:grid;place-items:center;width:11mm;height:11mm;border-radius:50%;background:#078255;color:#fff;font-size:20pt;font-weight:900}
  .print-receipt__status-label{padding-left:2mm;color:#078255;font-size:10.5pt;text-transform:uppercase;line-height:1.15}
  .print-receipt__reservation,.print-receipt__created{min-height:17mm;padding:1mm 5mm;border-left:1px solid #cbd8e5;display:flex;flex-direction:column;justify-content:center}
  .print-receipt__status span,.print-receipt__status small{font-size:7pt;color:#0c376d;font-weight:700}
  .print-receipt__reservation strong{margin-top:1mm;font-size:23pt;line-height:1;color:#0b4f9b}
  .print-receipt__created strong{margin-top:1mm;font-size:10pt;color:#0b3670}.print-receipt__created small{margin-top:.8mm;font-weight:500}
  .print-receipt__section{margin-top:3mm;break-inside:avoid}
  .print-receipt__section>h2,.print-receipt__contact>h2{display:flex;align-items:center;gap:2mm;margin:0 0 1.7mm;font-size:9.5pt;text-transform:uppercase;color:#063a79}
  .print-receipt__section>h2:before{content:"";width:7mm;height:7mm;border-radius:50%;background:#0a4e98}
  .print-attention-grid{display:grid;grid-template-columns:1.15fr 1fr 1.45fr;margin:0;border:1px solid #cbd8e5;border-radius:2.5mm;overflow:hidden}
  .print-attention-grid>div{min-height:18mm;padding:3mm 3.5mm;border-right:1px solid #d6e0e9;border-bottom:1px solid #d6e0e9}
  .print-attention-grid>div:nth-child(3n){border-right:0}
  .print-attention-grid__duration{grid-column:1/-1;min-height:15mm!important;border-right:0!important;border-bottom:0!important;border-top:0}
  .print-attention-grid dt,.print-patient-grid dt{margin:0 0 1.6mm;font-size:6.8pt;font-weight:800;text-transform:uppercase;color:#07417f}
  .print-attention-grid dd,.print-patient-grid dd{margin:0;font-size:9.2pt;line-height:1.25;color:#111;font-weight:600;overflow-wrap:anywhere}
  .print-patient-grid{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:3mm 4mm;border:1px solid #cbd8e5;border-radius:2.5mm}
  .print-patient-grid>div{min-height:12.5mm;padding:1.5mm 4mm 1.5mm 0}
  .print-patient-grid>div:nth-child(even){padding-left:5mm;border-left:1px solid #d6e0e9}
  .print-patient-grid>div:last-child{grid-column:1/-1;border-left:0;padding-left:0}
  .print-receipt__recommendations{display:grid;grid-template-columns:8mm 1fr;gap:3mm;margin-top:3mm;padding:3mm 4mm;border:1px solid #8fc8ed;border-radius:2.5mm;background:#f5fbff;break-inside:avoid}
  .print-receipt__info{display:grid;place-items:center;width:7mm;height:7mm;border-radius:50%;background:#0865b5;color:#fff;font-size:11pt;font-weight:800}
  .print-receipt__recommendations h2{margin:0 0 1.5mm;font-size:8.7pt;text-transform:uppercase;color:#0752a0}
  .print-receipt__recommendations ul{margin:0;padding-left:5mm;color:#113a68;font-size:7.6pt;line-height:1.45}
  .print-receipt__contact{margin-top:3mm;break-inside:avoid}
  .print-receipt__contact>h2{margin-bottom:2mm}.print-receipt__contact>h2:before{display:none}
  .print-receipt__contact>div{display:flex;justify-content:space-between;gap:3mm;padding:0 0 3mm;border-bottom:.55mm solid #159eb5;color:#0b376b;font-size:7.5pt;font-weight:700;white-space:nowrap}
  .print-receipt__footer{display:flex;justify-content:space-between;align-items:flex-end;gap:6mm;padding-top:3mm;font-size:7pt;color:#174a7d;break-inside:avoid}
  .print-receipt__footer strong{font-size:8pt}.print-receipt__footer span{text-align:right}
}

/* v69: resumen limpio de jornada real del profesional */
.professional-field{align-self:start;display:flex;flex-direction:column;min-width:0}
.professional-field>label{display:block;margin:0 0 7px}
.professional-field>select{width:100%}
.professional-days-summary{display:flex;align-items:center;gap:10px;width:100%;box-sizing:border-box;margin-top:10px;padding:10px 13px;border:1px solid #c9e5ea;border-radius:10px;background:#f5fbfc;color:#264c56;font-size:13px;line-height:1.45;overflow:hidden}
.professional-days-summary[hidden]{display:none!important}
.professional-days-icon{position:relative;display:block;flex:0 0 28px;width:28px;height:28px;border-radius:8px;background:#dff3f6}
.professional-days-icon:before{content:"";position:absolute;left:7px;top:7px;width:14px;height:13px;border:2px solid #187d8d;border-radius:3px;box-sizing:border-box;background:linear-gradient(to bottom,#187d8d 0 3px,transparent 3px)}
.professional-days-icon:after{content:"";position:absolute;left:10px;top:5px;width:2px;height:5px;border-radius:2px;background:#187d8d;box-shadow:6px 0 0 #187d8d}
.professional-days-summary>span:last-child{display:block;min-width:0;overflow-wrap:anywhere}
.professional-days-summary strong{color:#155f70;font-weight:800}
.date-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0}
.date-pagination[hidden]{display:none!important}
.date-pagination span{color:#526476;font-size:13px;font-weight:700;text-align:center;text-transform:capitalize}
.date-page-btn{appearance:none;border:1px solid #b9c8d5;border-radius:10px;background:#fff;color:#155f70;padding:9px 12px;font-weight:700;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .2s ease}
.date-page-btn:hover:not(:disabled){border-color:#149cb2;background:#effbfc;transform:translateY(-1px)}
.date-page-btn:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:620px){
  .date-pagination{display:grid;grid-template-columns:1fr 1fr}
  .date-pagination span{grid-column:1/-1;grid-row:1}
  .date-page-btn{width:100%;font-size:12px;padding:9px 7px}
}


/* v79: alerta destacada para restricción de edad LASIK */
.alert.age-warning{
  position:relative;
  padding:17px 18px 17px 58px;
  background:linear-gradient(135deg,#fff8e8,#fffdf7);
  color:#7a4300;
  border:1px solid #f0bd62;
  border-left:5px solid #e49218;
  box-shadow:0 8px 22px rgba(163,96,0,.12);
  font-size:15px;
  font-weight:700;
  line-height:1.45;
}
.alert.age-warning:before{
  content:"!";
  position:absolute;
  left:17px;
  top:50%;
  transform:translateY(-50%);
  width:27px;
  height:27px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e49218;
  color:#fff;
  font-size:18px;
  font-weight:900;
}


.curl-preview{margin:22px 0;padding:16px 18px;border:1px solid #d8e1e8;border-radius:14px;background:#f7fafc}.curl-preview summary{cursor:pointer;font-weight:700}.curl-preview p{margin:10px 0;color:#53616d}.curl-preview pre{overflow:auto;white-space:pre-wrap;word-break:break-word;background:#16212b;color:#f5f7fa;padding:16px;border-radius:10px;font-size:12px;line-height:1.5}.curl-copy-btn{margin-top:10px}


/* v127: optimización integral para uso embebido en iframe 100% × 800px */
html.is-embedded,
html.is-embedded body{
  width:100%;
  min-width:0;
  min-height:100%;
  overflow-x:hidden;
  background:#eef3f6;
  scrollbar-gutter:stable;
}
html.is-embedded body{
  min-height:800px;
}
html.is-embedded .page{
  min-height:800px;
  width:100%;
  overflow-x:hidden;
}
html.is-embedded .hero{
  padding:20px 18px 18px;
}
html.is-embedded .hero-inner{
  max-width:1040px;
}
html.is-embedded .hero h1{
  font-size:27px;
  line-height:1.15;
}
html.is-embedded .hero p{
  margin:7px 0 18px;
  font-size:14px;
}
html.is-embedded .steps{
  max-width:620px;
}
html.is-embedded .step span{
  width:36px;
  height:36px;
}
html.is-embedded .step-line{
  margin-top:18px;
}
html.is-embedded .step strong{
  font-size:12px;
}
html.is-embedded .card{
  width:calc(100% - 28px);
  max-width:1040px;
  margin:0 auto 24px;
  padding:25px 30px 30px;
  border-radius:0 0 16px 16px;
}
html.is-embedded h2{
  font-size:22px;
}
html.is-embedded .section-subtitle{
  margin:6px 0 20px;
}
html.is-embedded .grid{
  gap:15px 18px;
}
html.is-embedded .patient-grid{
  row-gap:17px;
}
html.is-embedded .actions{
  position:sticky;
  bottom:0;
  z-index:10;
  margin:24px -10px -10px;
  padding:12px 10px 10px;
  background:linear-gradient(to bottom,rgba(255,255,255,0),#fff 24%,#fff 100%);
}
html.is-embedded .available-dates{
  grid-template-columns:repeat(auto-fill,minmax(105px,1fr));
  gap:8px;
}
html.is-embedded .date-btn{
  padding:8px 6px;
}
html.is-embedded .times{
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}
html.is-embedded .time-btn{
  padding:10px 6px;
}
html.is-embedded .confirmation-header{
  padding-bottom:18px;
}
html.is-embedded .reservation-number{
  margin:18px 0;
  padding:14px 17px;
}
html.is-embedded .confirmation-section{
  margin-top:19px;
}
html.is-embedded .confirmation-grid>div{
  min-height:76px;
  padding:13px 15px;
}
html.is-embedded .confirmation-note{
  margin-top:18px;
}
html.is-embedded .confirmation-actions{
  margin-top:20px;
  padding-top:16px;
}

@media (max-width:800px){
  html.is-embedded .card{
    width:calc(100% - 20px);
    padding:23px 20px 26px;
  }
  html.is-embedded .times{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media (max-width:620px){
  html.is-embedded body,
  html.is-embedded .page{
    min-height:800px;
  }
  html.is-embedded .hero{
    padding:18px 12px 15px;
  }
  html.is-embedded .hero h1{
    font-size:22px;
  }
  html.is-embedded .hero p{
    margin-bottom:14px;
    font-size:13px;
  }
  html.is-embedded .step{
    width:auto;
    flex:1 1 0;
  }
  html.is-embedded .step strong{
    max-width:92px;
    white-space:normal;
    text-align:center;
    line-height:1.15;
  }
  html.is-embedded .card{
    width:100%;
    margin:0;
    padding:21px 15px 24px;
    border-radius:0;
    box-shadow:none;
  }
  html.is-embedded .grid.two{
    grid-template-columns:1fr;
  }
  html.is-embedded .actions{
    margin-left:-5px;
    margin-right:-5px;
  }
  html.is-embedded .times{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:420px){
  html.is-embedded .step strong{font-size:10px}
  html.is-embedded .step span{width:32px;height:32px}
  html.is-embedded .step-line{margin-top:16px}
  html.is-embedded .times{grid-template-columns:repeat(2,minmax(0,1fr))}
  html.is-embedded .available-dates{grid-template-columns:repeat(2,minmax(0,1fr))}
}

.matrix-tip{margin:16px 0;padding:14px 18px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;color:#555;font-weight:600}
thead th{font-size:1.08rem}
thead th .code{font-size:.9rem}
