/* ============================================================
   Polis · superfície da plataforma
   Componentes de dados. tema.css define a superfície clara;
   polis.css aplica a identidade e a navegação responsiva.
   ============================================================ */

:root {
  /* Status reescalonado para a superfície escura. Não é a paleta clara
     reaproveitada: vermelho e azul claros reprovam em contraste no escuro.
     Este trio passa em separação sob daltonismo (ΔE 20,9) e visão normal
     (26,2), e todos passam de 3:1 sobre o cartão. */
  --d-crit: #e05a4a;
  --d-warn: #efc95c;
  --d-ok: #6fce9b;
  --d-info: #5b9dd9;
  --d-quente: #e05a4a;
  --d-morna: #efc95c;
  --d-fria: #5b9dd9;
  --d-parada: #a7b5c8;
  /* Rampa ordinal no escuro: mais alto é mais claro. */
  --d-ramp-1: #a4b9ff;
  --d-ramp-2: #83a5e5;
  --d-ramp-3: #5d83c7;
  --d-ramp-4: #36578a;
  --d-track: #253956;
  --glow: 0 0 0 1px rgba(36, 91, 255, .22), 0 0 28px -8px rgba(36, 91, 255, .45);
  /* Título sobre a superfície: branco no escuro; o modo claro troca. */
  --heading: #fff;
}

/* Casca ------------------------------------------------------------------- */

body { background: var(--void); color: var(--on-dark); }
.shell { background: var(--void); }
main { max-width: 1520px; padding: var(--s8) var(--s10) var(--s10); }
.sidebar { background: var(--brand-deep); border-right: 1px solid var(--hair); padding: var(--s8) var(--s5) var(--s5); }
.sidebar .nav-label { color: var(--on-dark-3); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin: var(--s8) var(--s2) var(--s3); }
.sidebar nav { gap: 2px; }
.nav-item { color: var(--on-dark-2); border-radius: var(--r-sm); padding: 11px var(--s3); font-size: var(--fs-sm); gap: var(--s3); }
.nav-item:hover:not(.active) { background: rgba(255, 255, 255, .04); color: var(--on-dark); }
.nav-item > span { font-size: 15px; width: 18px; opacity: .8; }
.nav-item.active { background: var(--slab-2); color: var(--lime); box-shadow: inset 2px 0 0 var(--lime); }
.nav-item small { background: var(--hair); color: var(--on-dark-2); }
.sidebar-note { display: none; }
.workspace { border-top: 1px solid var(--hair); color: var(--on-dark-2); margin-top: auto; }
.workspace small { color: var(--on-dark-3); }
.avatar { background: var(--slab-2); color: var(--lime); }
.version { color: var(--on-dark-3); }
.brand { color: var(--heading); }
.brand > span { font-weight: 700; letter-spacing: var(--ls-tighter); }
.brand i { font-style: normal; font-weight: 400; color: var(--lime); margin-left: 3px; }
.brand b { color: var(--on-dark-3); letter-spacing: .1em; font-size: 11px; text-transform: uppercase; font-weight: 600; }
.igov-logo { filter: drop-shadow(0 0 10px rgba(36, 91, 255, .25)); }

/* Cabeçalho da página ----------------------------------------------------- */

.page-title { margin-bottom: var(--s8); align-items: flex-end; }
.eyebrow { color: var(--on-dark-3); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin-bottom: var(--s2); }
h1 { color: var(--heading); font-size: var(--fs-display); letter-spacing: var(--ls-tighter); font-weight: 600; }
h1 span { color: var(--lime); }
.page-title p:not(.eyebrow) { color: var(--on-dark-2); font-size: var(--fs-sm); }
footer { color: var(--on-dark-3); border-top: 1px solid var(--hair); margin-top: var(--s10); padding-top: var(--s5); }

/* Superfícies genéricas --------------------------------------------------- */

.panel { background: var(--slab); border: 1px solid var(--hair); border-radius: var(--r-lg); }
.panel-heading { padding: var(--s5) var(--s6); border-bottom: 1px solid var(--hair); }
h2 { color: var(--on-dark); font-size: var(--fs-md); letter-spacing: var(--ls-tight); }
.section-number { color: var(--on-dark-3); }
.panel-intro { color: var(--on-dark-2); font-size: var(--fs-sm); padding: var(--s4) var(--s6) 0; line-height: var(--lh-body); }
.badge { background: var(--slab-2); border: 1px solid var(--hair); color: var(--on-dark-2); border-radius: var(--r-pill); padding: 4px 11px; font-size: 11px; }
.empty { color: var(--on-dark-2); padding: var(--s10) var(--s6); }
.empty strong { color: var(--on-dark); }
.empty.error { background: rgba(224, 90, 74, .08); color: var(--d-crit); }
.footnote { color: var(--on-dark-3); }
.footnote.gerada { color: var(--lime); }
.list-label { background: var(--slab-2); border-block: 1px solid var(--hair); color: var(--on-dark-3); }
.pagination { color: var(--on-dark-3); }
.notice { background: var(--slab-2); color: var(--on-dark-2); }

.filters { padding: var(--s4) var(--s6) var(--s5); gap: var(--s3); }
.filters label { color: var(--on-dark-3); font-size: 11px; font-weight: 600; letter-spacing: .04em; }
.filters input, .filters select,
.matriz-controls select, .analysis-actions select, .client-pick select {
  background: var(--slab-2); border: 1px solid var(--hair); color: var(--on-dark);
  border-radius: var(--r-sm); height: 42px;
}
.filters input::placeholder { color: var(--on-dark-3); }
.filters input:focus, .filters select:focus, .client-pick select:focus {
  outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px rgba(36, 91, 255, .12);
}

