@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Arabic:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap');

/* â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   ZeroSpread Â· ÙˆØ¶Ø¹ Ø§Ù„ØµØ¯Ù…Ø© (/shock-mode)
   Original shock-mode layout â€” all rules scoped under .shock-mode-root.
   GPU-friendly animations read --shock-* vars from the live brain.
   â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */

.shock-mode-root {
  /* Palette */
  --bg0: #040506;
  --bg1: #06070a;
  --bg2: #0a0c10;
  /* Elevation tint channels â€” pearl/white on dark; slate in html.light. */
  --sm-tint: 245, 247, 244;
  --sm-tint2: 255, 255, 255;
  --panel: rgba(12, 14, 18, 0.76);
  --panel2: rgba(15, 17, 22, 0.58);
  --glass: rgba(20, 22, 28, 0.55);
  --stroke: rgba(var(--sm-tint), 0.06);
  --stroke2: rgba(var(--sm-tint), 0.105);
  --strokeR: rgba(255, 96, 74, 0.2);
  --pearl: rgba(var(--sm-tint), 0.92);
  --pearl-solid: #F3F5F7;
  --muted: rgba(var(--sm-tint), 0.62);
  --muted2: rgba(var(--sm-tint), 0.42);
  --txt: var(--pearl);
  --txt2: var(--muted);
  --txt3: var(--muted2);
  --txt4: #41474f;
  --red: #ff3b34;
  --red2: #ff5a4d;
  --red3: #ff7a5c;
  --redsoft: #ff8a72;
  --green: #33d98a;
  --amber: #f6b23c;
  --blue: #5b8cff;
  --purple: #b06bff;
  --mono: 'JetBrains Mono', monospace;
  --ar: 'IBM Plex Sans Arabic', sans-serif;

  /* Brain atmosphere defaults â€” overridden inline from useShockModeBrains */
  --shock-tier: elevated;
  --shock-pressure: 60;
  --shock-pulse-speed: 3.0s;
  --shock-breathe-speed: 4.2s;
  --shock-flow-speed: 1.05;
  --shock-glow-alpha: 0.46;
  --shock-halo-alpha: 0.32;
  --shock-scan-alpha: 0.48;
  --shock-particle-alpha: 0.60;
  --shock-accent: #ff5a4d;
  --shock-rim: rgba(255, 90, 70, 0.4);
  --shock-bg-vignette: rgba(0, 0, 0, 0.85);

  width: 100vw;
  max-width: 100vw;
  min-height: 100dvh;
  margin-inline: calc(50% - 50vw);
  overflow-x: hidden;
  position: relative;
  background: var(--bg0);
  color: var(--txt);
  font-family: var(--ar);
  direction: rtl;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1, "liga" 1;
}

.shock-mode-root,
.shock-mode-root *,
.shock-mode-root *::before,
.shock-mode-root *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

.shock-mode-root .num {
  font-family: var(--mono);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.3px;
}

