@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');

:root {
    /* Aliases de compatibilidade */
    --border: rgba(255,255,255,0.1);
    --bg-secondary: rgba(255,255,255,0.05);
    --primary: #7C5CFC;
    /* Paleta azul (tema original / aparência) */
    --azul: #2563eb;
    --azul-claro: #ebf5fb;
    --azul-escuro: #1e3a5f;
    /* Escala de cinza */
    --cinza-100: #f3f4f6;
    --cinza-200: #e5e7eb;
    --cinza-300: #d1d5db;
    --cinza-400: #9ca3af;
    --cinza-500: #6b7280;
    --cinza-700: #374151;
    --accent: #7C5CFC;
    --accent-light: #A78BFA;
    --accent-glow: rgba(124,92,252,0.35);
    --cyan: #22D3EE;
    --cyan-glow: rgba(34,211,238,0.2);
    --gold: #FBBF24;
    --bg-deep: #10122a;
    --bg-mid: #181c3a;
    --bg-card: rgba(255,255,255,0.04);
    --glass: rgba(255,255,255,0.055);
    --glass-strong: rgba(255,255,255,0.08);
    --glass-border: rgba(255,255,255,0.09);
    --glass-border-hover: rgba(124,92,252,0.3);
    --glass-hover: rgba(255,255,255,0.07);
    --text-primary: #F0F0F5;
    --text-secondary: #8B92A8;
    --text-muted: #5C6380;
    --verde: #34D399;
    --verde-claro: rgba(52,211,153,0.12);
    --vermelho: #F87171;
    --vermelho-claro: rgba(248,113,113,0.12);
    --laranja: #FBBF24;
    --laranja-claro: rgba(251,191,36,0.12);
    --sombra: 0 2px 16px rgba(0,0,0,0.25);
    --sombra-md: 0 8px 32px rgba(0,0,0,0.35);
    --sombra-glow: 0 0 24px var(--accent-glow), 0 0 48px rgba(124,92,252,0.1);
    --raio: 16px;
    /* Linha de grade das tabelas de dados — sutil e visivel em tema claro E escuro */
    --linha-grade: rgba(130,140,165,0.20);
    --linha-grade-forte: rgba(130,140,165,0.34);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body {
    font-family: 'Inter', -apple-system, sans-serif; color: var(--text-primary); min-height: 100vh;
    background: var(--bg-deep); background-attachment: fixed;
}
body::before {
    content: ''; position: fixed; top: 0; left: 0; right: 0; bottom: 0; z-index: -1; pointer-events: none;
    background:
        radial-gradient(ellipse 600px 400px at 15% 20%, rgba(124,92,252,0.14) 0%, transparent 100%),
        radial-gradient(ellipse 500px 500px at 85% 70%, rgba(34,211,238,0.09) 0%, transparent 100%),
        radial-gradient(ellipse 800px 600px at 50% 110%, rgba(99,102,241,0.07) 0%, transparent 100%);
}

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 12px; }
::-webkit-scrollbar-track { background: rgba(0,0,0,0.15); border-radius: 6px; }
::-webkit-scrollbar-thumb { background: rgba(124,92,252,0.45); border-radius: 6px; min-height: 30px; }
::-webkit-scrollbar-thumb:hover { background: rgba(124,92,252,0.7); }
::-webkit-scrollbar-corner { background: transparent; }
* { scrollbar-width: auto; scrollbar-color: rgba(124,92,252,0.45) rgba(0,0,0,0.15); }

