*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; color-scheme: dark; scroll-behavior: smooth; }
body {
  margin: 0; min-height: 100vh; min-height: 100dvh; font-family: var(--font-body); font-size: 16px; line-height: 1.5;
  color: var(--text); background: var(--bg);
  background-image:
    radial-gradient(900px 500px at 85% -10%, rgba(198,244,50,.10), transparent 60%),
    radial-gradient(700px 500px at -10% 110%, rgba(198,244,50,.06), transparent 60%);
  background-attachment: fixed; -webkit-font-smoothing: antialiased; -webkit-tap-highlight-color: transparent;
}
h1, h2, h3 { font-family: var(--font-head); color: var(--white); letter-spacing: .01em; line-height: 1.1; margin: 0 0 .5rem; text-transform: uppercase; }
h1 { font-family: var(--font-display); font-weight: 400; font-size: clamp(2rem, 6vw, 2.8rem); letter-spacing: .02em; }
h2 { font-size: clamp(1.4rem, 4vw, 1.8rem); font-weight: 800; }
h3 { font-size: 1.15rem; font-weight: 700; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
h3 > i, h2 > i { color: var(--neon); }
p { margin: .35rem 0; }
a { color: var(--neon); text-decoration: none; transition: color .2s var(--ease); }
a:hover { color: #e4ff6b; }
img { max-width: 100%; display: block; }
small { font-size: .82rem; }
strong { color: var(--white); font-weight: 700; }
.muted { color: var(--muted); }
.ok { color: var(--neon); }
.hidden, [hidden] { display: none !important; }
.pre { white-space: pre-wrap; }
:focus-visible { outline: 2px solid var(--neon); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--neon); color: var(--ink); }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--surface-3); border-radius: 10px; border: 2px solid var(--bg); }

/* Formulários */
label { display: block; font-family: var(--font-head); font-weight: 600; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin: .9rem 0 .35rem; text-align: left; }
input, select, textarea {
  width: 100%; font: inherit; color: var(--white); background: var(--surface-2);
  border: 1px solid var(--line-strong); border-radius: var(--r-sm); padding: .8rem .95rem; min-height: 48px;
  transition: border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s;
}
input::placeholder, textarea::placeholder { color: #6d7464; }
input:hover, select:hover, textarea:hover { border-color: rgba(198,244,50,.35); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--neon); box-shadow: 0 0 0 4px var(--neon-soft); background: var(--surface-3); }
textarea { min-height: 100px; resize: vertical; }
select { appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--neon) 50%), linear-gradient(135deg, var(--neon) 50%, transparent 50%); background-position: calc(100% - 20px) 50%, calc(100% - 14px) 50%; background-size: 6px 6px; background-repeat: no-repeat; padding-right: 2.4rem; }
input[type="file"] { padding: .55rem; cursor: pointer; }
input[type="file"]::file-selector-button { font: inherit; font-weight: 600; border: 0; border-radius: 8px; padding: .45rem .9rem; margin-right: .8rem; background: var(--neon); color: var(--ink); cursor: pointer; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; min-height: 0; accent-color: var(--neon); }
input[type="date"]::-webkit-calendar-picker-indicator { filter: invert(1) brightness(1.4); cursor: pointer; }

/* Toasts */
#toasts { position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 100; display: grid; gap: .5rem; width: min(92vw, 420px); pointer-events: none; }
.toast { pointer-events: auto; padding: .85rem 1rem .85rem 2.8rem; border-radius: var(--r); background: rgba(25,28,22,.92); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--line-strong); color: var(--white); font-weight: 500; box-shadow: 0 20px 40px -12px rgba(0,0,0,.8); position: relative; animation: toast-in .4s var(--ease); }
.toast::before { font-family: "Font Awesome 6 Free"; font-weight: 900; position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); }
.toast.success { border-color: rgba(198,244,50,.4); }
.toast.success::before { content: "\f058"; color: var(--neon); }
.toast.error { border-color: rgba(255,90,78,.45); }
.toast.error::before { content: "\f06a"; color: var(--danger); }
@keyframes toast-in { from { opacity: 0; transform: translateY(12px) scale(.97); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }
