#lc-public-reserva,
#lc-public-reserva * { box-sizing: border-box; }

#lc-public-reserva {
    --lc-green: #25d366;
    --lc-green-strong: #18b955;
    --lc-red: #ff4d58;
    --lc-surface: #171817;
    --lc-surface-raised: #202220;
    --lc-control: #252725;
    --lc-border: #3c3f3d;
    --lc-border-soft: #2b2e2c;
    --lc-text: #f7f8f7;
    --lc-muted: #a8aca9;
    width: 100%;
    max-width: 720px;
    margin: 0 auto;
    color: var(--lc-text);
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.lc-public-heading {
    position: relative;
    margin: 0 6px 18px;
    padding: 14px 22px;
    overflow: hidden;
    border: 1px solid #343735;
    border-radius: 12px;
    background: linear-gradient(135deg, #1c1e1d, #151615);
    color: #fff;
    text-align: center;
    font-size: clamp(16px, 2.4vw, 20px);
    font-weight: 600;
    line-height: 1.4;
    box-shadow: 0 8px 30px rgba(0,0,0,.18);
}

.lc-public-heading::before {
    position: absolute;
    top: 0;
    left: 14%;
    width: 72%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(37,211,102,.8), transparent);
    content: "";
}

.lc-public-card,
.lc-success-state {
    position: relative;
    padding: clamp(24px, 5vw, 38px);
    overflow: visible;
    border: 1px solid var(--lc-border-soft);
    border-radius: 22px;
    background:
        radial-gradient(circle at 100% 0, rgba(37,211,102,.055), transparent 28%),
        linear-gradient(155deg, #191b1a, #141514);
    box-shadow: 0 24px 65px rgba(0,0,0,.26), inset 0 1px rgba(255,255,255,.025);
}

.lc-public-grid { display: grid; gap: 18px; }
.lc-public-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lc-public-field { margin-bottom: 18px; }

.lc-public-field label {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 8px;
    color: #e9ebe9;
    font-size: 13px;
    font-weight: 750;
    letter-spacing: -.01em;
}

.lc-public-field label span,
.lc-public-terms a { color: var(--lc-red); }

.lc-public-field input,
.lc-public-field select {
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 11px 14px;
    border: 1px solid var(--lc-border);
    border-radius: 9px;
    outline: 0;
    background: var(--lc-control);
    color: var(--lc-text);
    font: inherit;
    font-size: 14px;
    box-shadow: inset 0 1px rgba(255,255,255,.02);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

.lc-public-field input:hover,
.lc-public-field select:hover { border-color: #515552; }

.lc-public-field input:focus,
.lc-public-field select:focus {
    border-color: rgba(37,211,102,.75);
    background: #292b29;
    box-shadow: 0 0 0 3px rgba(37,211,102,.1);
}

.lc-public-field input::placeholder { color: #7f8481; }
.lc-public-field select {
    height: 52px;
    min-height: 52px;
    padding-top: 0 !important;
    padding-right: 46px !important;
    padding-bottom: 0 !important;
    line-height: 1.25 !important;
    cursor: pointer;
    -webkit-appearance: none !important;
    appearance: none !important;
    background-image: linear-gradient(45deg, transparent 50%, #aeb3af 50%), linear-gradient(135deg, #aeb3af 50%, transparent 50%);
    background-position: calc(100% - 21px) 23px, calc(100% - 15px) 23px;
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}
.lc-public-field select option { background: #252725; color: #f7f8f7; font-size: 16px; }

/* Telefone internacional */
#lc-public-reserva .iti { display: block; width: 100%; }
#lc-public-reserva .iti input { width: 100%; padding-left: 101px !important; }
#lc-public-reserva .iti__selected-country { border-radius: 9px 0 0 9px; color: #fff; }
#lc-public-reserva .iti__selected-country-primary { min-width: 0; border-right: 1px solid var(--lc-border); }
#lc-public-reserva .iti__selected-dial-code { color: #daddda; font-size: 13px; font-weight: 700; }
#lc-public-reserva .iti__arrow { --iti-icon-color: #aeb3af; }
#lc-public-reserva .iti__country-selector {
    z-index: 1000001;
    width: min(390px, calc(100vw - 32px)) !important;
    border: 1px solid #454946;
    border-radius: 12px;
    background: #202220;
    color: #f4f5f4;
    box-shadow: 0 22px 55px rgba(0,0,0,.5);
}
#lc-public-reserva .iti__search-input-wrapper { border-color: #3b3e3c; }
#lc-public-reserva .iti__search-input {
    min-height: 46px;
    border: 0;
    border-radius: 11px 11px 0 0;
    background: #292b29;
    color: #fff;
}
#lc-public-reserva .iti__country { min-height: 42px; font-size: 13px; }
#lc-public-reserva .iti__country.iti__highlight { background: rgba(37,211,102,.11); }
#lc-public-reserva .iti__dial-code { margin-left: 8px; color: #979d99; }
#lc-public-reserva .iti__country-list { scrollbar-color: #565b57 #202220; }

/* No celular, a biblioteca move a lista para fora do formulário. */
.iti--fullscreen-popup .iti__country-selector {
    border-color: #454946;
    background: #202220;
    color: #f4f5f4;
}
.iti--fullscreen-popup.iti--detached-country-selector { z-index: 1000001; }
.iti--fullscreen-popup .iti__search-input-wrapper { border-color: #3b3e3c; background: #292b29; }
.iti--fullscreen-popup .iti__search-input { border-color: #4a4e4b; background: #292b29; color: #fff; }
.iti--fullscreen-popup .iti__search-input::placeholder { color: #a3a7a4; }
.iti--fullscreen-popup .iti__country.iti__highlight { background: rgba(37,211,102,.11); }
.iti--fullscreen-popup .iti__dial-code { color: #979d99; }
.iti--fullscreen-popup .iti__country-list { scrollbar-color: #565b57 #202220; }

.lc-validation-message {
    display: none;
    align-items: center;
    gap: 8px;
    margin-top: 9px;
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 650;
    line-height: 1.4;
}
.lc-validation-message.is-visible { display: inline-flex; }
.lc-validation-message .wv-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; min-width: 16px; height: 16px; }
.lc-validation-message .wv-icon img { display: none !important; }
.lc-validation-message.is-success .wv-icon::before { color: currentColor; content: "✓"; font-size: 17px; font-weight: 900; }
.lc-validation-message.is-error .wv-icon::before { color: currentColor; content: "×"; font-size: 20px; font-weight: 800; line-height: 1; }
.lc-validation-message.is-warning .wv-icon::before { color: currentColor; content: "!"; font-size: 16px; font-weight: 900; }
.lc-validation-message.is-loading { color: #d2d2d2; border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.045); }
.lc-validation-message.is-loading .wv-icon { width: 14px; min-width: 14px; height: 14px; border: 2px solid rgba(255,255,255,.22); border-top-color: var(--lc-green); border-radius: 50%; animation: lc-whatsapp-spin .7s linear infinite; }
.lc-validation-message.is-loading .wv-icon::before { content: none; }
@keyframes lc-whatsapp-spin { to { transform: rotate(360deg); } }
.lc-validation-message.is-success { color: #4fe083; border: 1px solid rgba(34,197,94,.2); background: rgba(34,197,94,.07); }
.lc-validation-message.is-error { color: #ff747c; border: 1px solid rgba(255,90,95,.2); background: rgba(255,90,95,.07); }
.lc-validation-message.is-warning { color: #f5c766; border: 1px solid rgba(248,196,92,.22); background: rgba(248,196,92,.07); }

.lc-public-terms {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 2px 0 19px;
    color: #c5c8c6;
    cursor: pointer;
    font-size: 12px;
    line-height: 1.4;
}
.lc-public-terms input { flex: 0 0 auto; width: 15px; height: 15px; margin: 1px 0 0; accent-color: var(--lc-green); }
.lc-public-terms a { font-weight: 750; text-decoration: none; }
.lc-public-recaptcha { margin-bottom: 18px; overflow: hidden; }

.lc-public-feedback {
    display: none;
    margin: 0 0 14px;
    padding: 11px 13px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.45;
}
.lc-public-feedback.is-error { border: 1px solid rgba(255,72,84,.28); background: rgba(255,72,84,.09); color: #ff7a83; }
.lc-public-feedback.is-success { border: 1px solid rgba(37,211,102,.28); background: rgba(37,211,102,.09); color: #52df85; }

.lc-public-submit {
    width: 100%;
    min-height: 51px;
    border: 1px solid #29df6d;
    border-radius: 10px;
    background: linear-gradient(180deg, #2bdc6d, #20c55c);
    color: #061d0e;
    cursor: pointer;
    font-size: 14px;
    font-weight: 850;
    letter-spacing: .045em;
    box-shadow: 0 9px 26px rgba(37,211,102,.18), inset 0 1px rgba(255,255,255,.22);
    transition: filter .18s ease, transform .18s ease, opacity .18s ease;
}
.lc-public-submit:not(:disabled):hover { filter: brightness(1.07); transform: translateY(-1px); }
.lc-public-submit:disabled { border-color: #5b5e5c; background: #aeb1af; color: #666967; cursor: not-allowed; box-shadow: none; }

.lc-public-cancel-box {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
    padding-top: 19px;
    border-top: 1px solid var(--lc-border-soft);
    color: #8e938f;
    font-size: 12px;
}
.lc-public-cancel-link,
.lc-cancel-current {
    display: inline-flex;
    min-height: 33px;
    align-items: center;
    justify-content: center;
    padding: 7px 13px;
    border: 1px solid rgba(255,77,88,.45);
    border-radius: 7px;
    background: rgba(255,77,88,.065);
    color: #ff737b;
    cursor: pointer;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
    transition: background .18s ease, border-color .18s ease;
}
.lc-public-cancel-link:hover,
.lc-cancel-current:hover { border-color: rgba(255,77,88,.72); background: rgba(255,77,88,.12); color: #ff858c; }
.lc-public-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; }

/* Confirmação no lugar do formulário */
.lc-success-state { display: none; text-align: center; }
.lc-success-state[hidden] { display: none !important; }
#lc-public-reserva.is-confirmed .lc-public-heading,
#lc-public-reserva.is-confirmed #lc-public-reserva-form { display: none !important; }
#lc-public-reserva.is-confirmed .lc-success-state { display: block; animation: lc-state-in .42s cubic-bezier(.22,.8,.3,1) both; }
#lc-public-reserva.is-completing .lc-public-heading,
#lc-public-reserva.is-completing #lc-public-reserva-form { animation: lc-state-out .23s ease both; pointer-events: none; }
#lc-public-reserva.is-returning .lc-public-heading,
#lc-public-reserva.is-returning #lc-public-reserva-form { animation: lc-state-return .38s cubic-bezier(.22,.8,.3,1) both; }
@keyframes lc-state-out { to { opacity: 0; transform: translateY(-12px) scale(.985); } }
@keyframes lc-state-in { from { opacity: 0; transform: translateY(18px) scale(.98); } to { opacity: 1; transform: none; } }
@keyframes lc-state-return { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.lc-success-check { display: inline-flex; width: 54px; height: 54px; align-items: center; justify-content: center; border: 1px solid rgba(37,211,102,.28); border-radius: 50%; background: rgba(37,211,102,.1); color: var(--lc-green); font-size: 28px; font-weight: 900; box-shadow: 0 0 0 8px rgba(37,211,102,.035); }
.lc-success-check::before { content: "✓"; }
.lc-success-eyebrow { display: block; margin-top: 19px; color: var(--lc-green); font-size: 10px; font-weight: 850; letter-spacing: .16em; }
.lc-success-state h2 { margin: 7px 0 23px; color: #fff; font-size: clamp(25px, 5vw, 34px); letter-spacing: -.035em; }
.lc-success-date-label { margin: 0 0 5px; color: var(--lc-muted); font-size: 13px; }
.lc-success-date { display: block; color: #fff; font-size: clamp(18px, 4vw, 23px); }
.lc-success-rule { max-width: 500px; margin: 22px auto 0; padding: 12px 15px; border: 1px solid rgba(255,77,88,.2); border-radius: 9px; background: rgba(255,77,88,.055); color: #e8e9e8; font-size: 13px; line-height: 1.5; }
.lc-success-code-title { margin: 25px 0 8px; color: #d9dbda; font-size: 14px; }
.lc-success-code { display: block; width: min(100%, 470px); margin: 0 auto; padding: 15px 10px; border: 1px dashed rgba(37,211,102,.65); border-radius: 12px; background: rgba(37,211,102,.07); color: #58e68b; cursor: pointer; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: clamp(28px, 7vw, 40px); font-weight: 900; letter-spacing: .075em; }
.lc-success-copy-label { display: inline-block; margin-top: 8px; padding: 0; border: 0; background: transparent; color: #8e938f; cursor: pointer; font-size: 10px; font-weight: 850; letter-spacing: .09em; }
.lc-success-warning { margin: 19px auto 0; color: #8e938f; font-size: 12px; }
.lc-cancel-current { margin-top: 22px; }

/* Cancelamento embutido */
.lc-cancel-modal { position: fixed; z-index: 999999; inset: 0; display: flex; visibility: hidden; align-items: center; justify-content: center; padding: 18px; opacity: 0; pointer-events: none; transition: opacity .18s ease, visibility .18s ease; }
.lc-cancel-modal.is-open { visibility: visible; opacity: 1; pointer-events: auto; }
.lc-cancel-modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.78); backdrop-filter: blur(6px); }
.lc-cancel-modal-dialog { position: relative; z-index: 1; width: min(100%, 470px); padding: 29px; border: 1px solid #3a3d3b; border-radius: 17px; background: linear-gradient(150deg, #1b1d1b, #141514); color: #fff; box-shadow: 0 28px 80px rgba(0,0,0,.58); }
.lc-cancel-modal-close { cursor: pointer; }
button.lc-cancel-modal-close:not(.lc-cancel-modal-secondary) { position: absolute; top: 9px; right: 13px; padding: 0; border: 0; background: transparent; color: #959a96; font-size: 28px; }
.lc-cancel-modal-eyebrow { color: var(--lc-red); font-size: 10px; font-weight: 850; letter-spacing: .14em; }
.lc-cancel-modal-dialog h2 { margin: 6px 0 8px; color: #fff; font-size: 24px; letter-spacing: -.025em; }
.lc-cancel-modal-dialog > p { margin: 0 0 21px; color: var(--lc-muted); font-size: 13px; line-height: 1.5; }
.lc-cancel-modal-actions { display: grid; grid-template-columns: 1fr 1.35fr; gap: 10px; margin-top: 4px; }
.lc-cancel-modal-secondary,
.lc-cancel-modal-danger { min-height: 44px; border-radius: 8px; cursor: pointer; font: inherit; font-size: 13px; font-weight: 800; }
.lc-cancel-modal-secondary { border: 1px solid #424642; background: #272927; color: #d8dad8; }
.lc-cancel-modal-danger { border: 1px solid #ff626c; background: linear-gradient(#ff5963, #e8404b); color: #fff; }
.lc-cancel-modal-danger:disabled { opacity: .58; cursor: wait; }

.lc-public-closed { max-width: 720px; margin: 0 auto; padding: 24px; border: 1px solid #393c39; border-radius: 14px; background: #191a19; color: #eee; text-align: center; }

/* Calendário público */
.flatpickr-calendar.lc-public-calendar {
    --lc-calendar-green: #25d366;
    width: min(360px, calc(100vw - 24px)) !important;
    padding: 10px 10px 12px;
    overflow: hidden !important;
    border: 1px solid #3d423f !important;
    border-radius: 16px !important;
    background: #151715 !important;
    box-shadow: 0 24px 60px rgba(0,0,0,.52) !important;
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
}
.lc-public-calendar .flatpickr-months {
    height: 50px;
    margin: -10px -10px 8px;
    padding: 7px 8px;
    border-bottom: 1px solid #303431;
    background: #1d201e;
}
.lc-public-calendar .flatpickr-months .flatpickr-month { height: 36px; color: #fff !important; fill: #fff !important; }
.lc-public-calendar .flatpickr-prev-month,
.lc-public-calendar .flatpickr-next-month { top: 7px !important; display: flex; width: 40px; height: 36px; align-items: center; justify-content: center; padding: 9px !important; border-radius: 9px; color: #d9ddda !important; fill: #d9ddda !important; }
.lc-public-calendar .flatpickr-prev-month:hover,
.lc-public-calendar .flatpickr-next-month:hover { background: rgba(255,255,255,.06); color: var(--lc-calendar-green) !important; fill: var(--lc-calendar-green) !important; }
.lc-public-calendar .flatpickr-current-month { height: 36px; padding-top: 5px; color: #fff; font-size: 16px; }
.lc-public-calendar .flatpickr-current-month input.cur-year,
.lc-public-calendar .flatpickr-current-month .flatpickr-monthDropdown-months { height: 30px; padding: 2px 5px; border-radius: 7px; background: #252825 !important; color: #fff !important; font-size: 16px !important; font-weight: 750; }
.lc-public-calendar .flatpickr-current-month .numInputWrapper span { border-color: #454a46; }
.lc-public-calendar .flatpickr-weekdays { width: 100%; height: 34px; }
.lc-public-calendar .flatpickr-weekday { color: #9fa5a1 !important; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.lc-public-calendar .flatpickr-innerContainer,
.lc-public-calendar .flatpickr-rContainer,
.lc-public-calendar .flatpickr-weekdays,
.lc-public-calendar .flatpickr-days,
.lc-public-calendar .dayContainer { width: 100% !important; min-width: 0 !important; max-width: none !important; }
.lc-public-calendar .dayContainer { display: grid !important; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.lc-public-calendar .flatpickr-day { width: auto !important; max-width: none !important; height: 42px; border-radius: 10px !important; color: #f4f6f4 !important; font-size: 14px; font-weight: 650; line-height: 42px; }
.lc-public-calendar .flatpickr-day:hover { border-color: #303531 !important; background: #292d2a !important; }
.lc-public-calendar .flatpickr-day.selected { border-color: var(--lc-calendar-green) !important; background: var(--lc-calendar-green) !important; color: #082112 !important; font-weight: 850; box-shadow: 0 5px 15px rgba(37,211,102,.18); }
.lc-public-calendar .flatpickr-day.today:not(.selected) { border-color: var(--lc-calendar-green) !important; color: #67e796 !important; }
.lc-public-calendar .flatpickr-day.prevMonthDay:not(.flatpickr-disabled),
.lc-public-calendar .flatpickr-day.nextMonthDay:not(.flatpickr-disabled) { color: #f4f6f4 !important; }
.lc-public-calendar .flatpickr-day.flatpickr-disabled,
.lc-public-calendar .flatpickr-day.flatpickr-disabled:hover { border-color: transparent !important; background: transparent !important; color: #464b47 !important; cursor: not-allowed !important; }

@media (max-width: 620px) {
    .lc-public-card,.lc-success-state { padding: 24px 18px; border-radius: 17px; }
    .lc-public-grid-two { grid-template-columns: 1fr; gap: 0; }
    .lc-public-heading { margin-inline: 2px; padding-inline: 15px; }
    .lc-cancel-modal-dialog { padding: 26px 19px 20px; }
    .lc-cancel-modal-actions { grid-template-columns: 1fr; }
    .iti--fullscreen-popup .iti__country-selector { width: 100%; }
    .lc-public-field input,
    .lc-public-field select,
    .iti__search-input,
    .lc-cancel-modal input,
    .lc-cancel-modal select { font-size: 16px !important; }
    .lc-public-field input,
    .lc-public-field select { min-height: 54px; }
    .lc-public-field select { height: 54px; background-position: calc(100% - 21px) 24px, calc(100% - 15px) 24px; }
    .lc-public-field label { font-size: 15px; }
    .lc-public-terms { font-size: 14px; }
    .g-recaptcha { transform: scale(.91); transform-origin: left top; margin-bottom: -7px; }
    .flatpickr-calendar.lc-public-calendar { left: 50% !important; right: auto !important; transform: translateX(-50%) !important; }
}

@media (prefers-reduced-motion: reduce) {
    #lc-public-reserva.is-confirmed .lc-success-state,
    #lc-public-reserva.is-completing .lc-public-heading,
    #lc-public-reserva.is-completing #lc-public-reserva-form,
    #lc-public-reserva.is-returning .lc-public-heading,
    #lc-public-reserva.is-returning #lc-public-reserva-form { animation: none; }
}
