/* Juris — base/reset e tipografia (design_system.md §2.3/§4). App = 14px, denso. */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--font-sans); font-size: var(--fs-base);
  line-height: 1.4; color: var(--ink-0); background: var(--bg-0);
  -webkit-font-smoothing: antialiased;
}
h1,h2,h3,h4 { font-family: var(--font-serif); font-weight: 600; color: var(--ink-0); line-height: 1.25; margin: 0 0 var(--sp-3); }
h1 { font-size: var(--fs-2xl); } h2 { font-size: var(--fs-xl); } h3 { font-size: var(--fs-lg); }
p { margin: 0 0 var(--sp-3); }
a { color: var(--azul); text-decoration: none; }
a:hover { color: var(--azul-hover); text-decoration: underline; }
small { font-size: var(--fs-sm); color: var(--ink-2); }
code, kbd, .juris-mono { font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

:focus-visible { outline: 2px solid var(--azul); outline-offset: 2px; border-radius: 3px; }

input, select, textarea, button { font: inherit; color: inherit; }
input[type=text], input[type=email], input[type=password], input[type=search], textarea, select {
  width: 100%; padding: 8px 10px; background: var(--bg-1); color: var(--ink-0);
  border: 1px solid var(--line); border-radius: var(--r-sm); transition: border-color var(--transicao);
}
input:focus, textarea:focus, select:focus { border-color: var(--azul); outline: none; box-shadow: 0 0 0 3px var(--azul-soft); }
label { display: inline-block; font-size: var(--fs-sm); color: var(--ink-1); font-weight: 500; margin-bottom: 4px; }
hr { border: 0; border-top: 1px solid var(--line); margin: var(--sp-4) 0; }

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--bg-3); border-radius: var(--r-pill); }

.leitura-serif { font-family: var(--font-serif); font-size: var(--fs-md); line-height: 1.6; max-width: 70ch; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }
