:root {
    --cor-primaria: #2E3A8C;
    --cor-primaria-escura: #1E2761;
    --cor-secundaria: #FF6A3D;
    --cor-fundo: #F4F5FA;
    --cor-texto: #232538;
    --cor-borda: #E4E6F1;
}

body {
    background: var(--cor-fundo);
    color: var(--cor-texto);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ---------- PAINEL ---------- */

.sidebar {
    background: var(--cor-primaria-escura);
    min-height: 100vh;
    color: #fff;
    width: 240px;
    position: fixed;
    top: 0; left: 0; bottom: 0;
    overflow-y: auto;
    z-index: 100;
}

.sidebar .logo {
    padding: 20px 18px;
    font-weight: 700;
    font-size: 1.15rem;
    border-bottom: 1px solid rgba(255,255,255,.08);
    display: flex;
    align-items: center;
    gap: 8px;
}

.sidebar a.nav-link {
    color: rgba(255,255,255,.78);
    padding: 10px 18px;
    font-size: .92rem;
    display: flex;
    align-items: center;
    gap: 10px;
    border-left: 3px solid transparent;
}

.sidebar a.nav-link:hover,
.sidebar a.nav-link.active {
    background: rgba(255,255,255,.07);
    color: #fff;
    border-left-color: var(--cor-secundaria);
}

.sidebar .nav-secao {
    text-transform: uppercase;
    font-size: .68rem;
    letter-spacing: .06em;
    color: rgba(255,255,255,.4);
    padding: 16px 18px 6px;
}

.conteudo-principal {
    margin-left: 240px;
    padding: 22px 26px 60px;
    max-width: 1600px;
    margin-right: auto;
}

@media (max-width: 991px) {
    .sidebar { width: 100%; position: static; min-height: auto; }
    .conteudo-principal { margin-left: 0; }
}

.topbar {
    background: #fff;
    border-bottom: 1px solid var(--cor-borda);
    padding: 14px 26px;
    margin: -22px -26px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.card-kpi {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: 14px;
    padding: 18px 20px;
    height: 100%;
}

.card-kpi .rotulo {
    font-size: .8rem;
    color: #767a94;
    margin-bottom: 6px;
}

.card-kpi .valor {
    font-size: 1.55rem;
    font-weight: 700;
}

.card-box {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: 14px;
    padding: 20px;
}

.btn-primario {
    background: var(--cor-primaria);
    border-color: var(--cor-primaria);
    color: #fff;
}
.btn-primario:hover { background: var(--cor-primaria-escura); color: #fff; }

.btn-secundario {
    background: var(--cor-secundaria);
    border-color: var(--cor-secundaria);
    color: #fff;
}
.btn-secundario:hover { filter: brightness(.92); color: #fff; }

.badge-status-publicado { background: #16a34a1a; color: #16a34a; }
.badge-status-rascunho { background: #71717a1a; color: #71717a; }
.badge-status-encerrado { background: #ef44441a; color: #ef4444; }
.badge-status-cancelado { background: #ef44441a; color: #ef4444; }
.badge-status-pago { background: #16a34a1a; color: #16a34a; }
.badge-status-aguardando_pagamento { background: #f59e0b1a; color: #f59e0b; }
.badge-status-valido { background: #16a34a1a; color: #16a34a; }
.badge-status-utilizado { background: #71717a1a; color: #71717a; }

.tabela-painel th {
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: #767a94;
    border-bottom-width: 1px !important;
}

/* ---------- PORTAL PÚBLICO ---------- */

.portal-header {
    background: var(--cor-primaria);
    color: #fff;
    padding: 14px 0;
}
.portal-header a { color: #fff; text-decoration: none; }

.evento-banner {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    border-radius: 14px;
}

.card-evento-lista {
    border: 1px solid var(--cor-borda);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    height: 100%;
    transition: transform .15s ease;
}
.card-evento-lista:hover { transform: translateY(-3px); }
.card-evento-lista img { width: 100%; height: 170px; object-fit: cover; }
.card-evento-lista .corpo { padding: 14px 16px; }
.card-evento-lista .data-badge {
    display: inline-block;
    background: var(--cor-secundaria);
    color: #fff;
    font-size: .72rem;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
    margin-bottom: 8px;
}

.box-comprar {
    background: #fff;
    border: 1px solid var(--cor-borda);
    border-radius: 14px;
    padding: 20px;
    position: sticky;
    top: 20px;
}

.linha-lote {
    border: 1px solid var(--cor-borda);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ingresso-card {
    background: #fff;
    border-radius: 16px;
    border: 1px solid var(--cor-borda);
    overflow: hidden;
    max-width: 420px;
    margin: 0 auto;
}
.ingresso-card .topo {
    background: var(--cor-primaria);
    color: #fff;
    padding: 16px 20px;
}
.ingresso-card .corpo { padding: 20px; text-align: center; }

.checkin-resultado {
    border-radius: 16px;
    padding: 30px;
    text-align: center;
    color: #fff;
}
.checkin-valido { background: #16a34a; }
.checkin-usado { background: #f59e0b; }
.checkin-invalido { background: #ef4444; }
