/*
 * SECURITY (Fase 47 — C.2): Modernização CSS dos modais cliente
 * Cobre 2 padrões coexistentes:
 *   - Custom: .dialog-container.dialog-buy (Checkout, Roleta, Caixa, Raspadinha, Upcell)
 *   - Material UI: .MuiDialog-root.MuiModal-root (Cotas Premiadas, Maior/Menor Cota,
 *     Top Compradores, Ganhadores Parciais)
 *
 * Mantém 100% das cores originais. Ajusta:
 *   - Border-radius 16-20px (vs 4-8px do MUI default)
 *   - Box-shadow layered moderno
 *   - Backdrop com blur sutil
 *   - Transitions de entrada/saída
 *   - Tipografia (Inter stack + escala harmônica)
 *   - Botões e form controls dentro dos modais
 */

/* =========================================================================
   1. CUSTOM MODALS — .dialog-container (Checkout, Roleta, Caixa, Raspadinha, Upcell)
   ========================================================================= */

/* Container externo — fica fixo cobrindo a tela quando aberto.
   NÃO mexer em display/position (a lib custom controla via JS). */
section.dialog-container.dialog-buy {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    background-color: #f8fafc !important; /* fundo limpo (vs #e4e4e4 cinza chapado) */
}

/* Modal checkout — fundo branco limpo */
section.dialog-container.dialog-buy#modal-checkout {
    background-color: #ffffff !important;
}

/* Header dos modais custom */
section.dialog-container.dialog-buy .dialog-header {
    border-radius: 0 !important; /* o radius vai no container externo */
    padding: 16px 18px !important;
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.06);
}

section.dialog-container.dialog-buy .dialog-header .title {
    font-family: 'Inter', 'Montserrat', system-ui, -apple-system, sans-serif;
    font-size: 18px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

section.dialog-container.dialog-buy .dialog-header .title i {
    font-size: 20px;
    opacity: 0.75;
}

/* Botão fechar (×) — mais elegante */
section.dialog-container.dialog-buy .dialog-header .MuiIconButton-root {
    border-radius: 999px !important;
    width: 36px;
    height: 36px;
    transition: background-color .2s ease, transform .15s ease;
}

section.dialog-container.dialog-buy .dialog-header .MuiIconButton-root:hover {
    background-color: rgba(15, 23, 42, 0.06) !important;
    transform: scale(1.05);
}

section.dialog-container.dialog-buy .dialog-header .MuiIconButton-root:active {
    transform: scale(0.95);
}

section.dialog-container.dialog-buy .dialog-header .MuiIconButton-root .bi-x-lg {
    font-size: 18px;
    color: #475569;
}

/* Conteúdo dos modais */
section.dialog-container.dialog-buy .dialog-content {
    font-family: 'Inter', 'Montserrat', system-ui, -apple-system, sans-serif;
    padding: 18px !important;
}

/* Texto descritivo "Você está adquirindo ..." */
section.dialog-container.dialog-buy .action-text {
    background: #f8fafc;
    border-left: 3px solid #f07f4e;
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.5;
    color: #334155;
    margin-bottom: 16px;
}

section.dialog-container.dialog-buy .action-text span {
    font-weight: 700;
    color: #0f172a;
}

/* Form inputs dentro dos modais */
section.dialog-container.dialog-buy input[type="text"],
section.dialog-container.dialog-buy input[type="email"],
section.dialog-container.dialog-buy input[type="tel"],
section.dialog-container.dialog-buy input[type="date"],
section.dialog-container.dialog-buy input[type="number"],
section.dialog-container.dialog-buy select,
section.dialog-container.dialog-buy .form-control {
    border-radius: 10px !important;
    border: 1px solid #e2e8f0 !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: border-color .2s ease, box-shadow .2s ease;
    background-color: #ffffff !important;
}

section.dialog-container.dialog-buy input:focus,
section.dialog-container.dialog-buy select:focus,
section.dialog-container.dialog-buy .form-control:focus {
    outline: none !important;
    border-color: #f07f4e !important;
    box-shadow: 0 0 0 3px rgba(240, 127, 78, 0.12) !important;
}

/* Form labels */
section.dialog-container.dialog-buy label,
section.dialog-container.dialog-buy .form-label {
    font-size: 13px;
    font-weight: 600;
    color: #475569;
    letter-spacing: 0.01em;
    margin-bottom: 6px;
}

/* Botões principais dentro do modal — "Concluir reserva", "Confirmar", etc.
   IDs/classes reais identificadas via DOM inspection:
   - #btn-concluir-reserva (button.button-item.join)
   - .button-container > .button-item.join
   - .conclude-button (legado) */
#btn-concluir-reserva,
section.dialog-container.dialog-buy .button-item.join,
section.dialog-container.dialog-buy button[type="submit"],
section.dialog-container.dialog-buy .btn-primary,
section.dialog-container.dialog-buy .btn-purple,
section.dialog-container.dialog-buy .conclude-button {
    border-radius: 12px !important;
    padding: 13px 18px !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    font-size: 15px !important;
    border: none !important;
    transition: transform .15s ease, filter .15s ease, box-shadow .25s ease !important;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.10),
        0 6px 16px -4px rgba(15, 23, 42, 0.20) !important;
}

