
:root{
 --bg:#F5F1E8; --card:#FFFFFF; --ink:#20221B; --ink2:#6B6B58; --ink3:#8C8B76;
 --line:#DFD9C7; --line2:#EDE8DC; --acc:#A87120; --acc2:#4B284B; --oliva:#2F3A24;
 --ambar:#C98A2B; --chip:#EBE5D5; --ok:#4E7A46; --no:#A8402A; --info:#3E6B7A;
 --sh:0 1px 2px #20221b10, 0 10px 30px #20221b14;
 --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
 --bg:#161A11; --card:#1F2419; --ink:#F1EDE0; --ink2:#A9AC93; --ink3:#7E836C;
 --line:#333A28; --line2:#262C1E; --acc:#D4A22A; --acc2:#B98BC0; --ambar:#D4A22A;
 --chip:#262C1E; --ok:#8FBF80; --no:#DB7A4A; --info:#7FB0C0;
 --sh:0 1px 2px #0006, 0 10px 30px #00000060;}}
:root[data-theme="dark"]{
 --bg:#161A11; --card:#1F2419; --ink:#F1EDE0; --ink2:#A9AC93; --ink3:#7E836C;
 --line:#333A28; --line2:#262C1E; --acc:#D4A22A; --acc2:#B98BC0; --ambar:#D4A22A;
 --chip:#262C1E; --ok:#8FBF80; --no:#DB7A4A; --info:#7FB0C0;
 --sh:0 1px 2px #0006, 0 10px 30px #00000060;}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);line-height:1.6;
 font-family:Montserrat,"Helvetica Neue",Arial,sans-serif;font-size:15px;
 -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--acc);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:2px}

/* ---------- topo fixo ---------- */
.top{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 90%,transparent);
 backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.topin{max-width:1320px;margin:0 auto;padding:11px 24px;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none}
.brand .n{font-family:"Playfair Display",Georgia,serif;font-size:16px;letter-spacing:.22em;
 text-transform:uppercase;color:var(--acc);font-weight:600}
.brand .s{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink3)}
.topnav{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}
.topnav a{font-size:12.5px;color:var(--ink2);padding:6px 11px;border-radius:999px}
.topnav a:hover{background:var(--chip);color:var(--ink);text-decoration:none}
.topnav a[aria-current="page"]{background:var(--chip);color:var(--ink);font-weight:600}

/* ---------- estrutura ---------- */
.wrap{max-width:1320px;margin:0 auto;padding:0 24px 90px}
.doc{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:46px;align-items:start}
@media (max-width:1000px){.doc{grid-template-columns:1fr}.rail{display:none}}
.rail{position:sticky;top:76px;padding-top:44px}
.rail h4{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink3);margin:0 0 10px}
.rail a{display:block;font-size:12.5px;color:var(--ink2);padding:4px 0 4px 11px;
 border-left:2px solid var(--line);line-height:1.35}
.rail a:hover{color:var(--acc);border-color:var(--acc);text-decoration:none}
.rail a.h3{padding-left:22px;font-size:12px;color:var(--ink3)}
.rail a.on{color:var(--ink);border-color:var(--acc);font-weight:600}

/* ---------- cabeçalho de documento ---------- */
.dhead{padding:44px 0 26px;border-bottom:1px solid var(--line);margin-bottom:34px}
.dhead.solo{margin-bottom:0;border-bottom:0;padding-bottom:16px}
.crumb{font-size:11.5px;color:var(--ink3);letter-spacing:.04em;margin-bottom:14px}
.crumb a{color:var(--ink3)} .crumb a:hover{color:var(--acc)}
.dhead h1{font-family:"Playfair Display",Georgia,serif;font-weight:600;
 font-size:clamp(28px,4.2vw,46px);line-height:1.07;letter-spacing:-.02em;margin:0;text-wrap:balance}
.dhead .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;
 color:var(--acc);margin:0 0 8px}