/* â”€â”€â”€ Background layers â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .bg {
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
  background:
    radial-gradient(1200px 700px at 50% 30%, rgba(120, 18, 12, 0.16), transparent 60%),
    radial-gradient(900px 600px at 18% 18%, rgba(60, 12, 10, 0.14), transparent 60%),
    radial-gradient(900px 600px at 84% 70%, rgba(70, 14, 10, 0.12), transparent 60%),
    radial-gradient(1400px 900px at 50% 120%, rgba(40, 8, 6, 0.18), transparent 60%),
    linear-gradient(180deg, #05060a 0%, #04050700 30%, #040507 100%),
    var(--bg0);
}

.shock-mode-root .bg .grid {
  position: absolute;
  inset: -2px;
  background-image:
    linear-gradient(rgba(120, 140, 170, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(120, 140, 170, 0.05) 1px, transparent 1px);
  background-size: 46px 46px;
  mask: radial-gradient(circle at 50% 42%, #000 0%, transparent 78%);
  opacity: 0.7;
}

.shock-mode-root .bg .scan {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, rgba(var(--sm-tint2), 0.02) 0 1px, transparent 1px 3px);
  opacity: var(--shock-scan-alpha, 0.45);
  mix-blend-mode: overlay;
  transition: opacity 0.8s ease;
}

.shock-mode-root .bg .noise {
  position: absolute;
  inset: 0;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.shock-mode-root .bg .vig {
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 360px 60px var(--shock-bg-vignette, rgba(0, 0, 0, 0.85));
  transition: box-shadow 0.8s ease;
}

.shock-mode-root .particles {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}

.shock-mode-root .pt {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--shock-accent, #ff785a) 70%, transparent);
  opacity: var(--shock-particle-alpha, 0.55);
  box-shadow: 0 0 6px color-mix(in srgb, var(--shock-accent, #ff5a4d) 60%, transparent);
  animation: shock-float linear infinite;
}

@keyframes shock-float {
  0% { transform: translateY(20px); opacity: 0; }
  10% { opacity: 0.8; }
  90% { opacity: 0.6; }
  100% { transform: translateY(-100vh); opacity: 0; }
}

/* â”€â”€â”€ Shell layout â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .app {
  position: relative;
  z-index: 2;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 10px 18px;
}

.shock-mode-root .body {
  direction: ltr;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding-top: 16px;
  width: 100%;
  min-width: 0;
}

.shock-mode-root .body--no-rail {
  gap: 0;
}

.shock-mode-root .body--no-rail .body-main {
  flex: 1 1 100%;
  max-width: 100%;
  width: 100%;
}

.shock-mode-root .body-main {
  flex: 1;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
}

.shock-mode-root .stage {
  flex: 1;
  display: flex;
  gap: 14px;
  min-width: 0;
  width: 100%;
}

.shock-mode-root .col {
  display: flex;
  flex-direction: column;
  gap: 13px;
  direction: rtl;
}

.shock-mode-root .col-left { flex: 0 0 214px; }
.shock-mode-root .col-right { flex: 0 0 196px; }

.shock-mode-root .center {
  flex: 1;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 13px;
}

/* â”€â”€â”€ Panels â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .panel {
  border: 1px solid var(--stroke);
  border-radius: 14px;
  background: linear-gradient(180deg, var(--panel), var(--panel2));
  backdrop-filter: blur(10px);
  position: relative;
  overflow: hidden;
}

.shock-mode-root .panel::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(var(--sm-tint2), 0.035), transparent 22%);
  pointer-events: none;
}

.shock-mode-root .pad { padding: 13px 14px; }

.shock-mode-root .ptitle {
  font-size: 13px;
  font-weight: 600;
  color: var(--txt);
  text-align: center;
  margin-bottom: 10px;
  letter-spacing: 0.2px;
}

.shock-mode-root .scenario {
  border: 1px solid var(--shock-rim, var(--strokeR));
  background:
    radial-gradient(120% 120% at 50% 0%, rgba(255, 50, 40, 0.16), transparent 60%),
    linear-gradient(180deg, rgba(28, 12, 12, 0.7), rgba(16, 9, 10, 0.55));
  box-shadow:
    0 0 30px rgba(255, 40, 30, calc(0.1 * var(--shock-glow-alpha, 0.46) * 2.2)),
    inset 0 0 22px rgba(255, 40, 30, 0.06);
}

.shock-mode-root .sc-head {
  display: flex;
  align-items: center;
  gap: 9px;
  justify-content: center;
  margin-bottom: 9px;
}

.shock-mode-root .sc-bolt {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: grid;
  place-items: center;
  color: #fff;
  background: linear-gradient(150deg, #ff4d3f, #c4231a);
  box-shadow: 0 0 16px rgba(255, 60, 40, 0.5);
}

.shock-mode-root .sc-bolt svg { width: 18px; height: 18px; }

.shock-mode-root .sc-tag {
  font-size: 11px;
  color: var(--redsoft);
  font-weight: 600;
}

.shock-mode-root .sc-title {
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  color: #fff;
  margin-bottom: 3px;
}

.shock-mode-root .sc-desc {
  text-align: center;
  font-size: 11.5px;
  color: var(--txt2);
  margin-bottom: 12px;
  line-height: 1.5;
}

.shock-mode-root .sc-btn {
  width: 100%;
  padding: 9px;
  border-radius: 9px;
  border: 1px solid rgba(255, 80, 60, 0.4);
  background: linear-gradient(180deg, rgba(255, 60, 45, 0.16), rgba(255, 40, 30, 0.06));
  color: #ff8f7c;
  font-family: var(--ar);
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.2s;
}

.shock-mode-root .sc-btn:hover {
  background: linear-gradient(180deg, rgba(255, 60, 45, 0.28), rgba(255, 40, 30, 0.12));
  color: #fff;
}

/* â”€â”€â”€ Gauges â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding-bottom: 4px;
}

.shock-mode-root .gwrap {
  position: relative;
  width: 172px;
  height: 96px;
}

.shock-mode-root .gauge svg {
  width: 172px;
  height: 96px;
  overflow: visible;
}

.shock-mode-root .gauge .bar {
  transition: stroke-dasharray 1.4s cubic-bezier(0.22, 0.61, 0.36, 1), stroke 0.6s ease;
  filter: drop-shadow(0 0 calc(6px * var(--shock-glow-alpha, 0.46)) rgba(255, 90, 70, 0.55));
}

.shock-mode-root .gval {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 14px;
  text-align: center;
}

.shock-mode-root .gval .n {
  font-size: 30px;
  font-weight: 700;
  color: var(--red2);
  text-shadow: 0 0 18px rgba(255, 60, 45, calc(0.55 * var(--shock-glow-alpha, 0.46) * 1.2));
}

.shock-mode-root .glabel {
  font-size: 12px;
  font-weight: 600;
  color: var(--red2);
  margin-top: 2px;
  text-shadow: 0 0 12px rgba(255, 60, 45, calc(0.4 * var(--shock-glow-alpha, 0.46) * 1.2));
}

.shock-mode-root .gauge-calm .gauge .bar,
.shock-mode-root .gauge-calm .bar {
  stroke: var(--green) !important;
  filter: drop-shadow(0 0 6px rgba(51, 217, 138, 0.38));
}

.shock-mode-root .gauge-calm .gval .n,
.shock-mode-root .gauge-calm .glabel {
  color: var(--green);
  text-shadow: 0 0 14px rgba(51, 217, 138, 0.28);
}

.shock-mode-root .gauge-semantic-negative .bar {
  stroke: var(--red2);
  filter: drop-shadow(0 0 6px rgba(255, 90, 70, 0.55));
}

.shock-mode-root .gauge-semantic-negative .gval .n,
.shock-mode-root .gauge-semantic-negative .glabel {
  color: var(--red2);
}

.shock-mode-root .gauge-semantic-warning .bar {
  stroke: #f6b23c;
  filter: drop-shadow(0 0 6px rgba(246, 178, 60, 0.38));
}

.shock-mode-root .gauge-semantic-warning .gval .n,
.shock-mode-root .gauge-semantic-warning .glabel {
  color: #f6b23c;
  text-shadow: 0 0 14px rgba(246, 178, 60, 0.28);
}

.shock-mode-root .gauge-semantic-neutral .bar {
  stroke: #8fb4ff;
  filter: drop-shadow(0 0 6px rgba(143, 180, 255, 0.28));
}

.shock-mode-root .gauge-semantic-neutral .gval .n,
.shock-mode-root .gauge-semantic-neutral .glabel {
  color: #8fb4ff;
  text-shadow: 0 0 14px rgba(143, 180, 255, 0.2);
}

/* â”€â”€â”€ Lists â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .list { display: flex; flex-direction: column; }

.shock-mode-root .lrow {
  direction: rtl;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6.5px 2px;
  border-bottom: 1px solid rgba(var(--sm-tint2), 0.035);
  font-size: 12.5px;
}

.shock-mode-root .lrow:last-child { border-bottom: none; }

.shock-mode-root .ln { color: var(--txt2); font-weight: 500; }

.shock-mode-root .lv {
  font-family: var(--mono);
  font-weight: 600;
  font-size: 12.5px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.shock-mode-root .lv.down { color: var(--red2); }
.shock-mode-root .lv.up { color: var(--green); }
.shock-mode-root .lv.semantic-negative { color: var(--red2); }
.shock-mode-root .lv.semantic-warning { color: #f6b23c; }
.shock-mode-root .lv.semantic-positive { color: var(--green); }
.shock-mode-root .lv.semantic-neutral { color: #8fb4ff; }

.shock-mode-root .arr {
  font-style: normal;
  font-size: 9px;
  opacity: 0.95;
}

/* â”€â”€â”€ Hero / map â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .hero {
  position: relative;
  aspect-ratio: 2 / 1;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--stroke);
  background:
    radial-gradient(120% 90% at 50% 40%, rgba(40, 10, 8, 0.5), rgba(4, 5, 8, 0.2) 60%),
    linear-gradient(180deg, #06070b, #040507);
}

.shock-mode-root .mapbox {
  position: absolute;
  inset: 0;
}

.shock-mode-root .mapbox svg {
  width: 100%;
  height: 100%;
  display: block;
}

.shock-mode-root .land path {
  fill: #10141b;
  stroke: rgba(120, 150, 190, 0.1);
  stroke-width: 0.4;
}

.shock-mode-root .landglow {
  fill: none;
  stroke: rgba(255, 70, 50, 0.1);
  stroke-width: 1.1;
  filter: url(#soft);
}

.shock-mode-root .hot circle {
  transform-box: fill-box;
  transform-origin: center;
}

.shock-mode-root .hot {
  animation: hpulse var(--shock-pulse-speed, 3.4s) ease-in-out infinite;
  animation-delay: var(--d);
}

.shock-mode-root .rnode {
  animation: hpulse var(--shock-pulse-speed, 2.6s) ease-in-out infinite;
}

@keyframes hpulse {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}

.shock-mode-root .flowbase {
  fill: none;
  stroke: rgba(255, 60, 40, 0.16);
  stroke-width: 1.1;
}

.shock-mode-root .flow {
  fill: none;
  stroke: url(#fg);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-dasharray: 26 var(--len);
  stroke-dashoffset: 0;
  animation: shock-flow calc(var(--dur) * var(--shock-flow-speed, 1)) linear infinite;
  animation-delay: var(--dl);
  filter: url(#soft);
}

.shock-mode-root .shock-map--event-open .flow,
.shock-mode-root .shock-map--event-open .flowbase {
  opacity: 0.34;
}

.shock-mode-root .shock-map-route-layer {
  position: absolute;
  inset: 0;
  z-index: 7;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.18s ease;
}

.shock-mode-root .shock-map--event-open .shock-map-route-layer {
  opacity: 1;
}

.shock-mode-root .shock-route {
  fill: none;
  stroke: rgba(255, 92, 58, 0.62);
  stroke-width: 0.28;
  stroke-linecap: round;
  stroke-dasharray: 1.8 1.4;
  filter: drop-shadow(0 0 5px rgba(255, 70, 45, 0.34));
  animation: shock-route-travel 1.7s linear infinite;
  animation-delay: var(--route-delay, 0s);
}

@keyframes shock-route-travel {
  to { stroke-dashoffset: -6; }
}

@keyframes shock-flow {
  to { stroke-dashoffset: calc(-1 * (var(--len) + 26) * 1px); }
}

.shock-mode-root .hero-head {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  padding: 16px 22px;
  z-index: 6;
  pointer-events: none;
}

.shock-mode-root .h-title {
  position: absolute;
  left: 50%;
  top: 14px;
  transform: translateX(-50%);
  text-align: center;
}

.shock-mode-root .h-title h1 {
  font-size: 38px;
  font-weight: 700;
  color: #ff3b30;
  letter-spacing: 1px;
  text-shadow:
    0 0 26px rgba(255, 50, 40, calc(0.6 * var(--shock-glow-alpha, 0.46) * 1.3)),
    0 0 60px rgba(255, 40, 30, calc(0.35 * var(--shock-glow-alpha, 0.46) * 1.3));
  animation: shock-breathe var(--shock-breathe-speed, 4s) ease-in-out infinite;
}

@keyframes shock-breathe {
  0%, 100% {
    text-shadow:
      0 0 24px rgba(255, 50, 40, 0.5),
      0 0 50px rgba(255, 40, 30, 0.28);
  }
  50% {
    text-shadow:
      0 0 34px rgba(255, 60, 45, 0.75),
      0 0 80px rgba(255, 40, 30, 0.45);
  }
}

.shock-mode-root .h-title p {
  font-size: 13px;
  color: var(--txt2);
  margin-top: 6px;
}

.shock-mode-root .h-right {
  position: absolute;
  right: 22px;
  top: 14px;
  direction: ltr;
  display: flex;
  align-items: flex-start;
  gap: 24px;
}

.shock-mode-root .h-time { text-align: center; min-width: 140px; }
.shock-mode-root .h-time .lab { font-size: 11px; color: var(--txt2); }

.shock-mode-root .h-time .t {
  font-family: var(--mono);
  font-size: 26px;
  font-weight: 600;
  color: #ff463c;
  text-shadow: 0 0 16px rgba(255, 60, 45, 0.5);
  margin-top: 3px;
}

.shock-mode-root .stopbtn {
  pointer-events: auto;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 10px 16px;
  border-radius: 10px;
  border: 1px solid rgba(255, 80, 60, 0.5);
  background: linear-gradient(180deg, rgba(255, 55, 42, 0.22), rgba(200, 30, 22, 0.12));
  color: #ff9484;
  font-family: var(--ar);
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 0 22px rgba(255, 50, 35, 0.2);
  transition: 0.2s;
}

.shock-mode-root .stopbtn:hover {
  color: #fff;
  background: linear-gradient(180deg, rgba(255, 55, 42, 0.34), rgba(200, 30, 22, 0.2));
}

.shock-mode-root .stopbtn .sq {
  width: 11px;
  height: 11px;
  border-radius: 3px;
  background: #ff5a4d;
  box-shadow: 0 0 8px #ff5a4d;
  animation: hpulse var(--shock-pulse-speed, 1.4s) infinite;
}

/* â”€â”€â”€ Region labels â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .rlabel {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 5;
  text-align: center;
  background: linear-gradient(180deg, rgba(14, 16, 21, 0.78), rgba(10, 11, 15, 0.6));
  border: 1px solid rgba(var(--sm-tint2), 0.07);
  border-radius: 10px;
  padding: 7px 11px;
  backdrop-filter: blur(6px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5), inset 0 0 14px rgba(255, 60, 40, 0.05);
  white-space: nowrap;
}

.shock-mode-root .rlabel-europe {
  transform: translate(-50%, calc(-50% + 32px));
}

.shock-mode-root .rl-name { font-size: 12px; font-weight: 700; color: #eef0f4; }
.shock-mode-root .rl-sub { font-size: 10px; color: var(--txt3); margin-top: 1px; }
.shock-mode-root .rl-lvl { font-size: 11px; font-weight: 700; margin-top: 2px; }

.shock-mode-root .lvl-vhigh { color: #ff3b34; text-shadow: 0 0 10px rgba(255, 50, 40, 0.5); }
.shock-mode-root .lvl-high { color: #ff6a4d; }
.shock-mode-root .lvl-mid { color: #f6b23c; }
.shock-mode-root .lvl-low { color: #33d98a; }
.shock-mode-root .rl-lvl.semantic-negative { color: #ff6a4d; }
.shock-mode-root .rl-lvl.semantic-warning { color: #f6b23c; }
.shock-mode-root .rl-lvl.semantic-positive { color: #33d98a; }
.shock-mode-root .rl-lvl.semantic-neutral { color: #8fb4ff; }

.shock-mode-root .rl-amt {
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 600;
  color: #cfd3da;
  margin-top: 3px;
}

.shock-mode-root .rlabel.shock-map-hotspot-button {
  z-index: 5;
  font: inherit;
  color: inherit;
  cursor: pointer;
  pointer-events: auto;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease,
    transform 0.18s ease,
    background 0.18s ease;
}

.shock-mode-root .rlabel.shock-map-hotspot-button:hover,
.shock-mode-root .rlabel.shock-map-hotspot-button.is-active {
  border-color: rgba(255, 90, 70, 0.42);
  background:
    radial-gradient(120% 120% at 50% 0%, rgba(255, 70, 50, 0.15), transparent 65%),
    linear-gradient(180deg, rgba(17, 14, 18, 0.88), rgba(9, 10, 14, 0.68));
  box-shadow:
    0 8px 24px rgba(0, 0, 0, 0.55),
    0 0 18px rgba(255, 60, 45, 0.16),
    inset 0 0 16px rgba(255, 60, 40, 0.07);
}

.shock-mode-root .shock-map-node-button {
  position: absolute;
  transform: translate(-50%, -50%);
  z-index: 5;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--redsoft);
  font-family: var(--ar);
  cursor: pointer;
  pointer-events: auto;
}

.shock-mode-root .shock-map-node-button__core {
  position: absolute;
  inset: 10px;
  border-radius: 999px;
  background:
    radial-gradient(circle, #fff0e8 0 13%, #ff7a5c 14% 28%, rgba(255, 58, 45, 0.28) 29% 72%, transparent 73%);
  box-shadow:
    0 0 14px rgba(255, 80, 60, 0.55),
    0 0 34px rgba(255, 45, 36, 0.22);
  animation: hpulse var(--shock-pulse-speed, 2.6s) ease-in-out infinite;
}

.shock-mode-root .shock-map-node-button__core::after {
  content: '';
  position: absolute;
  inset: -8px;
  border-radius: inherit;
  border: 1px solid rgba(255, 90, 70, 0.38);
  animation: shock-map-node-ring calc(var(--shock-pulse-speed, 2.6s) * 1.2) ease-out infinite;
}

.shock-mode-root .shock-map-node-button__label {
  position: absolute;
  left: 50%;
  top: 35px;
  transform: translateX(-50%);
  padding: 2px 7px 3px;
  border-radius: 999px;
  border: 1px solid rgba(255, 90, 70, 0.18);
  background: rgba(8, 9, 12, 0.62);
  color: rgba(255, 210, 196, 0.82);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.18s ease;
}

.shock-mode-root .shock-map-node-button:hover .shock-map-node-button__label,
.shock-mode-root .shock-map-node-button.is-active .shock-map-node-button__label {
  opacity: 1;
}

@keyframes shock-map-node-ring {
  0% { opacity: 0.6; transform: scale(0.72); }
  100% { opacity: 0; transform: scale(1.75); }
}

/* â”€â”€â”€ Shock event intelligence card â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .shock-map-event-card {
  position: absolute;
  left: var(--shock-map-card-left);
  top: var(--shock-map-card-top);
  z-index: 9;
  width: min(324px, calc(100% - 24px));
  max-height: calc(100% - 20px);
  overflow: auto;
  transform: var(--shock-map-card-transform);
  transform-origin: var(--shock-map-card-origin);
  direction: rtl;
  text-align: right;
  border-radius: 16px;
  border: 1px solid rgba(255, 75, 60, 0.28);
  background:
    radial-gradient(120% 110% at 50% 0%, rgba(255, 55, 42, 0.14), transparent 56%),
    linear-gradient(180deg, rgba(14, 10, 12, 0.94), rgba(6, 7, 10, 0.88));
  box-shadow:
    0 18px 40px rgba(0, 0, 0, 0.66),
    0 0 34px rgba(255, 44, 34, calc(0.12 * var(--shock-glow-alpha, 0.46) * 2)),
    inset 0 0 28px rgba(255, 60, 44, 0.055);
  backdrop-filter: blur(12px);
  animation: shock-map-card-in 0.2s cubic-bezier(0.2, 0.7, 0.2, 1) both;
}

.shock-mode-root .shock-map-event-card__scan {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  background:
    linear-gradient(90deg, transparent, rgba(255, 80, 62, 0.1), transparent),
    repeating-linear-gradient(0deg, rgba(var(--sm-tint2), 0.022) 0 1px, transparent 1px 4px);
  mask: linear-gradient(#000, transparent 86%);
}

.shock-mode-root .shock-map-event-card__head {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 9px;
  padding: 12px 12px 10px;
  border-bottom: 1px solid rgba(255, 80, 65, 0.12);
}

.shock-mode-root .shock-map-event-card__pulse {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--red2);
  box-shadow: 0 0 12px rgba(255, 80, 60, 0.75);
  animation: hpulse var(--shock-pulse-speed, 2.2s) ease-in-out infinite;
}

.shock-mode-root .shock-map-event-card__eyebrow {
  margin: 0 0 2px;
  color: var(--redsoft);
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.04em;
}

.shock-mode-root .shock-map-event-card h3 {
  color: #f2f4f7;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.2;
}

.shock-mode-root .shock-map-event-card__risk {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 56px;
  padding: 5px 8px;
  border-radius: 10px;
  border: 1px solid rgba(255, 90, 70, 0.24);
  background: rgba(255, 55, 42, 0.075);
}

.shock-mode-root .shock-map-event-card__risk span {
  color: #ff7a64;
  font-size: 11px;
  font-weight: 800;
}

.shock-mode-root .shock-map-event-card__risk small {
  color: rgba(255, 216, 204, 0.6);
  font-size: 9px;
  white-space: nowrap;
}

.shock-mode-root .shock-map-event-card__close {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  border: 1px solid rgba(255, 90, 70, 0.2);
  background: rgba(255, 60, 44, 0.06);
  color: rgba(255, 226, 218, 0.78);
  font: 700 18px/1 var(--ar);
  cursor: pointer;
}

.shock-mode-root .shock-map-event-card__core {
  position: relative;
  padding: 11px 12px 8px;
}

.shock-mode-root .shock-map-event-card__shock {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  margin-bottom: 7px;
}

.shock-mode-root .shock-map-event-card__shock span,
.shock-mode-root .shock-map-event-card dt,
.shock-mode-root .shock-map-event-card__brief span,
.shock-mode-root .shock-map-event-card__lower span {
  color: rgba(255, 190, 174, 0.62);
  font-size: 9.5px;
  font-weight: 800;
}

.shock-mode-root .shock-map-event-card__shock strong {
  color: #ff8a72;
  font-size: 13px;
  font-weight: 900;
}

.shock-mode-root .shock-map-event-card p,
.shock-mode-root .shock-map-event-card dd {
  color: rgba(238, 241, 246, 0.86);
  font-size: 11.5px;
  line-height: 1.55;
}

.shock-mode-root .shock-map-event-card__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
  padding: 0 12px 10px;
}

.shock-mode-root .shock-map-event-card__grid > div,
.shock-mode-root .shock-map-event-card__brief,
.shock-mode-root .shock-map-event-card__lower > div {
  border: 1px solid rgba(var(--sm-tint2), 0.055);
  border-radius: 11px;
  background: rgba(var(--sm-tint2), 0.026);
  box-shadow: inset 0 0 16px rgba(255, 58, 42, 0.025);
}

.shock-mode-root .shock-map-event-card__grid > div {
  min-width: 0;
  padding: 7px 8px;
}

.shock-mode-root .shock-map-event-card dd {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  margin-top: 3px;
  font-weight: 700;
}

.shock-mode-root .shock-map-event-card dd span,
.shock-mode-root .shock-map-event-card dd em {
  color: rgba(255, 216, 205, 0.62);
  font-size: 9.5px;
  font-style: normal;
}

.shock-mode-root .shock-map-event-card__brief {
  margin: 0 12px 9px;
  padding: 8px 9px;
  border-color: rgba(255, 90, 70, 0.14);
  background: rgba(255, 48, 36, 0.045);
}

.shock-mode-root .shock-map-event-card__brief p {
  margin-top: 3px;
  color: #f3d0c5;
  font-weight: 800;
}

.shock-mode-root .shock-map-event-card__lower {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 0 12px 10px;
}

.shock-mode-root .shock-map-event-card__lower > div {
  padding: 7px 8px;
}

.shock-mode-root .shock-map-event-card__foot {
  padding: 9px 12px 12px;
  border-top: 1px solid rgba(255, 80, 65, 0.1);
}

.shock-mode-root .shock-map-event-card__foot p {
  color: rgba(255, 229, 222, 0.78);
  font-weight: 700;
}

.shock-mode-root .shock-map-event-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 7px;
}

.shock-mode-root .shock-map-event-card__meta span,
.shock-mode-root .shock-map-event-card__foot small {
  border-radius: 999px;
  border: 1px solid rgba(255, 90, 70, 0.16);
  background: rgba(255, 60, 44, 0.055);
  color: rgba(255, 206, 194, 0.72);
  font-size: 9px;
  font-weight: 800;
}

.shock-mode-root .shock-map-event-card__meta span {
  padding: 3px 7px;
}

.shock-mode-root .shock-map-event-card__foot small {
  display: block;
  margin-top: 7px;
  padding: 5px 7px;
  line-height: 1.45;
}

.shock-mode-root .shock-map-event-card--calm {
  border-color: rgba(51, 217, 138, 0.18);
}

.shock-mode-root .shock-map-event-card--critical {
  border-color: rgba(255, 58, 46, 0.44);
  box-shadow:
    0 18px 46px rgba(0, 0, 0, 0.72),
    0 0 42px rgba(255, 44, 34, 0.22),
    inset 0 0 34px rgba(255, 50, 38, 0.08);
}

@keyframes shock-map-card-in {
  from {
    opacity: 0;
    transform: var(--shock-map-card-transform) scale(0.96);
  }
  to {
    opacity: 1;
    transform: var(--shock-map-card-transform) scale(1);
  }
}

/* â”€â”€â”€ Legend â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .legend {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 6;
  text-align: center;
}

.shock-mode-root .legend .lt { font-size: 11px; color: var(--txt2); margin-bottom: 5px; }
.shock-mode-root .legend .bar { display: flex; align-items: center; gap: 8px; direction: rtl; }

.shock-mode-root .legend .grad {
  width: 230px;
  height: 7px;
  border-radius: 4px;
  background: linear-gradient(90deg, #3a0d09, #7a140d, #c4271a, #ff3b30, #ff6a4d);
  box-shadow: 0 0 14px rgba(255, 50, 35, 0.3);
}

.shock-mode-root .legend .e { font-size: 10px; color: var(--txt3); }

/* â”€â”€â”€ Lower row: chart + AI â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .lower {
  display: flex;
  gap: 13px;
  direction: ltr;
}

.shock-mode-root .chartpanel { flex: 1.5; min-width: 0; }
.shock-mode-root .aipanel { flex: 1; min-width: 0; }

.shock-mode-root .chart svg {
  width: 100%;
  height: auto;
  display: block;
}

.shock-mode-root .cl {
  fill: none;
  stroke-width: 1.7;
  filter: drop-shadow(0 0 4px var(--col));
  opacity: 0.95;
}

.shock-mode-root .xlab {
  fill: var(--txt3);
  font-size: 10px;
  font-family: var(--mono);
}

.shock-mode-root .clegend {
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 10px;
  direction: rtl;
  margin-bottom: 8px;
}

.shock-mode-root .cli {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 11.5px;
  color: var(--txt2);
}

.shock-mode-root .cli i {
  width: 13px;
  height: 3px;
  border-radius: 2px;
  display: inline-block;
}

.shock-mode-root .ai-body {
  direction: rtl;
  text-align: center;
  padding: 6px 6px 4px;
}

.shock-mode-root .ai-body p {
  font-size: 13.5px;
  line-height: 1.95;
  color: #c9cdd5;
  margin-bottom: 16px;
}

.shock-mode-root .ai-warn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #ff5a4d;
  font-weight: 700;
  font-size: 14px;
  text-shadow: 0 0 12px rgba(255, 60, 45, 0.4);
}

.shock-mode-root .ai-warn svg { width: 17px; height: 17px; }

.shock-mode-root .shock-consensus-line {
  margin: 0 0 8px;
  font-size: 11px;
  line-height: 1.55;
  color: rgba(var(--sm-tint2), 0.62);
  text-align: center;
}
.shock-mode-root .shock-consensus-line--ok {
  color: rgba(120, 220, 160, 0.85);
}
.shock-mode-root .shock-consensus-line--warn {
  color: rgba(246, 178, 60, 0.9);
}

.shock-mode-root .shock-transition-line {
  margin: 0 0 8px;
  font-size: 10.5px;
  line-height: 1.5;
  text-align: center;
  opacity: 0.88;
}

/* â”€â”€â”€ Shock reading (Ù…Ø±Ø§Ù‚Ø¨Ø© Ø§Ù„ØµØ¯Ù…Ø©) â€” clear hierarchy, same panel â”€â”€â”€â”€â”€ */
.shock-mode-root .shock-reading {
  margin: 4px 0 10px;
  text-align: center;
  min-width: 0;
}
.shock-mode-root .shock-reading__summary {
  margin-bottom: 12px;
  padding: 10px 12px 9px;
  border-radius: 10px;
  background: rgba(8, 6, 8, 0.55);
  border: 1px solid rgba(255, 77, 69, 0.18);
  box-shadow: inset 0 0 22px rgba(255, 50, 40, 0.06);
}
.shock-mode-root .shock-reading__summary--warning {
  border-color: rgba(245, 158, 11, 0.2);
  box-shadow: inset 0 0 18px rgba(245, 158, 11, 0.05);
}
.shock-mode-root .shock-reading__summary--positive {
  border-color: rgba(34, 197, 94, 0.18);
  box-shadow: inset 0 0 18px rgba(34, 197, 94, 0.05);
}
.shock-mode-root .shock-reading__label {
  display: block;
  font-size: 10.5px;
  font-weight: 700;
  color: var(--redsoft);
  margin-bottom: 5px;
  letter-spacing: 0.02em;
}
.shock-mode-root .shock-reading__summary-text {
  margin: 0 !important;
  font-size: 14.5px !important;
  font-weight: 700;
  line-height: 1.45 !important;
  color: #f0f2f6 !important;
  overflow-wrap: break-word;
}
.shock-mode-root .shock-reading__rows {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 8px;
}
.shock-mode-root .shock-reading__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 2px 8px;
  align-items: start;
  padding: 7px 9px;
  border-radius: 8px;
  background: rgba(var(--sm-tint2), 0.025);
  border: 1px solid rgba(var(--sm-tint2), 0.05);
  text-align: right;
}
.shock-mode-root .shock-reading__row .shock-reading__label {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
  font-size: 10px;
  color: rgba(var(--sm-tint2), 0.72);
}
.shock-mode-root .shock-reading__value {
  grid-column: 1;
  grid-row: 2;
  margin: 0 !important;
  font-size: 11px !important;
  line-height: 1.5 !important;
  text-align: right;
  overflow-wrap: break-word;
}
.shock-mode-root .shock-reading__badge {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  white-space: nowrap;
  border: 1px solid rgba(var(--sm-tint2), 0.1);
  background: rgba(255, 60, 50, 0.08);
  color: var(--redsoft);
}
.shock-mode-root .shock-reading__badge--warning,
.shock-mode-root .shock-reading__badge.zs-tone-warning {
  border-color: rgba(245, 158, 11, 0.28);
  background: rgba(245, 158, 11, 0.08);
  color: #fbbf24;
}
.shock-mode-root .shock-reading__badge--positive,
.shock-mode-root .shock-reading__badge.zs-tone-positive {
  border-color: rgba(34, 197, 94, 0.26);
  background: rgba(34, 197, 94, 0.08);
  color: #4ade80;
}
.shock-mode-root .shock-reading__footer {
  margin: 2px 0 0;
  padding: 6px 8px 0;
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1.4;
}
.shock-mode-root .shock-reading__footer--positive,
.shock-mode-root .shock-reading__footer.zs-tone-positive {
  color: #4ade80;
}
.shock-mode-root .shock-reading__footer--neutral,
.shock-mode-root .shock-reading__footer.zs-tone-neutral {
  color: rgba(var(--sm-tint2), 0.45);
}
.shock-mode-root .shock-reading__summary-text.zs-tone-negative,
.shock-mode-root .shock-reading__value.zs-tone-negative {
  color: #ff8a82 !important;
}
.shock-mode-root .shock-reading__summary-text.zs-tone-warning,
.shock-mode-root .shock-reading__value.zs-tone-warning {
  color: #fbbf24 !important;
}
.shock-mode-root .shock-reading__summary-text.zs-tone-positive,
.shock-mode-root .shock-reading__value.zs-tone-positive {
  color: #86efac !important;
}