.button { border-radius: var(--r-sm); border-color: var(--hair-2); background: var(--slab-2); color: var(--on-dark); font-size: var(--fs-sm); }
.button:hover:not(:disabled) { filter: none; background: var(--hair); }
.primary { background: var(--lime); border-color: var(--lime); color: var(--lime-ink); font-weight: 700; }
.primary:hover:not(:disabled) { background: #e6f5a8; }
.secondary { background: transparent; border-color: var(--hair-2); color: var(--on-dark); }
.secondary:hover:not(:disabled) { background: var(--slab-2); border-color: var(--lime); }
.subtle { background: transparent; border-color: transparent; color: var(--on-dark-2); }
.subtle:hover:not(:disabled) { background: var(--slab-2); color: var(--on-dark); }
.button.danger { color: var(--d-crit); }
.title-button { color: var(--on-dark); }
.text-button { color: var(--lime); }
.icon-button, .save-button { background: var(--slab-2); border-color: var(--hair); color: var(--on-dark-2); }

dialog { background: var(--slab); border: 1px solid var(--hair-2); color: var(--on-dark); box-shadow: 0 30px 90px rgba(0, 0, 0, .6); }
dialog::backdrop { background: rgba(5, 12, 11, .82); backdrop-filter: blur(6px); }
dialog h2 { color: var(--heading); }
dialog h3 { color: var(--on-dark); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: var(--ls-caps); margin-top: var(--s6); }
dialog p { color: var(--on-dark-2); }
.timeline li { border-left-color: var(--hair); color: var(--on-dark-2); }
.timeline time { color: var(--on-dark-3); }
.toast { background: var(--lime); color: var(--lime-ink); font-weight: 600; border-radius: var(--r-md); }
.toast[data-tone='erro'] { background: var(--d-crit); color: #fff; }

/* Portão de acesso -------------------------------------------------------- */

body.locked { overflow: hidden; }
body.locked .sidebar, body.locked .shell { filter: blur(5px); pointer-events: none; }
.gate {
  position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: var(--s6);
  background: radial-gradient(120% 90% at 50% 0%, rgba(20, 62, 54, .9), rgba(5, 12, 11, .97));
}
.gate-card {
  background: var(--slab); border: 1px solid var(--hair-2); border-top: 3px solid var(--lime);
  border-radius: var(--r-lg); padding: var(--s10) var(--s8); width: min(430px, 100%);
  display: grid; gap: var(--s4); box-shadow: 0 30px 90px rgba(0, 0, 0, .7);
}
.gate-card .eyebrow { margin: 0; }
.gate-card h2 { font-size: var(--fs-xl); color: var(--heading); margin: 0; }
.gate-card p { color: var(--on-dark-2); font-size: var(--fs-sm); line-height: var(--lh-body); margin: 0; }
.gate-card label { display: grid; gap: 6px; font-size: var(--fs-xs); color: var(--on-dark-2); font-weight: 600; }
.gate-card input {
  height: 46px; padding: var(--s2) var(--s3); border: 1px solid var(--hair-2);
  background: var(--slab-2); border-radius: var(--r-sm); font-size: var(--fs-base); color: var(--on-dark);
}
.gate-card input:focus { outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px rgba(36, 91, 255, .14); }
.gate-error { background: rgba(224, 90, 74, .12); color: var(--d-crit); padding: var(--s2) var(--s3); border-radius: var(--r-sm); font-size: var(--fs-sm); }

/* Barra de cliente -------------------------------------------------------- */

.client-bar {
  display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap;
  padding: var(--s3) var(--s10); background: var(--brand-deep); border-bottom: 1px solid var(--hair);
}
.client-pick { display: flex; align-items: center; gap: var(--s2); font-size: 11px; color: var(--on-dark-3); text-transform: uppercase; letter-spacing: .1em; font-weight: 700; }
.client-pick select { min-width: 270px; font-size: var(--fs-sm); }
.client-bar .who { margin-left: auto; font-size: var(--fs-sm); text-align: right; line-height: 1.2; color: var(--on-dark); }
.client-bar .who small { display: block; font-size: 11px; color: var(--on-dark-3); text-transform: uppercase; letter-spacing: .08em; }

/* Tijolos ----------------------------------------------------------------- */

.tile {
  background: var(--slab); border: 1px solid var(--hair); border-radius: var(--r-md);
  padding: var(--s4) var(--s5); display: grid; gap: 3px; align-content: start; border-top: 2px solid var(--hair-2);
}
.tile-value { font-size: var(--fs-display); color: var(--on-dark); }
.tile-label { font-size: var(--fs-xs); color: var(--on-dark-2); }
.tile-hint { font-size: 11px; color: var(--on-dark-3); }
.tile.brand { border-top-color: var(--lime); }
.tile.brand .tile-value { color: var(--lime); }
.tile.hot { border-top-color: var(--d-crit); }
.tile.hot .tile-value { color: var(--d-crit); }
.tile.warn { border-top-color: var(--d-warn); }
.tile.warn .tile-value { color: var(--d-warn); }
.tile.lime { border-top-color: var(--d-ok); }
.tile.lime .tile-value { color: var(--d-ok); }

/* Painel ------------------------------------------------------------------ */

#painel-board { display: grid; gap: var(--s5); }
.board-loading { padding: var(--s10); text-align: center; color: var(--on-dark-2); font-size: var(--fs-sm); }
.pulse { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--lime); margin-right: var(--s2); animation: pulse 1.3s ease-in-out infinite; }
@keyframes pulse { 0%, 100% { opacity: .25; transform: scale(.8); } 50% { opacity: 1; transform: scale(1.35); } }

.command {
  background:
    radial-gradient(90% 130% at 88% 12%, rgba(36, 91, 255, .13), transparent 62%),
    linear-gradient(135deg, #0d2420 0%, #113029 55%, #0b1e1a 100%);
  border: 1px solid var(--hair-2); border-top: 3px solid var(--lime); border-radius: var(--r-lg);
  padding: var(--s8) var(--s10); display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr);
  gap: var(--s10); align-items: center; position: relative; overflow: hidden;
}
.command::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background-image: linear-gradient(rgba(36, 91, 255, .05) 1px, transparent 1px),
                    linear-gradient(90deg, rgba(36, 91, 255, .05) 1px, transparent 1px);
  background-size: 38px 38px;
  mask-image: radial-gradient(circle at 80% 30%, #000 0%, transparent 70%);
}
.command-main, .command-side { position: relative; z-index: 1; }
.command-eyebrow { color: var(--on-dark-3); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; margin: 0 0 var(--s2); }
.command h2 { color: var(--heading); font-size: var(--fs-xl); margin: 0 0 var(--s6); letter-spacing: var(--ls-tight); font-weight: 600; }
.command-figure { display: flex; align-items: baseline; gap: var(--s5); }
.command-figure .hero-figure { color: var(--lime); font-size: 84px; text-shadow: 0 0 42px rgba(36, 91, 255, .3); }
.command-figure span { color: var(--on-dark); font-size: var(--fs-md); max-width: 14ch; line-height: 1.2; }
.command-breakdown { list-style: none; margin: var(--s6) 0 0; padding: 0; display: grid; gap: 7px; }
.command-breakdown li { color: var(--on-dark-2); font-size: var(--fs-sm); display: flex; gap: var(--s3); align-items: baseline; }
.command-breakdown b { color: var(--lime); font-size: var(--fs-md); min-width: 26px; font-weight: 600; text-align: right; }
.command-note { color: var(--on-dark-2); font-size: var(--fs-sm); margin: 0; }

.week-strip { list-style: none; margin: var(--s3) 0 0; padding: 0; display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; }
.week-strip li { display: grid; gap: 5px; justify-items: center; padding: var(--s2) 0; border-radius: var(--r-sm); border: 1px solid transparent; }
.week-strip li.has { background: rgba(36, 91, 255, .07); border-color: rgba(36, 91, 255, .18); }
.week-strip .wd { font-size: 10px; color: var(--on-dark-3); text-transform: uppercase; letter-spacing: .08em; }
.week-strip .wn { font-size: var(--fs-sm); color: var(--on-dark-2); }
.week-strip .wbar { display: block; width: 5px; height: 42px; background: rgba(255, 255, 255, .07); border-radius: 3px; position: relative; }
.week-strip .wbar i { position: absolute; bottom: 0; left: 0; right: 0; background: var(--lime); border-radius: 3px; display: block; }
.week-strip li.has .wbar i { min-height: 6px; box-shadow: 0 0 12px rgba(36, 91, 255, .5); }
.week-strip .wc { font-size: 11px; color: var(--lime); min-height: 14px; font-weight: 700; }

.board-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(330px, 1fr)); gap: var(--s5); align-items: start; }
.board-card { background: var(--slab); border: 1px solid var(--hair); border-radius: var(--r-lg); padding: var(--s6); }
.board-card h3 { font-size: 11px; margin: 0 0 var(--s5); color: var(--on-dark-3); letter-spacing: .14em; text-transform: uppercase; font-weight: 700; }
.board-card h3.sub { margin-top: var(--s6); }
.board-card.wide { grid-column: 1 / -1; }
.card-note { font-size: 11px; color: var(--on-dark-3); margin: var(--s4) 0 0; }
.card-note.alarm { color: var(--d-crit); font-weight: 600; }

.hot-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s5); }
.hot-item { display: grid; gap: var(--s3); padding-bottom: var(--s5); border-bottom: 1px solid var(--hair); }
.hot-item:last-child { border-bottom: 0; padding-bottom: 0; }
.hot-head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s3); flex-wrap: wrap; }
.hot-head b { font-size: var(--fs-md); letter-spacing: var(--ls-tight); }
.hot-tags { display: flex; gap: 5px; flex-wrap: wrap; }
.hot-body { display: grid; grid-template-columns: minmax(210px, 330px) 1fr; gap: var(--s6); align-items: center; }
.hot-next { font-size: var(--fs-sm); color: var(--on-dark-2); margin: 0; line-height: var(--lh-body); }
.hot-next b { color: var(--on-dark); }
/* A régua compacta acompanha cada item quente: onde está, de relance. */
.hot-rail { border-top: 1px solid var(--hair); padding-top: var(--s4); }
.rail.compact .rail-dot { width: 15px; height: 15px; font-size: 9px; border-width: 1px; margin-bottom: 7px; }
.rail.compact .rail-stop::before { top: 7px; height: 1px; }
.rail.compact .rail-text { font-size: 10px; }
.rail.compact .rail-text b { font-weight: 500; }
.rail.compact .rail-stop.atual .rail-dot { box-shadow: 0 0 0 3px rgba(36, 91, 255, .18); }

