/**
 * Global Fixes - CSS
 * Correções globais que devem ter prioridade sobre outros estilos
 * DEVE ser carregado por ÚLTIMO em todas as páginas
 */

/* ========== Background Fix - Força gradiente roxo ========== */
body {
    background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2e 50%, #0f0f1e 100%) !important;
    background-attachment: fixed !important;
    min-height: 100dvh;
    min-height: 100vh;
}

/* Overlay sutil para profundidade */
body::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: radial-gradient(circle at 20% 50%, rgba(139, 92, 246, 0.08) 0%, transparent 50%),
                radial-gradient(circle at 80% 80%, rgba(124, 58, 237, 0.06) 0%, transparent 50%);
    pointer-events: none;
    z-index: -1;
}

/* ========== Main Content Fix — largura real (sem 100vw) + respiro ========== */
html, body {
    max-width: 100% !important;
    overflow-x: clip !important;
}

.main-content {
    padding: 0 !important;
    background: transparent !important;
    box-sizing: border-box !important;
    overflow-x: clip !important;
    min-width: 0 !important;
}

@media (min-width: 992px) {
    .main-content {
        width: calc(100% - 280px) !important;
        max-width: calc(100% - 280px) !important;
        margin-left: 280px !important;
    }
}

/* Containers: padding consistente (Chrome não grudado; Cursor não corta) */
.suporte-container,
.admin-container,
.config-container,
.afiliacao-container,
.apis-container,
.page-content {
    padding: 1.5rem !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
}

.checker-container {
    padding: 0 1.5rem 1.5rem !important;
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: clip !important;
}

@media (max-width: 991px) {
    .suporte-container,
    .admin-container,
    .config-container,
    .afiliacao-container,
    .apis-container,
    .checker-container,
    .page-content {
        padding: 0.75rem !important;
    }

    .main-content {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }
}

