[hidden]{display:none!important;}

.tab-switch{
  display:inline-flex;
  gap:5px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(61,169,255,.10);
  padding:5px;
  border-radius:14px;
  margin-top:28px;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.tab-switch__btn{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 20px;
  border-radius:10px;
  border:none;
  background:transparent;
  color:var(--text-faint);
  font-size:13px;
  font-weight:600;
  cursor:pointer;
  font-family:var(--font-body);
  transition:background .2s,color .2s,box-shadow .2s;
}
.tab-switch__btn .icon{width:14px;height:14px;}
.tab-switch__btn.is-active{
  background:var(--accent);
  color:#0a0d14;
  box-shadow:0 4px 14px rgba(61,169,255,.3);
}

.ent-legend{
  margin-top:22px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.ent-legend__item{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11.5px;
  color:var(--text-faint);
  padding:5px 12px;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(61,169,255,.08);
  border-radius:99px;
}
.ent-dot{
  width:7px;height:7px;
  border-radius:50%;
  flex-shrink:0;
}
.ent-dot--green{background:var(--status-green);box-shadow:0 0 5px rgba(55,214,122,.7);}
.ent-dot--orange{background:var(--status-orange);box-shadow:0 0 5px rgba(255,172,47,.7);}
.ent-dot--red{background:var(--status-red);}
.ent-dot--blue{background:var(--status-blue);box-shadow:0 0 5px rgba(61,169,255,.7);}

.ent-category{
  margin-bottom:22px;
}
.ent-category__title{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:var(--font-display);
  font-size:12px;
  font-weight:700;
  color:var(--text-faint);
  text-transform:uppercase;
  letter-spacing:1.5px;
  margin-bottom:14px;
}
.ent-category__title::after{
  content:'';
  flex:1;
  height:1px;
  background:rgba(61,169,255,.08);
}
.ent-category__count{
  font-size:11px;
  font-weight:700;
  color:var(--accent);
  background:rgba(61,169,255,.10);
  border:1px solid rgba(61,169,255,.14);
  padding:2px 9px;
  border-radius:99px;
  letter-spacing:0;
  text-transform:none;
  flex-shrink:0;
}

.ent-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(185px,1fr));
  gap:7px;
}

.ent-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  background:rgba(255,255,255,.02);
  border:1px solid rgba(61,169,255,.07);
  border-left:2px solid transparent;
  border-radius:10px;
  padding:9px 12px;
  transition:background .2s,border-color .2s,transform .15s,box-shadow .2s;
}
.ent-card:hover{
  background:rgba(255,255,255,.05);
  transform:translateY(-2px);
}
.ent-card--green{border-left-color:var(--status-green);}
.ent-card--green:hover{box-shadow:0 8px 24px rgba(55,214,122,.08),0 4px 12px rgba(0,0,0,.25);}
.ent-card--orange{border-left-color:var(--status-orange);}
.ent-card--orange:hover{box-shadow:0 8px 24px rgba(255,172,47,.08),0 4px 12px rgba(0,0,0,.25);}
.ent-card--red{border-left-color:var(--status-red);}
.ent-card--red:hover{box-shadow:0 8px 24px rgba(255,77,77,.06),0 4px 12px rgba(0,0,0,.25);}
.ent-card--blue{border-left-color:var(--status-blue);}
.ent-card--blue:hover{box-shadow:0 8px 24px rgba(61,169,255,.08),0 4px 12px rgba(0,0,0,.25);}

.ent-card__name{
  font-size:12.5px;
  font-weight:600;
  color:var(--text);
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.ent-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:3px 8px;
  border-radius:99px;
  font-size:9.5px;
  font-weight:700;
  letter-spacing:.3px;
  text-transform:uppercase;
  flex-shrink:0;
  white-space:nowrap;
}
.ent-badge__dot{
  width:5px;height:5px;
  border-radius:50%;
  background:currentColor;
  flex-shrink:0;
}
.ent-badge--green{
  background:rgba(55,214,122,.10);
  color:var(--status-green);
  border:1px solid rgba(55,214,122,.22);
}
.ent-badge--orange{
  background:rgba(255,172,47,.10);
  color:var(--status-orange);
  border:1px solid rgba(255,172,47,.22);
}
.ent-badge--red{
  background:rgba(255,77,77,.08);
  color:var(--status-red);
  border:1px solid rgba(255,77,77,.18);
}
.ent-badge--blue{
  background:rgba(61,169,255,.08);
  color:var(--status-blue);
  border:1px solid rgba(61,169,255,.18);
}

@media(max-width:600px){
  .ent-grid{grid-template-columns:repeat(2,1fr);}
}
