/* ============================================================
   NodeDesk — sistema visual "folha técnica"  ·  rev. 2
   Datasheet de engenharia + identidade NodeDesk + camada de IA
   Usado por index.html e /assets/{privacy,terms,security}.html
   ============================================================ */

:root{
  /* light — "azul-planta" (papel frio) */
  --paper:#eef2f7;
  --paper-2:#e4eaf2;
  --ink:#0b0f1a;
  --ink-soft:#59627a;
  --rule:#c3cddb;
  --rule-strong:#9aa8bf;
  --accent:#2b3ff2;
  --accent-press:#1d2ed0;
  --accent-wash:#dfe3fd;
  --ok:#177a54;
  --anomaly:#b06a12;              /* 2º tom semântico — só anomalia/alerta */
  --anomaly-wash:#f4e7d4;
  /* painéis-instrumento escuros (também sobre o papel claro) */
  --panel:#0a0e17;
  --panel-2:#111726;
  --panel-ink:#e9eef7;
  --panel-soft:#8a97b3;
  --panel-line:rgba(150,175,230,.18);
  --panel-cyan:#63e6ff;
  --panel-ok:#4fe0a6;
  --panel-anomaly:#e6b05a;
  --grad:linear-gradient(102deg,#45d8ff,#5c7cff 52%,#a26bff);
  --grid-line:rgba(11,15,26,.035);

  --measure:66ch;
  --wrapmax:1520px;
  --edge:clamp(18px,4.6vw,72px);
  --font-display:"Archivo Expanded","Archivo",system-ui,sans-serif;
  --font-body:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0f131b; --paper-2:#161c27;
    --ink:#e8edf5; --ink-soft:#98a3b6;
    --rule:#2a313f; --rule-strong:#3f495c;
    --accent:#6a86ff; --accent-press:#8ba1ff; --accent-wash:#1a2140;
    --ok:#4fe0a6; --anomaly:#e6b05a; --anomaly-wash:#2a2114;
    --panel:#05070c; --panel-2:#0e1420;
    --panel-line:rgba(150,175,230,.24);
    --grid-line:rgba(230,238,250,.045);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0f131b; --paper-2:#161c27;
  --ink:#e8edf5; --ink-soft:#98a3b6;
  --rule:#2a313f; --rule-strong:#3f495c;
  --accent:#6a86ff; --accent-press:#8ba1ff; --accent-wash:#1a2140;
  --ok:#4fe0a6; --anomaly:#e6b05a; --anomaly-wash:#2a2114;
  --panel:#05070c; --panel-2:#0e1420;
  --panel-line:rgba(150,175,230,.24);
  --grid-line:rgba(230,238,250,.045);
  color-scheme:dark;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
[id]{scroll-margin-top:84px}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font-body);font-size:16px;line-height:1.62;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative;
}
/* grade de base — colunas fininhas, quase imperceptíveis, com fade */
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:repeating-linear-gradient(90deg,var(--grid-line) 0 1px,transparent 1px calc((min(var(--wrapmax),100vw) - 2*var(--edge))/12));
  background-position:center top;background-size:calc(min(var(--wrapmax),100vw) - 2*var(--edge)) 100%;
  background-repeat:no-repeat;
  mask-image:linear-gradient(to bottom,#000,#000 60%,transparent);
}
/* margens do documento — filetes fixos nas bordas da coluna (só na landing) */
body.framed::after{
  content:"";position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);
  width:min(var(--wrapmax),100vw);z-index:-1;pointer-events:none;
  border-inline:1px solid var(--rule);opacity:.6;
  mask-image:linear-gradient(to bottom,#000,#000 72%,transparent);
}
@media (max-width:1100px){body.framed::after{display:none}}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4,p{margin:0}
::selection{background:var(--accent);color:#fff}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

.mono{
  font-family:var(--font-mono);font-size:.72rem;font-weight:500;
  letter-spacing:.19em;text-transform:uppercase;color:var(--ink-soft);
}
.wrap{width:100%;max-width:var(--wrapmax);margin:0 auto;padding-inline:var(--edge)}
.wrap.narrow{max-width:900px}
.grad{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ── top rule / nav ─────────────────────────────── */
.topbar{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:1px solid var(--rule)}
.topbar-in{max-width:var(--wrapmax);margin:0 auto;padding:14px var(--edge);display:flex;align-items:center;gap:20px;position:relative}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:800;font-size:1.02rem;letter-spacing:.04em;color:var(--ink)}
.brand svg{width:26px;height:26px;display:block;flex:none}
.brand .wm{border-left:1px solid var(--rule-strong);padding-left:12px;font-weight:600;color:var(--ink-soft)}
.brand .wm b{font-weight:800;color:var(--ink)}
.nav{display:flex;gap:22px;margin-left:8px}
.nav a{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);padding:4px 0;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.nav a:hover{color:var(--ink);border-color:var(--accent)}
.topbar .tools{margin-left:auto;display:flex;align-items:center;gap:14px}
.status{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}
.status b{width:6px;height:6px;border-radius:50%;background:var(--ok);flex:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent)}
.enter{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);border:1px solid var(--rule-strong);padding:8px 12px;white-space:nowrap;transition:border-color .15s,background .15s}
@media (max-width:1160px){.status{display:none}}
@media (max-width:1040px){.topbar .enter{display:none}}
.enter:hover{border-color:var(--accent);background:var(--accent-wash)}
.iconbtn{width:34px;height:34px;display:grid;place-items:center;flex:none;border:1px solid var(--rule);background:none;color:var(--ink-soft);cursor:pointer;font-size:15px;transition:color .15s,border-color .15s,background .15s}
.iconbtn:hover{color:var(--ink);border-color:var(--rule-strong)}
.iconbtn[aria-pressed="true"]{color:var(--ink);border-color:var(--accent);background:var(--accent-wash)}
.menu{display:none}
.back{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.back:hover{color:var(--ink)}

/* ── masthead do documento ──────────────────────── */
.masthead{border-bottom:1px solid var(--rule);background:var(--paper-2)}
.masthead-in{max-width:var(--wrapmax);margin:0 auto;padding:9px var(--edge);display:flex;flex-wrap:wrap;gap:6px 0;align-items:center;
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.masthead-in span{display:inline-flex;align-items:center}
.masthead-in span+span::before{content:"";width:1px;height:11px;background:var(--rule-strong);margin:0 14px;opacity:.8}
.masthead-in .type-target::after{content:"";display:inline-block;width:6px;height:1em;margin-left:3px;background:var(--accent);vertical-align:-2px;opacity:0}
body.lit .masthead-in .type-target::after{animation:caret 1.1s steps(1) 3}
@keyframes caret{50%{opacity:1}}

/* ── hero ───────────────────────────────────────── */
.hero{padding-block:clamp(36px,5.5vw,72px)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,64px);align-items:start}
.eyebrow{display:inline-block;margin-bottom:26px}
h1{font-family:var(--font-display);font-weight:800;font-size:clamp(2.5rem,6.4vw,5rem);line-height:.95;letter-spacing:-.028em;text-wrap:balance}
h1 .grad{display:inline-block}
.lead{margin-top:24px;max-width:var(--measure);color:var(--ink-soft);font-size:clamp(1rem,1.4vw,1.16rem)}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--font-mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;padding:14px 20px;border:1px solid var(--ink);color:var(--ink);transition:transform .12s,background .15s,border-color .15s}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.primary:hover{background:var(--accent-press);border-color:var(--accent-press)}
.btn.ghost{background:none;border-color:var(--rule-strong)}
.btn.ghost:hover{border-color:var(--ink)}
.btn:active{transform:translateY(1px)}
.hero-note{margin-top:24px;display:flex;flex-wrap:wrap;gap:8px 22px}
.hero-note span{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}
.hero-note span::before{content:"·";color:var(--accent);margin-right:8px;font-weight:700}

