/**
 * Painel Admin /painel - Customizações sobre Tabler UI
 * Tabler fornece: layout, cards, tabelas, botões, forms, badges, navbar
 */

/* Customização de cores do projeto (accent roxo/rosa) */
[data-bs-theme="dark"] {
    --tblr-primary: #a855f7;
    --tblr-primary-rgb: 168, 85, 247;
}

[data-bs-theme="light"] {
    --tblr-primary: #7c3aed;
    --tblr-primary-rgb: 124, 58, 237;
}

/* Compatibilidade: btn-small -> btn-sm */
.btn-small { padding: 0.25rem 0.5rem; font-size: 0.7875rem; }

/* Compatibilidade: form-group (usado em vários templates até migração completa) */
.form-group { margin-bottom: 1rem; }
.form-group label { display: block; margin-bottom: 0.375rem; }
.form-group .description { margin-top: 0.25rem; font-size: 0.875rem; opacity: 0.8; }

/* Módulos: toggle custom (usado até migrar para form-switch do Tabler) */
.panel-toggle-wrap { display: inline-flex; align-items: center; cursor: pointer; }
.panel-toggle-wrap .panel-modulo-ativo { position: absolute; opacity: 0; width: 0; height: 0; }
.panel-toggle-slider {
    width: 2.5rem; height: 1.25rem; background: var(--tblr-bg-surface-secondary);
    border-radius: 2rem; transition: background-color 0.2s;
}
.panel-toggle-slider::after {
    content: ''; position: absolute; top: 2px; left: 2px;
    width: 1rem; height: 1rem; border-radius: 50%;
    background: var(--tblr-body-color); transition: transform 0.2s;
}
.panel-toggle-wrap .panel-modulo-ativo:checked + .panel-toggle-slider {
    background: var(--tblr-primary);
}
.panel-toggle-wrap .panel-modulo-ativo:checked + .panel-toggle-slider::after {
    transform: translateX(1.25rem); background: #fff;
}
.panel-modulos-error { padding: 0.5rem 0.75rem; background: rgba(220, 53, 69, 0.15); color: var(--tblr-danger, #dc3545); border-radius: 0.375rem; font-size: 0.875rem; }
.panel-col-select { width: 2.75rem; text-align: center; }
.panel-input-descricao { min-width: 10rem; }

/* Badges de status (compatibilidade) */
.prevalida-status-badge { padding: 0.25rem 0.5rem; font-size: 0.75rem; font-weight: 600; }
.prevalida-status-pendente { background: rgba(245, 158, 11, 0.2); color: var(--tblr-warning); }
.prevalida-status-ativo { background: rgba(34, 197, 94, 0.2); color: var(--tblr-success); }
.prevalida-status-inativo { background: rgba(148, 163, 184, 0.2); color: var(--tblr-secondary); }
.prevalida-status-bloqueado { background: rgba(239, 68, 68, 0.2); color: var(--tblr-danger); }
.prevalida-plano-badge { background: rgba(var(--tblr-primary-rgb), 0.2); color: var(--tblr-primary); padding: 0.25rem 0.5rem; border-radius: var(--tblr-border-radius); font-size: 0.8rem; }
.prevalida-kyc-nao_enviado { background: rgba(148, 163, 184, 0.2); color: var(--tblr-secondary); }
.prevalida-kyc-pendente { background: rgba(245, 158, 11, 0.2); color: var(--tblr-warning); }
.prevalida-kyc-aprovado { background: rgba(34, 197, 94, 0.2); color: var(--tblr-success); }
.prevalida-kyc-recusado { background: rgba(239, 68, 68, 0.2); color: var(--tblr-danger); }
.prevalida-kyc-required-badge { display: inline-flex; align-items: center; justify-content: center; width: 1.125rem; height: 1.125rem; border-radius: 50%; background: var(--tblr-danger); color: #fff; font-size: 0.7rem; font-weight: 700; }

/* Botão Aprovar (usuários) - garantir área clicável */
.btn-list .prevalida-approve-user {
    cursor: pointer;
    position: relative;
    z-index: 1;
    pointer-events: auto;
}
.btn-list.flex-nowrap { display: inline-flex; gap: 0.25rem; }

/* Modal #prevalida-modal (usuários - editar) - usado por JS */
#prevalida-modal.show { display: flex !important; }
#prevalida-modal { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 1055; align-items: center; justify-content: center; padding: 1rem; }

/* Toast notifications */
.panel-toast {
    position: fixed; bottom: 1.5rem; right: 1.5rem; padding: 1rem 1.25rem;
    border-radius: var(--tblr-border-radius); box-shadow: var(--tblr-box-shadow);
    z-index: 1060; opacity: 0; transform: translateY(1rem);
    transition: opacity 0.3s, transform 0.3s; max-width: 22rem;
}
.panel-toast-show { opacity: 1; transform: translateY(0); }
.panel-toast-success { border-left: 4px solid var(--tblr-success); }
.panel-toast-error { border-left: 4px solid var(--tblr-danger); }

/* Sidebar: logo do painel admin - evitar overflow e garantir exibição adequada */
#prevalida-admin-sidebar #prevalida-admin-logo {
    padding: 0.75rem 1rem;
    margin: 0;
}
#prevalida-admin-sidebar #prevalida-admin-logo a {
    max-width: 100%;
    justify-content: flex-start;
}
#prevalida-admin-sidebar #prevalida-admin-logo .navbar-brand-image {
    max-width: 100%;
    max-height: 240px;
    object-fit: contain;
    filter: none !important;
}

