@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@500;600;700&family=Inter:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap');

:root, :root[data-theme="dark"]{
  --trans-bg:#000000; --trans-card:#201f23; --trans-surf:rgba(255,255,255,.06);
  --trans-ink:#ffffff; --trans-ink-soft:#CCCCCC; --trans-ink-faint:#9FBBCF;
  --trans-borda: rgba(255,255,255,.14);
  --trans-dark:#404e59; --trans-icon:#404e59;
  --trans-cor:#4FA8DA; --trans-cor-clara:#8FD1F5; --trans-cor-texto:#8FD1F5; --trans-cor-fundo:rgba(143,209,245,.15);
  --trans-radius:14px; --trans-radius-sm:8px;
  --trans-shadow:0 14px 32px -14px rgba(0,0,0,.55);
  --trans-font-title:"Poppins","Inter",sans-serif;
  --trans-font-body:"Inter",sans-serif;
  --trans-font-mono:"IBM Plex Mono", monospace;
}

/* Tema claro — <html data-theme="light"> */
:root[data-theme="light"]{
  --trans-bg:#F4F7FA; --trans-card:#FFFFFF; --trans-surf:rgba(11,61,92,.05);
  --trans-ink:#000000; --trans-ink-soft:#333333; --trans-ink-faint:#5C7086;
  --trans-borda:rgba(11,61,92,.14);
  --trans-dark:#404e59; --trans-icon:#8698a6;
  --trans-cor:#4FA8DA; --trans-cor-clara:#ffffff; --trans-cor-texto:#2E7CA6; --trans-cor-fundo:rgba(46,124,166,.12);
  --trans-radius:14px; --trans-radius-sm:8px;
  --trans-shadow:0 14px 32px -14px rgba(11,31,46,.18);
  --trans-font-title:"Poppins","Inter",sans-serif;
  --trans-font-body:"Inter",sans-serif;
  --trans-font-mono:"IBM Plex Mono", monospace;
}