#btn-concluir-reserva:hover,
section.dialog-container.dialog-buy .button-item.join:hover,
section.dialog-container.dialog-buy button[type="submit"]:hover,
section.dialog-container.dialog-buy .btn-primary:hover,
section.dialog-container.dialog-buy .btn-purple:hover,
section.dialog-container.dialog-buy .conclude-button:hover {
    transform: translateY(-1px);
    filter: brightness(1.08);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.14),
        0 10px 22px -4px rgba(15, 23, 42, 0.30) !important;
}

#btn-concluir-reserva:active,
section.dialog-container.dialog-buy .button-item.join:active,
section.dialog-container.dialog-buy button[type="submit"]:active,
section.dialog-container.dialog-buy .btn-primary:active,
section.dialog-container.dialog-buy .btn-purple:active,
section.dialog-container.dialog-buy .conclude-button:active {
    transform: translateY(0);
}

/* "Alterar Conta" / "Alterar Telefone" — é um <p>, não button. Secundário, transparente */
.change-user,
.change-cellphone,
section.dialog-container.dialog-buy .change-user,
section.dialog-container.dialog-buy .change-cellphone {
    background: transparent !important;
    background-color: transparent !important;
    color: #64748b !important;
    font-weight: 600;
    font-size: 13px;
    padding: 10px 14px;
    border-radius: 10px;
    border: none !important;
    cursor: pointer;
    text-align: center;
    margin: 8px 0 0 0;
    transition: background-color .2s ease, color .2s ease;
}

.change-user:hover,
.change-cellphone:hover {
    background-color: rgba(15, 23, 42, 0.05) !important;
    color: #0f172a !important;
}

/* Card cliente logado (com nome + telefone) */
section.dialog-container.dialog-buy .box {
    border-radius: 14px !important;
    border: 1px solid #e2e8f0 !important;
    background: #ffffff !important;
    padding: 14px 16px !important;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 2px 8px -2px rgba(15, 23, 42, 0.06);
    transition: border-color .2s ease, box-shadow .2s ease;
}

section.dialog-container.dialog-buy .box:hover {
    border-color: #cbd5e1 !important;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 4px 12px -2px rgba(15, 23, 42, 0.10);
}

/* Checkout errors — alerta de erro */
.checkout-errors {
    border-radius: 12px !important;
    padding: 14px 16px !important;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.5;
    box-shadow:
        0 1px 2px rgba(220, 38, 38, 0.08),
        0 4px 12px -3px rgba(220, 38, 38, 0.15);
}

.checkout-errors .checkout-errors-title {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.01em;
}

.form-item.has-error input {
    border-color: #dc2626 !important;
    box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.10) !important;
}

/* =========================================================================
   2. MUI MODALS — .MuiDialog-root (Cotas Premiadas, Maior/Menor Cota,
                                    Top Compradores, Ganhadores Parciais)
   ========================================================================= */

/* Backdrop com blur sutil */
.MuiDialog-root .MuiBackdrop-root,
.MuiModal-root .MuiBackdrop-root {
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background-color: rgba(15, 23, 42, 0.55) !important;
}

/* Paper — o "card" do modal */
.MuiDialog-paper.MuiPaper-root,
.MuiPaper-root.MuiDialog-paper {
    border-radius: 18px !important;
    box-shadow:
        0 4px 8px rgba(15, 23, 42, 0.08),
        0 24px 48px -8px rgba(15, 23, 42, 0.40) !important;
    overflow: hidden;
    font-family: 'Inter', 'Montserrat', system-ui, -apple-system, sans-serif !important;
}

/* Header (título) */
.MuiDialogTitle-root {
    padding: 18px 22px !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
    font-family: 'Inter', 'Montserrat', system-ui, -apple-system, sans-serif !important;
}

.MuiDialogTitle-root .MuiTypography-h6,
.MuiDialogTitle-root h6 {
    font-size: 17px !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    color: #0f172a;
}