/* ========== Minimal Checkbox Normalization ========== */
/* Defesa contra .form-group input { width:100% } de páginas (recharge, etc.) */
.admin-container input[type="checkbox"],
.admin-container input[type="radio"],
.config-container input[type="checkbox"],
.config-container input[type="radio"],
.apis-container input[type="checkbox"],
.apis-container input[type="radio"],
.page-content input[type="checkbox"],
.page-content input[type="radio"],
.modal-overlay input[type="checkbox"],
.modal-overlay input[type="radio"],
.form-group input[type="checkbox"],
.form-group input[type="radio"] {
    appearance: auto !important;
    -webkit-appearance: checkbox !important;
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;
    min-height: 16px !important;
    max-height: 16px !important;
    margin: 0 8px 0 0 !important;
    padding: 0 !important;
    flex: 0 0 16px !important;
    cursor: pointer !important;
    accent-color: var(--primary-purple, #8b5cf6) !important;
    background: unset !important;
    border: none !important;
    box-shadow: none !important;
    outline: none !important;
    position: static !important;
    display: inline-block !important;
    box-sizing: border-box !important;
    vertical-align: middle !important;
}

.admin-container input[type="radio"],
.config-container input[type="radio"],
.apis-container input[type="radio"],
.page-content input[type="radio"],
.modal-overlay input[type="radio"],
.form-group input[type="radio"] {
    -webkit-appearance: radio !important;
}

/* Explicit plan checkbox sizing (defensive against flex growth) */
.plan-checkbox, .meta-checkbox {
    width: 16px !important;
    height: 16px !important;
    min-width: 16px !important;
    max-width: 16px !important;
    flex: 0 0 16px !important;
    box-sizing: border-box !important;
    margin-right: 8px !important;
}

/* Enhanced visible state for plan checkboxes */
.plan-checkbox, .meta-checkbox {
    appearance: none !important;
    -webkit-appearance: none !important;
    border: 2px solid rgba(139,92,246,0.55) !important;
    background: #0f1320 !important;
    border-radius: 5px !important;
    position: relative !important;
    display: inline-block !important;
    cursor: pointer !important;
    transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.plan-checkbox:hover:not(:disabled), .meta-checkbox:hover:not(:disabled) {
    border-color: var(--primary-purple) !important;
}
.plan-checkbox:active:not(:disabled), .meta-checkbox:active:not(:disabled) {
    transform: scale(.92);
}
.plan-checkbox:focus-visible, .meta-checkbox:focus-visible {
    outline: 2px solid rgba(139,92,246,0.8) !important;
    outline-offset: 2px !important;
}
.plan-checkbox:checked, .meta-checkbox:checked {
    background: var(--primary-purple) !important;
    border-color: var(--primary-purple) !important;
    box-shadow: 0 0 0 2px rgba(139,92,246,0.35);
}
.plan-checkbox:checked::after, .meta-checkbox:checked::after {
    content: '';
    position: absolute;
    top: 3px;
    left: 6px;
    width: 4px;
    height: 8px;
    border: 2px solid #fff;
    border-top: none;
    border-left: none;
    transform: rotate(45deg);
}
.plan-checkbox:disabled, .meta-checkbox:disabled {
    opacity: .45;
    cursor: not-allowed !important;
}

/* Focus ring (for browsers that remove native outline above) */
.admin-container input[type="checkbox"]:focus-visible,
.config-container input[type="checkbox"]:focus-visible,
.apis-container input[type="checkbox"]:focus-visible,
.page-content input[type="checkbox"]:focus-visible {
    outline: 2px solid rgba(139,92,246,0.7) !important;
    outline-offset: 2px !important;
}

/* Ensure no leftover pseudo elements */
.admin-container input[type="checkbox"]::before,
.admin-container input[type="checkbox"]::after,
.config-container input[type="checkbox"]::before,
.config-container input[type="checkbox"]::after,
.apis-container input[type="checkbox"]::before,
.apis-container input[type="checkbox"]::after,
.page-content input[type="checkbox"]::before,
.page-content input[type="checkbox"]::after { content: none !important; display: none !important; }

@media (max-width: 768px) {
    .suporte-container,
    .admin-container,
    .config-container,
    .afiliacao-container,
    .apis-container,
    .checker-container,
    .page-content {
        padding: 1rem !important;
    }
}

/* Path A — never force full-width buttons outside .btn-block */
.modal-overlay .btn:not(.btn-block):not(.btn-full),
.admin-container .form-row-inline > .btn,
.admin-container .modal-footer .btn,
.page-content .form-actions .btn {
    width: auto !important;
    flex: 0 0 auto;
}

/* Footer Cancelar/Fechar must never inherit X-close (30–40px) sizing */
.modal-footer .btn,
.modal-actions .btn,
.api-modal-footer .btn,
[class*="-modal-footer"] .btn {
    position: static !important;
    width: auto !important;
    height: auto !important;
    min-width: fit-content !important;
    max-width: none !important;
    flex: 0 0 auto !important;
    white-space: nowrap !important;
    overflow: visible !important;
    transform: none !important;
}

.form-row-inline > .form-select,
.form-row-inline > select {
    flex: 1 1 auto;
    min-width: 0;
    width: auto !important;
    max-width: 100%;
}

/* ========== Result Section Header Alignment & No Overlap Fix ========== */
.result-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.result-header-left {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    position: relative !important;
    z-index: 1 !important;
}

.result-header h3,
.result-header-left h3 {
    font-size: 16px !important;
    font-weight: 700 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    white-space: nowrap !important;
    margin: 0 !important;
    min-width: 0 !important;
    flex-shrink: 0 !important;
}

/* Remove pill badge styling from count span inside result-header */
.result-header h3 .result-count,
.result-header .result-header-left .result-count,
.result-header .result-count {
    font-size: 15px !important;
    font-weight: 600 !important;
    opacity: 0.9 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: inline !important;
    margin-left: 4px !important;
    width: auto !important;
    height: auto !important;
}

.result-header .result-actions,
.result-actions {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    flex: 0 0 auto !important;
    margin-left: auto !important;
    position: relative !important;
    z-index: 2 !important;
}

/* Prevent cards/grids from overflowing parent container */
.checker-section,
.results-container,
.result-section,
.extractor-options-card,
.tool-header-card {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* Stats fluidas (última palavra — prevalece sobre checker-modern) */
.main-content .stats-grid,
.main-content .stats-grid-5,
.stats-grid,
.stats-grid-5 {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)) !important;
    gap: 1rem !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    min-width: 0 !important;
}

.main-content > .stats-grid,
.main-content > .stats-grid-5 {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

@media (max-width: 1399px) {
    .checker-container {
        grid-template-columns: 1fr !important;
    }
}

body.admin-page,
body.admin-page .main-content,
body.admin-page #mainContent {
    overflow-x: hidden !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

body.admin-page #mainContent > .page,
body.admin-page #mainContent > .page.active,
body.admin-page #mainContent > .admin-nav {
    overflow-x: hidden !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 991px) {
    body.admin-page .main-content {
        overflow-x: hidden !important;
        min-width: 0 !important;
    }
}

/* ========== Admin tables: wrap MUST stay viewport-width; table scrolls inside ========== */
/* Root cause of missing <> : wrap grew with table, then html/body overflow-x:clip cut it. */
body.admin-page #mainContent,
body.admin-page .main-content {
    overflow-x: hidden !important;
    min-width: 0 !important;
    max-width: 100% !important;
}

body.admin-page #mainContent > .page,
body.admin-page #mainContent > .page.active,
body.admin-page #mainContent > .admin-nav {
    overflow-x: hidden !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

#mainContent .admin-table-wrap,
#mainContent .table-responsive,
body.admin-page .admin-table-wrap {
    display: block !important;
    /* Flex/block shrink trick: never expand past parent; own the horizontal scroll */
    width: 0 !important;
    min-width: 100% !important;
    max-width: 100% !important;
    max-height: calc(100vh - 300px) !important;
    overflow-x: auto !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    box-sizing: border-box !important;
    background: #12121f !important;
    border: 1px solid #2d2d4a !important;
    border-radius: 10px !important;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #8b5cf6 rgba(10, 10, 18, 0.55);
}

#mainContent .admin-table-wrap::-webkit-scrollbar,
#mainContent .table-responsive::-webkit-scrollbar {
    width: 8px;
    height: 10px;
}