.shock-mode-root .ai-intel-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  margin-bottom: 10px;
  direction: rtl;
}

.shock-mode-root .im-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  border-radius: 999px;
  border: 1px solid var(--stroke);
  background: rgba(12, 14, 18, 0.65);
  font-size: 10.5px;
  font-weight: 600;
  color: var(--txt2);
}

.shock-mode-root .im-pill b {
  font-family: var(--mono);
  font-weight: 700;
  color: var(--txt);
}

.shock-mode-root .im-pill-threat { border-color: rgba(255, 72, 60, 0.28); color: var(--redsoft); }
.shock-mode-root .im-pill-cycle { border-color: rgba(91, 140, 255, 0.24); color: #8fb4ff; }
.shock-mode-root .im-pill-driver { border-color: rgba(246, 178, 60, 0.26); color: #f6c86a; }

.shock-mode-root .im-pill-anomaly {
  border-color: rgba(246, 178, 60, 0.34);
  color: #ffb84d;
  box-shadow: 0 0 12px rgba(246, 178, 60, 0.12);
}

.shock-mode-root .ai-rotator {
  min-height: 3.2em;
  animation: shock-ai-fade 0.7s ease both;
}

@keyframes shock-ai-fade {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

.shock-mode-root .ai-tone-neutral { color: #c9cdd5; }
.shock-mode-root .ai-tone-warning { color: #ffb84d; }
.shock-mode-root .ai-tone-rotation { color: #8fb4ff; }
.shock-mode-root .ai-tone-panic { color: #ff6a4d; text-shadow: 0 0 10px rgba(255, 60, 45, 0.35); }
.shock-mode-root .ai-tone-anomaly { color: #f6b23c; text-shadow: 0 0 10px rgba(246, 178, 60, 0.3); }

/* â”€â”€â”€ Scenario cards â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .scn-sec {
  direction: rtl;
  margin-top: 18px;
  width: 100%;
  min-width: 0;
  flex: 0 0 auto;
}

.shock-mode-root .scn-sec h3 {
  font-size: 18px;
  font-weight: 700;
  color: #eceef2;
  margin-bottom: 13px;
  padding-right: 4px;
}

.shock-mode-root .scn-row {
  direction: ltr;
  display: flex;
  align-items: stretch;
  gap: 11px;
}

.shock-mode-root .scard {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 11px;
  direction: rtl;
  padding: 13px 14px;
  border-radius: 12px;
  border: 1px solid var(--stroke);
  background: linear-gradient(180deg, var(--panel), var(--panel2));
  cursor: pointer;
  transition: 0.22s;
  text-align: right;
  backdrop-filter: blur(8px);
}

.shock-mode-root .scard:hover {
  border-color: var(--stroke2);
  transform: translateY(-2px);
}

.shock-mode-root .sc-ic {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  border-radius: 9px;
  display: grid;
  place-items: center;
  color: var(--txt2);
  background: rgba(var(--sm-tint2), 0.04);
  border: 1px solid var(--stroke);
}

.shock-mode-root .sc-ic svg { width: 19px; height: 19px; }

.shock-mode-root .sc-tx {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.shock-mode-root .sc-tx b {
  font-size: 13px;
  color: #eceef2;
  font-weight: 700;
  white-space: nowrap;
}

.shock-mode-root .sc-tx em {
  font-size: 11px;
  color: var(--txt3);
  font-style: normal;
  white-space: nowrap;
}

.shock-mode-root .scard.red.active {
  border-color: var(--strokeR);
  background:
    radial-gradient(120% 130% at 50% 0%, rgba(255, 50, 40, 0.2), transparent 60%),
    linear-gradient(180deg, rgba(30, 12, 12, 0.8), rgba(18, 9, 10, 0.6));
  box-shadow: 0 0 26px rgba(255, 40, 30, 0.16);
}

.shock-mode-root .scard.red.active .sc-ic {
  color: #fff;
  background: linear-gradient(150deg, #ff4d3f, #c4231a);
  border-color: transparent;
  box-shadow: 0 0 14px rgba(255, 60, 40, 0.5);
}

.shock-mode-root .scard.green .sc-ic {
  color: var(--green);
  background: rgba(40, 180, 110, 0.1);
  border-color: rgba(40, 200, 120, 0.22);
}

.shock-mode-root .scard.redt .sc-ic {
  color: #ff6a4d;
  background: rgba(255, 70, 50, 0.1);
  border-color: rgba(255, 70, 50, 0.22);
}

.shock-mode-root .scard.purple .sc-ic {
  color: var(--purple);
  background: rgba(150, 90, 230, 0.12);
  border-color: rgba(150, 90, 230, 0.24);
}

.shock-mode-root .chev {
  display: flex;
  align-items: center;
  color: var(--red3);
  font-size: 24px;
  font-weight: 700;
  padding: 0 1px;
}

/* â”€â”€â”€ Cinematic aura (brain-reactive) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .shock-aura {
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
  mix-blend-mode: screen;
  opacity: var(--shock-halo-alpha, 0.32);
  transition: opacity 1.2s ease;
}

.shock-mode-root .aura-ring {
  position: absolute;
  left: 50%;
  top: 42%;
  width: 78vmin;
  height: 78vmin;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: radial-gradient(
    circle at 50% 50%,
    color-mix(in srgb, var(--shock-accent, #ff5a4d) 40%, transparent) 0%,
    transparent 64%
  );
  filter: blur(28px);
  animation: shock-halo-breathe var(--shock-breathe-speed, 4.2s) ease-in-out infinite;
}

.shock-mode-root .aura-pulse {
  position: absolute;
  left: 50%;
  top: 42%;
  width: 62vmin;
  height: 62vmin;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0.78);
  border: 1px solid color-mix(in srgb, var(--shock-accent, #ff5a4d) 60%, transparent);
  opacity: 0;
  animation: shock-pulse-ring calc(var(--shock-pulse-speed, 3s) * 1.4) ease-out infinite;
}

@keyframes shock-halo-breathe {
  0%, 100% { opacity: 0.72; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
}

@keyframes shock-pulse-ring {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(0.72); }
  30% { opacity: 0.55; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(1.5); }
}

/* â”€â”€â”€ Tier modifiers â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root.tier-calm .h-title h1 {
  color: #ff8a72;
  text-shadow: 0 0 16px rgba(255, 90, 70, 0.35), 0 0 40px rgba(255, 40, 30, 0.18);
}

.shock-mode-root.tier-active .scenario {
  box-shadow: 0 0 24px rgba(255, 40, 30, 0.08), inset 0 0 18px rgba(255, 40, 30, 0.04);
}

.shock-mode-root.tier-elevated .h-title h1 { color: #ff3b30; }

.shock-mode-root.tier-critical .scenario,
.shock-mode-root.tier-extreme .scenario {
  box-shadow: 0 0 40px rgba(255, 40, 30, 0.18), inset 0 0 28px rgba(255, 40, 30, 0.08);
  border-color: rgba(255, 72, 60, 0.42);
}

.shock-mode-root.tier-extreme .h-title h1 {
  color: #ff2a1d;
  text-shadow: 0 0 30px rgba(255, 40, 30, 0.8), 0 0 60px rgba(255, 40, 30, 0.4);
}

.shock-mode-root.tier-critical .bg .scan,
.shock-mode-root.tier-extreme .bg .scan {
  animation: shock-scan-scroll 8s linear infinite;
}

@keyframes shock-scan-scroll {
  0% { background-position: 0 0; }
  100% { background-position: 0 120px; }
}

/* â”€â”€â”€ Anomaly state â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root.shock-anomaly .aura-ring {
  background: radial-gradient(
    circle at 50% 50%,
    color-mix(in srgb, var(--shock-accent, #ff5a4d) 32%, transparent) 0%,
    color-mix(in srgb, #f6b23c 18%, transparent) 50%,
    transparent 70%
  );
}

.shock-mode-root.shock-anomaly .aipanel {
  border-color: rgba(246, 178, 60, 0.28);
  box-shadow: 0 0 28px rgba(246, 178, 60, 0.08), inset 0 0 20px rgba(255, 40, 30, 0.06);
}

/* â”€â”€â”€ Reduced motion â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (prefers-reduced-motion: reduce) {
  .shock-mode-root .aura-ring,
  .shock-mode-root .aura-pulse,
  .shock-mode-root .pt,
  .shock-mode-root .hot,
  .shock-mode-root .rnode,
  .shock-mode-root .flow,
  .shock-mode-root .h-title h1,
  .shock-mode-root .ai-rotator,
  .shock-mode-root .bg .scan,
  .shock-mode-root .shock-map-node-button__core,
  .shock-mode-root .shock-map-node-button__core::after,
  .shock-mode-root .shock-map-event-card,
  .shock-mode-root .shock-map-event-card__pulse {
    animation: none !important;
  }
}

/* â”€â”€â”€ Responsive â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
@media (max-width: 1180px) {
  .shock-mode-root .col-left { flex-basis: 190px; }
  .shock-mode-root .col-right { flex-basis: 176px; }
  .shock-mode-root .h-title h1 { font-size: 30px; }
}

@media (max-width: 980px) {
  .shock-mode-root .body { flex-direction: column; }
  .shock-mode-root .body-main { width: 100%; }
  .shock-mode-root .stage { flex-direction: column; }
  .shock-mode-root .lower { flex-direction: column; }
  .shock-mode-root .scn-row { flex-wrap: wrap; }
  .shock-mode-root .scard { flex: 1 1 45%; }
  .shock-mode-root .shock-reading__summary-text {
    font-size: 13.5px !important;
  }
  .shock-mode-root .shock-reading__row {
    padding: 6px 8px;
    gap: 2px 6px;
  }
  .shock-mode-root .shock-reading__badge {
    font-size: 8.5px;
    padding: 2px 6px;
  }
  .shock-mode-root .shock-map-event-card {
    width: min(304px, calc(100% - 18px));
  }
  .shock-mode-root .shock-map-event-card__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .shock-mode-root .rlabel {
    padding: 5px 7px;
    border-radius: 8px;
    line-height: 1.15;
  }
  .shock-mode-root .rl-name { font-size: 10px; }
  .shock-mode-root .rl-sub {
    font-size: 8.5px;
    margin-top: 0;
  }
  .shock-mode-root .rl-lvl {
    font-size: 9.5px;
    margin-top: 1px;
  }
  .shock-mode-root .rl-amt {
    font-size: 10px;
    margin-top: 2px;
  }
  .shock-mode-root .shock-map-event-card {
    left: 50% !important;
    top: 14px !important;
    width: calc(100% - 18px);
    max-height: calc(100% - 26px);
    transform: translateX(-50%) !important;
    transform-origin: top center;
    animation: none;
  }
  .shock-mode-root .shock-map-event-card__head {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }
  .shock-mode-root .shock-map-event-card__close {
    grid-column: 3;
    grid-row: 1;
  }
  .shock-mode-root .shock-map-event-card__risk {
    grid-column: 1 / -1;
    width: 100%;
    flex-direction: row;
    justify-content: center;
  }
  .shock-mode-root .shock-map-node-button__label {
    opacity: 1;
  }
}

/* Compact cinematic hotspot card â€” intentionally overrides the earlier larger panel. */
.shock-mode-root .hero.shock-map-focus .mapbox {
  filter: brightness(0.94) saturate(0.95);
  transition: filter 0.18s ease;
}

.shock-mode-root .rlabel.shock-map-hotspot-button.is-active,
.shock-mode-root .shock-map-node-button.is-active {
  z-index: 35;
}

.shock-mode-root .shock-hotspot--active {
  opacity: 1;
}

.shock-mode-root .shock-map--event-open .shock-map-hotspot-button:not(.is-active) {
  z-index: 4;
  opacity: 0.28;
  filter: saturate(0.75);
}

.shock-mode-root .shock-map--event-open .shock-map-hotspot-button:not(.is-active):hover {
  opacity: 0.42;
}

.shock-mode-root .rlabel.shock-map-hotspot-button.is-active {
  border-color: rgba(255, 235, 220, 0.72);
  box-shadow:
    0 8px 24px rgba(0, 0, 0, 0.58),
    0 0 0 1px rgba(255, 210, 190, 0.22),
    0 0 30px rgba(255, 74, 48, 0.42),
    inset 0 0 18px rgba(255, 60, 40, 0.09);
}

.shock-mode-root .shock-map-node-button.is-active .shock-map-node-button__core {
  box-shadow:
    0 0 0 1px rgba(255, 235, 220, 0.62),
    0 0 22px rgba(255, 110, 82, 0.86),
    0 0 52px rgba(255, 45, 36, 0.4);
  animation-duration: calc(var(--shock-pulse-speed, 2.6s) * 0.72);
}

.shock-mode-root .shock-map-event-card {
  z-index: 45;
  width: min(320px, calc(100% - 24px));
  max-height: min(58vh, 360px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: none;
  border-radius: 14px;
  isolation: isolate;
  background:
    radial-gradient(120% 110% at 50% 0%, rgba(255, 55, 42, 0.13), transparent 56%),
    linear-gradient(180deg, rgba(18, 8, 8, 0.96), rgba(7, 6, 8, 0.94));
  transform: var(--shock-map-card-transform, translate3d(0, 0, 0));
}

.shock-mode-root .shock-map-event-card-layer {
  position: absolute;
  inset: 0;
  z-index: 40;
  overflow: visible;
  pointer-events: none;
}

.shock-mode-root .shock-map-connector {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
}

.shock-mode-root .shock-map-connector__line {
  stroke: rgba(255, 105, 64, 0.58);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-dasharray: 4 7;
  filter: drop-shadow(0 0 5px rgba(255, 72, 42, 0.5));
  animation: shock-connector-drift 1.8s linear infinite;
}

.shock-mode-root .shock-map-connector__dot {
  fill: rgba(255, 226, 206, 0.94);
  filter: drop-shadow(0 0 8px rgba(255, 78, 48, 0.72));
}

@keyframes shock-connector-drift {
  to { stroke-dashoffset: -11; }
}

.shock-mode-root .shock-map-event-card-layer .shock-map-event-card {
  pointer-events: auto;
}

.shock-mode-root .shock-map-event-card::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.shock-mode-root .shock-map-event-card__pointer {
  position: absolute;
  width: 12px;
  height: 12px;
  border: 1px solid rgba(255, 72, 60, 0.35);
  background: linear-gradient(135deg, rgba(17, 8, 9, 0.96), rgba(8, 6, 8, 0.94));
  box-shadow: 0 0 14px rgba(255, 50, 40, 0.2);
  transform: rotate(45deg);
  pointer-events: none;
}

.shock-mode-root .shock-map-event-card--right .shock-map-event-card__pointer {
  left: 3px;
  top: calc(50% - 6px);
  border-top: 0;
  border-right: 0;
}

.shock-mode-root .shock-map-event-card--left .shock-map-event-card__pointer {
  right: 3px;
  top: calc(50% - 6px);
  border-bottom: 0;
  border-left: 0;
}

.shock-mode-root .shock-map-event-card--bottom .shock-map-event-card__pointer {
  left: calc(50% - 6px);
  top: 3px;
  border-right: 0;
  border-bottom: 0;
}

.shock-mode-root .shock-map-event-card--top .shock-map-event-card__pointer {
  left: calc(50% - 6px);
  bottom: 3px;
  border-left: 0;
  border-top: 0;
}

.shock-mode-root .shock-map-event-card__head {
  position: sticky;
  top: 0;
  z-index: 3;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: 8px;
  padding: 10px 11px 8px;
  background:
    radial-gradient(100% 120% at 50% 0%, rgba(255, 55, 42, 0.14), transparent 58%),
    linear-gradient(180deg, rgba(20, 9, 11, 0.98), rgba(11, 7, 9, 0.96));
  backdrop-filter: blur(12px);
}

.shock-mode-root .shock-map-event-card h3 {
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 15px;
}

.shock-mode-root .shock-map-event-card__risk {
  min-width: 46px;
  padding: 4px 8px;
}

.shock-mode-root .shock-map-event-card__close {
  width: 22px;
  height: 22px;
  font-size: 16px;
}

.shock-mode-root .shock-map-event-card__shock-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 11px 7px;
  border-bottom: 1px solid rgba(255, 80, 65, 0.08);
}

.shock-mode-root .shock-map-event-card__shock-label {
  color: rgba(255, 190, 174, 0.55);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2px;
  text-transform: none;
}

.shock-mode-root .shock-map-event-card__shock-line strong {
  color: #ff8a72;
  font-size: 13px;
  font-weight: 900;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 70%;
  text-align: end;
}

.shock-mode-root .shock-map-event-card__rows {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  padding: 8px 11px 0;
  margin: 0;
}

.shock-mode-root .shock-map-event-card__row {
  min-width: 0;
  padding: 6px 8px;
  border: 1px solid rgba(var(--sm-tint2), 0.055);
  border-radius: 9px;
  background: rgba(var(--sm-tint2), 0.024);
}

.shock-mode-root .shock-map-event-card dt,
.shock-mode-root .shock-map-event-card__watch span,
.shock-mode-root .shock-map-event-card__causal span {
  color: rgba(255, 190, 174, 0.6);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.2px;
}

.shock-mode-root .shock-map-event-card dd {
  margin-top: 2px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
  color: rgba(238, 241, 246, 0.88);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.35;
}

.shock-mode-root .shock-map-event-card__row-value {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
}

.shock-mode-root .shock-map-event-card dd em {
  font-size: 10px;
  font-style: normal;
  flex: 0 0 auto;
}

.shock-mode-root .shock-map-change--positive {
  color: var(--green) !important;
}

.shock-mode-root .shock-map-change--negative {
  color: #ff6a4d !important;
}

.shock-mode-root .shock-map-news--aligned {
  color: var(--green);
}

.shock-mode-root .shock-map-news--mixed {
  color: #f6b23c;
}

.shock-mode-root .shock-map-news--conflicted {
  color: #ff6a4d;
}

.shock-mode-root .shock-map-event-card__watch {
  margin: 8px 11px 0;
  padding: 7px 9px;
  border: 1px solid rgba(255, 90, 70, 0.14);
  border-radius: 10px;
  background: rgba(255, 48, 36, 0.045);
}

.shock-mode-root .shock-map-event-card__watch p,
.shock-mode-root .shock-map-event-card__causal p {
  margin: 2px 0 0;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-size: 11px;
  line-height: 1.45;
}

.shock-mode-root .shock-map-event-card__watch p {
  -webkit-line-clamp: 2;
  color: #f3d0c5;
  font-weight: 800;
}

.shock-mode-root .shock-map-event-card__causal {
  padding: 8px 11px 11px;
  margin-top: 6px;
  border-top: 1px solid rgba(255, 80, 65, 0.08);
}

.shock-mode-root .shock-map-event-card__causal p {
  -webkit-line-clamp: 2;
  color: rgba(255, 229, 222, 0.78);
  font-weight: 700;
}

@media (max-width: 900px) {
  .shock-mode-root .shock-map-event-card {
    position: fixed;
    left: 12px !important;
    right: 12px;
    top: auto !important;
    bottom: 12px;
    width: calc(100% - 24px);
    max-height: min(62vh, calc(100% - 24px));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
    transform: none !important;
    transform-origin: bottom center;
  }

  .shock-mode-root .shock-map-event-card::-webkit-scrollbar {
    display: none;
  }

  .shock-mode-root .shock-map-event-card__pointer {
    display: none;
  }

  .shock-mode-root .shock-map-connector {
    display: none;
  }

  .shock-mode-root .shock-map-event-card__head {
    grid-template-columns: auto minmax(0, 1fr) auto auto;
  }

  .shock-mode-root .shock-map-event-card__risk {
    grid-column: auto;
    width: auto;
    flex-direction: column;
  }
}

/* â”€â”€â”€ Scenario simulation layer â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
/*
 * The "Change Scenario" experience layers visual simulation feedback on top
 * of the existing shock map. Nothing here mutates the brain â€” every effect is
 * scoped behind the `[data-sim-phase]` and `[data-sim-scenario]` attributes
 * on `.shock-mode-root` and only animates `transform`, `opacity`, `filter`
 * and color so we keep the page calm and the FPS stable.
 */

.shock-mode-root {
  --sim-tint: #ff5a4d;
  --sim-tint-soft: rgba(255, 90, 77, 0.55);
}

.shock-mode-root[data-sim-tone='red'] {
  --sim-tint: #ff5a4d;
  --sim-tint-soft: rgba(255, 90, 77, 0.55);
}

.shock-mode-root[data-sim-tone='redt'] {
  --sim-tint: #ff7c5a;
  --sim-tint-soft: rgba(255, 124, 90, 0.55);
}

.shock-mode-root[data-sim-tone='green'] {
  --sim-tint: #2ed79b;
  --sim-tint-soft: rgba(46, 215, 155, 0.55);
}

.shock-mode-root[data-sim-tone='purple'] {
  --sim-tint: #b478ff;
  --sim-tint-soft: rgba(180, 120, 255, 0.55);
}

.shock-mode-root[data-sim-tone='amber'] {
  --sim-tint: #f6b23c;
  --sim-tint-soft: rgba(246, 178, 60, 0.55);
}

/* Phase: dim â€” quick fade so the previous "world state" recedes */
.shock-mode-root[data-sim-phase='dim'] .hero .mapbox,
.shock-mode-root[data-sim-phase='dim'] .hero .flow,
.shock-mode-root[data-sim-phase='dim'] .hero .flowbase {
  filter: brightness(0.86) saturate(0.82);
  transition: filter 220ms ease;
}

.shock-mode-root[data-sim-phase='dim'] .shock-map-hotspot-button:not(.is-active) {
  opacity: 0.42;
  filter: saturate(0.7);
  transition: opacity 220ms ease, filter 220ms ease;
}

/* Phase: rebuild â€” banner shows, scenario routes start drawing */
.shock-mode-root[data-sim-phase='rebuild'] .hero .mapbox,
.shock-mode-root[data-sim-phase='rebuild'] .hero .flow,
.shock-mode-root[data-sim-phase='rebuild'] .hero .flowbase {
  filter: brightness(0.92) saturate(0.9);
  transition: filter 280ms ease;
}

/* Phase: settle â€” affected regions catch the contagion last */
.shock-mode-root[data-sim-phase='settle'] .shock-hotspot--scenario-affected,
.shock-mode-root[data-sim-phase='settle'] .shock-hotspot--scenario-origin {
  animation: shock-sim-region-ignite 380ms ease-out 1;
}

@keyframes shock-sim-region-ignite {
  0% { transform: scale(0.97); filter: brightness(0.92); }
  60% { transform: scale(1.02); filter: brightness(1.18); }
  100% { transform: scale(1); filter: brightness(1); }
}

/* Origin and affected hotspot identity highlight (stays after settle) */
.shock-mode-root .shock-hotspot--scenario-origin {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--sim-tint) 64%, transparent),
    0 0 14px color-mix(in srgb, var(--sim-tint) 44%, transparent);
}

.shock-mode-root .shock-map-node-button.shock-hotspot--scenario-origin
  .shock-map-node-button__core {
  box-shadow:
    0 0 0 2px color-mix(in srgb, var(--sim-tint) 60%, transparent),
    0 0 14px color-mix(in srgb, var(--sim-tint) 44%, transparent);
}

.shock-mode-root .shock-hotspot--scenario-affected:not(.is-active) {
  box-shadow: 0 0 10px color-mix(in srgb, var(--sim-tint) 28%, transparent);
}

/* Map-wide tint when the user has switched scenarios at least once.
 * We only nudge the existing flow lines â€” never replace them. */
.shock-mode-root.shock-sim-transitioning .hero .flow,
.shock-mode-root.shock-sim-transitioning .hero .flowbase {
  transition: filter 380ms ease, opacity 380ms ease;
}

/* Transition banner above the map */
.shock-mode-root .shock-sim-banner {
  position: absolute;
  top: 14px;
  left: 50%;
  transform: translate(-50%, -8px);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.2px;
  color: color-mix(in srgb, #ffe9e3 78%, var(--sim-tint) 22%);
  background:
    linear-gradient(180deg, rgba(20, 8, 8, 0.85), rgba(14, 6, 7, 0.7));
  border: 1px solid color-mix(in srgb, var(--sim-tint) 36%, transparent);
  box-shadow:
    0 6px 20px rgba(0, 0, 0, 0.36),
    0 0 18px color-mix(in srgb, var(--sim-tint) 24%, transparent);
  pointer-events: none;
  opacity: 0;
  z-index: 12;
  transition: opacity 220ms ease, transform 280ms ease;
  white-space: nowrap;
  backdrop-filter: blur(6px);
}

.shock-mode-root .shock-sim-banner__dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--sim-tint);
  box-shadow: 0 0 10px var(--sim-tint-soft);
  animation: shock-sim-banner-pulse 1.4s ease-in-out infinite;
}

@keyframes shock-sim-banner-pulse {
  0%, 100% { opacity: 0.55; transform: scale(0.92); }
  50% { opacity: 1; transform: scale(1.1); }
}

.shock-mode-root .shock-sim-banner--idle { opacity: 0; }

.shock-mode-root .shock-sim-banner--dim {
  opacity: 0.85;
  transform: translate(-50%, 0);
}

.shock-mode-root .shock-sim-banner--rebuild {
  opacity: 1;
  transform: translate(-50%, 0);
}

.shock-mode-root .shock-sim-banner--settle {
  opacity: 0.55;
  transform: translate(-50%, -2px);
}

/* Scenario route layer â€” same SVG model as the hotspot connector layer.
 * Route color is semantic (route meaning), not inherited from scenario tone.
 * Only visible when no event card is open so it never competes with hotspot focus. */
.shock-mode-root .shock-scenario-route-layer {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  overflow: visible;
  z-index: 6;
  opacity: 0;
  transition: opacity 360ms ease;
}

.shock-mode-root[data-sim-phase='rebuild'] .shock-scenario-route-layer,
.shock-mode-root[data-sim-phase='settle'] .shock-scenario-route-layer,
.shock-mode-root[data-sim-phase='idle'].shock-sim-transitioning
  .shock-scenario-route-layer,
.shock-mode-root[data-sim-phase='idle'] .shock-scenario-route-layer {
  opacity: 0.78;
}

.shock-mode-root[data-sim-phase='dim'] .shock-scenario-route-layer {
  opacity: 0;
}

.shock-mode-root .shock-scenario-route {
  fill: none;
  stroke: rgba(143, 180, 255, 0.55);
  stroke-width: 0.45;
  stroke-linecap: round;
  stroke-dasharray: 1.2 2.6;
  filter: drop-shadow(0 0 4px rgba(143, 180, 255, 0.22));
  opacity: 0.7;
  animation: shock-sim-route-flow 4.6s linear infinite;
  animation-delay: var(--route-delay, 0s);
}

.shock-mode-root .shock-sim-route--danger {
  stroke: #ff563f;
  opacity: 0.86;
  filter:
    drop-shadow(0 0 4px rgba(255, 70, 50, 0.48))
    drop-shadow(0 0 10px rgba(160, 20, 12, 0.2));
}

.shock-mode-root .shock-sim-route--warning {
  stroke: #f6a43c;
  opacity: 0.8;
  filter:
    drop-shadow(0 0 4px rgba(246, 164, 60, 0.38))
    drop-shadow(0 0 9px rgba(255, 90, 40, 0.12));
}

.shock-mode-root .shock-sim-route--positive {
  stroke: #2ed79b;
  opacity: 0.82;
  filter:
    drop-shadow(0 0 4px rgba(46, 215, 155, 0.38))
    drop-shadow(0 0 9px rgba(46, 215, 155, 0.14));
}

.shock-mode-root .shock-sim-route--neutral {
  stroke: rgba(143, 180, 255, 0.58);
  opacity: 0.62;
  filter: drop-shadow(0 0 4px rgba(143, 180, 255, 0.2));
}

@keyframes shock-sim-route-flow {
  0% { stroke-dashoffset: 0; }
  100% { stroke-dashoffset: -38; }
}

/* Pulse-speed identity for each scenario.
 * We only retune existing flow timing variables; we never inject new layers. */
.shock-mode-root.shock-sim-pulse-slow {
  --shock-pulse-speed: 4.6s;
  --shock-breathe-speed: 5.4s;
}
.shock-mode-root.shock-sim-pulse-normal {
  --shock-pulse-speed: 3.4s;
  --shock-breathe-speed: 4.2s;
}
.shock-mode-root.shock-sim-pulse-fast {
  --shock-pulse-speed: 2.4s;
  --shock-breathe-speed: 3.4s;
}
.shock-mode-root.shock-sim-pulse-sharp {
  --shock-pulse-speed: 2s;
  --shock-breathe-speed: 3s;
}

/* â”€â”€â”€ Scenario panel (left column) â€” "Current Simulation" identity â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .shock-scenario-panel {
  position: relative;
  isolation: isolate;
  border-color: color-mix(in srgb, var(--sim-tint) 38%, var(--strokeR));
  background:
    radial-gradient(120% 120% at 50% 0%,
      color-mix(in srgb, var(--sim-tint) 22%, transparent), transparent 60%),
    linear-gradient(180deg, rgba(28, 12, 12, 0.7), rgba(16, 9, 10, 0.55));
  box-shadow:
    0 0 28px color-mix(in srgb, var(--sim-tint) 22%, transparent),
    inset 0 0 22px color-mix(in srgb, var(--sim-tint) 8%, transparent);
  transition:
    border-color 320ms ease,
    box-shadow 320ms ease,
    transform 320ms ease,
    filter 320ms ease;
}

.shock-mode-root .shock-scenario-panel--rebuilding {
  filter: brightness(1.08);
}

.shock-mode-root .shock-scenario-panel .sc-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 800;
  color: color-mix(in srgb, var(--sim-tint) 60%, #ffe5dd 40%);
  letter-spacing: 0.2px;
}

.shock-mode-root .shock-scenario-pulse-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--sim-tint);
  box-shadow: 0 0 8px var(--sim-tint-soft);
  animation: shock-sim-banner-pulse 1.6s ease-in-out infinite;
}

.shock-mode-root .shock-scenario-facts {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 8px;
}

.shock-mode-root .shock-scenario-fact {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 7px 9px;
  border-radius: 9px;
  background: rgba(var(--sm-tint2), 0.03);
  border: 1px solid rgba(var(--sm-tint2), 0.05);
  min-width: 0;
}

.shock-mode-root .shock-scenario-fact__label {
  font-size: 9.5px;
  font-weight: 800;
  color: rgba(var(--sm-tint2), 0.5);
  letter-spacing: 0.2px;
  white-space: nowrap;
}

.shock-mode-root .shock-scenario-fact__value {
  font-size: 11.5px;
  font-weight: 800;
  color: #f3eef0;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shock-mode-root .shock-scenario-fact--risk .shock-scenario-fact__value {
  color: #ff8a72;
}
.shock-mode-root .shock-scenario-fact--opportunity .shock-scenario-fact__value {
  color: var(--green);
}
.shock-mode-root .shock-scenario-fact--liquidity-down .shock-scenario-fact__value {
  color: #ff8a72;
}
.shock-mode-root .shock-scenario-fact--liquidity-up .shock-scenario-fact__value {
  color: var(--green);
}
.shock-mode-root .shock-scenario-fact--neutral .shock-scenario-fact__value {
  color: #f3eef0;
}

.shock-mode-root .shock-scenario-line {
  margin-top: 10px;
  font-size: 11.5px;
  line-height: 1.55;
  color: rgba(245, 232, 228, 0.78);
  font-weight: 600;
  letter-spacing: 0.1px;
}

/* â”€â”€â”€ Causal layer (Shock Chain + Watch row + Source chip) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .shock-scenario-source {
  margin-inline-start: auto;
  padding: 1px 7px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.2px;
  color: rgba(220, 230, 244, 0.78);
  background: rgba(var(--sm-tint2), 0.04);
  border: 1px solid rgba(var(--sm-tint2), 0.08);
  border-radius: 999px;
  cursor: help;
}

.shock-mode-root .shock-scenario-panel .sc-head {
  align-items: center;
  flex-wrap: wrap;
}

.shock-mode-root .shock-scenario-chain {
  list-style: none;
  margin: 12px 0 0;
  padding: 8px 9px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  border-radius: 10px;
  background: rgba(var(--sm-tint2), 0.022);
  border: 1px solid rgba(var(--sm-tint2), 0.05);
}

.shock-mode-root .shock-scenario-chain__stage {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 10.5px;
  font-weight: 800;
  color: #f3eef0;
  background: rgba(var(--sm-tint2), 0.04);
  border: 1px solid rgba(var(--sm-tint2), 0.07);
  white-space: nowrap;
  position: relative;
  opacity: 0.95;
  transition: opacity 280ms ease;
}

.shock-mode-root .shock-scenario-chain__stage:not(:last-child)::after {
  content: 'â†';
  position: absolute;
  left: -10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 11px;
  font-weight: 700;
  color: rgba(var(--sm-tint2), 0.34);
  pointer-events: none;
}

.shock-mode-root .shock-scenario-chain__dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sim-tint);
  box-shadow: 0 0 6px var(--sim-tint-soft);
  flex: 0 0 auto;
}

/* Subtle stage-by-stage reveal during the rebuild â†’ settle phases. */
.shock-mode-root[data-sim-phase='dim'] .shock-scenario-chain__stage,
.shock-mode-root[data-sim-phase='rebuild'] .shock-scenario-chain__stage {
  opacity: 0.45;
}

.shock-mode-root[data-sim-phase='settle'] .shock-scenario-chain__stage {
  opacity: 0;
  animation: shock-chain-stage-in 360ms ease-out forwards;
  animation-delay: calc(var(--chain-step, 0) * 80ms);
}

@keyframes shock-chain-stage-in {
  from { opacity: 0; transform: translateY(2px); }
  to { opacity: 0.95; transform: translateY(0); }
}

.shock-mode-root .shock-scenario-watch {
  margin: 8px 0 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.shock-mode-root .shock-scenario-watch__row {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  align-items: baseline;
  gap: 8px;
  padding: 3px 4px;
  margin: 0;
}

.shock-mode-root .shock-scenario-watch__row dt {
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.3px;
  color: rgba(var(--sm-tint2), 0.42);
  text-align: start;
}

.shock-mode-root .shock-scenario-watch__row dd {
  margin: 0;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1.4;
  color: rgba(245, 232, 228, 0.84);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shock-mode-root .shock-scenario-watch__row--confirm dt {
  color: rgba(46, 215, 155, 0.65);
}

.shock-mode-root .shock-scenario-watch__row--confirm dd {
  color: rgba(193, 240, 215, 0.9);
}

.shock-mode-root .shock-scenario-watch__row--invalidate dt {
  color: rgba(255, 138, 114, 0.7);
}

.shock-mode-root .shock-scenario-watch__row--invalidate dd {
  color: rgba(255, 220, 210, 0.85);
}

@media (max-width: 640px) {
  .shock-mode-root .shock-scenario-chain {
    padding: 6px 7px;
  }
  .shock-mode-root .shock-scenario-watch__row {
    grid-template-columns: 46px minmax(0, 1fr);
  }
}

@media (prefers-reduced-motion: reduce) {
  .shock-mode-root[data-sim-phase='settle'] .shock-scenario-chain__stage {
    animation: none;
    opacity: 0.95;
  }
}

.shock-mode-root .shock-scenario-active-bar {
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: 8px;
  height: 2px;
  border-radius: 999px;
  background:
    linear-gradient(
      90deg,
      transparent,
      var(--sim-tint) 30%,
      var(--sim-tint) 70%,
      transparent
    );
  opacity: 0.5;
  transform: scaleX(0.6);
  transform-origin: 50% 50%;
  animation: shock-sim-active-bar 2.6s ease-in-out infinite;
}

@keyframes shock-sim-active-bar {
  0%, 100% { transform: scaleX(0.6); opacity: 0.4; }
  50% { transform: scaleX(1); opacity: 0.8; }
}

/* â”€â”€â”€ Scenario card list (bottom of right column) â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€ */
.shock-mode-root .scard {
  position: relative;
}

.shock-mode-root .scard.active {
  border-color: color-mix(in srgb, var(--sim-tint) 50%, var(--strokeR));
  box-shadow: 0 0 22px color-mix(in srgb, var(--sim-tint) 22%, transparent);
}

.shock-mode-root .scard.is-rebuilding {
  animation: shock-sim-card-rebuild 1.1s ease-in-out 1;
}

@keyframes shock-sim-card-rebuild {
  0% { transform: translateY(-2px); filter: brightness(1); }
  35% { transform: translateY(-3px); filter: brightness(1.18); }
  100% { transform: translateY(-2px); filter: brightness(1); }
}

.shock-mode-root .scard__live {
  position: absolute;
  top: 6px;
  left: 8px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: 9.5px;
  font-weight: 800;
  letter-spacing: 0.2px;
  color: #ffe9e3;
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--sim-tint) 22%, rgba(20, 8, 8, 0.85)),
      rgba(14, 6, 7, 0.85));
  border: 1px solid color-mix(in srgb, var(--sim-tint) 40%, transparent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--sim-tint) 28%, transparent);
}

.shock-mode-root .scard__live-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sim-tint);
  box-shadow: 0 0 6px var(--sim-tint-soft);
  animation: shock-sim-banner-pulse 1.6s ease-in-out infinite;
}

.shock-mode-root .scard__active-bar {
  position: absolute;
  left: 12%;
  right: 12%;
  bottom: 4px;
  height: 2px;
  border-radius: 999px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--sim-tint) 30%,
    var(--sim-tint) 70%,
    transparent
  );
  opacity: 0.55;
  transform: scaleX(0.6);
  transform-origin: 50% 50%;
  animation: shock-sim-active-bar 2.4s ease-in-out infinite;
}

