body {
  background: #f4f6f9;
}
.card {
  border: 0;
  border-radius: 1rem;
}
.metric-card .card-body {
  min-height: 120px;
}
.metric-label {
  color: #6c757d;
  font-size: 0.95rem;
}
.metric-value {
  font-size: 1.8rem;
  font-weight: 700;
  margin-top: .5rem;
}
.section-title {
  font-weight: 700;
  background: #fafbfc;
}
.table td, .table th {
  vertical-align: middle;
}


.noc-bg{background:radial-gradient(circle at top left, rgba(34,197,94,.22), transparent 28%), radial-gradient(circle at bottom right, rgba(59,130,246,.18), transparent 30%), linear-gradient(135deg,#0f172a 0%,#111827 50%,#1f2937 100%);} 
.noc-card{border-radius:1.25rem;} 
.status-badge{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .75rem;border-radius:999px;font-weight:700;font-size:.78rem;letter-spacing:.02em;box-shadow:0 0 0 1px rgba(0,0,0,.05) inset;} 
.status-badge::before{content:'';width:.6rem;height:.6rem;border-radius:50%;display:inline-block;animation:pulseBadge 1.8s infinite;} 
.badge-good{background:rgba(34,197,94,.12);color:#15803d;} .badge-good::before{background:#22c55e;}
.badge-slow{background:rgba(245,158,11,.15);color:#b45309;} .badge-slow::before{background:#f59e0b;}
.badge-offline{background:rgba(220,53,69,.12);color:#b91c1c;} .badge-offline::before{background:#dc3545;}
@keyframes pulseBadge{0%{transform:scale(.9);opacity:.7}70%{transform:scale(1.25);opacity:0}100%{transform:scale(.9);opacity:0}}
.pulse-soft{animation:pulseSoft 2.4s infinite;} @keyframes pulseSoft{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.map-floating-legend{position:absolute;right:16px;top:16px;background:rgba(255,255,255,.96);padding:14px 16px;border-radius:16px;z-index:500;font-size:.92rem;}
.legend-dot{width:14px;height:14px;border-radius:50%;display:inline-block;}
.custom-pin{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.35);border:2px solid rgba(255,255,255,.9);font-size:14px;}
.popup-card{font-size:.92rem;} .popup-title{font-weight:700;font-size:1rem;margin-bottom:.35rem;} .popup-status{font-weight:700;}