/* Botão fechar do header MUI */
.MuiDialogTitle-root .MuiIconButton-root,
.MuiDialog-paper .MuiIconButton-root {
    border-radius: 999px !important;
    width: 36px;
    height: 36px;
    transition: background-color .2s ease, transform .15s ease;
}

.MuiDialogTitle-root .MuiIconButton-root:hover,
.MuiDialog-paper .MuiIconButton-root:hover {
    background-color: rgba(15, 23, 42, 0.06) !important;
    transform: scale(1.05);
}

/* DialogContent — corpo */
.MuiDialogContent-root {
    padding: 18px 22px !important;
    font-family: 'Inter', 'Montserrat', system-ui, -apple-system, sans-serif !important;
}

.MuiDialogContent-dividers {
    border-top: 1px solid rgba(15, 23, 42, 0.06) !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06) !important;
}

/* Custom scrollbar dentro dos modais MUI */
.MuiDialogContent-root.custom-scrollbar::-webkit-scrollbar,
.custom-scrollbar::-webkit-scrollbar {
    width: 6px;
}

.MuiDialogContent-root.custom-scrollbar::-webkit-scrollbar-thumb,
.custom-scrollbar::-webkit-scrollbar-thumb {
    background-color: rgba(15, 23, 42, 0.18);
    border-radius: 999px;
}

.MuiDialogContent-root.custom-scrollbar::-webkit-scrollbar-thumb:hover,
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
    background-color: rgba(15, 23, 42, 0.30);
}

.MuiDialogContent-root.custom-scrollbar::-webkit-scrollbar-track,
.custom-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

/* DialogActions — footer com botões */
.MuiDialogActions-root {
    padding: 14px 22px !important;
    gap: 10px;
}

.MuiDialogActions-root .MuiButton-root,
.MuiDialogActions-root button {
    border-radius: 10px !important;
    padding: 9px 16px !important;
    font-weight: 600 !important;
    font-size: 13.5px !important;
    letter-spacing: 0.01em !important;
    text-transform: none !important;
    transition: transform .15s ease, filter .15s ease, box-shadow .2s ease;
}

/* =========================================================================
   3. ITENS DE LISTAGEM dentro dos modais (Top Compradores, Ganhadores etc)
   ========================================================================= */

/* Item de top compradores / ganhadores parciais */
.MuiDialogContent-root .top-comprador-item,
.MuiDialogContent-root .ganhador-item,
.MuiDialogContent-root .ranking-item,
.modal-content .ranking-list > div,
.MuiDialogContent-root [class*="winner-"],
.MuiDialogContent-root [class*="rank-"] {
    border-radius: 12px !important;
    padding: 12px 14px !important;
    margin-bottom: 8px;
    background: #ffffff;
    border: 1px solid #f1f5f9;
    transition: background-color .2s ease, border-color .2s ease, transform .15s ease;
}

.MuiDialogContent-root .top-comprador-item:hover,
.MuiDialogContent-root .ganhador-item:hover,
.MuiDialogContent-root .ranking-item:hover {
    background: #f8fafc;
    border-color: #e2e8f0;
    transform: translateX(2px);
}

/* =========================================================================
   4. ROLETA — body interno
   ========================================================================= */

.body-roleta {
    border-radius: 16px;
    padding: 18px;
}

.body-roleta .award-block {
    border-radius: 12px;
    padding: 12px 14px;
    transition: background-color .2s ease, transform .15s ease;
}

.body-roleta .award-block:hover {
    transform: translateX(2px);
}

.body-roleta .award-block .award-number {
    font-weight: 700;
    letter-spacing: -0.01em;
}

/* =========================================================================
   5. UPCELL — body interno
   ========================================================================= */

.body-upcell,
.dialog-content-upcell {
    border-radius: 14px;
}

/* =========================================================================
   6. RASPADINHA — body interno
   ========================================================================= */

.dialog-content-raspadinha,
.Raspadinhas_grid__1JQa_ {
    border-radius: 14px;
}

/* =========================================================================
   7. SWEETALERT2 — toasts e popups
   ========================================================================= */

.swal2-popup {
    border-radius: 18px !important;
    box-shadow:
        0 4px 8px rgba(15, 23, 42, 0.08),
        0 24px 48px -8px rgba(15, 23, 42, 0.40) !important;
    font-family: 'Inter', 'Montserrat', system-ui, -apple-system, sans-serif !important;
}

.swal2-title {
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    font-size: 20px !important;
}

.swal2-html-container {
    font-size: 14.5px !important;
    line-height: 1.5 !important;
    color: #475569 !important;
}

.swal2-confirm,
.swal2-cancel,
.swal2-deny {
    border-radius: 10px !important;
    padding: 10px 22px !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.10) !important;
    transition: transform .15s ease, filter .15s ease;
}