.mini-sessions { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.mini-sessions li { display: flex; align-items: baseline; gap: var(--s3); padding: var(--s3) 0; border-bottom: 1px solid var(--hair); }
.mini-sessions li:last-child { border-bottom: 0; }
.mini-org { font-weight: 700; font-size: var(--fs-sm); color: var(--on-dark); min-width: 78px; }
.mini-when { font-size: var(--fs-xs); color: var(--on-dark-3); flex: 1; }
.mini-count { font-size: var(--fs-md); color: var(--lime); font-weight: 400; }

.deadline-list { list-style: none; margin: 0; padding: 0; display: grid; }
.deadline-list li { display: flex; gap: var(--s4); align-items: center; padding: var(--s3) 0; border-bottom: 1px solid var(--hair); }
.deadline-list li:last-child { border-bottom: 0; }
.dl-when { display: grid; justify-items: center; min-width: 48px; padding: 5px 0; background: var(--slab-2); border-radius: var(--r-sm); }
.dl-when b { font-size: var(--fs-md); color: var(--on-dark); font-weight: 400; }
.dl-when small { font-size: 10px; color: var(--on-dark-3); }
.deadline-list li.urgente .dl-when { background: rgba(224, 90, 74, .14); }
.deadline-list li.urgente .dl-when b { color: var(--d-crit); }
.dl-what { display: grid; gap: 2px; min-width: 0; }
.dl-what b { font-size: var(--fs-sm); font-weight: 600; }
.dl-what small { font-size: 11px; color: var(--on-dark-3); }

.quality { display: grid; grid-template-columns: repeat(auto-fit, minmax(146px, 1fr)); gap: var(--s3); }

/* Gráficos no escuro ------------------------------------------------------ */

.meter { margin: 0; display: grid; gap: 6px; }
.meter figcaption { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s2); }
.meter-label { font-size: 10px; color: var(--on-dark-3); letter-spacing: .12em; text-transform: uppercase; }
.meter-read { display: flex; align-items: baseline; gap: 5px; }
.meter-read b { font-size: var(--fs-lg); color: var(--on-dark); }
.meter-read small { font-size: 11px; color: var(--on-dark-3); }

