:root {
    --bg: #f4f5f7;
    --sidebar-bg: #1a1a19;
    --sidebar-fg: #e5e4dc;
    --accent: #2a78d6;
    --text: #1a1a19;
    --border: #e0e0e0;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
    background: var(--bg);
    color: var(--text);
}

.layout { display: flex; min-height: 100vh; }

.sidebar {
    width: 220px;
    flex-shrink: 0;
    background: var(--sidebar-bg);
    color: var(--sidebar-fg);
    padding: 1.5rem 1rem;
    display: flex;
    flex-direction: column;
}

.logo-box {
    background: #fff;
    border-radius: 8px;
    padding: 0.75rem;
    margin-bottom: 1.5rem;
    display: flex;
    justify-content: center;
}
.logo-img { max-width: 100%; height: auto; display: block; }

.sidebar nav { display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }

.sidebar nav a,
.sidebar .logout {
    color: var(--sidebar-fg);
    text-decoration: none;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
}

.sidebar nav a:hover,
.sidebar .logout:hover { background: rgba(255,255,255,0.08); }

.content { flex: 1; padding: 2rem; max-width: 1100px; min-width: 0; }

/* Tablets: sidebar vira barra superior horizontal */
@media (max-width: 900px) {
    .layout { flex-direction: column; }

    .sidebar {
        width: 100%;
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.75rem 1rem;
        padding: 0.75rem 1rem;
    }

    .logo-box { margin-bottom: 0; padding: 0.4rem; }
    .logo-img { max-height: 40px; }

    .sidebar nav {
        flex: 1 1 auto;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 0.25rem;
    }

    .sidebar nav a,
    .sidebar .logout { padding: 0.4rem 0.6rem; font-size: 0.9rem; }

    .sidebar .logout { margin-left: auto; }

    .content { padding: 1.25rem; max-width: 100%; }
}

/* Celulares: aperta ainda mais o espaçamento */
@media (max-width: 480px) {
    .content { padding: 1rem; }
    .sidebar { padding: 0.6rem 0.75rem; }
    .kpi-card { min-width: 130px; padding: 0.85rem 1rem; }
    .kpi-value { font-size: 1.3rem; }
}

.kpi-row {
    display: flex;
    gap: 1rem;
    margin: 1rem 0 2rem;
    flex-wrap: wrap;
}

.kpi-card {
    background: #fff;
    border-radius: 10px;
    padding: 1rem 1.5rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    min-width: 160px;
}

.kpi-clicavel { cursor: pointer; }
.kpi-clicavel:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.12); }

.kpi-label { font-size: 0.8rem; color: var(--sidebar-bg); opacity: 0.6; }
.kpi-value { font-size: 1.6rem; font-weight: 600; }

.tabela-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

.tabela { border-collapse: collapse; width: 100%; margin-top: 1rem; }
.tabela th, .tabela td {
    border: 1px solid var(--border);
    padding: 0.5rem 0.75rem;
    text-align: left;
}
.tabela th { background: #fff; }

.painel-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
    align-items: start;
}

@media (max-width: 900px) {
    .painel-cols { grid-template-columns: 1fr; }
}

.linha-dia { cursor: pointer; }
.linha-dia:hover { background: #f0f3f8; }

.valor-titulo { color: var(--accent); text-decoration: underline; }

.linha-detalhe td { background: #fafbfc; padding: 0.75rem; }

.tabela-aninhada { margin-top: 0; font-size: 0.9rem; }

.dica { font-size: 0.8rem; color: var(--sidebar-bg); opacity: 0.6; margin: 0.25rem 0 0; }

.btn {
    background: var(--accent);
    color: #fff;
    border: none;
    padding: 0.6rem 1.2rem;
    border-radius: 6px;
    cursor: pointer;
    font-size: 0.9rem;
    margin-top: 0.5rem;
}
.btn:hover { opacity: 0.9; }

.login-body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    background: var(--bg);
    padding: 1rem;
}

.login-box {
    background: #fff;
    padding: 2rem;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.08);
    width: min(300px, 100%);
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.logo-img-login { max-width: 200px; height: auto; align-self: center; }

.login-box label { display: flex; flex-direction: column; gap: 0.25rem; font-size: 0.9rem; }
.login-box input {
    padding: 0.5rem;
    border: 1px solid var(--border);
    border-radius: 6px;
}
.login-box button {
    background: var(--accent);
    color: #fff;
    border: none;
    padding: 0.6rem;
    border-radius: 6px;
    cursor: pointer;
}
.login-box .erro { color: #c0392b; font-size: 0.85rem; margin: 0; }