#mainContent .admin-table-wrap::-webkit-scrollbar-track,
#mainContent .table-responsive::-webkit-scrollbar-track {
    background: rgba(139, 92, 246, 0.05) !important;
    border: 1px solid rgba(139, 92, 246, 0.1) !important;
    border-radius: 8px;
}

#mainContent .admin-table-wrap::-webkit-scrollbar-thumb,
#mainContent .table-responsive::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, #7c3aed, #a78bfa) !important;
    border-radius: 8px;
    box-shadow: 0 0 8px rgba(139, 92, 246, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

#mainContent .admin-table-wrap::-webkit-scrollbar-thumb:hover,
#mainContent .table-responsive::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(90deg, #9333ea, #c084fc) !important;
    box-shadow: 0 0 12px rgba(167, 139, 250, 0.8) !important;
}

/* Table wider than wrap → horizontal scroll always available */
#mainContent .admin-table-wrap > table,
#mainContent .table-responsive > table,
body.admin-page .admin-table-wrap > table {
    width: max-content !important;
    min-width: 1100px !important;
    max-width: none !important;
    table-layout: fixed !important;
    background: #12121f !important;
}

#plans .admin-table-wrap > table,
#plans .table-responsive > table,
#plansGrid table,
.plan-card table {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    table-layout: auto !important;
}

#mainContent .admin-table-wrap th,
#mainContent .admin-table-wrap td {
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    background: #12121f !important;
    padding: 8px 10px !important;
    font-size: 12px !important;
}

#mainContent .admin-table-wrap thead th {
    background: #1a1a2e !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 4 !important;
}

body.admin-page #mainContent #users .users-table {
    table-layout: fixed !important;
    width: max-content !important;
    min-width: 1100px !important;
    max-width: none !important;
}

body.admin-page #mainContent #users .users-table th,
body.admin-page #mainContent #users .users-table td {
    padding: 8px 8px !important;
    font-size: 12px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

body.admin-page #mainContent #users .users-table th:nth-child(1),
body.admin-page #mainContent #users .users-table td:nth-child(1) { width: 64px; }
body.admin-page #mainContent #users .users-table th:nth-child(2),
body.admin-page #mainContent #users .users-table td:nth-child(2) { width: 150px; }
body.admin-page #mainContent #users .users-table th:nth-child(3),
body.admin-page #mainContent #users .users-table td:nth-child(3) { width: 240px; }
body.admin-page #mainContent #users .users-table th:nth-child(4),
body.admin-page #mainContent #users .users-table td:nth-child(4) { width: 100px; }
body.admin-page #mainContent #users .users-table th:nth-child(5),
body.admin-page #mainContent #users .users-table td:nth-child(5) { width: 120px; }
body.admin-page #mainContent #users .users-table th:nth-child(6),
body.admin-page #mainContent #users .users-table td:nth-child(6) { width: 80px; }
body.admin-page #mainContent #users .users-table th:nth-child(7),
body.admin-page #mainContent #users .users-table td:nth-child(7) { width: 90px; }
body.admin-page #mainContent #users .users-table th:nth-child(8),
body.admin-page #mainContent #users .users-table td:nth-child(8) { width: 160px; }

