/* =====================================================================
 * GTSI System - Alimentação — TEMA ESCURO + CIANO (identidade oficial)
 * Fonte ÚNICA de cores/components. Todas as telas (login, dashboard e o
 * DRE da 1D) consomem estas variáveis — não repintar tela por tela.
 *
 * Base escura alinhada aos painéis DRE atuais (slate). Destaque = ciano
 * #00B4D8 (cor oficial do GTSI System). Emerald/rose preservados para a
 * semântica financeira do DRE (receita/lucro vs despesa/negativo).
 * Contraste texto/fundo AA.
 * ===================================================================== */

:root{
  /* superfícies */
  --bg:        #0B0F14;   /* base da página */
  --bg-elev:   #0F141B;   /* topo/superfícies elevadas */
  --card:      #151B23;   /* cartões */
  --card-2:    #1B232D;   /* cartões internos / hover */
  --border:    #232D38;   /* bordas sutis */
  --border-2:  #2C3845;

  /* texto */
  --text:      #E6EDF3;   /* texto primário (AA sobre --bg) */
  --text-muted:#9AA7B4;   /* secundário */
  --text-dim:  #6B7785;   /* terciário/legendas */

  /* destaque oficial — ciano */
  --accent:    #00B4D8;
  --accent-h:  #33C6E6;   /* hover: ciano mais claro */
  --accent-press:#0096B4;
  --on-accent: #04141A;   /* texto sobre botão ciano (AA) */
  --accent-soft:rgba(0,180,216,.12);
  --accent-ring:rgba(0,180,216,.30);

  /* semântica financeira (preservada do DRE) */
  --pos:   #10B981;       /* receita / lucro / positivo */
  --pos-2: #34D399;
  --neg:   #F87171;       /* despesa / negativo */
  --warn:  #FBBF24;       /* alerta / parcial */

  --radius: 14px;
  --shadow: 0 10px 40px rgba(0,0,0,.45);
  --font: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

*{box-sizing:border-box}
html,body{height:100%;max-width:100%;overflow-x:hidden}   /* trava: página nunca fica mais larga que a tela (mobile não "encolhe pra caber") */
body{
  margin:0;
  background:
    radial-gradient(1200px 600px at 50% -10%, rgba(0,180,216,.07), transparent 60%),
    var(--bg);
  color:var(--text);
  font-family:var(--font);
  -webkit-font-smoothing:antialiased;
}

a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-h)}

/* ── Marca ───────────────────────────────────────────────── */
.gtsi-brand{display:flex;align-items:center;gap:9px;font-family:'Plus Jakarta Sans',var(--font)}
.gtsi-brand .bt{font-weight:800;color:var(--text)}
.gtsi-brand .bc{font-weight:700;color:var(--accent)}   /* "Alimentação" em ciano */

/* ── Cartão ──────────────────────────────────────────────── */
.gtsi-card{
  background:linear-gradient(180deg, var(--card) 0%, var(--bg-elev) 100%);
  border:1px solid var(--border);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}

/* ── Inputs ──────────────────────────────────────────────── */
.gtsi-label{display:block;font-size:11px;letter-spacing:.6px;color:var(--text-dim);
  text-transform:uppercase;font-weight:600;margin:14px 0 6px}
.gtsi-input{
  width:100%;padding:12px;border:1px solid var(--border-2);border-radius:10px;
  background:#0C1117;color:var(--text);font-size:14px;font-family:inherit;
}
.gtsi-input::placeholder{color:var(--text-dim)}
.gtsi-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}

/* ── Botão ───────────────────────────────────────────────── */
.gtsi-btn{
  width:100%;margin-top:22px;padding:12px;border:none;border-radius:10px;
  background:var(--accent);color:var(--on-accent);font-weight:700;font-size:14px;
  cursor:pointer;transition:background .15s, transform .05s;
}
.gtsi-btn:hover{background:var(--accent-h)}
.gtsi-btn:active{background:var(--accent-press);transform:translateY(1px)}

/* ── Mensagem de erro ────────────────────────────────────── */
.gtsi-erro{
  background:rgba(248,113,113,.10);border-left:3px solid var(--neg);color:#FCA5A5;
  padding:10px 12px;border-radius:8px;font-size:13px;margin-bottom:8px;
}