/* Per-tone scoping for cards (keeps tone visual when active) */
.shock-mode-root .scard.active[data-sim-tone='green'] {
  --sim-tint: #2ed79b;
  --sim-tint-soft: rgba(46, 215, 155, 0.55);
  border-color: color-mix(in srgb, #2ed79b 50%, var(--stroke));
  box-shadow: 0 0 22px rgba(46, 215, 155, 0.22);
}

.shock-mode-root .scard.active[data-sim-tone='purple'] {
  --sim-tint: #b478ff;
  --sim-tint-soft: rgba(180, 120, 255, 0.55);
  border-color: color-mix(in srgb, #b478ff 50%, var(--stroke));
  box-shadow: 0 0 22px rgba(180, 120, 255, 0.22);
}

.shock-mode-root .scard.active[data-sim-tone='redt'] {
  --sim-tint: #ff7c5a;
  --sim-tint-soft: rgba(255, 124, 90, 0.55);
  border-color: color-mix(in srgb, #ff7c5a 50%, var(--stroke));
  box-shadow: 0 0 22px rgba(255, 124, 90, 0.22);
}

@media (max-width: 640px) {
  .shock-mode-root .shock-sim-banner {
    top: 8px;
    font-size: 10.5px;
    padding: 5px 10px;
    max-width: calc(100% - 24px);
    white-space: normal;
    text-align: center;
  }

  .shock-mode-root .shock-scenario-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .shock-mode-root .scard__live {
    font-size: 9px;
    padding: 1px 6px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .shock-mode-root .shock-sim-banner__dot,
  .shock-mode-root .shock-scenario-pulse-dot,
  .shock-mode-root .scard__live-dot,
  .shock-mode-root .scard.is-rebuilding,
  .shock-mode-root .shock-scenario-active-bar,
  .shock-mode-root .scard__active-bar,
  .shock-mode-root .shock-scenario-route {
    animation: none !important;
  }
  .shock-mode-root[data-sim-phase='settle'] .shock-hotspot--scenario-affected,
  .shock-mode-root[data-sim-phase='settle'] .shock-hotspot--scenario-origin {
    animation: none !important;
  }
}

/* â”€â”€â”€ Premium typography + visual hierarchy polish â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Refinement only: no layout, map, route, animation, or intelligence changes. */
.shock-mode-root {
  color: var(--pearl);
  letter-spacing: 0.01em;
}

.shock-mode-root .panel {
  border-color: rgba(var(--sm-tint), 0.055);
  background:
    linear-gradient(180deg, rgba(12, 14, 18, 0.78), rgba(10, 12, 16, 0.56));
  box-shadow: inset 0 0 0 1px rgba(var(--sm-tint), 0.012);
}

.shock-mode-root .panel::before {
  background: linear-gradient(180deg, rgba(var(--sm-tint), 0.026), transparent 26%);
}

.shock-mode-root .ptitle,
.shock-mode-root .sc-title,
.shock-mode-root .scn-sec h3,
.shock-mode-root .rl-name,
.shock-mode-root .shock-map-event-card h3 {
  color: var(--pearl-solid);
  font-weight: 700;
  letter-spacing: 0.01em;
  text-shadow: none;
}

.shock-mode-root .sc-desc,
.shock-mode-root .ln,
.shock-mode-root .rl-sub,
.shock-mode-root .shock-scenario-fact__label,
.shock-mode-root .shock-map-event-card dt,
.shock-mode-root .shock-map-event-card__watch span,
.shock-mode-root .shock-map-event-card__causal span,
.shock-mode-root .shock-scenario-watch__row dt {
  color: var(--muted2);
  font-weight: 650;
  text-shadow: none;
}

.shock-mode-root .lrow {
  border-bottom-color: rgba(var(--sm-tint), 0.035);
}

.shock-mode-root .ln {
  font-weight: 560;
}

.shock-mode-root .lv {
  font-weight: 650;
  letter-spacing: -0.12px;
}

.shock-mode-root .lvl-vhigh,
.shock-mode-root .lvl-high,
.shock-mode-root .lvl-mid,
.shock-mode-root .lvl-low,
.shock-mode-root .rl-lvl.semantic-negative,
.shock-mode-root .rl-lvl.semantic-warning,
.shock-mode-root .rl-lvl.semantic-positive,
.shock-mode-root .rl-lvl.semantic-neutral {
  text-shadow: none;
}

.shock-mode-root .rl-lvl {
  font-weight: 650;
  letter-spacing: 0;
}

.shock-mode-root .rl-amt {
  color: rgba(var(--sm-tint), 0.66);
  font-weight: 560;
}

.shock-mode-root .rlabel {
  background: linear-gradient(180deg, rgba(14, 16, 20, 0.72), rgba(9, 10, 14, 0.54));
  border-color: rgba(var(--sm-tint), 0.06);
  box-shadow:
    0 6px 18px rgba(0, 0, 0, 0.42),
    inset 0 0 12px rgba(var(--sm-tint), 0.018);
}

.shock-mode-root .rlabel.shock-map-hotspot-button:hover,
.shock-mode-root .rlabel.shock-map-hotspot-button.is-active {
  border-color: rgba(255, 111, 86, 0.28);
  background:
    radial-gradient(120% 120% at 50% 0%, rgba(255, 85, 62, 0.08), transparent 68%),
    linear-gradient(180deg, rgba(16, 15, 19, 0.86), rgba(9, 10, 14, 0.66));
  box-shadow:
    0 8px 22px rgba(0, 0, 0, 0.48),
    0 0 12px rgba(255, 70, 52, 0.1),
    inset 0 0 14px rgba(255, 75, 55, 0.035);
}

/* Gauges keep semantic color, but ordinary numbers stop glowing. */
.shock-mode-root .gauge .bar,
.shock-mode-root .gauge-calm .bar,
.shock-mode-root .gauge-semantic-negative .bar,
.shock-mode-root .gauge-semantic-warning .bar,
.shock-mode-root .gauge-semantic-neutral .bar {
  filter: none;
}

.shock-mode-root .gval .n,
.shock-mode-root .glabel,
.shock-mode-root .gauge-calm .gval .n,
.shock-mode-root .gauge-calm .glabel,
.shock-mode-root .gauge-semantic-warning .gval .n,
.shock-mode-root .gauge-semantic-warning .glabel,
.shock-mode-root .gauge-semantic-neutral .gval .n,
.shock-mode-root .gauge-semantic-neutral .glabel {
  text-shadow: none;
}

.shock-mode-root .glabel {
  font-weight: 650;
}

/* Monitoring chips: default to quiet institutional tags; semantic tone is subtle. */
.shock-mode-root .ai-intel-meta {
  gap: 7px;
}

.shock-mode-root .im-pill {
  border-color: rgba(var(--sm-tint), 0.085);
  background: rgba(9, 11, 15, 0.54);
  color: rgba(var(--sm-tint), 0.58);
  font-weight: 620;
  letter-spacing: 0.01em;
  box-shadow: none;
}

.shock-mode-root .im-pill b {
  color: var(--pearl);
  font-weight: 650;
}

.shock-mode-root .im-pill-threat {
  border-color: rgba(255, 96, 74, 0.16);
  color: rgba(var(--sm-tint), 0.62);
}

.shock-mode-root .im-pill-cycle {
  border-color: rgba(143, 180, 255, 0.12);
  color: rgba(var(--sm-tint), 0.58);
}

.shock-mode-root .im-pill-driver {
  border-color: rgba(246, 178, 60, 0.14);
  color: rgba(var(--sm-tint), 0.6);
}

.shock-mode-root .im-pill-anomaly {
  border-color: rgba(246, 178, 60, 0.22);
  color: #e8c878;
  box-shadow: none;
}

.shock-mode-root .ai-tone-neutral,
.shock-mode-root .ai-tone-rotation {
  color: var(--pearl);
}

.shock-mode-root .ai-tone-warning,
.shock-mode-root .ai-tone-anomaly {
  color: #e8c878;
  text-shadow: none;
}

.shock-mode-root .ai-tone-panic {
  color: #ff8a72;
  text-shadow: none;
}

/* Shock reading: body copy is Pearl White; only compact badges carry semantic tone. */
.shock-mode-root .shock-reading__summary {
  border-color: rgba(var(--sm-tint), 0.07);
  background: rgba(8, 9, 12, 0.52);
  box-shadow: none;
}

.shock-mode-root .shock-reading__label {
  color: var(--muted2);
  font-weight: 650;
}

.shock-mode-root .shock-reading__summary-text,
.shock-mode-root .shock-reading__summary-text.zs-tone-negative,
.shock-mode-root .shock-reading__summary-text.zs-tone-warning,
.shock-mode-root .shock-reading__summary-text.zs-tone-positive,
.shock-mode-root .shock-reading__value,
.shock-mode-root .shock-reading__value.zs-tone-negative,
.shock-mode-root .shock-reading__value.zs-tone-warning,
.shock-mode-root .shock-reading__value.zs-tone-positive {
  color: var(--pearl) !important;
  text-shadow: none;
}

.shock-mode-root .shock-reading__row {
  background: rgba(var(--sm-tint), 0.018);
  border-color: rgba(var(--sm-tint), 0.045);
}

.shock-mode-root .shock-reading__badge {
  background: rgba(255, 96, 74, 0.055);
  border-color: rgba(255, 96, 74, 0.16);
  color: #ff9b86;
}

.shock-mode-root .shock-reading__badge--warning,
.shock-mode-root .shock-reading__badge.zs-tone-warning {
  background: rgba(246, 178, 60, 0.055);
  border-color: rgba(246, 178, 60, 0.18);
  color: #e8c878;
}

.shock-mode-root .shock-reading__badge--positive,
.shock-mode-root .shock-reading__badge.zs-tone-positive {
  background: rgba(51, 217, 138, 0.05);
  border-color: rgba(51, 217, 138, 0.17);
  color: #8be6ba;
}

.shock-mode-root .shock-reading__footer {
  color: var(--pearl);
}

.shock-mode-root .shock-reading__footer--positive,
.shock-mode-root .shock-reading__footer.zs-tone-positive {
  color: var(--pearl);
}

.shock-mode-root .shock-reading__footer--neutral,
.shock-mode-root .shock-reading__footer.zs-tone-neutral {
  color: var(--muted2);
}

/* Scenario cards: inactive cards recede, active card owns the visual focus. */
.shock-mode-root .scard {
  border-color: rgba(var(--sm-tint), 0.055);
  background: linear-gradient(180deg, rgba(12, 14, 18, 0.72), rgba(10, 12, 16, 0.54));
  box-shadow: none;
}

.shock-mode-root .scard:not(.active) {
  opacity: 0.82;
}

.shock-mode-root .scard:hover {
  border-color: rgba(var(--sm-tint), 0.11);
  transform: translateY(-1px);
}

.shock-mode-root .sc-tx b {
  color: rgba(var(--sm-tint), 0.86);
  font-weight: 650;
}

.shock-mode-root .sc-tx em {
  color: var(--muted2);
  font-weight: 520;
}

.shock-mode-root .sc-ic,
.shock-mode-root .scard.green .sc-ic,
.shock-mode-root .scard.redt .sc-ic,
.shock-mode-root .scard.purple .sc-ic {
  color: rgba(var(--sm-tint), 0.56);
  background: rgba(var(--sm-tint), 0.025);
  border-color: rgba(var(--sm-tint), 0.06);
  box-shadow: none;
}

.shock-mode-root .scard.active,
.shock-mode-root .scard.red.active,
.shock-mode-root .scard.active[data-sim-tone='green'],
.shock-mode-root .scard.active[data-sim-tone='purple'],
.shock-mode-root .scard.active[data-sim-tone='redt'] {
  opacity: 1;
  border-color: color-mix(in srgb, var(--sim-tint) 28%, rgba(var(--sm-tint), 0.1));
  background:
    radial-gradient(120% 130% at 50% 0%, color-mix(in srgb, var(--sim-tint) 10%, transparent), transparent 62%),
    linear-gradient(180deg, rgba(17, 13, 14, 0.78), rgba(11, 10, 13, 0.58));
  box-shadow: 0 0 14px color-mix(in srgb, var(--sim-tint) 12%, transparent);
}

.shock-mode-root .scard.active .sc-ic,
.shock-mode-root .scard.red.active .sc-ic {
  color: var(--pearl-solid);
  background: color-mix(in srgb, var(--sim-tint) 18%, rgba(var(--sm-tint), 0.035));
  border-color: color-mix(in srgb, var(--sim-tint) 24%, rgba(var(--sm-tint), 0.08));
  box-shadow: none;
}

.shock-mode-root .scard__live {
  color: var(--pearl);
  border-color: color-mix(in srgb, var(--sim-tint) 24%, rgba(var(--sm-tint), 0.08));
  background: rgba(10, 11, 14, 0.78);
  box-shadow: none;
}

.shock-mode-root .scard__live-dot,
.shock-mode-root .shock-scenario-pulse-dot {
  box-shadow: none;
}

.shock-mode-root .scard__active-bar,
.shock-mode-root .shock-scenario-active-bar {
  opacity: 0.36;
}

/* Current scenario panel: same shape, calmer surface. */
.shock-mode-root .shock-scenario-panel {
  border-color: color-mix(in srgb, var(--sim-tint) 20%, rgba(var(--sm-tint), 0.07));
  background:
    radial-gradient(120% 120% at 50% 0%, color-mix(in srgb, var(--sim-tint) 9%, transparent), transparent 64%),
    linear-gradient(180deg, rgba(15, 13, 15, 0.76), rgba(10, 10, 13, 0.56));
  box-shadow:
    0 0 14px color-mix(in srgb, var(--sim-tint) 9%, transparent),
    inset 0 0 18px rgba(var(--sm-tint), 0.01);
}

.shock-mode-root .shock-scenario-panel .sc-tag {
  color: rgba(var(--sm-tint), 0.72);
  font-weight: 700;
}

.shock-mode-root .shock-scenario-fact,
.shock-mode-root .shock-scenario-chain {
  background: rgba(var(--sm-tint), 0.018);
  border-color: rgba(var(--sm-tint), 0.045);
}

.shock-mode-root .shock-scenario-fact__value,
.shock-mode-root .shock-scenario-fact--neutral .shock-scenario-fact__value,
.shock-mode-root .shock-scenario-chain__stage,
.shock-mode-root .shock-scenario-watch__row dd,
.shock-mode-root .shock-scenario-watch__row--confirm dd,
.shock-mode-root .shock-scenario-watch__row--invalidate dd {
  color: var(--pearl);
  font-weight: 650;
  text-shadow: none;
}

.shock-mode-root .shock-scenario-fact--risk .shock-scenario-fact__value,
.shock-mode-root .shock-scenario-fact--liquidity-down .shock-scenario-fact__value {
  color: #ff9b86;
}

.shock-mode-root .shock-scenario-fact--opportunity .shock-scenario-fact__value,
.shock-mode-root .shock-scenario-fact--liquidity-up .shock-scenario-fact__value {
  color: #8be6ba;
}

.shock-mode-root .shock-scenario-chain__stage {
  background: rgba(var(--sm-tint), 0.026);
  border-color: rgba(var(--sm-tint), 0.055);
}

.shock-mode-root .shock-scenario-chain__dot {
  box-shadow: none;
  opacity: 0.72;
}

.shock-mode-root .shock-scenario-watch__row--confirm dt {
  color: rgba(139, 230, 186, 0.68);
}

.shock-mode-root .shock-scenario-watch__row--invalidate dt {
  color: rgba(255, 155, 134, 0.68);
}

/* Hotspot card: Pearl body copy, muted labels, semantic accents only. */
.shock-mode-root .shock-map-event-card {
  border-color: rgba(255, 96, 74, 0.18);
  background:
    radial-gradient(120% 110% at 50% 0%, rgba(255, 72, 52, 0.075), transparent 58%),
    linear-gradient(180deg, rgba(15, 10, 11, 0.96), rgba(7, 7, 9, 0.94));
  box-shadow:
    0 16px 34px rgba(0, 0, 0, 0.62),
    0 0 18px rgba(255, 58, 42, 0.08),
    inset 0 0 22px rgba(var(--sm-tint), 0.012);
}

.shock-mode-root .shock-map-event-card__scan {
  opacity: 0.12;
}

.shock-mode-root .shock-map-event-card__head {
  background:
    radial-gradient(100% 120% at 50% 0%, rgba(255, 72, 52, 0.07), transparent 60%),
    linear-gradient(180deg, rgba(15, 11, 12, 0.98), rgba(10, 8, 10, 0.96));
}

.shock-mode-root .shock-map-event-card__pulse {
  box-shadow: none;
}

.shock-mode-root .shock-map-event-card__risk {
  border-color: rgba(255, 96, 74, 0.16);
  background: rgba(255, 72, 52, 0.045);
}

.shock-mode-root .shock-map-event-card__risk span {
  color: #ff9b86;
  font-weight: 750;
}

.shock-mode-root .shock-map-event-card__shock-label,
.shock-mode-root .shock-map-event-card dt,
.shock-mode-root .shock-map-event-card__watch span,
.shock-mode-root .shock-map-event-card__causal span {
  color: var(--muted2);
  font-weight: 650;
}

.shock-mode-root .shock-map-event-card__shock-line strong,
.shock-mode-root .shock-map-event-card dd,
.shock-mode-root .shock-map-event-card__watch p,
.shock-mode-root .shock-map-event-card__causal p {
  color: var(--pearl);
  font-weight: 650;
}

.shock-mode-root .shock-map-event-card__row {
  border-color: rgba(var(--sm-tint), 0.045);
  background: rgba(var(--sm-tint), 0.018);
}

.shock-mode-root .shock-map-event-card__watch {
  border-color: rgba(255, 96, 74, 0.1);
  background: rgba(255, 72, 52, 0.026);
}

.shock-mode-root .shock-map-news--aligned,
.shock-mode-root .shock-map-change--positive {
  color: #8be6ba !important;
}

.shock-mode-root .shock-map-news--mixed {
  color: #e8c878;
}

.shock-mode-root .shock-map-news--conflicted,
.shock-mode-root .shock-map-change--negative {
  color: #ff9b86 !important;
}

.shock-mode-root .ai-warn {
  color: var(--pearl);
  text-shadow: none;
}

.shock-mode-root .ai-warn svg {
  color: #ff9b86;
  filter: none;
}

/* â”€â”€â”€ Compact Scenario Preview + Focus Card â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€
   Details move from the sidebar preview into a map-scoped overlay. */
.shock-mode-root .shock-scenario-panel {
  cursor: pointer;
  outline: none;
}

.shock-mode-root .shock-scenario-panel:focus-visible {
  border-color: color-mix(in srgb, var(--sim-tint) 34%, rgba(var(--sm-tint), 0.16));
}

.shock-mode-root .shock-scenario-panel .sc-title {
  font-size: 15px;
  line-height: 1.28;
}

.shock-mode-root .shock-scenario-panel .sc-desc {
  margin-bottom: 9px;
  font-size: 11px;
  line-height: 1.4;
}

.shock-mode-root .shock-scenario-preview-grid {
  margin-top: 9px;
  gap: 5px 6px;
}

.shock-mode-root .shock-scenario-preview-grid .shock-scenario-fact {
  padding: 6px 8px;
}

.shock-mode-root .shock-scenario-preview-grid .shock-scenario-fact__label {
  font-size: 9px;
  font-weight: 650;
}

.shock-mode-root .shock-scenario-preview-grid .shock-scenario-fact__value {
  font-size: 10.8px;
  font-weight: 680;
  line-height: 1.25;
}

.shock-mode-root .shock-scenario-preview-tags {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
  margin: 9px 0 0;
  padding: 0;
}

.shock-mode-root .shock-scenario-preview-tag {
  max-width: 100%;
  padding: 2px 7px;
  border-radius: 999px;
  border: 1px solid rgba(var(--sm-tint), 0.055);
  background: rgba(var(--sm-tint), 0.018);
  color: rgba(var(--sm-tint), 0.72);
  font-size: 9.5px;
  font-weight: 650;
  line-height: 1.45;
  white-space: nowrap;
}

.shock-mode-root .shock-scenario-preview-watch {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: baseline;
  gap: 7px;
  margin-top: 8px;
  padding: 5px 6px 0;
  border-top: 1px solid rgba(var(--sm-tint), 0.045);
}

.shock-mode-root .shock-scenario-preview-watch span {
  color: var(--muted2);
  font-size: 9px;
  font-weight: 700;
}

.shock-mode-root .shock-scenario-preview-watch p {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--pearl);
  font-size: 10.5px;
  font-weight: 650;
  line-height: 1.45;
}

.shock-mode-root.shock-scenario-focus-open .hero .shock-map-hotspot-button:not(.shock-hotspot--scenario-origin):not(.shock-hotspot--scenario-affected) {
  opacity: 0.36;
  filter: saturate(0.76);
}

.shock-mode-root.shock-scenario-focus-open .hero .shock-hotspot--scenario-origin,
.shock-mode-root.shock-scenario-focus-open .hero .shock-hotspot--scenario-affected {
  opacity: 1;
}

.shock-mode-root.shock-scenario-focus-open .hero .shock-hotspot--scenario-origin {
  box-shadow:
    0 8px 22px rgba(0, 0, 0, 0.5),
    0 0 16px color-mix(in srgb, var(--sim-tint) 18%, transparent),
    inset 0 0 12px color-mix(in srgb, var(--sim-tint) 6%, transparent);
}

.shock-mode-root.shock-scenario-focus-open .shock-scenario-route {
  opacity: 0.88;
  stroke-width: 0.52;
}

.shock-mode-root .shock-scenario-focus-layer {
  position: absolute;
  inset: 0;
  z-index: 38;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 3vw, 30px);
  pointer-events: auto;
  background:
    radial-gradient(80% 70% at 50% 48%, rgba(0, 0, 0, 0.22), transparent 70%);
  animation: shock-focus-fade-in 180ms ease-out both;
}

@keyframes shock-focus-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

.shock-mode-root .shock-scenario-focus-card {
  width: min(540px, calc(100% - 24px));
  max-height: none;
  overflow: visible;
  direction: rtl;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--sim-tint) 22%, rgba(var(--sm-tint), 0.08));
  background:
    radial-gradient(120% 100% at 50% 0%, color-mix(in srgb, var(--sim-tint) 8%, transparent), transparent 58%),
    linear-gradient(180deg, rgba(12, 13, 16, 0.96), rgba(7, 8, 11, 0.94));
  box-shadow:
    0 20px 46px rgba(0, 0, 0, 0.58),
    0 0 18px color-mix(in srgb, var(--sim-tint) 10%, transparent);
  backdrop-filter: blur(14px);
  transform: translateY(0);
}

