/* Shared chrome for both protocol pages: tokens, base, lang switcher, hero, section, footer.
 * Extracted verbatim from the original protocol pages - identical apart from 3 per-page values.
 */

:root{
  /* Paleta da marca vem de tokens.css — não redefinir aqui.
     Abaixo, apenas o que é exclusivo das páginas de protocolo. */
  --paper-ink-faint:#7186A0;
  --sev-low:#1F9E7A; --sev-mod:#F2B134; --sev-high:#E8792F; --sev-max:#D9483C;
}
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--paper); color:var(--paper-ink); font-family:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif; -webkit-font-smoothing:antialiased; }
h1,h2,h3,h4{ font-family:"Newsreader",ui-serif,Georgia,"Times New Roman",serif; font-weight:500; line-height:1.16; letter-spacing:-0.012em; margin:0; text-wrap:balance; }
p{ margin:0; }
a{ color:inherit; }
.mono{ font-family:"IBM Plex Mono",ui-monospace,monospace; }
img{ max-width:100%; }
.wrap{ max-width:920px; margin:0 auto; padding:0 24px; }
@media(max-width:640px){ .wrap{ padding:0 18px; } }

/* ---------- language switcher ---------- */
.langbar{ position:fixed; top:16px; right:16px; z-index:50; display:flex; gap:2px; background:rgba(5,15,31,0.72); backdrop-filter:blur(8px); border:1px solid rgba(234,242,252,0.18); border-radius:999px; padding:3px; }
.lang-btn{ appearance:none; border:0; background:transparent; color:var(--on-dark-soft); font-family:"IBM Plex Mono",monospace; font-size:0.72rem; font-weight:600; letter-spacing:0.03em; padding:6px 10px; border-radius:999px; cursor:pointer; }
.lang-btn.active{ background:var(--amber); color:var(--amber-ink); }
.home-link{ position:fixed; top:16px; left:16px; z-index:50; display:inline-flex; align-items:center; gap:6px; background:rgba(5,15,31,0.72); backdrop-filter:blur(8px); border:1px solid rgba(234,242,252,0.18); border-radius:999px; padding:8px 14px 8px 12px; font-family:"IBM Plex Mono",monospace; font-size:0.72rem; font-weight:600; letter-spacing:0.02em; color:var(--on-dark); text-decoration:none; }
.home-link svg{ width:13px; height:13px; }

/* ---------- hero ---------- */
.hero{ background:radial-gradient(ellipse 120% 90% at 50% -10%, var(--navy-850), var(--navy-950) 65%); color:var(--on-dark); padding:96px 0 56px; position:relative; overflow:hidden; }
.hero::after{ content:""; position:absolute; inset:auto 0 0 0; height:1px; background:linear-gradient(90deg, transparent, var(--line-dark), transparent); }
.badge-row{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin-bottom:28px; }
.doc-badge{ display:inline-flex; align-items:center; gap:8px; font-family:"IBM Plex Mono",monospace; font-size:0.72rem; font-weight:600; letter-spacing:0.06em; color:var(--amber); text-transform:uppercase; }
.doc-badge::before{ content:""; width:6px; height:6px; border-radius:50%; background:var(--amber); }
.doc-rev{ font-family:"IBM Plex Mono",monospace; font-size:0.72rem; color:var(--on-dark-faint); letter-spacing:0.03em; }
.hero-eyebrow{ font-family:"IBM Plex Mono",monospace; font-size:0.78rem; font-weight:600; letter-spacing:0.08em; color:var(--blue-bright); text-transform:uppercase; margin-bottom:14px; }
.hero h1{ font-size:clamp(2.1rem,5vw,3.1rem); letter-spacing:-0.01em; max-width:15ch; }
.hero p.lede{ margin-top:20px; max-width:62ch; font-size:1.05rem; line-height:1.6; color:var(--on-dark-soft); }
.hero-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:44px; padding-top:28px; border-top:1px solid var(--line-dark); }
.hero-stat .num{ font-family:"Newsreader",ui-serif,Georgia,"Times New Roman",serif; font-size:2.1rem; font-weight:700; color:#fff; }
.hero-stat .lbl{ margin-top:6px; font-size:0.84rem; line-height:1.4; color:var(--on-dark-faint); }
@media(max-width:640px){ .hero-stats{ grid-template-columns:1fr; gap:18px; } }
.hero-foot{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-top:40px; }
.hero-foot .note{ font-size:0.86rem; color:var(--on-dark-faint); max-width:50ch; }
.scroll-cta{ display:inline-flex; align-items:center; gap:6px; font-family:"IBM Plex Mono",monospace; font-size:0.72rem; font-weight:600; letter-spacing:0.05em; color:var(--on-dark-soft); white-space:nowrap; }

/* ---------- strip ---------- */
.strip{ background:var(--navy-900); color:var(--on-dark-faint); padding:16px 0; }
.strip .wrap{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 24px; font-family:"IBM Plex Mono",monospace; font-size:0.68rem; letter-spacing:0.04em; }

/* ---------- generic section ---------- */
section.doc{ padding:64px 0; }
section.doc.tight{ padding:44px 0; }
.eyebrow{ font-family:"IBM Plex Mono",monospace; font-size:0.74rem; font-weight:600; letter-spacing:0.08em; color:var(--blue); text-transform:uppercase; margin-bottom:12px; }
h2.section-title{ font-size:clamp(1.5rem,3vw,1.9rem); max-width:26ch; }
p.section-lede{ margin-top:14px; max-width:66ch; font-size:1rem; line-height:1.65; color:var(--paper-ink-soft); }
.rule{ height:1px; background:var(--line-paper); border:0; margin:0; }