/* Sidebar tem data-bs-theme="dark" fixo; logo segue o tema global do html */
#prevalida-admin-logo .prevalida-logo-light {
    display: none;
}
#prevalida-admin-logo .prevalida-logo-dark {
    display: block;
}
html[data-bs-theme="light"] #prevalida-admin-logo .prevalida-logo-dark {
    display: none !important;
}
html[data-bs-theme="light"] #prevalida-admin-logo .prevalida-logo-light {
    display: block !important;
}
html[data-bs-theme="dark"] #prevalida-admin-logo .prevalida-logo-dark {
    display: block !important;
}
html[data-bs-theme="dark"] #prevalida-admin-logo .prevalida-logo-light {
    display: none !important;
}

/* Login / Troca senha (telas standalone Tabler) */
.page .page-center { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 2rem; flex-direction: column; }
.container-tight { max-width: 576px; }
.panel-login-wrap, .panel-box-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 2rem; }
.panel-login, .panel-box { width: 100%; max-width: 24rem; }
.panel-login-logo { text-align: center; margin-bottom: 1.5rem; }
.panel-login-logo img { max-width: 28rem; height: auto; filter: none !important; }
.navbar-brand .navbar-brand-image,
.navbar-brand img { filter: none !important; }
.panel-login .error, .panel-box .error { padding: 0.75rem; border-radius: var(--tblr-border-radius); background: rgba(var(--tblr-danger-rgb), 0.15); color: var(--tblr-danger); font-size: 0.875rem; margin-bottom: 1rem; }

/* Footer no layout centralizado (login público) */
.page .page-center .prevalida-footer { margin-top: 2rem; text-align: center; width: 100%; }
.page .page-center .prevalida-footer .prevalida-footer-content { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; }
.page .page-center .prevalida-footer .prevalida-footer-links { display: flex; gap: 0.75rem; flex-wrap: wrap; justify-content: center; }
.page .page-center .prevalida-footer .prevalida-footer-separator { color: var(--tblr-muted); margin: 0 0.25rem; }

/* Validação de formulários (compatibilidade Bootstrap/Tabler) */
.form-control.is-valid { border-color: var(--tblr-success); padding-right: calc(1.5em + 0.75rem); background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%232fb344' d='m2.3 6.73.98-.98-.98-.98-.98.98.98.98zm-.98-1.98h1.96v-1.96h-1.96v1.96z'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right calc(0.375em + 0.1875rem) center; background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
.form-control.is-invalid { border-color: var(--tblr-danger); padding-right: calc(1.5em + 0.75rem); background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23d63939'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linecap='round' d='m5.8 3.6.4.4.4-.4m0 4.8-.4-.4-.4.4'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: right calc(0.375em + 0.1875rem) center; background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); }
.form-hint.text-danger { color: var(--tblr-danger) !important; }
@keyframes prevalida-shake { 0%, 100% { transform: translateX(0); } 10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); } 20%, 40%, 60%, 80% { transform: translateX(4px); } }
.was-validated { animation: prevalida-shake 0.4s ease-in-out; }

/* Login público via shortcode: shell Tabler harmonizado */
/* Fundo unificado - mesma cor em toda a página */
body.prevalida-login-page,
body:has(#prevalida-root.prevalida-auth-wrapper) {
    background: #f8f9fa !important;
}
[data-bs-theme="light"] .prevalida-auth-wrapper {
    background: #f8f9fa;
}
[data-bs-theme="light"] body.prevalida-login-page .wp-block-post,
[data-bs-theme="light"] body.prevalida-login-page .wp-site-blocks,
[data-bs-theme="light"] body:has(#prevalida-root.prevalida-auth-wrapper) .wp-block-post,
[data-bs-theme="light"] body:has(#prevalida-root.prevalida-auth-wrapper) .wp-site-blocks {
    background: #f8f9fa !important;
}
.prevalida-auth-wrapper {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}
.prevalida-auth-inner {
    width: 100%;
    max-width: 38rem;
}
.prevalida-auth-card {
    border: 1px solid var(--tblr-border-color);
    box-shadow: var(--tblr-box-shadow);
}
[data-bs-theme="dark"] .prevalida-auth-wrapper {
    background: var(--tblr-bg-surface) !important;
    background-color: var(--tblr-bg-surface) !important;
}
[data-bs-theme="dark"] body.prevalida-login-page,
[data-bs-theme="dark"] body:has(#prevalida-root.prevalida-auth-wrapper),
[data-bs-theme="dark"] body.prevalida-login-page .wp-block-post,
[data-bs-theme="dark"] body.prevalida-login-page .wp-site-blocks,
[data-bs-theme="dark"] body:has(#prevalida-root.prevalida-auth-wrapper) .wp-block-post,
[data-bs-theme="dark"] body:has(#prevalida-root.prevalida-auth-wrapper) .wp-site-blocks {
    background: var(--tblr-bg-surface) !important;
}
