/* Surprise movement terminal (surprise-terminal.js). Light theme scoped to .sx-terminal only. */

.sx-terminal {
  --sx-bg: #ffffff;
  --sx-panel: #ffffff;
  --sx-panel-2: #f1f5f9;
  --sx-line: #e2e8f0;
  --sx-text: #334155;
  --sx-strong: #0f172a;
  --sx-muted: #64748b;
  --sx-up: #059669;
  --sx-down: #dc2626;
  --sx-bounce: #0284c7;
  --sx-warn: #b45309;
  --sx-info: #0369a1;
  --sx-mono: "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
  background: var(--sx-bg);
  color: var(--sx-text);
  border: 1px solid var(--sx-line);
  border-radius: 12px;
  padding: 18px 18px 8px;
  min-height: 70vh;
}

.sx-terminal a { color: inherit; }

.sx-terminal .sx-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* --- Header --- */
.sx-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.sx-head h1 {
  margin: 2px 0 4px;
  font-size: 22px;
  font-weight: 700;
  color: var(--sx-strong);
}
.sx-eyebrow {
  margin: 0;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sx-muted);
}
.sx-sub {
  margin: 0;
  font-size: 13px;
  color: var(--sx-muted);
  max-width: 760px;
}
.sx-risk-link {
  color: var(--sx-warn) !important;
  text-decoration: underline;
  margin-left: 6px;
}
.sx-live {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 7px;
  border-radius: 999px;
  font-family: var(--sx-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--sx-warn);
  border: 1px solid rgba(245, 158, 11, 0.4);
}
.sx-live.is-live {
  color: var(--sx-up);
  border-color: rgba(16, 185, 129, 0.45);
}
.sx-live.is-live::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 5px;
  border-radius: 50%;
  background: var(--sx-up);
  vertical-align: 1px;
  animation: sx-pulse 1.6s ease-in-out infinite;
}
@keyframes sx-pulse {
  50% { opacity: 0.25; }
}
.sx-terminal .kse-my-stock-filter {
  color: var(--sx-text);
  background: var(--sx-panel-2);
  border: 1px solid var(--sx-line);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 13px;
}

/* --- Filter bar --- */
.sx-panel {
  background: var(--sx-panel);
  border: 1px solid var(--sx-line);
  border-radius: 10px;
  overflow: hidden;
}
.sx-filter-bar {
  padding: 12px 12px 0;
  border-bottom: 1px solid var(--sx-line);
}
.sx-fb-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.sx-seg {
  display: inline-flex;
  border: 1px solid var(--sx-line);
  border-radius: 8px;
  overflow: hidden;
}
.sx-seg-btn {
  background: transparent;
  border: 0;
  border-right: 1px solid var(--sx-line);
  color: var(--sx-muted);
  font-size: 12px;
  font-weight: 600;
  padding: 6px 11px;
  cursor: pointer;
}
.sx-seg-btn:last-child { border-right: 0; }
.sx-seg-btn:hover { color: var(--sx-text); }
.sx-seg-btn.is-active {
  background: var(--sx-panel-2);
  color: var(--sx-strong);
  box-shadow: inset 0 -2px 0 var(--sx-info);
}
.sx-seg-label {
  align-self: center;
  padding: 0 8px;
  border-right: 1px solid var(--sx-line);
  font-size: 11px;
  font-weight: 600;
  color: var(--sx-muted);
}
/* Compact turnover filter CTAs (All · >5M · >10M · >25M) — values stay normal */
.sx-seg--to .sx-seg-label {
  padding: 0 6px;
  font-size: 10px;
}
.sx-seg--to .sx-seg-btn {
  padding: 4px 7px;
  font-size: 11px;
}