.swal2-confirm:hover,
.swal2-cancel:hover,
.swal2-deny:hover {
    transform: translateY(-1px);
    filter: brightness(1.06);
}

/* =========================================================================
   8. FIX intl-tel-input — bandeira sobreposta no input
   ========================================================================= */
/* Bootstrap .form-control aplica padding-left: 14px que sobrescreve o
   espaço necessário pra bandeira (48px). Sem isso, texto fica embaixo
   da bandeira. */
.iti.iti--allow-dropdown input,
.iti.iti--allow-dropdown input[type="tel"],
.iti.iti--allow-dropdown .form-control,
.iti--allow-dropdown input,
.iti--allow-dropdown input[type="tel"],
.iti--allow-dropdown .form-control {
    padding-left: 52px !important;
}

/* FIX (Fase 53d): a regra da seção "Form inputs dentro dos modais" usa
   `padding: 11px 14px !important` (shorthand) com especificidade 1,3,2,
   o que sobrescrevia o `padding-left: 52px !important` acima (1,3,1).
   Resultado: bandeira sobreposta ao placeholder no checkout mobile.
   Esta regra combina os 2 seletores → especificidade 1,5,2 (vence). */
section.dialog-container.dialog-buy .iti.iti--allow-dropdown input,
section.dialog-container.dialog-buy .iti.iti--allow-dropdown input[type="tel"],
section.dialog-container.dialog-buy .iti.iti--allow-dropdown .form-control,
section.dialog-container.dialog-buy .iti--allow-dropdown input,
section.dialog-container.dialog-buy .iti--allow-dropdown input[type="tel"],
section.dialog-container.dialog-buy .iti--allow-dropdown .form-control {
    padding-left: 52px !important;
    padding-right: 14px !important;
}

.iti {
    width: 100%;
}

.iti__flag-container {
    z-index: 2;
}

.iti__selected-flag {
    padding: 0 6px 0 8px !important;
    background: transparent !important;
    border-right: 1px solid #e2e8f0;
}

.iti__country-list {
    border-radius: 10px !important;
    box-shadow: 0 4px 16px -4px rgba(15, 23, 42, 0.18) !important;
    border: 1px solid #e2e8f0 !important;
    margin-top: 4px;
    max-height: 240px;
}

.iti__country {
    padding: 8px 10px !important;
    font-size: 13.5px;
}

.iti__country.iti__highlight,
.iti__country:hover {
    background-color: #f1f5f9 !important;
}

.iti__divider {
    border-bottom: 1px solid #e2e8f0;
}

/* =========================================================================
   8b. FIX (Fase 53d-4): mobile responsive — Celular + Confirme o celular
   ========================================================================= */
/* Bug reportado em produção iPhone: os 2 campos `<div class="col-6">` ficam
   lado a lado em modalCheckoutNovoCliente.blade.php. Em viewport <= 480px,
   cada col-6 fica ~190px — o intl-tel-input (bandeira 49px + input com
   placeholder "(00) 90000-0000") estoura à direita, empurrando o "Concluir
   cadastro e pagar" pra fora da tela. Fix: empilhar verticalmente em mobile. */
section.dialog-container.dialog-buy {
    overflow-x: hidden;
}

section.dialog-container.dialog-buy .iti,
section.dialog-container.dialog-buy .iti--allow-dropdown {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
}

section.dialog-container.dialog-buy input[type="text"],
section.dialog-container.dialog-buy input[type="tel"],
section.dialog-container.dialog-buy input[type="email"],
section.dialog-container.dialog-buy .form-control {
    max-width: 100%;
    box-sizing: border-box;
}

@media (max-width: 480px) {
    /* Empilhar Celular + Confirme verticalmente em mobile */
    section.dialog-container.dialog-buy .form-item.d-flex.justify-content-between {
        flex-direction: column !important;
        gap: 12px;
    }
    section.dialog-container.dialog-buy .form-item.d-flex.justify-content-between > .col-6 {
        flex: 1 1 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    /* Input "Celular" readonly do step anterior — remover max-width: 95% inline */
    section.dialog-container.dialog-buy .form-item .col-6 input[name="telefone"][readonly] {
        max-width: 100% !important;
        width: 100% !important;
    }
}

/* =========================================================================
   9. Animação suave de entrada/saída
   ========================================================================= */

@keyframes modal-fade-in {
    from { opacity: 0; transform: translateY(8px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

section.dialog-container.dialog-buy:not(.d-none),
.MuiDialog-paper.MuiPaper-root {
    animation: modal-fade-in .22s ease-out;
}
