/* ==========================================================
   PUBLIC.OPEN.2B | Retrato Territorial e Verdade dos Dados
   Camada canônica de leitura pública municipal
   ========================================================== */

:root{
  --cc2-blue:#2563eb;
  --cc2-cyan:#0ea5c6;
  --cc2-green:#18a868;
  --cc2-ink:#10233a;
  --cc2-muted:#62778d;
  --cc2-line:rgba(40,91,128,.12);
  --cc2-panel:rgba(255,255,255,.88);
  --cc2-soft:#f4fafc;
}

/* A página municipal passa a compartilhar a direção clara da Home. */
.hero{
  min-height:540px;
  color:var(--cc2-ink);
  border:1px solid rgba(64,116,148,.12);
  background:
    radial-gradient(760px 360px at 10% 0%,rgba(37,99,235,.13),transparent 68%),
    radial-gradient(700px 360px at 92% 0%,rgba(24,168,104,.13),transparent 68%),
    radial-gradient(600px 340px at 62% 100%,rgba(14,165,198,.10),transparent 72%),
    linear-gradient(145deg,rgba(255,255,255,.98),rgba(242,250,252,.96));
  box-shadow:0 26px 80px rgba(36,84,117,.12);
}
.hero:before{
  opacity:.5;
  background-image:
    linear-gradient(rgba(37,99,235,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(14,165,198,.035) 1px,transparent 1px);
}
.hero .tagline{
  color:#0b6f87;
  background:rgba(255,255,255,.8);
  border-color:rgba(14,165,198,.13);
  box-shadow:0 8px 26px rgba(30,90,119,.06);
}
.hero #hero-text{color:#566f86;max-width:62ch;line-height:1.65}
.hero .btn{background:#0c2038;color:#fff;box-shadow:0 12px 30px rgba(16,35,58,.16)}
.hero .btn.secondary{
  background:rgba(255,255,255,.78);
  color:#17334b;
  border-color:rgba(49,96,126,.13);
  box-shadow:none;
}
.mapbox{
  border-color:rgba(52,104,135,.13);
  box-shadow:0 22px 58px rgba(32,84,113,.12);
}
.insight-card{
  color:var(--cc2-ink);
  background:rgba(255,255,255,.72);
  border-color:rgba(42,96,126,.11);
  box-shadow:0 12px 30px rgba(37,83,110,.06);
  backdrop-filter:blur(12px);
}
.insight-card .big{color:#154d78;font-size:clamp(1.45rem,2.3vw,2.4rem);letter-spacing:-.05em}
.insight-card span{color:#5e7489;opacity:1}
.cc-hero-evidence .insight-card[data-cc-state="unavailable"] .big{color:#8da0af}

/* Capítulos, não uma lista de módulos. */
.cc-territory-chapters{
  justify-content:center;
  gap:8px;
  padding:9px;
  border-color:rgba(40,91,128,.11);
  background:rgba(255,255,255,.9);
  box-shadow:0 15px 42px rgba(38,83,111,.09);
}
.cc-territory-chapters a{
  color:#355c75;
  background:transparent;
  transition:background .18s ease,color .18s ease,transform .18s ease;
}
.cc-territory-chapters a:hover,
.cc-territory-chapters a:focus-visible{
  color:#075e7b;
  background:rgba(14,165,198,.08);
  transform:translateY(-1px);
  outline:none;
}

.cc-section-kicker{
  display:inline-flex;
  margin-bottom:8px;
  color:#08768e;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.cc-reading-contract,
.cc-story-clean{
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);
  gap:28px;
  align-items:center;
  background:
    radial-gradient(560px 190px at 0% 0%,rgba(37,99,235,.07),transparent 70%),
    radial-gradient(540px 190px at 100% 100%,rgba(24,168,104,.07),transparent 72%),
    rgba(255,255,255,.92);
}
.cc-reading-contract h2,
.cc-story-clean h2{margin:0 0 8px;color:var(--cc2-ink);font-size:clamp(1.55rem,2.2vw,2.2rem)}
.cc-reading-contract p,
.cc-story-clean p{margin:0;color:var(--cc2-muted)}

.cc-data-legend{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
.cc-data-legend span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 11px;
  border:1px solid rgba(43,94,124,.10);
  border-radius:999px;
  background:rgba(255,255,255,.82);
  color:#4a677d;
  font-size:.76rem;
  font-weight:800;
}
.cc-data-dot{width:8px;height:8px;border-radius:50%;background:var(--cc2-blue)}
.cc-data-dot--derived{background:var(--cc2-cyan)}
.cc-data-dot--platform{background:var(--cc2-green)}

.cc-official-indicator{
  position:relative;
  min-height:180px;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
  border-color:rgba(45,99,132,.11);
  background:
    radial-gradient(180px 120px at 100% 0%,rgba(14,165,198,.08),transparent 75%),
    rgba(255,255,255,.92);
}
.cc-official-indicator::after{
  content:"";
  position:absolute;
  width:110px;
  height:110px;
  right:-55px;
  bottom:-55px;
  border-radius:50%;
  border:1px solid rgba(14,165,198,.10);
}
.cc-official-indicator[data-cc-state="unavailable"],
.cc-official-indicator[data-cc-state="partial"]{background:rgba(248,251,252,.92)}
.cc-indicator-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cc-indicator-head>span{color:#526d82;font-size:.8rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.cc-data-kind{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  color:#315f91;
  background:rgba(37,99,235,.07);
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.cc-data-kind--derived{color:#08758c;background:rgba(14,165,198,.08)}
.cc-indicator-value{font-size:clamp(1.8rem,2.5vw,2.8rem);line-height:1;font-weight:950;letter-spacing:-.06em;color:#123d64}
.cc-indicator-meta{color:#788b9b;font-size:.76rem;font-weight:750}

.cc-territory-synthesis{border-color:rgba(14,165,198,.13)}
.cc-territory-synthesis h2{margin-bottom:8px}
.cc-scope-note{
  margin-top:14px!important;
  padding:11px 13px;
  border-left:3px solid rgba(14,165,198,.38);
  border-radius:0 10px 10px 0;
  background:rgba(14,165,198,.045);
  color:#6a7f90!important;
  font-size:.84rem;
}

.cc-structure-panel{
  min-height:100%;
  border-color:rgba(46,101,132,.12);
  background:
    linear-gradient(180deg,rgba(255,255,255,.96),rgba(246,251,252,.9));
}
.cc-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:4px}
.cc-section-heading h2{margin:0;color:var(--cc2-ink);font-size:1.55rem}
.cc-section-intro{margin:8px 0 20px!important;color:#687f92!important;font-size:.9rem}
.cc-data-status{
  flex:none;
  display:inline-flex;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(14,165,198,.08);
  color:#0b7188;
  font-size:.68rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}
.cc-data-status[data-state="unavailable"]{background:rgba(100,116,139,.08);color:#64748b}
.cc-data-status[data-state="partial"]{background:rgba(14,165,198,.07);color:#557687}

.cc-sector-bars{display:grid;gap:15px;margin-top:14px}
.cc-sector-row{display:grid;gap:7px}
.cc-sector-row__head{display:flex;justify-content:space-between;gap:12px;color:#48667c;font-size:.84rem;font-weight:800}
.cc-sector-row__head strong{color:#123d64}
.cc-sector-track{height:8px;overflow:hidden;border-radius:999px;background:rgba(47,92,119,.075)}
.cc-sector-track i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--cc2-blue),var(--cc2-cyan),var(--cc2-green));
}
.cc-structure-reference{margin-top:2px;color:#7b8e9d;font-size:.72rem;font-weight:750}
.cc-data-empty{display:grid;gap:4px;padding:16px;border-radius:16px;background:rgba(100,116,139,.055);color:#617588}
.cc-data-empty b{color:#3c5b70}

.cc-method-box{
  display:grid;
  gap:6px;
  margin-top:20px;
  padding:15px 16px;
  border:1px solid rgba(44,95,126,.09);
  border-radius:16px;
  background:rgba(255,255,255,.68);
}
.cc-method-box b{color:#315b74;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.cc-method-box p{margin:0!important;color:#647b8d!important;font-size:.82rem;line-height:1.55!important}
.cc-method-box small{color:#80919f;font-size:.74rem;line-height:1.45}
.cc-method-box--wide{margin-top:18px}

.cc-human-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cc-human-grid>div,
.cc-context-indicator{
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid rgba(43,95,126,.085);
  border-radius:16px;
  background:rgba(255,255,255,.72);
}
.cc-human-grid span,
.cc-context-indicator span{color:#60788b;font-size:.76rem;font-weight:850}
.cc-human-grid strong,
.cc-context-indicator strong{color:#153f61;font-size:1.35rem;letter-spacing:-.04em}
.cc-human-grid small,
.cc-context-indicator small{color:#83929e;font-size:.67rem;line-height:1.3}
.cc-context-indicators{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.cc-context-indicator strong{font-size:1rem}

.cc-platform-kpi{
  border-color:rgba(24,168,104,.10);
  background:
    radial-gradient(160px 100px at 100% 0%,rgba(24,168,104,.07),transparent 72%),
    rgba(255,255,255,.9);
}
.cc-platform-kpi .num{color:#157c5b}
.cc-platform-kpi .label{color:#477568}

.cc-natural-count{display:flex;align-items:baseline;gap:9px;margin:14px 0 8px}
.cc-natural-count strong{color:#147653;font-size:2.8rem;line-height:1;font-weight:950;letter-spacing:-.06em}
.cc-natural-count span{max-width:18ch;color:#617a6e;font-size:.82rem;font-weight:800}

#politeia-section .politeia-card{
  background:
    radial-gradient(620px 220px at 0% 0%,rgba(37,99,235,.08),transparent 70%),
    radial-gradient(620px 220px at 100% 100%,rgba(14,165,198,.07),transparent 70%),
    rgba(255,255,255,.92);
}
#politeia-section .mini-card{grid-column:span 4}
#politeia-section .mini-card .num{color:#17668f}

.cc-source-list .item{display:grid;grid-template-columns:minmax(180px,.28fr) 1fr;gap:18px;align-items:start}
.cc-source-list .item b{margin:0;color:#244c67}
.cc-source-list .item span{color:#6b8090;line-height:1.55}

@media(max-width:1080px){
  .cc-official-indicator{grid-column:span 6}
  .cc-reading-contract,.cc-story-clean{grid-template-columns:1fr}
  .cc-data-legend{justify-content:flex-start}
}

@media(max-width:900px){
  .hero{padding:28px;min-height:auto}
  .cc-structure-panel{grid-column:span 12}
  #politeia-section .mini-card{grid-column:span 12}
  .cc-territory-chapters{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .cc-territory-chapters::-webkit-scrollbar{display:none}
  .cc-territory-chapters a{white-space:nowrap}
}

@media(max-width:680px){
  .cc-official-indicator{grid-column:span 12;min-height:150px}
  .cc-human-grid,.cc-context-indicators{grid-template-columns:1fr}
  .cc-source-list .item{grid-template-columns:1fr;gap:5px}
  .cc-section-heading{display:grid}
  .insight-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .insight-card{padding:14px}
}

@media(prefers-reduced-motion:reduce){
  .cc-territory-chapters a{transition:none}
  .cc-territory-chapters a:hover,.cc-territory-chapters a:focus-visible{transform:none}
}