.shock-mode-root .shock-scenario-focus-card__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 14px 15px 10px;
  border-bottom: 1px solid rgba(var(--sm-tint), 0.055);
}

.shock-mode-root .shock-scenario-focus-card__status {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--sim-tint);
  opacity: 0.88;
}

.shock-mode-root .shock-scenario-focus-card__title {
  min-width: 0;
}

.shock-mode-root .shock-scenario-focus-card__title h2 {
  color: var(--pearl-solid);
  font-size: 17px;
  font-weight: 750;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shock-mode-root .shock-scenario-focus-card__title span {
  display: inline-flex;
  margin-top: 2px;
  color: var(--muted2);
  font-size: 10px;
  font-weight: 700;
}

.shock-mode-root .shock-scenario-focus-card__close {
  width: 24px;
  height: 24px;
  border-radius: 8px;
  border: 1px solid rgba(var(--sm-tint), 0.07);
  background: rgba(var(--sm-tint), 0.025);
  color: rgba(var(--sm-tint), 0.76);
  font: 700 16px/1 var(--ar);
  cursor: pointer;
}

.shock-mode-root .shock-scenario-focus-card__close:hover {
  color: var(--pearl-solid);
  border-color: rgba(var(--sm-tint), 0.13);
}

.shock-mode-root .shock-scenario-focus-card__hero {
  margin: 0;
  padding: 12px 15px 10px;
  color: var(--pearl);
  font-size: 13.2px;
  font-weight: 680;
  line-height: 1.55;
  border-bottom: 1px solid rgba(var(--sm-tint), 0.04);
}

.shock-mode-root .shock-scenario-focus-card__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: 11px 15px 9px;
}