/* dark instrument panel */
.panel{background:var(--panel);color:var(--panel-ink);border:1px solid var(--panel-line);position:relative;outline:1px solid var(--rule);outline-offset:-1px}
.panel::before,.panel::after{content:"";position:absolute;width:9px;height:9px;border:1px solid var(--panel-cyan);opacity:.6}
.panel::before{top:-1px;left:-1px;border-right:0;border-bottom:0}
.panel::after{bottom:-1px;right:-1px;border-left:0;border-top:0}
.id-panel{padding:24px;position:relative}
.id-panel .head{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--panel-soft);padding-bottom:14px;border-bottom:1px solid var(--panel-line)}
.id-row{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:9px 0;font-family:var(--font-mono);font-size:.78rem;border-bottom:1px solid var(--panel-line)}
.id-row dt{color:var(--panel-soft);letter-spacing:.1em}
.id-row dd{margin:0;color:var(--panel-ink);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.id-row dd .c{color:var(--panel-cyan)}

/* leitura de instrumento — sparkline + medidores */
.readout{margin-top:16px;border:1px solid var(--panel-line);background:#05070d;padding:12px}
.spark{width:100%;height:44px;display:block}
.gauges{display:grid;gap:0;margin-top:10px}
.gauge{display:flex;justify-content:space-between;align-items:center;padding:7px 0;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--panel-soft);border-top:1px solid var(--panel-line)}
.gauge:first-child{border-top:0}
.gauge b{font-weight:500;color:var(--panel-ink);font-variant-numeric:tabular-nums}
.gauge b.ok{color:var(--panel-ok)}
.gauge b.anomaly{color:var(--panel-anomaly)}

/* anotações técnicas — rodapé do painel de identificação */
.id-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--panel-line);display:flex;flex-wrap:wrap;gap:6px 16px;
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;color:var(--panel-soft)}
.id-foot span{display:inline-flex;align-items:center}
.id-foot span::before{content:"—";color:var(--panel-cyan);margin-right:7px}

