:root{
  --blue:#003399; --blue-2:#0b2a7a; --blue-ink:#002266; --yellow:#FFCC00;
  --bg:#ffffff; --bg-2:#f4f6fb; --ink:#14182a; --ink-2:#4a5068; --line:#dde2ee;
  --link:#003399; --link-h:#0047d6; --mark:#fff4bf; --chip-bg:#FFCC00; --chip-ink:#1a1a1a;
  --font: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --radius:10px; --w:1240px;
}
@media (prefers-color-scheme: dark){
  :root{ --bg:#0c1122; --bg-2:#141b33; --ink:#e7eaf4; --ink-2:#a9b0c8; --line:#273154;
         --link:#9db4ff; --link-h:#c4d2ff; --mark:#3a3210; --blue-ink:#c4d2ff; }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--bg);color:var(--ink);font:16.5px/1.65 var(--font)}
a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:2px}
a:hover{color:var(--link-h)}
.wrap{max-width:var(--w);margin:0 auto;padding:0 20px}
.skip{position:absolute;left:-999px;top:0;background:var(--yellow);color:#000;padding:8px 12px;z-index:99}
.skip:focus{left:8px}

/* topo */
.top{background:var(--blue);color:#fff;border-bottom:4px solid var(--yellow);position:sticky;top:0;z-index:20}
.top-in{display:flex;align-items:center;gap:22px;min-height:62px}
.brand{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:700;font-size:21px;letter-spacing:-.01em}
.brand b{color:var(--yellow);font-weight:700}
.brand:hover{color:#fff}
.star{width:22px;height:22px;fill:var(--yellow);flex:none}
.nav{display:flex;gap:4px;flex-wrap:wrap}
.nav a{color:#fff;text-decoration:none;padding:6px 10px;border-radius:6px;font-size:15px;opacity:.92}
.nav a:hover{background:rgba(255,255,255,.12);opacity:1;color:#fff}
.nav a.lang{border:1px solid rgba(255,204,0,.6);color:var(--yellow)}
.hsearch{margin-left:auto;position:relative;width:300px}
.hsearch input{width:100%;padding:8px 12px;border-radius:8px;border:0;background:rgba(255,255,255,.14);color:#fff;font:inherit;font-size:14.5px}
.hsearch input::placeholder{color:rgba(255,255,255,.7)}
.hsearch input:focus{outline:2px solid var(--yellow);background:#fff;color:#111}
.p-home .hsearch{visibility:hidden}

/* resultados */
.results{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--bg);color:var(--ink);border:1px solid var(--line);
  border-radius:var(--radius);box-shadow:0 12px 40px rgba(0,20,80,.18);max-height:70vh;overflow:auto;z-index:30;text-align:left}
.hsearch .results{left:auto;width:min(560px,92vw)}
.results a{display:block;padding:10px 14px;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.results a:last-child{border-bottom:0}
.results a:hover,.results a.sel{background:var(--bg-2)}
.results .rk{font-weight:700;color:var(--blue-ink);margin-right:6px}
.results .rs{display:block;font-size:13.5px;color:var(--ink-2);margin-top:2px}
.results mark{background:var(--mark);color:inherit;border-radius:2px}
.results .none{padding:12px 14px;color:var(--ink-2)}

/* layout */
.layout{padding-top:28px;padding-bottom:56px}
.layout.has-side{display:grid;grid-template-columns:300px minmax(0,1fr);gap:44px}
.side{position:sticky;top:90px;align-self:start;max-height:calc(100vh - 110px);overflow:auto;font-size:14px;padding-right:6px;
  scrollbar-width:thin}
.side .toc-h{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-2);margin:18px 0 4px;font-weight:700}
.side .toc-h .lbl{color:var(--blue-ink)}
.side .toc-s{font-size:12.5px;color:var(--ink-2);margin:10px 0 2px;font-weight:600}
.side .toc-list a{padding:3px 8px}
.side .toc-list .n{min-width:52px}
main{min-width:0}

/* índice */
.toc-list{list-style:none;margin:0;padding:0}
.toc-list li{display:flex;align-items:center;gap:6px}
.toc-list a{display:flex;gap:10px;flex:1;padding:6px 10px;border-radius:7px;text-decoration:none;color:var(--ink);line-height:1.4}
.toc-list a:hover{background:var(--bg-2);color:var(--ink)}
.toc-list .n{font-weight:700;color:var(--blue-ink);min-width:62px;font-variant-numeric:tabular-nums;flex:none}
.toc-list li.cur a{background:var(--blue);color:#fff}
.toc-list li.cur .n{color:var(--yellow)}
.toc-list li.del a{color:var(--ink-2);text-decoration:line-through;text-decoration-color:var(--line)}
.chip{display:inline-block;background:var(--chip-bg);color:var(--chip-ink);font-size:11px;font-weight:700;padding:1px 6px;border-radius:20px;line-height:1.5;flex:none}
.toc{columns:2 460px;column-gap:44px}
.toc .toc-ch{break-inside:avoid-column;margin-bottom:26px}
.toc .toc-h{font-size:19px;margin:0 0 6px;padding-bottom:6px;border-bottom:2px solid var(--yellow);line-height:1.3}
.toc .toc-h .lbl{display:block;font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.toc .toc-s{font-size:14.5px;margin:14px 0 4px 10px;color:var(--ink-2);font-weight:600}
.toc .toc-s .lbl{color:var(--blue-ink)}
.legend{font-size:14px;color:var(--ink-2)}

/* início */
.hero{background:linear-gradient(160deg,var(--blue) 0%,var(--blue-2) 100%);color:#fff;border-radius:16px;padding:44px 44px 30px;margin-bottom:38px;position:relative}
.hero .eyebrow{margin:0 0 6px;color:var(--yellow);font-weight:600;font-size:14px;letter-spacing:.04em;text-transform:uppercase}
.hero h1{margin:0 0 8px;font-size:clamp(32px,5vw,50px);line-height:1.05;letter-spacing:-.02em}
.hero .sub{margin:0 0 22px;max-width:760px;font-size:17.5px;opacity:.94}
.bigsearch{position:relative;max-width:760px;z-index:2}
.bigsearch input{width:100%;font:inherit;font-size:18px;padding:15px 18px;border-radius:12px;border:0;background:#fff;color:#111;box-shadow:0 6px 24px rgba(0,0,0,.18)}
.bigsearch input:focus{outline:3px solid var(--yellow)}
.hero .stats{margin:16px 0 0;font-size:14.5px;opacity:.9}
.hero .stats a{color:var(--yellow)}
h2.pt,h1.pt{font-size:28px;letter-spacing:-.01em;margin:8px 0 10px;line-height:1.2}
.lead{color:var(--ink-2);max-width:760px}

/* artigo */
.art{max-width:780px}
.crumbs{font-size:14px;color:var(--ink-2);margin:0 0 10px}
.crumbs a{color:var(--ink-2)}
.crumbs .sep{margin:0 4px}
.art h1{margin:0 0 10px;line-height:1.15}
.art .h-n{display:block;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--blue-ink)}
.art .h-t{display:block;font-size:clamp(26px,3.4vw,34px);letter-spacing:-.015em}
.prov{display:inline-block;margin:0 0 14px;font-size:13.5px;color:var(--ink-2);background:var(--bg-2);border:1px solid var(--line);padding:3px 10px;border-radius:20px}
.prov.new{border-color:var(--yellow);background:rgba(255,204,0,.14)}
.tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;font-size:14px;margin:0 0 22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.btn{font:inherit;font-size:14px;background:var(--blue);color:#fff;border:0;border-radius:8px;padding:7px 14px;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--blue-2);color:#fff}
.btn.ok{background:#1d7a3a}
.short{color:var(--ink-2)}
.ext{margin-left:auto;color:var(--ink-2)}

/* corpo legal */
.law{font-size:17px}
.law p{margin:0 0 .8em}
.law .norm{margin:0 0 .6em}
.law .inline-element > :last-child{margin-bottom:0}
.law .para{display:grid;grid-template-columns:minmax(2.2em,auto) 1fr;column-gap:12px;padding:4px 8px;margin-left:-8px;border-radius:8px}
.law .para > .inline-element{grid-column:2;min-width:0}
.law .no-parag{font-weight:700;color:var(--blue-ink);white-space:nowrap;position:relative}
.law .pl{opacity:0;margin-left:4px;font-weight:400;text-decoration:none;color:var(--ink-2);font-size:.85em}
.law .para:hover .pl,.law .pl:focus{opacity:1}
.law .para:target{background:var(--mark)}
.law p.norm, .law div.inline-element p{margin:0 0 .6em}
.law .grid-list{display:grid;grid-template-columns:2.6em 1fr;margin:.2em 0 .5em}
.law .grid-list-column-1{color:var(--ink-2);font-weight:600;white-space:nowrap}
.law .defn{padding:3px 8px;margin-left:-8px;border-radius:8px;grid-template-columns:3.4em 1fr}
.law .defn:hover .pl{opacity:1}
.law .defn:target{background:var(--mark)}
.law .grid-list-column-2 > p:last-child{margin-bottom:.2em}
.law .del{color:var(--ink-2);letter-spacing:.2em;font-size:13px;margin:.2em 0}
.law .italics{font-style:italic}
.law .boldface{font-weight:700}
.law .title-gr-seq-level-1{font-weight:700;margin-top:1.2em}
.law table{border-collapse:collapse;width:100%;font-size:15px;margin:1em 0}
.law td,.law th{border:1px solid var(--line);padding:6px 8px;vertical-align:top}
.law a.xref{text-decoration-style:dotted}
.law sup{line-height:0}
.notes{margin-top:30px;border-top:1px solid var(--line);padding-top:12px;font-size:14.5px;color:var(--ink-2)}
.notes h2{font-size:15px;text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px}
.notes li{margin-bottom:6px}
.notes li:target{background:var(--mark)}
.deleted-note{font-size:18px;padding:16px 18px;background:var(--bg-2);border-left:4px solid var(--yellow);border-radius:6px}
.promo{margin-top:26px;padding:12px 16px;border-radius:var(--radius);background:rgba(255,204,0,.14);border:1px solid var(--yellow);font-size:15px}

.pager{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:40px 0 10px;max-width:780px}
.pager a{display:flex;flex-direction:column;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);min-width:0}
.pager a:hover{border-color:var(--blue);background:var(--bg-2);color:var(--ink)}
.pager .next{text-align:right}
.pager small{color:var(--ink-2)}
.pager span{font-weight:700;color:var(--blue-ink)}
.pager em{font-style:normal;font-size:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kbd{font-size:13px;color:var(--ink-2);max-width:780px}

/* texto integral e considerandos */
.p-full main,.p-rec main{max-width:820px}
.fch{font-size:24px;margin:48px 0 6px;padding-bottom:6px;border-bottom:3px solid var(--yellow);line-height:1.25}
.fch .lbl,.fsc .lbl{display:block;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.fsc{font-size:19px;margin:30px 0 4px;color:var(--ink-2)}
.fa{margin:26px 0}
.fa h3{font-size:19px;margin:0 0 8px;line-height:1.3}
.fa h3 a{text-decoration:none}
.fa h3 span{display:block;font-weight:600;color:var(--ink)}
.fa:target h3{background:var(--mark);border-radius:6px}
.recitals{list-style:none;padding:0;margin:20px 0}
.recitals li{display:grid;grid-template-columns:3.4em 1fr;gap:6px;padding:8px;margin-left:-8px;border-radius:8px}
.recitals li:target{background:var(--mark)}
.recitals .rn{font-weight:700;color:var(--blue-ink);text-decoration:none}
.recitals p{margin:0 0 .6em}

.foot{background:var(--bg-2);border-top:4px solid var(--blue);font-size:14px;color:var(--ink-2)}
.foot-in{padding:26px 20px 30px}
.foot p{margin:0 0 8px;max-width:920px}

@media (max-width:1100px){ .hsearch{width:220px} }
@media (max-width:980px){
  .top{position:static}
  html{scroll-padding-top:10px}
  .layout.has-side{display:block}
  .side{display:none}
  .top-in{flex-wrap:wrap;padding:10px 0;gap:8px 16px}
  .hsearch{order:3;width:100%;margin:0 0 4px}
  .p-home .hsearch{display:none}
}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .nav a{padding:4px 7px;font-size:14px}
  .hero{padding:28px 20px 22px;border-radius:12px}
  .law{font-size:16.5px}
  .law .grid-list{grid-template-columns:2.2em 1fr}
  .pager{grid-template-columns:1fr}
  .pager .next{text-align:left}
  .ext{margin-left:0}
  .toc-list .n{min-width:54px}
}
@media print{
  .top,.side,.tools,.pager,.kbd,.foot,.promo{display:none!important}
  .layout.has-side{display:block}
  body{font-size:12pt}
}

/* ---------- guia: envio registado ---------- */
.guide{display:grid;grid-template-columns:240px minmax(0,1fr);gap:44px}
.g-toc{position:sticky;top:90px;align-self:start;font-size:14px}
.g-toc p{margin:0 0 6px;font-size:12.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-weight:700}
.g-toc ol{list-style:none;margin:0;padding:0;border-left:3px solid var(--yellow)}
.g-toc a{display:block;padding:5px 12px;color:var(--ink);text-decoration:none;line-height:1.35}
.g-toc a:hover{background:var(--bg-2);color:var(--link)}
.g-main{min-width:0}
.g-head{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:8px}
.g-head .eyebrow{margin:0;color:var(--blue-ink);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.06em}
.g-head h1{font-size:clamp(30px,4vw,42px);margin:4px 0 10px;letter-spacing:-.02em;line-height:1.1}
.g-head .lead{font-size:18px}
.g-terms{font-size:14.5px;color:var(--ink-2);margin:10px 0 0}
.g-terms abbr{text-decoration:none;font-weight:700;color:var(--blue-ink)}
.g-main section{padding-top:22px;margin-top:22px}
.g-main section > h2{font-size:26px;margin:0 0 12px;letter-spacing:-.01em;line-height:1.2;position:relative}
.g-main h2 .pl,.mx th .pl{position:absolute;left:-1.1em;opacity:0;text-decoration:none;color:var(--ink-2);font-weight:400}
.g-main h2:hover .pl,.mx th:hover .pl{opacity:1}
.g-main p,.g-main li{max-width:78ch}
.keybox{background:var(--blue);color:#fff;border-radius:12px;padding:16px 20px;margin:0 0 16px;border-left:6px solid var(--yellow)}
.keybox p{margin:0;font-size:17.5px;max-width:none}
ol.plain,ul.plain{padding-left:1.3em}
ol.plain li,ul.plain li{margin-bottom:.6em}
.note{font-size:15px;background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:10px 14px}
.disc{font-size:13.5px;color:var(--ink-2);margin-top:40px;border-top:1px solid var(--line);padding-top:12px}

.pcs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:16px}
.pc{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--bg)}
.pc h3{margin:0 0 8px;font-size:18px}
.pc blockquote{margin:0 0 12px;padding:8px 12px;border-left:3px solid var(--blue);background:var(--bg-2);border-radius:0 8px 8px 0;font-size:15px}
.pc cite{display:block;font-style:normal;font-size:13px;margin-top:4px}
.pc-cols{display:grid;grid-template-columns:1fr;gap:10px;font-size:14.5px}
.pc-cols h4{margin:0 0 4px;font-size:12.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}
.pc-cols ul{margin:0;padding-left:1.1em}
.pc-cols li{margin-bottom:3px}
.pc-q{border:2px solid var(--blue);box-shadow:0 0 0 4px rgba(255,204,0,.35)}
.pc-q{grid-column:1/-1}
.pc-q .pc-cols{grid-template-columns:1fr 1fr}

.vs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:8px 0 14px}
.vs > div{border:1px solid var(--line);border-radius:12px;padding:14px 18px}
.vs > div:last-child{border-color:var(--blue)}
.vs h3{margin:0 0 6px;font-size:18px}
.vs ul{margin:0;padding-left:1.15em;font-size:15.5px}
.vs li{margin-bottom:5px}

.mx-legend{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13.5px;color:var(--ink-2)}
.badge{display:inline-block;font-size:11.5px;font-weight:700;line-height:1.3;padding:2px 7px;border-radius:5px;white-space:nowrap;vertical-align:1px}
.b-P{background:var(--blue);color:#fff}
.b-R{background:transparent;color:var(--blue-ink);box-shadow:inset 0 0 0 1.5px var(--blue-ink)}
.b-E{background:#ffe680;color:#3a2f00}
.b-N{background:var(--bg-2);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}
.mx-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px;-webkit-overflow-scrolling:touch}
.mx-wrap:focus{outline:2px solid var(--yellow)}
.mx{border-collapse:separate;border-spacing:0;width:100%;min-width:900px;table-layout:fixed;font-size:13.5px;line-height:1.45}
.mx th,.mx td{padding:9px 10px;vertical-align:top;border-bottom:1px solid var(--line);text-align:left}
.mx thead th{position:sticky;top:0;background:var(--bg-2);font-size:13px;border-bottom:2px solid var(--blue)}
.mx thead th span{display:block;font-weight:700}
.mx thead th small,.mx tbody th small{display:block;font-weight:400;color:var(--ink-2);font-size:12px}
.mx tbody th{position:sticky;left:0;background:var(--bg);font-size:13.5px;z-index:1;border-right:1px solid var(--line)}
.mx td .badge{display:block;width:max-content;max-width:100%;white-space:normal;margin-bottom:4px}
.mx th.mx-aspect{width:140px}
.mx td{overflow-wrap:anywhere}
.mx td.mx-q,.mx th.mx-q{background:rgba(0,51,153,.06)}
.mx thead th.mx-q{background:var(--blue);color:#fff}
.mx thead th.mx-q small{color:#dbe4ff}
.mx td.c-N{color:var(--ink-2)}
.mx tr:target th,.mx tr:target td{background:var(--mark)}
.mx tbody tr:last-child th,.mx tbody tr:last-child td{border-bottom:0}

.tl{list-style:none;margin:16px 0;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:17px;top:6px;bottom:6px;width:2px;background:var(--line)}
.tl li{display:grid;grid-template-columns:36px 1fr;gap:14px;margin-bottom:16px;position:relative}
.tl-n{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;border:3px solid var(--bg);box-shadow:0 0 0 2px var(--yellow)}
.tl-b{border:1px solid var(--line);border-radius:12px;padding:10px 16px;background:var(--bg)}
.tl-b h3{margin:0 0 4px;font-size:17px}
.tl-ref{font-weight:400;font-size:13.5px;margin-left:6px}
.tl-b p{margin:0 0 6px;font-size:15.5px}
.tl-ev{font-size:13px;color:var(--ink-2)}
.tl-ev code{font-family:var(--mono);font-size:12px;background:var(--bg-2);border:1px solid var(--line);border-radius:5px;padding:1px 6px;margin:2px 4px 2px 0;display:inline-block}

table.use{border-collapse:collapse;width:100%;max-width:900px;font-size:15.5px}
table.use th,table.use td{border-bottom:1px solid var(--line);padding:9px 10px;text-align:left;vertical-align:top}
table.use thead th{border-bottom:2px solid var(--blue);font-size:14px}
table.use td:last-child{font-weight:600}

dl.faq{margin:0}
dl.faq dt{font-weight:700;margin:16px 0 4px}
dl.faq dd{margin:0 0 0 0;padding-left:14px;border-left:3px solid var(--yellow);color:var(--ink)}

.p-guide .layout{padding-top:20px}

@media (max-width:1100px){ .guide{grid-template-columns:1fr} .g-toc{position:static;border:1px solid var(--line);border-radius:12px;padding:12px 14px} .g-toc ol{columns:2 220px} }
@media (max-width:760px){ .vs,.pc-cols,.pc-q .pc-cols{grid-template-columns:1fr} .g-main h2 .pl,.mx th .pl{display:none} .g-toc ol{columns:1} }
@media (prefers-color-scheme: dark){ .b-E{background:#5a4a00;color:#ffe680} .mx td.mx-q{background:rgba(157,180,255,.07)} }
@media print{ .g-toc{display:none} .guide{display:block} .mx{min-width:0;font-size:9pt} }

/* destaque do guia */
.nav a.hl{background:var(--yellow);color:var(--blue-ink);font-weight:700;opacity:1}
.nav a.hl:hover{background:#ffe066;color:#002266}
@media (prefers-color-scheme: dark){ .nav a.hl{color:#002266} }
.feature{display:grid;gap:6px;margin:-14px 0 34px;padding:22px 26px;border-radius:14px;text-decoration:none;color:var(--ink);
  background:linear-gradient(90deg,rgba(255,204,0,.22),rgba(255,204,0,.06));border:2px solid var(--yellow);border-left:8px solid var(--yellow)}
.feature:hover{color:var(--ink);background:linear-gradient(90deg,rgba(255,204,0,.32),rgba(255,204,0,.10))}
.f-eyebrow{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--blue-ink)}
.f-title{font-size:clamp(21px,2.6vw,27px);font-weight:700;letter-spacing:-.01em;line-height:1.2}
.f-text{color:var(--ink-2);max-width:820px}
.f-cta{font-weight:700;color:var(--link)}

@media (max-width:980px){ .hero{margin-top:14px} }