/* ===== LOGIN ===== */
.login-container {
    min-height: 100vh; display: flex; align-items: center; justify-content: center;
    background: var(--bg-deep); padding: 20px;
}
.login-container::before {
    content: ''; position: fixed; top: -50%; left: -50%; width: 200%; height: 200%; z-index: -1;
    background: radial-gradient(circle at 30% 40%, rgba(124,92,252,0.12) 0%, transparent 50%),
                radial-gradient(circle at 70% 60%, rgba(34,211,238,0.08) 0%, transparent 50%);
}
.login-card {
    background: var(--glass-strong); backdrop-filter: blur(40px); -webkit-backdrop-filter: blur(40px);
    border: 1px solid rgba(255,255,255,0.1); border-radius: 24px; padding: 48px 40px;
    width: 100%; max-width: 420px; box-shadow: var(--sombra-md), inset 0 1px 0 rgba(255,255,255,0.08);
    position: relative; overflow: hidden;
}
.login-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
}
.login-logo { text-align: center; margin-bottom: 32px; }
.login-logo h1 { font-size: 28px; font-weight: 800; color: #fff; letter-spacing: -0.5px; }
.login-logo p { color: var(--text-secondary); font-size: 14px; margin-top: 4px; }
.login-logo .marca { color: var(--gold); }

.form-grupo { margin-bottom: 20px; }
.form-grupo label { display: block; font-size: 12px; font-weight: 600; color: var(--text-secondary); margin-bottom: 6px; text-transform: uppercase; letter-spacing: 0.5px; }
.form-grupo input {
    width: 100%; padding: 12px 16px; border: 1px solid var(--glass-border); border-radius: 12px;
    font-size: 15px; font-family: inherit; transition: all 0.3s;
    background: rgba(255,255,255,0.04); color: var(--text-primary);
}
.form-grupo input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-glow); }
.form-grupo input::placeholder { color: var(--text-muted); }
.form-grupo select {
    width: 100%; padding: 10px 14px; border: 1px solid var(--glass-border); border-radius: 10px;
    font-size: 14px; font-family: inherit; background: rgba(255,255,255,0.04); color: var(--text-primary);
}

