/* ============================================
   AGOS Assessoria Contábil — BUSCA XML
   Design system: Gestta (laranja) + toque premium
   Tipografia: Inter (UI/marca) + JetBrains Mono (dados)
   ============================================ */

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

:root {
    /* Cores base — AZUL CORPORATIVO (frio, limpo) */
    --bg:            #F2F5F9;
    --bg-card:       #FFFFFF;
    --bg-soft:       #EEF2F7;
    --bg-bege:       #EEF2F7;
    --texto:         #1B2430;
    --texto-suave:   #2A3340;
    --texto-muted:   #5A6675;
    --texto-fraco:   #8A94A2;

    /* Accent — azul calmo (nome 'dourado' mantido por compatibilidade) */
    --dourado:       #2F6FB0;
    --dourado-esc:   #235488;
    --dourado-clar:  #5B9BD5;
    --dourado-soft:  #E4EEF7;

    /* Estados */
    --verde:         #2D6A3F;
    --verde-soft:    #E4EFE3;
    --verde-clar:    #4A8956;
    --vermelho:      #9A2E1F;
    --vermelho-soft: #F5E0DC;
    --ambar:         #B07A1A;
    --ambar-soft:    #F7EAD0;
    --azul-info:     #2A5B7A;
    --azul-soft:     #DDE8EF;

    /* Linhas */
    --hairline:      #DCE3EC;
    --hairline-forte:#B7C2D0;
    --hairline-suave:#E8EDF3;

    /* Sombras (muito sutis) */
    --sombra-card:   0 1px 0 rgba(11,11,13,0.02), 0 1px 2px rgba(11,11,13,0.03);
    --sombra-pop:    0 2px 6px rgba(11,11,13,0.06), 0 1px 2px rgba(11,11,13,0.04);

    /* Spacing scale */
    --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px;
    --sp-5: 24px; --sp-6: 32px; --sp-7: 48px; --sp-8: 64px;

    /* Tipografia */
    --fonte-marca: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --fonte-ui: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --fonte-mono: 'JetBrains Mono', ui-monospace, "SF Mono", Menlo, monospace;

    /* Layout */
    --sidebar-w: 248px;
    --main-max:  1320px;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    font-family: var(--fonte-ui);
    color: var(--texto);
    background: var(--bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    font-size: 14px;
    line-height: 1.5;
    font-feature-settings: 'cv11', 'ss01';
}

a {
    color: var(--dourado-esc);
    text-decoration: none;
    transition: color 0.15s ease;
}
a:hover { color: var(--dourado); }

::selection { background: var(--dourado-soft); color: var(--texto); }

/* ==============================================================
   SHELL — sidebar + main
   ============================================================== */

.shell {
    display: grid;
    grid-template-columns: var(--sidebar-w) 1fr;
    min-height: 100vh;
}

/* ============== SIDEBAR ============== */
.sidebar {
    position: sticky;
    top: 0;
    height: 100vh;
    background: var(--bg-card);
    border-right: 1px solid var(--hairline);
    display: flex;
    flex-direction: column;
    padding: var(--sp-5) 0 var(--sp-4);
    z-index: 10;
}

.sidebar-marca {
    padding: 0 var(--sp-5) var(--sp-5);
    border-bottom: 1px solid var(--hairline-suave);
    margin-bottom: var(--sp-4);
}
.sidebar-marca .logo {
    height: 38px;
    width: auto;
    display: block;
    margin-bottom: var(--sp-3);
}
.sidebar-marca .nome {
    font-family: var(--fonte-marca);
    font-size: 18px;
    font-weight: 500;
    color: var(--texto);
    line-height: 1.1;
    letter-spacing: -0.005em;
}
.sidebar-marca .nome em {
    font-style: italic;
    font-weight: 400;
    color: var(--dourado-esc);
}
.sidebar-marca .subtitulo {
    font-size: 11px;
    color: var(--texto-muted);
    margin-top: 4px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    font-weight: 500;
}

.sidebar-nav {
    flex: 1;
    padding: 0 var(--sp-3);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.sidebar-nav .secao {
    padding: var(--sp-4) var(--sp-3) var(--sp-2);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--texto-fraco);
    font-weight: 600;
}
.sidebar-nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px var(--sp-3);
    border-radius: 5px;
    color: var(--texto-suave);
    font-size: 13.5px;
    font-weight: 500;
    position: relative;
    transition: background 0.12s ease, color 0.12s ease;
}
.sidebar-nav a:hover {
    background: var(--bg-bege);
    color: var(--texto);
}
.sidebar-nav a.ativo {
    background: var(--bg-soft);
    color: var(--texto);
    font-weight: 600;
}
.sidebar-nav a.ativo::before {
    content: "";
    position: absolute;
    left: -12px;
    top: 8px;
    bottom: 8px;
    width: 3px;
    background: var(--dourado);
    border-radius: 0 2px 2px 0;
}
.sidebar-nav a .icone {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--texto-muted);
    font-size: 14px;
}
.sidebar-nav a.ativo .icone { color: var(--dourado-esc); }

.sidebar-rodape {
    padding: var(--sp-3) var(--sp-5);
    border-top: 1px solid var(--hairline-suave);
    font-size: 11px;
    color: var(--texto-fraco);
    line-height: 1.4;
}
.sidebar-rodape .versao {
    color: var(--texto-muted);
    font-weight: 500;
    font-family: var(--fonte-mono);
    font-size: 10.5px;
}