/* ── Topbar ──────────────────────────────────────────────── */
.gtsi-top{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 24px;background:var(--bg-elev);border-bottom:1px solid var(--border);
}
.gtsi-link-sair{color:var(--neg);font-size:13px}
.gtsi-link-sair:hover{color:#FCA5A5}

/* ── Utilitários ─────────────────────────────────────────── */
.gtsi-muted{color:var(--text-muted)}
.gtsi-dim{color:var(--text-dim)}
.gtsi-ok{color:var(--pos);font-weight:600}
.gtsi-kv{display:grid;grid-template-columns:160px 1fr;gap:8px 16px;margin-top:16px;font-size:14px}
.gtsi-kv .k{color:var(--text-muted)}

/* ===================================================================
 * COMPONENTES DO DRE (reusados por todos os painéis 1D — não repintar)
 * =================================================================== */
/* Coluna central única: conteúdo e barras alinham no mesmo eixo (estilo organizado/centralizado) */
:root{--container:1280px;--gutter:24px}
.gtsi-wrap{max-width:var(--container);margin:0 auto;padding:20px var(--gutter)}
/* Barras full-bleed (fundo de ponta a ponta) com o CONTEÚDO alinhado à coluna central */
.gtsi-top,.gtsi-nav,.gtsi-filters,.gtsi-chips{
  padding-left:calc(max(0px, (100% - var(--container)) / 2) + var(--gutter)) !important;
  padding-right:calc(max(0px, (100% - var(--container)) / 2) + var(--gutter)) !important;
}

/* Navegação por painel */
.gtsi-nav{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--border);padding:0 20px;background:var(--bg-elev)}
.gtsi-tab{padding:12px 14px;font-size:13.5px;font-weight:600;color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.gtsi-tab:hover{color:var(--text)}
.gtsi-tab.active{color:var(--accent);border-bottom-color:var(--accent)}
.gtsi-subnav{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
/* 🔴 [design-reviewer 26/08/2026] Esta classe nasceu para <a> e é usada em 51 <button> por
   4 telas (Estoque, Arena agenda/quadras, DRE marketplaces). Faltava `background`,
   `font-family` e `cursor`: num <button>, o navegador pinta o ButtonFace dele — e com
   `color-scheme:dark` isso vira CINZA CHAPADO. O efeito na tela de Estoque: "movimentar"
   (que é <a>) saía com contorno, enquanto "editar" saía cinza sólido parecendo DESABILITADO
   e "excluir" virava a pílula de maior peso visual da linha — a única ação destrutiva como a
   mais chamativa, o inverso da hierarquia. Corrigido na FONTE porque o defeito é dela. */
.gtsi-subtab{padding:7px 12px;font-size:12.5px;font-weight:600;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;
             background:transparent;font-family:inherit;cursor:pointer}
/* ⚠️ O `inline-flex` fica SÓ no <button>. Aplicá-lo à classe inteira mudaria o alinhamento
   de dezenas de <a class="gtsi-subtab"> nas subnavs de 16 páginas — telas que hoje estão
   certas. Consertar um <button> não é motivo para mexer no que já funciona. */
button.gtsi-subtab{display:inline-flex;align-items:center;justify-content:center;text-align:center}
.gtsi-subtab:hover{color:var(--text);border-color:var(--border-2)}
.gtsi-subtab.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}

/* Barra de filtros */
.gtsi-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:16px 20px;background:var(--bg-elev);border-bottom:1px solid var(--border)}
.gtsi-filters .ttl{font-size:18px;font-weight:700;color:var(--text);margin-right:auto}
.gtsi-filters .ttl small{display:block;font-size:12px;font-weight:400;color:var(--text-dim)}
.gtsi-select{padding:9px 12px;border:1px solid var(--border-2);border-radius:9px;background:#0C1117;color:var(--text);font-size:13px;font-family:inherit}
.gtsi-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}
.gtsi-btn-sm{padding:9px 14px;border:none;border-radius:9px;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:13px;cursor:pointer}
.gtsi-btn-sm:hover{background:var(--accent-h)}