/* ===== BOTOES ===== */
.btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 24px; border: none; border-radius: 12px; font-family: inherit;
    font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.25s;
    position: relative; overflow: hidden;
}
.btn::after {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 50%;
    background: linear-gradient(to bottom, rgba(255,255,255,0.08), transparent);
    pointer-events: none;
}
.btn-primario {
    background: linear-gradient(135deg, #7C5CFC, #6366F1); color: #fff; width: 100%;
    box-shadow: 0 4px 16px var(--accent-glow);
}
.btn-primario:hover { transform: translateY(-1px); box-shadow: 0 6px 24px var(--accent-glow); filter: brightness(1.1); }
.btn-secundario { background: var(--glass); color: var(--text-secondary); border: 1px solid var(--glass-border); }
.btn-secundario:hover { background: var(--glass-hover); border-color: var(--glass-border-hover); }
.btn-perigo { background: linear-gradient(135deg, #F87171, #EF4444); color: #fff; }
.btn-sucesso { background: linear-gradient(135deg, #34D399, #10B981); color: #fff; }
.btn:disabled { opacity: 0.35; cursor: not-allowed; transform: none; filter: none; }
.btn-processando {
    animation: processandoGlow 1.2s ease-in-out infinite !important;
    cursor: wait !important;
    position: relative;
}
@keyframes processandoGlow {
    0%   { box-shadow: 0 0 6px 1px #7C5CFC, 0 0 16px 4px #6366F1; filter: brightness(1.1); }
    50%  { box-shadow: 0 0 18px 6px #a78bfa, 0 0 36px 12px #818cf8; filter: brightness(1.35); }
    100% { box-shadow: 0 0 6px 1px #7C5CFC, 0 0 16px 4px #6366F1; filter: brightness(1.1); }
}
/* Outros botões bloqueados durante processamento */
.processamento-bloqueado { opacity: 0.4 !important; cursor: not-allowed !important; pointer-events: none !important; }

/* ===== OVERLAY DE PROCESSAMENTO ===== */
#erp-overlay-processando {
    position: fixed; inset: 0; z-index: 9999;
    background: rgba(6,9,20,0.75);
    backdrop-filter: blur(6px) saturate(0.6);
    display: none; align-items: center; justify-content: center;
    pointer-events: all; cursor: wait;
}
#erp-overlay-processando.ativo { display: flex; animation: fadeInUp 0.22s ease; }
.erp-overlay-card {
    background: #111827;
    border: 1px solid rgba(124,92,252,0.5);
    border-radius: 20px;
    padding: 44px 64px;
    text-align: center;
    box-shadow: 0 16px 56px rgba(0,0,0,0.75), 0 0 0 1px rgba(124,92,252,0.12);
    min-width: 280px;
}
.erp-overlay-titulo { font-size: 18px; font-weight: 700; color: #e2e8f0; margin-bottom: 8px; letter-spacing: 0.01em; }
.erp-overlay-desc { font-size: 13px; color: #64748b; max-width: 340px; line-height: 1.5; }

/* ===== LAYOUT ===== */
.app-container { display: flex; min-height: 100vh; }

/* ===== SIDEBAR ===== */
.sidebar {
    width: 260px; color: #fff; display: flex; flex-direction: column;
    position: fixed; top: 0; left: 0; bottom: 0; z-index: 100;
    transition: transform 0.3s;
    background: linear-gradient(180deg, rgba(24,22,52,0.75) 0%, rgba(18,16,40,0.8) 100%);
    backdrop-filter: blur(30px); -webkit-backdrop-filter: blur(30px);
    border-right: 1px solid rgba(255,255,255,0.08);
}
.sidebar::after {
    content: ''; position: absolute; top: 0; right: 0; width: 1px; height: 100%;
    background: linear-gradient(180deg, rgba(124,92,252,0.3) 0%, rgba(34,211,238,0.1) 50%, transparent 100%);
    pointer-events: none;
}
.sidebar-header {
    padding: 16px 14px; border-bottom: 1px solid rgba(255,255,255,0.06);
    position: relative; display: flex; align-items: center; gap: 12px;
}
.sidebar-header::after {
    content: ''; position: absolute; bottom: -1px; left: 20px; right: 20px; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(124,92,252,0.2), transparent);
}
.sidebar-header .logo-menu {
    width: 78px; height: 78px; flex-shrink: 0;
    filter: drop-shadow(0 2px 12px rgba(0,0,0,0.45));
}
.sidebar-header .marca-grupo-perfect { display: flex; flex-direction: column; line-height: 1.05; }
.sidebar-header .mg-grupo { font-size: 15px; font-weight: 600; letter-spacing: 3px; color: #4FAE6D; }
.sidebar-header .mg-perfect { font-size: 23px; font-weight: 800; letter-spacing: 1px; color: #E0B24A; }

.sidebar-nav { flex: 1; padding: 8px 0; overflow-y: auto; }
.nav-secao { padding: 16px 20px 4px; font-size: 10px; text-transform: uppercase; letter-spacing: 1.5px; color: var(--text-muted); font-weight: 600; }
.nav-item {
    display: flex; align-items: center; gap: 10px; padding: 9px 16px; margin: 1px 8px;
    color: var(--text-secondary); text-decoration: none; font-size: 13px;
    transition: all 0.2s; cursor: pointer; border: none; background: none;
    width: calc(100% - 16px); text-align: left; font-weight: 500;
    border-radius: 10px; position: relative;
}
.nav-item:hover { background: rgba(255,255,255,0.05); color: var(--text-primary); }
.nav-item.ativo {
    background: linear-gradient(135deg, rgba(124,92,252,0.38), rgba(124,92,252,0.14));
    color: #fff; font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(124,92,252,0.5), 0 4px 18px rgba(124,92,252,0.28);
}
.nav-item.ativo::before {
    content: ''; position: absolute; left: 0; top: 12%; height: 76%; width: 4px;
    background: var(--accent); border-radius: 0 4px 4px 0;
    box-shadow: 0 0 12px var(--accent-glow);
}
.nav-item svg { width: 17px; height: 17px; opacity: 0.5; flex-shrink: 0; }
.nav-item.ativo svg { opacity: 0.9; }

.sidebar-footer {
    padding: 14px 16px; border-top: 1px solid rgba(255,255,255,0.06);
    background: rgba(0,0,0,0.12); margin: 0 8px 8px; border-radius: 12px;
}
.sidebar-footer .user-info { display: flex; align-items: center; gap: 10px; }
.sidebar-footer .avatar {
    width: 34px; height: 34px; border-radius: 10px;
    background: linear-gradient(135deg, var(--accent), var(--cyan));
    display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; color: #fff;
    box-shadow: 0 2px 8px var(--accent-glow);
}
.sidebar-footer .user-nome { font-size: 13px; font-weight: 600; color: var(--text-primary); }
.sidebar-footer .user-perfil { font-size: 11px; color: var(--text-muted); }

/* ===== TOPBAR ===== */
.main-content { flex: 1; margin-left: 260px; overflow-x: auto; overflow-y: scroll; min-width: 0; height: 100vh; }
.topbar {
    height: 56px;
    background: rgba(255,255,255,0.7); backdrop-filter: blur(30px); -webkit-backdrop-filter: blur(30px);
    border-bottom: 1px solid rgba(0,0,0,0.08);
    display: flex; align-items: center; justify-content: space-between; padding: 0 24px;
    position: sticky; top: 0; z-index: 50;
    box-shadow: 0 1px 8px rgba(0,0,0,0.05);
}
.topbar-tecnapro {
    position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
    font-weight: 800; font-size: 19px; letter-spacing: 5px; white-space: nowrap;
    background: linear-gradient(90deg, #0F5A2E 0%, #2E9E5B 38%, #D4A843 72%, #F5D778 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    pointer-events: none; user-select: none;
}
@media (max-width: 1100px) { .topbar-tecnapro { display: none; } }
.topbar h1 { font-size: 16px; font-weight: 600; color: #1E1B4B; }
.topbar-data { font-size: 12px; color: #6B7280; font-weight: 600; background: var(--glass, rgba(124,92,252,0.07)); padding: 5px 12px; border-radius: 20px; border: 1px solid var(--glass-border, rgba(124,92,252,0.12)); }

.conteudo { padding: 20px; }

/* ===== DASHBOARD CARDS ===== */
.cards-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-bottom: 24px; }
.card {
    background: rgba(255,255,255,0.8); backdrop-filter: blur(24px); -webkit-backdrop-filter: blur(24px);
    border-radius: var(--raio); padding: 20px; box-shadow: 0 4px 20px rgba(0,0,0,0.08), inset 0 1px 0 rgba(255,255,255,0.9);
    border: 1px solid rgba(255,255,255,0.5); transition: all 0.35s;
    position: relative; overflow: hidden;
}
.card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.8), transparent);
}
.card::after {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 50%;
    background: linear-gradient(to bottom, rgba(255,255,255,0.3), transparent);
    pointer-events: none;
}
.card:hover {
    transform: translateY(-2px); border-color: rgba(124,92,252,0.3);
    box-shadow: 0 8px 32px rgba(0,0,0,0.12), 0 0 20px var(--accent-glow);
}
.card-icone {
    width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
    margin-bottom: 12px; position: relative; z-index: 1;
}
.card-icone.azul { background: rgba(124,92,252,0.15); color: var(--accent-light); }
.card-icone.verde { background: var(--verde-claro); color: var(--verde); }
.card-icone.dourado { background: rgba(251,191,36,0.12); color: var(--gold); }
.card-icone.vermelho { background: var(--vermelho-claro); color: var(--vermelho); }
.card-icone svg { width: 20px; height: 20px; }
.card-valor { font-size: 28px; font-weight: 800; color: #1E1B4B; line-height: 1; position: relative; z-index: 1; }
.card-label { font-size: 12px; color: #6B7280; margin-top: 4px; position: relative; z-index: 1; }

/* ===== PAINEIS ===== */
.painel {
    background: rgba(255,255,255,0.8); backdrop-filter: blur(30px); -webkit-backdrop-filter: blur(30px);
    border-radius: var(--raio); box-shadow: 0 4px 24px rgba(0,0,0,0.1), inset 0 1px 0 rgba(255,255,255,0.9);
    border: 1px solid rgba(255,255,255,0.5); overflow: hidden;
    position: relative;
}
.painel::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 40%;
    background: linear-gradient(180deg, rgba(255,255,255,0.2), transparent);
    pointer-events: none;
}
.painel-header {
    padding: 16px 20px; border-bottom: 1px solid rgba(0,0,0,0.06);
    display: flex; align-items: center; justify-content: space-between;
    position: relative; z-index: 1;
}
.painel-header h3 { font-size: 15px; font-weight: 600; color: #1E1B4B; }
.painel-body { padding: 20px; position: relative; z-index: 1; }

/* ===== TABELAS ===== */
.tabela { width: 100%; border-collapse: separate; border-spacing: 0; }
.tabela th {
    background: rgba(124,92,252,0.08); padding: 12px 14px; font-size: 11px;
    text-transform: uppercase; letter-spacing: 0.8px; color: #6D28D9;
    text-align: left; font-weight: 700; white-space: nowrap;
    border-bottom: 2px solid rgba(124,92,252,0.2);
    position: sticky; top: 0; z-index: 2;
}
.tabela td { padding: 11px 14px; border-bottom: 1px solid rgba(0,0,0,0.06); font-size: 13px; color: #374151; white-space: nowrap; }
.tabela tr:nth-child(even) td { background: rgba(124,92,252,0.03); }
.tabela tr:hover td { background: rgba(124,92,252,0.08); }
.tabela-container { overflow-x: scroll; overflow-y: visible; max-width: 100%; }
.tabela-container::-webkit-scrollbar { height: 12px; }
.tabela-container::-webkit-scrollbar-track { background: rgba(0,0,0,0.15); border-radius: 6px; }
.tabela-container::-webkit-scrollbar-thumb { background: rgba(124,92,252,0.5); border-radius: 6px; }
.tabela-container::-webkit-scrollbar-thumb:hover { background: rgba(124,92,252,0.7); }

/* ===== BADGES ===== */
.badge { display: inline-block; padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; }
.badge-azul { background: rgba(124,92,252,0.15); color: var(--accent-light); }
.badge-verde { background: var(--verde-claro); color: var(--verde); }
.badge-vermelho { background: var(--vermelho-claro); color: var(--vermelho); }
.badge-laranja { background: var(--laranja-claro); color: var(--laranja); }

.estado-vazio { text-align: center; padding: 60px 20px; color: #9CA3AF; }
.estado-vazio svg { width: 48px; height: 48px; margin-bottom: 16px; opacity: 0.2; }
.estado-vazio h3 { font-size: 16px; color: #6B7280; margin-bottom: 8px; }

/* ===== TOASTS ===== */
.toast-container { position: fixed; top: 20px; right: 20px; z-index: 9999; display: flex; flex-direction: column; gap: 8px; }
.toast {
    padding: 14px 20px; border-radius: 12px; font-size: 14px; font-weight: 500;
    box-shadow: var(--sombra-md); transition: all 0.3s; min-width: 280px;
    backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255,255,255,0.08);
}
.toast-sucesso { background: rgba(52,211,153,0.2); color: var(--verde); }
.toast-erro { background: rgba(248,113,113,0.2); color: var(--vermelho); }
.toast-info { background: rgba(124,92,252,0.2); color: var(--accent-light); }
.toast-warning, .toast-aviso { background: rgba(245,158,11,0.18); color: #F59E0B; }

/* ===== SUBMENU ===== */
.nav-grupo { position: relative; }
.nav-pai { display: flex; align-items: center; }
.nav-pai .seta { margin-left: auto; transition: transform 0.25s; }
.nav-pai.aberto .seta { transform: rotate(180deg); }
.nav-filhos { display: none; padding-left: 12px; }
.nav-filhos.visivel { display: block; }
.nav-item.sub { font-size: 12px; padding: 7px 12px; }
.nav-item.sub:hover { opacity: 1; }
.sidebar-nav { overflow-y: auto; max-height: calc(100vh - 180px); }

.busca-input {
    display: flex; align-items: center; gap: 8px;
    background: rgba(255,255,255,0.04); border: 1px solid var(--glass-border);
    border-radius: 12px; padding: 0 14px; flex: 1; max-width: 400px;
    transition: all 0.3s;
}
.busca-input:focus-within { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-glow); }
.busca-input input { border: none; background: none; padding: 10px 0; font-size: 14px; font-family: inherit; flex: 1; outline: none; color: var(--text-primary); }
.busca-input input::placeholder { color: var(--text-muted); }

.barra-acoes { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; flex-wrap: wrap; }

/* ===== FILTRO EMPRESA (chips no sidebar) ===== */
#emp-filter-box { padding: 10px 12px 12px; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.emp-chip, .emp-chip-todas, .emp-chip-nenhuma {
    font-size: 10px; font-weight: 700; padding: 4px 10px;
    border-radius: 20px; border: 1.5px solid var(--glass-border);
    background: transparent; color: var(--text-secondary); opacity: 0.9;
    cursor: pointer; transition: all 0.12s; white-space: nowrap; font-family: inherit;
    text-transform: uppercase; letter-spacing: 0.4px;
}
.emp-chip:hover, .emp-chip-todas:hover, .emp-chip-nenhuma:hover { opacity: 1; }
.emp-chip.emp-ativo { background: var(--accent); color: #fff; border-color: var(--accent); opacity: 1; }
.emp-chip:hover { border-color: var(--accent); }
.emp-chip-todas.emp-todas-ativo { opacity: 1; color: #fff; background: var(--accent); border-color: var(--accent); }
.emp-chip-todas:hover { border-color: var(--accent); color: var(--accent); }
.emp-chip-nenhuma.emp-nenhuma-ativo { opacity: 1; color: #fff; background: #ef4444; border-color: #ef4444; }
.emp-chip-nenhuma:hover { border-color: #ef4444; color: #ef4444; }
#topbar-emp-ind {
    font-size: 11px; font-weight: 700; color: #fff;
    background: var(--accent); border: 1px solid var(--accent);
    border-radius: 12px; padding: 2px 9px; display: none; align-items: center;
}

/* ===== SPINNER ===== */
.spinner { border: 2px solid rgba(255,255,255,0.06); border-top: 2px solid var(--accent); border-radius: 50%; width: 28px; height: 28px; animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes fadeInUp { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }

/* === SIDEBAR RETRÁTIL === */
.sidebar { transition: transform 0.3s cubic-bezier(0.4,0,0.2,1), width 0.3s cubic-bezier(0.4,0,0.2,1); }
.main-content { transition: margin-left 0.3s cubic-bezier(0.4,0,0.2,1); }
body.sidebar-collapsed .sidebar { transform: translateX(-270px); }
body.sidebar-collapsed .main-content { margin-left: 0; }

/* === MODO FULLSCREEN (zoom) === */
body.fullscreen-mode .topbar { height: 32px; padding: 0 12px; }
body.fullscreen-mode .topbar h1 { font-size: 13px; }
body.fullscreen-mode .topbar-data { font-size: 11px; }
body.fullscreen-mode .conteudo { padding: 8px 12px; }

/* === BOTOES TOPBAR === */
.topbar-btn-toggle, .topbar-btn-fullscreen {
    background: var(--glass, rgba(124,92,252,0.08)); border: 1px solid var(--glass-border, rgba(124,92,252,0.18));
    cursor: pointer; padding: 7px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    color: var(--accent, #7C5CFC); transition: all 0.18s;
}
.topbar-btn-toggle:hover, .topbar-btn-fullscreen:hover {
    background: var(--accent, #7C5CFC); color: #fff; border-color: var(--accent, #7C5CFC);
    transform: translateY(-1px); box-shadow: 0 4px 14px var(--accent-glow, rgba(124,92,252,0.35));
}

@media (max-width: 768px) {
    .sidebar { transform: translateX(-100%); }
    .sidebar.aberto { transform: translateX(0); }
    .main-content { margin-left: 0; }
    .cards-grid { grid-template-columns: 1fr 1fr; }
}

/* ===== MODULO TABLE DEFAULTS ===== */
.mod-container { background: rgba(255,255,255,0.82); backdrop-filter: blur(40px); -webkit-backdrop-filter: blur(40px); border: 1px solid rgba(255,255,255,0.5); }
.mod-toolbar { border-bottom: 1px solid rgba(0,0,0,0.06); }
.mod-titulo { color: #1E1B4B; }
.mod-badge-count { color: #6D28D9; background: rgba(124,92,252,0.1); border: 1px solid rgba(124,92,252,0.2); }
.mod-search-icon { color: #9CA3AF; }
.mod-search { border: 1px solid rgba(0,0,0,0.12); background: rgba(255,255,255,0.5); color: #1E1B4B; }
.mod-btn-export { background: rgba(255,255,255,0.6); color: #4B5563; border: 1px solid rgba(0,0,0,0.1); }
.mod-btn-export-primary { background: linear-gradient(135deg,#7C5CFC,#6366F1); color: #fff; border: none; box-shadow: 0 2px 10px rgba(124,92,252,0.35); }
.mod-filtros-bar { border-bottom: 1px solid rgba(0,0,0,0.05); }
.mod-btn-filtro { background: rgba(124,92,252,0.1); color: #6D28D9; border: 1px solid rgba(124,92,252,0.2); }
.mod-select { border: 1px solid rgba(0,0,0,0.12); background: rgba(255,255,255,0.6); color: #1E1B4B; }
/* CORRECAO DE CONTRASTE: qualquer campo digitavel dentro das areas de fundo claro (modulos/filtros) tem texto escuro legivel */
.mod-container input, .mod-container select, .mod-container textarea,
.mod-filtros-bar input, .mod-filtros-bar select, .mod-toolbar input {
    color: #1E1B4B !important; background: #fff; border: 1px solid rgba(0,0,0,0.15);
}
.mod-container input::placeholder, .mod-filtros-bar input::placeholder { color: #9CA3AF !important; }
.mod-th { color: #6D28D9; background: rgba(245,243,255,0.95); border-bottom: 2px solid rgba(124,92,252,0.15); border-right: 1px solid var(--linha-grade-forte); }
.mod-td { color: #555; border-bottom: 1px solid var(--linha-grade); border-right: 1px solid var(--linha-grade); text-transform: uppercase; }
.mod-td-num { color: #9CA3AF; text-transform: none; }
.mod-td-empty { color: #9CA3AF; }
.mod-row-odd { background: rgba(124,92,252,0.03); }
.mod-row:hover { background: rgba(124,92,252,0.08); }
#mod-tabela-outer { scrollbar-width: auto; scrollbar-color: rgba(124,92,252,0.5) rgba(0,0,0,0.15); }
#mod-tabela-outer::-webkit-scrollbar { height: 12px; display: block; }
#mod-tabela-outer::-webkit-scrollbar-track { background: rgba(0,0,0,0.15); border-radius: 6px; }
#mod-tabela-outer::-webkit-scrollbar-thumb { background: rgba(124,92,252,0.5); border-radius: 6px; }