.morse{display:inline-flex;gap:5px;align-items:center;vertical-align:middle;color:inherit}
.morse i{display:block;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.28;animation:blip 2s steps(1,end) infinite}
.morse i.dash{width:13px;border-radius:2px}
.morse i:nth-child(2){animation-delay:.15s}.morse i:nth-child(3){animation-delay:.3s}
.morse i:nth-child(4){animation-delay:.55s}.morse i:nth-child(5){animation-delay:.7s}
.morse i:nth-child(6){animation-delay:1s}
@keyframes blip{0%,70%,100%{opacity:.24}12%,45%{opacity:1}}

/* ── capability strip ───────────────────────────── */
.strip{border-block:1px solid var(--rule);background:var(--paper-2)}
.strip-in{max-width:var(--wrapmax);margin:0 auto;padding:18px var(--edge);display:flex;flex-wrap:wrap;gap:12px 34px;justify-content:space-between}
.strip-in span{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft)}

/* ── section frame ──────────────────────────────── */
.band{padding-block:clamp(56px,10vw,120px)}
.band.alt{background:var(--paper-2);border-block:1px solid var(--rule)}
.band.tight{padding-block:clamp(44px,7vw,80px)}
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:clamp(24px,5vw,64px);align-items:end;margin-bottom:clamp(34px,5vw,60px)}
.sec-head .k{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);white-space:nowrap;padding-top:6px}
.sec-head h2{font-family:var(--font-display);font-weight:700;font-size:clamp(1.9rem,4vw,3rem);line-height:1.04;letter-spacing:-.02em;text-wrap:balance;max-width:20ch}
.sec-head p{grid-column:2;margin-top:14px;color:var(--ink-soft);max-width:var(--measure)}