/* Toggle Gerencial | Contábil */
.gtsi-toggle{display:inline-flex;background:#0C1117;border:1px solid var(--border-2);border-radius:9px;padding:3px}
.gtsi-toggle a{padding:7px 13px;font-size:12.5px;font-weight:600;border-radius:7px;color:var(--text-muted)}
.gtsi-toggle a.active{background:var(--accent);color:var(--on-accent)}

/* KPIs */
.gtsi-grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}
@media(max-width:760px){.gtsi-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gtsi-kpi{padding:18px;min-width:0}   /* min-width:0 deixa o cartão encolher (valor grande não estoura a grade) */
.gtsi-kpi .lbl{display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.5px;text-transform:uppercase;color:var(--text-dim);margin-bottom:10px}
.gtsi-kpi .val{font-size:26px;font-weight:800;line-height:1.1}
.gtsi-kpi .sub{font-size:12px;color:var(--text-dim);margin-top:5px}

/* Tabelas */
.gtsi-table{width:100%;border-collapse:collapse;font-size:14px}
.gtsi-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--border)}
.gtsi-table th.r,.gtsi-table td.r{text-align:right}
.gtsi-table td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--text)}
.gtsi-table tr:hover td{background:rgba(255,255,255,.02)}
.gtsi-table .num{font-variant-numeric:tabular-nums;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.gtsi-pos{color:var(--pos)} .gtsi-neg{color:var(--neg)} .gtsi-warn{color:var(--warn)} .gtsi-accent{color:var(--accent)}
.gtsi-row-sub td{font-weight:700;color:var(--text)}
.gtsi-row-hl td{background:var(--accent-soft)}
.gtsi-row-info td{font-size:12px;color:var(--text-dim)}
.gtsi-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:var(--accent-soft);color:var(--accent)}

/* ── Kit LIXEIRA: mapeia .cm-btn/.cm-tb ao visual GTSI (uma vez, compartilhado) ── */
.cm-btn{display:inline-block;padding:7px 12px;font-size:12.5px;font-weight:600;color:var(--text-muted);border:1px solid var(--border);border-radius:8px;background:transparent;cursor:pointer;text-decoration:none;transition:color .15s,border-color .15s}
.cm-btn:hover{color:var(--text);border-color:var(--border-2)}
.cm-tb{width:100%;border-collapse:collapse;font-size:14px}
.cm-tb th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-dim);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--border)}
.cm-tb td{padding:11px 12px;border-bottom:1px solid var(--border);color:var(--text)}
.cm-tb tr:hover td{background:rgba(255,255,255,.02)}
.gtsi-bar{height:7px;border-radius:999px;background:#0C1117;overflow:hidden}
.gtsi-bar > span{display:block;height:100%;border-radius:999px}

/* ===================================================================
 * RESPONSIVO (celular / tablet) — ajusta TODAS as telas de uma vez.
 * =================================================================== */
/* Qualquer cartão com tabela rola na horizontal (não estoura a tela). */
.gtsi-card:has(table){overflow-x:auto;-webkit-overflow-scrolling:touch}

@media(max-width:820px){
  :root{--gutter:14px}   /* coluna central encosta mais nas bordas no celular */
  .gtsi-wrap{padding:14px}
  .gtsi-top{padding:12px 14px}
  /* Abas dos módulos: 1 linha rolável em vez de quebrar em 3 linhas. */
  .gtsi-nav{flex-wrap:nowrap;overflow-x:auto;padding:0 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .gtsi-nav::-webkit-scrollbar{display:none}
  .gtsi-tab{white-space:nowrap;padding:12px 11px;font-size:13px}
  /* Filtros: título ocupa a linha toda; controles descem e quebram. */
  .gtsi-filters{padding:12px 14px;gap:8px}
  .gtsi-filters .ttl{width:100%;margin-right:0;font-size:16px}
  .gtsi-kpi{padding:14px}
  .gtsi-kpi .val{font-size:21px}
  .gtsi-table{font-size:13px}
  .gtsi-table th,.gtsi-table td{padding:9px 8px}
  /* Menu do usuário: só o avatar (esconde o nome) p/ caber. */
  .gtsi-top .gtsi-user-nm{display:none}
  .gtsi-user-menu{min-width:200px}
}
@media(max-width:460px){
  .gtsi-kpi .val{font-size:18px}
  .gtsi-kpi .lbl{font-size:10px;letter-spacing:.3px}
  .gtsi-filters .ttl{font-size:15px}
  .gtsi-table{font-size:12.5px}
  .gtsi-table th,.gtsi-table td{padding:8px 7px}
}
