:root {
  /* Paleta institucional â€” azul, branco e verde bandeira */
  --bandeira-azul: #002776;
  --bandeira-verde: #009c3b;
  --bandeira-branco: #ffffff;

  --brand: var(--bandeira-azul);
  --brand-hover: #003d9e;
  --brand-deep: #001544;
  --brand-mid: #1a56a8;
  --brand-soft: #e8eef8;

  --accent: var(--bandeira-verde);
  --accent-hover: #00b347;
  --accent-soft: #e6f5ec;
  --accent-deep: #007a2f;

  --on-brand: var(--bandeira-branco);
  --on-accent: var(--bandeira-branco);

  --success: var(--bandeira-verde);
  --warn: #b45309;
  --warn-soft: #fff4e5;
  --danger: #c41e3a;
  --danger-soft: #fde8eb;

  --chart-estoque: #002776;
  --chart-producao: #009c3b;
  --chart-final: #c67a00;
  --chart-reprovados: #6d28d9;

  --bg: #f2f6fc;
  --surface: #ffffffe6;
  --surface-solid: var(--bandeira-branco);
  --text: #0a1f42;
  --muted: #3d5278;
  --border: #c5d4ef;
  --sidebar-width: 280px;
  --company-text: var(--bandeira-azul);
  --logo-pad-x: 0.4rem;
  --logo-pad-y: 0.4rem;
  --logo-pad-bottom: 0.4rem;
  --card-bg: var(--bandeira-branco);
  --card-border: #d4e0f4;
  --logo-frame-bg: var(--surface-solid);
  --logo-frame-border: #a8c0e8;
  --logo-frame-shadow: 0 6px 22px #0027761a, 0 1px 0 var(--bandeira-branco) inset;
  --nav-hover-bg: #e3ebf8;
  --nav-active-bg: #d4e3f8;
  --nav-active-text: var(--brand-deep);
  --input-bg: var(--bandeira-branco);
  --chip-bg: var(--brand-soft);
  --chip-text: var(--brand);
  --chip-ok-bg: var(--accent);
  --chip-ok-text: var(--on-accent);
  --chip-bad-bg: var(--brand-deep);
  --chip-bad-text: var(--on-brand);
  --alert-bg: var(--brand-soft);
  --alert-text: var(--brand-deep);
  --alert-border: #9eb8e8;
  --alert-success-bg: var(--accent-soft);
  --alert-success-text: var(--accent-deep);
  --alert-success-border: #7fd4a0;
  --font-app: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-brand: "QuickExpress", var(--font-app);
  --radius: 10px;
  --radius-lg: 14px;
  --space-block: clamp(0.75rem, 2vw, 1.25rem);
  --gap-blocks: clamp(0.75rem, 2vw, 1rem);
  --card-pad: clamp(0.85rem, 2vw, 1.1rem);
  --block-col-min: 18rem;
  --content-max: min(1320px, 100%);
  --shadow-card: 0 2px 14px #0027760f;
  --shadow-header: 0 4px 24px #00277614;
  color-scheme: light;
}

*,
*::before,
*::after { box-sizing: border-box; }

[hidden] {
  display: none !important;
}

@font-face {
  font-family: "QuickExpress";
  src: url("../fonts/QuickExpress.ttf") format("truetype");
  font-display: swap;
}

html[data-theme="dark"] {
  --bandeira-azul: #002776;
  --bandeira-verde: #47d17a;
  --bandeira-branco: #ffffff;

  --brand: #7eb8ff;
  --brand-hover: #a3ceff;
  --brand-deep: #000f28;
  --brand-mid: #4d93e6;
  --brand-soft: #0e2a5c;

  --accent: #47d17a;
  --accent-hover: #6ee09a;
  --accent-soft: #0d3d24;
  --accent-deep: #9ef0bc;

  --on-brand: var(--bandeira-branco);
  --on-accent: #001544;

  --success: var(--bandeira-verde);
  --warn: #fbbf24;
  --warn-soft: #3d2e0a;
  --danger: #ff8a8a;
  --danger-soft: #3a1218;

  --chart-estoque: #7eb8ff;
  --chart-producao: #47d17a;
  --chart-final: #fbbf24;
  --chart-reprovados: #a78bfa;

  --bg: #000f28;
  --surface: #001544e6;
  --surface-solid: #001544;
  --text: #f5f8ff;
  --muted: #c0d4f0;
  --border: #2a4a7a;
  --company-text: var(--bandeira-branco);
  --card-bg: #001f52;
  --card-border: #2a5088;
  --logo-frame-bg: var(--surface-solid);
  --logo-frame-border: #3d6aad;
  --logo-frame-shadow: 0 8px 24px #00000045, 0 0 0 1px #ffffff14 inset;
  --nav-hover-bg: #0e2a5c;
  --nav-active-bg: #12356e;
  --nav-active-text: #f5f8ff;
  --input-bg: #0e2448;
  --chip-bg: #0e2a5c;
  --chip-text: #d8e8ff;
  --chip-ok-bg: var(--accent);
  --chip-ok-text: var(--on-accent);
  --chip-bad-bg: #12356e;
  --chip-bad-text: #f5f8ff;
  --alert-bg: #0e2448;
  --alert-text: #d8e8ff;
  --alert-border: #3d6aad;
  --alert-success-bg: #0d3d24;
  --alert-success-text: var(--accent-deep);
  --alert-success-border: #1f6640;
  --shadow-card: 0 2px 14px #00000040;
  --shadow-header: 0 4px 20px #00000045;
  color-scheme: dark;
}

html {
  margin: 0;
  padding: 0;
  min-height: 100%;
  width: 100%;
  font-family: var(--font-app);
  font-size: 16px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  text-transform: none;
  letter-spacing: normal;
  hyphens: manual;
}

html[lang="pt-BR"] body {
  quotes: "â€œ" "â€" "â€˜" "â€™";
}

body {
  margin: 0;
  padding: 0;
  min-height: 100%;
  width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  font-family: inherit;
  text-transform: inherit;
  letter-spacing: inherit;
  color: var(--text);
  background:
    radial-gradient(ellipse 120% 80% at 50% -20%, #00277618, transparent 55%),
    var(--bg);
}

html[data-theme="dark"] body {
  background:
    radial-gradient(ellipse 120% 80% at 50% -20%, #47d17a14, transparent 55%),
    var(--bg);
}

button,
input,
select,
textarea,
optgroup {
  font-family: inherit;
  letter-spacing: inherit;
}

.input--upper,
input.input--upper,
textarea.input--upper {
  text-transform: uppercase;
}

.ui-caps,
.btn-primary,
.btn-ghost,
.nav-link,
.subnav__link,
.tab-link,
.data-table thead th,
.chip,
.app-header__title,
.modal-sugestao__header h2,
.field__label,
.doc-viewer-tab,
.btn-sugestao-header,
.card--kpi h3,
.stat-number {
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

input[type="password"],
input[type="number"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="file"],
input[type="email"],
input[type="url"] {
  text-transform: none;
  letter-spacing: normal;
}

.input--upper::placeholder {
  text-transform: uppercase;
  font-family: inherit;
}

::placeholder {
  text-transform: none;
  font-family: inherit;
}