#mainContent .admin-table-wrap th:last-child,
#mainContent .admin-table-wrap td:last-child {
    position: static !important;
    right: auto !important;
    box-shadow: none !important;
    background: #12121f !important;
    overflow: visible !important;
}

#mainContent .admin-table-wrap .action-btns {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;
    align-items: center !important;
}

#mainContent .admin-table-wrap .action-btns .btn,
#mainContent .admin-table-wrap .action-btns .btn-small {
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    max-height: 30px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 30px !important;
    font-size: 12px !important;
    box-shadow: none !important;
    opacity: 1 !important;
    border-radius: 8px !important;
}

#mainContent .admin-table-wrap .action-btns .btn-primary {
    background: #7c3aed !important;
    border-color: #7c3aed !important;
    color: #fff !important;
}

#mainContent .admin-table-wrap .action-btns .btn-secondary {
    background: #1e1e32 !important;
    border: 1px solid #3b3b5c !important;
    color: #e2e8f0 !important;
}

.admin-table-shell {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
}

/* Double Scroll Top Container */
.admin-double-scroll-top {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    margin-bottom: 8px !important;
    background: transparent !important;
    box-sizing: border-box !important;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: #8b5cf6 rgba(10, 10, 18, 0.55);
}

.admin-double-scroll-top::-webkit-scrollbar {
    height: 10px;
}

.admin-double-scroll-top::-webkit-scrollbar-track {
    background: rgba(139, 92, 246, 0.05) !important;
    border: 1px solid rgba(139, 92, 246, 0.1) !important;
    border-radius: 8px;
}

.admin-double-scroll-top::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, #7c3aed, #a78bfa) !important;
    border-radius: 8px;
    box-shadow: 0 0 8px rgba(139, 92, 246, 0.6);
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
}

.admin-double-scroll-top::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(90deg, #9333ea, #c084fc) !important;
    box-shadow: 0 0 12px rgba(167, 139, 250, 0.8) !important;
}

.admin-double-scroll-dummy {
    height: 1px;
    background: transparent;
}

.admin-table-scroll-bar,
.admin-table-scroll-btns {
    display: none !important;
}

#mainContent > .page,
#mainContent > .page.active {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

/* WhatsApp FAB was covering Ações — hide on admin */
body.admin-page a.whatsapp-float,
body.admin-page #whatsapp-button,
body.admin-page .whatsapp-float,
body.admin-page #whatsappFloat,
body.admin-page .wa-float {
    display: none !important;
}

/* ========== Global Standalone Modal Overlays (e.g. Afiliacao) ========== */
/* When .modal is used as the overlay itself (NOT .modal-overlay > .modal) */
body.afiliacao-page .modal {
    display: none;
    position: fixed !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 16px !important;
    background: rgba(10, 10, 18, 0.88) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    z-index: 10000 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

body.afiliacao-page #exitConfirmModal {
    z-index: 10050 !important;
}

body.afiliacao-page .modal[style*="display: flex"],
body.afiliacao-page .modal[style*="display: block"] {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.afiliacao-page .modal .modal-content {
    background: linear-gradient(135deg, rgba(26, 26, 46, 0.98) 0%, rgba(15, 15, 30, 0.98) 100%) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    border: 1px solid rgba(139, 92, 246, 0.35) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.75) !important;
    border-radius: 16px !important;
    width: min(550px, 100%) !important;
    max-width: min(550px, 100%) !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    position: relative !important;
    margin: auto !important;
    flex-shrink: 0 !important;
    animation: modalAppear 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

body.afiliacao-page .modal .btn:not(.affiliate-modal-close) {
    position: static !important;
    width: auto !important;
    max-width: 100% !important;
    flex: 0 1 auto !important;
}

@keyframes modalAppear {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(-20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.header-status-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-right: 8px;
    padding: 8px 12px;
    border-radius: 10px;
    color: var(--text-primary, #e5e7eb);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
    border: 1px solid rgba(125, 211, 252, 0.35);
}
.header-status-link:hover {
    color: #7dd3fc;
}
@media (max-width: 720px) {
    .header-status-link span { display: none; }
}

