/* Agendamento: superfície compacta e rolagem apenas no conteúdo.
   Preserva seletores JS, foco, etapas, validação e backend existentes. */
.blt-booking .blt-booking__dialog{width:min(1100px,calc(100vw - 40px))!important;max-height:calc(100dvh - 40px)!important;border:1px solid #ffffffaa!important;border-radius:28px!important;background:#f8fafc!important;box-shadow:0 32px 100px #03133155!important;overflow:hidden;display:flex;flex-direction:column}
.blt-booking .blt-booking__header{padding:26px 30px 18px!important;background:linear-gradient(115deg,#fff,#eff4fb);flex-shrink:0}
.blt-booking #blt-booking-title{font-size:clamp(25px,3vw,36px)!important;line-height:1.18!important;letter-spacing:-.035em;margin:8px 0!important;color:#12376c}
.blt-booking .blt-booking__header p{font-size:15px!important;line-height:1.5;color:#52647c;margin:0;max-width:65ch}
.blt-booking .blt-booking__header .blt-kicker{font-size:10px!important;letter-spacing:.16em}
.blt-booking .blt-booking__close{width:44px!important;height:44px!important;min-width:44px;background:#fff!important;border:1px solid #d8e2f0!important;box-shadow:0 4px 14px #12376c09!important;font-size:26px!important}
.blt-booking .blt-booking__progress{margin:0!important;padding:12px 30px!important;gap:8px!important;border:0!important;border-bottom:1px solid #e2e8f0!important;border-radius:0!important;background:#fff!important;flex-shrink:0}
.blt-booking .blt-booking__progress button{min-height:44px!important;padding:8px!important;border-radius:12px!important;font-size:12px!important;gap:8px!important}
.blt-booking .blt-booking__progress button.is-active{background:#eaf1fc!important;color:#153e79!important;box-shadow:none!important}
.blt-booking .blt-booking__progress button b{width:28px!important;height:28px!important;font-size:12px!important}
.blt-booking .blt-booking__body{padding:24px 30px!important;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.blt-booking .blt-booking-step__intro{margin-bottom:18px!important;gap:12px!important}
.blt-booking .blt-booking-step__intro>span{display:none}
.blt-booking .blt-booking-step__intro h3{font-size:23px!important;line-height:1.25!important;letter-spacing:-.025em;margin:0 0 6px!important}
.blt-booking .blt-booking-step__intro p{font-size:14px!important;line-height:1.55!important;color:#52647c}
.blt-booking .blt-booking-search{gap:16px!important;margin-bottom:20px!important}
.blt-booking .blt-booking-search label{min-height:52px!important;border-radius:14px!important;box-shadow:0 3px 12px #12376c05!important;border:1px solid #d9e3f0!important}
.blt-booking .blt-booking-search input{font-size:16px!important;min-width:0}
.blt-booking .blt-booking-search>p{font-size:12px!important;color:#52647c}
.blt-booking .blt-booking-options--specialties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important}
.blt-booking .blt-booking-option{min-height:96px!important;padding:18px!important;gap:14px!important;border:1px solid #dce5ef!important;border-radius:16px!important;background:#fff!important;box-shadow:0 4px 14px #12376c05!important;text-align:left;transition:border-color .18s,background .18s;transform:none!important}
.blt-booking .blt-booking-option::before,.blt-booking .blt-booking-option::after{display:none!important}
.blt-booking .blt-booking-option strong{font-size:15px!important;line-height:1.4!important;color:#183d70;overflow-wrap:break-word}
.blt-booking .blt-booking-option__mark{width:36px!important;height:36px!important;min-width:36px!important;border-radius:11px!important;background:#eff4fb!important;border:1px solid #dae5f3!important;font-size:19px!important;color:#315c93}
.blt-booking .blt-booking-option:hover{border-color:#83a3cd!important;background:#f8fbff!important}
.blt-booking .blt-booking-option.is-selected{border-color:#25599b!important;background:#edf4ff!important;box-shadow:inset 0 0 0 1px #25599b!important}
.blt-booking .blt-booking-option.is-selected .blt-booking-option__mark{color:#fff!important;background:#184884!important;border-color:#184884!important}
.blt-booking .blt-booking-option__content em{font-size:12px!important;color:#23558d!important;margin-top:5px}
.blt-booking .blt-booking__footer{position:relative!important;padding:16px 30px!important;gap:12px!important;background:#fff!important;border-top:1px solid #e0e7f0!important;box-shadow:0 -8px 24px #12376c04;flex-shrink:0}
.blt-booking .blt-booking__selection strong{font-size:14px!important;line-height:1.4}
.blt-booking .blt-booking__next,.blt-booking .blt-booking__send{min-height:48px!important;border-radius:13px!important;padding:12px 24px!important;font-size:14px!important}
.blt-booking :is(button,input,a):focus-visible{outline:3px solid #447ac0!important;outline-offset:3px}
@media(max-width:760px){.blt-booking .blt-booking-options--specialties{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:520px){
.blt-booking .blt-booking__dialog{width:100%!important;max-height:100dvh!important;height:100dvh!important;border-radius:0!important;margin:0!important}
.blt-booking .blt-booking__header{padding:20px 18px 14px!important}
.blt-booking .blt-booking__header>div{padding-right:44px}
.blt-booking #blt-booking-title{font-size:25px!important}
.blt-booking .blt-booking__header p{font-size:13px!important}
.blt-booking .blt-booking__progress{padding:8px 16px!important;gap:4px!important}
.blt-booking .blt-booking__progress button span{display:none!important}
.blt-booking .blt-booking__body{padding:20px 18px!important}
.blt-booking .blt-booking-step__intro h3{font-size:21px!important}
.blt-booking .blt-booking-options--specialties,.blt-booking .blt-booking-options--professionals{grid-template-columns:minmax(0,1fr)!important}
.blt-booking .blt-booking-option{min-height:76px!important;padding:16px!important}
.blt-booking .blt-booking-search{display:flex;flex-direction:column;align-items:stretch;gap:8px!important}
.blt-booking .blt-booking-search label{width:100%!important}
.blt-booking .blt-booking__footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom))!important;flex-wrap:wrap}
.blt-booking .blt-booking__selection{width:100%;flex-basis:100%}
.blt-booking .blt-booking__next,.blt-booking .blt-booking__send{flex:1}
}
@media(prefers-reduced-motion:reduce){.blt-booking .blt-booking-option{transition:none}}

/* Busca mobile: ícone e limpeza com espaço próprio, sem comprimir o texto. */
@media(max-width:520px){
.blt-booking .blt-booking-search label{box-sizing:border-box;min-width:0;flex:none}
.blt-booking .blt-booking-search__icon{width:40px;flex:0 0 40px}
.blt-booking .blt-booking-search input{width:0!important;flex:1 1 0;box-sizing:border-box;padding:0 38px 0 0!important;font-size:16px!important}
.blt-booking .blt-booking-search input::placeholder{color:#667b97;opacity:1}
}
/* Cabeçalho mobile: reserva espaço só para fechar, não para todo o texto. */
@media(max-width:520px){
.blt-booking .blt-booking__header{position:relative;display:block!important}
.blt-booking .blt-booking__header>div{padding-right:0!important;min-width:0;width:100%}
.blt-booking .blt-booking__header .blt-kicker{display:block;max-width:calc(100% - 54px);white-space:nowrap!important;letter-spacing:.1em!important;font-size:10px!important;line-height:1.6}
.blt-booking .blt-booking__close{position:absolute!important;top:14px!important;right:16px!important}
.blt-booking #blt-booking-title{margin-top:24px!important;font-size:clamp(23px,6.2vw,28px)!important;line-height:1.2!important;max-width:none!important;text-wrap:balance;word-break:normal!important;overflow-wrap:normal!important}
.blt-booking .blt-booking__header p{font-size:14px!important;line-height:1.55!important;max-width:34ch;text-wrap:pretty;word-break:normal!important;overflow-wrap:normal!important}
}
/* Proposta 2: orientação lateral no desktop e fluxo vertical no celular.
   A estrutura e os eventos do agendamento permanecem os mesmos. */
.blt-booking .blt-booking__dialog{background:#f7f9fc!important;border-radius:24px!important}
.blt-booking .blt-booking__body{background:#f7f9fc}
.blt-booking .blt-booking-step__intro h3{font-size:clamp(23px,2.4vw,29px)!important;letter-spacing:-.035em!important;color:#102d54}
.blt-booking .blt-booking-step__intro p{max-width:48ch}
.blt-booking .blt-booking-search label{background:#fff;border-color:#d5deeb!important;box-shadow:none!important}
.blt-booking .blt-booking-options--specialties{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}
.blt-booking .blt-booking-option{position:relative;min-height:106px!important;border-radius:14px!important;box-shadow:0 2px 3px #122f5303!important;padding:20px 18px!important;align-items:center}
.blt-booking .blt-booking-option__mark{order:2;margin-left:auto;flex:0 0 23px!important;min-width:23px!important;width:23px!important;height:23px!important;border-radius:50%!important;background:#fff!important;border:1.5px solid #c7d3e2!important;color:transparent!important;font-size:13px!important}
.blt-booking .blt-booking-option__content{flex:1;min-width:0}
.blt-booking .blt-booking-option strong{font-size:15px!important;line-height:1.5!important;font-weight:600!important}
.blt-booking .blt-booking-option.is-selected{background:#f0f6ff!important;border-color:#366aa7!important;box-shadow:0 0 0 2px #366aa718!important}
.blt-booking .blt-booking-option.is-selected .blt-booking-option__mark{color:#fff!important}
.blt-booking .blt-booking__next:not(:disabled),.blt-booking .blt-booking__send{background:#153e75!important;color:#fff!important;box-shadow:0 5px 12px #153e7520!important}
.blt-booking .blt-booking__next:disabled{background:#e4eaf2!important;color:#64758d!important;box-shadow:none!important}
.blt-booking .blt-booking__selection>span{font-size:10px!important;letter-spacing:.1em;color:#61718a!important}
.blt-booking .blt-booking__selection strong{color:#18395e!important;font-weight:600!important}
@media(min-width:821px){
.blt-booking .blt-booking__dialog{position:relative;display:grid!important;grid-template-columns:278px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;height:min(760px,calc(100dvh - 56px))!important;width:min(1100px,calc(100vw - 56px))!important;background:linear-gradient(90deg,#102e57 278px,#f7f9fc 278px)!important}
.blt-booking .blt-booking__header{grid-column:1;grid-row:1;background:transparent!important;padding:36px 28px 24px!important;display:block!important}
.blt-booking .blt-booking__header .blt-kicker{color:#efcd83!important;font-size:10px!important;letter-spacing:.13em!important;white-space:nowrap}
.blt-booking #blt-booking-title{color:#fff!important;font-size:30px!important;line-height:1.18!important;margin:22px 0 16px!important}
.blt-booking .blt-booking__header p{color:#c6d4e5!important;font-size:14px!important;line-height:1.65!important}
.blt-booking .blt-booking__close{position:absolute!important;right:14px!important;top:14px!important;z-index:5;width:36px!important;height:36px!important;min-width:36px!important;font-size:22px!important}
.blt-booking .blt-booking__progress{grid-column:1;grid-row:2 / 4;display:flex!important;flex-direction:column;justify-content:flex-start;gap:10px!important;background:transparent!important;border:0!important;padding:4px 22px 28px!important}
.blt-booking .blt-booking__progress button{flex:none!important;justify-content:flex-start!important;min-height:48px!important;color:#b9cbe1!important;background:transparent!important;padding:10px 12px!important;gap:12px!important}
.blt-booking .blt-booking__progress button b{background:#ffffff10!important;color:#c6d4e5!important;border:1px solid #ffffff20}
.blt-booking .blt-booking__progress button.is-active{background:#ffffff10!important;color:#fff!important;box-shadow:inset 2px 0 #edcc86!important}
.blt-booking .blt-booking__progress button.is-active b{background:#edcc86!important;color:#183659!important;border-color:#edcc86}
.blt-booking .blt-booking__body{grid-column:2;grid-row:1 / 3;padding:56px 32px 28px!important}
.blt-booking .blt-booking__footer{grid-column:2;grid-row:3;padding:20px 28px!important}
.blt-booking .blt-booking-search{display:flex;flex-wrap:wrap;gap:8px!important}
.blt-booking .blt-booking-search label{flex-basis:100%;max-width:none}
.blt-booking .blt-booking-search>p{width:100%;font-weight:500}
}
@media(max-width:820px){
.blt-booking .blt-booking__header{background:#102e57!important}
.blt-booking .blt-booking__header .blt-kicker{color:#efcd83!important}
.blt-booking #blt-booking-title{color:#fff!important}
.blt-booking .blt-booking__header p{color:#ccdaeb!important}
.blt-booking .blt-booking__close{background:#ffffff12!important;color:#fff!important;border-color:#ffffff30!important}
.blt-booking .blt-booking__progress{border-bottom:1px solid #e1e7ef!important}
.blt-booking .blt-booking__body{flex:1}
}
@media(max-width:520px){
.blt-booking .blt-booking__dialog{border-radius:0!important}
.blt-booking #blt-booking-title{font-size:26px!important;margin:20px 0 8px!important;text-wrap:balance}
.blt-booking .blt-booking__header p{font-size:13px!important;line-height:1.6!important}
.blt-booking .blt-booking__progress button{min-height:38px!important}
.blt-booking .blt-booking-options--specialties{grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
.blt-booking .blt-booking-option{min-height:78px!important;padding:17px!important}
.blt-booking .blt-booking__footer{box-shadow:0 -6px 24px #18395e08}
}
/* Revisão de legibilidade: remove cortes herdados da versão anterior. */
.blt-booking .blt-booking__header p{display:block!important;white-space:normal!important;overflow:visible!important}
.blt-booking .blt-booking__selection{flex:1 1 220px;min-width:0}
.blt-booking .blt-booking__selection strong{display:block!important;max-width:none!important;white-space:normal!important;text-overflow:clip!important;overflow:visible!important;font-size:15px!important;line-height:1.5!important;overflow-wrap:break-word}
.blt-booking .blt-booking__footer{display:flex!important;align-items:center;flex-wrap:wrap}
.blt-booking .blt-booking__footer>button{flex-shrink:0}
.blt-booking .blt-booking-option{height:auto!important;max-height:none!important;display:flex!important;white-space:normal!important}
.blt-booking .blt-booking-option__content,.blt-booking .blt-booking-option__content strong{display:block!important;max-height:none!important;overflow:visible!important;text-overflow:clip!important;white-space:normal!important;-webkit-line-clamp:unset!important;word-break:normal!important;overflow-wrap:break-word!important}
.blt-booking .blt-booking-option strong{font-size:16px!important;line-height:1.5!important;letter-spacing:0!important}
.blt-booking .blt-booking-search>p{white-space:normal!important;line-height:1.5!important}
.blt-booking .blt-booking-step__intro p{display:block!important;font-size:15px!important;line-height:1.6!important}
@media(min-width:821px){
.blt-booking #blt-booking-title{font-size:28px!important;letter-spacing:-.025em!important;word-break:normal!important;overflow-wrap:normal!important;hyphens:none;text-wrap:balance}
.blt-booking .blt-booking__header p{font-size:15px!important;line-height:1.65!important}
.blt-booking .blt-booking__progress button{font-size:14px!important}
}
@media(max-width:520px){
.blt-booking .blt-booking__selection{flex-basis:100%}
.blt-booking .blt-booking__header p{font-size:14px!important;max-width:none!important}
.blt-booking .blt-booking__header .blt-kicker{letter-spacing:.06em!important}
.blt-booking .blt-booking-option{padding:18px 16px!important}
}
/* Marca e etapas finais compartilham a mesma hierarquia visual. */
.blt-booking-brand{display:block;width:170px;height:auto;max-width:70%;margin-bottom:24px}
.blt-booking .blt-booking-options--professionals{grid-template-columns:minmax(0,1fr)!important}
.blt-booking .blt-booking-option--professional small{display:block;font-size:13px;line-height:1.5;color:#566b83;margin-top:5px}
.blt-booking .blt-booking-summary__item{position:relative;background:white;border:1px solid #dce5ef;border-radius:14px;padding:18px;min-width:0}
.blt-booking .blt-booking-summary__item strong{font-size:16px;line-height:1.5;white-space:normal;overflow-wrap:break-word}
.blt-booking .blt-booking-date{grid-template-columns:minmax(0,1fr)!important}
.blt-booking .blt-booking-date__note{padding:18px;border-radius:14px;background:#edf3fa}
.blt-booking .blt-booking-options--periods{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:520px){.blt-booking-brand{width:132px;margin-bottom:14px}.blt-booking .blt-booking-options--periods{grid-template-columns:1fr}.blt-booking .blt-booking-summary{grid-template-columns:1fr!important}}
/* Períodos e revisão: leitura clara em cards de seleção. */
.blt-booking .blt-booking-options--periods{gap:14px!important}
.blt-booking .blt-booking-options--periods button{min-height:170px;padding:24px 18px;border:1px solid #dce5ef;border-radius:18px;background:#fff;text-align:left;box-shadow:0 4px 14px #18395e05}
.blt-booking .blt-booking-options--periods button>span{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:#f3f0e7;color:#9b7428;font-size:25px;margin-bottom:18px}
.blt-booking .blt-booking-options--periods strong{font-size:19px;line-height:1.4;color:#153e75}
.blt-booking .blt-booking-options--periods small{display:block;font-size:13px;line-height:1.6;color:#52647c;margin-top:6px}
.blt-booking .blt-booking-options--periods button.is-selected{border-color:#25599b;background:#eef5ff;box-shadow:inset 0 0 0 1px #25599b}
.blt-booking .blt-booking-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.blt-booking .blt-booking-summary__item small{font-size:11px;letter-spacing:.06em;color:#61718a;margin-bottom:9px}
.blt-booking .blt-booking-confirm-note{border-radius:16px;padding:20px;background:#edf3fa;margin-top:22px}
.blt-booking .blt-booking-calendar{padding:24px;border-radius:18px;background:white;border:1px solid #dce5ef}
.blt-booking .blt-booking-calendar__days button{min-height:48px;font-size:16px;border-radius:12px}
@media(max-width:520px){.blt-booking .blt-booking-options--periods button{min-height:126px;padding:20px}.blt-booking .blt-booking-options--periods button>span{float:left;margin:0 18px 0 0}.blt-booking .blt-booking-calendar{padding:16px}.blt-booking .blt-booking-calendar__days button{min-height:40px}}
/* Componentes finais da versão instalada. */
.blt-booking-edit{display:block;border:1px solid #d6e1ef;background:#edf3fa;color:#174579;padding:9px 14px;border-radius:9px;margin-top:12px;font:inherit;font-size:13px;cursor:pointer}
.blt-booking-edit:disabled{display:none}
.blt-booking .blt-booking-calendar__days{gap:7px}
.blt-booking .blt-booking-calendar__days button{background:#f3f7fc;color:#193b65;border:1px solid transparent;box-shadow:none}
.blt-booking .blt-booking-calendar__days button.is-selected{background:#153e75;color:white;border-color:#153e75}
.blt-booking .blt-booking-calendar__days button:disabled{opacity:.3}
.blt-booking .blt-booking-success{padding:28px;background:#f0f7f3;border:1px solid #d0e5d9;border-radius:20px;margin-top:24px;gap:20px}
.blt-booking .blt-booking-success h3{font-size:28px;line-height:1.25;color:#174e37}
.blt-booking .blt-booking-success p{font-size:15px;line-height:1.7;color:#405b51}
.blt-booking .blt-booking-success a{display:inline-flex;padding:12px 18px;background:#153e75;color:white;border-radius:12px;margin-top:16px}
@media(max-width:520px){.blt-booking .blt-booking-calendar__days{gap:4px}.blt-booking .blt-booking-success{padding:20px}.blt-booking .blt-booking-success h3{font-size:24px}}
.blt-booking-fallback{display:inline-flex;margin-top:12px;padding:12px 16px;background:#153e75;color:white!important;border-radius:10px;font-size:14px;text-decoration:none}

/* 0.4.119: fundo opaco isola o agendamento; SVG local evita glifos ausentes. */
.blt-booking{background:#081c38!important;z-index:2147483000!important;isolation:isolate}
.blt-booking .blt-booking__backdrop{background:#081c38!important;opacity:1!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.blt-booking .blt-booking__dialog{z-index:1}
.blt-booking .blt-booking-patient__input>i{display:grid!important;place-items:center;flex-shrink:0;background:#168647!important;color:#fff!important;box-shadow:none!important}
.blt-booking .blt-booking-patient__input>i svg{display:block;width:20px;height:20px;fill:currentColor}
