/* =========================================================
   PDF PILOT — BASE
   Arquivo: css/base.css
   Função: reset, estrutura base, body, tipografia e acessibilidade
   ========================================================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  scroll-behavior: smooth;
}

body {
  min-height: 100vh;
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-page-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  transition:
    color var(--transition-normal),
    background var(--transition-normal);
}

body.is-locked {
  overflow: hidden;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  color: inherit;
}

button,
select {
  cursor: pointer;
}

input,
textarea,
select {
  outline: none;
}

img,
svg,
canvas {
  max-width: 100%;
}

a {
  color: inherit;
  text-decoration: none;
}

strong {
  font-weight: 800;
}

[hidden] {
  display: none !important;
}

/* =========================================================
   ACESSIBILIDADE
   ========================================================= */

:focus-visible {
  outline: 3px solid rgba(255, 122, 69, 0.42);
  outline-offset: 3px;
}

::selection {
  color: #ffffff;
  background: var(--color-brand-orange);
}

/* =========================================================
   BACKGROUND DECORATIVO
   ========================================================= */

.ambient-background {
  position: fixed;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: var(--background-ambient);
  transition: background var(--transition-normal);
}

.ambient-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  transition: opacity var(--transition-normal);
}

.ambient-orb--orange {
  width: 560px;
  height: 560px;
  top: -160px;
  left: -120px;
  background: #ff9a6c;
  opacity: 0.50;
}

.ambient-orb--pink {
  width: 520px;
  height: 520px;
  right: -100px;
  bottom: -180px;
  background: #e889c0;
  opacity: 0.40;
}

.ambient-orb--blue {
  width: 420px;
  height: 420px;
  top: 30%;
  right: 18%;
  background: #7aa2ff;
  opacity: 0.28;
}

body.dark-theme .ambient-orb--orange {
  background: #ff7a45;
  opacity: 0.45;
}

body.dark-theme .ambient-orb--pink {
  background: #c33b8f;
  opacity: 0.50;
}

body.dark-theme .ambient-orb--blue {
  background: #2f6df0;
  opacity: 0.30;
}

/* =========================================================
   UTILITÁRIOS
   ========================================================= */

.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  border: 0 !important;
  clip: rect(0, 0, 0, 0) !important;
}

.text-gradient {
  color: transparent;
  background: var(--color-brand-gradient);
  -webkit-background-clip: text;
  background-clip: text;
}

.no-scroll {
  overflow: hidden;
}