/* ============== MAIN ============== */
.main {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.topbar {
    position: sticky;
    top: 0;
    z-index: 5;
    background: rgba(250, 250, 248, 0.85);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid var(--hairline);
    padding: var(--sp-4) var(--sp-6);
    display: flex;
    align-items: center;
    gap: var(--sp-4);
}
.topbar .titulo {
    font-family: var(--fonte-marca);
    font-size: 22px;
    font-weight: 500;
    color: var(--texto);
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.topbar .breadcrumb {
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--texto-muted);
    font-weight: 600;
    margin-bottom: 2px;
}
.topbar .acoes-topbar {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: var(--sp-3);
}
/* Resumo curto do robô — fica AO LADO do título no topo (ocupa pouca altura).
   Usado em todas as abas de robô. */
.topbar .robo-resumo {
    font-size: 12px;
    color: var(--texto-muted, #6b7280);
    line-height: 1.3;
    max-width: 360px;
    margin-left: 16px;
    padding-left: 16px;
    border-left: 1px solid var(--hairline, #e3e3e0);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.topbar .robo-resumo b { color: var(--texto, #2c3a4d); font-weight: 600; }
.topbar .robo-resumo .alerta { color: var(--vermelho, #b3261e); font-weight: 600; }
@media (max-width: 820px) { .topbar .robo-resumo { display: none; } }

.conteudo {
    padding: var(--sp-6) var(--sp-6) var(--sp-7);
    max-width: var(--main-max);
    width: 100%;
    margin: 0 auto;
}

/* ============== STATUS PILL ============== */
.status-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 12px;
    border-radius: 99px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.01em;
    border: 1px solid var(--hairline);
    background: var(--bg-card);
    color: var(--texto-muted);
}
.status-pill::before {
    content: "";
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--verde);
    box-shadow: 0 0 0 3px var(--verde-soft);
}
.status-pill.rodando {
    border-color: var(--dourado-clar);
    background: #EAF1FA;
    color: var(--dourado-esc);
}
.status-pill.rodando::before {
    background: var(--dourado);
    box-shadow: 0 0 0 3px var(--dourado-soft);
    animation: pulso 1.4s ease-in-out infinite;
}
@keyframes pulso {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* ==============================================================
   KPI STRIP — 4 cards no topo
   ============================================================== */
.kpi-strip {
    display: grid;
    grid-template-columns: 1fr 2.4fr;
    gap: var(--sp-3);
    margin-bottom: var(--sp-6);
}
.kpi-ultimo-proc .ultimo-proc-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 6px;
}
.kpi-ultimo-proc .ultimo-proc-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 6px 12px;
    border-radius: 6px;
    min-width: 70px;
    border: 1px solid transparent;
    cursor: help;
}
.kpi-ultimo-proc .ultimo-proc-num {
    font-size: 22px;
    font-weight: 700;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.kpi-ultimo-proc .ultimo-proc-rotulo {
    font-size: 10.5px;
    color: var(--texto-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 600;
    margin-top: 3px;
}
.kpi-ultimo-proc .ultimo-proc-sucesso {
    background: var(--verde-soft);
    border-color: #C4DCC1;
}
.kpi-ultimo-proc .ultimo-proc-sucesso .ultimo-proc-num { color: var(--verde); }
.kpi-ultimo-proc .ultimo-proc-sem-docs {
    background: var(--ambar-soft);
    border-color: #E5C786;
}
.kpi-ultimo-proc .ultimo-proc-sem-docs .ultimo-proc-num { color: #6E4B0F; }
.kpi-ultimo-proc .ultimo-proc-aviso {
    background: #FFF3D6;
    border-color: #E5C786;
}
.kpi-ultimo-proc .ultimo-proc-aviso .ultimo-proc-num { color: #8A5A0F; }
.kpi-ultimo-proc .ultimo-proc-sem-proc {
    background: #ECE9DF;
    border-color: #CFC9B6;
}
.kpi-ultimo-proc .ultimo-proc-sem-proc .ultimo-proc-num { color: #5C5444; }
.kpi-ultimo-proc .ultimo-proc-baixada {
    background: #EFE6F4;
    border-color: #D5C2E4;
}
.kpi-ultimo-proc .ultimo-proc-baixada .ultimo-proc-num { color: #6A4A82; }
.kpi-ultimo-proc .ultimo-proc-sem-ie {
    background: var(--azul-soft);
    border-color: #B7CBDA;
}
.kpi-ultimo-proc .ultimo-proc-sem-ie .ultimo-proc-num { color: var(--azul-info); }
.kpi-ultimo-proc .ultimo-proc-erro {
    background: var(--vermelho-soft);
    border-color: #E8B9B0;
}
.kpi-ultimo-proc .ultimo-proc-erro .ultimo-proc-num { color: var(--vermelho); }
.kpi-ultimo-proc .ultimo-proc-detalhe {
    margin-top: 10px;
    font-size: 12px;
    color: var(--texto-muted);
}
.kpi-ultimo-proc .ultimo-proc-detalhe strong {
    color: var(--vermelho);
    font-weight: 600;
}
.kpi-ultimo-proc .ultimo-proc-tempo {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--hairline);
    font-size: 12px;
    color: var(--texto-muted);
}
.kpi-ultimo-proc .ultimo-proc-tempo b {
    color: var(--texto);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}
.kpi-ultimo-proc .ultimo-proc-reprocessar {
    margin-top: 10px;
}
.kpi-ultimo-proc .btn-reprocessar-erros {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: #fff;
    background: var(--vermelho, #c0392b);
    border: 1px solid var(--vermelho, #c0392b);
    border-radius: 7px;
    cursor: pointer;
    transition: filter .15s ease;
}
.kpi-ultimo-proc .btn-reprocessar-erros:hover:not(:disabled) {
    filter: brightness(1.08);
}
.kpi-ultimo-proc .btn-reprocessar-erros:disabled {
    opacity: .6;
    cursor: default;
}
.kpi-ultimo-proc .ultimo-proc-motivos {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--hairline);
    font-size: 12px;
    color: var(--texto-muted);
}
.kpi-ultimo-proc .ultimo-proc-motivos > summary {
    cursor: pointer;
    color: var(--vermelho);
    font-weight: 600;
    list-style: none;
    user-select: none;
}
.kpi-ultimo-proc .ultimo-proc-motivos > summary::-webkit-details-marker { display: none; }
.kpi-ultimo-proc .ultimo-proc-motivos > summary::before { content: "\25B8  "; }
.kpi-ultimo-proc .ultimo-proc-motivos[open] > summary::before { content: "\25BE  "; }
.kpi-ultimo-proc .motivos-rotulo {
    margin-top: 8px;
    font-weight: 600;
    color: var(--texto-suave);
}
.kpi-ultimo-proc .motivos-causas,
.kpi-ultimo-proc .motivos-empresas {
    margin: 4px 0 0;
    padding-left: 0;
    list-style: none;
}
.kpi-ultimo-proc .motivos-empresas {
    max-height: 220px;
    overflow-y: auto;
}
.kpi-ultimo-proc .motivos-causas li,
.kpi-ultimo-proc .motivos-empresas li {
    padding: 3px 0;
    border-top: 1px solid var(--hairline-suave);
    line-height: 1.4;
    word-break: break-word;
}
.kpi-ultimo-proc .motivo-qtd {
    display: inline-block;
    min-width: 28px;
    font-weight: 700;
    color: var(--vermelho);
    font-variant-numeric: tabular-nums;
}
.kpi-ultimo-proc .motivos-empresas b { color: var(--texto); font-weight: 600; }
.kpi-ultimo-proc .motivo-tipo,
.kpi-ultimo-proc .motivo-quando {
    color: var(--texto-fraco);
    font-size: 11px;
}
.kpi-ultimo-proc .motivo-quando { white-space: nowrap; }
.kpi {
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    border-radius: 6px;
    padding: 18px 20px 16px;
    transition: border-color 0.15s ease;
    position: relative;
    overflow: hidden;
}
.kpi:hover { border-color: var(--hairline-forte); }
.kpi .kpi-label {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--texto-muted);
    font-weight: 600;
    margin-bottom: 6px;
}
.kpi .kpi-numero {
    font-family: var(--fonte-marca);
    font-size: 32px;
    font-weight: 500;
    color: var(--texto);
    line-height: 1;
    letter-spacing: -0.01em;
    font-feature-settings: 'lnum';
    font-variant-numeric: lining-nums tabular-nums;
}
.kpi .kpi-extra {
    font-size: 11.5px;
    color: var(--texto-muted);
    margin-top: 6px;
    line-height: 1.3;
}
.kpi.accent::after {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: var(--dourado);
}
.kpi .kpi-numero.dourado { color: var(--dourado-esc); }
.kpi .kpi-numero.verde { color: var(--verde); }

/* ==============================================================
   CARDS / SEÇÕES
   ============================================================== */
.card {
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    border-radius: 6px;
    padding: var(--sp-5);
    margin-bottom: var(--sp-5);
    box-shadow: var(--sombra-card);
}
.card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--sp-4);
    margin-bottom: var(--sp-4);
    flex-wrap: wrap;
}
.card-header .titulo-grupo { min-width: 0; flex: 1; }
.card-header h2 {
    margin: 0;
    font-family: var(--fonte-marca);
    font-size: 20px;
    font-weight: 500;
    letter-spacing: -0.005em;
    color: var(--texto);
    line-height: 1.2;
}
.card-header .legenda {
    font-size: 12px;
    color: var(--texto-muted);
    margin-top: 4px;
}
.card-header .legenda code {
    font-family: var(--fonte-mono);
    font-size: 11px;
    background: var(--bg-bege);
    padding: 1px 6px;
    border-radius: 3px;
    color: var(--texto-suave);
}

.card-header .acoes {
    display: flex;
    align-items: center;
    gap: var(--sp-2);
    flex-shrink: 0;
}

/* ==============================================================
   BOTÕES
   ============================================================== */
button, .btn {
    background: var(--texto);
    color: #fff;
    border: 1px solid var(--texto);
    padding: 8px 16px;
    border-radius: 4px;
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -0.005em;
    line-height: 1.2;
    transition: all 0.12s ease;
}
button:hover { background: var(--texto-suave); border-color: var(--texto-suave); }
button:active { transform: translateY(0.5px); }
button:disabled {
    background: var(--bg-soft);
    color: var(--texto-fraco);
    border-color: var(--hairline);
    cursor: not-allowed;
    transform: none;
}

button.primario {
    background: var(--dourado);
    color: #fff;
    border-color: var(--dourado);
    font-weight: 600;
    padding: 9px 20px;
    box-shadow: 0 1px 0 rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.15);
}
button.primario:hover {
    background: var(--dourado-esc);
    border-color: var(--dourado-esc);
}
button.primario:disabled {
    background: var(--bg-soft);
    color: var(--texto-fraco);
    border-color: var(--hairline);
    box-shadow: none;
}

button.ghost {
    background: transparent;
    color: var(--texto-suave);
    border: 1px solid var(--hairline-forte);
    font-weight: 500;
    padding: 7px 14px;
    font-size: 12.5px;
}
button.ghost:hover {
    background: var(--bg-bege);
    color: var(--texto);
    border-color: var(--texto-muted);
}
button.ghost.danger {
    color: var(--vermelho);
    border-color: #E8CFC9;
}
button.ghost.danger:hover {
    background: var(--vermelho-soft);
    border-color: var(--vermelho);
    color: var(--vermelho);
}

button.ghost-mini {
    background: transparent;
    color: var(--texto-muted);
    border: 1px solid var(--hairline);
    padding: 5px 10px;
    font-size: 11.5px;
    border-radius: 4px;
    font-weight: 500;
}
button.ghost-mini:hover {
    background: var(--dourado-soft);
    color: var(--dourado-esc);
    border-color: var(--dourado-clar);
}

/* ==============================================================
   INPUTS / FORMS
   ============================================================== */
input[type=text],
input[type=date],
input[type=email],
input[type=password],
input[type=file],
select {
    padding: 8px 12px;
    border: 1px solid var(--hairline-forte);
    border-radius: 4px;
    font-size: 13px;
    background: var(--bg-card);
    font-family: inherit;
    color: var(--texto);
    transition: border-color 0.15s, box-shadow 0.15s;
    line-height: 1.4;
}
input[type=text]:focus,
input[type=date]:focus,
input[type=email]:focus,
input[type=password]:focus {
    outline: none;
    border-color: var(--dourado);
    box-shadow: 0 0 0 3px rgba(160, 126, 42, 0.12);
}
input::placeholder { color: var(--texto-fraco); }

form.inline {
    display: flex;
    gap: var(--sp-2);
    align-items: center;
    flex-wrap: wrap;
}
form.inline input[type=text] { flex: 1; min-width: 180px; }

/* ==============================================================
   CONTROL BAR — Período de busca (card 1)
   ============================================================== */
.control-bar {
    display: flex;
    align-items: center;
    gap: var(--sp-4);
    flex-wrap: wrap;
}
.control-bar .grupo-rapidos {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.control-bar .grupo-rapidos button {
    background: var(--bg-card);
    color: var(--texto-suave);
    border: 1px solid var(--hairline);
    padding: 7px 13px;
    font-size: 12.5px;
    font-weight: 500;
    border-radius: 4px;
}
.control-bar .grupo-rapidos button:hover {
    background: var(--bg-bege);
    border-color: var(--hairline-forte);
    color: var(--texto);
}
.control-bar .grupo-rapidos button.ativo {
    background: var(--dourado);
    color: #fff;
    border-color: var(--dourado);
    font-weight: 600;
    box-shadow: 0 1px 0 rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.15);
}
.control-bar .grupo-rapidos button.botao-incremental {
    background: var(--texto);
    color: var(--dourado-clar);
    border-color: var(--texto);
    font-weight: 600;
}
.control-bar .grupo-rapidos button.botao-incremental:hover {
    background: var(--texto-suave);
}
.control-bar .grupo-rapidos button.botao-incremental.ativo {
    background: var(--dourado);
    color: #fff;
    border-color: var(--dourado);
}

.control-bar .grupo-datas {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-left: var(--sp-3);
    border-left: 1px solid var(--hairline);
}
.control-bar .grupo-datas input[type=date] {
    padding: 7px 10px;
    font-size: 12.5px;
    border-radius: 4px;
    font-family: var(--fonte-mono);
    color: var(--texto);
    min-width: 130px;
}
.control-bar .seta-data {
    color: var(--texto-fraco);
    font-size: 13px;
    font-weight: 300;
}

.control-bar .btn-baixar {
    margin-left: auto;
    padding: 10px 22px;
    font-size: 13px;
}
/* Botão secundário "🎯 Só reprocessar erros" — fica ao lado do Baixar. */
.control-bar .btn-so-erros {
    margin-left: 8px;
    padding: 9px 16px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    border-radius: var(--raio-btn, 7px);
    border: 1px solid var(--borda, #d8dbe0);
    background: #fff;
    color: var(--texto, #333);
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.control-bar .btn-so-erros:hover:not(:disabled) {
    background: var(--dourado-soft, #eef3f9);
    border-color: var(--dourado-clar, #5B9BD5);
    color: var(--dourado-esc, #235488);
}
.control-bar .btn-so-erros:disabled { opacity: .45; cursor: not-allowed; }

.aviso-incremental {
    margin-top: var(--sp-3);
    padding: 10px 14px;
    background: #FFFBEE;
    border: 1px solid #EAD89A;
    border-left: 3px solid var(--ambar);
    color: #6B5018;
    border-radius: 4px;
    font-size: 12px;
    line-height: 1.5;
}
.aviso-incremental code {
    background: rgba(176, 122, 26, 0.12);
    padding: 1px 6px;
    border-radius: 3px;
    font-family: var(--fonte-mono);
    font-size: 11px;
}

/* ==============================================================
   ALERTA RETOMAR
   ============================================================== */
.alerta-retomar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-3);
    padding: 12px 16px;
    background: #EAF1FA;
    border: 1px solid var(--dourado-clar);
    border-left: 3px solid var(--dourado);
    border-radius: 4px;
    color: var(--dourado-esc);
    font-size: 12.5px;
}
.alerta-retomar strong { color: var(--texto); font-weight: 600; }
.alerta-retomar .acoes-retomar {
    display: flex;
    gap: 6px;
    align-items: center;
    flex-shrink: 0;
}
.alerta-retomar .btn-retomar {
    padding: 6px 14px;
    font-size: 12px;
    font-weight: 600;
    background: var(--dourado);
    color: #fff;
    border-color: var(--dourado);
    border-radius: 4px;
}
.alerta-retomar .btn-retomar:hover { background: var(--dourado-esc); border-color: var(--dourado-esc); }
.alerta-retomar .btn-ignorar {
    padding: 6px 12px;
    font-size: 12px;
    background: transparent;
    border: 1px solid var(--dourado-clar);
    color: var(--dourado-esc);
}
.alerta-retomar .btn-ignorar:hover {
    background: var(--dourado-soft);
    color: var(--texto);
    border-color: var(--dourado);
}

/* ==============================================================
   BANNER AGÊNCIANET (notificações não lidas — bloqueia SEFAZ)
   ============================================================== */
.banner-agencianet {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    margin-bottom: var(--sp-4);
    background: var(--vermelho-soft, #FEEDEB);
    border: 1px solid #E8B9B0;
    border-left: 4px solid var(--vermelho, #B6322A);
    border-radius: 6px;
    color: #4C1A15;
    font-size: 13px;
    line-height: 1.45;
}
.banner-agencianet-icone {
    font-size: 22px;
    color: var(--vermelho, #B6322A);
    flex-shrink: 0;
    line-height: 1;
}
.banner-agencianet-corpo {
    flex: 1;
    min-width: 0;
}
.banner-agencianet-corpo strong {
    color: var(--vermelho, #B6322A);
    font-weight: 700;
}
.banner-agencianet-acoes {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-shrink: 0;
}
.banner-agencianet-acoes .botao-banner-link,
.banner-agencianet-acoes .botao-banner-acao {
    padding: 7px 14px;
    font-size: 12.5px;
    font-weight: 600;
    border-radius: 4px;
    text-decoration: none;
    border: 1px solid;
    cursor: pointer;
    font-family: inherit;
    line-height: 1;
    transition: all 0.12s ease;
}
.banner-agencianet-acoes .botao-banner-link {
    background: #fff;
    color: var(--vermelho, #B6322A);
    border-color: #E8B9B0;
}
.banner-agencianet-acoes .botao-banner-link:hover {
    background: var(--vermelho-soft, #FEEDEB);
    border-color: var(--vermelho, #B6322A);
}
.banner-agencianet-acoes .botao-banner-acao {
    background: var(--vermelho, #B6322A);
    color: #fff;
    border-color: var(--vermelho, #B6322A);
}
.banner-agencianet-acoes .botao-banner-acao:hover {
    background: #94251F;
    border-color: #94251F;
}

/* ==============================================================
   PAINEL DE MONITORAMENTO
   ============================================================== */
.monitor {
    border-color: var(--dourado-clar);
    background: linear-gradient(180deg, #EAF1FA 0%, var(--bg-card) 100%);
}
.monitor .card-header h2 {
    display: flex;
    align-items: center;
    gap: 10px;
}
.monitor .card-header h2::before {
    content: "";
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--dourado);
    box-shadow: 0 0 0 4px var(--dourado-soft);
    animation: pulso 1.4s ease-in-out infinite;
}
.monitor-fase {
    display: inline-block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    background: var(--dourado-soft);
    color: var(--dourado-esc);
    padding: 3px 10px;
    border-radius: 99px;
    font-weight: 600;
    margin-left: 8px;
    vertical-align: middle;
}

.monitor-grid {
    display: grid;
    grid-template-columns: 1.6fr 1fr;
    gap: var(--sp-6);
    align-items: center;
}
.barra-progresso {
    width: 100%;
    height: 10px;
    background: var(--hairline);
    border-radius: 99px;
    overflow: hidden;
    position: relative;
}
.barra-progresso-preenchida {
    height: 100%;
    background: linear-gradient(90deg, var(--dourado-esc), var(--dourado-clar));
    border-radius: 99px;
    transition: width 0.5s ease;
}
.monitor-linha {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 10px;
    font-size: 13px;
    color: var(--texto-suave);
}
.monitor-linha strong {
    color: var(--texto);
    font-feature-settings: 'lnum';
    font-variant-numeric: lining-nums tabular-nums;
    font-weight: 600;
}
.monitor-pct {
    font-family: var(--fonte-marca);
    font-weight: 500;
    color: var(--dourado-esc);
    font-size: 22px;
    line-height: 1;
    font-variant-numeric: lining-nums tabular-nums;
}

.monitor-atual {
    border-left: 1px solid var(--hairline);
    padding-left: var(--sp-5);
}
.monitor-rotulo {
    font-size: 10.5px;
    text-transform: uppercase;
    color: var(--texto-muted);
    letter-spacing: 0.1em;
    font-weight: 600;
    margin-bottom: 6px;
}
.monitor-empresa {
    font-weight: 600;
    color: var(--texto);
    font-size: 14px;
    line-height: 1.3;
    margin-bottom: 4px;
}
.monitor-doc {
    font-size: 12px;
    color: var(--dourado-esc);
    font-family: var(--fonte-mono);
}

@media (max-width: 820px) {
    .monitor-grid { grid-template-columns: 1fr; }
    .monitor-atual { border-left: none; padding-left: 0; padding-top: var(--sp-4); border-top: 1px solid var(--hairline); }
}

/* ==============================================================
   EMPRESAS — toolbar + lista
   ============================================================== */
.empresas-add {
    display: flex;
    gap: var(--sp-2);
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: var(--sp-3);
}
.empresas-add input[type=text] { flex: 1; min-width: 180px; }
.empresas-add input[name=cnpj] { flex: 0 0 200px; }

.empresas-gestta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: var(--sp-4);
    padding-bottom: var(--sp-4);
    border-bottom: 1px dashed var(--hairline);
}
.empresas-gestta .hint-gestta {
    color: var(--texto-muted);
    font-size: 11.5px;
}

.empresas-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: var(--sp-3);
}
#busca, #busca-go, #busca-folha, #busca-escrita {
    flex: 1;
    min-width: 220px;
    padding: 9px 14px 9px 36px;
    background: var(--bg-bege) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%236B6557' stroke-width='1.5' stroke-linecap='round'><circle cx='7' cy='7' r='5'/><path d='m11 11 3 3'/></svg>") no-repeat 12px center;
    background-size: 14px;
    border: 1px solid var(--hairline);
    border-radius: 5px;
    font-size: 13px;
}
#busca:focus, #busca-go:focus, #busca-folha:focus, #busca-escrita:focus {
    background-color: var(--bg-card);
    border-color: var(--dourado);
    box-shadow: 0 0 0 3px rgba(47,111,176,0.12);
}
.empresas-toolbar .marcar-rotulo {
    font-size: 11px;
    text-transform: uppercase;
    color: var(--texto-muted);
    letter-spacing: 0.08em;
    font-weight: 600;
}

/* ============ LISTA / TABELA DE EMPRESAS ============ */
.lista-wrap {
    border: 1px solid var(--hairline);
    border-radius: 6px;
    overflow: hidden;
    background: var(--bg-card);
}

.cabecalho-lista, .linha-empresa {
    display: grid;
    grid-template-columns: 1.7fr 88px 88px 88px 88px 88px 92px;
    align-items: center;
    gap: var(--sp-3);
    padding: 12px var(--sp-4);
}
.cabecalho-lista {
    background: var(--bg-bege);
    border-bottom: 1px solid var(--hairline);
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--texto-muted);
    font-weight: 600;
    padding-top: 11px;
    padding-bottom: 11px;
}
.cabecalho-lista .col-toggle,
.cabecalho-lista .col-acao { text-align: center; }
.cabecalho-lista .col-ultimo { padding-left: 4px; }

.lista-empresas {
    max-height: 480px;
    overflow-y: auto;
    background: var(--bg-card);
    scrollbar-width: thin;
    scrollbar-color: var(--hairline-forte) transparent;
}
.lista-empresas::-webkit-scrollbar { width: 10px; }
.lista-empresas::-webkit-scrollbar-track { background: transparent; }
.lista-empresas::-webkit-scrollbar-thumb {
    background: var(--hairline-forte);
    border-radius: 99px;
    border: 2px solid var(--bg-card);
}
.lista-empresas::-webkit-scrollbar-thumb:hover { background: var(--texto-muted); }

.linha-empresa {
    border-bottom: 1px solid var(--hairline-suave);
    transition: background 0.08s ease;
}
.linha-empresa:last-child { border-bottom: none; }
.linha-empresa:hover { background: var(--bg-bege); }

/* coluna Empresa */
.col-empresa {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}
.avatar {
    flex: 0 0 38px;
    height: 38px;
    border-radius: 50%;
    background: linear-gradient(140deg, var(--dourado-clar) 0%, var(--dourado-esc) 100%);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    user-select: none;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.25),
        inset 0 -1px 0 rgba(0,0,0,0.10),
        0 1px 2px rgba(122,95,31,0.20);
    letter-spacing: -0.01em;
    font-family: var(--fonte-ui);
    transition: transform 0.12s ease;
}
.avatar:hover { transform: scale(1.06); }
.avatar.avatar-cod {
    font-family: var(--fonte-mono);
    font-size: 12px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
/* Nome + (CNPJ · IE) na MESMA linha pra economizar altura. O nome encolhe com
   reticências quando é longo; o CNPJ/IE nunca somem. Em telas estreitas o bloco
   CNPJ·IE quebra pra a linha de baixo, sem cortar nada. */
.col-empresa .info {
    min-width: 0;
    flex: 1;
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    column-gap: 8px;
    row-gap: 1px;
}
.nome-empresa {
    font-weight: 600;
    font-size: 13.5px;
    color: var(--texto);
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1 auto;        /* fica logo antes do CNPJ/IE; encolhe (ellipsis) se longo */
    min-width: 2.5em;      /* nunca some de vez */
    letter-spacing: -0.005em;
}
.empresa-meta {
    flex: 0 0 auto;        /* CNPJ·IE sempre 100% visíveis */
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    white-space: nowrap;
}
.cnpj-empresa {
    font-size: 11.5px;
    color: var(--texto-muted);
    background: transparent;
    padding: 0;
    margin: 0;
    display: inline;
    font-family: var(--fonte-mono);
    letter-spacing: 0;
    border: none;          /* tira a borda herdada do estilo global de <code> */
    border-radius: 0;
}
.cnpj-empresa.sem-ie { color: var(--vermelho, #c44); }
.meta-sep { color: var(--texto-muted); opacity: 0.45; font-size: 11px; }

/* coluna "Último download" */
.col-ultimo {
    font-size: 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding-left: 4px;
}
.ultimo-tipo-linha {
    display: grid;
    grid-template-columns: 60px 1fr;
    align-items: center;
    gap: 8px;
    line-height: 1.2;
}
.ultimo-tipo-linha .tipo-rotulo {
    font-size: 10px;
    color: var(--texto-muted);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-family: var(--fonte-mono);
}
.ultimo-badge {
    background: var(--verde-soft);
    color: var(--verde);
    padding: 2px 9px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    border: 1px solid #C4DCC1;
    width: fit-content;
}
.ultimo-semnf {
    background: var(--ambar-soft);
    color: #6E4B0F;
    border: 1px solid #E5C786;
    padding: 2px 9px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    width: fit-content;
}
.ultimo-semproc {
    background: #ECE9DF;
    color: #5C5444;
    border: 1px solid #CFC9B6;
    padding: 2px 9px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    width: fit-content;
    cursor: help;
}
.ultimo-aviso {
    background: #FFF3D6;
    color: #8A5A0F;
    border: 1px solid #E5C786;
    padding: 2px 9px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
    width: fit-content;
    cursor: help;
}
/* Inscrição municipal BAIXADA (encerrada) no ISS-DF — roxo suave, distinto de
   sem proc (bege) e sem docs. Não é erro: é estado cadastral. */
.ultimo-baixada {
    background: #EFE6F4;
    color: #6A4A82;
    border: 1px solid #D5C2E4;
    padding: 2px 9px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    width: fit-content;
    cursor: help;
}
.ultimo-semie {
    background: var(--azul-soft);
    color: var(--azul-info);
    border: 1px solid #B7CBDA;
    padding: 2px 9px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    width: fit-content;
    cursor: help;
}
.ultimo-erro {
    background: var(--vermelho-soft);
    color: var(--vermelho);
    border: 1px solid #E8B9B0;
    padding: 2px 9px;
    border-radius: 99px;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    cursor: help;
    width: fit-content;
}
.ultimo-nunca {
    color: var(--texto-fraco);
    font-size: 11.5px;
    font-style: italic;
}

/* ============ TOGGLE SWITCH ============ */
.col-toggle {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
}
.cabecalho-lista .col-toggle {
    /* No cabeçalho é só texto — mantém o text-align: center já definido acima */
    display: block;
}
.ultimo-badge-wrap {
    display: flex;
    justify-content: center;
    min-height: 18px;
    line-height: 1;
}
.ultimo-badge-wrap.tipo-desativado {
    opacity: 0.45;
}
/* Badges menores dentro das colunas dos toggles (96px de largura) */
.col-toggle .ultimo-badge,
.col-toggle .ultimo-semnf,
.col-toggle .ultimo-semproc,
.col-toggle .ultimo-baixada,
.col-toggle .ultimo-semie,
.col-toggle .ultimo-erro {
    font-size: 10px;
    padding: 1px 7px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}
.col-toggle .ultimo-nunca {
    font-size: 11px;
}
/* Selo de resultado da folha (embaixo da flag) */
.folha-badge-wrap {
    display: flex;
    justify-content: center;
    min-height: 16px;
    line-height: 1;
}
.folha-badge-wrap .ultimo-badge,
.folha-badge-wrap .ultimo-semnf,
.folha-badge-wrap .ultimo-erro {
    font-size: 10px;
    padding: 1px 7px;
}
.toggle {
    position: relative;
    display: inline-flex;
    cursor: pointer;
    margin: 0;
}
.toggle input {
    opacity: 0;
    position: absolute;
    pointer-events: none;
}
.toggle .slider {
    position: relative;
    width: 34px;
    height: 19px;
    background: #D6D2C5;
    border-radius: 99px;
    transition: background 0.18s ease;
    flex-shrink: 0;
}
.toggle .slider::before {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 15px;
    height: 15px;
    background: #fff;
    border-radius: 50%;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
    box-shadow: 0 1px 2px rgba(0,0,0,0.2), 0 0 0 0.5px rgba(0,0,0,0.04);
}
.toggle input:checked + .slider { background: var(--dourado); }
.toggle input:checked + .slider::before {
    transform: translateX(15px);
    box-shadow: 0 1px 3px rgba(0,0,0,0.25);
}
.toggle:hover .slider { background: #C5C1B4; }
.toggle:hover input:checked + .slider { background: var(--dourado-esc); }
.toggle input:focus-visible + .slider {
    box-shadow: 0 0 0 3px rgba(47,111,176,0.18);
}

/* ============ AÇÕES NA LINHA ============ */
.col-acao {
    display: flex;
    gap: 4px;
    justify-content: center;
    align-items: center;
}
.btn-buscar-linha {
    background: var(--dourado);
    color: #fff;
    border: 1px solid var(--dourado);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.1s, box-shadow 0.1s, background 0.12s;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.18), 0 1px 2px rgba(122,95,31,0.18);
    line-height: 1;
}
.btn-buscar-linha:hover:not(:disabled) {
    transform: scale(1.08);
    background: var(--dourado-esc);
    border-color: var(--dourado-esc);
}
.btn-buscar-linha:disabled {
    background: var(--bg-soft);
    color: var(--texto-fraco);
    border-color: var(--hairline);
    cursor: wait;
    box-shadow: none;
}
.btn-remover {
    background: transparent;
    color: var(--texto-fraco);
    border: 1px solid transparent;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    padding: 0;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
    transition: all 0.1s;
}
.btn-remover:hover {
    background: var(--vermelho-soft);
    color: var(--vermelho);
    border-color: #E8B9B0;
}

/* ============ RODAPÉ EMPRESAS ============ */
.rodape-empresas {
    margin-top: var(--sp-4);
    padding-top: var(--sp-4);
    border-top: 1px solid var(--hairline-suave);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--sp-4);
    flex-wrap: wrap;
}
.rodape-empresas .muted { margin: 0; font-size: 12px; color: var(--texto-muted); }
.contadores-inline {
    display: flex;
    gap: var(--sp-5);
    flex-wrap: wrap;
}
.mini-contador {
    display: inline-flex;
    align-items: baseline;
    gap: 5px;
}
.mini-numero {
    font-weight: 600;
    font-size: 14px;
    color: var(--texto);
    font-variant-numeric: lining-nums tabular-nums;
}
.mini-numero.verde { color: var(--verde); }
.mini-numero.dourado { color: var(--dourado-esc); }
.mini-rotulo {
    font-size: 11.5px;
    color: var(--texto-muted);
    letter-spacing: 0.01em;
}
.mini-rotulo strong { color: var(--texto); font-weight: 600; }

/* ==============================================================
   ATIVIDADE + ARQUIVOS (lado a lado)
   ============================================================== */
.grid-atividade {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--sp-4);
}
@media (max-width: 1100px) {
    .grid-atividade { grid-template-columns: 1fr; }
}
.grid-atividade .card { margin-bottom: 0; }

pre#log, pre#log-go, pre#log-folha, pre#log-escrita, pre#log-apur, pre#log-imp {
    background: linear-gradient(180deg, var(--bg-bege) 0%, var(--bg-card) 100%);
    color: var(--texto);
    padding: 14px 16px;
    border-radius: 6px;
    font-family: var(--fonte-mono);
    font-size: 11.5px;
    max-height: 420px;
    overflow-y: auto;
    margin: 0;
    white-space: pre-wrap;
    line-height: 1.65;
    border: 1px solid var(--hairline-suave);
    /* Scrollbar oculta — o JS faz auto-scroll pro fim a cada update,
       então o usuário só vê as últimas linhas (efeito "tail -f"). */
    scrollbar-width: none;          /* Firefox */
    -ms-overflow-style: none;       /* IE/Edge legado */
}
pre#log::-webkit-scrollbar, pre#log-go::-webkit-scrollbar, pre#log-folha::-webkit-scrollbar, pre#log-escrita::-webkit-scrollbar, pre#log-apur::-webkit-scrollbar, pre#log-imp::-webkit-scrollbar { display: none; }  /* Chrome/Safari */

/* ============ ARQUIVOS ============ */
.arquivos-scroll {
    overflow: hidden;
    border: 1px solid var(--hairline);
    border-radius: 5px;
    /* Scrollbar oculta — JS limita a tabela aos últimos 7 arquivos baixados,
       sem necessidade de scroll. */
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.arquivos-scroll::-webkit-scrollbar { display: none; }

table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}
thead th {
    text-align: left;
    padding: 9px 14px;
    background: var(--bg-bege);
    color: var(--texto-muted);
    font-weight: 600;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    border-bottom: 1px solid var(--hairline);
    position: sticky;
    top: 0;
    z-index: 1;
}
tbody td {
    padding: 10px 14px;
    border-bottom: 1px solid var(--hairline-suave);
    color: var(--texto-suave);
}
tbody td strong { color: var(--texto); font-weight: 600; font-family: var(--fonte-mono); font-size: 11.5px; }
tbody tr:hover { background: var(--bg-bege); }
tbody tr:last-child td { border-bottom: none; }

code {
    font-family: var(--fonte-mono);
    font-size: 11.5px;
    color: var(--texto-suave);
    background: var(--bg-bege);
    padding: 1px 6px;
    border-radius: 3px;
    border: 1px solid var(--hairline-suave);
}

/* ==============================================================
   ESTADOS VAZIOS
   ============================================================== */
.estado-vazio {
    text-align: center;
    padding: var(--sp-7) var(--sp-4);
    color: var(--texto-muted);
}
.estado-vazio .titulo {
    font-family: var(--fonte-marca);
    font-size: 18px;
    font-weight: 500;
    color: var(--texto);
    margin-bottom: 6px;
    letter-spacing: -0.005em;
}
.estado-vazio .desc { font-size: 12.5px; line-height: 1.5; }
.estado-vazio code {
    font-size: 11px;
}

/* ==============================================================
   AVISOS / TOASTS
   ============================================================== */
.aviso {
    background: var(--ambar-soft);
    color: #6B5018;
    padding: 12px 16px;
    border-radius: 5px;
    font-size: 12.5px;
    border-left: 3px solid var(--ambar);
    margin-top: var(--sp-3);
    line-height: 1.55;
}
.aviso strong { color: var(--texto); }
.aviso.info {
    background: var(--azul-soft);
    color: #1B405A;
    border-left-color: var(--azul-info);
}

.toast {
    padding: 12px 18px;
    border-radius: 5px;
    margin-bottom: var(--sp-5);
    font-weight: 500;
    font-size: 13px;
    border: 1px solid;
}
.toast-ok {
    background: var(--verde-soft);
    color: var(--verde);
    border-color: #B6D2B3;
    border-left: 3px solid var(--verde);
}
.toast-erro {
    background: var(--vermelho-soft);
    color: var(--vermelho);
    border-color: #E8B9B0;
    border-left: 3px solid var(--vermelho);
}

/* ==============================================================
   CONFIGURAÇÕES
   ============================================================== */
.status-config {
    background: var(--bg-bege);
    border: 1px solid var(--hairline);
    padding: 14px 18px;
    border-radius: 5px;
    margin-bottom: var(--sp-4);
}
.status-item {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 4px 0;
    font-size: 12.5px;
}
.status-item + .status-item { border-top: 1px solid var(--hairline-suave); padding-top: 8px; margin-top: 4px; }
.status-rotulo {
    font-weight: 600;
    color: var(--texto);
    min-width: 80px;
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.status-ok { color: var(--verde); font-weight: 600; font-size: 12.5px; display: inline-flex; align-items: center; gap: 4px; }
.status-erro { color: var(--vermelho); font-weight: 600; font-size: 12.5px; display: inline-flex; align-items: center; gap: 4px; }
.status-valor {
    color: var(--texto-suave);
    font-family: var(--fonte-mono);
    font-size: 11.5px;
    background: var(--bg-card);
    padding: 3px 9px;
    border-radius: 3px;
    border: 1px solid var(--hairline);
}

.form-config {
    background: var(--bg-card);
    padding: 0;
    border-radius: 0;
}
.form-config label {
    display: block;
    margin-bottom: var(--sp-3);
}
.form-config label > span {
    display: block;
    font-weight: 600;
    font-size: 12px;
    margin-bottom: 6px;
    color: var(--texto);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.form-config label > small {
    display: block;
    color: var(--texto-muted);
    font-size: 11.5px;
    margin-top: 5px;
    line-height: 1.5;
}
.form-config input[type=text],
.form-config input[type=password],
.form-config input[type=email],
.form-config input[type=file] {
    width: 100%;
    padding: 9px 12px;
    font-size: 13px;
}
.form-divisor {
    text-align: center;
    color: var(--texto-fraco);
    font-size: 10.5px;
    letter-spacing: 0.2em;
    margin: var(--sp-3) 0;
    text-transform: uppercase;
    position: relative;
    font-weight: 600;
}
.form-divisor::before,
.form-divisor::after {
    content: "";
    position: absolute;
    top: 50%;
    width: calc(50% - 26px);
    height: 1px;
    background: var(--hairline);
}
.form-divisor::before { left: 0; }
.form-divisor::after { right: 0; }

.lista-checks {
    list-style: none;
    padding: 0;
    margin: 0;
}
.lista-checks li {
    padding: 9px 0;
    font-size: 13px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--hairline-suave);
}
.lista-checks li:last-child { border-bottom: none; }
.lista-checks li::before {
    content: "○";
    margin-right: 10px;
    font-size: 14px;
    color: var(--hairline-forte);
    width: 16px;
    text-align: center;
}
.lista-checks li.check-ok::before {
    content: "✓";
    color: var(--verde);
    font-weight: 700;
}
.lista-checks li.check-falta::before {
    content: "✗";
    color: var(--vermelho);
    font-weight: 700;
}
.lista-checks li.check-falta { color: var(--vermelho); }

/* ==============================================================
   UTILS
   ============================================================== */
.muted { color: var(--texto-muted); font-size: 12.5px; }
.mono { font-family: var(--fonte-mono); }
.flex-between { display: flex; justify-content: space-between; align-items: center; gap: var(--sp-3); }

/* ==============================================================
   RESPONSIVE (sidebar colapsa em narrow)
   ============================================================== */
@media (max-width: 980px) {
    .shell { grid-template-columns: 1fr; }
    .sidebar {
        position: relative;
        height: auto;
        flex-direction: row;
        padding: var(--sp-3) var(--sp-4);
        border-right: none;
        border-bottom: 1px solid var(--hairline);
        align-items: center;
    }
    .sidebar-marca {
        padding: 0;
        margin: 0;
        border: none;
        display: flex;
        align-items: center;
        gap: 10px;
    }
    .sidebar-marca .logo { height: 28px; margin: 0; }
    .sidebar-marca .nome { font-size: 16px; }
    .sidebar-marca .subtitulo { display: none; }
    .sidebar-nav {
        flex-direction: row;
        padding: 0;
        margin-left: auto;
        gap: 4px;
    }
    .sidebar-nav .secao { display: none !important; }
    .sidebar-nav .depto + .depto { margin-top: 0 !important; padding-top: 0 !important; border-top: none !important; }
    .sidebar-nav a { padding: 6px 10px; font-size: 12.5px; }
    .sidebar-nav a.ativo::before { display: none; }
    .sidebar-nav a .icone { display: none; }
    .sidebar-rodape { display: none; }

    .conteudo { padding: var(--sp-4) var(--sp-4) var(--sp-6); }
    .topbar { padding: var(--sp-3) var(--sp-4); }
    .kpi-strip { grid-template-columns: repeat(2, 1fr); }
    .cabecalho-lista, .linha-empresa {
        grid-template-columns: 1.5fr 70px 70px 70px 70px 70px 70px;
        gap: var(--sp-2);
        padding: 10px var(--sp-3);
    }
}
@media (max-width: 640px) {
    .kpi-strip { grid-template-columns: 1fr 1fr; }
    .control-bar { gap: var(--sp-2); }
    .control-bar .grupo-datas { padding-left: 0; border-left: none; }
    .control-bar .btn-baixar { margin-left: 0; width: 100%; }
    .control-bar .btn-so-erros { margin-left: 0; width: 100%; }
}

/* ============ FOOTER discreto ============ */
footer.rodape {
    padding: var(--sp-5) var(--sp-6);
    color: var(--texto-fraco);
    font-size: 11.5px;
    border-top: 1px solid var(--hairline-suave);
    margin-top: var(--sp-6);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}
footer.rodape strong {
    color: var(--texto-muted);
    font-family: var(--fonte-marca);
    font-weight: 500;
    font-size: 13px;
    letter-spacing: -0.005em;
}


/* ======================================================================
   TIPOGRAFIA — substitui as fontes "documentais" (Garamond serif) por
   sans-serif moderna (Inter) com pesos display e tracking negativo.
   ====================================================================== */

/* Sobrescreve a variável original: TUDO que usa --fonte-marca passa pra
   Inter automaticamente */
:root {
    --fonte-marca: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

/* Topbar / header — título principal mais display */
.topbar .titulo,
header.topo .titulo h1,
header.topo h1 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    line-height: 1.15 !important;
}
header.topo .titulo .sub,
.topbar .sub {
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: -0.005em !important;
}

/* Títulos de cards (h2) — Inter bold, tracking negativo pra cara de produto */
.card h2,
.card-header h2 {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: -0.018em !important;
    font-size: 1.05rem !important;
}

/* "Hints" — aquele texto pequeno do lado de h2 ("211 cadastradas",
   "marque o que buscar", etc.) — Inter medium */
.card h2 .hint,
.hint {
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    color: var(--texto-muted) !important;
}

/* Percentual do monitor — Inter bold tabular */
.monitor-pct {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums !important;
    letter-spacing: -0.01em !important;
}

/* Footer */
footer.rodape,
footer.rodape strong {
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
}

/* KPIs (se aparecerem) */
.kpi .kpi-numero,
.estado-vazio .titulo {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
}

/* Logo da marca na sidebar */
.sidebar-marca .nome {
    font-family: 'Inter', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: -0.015em !important;
}

/* Rotulo das toggles ("nfce", "nfe-emit", "nfe-dest" no cabeçalho) */
.cabecalho-lista .col-toggle,
.col-toggle {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
}

/* Forma geral do body — garante Inter como padrão */
html, body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif !important;
}


/* ======================================================================
   PALETA GESTTA — laranja vibrante + charcoal + branco
   ======================================================================
   Inspirada no dashboard do Gestta. Substitui o esquema "Editorial Mínimo"
   pelo material design do Gestta:
     - CTA principal LARANJA vibrante (#F26522)
     - Background branco puro
     - Texto charcoal escuro
     - Sucesso verde material (#4CAF50)
     - Links azul material (#1976D2)
   ====================================================================== */

:root {
    /* AZUL CORPORATIVO SUAVE — destaque azul calmo no lugar do laranja.
       (Os nomes seguem com 'laranja' por compatibilidade, mas os valores são azuis.) */
    --gestta-laranja:       #2F6FB0;
    --gestta-laranja-2:     #3D80C4;
    --gestta-laranja-esc:   #235488;
    --gestta-laranja-soft:  #E4EEF7;
    --gestta-sidebar:       #1E2A38;
    --gestta-sidebar-2:     #27374A;
    --gestta-bg:            #FFFFFF;
    --gestta-bg-sec:        #EEF2F7;
    --gestta-bg-hover:      #F5F7FA;
    --gestta-text:          #1B2430;
    --gestta-text-muted:    #5A6675;
    --gestta-link:          #2F6FB0;
    --gestta-link-hover:    #235488;
    --gestta-success:       #2E7D5B;
    --gestta-success-soft:  #E3F1EA;
    --gestta-danger:        #C0392B;
    --gestta-danger-soft:   #F8E5E2;
    --gestta-warn:          #C77D1A;
    --gestta-warn-soft:     #FBEFD9;
    --gestta-border:        #DCE3EC;
    --gestta-border-strong: #B7C2D0;
}

/* BACKGROUND geral — cinza-azulado suave (cartões ficam brancos por cima) */
html, body { background: #F2F5F9 !important; color: var(--gestta-text) !important; }

/* HEADER topo — branco com borda sutil */
header.topo {
    background: var(--gestta-bg) !important;
    border-bottom: 1px solid var(--gestta-border) !important;
}

/* CARDS — branco com borda fina cinza, sombra mínima */
.card,
.card.alta-prioridade,
.card-baixar-topo,
.card.monitor {
    background: var(--gestta-bg) !important;
    border: 1px solid var(--gestta-border) !important;
    border-top: 1px solid var(--gestta-border) !important;
    border-radius: 4px !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}
.card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important; }

/* Card "Baixar XMLs" tem accent laranja sutil no topo */
.card-baixar-topo {
    border-top: 3px solid var(--gestta-laranja) !important;
}
.card.monitor {
    border-top: 3px solid var(--gestta-success) !important;
}

/* NÚMEROS DAS SEÇÕES (1, 2, 3, 4) — laranja Gestta */
.card h2 .num {
    background: var(--gestta-laranja) !important;
    color: white !important;
    border-radius: 4px !important;
    width: 26px !important; height: 26px !important;
    box-shadow: none !important;
    animation: none !important;
    font-weight: 700 !important;
}
.card.monitor h2 .num {
    background: var(--gestta-success) !important;
    animation: pulse-gestta 2s infinite !important;
}
@keyframes pulse-gestta {
    0%, 100% { box-shadow: 0 0 0 0 rgba(76,175,80,0.4); }
    50% { box-shadow: 0 0 0 8px rgba(76,175,80,0); }
}

/* BOTÃO PRIMÁRIO (Baixar agora) — laranja vibrante Gestta */
button.primario {
    background: var(--gestta-laranja) !important;
    color: white !important;
    border: 1px solid var(--gestta-laranja) !important;
    border-radius: 4px !important;
    padding: 0.6rem 1.6rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.2px !important;
    text-transform: uppercase !important;
    font-size: 0.82rem !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08) !important;
    transition: all 0.15s ease !important;
}
button.primario:hover:not(:disabled) {
    background: var(--gestta-laranja-2) !important;
    border-color: var(--gestta-laranja-2) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 3px 8px rgba(47,111,176,0.3) !important;
    filter: none !important;
}
button.primario:active:not(:disabled) {
    background: var(--gestta-laranja-esc) !important;
    transform: translateY(0) !important;
}
button.primario:disabled {
    background: #BDBDBD !important;
    color: #F5F5F5 !important;
    border-color: #BDBDBD !important;
    box-shadow: none !important;
}

/* BOTÃO BAIXAR por linha — laranja retangular com texto */
.btn-buscar-linha {
    background: var(--gestta-laranja) !important;
    color: white !important;
    border: 1px solid var(--gestta-laranja) !important;
    width: auto !important;
    height: auto !important;
    min-width: 72px !important;
    padding: 0.4rem 0.85rem !important;
    border-radius: 4px !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    line-height: 1 !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08) !important;
    transition: all 0.15s ease !important;
    white-space: nowrap !important;
}
.btn-buscar-linha:hover:not(:disabled) {
    background: var(--gestta-laranja-2) !important;
    border-color: var(--gestta-laranja-2) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 3px 8px rgba(47,111,176,0.3) !important;
    filter: none !important;
}
.btn-buscar-linha:disabled {
    background: #BDBDBD !important;
    border-color: #BDBDBD !important;
    cursor: wait !important;
}

/* BOTÕES DE PERÍODO — abas estilo Gestta */
.baixar-linha-compacta .grupo-rapidos button {
    background: var(--gestta-bg) !important;
    color: var(--gestta-text-muted) !important;
    border: 1px solid var(--gestta-border) !important;
    border-radius: 4px !important;
    padding: 0.45rem 1rem !important;
    font-weight: 500 !important;
    transition: all 0.15s ease !important;
}
.baixar-linha-compacta .grupo-rapidos button:hover:not(.ativo) {
    background: var(--gestta-bg-sec) !important;
    color: var(--gestta-text) !important;
    border-color: var(--gestta-border-strong) !important;
}
.baixar-linha-compacta .grupo-rapidos button.ativo {
    background: var(--gestta-sidebar) !important;
    color: white !important;
    border-color: var(--gestta-sidebar) !important;
    font-weight: 600 !important;
}
.baixar-linha-compacta .grupo-rapidos button.botao-incremental {
    background: var(--gestta-bg) !important;
    color: var(--gestta-laranja-esc) !important;
    border: 1px solid var(--gestta-laranja) !important;
}
.baixar-linha-compacta .grupo-rapidos button.botao-incremental:hover,
.baixar-linha-compacta .grupo-rapidos button.botao-incremental.ativo {
    background: var(--gestta-laranja) !important;
    color: white !important;
}

/* GHOST-MINI (marcar coluna) */
button.ghost-mini {
    background: var(--gestta-bg) !important;
    color: var(--gestta-text-muted) !important;
    border: 1px solid var(--gestta-border) !important;
    border-radius: 4px !important;
}
button.ghost-mini:hover {
    background: var(--gestta-success) !important;
    color: white !important;
    border-color: var(--gestta-success) !important;
}

/* GHOST geral */
button.ghost {
    background: transparent !important;
    color: var(--gestta-text-muted) !important;
    border: 1px solid var(--gestta-border) !important;
    border-radius: 4px !important;
}
button.ghost:hover { background: var(--gestta-bg-sec) !important; color: var(--gestta-text) !important; }
button.ghost.danger { color: var(--gestta-danger) !important; border-color: var(--gestta-border) !important; }
button.ghost.danger:hover {
    background: var(--gestta-danger-soft) !important;
    border-color: var(--gestta-danger) !important;
}

/* BOTÃO REMOVER (×) */
.btn-remover {
    border-radius: 4px !important;
    transition: all 0.15s ease !important;
}
.btn-remover:hover {
    background: var(--gestta-danger-soft) !important;
    color: var(--gestta-danger) !important;
    transform: none !important;
}

/* LISTA EMPRESAS — Gestta usa hover muito sutil */
.lista-empresas .linha-empresa {
    background: transparent !important;
    transition: background 0.12s ease !important;
}
.lista-empresas .linha-empresa:nth-child(even) {
    background: var(--gestta-bg-hover) !important;
}
.lista-empresas .linha-empresa:hover {
    background: var(--gestta-laranja-soft) !important;
    box-shadow: inset 3px 0 0 var(--gestta-laranja) !important;
    transform: none !important;
}

/* AVATAR — laranja Gestta (igual o avatar de usuario na sidebar Gestta) */
.avatar, .avatar.avatar-cod {
    background: var(--gestta-laranja) !important;
    color: white !important;
    border-radius: 50% !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.08) !important;
    transition: transform 0.15s ease !important;
}
.linha-empresa:hover .avatar {
    transform: scale(1.05) !important;
    box-shadow: 0 2px 6px rgba(47,111,176,0.25) !important;
}

/* NOME EMPRESA — azul material (igual links na tabela Gestta) */
.nome-empresa { color: var(--gestta-link) !important; }
.linha-empresa:hover .nome-empresa { color: var(--gestta-link-hover) !important; }

/* BADGES — flat material */
.col-ultimo .ultimo-badge {
    background: var(--gestta-success-soft) !important;
    color: #2E7D32 !important;
    border: 1px solid #A5D6A7 !important;
    border-radius: 3px !important;
}
.col-ultimo .ultimo-semnf {
    background: var(--gestta-warn-soft) !important;
    color: #B45F04 !important;
    border: 1px solid #E6C079 !important;
    border-radius: 3px !important;
}
.col-ultimo .ultimo-erro {
    background: var(--gestta-danger-soft) !important;
    color: #C62828 !important;
    border: 1px solid #EF9A9A !important;
    border-radius: 3px !important;
}

/* MONITORAMENTO — barra verde Gestta */
.barra-progresso {
    background: var(--gestta-bg-sec) !important;
    border-radius: 2px !important;
    height: 8px !important;
}
.barra-progresso-preenchida {
    background: var(--gestta-success) !important;
    background-size: 100% 100% !important;
    box-shadow: none !important;
    border-radius: 2px !important;
}
.barra-progresso-preenchida::after {
    background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.4) 50%, transparent 100%) !important;
}
.monitor-pct {
    color: var(--gestta-success) !important;
    font-weight: 700 !important;
}

/* ALERTA RETOMAR — laranja Gestta */
.alerta-retomar {
    background: var(--gestta-laranja-soft) !important;
    border: 1px solid var(--gestta-laranja) !important;
    border-left: 3px solid var(--gestta-laranja-esc) !important;
    color: var(--gestta-text) !important;
    border-radius: 4px !important;
}
.alerta-retomar strong { color: var(--gestta-laranja-esc) !important; }
.alerta-retomar .btn-retomar {
    background: var(--gestta-laranja) !important;
    color: white !important;
    border: 1px solid var(--gestta-laranja) !important;
    text-transform: none !important;
}
.alerta-retomar .btn-retomar:hover:not(:disabled) {
    background: var(--gestta-laranja-2) !important;
    border-color: var(--gestta-laranja-2) !important;
}
.alerta-retomar .btn-ignorar {
    background: transparent !important;
    color: var(--gestta-text-muted) !important;
    border: 1px solid var(--gestta-border-strong) !important;
}

/* TOGGLES — verde material quando ativo */
.toggle input:checked ~ .slider {
    background: var(--gestta-success) !important;
}

/* INPUTS — focus laranja */
input[type="text"]:focus,
input[type="date"]:focus,
input[type="email"]:focus,
input[type="password"]:focus,
input[type="number"]:focus {
    border-color: var(--gestta-laranja) !important;
    box-shadow: 0 0 0 3px rgba(47,111,176,0.12) !important;
}

/* LOG — estilo principal vem da seção LOG ATIVIDADE (fundo transparente) */

/* NAV-LINKS */
a.nav-link {
    color: var(--gestta-text-muted) !important;
    border-radius: 4px !important;
}
a.nav-link:hover {
    background: var(--gestta-bg-sec) !important;
    color: var(--gestta-laranja) !important;
}

/* Linha de tipo "desativado" — flag desmarcada mas com histórico de download.
   Mostra dimmed pra indicar: "esse arquivo existe, mas o robô não busca mais". */
.ultimo-tipo-linha.tipo-desativado {
    opacity: 0.55;
    position: relative;
}
.ultimo-tipo-linha.tipo-desativado::before {
    content: '⊗';
    position: absolute;
    left: -10px;
    color: var(--gestta-text-muted);
    font-size: 0.85em;
}
.ultimo-tipo-linha.tipo-desativado .tipo-rotulo {
    text-decoration: line-through;
    text-decoration-color: rgba(0,0,0,0.3);
}


/* ======================================================================
   FUNDO + TOPO + SIDEBAR — refinamento "dashboard Gestta"
   ======================================================================
   Inspirado no print do dashboard Gestta. Body com cinza claríssimo (não
   branco puro) pra cards flutuarem com sombra; topbar com accent laranja
   abaixo; sidebar mais rica.
   ====================================================================== */

/* BODY — cinza claríssimo (não mais branco puro). Cards brancos vão flutuar */
body, html {
    background: #F5F5F7 !important;
    background-image:
        radial-gradient(circle at 20% 0%, rgba(47,111,176,0.04) 0%, transparent 50%),
        radial-gradient(circle at 80% 100%, rgba(76,175,80,0.04) 0%, transparent 50%) !important;
    background-attachment: fixed !important;
    color: var(--gestta-text) !important;
}
.shell { background: transparent !important; }
.main, main {
    background: transparent !important;
}

/* SIDEBAR — fundo CLARO cremoso (combina com a logo preta+dourada AGOS).
   Em vez de charcoal, vai um off-white com gradient sutil. Editorial,
   premium, sem competir com o conteúdo. */
.sidebar {
    background:
        linear-gradient(180deg, #FBFAF5 0%, #F5F1E8 100%) !important;
    border-right: 1px solid #E8E2D2 !important;
    box-shadow:
        1px 0 0 rgba(0,0,0,0.02),
        4px 0 12px rgba(0,0,0,0.04) !important;
    /* Sticky + scroll interno: sidebar fica sempre visível, e se o menu for
       maior que a viewport ele rola SOZINHO sem cortar nada. */
    position: sticky !important;
    top: 0 !important;
    height: 100vh !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
}
/* Scrollbar custom suave na sidebar */
.sidebar::-webkit-scrollbar { width: 6px; }
.sidebar::-webkit-scrollbar-thumb {
    background: rgba(47,111,176,0.25);
    border-radius: 3px;
}
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(47,111,176,0.5); }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::before {
    content: '';
    position: absolute;
    right: 0; top: 0; bottom: 0;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(47,111,176,0.2) 30%, rgba(47,111,176,0.2) 70%, transparent);
}

/* SIDEBAR-MARCA — área da logo seamless com o resto, padding generoso */
.sidebar-marca {
    background: transparent !important;
    border-bottom: 1px solid rgba(47,111,176,0.15) !important;
    padding: 1.6rem 1.3rem 1.4rem !important;
    margin: 0 !important;
    box-shadow: none !important;
    text-align: center;
}
.sidebar-marca .logo {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    margin: 0 auto !important;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.06));
}
.sidebar-marca .subtitulo {
    color: var(--gestta-laranja-esc) !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    font-size: 0.68rem !important;
    text-align: center !important;
    margin-top: 0.85rem !important;
    padding-top: 0.5rem !important;
    border-top: 1px solid rgba(47,111,176,0.15);
}

/* SPACER — não usado mais (fica margin-top: auto no .sidebar-nav-bottom) */
.sidebar-spacer { display: none !important; }

/* CSS ORIGINAL TEM ".sidebar-nav { flex: 1 }" — isso fazia AMBOS os <nav>
   (Operação no topo + Configurações no fim) dividirem o espaço meio a meio,
   colocando Configurações no centro. Aqui forçamos:
     - .sidebar-nav SEM .sidebar-nav-bottom → não cresce (mantém altura natural)
     - .sidebar-nav-bottom → margin-top:auto empurra pro fim */
.sidebar-nav:not(.sidebar-nav-bottom) {
    flex: 1 1 auto !important;
}
.sidebar-nav-bottom {
    flex: 0 0 auto !important;
    margin-top: auto !important;
    padding-top: 0.8rem !important;
    border-top: 1px solid rgba(47,111,176,0.15);
    margin-left: 10px !important;
    margin-right: 10px !important;
    margin-bottom: 0.6rem !important;
}
.sidebar-nav-bottom a .icone { color: var(--gestta-text-muted) !important; }
.sidebar-nav-bottom a:hover .icone { color: var(--gestta-laranja-esc) !important; }

/* SIDEBAR-NAV — links em charcoal (não branco), hover laranja sutil */
.sidebar-nav { padding-top: 1rem !important; }
.sidebar-nav .depto + .depto {
    margin-top: 0.65rem !important;
    padding-top: 0.55rem !important;
    border-top: 1px solid rgba(60,55,40,0.08) !important;
}
.sidebar-nav .secao {
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    color: rgba(60,55,40,0.5) !important;
    font-size: 0.68rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-weight: 700 !important;
    padding: 0.5rem 1.2rem 0.4rem !important;
    margin-top: 0.5rem !important;
}
.sidebar-nav .secao .secao-icone {
    font-size: 0.82rem !important;
    opacity: 0.75 !important;
    letter-spacing: 0 !important;
}
.sidebar-nav a {
    color: #5C5345 !important;
    border-radius: 8px !important;
    margin: 2px 10px !important;
    padding: 0.55rem 0.85rem !important;
    transition: all 0.15s ease !important;
    font-weight: 500 !important;
    font-size: 0.88rem !important;
}
.sidebar-nav a:hover {
    background: rgba(47,111,176,0.08) !important;
    color: var(--gestta-laranja-esc) !important;
    transform: translateX(2px);
}
.sidebar-nav a.ativo {
    background: linear-gradient(135deg, var(--gestta-laranja) 0%, var(--gestta-laranja-esc) 100%) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px rgba(47,111,176,0.25) !important;
    font-weight: 600 !important;
}
.sidebar-nav a.ativo .icone { color: #fff !important; opacity: 1 !important; }
.sidebar-nav a .icone {
    opacity: 0.7;
    margin-right: 0.4rem;
    color: var(--gestta-laranja-esc);
}

/* TOPBAR — branco com sombra sutil + faixa laranja no fundo */
.topbar {
    background: #FFFFFF !important;
    border-bottom: 1px solid var(--gestta-border) !important;
    box-shadow: 0 1px 0 rgba(0,0,0,0.02), 0 2px 6px rgba(0,0,0,0.04) !important;
    position: relative;
    padding: 1.2rem 2rem !important;
}
/* Faixa laranja decorativa no rodapé do topbar (estilo Gestta) */
.topbar::after {
    content: '';
    position: absolute;
    left: 0; right: 0; bottom: -1px;
    height: 2px;
    background: linear-gradient(90deg,
        var(--gestta-laranja) 0%,
        var(--gestta-laranja) 60px,
        transparent 60px);
}
.topbar .breadcrumb {
    color: var(--gestta-text-muted) !important;
    font-size: 0.78rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-weight: 600 !important;
}
.topbar .titulo {
    color: var(--gestta-text) !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
    margin-top: 4px !important;
}

/* Status pill no topbar */
.status-pill {
    background: var(--gestta-success-soft) !important;
    color: #2E7D32 !important;
    border: 1px solid #A5D6A7 !important;
    padding: 0.35rem 0.85rem !important;
    border-radius: 16px !important;
    font-size: 0.78rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
}
.status-pill.rodando {
    background: var(--gestta-warn-soft) !important;
    color: #B45F04 !important;
    border-color: #E6C079 !important;
    animation: pulse-pill 1.6s ease-in-out infinite;
}
@keyframes pulse-pill {
    0%, 100% { box-shadow: 0 0 0 0 rgba(251,140,0,0.5); }
    50% { box-shadow: 0 0 0 6px rgba(251,140,0,0); }
}

/* CARDS — elevados com sombra mais visível (vão flutuar sobre bg cinza) */
.card,
.card.alta-prioridade,
.card-baixar-topo,
.card.monitor {
    background: #FFFFFF !important;
    border: 1px solid #ECECEC !important;
    border-top: 1px solid #ECECEC !important;
    box-shadow:
        0 1px 2px rgba(0,0,0,0.04),
        0 2px 6px rgba(0,0,0,0.04) !important;
}
.card:hover {
    box-shadow:
        0 1px 3px rgba(0,0,0,0.05),
        0 4px 12px rgba(0,0,0,0.06) !important;
    transform: translateY(-1px) !important;
}
.card-baixar-topo { border-top: 3px solid var(--gestta-laranja) !important; }
.card.monitor { border-top: 3px solid var(--gestta-success) !important; }

/* KPI STRIP — cards de números no topo (se existirem) */
.kpi-strip {
    gap: 12px !important;
}
.kpi {
    background: #FFFFFF !important;
    border: 1px solid #ECECEC !important;
    border-radius: 8px !important;
    padding: 1rem 1.2rem !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.03) !important;
    transition: all 0.15s ease !important;
}
.kpi:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.06) !important;
}
.kpi.accent {
    background: linear-gradient(135deg, #FFFFFF 0%, #E8F1FA 100%) !important;
    border-color: #BFD6EC !important;
}
.kpi-label {
    color: var(--gestta-text-muted) !important;
    font-size: 0.72rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-weight: 600 !important;
}
.kpi-numero {
    color: var(--gestta-text) !important;
    font-size: 2rem !important;
    font-weight: 700 !important;
    letter-spacing: -0.025em !important;
    margin-top: 4px !important;
}
.kpi.accent .kpi-numero { color: var(--gestta-laranja-esc) !important; }
.kpi-extra {
    color: var(--gestta-text-muted) !important;
    font-size: 0.78rem !important;
    margin-top: 2px !important;
}

/* ============================================================
   SUBMENU LATERAL — sub-item indentado abaixo do pai (ex: XMLs · DF → Retenções)
   ============================================================ */
.sidebar-nav a.subitem {
    margin-left: 26px !important;
    padding: 0.42rem 0.75rem !important;
    font-size: 0.82rem !important;
    font-weight: 500 !important;
    color: #6B6151 !important;
    position: relative;
}
.sidebar-nav a.subitem::before {
    content: '';
    position: absolute;
    left: -10px;
    top: 50%;
    width: 6px;
    height: 1px;
    background: rgba(47,111,176,0.35);
}
.sidebar-nav a.subitem .icone {
    font-size: 0.85rem !important;
    margin-right: 0.3rem !important;
    opacity: 0.75;
}
.sidebar-nav a.subitem:hover {
    background: rgba(47,111,176,0.07) !important;
    color: var(--gestta-laranja-esc) !important;
}
.sidebar-nav a.subitem.ativo {
    background: linear-gradient(135deg, var(--gestta-laranja) 0%, var(--gestta-laranja-esc) 100%) !important;
    color: #FFFFFF !important;
    box-shadow: 0 2px 8px rgba(47,111,176,0.25) !important;
    font-weight: 600 !important;
}
.sidebar-nav a.subitem.ativo .icone { color: #fff !important; opacity: 1 !important; }

/* ============================================================
   PÁGINA RETENÇÕES NFS-e
   ============================================================ */
.retencoes-filtro .card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
    flex-wrap: wrap;
}
.retencoes-form-mes label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--gestta-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.retencoes-form-mes select {
    padding: 8px 12px;
    border: 1px solid var(--gestta-border);
    border-radius: 8px;
    background: #fff;
    font-size: 0.95rem;
    font-weight: 600;
    color: #2F2B22;
    min-width: 140px;
    cursor: pointer;
}
.retencoes-form-mes select:focus {
    outline: none;
    border-color: var(--gestta-laranja);
    box-shadow: 0 0 0 3px rgba(47,111,176,0.15);
}

/* Override do grid: a regra base .kpi-strip (linha 304) é 1fr 2.4fr — 2 colunas
   fixas, feita pra Home. Aqui temos 4 cards (Empresas, Notas, Pendentes,
   Conferidas) e precisamos dos 4 lado a lado em telas largas. Notas é o card
   mais magro (label curto, número de 1-3 dígitos). Pendentes/Conferidas
   ganham toque de cor pra destacar do resto. */
.kpi-strip.kpi-retencoes {
    margin-top: 18px;
    margin-bottom: 18px;
    grid-template-columns: 1.15fr 0.85fr 1fr 1fr !important;
}
/* Em viewport médio: 2x2 (Empresas+Notas em cima, Pendentes+Conferidas embaixo) */
@media (max-width: 820px) {
    .kpi-strip.kpi-retencoes {
        grid-template-columns: 1fr 1fr !important;
    }
}
/* Em narrow: empilha tudo */
@media (max-width: 480px) {
    .kpi-strip.kpi-retencoes {
        grid-template-columns: 1fr !important;
    }
}

/* Variações de cor por estado: Pendentes (laranja sutil) + Conferidas (verde) */
.kpi.kpi-pendentes {
    border-left: 3px solid var(--gestta-laranja);
}
.kpi.kpi-pendentes .kpi-numero {
    color: var(--gestta-laranja-esc) !important;
}
.kpi.kpi-conferidas {
    border-left: 3px solid #1E7C42;
}
.kpi.kpi-conferidas .kpi-numero {
    color: #1E7C42 !important;
}

/* Pulso quando o número muda — feedback visual instantâneo */
@keyframes kpiPulso {
    0%   { transform: scale(1);    color: inherit; }
    30%  { transform: scale(1.18); }
    100% { transform: scale(1); }
}
.kpi-numero.kpi-pulsando {
    animation: kpiPulso 0.45s ease-out;
    transform-origin: center;
    display: inline-block;
}

.retencoes-totais-impostos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding: 14px 0 4px;
}
.retencoes-totais-impostos .rt-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: #EEF2F7;
    border: 1px solid rgba(47,111,176,0.2);
    border-radius: 999px;
    font-size: 0.82rem;
    color: #5C5345;
}
.retencoes-totais-impostos .rt-pill strong {
    color: var(--gestta-laranja-esc);
    font-weight: 700;
    letter-spacing: 0.02em;
}

.retencoes-recarregar {
    margin-top: 14px;
}
.retencoes-recarregar button {
    font-size: 0.85rem;
    padding: 7px 14px;
}

/* Tabela de retenções: ampla, scroll horizontal se precisar */
.tabela-scroll {
    overflow-x: auto;
    margin: 8px -4px;
}
.tabela-retencoes {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 0.86rem;
}
.tabela-retencoes thead th {
    text-align: left;
    padding: 10px 12px;
    background: #EEF2F7;
    border-bottom: 2px solid rgba(47,111,176,0.2);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #6B6151;
    white-space: nowrap;
    position: sticky;
    top: 0;
}
.tabela-retencoes thead th.num,
.tabela-retencoes tbody td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.tabela-retencoes thead th.destaque {
    color: var(--gestta-laranja-esc);
}
.tabela-retencoes tbody td {
    padding: 10px 12px;
    border-bottom: 1px solid #E8EDF3;
    vertical-align: top;
}
.tabela-retencoes tbody tr:hover td {
    background: rgba(47,111,176,0.04);
}
.tabela-retencoes tbody td.destaque {
    font-weight: 700;
    color: #2F2B22;
}
.tabela-retencoes td.col-codigo,
.tabela-retencoes th.col-codigo {
    color: var(--gestta-text-muted);
    font-weight: 600;
    width: 60px;
}
.tabela-retencoes .nome-emp {
    font-weight: 600;
    color: #2F2B22;
}
.tabela-retencoes .cnpj-emp {
    font-size: 0.74rem;
    color: var(--gestta-text-muted);
    margin-top: 2px;
    font-variant-numeric: tabular-nums;
}
.badge-tipo {
    display: inline-block;
    padding: 3px 9px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.badge-tipo.badge-tom {
    background: rgba(33,150,83,0.12);
    color: #1E7C42;
    border: 1px solid rgba(33,150,83,0.25);
}
.badge-tipo.badge-prest {
    background: rgba(54,130,206,0.12);
    color: #1F5C9E;
    border: 1px solid rgba(54,130,206,0.25);
}

/* ===== Barra de ação superior: mês + botão Analisar agora ===== */
.acao-bar {
    display: flex;
    align-items: flex-end;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 18px;
    padding: 14px 16px;
    background: linear-gradient(135deg, #F4F8FC 0%, #E8F1FA 100%);
    border: 1px solid rgba(47,111,176,0.22);
    border-radius: 10px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.03);
}
.acao-bar-form {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.acao-bar-form-mes {
    flex: 1 1 180px;
    min-width: 0;
}
.acao-bar-form-analisar {
    align-self: flex-end;
}
.acao-bar-label {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--gestta-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.acao-bar-form-mes select {
    padding: 9px 12px;
    border: 1px solid var(--gestta-border);
    border-radius: 8px;
    background: #fff;
    font-size: 0.95rem;
    font-weight: 600;
    color: #2F2B22;
    cursor: pointer;
    width: 100%;
    font-variant-numeric: tabular-nums;
}
.acao-bar-form-mes select:focus {
    outline: none;
    border-color: var(--gestta-laranja);
    box-shadow: 0 0 0 3px rgba(47,111,176,0.15);
}
.botao-analisar {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    background: linear-gradient(135deg, var(--gestta-laranja) 0%, var(--gestta-laranja-esc) 100%);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 0.92rem;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(47,111,176,0.28);
    transition: transform 0.1s ease, box-shadow 0.15s ease, opacity 0.15s ease;
    letter-spacing: 0.01em;
    white-space: nowrap;
}
.botao-analisar:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(47,111,176,0.38);
}
.botao-analisar:active {
    transform: translateY(0);
}
.botao-analisar:disabled {
    opacity: 0.7;
    cursor: wait;
    transform: none;
}
.botao-analisar-icone {
    font-size: 1.05rem;
    line-height: 1;
}

/* ===== Abas Pendentes / Conferidas ===== */
.abas-retencoes {
    display: flex;
    gap: 4px;
    border-bottom: 2px solid var(--gestta-border);
    margin: -8px -4px 16px;
    padding: 0 4px;
}
.abas-retencoes .aba {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 18px;
    margin-bottom: -2px;
    color: var(--gestta-text-muted);
    text-decoration: none;
    font-size: 0.88rem;
    font-weight: 600;
    border-bottom: 2px solid transparent;
    transition: color 0.12s ease, border-color 0.12s ease, background 0.12s ease;
    border-radius: 6px 6px 0 0;
}
.abas-retencoes .aba:hover {
    color: var(--gestta-laranja-esc);
    background: rgba(47,111,176,0.05);
}
.abas-retencoes .aba.aba-ativa {
    color: var(--gestta-laranja-esc);
    border-bottom-color: var(--gestta-laranja-esc);
}
.aba-contador {
    display: inline-block;
    min-width: 24px;
    padding: 1px 7px;
    text-align: center;
    background: rgba(47,111,176,0.12);
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    color: #6B6151;
    font-variant-numeric: tabular-nums;
}
.abas-retencoes .aba.aba-ativa .aba-contador {
    background: var(--gestta-laranja-esc);
    color: #fff;
}

/* ===== Badge "Conferida" + estado do card ===== */
/* Visual forte: card todo verde claro com barra lateral verde grossa e
   sombra esverdeada — fica óbvio que aquela linha já foi conferida. */
.empresa-card-conferida {
    background: linear-gradient(135deg, #E3F4E8 0%, #D4ECD9 100%) !important;
    border: 1px solid #7FBE8E !important;
    border-left: 5px solid #1E7C42 !important;
    box-shadow: 0 1px 4px rgba(33,150,83,0.18) !important;
    padding-left: 12px !important;  /* compensa a barra grossa da esquerda */
}
.empresa-card-conferida:hover {
    border-color: #5BAA72 !important;
    border-left-color: #176B38 !important;
    box-shadow: 0 3px 10px rgba(33,150,83,0.30) !important;
}
/* Dentro do card conferida, escurece os textos pra contrastar com o fundo verde */
.empresa-card-conferida .empresa-card-nome { color: #1A3D26 !important; }
.empresa-card-conferida .empresa-card-codigo {
    background: #fff !important;
    color: #1E7C42 !important;
    border-color: #7FBE8E !important;
}
.empresa-card-conferida .empresa-card-cnpj { color: #3D5947 !important; }
.empresa-card-conferida .num-rotulo { color: #3D5947 !important; }
.empresa-card-conferida .num-valor { color: #1A3D26 !important; }
.empresa-card-conferida .empresa-card-num.destaque .num-valor { color: #1E7C42 !important; }
.empresa-card-conferida .rt-pill-sm {
    background: #fff !important;
    border-color: rgba(33,150,83,0.25) !important;
    color: #3D5947 !important;
}
.empresa-card-conferida .rt-pill-sm strong { color: #1E7C42 !important; }
.empresa-card-conferida .empresa-card-impostos {
    border-top-color: rgba(33,150,83,0.25) !important;
}
.empresa-card-conferida .botao-toggle-notas {
    background: #fff !important;
    border-color: rgba(33,150,83,0.30) !important;
    color: #1E7C42 !important;
}
.empresa-card-conferida .botao-toggle-notas:hover,
.empresa-card-conferida .botao-toggle-notas[aria-expanded="true"] {
    background: #1E7C42 !important;
    border-color: #1E7C42 !important;
    color: #fff !important;
}

.badge-conferida {
    display: inline-flex;
    align-items: center;
    padding: 4px 11px;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    background: #1E7C42;
    color: #fff;
    border: 1px solid #176B38;
    box-shadow: 0 1px 3px rgba(33,150,83,0.30);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.02em;
}

/* ===== Botão Conferir (marcar / desmarcar) ===== */
/* Quando o botão fica na mesma linha dos pills de impostos, garante:
   1. Ele "ancora" à direita (margin-left:auto empurra)
   2. Alinhamento vertical bonito com os pills (align-items center no row)
   3. Em viewport estreito, quebra naturalmente pra própria linha (flex-wrap) */
.empresa-card-impostos-com-acao {
    align-items: center !important;
    row-gap: 8px;
}
.empresa-card-impostos-com-acao .botao-conferir {
    margin-left: auto;
}
.botao-conferir {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 8px;
    border: 1px solid;
    cursor: pointer;
    font-size: 0.84rem;
    font-weight: 600;
    transition: all 0.12s ease;
}
.botao-conferir-marcar {
    background: #fff;
    border-color: rgba(33,150,83,0.45);
    color: #1E7C42;
}
.botao-conferir-marcar:hover:not(:disabled) {
    background: #1E7C42;
    color: #fff;
    border-color: #1E7C42;
    box-shadow: 0 2px 6px rgba(33,150,83,0.30);
}
.botao-conferir-desmarcar {
    background: #fff;
    border-color: #B8923E;
    color: #6B5320;
    font-weight: 700;
}
.botao-conferir-desmarcar:hover:not(:disabled) {
    background: var(--gestta-laranja-esc);
    color: #fff;
    border-color: var(--gestta-laranja-esc);
    box-shadow: 0 2px 6px rgba(47,111,176,0.30);
}
/* Dentro de card conferida (fundo verde), o botão precisa contrastar bem */
.empresa-card-conferida .botao-conferir-desmarcar {
    background: #fff !important;
    border: 2px solid #B8923E !important;
    color: #6B5320 !important;
    padding: 8px 16px !important;
    font-size: 0.86rem !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.08) !important;
}
.empresa-card-conferida .botao-conferir-desmarcar:hover:not(:disabled) {
    background: var(--gestta-laranja-esc) !important;
    border-color: var(--gestta-laranja-esc) !important;
    color: #fff !important;
    box-shadow: 0 3px 10px rgba(47,111,176,0.40) !important;
}
.botao-conferir:disabled {
    opacity: 0.55;
    cursor: wait;
}

/* ===== Lista de empresas em CARDS (substitui a tabela horizontal larga) ===== */
.lista-empresas-acoes {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    padding-bottom: 12px;
    flex-wrap: wrap;
}
.lista-empresas-info {
    color: var(--gestta-text-muted);
    font-size: 0.78rem;
}
#btn-expandir-todas {
    font-size: 0.82rem;
    padding: 6px 12px;
}

.lista-empresas-retencao {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.empresa-card {
    background: #fff;
    border: 1px solid var(--gestta-border);
    border-radius: 10px;
    padding: 14px 16px;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.empresa-card:hover {
    border-color: rgba(47,111,176,0.35);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.empresa-card-cabecalho {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 16px;
    flex-wrap: wrap;
}
.empresa-card-id {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex: 1 1 240px;
    min-width: 0;
}
.empresa-card-codigo {
    display: inline-block;
    background: #EEF2F7;
    color: var(--gestta-laranja-esc);
    border: 1px solid rgba(47,111,176,0.25);
    border-radius: 6px;
    padding: 4px 8px;
    font-weight: 700;
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
    flex-shrink: 0;
}
.empresa-card-nome-bloco {
    min-width: 0;
    flex: 1;
}
.empresa-card-nome {
    font-weight: 700;
    color: #2F2B22;
    font-size: 0.95rem;
    line-height: 1.25;
    word-break: break-word;
}
.empresa-card-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
    flex-wrap: wrap;
}
.empresa-card-cnpj {
    color: var(--gestta-text-muted);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}

.empresa-card-numeros {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.empresa-card-num {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 80px;
}
.empresa-card-num .num-rotulo {
    font-size: 0.66rem;
    color: var(--gestta-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
}
.empresa-card-num .num-valor {
    font-size: 1.05rem;
    font-weight: 700;
    color: #2F2B22;
    font-variant-numeric: tabular-nums;
    margin-top: 2px;
}
.empresa-card-num .num-sub {
    font-size: 0.78rem;
    font-weight: 500;
    color: var(--gestta-text-muted);
    margin-left: 3px;
}
.empresa-card-num.destaque .num-valor { color: var(--gestta-laranja-esc); }

.botao-toggle-notas {
    background: #EEF2F7;
    border: 1px solid rgba(47,111,176,0.2);
    color: var(--gestta-laranja-esc);
    cursor: pointer;
    font-size: 0.82rem;
    font-weight: 600;
    padding: 6px 12px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: all 0.12s ease;
}
.botao-toggle-notas:hover {
    background: var(--gestta-laranja-esc);
    border-color: var(--gestta-laranja-esc);
    color: #fff;
}
.botao-toggle-notas[aria-expanded="true"] {
    background: var(--gestta-laranja-esc);
    border-color: var(--gestta-laranja-esc);
    color: #fff;
}
.botao-toggle-notas .toggle-chev {
    font-size: 0.72rem;
    opacity: 0.85;
}

.empresa-card-impostos {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed rgba(47,111,176,0.18);
}
.rt-pill-sm {
    padding: 4px 9px;
    font-size: 0.75rem;
    background: #EEF2F7;
    border: 1px solid rgba(47,111,176,0.18);
    border-radius: 999px;
    color: #5C5345;
    display: inline-flex;
    gap: 5px;
    align-items: baseline;
    font-variant-numeric: tabular-nums;
}
.rt-pill-sm strong {
    color: var(--gestta-laranja-esc);
    font-weight: 700;
}
.rt-pill-sm.rt-pill-neutro {
    background: #F4F6F9;
    border-color: #DDE3EA;
}
.rt-pill-sm.rt-pill-neutro strong {
    color: #4A5568;
}

/* ============ Detalhe expansível com lista de notas individuais ============ */
.empresa-card-detalhe {
    margin-top: 14px;
    padding: 14px;
    background: #EEF2F7;
    border: 1px solid rgba(47,111,176,0.18);
    border-radius: 8px;
}
.detalhe-cabecalho {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.detalhe-cabecalho strong {
    color: var(--gestta-laranja-esc);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 0.76rem;
}
.detalhe-arq {
    font-size: 0.72rem;
    color: var(--gestta-text-muted);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
    word-break: break-all;
}

.lista-notas {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.nota-item {
    background: #fff;
    border: 1px solid var(--gestta-border);
    border-radius: 6px;
    padding: 10px 12px;
}
.nota-item-cabecalho {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.nota-numero {
    font-weight: 700;
    color: #2F2B22;
    font-size: 0.88rem;
    font-variant-numeric: tabular-nums;
}
.nota-data {
    color: var(--gestta-text-muted);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}
.nota-total {
    margin-left: auto;
    font-weight: 700;
    color: var(--gestta-laranja-esc);
    font-size: 0.92rem;
    font-variant-numeric: tabular-nums;
}
.nota-item-impostos {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

/* ============================================================
   REFINO PREMIUM — camada final de polimento (mantém laranja Gestta)
   Objetivo: tabela mais calma, botões coerentes, raios e sombras
   padronizados e uma entrada suave. Tudo só visual.
   ============================================================ */
:root {
    --raio-card: 10px;
    --raio-btn: 7px;
    --sombra-card: 0 1px 2px rgba(16,24,40,0.04), 0 1px 3px rgba(16,24,40,0.06);
    --sombra-card-hover: 0 4px 12px rgba(16,24,40,0.08), 0 2px 4px rgba(16,24,40,0.04);
}

/* CARDS / KPI / LISTA — raio único e sombra suave em camadas */
.card,
.card.alta-prioridade,
.card-baixar-topo,
.card.monitor {
    border-radius: var(--raio-card) !important;
    box-shadow: var(--sombra-card) !important;
    transition: box-shadow 0.18s ease, transform 0.18s ease !important;
}
.card:hover { box-shadow: var(--sombra-card-hover) !important; }
.kpi { border-radius: var(--raio-card) !important; }
.lista-wrap { border-radius: var(--raio-card) !important; overflow: hidden; }

/* BOTÃO PRINCIPAL e BAIXAR por linha — raio coerente */
button.primario { border-radius: var(--raio-btn) !important; }

/* BAIXAR por linha vira contorno laranja (tabela mais leve);
   o laranja sólido fica reservado pro botão principal */
.btn-buscar-linha {
    background: var(--gestta-bg) !important;
    color: var(--gestta-laranja-esc) !important;
    border: 1px solid var(--gestta-laranja) !important;
    border-radius: var(--raio-btn) !important;
    box-shadow: none !important;
}
.btn-buscar-linha:hover:not(:disabled) {
    background: var(--gestta-laranja) !important;
    color: #fff !important;
    border-color: var(--gestta-laranja) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 6px rgba(47,111,176,0.25) !important;
}
.btn-buscar-linha:disabled {
    background: var(--gestta-bg-sec) !important;
    color: var(--gestta-border-strong) !important;
    border-color: var(--gestta-border) !important;
}

/* BOTÕES DE PERÍODO da barra principal (.control-bar) — agora coerentes
   com o tema Gestta (antes herdavam ouro/preto do layout antigo) */
.control-bar .grupo-rapidos button {
    background: var(--gestta-bg) !important;
    color: var(--gestta-text-muted) !important;
    border: 1px solid var(--gestta-border) !important;
    border-radius: var(--raio-btn) !important;
    font-weight: 500 !important;
    box-shadow: none !important;
    transition: all 0.15s ease !important;
}
.control-bar .grupo-rapidos button:hover:not(.ativo) {
    background: var(--gestta-bg-sec) !important;
    color: var(--gestta-text) !important;
    border-color: var(--gestta-border-strong) !important;
}
.control-bar .grupo-rapidos button.ativo {
    background: var(--gestta-sidebar) !important;
    color: #fff !important;
    border-color: var(--gestta-sidebar) !important;
    font-weight: 600 !important;
}
.control-bar .grupo-rapidos button.botao-incremental {
    background: var(--gestta-bg) !important;
    color: var(--gestta-laranja-esc) !important;
    border: 1px solid var(--gestta-laranja) !important;
}
.control-bar .grupo-rapidos button.botao-incremental:hover,
.control-bar .grupo-rapidos button.botao-incremental.ativo {
    background: var(--gestta-laranja) !important;
    color: #fff !important;
    border-color: var(--gestta-laranja) !important;
}

/* ENTRADA SUAVE — cards aparecem com fade discreto (só opacidade,
   pra não brigar com o "levantar" do hover) */
@keyframes premium-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}
.conteudo .card {
    animation: premium-fade-in 0.4s ease both;
}
.conteudo .card:nth-child(2) { animation-delay: 0.05s; }
.conteudo .card:nth-child(3) { animation-delay: 0.10s; }
.conteudo .card:nth-child(4) { animation-delay: 0.15s; }

@media (prefers-reduced-motion: reduce) {
    .conteudo .card { animation: none; }
}

/* GOIÁS — só 3 tipos de documento. Grade própria: a coluna Empresa
   estica e empurra os toggles + o botão "Baixar" para a direita da
   linha (antes sobravam trilhas vazias que jogavam tudo pro meio). */
.lista-wrap-go .cabecalho-lista,
.lista-wrap-go .linha-empresa {
    grid-template-columns: minmax(240px, 1fr) 88px 88px 88px 92px;
}
@media (max-width: 980px) {
    .lista-wrap-go .cabecalho-lista,
    .lista-wrap-go .linha-empresa {
        grid-template-columns: minmax(140px, 1fr) 70px 70px 70px 80px;
    }
}

/* FOLHA — grade própria: Empresa estica, e cada automação vira uma coluna
   com sua flag (hoje só "Folha de Ponto"), seguida da coluna de ação. */
.lista-wrap-folha .cabecalho-lista,
.lista-wrap-folha .linha-empresa {
    grid-template-columns: minmax(240px, 1fr) 150px 110px;
}
@media (max-width: 980px) {
    .lista-wrap-folha .cabecalho-lista,
    .lista-wrap-folha .linha-empresa {
        grid-template-columns: minmax(140px, 1fr) 110px 90px;
    }
}

/* ============================================================
   SIDEBAR — engrenagem de ferramentas (topo) + botão Gestta (base)
   ============================================================ */

/* RODAPÉ — engrenagem (link direto pras Configurações) colada no canto
   inferior esquerdo, junto do nome AGOS + versão. */
.sidebar-rodape {
    display: flex !important;
    align-items: center;
    gap: 10px;
}
.sidebar-engrenagem {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    background: var(--gestta-bg, #fff);
    border: 1px solid var(--gestta-border, #E0E0E0);
    border-radius: 9px;
    color: var(--gestta-text-muted, #6B6B6B);
    font-size: 16px;
    line-height: 1;
    text-decoration: none;
    transition: border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.sidebar-engrenagem:hover {
    border-color: var(--gestta-laranja, #F26522);
    color: var(--gestta-laranja-esc, #C44C0F);
    box-shadow: 0 2px 8px rgba(47,111,176,0.18);
    transform: rotate(90deg);
}
.sidebar-engrenagem.ativo {
    background: linear-gradient(135deg, var(--gestta-laranja) 0%, var(--gestta-laranja-esc) 100%);
    border-color: var(--gestta-laranja-esc, #C44C0F);
    color: #fff;
    box-shadow: 0 2px 8px rgba(47,111,176,0.25);
}
.sidebar-rodape .rodape-texto {
    min-width: 0;
    line-height: 1.4;
}

/* BOTÃO GESTTA na base da sidebar — contorno laranja (mesmo estilo dos
   botões "Baixar"); vira laranja sólido no hover. */
.sidebar-gestta {
    padding: 0 18px 6px;
}
.sidebar-gestta form { margin: 0; }
.sidebar-gestta-btn {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 12px;
    background: var(--gestta-bg, #fff);
    color: var(--gestta-laranja-esc, #C44C0F);
    border: 1px solid var(--gestta-laranja, #F26522);
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    text-align: center;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.sidebar-gestta-btn:hover:not(:disabled) {
    background: var(--gestta-laranja, #F26522);
    color: #fff;
    box-shadow: 0 2px 8px rgba(47,111,176,0.22);
}
.sidebar-gestta-btn:disabled {
    background: var(--gestta-bg-sec, #F5F5F5);
    color: var(--gestta-text-muted, #6B6B6B);
    border-color: var(--gestta-border, #E0E0E0);
    cursor: wait;
}

/* ============================================================
   AZUL CORPORATIVO — SIDEBAR ESCURA (bloco final: vence os anteriores)
   Sidebar azul-petróleo com texto claro; a logo ganha um "card" branco
   no topo pra continuar nítida (a arte é preta+dourada em fundo transparente).
   ============================================================ */
.sidebar {
    background: linear-gradient(180deg, #243345 0%, #1B2632 100%) !important;
    border-right: 1px solid #141C26 !important;
    box-shadow: 1px 0 0 rgba(0,0,0,0.10), 4px 0 16px rgba(0,0,0,0.18) !important;
}
.sidebar::before {
    background: linear-gradient(180deg, transparent, rgba(255,255,255,0.07) 30%, rgba(255,255,255,0.07) 70%, transparent) !important;
}
.sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.18) !important; }
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.32) !important; }

/* Logo dentro de um card claro pra não sumir no fundo escuro */
.sidebar-marca {
    background: #FFFFFF !important;
    border: 1px solid rgba(255,255,255,0.9) !important;
    border-radius: 12px !important;
    margin: 14px 14px 8px !important;
    padding: 1.05rem 1rem 0.85rem !important;
    box-shadow: 0 2px 10px rgba(0,0,0,0.22) !important;
}
.sidebar-marca .subtitulo {
    color: #235488 !important;
    border-top: 1px solid rgba(35,84,136,0.18) !important;
}

/* Separadores e títulos de seção em tom claro translúcido */
.sidebar-nav .depto + .depto { border-top: 1px solid rgba(255,255,255,0.10) !important; }
.sidebar-nav .secao { color: rgba(199,210,222,0.62) !important; }
.sidebar-nav .secao .secao-icone { opacity: 0.85 !important; }

/* Links: texto claro, hover com leve realce branco; ativo continua azul */
.sidebar-nav a { color: #C7D2DE !important; }
.sidebar-nav a .icone { color: #8FB4D8 !important; opacity: 0.9; }
.sidebar-nav a:hover {
    background: rgba(255,255,255,0.07) !important;
    color: #FFFFFF !important;
}
.sidebar-nav a:hover .icone { color: #FFFFFF !important; }

/* Subitens */
.sidebar-nav a.subitem { color: #A9B7C6 !important; }
.sidebar-nav a.subitem::before { background: rgba(255,255,255,0.28) !important; }
.sidebar-nav a.subitem:hover { background: rgba(255,255,255,0.07) !important; color: #FFFFFF !important; }

/* Bloco de baixo (engrenagem/Configurações) */
.sidebar-nav-bottom { border-top: 1px solid rgba(255,255,255,0.10) !important; }
.sidebar-nav-bottom a .icone { color: #9FB1C4 !important; }
.sidebar-nav-bottom a:hover .icone { color: #FFFFFF !important; }

/* Rodapé: nome AGOS + versão em cinza-claro */
.sidebar-rodape .rodape-texto,
.sidebar-rodape .rodape-texto div { color: #9FB1C4 !important; }
.sidebar-rodape .rodape-texto .versao { color: #74859A !important; }

/* Engrenagem de Configurações sobre o escuro */
.sidebar-engrenagem {
    background: rgba(255,255,255,0.06) !important;
    border: 1px solid rgba(255,255,255,0.16) !important;
    color: #C7D2DE !important;
}
.sidebar-engrenagem:hover {
    background: rgba(255,255,255,0.12) !important;
    border-color: #5B9BD5 !important;
    color: #FFFFFF !important;
}

/* ============================================================
   CARD "O QUE O ROBÔ FAZ" (página Vigências / Escrita Fiscal)
   ============================================================ */
.card-explica { border-left: 3px solid var(--gestta-laranja) !important; }
.passos-robo {
    list-style: none;
    margin: 4px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.passos-robo li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    font-size: 0.92rem;
    line-height: 1.5;
    color: var(--gestta-text);
}
.passos-robo .passo-num {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--gestta-laranja) 0%, var(--gestta-laranja-esc) 100%);
    color: #fff;
    font-size: 0.82rem;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(47,111,176,0.25);
}
.passos-robo li > div { padding-top: 2px; }
.explica-rodape {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--gestta-border);
}
.explica-tag {
    font-size: 0.78rem;
    color: var(--gestta-text-muted);
    background: var(--gestta-bg-sec);
    border: 1px solid var(--gestta-border);
    border-radius: 999px;
    padding: 4px 12px;
    font-weight: 500;
}
.explica-tag b { color: var(--gestta-text); font-weight: 600; }
.explica-tag.tag-alerta {
    color: #B45F04;
    background: var(--gestta-warn-soft);
    border-color: #E6C079;
    font-weight: 600;
}

/* Versão COMPACTA do "O que este robô faz" (demais páginas) */
.card-explica-mini { padding-top: 16px !important; padding-bottom: 16px !important; }
.explica-mini { display: flex; align-items: flex-start; gap: 14px; }
.explica-mini-ico {
    flex: 0 0 auto;
    width: 40px; height: 40px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.3rem;
    border-radius: 10px;
    background: var(--gestta-laranja-soft);
    border: 1px solid var(--gestta-border);
}
.explica-mini-txt h2 { margin: 0 0 3px !important; }
.explica-mini-txt p {
    margin: 0;
    color: var(--gestta-text-muted);
    font-size: 0.9rem;
    line-height: 1.55;
}
.explica-mini-txt p b { color: var(--gestta-text); font-weight: 600; }
.card-explica-mini .explica-rodape { margin-top: 12px; padding-top: 12px; }

/* ============================================================
   POLIMENTO do card "O que este robô faz" — toque profissional
   (gradiente suave, brilho azul, elevação no hover, entrada animada)
   ============================================================ */
.card-explica {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #FFFFFF 0%, #F3F8FD 100%) !important;
    border: 1px solid var(--gestta-border) !important;
    border-left: 0 !important;
    box-shadow: 0 1px 3px rgba(27,36,48,0.05),
                0 10px 26px -14px rgba(47,111,176,0.22) !important;
    transition: transform .2s ease, box-shadow .2s ease !important;
    animation: explica-in .5s cubic-bezier(.16,.84,.44,1) both;
}
/* Faixa de destaque em degradê na lateral esquerda */
.card-explica::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--gestta-laranja) 0%, var(--gestta-laranja-esc) 100%);
}
/* Brilho decorativo bem sutil no canto superior direito */
.card-explica::after {
    content: '';
    position: absolute;
    top: -60px; right: -40px;
    width: 180px; height: 180px;
    background: radial-gradient(circle, rgba(47,111,176,0.10) 0%, rgba(47,111,176,0) 70%);
    pointer-events: none;
}
.card-explica:hover {
    transform: translateY(-2px);
    box-shadow: 0 2px 6px rgba(27,36,48,0.06),
                0 18px 38px -16px rgba(47,111,176,0.32) !important;
}
@keyframes explica-in {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Ícone com acabamento "chip" brilhante */
.explica-mini-ico {
    background: radial-gradient(circle at 30% 25%, #EFF6FC 0%, #DCEBF8 100%) !important;
    border: 1px solid #CBDDEF !important;
    box-shadow: inset 0 1px 0 #FFFFFF, 0 3px 8px rgba(47,111,176,0.14) !important;
    transition: transform .2s ease;
}
.card-explica:hover .explica-mini-ico { transform: scale(1.06) rotate(-2deg); }

/* Etiquetas com leve relevo */
.explica-tag {
    box-shadow: 0 1px 2px rgba(27,36,48,0.04);
    transition: transform .15s ease, box-shadow .15s ease;
}
.explica-tag:hover { transform: translateY(-1px); box-shadow: 0 2px 6px rgba(27,36,48,0.08); }

/* Número dos passos (versão completa, página Vigências) com brilho */
.passos-robo .passo-num {
    box-shadow: 0 3px 8px rgba(47,111,176,0.30), inset 0 1px 0 rgba(255,255,255,0.25);
}

@media (prefers-reduced-motion: reduce) {
    .card-explica { animation: none; }
}

/* ============ Botões de busca (Agência Net / ISS / Rodar os dois) ============ */
.acoes-busca {
    display: flex;
    align-items: stretch;
    gap: 10px;
    flex-wrap: wrap;
}
.acoes-busca .btn-busca {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    padding: 8px 18px;
    border-radius: var(--raio-btn, 8px);
    font-weight: 600;
    border: 1px solid transparent;
    color: #fff;
    cursor: pointer;
    line-height: 1.25;
    box-shadow: 0 1px 0 rgba(0,0,0,0.04), inset 0 1px 0 rgba(255,255,255,0.15);
}
.acoes-busca .btn-busca .btn-busca-sub { font-weight: 400; opacity: 0.9; font-size: 0.78em; }
.acoes-busca .btn-busca:disabled {
    background: var(--bg-soft) !important;
    color: var(--texto-fraco) !important;
    border-color: var(--hairline) !important;
    box-shadow: none;
    cursor: default;
}
button.btn-agencia { background: var(--dourado, #2F6FB0); border-color: var(--dourado, #2F6FB0); }
button.btn-agencia:hover:not(:disabled) { background: var(--dourado-esc, #235488); border-color: var(--dourado-esc, #235488); }
button.btn-iss { background: var(--azul-info, #2A5B7A); border-color: var(--azul-info, #2A5B7A); }
button.btn-iss:hover:not(:disabled) { filter: brightness(1.12); }
button.btn-rodar-tudo { background: var(--verde, #2D6A3F); border-color: var(--verde, #2D6A3F); }
button.btn-rodar-tudo:hover:not(:disabled) { background: var(--verde-clar, #4A8956); border-color: var(--verde-clar, #4A8956); }
.busca-status { font-size: 13px; color: var(--texto-fraco, #666); flex-basis: 100%; margin-top: 2px; }

/* ==============================================================
   HOME / AURA — página inicial (landing)
   ============================================================== */
@keyframes aura-rise {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes aura-spin { to { transform: rotate(360deg); } }
@keyframes aura-pulse {
    0%, 100% { opacity: 0.9; }
    50%      { opacity: 0.5; }
}

/* Item "Início" no topo da sidebar */
.sidebar-nav .sidebar-inicio { margin: 0 0 var(--sp-4); }

/* ---------- HERO ---------- */
.aura-hero {
    position: relative;
    background:
        radial-gradient(130% 160% at 100% 0%, #EAF1FA 0%, rgba(234,241,250,0) 52%),
        var(--bg-card);
    border: 1px solid var(--hairline);
    border-radius: 14px;
    padding: var(--sp-7) var(--sp-6);
    margin-bottom: var(--sp-5);
    overflow: hidden;
    box-shadow: var(--sombra-card);
    animation: aura-rise 0.5s ease both;
}
.aura-hero-glow {
    position: absolute;
    top: -120px; right: -80px;
    width: 320px; height: 320px;
    background: radial-gradient(circle, rgba(91,155,213,0.18) 0%, rgba(91,155,213,0) 70%);
    pointer-events: none;
}
.aura-hero-top {
    position: relative;
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: var(--sp-5);
}
.aura-mark { flex: none; width: 56px; height: 56px; display: inline-flex; }
.aura-mark svg { width: 100%; height: 100%; display: block; }
.aura-mark-irrad { transform-origin: 24px 24px; animation: aura-spin 22s linear infinite; }
.aura-mark-halo  { transform-origin: 24px 24px; animation: aura-pulse 4s ease-in-out infinite; }

.aura-wordmark { display: flex; flex-direction: column; gap: 3px; }
.aura-logo {
    font-family: var(--fonte-marca);
    font-weight: 700;
    font-size: 30px;
    letter-spacing: 0.20em;
    line-height: 1;
    background: linear-gradient(90deg, var(--dourado-esc), var(--dourado-clar));
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: var(--dourado-esc);
}
.aura-hero-sub {
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--texto-muted);
    font-weight: 600;
}
.aura-hero-titulo {
    position: relative;
    font-family: var(--fonte-marca);
    font-weight: 600;
    font-size: 26px;
    line-height: 1.2;
    letter-spacing: -0.01em;
    color: var(--texto);
    margin: 0 0 var(--sp-3);
}
.aura-hero-titulo em { font-style: normal; color: var(--dourado-esc); }
.aura-hero-desc {
    position: relative;
    max-width: 720px;
    font-size: 14.5px;
    line-height: 1.62;
    color: var(--texto-suave);
    margin: 0 0 var(--sp-5);
}
.aura-hero-selos { position: relative; display: flex; flex-wrap: wrap; gap: 10px; }
.aura-selo {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 600;
    padding: 6px 13px;
    border-radius: 99px;
    border: 1px solid var(--hairline);
    background: var(--bg-soft);
    color: var(--texto-suave);
}
.aura-selo-exc {
    border-color: var(--dourado-clar);
    background: var(--dourado-soft);
    color: var(--dourado-esc);
}

/* ---------- AVISO DE MONITORAMENTO (sóbrio) ---------- */
.aura-aviso {
    display: flex;
    align-items: center;
    gap: 13px;
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    border-left: 3px solid var(--dourado);
    border-radius: 8px;
    padding: 13px var(--sp-4);
    margin-bottom: var(--sp-6);
    box-shadow: var(--sombra-card);
    animation: aura-rise 0.5s ease both;
    animation-delay: 0.05s;
}
.aura-aviso-ico { flex: none; display: inline-flex; color: var(--dourado-esc); }
.aura-aviso p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--texto-muted); }
.aura-aviso strong { color: var(--texto-suave); }

/* ---------- SEÇÕES ---------- */
.aura-secao { margin-bottom: var(--sp-6); }
.aura-secao-cab { display: flex; align-items: center; gap: 9px; margin-bottom: var(--sp-3); }
.aura-secao-ico { font-size: 15px; }
.aura-secao-cab h2 {
    font-family: var(--fonte-marca);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    font-weight: 700;
    color: var(--texto-muted);
    margin: 0;
}

/* ---------- CARD DESTAQUE (módulo principal) ---------- */
.aura-destaque {
    --accent: var(--dourado);
    --accent-soft: var(--dourado-soft);
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--sp-5);
    background:
        linear-gradient(100deg, var(--accent-soft) 0%, rgba(255,255,255,0) 40%),
        var(--bg-card);
    border: 1px solid var(--hairline);
    border-radius: 12px;
    padding: var(--sp-5);
    margin-bottom: var(--sp-4);
    color: var(--texto);
    text-decoration: none;
    box-shadow: var(--sombra-card);
    overflow: hidden;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    animation: aura-rise 0.5s ease both;
}
.aura-destaque::before {
    content: "";
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: var(--accent);
}
.aura-destaque:hover {
    transform: translateY(-3px);
    box-shadow: var(--sombra-pop);
    border-color: var(--accent);
    color: var(--texto);
}
.aura-destaque:last-child { margin-bottom: 0; }
.aura-destaque-ico {
    flex: none;
    width: 60px; height: 60px;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 28px;
    border-radius: 14px;
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    box-shadow: var(--sombra-card);
}
.aura-destaque-corpo { display: flex; flex-direction: column; gap: 5px; min-width: 0; flex: 1; }
.aura-destaque-tag {
    align-self: flex-start;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    color: var(--accent);
    background: var(--accent-soft);
    padding: 3px 9px;
    border-radius: 99px;
}
.aura-destaque-titulo { font-family: var(--fonte-marca); font-weight: 600; font-size: 19px; color: var(--texto); }
.aura-destaque-desc { font-size: 13px; line-height: 1.55; color: var(--texto-muted); max-width: 620px; }
.aura-destaque-cta {
    flex: none;
    display: inline-flex; align-items: center; gap: 7px;
    font-weight: 600; font-size: 13.5px;
    color: var(--accent);
    white-space: nowrap;
}
.aura-destaque .aura-card-seta { margin-left: 0; transform: translateX(0); color: var(--accent); }
.aura-destaque:hover .aura-card-seta { transform: translateX(3px); }

/* ---------- GRID DE CARDS (2 colunas, fecha certo) ---------- */
.aura-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--sp-4);
}

/* ---------- CARD CLICÁVEL ---------- */
.aura-card {
    --accent: var(--dourado);
    --accent-soft: var(--dourado-soft);
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    height: 100%;
    background: var(--bg-card);
    border: 1px solid var(--hairline);
    border-radius: 10px;
    padding: var(--sp-4) var(--sp-5);
    color: var(--texto);
    text-decoration: none;
    box-shadow: var(--sombra-card);
    overflow: hidden;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
    animation: aura-rise 0.5s ease both;
    animation-delay: calc(var(--i, 0) * 70ms);
}
.aura-card::before {
    content: "";
    position: absolute;
    left: 0; top: 0;
    height: 3px;
    width: 100%;
    background: var(--accent);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.25s ease;
}
.aura-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--sombra-pop);
    border-color: var(--accent);
    color: var(--texto);
}
.aura-card:hover::before { transform: scaleX(1); }
.aura-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.aura-card-ico {
    flex: none;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    border-radius: 10px;
    background: var(--accent-soft);
    transition: transform 0.25s ease;
}
.aura-card:hover .aura-card-ico { transform: scale(1.08) rotate(-3deg); }

.aura-card-corpo { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.aura-card-chip {
    align-self: flex-start;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-weight: 700;
    color: var(--texto-fraco);
    margin-bottom: 1px;
}
.aura-card-titulo { font-family: var(--fonte-marca); font-weight: 600; font-size: 15px; color: var(--texto); }
.aura-card-desc { font-size: 12.5px; line-height: 1.5; color: var(--texto-muted); }

.aura-card-seta {
    margin-left: auto;
    align-self: center;
    font-size: 18px;
    color: var(--texto-fraco);
    transform: translateX(-2px);
    transition: transform 0.2s ease, color 0.2s ease;
}
.aura-card:hover .aura-card-seta { transform: translateX(3px); color: var(--accent); }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 860px) {
    .aura-grid { grid-template-columns: 1fr; }
    .aura-destaque { flex-direction: column; align-items: flex-start; gap: var(--sp-4); }
    .aura-destaque-cta { align-self: flex-start; }
    .aura-hero { padding: var(--sp-6) var(--sp-5); }
    .aura-hero-titulo { font-size: 22px; }
}

@media (prefers-reduced-motion: reduce) {
    .aura-hero, .aura-aviso, .aura-card, .aura-destaque,
    .aura-mark-irrad, .aura-mark-halo { animation: none; }
    .aura-card, .aura-card::before, .aura-card-ico, .aura-card-seta { transition: none; }
}

/* ============ ESPELHO — botão na topbar + modal "tela do robô (Domínio) ao vivo" ============ */
button.btn-espelho {
    background: var(--dourado-soft);
    color: var(--dourado-esc);
    border: 1px solid var(--dourado-clar);
    font-weight: 600;
    padding: 7px 14px;
    white-space: nowrap;
}
button.btn-espelho:hover {
    background: var(--dourado);
    color: #fff;
    border-color: var(--dourado);
}

.modal-espelho {
    position: fixed;
    inset: 0;
    z-index: 60;                 /* acima de sidebar(10) e topbar(5) */
    display: none;               /* vira flex via JS ao abrir */
    align-items: center;
    justify-content: center;
    background: rgba(10, 14, 20, 0.80);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    padding: 24px;
}
.modal-espelho .esp-janela {
    background: #0f1216;
    color: #e7eaee;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.55);
    width: min(1120px, 96vw);
    max-height: 94vh;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.modal-espelho .esp-topo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    background: #151a20;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.modal-espelho .esp-titulo { font-weight: 600; font-size: 14px; }
.modal-espelho .esp-status { margin-left: auto; font-size: 12px; color: #9fb6c9; white-space: nowrap; }
.modal-espelho .esp-status.vivo { color: #46d369; }
.modal-espelho .esp-fechar {
    background: transparent;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #e7eaee;
    padding: 3px 10px;
    border-radius: 5px;
    font-size: 14px;
    line-height: 1.2;
}
.modal-espelho .esp-fechar:hover { background: rgba(255, 255, 255, 0.08); border-color: rgba(255,255,255,0.30); }
.modal-espelho .esp-corpo {
    position: relative;
    flex: 1;
    min-height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #0a0d10;
    padding: 10px;
}
.modal-espelho .esp-corpo img {
    display: none;               /* mostra após o 1º quadro chegar */
    max-width: 100%;
    max-height: 76vh;
    border-radius: 4px;
    box-shadow: 0 0 18px rgba(0, 0, 0, 0.6);
}
.modal-espelho .esp-placeholder { color: #7f8c99; font-size: 13px; text-align: center; padding: 30px; }
.modal-espelho .esp-dica {
    padding: 8px 14px;
    font-size: 12px;
    color: #8a98a6;
    background: #0f1216;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

/* ==================================================================
   ███  AURA · DASHBOARD PREMIUM (v2)  ███
   Padrão visual SaaS (Stripe / Linear / Vercel / Mercury).
   Sidebar navy global + tela inicial redesenhada.
   ================================================================== */

:root {
    --c-blue:        #2563EB;
    --c-blue-700:    #1D4FD8;
    --c-blue-400:    #60A5FA;
    --c-blue-soft:   #EFF4FE;
    --c-navy:        #08111F;
    --c-navy-2:      #0B1726;
    --c-green:       #22C55E;
    --c-green-soft:  #E7F8EE;
    --c-gold:        #C9A24B;
    --c-gold-soft:   #F6EFDD;

    --d-bg:          #F7F9FC;
    --d-card:        #FFFFFF;
    --d-line:        #E8EDF4;
    --d-line-2:      #EEF2F8;
    --d-ink:         #0F1B2D;
    --d-ink-2:       #44566E;
    --d-ink-3:       #7A8AA0;

    --d-r-lg:        20px;
    --d-r-md:        16px;
    --d-r-sm:        12px;

    --d-shadow:      0 1px 2px rgba(16,32,55,.04), 0 10px 28px -16px rgba(16,32,55,.18);
    --d-shadow-pop:  0 2px 6px rgba(16,32,55,.06), 0 18px 40px -18px rgba(16,32,55,.28);
}

/* ============================================================
   SIDEBAR — NAVY PREMIUM (global, todas as páginas)
   ============================================================ */
.sidebar {
    background:
        radial-gradient(120% 80% at 0% 0%, rgba(37,99,235,.16) 0%, rgba(37,99,235,0) 46%),
        linear-gradient(180deg, #0B1828 0%, var(--c-navy) 60%, #060D17 100%);
    border-right: 1px solid rgba(255,255,255,.06);
    box-shadow: inset -1px 0 0 rgba(0,0,0,.2);
    padding: 18px 0 14px;
}

.sidebar-marca {
    padding: 4px 18px 16px;
    border-bottom: 1px solid rgba(255,255,255,.07);
    margin-bottom: 12px;
}
.sb-brand { display: flex; align-items: center; gap: 11px; text-decoration: none; }
.sb-brand-mark {
    flex: none; width: 38px; height: 38px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 11px;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.08);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
.sb-brand-mark svg { width: 23px; height: 23px; display: block; }
.sb-brand-txt { display: flex; flex-direction: column; line-height: 1; }
.sb-brand-name {
    font-family: var(--fonte-marca);
    font-weight: 800;
    font-size: 19px;
    letter-spacing: .14em;
    color: #fff;
}
.sb-brand-sub {
    margin-top: 4px;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--c-gold);
}

.sidebar-nav { padding: 0 12px; gap: 3px; }
.sidebar-nav .depto { display: flex; flex-direction: column; gap: 3px; }
.sidebar-nav .secao {
    display: flex; align-items: center; gap: 7px;
    padding: 16px 12px 7px;
    font-size: 10px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .12em;
    color: #5E708A;
}
.sidebar-nav .secao-icone { display: inline-flex; opacity: .8; }
.sidebar-nav .secao-icone svg { width: 14px; height: 14px; }

.sidebar-nav a {
    display: flex; align-items: center; gap: 11px;
    padding: 9px 11px;
    border-radius: 10px;
    color: #AAB7C9;
    font-size: 13.5px; font-weight: 500;
    position: relative;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.sidebar-nav a .icone { width: 20px; height: 20px; color: #8595AB; transition: color .15s ease; }
.sidebar-nav a .icone svg { width: 19px; height: 19px; display: block; }
.sidebar-nav a:hover { background: rgba(255,255,255,.05); color: #EAF1FB; }
.sidebar-nav a:hover .icone { color: #CFE0F6; }

.sidebar-nav a.ativo {
    background: linear-gradient(100deg, rgba(37,99,235,.30), rgba(37,99,235,.12));
    color: #fff; font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(96,165,250,.35), 0 8px 22px -10px rgba(37,99,235,.9);
}
.sidebar-nav a.ativo .icone { color: #fff; }
.sidebar-nav a.ativo::before {
    content: ""; position: absolute; left: -12px; top: 50%; transform: translateY(-50%);
    width: 3px; height: 22px; border-radius: 0 3px 3px 0;
    background: linear-gradient(180deg, #93B8FF, var(--c-blue));
    box-shadow: 0 0 12px 1px rgba(96,165,250,.85);
}
.sidebar-nav .sidebar-inicio { margin: 0 0 6px; }

/* indicador da fila do Domínio (estava em <style> inline do _sidebar) */
.sb-fila { display:flex; align-items:center; gap:8px; margin:2px 12px 10px; padding:8px 11px;
           background:rgba(201,162,75,.12); border:1px solid rgba(201,162,75,.3); border-radius:10px;
           font-size:12px; color:#E7CE88; text-decoration:none; line-height:1.25; }
.sb-fila:hover { filter:brightness(1.08); }
.sb-fila.rodando { background:rgba(34,197,94,.14); border-color:rgba(34,197,94,.35); color:#86EFAC; }
.sb-fila-dot { width:8px; height:8px; border-radius:50%; background:#E7CE88; flex:0 0 auto; }
.sb-fila.rodando .sb-fila-dot { background:var(--c-green); animation:sbpulse 1.2s infinite; }
@keyframes sbpulse { 0%,100%{opacity:1} 50%{opacity:.3} }
.sb-fila-txt { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.sidebar-gestta { padding: 6px 12px 10px; }
.sidebar-gestta-btn {
    width: 100%;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 10px 12px;
    border-radius: 11px;
    font-family: var(--fonte-ui); font-size: 12.5px; font-weight: 600;
    color: #DCE6F4; cursor: pointer;
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.1);
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.sidebar-gestta-btn .gestta-icone { display: inline-flex; }
.sidebar-gestta-btn:hover {
    background: linear-gradient(100deg, rgba(37,99,235,.85), rgba(37,99,235,.65));
    border-color: rgba(96,165,250,.6); color: #fff;
}

.sidebar-rodape {
    padding: 12px 14px 4px; border-top: 1px solid rgba(255,255,255,.07);
}
.sb-user { display: flex; align-items: center; gap: 11px; }
.sb-user-avatar {
    flex: none; width: 36px; height: 36px; border-radius: 11px;
    display: inline-flex; align-items: center; justify-content: center;
    font-weight: 700; font-size: 15px; color: #fff;
    background: linear-gradient(140deg, var(--c-blue-400), var(--c-blue-700));
    box-shadow: 0 6px 16px -6px rgba(37,99,235,.9);
}
.sb-user-meta { min-width: 0; flex: 1; }
.sb-user-name { font-size: 13.5px; font-weight: 600; color: #F2F6FC; line-height: 1.2; }
.sb-user-role { font-size: 11px; color: #6E7F97; }
.sb-user-cfg {
    flex: none; width: 32px; height: 32px; border-radius: 9px;
    display: inline-flex; align-items: center; justify-content: center;
    color: #8595AB; border: 1px solid transparent; transition: all .15s ease;
}
.sb-user-cfg:hover, .sb-user-cfg.ativo { color: #fff; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); }
.sb-versao {
    margin-top: 10px; font-size: 10px; color: #4F6079;
    font-family: var(--fonte-mono); letter-spacing: .02em; text-align: center;
}

/* ============================================================
   DASHBOARD — tela inicial
   ============================================================ */
body.dash-theme { background: var(--d-bg); }
.main.dash { background: var(--d-bg); }

.dash-head {
    display: flex; align-items: flex-start; gap: 24px; flex-wrap: wrap;
    padding: 34px 40px 8px;
    max-width: 1340px; width: 100%; margin: 0 auto;
}
.dash-greet { flex: 1; min-width: 240px; }
.dash-saudacao {
    font-family: var(--fonte-marca);
    font-size: 28px; font-weight: 700; letter-spacing: -.02em;
    color: var(--d-ink); margin: 0; line-height: 1.15;
}
.dash-wave { display: inline-block; transform-origin: 70% 70%; animation: dash-wave 2.6s ease-in-out infinite; }
@keyframes dash-wave { 0%,60%,100%{transform:rotate(0)} 70%{transform:rotate(14deg)} 80%{transform:rotate(-8deg)} 90%{transform:rotate(12deg)} }
.dash-sub { margin: 6px 0 0; font-size: 14.5px; color: var(--d-ink-2); }

.dash-statusbox { display: flex; flex-direction: column; align-items: flex-end; gap: 9px; padding-top: 4px; }
.op-chip {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 7px 14px; border-radius: 99px;
    font-size: 12.5px; font-weight: 600; color: #15803D;
    background: var(--c-green-soft); border: 1px solid rgba(34,197,94,.28);
}
.op-chip .op-dot {
    width: 8px; height: 8px; border-radius: 50%; background: var(--c-green);
    box-shadow: 0 0 0 3px rgba(34,197,94,.18); animation: op-pulse 1.8s ease-in-out infinite;
}
@keyframes op-pulse { 0%,100%{box-shadow:0 0 0 3px rgba(34,197,94,.18)} 50%{box-shadow:0 0 0 6px rgba(34,197,94,0)} }
.op-chip.op-run { color: var(--c-blue-700); background: var(--c-blue-soft); border-color: rgba(37,99,235,.28); }
.op-chip.op-run .op-dot { background: var(--c-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.18); }
.op-sync { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--d-ink-3); }
.op-sync b { color: var(--d-ink-2); font-weight: 600; }

.dash-body { padding: 18px 40px 48px; max-width: 1340px; width: 100%; margin: 0 auto; }

/* ---------- KPIs ---------- */
.kpi-row {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
    margin-bottom: 22px;
}
.kpi-card {
    position: relative; overflow: hidden;
    background: var(--d-card); border: 1px solid var(--d-line);
    border-radius: var(--d-r-md); padding: 18px 20px;
    box-shadow: var(--d-shadow);
    /* Compacto: ícone AO LADO do nome/valor (linha 1) e variação embaixo (linha 2) */
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas: "ico meta" "trend trend";
    align-items: center;
    column-gap: 14px; row-gap: 11px;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    animation: dash-rise .5s ease both;
}
.kpi-card .kpi-ico { grid-area: ico; }
.kpi-card .kpi-meta { grid-area: meta; }
.kpi-card .kpi-trend { grid-area: trend; justify-self: start; }
.kpi-card:nth-child(2){animation-delay:.05s} .kpi-card:nth-child(3){animation-delay:.1s} .kpi-card:nth-child(4){animation-delay:.15s}
.kpi-card:hover { transform: translateY(-3px); box-shadow: var(--d-shadow-pop); border-color: #DCE5F0; }
.kpi-ico {
    width: 42px; height: 42px; border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
}
.kpi-ico svg { width: 22px; height: 22px; }
.kpi-ico-blue   { background: var(--c-blue-soft); color: var(--c-blue); }
.kpi-ico-violet { background: #F1ECFE; color: #7C3AED; }
.kpi-ico-green  { background: var(--c-green-soft); color: #16A34A; }
.kpi-ico-gold   { background: var(--c-gold-soft); color: #B0832E; }
.kpi-meta { display: flex; flex-direction: column; gap: 3px; }
.kpi-label { font-size: 12.5px; color: var(--d-ink-2); font-weight: 500; }
.kpi-value {
    font-family: var(--fonte-marca);
    font-size: 30px; font-weight: 700; letter-spacing: -.02em; color: var(--d-ink);
    line-height: 1; font-variant-numeric: tabular-nums;
}
.kpi-value small { font-size: 16px; font-weight: 600; color: var(--d-ink-3); margin-left: 1px; }
.kpi-trend {
    align-self: flex-start;
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11.5px; font-weight: 600; padding: 3px 9px; border-radius: 99px;
}
.kpi-trend svg { width: 12px; height: 12px; }
.kpi-trend-up { color: #15803D; background: var(--c-green-soft); }
.kpi-trend-down { color: #B42318; background: #FDECEA; }
.kpi-trend-neutral { color: var(--d-ink-3); background: #F1F5FA; }

/* ---------- GRID hero + lateral ---------- */
.dash-grid { display: grid; grid-template-columns: minmax(0,1fr) 340px; gap: 18px; align-items: start; }
.dash-col-main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

/* card genérico */
.card {
    background: var(--d-card); border: 1px solid var(--d-line);
    border-radius: var(--d-r-lg); box-shadow: var(--d-shadow);
}
.card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.card-title { font-family: var(--fonte-marca); font-size: 16px; font-weight: 700; color: var(--d-ink); margin: 0; letter-spacing: -.01em; }
.card-sub { margin: 3px 0 0; font-size: 12.5px; color: var(--d-ink-3); }

/* ---------- HERO + ORB ---------- */
.hero2 {
    position: relative; overflow: hidden;
    border-radius: var(--d-r-lg);
    background:
        radial-gradient(120% 130% at 88% 12%, rgba(37,99,235,.18) 0%, rgba(37,99,235,0) 48%),
        linear-gradient(150deg, #0B1A33 0%, var(--c-navy) 58%, #060D18 100%);
    border: 1px solid rgba(255,255,255,.06);
    box-shadow: 0 24px 60px -28px rgba(8,17,31,.6);
    display: grid; grid-template-columns: 1fr 300px; align-items: center;
    gap: 18px; padding: 40px 44px;
    animation: dash-rise .55s ease both;
}
.hero2-bg {
    position: absolute; inset: 0; pointer-events: none;
    background:
        radial-gradient(40% 50% at 12% 110%, rgba(37,99,235,.22), transparent 70%),
        radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.25), transparent),
        radial-gradient(1px 1px at 60% 20%, rgba(255,255,255,.18), transparent),
        radial-gradient(1px 1px at 80% 60%, rgba(255,255,255,.16), transparent);
}
.hero2-text { position: relative; max-width: 560px; }
.hero2-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 11.5px; font-weight: 600; letter-spacing: .04em;
    color: #9FC0FF; background: rgba(96,165,250,.12);
    border: 1px solid rgba(96,165,250,.22);
    padding: 5px 12px; border-radius: 99px; margin-bottom: 16px;
}
.hero2-eyebrow-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--c-blue-400); box-shadow: 0 0 8px 1px rgba(96,165,250,.9); animation: op-pulse 1.8s infinite; }
.hero2-title {
    font-family: var(--fonte-marca);
    font-size: 30px; font-weight: 700; line-height: 1.18; letter-spacing: -.02em;
    color: #fff; margin: 0 0 14px;
}
.hero2-title em {
    font-style: normal;
    background: linear-gradient(90deg, #93B8FF, var(--c-blue-400));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.hero2-desc { font-size: 14px; line-height: 1.65; color: #A9B9CE; margin: 0 0 22px; }
.hero2-desc b { color: #DCE7F6; font-weight: 600; }
.hero2-cta { display: flex; flex-wrap: wrap; gap: 12px; }

/* ---------- BOTÕES premium ---------- */
.btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 11px 18px; border-radius: 12px;
    font-family: var(--fonte-ui); font-size: 13.5px; font-weight: 600;
    cursor: pointer; text-decoration: none; border: 1px solid transparent;
    transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.btn svg { width: 16px; height: 16px; }
.btn-primary {
    color: #fff;
    background: linear-gradient(180deg, #3B82F6 0%, var(--c-blue) 55%, var(--c-blue-700) 100%);
    box-shadow: 0 1px 0 rgba(255,255,255,.18) inset, 0 10px 24px -10px rgba(37,99,235,.85);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 1px 0 rgba(255,255,255,.2) inset, 0 16px 32px -12px rgba(37,99,235,1); color: #fff; }
.btn-ghost {
    color: #DCE7F6; background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.14);
}
.btn-ghost:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.28); color: #fff; transform: translateY(-2px); }

/* ---------- ORB ---------- */
.hero2-orb-wrap { position: relative; display: flex; align-items: center; justify-content: center; height: 280px; }
.orb { position: relative; width: 240px; height: 240px; }
.orb-glow {
    position: absolute; inset: -28%; border-radius: 50%;
    background: radial-gradient(circle, rgba(59,130,246,.55) 0%, rgba(37,99,235,.18) 38%, transparent 66%);
    filter: blur(6px); animation: orb-breathe 5s ease-in-out infinite;
}
@keyframes orb-breathe { 0%,100%{transform:scale(1);opacity:.85} 50%{transform:scale(1.08);opacity:1} }
.orb-ring { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(147,184,255,.25); }
.orb-ring-1 { inset: -6%; border-color: rgba(147,184,255,.30); border-top-color: rgba(147,184,255,.9); animation: orb-spin 9s linear infinite; }
.orb-ring-2 { inset: 6%; border-color: rgba(147,184,255,.16); border-bottom-color: rgba(96,165,250,.7); animation: orb-spin 13s linear infinite reverse; }
@keyframes orb-spin { to { transform: rotate(360deg); } }
.orb-ball {
    position: absolute; inset: 12%; border-radius: 50%; overflow: hidden;
    background:
        radial-gradient(circle at 34% 30%, #BBD4FF 0%, #4C8DF6 26%, #2563EB 52%, #123A8A 78%, #0A1E4D 100%);
    box-shadow:
        inset 0 0 40px rgba(8,20,55,.7),
        inset -8px -10px 30px rgba(5,12,35,.8),
        inset 10px 12px 26px rgba(186,212,255,.45),
        0 20px 50px -16px rgba(37,99,235,.85);
}
.orb-swirl {
    position: absolute; inset: -20%;
    background: conic-gradient(from 0deg, transparent 0deg, rgba(186,212,255,.32) 60deg, transparent 130deg, rgba(96,165,250,.28) 220deg, transparent 300deg);
    animation: orb-spin 7s linear infinite; mix-blend-mode: screen;
}
.orb-shine {
    position: absolute; width: 46%; height: 38%; left: 18%; top: 14%;
    border-radius: 50%;
    background: radial-gradient(circle at 40% 40%, rgba(255,255,255,.9), rgba(255,255,255,0) 70%);
    filter: blur(1px); animation: orb-shine 6s ease-in-out infinite;
}
@keyframes orb-shine { 0%,100%{transform:translate(0,0);opacity:.85} 50%{transform:translate(8px,6px);opacity:1} }
.orb-core {
    position: absolute; left: 50%; top: 50%; width: 22%; height: 22%;
    transform: translate(-50%,-50%); border-radius: 50%;
    background: radial-gradient(circle, rgba(255,255,255,.95), rgba(186,212,255,.4) 60%, transparent 72%);
    animation: orb-breathe 3.4s ease-in-out infinite;
}
.orb-particles span {
    position: absolute; width: 4px; height: 4px; border-radius: 50%;
    background: #BFD7FF; box-shadow: 0 0 8px 1px rgba(147,184,255,.9);
    opacity: .8;
}
.orb-particles span:nth-child(1){ left:6%;  top:30%; animation: orb-float 4.5s ease-in-out infinite; }
.orb-particles span:nth-child(2){ left:92%; top:40%; animation: orb-float 5.5s ease-in-out infinite .4s; }
.orb-particles span:nth-child(3){ left:20%; top:84%; animation: orb-float 6s ease-in-out infinite .8s; }
.orb-particles span:nth-child(4){ left:80%; top:80%; animation: orb-float 5s ease-in-out infinite .2s; }
.orb-particles span:nth-child(5){ left:50%; top:2%;  animation: orb-float 6.5s ease-in-out infinite 1s; width:3px;height:3px; }
.orb-particles span:nth-child(6){ left:2%;  top:62%; animation: orb-float 5.2s ease-in-out infinite .6s; width:3px;height:3px; }
.orb-particles span:nth-child(7){ left:70%; top:10%; animation: orb-float 4.8s ease-in-out infinite 1.2s; width:3px;height:3px; }
.orb-particles span:nth-child(8){ left:36%; top:96%; animation: orb-float 5.8s ease-in-out infinite .3s; width:3px;height:3px; }
@keyframes orb-float { 0%,100%{transform:translateY(0) scale(1);opacity:.45} 50%{transform:translateY(-12px) scale(1.25);opacity:1} }

/* ---------- GRÁFICO ---------- */
.chart-card { padding: 22px 24px 16px; animation: dash-rise .55s ease both .08s; }
.chart-summary { text-align: right; }
.chart-total { display: block; font-family: var(--fonte-marca); font-size: 24px; font-weight: 700; color: var(--d-ink); line-height: 1; font-variant-numeric: tabular-nums; }
.chart-total-label { font-size: 11px; color: var(--d-ink-3); text-transform: uppercase; letter-spacing: .06em; font-weight: 600; }
.chart-wrap { position: relative; margin-top: 16px; }
.chart-svg { width: 100%; height: 200px; display: block; overflow: visible; }
.chart-dot { fill: #fff; stroke: var(--c-blue); stroke-width: 2.5; opacity: 0; transition: opacity .15s ease; cursor: pointer; }
.chart-dot:hover { opacity: 1; }
.chart-xaxis { display: flex; justify-content: space-between; margin-top: 8px; padding: 0 2px; }
.chart-xaxis span { font-size: 11px; color: var(--d-ink-3); font-variant-numeric: tabular-nums; }
.chart-tip {
    position: absolute; transform: translate(-50%, -130%);
    background: var(--c-navy); color: #fff; padding: 7px 11px; border-radius: 9px;
    font-size: 12px; line-height: 1.35; white-space: nowrap; pointer-events: none;
    box-shadow: 0 10px 24px -8px rgba(8,17,31,.6); z-index: 3;
}
.chart-tip b { font-size: 14px; }
.chart-tip span { color: #9FB3CC; }

/* ---------- AURA STATUS (lateral) ---------- */
.dash-col-side { display: flex; flex-direction: column; gap: 18px; }
.status-panel { padding: 20px 20px 8px; animation: dash-rise .55s ease both .12s; }
.status-head { align-items: center; margin-bottom: 6px; }
.status-head-l { display: flex; align-items: center; gap: 9px; }
.status-head-spark {
    width: 26px; height: 26px; border-radius: 8px; flex: none;
    background: radial-gradient(circle at 35% 30%, #93B8FF, var(--c-blue) 70%);
    box-shadow: 0 0 0 4px rgba(37,99,235,.1), 0 6px 14px -6px rgba(37,99,235,.8);
    position: relative;
}
.status-head-spark::after {
    content: ""; position: absolute; inset: 0; border-radius: 8px;
    background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.85), transparent 55%);
    animation: op-pulse 2.2s ease-in-out infinite;
}
.status-live { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: var(--d-ink-3); text-transform: uppercase; letter-spacing: .05em; }
.status-live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--c-green); box-shadow: 0 0 0 3px rgba(34,197,94,.18); animation: op-pulse 1.8s infinite; }

.robo-list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; }
.robo-item {
    display: flex; align-items: center; gap: 12px;
    padding: 11px 10px; border-radius: 12px; text-decoration: none;
    color: var(--d-ink); transition: background .14s ease;
}
.robo-item + .robo-item, .robo-list li + li .robo-item { position: relative; }
.robo-item:hover { background: var(--d-bg); }
.robo-ico {
    width: 34px; height: 34px; flex: none; border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    background: #F1F5FB; color: var(--d-ink-2); border: 1px solid var(--d-line-2);
}
.robo-ico svg { width: 18px; height: 18px; }
.robo-name { flex: 1; font-size: 13.5px; font-weight: 600; color: var(--d-ink); }
.robo-state { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; padding: 4px 9px; border-radius: 99px; white-space: nowrap; }
.robo-dot { width: 7px; height: 7px; border-radius: 50%; }
.robo-state.is-on { color: #15803D; background: var(--c-green-soft); }
.robo-state.is-on .robo-dot { background: var(--c-green); box-shadow: 0 0 0 3px rgba(34,197,94,.16); }
.robo-state.is-run { color: var(--c-blue-700); background: var(--c-blue-soft); }
.robo-state.is-run .robo-dot { background: var(--c-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.16); animation: op-pulse 1.4s infinite; }

.status-foot {
    display: flex; align-items: flex-start; gap: 8px;
    margin-top: 8px; padding: 13px 4px 6px; border-top: 1px solid var(--d-line-2);
    font-size: 11.5px; line-height: 1.45; color: var(--d-ink-3);
}
.status-foot svg { flex: none; color: var(--c-gold); margin-top: 1px; }

@keyframes dash-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* ---------- RESPONSIVO ---------- */
@media (max-width: 1180px) {
    .dash-grid { grid-template-columns: 1fr; }
    .dash-col-side { flex-direction: row; flex-wrap: wrap; }
    .dash-col-side .status-panel { flex: 1; min-width: 280px; }
}
@media (max-width: 920px) {
    .kpi-row { grid-template-columns: repeat(2, 1fr); }
    .hero2 { grid-template-columns: 1fr; }
    .hero2-orb-wrap { height: 220px; order: -1; }
    .orb { width: 180px; height: 180px; }
    .dash-head, .dash-body { padding-left: 22px; padding-right: 22px; }
}
@media (max-width: 560px) {
    .kpi-row { grid-template-columns: 1fr; }
    .dash-statusbox { align-items: flex-start; }
    .hero2 { padding: 28px 24px; }
    .dash-saudacao { font-size: 23px; }
}
@media (prefers-reduced-motion: reduce) {
    .dash-wave, .orb-glow, .orb-ring, .orb-swirl, .orb-shine, .orb-core, .orb-particles span,
    .op-dot, .status-live-dot, .hero2-eyebrow-dot, .kpi-card, .hero2, .chart-card, .status-panel,
    .status-head-spark::after, .robo-state.is-run .robo-dot { animation: none; }
    .kpi-card { transition: none; }
}

/* ==================================================================
   OVERRIDE FINAL — derruba os temas LEGADOS da sidebar (laranja Gestta
   + navy antigo, ambos cheios de !important). Este bloco é o último do
   arquivo e usa !important, então vence todos eles. Aplica o navy do
   spec (#08111F) e o realce azul com glow no item ativo.
   ================================================================== */
.sidebar {
    background:
        radial-gradient(120% 80% at 0% 0%, rgba(37,99,235,.16) 0%, rgba(37,99,235,0) 46%),
        linear-gradient(180deg, #0B1828 0%, #08111F 60%, #060D17 100%) !important;
    border-right: 1px solid rgba(255,255,255,.06) !important;
    box-shadow: inset -1px 0 0 rgba(0,0,0,.2) !important;
}
.sidebar::before { display: none !important; }

.sidebar-marca {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid rgba(255,255,255,.07) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    margin: 0 0 12px !important;
    padding: 4px 18px 16px !important;
    text-align: left !important;
}

.sidebar-nav { padding: 0 12px !important; }
.sidebar-nav .secao { color: #5E708A !important; display: flex !important; }
.sidebar-nav .secao .secao-icone { opacity: .8 !important; }

.sidebar-nav a {
    color: #AAB7C9 !important;
    background: transparent !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    border-radius: 10px !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    transform: none !important;
}
.sidebar-nav a .icone { color: #8595AB !important; opacity: 1 !important; margin: 0 !important; }
.sidebar-nav a:hover {
    background: rgba(255,255,255,.05) !important;
    color: #EAF1FB !important;
    transform: none !important;
}
.sidebar-nav a:hover .icone { color: #CFE0F6 !important; }

.sidebar-nav a.ativo {
    background: linear-gradient(100deg, rgba(37,99,235,.30), rgba(37,99,235,.12)) !important;
    color: #fff !important;
    font-weight: 600 !important;
    box-shadow: inset 0 0 0 1px rgba(96,165,250,.35), 0 8px 22px -10px rgba(37,99,235,.9) !important;
}
.sidebar-nav a.ativo .icone { color: #fff !important; opacity: 1 !important; }

.sidebar-gestta-btn {
    background: rgba(255,255,255,.05) !important;
    border: 1px solid rgba(255,255,255,.1) !important;
    color: #DCE6F4 !important;
    border-radius: 11px !important;
}
.sidebar-gestta-btn:hover:not(:disabled) {
    background: linear-gradient(100deg, rgba(37,99,235,.85), rgba(37,99,235,.65)) !important;
    border-color: rgba(96,165,250,.6) !important;
    color: #fff !important;
    box-shadow: none !important;
}

/* ---- Sidebar responsiva: barra superior navy, limpa e rolável ---- */
@media (max-width: 980px) {
    .sidebar {
        flex-direction: row !important;
        align-items: center !important;
        height: auto !important;
        gap: 12px;
        padding: 10px 16px !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255,255,255,.07) !important;
        overflow: hidden;
    }
    .sidebar-marca {
        flex: none;
        border-bottom: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    .sb-brand-sub { display: none; }
    .sidebar-nav {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap;
        overflow-x: auto;
        margin: 0 0 0 6px !important;
        padding: 0 !important;
        gap: 4px;
        scrollbar-width: none;
    }
    .sidebar-nav::-webkit-scrollbar { height: 0; }
    .sidebar-nav .depto { display: contents; }
    .sidebar-nav .secao { display: none !important; }
    .sidebar-nav .sidebar-inicio { margin: 0 !important; }
    .sidebar-nav a {
        white-space: nowrap;
        padding: 7px 12px !important;
        font-size: 12.5px !important;
    }
    .sidebar-nav a .icone { display: inline-flex !important; }
    .sidebar-nav a.ativo::before { display: none !important; }
    .sb-fila, .sidebar-gestta, .sidebar-rodape { display: none !important; }
    .sb-logo { max-width: 124px !important; }
}

/* ==================================================================
   LOGO OFICIAL AGOS na sidebar (knockout branco p/ aparecer no navy)
   ================================================================== */
.sidebar-marca {
    padding: 14px 20px 18px !important;
    text-align: center !important;
}
.sb-brand { display: flex !important; align-items: center; justify-content: center; gap: 0; width: 100%; }
/* Logo oficial (1024×286) recortada em 2 faixas da MESMA imagem:
   - topo (≈73,4% → "AGOS") em branco (knockout)
   - base (≈26,6% → "ASSESSORIA CONTÁBIL") na cor original (dourado) */
.sb-logo { display: block; width: 100%; max-width: 188px; margin: 0 auto; }
.sb-logo-top, .sb-logo-bot {
    display: block; width: 100%;
    background-image: url('logo.png');
    background-repeat: no-repeat;
    background-size: 100% auto;
}
.sb-logo-top {
    aspect-ratio: 1024 / 210;
    background-position: top center;
    filter: brightness(0) invert(1);   /* AGOS todo branco */
    opacity: .96;
}
.sb-logo-bot {
    aspect-ratio: 1024 / 76;
    background-position: bottom center; /* ASSESSORIA CONTÁBIL na cor original */
}

/* ==================================================================
   ███  PÁGINA XMLs · DF — skin premium (escopo .main.dash)  ███
   Mantém todo o markup/JS funcional; só aplica a pele premium.
   ================================================================== */

/* ---- cabeçalho DF: título de página + espelho + pílula ---- */
.dash-statusbox-row { flex-direction: row; align-items: center; gap: 12px; }
.dash-sub-sep { color: var(--d-ink-3); margin: 0 4px; }
.dash-sub-ctx { color: var(--d-ink-3); }
.dash-eyebrow {
    font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
    color: var(--c-blue); margin-bottom: 7px;
}
.dash-titulo-pg {
    font-family: var(--fonte-marca); font-size: 27px; font-weight: 700; letter-spacing: -.02em;
    color: var(--d-ink); margin: 0; line-height: 1.15;
}
button.btn-espelho {
    height: 40px; border-radius: 12px;
    background: #fff; border: 1px solid #BFDBFE; color: #1D4ED8;
    font-weight: 600; font-size: 13px; padding: 0 14px; white-space: nowrap;
    display: inline-flex; align-items: center; gap: 7px;
    transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
button.btn-espelho:hover { background: #EFF6FF; border-color: #93C5FD; color: #1D4ED8; transform: translateY(-1px); }

/* ---- cards funcionais com pele premium (mesma margem das demais telas) ---- */
.main.dash #card-baixar,
.main.dash #card-empresas,
.main.dash #card-atividade,
.main.dash #card-arquivos,
.main.dash .monitor {
    background: var(--d-card);
    border: 1px solid var(--d-line);
    border-radius: var(--d-r-lg);
    box-shadow: var(--d-shadow);
    padding: 22px 24px;
    margin: 0 0 24px;
}

/* ---- ORDEM das seções na DF ----
   Ordem natural do HTML: KPI strip (Empresas + Último processamento) em cima,
   depois monitores, Período de busca, Empresas e Atividade. */
.main.dash .conteudo-df { display: flex; flex-direction: column; }
.main.dash .conteudo-df > #banner-agencianet { order: -1; }
.main.dash .conteudo-df > .kpi-strip          { order: 1; }
.main.dash .conteudo-df > #card-monitor       { order: 2; }
.main.dash .conteudo-df > #card-monitor-iss   { order: 3; }
.main.dash .conteudo-df > #card-baixar        { order: 4; }
.main.dash .conteudo-df > #card-empresas      { order: 5; }
.main.dash .conteudo-df > .grid-atividade     { order: 6; }
.main.dash .dash-col-main > .card { margin-bottom: 0; }
.main.dash .dash-grid { margin-bottom: 18px; }
.main.dash .card-header { margin-bottom: 16px; }
.main.dash .card-header h2 {
    font-family: var(--fonte-marca); font-size: 18px; font-weight: 700;
    color: var(--d-ink); letter-spacing: -.01em;
}
.main.dash .card-header .legenda { font-size: 13px; color: var(--d-ink-3); margin-top: 3px; }

/* ---- período rápido ---- */
.main.dash .control-bar { gap: 14px; }
.main.dash .grupo-rapidos { gap: 8px; flex-wrap: wrap; }
.main.dash .grupo-rapidos button {
    height: 40px; padding: 0 16px; border-radius: 10px;
    font-size: 14px; font-weight: 600; cursor: pointer;
    background: #fff; border: 1px solid #CBD5E1; color: #475569;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.main.dash .grupo-rapidos button:hover { border-color: #94A3B8; background: #F8FAFC; color: var(--d-ink); transform: none; }
.main.dash .grupo-rapidos button.ativo { background: #0F172A; border-color: #0F172A; color: #fff; box-shadow: 0 8px 18px -10px rgba(15,23,42,.7); }
.main.dash .grupo-rapidos button.botao-incremental { border-color: #BFDBFE; color: #1D4ED8; background: #fff; }
.main.dash .grupo-rapidos button.botao-incremental:hover { background: #EFF6FF; }
.main.dash .grupo-rapidos button.botao-incremental.ativo { background: #2563EB; border-color: #2563EB; color: #fff; }

/* ---- datas ---- */
.main.dash .grupo-datas { gap: 10px; padding-left: 4px; }
.main.dash .grupo-datas input[type=date] {
    height: 42px; border-radius: 10px; border: 1px solid #CBD5E1; padding: 0 12px;
    color: var(--d-ink); font-family: var(--fonte-ui); font-size: 14px; background: #fff;
}
.main.dash .grupo-datas input[type=date]:focus { outline: none; border-color: #2563EB; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.main.dash .seta-data { color: var(--d-ink-3); }

/* ---- 3 botões de busca ---- */
.main.dash .acoes-busca { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.main.dash .btn-busca {
    display: inline-flex; align-items: center; gap: 11px; min-height: 54px; padding: 0 20px;
    border-radius: 12px; border: none; color: #fff; cursor: pointer; font-family: var(--fonte-ui);
    box-shadow: 0 10px 22px -12px rgba(15,23,42,.55);
    transition: transform .15s ease, filter .15s ease;
}
.main.dash .btn-busca:hover:not(:disabled) { transform: translateY(-2px); filter: brightness(1.06); }
.main.dash .btn-busca:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.main.dash .btn-busca-ico { width: 20px; height: 20px; flex: none; }
.main.dash .btn-busca-txt { display: flex; flex-direction: column; align-items: flex-start; line-height: 1.2; font-size: 14.5px; font-weight: 700; }
.main.dash .btn-busca-sub { font-size: 11px; font-weight: 500; opacity: .85; }
.main.dash .btn-busca.btn-agencia { background: linear-gradient(180deg, #3B82F6, #2563EB); }
.main.dash .btn-busca.btn-iss { background: linear-gradient(180deg, #4F46E5, #4338CA); }
.main.dash .btn-busca.btn-rodar-tudo { background: linear-gradient(180deg, #16A34A, #15803D); }
.main.dash .busca-status { font-size: 13px; color: var(--d-ink-2); font-weight: 500; }

.main.dash .aviso-incremental {
    margin-top: 14px; padding: 12px 14px; border-radius: 10px;
    background: #EFF6FF; border: 1px solid #BFDBFE; color: #1E3A8A; font-size: 13px;
}
.main.dash .aviso-incremental code { background: #DBEAFE; padding: 1px 6px; border-radius: 5px; }

/* ---- excluir concluídos (perigo soft) ---- */
.main.dash .limpeza-portal { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--d-line); }
.main.dash .limpeza-portal-linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.main.dash .btn-perigo-soft {
    display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 14px; border-radius: 10px;
    background: #FEF2F2; border: 1px solid #FECACA; color: #DC2626; font-weight: 600; font-size: 13px; cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}
.main.dash .btn-perigo-soft:hover:not(:disabled) { background: #FEE2E2; border-color: #FCA5A5; }
.main.dash .btn-perigo-soft:disabled { opacity: .5; cursor: not-allowed; }
.main.dash .limpeza-portal-nota { display: block; margin-top: 8px; font-size: 12px; color: var(--d-ink-3); }
.main.dash .status-limpeza { font-size: 13px; color: var(--d-ink-2); }

/* ---- alerta retomar ---- */
.main.dash .alerta-retomar {
    display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
    padding: 13px 16px; border-radius: 12px; background: #FFFBEB; border: 1px solid #FDE68A; color: #92400E; font-size: 13.5px;
}
.main.dash .acoes-retomar { display: flex; gap: 8px; }
.main.dash .btn-retomar { height: 38px; padding: 0 16px; border-radius: 9px; background: #2563EB; color: #fff; border: none; font-weight: 600; cursor: pointer; }
.main.dash .btn-ignorar { height: 38px; padding: 0 14px; border-radius: 9px; background: #fff; border: 1px solid #E2E8F0; color: var(--d-ink-2); cursor: pointer; }

/* ---- empresas: cabeçalho com ações ---- */
.main.dash .empresas-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.main.dash .empresas-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.main.dash .campo-busca { position: relative; display: flex; align-items: center; }
.main.dash .campo-busca svg { position: absolute; left: 12px; color: var(--d-ink-3); pointer-events: none; }
.main.dash .campo-busca input {
    height: 42px; width: 290px; max-width: 46vw; border-radius: 10px; border: 1px solid #CBD5E1;
    padding: 0 12px 0 36px; font-size: 14px; color: var(--d-ink); background: #fff;
}
.main.dash .campo-busca input:focus { outline: none; border-color: #2563EB; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.main.dash .select-status {
    height: 42px; border-radius: 10px; border: 1px solid #CBD5E1; padding: 0 32px 0 12px; font-size: 14px;
    color: var(--d-ink-2); cursor: pointer; appearance: none; -webkit-appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 10px center;
}
.main.dash .select-status:focus { outline: none; border-color: #2563EB; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.main.dash .btn-add-empresa {
    display: inline-flex; align-items: center; gap: 7px; height: 42px; padding: 0 16px; border-radius: 10px;
    background: #0F172A; color: #fff; border: none; font-weight: 600; font-size: 14px; cursor: pointer;
    transition: background .15s ease;
}
.main.dash .btn-add-empresa:hover { background: #1E293B; }

/* ---- formulário adicionar ---- */
.main.dash .empresas-add { display: flex; gap: 10px; margin: 0 0 16px; flex-wrap: wrap; }
.main.dash .empresas-add input { height: 42px; border-radius: 10px; border: 1px solid #CBD5E1; padding: 0 12px; font-size: 14px; }
.main.dash .empresas-add input[name=cnpj] { flex: 0 0 260px; }
.main.dash .empresas-add input[name=nome] { flex: 1; min-width: 180px; }
.main.dash .empresas-add input:focus { outline: none; border-color: #2563EB; box-shadow: 0 0 0 3px rgba(37,99,235,.15); }
.main.dash .empresas-add button { height: 42px; padding: 0 18px; border-radius: 10px; background: #2563EB; color: #fff; border: none; font-weight: 600; cursor: pointer; }
.main.dash .empresas-add button:hover { background: #1D4ED8; }

/* ---- toolbar "marcar em todas" ---- */
.main.dash .empresas-toolbar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.main.dash .empresas-toolbar .marcar-rotulo { font-size: 12px; color: var(--d-ink-3); font-weight: 600; }
.main.dash .ghost-mini,
.main.dash .empresas-toolbar .ghost {
    height: 32px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--d-line);
    background: #F8FAFC; color: var(--d-ink-2); font-size: 12.5px; font-weight: 600; cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.main.dash .ghost-mini:hover,
.main.dash .empresas-toolbar .ghost:hover { border-color: #BFDBFE; color: #1D4ED8; background: #EFF6FF; }

/* ---- tabela de empresas ---- */
.main.dash .lista-wrap { border: 1px solid var(--d-line); border-radius: 14px; overflow: hidden; }
.main.dash .cabecalho-lista {
    background: #F8FAFC; border-bottom: 1px solid var(--d-line);
    color: var(--d-ink-3); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em;
    padding: 11px 16px;
}
.main.dash .linha-empresa { padding: 12px 16px; border-bottom: 1px solid var(--d-line-2); }
.main.dash .linha-empresa:last-child { border-bottom: none; }
.main.dash .linha-empresa:hover { background: #F8FAFC; }
.main.dash .nome-empresa { font-weight: 600; color: var(--d-ink); font-size: 14px; }
.main.dash .cnpj-empresa { color: var(--d-ink-3); font-size: 12px; }
.main.dash .avatar { border-radius: 10px; background: linear-gradient(140deg, #EFF4FE, #DBEAFE); color: #1D4ED8; font-weight: 700; }
.main.dash .avatar.avatar-cod { background: linear-gradient(140deg, #1D4ED8, #2563EB); color: #fff; }

/* ---- toggle azul ---- */
.main.dash .toggle input:checked + .slider { background: #2563EB; }
.main.dash .toggle:hover input:checked + .slider { background: #1D4ED8; }

/* ---- botão baixar (linha) ---- */
.main.dash .btn-buscar-linha {
    height: 34px; padding: 0 14px; border-radius: 9px; border: 1px solid #BFDBFE;
    background: #EFF6FF; color: #1D4ED8; font-weight: 600; font-size: 13px; cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.main.dash .btn-buscar-linha:hover:not(:disabled) { background: #2563EB; color: #fff; border-color: #2563EB; }
.main.dash .btn-buscar-linha:disabled { opacity: .55; cursor: default; }

/* ---- rodapé contadores ---- */
.main.dash .rodape-empresas { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.main.dash .contadores-inline { display: flex; gap: 18px; flex-wrap: wrap; }
.main.dash .mini-numero { font-family: var(--fonte-marca); font-weight: 700; font-variant-numeric: tabular-nums; }
.main.dash .mini-numero.verde { color: #16A34A; }
.main.dash .mini-numero.dourado { color: #B0832E; }

/* ---- monitor ---- */
.main.dash .monitor .barra-progresso { background: #EEF2F8; border-radius: 99px; overflow: hidden; }
.main.dash .monitor .barra-progresso-preenchida { background: linear-gradient(90deg, #2563EB, #60A5FA); border-radius: 99px; }
.main.dash .monitor-fase { color: #1D4ED8; background: #EFF6FF; border-radius: 99px; padding: 2px 10px; font-size: 12px; font-weight: 600; }
.main.dash .ghost.danger {
    height: 36px; padding: 0 14px; border-radius: 9px; background: #FEF2F2; border: 1px solid #FECACA;
    color: #DC2626; font-weight: 600; font-size: 13px; cursor: pointer;
}
.main.dash .ghost.danger:hover:not(:disabled) { background: #FEE2E2; }

/* ---- log (terminal) ---- */
.main.dash #log {
    background: #0B1726; color: #CFE3FF; border: 1px solid #112338; border-radius: 12px;
    padding: 16px; font-family: var(--fonte-mono); font-size: 12.5px; line-height: 1.6;
}

/* ---- arquivos ---- */
.main.dash #card-arquivos table { width: 100%; border-collapse: collapse; }
.main.dash #card-arquivos th { color: var(--d-ink-3); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; padding: 8px 10px; border-bottom: 1px solid var(--d-line); text-align: left; }
.main.dash #card-arquivos td { padding: 9px 10px; border-bottom: 1px solid var(--d-line-2); font-size: 13px; }
.main.dash #card-arquivos code { background: #F1F5FB; padding: 1px 6px; border-radius: 5px; color: var(--d-ink-2); font-size: 12px; }

/* ---- grid atividade + arquivos ---- */
.main.dash .grid-atividade { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.main.dash .grid-atividade > .card { margin: 0; }
@media (max-width: 1100px) { .main.dash .grid-atividade { grid-template-columns: 1fr; } }

/* ---- estado vazio ---- */
.main.dash .estado-vazio { text-align: center; padding: 40px 20px; }
.main.dash .estado-vazio .titulo { font-size: 16px; font-weight: 700; color: var(--d-ink); }
.main.dash .estado-vazio .desc { font-size: 13px; color: var(--d-ink-3); margin-top: 4px; }

/* ---- banner agencianet ---- */
.main.dash .banner-agencianet {
    display: flex; align-items: center; gap: 12px; margin-bottom: 18px;
    padding: 14px 18px; border-radius: 14px; background: #FFFBEB; border: 1px solid #FDE68A; color: #92400E;
}

/* ==================================================================
   ███  DESIGN SYSTEM GLOBAL — vale p/ TODAS as telas (.main.dash)  ███
   As páginas de robô (Goiás, Retenções, Vigências, Apuração,
   Importação, Folha, Configurações) compartilham o MESMO vocabulário
   de componentes (.topbar/.card/.kpi/.primario/.ghost/.toggle/tabela),
   então estas regras unificam a plataforma inteira de uma vez.
   ================================================================== */

/* ---- HEADER da página (.topbar → eyebrow + título), vence o legado ---- */
.main.dash .topbar {
    position: static !important;
    background: transparent !important;
    -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
    border-bottom: none !important; box-shadow: none !important;
    padding: 30px 40px 4px !important;
    max-width: 1340px; width: 100%; margin: 0 auto;
    gap: 20px; align-items: flex-start;
}
.main.dash .topbar::after { display: none !important; }
.main.dash .topbar .breadcrumb {
    color: var(--c-blue) !important;
    font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 7px;
}
.main.dash .topbar .titulo {
    font-family: var(--fonte-marca); font-size: 27px; font-weight: 700;
    color: var(--d-ink); letter-spacing: -.02em; line-height: 1.15;
}
.main.dash .topbar .robo-resumo { color: var(--d-ink-3); border-left-color: var(--d-line); }
.main.dash .topbar .acoes-topbar { margin-left: auto; display: flex; align-items: center; gap: 12px; }

/* pílula de status antiga → mesmo visual da nova (op-chip) */
.main.dash .status-pill {
    height: 40px; padding: 0 14px; border-radius: 99px; font-size: 12.5px; font-weight: 600;
    border: 1px solid rgba(34,197,94,.28); background: var(--c-green-soft); color: #15803D;
}
.main.dash .status-pill.rodando { border-color: rgba(37,99,235,.28); background: var(--c-blue-soft); color: var(--c-blue-700); }

/* ---- container de conteúdo ---- */
.main.dash .conteudo { padding: 16px 40px 48px !important; max-width: 1340px !important; margin: 0 auto; width: 100%; }

/* ---- CARD genérico premium (qualquer .card em qualquer tela) ---- */
.main.dash .card {
    background: var(--d-card);
    border: 1px solid var(--d-line);
    border-radius: var(--d-r-lg);
    box-shadow: var(--d-shadow);
    padding: 22px 24px;
    margin: 0 0 24px;
}
/* restaura paddings/margens dos cards do dashboard (home) que já têm tuning */
.main.dash .chart-card { padding: 22px 24px 16px; }
.main.dash .status-panel { padding: 20px 20px 8px; }
.main.dash .dash-col-main > .card,
.main.dash .dash-col-side > .card { margin-bottom: 0; }

/* ---- KPI strip antigo (Empresas cadastradas / Último processamento) ---- */
.main.dash .kpi {
    background: var(--d-card); border: 1px solid var(--d-line);
    border-radius: var(--d-r-lg); box-shadow: var(--d-shadow); padding: 18px 20px;
}
.main.dash .kpi.accent { border-left: 3px solid var(--c-blue); }
.main.dash .kpi-label { color: var(--d-ink-3); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.main.dash .kpi-numero { font-family: var(--fonte-marca); font-weight: 800; color: var(--d-ink); }
.main.dash .kpi-extra { color: var(--d-ink-3); font-size: 12.5px; }

/* ---- BOTÕES (primário / secundário / sucesso / perigo) ---- */
.main.dash .primario, .main.dash button.primario {
    background: var(--c-blue); color: #fff; border: none; border-radius: 12px;
    min-height: 44px; padding: 0 18px; font-weight: 600; font-size: 14px; cursor: pointer;
    box-shadow: 0 10px 22px -12px rgba(37,99,235,.6);
    transition: background .18s ease, transform .15s ease, filter .15s ease;
}
.main.dash .primario:hover:not(:disabled) { background: var(--c-blue-700); transform: translateY(-1px); }
.main.dash .primario:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }

.main.dash .btn-baixar {
    background: linear-gradient(180deg, #3B82F6, #2563EB); color: #fff; border: none; border-radius: 12px;
    min-height: 46px; padding: 0 22px; font-weight: 700; font-size: 14.5px; cursor: pointer;
    box-shadow: 0 10px 22px -12px rgba(15,23,42,.5);
    transition: filter .15s ease, transform .15s ease;
}
.main.dash .btn-baixar:hover:not(:disabled) { filter: brightness(1.06); transform: translateY(-2px); }
.main.dash .btn-baixar:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }

.main.dash .ghost {
    background: #fff; border: 1px solid #CBD5E1; color: var(--d-ink-2); border-radius: 10px;
    min-height: 38px; padding: 0 14px; font-weight: 600; font-size: 13px; cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.main.dash .ghost:hover:not(:disabled) { border-color: #94A3B8; background: #F8FAFC; color: var(--d-ink); }
.main.dash .btn-so-erros {
    background: #fff; border: 1px solid #BFDBFE; color: #1D4ED8; border-radius: 10px;
    min-height: 38px; padding: 0 14px; font-weight: 600; cursor: pointer;
}
.main.dash .btn-so-erros:hover:not(:disabled) { background: #EFF6FF; }

/* botão sucesso (quando houver) */
.main.dash .btn-sucesso, .main.dash .sucesso {
    background: var(--c-green); color: #fff; border: none; border-radius: 12px; min-height: 44px;
    padding: 0 18px; font-weight: 600; cursor: pointer;
}

/* ---- INPUTS / SELECT / TEXTAREA (especificidade baixa via :where) ---- */
.main.dash :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), select, textarea) {
    border: 1px solid #CBD5E1; border-radius: 12px; background: #fff; color: var(--d-ink);
    font-family: var(--fonte-ui); font-size: 14px;
}
.main.dash :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), select) {
    height: 44px; padding: 0 12px;
}
.main.dash :where(textarea) { padding: 10px 12px; min-height: 88px; }
.main.dash :where(input, select, textarea):focus {
    outline: none; border-color: var(--c-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.15);
}
.main.dash :where(input)::placeholder, .main.dash :where(textarea)::placeholder { color: #94A3B8; }

/* ---- TABELAS premium (qualquer <table> em telas dash) ---- */
.main.dash table { width: 100%; border-collapse: collapse; }
.main.dash thead th {
    background: #F8FAFC; color: var(--d-ink-3); font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .04em; padding: 11px 12px;
    border-bottom: 1px solid var(--d-line); text-align: left;
}
.main.dash tbody td { padding: 11px 12px; border-bottom: 1px solid var(--d-line-2); font-size: 13.5px; color: var(--d-ink); }
.main.dash tbody tr:hover { background: #EFF6FF; }
.main.dash table code { background: #F1F5FB; padding: 1px 6px; border-radius: 5px; color: var(--d-ink-2); font-size: 12px; }

/* ---- responsivo: padding lateral menor no header/conteúdo ---- */
@media (max-width: 920px) {
    .main.dash .topbar { padding-left: 22px !important; padding-right: 22px !important; }
    .main.dash .conteudo { padding-left: 22px !important; padding-right: 22px !important; }
}

/* =====================================================================
   AURA-GLOBAL-TOKENS — Design System AURA (fundação)
   Bloco ÚNICO e FINAL: redefine as variáveis-mãe pra valores AURA.
   Como vem por último na cascata, vence os :root antigos e propaga pra
   TODAS as páginas (botões, cards, inputs, KPIs, badges, sidebar ativa)
   sem precisar editar template nenhum. Reversível: basta remover este bloco.
   ===================================================================== */
:root, body, body.dash-theme {
    /* AURA · azul principal — unifica os 3 nomes históricos (dourado/gestta/c-blue) */
    --dourado: #2563EB; --dourado-esc: #1D4ED8; --dourado-clar: #60A5FA; --dourado-soft: #EFF6FF;
    --gestta-laranja: #2563EB; --gestta-laranja-esc: #1D4ED8; --gestta-laranja-soft: #EFF6FF;
    --c-blue: #2563EB; --c-blue-700: #1D4ED8; --c-blue-400: #60A5FA; --c-blue-soft: #EFF6FF;

    /* fundo geral + superfícies */
    --bg: #F8FAFC; --bg-soft: #F1F5F9; --bg-bege: #F1F5F9;
    --d-bg: #F8FAFC; --gestta-bg: #FFFFFF; --bg-card: #FFFFFF; --d-card: #FFFFFF;

    /* texto */
    --texto: #0F172A; --texto-suave: #0F172A; --texto-muted: #64748B; --texto-fraco: #94A3B8;
    --d-ink: #0F172A; --d-ink-2: #44566E; --d-ink-3: #64748B; --gestta-text: #0F172A;

    /* bordas / linhas */
    --hairline: #E2E8F0; --hairline-forte: #CBD5E1; --hairline-suave: #EEF2F8;
    --d-line: #E2E8F0; --d-line-2: #EEF2F8; --gestta-border: #E2E8F0;

    /* estados (sucesso/erro/alerta/info) */
    --verde: #16A34A; --verde-clar: #22C55E; --verde-soft: #DCFCE7;
    --gestta-success: #16A34A; --c-green: #16A34A; --c-green-soft: #E7F8EE;
    --vermelho: #DC2626; --vermelho-soft: #FEF2F2; --gestta-danger: #DC2626;
    --ambar: #B45309; --ambar-soft: #FEF3C7; --gestta-warn: #F59E0B;
    --azul-info: #1D4ED8; --azul-soft: #EFF6FF;

    /* dourado AGOS (accent de marca — mantido como dourado real) */
    --c-gold: #C9A449; --c-gold-soft: #F6EFDD;

    /* cantos arredondados (AURA) */
    --raio-card: 18px; --raio-btn: 12px;
    --d-r-lg: 20px; --d-r-md: 16px; --d-r-sm: 12px;

    /* sombras suaves (AURA) */
    --sombra-card: 0 12px 40px rgba(15, 23, 42, 0.06);
    --sombra-card-hover: 0 16px 44px rgba(15, 23, 42, 0.10);
    --sombra-pop: 0 18px 50px rgba(15, 23, 42, 0.16);
    --d-shadow: 0 12px 40px rgba(15, 23, 42, 0.06);
    --d-shadow-pop: 0 18px 50px rgba(15, 23, 42, 0.16);
}

/* Acabamentos globais seguros (só dentro do tema premium .main.dash) */
.main.dash .conteudo { background: #F8FAFC; }
.main.dash .card { border-radius: var(--d-r-lg); box-shadow: var(--d-shadow); }
/* transições discretas (microinterações) */
.main.dash .card,
.main.dash button,
.main.dash .kpi,
.main.dash .linha-empresa { transition: background .18s ease, box-shadow .18s ease, border-color .18s ease, transform .18s ease; }
/* foco azul AURA em campos */
.main.dash input:focus,
.main.dash select:focus,
.main.dash textarea:focus { outline: none; border-color: #2563EB !important; box-shadow: 0 0 0 3px rgba(37, 99, 235, .15) !important; }
/* AURA-GLOBAL-TOKENS — fim */

/* =====================================================================
   AURA-TIMELINE — stepper de execução (reutilizável)
   Etapas conectadas; acende por classe is-done / is-active / is-pending.
   ===================================================================== */
.aura-timeline { display: flex; align-items: flex-start; list-style: none; margin: 16px 0 2px; padding: 6px 4px 0; }
.aura-timeline .tl-step { flex: 1 1 0; display: flex; flex-direction: column; align-items: center; text-align: center;
                          position: relative; gap: 8px; min-width: 0; }
/* linha conectora (entra pela esquerda de cada passo, menos o primeiro) */
.aura-timeline .tl-step::before { content: ""; position: absolute; top: 16px; left: -50%; width: 100%; height: 2px;
                                  background: #E2E8F0; z-index: 0; }
.aura-timeline .tl-step:first-child::before { display: none; }
.aura-timeline .tl-dot { position: relative; z-index: 1; width: 34px; height: 34px; border-radius: 50%;
                         display: flex; align-items: center; justify-content: center; background: #fff;
                         border: 2px solid #E2E8F0; color: #94A3B8; transition: all .2s ease; }
.aura-timeline .tl-dot svg { width: 16px; height: 16px; }
.aura-timeline .tl-lbl { font-size: 12px; font-weight: 600; color: #94A3B8; line-height: 1.25; }
/* concluído (verde) */
.aura-timeline .tl-step.is-done .tl-dot { background: #16A34A; border-color: #16A34A; color: #fff; }
.aura-timeline .tl-step.is-done::before { background: #16A34A; }
.aura-timeline .tl-step.is-done .tl-lbl { color: #15803D; }
/* em andamento (azul pulsante) */
.aura-timeline .tl-step.is-active .tl-dot { background: #2563EB; border-color: #2563EB; color: #fff;
                                            box-shadow: 0 0 0 4px rgba(37, 99, 235, .18); animation: tl-pulse 1.4s ease-in-out infinite; }
.aura-timeline .tl-step.is-active::before { background: #16A34A; }
.aura-timeline .tl-step.is-active .tl-lbl { color: #1D4ED8; }
@keyframes tl-pulse { 0%, 100% { box-shadow: 0 0 0 4px rgba(37, 99, 235, .18); } 50% { box-shadow: 0 0 0 8px rgba(37, 99, 235, .06); } }
@media (max-width: 560px) { .aura-timeline .tl-lbl { font-size: 11px; } }
/* AURA-TIMELINE — fim */

/* Ícone Lucide inline no meio de texto/botão (substitui emojis) */
.ic-inline { width: 1.05em; height: 1.05em; vertical-align: -0.16em; display: inline-block; flex: 0 0 auto; }
/* AURA-IC-INLINE — fim */

/* =====================================================================
   ███  AURA-DF-PREMIUM — redesign do conteúdo da página XMLs · DF  ███
   Painel executivo: KPIs, Execução atual, Saúde, Gráfico 7d, AURA
   Status, Atividade recente, Período de busca e tabela de Empresas.
   Só toca no MIOLO da página (.conteudo-df e classes dfx-*) — sidebar,
   topbar e demais telas ficam intactas. Reversível: remover este bloco.
   ===================================================================== */

/* ---- ordem das seções (o HTML novo já está nesta ordem; estas regras
       vencem as antigas baseadas em order que ainda existem acima) ---- */
.main.dash .conteudo-df > #banner-agencianet { order: -1; }
.main.dash .conteudo-df > .kpi-row            { order: 1; }
.main.dash .conteudo-df > #card-monitor       { order: 2; }
.main.dash .conteudo-df > #card-monitor-iss   { order: 3; }
.main.dash .conteudo-df > .dfx-row-a          { order: 4; }
.main.dash .conteudo-df > .dfx-row-b          { order: 5; }
.main.dash .conteudo-df > #card-baixar        { order: 6; }
.main.dash .conteudo-df > #card-empresas      { order: 7; }
.main.dash .conteudo-df > .grid-atividade     { order: 8; }

/* ---- KPIs em 5 colunas ---- */
.main.dash .kpi-row-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.main.dash .kpi-row-5 .kpi-card { min-height: 112px; }
.main.dash .kpi-value-sm { font-size: 21px; line-height: 1.15; }
.main.dash .kpi-value-red { color: #DC2626; }
.main.dash .kpi-ico-red { background: #FEF2F2; color: #DC2626; }

/* anel de progresso compacto (KPI Taxa de sucesso) */
.main.dash .kpi-ring { grid-area: ico; position: relative; width: 46px; height: 46px;
    display: grid; place-items: center; flex: none; }
.main.dash .kpi-ring > svg:first-child { position: absolute; inset: 0; width: 100%; height: 100%;
    transform: rotate(-90deg); }
.main.dash .kpi-ring-bg { fill: none; stroke: #EEF2F8; stroke-width: 3.6; }
.main.dash .kpi-ring-val { fill: none; stroke-width: 3.6; stroke-linecap: round; }
.main.dash .kpi-ring-ico { position: relative; width: 18px; height: 18px; }
.main.dash .kpi-ring-ok .kpi-ring-val,
.main.dash .kpi-ring-ok .kpi-ring-ico { stroke: #16A34A; color: #16A34A; }
.main.dash .kpi-ring-warn .kpi-ring-val,
.main.dash .kpi-ring-warn .kpi-ring-ico { stroke: #F59E0B; color: #B45309; }
.main.dash .kpi-ring-crit .kpi-ring-val,
.main.dash .kpi-ring-crit .kpi-ring-ico { stroke: #DC2626; color: #DC2626; }
.main.dash .kpi-ring-neutro .kpi-ring-val,
.main.dash .kpi-ring-neutro .kpi-ring-ico { stroke: #CBD5E1; color: #94A3B8; }
.main.dash .kpi-ring-ok .kpi-ring-ico,
.main.dash .kpi-ring-warn .kpi-ring-ico,
.main.dash .kpi-ring-crit .kpi-ring-ico,
.main.dash .kpi-ring-neutro .kpi-ring-ico { stroke: currentColor; }

/* ---- linhas de 2 colunas (conteúdo + lateral 340px) ---- */
.main.dash .dfx-row { display: grid; grid-template-columns: minmax(0, 1fr) 340px;
    gap: 18px; align-items: stretch; margin: 0 0 24px; }
.main.dash .dfx-row > .card { margin: 0; }
.main.dash .dfx-side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.main.dash .dfx-side > .card { margin: 0; }
.main.dash .dfx-side > .dfx-status { flex: 1 1 auto; }

/* ---- chips de estado (Concluída / Com avisos / Com erros / saúde) ---- */
.dfx-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 12px;
    font-weight: 700; padding: 5px 12px; border-radius: 99px; white-space: nowrap; flex: none; }
.dfx-chip-ok    { color: #15803D; background: #E7F8EE; border: 1px solid rgba(22,163,74,.25); }
.dfx-chip-aviso { color: #92400E; background: #FEF3C7; border: 1px solid rgba(245,158,11,.35); }
.dfx-chip-erro  { color: #B91C1C; background: #FEF2F2; border: 1px solid #FECACA; }
.dfx-saude-chip-ok     { color: #15803D; background: #E7F8EE; border: 1px solid rgba(22,163,74,.25); }
.dfx-saude-chip-warn   { color: #92400E; background: #FEF3C7; border: 1px solid rgba(245,158,11,.35); }
.dfx-saude-chip-crit   { color: #B91C1C; background: #FEF2F2; border: 1px solid #FECACA; }
.dfx-saude-chip-neutro { color: #475569; background: #F1F5F9; border: 1px solid #E2E8F0; }

/* ---- EXECUÇÃO ATUAL (monitor premium) ---- */
.main.dash .monitor.dfx-exec { background: var(--d-card); border-color: #DBEAFE; }
.dfx-exec-head { display: flex; align-items: flex-start; justify-content: space-between;
    gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.dfx-exec-headtxt { min-width: 0; }
.dfx-exec-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 11.5px;
    font-weight: 700; letter-spacing: .09em; text-transform: uppercase; color: #1D4ED8; }
.dfx-live-dot { width: 8px; height: 8px; border-radius: 50%; background: #2563EB;
    box-shadow: 0 0 0 3px rgba(37,99,235,.16); animation: op-pulse 1.6s ease-in-out infinite; flex: none; }
.dfx-exec-titulo { margin: 7px 0 0; font-family: var(--fonte-marca); font-size: 20px;
    font-weight: 700; letter-spacing: -.01em; color: var(--d-ink); line-height: 1.2; }
.dfx-exec-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
.main.dash .dfx-exec-meta .monitor-fase { margin-left: 0; }
.dfx-exec-meta-item { font-size: 12px; font-weight: 600; color: #334155; background: #F1F5F9;
    border: 1px solid #E2E8F0; border-radius: 99px; padding: 3px 11px; white-space: nowrap; }
.dfx-exec-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(230px, 1fr);
    gap: 24px; align-items: center; }
.dfx-exec-pct-row { display: flex; align-items: baseline; justify-content: space-between;
    gap: 12px; margin-bottom: 10px; }
.dfx-exec-pct { font-family: var(--fonte-marca); font-size: 40px; font-weight: 800;
    letter-spacing: -.02em; color: var(--d-ink); line-height: 1; font-variant-numeric: tabular-nums; }
.dfx-exec-contagem { font-size: 13px; color: var(--d-ink-3); }
.dfx-exec-contagem strong { color: var(--d-ink); font-weight: 700; }
.main.dash .dfx-exec .barra-progresso { height: 12px; }
.dfx-exec-now { background: #F8FAFC; border: 1px solid #EEF2F8; border-radius: 14px;
    padding: 14px 16px; min-width: 0; }
.main.dash .dfx-exec-now .monitor-rotulo { font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .07em; color: var(--d-ink-3);
    display: flex; align-items: center; gap: 7px; margin: 0; }
.main.dash .dfx-exec-now .monitor-rotulo::before { content: ""; width: 7px; height: 7px;
    border-radius: 50%; background: #2563EB; animation: op-pulse 1.4s ease-in-out infinite; flex: none; }
.main.dash .dfx-exec-now .monitor-empresa { font-family: var(--fonte-marca); font-size: 15.5px;
    font-weight: 700; color: var(--d-ink); margin-top: 8px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.main.dash .dfx-exec-now .monitor-doc { font-size: 12.5px; color: #1D4ED8; font-weight: 600; margin-top: 2px; }

/* ---- ÚLTIMA EXECUÇÃO ---- */
.dfx-ultima .card-head { align-items: center; }
.dfx-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(106px, 1fr));
    gap: 10px; margin-top: 16px; }
.dfx-stat { display: flex; flex-direction: column; align-items: center; gap: 1px;
    padding: 13px 10px 11px; border-radius: 14px; border: 1px solid var(--d-line-2);
    background: #F8FAFC; cursor: help; }
.dfx-stat-num { font-family: var(--fonte-marca); font-size: 24px; font-weight: 800;
    line-height: 1; font-variant-numeric: tabular-nums; color: var(--d-ink); }
.dfx-stat-lbl { font-size: 10.5px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .06em; color: var(--d-ink-3); margin-top: 4px; }
.dfx-stat-ok   { background: #F0FDF4; border-color: #DCFCE7; }
.dfx-stat-ok .dfx-stat-num { color: #15803D; }
.dfx-stat-warn { background: #FFFBEB; border-color: #FDE68A; }
.dfx-stat-warn .dfx-stat-num { color: #B45309; }
.dfx-stat-erro { background: #FEF2F2; border-color: #FECACA; }
.dfx-stat-erro .dfx-stat-num { color: #DC2626; }
.dfx-exec-tempos { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 16px;
    padding-top: 14px; border-top: 1px solid var(--d-line-2);
    font-size: 12.5px; color: var(--d-ink-3); }
.dfx-exec-tempos b { color: var(--d-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.dfx-ultima .ultimo-proc-detalhe { margin-top: 12px; font-size: 12.5px; color: var(--d-ink-3); }
.dfx-ultima .ultimo-proc-detalhe strong { color: #DC2626; }

.dfx-motivos { margin-top: 12px; padding: 12px 14px; border: 1px solid #FECACA;
    background: #FFF8F8; border-radius: 12px; font-size: 12.5px; color: var(--d-ink-2); }
.dfx-motivos > summary { cursor: pointer; color: #B91C1C; font-weight: 700;
    list-style: none; user-select: none; }
.dfx-motivos > summary::-webkit-details-marker { display: none; }
.dfx-motivos > summary::before { content: "\25B8  "; }
.dfx-motivos[open] > summary::before { content: "\25BE  "; }
.dfx-motivos .motivos-rotulo { margin-top: 10px; font-weight: 700; color: var(--d-ink); }
.dfx-motivos .motivos-causas,
.dfx-motivos .motivos-empresas { margin: 4px 0 0; padding: 0; list-style: none; }
.dfx-motivos .motivos-empresas { max-height: 220px; overflow-y: auto; }
.dfx-motivos li { padding: 4px 0; border-top: 1px solid #FBE4E4; line-height: 1.45; word-break: break-word; }
.dfx-motivos .motivo-qtd { display: inline-block; min-width: 28px; font-weight: 800;
    color: #DC2626; font-variant-numeric: tabular-nums; }
.dfx-motivos .motivos-empresas b { color: var(--d-ink); font-weight: 600; }
.dfx-motivos .motivo-tipo, .dfx-motivos .motivo-quando { color: var(--texto-fraco); font-size: 11px; }
.dfx-motivos .motivo-quando { white-space: nowrap; }

.dfx-reprocessar { margin-top: 14px; }
.dfx-ultima .btn-reprocessar-erros { display: inline-flex; align-items: center; gap: 8px;
    min-height: 40px; padding: 0 16px; font-size: 13px; font-weight: 700; color: #fff;
    background: #DC2626; border: none; border-radius: 10px; cursor: pointer;
    box-shadow: 0 8px 18px -10px rgba(220,38,38,.55);
    transition: filter .15s ease, transform .15s ease; }
.dfx-ultima .btn-reprocessar-erros:hover:not(:disabled) { filter: brightness(1.07); transform: translateY(-1px); }
.dfx-ultima .btn-reprocessar-erros:disabled { opacity: .55; cursor: default; box-shadow: none; }

/* estado vazio (sem dados) */
.dfx-vazio { display: flex; flex-direction: column; align-items: center; text-align: center;
    padding: 34px 16px 26px; }
.dfx-vazio-ico { width: 52px; height: 52px; border-radius: 16px; background: #EFF6FF;
    color: #2563EB; display: grid; place-items: center; margin-bottom: 12px; }
.dfx-vazio-ico svg { width: 26px; height: 26px; }
.dfx-vazio-tit { font-family: var(--fonte-marca); font-size: 15.5px; font-weight: 700; color: var(--d-ink); }
.dfx-vazio-desc { font-size: 13px; color: var(--d-ink-3); margin-top: 4px; max-width: 400px; line-height: 1.55; }

/* ---- SAÚDE DA OPERAÇÃO ---- */
.dfx-saude-corpo { display: flex; flex-direction: column; align-items: center;
    text-align: center; padding: 6px 0 4px; }
.dfx-saude-ring { position: relative; width: 128px; height: 128px; margin: 8px 0 14px; }
.dfx-saude-ring > svg { position: absolute; inset: 0; width: 100%; height: 100%;
    transform: rotate(-90deg); }
.dfx-ring-bg { fill: none; stroke: #EEF2F8; stroke-width: 3.4; }
.dfx-ring-val { fill: none; stroke-width: 3.4; stroke-linecap: round; }
.dfx-saude-ok .dfx-ring-val     { stroke: #16A34A; }
.dfx-saude-warn .dfx-ring-val   { stroke: #F59E0B; }
.dfx-saude-crit .dfx-ring-val   { stroke: #DC2626; }
.dfx-saude-neutro .dfx-ring-val { stroke: #CBD5E1; }
.dfx-saude-pct { position: absolute; inset: 0; display: grid; place-items: center;
    font-family: var(--fonte-marca); font-size: 27px; font-weight: 800;
    letter-spacing: -.02em; color: var(--d-ink); font-variant-numeric: tabular-nums; }
.dfx-saude-nota { font-size: 12.5px; color: var(--d-ink-3); margin: 11px 0 12px; line-height: 1.55; }
.dfx-link { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px;
    font-weight: 700; color: #1D4ED8; }
.dfx-link svg { transition: transform .15s ease; }
.dfx-link:hover svg { transform: translateX(2px); }

/* ---- AURA STATUS (reusa robo-list/status-panel da home) ---- */
.dfx-status .robo-list { margin-top: 4px; }
.dfx-status .robo-item { cursor: default; }

/* ---- ATIVIDADE RECENTE ---- */
.dfx-ativ { display: flex; flex-direction: column; }
.dfx-ativ-list { list-style: none; margin: 12px 0 0; padding: 0;
    display: flex; flex-direction: column; flex: 1 1 auto; }
.dfx-ativ-item { display: flex; align-items: center; gap: 12px; padding: 10px 2px;
    border-top: 1px solid var(--d-line-2); }
.dfx-ativ-item:first-child { border-top: none; }
.dfx-ativ-ico { width: 30px; height: 30px; border-radius: 9px; display: grid;
    place-items: center; flex: none; }
.dfx-ativ-ico svg { width: 16px; height: 16px; }
.dfx-ativ-ok     { background: #E7F8EE; color: #16A34A; }
.dfx-ativ-warn   { background: #FEF3C7; color: #B45309; }
.dfx-ativ-err    { background: #FEF2F2; color: #DC2626; }
.dfx-ativ-neutro { background: #F1F5F9; color: #64748B; }
.dfx-ativ-txt { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.dfx-ativ-evt { font-size: 13px; font-weight: 600; color: var(--d-ink); }
.dfx-ativ-meta { font-size: 11.5px; color: var(--d-ink-3);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dfx-ativ-hora { font-size: 11.5px; color: var(--texto-fraco); white-space: nowrap;
    font-variant-numeric: tabular-nums; }
.dfx-ativ-all { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--d-line-2); }
.dfx-ativ-vazio { font-size: 13px; color: var(--d-ink-3); padding: 18px 2px; line-height: 1.5; }
.dfx-ativ-skel { padding: 10px 2px; }
.dfx-ativ-skel .dfx-skel { height: 30px; }

/* ---- GRÁFICO (complementos) ---- */
.dfx-chart-right { display: flex; align-items: flex-start; gap: 14px; flex: none; }
.dfx-chip-filtro { font-size: 11.5px; font-weight: 700; color: #1D4ED8; background: #EFF6FF;
    border: 1px solid #BFDBFE; padding: 4px 11px; border-radius: 99px; margin-top: 2px; white-space: nowrap; }

/* ---- SKELETON / estados de carregamento ---- */
.dfx-skel { display: block; height: 140px; border-radius: 12px;
    background: linear-gradient(100deg, #EEF2F8 40%, #F8FAFC 50%, #EEF2F8 60%);
    background-size: 200% 100%; animation: dfx-shimmer 1.4s linear infinite; }
@keyframes dfx-shimmer { to { background-position: -200% 0; } }
#chart-skel { position: absolute; inset: 0; height: auto; z-index: 2; }
.dfx-skel-row .dfx-skel { height: 18px; }
.main.dash .dfx-empty-cell { color: var(--d-ink-3); font-size: 13px; text-align: center;
    padding: 22px 10px; }

/* ---- PERÍODO DE BUSCA: inputs de data com ícone de calendário ---- */
.main.dash .dfx-date { position: relative; display: inline-flex; align-items: center; }
.main.dash .dfx-date > svg { position: absolute; left: 12px; width: 16px; height: 16px;
    color: var(--d-ink-3); pointer-events: none; }
.main.dash .dfx-date input[type=date] { padding-left: 38px; }

/* ---- EMPRESAS: coluna Status + tabela premium (SÓ na página DF) ---- */
.main.dash .conteudo-df .lista-wrap { overflow-x: auto; border-radius: 16px; }
.main.dash .conteudo-df .cabecalho-lista,
.main.dash .conteudo-df .linha-empresa {
    grid-template-columns: minmax(230px, 1.9fr) 118px repeat(5, 86px) 96px;
    min-width: 1010px;
}
.main.dash .conteudo-df .cabecalho-lista .col-status { text-align: left; }
.main.dash .conteudo-df .col-status { min-width: 0; }
/* ATENÇÃO: st-ok/st-erro/etc são nomes usados também em Importação,
   Configurações e Retenções — por isso TUDO aqui é escopado na DF. */
.main.dash .conteudo-df .st-badge { display: inline-flex; align-items: center; gap: 6px; font-size: 11px;
    font-weight: 700; padding: 4px 10px; border-radius: 99px; white-space: nowrap; cursor: help; }
.main.dash .conteudo-df .st-dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
.main.dash .conteudo-df .st-badge.st-ok     { color: #15803D; background: #E7F8EE; }
.main.dash .conteudo-df .st-badge.st-aviso  { color: #92400E; background: #FEF3C7; }
.main.dash .conteudo-df .st-badge.st-erro   { color: #B91C1C; background: #FEF2F2; border: 1px solid #FECACA; }
.main.dash .conteudo-df .st-badge.st-neutro { color: #64748B; background: #F1F5F9; }

/* chips "marcar em todas" (SÓ na página DF) */
.main.dash .conteudo-df .ghost-mini,
.main.dash .conteudo-df .empresas-toolbar .ghost { border-radius: 99px; height: 34px; padding: 0 14px; background: #fff; }
.main.dash .conteudo-df .empresas-toolbar { gap: 8px; }
.main.dash .conteudo-df .empresas-toolbar .marcar-rotulo { text-transform: uppercase; letter-spacing: .05em; font-size: 11px; }

/* botão Baixar da linha com ícone */
.main.dash .conteudo-df .btn-buscar-linha { display: inline-flex; align-items: center; justify-content: center; gap: 6px; white-space: nowrap; }

/* rodapé da tabela */
.main.dash .conteudo-df .rodape-empresas .muted { font-size: 12.5px; color: var(--d-ink-3); }
.main.dash .conteudo-df .mini-contador { display: flex; align-items: baseline; gap: 6px; font-size: 12px; color: var(--d-ink-3); }

/* ---- RESPONSIVO ---- */
@media (max-width: 1280px) {
    .main.dash .kpi-row-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1180px) {
    .main.dash .dfx-row { grid-template-columns: 1fr; }
    .main.dash .dfx-side { flex-direction: row; flex-wrap: wrap; }
    .main.dash .dfx-side > .card { flex: 1 1 290px; }
}
@media (max-width: 920px) {
    .main.dash .kpi-row-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dfx-exec-grid { grid-template-columns: 1fr; gap: 16px; }
    .dfx-exec-pct { font-size: 33px; }
}
@media (max-width: 560px) {
    .main.dash .kpi-row-5 { grid-template-columns: 1fr; }
    .main.dash .dfx-side { flex-direction: column; }
    .main.dash .conteudo-df .acoes-busca .btn-busca { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
    .dfx-live-dot, .dfx-skel, .main.dash .dfx-exec-now .monitor-rotulo::before { animation: none; }
}
/* AURA-DF-PREMIUM — fim */

/* =====================================================================
   ███  AURA-DF-PREMIUM V2 — layout fiel à referência aprovada  ███
   Header com orb, 6 KPIs, Execução atual com timeline numerada,
   gráfico com eixo Y + tooltip, trilho direito (AURA Status +
   Atividade recente), toggles verdes, status em 2 linhas e paginação.
   Escopo: página DF (.conteudo-df e classes dfx-/kpix-). Vence o V1
   por vir depois na cascata. Reversível: remover este bloco.
   ===================================================================== */

/* ---- ordem dos blocos no .conteudo-df ---- */
.main.dash .conteudo-df > .kpix-row      { order: 1; }
.main.dash .conteudo-df > .dfx-main-grid { order: 2; }

/* ---- CABEÇALHO da página: orb + breadcrumb + subtítulo ---- */
.main.dash .dfx-pagehead { align-items: center; }
.dfx-ph-left { display: flex; align-items: center; gap: 16px; min-width: 0; flex: 1; }
.dfx-ph-orb { width: 56px; height: 56px; border-radius: 50%; flex: none;
    background: radial-gradient(circle at 35% 30%, #BBD4FF 0%, #4C8DF6 32%, #2563EB 58%, #123A8A 88%);
    box-shadow: 0 0 0 6px rgba(37,99,235,.08), 0 12px 26px -10px rgba(37,99,235,.55),
                inset 6px 8px 14px rgba(186,212,255,.5), inset -6px -8px 16px rgba(5,12,35,.5); }
.dfx-ph-txt { min-width: 0; }
.dfx-bc-sep { color: #94A3B8; margin: 0 3px; }
.dfx-ph-sub { margin: 6px 0 0; font-size: 13px; color: var(--d-ink-3); line-height: 1.5; }
.dfx-ph-sub b { color: var(--d-ink-2); font-weight: 600; }

/* ---- KPIs (6 colunas) ---- */
.kpix-row { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 14px; margin-bottom: 22px; }
.kpix { background: var(--d-card); border: 1px solid var(--d-line); border-radius: 16px;
    box-shadow: var(--d-shadow); padding: 14px 14px 12px; min-height: 122px;
    display: flex; flex-direction: column; align-items: center; text-align: center; gap: 9px;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    animation: dash-rise .5s ease both; }
.kpix:nth-child(2) { animation-delay: .04s } .kpix:nth-child(3) { animation-delay: .08s }
.kpix:nth-child(4) { animation-delay: .12s } .kpix:nth-child(5) { animation-delay: .16s }
.kpix:nth-child(6) { animation-delay: .2s }
.kpix:hover { transform: translateY(-3px); box-shadow: var(--d-shadow-pop); border-color: #DCE5F0; }
.kpix-label { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
    color: var(--d-ink-3); line-height: 1.3; }
.kpix-corpo { display: flex; align-items: center; justify-content: center; gap: 12px; min-width: 0; }
.kpix-ico { width: 44px; height: 44px; border-radius: 50%; flex: none;
    display: inline-flex; align-items: center; justify-content: center; }
.kpix-ico svg { width: 22px; height: 22px; }
.kpix-ico-azul  { background: #EFF6FF; color: #2563EB; }
.kpix-ico-ambar { background: #FEF3C7; color: #D97706; }
.kpix-ico-verm  { background: #FEF2F2; color: #DC2626; }
.kpix-ico-roxo  { background: #F3E8FF; color: #7C3AED; }
.kpix-info { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.kpix-valor { font-family: var(--fonte-marca); font-size: 27px; font-weight: 800;
    letter-spacing: -.02em; color: var(--d-ink); line-height: 1.05; font-variant-numeric: tabular-nums; }
.kpix-valor-sm { font-size: 19px; }
.kpix-valor-verm { color: #DC2626; }
.kpix-sub { font-size: 11px; color: var(--d-ink-3); margin-top: 2px; white-space: nowrap; }
.kpix-trend { display: inline-flex; align-items: center; gap: 4px; font-size: 11px;
    font-weight: 600; margin-top: auto; }
.kpix-trend-ok     { color: #15803D; }
.kpix-trend-verm   { color: #DC2626; }
.kpix-trend-neutro { color: var(--texto-fraco); }
.kpix-saude-ok     { color: #15803D !important; font-weight: 700; }
.kpix-saude-warn   { color: #B45309 !important; font-weight: 700; }
.kpix-saude-crit   { color: #DC2626 !important; font-weight: 700; }
.kpix-saude-neutro { color: var(--d-ink-3) !important; }

/* anel do KPI % Sucesso */
.kpix-ring { position: relative; width: 50px; height: 50px; flex: none;
    display: grid; place-items: center; }
.kpix-ring > svg:first-child { position: absolute; inset: 0; width: 100%; height: 100%;
    transform: rotate(-90deg); }
.kpix-ring-bg { fill: none; stroke: #EEF2F8; stroke-width: 3.6; }
.kpix-ring-val { fill: none; stroke-width: 3.6; stroke-linecap: round; }
.kpix-ring-ico { position: relative; width: 19px; height: 19px; }
.kpix-ring-ok .kpix-ring-val     { stroke: #16A34A; } .kpix-ring-ok .kpix-ring-ico     { color: #16A34A; }
.kpix-ring-warn .kpix-ring-val   { stroke: #F59E0B; } .kpix-ring-warn .kpix-ring-ico   { color: #B45309; }
.kpix-ring-crit .kpix-ring-val   { stroke: #DC2626; } .kpix-ring-crit .kpix-ring-ico   { color: #DC2626; }
.kpix-ring-neutro .kpix-ring-val { stroke: #CBD5E1; } .kpix-ring-neutro .kpix-ring-ico { color: #94A3B8; }

/* ---- GRID PRINCIPAL: conteúdo + trilho direito ---- */
.dfx-main-grid { display: grid; grid-template-columns: minmax(0, 1fr) 290px;
    gap: 18px; align-items: start; }
.dfx-main-col { min-width: 0; }
.dfx-rail { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.dfx-rail > .card { margin: 0; }

/* ---- linha Execução atual + Gráfico ---- */
.dfx-exec-row { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr);
    gap: 18px; align-items: stretch; margin-bottom: 24px; }
.dfx-exec-row > .card { margin: 0; }

/* ---- card EXECUÇÃO ATUAL (v2) ---- */
.main.dash .monitor.dfx-exec2 { background: var(--d-card); border-color: var(--d-line);
    display: flex; flex-direction: column; }
.dfx2-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.dfx2-titulo { font-family: var(--fonte-marca); font-size: 12.5px; font-weight: 800;
    text-transform: uppercase; letter-spacing: .07em; color: var(--d-ink); }
.dfx2-titulo small { font-weight: 600; color: var(--d-ink-3); text-transform: none; letter-spacing: 0; }
.dfx-chip-run { color: #15803D; background: #E7F8EE; border: 1px solid rgba(22,163,74,.25); }
.dfx2-chip-dot { width: 7px; height: 7px; border-radius: 50%; background: #16A34A;
    box-shadow: 0 0 0 3px rgba(34,197,94,.18); animation: op-pulse 1.6s ease-in-out infinite;
    margin-right: 6px; flex: none; }
.dfx-chip-neutro { color: #475569; background: #F1F5F9; border: 1px solid #E2E8F0; }
.dfx2-meta { font-size: 12.5px; color: var(--d-ink-3); line-height: 1.7; margin-bottom: 13px; }
.dfx2-meta b { color: var(--d-ink); font-weight: 700; font-variant-numeric: tabular-nums; }

.dfx2-progbox { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(150px, 1fr);
    gap: 18px; padding: 15px 16px; border: 1px solid var(--d-line);
    border-radius: 14px; background: #FDFEFF; }
.dfx2-mini-lbl { display: block; font-size: 10px; font-weight: 700; text-transform: uppercase;
    letter-spacing: .07em; color: var(--d-ink-3); }
.dfx2-mt { margin-top: 11px; }
.dfx2-prog-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.main.dash .dfx2-prog-head .monitor-fase { margin-left: 0; font-size: 10.5px; padding: 2px 9px; }
.dfx2-barrow { display: flex; align-items: center; gap: 14px; margin-top: 11px; }
.dfx2-barrow .barra-progresso { flex: 1; height: 10px; }
.dfx2-pct { font-family: var(--fonte-marca); font-size: 29px; font-weight: 800;
    letter-spacing: -.02em; color: var(--d-ink); line-height: 1; font-variant-numeric: tabular-nums; }
.dfx2-contagem { font-size: 12.5px; color: var(--d-ink-3); margin-top: 9px; }
.dfx2-contagem strong { color: var(--d-ink); font-weight: 700; }
.dfx2-prog-r { border-left: 1px solid var(--d-line-2); padding-left: 18px;
    display: flex; flex-direction: column; min-width: 0; }
.dfx2-emp { font-family: var(--fonte-marca); font-size: 13.5px; font-weight: 700;
    color: var(--d-ink); margin-top: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dfx2-doc { font-size: 12px; font-weight: 600; color: #1D4ED8; margin-top: 3px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* timeline numerada (5 etapas) */
.dfx2-steps { display: flex; align-items: flex-start; list-style: none;
    margin: 18px 0 2px; padding: 4px 0 0; }
.tl2-step { flex: 1 1 0; display: flex; flex-direction: column; align-items: center;
    text-align: center; position: relative; gap: 6px; min-width: 0; }
.tl2-step::before { content: ""; position: absolute; top: 14px; left: -50%; width: 100%;
    height: 2px; background: #E2E8F0; z-index: 0; }
.tl2-step:first-child::before { display: none; }
.tl2-dot { position: relative; z-index: 1; width: 28px; height: 28px; border-radius: 50%;
    display: grid; place-items: center; background: #fff; border: 2px solid #E2E8F0;
    transition: all .2s ease; }
.tl2-check { display: none; width: 13px; height: 13px; color: #fff; }
.tl2-num { font-style: normal; font-size: 12px; font-weight: 700; color: #94A3B8;
    font-variant-numeric: tabular-nums; }
.tl2-lbl { font-size: 11px; font-weight: 600; color: #94A3B8; line-height: 1.25; }
.tl2-hora { font-size: 10px; color: #94A3B8; min-height: 12px; font-variant-numeric: tabular-nums; }
.tl2-step.is-done .tl2-dot { background: #16A34A; border-color: #16A34A; }
.tl2-step.is-done .tl2-check { display: block; }
.tl2-step.is-done .tl2-num { display: none; }
.tl2-step.is-done::before { background: #16A34A; }
.tl2-step.is-done .tl2-lbl { color: #15803D; }
.tl2-step.is-active .tl2-dot { background: #2563EB; border-color: #2563EB;
    box-shadow: 0 0 0 4px rgba(37,99,235,.16); animation: tl-pulse 1.4s ease-in-out infinite; }
.tl2-step.is-active .tl2-num { color: #fff; }
.tl2-step.is-active::before { background: #16A34A; }
.tl2-step.is-active .tl2-lbl { color: #1D4ED8; }
.dfx2-foot { display: flex; justify-content: flex-end; margin-top: 12px; }

/* ---- card GRÁFICO (v2) ---- */
.dfx-chart2 { display: flex; flex-direction: column; }
.main.dash .dfx-chart2 .dfx-chip-filtro { margin-left: auto; }
.dfx-chart2-resumo { display: flex; flex-direction: column; margin: 2px 0 10px; }
.dfx-chart2-total { font-family: var(--fonte-marca); font-size: 27px; font-weight: 800;
    letter-spacing: -.02em; color: var(--d-ink); line-height: 1.1; font-variant-numeric: tabular-nums; }
.dfx-chart2-lbl { font-size: 11.5px; color: var(--d-ink-3); margin-top: 1px; }
.dfx-chart2-media { font-size: 11.5px; font-weight: 600; color: #15803D; margin-top: 3px; }
.dfx-chart2-area { display: flex; gap: 8px; flex: 1; min-height: 0; }
.dfx-chart2-y { display: flex; flex-direction: column; justify-content: space-between;
    align-items: flex-end; width: 34px; flex: none; height: 200px; padding: 6px 0 0; }
.dfx-chart2-y span { font-size: 10px; color: #94A3B8; font-variant-numeric: tabular-nums; line-height: 1; }
.dfx-chart2-wrap { position: relative; flex: 1; min-width: 0; }
#dfchart-svg { width: 100%; height: 200px; display: block; overflow: visible; }
.dfchart-dot { fill: #fff; stroke: #2563EB; stroke-width: 2; cursor: pointer; }
.dfchart-dot.ultimo { stroke-width: 2.8; }
.dfx-chart2-x { display: flex; justify-content: space-between; margin: 7px 0 0 42px; }
.dfx-chart2-x span { font-size: 10.5px; color: #94A3B8; font-variant-numeric: tabular-nums; }
#dfchart-tip { position: absolute; transform: translate(-50%, -135%);
    background: #0F172A; color: #fff; padding: 6px 10px; border-radius: 8px;
    font-size: 11.5px; line-height: 1.35; white-space: nowrap; pointer-events: none;
    box-shadow: 0 10px 24px -8px rgba(8,17,31,.6); z-index: 3; }
#dfchart-tip span { color: #9FB3CC; }
#dfchart-tip b { font-size: 12.5px; }

/* ---- trilho: AURA STATUS (v2) ---- */
.dfx-status2 { padding: 18px 18px 16px; }
.dfx-status2-head { display: flex; align-items: center; gap: 9px; margin-bottom: 8px; }
.dfx-orb-mini { width: 24px; height: 24px; border-radius: 50%; flex: none;
    background: radial-gradient(circle at 35% 30%, #BBD4FF 0%, #4C8DF6 35%, #2563EB 62%, #123A8A 92%);
    box-shadow: 0 0 0 3px rgba(37,99,235,.1), 0 4px 10px -4px rgba(37,99,235,.7); }
.dfx-st-list { list-style: none; margin: 0; padding: 0; }
.dfx-st-item { display: flex; align-items: center; gap: 11px; padding: 10px 2px;
    border-top: 1px solid var(--d-line-2); }
.dfx-st-item:first-child { border-top: none; }
.dfx-st-check { width: 22px; height: 22px; border-radius: 50%; flex: none;
    display: grid; place-items: center; background: #DCFCE7; color: #16A34A; }
.dfx-st-check svg { width: 12px; height: 12px; }
.dfx-st-check.run { background: #DBEAFE; color: #2563EB; animation: op-pulse 1.6s ease-in-out infinite; }
.dfx-st-txt { display: flex; flex-direction: column; min-width: 0; }
.dfx-st-txt b { font-size: 13px; font-weight: 700; color: var(--d-ink); }
.dfx-st-txt span { font-size: 11.5px; color: var(--d-ink-3); }
.dfx-st-verstatus { display: flex; align-items: center; justify-content: center; gap: 6px;
    margin-top: 12px; padding: 9px 10px; border: 1px solid var(--d-line); border-radius: 10px;
    font-size: 12.5px; font-weight: 700; color: #1D4ED8;
    transition: background .15s ease, border-color .15s ease; }
.dfx-st-verstatus:hover { background: #EFF6FF; border-color: #BFDBFE; color: #1D4ED8; }

/* ---- trilho: ATIVIDADE RECENTE (v2, timeline) ---- */
.dfx-ativ2 { padding: 18px 18px 14px; }
.dfx-ativ2-head { display: flex; align-items: center; justify-content: space-between;
    gap: 10px; margin-bottom: 6px; }
.dfx-ativ2-vertodas { font-size: 11.5px; font-weight: 700; color: #1D4ED8; }
.dfx-tl { list-style: none; margin: 0; padding: 0; }
.dfx-tl-item { display: flex; gap: 11px; padding: 8px 0; position: relative; }
.dfx-tl-item::before { content: ""; position: absolute; left: 6px; top: 26px; bottom: -6px;
    width: 2px; background: #EEF2F8; }
.dfx-tl-item:last-child::before { display: none; }
.dfx-tl-dot { width: 14px; height: 14px; border-radius: 50%; flex: none; margin-top: 3px;
    position: relative; z-index: 1; border: 3px solid; }
.dfx-tl-ok     { background: #16A34A; border-color: #DCFCE7; }
.dfx-tl-warn   { background: #F59E0B; border-color: #FEF3C7; }
.dfx-tl-err    { background: #DC2626; border-color: #FEE2E2; }
.dfx-tl-neutro { background: #94A3B8; border-color: #F1F5F9; }
.dfx-tl-body { display: flex; flex-direction: column; min-width: 0; gap: 1px; }
.dfx-tl-hora { font-size: 10.5px; color: #94A3B8; font-variant-numeric: tabular-nums; }
.dfx-tl-evt { font-size: 12.5px; font-weight: 700; color: var(--d-ink); }
.dfx-tl-emp { font-size: 11.5px; color: var(--d-ink-3); overflow: hidden;
    text-overflow: ellipsis; white-space: nowrap; }
.dfx-ativ2-foot { display: flex; align-items: center; gap: 7px; margin-top: 10px;
    padding-top: 11px; border-top: 1px solid var(--d-line-2);
    font-size: 11px; font-weight: 600; color: #15803D; }
.dfx-ativ2-foot-dot { width: 7px; height: 7px; border-radius: 50%; background: #16A34A;
    box-shadow: 0 0 0 3px rgba(34,197,94,.16); animation: op-pulse 1.8s ease-in-out infinite; flex: none; }

/* ---- EMPRESAS: toggles verdes + status 2 linhas + accent + ações ---- */
.main.dash .conteudo-df .toggle input:checked + .slider { background: #16A34A; }
.main.dash .conteudo-df .toggle:hover input:checked + .slider { background: #15803D; }

.main.dash .conteudo-df .cabecalho-lista,
.main.dash .conteudo-df .linha-empresa {
    grid-template-columns: minmax(225px, 1.9fr) 122px repeat(5, 82px) 122px;
    min-width: 1030px;
}
.main.dash .conteudo-df .linha-empresa { position: relative; }
.main.dash .conteudo-df .linha-empresa::before { content: ""; position: absolute;
    left: 0; top: 0; bottom: 0; width: 3px; background: #BFDBFE; }
.main.dash .conteudo-df .linha-empresa:hover::before { background: #60A5FA; }
.main.dash .conteudo-df .nome-empresa { color: #1D4ED8; }

.st-badge2 { display: inline-flex; flex-direction: column; gap: 1px; padding: 6px 11px;
    border-radius: 10px; min-width: 100px; cursor: help; }
.st2-tit { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; }
.st2-sub { font-size: 10.5px; opacity: .8; padding-left: 12px; }
.st2-ok     { background: #E7F8EE; color: #15803D; }
.st2-aviso  { background: #FEF3C7; color: #92400E; }
.st2-erro   { background: #FEF2F2; color: #B91C1C; border: 1px solid #FECACA; }
.st2-neutro { background: #F1F5F9; color: #64748B; }

.main.dash .conteudo-df .col-acao { display: flex; align-items: center;
    justify-content: center; gap: 6px; }
.btn-row-menu { width: 32px; height: 32px; border-radius: 8px; border: 1px solid #E2E8F0;
    background: #fff; color: #64748B; cursor: pointer; display: inline-flex;
    align-items: center; justify-content: center; flex: none;
    transition: border-color .15s ease, color .15s ease, background .15s ease; }
.btn-row-menu:hover { border-color: #BFDBFE; color: #1D4ED8; background: #EFF6FF; }
.row-menu-wrap { position: relative; display: inline-flex; }
.row-menu { position: absolute; right: 0; top: calc(100% + 4px); z-index: 40;
    display: none; flex-direction: column; min-width: 132px; padding: 4px;
    background: #fff; border: 1px solid var(--d-line); border-radius: 10px;
    box-shadow: var(--d-shadow-pop); }
.row-menu.aberto { display: flex; }
.row-menu-item { display: block; width: 100%; text-align: left; padding: 7px 10px;
    font-size: 12.5px; font-weight: 600; color: var(--d-ink); background: none;
    border: none; border-radius: 7px; cursor: pointer; white-space: nowrap; }
.row-menu-item:hover { background: #F1F5F9; }

/* ---- contadores + paginação ---- */
.dfx-contadores2 { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 2px 0; }
.dfx-rodape2 { display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 12px; margin-top: 12px; padding-top: 13px;
    border-top: 1px solid var(--d-line-2); }
.dfx-pg { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.main.dash .conteudo-df .pg-size { height: 36px; border-radius: 10px; border: 1px solid #CBD5E1;
    padding: 0 30px 0 11px; font-size: 12.5px; color: var(--d-ink-2); cursor: pointer;
    appearance: none; -webkit-appearance: none;
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right 9px center; }
.pg-nav { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.pg-btn { min-width: 34px; height: 34px; padding: 0 6px; border-radius: 9px;
    border: 1px solid #E2E8F0; background: #fff; color: #475569; font-size: 13px;
    font-weight: 600; cursor: pointer; font-variant-numeric: tabular-nums;
    transition: border-color .15s ease, color .15s ease, background .15s ease; }
.pg-btn:hover:not(:disabled):not(.ativa) { border-color: #BFDBFE; color: #1D4ED8; background: #EFF6FF; }
.pg-btn.ativa { background: #2563EB; border-color: #2563EB; color: #fff;
    box-shadow: 0 6px 14px -8px rgba(37,99,235,.8); }
.pg-btn:disabled { opacity: .4; cursor: default; }
.pg-seta { font-size: 16px; line-height: 1; }
.pg-elipse { padding: 0 3px; color: #94A3B8; line-height: 34px; font-size: 13px; }

/* ---- ajustes finos v2 ---- */
/* página DF mais larga (a referência é um painel wide) */
.main.dash .conteudo.conteudo-df { max-width: 1520px !important; }
.main.dash .topbar.dfx-pagehead { max-width: 1520px; }

/* tabela cabe sem scroll na coluna principal (Ações larga p/ Executar + ⋮) */
.main.dash .conteudo-df .cabecalho-lista,
.main.dash .conteudo-df .linha-empresa {
    grid-template-columns: minmax(190px, 1.9fr) 108px repeat(5, 72px) 134px;
    gap: 10px;
    min-width: 910px;
}
.main.dash .conteudo-df .btn-buscar-linha { height: 32px; padding: 0 10px; font-size: 12px; }
/* badges curtos podem quebrar em 2 linhas dentro da coluna estreita */
.main.dash .conteudo-df .ultimo-badge-wrap span {
    white-space: normal; line-height: 1.2; text-align: center;
    display: inline-block; max-width: 100%;
}

/* botão Executar: caixa normal (o tema antigo usa uppercase !important) */
.main.dash .conteudo-df .btn-buscar-linha { text-transform: none !important; letter-spacing: 0 !important; }

/* ==================================================================
   MENU PAI "Busca de XMLs" — agrupa XMLs · DF e XMLs · GO num
   submenu que abre/fecha ao clicar. Estilo navy (igual à sidebar).
   Fica no FIM do arquivo de propósito: vence os temas legados.
   ================================================================== */
.sidebar-nav .menu-grupo { display: flex; flex-direction: column; }

/* Cabeçalho clicável — visual idêntico aos itens da sidebar (.sidebar-nav a) */
.sidebar-nav .menu-grupo-btn {
    display: flex; align-items: center; gap: 11px; width: 100%;
    padding: 9px 11px; border: 0; border-radius: 10px;
    background: transparent; cursor: pointer; text-align: left;
    color: #AAB7C9; font-family: inherit; font-size: 13.5px; font-weight: 500;
    transition: background .15s ease, color .15s ease;
}
.sidebar-nav .menu-grupo-btn .icone { width: 20px; height: 20px; color: #8595AB; display: inline-flex; }
.sidebar-nav .menu-grupo-btn .icone svg { width: 19px; height: 19px; display: block; }
.sidebar-nav .menu-grupo-btn:hover { background: rgba(255,255,255,.05); color: #EAF1FB; }
.sidebar-nav .menu-grupo-btn:hover .icone { color: #CFE0F6; }
.sidebar-nav .menu-grupo.aberto > .menu-grupo-btn { color: #EAF1FB; }

/* Seta (chevron) — gira 180° quando o grupo está aberto */
.sidebar-nav .menu-grupo-seta { margin-left: auto; width: 16px; height: 16px; color: #7C8BA1; display: inline-flex; transition: transform .25s ease; }
.sidebar-nav .menu-grupo-seta svg { width: 16px; height: 16px; display: block; }
.sidebar-nav .menu-grupo.aberto > .menu-grupo-btn .menu-grupo-seta { transform: rotate(180deg); color: #CFE0F6; }

/* Container que abre/fecha (animação por max-height) */
.sidebar-nav .menu-grupo-sub {
    overflow: hidden; max-height: 0; opacity: 0;
    margin-left: 17px; padding-left: 12px;
    border-left: 1px solid rgba(255,255,255,.10);
    display: flex; flex-direction: column; gap: 3px;
    transition: max-height .28s ease, opacity .2s ease, margin-top .2s ease;
}
.sidebar-nav .menu-grupo.aberto > .menu-grupo-sub { max-height: 220px; opacity: 1; margin-top: 4px; }

/* Sub-itens (XMLs · DF / XMLs · GO) */
.sidebar-nav .menu-grupo-sub a.grupo-item {
    display: flex; align-items: center; gap: 10px;
    padding: 8px 11px; border-radius: 9px;
    color: #9FAEC2; font-size: 13px; font-weight: 500;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.sidebar-nav .menu-grupo-sub a.grupo-item .icone { width: 18px; height: 18px; color: #8595AB; display: inline-flex; }
.sidebar-nav .menu-grupo-sub a.grupo-item .icone svg { width: 17px; height: 17px; display: block; }
.sidebar-nav .menu-grupo-sub a.grupo-item:hover { background: rgba(255,255,255,.05); color: #EAF1FB; }
.sidebar-nav .menu-grupo-sub a.grupo-item:hover .icone { color: #CFE0F6; }
.sidebar-nav .menu-grupo-sub a.grupo-item.ativo {
    background: linear-gradient(100deg, rgba(37,99,235,.30), rgba(37,99,235,.12));
    color: #fff; font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(96,165,250,.35), 0 8px 22px -10px rgba(37,99,235,.9);
}
.sidebar-nav .menu-grupo-sub a.grupo-item.ativo .icone { color: #fff; }

/* Mobile: a sidebar vira barra horizontal → mostra DF e GO direto (sem accordion) */
@media (max-width: 980px) {
    .sidebar-nav .menu-grupo,
    .sidebar-nav .menu-grupo-sub { display: contents !important; }
    .sidebar-nav .menu-grupo-btn { display: none !important; }
    .sidebar-nav .menu-grupo-sub a.grupo-item {
        white-space: nowrap; padding: 7px 12px !important; font-size: 12.5px !important;
        border-radius: 10px;
    }
}

/* ⋮ no fim da linha — botão quadrado com pontos BEM visíveis (como na referência) */
.main.dash .conteudo-df .btn-row-menu { width: 32px; height: 32px; flex: none;
    border: 1px solid #D7DFEA; background: #fff; color: #475569; border-radius: 8px;
    display: inline-flex; align-items: center; justify-content: center; padding: 0; }
.main.dash .conteudo-df .btn-row-menu:hover { background: #EFF6FF; color: #1D4ED8; border-color: #93C5FD; }
.main.dash .conteudo-df .btn-row-menu svg { width: 18px; height: 18px; display: block; flex: none; }
.main.dash .conteudo-df .btn-row-menu svg circle { fill: currentColor !important; stroke: none !important; }

/* badges de último download — pílulas limpas (cores AURA, sem tons "sujos") */
.main.dash .conteudo-df .ultimo-badge-wrap span { font-size: 10px; font-weight: 700;
    padding: 3px 8px; border-radius: 7px; border: none; letter-spacing: 0; text-transform: none; }
.main.dash .conteudo-df .ultimo-badge   { background: #DCFCE7; color: #15803D; }
.main.dash .conteudo-df .ultimo-semnf   { background: #FEF3C7; color: #92400E; }
.main.dash .conteudo-df .ultimo-semproc { background: #F1F5F9; color: #64748B; }
.main.dash .conteudo-df .ultimo-baixada { background: #F3E8FF; color: #7C3AED; }
.main.dash .conteudo-df .ultimo-aviso   { background: #FEF3C7; color: #92400E; }
.main.dash .conteudo-df .ultimo-erro    { background: #FEE2E2; color: #B91C1C; }
.main.dash .conteudo-df .ultimo-nunca   { background: transparent; color: #CBD5E1; padding: 0; }

/* botão Reprocessar + detalhes de erro dentro do card Execução atual (v2) */
.dfx-exec2 .ultimo-proc-detalhe { margin-top: 12px; font-size: 12.5px; color: var(--d-ink-3); }
.dfx-exec2 .ultimo-proc-detalhe strong { color: #DC2626; }
.dfx-exec2 .btn-reprocessar-erros { display: inline-flex; align-items: center; gap: 8px;
    min-height: 38px; padding: 0 15px; font-size: 12.5px; font-weight: 700; color: #fff;
    background: #DC2626; border: none; border-radius: 10px; cursor: pointer;
    box-shadow: 0 8px 18px -10px rgba(220,38,38,.55);
    transition: filter .15s ease, transform .15s ease; }
.dfx-exec2 .btn-reprocessar-erros:hover:not(:disabled) { filter: brightness(1.07); transform: translateY(-1px); }
.dfx-exec2 .btn-reprocessar-erros:disabled { opacity: .55; cursor: default; box-shadow: none; }
.dfx-exec2 .dfx-stats { margin-top: 4px; }

/* ---- RESPONSIVO (v2) ---- */
@media (max-width: 1500px) {
    .kpix-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1280px) {
    .dfx-exec-row { grid-template-columns: 1fr; }
}
@media (max-width: 1180px) {
    .dfx-main-grid { grid-template-columns: 1fr; }
    .dfx-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
}
@media (max-width: 920px) {
    .kpix-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dfx2-progbox { grid-template-columns: 1fr; }
    .dfx2-prog-r { border-left: none; padding-left: 0; border-top: 1px solid var(--d-line-2); padding-top: 12px; }
    .dfx-ph-orb { width: 44px; height: 44px; }
}
@media (max-width: 560px) {
    .kpix-row { grid-template-columns: 1fr; }
    .dfx2-steps { flex-wrap: wrap; gap: 10px 0; }
    .tl2-step { flex: 1 1 33%; }
    .tl2-step::before { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .dfx2-chip-dot, .dfx-st-check.run, .dfx-ativ2-foot-dot, .kpix,
    .tl2-step.is-active .tl2-dot { animation: none; }
}

/* =====================================================================
   AURA-DF-PREMIUM V3 — modal de atividade + tabela de empresas turbinada
   ===================================================================== */

/* ---- MODAL "Atividade da AURA" (Eventos · Log do robô · Arquivos) ---- */
.dfx-modal { position: fixed; inset: 0; z-index: 1000; display: flex;
    align-items: center; justify-content: center; padding: 26px; }
.dfx-modal[hidden] { display: none; }
.dfx-modal-bg { position: absolute; inset: 0; background: rgba(15, 23, 42, .46);
    -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.dfx-modal-card { position: relative; width: min(780px, 100%);
    max-height: min(84vh, 740px); background: #fff; border-radius: 20px;
    box-shadow: 0 30px 90px -22px rgba(15, 23, 42, .5);
    display: flex; flex-direction: column; padding: 20px 22px 18px;
    animation: dash-rise .22s ease both; }
.dfx-modal-head { display: flex; align-items: center; gap: 10px; }
.dfx-modal-head .status-live { margin-left: auto; }
.dfx-modal-x { width: 34px; height: 34px; flex: none; border-radius: 10px;
    border: 1px solid #E2E8F0; background: #fff; color: #64748B; cursor: pointer;
    display: grid; place-items: center; transition: background .15s ease, color .15s ease; }
.dfx-modal-x:hover { background: #F1F5F9; color: #0F172A; }
.dfx-modal-tabs { display: flex; gap: 6px; margin: 15px 0 0; padding-bottom: 12px;
    border-bottom: 1px solid #EEF2F8; flex-wrap: wrap; }
.dfx-mtab { height: 34px; padding: 0 15px; border-radius: 99px; border: 1px solid #E2E8F0;
    background: #fff; font-size: 12.5px; font-weight: 700; color: #475569; cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease; }
.dfx-mtab:hover:not(.ativa) { border-color: #BFDBFE; color: #1D4ED8; background: #EFF6FF; }
.dfx-mtab.ativa { background: #2563EB; border-color: #2563EB; color: #fff;
    box-shadow: 0 8px 18px -10px rgba(37, 99, 235, .7); }
.dfx-modal-body { overflow-y: auto; flex: 1; min-height: 260px; padding: 12px 2px 2px;
    scrollbar-width: thin; }
.dfx-mpane[hidden] { display: none; }
#mpane-eventos .dfx-tl-item { padding: 9px 0; }
.dfx-mlog-head { font-size: 11.5px; color: #64748B; margin-bottom: 9px; }
.main.dash #mpane-log #log { margin: 0; min-height: 300px; max-height: 100%; }
#mpane-arquivos table { width: 100%; border-collapse: collapse; }

/* ---- EMPRESAS turbinada: nome em cima + CNPJ embaixo, avatar premium ---- */
.main.dash .conteudo-df .col-empresa { gap: 11px; }
.main.dash .conteudo-df .col-empresa .info {
    display: flex; flex-direction: column; align-items: flex-start;
    gap: 1px; min-width: 0; flex: 1;
}
.main.dash .conteudo-df .nome-empresa { font-size: 13px; font-weight: 700; line-height: 1.25;
    max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.main.dash .conteudo-df .cnpj-empresa { font-size: 10.5px; color: #94A3B8;
    background: transparent; padding: 0; letter-spacing: .01em; }
.main.dash .conteudo-df .avatar,
.main.dash .conteudo-df .avatar.avatar-cod {
    flex: 0 0 34px; height: 34px; border-radius: 9px;
    background: linear-gradient(150deg, #3B82F6, #1D4ED8); color: #fff;
    font-size: 11.5px; font-weight: 700;
    box-shadow: 0 6px 12px -6px rgba(37, 99, 235, .55);
}
.main.dash .conteudo-df .cabecalho-lista { padding-top: 12px; padding-bottom: 12px;
    font-size: 10.5px; font-weight: 800; letter-spacing: .06em; color: #64748B; }
.main.dash .conteudo-df .linha-empresa { padding-top: 12px; padding-bottom: 12px; }
.main.dash .conteudo-df .linha-empresa:hover { background: #F5F9FF; }
.main.dash .conteudo-df .lista-empresas { max-height: 600px; }
.main.dash .conteudo-df .st-badge2 { min-width: 96px; padding: 5px 10px; }

/* coluna AÇÕES presa à direita: Executar + ⋮ SEMPRE visíveis,
   mesmo quando a tabela rola na horizontal em telas menores */
.main.dash .conteudo-df .cabecalho-lista .col-acao,
.main.dash .conteudo-df .linha-empresa .col-acao {
    position: sticky; right: 0; z-index: 2;
    margin: -12px 0; padding: 12px 4px 12px 8px; height: calc(100% + 24px);
    display: flex; align-items: center; justify-content: center;
}
.main.dash .conteudo-df .cabecalho-lista .col-acao { background: #F8FAFC; margin: -12px 0; }
.main.dash .conteudo-df .linha-empresa .col-acao { background: #fff;
    box-shadow: -12px 0 12px -12px rgba(15, 23, 42, .18); }
.main.dash .conteudo-df .linha-empresa:hover .col-acao { background: #F5F9FF; }

/* trilho direito desce mais cedo — tabela ganha a largura toda em telas médias */
@media (max-width: 1460px) {
    .dfx-main-grid { grid-template-columns: 1fr; }
    .dfx-rail { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
}
/* AURA-DF-PREMIUM-V3 — fim */

/* =====================================================================
   AURA-DF-PREMIUM V4 — card "Período de busca" fiel à referência +
   tabela com 20 empresas por página e cabeçalho CONGELADO no scroll.
   ===================================================================== */

/* ---- cabeçalho do card: ícone + título + chip "Período atual" ---- */
.dfx-pb-head { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; margin-bottom: 18px; }
.dfx-pb-ico { width: 52px; height: 52px; flex: none; border-radius: 14px;
    background: #EFF4FF; border: 1px solid #DCE7FD; color: #2563EB;
    display: grid; place-items: center; }
.dfx-pb-ico svg { width: 25px; height: 25px; }
.dfx-pb-tit { min-width: 0; flex: 1; }
.dfx-pb-tit h2 { margin: 0; font-family: var(--fonte-marca); font-size: 19px;
    font-weight: 800; letter-spacing: -.01em; color: var(--d-ink); }
.dfx-pb-tit .legenda { font-size: 13px; color: var(--d-ink-3); margin-top: 3px; }
.dfx-pb-atual { display: inline-flex; align-items: center; gap: 8px; flex: none;
    background: #F8FAFC; border: 1px solid #E2E8F0; border-radius: 12px;
    padding: 10px 16px; font-size: 13px; color: #334155; white-space: nowrap; }
.dfx-pb-atual b { color: var(--d-ink); font-weight: 700; font-variant-numeric: tabular-nums; }

.dfx-pb-sep { height: 1px; background: var(--d-line-2); margin: 18px 0; }

/* ---- 3 botões de busca em estilo CLARO (ícone sólido + chevron) ---- */
.main.dash .conteudo-df .dfx-pb-acoes { display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 0; }
.main.dash .conteudo-df .btn-busca { background: #fff; color: inherit; border: 1px solid var(--d-line);
    border-radius: 16px; box-shadow: none; min-height: 88px; padding: 0 18px;
    display: flex; flex-direction: row; align-items: center; gap: 14px; text-align: left;
    transition: transform .15s ease, box-shadow .15s ease; }
.main.dash .conteudo-df .btn-busca:hover:not(:disabled) { transform: translateY(-2px);
    filter: none; box-shadow: 0 16px 30px -20px rgba(15, 23, 42, .4); }
.main.dash .conteudo-df .btn-busca:disabled { opacity: .55; box-shadow: none; }
.btn-busca-ico2 { width: 46px; height: 46px; flex: none; border-radius: 13px;
    display: grid; place-items: center; color: #fff; }
.btn-busca-ico2 svg { width: 24px; height: 24px; }
.main.dash .conteudo-df .btn-busca-txt { flex: 1; min-width: 0; display: flex;
    flex-direction: column; gap: 2px; font-size: 16px; font-weight: 700; line-height: 1.25; }
.main.dash .conteudo-df .btn-busca-sub { font-size: 12.5px; font-weight: 500;
    opacity: 1; color: #64748B; }
.btn-busca-chev { width: 18px; height: 18px; flex: none; color: #94A3B8; }
.main.dash .conteudo-df .btn-busca.btn-agencia { background: #EFF4FF; border-color: #DCE7FD; }
.main.dash .conteudo-df .btn-agencia .btn-busca-ico2 { background: #2563EB;
    box-shadow: 0 10px 18px -10px rgba(37, 99, 235, .8); }
.main.dash .conteudo-df .btn-agencia .btn-busca-txt { color: #1D4ED8; }
.main.dash .conteudo-df .btn-busca.btn-iss { background: #F4F1FE; border-color: #E5DEFB; }
.main.dash .conteudo-df .btn-iss .btn-busca-ico2 { background: #6D28D9;
    box-shadow: 0 10px 18px -10px rgba(109, 40, 217, .8); }
.main.dash .conteudo-df .btn-iss .btn-busca-txt { color: #6D28D9; }
.main.dash .conteudo-df .btn-busca.btn-rodar-tudo { background: #ECFDF3; border-color: #D5F2E0; }
.main.dash .conteudo-df .btn-rodar-tudo .btn-busca-ico2 { background: #16A34A;
    box-shadow: 0 10px 18px -10px rgba(22, 163, 74, .8); }
.main.dash .conteudo-df .btn-rodar-tudo .btn-busca-txt { color: #15803D; }
.dfx-pb-status { margin-top: 8px; min-height: 18px; }

/* ---- faixa "Excluir concluídos do portal" ---- */
.dfx-pb-danger { display: flex; align-items: center; gap: 18px; flex-wrap: wrap;
    margin-top: 16px; padding: 14px 18px; border-radius: 14px;
    background: #FEF1F2; border: 1px solid #FBD9DC; }
.dfx-pb-danger-btn { display: inline-flex; align-items: center; gap: 12px; flex: none;
    background: transparent; border: none; padding: 0; cursor: pointer;
    color: #DC2626; font-family: var(--fonte-marca); font-size: 15px; font-weight: 800; }
.dfx-pb-danger-btn:hover:not(:disabled) { color: #B91C1C; }
.dfx-pb-danger-btn:disabled { opacity: .5; cursor: not-allowed; }
.dfx-pb-danger-ico { width: 38px; height: 38px; flex: none; border-radius: 11px;
    background: #FBDCDF; color: #DC2626; display: grid; place-items: center; }
.dfx-pb-danger-txt { flex: 1; min-width: 260px; font-size: 13.5px; line-height: 1.55;
    color: #334155; border-left: 1px solid #F6C9CD; padding-left: 18px; }
.dfx-pb-danger-txt .status-limpeza { display: block; margin-top: 3px;
    color: #B91C1C; font-weight: 700; font-size: 12.5px; }

/* ---- dica azul ---- */
.dfx-pb-dica { display: flex; align-items: center; gap: 9px; margin-top: 14px;
    padding: 12px 16px; border-radius: 12px; background: #F4F7FB;
    border: 1px solid #E3EAF3; font-size: 13px; color: #334155; }
.dfx-pb-dica svg { flex: none; color: #2563EB; }
.dfx-pb-dica b { color: #1D4ED8; }

/* ---- LISTA: ~20 empresas visíveis + cabeçalho congelado ---- */
.main.dash .conteudo-df .lista-wrap { overflow: auto;
    max-height: min(1330px, calc(100vh - 210px));
    scrollbar-width: thin; scrollbar-color: #CBD5E1 transparent; }
.main.dash .conteudo-df .lista-wrap::-webkit-scrollbar { width: 10px; height: 10px; }
.main.dash .conteudo-df .lista-wrap::-webkit-scrollbar-track { background: transparent; }
.main.dash .conteudo-df .lista-wrap::-webkit-scrollbar-thumb { background: #CBD5E1;
    border-radius: 99px; border: 2px solid #fff; }
.main.dash .conteudo-df .lista-empresas { max-height: none; overflow: visible; }
.main.dash .conteudo-df .cabecalho-lista { position: sticky; top: 0; z-index: 4;
    background: #F8FAFC; box-shadow: 0 1px 0 #E2E8F0; }
.main.dash .conteudo-df .cabecalho-lista .col-acao { z-index: 5; }

@media (max-width: 1100px) {
    .main.dash .conteudo-df .dfx-pb-acoes { grid-template-columns: 1fr; }
    .dfx-pb-atual { margin-left: 66px; }
}

/* ---- Execução atual: largura total (igual ao Período de busca) e compacto ---- */
.main.dash .conteudo-df .monitor.dfx-exec-full { padding: 18px 20px 15px; }
.dfx-exec-full .dfx2-head { margin-bottom: 10px; }
.dfx-exec-full .dfx2-meta { display: flex; flex-wrap: wrap; gap: 4px 28px;
    margin-bottom: 11px; line-height: 1.55; }
.dfx-exec-full .dfx2-progbox { padding: 12px 15px;
    grid-template-columns: minmax(0, 1.9fr) minmax(220px, 1fr); }
.dfx-exec-full .dfx2-pct { font-size: 26px; }
.dfx-exec-full .dfx2-contagem { margin-top: 7px; }
.dfx-exec-full .dfx2-steps { margin: 13px 0 0; }
.dfx-exec-full .dfx2-foot { margin-top: 8px; }
.dfx-exec-full .dfx-stats { grid-template-columns: repeat(auto-fit, minmax(92px, 114px));
    justify-content: start; gap: 8px; margin-top: 10px; }
.dfx-exec-full .dfx-stat { padding: 9px 8px 8px; border-radius: 12px; }
.dfx-exec-full .dfx-stat-num { font-size: 20px; }
.dfx-exec-full .dfx-stat-lbl { font-size: 10px; margin-top: 3px; }
.dfx-exec-full .ultimo-proc-detalhe,
.dfx-exec-full .dfx-motivos { margin-top: 10px; }
.dfx-exec-full .dfx-reprocessar { margin-top: 11px; }
.dfx-exec-full .dfx-vazio { padding: 20px 16px 14px; }

/* ---- "Última execução" reorganizada: resumo à esquerda + números à direita ---- */
.dfx-le { display: flex; align-items: center; justify-content: space-between;
    gap: 14px 24px; flex-wrap: wrap; padding: 14px 16px;
    border: 1px solid var(--d-line-2); border-radius: 14px; background: #FBFCFE; }
.dfx-le-resumo { display: flex; align-items: center; gap: 13px; flex: 1 1 330px; min-width: 0; }
.dfx-le-ico { width: 46px; height: 46px; border-radius: 13px; flex: none;
    display: grid; place-items: center; }
.dfx-le-ico svg { width: 23px; height: 23px; }
.dfx-le-ico-ok    { background: #E7F8EE; color: #16A34A; }
.dfx-le-ico-aviso { background: #FEF3C7; color: #B45309; }
.dfx-le-ico-erro  { background: #FEE2E2; color: #DC2626; }
.dfx-le-info { min-width: 0; }
.dfx-le-tit { font-family: var(--fonte-marca); font-size: 15px; font-weight: 700;
    color: var(--d-ink); line-height: 1.3; }
.dfx-le-tempos { display: flex; flex-wrap: wrap; gap: 3px 20px; margin-top: 5px;
    font-size: 12px; color: var(--d-ink-3); }
.dfx-le-tempos span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.dfx-le-tempos svg { width: 12px; height: 12px; flex: none; color: #94A3B8; }
.dfx-le-tempos b { color: var(--d-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.dfx-le-stats { display: flex; gap: 8px; flex-wrap: wrap; flex: none; }
.dfx-le-stats .dfx-stat { min-width: 88px; }

/* faixa de erro acionável (texto + reprocessar + causas expansíveis) */
.dfx-le-alerta { margin-top: 12px; padding: 12px 14px; border-radius: 14px;
    background: #FEF1F2; border: 1px solid #FBD9DC; }
.dfx-le-alerta-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.dfx-le-alerta-ico { width: 38px; height: 38px; border-radius: 11px; flex: none;
    background: #FBDCDF; color: #DC2626; display: grid; place-items: center; }
.dfx-le-alerta-ico svg { width: 19px; height: 19px; }
.dfx-le-alerta-txt { flex: 1; min-width: 230px; font-size: 12.5px; color: #9A3434; line-height: 1.5; }
.dfx-le-alerta-txt b { display: block; font-size: 13.5px; color: #B91C1C; }
.dfx-le-alerta .btn-reprocessar-erros { flex: none; }
.dfx-motivos2 { margin-top: 11px; padding-top: 11px; border-top: 1px dashed #F3C2C7;
    font-size: 12.5px; color: var(--d-ink-2); }
.dfx-motivos2 > summary { cursor: pointer; color: #B91C1C; font-weight: 700;
    list-style: none; user-select: none; display: inline-flex; align-items: center; gap: 6px; }
.dfx-motivos2 > summary::-webkit-details-marker { display: none; }
.dfx-motivos2 > summary::before { content: "\25B8"; }
.dfx-motivos2[open] > summary::before { content: "\25BE"; }
.dfx-motivos2 .motivos-rotulo { margin-top: 10px; font-weight: 700; color: var(--d-ink); }
.dfx-motivos2 .motivos-causas,
.dfx-motivos2 .motivos-empresas { margin: 4px 0 0; padding: 0; list-style: none; }
.dfx-motivos2 .motivos-empresas { max-height: 220px; overflow-y: auto; }
.dfx-motivos2 li { padding: 4px 0; border-top: 1px solid #FBE4E4; line-height: 1.45; word-break: break-word; }
.dfx-motivos2 .motivo-qtd { display: inline-block; min-width: 28px; font-weight: 800;
    color: #DC2626; font-variant-numeric: tabular-nums; }
.dfx-motivos2 .motivos-empresas b { color: var(--d-ink); font-weight: 600; }
.dfx-motivos2 .motivo-tipo, .dfx-motivos2 .motivo-quando { color: var(--texto-fraco); font-size: 11px; }
.dfx-motivos2 .motivo-quando { white-space: nowrap; }

/* AURA-DF-PREMIUM-V4 — fim */

/* =====================================================================
   ███  XMLs · GO — reaproveita a pele premium do DF  ███
   A página /goias usa as MESMAS classes do DF (.conteudo-df + dfx-/kpix-),
   então herda todo o visual. Só muda a grade da lista de empresas: o GO
   tem 3 colunas de tipo (NFC-e Emit, NF-e Emit, NF-e Dest) em vez das 5
   do DF. O modificador .conteudo-go cobre só isso. Reversível: remover
   este bloco. Escopo extra (.conteudo-df.conteudo-go) garante a vitória
   na cascata sem depender da ordem.
   ===================================================================== */
.main.dash .conteudo-df.conteudo-go .cabecalho-lista,
.main.dash .conteudo-df.conteudo-go .linha-empresa {
    grid-template-columns: minmax(230px, 2fr) 118px repeat(3, 92px) 104px;
    min-width: 840px;
}
/* GO tem 2 ações (Baixar / Só reprocessar erros), não 3 */
.main.dash .conteudo-df.conteudo-go .dfx-pb-acoes {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}
/* botão "Só reprocessar erros" — acento âmbar (semântica de retry) */
.main.dash .conteudo-df.conteudo-go .btn-busca.btn-reproc { background: #FFF7ED; border-color: #FED7AA; }
.main.dash .conteudo-df.conteudo-go .btn-reproc .btn-busca-ico2 { background: #EA580C;
    box-shadow: 0 10px 18px -10px rgba(234, 88, 12, .8); }
.main.dash .conteudo-df.conteudo-go .btn-reproc .btn-busca-txt { color: #C2410C; }
/* badge "sem IE" na meta da empresa (pendência cadastral do GO) */
.main.dash .conteudo-go .cnpj-empresa.sem-ie { color: #B45309; }
@media (max-width: 1100px) {
    .main.dash .conteudo-df.conteudo-go .dfx-pb-acoes { grid-template-columns: 1fr; }
}
/* XMLs · GO — fim */

/* ===================================================================
   ███  AURA-CONFIG-PREMIUM — redesign do MIOLO da página Configurações
   Só toca em .conteudo-config e classes cfg-* — sidebar, topbar e demais
   telas ficam intactas. Reversível: remover este bloco.
   =================================================================== */
.main.dash .conteudo-config {
    /* paleta local (slate / SaaS) */
    --c-bg:        #F8FAFC;
    --c-card:      #FFFFFF;
    --c-ink:       #0F172A;
    --c-ink-2:     #334155;
    --c-ink-3:     #64748B;
    --c-line:      #E2E8F0;
    --c-line-2:    #EEF2F8;
    --c-blue:      #2563EB;
    --c-blue-d:    #1D4ED8;
    --c-blue-l:    #EFF6FF;
    --c-blue-bd:   #BFDBFE;
    --c-green:     #16A34A;
    --c-green-d:   #166534;
    --c-green-l:   #DCFCE7;
    --c-gold:      #C9A449;
    --c-gold-l:    #FEF3C7;
    --c-red:       #DC2626;
    --c-red-l:     #FEE2E2;
    --c-violet:    #7C3AED;
    --c-violet-l:  #EDE9FE;
    --c-shadow:    0 12px 40px rgba(15, 23, 42, 0.05);
    color: var(--c-ink);
}
.main.dash .conteudo-config .cfg-ico-svg { width: 18px; height: 18px; flex: none; }

.main.dash .conteudo-config .cfg-intro {
    margin: -6px 0 22px; font-size: 14.5px; color: var(--c-ink-3); max-width: 720px;
}
.main.dash .conteudo-config .cfg-toast { border-radius: 12px; }

/* ---------- 1. CARDS DE STATUS ---------- */
.main.dash .conteudo-config .cfg-stat-grid {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px; margin-bottom: 22px;
}
.main.dash .conteudo-config .cfg-stat-card {
    background: var(--c-card); border: 1px solid var(--c-line); border-radius: 20px;
    padding: 22px; min-height: 120px; box-shadow: var(--c-shadow);
    display: grid; grid-template-columns: 56px 1fr; grid-template-rows: auto auto;
    gap: 4px 16px; align-content: center; transition: box-shadow .18s ease, transform .18s ease;
}
.main.dash .conteudo-config .cfg-stat-card:hover { box-shadow: 0 16px 46px rgba(15,23,42,.09); transform: translateY(-1px); }
.main.dash .conteudo-config .cfg-stat-ico {
    grid-row: 1 / span 2; width: 56px; height: 56px; border-radius: 16px;
    display: grid; place-items: center; align-self: center;
}
.main.dash .conteudo-config .cfg-stat-ico .cfg-ico-svg { width: 26px; height: 26px; }
.main.dash .conteudo-config .cfg-ico-blue   { background: var(--c-blue-l);   color: var(--c-blue); }
.main.dash .conteudo-config .cfg-ico-violet { background: var(--c-violet-l); color: var(--c-violet); }
.main.dash .conteudo-config .cfg-ico-green  { background: var(--c-green-l);  color: var(--c-green); }
.main.dash .conteudo-config .cfg-ico-gold   { background: var(--c-gold-l);   color: #9A7B17; }
.main.dash .conteudo-config .cfg-stat-titulo { font-size: 16px; font-weight: 700; color: var(--c-ink); line-height: 1.2; }
.main.dash .conteudo-config .cfg-stat-sub    { font-size: 13px; color: var(--c-ink-3); }
.main.dash .conteudo-config .cfg-badge {
    grid-column: 2; justify-self: start; display: inline-flex; align-items: center; gap: 5px;
    font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 999px; margin-top: 4px;
}
.main.dash .conteudo-config .cfg-badge .cfg-ico-svg { width: 13px; height: 13px; }
.main.dash .conteudo-config .cfg-badge-ok     { background: var(--c-green-l); color: var(--c-green-d); }
.main.dash .conteudo-config .cfg-badge-warn   { background: var(--c-gold-l);  color: #92400E; }
.main.dash .conteudo-config .cfg-badge-neutro { background: #F1F5F9; color: var(--c-ink-3); }

/* ---------- 2. AMBIENTE OPERACIONAL ---------- */
.main.dash .conteudo-config .cfg-ambiente {
    display: flex; align-items: center; gap: 22px 28px; flex-wrap: wrap;
    border-radius: 20px; padding: 24px; margin-bottom: 22px; box-shadow: var(--c-shadow);
}
.main.dash .conteudo-config .cfg-ambiente-ok {
    background: linear-gradient(110deg, #F0FDF4 0%, #FFFFFF 62%); border: 1px solid #BBF7D0;
}
.main.dash .conteudo-config .cfg-ambiente-warn {
    background: linear-gradient(110deg, #FFFBEB 0%, #FFFFFF 62%); border: 1px solid #FDE68A;
}
.main.dash .conteudo-config .cfg-ambiente-ico {
    width: 52px; height: 52px; border-radius: 14px; display: grid; place-items: center;
    color: #fff; flex: none;
}
.main.dash .conteudo-config .cfg-ambiente-ok   .cfg-ambiente-ico { background: var(--c-green); box-shadow: 0 10px 24px -8px rgba(22,163,74,.6); }
.main.dash .conteudo-config .cfg-ambiente-warn .cfg-ambiente-ico { background: var(--c-gold); box-shadow: 0 10px 24px -8px rgba(201,164,73,.6); }
.main.dash .conteudo-config .cfg-ambiente-ico .cfg-ico-svg { width: 26px; height: 26px; }
.main.dash .conteudo-config .cfg-ambiente-txt { flex: 1 1 220px; min-width: 200px; }
.main.dash .conteudo-config .cfg-ambiente-txt h2 {
    margin: 0; font-family: var(--fonte-marca); font-size: 19px; font-weight: 700; letter-spacing: -.01em;
}
.main.dash .conteudo-config .cfg-ambiente-ok   .cfg-ambiente-txt h2 { color: var(--c-green-d); }
.main.dash .conteudo-config .cfg-ambiente-warn .cfg-ambiente-txt h2 { color: #92400E; }
.main.dash .conteudo-config .cfg-ambiente-txt p { margin: 4px 0 0; font-size: 13.5px; color: var(--c-ink-2); }
.main.dash .conteudo-config .cfg-ambiente-checks {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(2, auto); gap: 9px 30px; flex: none;
}
.main.dash .conteudo-config .cfg-ambiente-checks li {
    display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 600; color: var(--c-ink-2);
}
.main.dash .conteudo-config .cfg-ambiente-checks li .cfg-ico-svg { width: 16px; height: 16px; padding: 2px;
    border-radius: 50%; }
.main.dash .conteudo-config .cfg-ambiente-checks li.is-ok  .cfg-ico-svg { color: var(--c-green); background: var(--c-green-l); }
.main.dash .conteudo-config .cfg-ambiente-checks li.is-off .cfg-ico-svg { color: #B45309; background: var(--c-gold-l); }
.main.dash .conteudo-config .cfg-ambiente-checks li.is-off { color: var(--c-ink-3); }
.main.dash .conteudo-config .cfg-ambiente-aside {
    margin-left: auto; flex: none; max-width: 200px;
    display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 14px;
    background: rgba(255,255,255,.7); border: 1px solid rgba(187,247,208,.9);
    font-size: 13px; font-weight: 600; color: var(--c-green-d); line-height: 1.35;
}
.main.dash .conteudo-config .cfg-ambiente-warn .cfg-ambiente-aside { border-color: #FDE68A; color: #92400E; }
.main.dash .conteudo-config .cfg-ambiente-aside .cfg-ico-svg { width: 22px; height: 22px; }

/* ---------- 3 + 4. PAINEL + ABAS ---------- */
.main.dash .conteudo-config .cfg-panel {
    background: var(--c-card); border: 1px solid var(--c-line); border-radius: 20px;
    box-shadow: var(--c-shadow); overflow: hidden;
}
.main.dash .conteudo-config .cfg-tabs {
    display: flex; align-items: stretch; gap: 4px; padding: 0 12px;
    border-bottom: 1px solid var(--c-line); overflow-x: auto; scrollbar-width: thin;
}
.main.dash .conteudo-config .cfg-tab {
    background: transparent; border: none; border-bottom: 2px solid transparent; border-radius: 0;
    height: 56px; padding: 0 18px; display: inline-flex; align-items: center; gap: 8px;
    font-size: 14px; font-weight: 600; color: var(--c-ink-3); cursor: pointer; white-space: nowrap;
    transition: color .14s ease, background .14s ease, border-color .14s ease;
}
.main.dash .conteudo-config .cfg-tab:hover { background: var(--c-bg); color: var(--c-ink-2); }
.main.dash .conteudo-config .cfg-tab .cfg-ico-svg { width: 17px; height: 17px; }
.main.dash .conteudo-config .cfg-tab.is-active {
    color: var(--c-blue); border-bottom-color: var(--c-blue); background: transparent;
}
.main.dash .conteudo-config .cfg-tabbody { padding: 28px; }
.main.dash .conteudo-config .cfg-tabpanel { display: none; animation: cfg-fade .18s ease; }
.main.dash .conteudo-config .cfg-tabpanel.is-active { display: block; }
@keyframes cfg-fade { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.main.dash .conteudo-config .cfg-sec-head { margin-bottom: 18px; }
.main.dash .conteudo-config .cfg-sec-head h3 {
    margin: 0; font-family: var(--fonte-marca); font-size: 19px; font-weight: 700; color: var(--c-ink); letter-spacing: -.01em;
}
.main.dash .conteudo-config .cfg-sec-head p { margin: 4px 0 0; font-size: 13.5px; color: var(--c-ink-3); }

/* ---------- checklist (aba Geral) ---------- */
.main.dash .conteudo-config .cfg-checklist { list-style: none; margin: 0 0 18px; padding: 0;
    border: 1px solid var(--c-line); border-radius: 14px; overflow: hidden; }
.main.dash .conteudo-config .cfg-checklist li {
    display: flex; align-items: center; gap: 12px; padding: 13px 16px; font-size: 13.5px; color: var(--c-ink-2);
    border-bottom: 1px solid var(--c-line-2); background: var(--c-card);
}
.main.dash .conteudo-config .cfg-checklist li:last-child { border-bottom: none; }
.main.dash .conteudo-config .cfg-check-mark { width: 22px; height: 22px; border-radius: 50%; flex: none;
    display: grid; place-items: center; }
.main.dash .conteudo-config .cfg-check-mark .cfg-ico-svg { width: 14px; height: 14px; }
.main.dash .conteudo-config .cfg-checklist li.is-ok  .cfg-check-mark { background: var(--c-green-l); color: var(--c-green); }
.main.dash .conteudo-config .cfg-checklist li.is-off .cfg-check-mark { background: var(--c-gold-l); color: #B45309; }
.main.dash .conteudo-config .cfg-checklist li.is-off { color: var(--c-ink-3); }

/* ---------- quick links (aba Geral) ---------- */
.main.dash .conteudo-config .cfg-quicklinks {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 20px;
}
.main.dash .conteudo-config .cfg-quick {
    background: var(--c-card); border: 1px solid var(--c-line); border-radius: 14px; padding: 16px 14px;
    display: flex; flex-direction: column; align-items: flex-start; gap: 10px; cursor: pointer;
    color: var(--c-ink-2); font-size: 13.5px; font-weight: 600; transition: all .15s ease;
}
.main.dash .conteudo-config .cfg-quick:hover { border-color: var(--c-blue-bd); background: var(--c-blue-l); color: var(--c-blue-d); }
.main.dash .conteudo-config .cfg-quick .cfg-ico-svg { width: 20px; height: 20px; color: var(--c-blue); }

/* ---------- alertas ---------- */
.main.dash .conteudo-config .cfg-alert {
    display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-radius: 12px;
    font-size: 13.5px; line-height: 1.5; margin: 18px 0 0; border: 1px solid var(--c-line); background: var(--c-bg); color: var(--c-ink-3);
}
.main.dash .conteudo-config .cfg-alert .cfg-ico-svg { width: 19px; height: 19px; margin-top: 1px; }
.main.dash .conteudo-config .cfg-alert strong { color: var(--c-ink); font-weight: 700; }
.main.dash .conteudo-config .cfg-alert a { color: var(--c-blue-d); font-weight: 600; }
.main.dash .conteudo-config .cfg-alert-ok   { background: var(--c-green-l); border-color: #BBF7D0; color: var(--c-green-d); }
.main.dash .conteudo-config .cfg-alert-ok   .cfg-ico-svg { color: var(--c-green); }
.main.dash .conteudo-config .cfg-alert-ok   strong { color: var(--c-green-d); }
.main.dash .conteudo-config .cfg-alert-warn { background: var(--c-gold-l); border-color: #FDE68A; color: #92400E; }
.main.dash .conteudo-config .cfg-alert-warn .cfg-ico-svg { color: #B45309; }
.main.dash .conteudo-config .cfg-alert-warn strong { color: #92400E; }
.main.dash .conteudo-config .cfg-alert-info { background: var(--c-blue-l); border-color: var(--c-blue-bd); color: #1E3A5F; }
.main.dash .conteudo-config .cfg-alert-info .cfg-ico-svg { color: var(--c-blue); }
.main.dash .conteudo-config .cfg-alert-info strong { color: var(--c-blue-d); }

/* ---------- card hero do certificado ---------- */
.main.dash .conteudo-config .cfg-cert-hero {
    display: flex; gap: 20px; padding: 20px; border-radius: 16px; background: var(--c-bg);
    border: 1px solid var(--c-blue-bd); margin-bottom: 16px;
}
.main.dash .conteudo-config .cfg-cert-hero.is-warn { border-color: #FDE68A; background: #FFFBEB; }
.main.dash .conteudo-config .cfg-cert-shield {
    width: 64px; height: 64px; border-radius: 16px; flex: none; display: grid; place-items: center;
    background: var(--c-blue-l); color: var(--c-blue);
}
.main.dash .conteudo-config .cfg-cert-hero.is-warn .cfg-cert-shield { background: var(--c-gold-l); color: #B45309; }
.main.dash .conteudo-config .cfg-cert-shield .cfg-ico-svg { width: 32px; height: 32px; }
.main.dash .conteudo-config .cfg-cert-main { min-width: 0; flex: 1; }
.main.dash .conteudo-config .cfg-cert-status { display: flex; align-items: center; gap: 9px; }
.main.dash .conteudo-config .cfg-cert-dot { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.main.dash .conteudo-config .cfg-cert-dot .cfg-ico-svg { width: 14px; height: 14px; }
.main.dash .conteudo-config .cfg-dot-ok   { background: var(--c-green); color: #fff; }
.main.dash .conteudo-config .cfg-dot-warn { background: var(--c-gold); color: #fff; }
.main.dash .conteudo-config .cfg-cert-status-titulo { font-family: var(--fonte-marca); font-size: 17px; font-weight: 700; color: var(--c-ink); }
.main.dash .conteudo-config .cfg-cert-desc { margin: 7px 0 16px; font-size: 13.5px; color: var(--c-ink-3); }
.main.dash .conteudo-config .cfg-cert-cols {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding-top: 16px; border-top: 1px solid var(--c-line);
}
.main.dash .conteudo-config .cfg-cert-col { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.main.dash .conteudo-config .cfg-cert-lbl {
    display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700;
    text-transform: uppercase; letter-spacing: .06em; color: var(--c-ink-3);
}
.main.dash .conteudo-config .cfg-cert-lbl .cfg-ico-svg { width: 14px; height: 14px; }
.main.dash .conteudo-config .cfg-cert-val { font-size: 13.5px; font-weight: 600; color: var(--c-ink); }

/* ---------- botões cfg ---------- */
.main.dash .conteudo-config .cfg-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    height: 42px; padding: 0 18px; border-radius: 12px; font-size: 13.5px; font-weight: 600;
    cursor: pointer; border: 1px solid transparent; font-family: inherit; transition: all .14s ease; line-height: 1;
}
.main.dash .conteudo-config .cfg-btn .cfg-ico-svg { width: 16px; height: 16px; }
.main.dash .conteudo-config .cfg-btn-primary { background: var(--c-blue); color: #fff; border-color: var(--c-blue); }
.main.dash .conteudo-config .cfg-btn-primary:hover { background: var(--c-blue-d); border-color: var(--c-blue-d); }
.main.dash .conteudo-config .cfg-btn-ghost { background: var(--c-card); color: var(--c-blue); border-color: var(--c-blue-bd); }
.main.dash .conteudo-config .cfg-btn-ghost:hover { background: var(--c-blue-l); }

/* ---------- forms cfg ---------- */
.main.dash .conteudo-config .cfg-form { margin-top: 4px; }
.main.dash .conteudo-config .cfg-form-divider { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--c-line); }
.main.dash .conteudo-config .cfg-form-inline { margin-top: 12px; }
.main.dash .conteudo-config .cfg-form-actions { margin-top: 14px; }
.main.dash .conteudo-config .cfg-field { display: block; margin-bottom: 14px; }
.main.dash .conteudo-config .cfg-field-label {
    display: block; font-size: 12.5px; font-weight: 700; color: var(--c-ink-2); margin-bottom: 7px;
}
.main.dash .conteudo-config .cfg-field-hint { display: block; font-size: 12.5px; color: var(--c-ink-3); margin-top: 7px; line-height: 1.5; }
.main.dash .conteudo-config .cfg-field-hint a { color: var(--c-blue-d); font-weight: 600; }
.main.dash .conteudo-config .cfg-hint-ok   { color: var(--c-green-d); display: inline-flex; align-items: center; gap: 5px; }
.main.dash .conteudo-config .cfg-hint-ok   .cfg-ico-svg { width: 13px; height: 13px; color: var(--c-green); }
.main.dash .conteudo-config .cfg-hint-warn { color: #B45309; display: inline-flex; align-items: center; gap: 5px; }
.main.dash .conteudo-config .cfg-hint-warn .cfg-ico-svg { width: 13px; height: 13px; }
.main.dash .conteudo-config .cfg-field code,
.main.dash .conteudo-config .cfg-field-hint code,
.main.dash .conteudo-config .cfg-alert code {
    font-family: var(--fonte-mono); font-size: 11.5px; background: #fff; border: 1px solid var(--c-line);
    padding: 1px 6px; border-radius: 5px; color: var(--c-ink-2);
}
.main.dash .conteudo-config .cfg-form input[type=text],
.main.dash .conteudo-config .cfg-form input[type=password],
.main.dash .conteudo-config .cfg-form input[type=email] {
    width: 100%; height: 44px; padding: 0 14px; border: 1px solid var(--c-line); border-radius: 12px;
    background: var(--c-card); font-size: 14px; color: var(--c-ink);
}
.main.dash .conteudo-config .cfg-form input[type=text]:focus,
.main.dash .conteudo-config .cfg-form input[type=password]:focus,
.main.dash .conteudo-config .cfg-form input[type=email]:focus {
    outline: none; border-color: var(--c-blue); box-shadow: 0 0 0 3px rgba(37,99,235,.14);
}

/* ---------- dropzone ---------- */
.main.dash .conteudo-config .cfg-drop-row { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 16px; align-items: stretch; }
.main.dash .conteudo-config .cfg-dropzone {
    display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; min-height: 92px;
    border: 1.5px dashed var(--c-blue-bd); background: var(--c-card); border-radius: 16px; padding: 18px 20px;
    cursor: pointer; transition: border-color .15s ease, background .15s ease;
}
.main.dash .conteudo-config .cfg-dropzone:hover { border-color: var(--c-blue); background: var(--c-blue-l); }
.main.dash .conteudo-config .cfg-drop-ico { width: 44px; height: 44px; border-radius: 12px; flex: none;
    display: grid; place-items: center; background: var(--c-blue-l); color: var(--c-blue); }
.main.dash .conteudo-config .cfg-drop-ico .cfg-ico-svg { width: 22px; height: 22px; }
.main.dash .conteudo-config .cfg-drop-mid { display: flex; align-items: center; gap: 12px; flex: 1 1 auto; min-width: 0; }
.main.dash .conteudo-config .cfg-drop-btn {
    display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 10px;
    background: var(--c-blue); color: #fff; font-size: 13px; font-weight: 600; flex: none;
}
.main.dash .conteudo-config .cfg-drop-file { font-size: 13px; color: var(--c-ink-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.main.dash .conteudo-config .cfg-drop-file.tem-arquivo { color: var(--c-ink); font-weight: 600; }
.main.dash .conteudo-config .cfg-drop-hint { flex-basis: 100%; font-size: 12px; color: var(--c-ink-3); }
.main.dash .conteudo-config .cfg-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.main.dash .conteudo-config .cfg-info-box {
    display: flex; align-items: flex-start; gap: 10px; padding: 16px; border-radius: 14px;
    background: var(--c-blue-l); border: 1px solid var(--c-blue-bd); color: #475569; font-size: 13px; line-height: 1.5;
}
.main.dash .conteudo-config .cfg-info-box .cfg-ico-svg { color: var(--c-blue); margin-top: 1px; }

/* ---------- caminho manual (avançado) + caminho atual ---------- */
.main.dash .conteudo-config .cfg-advanced { margin-top: 14px; }
.main.dash .conteudo-config .cfg-advanced summary {
    cursor: pointer; font-size: 12.5px; font-weight: 600; color: var(--c-ink-3); list-style: none;
    display: inline-flex; align-items: center; gap: 6px; padding: 4px 0;
}
.main.dash .conteudo-config .cfg-advanced summary::-webkit-details-marker { display: none; }
.main.dash .conteudo-config .cfg-advanced summary::before { content: "▸"; transition: transform .15s ease; }
.main.dash .conteudo-config .cfg-advanced[open] summary::before { transform: rotate(90deg); }
.main.dash .conteudo-config .cfg-advanced[open] summary { margin-bottom: 10px; }
.main.dash .conteudo-config .cfg-path-field {
    display: flex; align-items: center; gap: 10px; height: 44px; padding: 0 8px 0 14px; border-radius: 12px;
    background: var(--c-card); border: 1px solid var(--c-line);
}
.main.dash .conteudo-config .cfg-path-ico { color: var(--c-ink-3); flex: none; display: inline-flex; }
.main.dash .conteudo-config .cfg-path-text { flex: 1; font-size: 13.5px; color: var(--c-ink-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.main.dash .conteudo-config .cfg-path-copy {
    background: transparent; border: 1px solid var(--c-line); border-radius: 9px; width: 34px; height: 32px;
    display: inline-grid; place-items: center; color: var(--c-ink-3); cursor: pointer; flex: none; transition: all .14s ease;
}
.main.dash .conteudo-config .cfg-path-copy:hover { color: var(--c-blue); border-color: var(--c-blue-bd); background: var(--c-blue-l); }
.main.dash .conteudo-config .cfg-path-copy.copiado { color: var(--c-green); border-color: #BBF7D0; background: var(--c-green-l); }
.main.dash .conteudo-config .cfg-path-copy .cfg-ico-svg { width: 16px; height: 16px; }

/* ---------- status rows / pills / cards internos ---------- */
.main.dash .conteudo-config .cfg-status-grid {
    border: 1px solid var(--c-line); border-radius: 14px; overflow: hidden; margin-bottom: 16px; background: var(--c-bg);
}
.main.dash .conteudo-config .cfg-status-row {
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 16px;
    border-bottom: 1px solid var(--c-line-2); font-size: 13px;
}
.main.dash .conteudo-config .cfg-status-row:last-child { border-bottom: none; }
.main.dash .conteudo-config .cfg-status-lbl {
    min-width: 96px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--c-ink-3);
}
.main.dash .conteudo-config .cfg-status-extra { font-size: 12.5px; color: var(--c-ink-2); }
.main.dash .conteudo-config .cfg-mono { font-family: var(--fonte-mono); font-size: 11.5px; background: #fff;
    border: 1px solid var(--c-line); padding: 2px 8px; border-radius: 6px; word-break: break-all; }
.main.dash .conteudo-config .cfg-tag {
    font-size: 11px; font-weight: 600; color: var(--c-ink-3); background: #F1F5F9; border: 1px solid var(--c-line);
    padding: 2px 9px; border-radius: 999px;
}
.main.dash .conteudo-config .cfg-pill {
    display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600;
    padding: 4px 11px; border-radius: 999px;
}
.main.dash .conteudo-config .cfg-pill .cfg-ico-svg { width: 13px; height: 13px; }
.main.dash .conteudo-config .cfg-pill-ok     { background: var(--c-green-l); color: var(--c-green-d); }
.main.dash .conteudo-config .cfg-pill-erro   { background: var(--c-red-l);   color: #B91C1C; }
.main.dash .conteudo-config .cfg-pill-neutro { background: #F1F5F9; color: var(--c-ink-3); }

.main.dash .conteudo-config .cfg-card {
    border: 1px solid var(--c-line); border-radius: 16px; padding: 20px; margin-bottom: 16px; background: var(--c-card);
}
.main.dash .conteudo-config .cfg-card-head { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; flex-wrap: wrap; }
.main.dash .conteudo-config .cfg-card-ico { width: 44px; height: 44px; border-radius: 12px; flex: none; display: grid; place-items: center; }
.main.dash .conteudo-config .cfg-card-ico .cfg-ico-svg { width: 22px; height: 22px; }
.main.dash .conteudo-config .cfg-card-head > div { flex: 1; min-width: 160px; }
.main.dash .conteudo-config .cfg-card-head h4 { margin: 0; font-family: var(--fonte-marca); font-size: 16px; font-weight: 700; color: var(--c-ink); }
.main.dash .conteudo-config .cfg-card-head p { margin: 3px 0 0; font-size: 13px; color: var(--c-ink-3); }
.main.dash .conteudo-config .cfg-card-head .cfg-pill { flex: none; }

/* ---------- cofre (aba Segurança) ---------- */
.main.dash .conteudo-config .cfg-vault { display: grid; gap: 10px; margin-top: 16px; }
.main.dash .conteudo-config .cfg-vault-item {
    display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px;
    border: 1px solid var(--c-line); background: var(--c-card);
}
.main.dash .conteudo-config .cfg-vault-item.is-off { background: var(--c-bg); }
.main.dash .conteudo-config .cfg-vault-ico {
    width: 40px; height: 40px; border-radius: 11px; flex: none; display: grid; place-items: center;
    background: #F1F5F9; color: var(--c-ink-3);
}
.main.dash .conteudo-config .cfg-vault-item.is-ok .cfg-vault-ico { background: var(--c-green-l); color: var(--c-green); }
.main.dash .conteudo-config .cfg-vault-ico .cfg-ico-svg { width: 20px; height: 20px; }
.main.dash .conteudo-config .cfg-vault-txt { flex: 1; min-width: 0; }
.main.dash .conteudo-config .cfg-vault-txt span { display: block; font-size: 14px; font-weight: 600; color: var(--c-ink); }
.main.dash .conteudo-config .cfg-vault-txt small { display: block; font-size: 12.5px; color: var(--c-ink-3); margin-top: 2px; }
.main.dash .conteudo-config .cfg-vault-item .cfg-pill { flex: none; }
.main.dash .conteudo-config .cfg-linkbtn {
    background: transparent; border: none; padding: 0; color: var(--c-blue-d); font-weight: 700; font-size: inherit;
    cursor: pointer; text-decoration: underline; font-family: inherit;
}

/* ---------- responsivo ---------- */
@media (max-width: 1100px) {
    .main.dash .conteudo-config .cfg-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .main.dash .conteudo-config .cfg-quicklinks { grid-template-columns: repeat(2, 1fr); }
    .main.dash .conteudo-config .cfg-cert-cols { grid-template-columns: repeat(2, 1fr); }
    .main.dash .conteudo-config .cfg-ambiente-aside { margin-left: 0; flex-basis: 100%; max-width: none; }
    .main.dash .conteudo-config .cfg-drop-row { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .main.dash .conteudo-config .cfg-stat-grid { grid-template-columns: 1fr; }
    .main.dash .conteudo-config .cfg-quicklinks { grid-template-columns: 1fr; }
    .main.dash .conteudo-config .cfg-cert-cols { grid-template-columns: 1fr; }
    .main.dash .conteudo-config .cfg-ambiente-checks { grid-template-columns: 1fr; }
    .main.dash .conteudo-config .cfg-cert-hero { flex-direction: column; }
    .main.dash .conteudo-config .cfg-tabbody { padding: 20px 16px; }
}
/* AURA-CONFIG-PREMIUM — fim */
