/* Runtime and theme polish. Loaded last so it can normalize legacy visual layers. */

:root {
  --sr-live-cyan: #20fff4;
  --sr-day-ink: #102a43;
  --sr-day-muted: #52667a;
  --sr-day-line: rgba(52, 105, 145, .2);
  --sr-day-panel: rgba(250, 253, 255, .97);
  --sr-day-panel-soft: rgba(235, 243, 251, .94);
}

.grid .card:not(.detached) {
  content-visibility: auto;
  contain: layout paint style;
  contain-intrinsic-size: auto 340px;
}

.sr-live-tick-badge {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 12;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: min(52%, 150px);
  padding: 4px 8px;
  overflow: hidden;
  border: 1px solid rgba(0, 255, 255, .32);
  border-radius: 999px;
  color: var(--sr-live-cyan);
  background: rgba(4, 10, 18, .9);
  box-shadow: 0 4px 14px rgba(0, 255, 255, .12);
  font: 700 11px/1.15 Inter, system-ui, sans-serif;
  letter-spacing: .02em;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: none;
}

html[data-recognition="idle"] body[data-theme="night"]::before,
html.radar-tab-hidden body::before {
  animation-play-state: paused !important;
}

html[data-recognition="idle"] .card:not(.has-signal):not(.detached) .sr-radar-pulse,
html[data-recognition="idle"] .card:not(.has-signal):not(.detached) .sr-radar-ping,
html[data-recognition="idle"] .card:not(.has-signal):not(.detached) .progress > div,
.card.sr-card-offscreen .sr-radar-pulse,
.card.sr-card-offscreen .sr-radar-ping,
.card.sr-card-offscreen .progress > div {
  animation-play-state: paused !important;
  will-change: auto !important;
}

html[data-recognition="idle"] .card:not(.has-signal):not(.detached) .sr-radar-pulse {
  opacity: .12;
}

html[data-recognition="idle"] .card:not(.has-signal):not(.detached) .sr-radar-ping {
  opacity: .2;
}

html.radar-tab-hidden *,
html.radar-tab-hidden *::before,
html.radar-tab-hidden *::after {
  animation-play-state: paused !important;
  scroll-behavior: auto !important;
}

.card.sr-card-offscreen:not(.detached) * {
  animation-play-state: paused !important;
}