/* Anomalies / Streaks view toggle */
.sx-views {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.sx-view {
  background: var(--sx-panel-2);
  border: 1px solid var(--sx-line);
  border-radius: 8px;
  color: var(--sx-text);
  font-size: 13px;
  font-weight: 700;
  padding: 7px 14px;
  cursor: pointer;
}
.sx-view:hover { border-color: var(--sx-info); }
.sx-view.is-active {
  background: var(--sx-strong);
  border-color: var(--sx-strong);
  color: #fff;
}
.sx-view.is-active .sx-tab-n { color: #cbd5e1; }
.sx-check {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  color: var(--sx-text);
  cursor: pointer;
}
.sx-search {
  background: var(--sx-panel-2);
  color: var(--sx-text);
  border: 1px solid var(--sx-line);
  border-radius: 8px;
  padding: 6px 10px;
  font-size: 12px;
  height: 32px;
}
.sx-search {
  flex: 1 1 220px;
  min-width: 180px;
}
.sx-search::placeholder { color: var(--sx-muted); }
.sx-search:focus,
.sx-seg-btn:focus-visible,
.sx-view:focus-visible,
.sx-tab:focus-visible,
.sx-table th button:focus-visible,
.sx-act:focus-visible {
  outline: 2px solid var(--sx-info);
  outline-offset: 1px;
}
.sx-tabs {
  display: flex;
  gap: 4px;
  overflow-x: auto;
  scrollbar-width: none;
}
.sx-tab {
  flex: 0 0 auto;
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--sx-muted);
  font-size: 12px;
  font-weight: 600;
  padding: 8px 10px;
  cursor: pointer;
  white-space: nowrap;
}
.sx-tab:hover { color: var(--sx-text); }
.sx-tab.is-active { color: var(--sx-strong); border-bottom-color: var(--sx-info); }
.sx-tab.is-accumulation.is-active { border-bottom-color: var(--sx-up); }
.sx-tab.is-distribution.is-active { border-bottom-color: var(--sx-down); }
.sx-tab.is-circuit.is-active { border-bottom-color: var(--sx-warn); }
.sx-tab-n {
  font-family: var(--sx-mono);
  font-size: 11px;
  color: var(--sx-muted);
  margin-left: 3px;
}
.sx-day-note {
  margin: 10px 12px 0;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid #fde68a;
  background: #fffbeb;
  color: #92400e;
  font-size: 13px;
}
.sx-day-note[hidden] { display: none; }
.sx-shown {
  margin: 0;
  padding: 6px 12px;
  font-size: 11px;
  color: var(--sx-muted);
  font-family: var(--sx-mono);
}

/* --- Table --- */
.sx-table-wrap {
  max-height: calc(100vh - 220px);
  overflow: auto;
}
.sx-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 13px;
}
.sx-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--sx-panel-2);
  border-bottom: 1px solid var(--sx-line);
  padding: 0;
  text-align: left;
  vertical-align: bottom;
}
.sx-table th button,
.sx-table thead th > span {
  display: block;
  width: 100%;
  background: transparent;
  border: 0;
  color: var(--sx-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: inherit;
  padding: 9px 10px;
}
.sx-table thead th:not([data-sx-sort]) { padding: 9px 10px; color: var(--sx-muted); font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.sx-table th[data-sx-sort] button { cursor: pointer; }
.sx-table th[data-sx-sort] button:hover { color: var(--sx-text); }
.sx-table th.is-sorted button { color: var(--sx-strong); }
/* Live price column: pulsing green dot (signals are snapshots; this column ticks). */
.sx-table th[data-sx-sort="pch"] button::before {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-right: 5px;
  border-radius: 50%;
  background: var(--sx-up);
  vertical-align: 1px;
  animation: sx-pulse 1.6s ease-in-out infinite;
}
.sx-table th[aria-sort="ascending"] button::after { content: " \25B2"; font-size: 9px; }
.sx-table th[aria-sort="descending"] button::after { content: " \25BC"; font-size: 9px; }
.sx-table td {
  padding: 8px;
  border-bottom: 1px solid var(--sx-line);
  vertical-align: middle;
}
/* Beats the site-wide `tr:nth-child(2n) td` striping in style2.css */
.sx-terminal .sx-table tbody td { background: transparent; }
.sx-terminal .sx-table .sx-row:hover td { background: #f8fafc; }
.sx-row.is-new td { animation: sx-new 6s ease-out; }
@keyframes sx-new {
  0% { background: rgba(245, 158, 11, 0.22); }
  100% { background: transparent; }
}
.sx-num,
.sx-mag,
.sx-time,
.sx-px,
.sx-pch,
.sx-rvol,
.sx-ff,
.sx-block,
.sx-circ-label,
.sx-shown {
  font-family: var(--sx-mono);
  font-variant-numeric: tabular-nums;
}
.sx-c-px,
.sx-c-to,
.sx-c-rvol { text-align: right; white-space: nowrap; }
.sx-empty td {
  text-align: center;
  color: var(--sx-muted);
  padding: 28px 10px;
}
.sx-muted { color: var(--sx-muted); }
.sx-terminal .is-up { --sx-dir: var(--sx-up); }
.sx-terminal .is-down { --sx-dir: var(--sx-down); }
.sx-terminal .is-bounce { --sx-dir: var(--sx-bounce); }
.sx-terminal .is-flat { --sx-dir: var(--sx-muted); }

/* Symbol */
.sx-sym-line {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}
.sx-sym {
  font-family: var(--sx-mono);
  font-weight: 700;
  color: var(--sx-strong) !important;
  text-decoration: none;
  margin-right: 2px;
}
.sx-sym:hover { color: var(--sx-info) !important; }
/* Full whale/burst path text wraps; was 2-line clamp + 360px which hid Rs A → B. */
.sx-msg {
  display: block;
  overflow: visible;
  white-space: normal;
}
/* Announcement chips reuse watchlist .wl-annc-* styles (bell + BM/FR/XD). */
.sx-terminal .wl-annc-cluster {
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 3px;
  margin-left: 4px;
  vertical-align: middle;
}
.sx-terminal .kse-nc-badge {
  display: inline-block;
  padding: 0 5px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  line-height: 16px;
  text-decoration: none;
  border: 1px solid currentColor;
  background: transparent;
  cursor: pointer;
}
.sx-terminal .kse-nc-badge { color: var(--sx-down); }

/* Signal */
.sx-sig-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2px 6px;
  white-space: nowrap;
}
.sx-badge {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--sx-dir);
  background: rgba(125, 138, 153, 0.14);
  background: color-mix(in srgb, var(--sx-dir) 14%, transparent);
}
.sx-row.is-kind-retail-trap .sx-badge,
.sx-row.is-kind-circuit-watch .sx-badge {
  color: var(--sx-warn);
  background: rgba(245, 158, 11, 0.14);
}
.sx-mag { font-weight: 700; color: var(--sx-dir); }
.sx-time { display: block; margin-top: 4px; font-size: 11px; color: var(--sx-muted); }
.sx-msg {
  max-width: none;
  margin-top: 3px;
  font-size: 11px;
  color: var(--sx-muted);
  line-height: 1.4;
}

/* Price / RVOL / flow */
.sx-px { display: block; font-weight: 700; color: var(--sx-strong); }
.sx-pch { display: block; font-size: 11px; color: var(--sx-dir); }
.sx-rvol { font-weight: 700; color: var(--sx-text); }
.sx-rvol.is-high,
.sx-rvol.is-neon {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 4px;
}
.sx-rvol.is-high { color: #047857; background: #d1fae5; }
.sx-rvol.is-neon {
  color: #0e7490;
  background: #cffafe;
  font-weight: 800;
  box-shadow: 0 0 0 1px #22d3ee, 0 0 8px rgba(34, 211, 238, 0.55);
}
.sx-rvol.is-cold { color: var(--sx-muted); }
.sx-block {
  display: block;
  width: max-content;
  margin-bottom: 2px;
  padding: 1px 6px;
  border-radius: 4px;
  color: #92400e;
  background: #fef3c7;
  border: 1px solid #f59e0b;
  font-size: 10px;
  font-weight: 700;
}
.sx-block.is-buy { color: #047857; background: #d1fae5; border-color: #34d399; }
.sx-block.is-sell { color: #9f1239; background: #ffe4e6; border-color: #fb7185; }
.sx-ff { display: block; font-size: 11px; color: var(--sx-muted); }
.sx-c-flow .sx-block { white-space: nowrap; }

/* Circuit */
.sx-circ { max-width: 100px; }
.sx-circ-bar { display: block; margin-bottom: 2px; }
.sx-circ-track { fill: var(--sx-line); }
.sx-circ-dot { fill: var(--sx-muted); }
.sx-circ.is-upper .sx-circ-dot { fill: var(--sx-up); }
.sx-circ.is-lower .sx-circ-dot { fill: var(--sx-down); }
.sx-circ-label { font-size: 11px; color: var(--sx-muted); }
.sx-circ.is-near .sx-circ-label {
  display: inline-block;
  padding: 0 4px;
  border-radius: 4px;
  font-weight: 700;
  animation: sx-lock-pulse 1.4s ease-in-out infinite;
}
.sx-circ.is-near.is-upper .sx-circ-label { color: #047857; background: #d1fae5; }
.sx-circ.is-near.is-lower .sx-circ-label { color: #b91c1c; background: #fee2e2; }
@keyframes sx-lock-pulse {
  50% { opacity: 0.55; }
}
@media (prefers-reduced-motion: reduce) {
  .sx-circ.is-near .sx-circ-label { animation: none; }
}

/* Sparkline */
.sx-spark { display: block; }
.sx-spark polyline { stroke-width: 1.5; stroke-linejoin: round; stroke-linecap: round; }
.sx-spark.is-up polyline { stroke: var(--sx-up); }
.sx-spark.is-down polyline { stroke: var(--sx-down); }
.sx-spark-base { stroke: var(--sx-muted); stroke-width: 1; stroke-dasharray: 2 2; opacity: 0.6; }

/* Actions */
.sx-c-act { white-space: nowrap; text-align: right; }
.sx-act {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin-left: 2px;
  border: 1px solid var(--sx-line);
  border-radius: 6px;
  background: transparent;
  color: var(--sx-muted) !important;
  cursor: pointer;
  text-decoration: none;
}
.sx-act:hover { color: var(--sx-info) !important; border-color: var(--sx-info); }

/* Live tick flash (KseQuoteWs) */
.sx-terminal .kse-live-price.kse-tick-up { color: var(--sx-up); }
.sx-terminal .kse-live-price.kse-tick-down { color: var(--sx-down); }

/* --- Risk disclaimer modal --- */
.sx-modal-screen {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background: rgba(15, 23, 42, 0.45);
}
.sx-modal {
  position: fixed;
  z-index: 2001;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: min(520px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow: auto;
  padding: 22px 22px 18px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid #f59e0b;
  box-shadow: 0 20px 40px rgba(15, 23, 42, 0.2);
  color: #334155;
  font-size: 14px;
  line-height: 1.5;
}
.sx-modal h2 { margin: 0 0 10px; font-size: 18px; color: #0f172a; }
.sx-modal ul { padding-left: 18px; margin: 8px 0 12px; }
.sx-modal[hidden],
.sx-modal-screen[hidden] { display: none; }
.sx-btn {
  background: #d97706;
  color: #fff;
  border: 0;
  border-radius: 8px;
  padding: 8px 18px;
  font-weight: 700;
  cursor: pointer;
}

/* --- Mobile: compact 2-column cards --- */
@media (max-width: 760px) {
  .sx-terminal { padding: 12px 10px 4px; border-radius: 0; }
  .sx-table-wrap { max-height: none; overflow: visible; }
  .sx-table thead { display: none; }
  .sx-table,
  .sx-table tbody { display: block; }
  .sx-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 10px;
    padding: 10px;
    border-bottom: 1px solid var(--sx-line);
  }
  .sx-row td {
    display: block;
    padding: 0;
    border: 0;
    text-align: left;
  }
  .sx-row td[data-label]:not([data-label=""])::before {
    content: attr(data-label);
    display: block;
    font-size: 10px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--sx-muted);
  }
  .sx-row .sx-c-sym,
  .sx-row .sx-c-sig,
  .sx-row .sx-c-act { grid-column: 1 / -1; }
  .sx-row .sx-c-sym::before,
  .sx-row .sx-c-sig::before { display: none !important; }
  .sx-msg { max-width: none; white-space: normal; }
  .sx-c-act { text-align: left; }
  .sx-empty { display: block; }
  .sx-empty td { display: block; }
  .sx-search { flex-basis: 100%; }
}

/* ---- Home surprise cards (match Android app; no horizontal table scroll) ---- */
.lw-surprise .kse-surprise-filters-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 10px;
}
.lw-surprise .kse-sx-filter-label {
  flex: 0 0 auto;
  font-size: 12px;
  font-weight: 700;
  color: #64748b;
  letter-spacing: 0.02em;
}
.lw-surprise .kse-sx-filter-select {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 34px;
  box-sizing: border-box;
  border: 1px solid #dbe4f0;
  border-radius: 8px;
  background: #f8fafc;
  color: #0f172a;
  font-size: 13px;
  padding: 6px 10px;
}
.lw-surprise .kse-surprise-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.lw-surprise .kse-surprise-list .kse-surprise-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 11px 2px;
  border-bottom: 1px solid #eef2f7;
  font-size: 14px;
}
.lw-surprise .kse-surprise-list .kse-surprise-item:last-child { border-bottom: 0; }
.lw-surprise .kse-surprise-row-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
}
.lw-surprise .kse-surprise-sym {
  font-weight: 700;
  color: #0f172a;
  min-width: 3.2rem;
  letter-spacing: -0.02em;
  text-decoration: none;
}
.lw-surprise a.kse-surprise-sym:hover {
  color: var(--sx-info, #2563eb);
  text-decoration: underline;
}
.lw-surprise .kse-surprise-row-top .wl-annc-bell-wrap {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: 2px;
  flex-shrink: 0;
  cursor: pointer;
}
.lw-surprise .kse-surprise-kind {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #475569;
  background: #f1f5f9;
  padding: 3px 7px;
  border-radius: 999px;
  font-weight: 700;
}
.lw-surprise .kse-surprise-mag {
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  font-size: 14px;
  font-style: normal;
  color: #0f172a;
}
.lw-surprise .kse-surprise-time-wrap {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-left: auto;
}
.lw-surprise .kse-surprise-time { color: #94a3b8; font-size: 12px; white-space: nowrap; }
.lw-surprise .kse-sx-chevron { color: #94a3b8; font-size: 18px; line-height: 1; font-weight: 300; }
.lw-surprise .kse-surprise-msg {
  font-size: 12px;
  color: #64748b;
  line-height: 1.4;
  white-space: normal;
  overflow: visible;
}
.lw-surprise .kse-surprise-day {
  margin: 4px 0;
  padding: 6px 10px;
  border-radius: 8px;
  background: #fffbeb;
  color: #92400e;
  font-size: 12px;
}
.lw-surprise .kse-surprise-empty {
  padding: 16px 4px;
  color: #94a3b8;
  font-size: 13px;
  text-align: center;
  list-style: none;
}
.lw-surprise .kse-surprise-item.is-up .kse-surprise-mag,
.lw-surprise .kse-surprise-item.is-breakout .kse-surprise-mag { color: #15803d; }
.lw-surprise .kse-surprise-item.is-down .kse-surprise-mag,
.lw-surprise .kse-surprise-item.is-breakdown .kse-surprise-mag { color: #b91c1c; }
.lw-surprise .kse-surprise-item.is-whale .kse-surprise-kind { color: #9a3412; background: #fff7ed; }
.lw-surprise .kse-surprise-item.is-volume-surge .kse-surprise-kind { color: #b45309; background: #fff7ed; }
.lw-surprise .kse-surprise-item.is-intraday-shock .kse-surprise-kind,
.lw-surprise .kse-surprise-item.is-atr-shock .kse-surprise-kind { color: #be185d; background: #fdf2f8; }
.lw-surprise .kse-surprise-item.is-burst-volume .kse-surprise-kind { color: #c2410c; background: #fff7ed; }
.lw-surprise .kse-surprise-item.is-circuit-watch .kse-surprise-kind { color: #b45309; background: #fffbeb; }
.lw-surprise .kse-surprise-item.is-accumulation .kse-surprise-kind { color: #0f766e; background: #f0fdfa; }
.lw-surprise .kse-sx-card.is-cat-distribution .kse-surprise-kind { color: #be123c; background: #fff1f2; }
.lw-surprise .kse-sx-card {
  cursor: pointer;
  transition: background-color 0.12s ease;
}
.lw-surprise .kse-sx-card:hover { background: #f8fafc; }
.lw-surprise .kse-sx-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 12px;
  margin-top: 4px;
}
.lw-surprise .kse-sx-cell {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.lw-surprise .kse-sx-cell span {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #94a3b8;
}
.lw-surprise .kse-sx-cell b {
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lw-surprise .kse-sx-cell b i { font-style: normal; }
.lw-surprise .kse-sx-cell b i.is-up { color: #15803d; }
.lw-surprise .kse-sx-cell b i.is-down { color: #b91c1c; }
.lw-surprise .kse-sx-rvol { font-style: normal; font-family: ui-monospace, Menlo, Consolas, monospace; }
.lw-surprise .kse-sx-rvol.is-na { color: #94a3b8; font-weight: 600; }
.lw-surprise .kse-sx-rvol.is-high,
.lw-surprise .kse-sx-rvol.is-neon { padding: 1px 6px; border-radius: 4px; }
.lw-surprise .kse-sx-rvol.is-high { color: #047857; background: #d1fae5; }
.lw-surprise .kse-sx-rvol.is-neon {
  color: #0e7490;
  background: #cffafe;
  font-weight: 800;
}
.lw-surprise .kse-sx-rvol.is-cold { color: #94a3b8; }
.lw-surprise .kse-sx-flow-cell b { white-space: normal; }
.lw-surprise .kse-sx-block {
  display: inline-block;
  margin-bottom: 2px;
  padding: 1px 5px;
  border: 1px solid #f59e0b;
  border-radius: 4px;
  background: #fef3c7;
  color: #92400e;
  font-size: 11px;
  font-style: normal;
  white-space: nowrap;
}
.lw-surprise .kse-sx-block.is-buy { color: #047857; background: #d1fae5; border-color: #34d399; }
.lw-surprise .kse-sx-block.is-sell { color: #9f1239; background: #ffe4e6; border-color: #fb7185; }
.lw-surprise .kse-sx-ff {
  font-size: 12px;
  font-family: ui-monospace, Menlo, Consolas, monospace;
  color: #64748b;
}
.lw-surprise .kse-sx-cell.is-lock b {
  align-self: flex-start;
  padding: 1px 5px;
  border-radius: 4px;
}
.lw-surprise .kse-sx-cell.is-lock.is-upper b { color: #047857; background: #d1fae5; }
.lw-surprise .kse-sx-cell.is-lock.is-lower b { color: #b91c1c; background: #fee2e2; }
.lw-surprise .kse-sx-spark-cell .sx-spark { display: block; }
.lw-surprise .sx-day-note { margin: 0 0 8px; font-size: 12px; color: #92400e; }

/* Row / card click opens symbol-signals popup */
.sx-terminal .sx-row { cursor: pointer; }

/* Symbol signals popup (all records for one stock) */
#sxSymPopupScreen { z-index: 99998; }
#sxSymPopup {
  z-index: 99999;
  width: min(480px, calc(100vw - 24px));
  max-height: min(85vh, calc(100dvh - 88px));
}
#sxSymPopup .wl-annc-popup-head {
  gap: 8px 12px;
}
#sxSymPopup .wl-annc-popup-title {
  flex: 0 1 auto;
  min-width: 0;
}
.sx-sym-popup-quote {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 10px;
  margin-left: auto;
  margin-right: 4px;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  color: #0f172a;
  white-space: nowrap;
}
.sx-sym-popup-quote:empty { display: none; }
.sx-sym-q-px {
  font-weight: 800;
  font-size: 14px;
}
.sx-sym-q-pch { font-weight: 700; }
.sx-sym-q-pch.is-up { color: var(--sx-up, #047857); }
.sx-sym-q-pch.is-down { color: var(--sx-down, #b91c1c); }
.sx-sym-q-pch.is-flat { color: #64748b; }
.sx-sym-q-vol {
  color: #64748b;
  font-size: 12px;
}
.sx-sym-sig-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sx-sym-sig {
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #fff;
}
.sx-sym-sig.is-focus {
  border-color: #2563eb;
  background: #eff6ff;
  box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.2);
}
.sx-sym-sig-top {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 8px;
}
.sx-sym-sig-time {
  margin-left: auto;
  font-size: 12px;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}
.sx-sym-sig-msg {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.4;
  color: #334155;
}
.sx-sym-empty {
  padding: 24px 12px;
  text-align: center;
  color: #64748b;
  font-size: 14px;
}