/* ── operating sequence ─────────────────────────── */
.seq{display:grid;gap:0;border-top:1px solid var(--rule)}
.step{display:grid;grid-template-columns:76px 1fr;gap:clamp(16px,4vw,44px);padding:26px 0;border-bottom:1px solid var(--rule);align-items:start}
.step .n{font-family:var(--font-mono);font-size:.82rem;color:var(--accent);letter-spacing:.06em;padding-top:5px}
.step h3{font-family:var(--font-display);font-weight:700;font-size:1.16rem;letter-spacing:.01em}
.step p{margin-top:7px;color:var(--ink-soft);max-width:56ch;font-size:.96rem}
.step .inset{margin-top:16px}
.mini{padding:14px 16px;font-family:var(--font-mono);font-size:.74rem;line-height:1.75}
.mini.term{color:#9db0d4}
.mini.term .p{color:var(--panel-cyan)}
.mini.term .ai{color:var(--panel-ok)}
.mini.term .muted{color:var(--panel-soft)}
.inv-row{display:grid;grid-template-columns:14px 1fr auto auto;gap:12px;align-items:center;font-family:var(--font-mono);font-size:.74rem;padding:8px 0;color:var(--panel-ink)}
.inv-row+.inv-row{border-top:1px solid var(--panel-line)}
.inv-row .d{width:7px;height:7px;border-radius:50%;background:var(--panel-ok)}
.inv-row .d.off{background:#5b6784}
.inv-row .lat{color:var(--panel-soft);font-variant-numeric:tabular-nums}
.inv-row .os{color:var(--panel-soft)}

/* ── copilot ────────────────────────────────────── */
.copilot .sec-head .k{color:var(--accent);display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cmd{margin-top:8px;max-width:820px}
.cmd .bar{display:flex;align-items:center;gap:12px;padding:16px 18px}
.cmd .bar .caret{color:var(--panel-cyan);font-family:var(--font-mono)}
.cmd .bar input{flex:1;background:none;border:0;color:var(--panel-ink);font-family:var(--font-mono);font-size:.86rem;letter-spacing:.01em;padding:0}
.cmd .bar input:focus{outline:none}
.cmd .bar .send{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--panel);background:var(--panel-cyan);border:0;padding:8px 12px;cursor:pointer}
.cmd .out{border-top:1px solid var(--panel-line);padding:14px 18px;font-family:var(--font-mono);font-size:.8rem;color:#9db0d4}
.cmd .out .tag{color:var(--panel-ok);margin-right:12px}
.cmd .out.anomaly .tag{color:var(--panel-anomaly)}
.cap3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:34px;background:var(--rule);border:1px solid var(--rule)}
.cap3 > div{background:var(--paper-2);padding:22px}
.cap3 h4{margin:0 0 8px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.cap3 h4.anomaly{color:var(--anomaly)}
.cap3 p{color:var(--ink-soft);font-size:.9rem}

/* ── spec table ─────────────────────────────────── */
.spec{width:100%;border-collapse:collapse;font-size:.92rem}
.spec thead th{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);text-align:left;font-weight:500;padding:12px 16px;border-bottom:1px solid var(--rule-strong)}
.spec td{padding:15px 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.spec td:first-child{font-weight:500;width:34%}
.spec td:last-child{color:var(--ink-soft);width:40%;font-size:.88rem}
.chip{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.11em;text-transform:uppercase;padding:4px 8px;border:1px solid currentColor;white-space:nowrap}
.chip.ok{color:var(--ok)}
.chip.acc{color:var(--accent)}
.chip.warn{color:var(--anomaly)}

/* histórico de revisão */
.revtable{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.76rem}
.revtable th{text-align:left;font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);padding:10px 14px;border-bottom:1px solid var(--rule-strong)}
.revtable td{padding:12px 14px;border-bottom:1px solid var(--rule);color:var(--ink-soft);vertical-align:top}
.revtable td:first-child{color:var(--accent);white-space:nowrap}
.revtable td:nth-child(2){white-space:nowrap;font-variant-numeric:tabular-nums}
.revtable tr:last-child td{color:var(--ink)}

/* labelled hairline grid (segurança) */
.grid-spec{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.grid-spec > div{background:var(--paper);padding:22px}
.grid-spec h3{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink);margin-bottom:8px;display:flex;gap:9px;align-items:baseline}
.grid-spec h3::before{content:"—";color:var(--accent)}
.grid-spec p{color:var(--ink-soft);font-size:.9rem;margin:0}

/* ── origin / ficha redigida ────────────────────── */
.origin-grid{display:grid;grid-template-columns:320px 1fr;gap:clamp(24px,5vw,56px);align-items:stretch}
.file{width:100%;text-align:left;cursor:pointer;background:var(--panel);color:var(--panel-ink);border:1px solid var(--panel-line);outline:1px solid var(--rule);outline-offset:-1px;padding:24px;display:flex;flex-direction:column;gap:14px;font:inherit;position:relative;overflow:hidden}
.file .tag{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--panel-soft)}
.file dl{display:grid;gap:0;margin:0}
.file .frow{display:grid;grid-template-columns:74px 1fr;gap:12px;padding:10px 0;font-family:var(--font-mono);font-size:.76rem;border-top:1px solid var(--panel-line)}
.file .frow:first-of-type{border-top:0}
.file .frow dt{color:var(--panel-soft);letter-spacing:.1em}
.file .frow dd{margin:0;position:relative;color:var(--panel-ink)}
.file .frow dd .v{opacity:0;transition:opacity .3s ease .1s}
.file .frow dd .redact{position:absolute;inset:-1px -2px;background:var(--panel-soft);opacity:.85;transition:opacity .3s ease,transform .3s ease}
.file[aria-pressed="true"] .frow dd .v{opacity:1}
.file[aria-pressed="true"] .frow dd .redact{opacity:0;transform:scaleX(0);transform-origin:left}
.file .reveal-hint{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--panel-cyan);transition:opacity .3s}
.file[aria-pressed="true"] .reveal-hint{opacity:0}
.file .stamp{position:absolute;right:16px;bottom:44px;font-family:var(--font-display);font-weight:800;font-size:.9rem;letter-spacing:.06em;color:var(--panel-anomaly);border:2px solid var(--panel-anomaly);padding:5px 10px;transform:rotate(-9deg) scale(.7);opacity:0;transition:opacity .3s ease .15s,transform .3s ease .15s}
.file[aria-pressed="true"] .stamp{opacity:.92;transform:rotate(-9deg) scale(1)}
.file:hover{border-color:var(--panel-cyan)}
.dossier{align-self:center}
.dossier .real h3{font-family:var(--font-display);font-weight:700;font-size:1.5rem;letter-spacing:-.01em;margin-bottom:10px}
.dossier .real p{color:var(--ink-soft);max-width:52ch}
.dossier .real .meta{margin-top:16px}