.shock-mode-root .shock-scenario-focus-card__grid > div {
  min-width: 0;
  padding: 8px 9px;
  border-radius: 10px;
  border: 1px solid rgba(var(--sm-tint), 0.055);
  background: rgba(var(--sm-tint), 0.018);
}

.shock-mode-root .shock-scenario-focus-card dt,
.shock-mode-root .shock-scenario-focus-card__lines span {
  color: var(--muted2);
  font-size: 9.5px;
  font-weight: 700;
  line-height: 1.35;
}

.shock-mode-root .shock-scenario-focus-card dd {
  margin-top: 3px;
  color: var(--pearl);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shock-mode-root .shock-scenario-focus-card__lines {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0 15px 14px;
}

.shock-mode-root .shock-scenario-focus-card__lines section {
  display: grid;
  grid-template-columns: minmax(112px, 0.72fr) minmax(0, 1.28fr);
  align-items: baseline;
  gap: 10px;
  padding: 7px 0;
  border-top: 1px solid rgba(var(--sm-tint), 0.045);
}

.shock-mode-root .shock-scenario-focus-card__lines p {
  margin: 0;
  min-width: 0;
  color: var(--pearl);
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shock-mode-root .shock-scenario-focus-card[data-risk-kind='risk'] .shock-scenario-focus-card__status,
.shock-mode-root .shock-scenario-focus-card[data-risk-kind='risk'] .shock-scenario-focus-card__title span {
  color: #ff9b86;
}

.shock-mode-root .shock-scenario-focus-card[data-risk-kind='opportunity'] .shock-scenario-focus-card__status,
.shock-mode-root .shock-scenario-focus-card[data-risk-kind='opportunity'] .shock-scenario-focus-card__title span {
  color: #8be6ba;
}

.shock-mode-root .shock-scenario-focus-card[data-risk-kind='mixed'] .shock-scenario-focus-card__status,
.shock-mode-root .shock-scenario-focus-card[data-risk-kind='mixed'] .shock-scenario-focus-card__title span {
  color: #e8c878;
}

@media (max-width: 980px) {
  .shock-mode-root .shock-scenario-focus-layer {
    position: fixed;
    inset: 0;
    z-index: 90;
    align-items: flex-end;
    padding: 18px;
    background: rgba(0, 0, 0, 0.18);
  }

  .shock-mode-root .shock-scenario-focus-card {
    width: min(500px, calc(100% - 8px));
    max-height: none;
  }
}

@media (max-width: 640px) {
  .shock-mode-root .shock-scenario-panel .sc-title {
    font-size: 14px;
  }

  .shock-mode-root .shock-scenario-preview-tags {
    justify-content: flex-start;
  }

  .shock-mode-root .shock-scenario-focus-layer {
    align-items: flex-end;
    padding: 12px;
  }

  .shock-mode-root .shock-scenario-focus-card {
    width: 100%;
    max-height: none;
    border-radius: 14px;
  }

  .shock-mode-root .shock-scenario-focus-card__head {
    padding: 12px 12px 9px;
  }

  .shock-mode-root .shock-scenario-focus-card__title h2 {
    font-size: 15px;
  }

  .shock-mode-root .shock-scenario-focus-card__hero {
    padding: 10px 12px 8px;
    font-size: 12.2px;
  }

  .shock-mode-root .shock-scenario-focus-card__grid {
    padding: 9px 12px 7px;
    gap: 6px;
  }

  .shock-mode-root .shock-scenario-focus-card__grid > div {
    padding: 7px 8px;
  }

  .shock-mode-root .shock-scenario-focus-card__lines {
    padding: 0 12px 12px;
  }

  .shock-mode-root .shock-scenario-focus-card__lines section {
    grid-template-columns: 1fr;
    gap: 2px;
    padding: 6px 0;
  }
}

/* Mobile-only shock map composition: preserve desktop while giving the globe real vertical stage depth. */
@media (max-width: 900px) {
  .shock-mode-root .hero {
    aspect-ratio: auto;
    min-height: 520px;
    min-height: clamp(520px, 76svh, 760px);
    min-height: clamp(520px, 76dvh, 760px);
  }

  .shock-mode-root .hero-head {
    padding: 16px clamp(12px, 4vw, 24px);
  }

  .shock-mode-root .h-right {
    left: clamp(12px, 4vw, 24px);
    right: clamp(12px, 4vw, 24px);
    top: 14px;
    justify-content: space-between;
    gap: 10px;
  }

  .shock-mode-root .h-time {
    min-width: 112px;
  }

  .shock-mode-root .h-time .t {
    font-size: clamp(20px, 5.6vw, 28px);
  }

  .shock-mode-root .stopbtn {
    padding: 8px 12px;
    font-size: 12px;
    border-radius: 10px;
  }

  .shock-mode-root .h-title {
    top: clamp(62px, 9svh, 88px);
    width: min(82%, 480px);
  }

  .shock-mode-root .h-title h1 {
    font-size: clamp(29px, 8.2vw, 42px);
    line-height: 0.98;
  }

  .shock-mode-root .h-title p {
    margin-top: 7px;
    font-size: clamp(11px, 3vw, 13px);
    line-height: 1.45;
  }

  .shock-mode-root .shock-sim-banner {
    top: clamp(128px, 18svh, 168px);
    max-width: min(82%, 380px);
    white-space: normal;
    text-align: center;
  }

  .shock-mode-root .legend {
    bottom: clamp(18px, 3.4svh, 30px);
    width: min(88%, 380px);
  }

  .shock-mode-root .legend .bar {
    justify-content: center;
    gap: clamp(5px, 1.8vw, 8px);
  }

  .shock-mode-root .legend .grad {
    width: clamp(140px, 44vw, 230px);
  }

  .shock-mode-root .rlabel {
    max-width: min(34vw, 118px);
    white-space: normal;
  }

  .shock-mode-root .rlabel-europe {
    transform: translate(-50%, -50%);
  }

  .shock-mode-root .rlabel[data-region='north-america'] {
    left: 17% !important;
    top: 44% !important;
  }

  .shock-mode-root .rlabel[data-region='europe'] {
    left: 46% !important;
    top: 30% !important;
  }

  .shock-mode-root .rlabel[data-region='asia'] {
    left: 82% !important;
    top: 43% !important;
  }

  .shock-mode-root .rlabel[data-region='south-america'] {
    left: 22% !important;
    top: 68% !important;
  }

  .shock-mode-root .rlabel[data-region='africa'] {
    left: 48% !important;
    top: 67% !important;
  }

  .shock-mode-root .rlabel[data-region='australia'] {
    left: 76% !important;
    top: 76% !important;
  }

  .shock-mode-root .shock-map-node-button[data-region='middle-east'] {
    left: 58% !important;
    top: 50% !important;
  }
}

@media (max-width: 430px) {
  .shock-mode-root .hero {
    min-height: 540px;
    min-height: clamp(540px, 78svh, 728px);
    min-height: clamp(540px, 78dvh, 728px);
  }

  .shock-mode-root .h-right {
    top: 12px;
  }

  .shock-mode-root .h-title {
    top: clamp(68px, 9.6svh, 92px);
    width: min(86%, 360px);
  }

  .shock-mode-root .shock-sim-banner {
    top: clamp(138px, 18.5svh, 172px);
  }

  .shock-mode-root .rlabel {
    max-width: 104px;
    padding-inline: 6px;
  }

  .shock-mode-root .rlabel[data-region='north-america'] {
    left: 18% !important;
  }

  .shock-mode-root .rlabel[data-region='asia'] {
    left: 81% !important;
  }
}

/* Light-only markup is inert in Dark Mode (see shock-mode-light.css). */
.shock-mode-root .sm-light-only,
.shock-mode-root .sm-light-shell {
  display: none !important;
}

/* Force dark — market operations page when dark shell is active.
   Light Mode uses a dedicated shell under html.light and does not mount this root. */
html.light [data-zs-force-dark='true'].sm-dark-shell,
html.light .sm-dark-shell[data-zs-force-dark='true'] {
  color-scheme: dark;
}

/* Classic shell — truthful intel slots inside restored dark layout. */
.shock-mode-root .shock-classic-empty {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.45);
}

.shock-mode-root .shock-classic-bullets {
  margin: 0;
  padding-inline-start: 1.1rem;
  display: grid;
  gap: 8px;
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.78);
}

.shock-mode-root .shock-classic-changed {
  min-height: 140px;
  display: flex;
  align-items: flex-start;
  padding: 8px 4px 4px;
}

.shock-mode-root.shock-classic--stale .shock-sim-banner__text::after {
  content: ' · stale';
  opacity: 0.65;
}

