/* Garante que o atributo HTML hidden prevaleça sobre os displays
   definidos pelos componentes desta seção. */
.index-insights-loading[hidden],
.index-insights-content[hidden],
.index-insights-error[hidden],
.index-insights-updated[hidden]{
  display:none !important;
}

.index-insights-section{
  background:#f6f8fb;
  border-top:1px solid #e6ebf1;
}
.index-insights-heading{
  align-items:flex-end;
}
.index-insights-updated{
  color:#64748b;
  font-size:.78rem;
  white-space:nowrap;
}
.index-insights-intro{
  max-width:780px;
  margin-top:-.35rem;
}
.index-insights-loading{
  min-height:180px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.75rem;
  color:#64748b;
  border:1px dashed #cbd5e1;
  border-radius:18px;
  background:#fff;
}
.index-insights-spinner{
  width:20px;
  height:20px;
  border-radius:50%;
  border:2px solid #dbe3ec;
  border-top-color:#0d5cab;
  animation:emp-index-spin .8s linear infinite;
}
@keyframes emp-index-spin{
  to{transform:rotate(360deg)}
}
.index-insights-content{
  display:grid;
  gap:22px;
}
.index-chart-grid,
.index-ranking-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:22px;
}
.index-panel{
  min-width:0;
  background:#fff;
  border:1px solid #e3e9ef;
  border-radius:18px;
  padding:22px;
  box-shadow:0 8px 28px rgba(15,23,42,.045);
}
.index-panel-heading{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}
.index-panel-heading h3{
  margin:3px 0 0;
  font-size:1.12rem;
  line-height:1.25;
  color:#18283a;
}
.index-panel-kicker{
  display:block;
  font-size:.72rem;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.07em;
  text-transform:uppercase;
  color:#0d5cab;
}
.index-bars{
  display:grid;
  gap:14px;
}
.index-bar-item{
  display:grid;
  gap:5px;
}
.index-bar-label-row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}
.index-bar-name{
  min-width:0;
  color:#26384a;
  font-size:.9rem;
  font-weight:700;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.index-bar-number{
  color:#14243a;
  font-size:.9rem;
  font-variant-numeric:tabular-nums;
}
.index-bar-track{
  height:10px;
  overflow:hidden;
  border-radius:999px;
  background:#edf2f7;
}
.index-bar-fill{
  display:block;
  width:var(--bar-width,0%);
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#0d5cab,#2992d0);
  transform-origin:left center;
  animation:emp-index-bar .55s ease both;
}
@keyframes emp-index-bar{
  from{transform:scaleX(.05);opacity:.35}
  to{transform:scaleX(1);opacity:1}
}
.index-bar-share{
  color:#7a8796;
  font-size:.7rem;
}
.index-bars-states{
  max-height:535px;
  overflow:auto;
  padding-right:3px;
}
.index-ranking{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
}
.index-ranking-item{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) auto;
  align-items:center;
  gap:11px;
  padding:12px 0;
  border-top:1px solid #edf1f5;
}
.index-ranking-item:first-child{
  padding-top:2px;
  border-top:0;
}
.index-ranking-position{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border-radius:50%;
  background:#eef5fb;
  color:#0d5cab;
  font-weight:800;
  font-size:.78rem;
}
.index-ranking-main{
  min-width:0;
  color:inherit;
  text-decoration:none;
}
.index-ranking-main:hover .index-ranking-name{
  color:#0d5cab;
  text-decoration:underline;
  text-underline-offset:3px;
}
.index-ranking-name{
  display:block;
  overflow:hidden;
  color:#203247;
  font-size:.9rem;
  font-weight:750;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.index-ranking-sub{
  display:block;
  margin-top:2px;
  color:#7a8796;
  font-size:.72rem;
}
.index-ranking-count{
  text-align:right;
  color:#26384a;
  font-variant-numeric:tabular-nums;
}
.index-ranking-count strong{
  display:block;
  font-size:.9rem;
}
.index-ranking-count small{
  display:block;
  color:#7a8796;
  font-size:.68rem;
}
.index-company-item{
  grid-template-columns:30px 42px minmax(0,1fr) auto;
}
.index-company-logo{
  width:42px;
  height:42px;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:1px solid #e5eaf0;
  border-radius:10px;
  background:#fff;
}
.index-company-logo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
.index-company-logo-fallback{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  background:#edf5fb;
  color:#0d5cab;
  font-size:.72rem;
  font-weight:850;
}
.index-insights-error,
.index-insights-empty{
  color:#68788a;
}
.index-insights-error{
  padding:18px;
  border:1px solid #f0d6d6;
  border-radius:14px;
  background:#fff9f9;
}

@media (max-width:860px){
  .index-chart-grid,
  .index-ranking-grid{
    grid-template-columns:1fr;
  }
  .index-bars-states{
    max-height:none;
  }
}
@media (max-width:520px){
  .index-panel{
    padding:17px;
    border-radius:15px;
  }
  .index-insights-heading{
    align-items:flex-start;
  }
  .index-insights-updated{
    display:none;
  }
  .index-ranking-item{
    gap:8px;
  }
  .index-company-item{
    grid-template-columns:28px 38px minmax(0,1fr) auto;
  }
  .index-company-logo{
    width:38px;
    height:38px;
  }
  .index-ranking-sub{
    display:none;
  }
}
