/* TRICINCTUS Núcleo 1.1 — Source: DESIGN.md and brand/tokens.json.
   Brand palette preserved; functional UI colors are intentional extensions.
   Local Montserrat is bundled; import brand/fonts.css and preserve its OFL license. */
:root {
  --tc-terra: #B5522D;
  --tc-areia: #E8D7B7;
  --tc-caroba: #6A8F4E;
  --tc-pedra: #3A3A3A;
  --tc-azul: #0E3A5F;
  --tc-sol: #F4A259;
  --tc-branco-suave: #F8F6F1;
  --tc-preto-profundo: #171717;
  --tc-marrom: #5A3927;
  --tc-bege-claro: #F1E7D6;
  --tc-font: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;
  --tc-space-1: 4px;
  --tc-space-2: 8px;
  --tc-space-3: 12px;
  --tc-space-4: 16px;
  --tc-space-6: 24px;
  --tc-space-8: 32px;
  --tc-space-12: 48px;
  --tc-space-16: 64px;
  --tc-space-24: 96px;
  --tc-radius-control: 8px;
  --tc-radius-card: 16px;
  --tc-radius-large: 24px;
  --tc-content: 1200px;
  --tc-reading: 760px;
  --tc-text-body: 1rem;
  --tc-text-small: 0.875rem;
  --tc-text-caption: 0.8125rem;
  --tc-text-heading: 2rem;
  --tc-text-display: clamp(2.5rem, 5vw, 4.5rem);
  --tc-duration-fast: 160ms;
  --tc-duration-normal: 240ms;
  --tc-duration-entrance: 400ms;
  --tc-ease: cubic-bezier(0.2, 0, 0, 1);
}
:root, [data-theme="light"] {
  color-scheme: light;
  --tc-background: var(--tc-branco-suave);
  --tc-surface: #FFFFFF;
  --tc-surface-soft: var(--tc-bege-claro);
  --tc-text: var(--tc-pedra);
  --tc-text-muted: var(--tc-marrom);
  --tc-heading: var(--tc-azul);
  --tc-action: var(--tc-terra);
  --tc-on-action: var(--tc-branco-suave);
  --tc-action-hover: #9A4326;
  --tc-link: var(--tc-azul);
  --tc-border-decorative: var(--tc-areia);
  --tc-border-control: #746650;
  --tc-focus: var(--tc-azul);
  --tc-success: #496D32;
  --tc-error: #8F3026;
  --tc-warning: var(--tc-marrom);
  --tc-info: var(--tc-azul);
}
[data-theme="dark"] {
  color-scheme: dark;
  --tc-background: var(--tc-azul);
  --tc-surface: #17496E;
  --tc-surface-soft: #102F4B;
  --tc-text: var(--tc-branco-suave);
  --tc-text-muted: #B7C8D4;
  --tc-heading: var(--tc-areia);
  --tc-action: var(--tc-sol);
  --tc-on-action: var(--tc-azul);
  --tc-action-hover: #F7B77A;
  --tc-link: var(--tc-sol);
  --tc-border-decorative: #345E7D;
  --tc-border-control: #9FBFD8;
  --tc-focus: var(--tc-sol);
  --tc-success: #AFCB98;
  --tc-error: #F9B6A0;
  --tc-warning: var(--tc-sol);
  --tc-info: #9FBFD8;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    color-scheme: dark;
  --tc-background: var(--tc-azul);
  --tc-surface: #17496E;
  --tc-surface-soft: #102F4B;
  --tc-text: var(--tc-branco-suave);
  --tc-text-muted: #B7C8D4;
  --tc-heading: var(--tc-areia);
  --tc-action: var(--tc-sol);
  --tc-on-action: var(--tc-azul);
  --tc-action-hover: #F7B77A;
  --tc-link: var(--tc-sol);
  --tc-border-decorative: #345E7D;
  --tc-border-control: #9FBFD8;
  --tc-focus: var(--tc-sol);
  --tc-success: #AFCB98;
  --tc-error: #F9B6A0;
  --tc-warning: var(--tc-sol);
  --tc-info: #9FBFD8;
  }
}
/* Optional, namespaced styles. Tokens alone do not restyle an existing product. */
.tc-root { background: var(--tc-background); color: var(--tc-text); font-family: var(--tc-font); line-height: 1.6; }
.tc-root :where(a) { color: var(--tc-link); text-underline-offset: 0.2em; }
.tc-root :where(h1,h2,h3) { color: var(--tc-heading); line-height: 1.2; }
.tc-root :where(button,a,input,select,textarea):focus-visible { outline: 3px solid var(--tc-focus); outline-offset: 3px; }
.tc-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 20px; border: 1px solid var(--tc-action); border-radius: var(--tc-radius-control); background: var(--tc-action); color: var(--tc-on-action); font: 600 0.875rem/1.4 var(--tc-font); cursor: pointer; transition: background-color var(--tc-duration-fast) var(--tc-ease); }
.tc-button:hover:not(:disabled) { background: var(--tc-action-hover); border-color: var(--tc-action-hover); }
.tc-button--secondary { background: transparent; color: var(--tc-link); border-color: var(--tc-border-control); }
.tc-button--secondary:hover:not(:disabled) { background: var(--tc-surface-soft); border-color: var(--tc-border-control); }
.tc-button:disabled { cursor: not-allowed; opacity: 0.6; }
.tc-input { box-sizing: border-box; min-height: 44px; padding: 10px 12px; border: 1px solid var(--tc-border-control); border-radius: var(--tc-radius-control); color: var(--tc-text); background: var(--tc-surface); font: 400 1rem/1.4 var(--tc-font); }
.tc-input::placeholder { color: var(--tc-text-muted); opacity: 1; }
.tc-card { padding: 24px; background: var(--tc-surface); border: 1px solid var(--tc-border-decorative); border-radius: var(--tc-radius-card); }
@media (prefers-reduced-motion: reduce) {
  :root { --tc-duration-fast: 0ms; --tc-duration-normal: 0ms; --tc-duration-entrance: 0ms; }
}