/* A coherent light palette after dark-only premium and hologlass layers. */
body[data-theme="day"] {
  color: var(--sr-day-ink);
  background:
    radial-gradient(circle at 12% -8%, rgba(52, 145, 210, .12), transparent 36%),
    radial-gradient(circle at 88% 4%, rgba(75, 192, 183, .1), transparent 32%),
    linear-gradient(145deg, #f6f9fd, #edf3f9 58%, #f8fbfd) fixed !important;
}

body[data-theme="day"]::before {
  background:
    radial-gradient(circle at 18% 12%, rgba(44, 129, 190, .09), transparent 34%),
    radial-gradient(circle at 82% 72%, rgba(65, 171, 164, .08), transparent 36%),
    linear-gradient(180deg, rgba(250, 253, 255, .98), rgba(239, 246, 251, .98)) !important;
  filter: none !important;
  opacity: 1 !important;
  animation: none !important;
}

body[data-theme="day"]::after {
  background-image:
    linear-gradient(rgba(45, 105, 145, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45, 105, 145, .03) 1px, transparent 1px) !important;
  background-size: 48px 48px !important;
  mix-blend-mode: multiply !important;
  opacity: .32 !important;
}

body[data-theme="day"] main {
  background:
    radial-gradient(circle at 20% 0%, rgba(60, 144, 201, .06), transparent 30%),
    radial-gradient(circle at 90% 28%, rgba(52, 176, 164, .045), transparent 32%) !important;
}

body[data-theme="day"] .grid .card:not(.detached),
body[data-theme="day"] .card.holo-v3:not(.detached) {
  --premium-card-a: rgba(67, 137, 194, .1);
  --premium-card-b: rgba(49, 170, 158, .075);
  color: var(--sr-day-ink) !important;
  background:
    radial-gradient(circle at 13% 8%, var(--premium-card-a), transparent 43%),
    radial-gradient(circle at 88% 8%, var(--premium-card-b), transparent 42%),
    linear-gradient(148deg, rgba(253, 255, 255, .99), rgba(239, 246, 252, .98) 58%, rgba(248, 251, 254, .99)) !important;
  border-color: rgba(63, 121, 164, .22) !important;
  box-shadow: 0 14px 34px rgba(48, 83, 112, .13), inset 0 1px 0 #fff !important;
}

body[data-theme="day"] .grid .card:not(.detached):hover,
body[data-theme="day"] .card.holo-v3:not(.detached):hover {
  border-color: rgba(32, 126, 158, .34) !important;
  box-shadow: 0 18px 38px rgba(48, 83, 112, .16), 0 0 22px rgba(38, 148, 158, .08) !important;
}

body[data-theme="day"] .grid .card:not(.detached)::before,
body[data-theme="day"] .card.holo-v3:not(.detached)::before {
  background: radial-gradient(circle at 50% -8%, rgba(63, 145, 199, .1), transparent 54%) !important;
  opacity: .55 !important;
}

body[data-theme="day"] .grid .card:not(.detached)::after,
body[data-theme="day"] .card.holo-v3:not(.detached)::after {
  background:
    linear-gradient(112deg, transparent 0 38%, rgba(255, 255, 255, .58) 48%, transparent 60% 100%),
    repeating-linear-gradient(90deg, rgba(46, 110, 152, .025) 0 1px, transparent 1px 24px) !important;
  opacity: .36 !important;
}

body[data-theme="day"] .grid .card:not(.detached) .symbol-wrap h2,
body[data-theme="day"] .card.holo-v3 .symbol-wrap h2 {
  color: #123451 !important;
  text-shadow: none !important;
}

body[data-theme="day"] .grid .card:not(.detached) .analysis-btn,
body[data-theme="day"] .grid .card:not(.detached) .btn-detach,
body[data-theme="day"] .grid .card:not(.detached) .tf-pill,
body[data-theme="day"] .grid .card:not(.detached) .live-price {
  color: #24516f !important;
  background: rgba(250, 253, 255, .94) !important;
  border-color: rgba(55, 119, 160, .2) !important;
  box-shadow: 0 3px 10px rgba(55, 89, 112, .08) !important;
}

body[data-theme="day"] .grid .card:not(.detached) .holo-status {
  color: #3b6078 !important;
  background: rgba(235, 244, 250, .94) !important;
  border-color: rgba(55, 119, 160, .18) !important;
  box-shadow: inset 0 0 12px rgba(55, 119, 160, .04) !important;
}

body[data-theme="day"] .grid .card:not(.detached)[data-holo-state="pending"] .holo-status {
  color: #8a5a00 !important;
  background: #fff8e8 !important;
  border-color: rgba(181, 119, 5, .28) !important;
}

body[data-theme="day"] .grid .card:not(.detached)[data-holo-state="locked"] .holo-status,
body[data-theme="day"] .grid .card:not(.detached)[data-holo-state="tp-hit"] .holo-status {
  color: #087a57 !important;
  background: #eafaf4 !important;
  border-color: rgba(8, 122, 87, .25) !important;
}

body[data-theme="day"] .grid .card:not(.detached)[data-holo-state="sl-reset"] .holo-status {
  color: #b4234f !important;
  background: #fff0f4 !important;
  border-color: rgba(180, 35, 79, .24) !important;
}

body[data-theme="day"] .grid .card:not(.detached) .chart-wrapper,
body[data-theme="day"] .card.holo-v3 .chart-wrapper {
  background:
    radial-gradient(circle at 52% 48%, rgba(42, 139, 178, .075), transparent 40%),
    radial-gradient(circle at 84% 22%, rgba(45, 175, 160, .055), transparent 34%),
    linear-gradient(180deg, rgba(249, 252, 255, .99), rgba(230, 239, 248, .98)) !important;
  border-color: rgba(54, 115, 156, .2) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .76), inset 0 -22px 42px rgba(90, 130, 160, .06), 0 8px 20px rgba(61, 91, 116, .1) !important;
}