/* ── cta ────────────────────────────────────────── */
.cta-box{border:1px solid var(--rule-strong);padding:clamp(40px,7vw,72px) var(--edge);text-align:center;position:relative}
.cta-box::before,.cta-box::after{content:"";position:absolute;width:14px;height:14px;border:1px solid var(--accent)}
.cta-box::before{top:10px;left:10px;border-right:0;border-bottom:0}
.cta-box::after{bottom:10px;right:10px;border-left:0;border-top:0}
.cta-box .k{color:var(--accent)}
.cta-box h2{font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,4.6vw,3.4rem);line-height:1.02;letter-spacing:-.025em;margin:14px auto 12px;max-width:18ch;text-wrap:balance}
.cta-box p{color:var(--ink-soft);max-width:46ch;margin:0 auto 28px}
.cta-box .hero-actions{justify-content:center}

/* ── document pages ─────────────────────────────── */
.doc{padding-block:clamp(48px,8vw,88px)}
.doc-head{border-bottom:1px solid var(--rule);padding-bottom:clamp(28px,4vw,44px);margin-bottom:clamp(32px,4vw,52px)}
.doc-head h1{font-size:clamp(2.2rem,5.5vw,3.6rem);margin-top:18px}
.doc-head .updated{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);margin-top:16px}
.note{margin-top:22px;border:1px solid var(--rule-strong);border-left:2px solid var(--accent);padding:16px 18px;color:var(--ink-soft);font-size:.92rem;max-width:var(--measure)}
.doc-prose{display:grid;gap:0}
.clause{display:grid;grid-template-columns:64px 1fr;gap:clamp(14px,3vw,32px);padding:24px 0;border-top:1px solid var(--rule)}
.clause:first-child{border-top:0}
.clause .n{font-family:var(--font-mono);font-size:.8rem;color:var(--accent);padding-top:4px}
.clause h2{font-family:var(--font-display);font-weight:700;font-size:1.1rem;letter-spacing:.01em;margin-bottom:8px}
.clause p{color:var(--ink-soft);max-width:var(--measure)}
.doc-prose h2.plain{font-family:var(--font-display);font-weight:700;font-size:1.3rem;margin:clamp(34px,5vw,52px) 0 12px}