.dhead .dsub{color:var(--ink2);max-width:66ch;margin:14px 0 0}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}
.chip{font-size:11px;letter-spacing:.05em;background:var(--chip);color:var(--ink2);
 padding:5px 11px;border-radius:999px;border:1px solid var(--line)}
.chip.ok{background:var(--ok);border-color:var(--ok);color:#fff;font-weight:600}
.chip.no{background:var(--no);border-color:var(--no);color:#fff;font-weight:600}
.chip b{color:var(--ink);font-weight:600}
.chip.ok b,.chip.no b{color:#fff}

/* ---------- prosa ---------- */
.prose{max-width:78ch;font-size:15.2px}
.prose>*:first-child{margin-top:0}
.prose h1{font-family:"Playfair Display",Georgia,serif;font-size:30px;font-weight:600;
 margin:52px 0 14px;letter-spacing:-.015em;text-wrap:balance}
.prose h2{font-family:"Playfair Display",Georgia,serif;font-size:25px;font-weight:600;
 margin:48px 0 12px;padding-bottom:9px;border-bottom:1px solid var(--line);
 letter-spacing:-.01em;scroll-margin-top:78px;text-wrap:balance}
.prose h3{font-size:16.5px;font-weight:700;margin:34px 0 10px;letter-spacing:.01em;scroll-margin-top:78px}
.prose h4{font-size:13px;font-weight:700;margin:26px 0 8px;letter-spacing:.06em;
 text-transform:uppercase;color:var(--ink2)}
.prose p{margin:0 0 16px}
.prose ul,.prose ol{margin:0 0 18px;padding-left:22px}
.prose li{margin:0 0 7px}
.prose li::marker{color:var(--acc)}
.prose strong{font-weight:700}
.prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}
.prose blockquote{margin:0 0 18px;padding:2px 0 2px 18px;border-left:3px solid var(--acc);color:var(--ink2)}
.prose code{font-family:var(--mono);font-size:.86em;background:var(--chip);
 padding:2px 6px;border-radius:3px;color:var(--ink);white-space:nowrap}
.prose pre{background:var(--chip);border:1px solid var(--line);border-radius:6px;
 padding:16px 18px;overflow-x:auto;margin:0 0 20px}
.prose pre code{background:none;padding:0;white-space:pre;font-size:12.6px;line-height:1.55}
.tw{overflow-x:auto;margin:0 0 24px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
.prose table{border-collapse:collapse;width:100%;font-size:13.2px;min-width:520px}
.prose th{text-align:left;font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
 color:var(--ink2);font-weight:700;padding:11px 13px;background:var(--line2);
 border-bottom:1px solid var(--line);white-space:nowrap;position:sticky;top:0}
.prose td{padding:9px 13px;border-bottom:1px solid var(--line2);vertical-align:top;
 font-variant-numeric:tabular-nums}
.prose tr:last-child td{border-bottom:0}
.prose td:has(code),.prose td code{white-space:nowrap}
.prose table b{font-weight:700}
.prose img{max-width:100%;height:auto;border-radius:6px}
.st-PASS,.st-ok{color:var(--ok);font-weight:700}
.st-FAIL{color:var(--no);font-weight:700}
.st-INFORMATIVO,.st-NA{color:var(--info);font-weight:600}

/* ---------- hub ---------- */
.hero{padding:60px 0 12px}
.hero .kicker{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--acc);margin:0 0 14px}
.hero h1{font-family:"Playfair Display",Georgia,serif;font-weight:600;
 font-size:clamp(34px,5.6vw,60px);line-height:1.03;letter-spacing:-.025em;margin:0;text-wrap:balance}
.hero p.lead{color:var(--ink2);max-width:64ch;margin:18px 0 0;font-size:16px}
.strip{display:flex;flex-wrap:wrap;gap:28px;margin:34px 0 0;padding:20px 0;
 border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.strip div{min-width:92px}
.strip b{display:block;font-family:var(--mono);font-size:22px;font-weight:500;
 letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.strip span{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.fam{margin:56px 0 18px}
.fam h2{font-family:"Playfair Display",Georgia,serif;font-size:25px;font-weight:600;margin:0 0 4px}
.fam p{color:var(--ink2);font-size:13.5px;margin:0;max-width:70ch}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.c{display:flex;flex-direction:column;gap:9px;background:var(--card);border:1px solid var(--line);
 border-radius:12px;padding:20px 21px;box-shadow:var(--sh);transition:.16s;color:inherit;text-decoration:none}
.c:hover{border-color:var(--acc);transform:translateY(-2px);text-decoration:none}
.c .cid{font-family:var(--mono);font-size:10.5px;letter-spacing:.13em;color:var(--acc);text-transform:uppercase}
.c h3{font-family:"Playfair Display",Georgia,serif;font-size:19px;font-weight:600;margin:0;line-height:1.2}
.c p{font-size:13.2px;color:var(--ink2);margin:0;flex:1}
.c .cmeta{display:flex;gap:8px;flex-wrap:wrap;font-size:10.5px;color:var(--ink3);
 font-family:var(--mono);letter-spacing:.04em;padding-top:4px;border-top:1px solid var(--line2)}

/* ---------- busca ---------- */
.busca{position:relative;margin:30px 0 0;max-width:560px}
.busca input{width:100%;font:inherit;font-size:14px;padding:12px 15px;border-radius:9px;
 border:1px solid var(--line);background:var(--card);color:var(--ink)}
.busca input::placeholder{color:var(--ink3)}
.res{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 7px);background:var(--card);
 border:1px solid var(--line);border-radius:9px;box-shadow:var(--sh);max-height:380px;overflow:auto;display:none}
.res.on{display:block}
.res a{display:block;padding:11px 15px;border-bottom:1px solid var(--line2);color:inherit}
.res a:last-child{border-bottom:0}
.res a:hover{background:var(--chip);text-decoration:none}
.res .rt{font-size:13.5px;font-weight:600}
.res .rd{font-size:11.5px;color:var(--ink3);margin-top:2px}

/* ---------- tabela de dados ---------- */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:0 0 18px}
.toolbar input,.toolbar select{font:inherit;font-size:13px;padding:8px 12px;border-radius:7px;
 border:1px solid var(--line);background:var(--card);color:var(--ink)}
.toolbar .cnt{font-family:var(--mono);font-size:12px;color:var(--ink2);margin-left:auto;font-variant-numeric:tabular-nums}
.dt{width:100%;border-collapse:collapse;font-size:12.6px}
.dt th{position:sticky;top:0;background:var(--line2);text-align:left;padding:10px 12px;
 font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink2);cursor:pointer;
 white-space:nowrap;border-bottom:1px solid var(--line);user-select:none}
.dt th:hover{color:var(--acc)}
.dt th[data-dir]::after{content:" ▲";font-size:8px;color:var(--acc)}
.dt th[data-dir="desc"]::after{content:" ▼"}
.dt td{padding:7px 12px;border-bottom:1px solid var(--line2);white-space:nowrap;
 font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:11.8px}
.dt tbody tr:hover td{background:var(--chip)}
.dtwrap{border:1px solid var(--line);border-radius:9px;overflow:auto;max-height:74vh;background:var(--card)}

/* ---------- baixar ---------- */
.dl{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 0}
.dl a{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;
 background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 14px;color:var(--ink)}
.dl a:hover{border-color:var(--acc);color:var(--acc);text-decoration:none}
.dl a small{font-family:var(--mono);font-weight:400;color:var(--ink3);font-size:10.5px}

footer.pe{margin-top:70px;padding-top:24px;border-top:1px solid var(--line);
 color:var(--ink3);font-size:12.5px;max-width:78ch}
footer.pe b{color:var(--ink2);font-weight:600}
footer.pe p{margin:0 0 8px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
@media print{.top,.rail,.busca,.dl{display:none}.doc{grid-template-columns:1fr}body{background:#fff}}
