:root{--nb-navy:#2C3E60;--nb-blue:#B5CEE6;--nb-lilac:#ABA9BE;--nb-ink:#1f2d49;--nb-bg:#f7f8fb;--nb-line:#e3e8f0;--nb-white:#fff;--nb-green:#1f9d68;--nb-red:#c24a55}.nb-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.nb-modal-open{overflow:hidden}.nb-modal{position:fixed;inset:0;z-index:999999;display:none;align-items:center;justify-content:center;padding:28px}.nb-modal.is-open{display:flex}.nb-modal__backdrop{position:absolute;inset:0;background:rgba(16,27,48,.68);backdrop-filter:blur(8px)}.nb-modal__dialog{position:relative;z-index:2;width:min(1040px,96vw);max-height:92vh;overflow:auto;background:#fff;border-radius:28px;box-shadow:0 30px 90px rgba(15,30,55,.28)}.nb-modal__close{position:absolute;right:18px;top:16px;width:42px;height:42px;border:0;border-radius:50%;background:#f0f3f8;color:var(--nb-navy);font-size:26px;line-height:1;cursor:pointer;z-index:4}.nb-app{font-family:Montserrat,Arial,sans-serif;color:var(--nb-ink);background:#fff}.nb-app--embed{width:min(1080px,calc(100% - 32px));margin:50px auto;border:1px solid var(--nb-line);border-radius:28px;overflow:hidden;box-shadow:0 24px 70px rgba(44,62,96,.09)}.nb-brand{text-align:center;padding:28px 70px 12px}.nb-brand__name{display:block;font-family:"Mogan Local",Georgia,serif;color:var(--nb-navy);font-size:27px;line-height:1}.nb-brand__sub{display:block;font-size:9px;letter-spacing:.26em;color:#758198;margin-top:5px}.nb-progress{display:flex;align-items:flex-start;justify-content:center;max-width:620px;margin:12px auto 0;padding:0 24px}.nb-progress__item{width:100px;text-align:center;color:#8893a6}.nb-progress__item span{display:flex;width:32px;height:32px;margin:0 auto 7px;border-radius:50%;align-items:center;justify-content:center;background:#eef1f6;color:#657086;font-weight:700}.nb-progress__item small{font-size:12px}.nb-progress__item.is-active,.nb-progress__item.is-done{color:var(--nb-navy)}.nb-progress__item.is-active span{background:var(--nb-navy);color:#fff;box-shadow:0 0 0 7px rgba(181,206,230,.34)}.nb-progress__item.is-done span{background:var(--nb-blue);color:var(--nb-navy)}.nb-progress__line{width:120px;height:1px;background:#dce2ec;margin-top:16px}.nb-step{display:none;padding:34px 54px 46px}.nb-step.is-active{display:block}.nb-step__head{text-align:center;max-width:690px;margin:0 auto 28px}.nb-eyebrow{margin:0 0 8px;font-size:11px;letter-spacing:.22em;font-weight:700;color:#70809a}.nb-step__head h3,.nb-success h3,.nb-manage h2{font-family:"Mogan Local",Georgia,serif;font-size:42px;font-weight:400;line-height:1.1;color:var(--nb-navy);margin:0 0 10px}.nb-step__head p:not(.nb-eyebrow){color:#6f7a8e;margin:0;font-size:15px}.nb-services{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.nb-service{position:relative;display:flex;align-items:center;gap:13px;padding:12px;border:1.5px solid var(--nb-line);border-radius:18px;background:#fff;text-align:left;cursor:pointer;transition:.2s;min-height:100px;color:var(--nb-ink)}.nb-service:hover,.nb-service.is-selected{border-color:var(--nb-navy);box-shadow:0 12px 35px rgba(44,62,96,.1);transform:translateY(-1px)}.nb-service img,.nb-service__placeholder{width:74px;height:74px;object-fit:cover;border-radius:13px;background:linear-gradient(145deg,#f2ede8,#dbe8f3);flex:0 0 auto}.nb-service__body{display:flex;flex:1;flex-direction:column;gap:5px;min-width:0}.nb-service__body strong{font-size:15px}.nb-service__body small{font-size:12px;color:#778398}.nb-service__body i{display:none;position:absolute;right:11px;top:11px;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;background:var(--nb-navy);color:#fff;font-style:normal;font-size:12px}.nb-service.is-selected i{display:flex}.nb-schedule-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:18px;margin-top:22px}.nb-calendar-card,.nb-times-card{border:1px solid var(--nb-line);border-radius:20px;padding:18px;background:#fbfcfe}.nb-calendar__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;text-transform:capitalize;color:var(--nb-navy)}.nb-calendar__head button{border:0;background:#edf2f8;width:34px;height:34px;border-radius:50%;font-size:23px;color:var(--nb-navy);cursor:pointer}.nb-calendar__week,.nb-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.nb-calendar__week span{text-align:center;font-size:10px;color:#8a95a7;text-transform:uppercase;padding:4px}.nb-day{aspect-ratio:1;border:0;border-radius:50%;background:transparent;color:var(--nb-ink);font:inherit;cursor:pointer;max-width:38px;justify-self:center;width:100%}.nb-day:not(:disabled):hover{background:#eaf0f6}.nb-day.is-selected{background:var(--nb-navy);color:#fff}.nb-day:disabled{color:#c8ced8;cursor:default}.nb-day--empty{display:block}.nb-field-label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#6e7b91;margin:0 0 12px}.nb-times{display:flex;flex-wrap:wrap;gap:8px}.nb-times button{border:1px solid var(--nb-line);background:#fff;color:var(--nb-navy);border-radius:10px;padding:10px 12px;font-weight:600;cursor:pointer}.nb-times button:hover,.nb-times button.is-selected{background:var(--nb-navy);color:#fff;border-color:var(--nb-navy)}.nb-muted{font-size:13px;color:#8a95a7}.nb-specialists{margin-top:20px}.nb-specialist-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.nb-specialist{display:flex;gap:12px;align-items:center;border:1px solid var(--nb-line);background:#fff;border-radius:15px;padding:11px;text-align:left;cursor:pointer;color:var(--nb-ink)}.nb-specialist img,.nb-avatar{width:48px;height:48px;border-radius:50%;object-fit:cover;background:var(--nb-blue);display:flex;align-items:center;justify-content:center;color:var(--nb-navy);font-weight:700}.nb-specialist span:not(.nb-avatar){display:flex;flex-direction:column}.nb-specialist small{color:#8791a2;margin-top:3px}.nb-specialist i{margin-left:auto;display:none;font-style:normal}.nb-specialist.is-selected{border-color:var(--nb-navy)}.nb-specialist.is-selected i{display:block}.nb-actions{display:flex;justify-content:space-between;gap:12px;margin-top:28px}.nb-btn,.nb-open-button{appearance:none;border:0;text-decoration:none!important;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 24px;border-radius:8px;font-family:Montserrat,Arial,sans-serif;font-size:12px;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:.2s}.nb-btn:disabled{opacity:.42;cursor:not-allowed}.nb-btn--primary,.nb-open-button{background:var(--nb-navy);color:#fff!important}.nb-btn--primary:hover,.nb-open-button:hover{background:#1f3153;transform:translateY(-1px)}.nb-btn--ghost{background:#eef2f7;color:var(--nb-navy)}.nb-btn--outline{background:#fff;color:var(--nb-navy)!important;border:1px solid var(--nb-navy)}.nb-btn--whatsapp{background:#1fa76b;color:#fff!important}.nb-btn--danger{background:#fff0f1;color:#a5323d;border:1px solid #ecc1c5}.nb-customer-form{display:grid;grid-template-columns:1fr 1fr;gap:15px;max-width:760px;margin:0 auto}.nb-field--wide{grid-column:1/-1}.nb-field label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:700;color:#59677e}.nb-field label .nb-required{color:#bc5260}.nb-field input,.nb-reschedule input{width:100%;box-sizing:border-box;border:1px solid var(--nb-line);border-radius:12px;padding:15px 14px;font:inherit;color:var(--nb-ink);background:#fbfcfe;outline:none}.nb-field input:focus,.nb-reschedule input:focus{border-color:var(--nb-navy);box-shadow:0 0 0 3px rgba(181,206,230,.34)}.nb-hp{position:absolute!important;left:-9999px!important}.nb-booking-summary{max-width:760px;margin:18px auto 0;background:#f3f6fa;border-radius:14px;padding:14px 17px;display:flex;justify-content:space-between;gap:10px;color:var(--nb-navy);font-size:13px}.nb-message{text-align:center;margin-top:12px;font-size:13px}.nb-message.is-error{color:#b43442}.nb-success{text-align:center;max-width:700px;margin:0 auto 24px}.nb-success__icon{width:76px;height:76px;margin:0 auto 16px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e6f2fb;color:var(--nb-navy);font-size:38px;font-weight:700}.nb-confirm-card{max-width:720px;margin:0 auto;background:#f7f9fc;border:1px solid var(--nb-line);border-radius:18px;padding:10px 20px}.nb-confirm-card dl{margin:0}.nb-confirm-card dl div{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:12px 0;border-bottom:1px solid #e7ebf1}.nb-confirm-card dl div:last-child{border-bottom:0}.nb-confirm-card dt{font-size:11px;text-transform:uppercase;letter-spacing:.09em;color:#8894a8}.nb-confirm-card dd{margin:0;font-size:14px;font-weight:600;color:var(--nb-navy)}.nb-confirm-actions{max-width:720px;margin:18px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.nb-confirm-actions .nb-btn--whatsapp{grid-column:1/-1}.nb-link-button{display:block;margin:18px auto 0;background:none;border:0;color:#687892;text-decoration:underline;cursor:pointer}.is-hidden{display:none!important}.nb-manage{max-width:820px;margin:60px auto;padding:30px}.nb-manage__actions{display:flex;gap:12px;justify-content:center;margin:20px 0}.nb-reschedule{max-width:600px;margin:24px auto;padding:20px;border:1px solid var(--nb-line);border-radius:18px}.nb-reschedule h3{color:var(--nb-navy);margin-top:0}.nb-reschedule .nb-times{margin:15px 0}.nb-open-button{border:none}
@media(max-width:800px){.nb-modal{padding:0}.nb-modal__dialog{width:100%;height:100%;max-height:none;border-radius:0}.nb-app--embed{width:calc(100% - 20px);margin:20px auto}.nb-step{padding:28px 18px 34px}.nb-brand{padding-top:24px}.nb-progress{padding:0 10px}.nb-progress__line{width:60px}.nb-services{grid-template-columns:1fr}.nb-schedule-layout{grid-template-columns:1fr}.nb-specialist-list{grid-template-columns:1fr}.nb-customer-form{grid-template-columns:1fr}.nb-field--wide{grid-column:auto}.nb-step__head h3,.nb-success h3,.nb-manage h2{font-size:34px}.nb-confirm-actions{grid-template-columns:1fr}.nb-confirm-actions .nb-btn--whatsapp{grid-column:auto}.nb-confirm-card dl div{grid-template-columns:1fr;gap:4px}.nb-actions .nb-btn{flex:1}.nb-booking-summary{flex-direction:column}.nb-manage{margin:25px auto;padding:20px}.nb-manage__actions{flex-direction:column}}

/* v1.1.0 · Modal compacto y formularios verticales */
.nb-modal__dialog{width:min(1040px,calc(100% - 44px));max-height:min(90vh,760px);border-radius:26px}
.nb-brand{padding-top:16px}
.nb-brand__name{font-size:27px;line-height:1}
.nb-brand__sub{font-size:8px;margin-top:6px}
.nb-progress{padding:0 24px;margin:14px auto 0;max-width:610px}
.nb-progress__item span{width:38px;height:38px;font-size:18px}
.nb-progress__item small{font-size:11px;margin-top:7px}
.nb-progress__line{width:74px}
.nb-step{padding:16px 34px 24px}
.nb-step__head{margin:0 auto 18px;max-width:760px}
.nb-step__head .nb-eyebrow{margin-bottom:6px}
.nb-step__head h3,.nb-success h3{font-size:38px;line-height:1.06;margin:5px 0 8px}
.nb-step__head>p:last-child,.nb-success>p:last-child{font-size:14px;margin:0}
.nb-services{gap:10px}
.nb-service{min-height:84px;padding:10px}
.nb-service img,.nb-service__placeholder{width:62px;height:62px;border-radius:11px}
.nb-schedule-layout{margin-top:14px;gap:12px}
.nb-calendar-card,.nb-times-card{padding:14px;border-radius:16px}
.nb-calendar__head{margin-bottom:8px}
.nb-day{max-width:34px}
.nb-specialists{margin-top:12px}
.nb-actions{margin-top:18px}
.nb-btn,.nb-open-button{padding:12px 20px}
.nb-customer-form{grid-template-columns:1fr;gap:10px;max-width:560px}
.nb-field--wide{grid-column:auto}
.nb-field label{gap:5px}
.nb-field input,.nb-reschedule input{padding:12px 13px;border-radius:10px;min-height:46px}
.nb-booking-summary{max-width:560px;margin:12px auto 0;padding:11px 14px}
[data-nb-step="2"] .nb-actions{max-width:560px;margin:16px auto 0}
.nb-success{max-width:680px;margin-bottom:14px}
.nb-success__icon{width:58px;height:58px;font-size:30px;margin-bottom:10px}
.nb-confirm-card{max-width:650px;padding:7px 18px;border-radius:16px}
.nb-confirm-card dl div{grid-template-columns:130px 1fr;padding:9px 0;gap:14px}
.nb-confirm-actions{max-width:650px;margin-top:12px}
.nb-link-button{margin-top:12px}
.nb-manage{max-width:760px;margin:36px auto;padding:24px}

@media(max-width:800px){
  .nb-modal{padding:6px;align-items:flex-end}
  .nb-modal__dialog{width:100%;height:auto;max-height:calc(100dvh - 12px);border-radius:24px 24px 14px 14px}
  .nb-brand{padding-top:14px}
  .nb-brand__name{font-size:24px}
  .nb-progress{margin-top:10px;padding:0 8px}
  .nb-progress__item span{width:34px;height:34px;font-size:16px}
  .nb-progress__line{width:44px}
  .nb-step{padding:14px 14px 20px}
  .nb-step__head{margin-bottom:14px}
  .nb-step__head h3,.nb-success h3,.nb-manage h2{font-size:28px;line-height:1.08}
  .nb-step__head>p:last-child,.nb-success>p:last-child{font-size:13px}
  .nb-services{gap:8px}
  .nb-service{min-height:74px}
  .nb-service img,.nb-service__placeholder{width:54px;height:54px}
  .nb-schedule-layout{margin-top:10px}
  .nb-calendar-card,.nb-times-card{padding:12px}
  .nb-actions{margin-top:14px}
  .nb-btn{padding:12px 14px}
  .nb-customer-form{gap:9px}
  .nb-field input{min-height:44px;padding:10px 12px}
  .nb-booking-summary{margin-top:10px}
  .nb-success__icon{width:52px;height:52px;font-size:27px}
  .nb-confirm-card{padding:6px 14px}
  .nb-confirm-card dl div{grid-template-columns:105px 1fr;gap:8px;padding:8px 0}
  .nb-confirm-card dt{font-size:9px}
  .nb-confirm-card dd{font-size:12px}
  .nb-confirm-actions{gap:8px;margin-top:10px}
  .nb-link-button{margin-top:10px}
  .nb-manage{margin:18px auto;padding:16px}
}
.nb-confirm-actions--no-calendar{grid-template-columns:1fr}.nb-confirm-actions--no-calendar .nb-btn--whatsapp{grid-column:auto}


/* v1.2.0 · Formulario vertical compacto en escritorio */
@media (min-width:801px) and (min-height:650px){
  .nb-modal{padding:14px}
  .nb-modal__dialog{
    width:min(760px,calc(100vw - 34px));
    max-height:calc(100dvh - 28px);
    overflow:hidden;
    border-radius:24px;
  }
  .nb-modal__close{right:14px;top:14px;width:38px;height:38px;font-size:23px}
  .nb-app--modal{width:100%;max-height:calc(100dvh - 28px);overflow:hidden}
  .nb-brand{padding:12px 58px 5px}
  .nb-brand__name{font-size:24px}
  .nb-brand__sub{font-size:7px;margin-top:4px}
  .nb-progress{max-width:470px;margin:6px auto 0;padding:0 12px}
  .nb-progress__item{width:82px}
  .nb-progress__item span{width:31px;height:31px;font-size:14px;margin-bottom:4px}
  .nb-progress__item small{font-size:10px}
  .nb-progress__line{width:72px;margin-top:15px}
  .nb-step{padding:7px 28px 15px}
  .nb-step__head{max-width:610px;margin-bottom:9px}
  .nb-step__head .nb-eyebrow{font-size:9px;margin-bottom:3px}
  .nb-step__head h3,.nb-success h3{font-size:31px;line-height:1;margin:3px 0 5px}
  .nb-step__head>p:last-child,.nb-success>p:last-child{font-size:12px;line-height:1.35}
  .nb-services{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .nb-service{min-height:60px;padding:7px 8px;gap:8px;border-radius:13px}
  .nb-service img,.nb-service__placeholder{width:46px;height:46px;border-radius:9px}
  .nb-service__body{gap:2px}
  .nb-service__body strong{font-size:12px;line-height:1.15}
  .nb-service__body small{font-size:10px}
  .nb-service__body i{width:18px;height:18px;right:7px;top:7px;font-size:10px}
  .nb-schedule-layout{grid-template-columns:1fr;gap:7px;margin-top:8px}
  .nb-calendar-card,.nb-times-card{padding:8px 10px;border-radius:13px}
  .nb-calendar__head{margin-bottom:4px}
  .nb-calendar__head button{width:28px;height:28px;font-size:19px}
  .nb-calendar__head strong{font-size:13px}
  .nb-calendar__week,.nb-calendar{gap:2px}
  .nb-calendar__week span{font-size:8px;padding:1px}
  .nb-day{max-width:29px;font-size:11px}
  .nb-times-card{display:flex;align-items:center;gap:10px;min-height:48px}
  .nb-times-card .nb-field-label{flex:0 0 auto;margin:0;font-size:9px}
  .nb-times{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;gap:5px;padding:1px 0;scrollbar-width:thin}
  .nb-times button{flex:0 0 auto;padding:7px 9px;border-radius:8px;font-size:10px}
  .nb-muted{font-size:11px;white-space:nowrap}
  .nb-specialists{margin-top:7px}
  .nb-specialist-list{display:flex;gap:7px;overflow-x:auto}
  .nb-specialist{min-width:190px;padding:7px;border-radius:11px}
  .nb-specialist img,.nb-avatar{width:38px;height:38px}
  .nb-actions{margin-top:9px}
  .nb-btn,.nb-open-button{padding:10px 17px;font-size:10px}
  .nb-customer-form{max-width:520px;gap:8px}
  .nb-field label{gap:4px;font-size:10px}
  .nb-field input{padding:9px 11px;min-height:40px}
  .nb-booking-summary{max-width:520px;margin-top:9px;padding:9px 12px;font-size:11px}
  [data-nb-step="2"] .nb-actions{max-width:520px;margin-top:10px}
  .nb-success{margin-bottom:8px}
  .nb-success__icon{width:48px;height:48px;font-size:25px;margin-bottom:6px}
  .nb-confirm-card{max-width:560px;padding:4px 14px}
  .nb-confirm-card dl div{grid-template-columns:112px 1fr;padding:7px 0;gap:10px}
  .nb-confirm-card dt{font-size:9px}
  .nb-confirm-card dd{font-size:11px}
  .nb-confirm-actions{max-width:560px;margin-top:8px;gap:7px}
  .nb-link-button{margin-top:7px;font-size:11px}
}
/* Pantallas de escritorio muy bajas: conservar usabilidad sin barra permanente */
@media (min-width:801px) and (max-height:649px){
  .nb-modal__dialog{width:min(760px,calc(100vw - 28px));max-height:calc(100dvh - 18px)}
}
/* En móvil sí permitimos desplazamiento interno cuando sea imprescindible */
@media(max-width:800px){
  .nb-modal__dialog{overflow:auto}
}


/* v1.3.0 · Modal escritorio vertical tipo móvil premium */
@media (min-width:801px){
  .nb-modal{padding:10px;align-items:center}
  .nb-modal__dialog{
    width:min(590px,calc(100vw - 28px))!important;
    max-height:calc(100dvh - 20px)!important;
    height:auto!important;
    overflow:hidden!important;
    border-radius:24px!important;
  }
  .nb-app--modal{width:100%;max-height:none!important;overflow:visible!important}
  .nb-brand{padding:9px 54px 3px!important}
  .nb-brand__name{font-size:21px!important}
  .nb-brand__sub{font-size:6.5px!important;margin-top:3px!important}
  .nb-modal__close{right:10px!important;top:10px!important;width:34px!important;height:34px!important;font-size:20px!important}
  .nb-progress{max-width:390px!important;margin:4px auto 0!important;padding:0 8px!important}
  .nb-progress__item{width:72px!important}
  .nb-progress__item span{width:28px!important;height:28px!important;font-size:13px!important;margin-bottom:2px!important}
  .nb-progress__item small{font-size:9px!important}
  .nb-progress__line{width:60px!important;margin-top:13px!important}
  .nb-step{padding:5px 18px 11px!important}
  .nb-step__head{max-width:520px!important;margin-bottom:7px!important}
  .nb-step__head .nb-eyebrow{font-size:8px!important;margin-bottom:2px!important}
  .nb-step__head h3,.nb-success h3{font-size:27px!important;line-height:1!important;margin:2px 0 4px!important}
  .nb-step__head>p:last-child,.nb-success>p:last-child{font-size:11px!important;line-height:1.25!important}
  .nb-services{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}
  .nb-service{min-height:52px!important;padding:6px!important;gap:6px!important;border-radius:11px!important}
  .nb-service img,.nb-service__placeholder{width:36px!important;height:36px!important;border-radius:8px!important}
  .nb-service__body strong{font-size:10.5px!important;line-height:1.1!important}
  .nb-service__body small{font-size:8.5px!important}
  .nb-service__body i{width:16px!important;height:16px!important;right:5px!important;top:5px!important;font-size:9px!important}
  .nb-schedule-layout{display:block!important;margin-top:6px!important}
  .nb-calendar-card,.nb-times-card{padding:6px 9px!important;border-radius:12px!important}
  .nb-calendar-card{max-width:390px!important;margin:0 auto!important}
  .nb-calendar__head{margin-bottom:2px!important}
  .nb-calendar__head button{width:25px!important;height:25px!important;font-size:17px!important}
  .nb-calendar__head strong{font-size:12px!important}
  .nb-calendar__week,.nb-calendar{gap:1px!important}
  .nb-calendar__week span{font-size:7.5px!important;padding:0!important}
  .nb-day{max-width:25px!important;font-size:10px!important}
  .nb-times-card{display:flex!important;align-items:center!important;gap:8px!important;min-height:38px!important;margin-top:5px!important}
  .nb-times-card .nb-field-label{flex:0 0 auto!important;margin:0!important;font-size:8px!important}
  .nb-times{flex:1;display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;overflow-y:hidden!important;gap:4px!important;padding:1px 0!important}
  .nb-times button{flex:0 0 auto!important;padding:5px 7px!important;border-radius:7px!important;font-size:9px!important}
  .nb-muted{font-size:10px!important;white-space:nowrap!important}
  .nb-specialists{margin-top:5px!important}
  .nb-specialist-list{display:flex!important;gap:6px!important;overflow-x:auto!important}
  .nb-specialist{min-width:170px!important;padding:6px!important;border-radius:10px!important}
  .nb-specialist img,.nb-avatar{width:32px!important;height:32px!important}
  .nb-actions{margin-top:7px!important}
  .nb-btn,.nb-open-button{padding:9px 14px!important;font-size:9.5px!important}
  .nb-customer-form{max-width:440px!important;gap:6px!important}
  .nb-field label{gap:3px!important;font-size:9px!important}
  .nb-field input{padding:8px 10px!important;min-height:36px!important}
  .nb-booking-summary{max-width:440px!important;margin-top:7px!important;padding:8px 10px!important;font-size:10px!important}
  [data-nb-step="2"] .nb-actions{max-width:440px!important;margin-top:8px!important}
  .nb-success{max-width:500px!important;margin-bottom:5px!important}
  .nb-success__icon{width:42px!important;height:42px!important;font-size:22px!important;margin-bottom:4px!important}
  .nb-confirm-card{max-width:500px!important;padding:3px 12px!important;border-radius:14px!important}
  .nb-confirm-card dl div{grid-template-columns:100px 1fr!important;padding:6px 0!important;gap:8px!important}
  .nb-confirm-card dt{font-size:8px!important}
  .nb-confirm-card dd{font-size:10px!important}
  .nb-confirm-actions{max-width:500px!important;margin-top:6px!important;gap:6px!important}
  .nb-link-button{margin-top:6px!important;font-size:10px!important}
}
@media (min-width:801px) and (max-height:760px){
  .nb-brand{display:none!important}
  .nb-progress{margin-top:6px!important}
  .nb-step__head h3,.nb-success h3{font-size:24px!important}
  .nb-calendar-card{max-width:350px!important}
  .nb-day{max-width:22px!important;font-size:9px!important}
  .nb-service{min-height:46px!important}
  .nb-service img,.nb-service__placeholder{width:32px!important;height:32px!important}
}


/* v1.4.0 · Escritorio: panel vertical alto, estrecho y centrado */
@media (min-width:801px){
  .nb-modal{
    align-items:stretch!important;
    justify-content:center!important;
    padding:10px 0!important;
  }
  .nb-modal__dialog{
    width:min(570px,calc(100vw - 28px))!important;
    height:calc(100dvh - 20px)!important;
    max-height:none!important;
    overflow:hidden!important;
    border-radius:26px!important;
  }
  .nb-app--modal{
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  .nb-brand{
    flex:0 0 auto!important;
    padding:10px 52px 2px!important;
  }
  .nb-brand__name{font-size:22px!important}
  .nb-brand__sub{font-size:6.5px!important;margin-top:3px!important}
  .nb-progress{
    flex:0 0 auto!important;
    max-width:400px!important;
    margin:4px auto 0!important;
  }
  .nb-step{
    flex:1 1 auto!important;
    min-height:0!important;
    padding:7px 20px 12px!important;
  }
  .nb-step.is-active{
    display:flex!important;
    flex-direction:column!important;
  }
  .nb-step__head{
    flex:0 0 auto!important;
    margin-bottom:7px!important;
  }
  .nb-services{
    flex:0 0 auto!important;
  }
  .nb-schedule-layout{
    flex:0 0 auto!important;
    margin-top:7px!important;
  }
  .nb-calendar-card{
    width:100%!important;
    max-width:410px!important;
    box-sizing:border-box!important;
  }
  .nb-times-card{
    width:100%!important;
    box-sizing:border-box!important;
  }
  .nb-specialists{flex:0 0 auto!important}
  .nb-actions{
    margin-top:auto!important;
    padding-top:8px!important;
    flex:0 0 auto!important;
  }
  [data-nb-step="2"] .nb-step__head{margin-top:auto!important}
  [data-nb-step="2"] .nb-actions{margin-bottom:auto!important}
  [data-nb-step="3"]{
    justify-content:center!important;
  }
  .nb-modal__close{
    top:12px!important;
    right:12px!important;
  }
}
@media (min-width:801px) and (max-height:780px){
  .nb-brand{display:block!important;padding-top:6px!important}
  .nb-brand__name{font-size:19px!important}
  .nb-progress__item span{width:26px!important;height:26px!important}
  .nb-step__head h3,.nb-success h3{font-size:25px!important}
  .nb-service{min-height:44px!important}
  .nb-service img,.nb-service__placeholder{width:31px!important;height:31px!important}
  .nb-calendar-card{max-width:360px!important}
  .nb-day{max-width:22px!important;font-size:9px!important}
  .nb-calendar__head button{width:24px!important;height:24px!important}
  .nb-times-card{min-height:34px!important}
}

/* v1.4.1 · Reserva escritorio: servicios verticales + calendario compacto */
@media (min-width:801px){
  .nb-services{
    grid-template-columns:1fr!important;
    max-width:430px!important;
    width:100%!important;
    margin:0 auto!important;
    gap:6px!important;
  }
  .nb-service{
    min-height:48px!important;
    padding:6px 8px!important;
    gap:8px!important;
    border-radius:12px!important;
  }
  .nb-service img,.nb-service__placeholder{
    width:38px!important;
    height:38px!important;
    border-radius:8px!important;
  }
  .nb-service__body strong{font-size:11px!important;line-height:1.15!important}
  .nb-service__body small{font-size:9px!important}
  .nb-schedule-layout{display:block!important;margin-top:8px!important}
  .nb-calendar-card{
    width:min(330px,100%)!important;
    max-width:330px!important;
    margin:0 auto!important;
    padding:10px 14px 12px!important;
    border-radius:16px!important;
  }
  .nb-calendar__head{margin-bottom:5px!important}
  .nb-calendar__week,.nb-calendar{gap:3px!important}
  .nb-calendar{row-gap:5px!important}
  .nb-calendar__week span{font-size:8px!important;padding:1px!important}
  .nb-day{max-width:30px!important;font-size:10px!important}
  .nb-times-card{
    max-width:430px!important;
    width:100%!important;
    margin:7px auto 0!important;
    min-height:40px!important;
    padding:7px 10px!important;
  }
}

/* v1.4.2 · Ajuste visual quirúrgico: horas sin scrollbar + Datos/Confirmación legibles */

/* Horarios: mantener swipe horizontal pero sin mostrar la barra nativa. */
.nb-times{
  scrollbar-width:none!important;
  -ms-overflow-style:none!important;
}
.nb-times::-webkit-scrollbar{
  display:none!important;
  width:0!important;
  height:0!important;
}

/* Cuando hay horas, mostrar una pista sutil de deslizamiento sin ocupar demasiado. */
.nb-times-card:has(.nb-times button){
  flex-wrap:wrap!important;
}
.nb-times-card:has(.nb-times button)::after{
  content:'Desliza para ver más horarios  →';
  display:block;
  width:100%;
  margin-top:4px;
  text-align:right;
  font-size:8px;
  line-height:1.2;
  letter-spacing:.04em;
  color:#8a95a7;
  pointer-events:none;
}

/* Paso 2 · Datos: ancho útil real, una sola columna y mejor legibilidad. */
[data-nb-step="2"]{
  justify-content:center!important;
}
[data-nb-step="2"] .nb-step__head{
  width:100%!important;
  max-width:470px!important;
  margin:0 auto 16px!important;
}
[data-nb-step="2"] .nb-step__head .nb-eyebrow{
  font-size:10px!important;
  letter-spacing:.20em!important;
  margin-bottom:5px!important;
}
[data-nb-step="2"] .nb-step__head h3{
  font-size:32px!important;
  line-height:1.05!important;
  margin:2px 0 7px!important;
}
[data-nb-step="2"] .nb-step__head>p:last-child{
  font-size:13px!important;
  line-height:1.45!important;
}
[data-nb-step="2"] .nb-customer-form{
  display:grid!important;
  grid-template-columns:1fr!important;
  width:100%!important;
  max-width:450px!important;
  gap:11px!important;
  margin:0 auto!important;
}
[data-nb-step="2"] .nb-field,
[data-nb-step="2"] .nb-field--wide{
  grid-column:auto!important;
  width:100%!important;
  min-width:0!important;
}
[data-nb-step="2"] .nb-field label{
  width:100%!important;
  gap:6px!important;
  font-size:12.5px!important;
  line-height:1.25!important;
  color:#4f5e76!important;
}
[data-nb-step="2"] .nb-field input{
  width:100%!important;
  min-height:48px!important;
  padding:12px 14px!important;
  border-radius:12px!important;
  font-size:14px!important;
  line-height:1.2!important;
}
[data-nb-step="2"] .nb-booking-summary{
  width:100%!important;
  max-width:450px!important;
  margin:13px auto 0!important;
  padding:11px 14px!important;
  border-radius:14px!important;
  font-size:12px!important;
  line-height:1.35!important;
  box-sizing:border-box!important;
}
[data-nb-step="2"] .nb-actions{
  width:100%!important;
  max-width:450px!important;
  margin:14px auto 0!important;
  padding-top:0!important;
}
[data-nb-step="2"] .nb-btn{
  min-height:43px!important;
  padding:11px 16px!important;
  font-size:10.5px!important;
}

/* Paso 3 · Confirmación: conservar compacta pero mejorar lectura. */
[data-nb-step="3"] .nb-success{
  width:100%!important;
  max-width:470px!important;
  margin:0 auto 12px!important;
}
[data-nb-step="3"] .nb-success__icon{
  width:52px!important;
  height:52px!important;
  font-size:28px!important;
  margin-bottom:8px!important;
}
[data-nb-step="3"] .nb-success .nb-eyebrow{
  font-size:10px!important;
}
[data-nb-step="3"] .nb-success h3{
  font-size:31px!important;
  line-height:1.05!important;
  margin:4px 0 7px!important;
}
[data-nb-step="3"] .nb-success>p:last-child{
  font-size:13px!important;
  line-height:1.4!important;
}
[data-nb-step="3"] .nb-confirm-card{
  width:100%!important;
  max-width:455px!important;
  padding:7px 16px!important;
  box-sizing:border-box!important;
}
[data-nb-step="3"] .nb-confirm-card dl div{
  grid-template-columns:105px 1fr!important;
  gap:12px!important;
  padding:9px 0!important;
}
[data-nb-step="3"] .nb-confirm-card dt{
  font-size:9.5px!important;
  line-height:1.2!important;
}
[data-nb-step="3"] .nb-confirm-card dd{
  font-size:12.5px!important;
  line-height:1.35!important;
}
[data-nb-step="3"] .nb-confirm-actions{
  width:100%!important;
  max-width:455px!important;
  margin-top:10px!important;
}
[data-nb-step="3"] .nb-confirm-actions .nb-btn{
  min-height:42px!important;
  font-size:10.5px!important;
}

/* Tablet / móvil ancho: evitar que vuelva a comprimirse el paso Datos. */
@media (min-width:560px) and (max-width:800px){
  [data-nb-step="2"] .nb-customer-form,
  [data-nb-step="2"] .nb-booking-summary,
  [data-nb-step="2"] .nb-actions{
    width:min(92%,470px)!important;
    max-width:470px!important;
  }
  [data-nb-step="2"] .nb-field label{font-size:12px!important}
  [data-nb-step="2"] .nb-field input{min-height:47px!important;font-size:14px!important}
  [data-nb-step="3"] .nb-confirm-card,
  [data-nb-step="3"] .nb-confirm-actions{
    width:min(92%,470px)!important;
    max-width:470px!important;
  }
}

/* Móvil: mantener claridad sin hacer crecer demasiado el modal. */
@media (max-width:559px){
  [data-nb-step="2"] .nb-step__head h3{font-size:27px!important}
  [data-nb-step="2"] .nb-step__head>p:last-child{font-size:12px!important}
  [data-nb-step="2"] .nb-customer-form{gap:9px!important}
  [data-nb-step="2"] .nb-field label{font-size:11.5px!important}
  [data-nb-step="2"] .nb-field input{min-height:45px!important;font-size:13px!important}
  [data-nb-step="3"] .nb-success h3{font-size:27px!important}
  [data-nb-step="3"] .nb-confirm-card dd{font-size:12px!important}
  .nb-times-card:has(.nb-times button)::after{font-size:7.5px!important}
}


/* Página dedicada /reservar-cita/: sin título genérico, más aire y panel propio. */
.norela-page--booking{margin:0!important;padding:0!important}
.norela-page-content--booking{width:100%!important;max-width:none!important;margin:0!important;padding:22px 0 72px!important;background:linear-gradient(180deg,#f7f9fc 0,#fff 420px)!important}
.page-id-43666 .nb-app--embed{width:min(760px,calc(100% - 32px))!important;margin:18px auto 0!important;border-radius:28px!important;box-shadow:0 22px 70px rgba(44,62,96,.12)!important}
.page-id-43666 .nb-app--embed .nb-services{grid-template-columns:1fr!important;max-width:500px!important;margin-left:auto!important;margin-right:auto!important}
.page-id-43666 .nb-app--embed .nb-schedule-layout{display:block!important;max-width:520px!important;margin-left:auto!important;margin-right:auto!important}
.page-id-43666 .nb-app--embed .nb-calendar-card{max-width:430px!important;margin-left:auto!important;margin-right:auto!important}
.page-id-43666 .nb-app--embed .nb-times-card{max-width:520px!important;margin:10px auto 0!important}
.page-id-43666 .nb-app--embed .nb-customer-form,.page-id-43666 .nb-app--embed .nb-booking-summary,.page-id-43666 .nb-app--embed [data-nb-step="2"] .nb-actions{max-width:520px!important}
@media(max-width:800px){.norela-page-content--booking{padding:10px 0 42px!important}.page-id-43666 .nb-app--embed{width:calc(100% - 18px)!important;margin:8px auto 0!important;border-radius:20px!important}}


/* v1.4.1 · Paso 1 escritorio: legibilidad sin alterar la composición vertical */
@media (min-width:801px){
  [data-nb-step="1"] .nb-step__head{margin-bottom:9px!important}
  [data-nb-step="1"] .nb-step__head .nb-eyebrow{font-size:10px!important;line-height:1.2!important;letter-spacing:.20em!important;margin-bottom:3px!important}
  [data-nb-step="1"] .nb-step__head h3{font-size:33px!important;line-height:1.02!important;margin:2px 0 6px!important}
  [data-nb-step="1"] .nb-step__head>p:last-child{font-size:12.5px!important;line-height:1.4!important}
  .nb-progress__item small{font-size:10.5px!important;line-height:1.2!important}
  .nb-progress__item span{font-size:13.5px!important}
  [data-nb-step="1"] .nb-services{max-width:440px!important;gap:7px!important}
  [data-nb-step="1"] .nb-service{min-height:58px!important;padding:7px 10px!important;gap:10px!important;border-radius:13px!important}
  [data-nb-step="1"] .nb-service img,
  [data-nb-step="1"] .nb-service__placeholder{width:43px!important;height:43px!important;border-radius:9px!important}
  [data-nb-step="1"] .nb-service__body{gap:3px!important}
  [data-nb-step="1"] .nb-service__body strong{font-size:13px!important;line-height:1.2!important}
  [data-nb-step="1"] .nb-service__body small{font-size:10.5px!important;line-height:1.2!important}
  [data-nb-step="1"] .nb-calendar-card{width:min(350px,100%)!important;max-width:350px!important;padding:11px 15px 13px!important}
  [data-nb-step="1"] .nb-calendar__head strong{font-size:13.5px!important}
  [data-nb-step="1"] .nb-calendar__week span{font-size:9px!important}
  [data-nb-step="1"] .nb-day{max-width:31px!important;font-size:11.5px!important}
  [data-nb-step="1"] .nb-times-card{max-width:440px!important;min-height:50px!important;padding:8px 11px!important}
  [data-nb-step="1"] .nb-times-card .nb-field-label{font-size:9.5px!important;line-height:1.2!important}
  [data-nb-step="1"] .nb-muted{font-size:11.5px!important;line-height:1.3!important}
  [data-nb-step="1"] .nb-times button{font-size:10.5px!important;padding:7px 10px!important}
  [data-nb-step="1"] .nb-actions .nb-btn{min-height:42px!important;padding:10px 17px!important;font-size:10.5px!important}
  .nb-muted--error{color:#a94651!important;white-space:normal!important}
}
/* Portátiles bajos: misma mejora de lectura, con medidas algo más compactas. */
@media (min-width:801px) and (max-height:780px){
  [data-nb-step="1"] .nb-step__head h3{font-size:29px!important}
  [data-nb-step="1"] .nb-step__head>p:last-child{font-size:11.5px!important}
  [data-nb-step="1"] .nb-service{min-height:52px!important}
  [data-nb-step="1"] .nb-service img,
  [data-nb-step="1"] .nb-service__placeholder{width:38px!important;height:38px!important}
  [data-nb-step="1"] .nb-service__body strong{font-size:12px!important}
  [data-nb-step="1"] .nb-service__body small{font-size:10px!important}
  [data-nb-step="1"] .nb-calendar-card{max-width:335px!important;padding:9px 13px 10px!important}
  [data-nb-step="1"] .nb-day{max-width:28px!important;font-size:10.5px!important}
}


/* v1.4.2 · Paso 1 escritorio: escala legible + separación real + flujo correcto */
/*
 * IMPORTANTE: versiones anteriores forzaban .nb-schedule-layout {display:block!important}
 * después de .is-hidden. Eso hacía visible el calendario antes de elegir servicio y permitía
 * consultar fechas con service_id vacío. Esta regla restaura el flujo correcto.
 */
[data-nb-schedule].is-hidden,
.nb-schedule-layout.is-hidden{
  display:none!important;
}

@media (min-width:801px){
  .nb-modal__dialog{
    width:min(640px,calc(100vw - 36px))!important;
  }
  .nb-brand{
    padding:15px 64px 5px!important;
  }
  .nb-brand__name{
    font-size:26px!important;
    line-height:1!important;
  }
  .nb-brand__sub{
    font-size:7.5px!important;
    margin-top:4px!important;
  }
  .nb-progress{
    max-width:450px!important;
    margin:9px auto 0!important;
  }
  .nb-progress__item{
    width:82px!important;
  }
  .nb-progress__item span{
    width:34px!important;
    height:34px!important;
    font-size:15px!important;
    margin-bottom:5px!important;
  }
  .nb-progress__item small{
    font-size:11.5px!important;
    line-height:1.2!important;
  }
  .nb-progress__line{
    width:76px!important;
    margin-top:17px!important;
  }

  [data-nb-step="1"]{
    padding:16px 28px 16px!important;
  }
  [data-nb-step="1"] .nb-step__head{
    max-width:560px!important;
    margin-bottom:15px!important;
  }
  [data-nb-step="1"] .nb-step__head .nb-eyebrow{
    font-size:11px!important;
    line-height:1.2!important;
    letter-spacing:.21em!important;
    margin-bottom:5px!important;
  }
  [data-nb-step="1"] .nb-step__head h3{
    font-size:38px!important;
    line-height:1.04!important;
    margin:3px 0 8px!important;
  }
  [data-nb-step="1"] .nb-step__head>p:last-child{
    font-size:14px!important;
    line-height:1.45!important;
  }

  [data-nb-step="1"] .nb-services{
    max-width:500px!important;
    width:100%!important;
    gap:10px!important;
  }
  [data-nb-step="1"] .nb-service{
    min-height:70px!important;
    padding:9px 12px!important;
    gap:12px!important;
    border-radius:15px!important;
  }
  [data-nb-step="1"] .nb-service img,
  [data-nb-step="1"] .nb-service__placeholder{
    width:51px!important;
    height:51px!important;
    border-radius:10px!important;
  }
  [data-nb-step="1"] .nb-service__body{
    gap:4px!important;
  }
  [data-nb-step="1"] .nb-service__body strong{
    font-size:14.5px!important;
    line-height:1.25!important;
  }
  [data-nb-step="1"] .nb-service__body small{
    font-size:11.5px!important;
    line-height:1.2!important;
  }
  [data-nb-step="1"] .nb-service__body i{
    width:21px!important;
    height:21px!important;
    right:9px!important;
    top:9px!important;
    font-size:11px!important;
  }

  [data-nb-step="1"] .nb-schedule-layout:not(.is-hidden){
    display:block!important;
    margin-top:16px!important;
  }
  [data-nb-step="1"] .nb-calendar-card{
    width:min(430px,100%)!important;
    max-width:430px!important;
    padding:15px 18px 17px!important;
    border-radius:18px!important;
  }
  [data-nb-step="1"] .nb-calendar__head{
    margin-bottom:10px!important;
  }
  [data-nb-step="1"] .nb-calendar__head button{
    width:32px!important;
    height:32px!important;
    font-size:20px!important;
  }
  [data-nb-step="1"] .nb-calendar__head strong{
    font-size:15px!important;
    line-height:1.2!important;
  }
  [data-nb-step="1"] .nb-calendar__week,
  [data-nb-step="1"] .nb-calendar{
    gap:5px!important;
  }
  [data-nb-step="1"] .nb-calendar{
    row-gap:8px!important;
  }
  [data-nb-step="1"] .nb-calendar__week span{
    font-size:10px!important;
    padding:2px!important;
  }
  [data-nb-step="1"] .nb-day{
    max-width:35px!important;
    font-size:13px!important;
  }

  [data-nb-step="1"] .nb-times-card{
    max-width:500px!important;
    width:100%!important;
    min-height:58px!important;
    margin:11px auto 0!important;
    padding:10px 13px!important;
    gap:10px!important;
    border-radius:14px!important;
  }
  [data-nb-step="1"] .nb-times-card .nb-field-label{
    font-size:10.5px!important;
    line-height:1.25!important;
  }
  [data-nb-step="1"] .nb-muted{
    font-size:12.5px!important;
    line-height:1.35!important;
  }
  [data-nb-step="1"] .nb-times button{
    font-size:11.5px!important;
    padding:8px 11px!important;
  }
  [data-nb-step="1"] .nb-actions{
    padding-top:14px!important;
  }
  [data-nb-step="1"] .nb-actions .nb-btn{
    min-height:46px!important;
    padding:11px 20px!important;
    font-size:11.5px!important;
  }
}

/* En portátiles con poca altura se conserva legible sin volver al tamaño microscópico. */
@media (min-width:801px) and (max-height:780px){
  .nb-brand{display:block!important;padding:8px 58px 2px!important}
  .nb-brand__name{font-size:22px!important}
  .nb-progress{margin-top:4px!important}
  .nb-progress__item span{width:30px!important;height:30px!important;font-size:14px!important}
  .nb-progress__item small{font-size:10.5px!important}
  [data-nb-step="1"]{padding-top:8px!important}
  [data-nb-step="1"] .nb-step__head{margin-bottom:10px!important}
  [data-nb-step="1"] .nb-step__head h3{font-size:32px!important}
  [data-nb-step="1"] .nb-step__head>p:last-child{font-size:12.5px!important}
  [data-nb-step="1"] .nb-services{gap:7px!important}
  [data-nb-step="1"] .nb-service{min-height:58px!important;padding:7px 10px!important}
  [data-nb-step="1"] .nb-service img,
  [data-nb-step="1"] .nb-service__placeholder{width:43px!important;height:43px!important}
  [data-nb-step="1"] .nb-service__body strong{font-size:13px!important}
  [data-nb-step="1"] .nb-service__body small{font-size:10.5px!important}
  [data-nb-step="1"] .nb-schedule-layout:not(.is-hidden){margin-top:10px!important}
  [data-nb-step="1"] .nb-calendar-card{max-width:390px!important;padding:10px 15px 12px!important}
  [data-nb-step="1"] .nb-calendar__head{margin-bottom:5px!important}
  [data-nb-step="1"] .nb-calendar__week span{font-size:9px!important}
  [data-nb-step="1"] .nb-day{max-width:30px!important;font-size:11.5px!important}
  [data-nb-step="1"] .nb-times-card{min-height:50px!important;margin-top:7px!important}
  [data-nb-step="1"] .nb-muted{font-size:11.5px!important}
}


/* v1.4.3 · Paso Datos: asteriscos en la misma línea y ayudas dentro de los campos. */
[data-nb-step="2"] .nb-label-text{
  display:inline-flex!important;
  align-items:baseline!important;
  gap:4px!important;
  width:auto!important;
  color:#4f5e76!important;
}
[data-nb-step="2"] .nb-label-text .nb-required{
  display:inline!important;
  color:#bc5260!important;
  font-size:1em!important;
  line-height:1!important;
}
[data-nb-step="2"] .nb-field input::placeholder{
  color:#98a3b5!important;
  opacity:1!important;
  font-weight:400!important;
}