body[data-theme="day"] .grid .card:not(.detached) .chart-wrapper > .chart,
body[data-theme="day"] .card.holo-v3 .chart-wrapper > .chart {
  opacity: .88 !important;
  filter: saturate(.92) contrast(1.02) !important;
}

body[data-theme="day"] .grid .card:not(.detached) .chart-radar,
body[data-theme="day"] .card.holo-v3 .chart-radar {
  mix-blend-mode: multiply !important;
  opacity: .16 !important;
}

body[data-theme="day"] .grid .card:not(.detached) .indicator-chip,
body[data-theme="day"] .grid .card:not(.detached) .holo-scan-caption,
body[data-theme="day"] .grid .card:not(.detached) .holo-corridor {
  color: #355b72 !important;
  background: rgba(242, 248, 252, .9) !important;
  border-color: rgba(56, 119, 158, .17) !important;
  box-shadow: none !important;
}

body[data-theme="day"] .grid .card:not(.detached) .details {
  color: var(--sr-day-ink) !important;
  background: rgba(235, 244, 250, .94) !important;
  border-color: rgba(55, 119, 160, .16) !important;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .65) !important;
}

body[data-theme="day"] .grid .card:not(.detached) .details strong {
  color: #4d687a !important;
}

body[data-theme="day"] .grid .card:not(.detached) .details span {
  color: #183f59 !important;
}

body[data-theme="day"] .insights,
body[data-theme="day"] .signal-ticker,
body[data-theme="day"] .filters-panel,
body[data-theme="day"] .focus-mode {
  color: var(--sr-day-ink);
  background: linear-gradient(180deg, rgba(253, 255, 255, .98), rgba(238, 246, 251, .96)) !important;
  border-color: rgba(55, 119, 160, .17) !important;
  box-shadow: 0 10px 26px rgba(48, 83, 112, .1), inset 0 1px 0 #fff !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

body[data-theme="day"] .sr-live-tick-badge {
  color: #087d78;
  background: rgba(248, 253, 253, .96);
  border-color: rgba(8, 125, 120, .25);
  box-shadow: 0 4px 12px rgba(26, 94, 98, .1);
}

body[data-theme="day"] .holo-theater-v3 {
  color: var(--sr-day-ink) !important;
  background:
    radial-gradient(circle at 42% 30%, rgba(51, 152, 181, .1), transparent 38%),
    radial-gradient(circle at 82% 62%, rgba(91, 99, 204, .07), transparent 36%),
    rgba(237, 245, 250, .97) !important;
}

body[data-theme="day"] .holo-theater-v3 .holo-stage-card,
body[data-theme="day"] .holo-theater-v3 .holo-evidence,
body[data-theme="day"] .holo-theater-v3 .holo-dna {
  color: var(--sr-day-ink) !important;
  background: rgba(250, 253, 255, .96) !important;
  border-color: rgba(55, 119, 160, .2) !important;
  box-shadow: 0 12px 30px rgba(48, 83, 112, .13) !important;
}

@media (max-width: 900px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  main,
  .grid,
  .grid .card:not(.detached),
  .chart-shell,
  .chart-wrapper {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .grid .card:not(.detached) {
    contain-intrinsic-size: auto 356px;
  }

  #sr-mobile-top,
  #sr-mobile-dock,
  .sr-mobile-sheet__panel,
  .grid .card:not(.detached) .holo-corridor {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  #sr-mobile-top,
  #sr-mobile-dock {
    background-color: rgba(4, 12, 22, .97);
  }

  body[data-theme="day"] #sr-mobile-top,
  body[data-theme="day"] #sr-mobile-dock {
    background-color: rgba(247, 252, 252, .98);
  }

  .sr-live-tick-badge {
    top: 7px;
    right: 7px;
    max-width: 46%;
    font-size: 10px;
  }

  .card.sr-card-offscreen:not(.detached) {
    pointer-events: none;
  }
}

html[data-runtime-tier="low"] .grid .card:not(.detached) .holo-corridor,
html[data-runtime-tier="low"] .modal,
html[data-runtime-tier="low"] .detached-hint {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

html[data-runtime-tier="low"] .grid .card:not(.detached) {
  box-shadow: 0 10px 26px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255, 255, 255, .045) !important;
}

@media (prefers-reduced-motion: reduce), (update: slow) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
  }

  .sr-radar-pulse,
  .sr-radar-ping,
  .chart-radar,
  .signal-ticker__dot,
  body::before {
    animation: none !important;
  }

  .card,
  .card::before,
  .card::after {
    transition-duration: .01ms !important;
  }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .modal,
  .filters-panel,
  .insights,
  .signal-ticker,
  .focus-mode {
    background-color: var(--panel-color) !important;
  }
}