/* ── footer / colofão ───────────────────────────── */
.colophon{border-top:1px solid var(--rule);padding-block:38px}
.colophon-in{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:start}
.colophon .brand{margin-bottom:10px}
.colophon p{color:var(--ink-soft);font-size:.82rem;max-width:40ch}
.colophon .links{display:flex;flex-wrap:wrap;gap:18px}
.colophon .links a{font-family:var(--font-mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft)}
.colophon .links a:hover{color:var(--ink)}
.doc-line{grid-column:1/-1;margin-top:26px;padding-top:16px;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;align-items:center}
.doc-line span{font-family:var(--font-mono);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.doc-line .hash{color:var(--ink-soft);letter-spacing:.06em}
.doc-line .hash b{color:var(--accent);font-weight:500}

/* ── responsive ─────────────────────────────────── */
@media (max-width:900px){
  .nav{display:none}
  .nav.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--rule)}
  .nav.open a{padding:15px var(--edge);border-bottom:1px solid var(--rule);border-left:0}
  .menu{display:grid}
  .status{display:none}
  .hero-grid{grid-template-columns:1fr}
  .sec-head{grid-template-columns:1fr}
  .sec-head p{grid-column:1}
  .cap3{grid-template-columns:1fr}
  .grid-spec{grid-template-columns:1fr}
  .origin-grid{grid-template-columns:1fr}
  .spec td:first-child,.spec td:last-child{width:auto}
}
@media (max-width:560px){
  .step,.clause{grid-template-columns:1fr;gap:6px}
  .step .n,.clause .n{padding-top:0}
  .colophon-in{grid-template-columns:1fr}
  .id-row{grid-template-columns:84px 1fr}
  .spec,.spec thead,.revtable{font-size:.78rem}
  .masthead-in span+span::before{margin:0 9px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .file .frow dd .v{opacity:1}
  .file .frow dd .redact{display:none}
}

/* ============================================================
   SKIN ALTERNATIVA — "blueprint" (cianotipia)
   Linhas claras sobre azul da prússia; lápis-anotação âmbar.
   Ativada por  <html data-skin="blueprint">  (botão ▦, persiste em localStorage).
   Ignora light/dark — é uma identidade só. Fica por último = vence.
   ============================================================ */
:root[data-skin="blueprint"]{
  --paper:#0c3560;
  --paper-2:#0a2e54;
  --ink:#e4f0fb;
  --ink-soft:#9dbfdc;
  --rule:rgba(200,228,255,.22);
  --rule-strong:rgba(200,228,255,.44);
  --accent:#ffcf5c;                 /* lápis de anotação */
  --accent-press:#f5c040;
  --accent-wash:rgba(255,207,92,.12);
  --ok:#7fe6c4;
  --anomaly:#ff9e6b;
  --anomaly-wash:rgba(255,158,107,.12);
  --panel:#071f3a;
  --panel-2:#0a2749;
  --panel-ink:#dcecfb;
  --panel-soft:#8fb2d6;
  --panel-line:rgba(200,228,255,.20);
  --panel-cyan:#8fdcff;
  --panel-ok:#7fe6c4;
  --panel-anomaly:#ffb27a;
  --grid-line:rgba(200,228,255,.075);
  color-scheme:dark;
}
/* papel quadriculado de verdade — linhas H + V, mais presentes, sem fade */
:root[data-skin="blueprint"] body::before{
  background:
    repeating-linear-gradient(90deg,var(--grid-line) 0 1px,transparent 1px calc((min(var(--wrapmax),100vw) - 2*var(--edge))/12)),
    linear-gradient(0deg,rgba(200,228,255,.05) 1px,transparent 1px);
  background-size:calc(min(var(--wrapmax),100vw) - 2*var(--edge)) 100%, 100% 34px;
  background-position:center top, left top;
  background-repeat:no-repeat, repeat-y;
  mask-image:none;
}
:root[data-skin="blueprint"] .accent-blue-only,
:root[data-skin="blueprint"] a[style*="var(--accent)"]{color:var(--accent)!important}
/* a marca-título vira selo de desenho */
:root[data-skin="blueprint"] .masthead{background:var(--paper-2);border-color:var(--rule-strong)}
:root[data-skin="blueprint"] .panel::before,
:root[data-skin="blueprint"] .panel::after,
:root[data-skin="blueprint"] .file .stamp{border-color:var(--accent)}
:root[data-skin="blueprint"] .panel::before,
:root[data-skin="blueprint"] .panel::after{opacity:.9}
:root[data-skin="blueprint"] .cta-box::before,
:root[data-skin="blueprint"] .cta-box::after{border-color:var(--accent)}
/* botão primário no blueprint = âmbar sobre azul, texto escuro */
:root[data-skin="blueprint"] .btn.primary,
:root[data-skin="blueprint"] .btn.primary:hover{color:#07213c}
/* o traço do sparkline/gradiente segue --panel-cyan (já ok) */