.factor-chart { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.factor-row { display: grid; grid-template-columns: minmax(120px, 1.1fr) minmax(90px, 1fr) 44px; align-items: center; gap: var(--s3); font-size: var(--fs-xs); }
.factor-name { color: var(--on-dark-2); }
.factor-plot { position: relative; height: 14px; display: block; }
.factor-axis { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; background: var(--hair-2); }
.factor-bar { position: absolute; top: 3px; height: 8px; }
.factor-bar.pos { left: 50%; background: var(--d-crit); border-radius: 0 4px 4px 0; margin-left: 1px; }
.factor-bar.neg { right: 50%; background: var(--d-info); border-radius: 4px 0 0 4px; margin-right: 1px; }
.factor-points { text-align: right; color: var(--on-dark); }
.chart-legend { display: flex; align-items: center; gap: var(--s2); font-size: 11px; color: var(--on-dark-3); margin: var(--s4) 0 0; flex-wrap: wrap; }
.chart-legend .key { width: 10px; height: 10px; border-radius: 2px; display: inline-block; }
.key.pos { background: var(--d-crit); }
.key.neg { background: var(--d-info); }
.legend-note { margin-left: auto; font-style: italic; }
.chart-empty { font-size: var(--fs-sm); color: var(--on-dark-3); margin: 0; }

.stack { display: flex; height: 12px; border-radius: var(--r-pill); overflow: hidden; background: var(--d-track); gap: 2px; }
.stack-seg { display: block; min-width: 4px; }
.stack-legend { list-style: none; margin: var(--s4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5); font-size: var(--fs-xs); color: var(--on-dark-2); }
.stack-legend li { display: flex; align-items: center; gap: 6px; }
.stack-legend .key { width: 10px; height: 10px; border-radius: 2px; }
.stack-legend b { color: var(--on-dark); }

.mag-chart { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.mag-chart li { display: grid; grid-template-columns: minmax(100px, .9fr) 1fr 40px; gap: var(--s3); align-items: center; font-size: var(--fs-xs); }
.mag-name { color: var(--on-dark-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mag-track { background: var(--d-track); border-radius: var(--r-pill); height: 8px; }
.mag-bar { display: block; height: 8px; border-radius: var(--r-pill); }
.mag-value { text-align: right; color: var(--on-dark); }

/* Régua de tramitação · elemento de assinatura ---------------------------- */

.rail { list-style: none; margin: 0; padding: 0; display: flex; }
.rail-stop { flex: 1; position: relative; padding: 0 var(--s1); text-align: center; min-width: 0; }
.rail-stop::before { content: ''; position: absolute; top: 12px; left: -50%; right: 50%; height: 2px; background: var(--hair); z-index: 0; }
.rail-stop:first-child::before { display: none; }
.rail-stop.concluido::before, .rail-stop.atual::before, .rail-stop.interrompido::before { background: var(--d-ramp-3); }
.rail-dot {
  position: relative; z-index: 1; width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center; margin: 0 auto var(--s3);
  background: var(--slab-2); border: 2px solid var(--hair-2); color: var(--on-dark-3);
  font-size: 11px; font-weight: 700; line-height: 1;
}
.rail-stop.concluido .rail-dot { background: var(--d-ramp-3); border-color: var(--d-ramp-3); color: #08211a; }
.rail-stop.atual .rail-dot { background: var(--lime); border-color: var(--lime); color: var(--lime-ink); box-shadow: var(--glow); }
.rail-stop.interrompido .rail-dot { background: var(--d-crit); border-color: var(--d-crit); color: #2b0b07; }
.rail-text { display: block; font-size: 11px; line-height: 1.35; color: var(--on-dark-3); }
.rail-text b { display: block; font-weight: 600; }
.rail-stop.atual .rail-text b { color: var(--lime); }
.rail-stop.concluido .rail-text b { color: var(--on-dark-2); }
.rail-text time { display: block; color: var(--on-dark-3); font-size: 10px; margin-top: 2px; }

/* Fichas ------------------------------------------------------------------ */

.chip {
  display: inline-flex; align-items: center; gap: 5px; font-size: 11px;
  padding: 3px 10px; border-radius: var(--r-pill); background: var(--slab-2);
  border: 1px solid var(--hair); color: var(--on-dark-2); font-weight: 600; white-space: nowrap;
}
.chip.temp-quente, .chip.crit { background: rgba(224, 90, 74, .14); border-color: rgba(224, 90, 74, .35); color: var(--d-crit); }
.chip.temp-morna, .chip.warn { background: rgba(239, 201, 92, .13); border-color: rgba(239, 201, 92, .32); color: var(--d-warn); }
.chip.temp-fria { background: rgba(91, 157, 217, .13); border-color: rgba(91, 157, 217, .32); color: var(--d-info); }
.chip.temp-parada { background: var(--slab-2); color: var(--d-parada); }
.chip.ok { background: rgba(111, 206, 155, .13); border-color: rgba(111, 206, 155, .3); color: var(--d-ok); }
.chip.brand, .chip.lime { background: var(--lime); border-color: var(--lime); color: var(--lime-ink); }

.tag { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; background: var(--slab-2); border: 1px solid var(--hair); padding: 2px 9px; border-radius: var(--r-sm); color: var(--on-dark-2); }
.tag-vermelho { background: rgba(224, 90, 74, .12); border-color: rgba(224, 90, 74, .3); color: var(--d-crit); }
.tag-ambar { background: rgba(239, 201, 92, .12); border-color: rgba(239, 201, 92, .3); color: var(--d-warn); }
.tag-verde { background: rgba(111, 206, 155, .12); border-color: rgba(111, 206, 155, .3); color: var(--d-ok); }
.tag-azul { background: rgba(91, 157, 217, .12); border-color: rgba(91, 157, 217, .3); color: var(--d-info); }
.origin-tag { font-size: 10px; color: var(--on-dark-3); letter-spacing: .04em; }

/* Matriz ------------------------------------------------------------------ */

.matriz-row {
  display: flex; gap: var(--s6); align-items: flex-start; justify-content: space-between;
  padding: var(--s5) var(--s6); border-top: 1px solid var(--hair);
  border-left: 3px solid transparent; transition: background var(--t-fast);
}
.matriz-row:hover { background: var(--slab-2); }
.matriz-row[data-priority='vital'] { border-left-color: var(--d-ramp-1); }
.matriz-row[data-priority='alta'] { border-left-color: var(--d-ramp-2); }
.matriz-row[data-priority='media'] { border-left-color: var(--d-ramp-3); }
.matriz-row[data-priority='baixa'] { border-left-color: var(--d-ramp-4); }
.matriz-main { flex: 1; min-width: 0; }
.matriz-main h3 { margin: 0 0 6px; font-size: var(--fs-md); letter-spacing: var(--ls-tight); }
.matriz-main p { color: var(--on-dark-2); font-size: var(--fs-sm); line-height: var(--lh-body); margin: 0 0 var(--s3); }
.tag-line { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.matriz-controls { display: flex; gap: var(--s2); align-items: flex-end; flex-wrap: wrap; }
.matriz-controls label { display: grid; gap: 5px; font-size: 10px; color: var(--on-dark-3); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.matriz-controls select { height: 38px; font-size: var(--fs-sm); }

/* Pauta ------------------------------------------------------------------- */

.pauta-summary { display: flex; gap: var(--s10); flex-wrap: wrap; padding: var(--s5) var(--s6) 0; font-size: var(--fs-xs); color: var(--on-dark-3); }
.pauta-summary b { font-size: var(--fs-lg); color: var(--lime); margin-right: 6px; font-weight: 400; letter-spacing: var(--ls-tight); }
.session-card { border-top: 1px solid var(--hair); padding: var(--s5) var(--s6); }
.session-card header { display: flex; justify-content: space-between; gap: var(--s4); align-items: flex-start; }
.session-card h3 { margin: 0; font-size: var(--fs-md); letter-spacing: var(--ls-tight); color: var(--on-dark); }
.session-card header p { margin: 5px 0 0; font-size: var(--fs-xs); color: var(--on-dark-3); }
.pauta-items { list-style: none; padding: 0; margin: var(--s4) 0 0; display: grid; gap: var(--s2); }
.pauta-item {
  display: flex; gap: var(--s4); justify-content: space-between; align-items: flex-start;
  border-left: 3px solid var(--hair-2); padding: var(--s3) var(--s4); background: var(--slab-2);
  border-radius: 0 var(--r-sm) var(--r-sm) 0;
}
.pauta-item.matriz { border-left-color: var(--lime); }
.pauta-item.tema { border-left-color: var(--d-ramp-3); }
.pauta-item strong { color: var(--on-dark); }
.pauta-item p { margin: 5px 0 0; font-size: var(--fs-sm); color: var(--on-dark-2); line-height: var(--lh-body); }
.pauta-item .meta { font-size: 11px; color: var(--on-dark-3); }
.badge.in-matrix { background: var(--lime); color: var(--lime-ink); border-color: var(--lime); }

/* Alertas ----------------------------------------------------------------- */

.alert-row {
  display: flex; gap: var(--s4); justify-content: space-between; align-items: flex-start;
  padding: var(--s4) var(--s6); border-top: 1px solid var(--hair); border-left: 4px solid var(--hair-2);
}
.alert-row.sev-critico { border-left-color: var(--d-crit); background: rgba(224, 90, 74, .05); }
.alert-row.sev-relevante { border-left-color: var(--d-warn); }
.alert-row.lido { opacity: .45; }
.alert-row strong { font-size: var(--fs-base); color: var(--on-dark); }
.alert-row p { margin: 5px 0 0; font-size: var(--fs-sm); color: var(--on-dark-2); line-height: var(--lh-body); }
.alert-row .meta { font-size: 11px; color: var(--on-dark-3); }
.alert-actions { display: flex; gap: var(--s2); flex-shrink: 0; }

/* Diário Oficial ---------------------------------------------------------- */

.secao-resumo { list-style: none; margin: 0; padding: 0 var(--s6) var(--s4); display: flex; gap: var(--s3); flex-wrap: wrap; }
.secao-resumo li {
  display: grid; gap: 2px; padding: var(--s3) var(--s4); border: 1px solid var(--hair);
  border-radius: var(--r-sm); background: var(--slab-2); min-width: 128px;
}
.secao-resumo li.has { border-color: var(--hair-2); border-left: 3px solid var(--lime); }
.secao-resumo b { font-size: var(--fs-sm); color: var(--on-dark); }
.secao-resumo span { font-size: 11px; color: var(--on-dark-3); }
.secao-resumo em { font-size: var(--fs-xs); color: var(--lime); font-style: normal; }

.ato-lista, .pessoal-lista { list-style: none; margin: 0; padding: 0; }
.ato { padding: var(--s5) var(--s6); border-top: 1px solid var(--hair); }
.ato-topo { display: flex; align-items: baseline; gap: var(--s2); flex-wrap: wrap; }
.ato-topo b { font-size: var(--fs-base); color: var(--on-dark); }
.ato-orgao { font-size: 11px; color: var(--on-dark-3); margin: 5px 0 0; letter-spacing: .02em; }
.ato-resumo { font-size: var(--fs-sm); color: var(--on-dark-2); line-height: var(--lh-body); margin: var(--s2) 0 0; }
.ato-pe { display: flex; gap: var(--s2); align-items: center; flex-wrap: wrap; margin: var(--s3) 0 0; }
.ato-pe .tag small { color: var(--on-dark-3); font-size: 10px; }
.ato-pe .text-button { padding: 0; margin-left: auto; }

.movimento { display: flex; gap: var(--s4); align-items: flex-start; padding: var(--s4) var(--s6); border-top: 1px solid var(--hair); }
.mov-tipo {
  font-size: 10px; text-transform: uppercase; letter-spacing: .1em; font-weight: 700;
  padding: 3px 9px; border-radius: var(--r-pill); background: var(--slab-2); color: var(--on-dark-2); flex: none;
}
.movimento.nomeacao .mov-tipo { background: rgba(111, 206, 155, .14); color: var(--d-ok); }
.movimento.exoneracao .mov-tipo { background: rgba(224, 90, 74, .14); color: var(--d-crit); }
.movimento > div { flex: 1; min-width: 0; }
.movimento b { font-size: var(--fs-base); }
.mov-cargo { font-size: var(--fs-sm); color: var(--on-dark-2); margin: 3px 0 0; }
.mov-orgao { font-size: var(--fs-xs); color: var(--on-dark-3); margin: var(--s2) 0 0; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.mov-sugestao { font-size: 11px; color: var(--on-dark-3); margin: 5px 0 0; font-style: italic; }

/* Bolt --------------------------------------------------------------------- */

.conversa { list-style: none; margin: 0; padding: 0 var(--s6) var(--s5); display: grid; gap: var(--s4); }
.turno { padding: var(--s4); border-radius: var(--r-md); }
.turno b { font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: var(--on-dark-3); display: block; margin-bottom: 6px; }
.turno p { margin: 0 0 var(--s2); font-size: var(--fs-base); line-height: var(--lh-body); }
.turno p:last-of-type { margin-bottom: 0; }
.turno.pergunta { background: var(--slab-2); border-left: 3px solid var(--hair-2); }
.turno.resposta { background: rgba(36, 91, 255, .06); border-left: 3px solid var(--lime); }
.turno.resposta.falhou { background: rgba(224, 90, 74, .07); border-left-color: var(--d-crit); }
.turno-fontes { font-size: 11px; color: var(--on-dark-3); margin-top: var(--s3); font-style: italic; }

/* Frentes e organograma ---------------------------------------------------- */

.frente-lista { list-style: none; margin: 0; padding: 0; }
.frente {
  display: flex; gap: var(--s4); align-items: center; justify-content: space-between;
  padding: var(--s3) var(--s6); border-top: 1px solid var(--hair);
}
.frente:hover { background: var(--slab-2); }
.frente div { min-width: 0; }
.frente b { font-size: var(--fs-sm); display: block; }
.frente small { font-size: 11px; color: var(--on-dark-3); }
#frente-detalhe, #unidade-detalhe { padding: var(--s5) var(--s6); }

.cadeia { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 0 0 var(--s5); }
.cadeia i { color: var(--on-dark-3); font-style: normal; }
.arvore { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.arvore li { display: flex; gap: var(--s3); align-items: baseline; font-size: var(--fs-sm); padding: 6px 0; border-bottom: 1px solid var(--hair); }
.arvore b { color: var(--lime); min-width: 74px; }
.arvore span { color: var(--on-dark-2); flex: 1; }
.arvore small { color: var(--on-dark-3); font-size: 11px; }

.import-lista { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: 6px; }
.import-lista li { display: flex; gap: var(--s3); align-items: baseline; font-size: var(--fs-xs); border-bottom: 1px solid var(--hair); padding-bottom: 6px; }
.import-lista b { color: var(--on-dark); text-transform: capitalize; }
.import-lista span { color: var(--on-dark-2); }
.import-lista small { margin-left: auto; color: var(--on-dark-3); }
.panel-intro.sem-recuo { padding: 0 0 var(--s4); }

/* Configuração ------------------------------------------------------------ */

.config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: var(--s5); align-items: start; }
.chip-list { list-style: none; margin: 0; padding: var(--s4) var(--s6); display: grid; gap: var(--s2); }
.chip-list.inline { display: flex; flex-wrap: wrap; }
.chip-list .muted { color: var(--on-dark-3); font-size: var(--fs-sm); }
.theme-chip {
  display: flex; align-items: center; gap: var(--s3); padding: var(--s3) var(--s4);
  border: 1px solid var(--hair); border-radius: var(--r-sm); background: var(--slab-2);
  border-left: 3px solid var(--d-ramp-3);
}
.theme-chip div { flex: 1; min-width: 0; }
.theme-chip strong { color: var(--on-dark); }
.theme-chip small { display: block; color: var(--on-dark-3); font-size: 11px; margin-top: 2px; }
.theme-chip.peso-vital { border-left-color: var(--d-ramp-1); }
.theme-chip.peso-alto { border-left-color: var(--d-ramp-2); }
.theme-chip.peso-baixo { border-left-color: var(--d-ramp-4); }
.filters.stacked { flex-direction: column; align-items: stretch; }
.filters.stacked label { flex: none !important; }

/* Dossiê ------------------------------------------------------------------ */

#dossier-dialog { width: min(960px, 94vw); border-radius: var(--r-lg); }
.dossier-sub { font-size: var(--fs-xs); color: var(--on-dark-3); margin: 0 0 var(--s3); }
.dossier-sub a { color: var(--lime); }
.dossier-chips { display: flex; gap: var(--s2); flex-wrap: wrap; margin: var(--s4) 0; }
.dossier-rail { background: var(--slab-2); border: 1px solid var(--hair); border-radius: var(--r-md); padding: var(--s6) var(--s4) var(--s4); margin: var(--s5) 0; }
.dossier-split { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s6); margin-top: var(--s4); }
/* Régua: um ponto por etapa, ligados por filete; a data fica à direita. */
#dossier-dialog .ladder { list-style: none; padding: 0; margin: var(--s3) 0 var(--s5); }
#dossier-dialog .stage { position: relative; display: flex; align-items: center; gap: var(--s3); padding: 5px 0; font-size: var(--fs-sm); color: var(--on-dark-3); }
#dossier-dialog .stage:not(:last-child)::after { content: ''; position: absolute; left: 5px; top: calc(50% + 7px); height: calc(100% - 14px); width: 2px; background: var(--hair-2); }
#dossier-dialog .stage .dot { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--hair-2); flex: none; }
#dossier-dialog .stage.concluido { color: var(--on-dark-2); }
#dossier-dialog .stage.concluido .dot { background: var(--d-ok); border-color: var(--d-ok); }
#dossier-dialog .stage.atual { color: var(--on-dark); font-weight: 700; }
#dossier-dialog .stage.atual .dot { background: var(--lime); border-color: var(--lime); box-shadow: 0 0 0 4px rgba(36, 91, 255, .2); }
#dossier-dialog .stage.interrompido { color: var(--d-crit); font-weight: 700; }
#dossier-dialog .stage.interrompido .dot { background: var(--d-crit); border-color: var(--d-crit); }
#dossier-dialog .stage time { margin-left: auto; font-size: var(--fs-xs); font-weight: 400; color: var(--on-dark-3); }
.facts { margin: 0; font-size: var(--fs-sm); }
.facts > div { display: flex; gap: var(--s3); padding: 7px 0; border-bottom: 1px solid var(--hair); }
.facts dt { color: var(--on-dark-3); min-width: 128px; }
.facts dd { margin: 0; flex: 1; color: var(--on-dark); }
.next { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--s3); }
.next li { font-size: var(--fs-sm); border-left: 2px solid var(--lime); padding-left: var(--s3); }
.next strong { display: block; color: var(--on-dark); }
.next span { color: var(--on-dark-3); font-size: var(--fs-xs); }
.factors { list-style: none; padding: 0; margin: 0; font-size: var(--fs-xs); color: var(--on-dark-3); }
.factors li { padding: 3px 0; }
.factors b { display: inline-block; min-width: 32px; color: var(--on-dark); }
.analysis-editor textarea {
  width: 100%; border: 1px solid var(--hair-2); border-radius: var(--r-sm); padding: var(--s3);
  font: inherit; font-size: var(--fs-base); background: var(--slab-2); color: var(--on-dark);
  resize: vertical; line-height: var(--lh-body);
}
.analysis-editor textarea:focus { outline: none; border-color: var(--lime); box-shadow: 0 0 0 3px rgba(36, 91, 255, .12); }
.analysis-actions { display: flex; gap: var(--s3); align-items: flex-end; flex-wrap: wrap; margin-top: var(--s3); }
.analysis-actions label { display: grid; gap: 5px; font-size: 10px; color: var(--on-dark-3); font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }

/* Responsivo -------------------------------------------------------------- */

@media (max-width: 1240px) {
  main { padding: var(--s6); }
  .command { grid-template-columns: 1fr; gap: var(--s6); padding: var(--s6); }
  .dossier-split { grid-template-columns: 1fr; gap: var(--s4); }
}
@media (max-width: 1100px) {
  .rail { flex-wrap: wrap; gap: var(--s4) 0; }
  .rail-stop { flex: 0 0 33.33%; }
  .rail-stop::before { display: none; }
  .hot-body { grid-template-columns: 1fr; gap: var(--s3); }
}
@media (max-width: 1000px) {
  .client-bar { padding: var(--s3) var(--s6); }
  .matriz-row { flex-direction: column; gap: var(--s3); }
  .matriz-controls { width: 100%; }
}
@media (max-width: 700px) {
  main { padding: var(--s4); }
  .client-bar { padding: var(--s3) var(--s4); }
  .client-pick { width: 100%; }
  .client-pick select { flex: 1; min-width: 0; }
  .client-bar .who { margin-left: 0; text-align: left; }
  .pauta-item, .alert-row { flex-direction: column; }
  .pauta-summary { gap: var(--s4); padding-inline: var(--s4); }
  .matriz-row, .session-card, .alert-row { padding-inline: var(--s4); }
  .rail-stop { flex: 0 0 50%; }
  .factor-row { grid-template-columns: 1fr 70px 40px; }
  .command-figure .hero-figure { font-size: 58px; }
}

/* Dossiê do parlamentar ---------------------------------------------------- */

.dossie-parlamentar { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--s5); margin: var(--s5) 0; }
.dossie-parlamentar .arvore li { display: block; }
.dossie-parlamentar .arvore span { font-size: var(--fs-xs); }
.analysis-profile { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--s5); flex-wrap: wrap; }
.analysis-profile h2 { font-size: var(--fs-xl); color: var(--heading); margin: 4px 0; }
.analysis-profile p { color: var(--on-dark-2); margin: 0; }
.record-actions { display: flex; gap: var(--s2); }
/* Profile components follow the current workspace palette. */
.profile-hero,.production-counts article{background:var(--slab);border-color:var(--hair)}
.profile-hero{border-top-color:var(--lime)}
.profile-office,.profile-navigation a,.production-counts span,.production-counts strong small,.position-labels,.position-theme>small,.profile-body>p{color:var(--on-dark-2)}
.profile-chips span{background:var(--slab-2);color:var(--lime)}
.profile-navigation,.position-theme{border-color:var(--hair)}
.profile-navigation a:hover{color:var(--lime)}
#analysis-production>h3,.production-method{color:var(--on-dark-2)}
.production-method[open]{background:var(--slab);border-color:var(--hair)}
#analysis-result .analysis-summary{background:var(--slab-2);border-color:var(--hair)}
#analysis-result .analysis-summary p,#analysis-help,.profile-method p{color:var(--on-dark-2)}
.position-scale{background:linear-gradient(90deg,#e47880,#e7e9df,#6c9fd8)}
.position-scale.unavailable{opacity:.4}
.position-scale circle{fill:var(--lime);stroke:var(--slab)}
.production-counts strong,.profile-identity h1{color:var(--on-dark)}
.sidebar .nav-label,.brand b,.eyebrow{letter-spacing:0;text-transform:none}
/* Separate client work from public-source exploration. */
body:not(.client-workspace) #client-bar{display:none}
.sidebar{scrollbar-width:none}
.sidebar::-webkit-scrollbar{display:none}
.sidebar .nav-label{margin-top:20px;margin-bottom:9px}
.sidebar .nav-item{padding-block:9px}
/* The geographic canvas keeps a light palette with readable labels. */
.atlas{color:#20352f}
.atlas h1,.atlas h2,.atlas h3,.atlas-number,.atlas-breakdown{color:#20352f}
.atlas-title h1{font-size:20px}
.atlas-panel-heading h2{font-size:25px}
.atlas-aside{color:#20352f;scrollbar-color:#bacac1 #f6f8f5}
.atlas .atlas-representatives,.atlas .atlas-municipal-search h3{color:#294b3c}
.atlas .atlas-representatives .text-button{color:#245542}
.atlas .atlas-field select{color:#264437;background:#f6f8f7;border-color:#dfe6e2}
.atlas .atlas-city-note,.atlas .atlas-coverage{color:#607569}
/* Continuous canvas: short pages must not reveal the light root background. */
html{min-height:100%;background:var(--void);color-scheme:dark}
body,.shell{min-height:100dvh;background:var(--void)}
body.map-open .shell{min-height:0}
.source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:18px;align-items:stretch}
.source-card{display:flex;flex-direction:column;min-width:0;padding:24px;background:var(--slab);color:var(--on-dark);border:1px solid var(--hair);border-radius:12px}
.source-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.source-card h3{font-size:20px;line-height:1.2;margin:4px 0 12px;color:var(--on-dark)}
.source-card p{font-size:14px;line-height:1.65;color:var(--on-dark-2)}
.source-card .eyebrow{font-size:11px;margin:0;color:var(--on-dark-3)}
.source-card .badge{font-size:11px;max-width:145px;white-space:normal;line-height:1.4}
.source-card .source-meta{padding:14px 0;border-top:1px solid var(--hair);font-size:12px}
.source-card .source-actions{margin-top:auto;gap:14px;flex-wrap:wrap;padding-top:12px}
.source-card .source-actions a{font-size:12px;color:var(--on-dark-2)}
.catalog-intro{margin-bottom:22px}.catalog-intro h2{font-size:24px;margin:0 0 8px}.catalog-intro p{font-size:14px;color:var(--on-dark-2);max-width:760px}
.context-card,.vote-metrics article,.stats article,.institutional-note,.source-note,.analysis-summary,.notice,.list-label,th{background:var(--slab-2);color:var(--on-dark);border-color:var(--hair)}
/* Map chrome follows the same palette as the rest of the app. */
.atlas,.atlas-toolbar,.atlas-aside,.atlas-status{background:var(--slab);color:var(--on-dark);border-color:var(--hair)}
.atlas{box-shadow:none}
.atlas-stage{background-color:#132823;background-image:radial-gradient(#34524866 .7px,transparent .7px)}
.atlas h1,.atlas h2,.atlas h3,.atlas-number,.atlas-breakdown,.atlas .atlas-representatives,.atlas .atlas-municipal-search h3{color:var(--on-dark)}
.atlas-title small,.atlas-field>span,.atlas-panel-heading>p,.atlas-number>span,.atlas .atlas-city-note,.atlas .atlas-coverage,.atlas-status,.atlas-credit{color:var(--on-dark-2)}
.atlas .atlas-field select,.atlas-icon,.atlas-breadcrumb,.atlas-controls button,.atlas-legend,.atlas-mobile-details,.atlas-municipal-search input,.atlas-city-list button{background:var(--slab-2);color:var(--on-dark);border-color:var(--hair-2)}
.atlas-breadcrumb button,.atlas-legend>strong,.atlas-legend strong small,.atlas-ramp-labels,.atlas-unknown-key,.atlas-city-list button>span{color:var(--on-dark-2)}
.atlas-aside,.atlas-controls,.atlas-legend,.atlas-breadcrumb,.atlas-representatives,.atlas-municipal-search{border-color:var(--hair-2)}
.atlas-city-list button:hover,.atlas-city-list button[aria-current]{background:var(--hair);color:var(--lime)}
.atlas-hint:empty{display:none}.atlas-hint{color:var(--on-dark-2);text-shadow:none}
.atlas-state.context{opacity:.2}.atlas-municipality{fill:#294b3f;stroke:#628574}.atlas-municipality:hover,.atlas-municipality.selected{fill:#789b64}
.atlas #brazil-map text[data-city]{fill:#f6f7f5}
.gate-switch{display:flex;gap:6px;margin:18px 0;padding:4px;background:var(--void);border-radius:9px}.gate-switch button{flex:1;border:0;border-radius:6px;padding:10px;background:transparent;color:var(--on-dark-2);font-size:14px}.gate-switch button[aria-pressed=true]{background:var(--slab-2);color:var(--lime)}.gate-account-help{font-size:13px;line-height:1.5;color:var(--on-dark-2)}

/* Equipe e acessos ---------------------------------------------------------- */

.acessos { display: grid; gap: var(--s5); }
.acessos .filters { padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); align-items: end; }
.acessos .filters label { display: grid; gap: 6px; }
.acessos .filters input, .acessos .filters select { padding: 0 var(--s3); width: 100%; }
.convite-gerado { border-color: var(--lime); }
.convite-link { display: flex; gap: var(--s2); align-items: center; }
.convite-link input {
  flex: 1; min-width: 0; height: 42px; padding: 0 var(--s3); background: var(--slab-2);
  border: 1px solid var(--hair); border-radius: var(--r-sm); color: var(--on-dark);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: var(--fs-xs);
}
.gate-card input[readonly] { color: var(--on-dark-2); }
@media (max-width: 640px) { .convite-link { flex-direction: column; align-items: stretch; } }

/* Base eleitoral e financiamento no dossiê do parlamentar ------------------- */

.perfil-voto { margin: 0 0 var(--s3); color: var(--on-dark-2); font-size: var(--fs-sm); line-height: var(--lh-body); }
.perfil-voto b { color: var(--heading); margin-right: 6px; }
.board-loading.importando { margin: var(--s3) 0; }
.bancada-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: var(--s4); margin-top: var(--s3); }
.bancada-municipio h4 { margin: 0 0 var(--s2); color: var(--heading); font-size: var(--fs-md); }
.bancada-municipio h4 small { color: var(--on-dark-3); font-size: var(--fs-xs); font-weight: 400; margin-left: 4px; }
.bancada-municipio ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bancada-municipio li { display: grid; grid-template-columns: 1fr auto; gap: 0 var(--s2); padding: 6px 0; border-top: 1px solid var(--hair); font-size: var(--fs-sm); color: var(--on-dark); }
.bancada-municipio li span small { display: block; color: var(--on-dark-3); font-size: var(--fs-xs); }
.bancada-municipio li b { color: var(--lime); font-variant-numeric: tabular-nums; align-self: center; }
.bancada-municipio li > small { grid-column: 2; color: var(--on-dark-3); font-size: var(--fs-xs); text-align: right; }

/* Agências reguladoras -------------------------------------------------------- */

.participacoes-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: var(--s4); margin-top: var(--s4); }
.participacao header { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin-bottom: var(--s2); }
.participacao-tipo { color: var(--on-dark-2); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .06em; }
/* O assunto é o título do cartão; o número do ato fica de referência, pequeno. */
.board-card.participacao h3 { margin: 0 0 var(--s2); font-size: var(--fs-md); color: var(--heading); text-transform: none; letter-spacing: 0; font-weight: 600; line-height: 1.35; }
.participacao .participacao-ato { margin: 0 0 var(--s3); color: var(--on-dark-3); font-size: var(--fs-xs); letter-spacing: .02em; }
.participacao footer { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); flex-wrap: wrap; border-top: 1px solid var(--hair); padding-top: var(--s2); }
.participacao footer small { color: var(--on-dark-3); font-size: var(--fs-xs); }
.participacoes-painel span small { display: block; margin-top: 2px; }
.participacoes-painel li > small { max-width: 38%; text-align: right; }
@media (max-width: 640px) { .participacoes-lista { grid-template-columns: 1fr; } }

/* Assembleias estaduais --------------------------------------------------------- */

.proposicao-acoes { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.proposicao-acoes .text-button { padding: 0; }
.proposicao-acoes .text-button[disabled] { color: var(--on-dark-3); cursor: default; }
.assembleias-contagem { margin: var(--s4) 0 0; }
.assembleias-filtros { flex-wrap: wrap; }
.assembleias-filtros label { min-width: 135px; flex: 1; }
.assembleias-filtros label:first-child { flex: 2; min-width: 240px; }
.assembleias-cobertura { margin: 0 var(--s6) var(--s5); border-top: 1px solid var(--hair); padding-top: var(--s4); }
.assembleias-cobertura summary { cursor: pointer; color: var(--heading); font-size: var(--fs-sm); }
.assembleias-fontes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--s3); padding: 0; list-style: none; }
.assembleias-fontes li { display: grid; align-content: start; gap: var(--s2); padding: var(--s4); border: 1px solid var(--hair); border-radius: var(--r-sm); }
.assembleias-fontes strong { color: var(--heading); }
.assembleias-fontes small { color: var(--on-dark-3); }
.assembleias-fontes [data-cobertura="disponivel"] > span { color: var(--d-ok); }
.assembleias-fontes [data-cobertura="erro"] > span { color: var(--d-crit); }
.assembleias-fontes [data-cobertura="pendente"] > span { color: var(--d-warn); }
.assembleias-fontes .text-button { padding: 0; text-align: left; white-space: normal; }
.assembleias-aviso { margin: var(--s4) var(--s6); color: var(--d-warn); }
@media (max-width: 640px) {
  .assembleias-filtros { display: grid; grid-template-columns: minmax(0, 1fr); }
  .assembleias-filtros label, .assembleias-filtros label:first-child { min-width: 0; width: 100%; }
}

/* Emendas em aberto ------------------------------------------------------------- */

.em-atalhos { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s2); margin: 0 var(--s6) var(--s5); color: var(--on-dark-3); font-size: var(--fs-xs); }
.em-atalho { cursor: pointer; }
.em-corpo { display: grid; gap: var(--s4); margin-top: var(--s4); }
.em-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--s4); }
.em-kpis > div { background: var(--slab); border: 1px solid var(--hair); border-radius: var(--r-lg); padding: var(--s4) var(--s5); }
.em-kpis b { display: block; color: var(--heading); font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.em-kpis span { color: var(--on-dark-2); font-size: var(--fs-xs); }
.em-cols { display: grid; grid-template-columns: 3fr 2fr; gap: var(--s4); align-items: start; }
.em-tabela { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); color: var(--on-dark); }
.em-tabela th { text-align: left; color: var(--on-dark-3); font-size: var(--fs-xs); font-weight: 500; padding: 6px 8px; border-bottom: 1px solid var(--hair-2); }
.em-tabela td { padding: 7px 8px; border-top: 1px solid var(--hair); vertical-align: top; font-variant-numeric: tabular-nums; }
.em-tabela td small { display: block; color: var(--on-dark-3); font-size: var(--fs-xs); margin-top: 2px; }
.em-tabela td b { color: var(--heading); }
.em-clicavel, .em-emenda { cursor: pointer; }
.em-clicavel:hover td, .em-emenda:hover td { background: var(--slab-2); }
.em-bar { display: block; margin-top: 4px; width: 100%; max-width: 120px; height: 8px; }
.em-bar-fundo { fill: var(--slab-2); }
.em-bar-aberto { fill: var(--d-warn); }
.em-bar-pago { fill: var(--d-ok); }
.em-situacoes { display: flex; flex-wrap: wrap; gap: var(--s2); margin: 0; }
.em-todas { display: flex; align-items: center; gap: var(--s2); color: var(--on-dark-2); font-size: var(--fs-xs); }
.em-lista td:first-child { min-width: 190px; max-width: 260px; }
.em-lista .chip { white-space: normal; }
.em-lista td:nth-child(4) { min-width: 180px; overflow-wrap: anywhere; }
.em-rolagem { overflow-x: auto; }
.em-rolagem .em-lista { min-width: 780px; }
.em-lista td:nth-child(2) { min-width: 118px; }
.em-lista td:nth-child(6) { white-space: nowrap; }
.em-detalhe > td { background: var(--slab-2); }
.em-det { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s4); padding: var(--s2) 0; }
.em-det h4 { margin: 0 0 var(--s2); color: var(--heading); font-size: var(--fs-sm); }
.em-det ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.em-det li { display: grid; grid-template-columns: 1fr auto; gap: 0 var(--s2); }
.em-det li small { grid-column: 1; }
.em-det li span { grid-column: 2; grid-row: 1; text-align: right; color: var(--on-dark-2); font-size: var(--fs-xs); }
@media (max-width: 900px) { .em-cols { grid-template-columns: 1fr; } }
.em-titulo { margin: 0; color: var(--heading); font-size: var(--fs-lg, 1.25rem); }
.em-titulo small { color: var(--on-dark-3); font-size: var(--fs-sm); font-weight: 400; margin-left: 6px; }
/* Municípios · leitura fiscal ------------------------------------------------ */
/* A ficha abre pela conclusão: manchete em cor de severidade, nota da CAPAG ao
   lado, e só depois os blocos de evidência. Tudo nos tokens do tema, para valer
   no escuro e no claro. */
#municipios-fichas, #entes-avulsos { display: grid; gap: var(--s6); margin-top: var(--s6); }
.ente { background: var(--slab); border: 1px solid var(--hair); border-radius: var(--r-lg); padding: var(--s6); display: grid; gap: var(--s5); }
.ente-cabeca { display: flex; justify-content: space-between; gap: var(--s6); align-items: flex-start; }
.ente-cabeca h2 { color: var(--heading); font-size: var(--fs-xl); margin: 0 0 var(--s3); font-weight: 600; letter-spacing: var(--ls-tight); }
.ente-cabeca .eyebrow { margin: 0 0 var(--s2); }
.ente-manchete { font-size: var(--fs-md); line-height: 1.35; margin: 0; max-width: 70ch; color: var(--on-dark); font-weight: 600; }
.ente-manchete.sev-critico, .ente-manchete.sev-alto { color: var(--d-crit); }
.ente-manchete.sev-atencao { color: var(--d-warn); }
.ente-nota { min-width: 92px; text-align: center; border: 1px solid var(--hair); border-radius: var(--r-md); padding: var(--s3) var(--s4); background: var(--slab-2); }
.ente-nota b { display: block; font-size: 40px; line-height: 1; font-weight: 600; letter-spacing: var(--ls-tight); }
.ente-nota small { color: var(--on-dark-3); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.ente-nota.ok b { color: var(--d-ok); }
.ente-nota.warn b { color: var(--d-warn); }
.ente-nota.crit b { color: var(--d-crit); }
.ente-conclusoes { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s2); }
.ente-conclusoes li { display: flex; gap: var(--s3); align-items: baseline; font-size: var(--fs-sm); color: var(--on-dark); padding: 6px 0; border-bottom: 1px solid var(--hair); }
.ente-conclusoes li:last-child { border-bottom: 0; }
.ente-conclusoes li small { display: block; color: var(--on-dark-3); font-size: 11px; margin-top: 2px; }
.ente-conclusoes .chip { flex: none; min-width: 72px; text-align: center; }
.ente-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--s4); align-items: start; }
@media (min-width: 1100px) { .ente-grade { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ente-bloco.capag { grid-column: span 2; } }
.ente-bloco { border: 1px solid var(--hair); border-radius: var(--r-md); padding: var(--s5); background: var(--slab-2); min-width: 0; }
.ente-bloco h4 { font-size: 11px; margin: 0 0 var(--s4); color: var(--on-dark-3); letter-spacing: .12em; text-transform: uppercase; font-weight: 700; }
.ente-numero { display: flex; gap: var(--s3); align-items: baseline; flex-wrap: wrap; margin: 0 0 var(--s3); }
.ente-numero b { font-size: var(--fs-xl); color: var(--on-dark); font-weight: 600; }
.ente-numero span { color: var(--on-dark-2); font-size: var(--fs-sm); }
.regua, .serie { width: 100%; height: auto; display: block; margin: var(--s2) 0; overflow: visible; }
.regua-rotulo { fill: var(--on-dark-3); font-size: 9px; }
.capag-tabela { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.capag-tabela th, .capag-tabela td { text-align: left; padding: 6px 4px; border-bottom: 1px solid var(--hair); color: var(--on-dark); background: none; font-weight: 400; }
.capag-tabela thead th { color: var(--on-dark-3); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.capag-tabela tbody th { color: var(--on-dark-2); }
.capag-tabela td { white-space: nowrap; }
.capag-tabela td b { margin-left: 4px; }
.capag-tabela .capag-final th, .capag-tabela .capag-final td { border-bottom: 0; font-weight: 600; }
.capag-insumos td { padding-top: 0; }
.capag-insumos details summary { color: var(--lime); cursor: pointer; font-size: 11px; }
.capag-insumos details p { color: var(--on-dark-2); font-size: var(--fs-xs); margin: var(--s2) 0; }
.capag-insumos ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.capag-insumos li { display: flex; justify-content: space-between; gap: var(--s3); font-size: var(--fs-xs); color: var(--on-dark-2); }
.alarme, .arvore b.alarme { color: var(--d-crit); }
.ente-bloco .facts > div { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: var(--s3); }
.ente-bloco .facts dt { min-width: 0; }
.ente-bloco .facts small { color: var(--on-dark-3); }
.fonte-link { color: var(--lime); }
.ente-bloco.fornecedores { grid-column: 1 / -1; }
.ente-bloco.fornecedores .ente-manchete { font-size: var(--fs-sm); }
.fornecedores-tabela th small, .fornecedores-tabela td small { display: block; color: var(--on-dark-3); font-size: 11px; white-space: normal; }
.fornecedores-tabela td { white-space: normal; vertical-align: top; }
.fornecedores-tabela th { vertical-align: top; }
.fornecedores-tabela .fonte-link { display: block; font-size: 11px; margin-top: 4px; }
.fornecedores-tabela .chip { white-space: normal; }
.programa header { display: flex; gap: var(--s3); align-items: center; flex-wrap: wrap; margin-bottom: var(--s3); }
.programa-orgao { color: var(--on-dark-3); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.programa h3 { text-transform: none; letter-spacing: 0; font-size: var(--fs-md); color: var(--on-dark); font-weight: 600; margin: 0 0 var(--s3); }
.programa-janelas { list-style: none; margin: 0 0 var(--s2); padding: 0; display: grid; gap: 6px; }
.programa-janelas li { display: flex; gap: var(--s3); align-items: center; font-size: var(--fs-sm); color: var(--on-dark-2); flex-wrap: wrap; }
.programa-descricao { color: var(--on-dark-3); font-size: var(--fs-xs); margin: var(--s3) 0 0; }
.programa footer { display: flex; justify-content: space-between; gap: var(--s3); align-items: baseline; margin-top: var(--s4); flex-wrap: wrap; }
.programa footer small { color: var(--on-dark-3); font-size: 11px; }
.desfechos .desfecho-topo { display: flex; justify-content: space-between; gap: var(--s4); align-items: baseline; flex-wrap: wrap; }
.desfechos .arvore li { align-items: center; }
.desfechos .arvore small { display: block; margin-top: 2px; }
.desfechos .arvore .desfecho-barra { flex: 0 0 180px; }
.desfecho-barra i { display: block; height: 100%; }
.d-ok { background: var(--d-ok); }
.d-crit { background: var(--d-crit); }
.d-warn { background: var(--d-warn); }
.d-neutro { background: var(--on-dark-3); }
.legenda-desfecho i { display: inline-block; width: 9px; height: 9px; border-radius: 2px; margin: 0 4px 0 10px; vertical-align: middle; }
.desfechos .arvore .desfecho-acoes { display: flex; gap: var(--s2); flex: 0 0 auto; flex-wrap: wrap; }
.desfecho-acoes .button { padding: 4px 10px; font-size: 11px; }
@media (max-width: 700px) { .desfechos .arvore li { flex-wrap: wrap; } .desfechos .arvore .desfecho-barra { flex: 1 1 100%; } }
.ente-bloco details > summary { font-size: 11px; color: var(--lime); cursor: pointer; }
.ente-bloco details > p { color: var(--on-dark-2); font-size: var(--fs-xs); line-height: var(--lh-body); }
@media (max-width: 700px) {
  .fornecedores-tabela thead { display: none; }
  .fornecedores-tabela tr { display: grid; gap: 4px; padding: var(--s3) 0; border-bottom: 1px solid var(--hair); }
  .fornecedores-tabela th, .fornecedores-tabela td { display: block; border-bottom: 0; padding: 0; }
}
.ente-fontes { border-top: 1px solid var(--hair); padding-top: var(--s4); font-size: var(--fs-xs); color: var(--on-dark-2); }
.ente-fontes summary { cursor: pointer; color: var(--on-dark-3); }
.ente-fontes ul { margin: var(--s3) 0; padding-left: var(--s5); display: grid; gap: 4px; }
.ente-fontes a { color: var(--lime); }
.ente-fontes small { color: var(--on-dark-3); }
.entes-lista { padding: 0 var(--s6) var(--s5); }
.fiscal-painel .arvore b { min-width: 42px; }
.nota-mini.ok { color: var(--d-ok); }
.nota-mini.warn { color: var(--d-warn); }
.nota-mini.crit { color: var(--d-crit); }
.fiscal-manchete { display: block; }
.fiscal-manchete.sev-critico, .fiscal-manchete.sev-alto { color: var(--d-crit); }
.fiscal-manchete.sev-atencao { color: var(--d-warn); }
@media (max-width: 700px) {
  .ente-cabeca { flex-direction: column; }
  .ente { padding: var(--s4); }
  .capag-tabela { font-size: var(--fs-xs); }
}