/* Runtime v3: one predictable card geometry after the legacy theme layers. */
.grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 272px), 1fr)) !important;
  align-items: start;
}

.grid .card.sr-market-card:not(.detached),
.grid .card.holo-v3:not(.detached),
.grid .card:not(.detached) {
  height: auto !important;
  min-height: 354px !important;
  max-height: none !important;
  overflow: clip !important;
  content-visibility: auto !important;
  contain: layout paint style !important;
  contain-intrinsic-size: auto 430px !important;
  will-change: auto !important;
}

.grid .card:not(.detached) .card-head,
.grid .card.sr-market-card:not(.detached) .card-head {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-auto-flow: row !important;
  align-items: center !important;
  gap: 7px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.grid .card:not(.detached) .symbol-wrap {
  min-width: 0 !important;
}

.grid .card:not(.detached) .card-tools,
.grid .card.sr-market-card:not(.detached) .card-tools {
  position: relative !important;
  z-index: 12 !important;
  grid-column: 1 / -1 !important;
  grid-row: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(66px, auto) !important;
  width: 100% !important;
  min-width: 0 !important;
  gap: 7px !important;
  margin: 0 !important;
  transform: none !important;
}

.grid .card:not(.detached) .analysis-btn,
.grid .card.sr-market-card:not(.detached) .analysis-btn,
.grid .card:not(.detached) .btn-detach,
.grid .card.sr-market-card:not(.detached) .btn-detach {
  position: relative !important;
  inset: auto !important;
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  height: 34px !important;
  min-height: 34px !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
  padding: 0 10px !important;
  border-radius: 11px !important;
  font-size: 9px !important;
  line-height: 1 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  transform: none !important;
}

.grid .card:not(.detached) .chart-shell,
.grid .card:not(.detached) .chart-wrapper,
.grid .card.sr-market-card:not(.detached) .chart-shell,
.grid .card.sr-market-card:not(.detached) .chart-wrapper {
  width: 100% !important;
  height: clamp(166px, 13vw, 194px) !important;
  min-height: 166px !important;
  max-height: 194px !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.grid .card:not(.detached) .chart-wrapper > .chart {
  filter: saturate(.92) contrast(1.02) !important;
}

.grid .card:not(.detached) .details,
.grid .card.sr-market-card:not(.detached) .details,
.grid .card.sr-market-card:not(.detached)[data-holo-state] .details {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto minmax(0, 1fr) !important;
  min-height: 76px !important;
  max-height: none !important;
  box-sizing: border-box !important;
  align-items: center !important;
  gap: 4px 7px !important;
  overflow: visible !important;
  padding: 8px 9px !important;
}

.grid .card:not(.detached) .details strong,
.grid .card:not(.detached) .details span {
  min-width: 0 !important;
  overflow: hidden !important;
  line-height: 1.15 !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.grid .card:not(.detached) .signal-explain-mini[data-tone] {
  width: 100% !important;
  min-height: 0 !important;
  max-height: none !important;
  box-sizing: border-box !important;
  overflow: visible !important;
  padding: 9px !important;
}

.grid .card:not(.detached) .signal-explain-mini__grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 5px !important;
}

.grid .card:not(.detached) .signal-explain-mini__grid span {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  min-width: 0 !important;
  min-height: 28px !important;
  box-sizing: border-box !important;
  align-items: center !important;
  gap: 5px !important;
  overflow: hidden !important;
  padding: 5px 6px !important;
  line-height: 1.1 !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.grid .card:not(.detached) .signal-explain-mini__grid em,
.grid .card:not(.detached) .signal-explain-mini__grid b {
  min-width: 0 !important;
  overflow: hidden !important;
  font-style: normal !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}

.grid .card:not(.detached) .signal-explain-mini__grid span[data-kind="reason"] {
  grid-column: 1 / -1 !important;
}

/* Stop decorative work whenever it cannot contribute to the visible result. */
html[data-recognition="idle"] .grid .card:not(.has-signal):not(.detached)::after,
html[data-recognition="idle"] .grid .card:not(.has-signal):not(.detached) .sr-radar-layer::after,
.grid .card.sr-card-offscreen:not(.detached)::after,
.grid .card.sr-card-offscreen:not(.detached) .sr-radar-layer::after,
.grid .card.sr-mobile-card-parked:not(.detached)::after,
.grid .card.sr-mobile-card-parked:not(.detached) .sr-radar-layer::after,
html[data-radar-obscured="true"] .grid .card:not(.detached)::after,
html[data-radar-obscured="true"] .grid .card:not(.detached) .sr-radar-layer::after {
  animation: none !important;
  opacity: 0 !important;
  will-change: auto !important;
}

html[data-radar-obscured="true"] .grid .card:not(.detached) *,
html[data-runtime-pressure="high"] .grid .card:not(.detached) * {
  animation-play-state: paused !important;
}

html[data-runtime-pressure="high"] .grid .card:not(.detached),
html[data-runtime-tier="low"] .grid .card:not(.detached) {
  box-shadow: 0 9px 22px rgba(0, 0, 0, .3), inset 0 1px rgba(255, 255, 255, .04) !important;
}

html[data-runtime-pressure="high"] .grid .card:not(.detached) .chart-wrapper > .chart,
html[data-runtime-tier="low"] .grid .card:not(.detached) .chart-wrapper > .chart {
  filter: none !important;
}

@media (max-width: 900px) {
  .grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .grid .card.sr-market-card:not(.detached),
  .grid .card.holo-v3:not(.detached),
  .grid .card:not(.detached) {
    min-height: 0 !important;
    contain-intrinsic-size: auto 446px !important;
  }

  .grid .card:not(.detached) .chart-shell,
  .grid .card:not(.detached) .chart-wrapper,
  .grid .card.sr-market-card:not(.detached) .chart-shell,
  .grid .card.sr-market-card:not(.detached) .chart-wrapper {
    height: clamp(170px, 48vw, 204px) !important;
    min-height: 170px !important;
    max-height: 204px !important;
  }

  .grid .card:not(.detached) .signal-explain-mini__grid span {
    min-height: 30px !important;
  }
}

@media (max-width: 390px) {
  .grid .card:not(.detached) .card-tools {
    grid-template-columns: minmax(0, 1fr) 64px !important;
  }

  .grid .card:not(.detached) .analysis-btn,
  .grid .card:not(.detached) .btn-detach {
    padding-inline: 7px !important;
    font-size: 8.5px !important;
  }

  .grid .card:not(.detached) .details {
    gap: 4px 5px !important;
    padding-inline: 7px !important;
  }

  .grid .card:not(.detached) .signal-explain-mini__grid {
    gap: 4px !important;
  }
}
