/* Sistema visual da plataforma — inspirado no DSGov (gov.br). Cor primária vem do inquilino (--p). REQ-TEN-001, REQ-ACS-001 */
:root{
  --p:#1351b4; --p-esc:color-mix(in srgb,var(--p) 78%,#000); --p-cla:color-mix(in srgb,var(--p) 12%,#fff); --p-med:color-mix(in srgb,var(--p) 30%,#fff);
  --fg:#1b1b1b; --fg2:#555; --fg3:#777; --bg:#fff; --bg2:#f8f8f8; --linha:#ddd; --link:var(--p); --foco:#c2850c;
  --ok:#168821; --aviso:#ffcd07; --erro:#e52207; --info:#155bcb;
  --fonte:"Rawline","Raleway",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; --mono:ui-monospace,Menlo,Consolas,monospace;
  --raio:4px; --sombra:0 1px 6px rgba(0,0,0,.16); --fs:100%; --max:1200px;
}
html{font-size:var(--fs);scroll-behavior:smooth}
*{box-sizing:border-box}
body{margin:0;font-family:var(--fonte);color:var(--fg);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-decoration:underline;text-underline-offset:2px}a:hover{color:var(--p-esc)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:4px solid var(--foco);outline-offset:2px}
img{max-width:100%;height:auto}
h1,h2,h3,h4{line-height:1.2;margin:0 0 .5rem;font-weight:700;text-wrap:balance}
h1{font-size:2rem;color:var(--p-esc)}h2{font-size:1.5rem;margin-top:2rem}h3{font-size:1.2rem}
p{margin:0 0 1rem}small,.mini{font-size:.875rem;color:var(--fg2)}
.container{max-width:var(--max);margin:0 auto;padding:0 1.25rem}
.pular{position:absolute;left:-999px;top:0;background:var(--p-esc);color:#fff;padding:.6rem 1rem;z-index:99;border-radius:0 0 var(--raio) 0}.pular:focus{left:0}

/* barra superior institucional */
.barra-gov{background:var(--p-esc);color:#fff;font-size:.8rem}
.barra-gov .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:2.2rem;flex-wrap:wrap}
.barra-gov a{color:#fff}.barra-gov .acess button{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55);border-radius:var(--raio);padding:.15rem .55rem;margin-left:.3rem;cursor:pointer;font:inherit}
.barra-gov .acess button:hover{background:rgba(255,255,255,.15)}

/* cabeçalho */
.cabecalho{background:var(--bg);border-bottom:1px solid var(--linha)}
.cabecalho .container{display:flex;align-items:center;gap:1.25rem;padding-top:1rem;padding-bottom:1rem;flex-wrap:wrap}
.marca{display:flex;align-items:center;gap:.9rem;text-decoration:none;color:var(--fg);flex:1;min-width:260px}
.marca img,.marca .monograma{width:64px;height:64px;object-fit:contain;flex:none}
.marca .monograma{border-radius:50%;background:var(--p);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.5rem;letter-spacing:-.02em}
.marca .sub{display:block;font-size:.8rem;color:var(--fg2);letter-spacing:.06em;text-transform:uppercase}
.marca .nome{display:block;font-size:1.35rem;font-weight:700;color:var(--p-esc);line-height:1.15}
.busca-topo{display:flex;gap:0;min-width:260px}
.busca-topo input{flex:1;border:1px solid var(--linha);border-right:0;border-radius:var(--raio) 0 0 var(--raio);padding:.6rem .9rem;font:inherit}
.busca-topo button{border:0;background:var(--p);color:#fff;padding:.6rem 1rem;border-radius:0 var(--raio) var(--raio) 0;cursor:pointer;font:inherit;font-weight:600}

/* navegação */
.nav{background:var(--p);color:#fff}
.nav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.nav a,.nav summary{display:block;color:#fff;text-decoration:none;padding:.8rem 1rem;font-weight:600;font-size:.95rem}
.nav a:hover,.nav summary:hover{background:var(--p-esc);color:#fff}
.nav details{position:relative}.nav summary{cursor:pointer;list-style:none}.nav summary::after{content:" ▾"}
.nav details[open] ul{position:absolute;z-index:20;background:#fff;box-shadow:var(--sombra);min-width:220px;flex-direction:column;border-radius:0 0 var(--raio) var(--raio)}
.nav details[open] ul a{color:var(--fg);font-weight:500}.nav details[open] ul a:hover{background:var(--p-cla);color:var(--p-esc)}

main{padding:2rem 0 3rem}
.trilha{font-size:.85rem;color:var(--fg2);margin-bottom:1rem}.trilha a{color:var(--fg2)}
.msg{padding:.9rem 1rem;border-left:4px solid var(--info);background:var(--bg2);margin:0 0 1rem;border-radius:var(--raio)}
.msg.erro,.erro{border-left-color:var(--erro);color:#8a1200}.msg.ok{border-left-color:var(--ok)}

/* destaque e cards */
.hero{background:linear-gradient(135deg,var(--p-esc),var(--p));color:#fff;border-radius:var(--raio);padding:2.2rem 2rem;margin-bottom:2rem;display:grid;gap:.6rem}
.hero h1{color:#fff;font-size:2.2rem}.hero p{max-width:60ch;font-size:1.05rem;opacity:.95;margin:0}
.hero .acoes{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.6rem}
.btn{display:inline-block;background:var(--p);color:#fff;border:2px solid var(--p);border-radius:100px;padding:.55rem 1.3rem;font-weight:600;text-decoration:none;cursor:pointer;font:inherit;line-height:1.2}
.btn:hover{background:var(--p-esc);border-color:var(--p-esc);color:#fff}
.btn.sec{background:transparent;color:var(--p)}.btn.sec:hover{background:var(--p-cla);color:var(--p-esc)}
.hero .btn{background:#fff;color:var(--p-esc);border-color:#fff}.hero .btn.sec{background:transparent;color:#fff;border-color:rgba(255,255,255,.8)}
.grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:var(--bg);border:1px solid var(--linha);border-radius:var(--raio);box-shadow:var(--sombra);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem}
.card h3{margin:0}.card h3 a{text-decoration:none;color:var(--p-esc)}.card h3 a:hover{text-decoration:underline}
.card .meta{font-size:.8rem;color:var(--fg2);text-transform:uppercase;letter-spacing:.04em}
.card .rodape-card{margin-top:auto;padding-top:.5rem}
.card.link{transition:transform .12s}.card.link:hover{transform:translateY(-2px)}
.card-icone{display:flex;gap:1rem;align-items:flex-start}.card-icone .ic{width:44px;height:44px;border-radius:var(--raio);background:var(--p-cla);color:var(--p-esc);display:grid;place-items:center;font-size:1.3rem;flex:none}
.secao{margin-top:2.5rem}.secao-cab{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;border-bottom:2px solid var(--p);padding-bottom:.4rem;margin-bottom:1.25rem}
.secao-cab h2{margin:0;font-size:1.4rem}.secao-cab a{font-weight:600;text-decoration:none}
.tag{display:inline-block;background:var(--p-cla);color:var(--p-esc);border-radius:100px;padding:.15rem .7rem;font-size:.78rem;font-weight:600}
.tag.ok{background:#e3f5e1;color:#0c5a14}.tag.erro{background:#fde0dc;color:#8a1200}.tag.aviso{background:#fff5cc;color:#6b5500}

/* tabelas */
.tabela{overflow-x:auto;border:1px solid var(--linha);border-radius:var(--raio);background:var(--bg)}
table{border-collapse:collapse;width:100%;font-size:.93rem}
th,td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--linha);vertical-align:top}
thead th{background:var(--p-cla);color:var(--p-esc);font-weight:700;white-space:nowrap}
tbody tr:hover{background:var(--bg2)}tbody tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}

/* formulários */
form.painel,.form{background:var(--bg2);border:1px solid var(--linha);border-radius:var(--raio);padding:1.25rem 1.5rem;margin-bottom:1.5rem}
label{font-weight:600;display:block;margin-bottom:.25rem}
input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{width:100%;max-width:640px;border:1px solid #888;border-radius:var(--raio);padding:.6rem .8rem;font:inherit;background:#fff;color:var(--fg)}
textarea{min-height:120px}
form p{margin-bottom:1rem}.helptext{display:block;font-size:.82rem;color:var(--fg2)}
button,input[type=submit]{background:var(--p);color:#fff;border:2px solid var(--p);border-radius:100px;padding:.55rem 1.3rem;font:inherit;font-weight:600;cursor:pointer}
button:hover{background:var(--p-esc)}button.sec{background:transparent;color:var(--p)}
fieldset{border:1px solid var(--linha);border-radius:var(--raio);padding:.75rem 1rem;margin:0 0 1rem}legend{font-weight:700;padding:0 .4rem}
.inline{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end}.inline label{margin:0}.inline input,.inline select{width:auto}
dl.dados{display:grid;grid-template-columns:max-content 1fr;gap:.4rem 1.25rem;margin:0 0 1rem}dl.dados dt{font-weight:600;color:var(--fg2)}dl.dados dd{margin:0}

/* listas de conteúdo */
.lista{list-style:none;padding:0;margin:0}.lista li{padding:.75rem 0;border-bottom:1px solid var(--linha);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.lista li:last-child{border-bottom:0}.lista a{font-weight:600;text-decoration:none}.lista a:hover{text-decoration:underline}
article.conteudo{max-width:78ch}article.conteudo img{border-radius:var(--raio)}
.paginacao{display:flex;gap:.5rem;align-items:center;justify-content:center;margin:1.5rem 0;font-size:.9rem}.paginacao a{padding:.4rem .8rem;border:1px solid var(--linha);border-radius:var(--raio);text-decoration:none}

/* rodapé */
.rodape{background:var(--p-esc);color:#fff;margin-top:3rem;padding:2.5rem 0 1.5rem;font-size:.92rem}
.rodape a{color:#fff}.rodape .container{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.rodape h3{color:#fff;font-size:1rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.6rem}
.rodape ul{list-style:none;padding:0;margin:0}.rodape li{margin:.3rem 0}
.rodape .base{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.25);padding-top:1rem;font-size:.8rem;opacity:.85;display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}

/* alto contraste */
html.alto-contraste{--p:#000;--p-esc:#000;--p-cla:#222;--p-med:#333;--fg:#fff;--fg2:#ddd;--fg3:#ccc;--bg:#000;--bg2:#111;--linha:#666;--link:#ff0;--foco:#ff0}
html.alto-contraste .barra-gov,html.alto-contraste .nav,html.alto-contraste .rodape,html.alto-contraste .hero{border:1px solid #fff}
html.alto-contraste .btn,html.alto-contraste button{background:#000;color:#ff0;border-color:#ff0}
html.alto-contraste thead th{background:#222;color:#fff}html.alto-contraste input,html.alto-contraste select,html.alto-contraste textarea{background:#000;color:#fff;border-color:#fff}
html.alto-contraste .card,html.alto-contraste .msg,html.alto-contraste .form{background:#000;border-color:#fff}html.alto-contraste .marca .nome{color:#fff}

@media (max-width:720px){h1{font-size:1.6rem}.hero{padding:1.5rem 1.25rem}.hero h1{font-size:1.6rem}.cabecalho .container{gap:.75rem}.nav a,.nav summary{padding:.7rem .8rem;font-size:.9rem}}
@media print{.barra-gov,.nav,.busca-topo,.rodape,.acess{display:none}main{padding:0}a{color:#000;text-decoration:none}}
