/* GMTrack BI Service - design system v2 (visao executiva), aplicado sobre as classes Tailwind das telas.
   Depende de tokens.css (variaveis) e gmtrack-ui.css (componentes gm-*). Fonte: design-system-v2/README.md. */

body {
  font-family: var(--font-sans);
  font-feature-settings: "ss01", "cv11";
  -webkit-font-smoothing: antialiased;
}

/* Numeros em tabela: algarismos tabulares (colunas alinhadas) */
table { font-variant-numeric: tabular-nums; }

/* Controles: borda que passa 3:1 (--border-control); foco = borda forte + halo amarelo suave */
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"])[class*="border-gray-300"],
select[class*="border-gray-300"],
textarea[class*="border-gray-300"],
button[class*="border-gray-300"] { border-color: var(--border-control); }
[data-theme="dark"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"])[class*="border-gray-700"],
[data-theme="dark"] select[class*="border-gray-700"],
[data-theme="dark"] textarea[class*="border-gray-700"],
[data-theme="dark"] button[class*="border-gray-700"] { border-color: var(--border-control); }

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):focus,
select:focus,
textarea:focus {
  outline: none;
  border-color: var(--ink);
  box-shadow: 0 0 0 3px var(--brand-soft);
}
input::placeholder, textarea::placeholder { color: var(--ink-faint); }
button:focus-visible, a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* Checkbox/radio: o "preto" da marca (claro no escuro) */
input[type="checkbox"], input[type="radio"] { accent-color: var(--ink); }

/* Cards se separam por borda; sombra so quase imperceptivel */
.shadow-theme-sm, .hover\:shadow-theme-sm:hover { box-shadow: var(--shadow-card); }

/* Sidebar preta nos dois temas (a marca esta aqui, nao nos cards) */
.sidebar { box-shadow: inset -1px 0 0 rgba(255, 255, 255, 0.06); }
.sidebar svg { width: 18px; height: 18px; flex: none; }

@media (prefers-reduced-motion: reduce) {
  .animate-spin { animation-duration: 3s; }
}

/* ---------- Visao executiva (componentes v2 usados no dashboard) ---------- */
.gm-kpi.abre-lista { cursor: pointer; }
.gm-kpi.abre-lista:hover { box-shadow: var(--shadow-hover); border-color: var(--border-control); }
.gm-kpi { min-width: 0; }
.gm-kpi__value { font-feature-settings: "ss01", "cv11"; }
.gm-kpi__value .animate-spin, .gm-hero__value .animate-spin { vertical-align: middle; }
.gm-kpi .gm-vs button, .gm-kpi .gm-vs a { color: inherit; }
.gm-kpi .gm-vs b { color: var(--ink); font-weight: 600; }
.gm-hero__value small { font-size: .4em; font-weight: 500; opacity: .8; margin-right: 6px; letter-spacing: 0; }
.gm-hero__value small:last-child { margin: 0 0 0 6px; }
.gm-hero .gm-vs { color: inherit; }
.gm-hero__meta button { color: inherit; }
.gm-hero__meta button:hover { text-decoration: underline; }
.gm-hero__stats > button { display: block; }
.gm-hero .animate-spin { border-color: color-mix(in srgb, var(--on-inverse) 25%, transparent); border-top-color: var(--inverse-accent); }
.gm-insight { align-items: flex-start; }
.gm-insight .abre-lista { color: inherit; font-weight: 600; text-decoration: underline; text-decoration-color: var(--border-control); text-underline-offset: 2px; }
.gm-insight .abre-lista:hover { text-decoration-color: var(--ink); }
.gm-card .chart-wrap .ov { background: color-mix(in srgb, var(--surface) 70%, transparent); }
.gm-hero { height: 100%; }
.gm-hero__chart { margin-top: auto; }
