/* ══════════════════════════════════════════════
   RESET & BASE
══════════════════════════════════════════════ */
.nv-wrap, .nv-wrap * { box-sizing: border-box; margin: 0; padding: 0; }
.nv-wrap {
  width: 100%;
  max-width: 880px;
  margin: 0 auto;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  background: #f0f4fa;
  color: #0f1c2e;
  font-size: 15px;
  line-height: 1.6;
  overflow-x: hidden;
}

/* ══════════════════════════════════════════════
   COLOUR TOKENS
══════════════════════════════════════════════ */
/* Primary blue: #1a4a8a | Accent: #2563c4 | Light: #e8f0fc */
/* Alert red: #c0392b | Green: #1a7a40 | Amber: #c07a00 */

/* ══════════════════════════════════════════════
   BREAKING BAR
══════════════════════════════════════════════ */
.nv-breaking {
  background: #1a4a8a;
  color: #fff;
  padding: 9px 20px;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
}
.nv-breaking-badge {
  background: #fff;
  color: #1a4a8a;
  padding: 2px 8px;
  border-radius: 3px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 1.5px;
  flex-shrink: 0;
}
.nv-breaking-text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: .9; }

/* ══════════════════════════════════════════════
   HERO
══════════════════════════════════════════════ */
.nv-hero {
  background: linear-gradient(150deg, #0d2a52 0%, #1a4a8a 55%, #1e5c9e 100%);
  padding: 36px 20px 32px;
  position: relative;
  overflow: hidden;
}
.nv-hero::before {
  content: 'НАРВА';
  position: absolute;
  right: -20px; top: -10px;
  font-size: clamp(80px, 22vw, 130px);
  font-weight: 900;
  color: rgba(255,255,255,0.04);
  letter-spacing: -4px;
  pointer-events: none;
  line-height: 1;
}
.nv-hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.2);
  color: #a8c8f0;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 4px 12px;
  border-radius: 20px;
  margin-bottom: 14px;
}
.nv-hero h1 {
  font-size: clamp(28px, 8vw, 48px);
  font-weight: 900;
  color: #fff;
  line-height: 1.05;
  margin-bottom: 10px;
}
.nv-hero h1 span { color: #5ba3f5; }
.nv-hero-sub {
  font-size: clamp(13px, 3.5vw, 15px);
  color: rgba(255,255,255,0.65);
  max-width: 600px;
  margin-bottom: 24px;
  line-height: 1.7;
}
.nv-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 24px;
}
.nv-hero-pill {
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.18);
  color: #d0e8ff;
  font-size: 12px;
  padding: 5px 12px;
  border-radius: 20px;
}
.nv-hero-pill b { color: #fff; }
.nv-hero-btns { display: flex; flex-wrap: wrap; gap: 10px; }
.nv-btn-white {
  background: #fff;
  color: #1a4a8a;
  padding: 11px 22px;
  border-radius: 7px;
  font-weight: 800;
  font-size: 13px;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.nv-btn-ghost {
  background: rgba(255,255,255,0.12);
  color: #fff;
  padding: 11px 22px;
  border-radius: 7px;
  font-weight: 700;
  font-size: 13px;
  border: 1px solid rgba(255,255,255,0.25);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* ══════════════════════════════════════════════
   LIVE DOT
══════════════════════════════════════════════ */
.nv-live {
  width: 8px; height: 8px;
  background: #5ba3f5;
  border-radius: 50%;
  display: inline-block;
  animation: nv-pulse 1.5s infinite;
}
.nv-live-red { background: #e74c3c; }
@keyframes nv-pulse {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:.4; transform:scale(.7); }
}

/* ══════════════════════════════════════════════
   SECTIONS
══════════════════════════════════════════════ */
.nv-section {
  padding: 28px 20px;
  border-bottom: 1px solid #dde6f4;
  background: #f0f4fa;
}
.nv-section.nv-white { background: #fff; }
.nv-section.nv-blue-tint { background: #e8f0fc; }

.nv-section-label {
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: #2563c4;
  font-weight: 800;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.nv-section-label::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #c8d8f0;
}
.nv-section-h2 {
  font-size: clamp(18px, 5vw, 22px);
  font-weight: 900;
  color: #0f1c2e;
  margin-bottom: 6px;
  line-height: 1.3;
}
.nv-section-lead {
  font-size: 14px;
  color: #5a7090;
  margin-bottom: 18px;
  line-height: 1.65;
}
hr.nv-div { border: none; border-top: 1px solid #dde6f4; }

/* ══════════════════════════════════════════════
   STAT CARDS
══════════════════════════════════════════════ */
.nv-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 10px;
}
@media(min-width:480px){ .nv-stats{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:680px){ .nv-stats{ grid-template-columns:repeat(4,1fr); } }

.nv-stat {
  background: #fff;
  border: 1px solid #dde6f4;
  border-top: 3px solid #2563c4;
  border-radius: 8px;
  padding: 14px 12px;
  text-align: center;
  box-shadow: 0 1px 4px rgba(37,99,196,0.06);
}
.nv-stat.danger  { border-top-color: #c0392b; }
.nv-stat.warn    { border-top-color: #c07a00; }
.nv-stat.ok      { border-top-color: #1a7a40; }
.nv-stat-num {
  display: block;
  font-size: clamp(22px, 6vw, 30px);
  font-weight: 900;
  color: #2563c4;
  line-height: 1;
  margin-bottom: 5px;
}
.nv-stat.danger .nv-stat-num { color: #c0392b; }
.nv-stat.warn   .nv-stat-num { color: #c07a00; }
.nv-stat.ok     .nv-stat-num { color: #1a7a40; }
.nv-stat-label {
  font-size: 11px;
  color: #8a9db5;
  line-height: 1.4;
  text-transform: uppercase;
  letter-spacing: 0.4px;
}

/* ══════════════════════════════════════════════
   DONUT CHARTS
══════════════════════════════════════════════ */
.nv-charts {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 12px;
}
@media(min-width:540px){ .nv-charts{ grid-template-columns:repeat(3,1fr); } }
@media(min-width:720px){ .nv-charts{ grid-template-columns:repeat(4,1fr); } }

.nv-donut-card {
  background: #fff;
  border: 1px solid #dde6f4;
  border-radius: 10px;
  padding: 16px 12px;
  text-align: center;
  box-shadow: 0 1px 4px rgba(37,99,196,0.05);
}
.nv-donut {
  width: clamp(66px,16vw,88px);
  height: clamp(66px,16vw,88px);
  border-radius: 50%;
  margin: 0 auto 10px;
  display: flex; align-items: center; justify-content: center;
}
.nv-donut-in {
  width:58%; height:58%;
  background:#fff; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-weight:900; font-size:clamp(11px,3vw,14px); color:#0f1c2e;
}
.nv-donut-title { font-size:11px; color:#8a9db5; line-height:1.4; }
.nv-donut-title b { color:#0f1c2e; display:block; font-size:12px; margin-bottom:2px; }

/* ══════════════════════════════════════════════
   TABLES
══════════════════════════════════════════════ */
.nv-table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  border-radius: 8px;
  border: 1px solid #dde6f4;
}
.nv-table {
  width: 100%;
  min-width: 500px;
  border-collapse: collapse;
  font-size: 13px;
  background: #fff;
}
.nv-table thead tr { background: #0d2a52; }
.nv-table th {
  padding: 10px 14px;
  text-align: left;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #7a9cc0;
  border-bottom: 2px solid #2563c4;
  white-space: nowrap;
}
.nv-table td {
  padding: 10px 14px;
  border-bottom: 1px solid #eef2f9;
  vertical-align: middle;
}
.nv-table tbody tr:last-child td { border-bottom: none; }
.nv-table tbody tr:hover td { background: #f5f8ff; }
.nv-row-name { font-weight:700; color:#0f1c2e; }
.nv-row-sub  { font-size:10px; color:#bbb; text-transform:uppercase; letter-spacing:1px; }

/* ══════════════════════════════════════════════
   BADGES
══════════════════════════════════════════════ */
.nv-badge {
  display: inline-block;
  padding: 2px 9px;
  border-radius: 3px;
  font-size: 11px; font-weight:700;
  white-space: nowrap;
}
.nv-badge-blue   { background:#e8f0fc; color:#2563c4; }
.nv-badge-red    { background:#fdecea; color:#c0392b; }
.nv-badge-green  { background:#e6f4ec; color:#1a7a40; }
.nv-badge-amber  { background:#fff8e1; color:#c07a00; }
.nv-badge-gray   { background:#f0f0f0; color:#888; }

/* progress bar */
.nv-bar { display:flex; align-items:center; gap:8px; }
.nv-bar-track { flex:1; height:5px; background:#e8f0fc; border-radius:3px; overflow:hidden; min-width:40px; }
.nv-bar-fill  { height:100%; border-radius:3px; background:#2563c4; }
.nv-bar-fill.red   { background:#c0392b; }
.nv-bar-fill.amber { background:#c07a00; }
.nv-bar-fill.green { background:#1a7a40; }
.nv-bar-val { font-size:12px; color:#8a9db5; white-space:nowrap; }

/* ══════════════════════════════════════════════
   FAQ
══════════════════════════════════════════════ */
.nv-faq {
  background: #fff;
  border: 1px solid #dde6f4;
  border-left: 3px solid #2563c4;
  border-radius: 6px;
  margin-bottom: 8px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(37,99,196,0.05);
}
.nv-faq[open] { border-left-color: #1a4a8a; box-shadow:0 3px 10px rgba(37,99,196,0.10); }
.nv-faq.warn  { border-left-color:#c07a00; }
.nv-faq.danger{ border-left-color:#c0392b; }
.nv-faq.ok    { border-left-color:#1a7a40; }

.nv-faq summary {
  padding: 13px 44px 13px 16px;
  font-weight:700; font-size:clamp(13px,3.5vw,14px);
  color:#0f1c2e; cursor:pointer;
  list-style:none; position:relative; outline:none;
  word-break:break-word; line-height:1.4;
}
.nv-faq summary::-webkit-details-marker{ display:none; }
.nv-faq summary::after {
  content:'+'; position:absolute; right:14px; top:50%;
  transform:translateY(-50%); font-size:20px; color:#2563c4; line-height:1;
}
.nv-faq[open] summary::after { content:'−'; }

.nv-faq-body {
  padding: 0 16px 16px;
  font-size: clamp(13px,3.4vw,14px);
  color: #4a6080;
  line-height: 1.7;
}
.nv-faq-body p { margin-top:10px; }
.nv-faq-body ul, .nv-faq-body ol { padding-left:20px; margin-top:8px; }
.nv-faq-body li { margin-bottom:5px; }
.nv-faq-body strong { color:#0f1c2e; }

/* callouts */
.nv-info   { background:#e8f0fc; border-left:3px solid #2563c4; padding:10px 14px; border-radius:0 6px 6px 0; margin:12px 0; font-size:13px; color:#0d2a52; line-height:1.6; }
.nv-tip    { background:#e6f4ec; border-left:3px solid #1a7a40; padding:10px 14px; border-radius:0 6px 6px 0; margin:12px 0; font-size:13px; color:#0d3320; line-height:1.6; }
.nv-warn   { background:#fff8e1; border-left:3px solid #c07a00; padding:10px 14px; border-radius:0 6px 6px 0; margin:12px 0; font-size:13px; color:#5a3a00; line-height:1.6; }
.nv-alert  { background:#fdecea; border-left:3px solid #c0392b; padding:10px 14px; border-radius:0 6px 6px 0; margin:12px 0; font-size:13px; color:#5a0a04; line-height:1.6; }

/* quote */
.nv-quote {
  background: #f5f8ff;
  border-left: 3px solid #2563c4;
  padding: 12px 16px; margin:14px 0;
  border-radius: 0 8px 8px 0;
}
.nv-quote p { font-size:14px; color:#2a4060; font-style:italic; line-height:1.7; }
.nv-quote cite { font-size:11px; color:#8a9db5; display:block; margin-top:5px; font-style:normal; }

/* steps */
.nv-steps { list-style:none; padding:0; margin-top:10px; }
.nv-steps li { display:flex; gap:10px; align-items:flex-start; margin-bottom:10px; font-size:13px; color:#4a6080; }
.nv-step-n {
  width:22px; height:22px; border-radius:50%;
  background:#2563c4; color:#fff;
  font-size:11px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0; margin-top:1px;
}

/* ══════════════════════════════════════════════
   FLOW / TIMELINE
══════════════════════════════════════════════ */
.nv-flow { display:flex; flex-direction:column; margin-top:14px; }
.nv-flow-step { display:flex; align-items:flex-start; gap:14px; }
.nv-flow-line { display:flex; flex-direction:column; align-items:center; flex-shrink:0; }
.nv-flow-dot {
  width:30px; height:30px; border-radius:50%;
  background:#2563c4; color:#fff;
  font-weight:900; font-size:12px;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.nv-flow-dot.red   { background:#c0392b; }
.nv-flow-dot.amber { background:#c07a00; }
.nv-flow-dot.green { background:#1a7a40; }
.nv-flow-conn { width:2px; flex:1; min-height:16px; background:#c8d8f0; margin:2px 0; }
.nv-flow-body { padding:2px 0 18px; flex:1; }
.nv-flow-body h4 { color:#0f1c2e; font-size:14px; margin-bottom:3px; }
.nv-flow-body p  { font-size:13px; color:#6a8090; line-height:1.55; }

/* ══════════════════════════════════════════════
   POLL
══════════════════════════════════════════════ */
.nv-poll {
  background:#fff;
  border:1px solid #dde6f4;
  border-radius:10px;
  padding:20px;
  box-shadow:0 1px 4px rgba(37,99,196,0.05);
}
.nv-poll h3 { font-size:15px; color:#0f1c2e; margin-bottom:18px; line-height:1.4; }
.nv-poll-item { margin-bottom:13px; }
.nv-poll-label {
  display:flex; justify-content:space-between;
  font-size:12px; color:#4a6080;
  margin-bottom:5px; gap:8px;
}
.nv-poll-label span:last-child { color:#2563c4; font-weight:700; flex-shrink:0; }
.nv-poll-track { height:7px; background:#e8f0fc; border-radius:4px; overflow:hidden; }
.nv-poll-fill  { height:100%; background:linear-gradient(90deg,#1a4a8a,#2563c4); border-radius:4px; }
.nv-poll-fill.red   { background:linear-gradient(90deg,#a02020,#c0392b); }
.nv-poll-fill.green { background:linear-gradient(90deg,#0f5028,#1a7a40); }

/* ══════════════════════════════════════════════
   TRUST / SENTIMENT METER
══════════════════════════════════════════════ */
.nv-trust-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
@media(min-width:540px){ .nv-trust-grid{ grid-template-columns:repeat(3,1fr); } }

.nv-trust-card {
  background:#fff;
  border:1px solid #dde6f4;
  border-radius:8px;
  padding:14px 12px;
  text-align:center;
  box-shadow:0 1px 3px rgba(37,99,196,0.04);
}
.nv-trust-label { font-size:12px; color:#8a9db5; margin-bottom:8px; line-height:1.4; }
.nv-trust-meter {
  height:10px;
  background:#e8f0fc;
  border-radius:5px;
  overflow:hidden;
  margin-bottom:6px;
}
.nv-trust-fill { height:100%; border-radius:5px; }
.nv-trust-pct { font-size:16px; font-weight:900; }

/* ══════════════════════════════════════════════
   COMMENT TRIGGERS
══════════════════════════════════════════════ */
.nv-comment {
  background:#fff;
  border:1px solid #dde6f4;
  border-radius:10px;
  padding:16px;
  display:flex; align-items:flex-start; gap:12px;
  box-shadow:0 1px 3px rgba(37,99,196,0.04);
}
.nv-avatar {
  width:38px; height:38px; border-radius:50%;
  background:linear-gradient(135deg,#1a4a8a,#2563c4);
  color:#fff; font-weight:900; font-size:15px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.nv-comment-name  { font-size:13px; font-weight:700; color:#0f1c2e; margin-bottom:3px; }
.nv-comment-text  { font-size:13px; color:#4a6080; line-height:1.6; margin-bottom:8px; }
.nv-comment-reply { font-size:12px; color:#2563c4; font-weight:700; cursor:pointer; background:none; border:none; padding:0; }

/* ══════════════════════════════════════════════
   ENGAGE BLOCK
══════════════════════════════════════════════ */
.nv-engage {
  background:linear-gradient(135deg,#e8f0fc 0%,#fff 100%);
  border:1.5px solid #b8d0f0;
  border-radius:10px;
  padding:20px;
  margin-top:4px;
}
.nv-engage h3 { font-size:15px; font-weight:800; color:#0f1c2e; margin-bottom:8px; }
.nv-engage p  { font-size:13px; color:#5a7090; margin-bottom:14px; line-height:1.6; }
.nv-engage-btns { display:flex; flex-wrap:wrap; gap:8px; }
.nv-engage-btn {
  background:#2563c4; color:#fff;
  padding:9px 18px; border-radius:6px;
  font-weight:700; font-size:12px;
  border:none; cursor:pointer;
  display:inline-flex; align-items:center; gap:5px;
}
.nv-engage-btn.ghost {
  background:#fff; color:#2563c4;
  border:1.5px solid #2563c4;
}

/* ══════════════════════════════════════════════
   SEARCH TAGS
══════════════════════════════════════════════ */
.nv-search-block {
  background:#fff;
  border:1px solid #dde6f4;
  border-radius:10px;
  padding:20px;
}
.nv-search-block h3 { font-size:13px; font-weight:700; color:#0f1c2e; margin-bottom:14px; display:flex; align-items:center; gap:8px; }
.nv-tags { display:flex; flex-wrap:wrap; gap:7px; }
.nv-tag {
  background:#f0f4fa;
  border:1px solid #c8d8f0;
  color:#2a4878;
  font-size:12px;
  padding:5px 12px;
  border-radius:20px;
  cursor:pointer;
  transition:all .15s;
  display:inline-flex; align-items:center; gap:4px;
}
.nv-tag:hover { background:#e8f0fc; border-color:#2563c4; color:#1a4a8a; }
.nv-tag.hot { background:#e8f0fc; border-color:#a0c0f0; color:#1a4a8a; font-weight:700; }

/* ══════════════════════════════════════════════
   FEATURES
══════════════════════════════════════════════ */
.nv-features {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
@media(min-width:560px){ .nv-features{ grid-template-columns:repeat(3,1fr); } }

.nv-feat {
  background:#fff;
  border:1px solid #dde6f4;
  border-radius:8px;
  padding:16px 14px;
  box-shadow:0 1px 3px rgba(37,99,196,0.04);
}
.nv-feat-icon  { font-size:22px; margin-bottom:8px; display:block; }
.nv-feat-title { font-size:13px; font-weight:700; color:#0f1c2e; margin-bottom:5px; }
.nv-feat-text  { font-size:12px; color:#8a9db5; line-height:1.55; }

/* ══════════════════════════════════════════════
   PERSON CARD
══════════════════════════════════════════════ */
.nv-person-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
@media(min-width:560px){ .nv-person-grid{ grid-template-columns:repeat(3,1fr); } }

.nv-person {
  background:#fff;
  border:1px solid #dde6f4;
  border-radius:8px;
  padding:14px 12px;
  box-shadow:0 1px 3px rgba(37,99,196,0.04);
}
.nv-person-ico  { font-size:28px; margin-bottom:8px; }
.nv-person-name { font-size:13px; font-weight:700; color:#0f1c2e; margin-bottom:2px; }
.nv-person-role { font-size:11px; color:#2563c4; font-weight:600; text-transform:uppercase; letter-spacing:.5px; margin-bottom:6px; }
.nv-person-text { font-size:12px; color:#8a9db5; line-height:1.55; }
.nv-person-rating { font-size:11px; margin-top:8px; color:#c07a00; font-weight:700; }

/* ══════════════════════════════════════════════
   CTA
══════════════════════════════════════════════ */
.nv-cta {
  background:linear-gradient(150deg,#0d2a52 0%,#1a4a8a 100%);
  padding:36px 20px;
  text-align:center;
}
.nv-cta h2 { font-size:clamp(20px,5.5vw,28px); color:#fff; margin-bottom:10px; line-height:1.25; }
.nv-cta p  { font-size:14px; color:rgba(255,255,255,.6); max-width:500px; margin:0 auto 22px; line-height:1.6; }
.nv-cta-btns { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; }
.nv-cta-footer { margin-top:20px; font-size:11px; color:rgba(255,255,255,.3); letter-spacing:1px; text-transform:uppercase; }

/* share strip */
.nv-share {
  background:#0d2a52;
  padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:12px; border-radius:8px; margin-top:4px;
}
.nv-share-text { font-size:13px; color:rgba(255,255,255,.7); }
.nv-share-text b { color:#fff; }
.nv-share-btns { display:flex; gap:8px; }
.nv-share-btn {
  background:rgba(255,255,255,.1); color:#fff;
  padding:7px 14px; border-radius:6px;
  font-size:12px; font-weight:600;
  border:1px solid rgba(255,255,255,.18); cursor:pointer;
  display:inline-flex; align-items:center; gap:5px;
}

/* mayor rating visual */
.nv-mayor-block {
  background:#fff;
  border:1px solid #dde6f4;
  border-radius:10px;
  padding:20px;
  box-shadow:0 1px 4px rgba(37,99,196,0.06);
}
.nv-mayor-header {
  display:flex; align-items:center; gap:14px; margin-bottom:16px;
}
.nv-mayor-ava {
  width:54px; height:54px; border-radius:50%;
  background:linear-gradient(135deg,#0d2a52,#2563c4);
  color:#fff; font-size:22px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.nv-mayor-name { font-size:16px; font-weight:900; color:#0f1c2e; }
.nv-mayor-title { font-size:12px; color:#8a9db5; }
.nv-mayor-ratings { display:flex; flex-direction:column; gap:8px; }
.nv-mayor-row-label { font-size:12px; color:#4a6080; margin-bottom:4px; display:flex; justify-content:space-between; }
.nv-mayor-row-label span:last-child { font-weight:700; color:#2563c4; }



.nx-wrap, .nx-wrap * { box-sizing: border-box; margin: 0; padding: 0; }

/* ── Общие переменные (совпадают с nv-) ── */
.nx-sec {
  padding: 28px 20px;
  border-bottom: 1px solid #dde6f4;
  background: #f0f4fa;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: #0f1c2e;
  font-size: 15px;
  line-height: 1.6;
}
.nx-sec.nx-white { background: #fff; }
.nx-sec.nx-dark  { background: #0d2a52; color: #fff; }
.nx-sec.nx-tint  { background: #e8f0fc; }

.nx-label {
  font-size: 10px; letter-spacing: 3px;
  text-transform: uppercase; color: #2563c4;
  font-weight: 800; margin-bottom: 16px;
  display: flex; align-items: center; gap: 8px;
}
.nx-label::after { content:''; flex:1; height:1px; background:#c8d8f0; }
.nx-label.white { color:#5ba3f5; }
.nx-label.white::after { background:rgba(255,255,255,.15); }

.nx-h2 { font-size:clamp(18px,5vw,22px); font-weight:900; color:#0f1c2e; margin-bottom:6px; line-height:1.3; }
.nx-h2.white { color:#fff; }
.nx-lead { font-size:14px; color:#5a7090; margin-bottom:18px; line-height:1.65; }
.nx-lead.white { color:rgba(255,255,255,.65); }

/* ── Live dot ── */
.nx-dot { width:8px; height:8px; border-radius:50%; background:#2563c4; display:inline-block; animation:nx-p 1.5s infinite; vertical-align:middle; }
.nx-dot.red   { background:#e74c3c; }
.nx-dot.green { background:#1a7a40; }
.nx-dot.white { background:#5ba3f5; }
@keyframes nx-p { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.4;transform:scale(.7)} }

/* ── Badge ── */
.nx-badge { display:inline-block; padding:2px 9px; border-radius:3px; font-size:11px; font-weight:700; white-space:nowrap; }
.nx-b-blue   { background:#e8f0fc; color:#2563c4; }
.nx-b-red    { background:#fdecea; color:#c0392b; }
.nx-b-green  { background:#e6f4ec; color:#1a7a40; }
.nx-b-amber  { background:#fff8e1; color:#c07a00; }
.nx-b-gray   { background:#f0f0f0; color:#888; }
.nx-b-dark   { background:#0d2a52; color:#5ba3f5; }

/* ── Grid utils ── */
.nx-g2  { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.nx-g3  { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.nx-g4  { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
@media(max-width:540px){ .nx-g3,.nx-g4 { grid-template-columns:1fr 1fr; } }
@media(max-width:380px){ .nx-g2 { grid-template-columns:1fr; } }

/* ── Stat card ── */
.nx-stat {
  background:#fff; border:1px solid #dde6f4;
  border-top:3px solid #2563c4; border-radius:8px;
  padding:14px 12px; text-align:center;
  box-shadow:0 1px 4px rgba(37,99,196,.06);
}
.nx-stat.red   { border-top-color:#c0392b; }
.nx-stat.amber { border-top-color:#c07a00; }
.nx-stat.green { border-top-color:#1a7a40; }
.nx-stat-num { display:block; font-size:clamp(20px,6vw,28px); font-weight:900; color:#2563c4; line-height:1; margin-bottom:4px; }
.nx-stat.red   .nx-stat-num { color:#c0392b; }
.nx-stat.amber .nx-stat-num { color:#c07a00; }
.nx-stat.green .nx-stat-num { color:#1a7a40; }
.nx-stat-lbl { font-size:11px; color:#8a9db5; text-transform:uppercase; letter-spacing:.4px; line-height:1.4; }

/* ── Card ── */
.nx-card {
  background:#fff; border:1px solid #dde6f4; border-radius:8px;
  padding:14px; box-shadow:0 1px 4px rgba(37,99,196,.05);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.nx-card.dark { background:#12305a; border-color:#1e4a80; }

/* ── Callout ── */
.nx-info  { background:#e8f0fc; border-left:3px solid #2563c4; padding:10px 14px; border-radius:0 6px 6px 0; margin:10px 0; font-size:13px; color:#0d2a52; line-height:1.6; }
.nx-tip   { background:#e6f4ec; border-left:3px solid #1a7a40; padding:10px 14px; border-radius:0 6px 6px 0; margin:10px 0; font-size:13px; color:#0d3320; line-height:1.6; }
.nx-warn  { background:#fff8e1; border-left:3px solid #c07a00; padding:10px 14px; border-radius:0 6px 6px 0; margin:10px 0; font-size:13px; color:#5a3a00; line-height:1.6; }
.nx-alert { background:#fdecea; border-left:3px solid #c0392b; padding:10px 14px; border-radius:0 6px 6px 0; margin:10px 0; font-size:13px; color:#5a0a04; line-height:1.6; }

/* ── FAQ (matches nv-faq) ── */
.nx-faq {
  background:#fff; border:1px solid #dde6f4;
  border-left:3px solid #2563c4; border-radius:6px;
  margin-bottom:8px; overflow:hidden;
  box-shadow:0 1px 3px rgba(37,99,196,.05);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.nx-faq.red    { border-left-color:#c0392b; }
.nx-faq.green  { border-left-color:#1a7a40; }
.nx-faq.amber  { border-left-color:#c07a00; }
.nx-faq[open]  { box-shadow:0 3px 10px rgba(37,99,196,.10); }
.nx-faq summary { padding:13px 44px 13px 16px; font-weight:700; font-size:clamp(13px,3.5vw,14px); color:#0f1c2e; cursor:pointer; list-style:none; position:relative; outline:none; word-break:break-word; line-height:1.4; }
.nx-faq summary::-webkit-details-marker { display:none; }
.nx-faq summary::after { content:'+'; position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:20px; color:#2563c4; line-height:1; }
.nx-faq[open] summary::after { content:'−'; }
.nx-faq-body { padding:0 16px 16px; font-size:clamp(13px,3.4vw,14px); color:#4a6080; line-height:1.7; }
.nx-faq-body p { margin-top:10px; }
.nx-faq-body ul,.nx-faq-body ol { padding-left:20px; margin-top:8px; }
.nx-faq-body li { margin-bottom:5px; }
.nx-faq-body strong { color:#0f1c2e; }

/* ── Progress bar ── */
.nx-bar { display:flex; align-items:center; gap:8px; }
.nx-bar-track { flex:1; height:6px; background:#e8f0fc; border-radius:3px; overflow:hidden; min-width:30px; }
.nx-bar-fill  { height:100%; border-radius:3px; background:#2563c4; }
.nx-bar-fill.red   { background:#c0392b; }
.nx-bar-fill.amber { background:#c07a00; }
.nx-bar-fill.green { background:#1a7a40; }
.nx-bar-val   { font-size:12px; color:#8a9db5; white-space:nowrap; }

/* ── Engage ── */
.nx-engage {
  background:linear-gradient(135deg,#e8f0fc,#fff);
  border:1.5px solid #b8d0f0; border-radius:10px;
  padding:20px; margin-top:14px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.nx-engage h3 { font-size:15px; font-weight:800; color:#0f1c2e; margin-bottom:6px; }
.nx-engage p  { font-size:13px; color:#5a7090; margin-bottom:12px; line-height:1.6; }
.nx-engage-btns { display:flex; flex-wrap:wrap; gap:8px; }
.nx-btn { background:#2563c4; color:#fff; padding:9px 18px; border-radius:6px; font-weight:700; font-size:12px; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:5px; font-family:inherit; }
.nx-btn.ghost { background:#fff; color:#2563c4; border:1.5px solid #2563c4; }
.nx-btn.red   { background:#c0392b; }
.nx-btn.dark  { background:#0d2a52; }

/* ══════════════════════════════════════════════
   CHART COMPONENTS
══════════════════════════════════════════════ */

/* Donut */
.nx-donut-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
@media(min-width:480px){ .nx-donut-grid { grid-template-columns:repeat(3,1fr); } }
@media(min-width:680px){ .nx-donut-grid { grid-template-columns:repeat(4,1fr); } }

.nx-donut-card { background:#fff; border:1px solid #dde6f4; border-radius:10px; padding:16px 12px; text-align:center; box-shadow:0 1px 4px rgba(37,99,196,.05); }
.nx-donut { width:clamp(66px,16vw,88px); height:clamp(66px,16vw,88px); border-radius:50%; margin:0 auto 10px; display:flex; align-items:center; justify-content:center; }
.nx-donut-in { width:58%; height:58%; background:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-weight:900; font-size:clamp(11px,3vw,14px); color:#0f1c2e; }
.nx-donut-title { font-size:11px; color:#8a9db5; line-height:1.4; }
.nx-donut-title b { color:#0f1c2e; display:block; font-size:12px; margin-bottom:2px; }

/* Line spark — pure CSS */
.nx-spark-wrap { position:relative; height:60px; background:#f5f8ff; border-radius:6px; overflow:hidden; margin:8px 0; }
.nx-spark-svg  { width:100%; height:100%; display:block; }

/* Bar chart */
.nx-barchart { display:flex; align-items:flex-end; gap:4px; height:80px; padding:0 0 4px; }
.nx-bar-col  { flex:1; border-radius:4px 4px 0 0; min-width:4px; transition:opacity .2s; position:relative; }
.nx-bar-col:hover { opacity:.8; }
.nx-bar-lbl  { position:absolute; bottom:-18px; left:50%; transform:translateX(-50%); font-size:9px; color:#8a9db5; white-space:nowrap; }

/* Cumulative / stacked area */
.nx-area-wrap { background:#f5f8ff; border-radius:8px; padding:12px; margin:10px 0; }
.nx-area-title { font-size:12px; font-weight:700; color:#0f1c2e; margin-bottom:8px; display:flex; justify-content:space-between; }
.nx-area-title span { color:#8a9db5; font-weight:400; }
.nx-area-svg { width:100%; height:100px; display:block; }

/* Sparkline inline */
.nx-inline-spark { display:inline-flex; align-items:center; gap:4px; }
.nx-spark-mini svg { display:block; }

/* Heatmap row */
.nx-heatmap { display:flex; gap:3px; flex-wrap:wrap; margin:8px 0; }
.nx-heat-cell { width:clamp(18px,5vw,26px); height:clamp(18px,5vw,26px); border-radius:3px; }

/* ══════════════════════════════════════════════
   INCIDENT CARD
══════════════════════════════════════════════ */
.nx-incident {
  background:#fff; border:1px solid #dde6f4; border-radius:8px;
  padding:14px; display:flex; gap:12px; align-items:flex-start;
  box-shadow:0 1px 3px rgba(37,99,196,.04);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  margin-bottom:8px;
}
.nx-incident-ico { font-size:22px; flex-shrink:0; line-height:1; }
.nx-incident-time { font-size:10px; color:#8a9db5; text-transform:uppercase; letter-spacing:1px; margin-bottom:3px; }
.nx-incident-title { font-size:14px; font-weight:700; color:#0f1c2e; margin-bottom:4px; line-height:1.4; }
.nx-incident-desc  { font-size:12px; color:#5a7090; line-height:1.55; }
.nx-incident-tags  { margin-top:8px; display:flex; flex-wrap:wrap; gap:5px; }

/* ══════════════════════════════════════════════
   WEATHER
══════════════════════════════════════════════ */
.nx-weather-main {
  background:linear-gradient(135deg,#0d2a52,#1a4a8a);
  border-radius:10px; padding:20px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:16px; margin-bottom:12px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.nx-w-big   { font-size:clamp(48px,14vw,72px); font-weight:900; color:#fff; line-height:1; }
.nx-w-desc  { color:rgba(255,255,255,.7); font-size:14px; margin-top:4px; }
.nx-w-city  { color:#5ba3f5; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:4px; }
.nx-w-details { display:flex; gap:16px; flex-wrap:wrap; }
.nx-w-det   { text-align:center; }
.nx-w-det-v { display:block; font-size:16px; font-weight:700; color:#fff; }
.nx-w-det-l { font-size:10px; color:rgba(255,255,255,.5); text-transform:uppercase; letter-spacing:.5px; }

.nx-forecast { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:12px; }
@media(max-width:400px){ .nx-forecast { grid-template-columns:repeat(3,1fr); } }
.nx-fc-day { background:#fff; border:1px solid #dde6f4; border-radius:8px; padding:10px 8px; text-align:center; box-shadow:0 1px 3px rgba(37,99,196,.04); }
.nx-fc-name { font-size:10px; color:#8a9db5; text-transform:uppercase; letter-spacing:.5px; margin-bottom:4px; }
.nx-fc-ico  { font-size:20px; display:block; margin-bottom:4px; }
.nx-fc-temp { font-size:13px; font-weight:700; color:#0f1c2e; }
.nx-fc-temp span { color:#8a9db5; font-weight:400; }

/* ══════════════════════════════════════════════
   EVENT CARD
══════════════════════════════════════════════ */
.nx-events-list { display:flex; flex-direction:column; gap:8px; }
.nx-event {
  background:#fff; border:1px solid #dde6f4; border-radius:8px;
  padding:14px 14px 14px 0; display:flex; gap:0; overflow:hidden;
  box-shadow:0 1px 3px rgba(37,99,196,.04);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.nx-event-date {
  width:60px; flex-shrink:0; background:#1a4a8a;
  color:#fff; display:flex; flex-direction:column;
  align-items:center; justify-content:center; padding:10px 6px;
}
.nx-event-day  { font-size:24px; font-weight:900; line-height:1; }
.nx-event-mon  { font-size:10px; text-transform:uppercase; letter-spacing:1px; opacity:.8; }
.nx-event-body { padding:0 14px; flex:1; }
.nx-event-cat  { font-size:10px; color:#2563c4; font-weight:700; text-transform:uppercase; letter-spacing:1px; margin-bottom:3px; }
.nx-event-title{ font-size:14px; font-weight:700; color:#0f1c2e; margin-bottom:3px; line-height:1.4; }
.nx-event-meta { font-size:12px; color:#8a9db5; display:flex; gap:8px; flex-wrap:wrap; }

/* ══════════════════════════════════════════════
   GOOD NEWS / AI CARD
══════════════════════════════════════════════ */
.nx-good-card {
  background:#fff; border:1px solid #dde6f4; border-radius:8px;
  padding:16px; box-shadow:0 1px 4px rgba(37,99,196,.05);
  border-top:3px solid #1a7a40;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.nx-good-card.ai { border-top-color:#2563c4; }
.nx-good-ico   { font-size:24px; margin-bottom:8px; display:block; }
.nx-good-title { font-size:14px; font-weight:700; color:#0f1c2e; margin-bottom:5px; line-height:1.4; }
.nx-good-text  { font-size:12px; color:#5a7090; line-height:1.55; }
.nx-good-meta  { font-size:11px; color:#aaa; margin-top:8px; display:flex; justify-content:space-between; align-items:center; }
.nx-good-meta a { color:#2563c4; font-weight:600; font-size:11px; }

/* comment strip */
.nx-comment-row {
  display:flex; align-items:center; gap:10px;
  padding:10px 0; border-bottom:1px solid #f0f4fa;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
.nx-comment-row:last-child { border:none; }
.nx-ava { width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg,#1a4a8a,#2563c4); color:#fff; font-weight:900; font-size:13px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.nx-comment-name { font-size:12px; font-weight:700; color:#0f1c2e; }
.nx-comment-text { font-size:12px; color:#5a7090; line-height:1.5; margin-top:2px; }
.nx-comment-reply { font-size:11px; color:#2563c4; font-weight:700; background:none; border:none; cursor:pointer; padding:0; margin-top:4px; font-family:inherit; }

/* AI glow card */
.nx-ai-feature {
  background:linear-gradient(135deg,#0d2a52,#1a4a8a);
  border-radius:10px; padding:20px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  margin-bottom:10px; position:relative; overflow:hidden;
}
.nx-ai-feature::before {
  content:''; position:absolute;
  top:-40px; right:-40px;
  width:180px; height:180px; border-radius:50%;
  background:radial-gradient(circle,rgba(91,163,245,.15),transparent 70%);
  pointer-events:none;
}
.nx-ai-tag { display:inline-flex; align-items:center; gap:5px; background:rgba(91,163,245,.15); border:1px solid rgba(91,163,245,.3); color:#5ba3f5; font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; padding:3px 10px; border-radius:20px; margin-bottom:10px; }
.nx-ai-title { font-size:clamp(15px,4vw,18px); font-weight:900; color:#fff; margin-bottom:6px; line-height:1.3; }
.nx-ai-desc  { font-size:13px; color:rgba(255,255,255,.65); line-height:1.6; margin-bottom:14px; }
.nx-ai-chips { display:flex; flex-wrap:wrap; gap:6px; }
.nx-ai-chip  { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.18); color:rgba(255,255,255,.8); font-size:11px; padding:4px 10px; border-radius:20px; }

/* ══════════════════════════════════════════════
   POLICE OPERATION CARD
══════════════════════════════════════════════ */
.nx-op-card {
  background:#fff; border:1px solid #dde6f4; border-radius:8px;
  padding:14px; display:flex; gap:12px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  margin-bottom:8px; box-shadow:0 1px 3px rgba(37,99,196,.04);
}
.nx-op-num  { font-size:28px; font-weight:900; color:#e8f0fc; flex-shrink:0; line-height:1; width:48px; text-align:center; align-self:flex-start; }
.nx-op-title{ font-size:13px; font-weight:700; color:#0f1c2e; margin-bottom:4px; }
.nx-op-desc { font-size:12px; color:#5a7090; line-height:1.55; }
.nx-op-meta { font-size:11px; color:#aaa; margin-top:6px; }

/* ══════════════════════════════════════════════
   CUMULATIVE TIMELINE
══════════════════════════════════════════════ */
.nx-timeline { position:relative; padding-left:24px; margin-top:12px; }
.nx-timeline::before { content:''; position:absolute; left:8px; top:0; bottom:0; width:2px; background:#c8d8f0; border-radius:1px; }
.nx-tl-item { position:relative; padding-bottom:16px; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }
.nx-tl-item:last-child { padding-bottom:0; }
.nx-tl-dot { position:absolute; left:-20px; top:2px; width:12px; height:12px; border-radius:50%; background:#2563c4; border:2px solid #fff; box-shadow:0 0 0 2px #c8d8f0; }
.nx-tl-dot.red   { background:#c0392b; box-shadow:0 0 0 2px #fdecea; }
.nx-tl-dot.green { background:#1a7a40; box-shadow:0 0 0 2px #e6f4ec; }
.nx-tl-dot.amber { background:#c07a00; box-shadow:0 0 0 2px #fff8e1; }
.nx-tl-time { font-size:10px; color:#8a9db5; text-transform:uppercase; letter-spacing:1px; margin-bottom:2px; }
.nx-tl-title{ font-size:13px; font-weight:700; color:#0f1c2e; margin-bottom:3px; }
.nx-tl-text { font-size:12px; color:#5a7090; line-height:1.55; }