/* Variações de cor — <html data-accent="verde|roxo"> */
:root[data-accent="verde"]{ --trans-cor:#41C48F; --trans-cor-clara:#8DF0C4; }
:root[data-accent="roxo"] { --trans-cor:#9A6BD1; --trans-cor-clara:#CDB0F0; }

/* ---------- BASE ---------- */
html                               { transition:background-color .2s ease; }
body                               { background:var(--trans-bg); color:var(--trans-ink); font-family:var(--trans-font-body); -webkit-font-smoothing:antialiased; transition:background-color .2s ease, color .2s ease; }
a                                  { transition:color .15s ease, border-color .15s ease; }
a:focus-visible, button:focus-visible{ outline:2.5px solid var(--trans-cor); outline-offset:3px; }

/* ---------- NAV / RODAPÉ (classes do framework, mantidas) ---------- */
#navlinks                          { background:var(--trans-dark); border-bottom:1px solid var(--trans-borda); }
#navlinks a                        { color:var(--trans-ink-soft); font-weight:500; }
#navlinks a:hover                  { color:var(--trans-cor-clara); }
#navlinks .active a                { color:var(--trans-dark); background:var(--trans-cor); border-radius:8px; }
#copyright                         { background:var(--trans-dark); color:var(--trans-ink-soft); font-size:12.5px; }
#copyright a                       { color:var(--trans-cor-clara); }
.box                                { max-width:1200px; }

/* ---------- SEÇÃO / CABEÇALHO ---------- */
.trans-box                          { margin-bottom:40px; }
.trans-head                         { margin-bottom:28px; }
.trans-head .trans-eyebrow          { font-family:var(--trans-font-mono); font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--trans-cor); }
.trans-head h2                      { font-family:var(--trans-font-title); font-weight:600; font-size:26px; color:var(--trans-ink); margin-top:6px; }
.trans-head p                       { color:var(--trans-ink-faint); font-size:14px; max-width:460px; margin-top:6px; }

/* ---------- PILL — botão pequeno (atalhos, "ver mais", "acessar") ---------- */
.trans-pill, .trans-more            { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; padding:8px 16px; border-radius:999px; border:1px solid var(--trans-borda); color:var(--trans-ink); text-decoration:none; }
.trans-pill                         { background:var(--trans-card); }
.trans-pill:hover, .trans-row:hover .trans-more{ border-color:var(--trans-cor); color:var(--trans-cor); }
.trans-pill svg, .trans-more svg    { width:14px; height:14px; transition:transform .15s ease; }
.trans-row:hover .trans-more svg    { transform:translateX(2px); }

/* ---------- CHIP — pill alta (legislação e links externos: mesma classe) ---------- */
.trans-chip, .trans-block-links a   { display:flex; align-items:center; gap:14px; height:50px; padding:12px 20px; background:var(--trans-card); border:1px solid var(--trans-borda); border-radius:999px; color:var(--trans-ink); text-decoration:none; }
.trans-chip:hover, .trans-block-links a:hover{ border-color:var(--trans-cor); }
.trans-chip .trans-label, .trans-block-links a .trans-label{ font-size:13px; font-weight:600; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.trans-block-links                  { display:contents; }

/* ---------- ÍCONE EM CAIXA (cabeçalho de card e chip) ---------- */
.trans-icon                         { width:40px; height:40px; flex-shrink:0; border-radius:10px; background:var(--trans-icon); color:var(--trans-cor-clara); display:flex; align-items:center; justify-content:center; }
.trans-icon svg                     { width:25px; height:25px; }
.trans-icon.trans-icon-sm           { width:35px; height:35px; border-radius:8px; background:var(--trans-cor-fundo); color:var(--trans-cor-texto); }

/* ---------- GRID de chips ---------- */
.trans-grid                         { display:grid; margin-top:15px; grid-template-columns:repeat(4,1fr); gap:14px; }
.trans-grid.trans-grid-5            { grid-template-columns:repeat(5,1fr); }
@media (max-width:900px){ .trans-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .trans-grid{ grid-template-columns:1fr; } }

/* ---------- CARD — usado em Legislação, e-SIC, Ouvidoria, Serviços/Sistemas, Links Externos e cada grupo de Arquivos ---------- */
.trans-card                         { background:var(--trans-card); border:1px solid var(--trans-borda); border-radius:var(--trans-radius); box-shadow:var(--trans-shadow); overflow:hidden; }
.trans-card-head                    { display:flex; align-items:center; gap:12px; padding:20px 22px; border-bottom:1px solid var(--trans-borda); }
.trans-card-head h3                 { font-family:var(--trans-font-title); font-weight:600; font-size:20px; color:var(--trans-ink); margin:0; }
.trans-card-head .trans-pill        { margin-left:auto; }
.trans-sub                          { display:block; margin-top:3px; font-size:12.5px; color:var(--trans-ink-faint); }
.trans-card-body                    { padding:4px 22px 22px; }
.trans-cards-2                      { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.trans-cards-2 > div + div          { border-left:1px solid var(--trans-borda); padding-left:22px; }
@media (max-width:900px){ .trans-cards-2{ grid-template-columns:1fr; } .trans-cards-2 > div + div{ border-left:none; padding-left:0; } }
.trans-stack                        { display:flex; flex-direction:column; gap:50px; }

/* ---------- SUBCABEÇALHO de coluna (dentro do card Serviços e Sistemas) ---------- */
.trans-subhead                      { display:flex; align-items:center; gap:10px; margin-bottom:14px; font-family:var(--trans-font-title); font-weight:600; font-size:14px; color:var(--trans-ink); }

/* ---------- LINHA de item (serviços, sistemas, categorias de arquivo) ---------- */
.trans-row                          { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:8px 0; border-bottom:1px solid var(--trans-borda); text-decoration:none; color:inherit; }
.trans-row:last-child               { border-bottom:none; }
.trans-row strong                   { display:block; font-family:var(--trans-font-title); font-weight:500; font-size:13px; color:var(--trans-ink); margin-bottom:3px; }
.trans-row small                    { display:block; font-size:12.5px; color:var(--trans-ink-faint); }
.trans-row-actions                  { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.trans-rows-2                       { display:grid; grid-template-columns:1fr 1fr; column-gap:32px; }
.trans-rows-2 .trans-row:nth-last-child(-n+2){ border-bottom:none; }
@media (max-width:900px){
  .trans-rows-2{ grid-template-columns:1fr; }
  .trans-rows-2 .trans-row{ border-bottom:1px solid var(--trans-borda); }
  .trans-rows-2 .trans-row:last-child{ border-bottom:none; }
}

/* ---------- BADGE (contador ao lado da linha) ---------- */
.trans-badge                        { min-width:30px; padding:5px 9px; border-radius:999px; background:var(--trans-cor-fundo); color:var(--trans-cor-texto); font-family:var(--trans-font-mono); font-size:11px; text-align:center; }

/* ---------- ESTATÍSTICA — número + legenda (reaproveitado no e-SIC, Ouvidoria e "dados" por ano) ---------- */
.trans-stats                        { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:16px 22px; border-bottom:1px solid var(--trans-borda); }
.trans-stat                         { padding:12px 14px; border:1px solid var(--trans-borda); border-radius:var(--trans-radius-sm); background:var(--trans-surf); }
.trans-num                          { display:block; font-family:var(--trans-font-mono); font-size:22px; font-weight:600; color:var(--trans-ink); }
.trans-cap                          { display:block; margin-top:2px; font-size:11px; color:var(--trans-ink-faint); }
@media (max-width:700px){ .trans-stats{ grid-template-columns:repeat(2,1fr); } }

/* ---------- BLOCOS "por ano" (e-SIC / Ouvidoria) ---------- */
.trans-ouv                          { display:grid; grid-template-columns:1.15fr .85fr; gap:22px; padding:22px; }
.trans-ouv-box                      { border:1px solid var(--trans-borda); border-radius:var(--trans-radius-sm); padding:20px; background:var(--trans-surf); }
.trans-ouv-box h4                   { margin:0 0 18px; font-family:var(--trans-font-title); font-size:14px; font-weight:600; color:var(--trans-ink); }
.trans-ouv-year                     { display:grid; grid-template-columns:64px repeat(4,1fr); gap:9px; margin-bottom:10px; }
.trans-ouv-year:last-child          { margin-bottom:0; }
.trans-ouv-year strong              { display:flex; align-items:center; font-family:var(--trans-font-mono); font-size:14px; color:var(--trans-cor-texto); }
.trans-ouv-year .trans-stat         { padding:10px; }
.trans-ouv-year .trans-num          { font-size:18px; }
.trans-ouv-year .trans-cap          { white-space:nowrap; }
@media (max-width:900px){ .trans-ouv{ grid-template-columns:1fr; } }
@media (max-width:620px){ .trans-ouv-year{ grid-template-columns:repeat(2,1fr); } .trans-ouv-year strong{ grid-column:1/-1; } }

/* ---------- BARRAS (indicadores / finalidades) ---------- */
.trans-bars                         { margin-top:18px; display:flex; flex-direction:column; gap:2px; }
.trans-bar                          { display:flex; align-items:center; gap:14px; margin-bottom:16px; }
.trans-bar span:first-child         { width:150px; font-size:13px; color:var(--trans-ink-soft); flex-shrink:0; }
.trans-track                        { flex:1; height:9px; background:var(--trans-surf); border-radius:999px; overflow:hidden; }
.trans-fill                         { display:block; height:100%; width:0; border-radius:999px; background:var(--trans-cor); transition:width 1.2s cubic-bezier(.22,.9,.3,1); }
.trans-bar .trans-num               { font-size:12.5px; width:40px; text-align:right; }

/* ---------- HERO / BUSCA ---------- */
.trans-hero                         { padding:8px 0 32px; }
.trans-search-row                   { display:flex; align-items:center; gap:10px; width:100%; }
.trans-shortcuts                    { display:flex; gap:10px; align-items:center; flex-shrink:0; }
.trans-search                       { display:flex; flex:1; align-items:center; gap:10px; background:var(--trans-card); border:1.5px solid var(--trans-borda); border-radius:999px; padding:6px 6px 6px 20px; box-shadow:var(--trans-shadow); }
.trans-search svg                   { width:18px; height:18px; color:var(--trans-ink-faint); flex-shrink:0; }
.trans-search input                 { flex:1; border:none; outline:none; font:inherit; font-size:14px; background:transparent; padding:8px 0; color:var(--trans-ink); }
.trans-search input::placeholder    { color:var(--trans-ink-faint); }
.trans-search button                { background:var(--trans-dark); color:#fff; padding:10px 18px; border-radius:999px; font-weight:600; font-size:13px; border:none; cursor:pointer; }
@media (max-width:900px){ .trans-search-row{ flex-direction:column; align-items:stretch; } .trans-shortcuts{ flex-wrap:wrap; } .trans-search{ width:100%; } }
@media (max-width:520px){ .trans-pill{ padding:8px 12px; font-size:12px; } .trans-search{ padding:6px 6px 6px 14px; } }

/* ---------- TOGGLE tema/cor ---------- */
.trans-toggle                       { cursor:pointer; font-family:inherit; }
.trans-toggle svg                   { width:14px; height:14px; }
.trans-toggle .trans-moon           { display:none; }
[data-theme="light"] .trans-toggle .trans-sun { display:none; }
[data-theme="light"] .trans-toggle .trans-moon{ display:inline-block; }
.trans-dot                          { width:14px; height:14px; border-radius:50%; background:var(--trans-cor); border:1px solid var(--trans-borda); flex-shrink:0; }

/* ---------- ITENS/SEÇÕES ESCONDIDOS PELA BUSCA ---------- */
.trans-row[hidden], .trans-pill[hidden], .trans-block-links a[hidden], .trans-chip[hidden], .trans-card[hidden], .trans-box[hidden], .trans-hero[hidden]{ display:none; }

.trans-table-wrap { overflow-x: auto; }
.trans-table { width: 100%; border-collapse: collapse; }
.trans-table th, .trans-table td { padding: 10px 14px; text-align: left; border-bottom: 1px solid var(--trans-borda); }
.trans-table th { font-size: 13px; text-transform: uppercase; letter-spacing: .03em; opacity: .7; }
.trans-table-vazio { text-align: center; opacity: .6; padding: 24px; }
@media (max-width: 720px) {
    .trans-table thead { display: none; }
    .trans-table, .trans-table tbody, .trans-table tr, .trans-table td { display: block; width: 100%; }
    .trans-table tr { margin-bottom: 12px; border: 1px solid var(--trans-borda); border-radius: 8px; }
    .trans-table td { border: none; padding: 6px 14px; }
    .trans-table td::before { content: attr(data-label); display: block; font-size: 11px; opacity: .6; text-transform: uppercase; }
}