/* base.css — GameCurrent.pro — reset, tokens, typography */

:root {
  --color-dark-bg: #16232E;
  --color-dark-surface: #1E3040;
  --color-accent: #8C6D3F;
  --color-accent-dark: #6f5731;
  --color-light-bg: #F3F1EA;
  --color-card: #FFFFFF;
  --color-text: #1B2430;
  --color-text-inverse: #E7E9ED;
  --color-status-vigente: #2F6B4F;
  --color-status-historico: #6B6357;
  --color-status-licitado: #4A5C78;
  --color-border: #C9C3B4;

  --font-serif: "Source Serif 4", "PT Serif", Georgia, serif;
  --font-sans: "Public Sans", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --fs-12: 0.75rem;
  --fs-14: 0.875rem;
  --fs-16: 1rem;
  --fs-18: 1.125rem;
  --fs-22: 1.375rem;
  --fs-28: 1.75rem;
  --fs-36: 2.25rem;
  --fs-44: 2.75rem;

  --content-max: 1180px;
  --gutter: 24px;
  --gutter-mobile: 16px;

  --radius: 4px;
  --focus-ring: 2px solid #1B4B7A;
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-light-bg: #1B242E;
    --color-text: #E7E9ED;
    --color-card: #22303C;
    --color-border: #3B4552;
  }
}

*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--color-light-bg);
  color: var(--color-text);
  font-family: var(--font-sans);
  font-size: var(--fs-16);
  line-height: 1.55;
  overflow-x: hidden;
}

h1, h2, h3, h4 {
  font-family: var(--font-serif);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 0.6em;
  color: var(--color-text);
}

h1 { font-size: var(--fs-36); }
h2 { font-size: var(--fs-28); }
h3 { font-size: var(--fs-22); }
h4 { font-size: var(--fs-18); }

@media (min-width: 900px) {
  h1 { font-size: var(--fs-44); }
}

p { margin: 0 0 1em; max-width: 70ch; }
ul, ol { margin: 0 0 1em; padding-left: 1.4em; }

a {
  color: var(--color-accent-dark);
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
a:hover { color: var(--color-accent); }

img { max-width: 100%; height: auto; display: block; }

button { font-family: inherit; }

[hidden] { display: none !important; }

:focus { outline: var(--focus-ring); outline-offset: 2px; }
:focus:not(:focus-visible) { outline: none; }
:focus-visible { outline: var(--focus-ring); outline-offset: 2px; }

.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  background: var(--color-dark-bg);
  color: var(--color-text-inverse);
  padding: 12px 20px;
  z-index: 1000;
  border-radius: 0 0 var(--radius) 0;
}
.skip-link:focus {
  left: 0;
}

.tabular-nums {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.01em;
}

.op-editable {
  font-family: var(--font-sans);
  font-size: var(--fs-12);
  font-weight: 600;
  color: var(--color-accent-dark);
  background: #EFE6D6;
  border: 1px solid var(--color-border);
  border-radius: 2px;
  padding: 0.05em 0.4em;
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
