.stock-heatmap-page {
  min-height: 100%;
  overflow: auto;
  background: #fbfcfb;
  color: #111417;
  color-scheme: light;
}

.stock-force-concept-spine {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "head"
    "visual"
    "legend";
  gap: 10px;
}

.stock-force-concept-spine .stock-force-causal-hero {
  overflow-x: auto;
  overflow-y: hidden;
  background:
    linear-gradient(90deg, rgba(237, 244, 240, 0.66) 0 1px, transparent 1px 20%),
    #ffffff;
}

.stock-force-concept-spine .stock-force-causal-hero svg {
  min-width: 1220px;
  min-height: clamp(500px, 38vw, 620px);
}

.stock-force-concept-stage-tag text {
  fill: #58665f;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: 0;
  text-anchor: middle;
  text-transform: uppercase;
}

.stock-force-concept-stage-tag rect {
  fill: #ffffff;
  stroke: #dfe8e3;
}

.stock-force-concept-stage-tag line {
  stroke: #dfe8e3;
  stroke-dasharray: 6 10;
}

.stock-force-concept-link {
  cursor: pointer;
  filter: drop-shadow(0 10px 13px rgba(19, 30, 23, 0.14));
  mix-blend-mode: multiply;
}

.stock-force-concept-link.negative {
  filter: drop-shadow(0 10px 13px rgba(60, 20, 26, 0.12));
}

.stock-force-concept-link.neutral {
  filter: drop-shadow(0 8px 10px rgba(25, 30, 28, 0.08));
}

.stock-force-concept-card {
  cursor: pointer;
}

.stock-force-concept-card rect {
  fill: rgba(255, 255, 255, 0.96);
  stroke: #dce6e1;
  stroke-width: 1.2;
  filter: drop-shadow(0 8px 11px rgba(20, 30, 25, 0.09));
}

.stock-force-concept-card.positive rect {
  stroke: rgba(20, 176, 91, 0.36);
}

.stock-force-concept-card.negative rect {
  stroke: rgba(239, 61, 79, 0.42);
}

.stock-force-concept-card.neutral rect {
  stroke: rgba(132, 145, 138, 0.34);
}

.stock-force-concept-card:focus rect,
.stock-force-concept-card:hover rect {
  stroke: #101716;
  stroke-width: 1.8;
}

.stock-force-concept-card text {
  fill: #0f1514;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
}

.stock-force-concept-card .tiny {
  fill: #617069;
  font-size: 10px;
  font-weight: 650;
}

.stock-force-concept-card .chip {
  fill: #6a7670;
  font-size: 8px;
  font-weight: 500;
}

.stock-force-concept-card .icon-bg {
  fill: #f8fffb;
  stroke: rgba(20, 176, 91, 0.25);
  stroke-width: 1;
}

.stock-force-concept-card.negative .icon-bg {
  fill: #fff8f9;
  stroke: rgba(239, 61, 79, 0.3);
}

.stock-force-concept-card.neutral .icon-bg {
  fill: #fbfcfb;
  stroke: rgba(126, 139, 133, 0.3);
}

.stock-force-concept-card .icon-mark {
  fill: none;
  stroke: #0b9850;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}

.stock-force-concept-card.negative .icon-mark {
  stroke: #df3346;
}

.stock-force-concept-card.neutral .icon-mark {
  stroke: #6a7670;
}

.stock-force-concept-card .score-divider {
  stroke: #e1e8e4;
}

.stock-force-concept-card .result-ring {
  fill: #f6fff8;
  stroke: rgba(20, 176, 91, 0.25);
}

.stock-force-concept-card.negative .result-ring {
  fill: #fff7f8;
  stroke: rgba(239, 61, 79, 0.3);
}

.stock-force-concept-card .result {
  fill: #0b9850;
  font-size: 15px;
  font-weight: 800;
}

.stock-force-concept-card.negative .result {
  fill: #df3346;
}

.stock-force-concept-stock-node circle {
  fill: #ffffff;
  stroke: #dfe8e3;
  stroke-width: 2;
  filter: drop-shadow(0 16px 26px rgba(19, 29, 23, 0.14));
}

.stock-force-concept-stock-node circle.outer {
  fill: url("#stock-force-concept-node-fill");
}

.stock-force-concept-stock-node circle.inner {
  fill: #ffffff;
  stroke: #edf2ef;
  filter: none;
}

.stock-force-concept-stock-node text {
  fill: #64716c;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  text-anchor: middle;
}

.stock-force-concept-stock-node .symbol {
  fill: #050708;
  font-size: 30px;
  font-weight: 850;
}

.stock-force-concept-stock-node .ticker {
  fill: #050708;
  font-size: 18px;
  font-weight: 650;
}

.stock-force-concept-stock-node .score {
  font-size: 24px;
  font-weight: 800;
}

.stock-force-concept-stock-node .score.positive {
  fill: #0b9850;
}

.stock-force-concept-stock-node .score.negative {
  fill: #df3346;
}

.stock-force-concept-legend {
  grid-area: legend;
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  align-items: center;
  border: 1px solid #dfe8e3;
  border-radius: 10px;
  padding: 10px 12px;
  background: #fbfdfc;
  color: #596761;
  font-size: 11px;
  font-weight: 600;
}

.stock-force-concept-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.stock-force-concept-legend b {
  width: 34px;
  height: 5px;
  display: inline-block;
  border-radius: 999px;
  background: #79857f;
}

.stock-force-concept-legend .positive {
  background: #20a365;
}

.stock-force-concept-legend .negative {
  background: #e45a66;
}

.stock-force-concept-legend .width {
  height: 8px;
}

.stock-force-concept-legend .pulse {
  width: 10px;
  height: 10px;
  border: 2px solid #20a365;
  background: #effbf4;
  box-shadow: 0 0 0 4px rgba(32, 163, 101, 0.12);
}

.stock-heatmap-page .topbar {
  display: none;
}

.stock-force-appbar {
  height: 60px;
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 0 24px;
  border-bottom: 1px solid #dde2e0;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 8px 28px rgba(22, 34, 28, 0.06);
}

.stock-force-logo {
  min-width: 218px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: #111417;
  text-decoration: none;
}

.stock-force-logo strong {
  color: #0a9546;
  font-size: 33px;
  font-weight: 950;
  letter-spacing: 0;
}

.stock-force-logo span {
  color: #101417;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.12;
  text-transform: uppercase;
}

.stock-force-nav {
  min-width: 0;
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(18px, 2.2vw, 36px);
}

.stock-force-nav a {
  color: #15191c;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.stock-force-nav a.active {
  color: #0a9546;
}

.stock-force-app-actions {
  display: inline-flex;
  align-items: center;
  gap: 12px;
}

.stock-force-app-actions button {
  position: relative;
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #d8dedb;
  border-radius: 10px;
  background: #ffffff;
  color: #152029;
  font-size: 15px;
  font-weight: 900;
}

.stock-force-badge {
  position: absolute;
  top: -8px;
  right: -6px;
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #11a24d;
  color: #ffffff;
  font-size: 10px;
}

.stock-force-app-actions .account-control {
  min-width: 0;
  margin-left: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
}

.stock-force-app-actions .account-control > span {
  max-width: min(240px, 22vw);
  display: block;
  overflow: hidden;
  color: #40504a;
  font-size: 13px;
  font-weight: 800;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-app-actions .account-control button {
  width: auto;
  min-width: 104px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border-radius: 8px;
  padding: 0 12px;
  background: #17202a;
  color: #ffffff;
  font-size: 13px;
}

.stock-force-app-actions .account-control button span {
  display: inline;
}

.stock-force-app-actions .account-control button svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
}

.stock-force-shell {
  min-height: calc(100vh - 60px);
  display: grid;
  gap: 0;
  padding: 22px 24px 18px;
  background: #fbfcfb;
}

.stock-force-toolbar {
  display: grid;
  grid-template-columns: minmax(280px, 0.8fr) minmax(720px, 1.2fr);
  gap: 22px;
  align-items: center;
  padding-bottom: 22px;
  border-bottom: 1px solid #e0e5e2;
}

.stock-force-title-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.stock-force-title-row h1 {
  margin: 0;
  color: #090b0c;
  font-size: clamp(28px, 2.2vw, 36px);
  line-height: 1;
  letter-spacing: 0;
}

.stock-force-title-row span {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border: 1px solid #8c9592;
  border-radius: 50%;
  color: #4a5652;
  font-size: 12px;
  font-weight: 900;
}

.stock-force-load-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-left: 8px;
}

.stock-force-load-status b {
  min-height: 24px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #d9e1dd;
  border-radius: 999px;
  padding: 3px 9px;
  background: #ffffff;
  color: #68736f;
  font-size: 11px;
  font-weight: 850;
  white-space: nowrap;
}

.stock-force-load-status b[data-state="loading"] {
  border-color: #b8d7ff;
  background: #edf6ff;
  color: #1f679f;
}

.stock-force-load-status b[data-state="loaded"] {
  border-color: rgba(22, 169, 78, 0.22);
  background: #e9faed;
  color: #0a8d3e;
}

.stock-force-load-status b[data-state="watch"] {
  border-color: #efd28d;
  background: #fff8e6;
  color: #9a6508;
}

.stock-force-load-status b[data-state="warn"] {
  border-color: #ffc2c8;
  background: #fff0f1;
  color: #d52f43;
}

.stock-force-controls {
  min-width: 0;
  display: grid;
  grid-template-columns: 50px minmax(230px, 0.82fr) auto minmax(165px, 0.48fr) auto minmax(430px, 1.1fr) auto;
  grid-template-areas: "logo search searchbutton date horizon segments refresh";
  gap: 8px;
  align-items: center;
}

.stock-force-controls label {
  min-width: 0;
  position: relative;
  display: grid;
}

.stock-force-controls label > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.stock-force-controls input {
  height: 46px;
  min-width: 0;
  border: 1px solid #d8dedb;
  border-radius: 9px;
  background: #ffffff;
  color: #111417;
  font-size: 15px;
  font-weight: 900;
}

.stock-force-search input {
  padding: 0 116px 0 42px;
}

.stock-force-search::before {
  content: "Q";
  position: absolute;
  left: 14px;
  top: 50%;
  color: #74807b;
  font-size: 14px;
  font-weight: 900;
  transform: translateY(-50%);
}

.stock-force-search b {
  position: absolute;
  right: 14px;
  top: 50%;
  max-width: 105px;
  overflow: hidden;
  color: #5d6864;
  font-size: 13px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
  transform: translateY(-50%);
}

.stock-force-toolbar-logo {
  grid-area: auto;
  grid-row: 1;
  grid-column: 1;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.stock-force-toolbar-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.stock-force-toolbar-logo b {
  display: none;
  color: #0a8e3f;
  font-size: 18px;
  font-weight: 950;
  letter-spacing: 0;
}

.stock-force-toolbar-logo.fallback {
  width: 42px;
  height: 42px;
  border: 1px solid rgba(28, 160, 85, 0.18);
  border-radius: 12px;
  background: linear-gradient(180deg, #f4fbf6, #ffffff);
}

.stock-force-toolbar-logo.fallback b {
  display: block;
}

.stock-force-action-button {
  height: 46px;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid #d8dedb;
  border-radius: 9px;
  background: #ffffff;
  color: #152029;
  font-size: 14px;
  font-weight: 900;
  white-space: nowrap;
  cursor: pointer;
  transition: transform 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}

.stock-force-action-button:hover,
.stock-force-action-button:focus-visible {
  border-color: rgba(10, 162, 71, 0.34);
  box-shadow: 0 8px 18px rgba(20, 110, 62, 0.1);
  outline: none;
  transform: translateY(-1px);
}

.stock-force-action-button svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.3;
  flex: 0 0 auto;
}

.stock-force-search-button {
  grid-area: auto;
  grid-row: 1;
  grid-column: 3;
  padding: 0 15px;
  background: #0ba247;
  border-color: #0ba247;
  color: #ffffff;
}

.stock-force-search-button:hover,
.stock-force-search-button:focus-visible {
  border-color: #078a3d;
  box-shadow: 0 8px 18px rgba(10, 162, 71, 0.22);
}

.stock-force-refresh-button {
  grid-area: auto;
  grid-row: 1;
  grid-column: 7;
  padding: 0 16px;
}

.stock-force-search {
  grid-area: auto;
  grid-row: 1;
  grid-column: 2;
}

.stock-force-date input {
  padding: 0 12px;
}

.stock-force-date {
  grid-area: auto;
  grid-row: 1;
  grid-column: 4;
}

.stock-force-horizon-label {
  grid-area: auto;
  grid-row: 1;
  grid-column: 5;
  color: #4b5652;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}

.stock-force-segments {
  grid-area: auto;
  grid-row: 1;
  grid-column: 6;
  height: 46px;
  display: inline-flex;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  border: 1px solid #d8dedb;
  border-radius: 22px;
  background: #ffffff;
  scrollbar-width: none;
}

.stock-force-segments::-webkit-scrollbar {
  display: none;
}

.stock-force-segments button {
  min-width: 52px;
  flex: 0 0 auto;
  padding: 0 10px;
  border: 0;
  border-right: 1px solid #e1e5e3;
  border-radius: 0;
  background: transparent;
  color: #14191c;
  font-size: 14px;
  font-weight: 850;
}

.stock-force-segments button:last-child {
  border-right: 0;
}

.stock-force-segments button.active {
  margin: 6px;
  min-width: 62px;
  border-radius: 16px;
  background: #0ba247;
  color: #ffffff;
  box-shadow: 0 4px 12px rgba(10, 162, 71, 0.22);
}

.stock-force-stage {
  min-height: 590px;
  position: relative;
  display: grid;
  grid-template-columns: minmax(330px, 0.9fr) minmax(430px, 1.08fr) minmax(330px, 0.9fr) minmax(220px, 0.48fr);
  gap: 0;
  align-items: stretch;
  border-bottom: 1px solid #dde4e0;
  background: #ffffff;
  overflow: hidden;
}

.stock-force-arrow-layer {
  position: absolute;
  inset: 0;
  z-index: 6;
  width: 100%;
  height: 100%;
  overflow: visible;
  pointer-events: none;
}

.stock-force-arrow-layer path {
  fill: none;
}

.stock-force-arrow-layer path.stock-force-flow {
  stroke-linecap: round;
  stroke-linejoin: round;
  filter: drop-shadow(0 6px 11px rgba(20, 30, 25, 0.1));
  mix-blend-mode: multiply;
}

.stock-force-arrow-layer path.stock-force-flow.positive {
  stroke: #4acb61;
}

.stock-force-arrow-layer path.stock-force-flow.negative {
  stroke: #ff6972;
}

.stock-force-side,
.stock-force-core,
.stock-force-evidence-rail {
  min-width: 0;
  position: relative;
  display: grid;
  align-content: start;
}

.stock-force-side {
  z-index: 3;
  gap: 10px;
  padding: 10px 14px 14px 6px;
}

.stock-force-negative {
  padding-right: 14px;
  padding-left: 14px;
}

.stock-force-side-head {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  height: 34px;
}

.stock-force-side-icon {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #ffffff;
  font-size: 9px;
  font-weight: 950;
}

.stock-force-positive .stock-force-side-icon {
  background: #14a24f;
}

.stock-force-negative .stock-force-side-icon {
  background: #f23c4f;
}

.stock-force-side-head strong {
  color: #111417;
  font-size: 19px;
  line-height: 1;
}

.stock-force-side-head button {
  min-width: 56px;
  height: 34px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.82);
  font-size: 18px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  transition: transform 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.stock-force-side-head button:hover,
.stock-force-side-head button:focus-visible {
  transform: translateY(-1px);
  outline: none;
}

.stock-force-positive .stock-force-side-head button {
  border-color: rgba(20, 173, 81, 0.24);
  color: #0b9f45;
}

.stock-force-negative .stock-force-side-head button {
  border-color: rgba(255, 82, 97, 0.28);
  color: #ec3548;
}

.stock-force-band-list {
  display: grid;
  gap: 10px;
}

.stock-force-band {
  --force: 0.35;
  position: relative;
  min-height: 65px;
  display: grid;
  grid-template-columns: 52px minmax(0, 1fr) 48px;
  gap: 10px;
  align-items: center;
  border-radius: 11px;
  padding: 9px 14px 9px 12px;
  overflow: visible;
}

.stock-force-band::before {
  content: none;
  position: absolute;
  top: 18px;
  width: clamp(96px, 8vw, 150px);
  height: 38px;
  pointer-events: none;
  opacity: calc(0.22 + var(--force) * 0.44);
}

.stock-force-band::after {
  content: none;
  position: absolute;
  top: 29px;
  width: 0;
  height: 0;
  pointer-events: none;
  opacity: calc(0.45 + var(--force) * 0.4);
}

.stock-force-band.positive {
  border: 1px solid rgba(40, 190, 88, 0.28);
  background: linear-gradient(90deg, rgba(219, 255, 220, 0.9), rgba(248, 255, 248, 0.92));
}

.stock-force-band.positive::before {
  left: 100%;
  border-radius: 0 999px 999px 0;
  background: linear-gradient(90deg, rgba(62, 204, 85, 0.58), rgba(62, 204, 85, 0));
}

.stock-force-band.positive::after {
  left: calc(100% + clamp(86px, 7.6vw, 140px));
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 16px solid #28bc54;
}

.stock-force-band.negative {
  border: 1px solid rgba(242, 68, 84, 0.32);
  background: linear-gradient(270deg, rgba(255, 226, 226, 0.95), rgba(255, 248, 248, 0.96));
}

.stock-force-band.negative::before {
  right: 100%;
  border-radius: 999px 0 0 999px;
  background: linear-gradient(270deg, rgba(255, 90, 101, 0.58), rgba(255, 90, 101, 0));
}

.stock-force-band.negative::after {
  right: calc(100% + clamp(86px, 7.6vw, 140px));
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-right: 16px solid #ff5b66;
}

.stock-force-band i,
.stock-force-neutral-chip i {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #ffffff;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
}

.stock-force-band.positive i,
.stock-force-neutral-chip.positive i {
  border: 1px solid #15ad51;
  color: #10a34a;
}

.stock-force-band.negative i,
.stock-force-neutral-chip.negative i {
  border: 1px solid #ff5261;
  color: #ef364b;
}

.stock-force-band strong {
  display: block;
  overflow: hidden;
  color: #121516;
  font-size: 16px;
  font-weight: 950;
  line-height: 1.08;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-band span {
  display: block;
  overflow: hidden;
  color: #4d5753;
  font-size: 12px;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-band small {
  display: block;
  overflow: hidden;
  margin-top: 2px;
  color: #74807b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.12;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.stock-force-band.positive small {
  color: #31764c;
}

.stock-force-band.negative small {
  color: #9d4a52;
}

.stock-force-band em {
  width: min(160px, 78%);
  height: 8px;
  display: block;
  overflow: hidden;
  margin-top: 7px;
  border-radius: 999px;
  background: rgba(20, 40, 26, 0.12);
}

.stock-force-band em span {
  display: block;
  height: 100%;
  border-radius: inherit;
}

.stock-force-band.positive em span {
  background: linear-gradient(90deg, #13a34b, #63d37d);
}

.stock-force-band.negative em span {
  background: linear-gradient(90deg, #ff4b5b, #ffa4a4);
}

.stock-force-band b,
.stock-force-band .stock-force-score-link {
  min-width: 48px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.6);
  font-size: 18px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
}

.stock-force-band.positive b,
.stock-force-band.positive .stock-force-score-link {
  border: 1px solid rgba(20, 173, 81, 0.25);
  color: #0a9c43;
}

.stock-force-band.negative b,
.stock-force-band.negative .stock-force-score-link {
  border: 1px solid rgba(255, 82, 97, 0.28);
  color: #ed354a;
}

.stock-force-score-link:hover,
.stock-force-score-link:focus-visible {
  outline: 2px solid rgba(17, 20, 23, 0.18);
  outline-offset: 2px;
  background: #ffffff;
  box-shadow: 0 6px 16px rgba(20, 30, 25, 0.12);
}

.stock-force-core {
  z-index: 4;
  justify-items: center;
  align-content: center;
  gap: 16px;
  padding: 12px 18px 18px;
  background: #ffffff;
}

.stock-force-orbit {
  width: min(410px, 90%);
  aspect-ratio: 1;
  position: relative;
  display: grid;
  place-items: center;
  border-radius: 50%;
  contain: paint;
  isolation: isolate;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 18px 48px rgba(27, 38, 32, 0.12);
  transition: background 220ms ease, box-shadow 220ms ease;
}

.stock-force-orbit-base,
.stock-force-orbit-fill {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  pointer-events: none;
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - var(--base-ring-width, 34px)), #000 calc(100% - var(--base-ring-width, 34px)));
  mask: radial-gradient(farthest-side, transparent calc(100% - var(--base-ring-width, 34px)), #000 calc(100% - var(--base-ring-width, 34px)));
}

.stock-force-orbit-base {
  z-index: 0;
  background:
    conic-gradient(
      from 0deg,
      rgba(255, 82, 98, 0.15) 0deg 180deg,
      rgba(53, 202, 92, 0.16) 180deg 360deg
    );
}

.stock-force-orbit-fill {
  z-index: 1;
  background:
    conic-gradient(
      from 0deg,
      rgb(243 63 79 / var(--negative-alpha, 0.95)) 0deg var(--negative-end, 90deg),
      transparent var(--negative-end, 90deg) var(--positive-start, 270deg),
      rgb(33 177 79 / var(--positive-alpha, 0.95)) var(--positive-start, 270deg) 360deg
    );
  transition: background 220ms ease;
}

.stock-force-orbit::before {
  content: "";
  position: absolute;
  inset: var(--orbit-center-inset, 34px);
  z-index: 2;
  border-radius: 50%;
  background: #ffffff;
  box-shadow: inset 0 0 0 1px #edf0ee;
  transition: inset 220ms ease;
}

.stock-force-orbit::after {
  content: none;
}

.stock-force-nucleus {
  width: 70%;
  aspect-ratio: 1;
  position: relative;
  z-index: 3;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 3px;
  border-radius: 50%;
  background: #ffffff;
  text-align: center;
}

.stock-force-company-logo {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.stock-force-company-logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.stock-force-company-logo b {
  display: none;
  color: #0a8e3f;
  font-size: 16px;
  font-weight: 950;
  letter-spacing: 0;
}

.stock-force-company-logo.fallback {
  width: 34px;
  height: 34px;
  border: 1px solid rgba(28, 160, 85, 0.18);
  border-radius: 12px;
  background: #f3fbf5;
}

.stock-force-company-logo.fallback b {
  display: block;
}

.stock-force-nucleus strong {
  max-width: 88%;
  display: block;
  overflow: visible;
  padding: 2px 0;
  color: #050607;
  font-size: clamp(26px, calc(52px - (var(--symbol-chars, 4) * 3px)), 40px);
  font-weight: 950;
  line-height: 1.32;
  letter-spacing: 0;
  text-overflow: clip;
  white-space: nowrap;
}

.stock-force-nucleus em {
  max-width: 86%;
  overflow: hidden;
  color: #121516;
  font-size: 15px;
  font-style: normal;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-nucleus b {
  color: #101416;
  font-size: clamp(17px, 1.62vw, 21px);
  line-height: 1.28;
  font-weight: 900;
  font-variant-numeric: tabular-nums;
}

.stock-force-nucleus i {
  color: #079b42;
  font-size: 15px;
  font-style: normal;
  font-weight: 850;
}

.stock-force-nucleus hr {
  width: 58%;
  margin: 4px 0 2px;
  border: 0;
  border-top: 1px dashed #d7ddda;
}

.stock-force-nucleus small {
  color: #66706c;
  font-size: 14px;
  font-weight: 750;
}

.stock-force-nucleus output {
  color: #56625d;
  font-size: 40px;
  line-height: 1;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.stock-force-nucleus output.positive {
  color: #0a9c43;
}

.stock-force-nucleus output.negative {
  color: #ed354a;
}

.stock-force-nucleus output.neutral {
  color: #56625d;
}

.stock-force-nucleus mark {
  border-radius: 14px;
  padding: 4px 12px;
  background: #eef2ef;
  color: #58645f;
  font-size: 14px;
  font-weight: 950;
}

.stock-force-nucleus mark.positive {
  background: #dff6e4;
  color: #0a8e3f;
}

.stock-force-nucleus mark.negative {
  background: #ffe4e7;
  color: #d92f43;
}

.stock-force-nucleus mark.neutral {
  background: #eef2ef;
  color: #58645f;
}

.stock-force-neutral-panel {
  width: min(620px, 100%);
  position: relative;
  z-index: 7;
  display: grid;
  gap: 9px;
  padding: 12px;
  border: 1px solid #dfe5e2;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 12px 30px rgba(26, 35, 30, 0.08);
}

.stock-force-neutral-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.stock-force-neutral-head h2 {
  margin: 0;
  color: #111417;
  font-size: 16px;
  line-height: 1;
}

.stock-force-neutral-head span {
  color: #6d7773;
  font-size: 11px;
  font-weight: 750;
  text-transform: uppercase;
}

.stock-force-neutral-list {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 0;
}

.stock-force-neutral-chip {
  min-width: 0;
  display: grid;
  grid-template-columns: 32px minmax(74px, 1fr) 42px;
  gap: 8px;
  align-items: center;
  min-height: 48px;
  border: 1px solid #dfe5e2;
  border-radius: 9px;
  padding: 7px 8px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 249, 248, 0.96));
  box-shadow: 0 5px 12px rgba(26, 35, 30, 0.04);
}

.stock-force-neutral-chip i {
  width: 32px;
  height: 32px;
  border: 1px solid #cfd7d3;
  color: #6d7773;
}

.stock-force-neutral-chip strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: #1a1f21;
  font-size: 12.5px;
  line-height: 1.1;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.stock-force-neutral-chip b,
.stock-force-neutral-chip .stock-force-score-link {
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: #f4f6f5;
  color: #111417;
  font-size: 13px;
  font-weight: 900;
  text-decoration: none;
}

.stock-force-evidence-rail {
  z-index: 3;
  gap: 12px;
  padding: 18px 14px;
  border-left: 1px solid #dce2df;
  background: #ffffff;
}

.stock-force-evidence-rail h2 {
  margin: 0;
  padding-bottom: 14px;
  border-bottom: 1px solid #e1e6e3;
  color: #111417;
  font-size: 18px;
}

.stock-force-confidence-arc {
  min-height: 164px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 6px;
  border-bottom: 1px solid #e1e6e3;
}

.stock-force-confidence-arc::before {
  content: "";
  width: 166px;
  height: 98px;
  border: 12px solid #e9eceb;
  border-bottom: 0;
  border-radius: 166px 166px 0 0;
  background: linear-gradient(90deg, #44c04f 70%, transparent 70%);
  mask: radial-gradient(circle at 50% 100%, transparent 71px, #000 72px);
}

.stock-force-confidence-arc div {
  margin-top: -72px;
  color: #0a9943;
  font-size: 34px;
  font-weight: 950;
}

.stock-force-confidence-arc span {
  color: #0a9943;
  font-size: 14px;
  font-weight: 900;
}

.stock-force-evidence {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 4px;
}

.stock-force-evidence div {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1px 8px;
  align-items: center;
  min-height: 38px;
  border: 1px solid #e1e9e4;
  border-radius: 9px;
  padding: 5px 8px;
  background: linear-gradient(180deg, #ffffff, #f8fbf9);
  box-shadow: 0 4px 11px rgba(26, 35, 30, 0.035);
}

.stock-force-evidence span {
  min-width: 0;
  overflow: hidden;
  color: #56625d;
  font-size: 9.8px;
  font-weight: 800;
  letter-spacing: 0;
  text-overflow: ellipsis;
  text-transform: none;
  white-space: nowrap;
}

.stock-force-evidence strong {
  max-width: 82px;
  justify-self: end;
  overflow: hidden;
  border-radius: 999px;
  padding: 3px 8px;
  background: #f0f4f2;
  color: #111417;
  font-size: 10.5px;
  font-weight: 850;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-evidence .ok {
  background: #e8faee;
  color: #0a9c43;
}

.stock-force-evidence .watch {
  background: #fff7e5;
  color: #ba7a08;
}

.stock-force-evidence .warn {
  background: #fff0f2;
  color: #e13549;
}

.stock-force-evidence small {
  grid-column: 1 / -1;
  overflow: hidden;
  color: #4f5d57;
  font-size: 9.5px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-attention {
  display: grid;
  gap: 7px;
  border: 1px solid #f3cb6a;
  border-radius: 9px;
  padding: 12px;
  background: #fff8e8;
}

.stock-force-attention strong {
  color: #8b5d07;
  font-size: 14px;
}

.stock-force-attention span,
.stock-force-evidence-rail p {
  margin: 0;
  color: #4c5752;
  font-size: 12px;
  line-height: 1.35;
}

.stock-force-breakdown {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  justify-items: end;
  align-items: stretch;
  padding: 18px;
  background: rgba(10, 15, 13, 0.38);
  backdrop-filter: blur(7px);
}

.stock-force-breakdown[hidden] {
  display: none;
}

.stock-force-popup-open {
  overflow: hidden;
}

.stock-force-breakdown-panel {
  width: min(560px, 100%);
  max-height: calc(100vh - 36px);
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 14px;
  overflow: hidden;
  border: 1px solid #d8e2dd;
  border-radius: 12px;
  padding: 16px;
  background: linear-gradient(135deg, #f7fff8, #fffafa);
  box-shadow: 0 28px 80px rgba(5, 12, 8, 0.28);
}

.stock-force-breakdown-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.stock-force-breakdown-head span {
  color: #60706a;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.stock-force-breakdown-head h2 {
  margin: 2px 0 0;
  color: #111417;
  font-size: 20px;
  line-height: 1.15;
}

.stock-force-breakdown-head button {
  height: 36px;
  border: 1px solid #d4ddda;
  border-radius: 8px;
  padding: 0 14px;
  background: #ffffff;
  color: #18201d;
  font-size: 12px;
  font-weight: 900;
}

.stock-force-breakdown-body {
  display: grid;
  gap: 12px;
  overflow: auto;
  padding-right: 4px;
}

.stock-force-breakdown-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: 10px;
}

.stock-force-breakdown-summary div,
.stock-force-factor-list div,
.stock-force-driver-evidence {
  min-width: 0;
  border: 1px solid #dce4e0;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.86);
}

.stock-force-breakdown-summary div {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
}

.stock-force-breakdown-summary span,
.stock-force-factor-list span,
.stock-force-driver-evidence span {
  color: #59645f;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.stock-force-breakdown-summary strong,
.stock-force-factor-list strong {
  color: #111417;
  font-size: 18px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.stock-force-breakdown-summary strong.positive,
.stock-force-factor-list strong.positive {
  color: #0a9c43;
}

.stock-force-breakdown-summary strong.negative,
.stock-force-factor-list strong.negative {
  color: #ed354a;
}

.stock-force-breakdown-body p {
  margin: 0;
  color: #37413d;
  font-size: 13px;
  line-height: 1.4;
}

.stock-force-factor-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.stock-force-factor-list div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 10px;
  padding: 10px 12px;
}

.stock-force-factor-list small {
  grid-column: 1 / -1;
  color: #56625d;
  font-size: 12px;
}

.stock-force-driver-evidence {
  display: grid;
  gap: 4px;
  padding: 11px 12px;
}

.stock-force-driver-evidence strong {
  color: #111417;
  font-size: 15px;
  font-weight: 950;
}

.stock-force-force-list {
  display: grid;
  gap: 12px;
}

.stock-force-force-card {
  min-width: 0;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 14px;
  overflow: hidden;
  border: 1px solid #d8e4dc;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  padding: 15px 18px 15px 24px;
}

.stock-force-force-card::before {
  content: "";
  width: 8px;
  position: absolute;
  inset: 0 auto 0 0;
  background: #27bf5d;
}

.stock-force-force-card.negative {
  border-color: #f5c9ce;
  background: linear-gradient(90deg, rgba(255, 238, 239, 0.94), rgba(255, 255, 255, 0.92));
}

.stock-force-force-card.negative::before {
  background: #f23d50;
}

.stock-force-force-card h3 {
  margin: 0;
  color: #071413;
  font-size: 17px;
  line-height: 1.22;
}

.stock-force-force-card h3 small {
  color: #49625a;
  font-size: 12px;
  font-weight: 700;
}

.stock-force-force-card b {
  color: #078b3d;
  font-size: 20px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.stock-force-force-card.negative b {
  color: #df283d;
}

.stock-force-force-card p,
.stock-force-force-card span {
  grid-column: 1 / -1;
  margin: 0;
  color: #40504b;
  font-size: 13px;
  line-height: 1.35;
}

.stock-force-force-card span {
  color: #52635e;
  font-weight: 750;
}

.stock-force-balance-strip,
.stock-force-transmission-strip {
  min-width: 0;
  padding: 12px 30px 12px 6px;
  border-top: 1px solid #dde4e0;
  background: #ffffff;
}

.stock-force-balance-strip {
  border-bottom: 1px solid #dde4e0;
}

.stock-force-transmission-strip {
  border-bottom: 1px solid #dde4e0;
}

.stock-force-balance-panel,
.stock-force-transmission-panel {
  min-width: 0;
}

.stock-force-balance-panel .stock-force-panel-head,
.stock-force-transmission-panel .stock-force-panel-head {
  margin-bottom: 7px;
}

.stock-force-balance-detail,
.stock-force-transmission-grid {
  min-width: 0;
}

.stock-force-balance-row {
  display: grid;
  grid-template-columns: minmax(250px, 0.72fr) minmax(0, 1.55fr);
  gap: 12px;
  align-items: stretch;
}

.stock-force-balance-bar {
  display: grid;
  align-content: center;
  gap: 7px;
  min-width: 0;
}

.stock-force-balance-rail {
  height: 28px;
  display: grid;
  grid-template-columns: var(--positive-share, 88%) var(--negative-share, 12%);
  overflow: hidden;
  border: 1px solid #cfe1d4;
  border-radius: 8px;
  background: #f3f6f4;
}

.stock-force-balance-rail i {
  min-width: 3px;
  display: block;
}

.stock-force-balance-rail .negative {
  background: linear-gradient(90deg, #ef354b, #ff6977);
}

.stock-force-balance-rail .positive {
  background: linear-gradient(90deg, #21b85a, #8be96e);
}

.stock-force-balance-labels {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  font-size: 12px;
  font-weight: 900;
}

.stock-force-balance-labels .negative {
  color: #d71931;
  text-align: right;
}

.stock-force-balance-labels .positive {
  color: #078b3d;
}

.stock-force-metric-grid,
.stock-force-transmission-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(74px, 1fr));
  overflow: hidden;
  border: 1px solid #cfe0d6;
  border-radius: 8px;
}

.stock-force-transmission-grid {
  grid-template-columns: repeat(6, minmax(112px, 1fr));
  margin-top: 0;
}

.stock-force-metric,
.stock-force-transmission-cell {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 4px;
  padding: 10px 11px;
  border-right: 1px solid #dbe6df;
  background: rgba(255, 255, 255, 0.72);
}

.stock-force-metric:last-child,
.stock-force-transmission-cell:last-child {
  border-right: 0;
}

.stock-force-metric span,
.stock-force-transmission-cell span {
  color: #526a60;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: 0;
  text-transform: uppercase;
}

.stock-force-metric strong,
.stock-force-transmission-cell strong {
  overflow-wrap: anywhere;
  color: #071413;
  font-size: clamp(14px, 1.05vw, 18px);
  line-height: 1.08;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.stock-force-transmission-cell small {
  color: #40504b;
  font-size: 11px;
  line-height: 1.22;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.stock-force-causal {
  display: grid;
  gap: 12px;
  border-bottom: 1px solid #dde4e0;
  padding: 18px 30px 20px 6px;
  background: #ffffff;
}

.stock-force-causal .stock-force-panel-head {
  margin-bottom: 0;
}

.stock-force-causal-settings {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

#stock-force-causal-status {
  color: #64706b;
  font-size: 12px;
  font-weight: 850;
  white-space: nowrap;
}

.stock-force-causal-toggle {
  height: 34px;
  display: inline-flex;
  overflow: hidden;
  border: 1px solid #d9e2dd;
  border-radius: 999px;
  background: #ffffff;
}

.stock-force-causal-toggle button {
  min-width: 104px;
  border: 0;
  border-right: 1px solid #e5ebe7;
  padding: 0 13px;
  background: transparent;
  color: #4d5b55;
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
}

.stock-force-causal-toggle button:last-child {
  border-right: 0;
}

.stock-force-causal-toggle button.active {
  margin: 4px;
  border-radius: 999px;
  background: #101716;
  color: #ffffff;
}

.stock-force-causal-chain {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.stock-force-causal-chain.is-flow,
.stock-force-causal-chain.is-orbit {
  grid-template-columns: minmax(0, 1fr);
}

.stock-force-causal-visual {
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(270px, 0.32fr);
  grid-template-areas:
    "head head"
    "visual rank"
    "selected rank";
  gap: 12px;
  align-items: stretch;
}

.stock-force-causal-flow {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "head"
    "visual"
    "legend"
    "selected"
    "rank";
}

.stock-force-causal-visual-head {
  grid-area: head;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border: 1px solid #dfe8e3;
  border-radius: 12px;
  padding: 10px 13px;
  background: linear-gradient(90deg, #f7fff8, #ffffff 54%, #fff8f9);
}

.stock-force-causal-visual-head > div:first-child {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.stock-force-causal-visual-head span {
  color: #64736c;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.stock-force-causal-visual-head strong {
  overflow: hidden;
  color: #0d1412;
  font-size: 15px;
  line-height: 1.1;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-causal-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.stock-force-causal-meta b {
  min-height: 24px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #dce6e0;
  border-radius: 999px;
  padding: 3px 9px;
  background: #ffffff;
  color: #52615a;
  font-size: 10px;
  font-weight: 650;
  white-space: nowrap;
}

.stock-force-causal-meta b.positive {
  border-color: rgba(24, 184, 88, 0.24);
  background: #eaffef;
  color: #079b42;
}

.stock-force-causal-meta b.negative {
  border-color: rgba(255, 70, 89, 0.28);
  background: #fff0f2;
  color: #e93448;
}

.stock-force-causal-hero,
.stock-force-orbit-network {
  min-width: 0;
  position: relative;
  grid-area: visual;
  overflow: hidden;
  border: 1px solid #dfe7e2;
  border-radius: 12px;
  background: #fbfdfb;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.7);
}

.stock-force-causal-hero svg,
.stock-force-orbit-network svg {
  width: 100%;
  min-height: 430px;
  display: block;
}

.stock-force-causal-flow .stock-force-causal-hero svg {
  min-width: 900px;
  min-height: clamp(520px, 42vw, 650px);
}

.stock-force-causal-flow .stock-force-causal-hero {
  overflow-x: auto;
  overflow-y: hidden;
}

.stock-force-causal-ribbon {
  filter: drop-shadow(0 15px 20px rgba(19, 33, 26, 0.2));
  mix-blend-mode: multiply;
}

.stock-force-causal-ribbon-shadow {
  filter: blur(9px);
  mix-blend-mode: multiply;
  opacity: 0.2;
}

.stock-force-causal-ribbon-core {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 9;
  mix-blend-mode: soft-light;
}

.stock-force-causal-ribbon-under-ridge {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 18;
  filter: drop-shadow(0 12px 13px rgba(20, 38, 28, 0.2));
  mix-blend-mode: multiply;
}

.stock-force-causal-ribbon-under-ridge.positive {
  stroke: rgba(5, 129, 58, 0.38);
}

.stock-force-causal-ribbon-under-ridge.negative {
  stroke: rgba(191, 37, 53, 0.36);
}

.stock-force-causal-ribbon-edge {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 34;
  mix-blend-mode: screen;
}

.stock-force-causal-arrow-tip {
  filter: drop-shadow(0 7px 10px rgba(26, 38, 31, 0.12));
  mix-blend-mode: multiply;
}

.stock-force-causal-ribbon-glow {
  filter: url(#flow-soft-glow);
  mix-blend-mode: multiply;
}

.stock-force-causal-ribbon-shine {
  fill: none;
  stroke: rgba(255, 255, 255, 0.7);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
  mix-blend-mode: screen;
}

.stock-force-causal-ribbon-glint {
  fill: none;
  stroke: rgba(255, 255, 255, 0.86);
  stroke-dasharray: 88 150;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  filter: drop-shadow(0 1px 5px rgba(255, 255, 255, 0.5));
  mix-blend-mode: screen;
}

.stock-force-causal-ribbon-glint.negative {
  stroke: rgba(255, 244, 245, 0.8);
}

.stock-force-causal-ribbon-energy {
  fill: none;
  stroke: rgba(255, 255, 255, 0.72);
  stroke-dasharray: 34 72;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3.8;
  filter: drop-shadow(0 2px 7px rgba(255, 255, 255, 0.54));
  mix-blend-mode: screen;
}

.stock-force-causal-ribbon-energy.negative {
  stroke: rgba(255, 245, 246, 0.72);
}

.stock-force-causal-transfer {
  filter: drop-shadow(0 7px 10px rgba(14, 28, 20, 0.16));
  pointer-events: none;
}

.stock-force-causal-transfer circle {
  fill: rgba(255, 255, 255, 0.84);
  stroke-width: 1.4;
}

.stock-force-causal-transfer.positive circle {
  stroke: rgba(17, 181, 82, 0.42);
}

.stock-force-causal-transfer.negative circle {
  stroke: rgba(244, 61, 79, 0.42);
}

.stock-force-causal-transfer path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.6;
}

.stock-force-causal-transfer.positive path {
  stroke: #0aa249;
}

.stock-force-causal-transfer.negative path {
  stroke: #e93448;
}

.stock-force-causal-transfer .echo {
  opacity: 0.36;
  stroke-width: 2;
}

.stock-force-causal-contour {
  fill: none;
  stroke-linecap: round;
  stroke-width: 1.8;
  opacity: 0.28;
}

.stock-force-causal-contour.positive {
  stroke: rgba(18, 185, 85, 0.2);
}

.stock-force-causal-contour.negative {
  stroke: rgba(244, 66, 85, 0.2);
}

.stock-force-causal-contour.soft {
  stroke-width: 1.2;
  opacity: 0.18;
}

.stock-force-causal-atmosphere {
  filter: blur(20px);
  mix-blend-mode: multiply;
  opacity: 0.22;
}

.stock-force-causal-atmosphere.positive {
  fill: rgba(64, 212, 107, 0.2);
}

.stock-force-causal-atmosphere.negative {
  fill: rgba(255, 83, 97, 0.17);
}

.stock-force-causal-field {
  mix-blend-mode: multiply;
}

.stock-force-causal-field.positive {
  fill: url("#flow-field-positive");
}

.stock-force-causal-field.negative {
  fill: url("#flow-field-negative");
}

.stock-force-causal-spine-bed path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 38;
  filter: blur(5px);
  mix-blend-mode: multiply;
  opacity: 0.16;
}

.stock-force-causal-spine-bed path.wide {
  stroke-width: 48;
  opacity: 0.13;
}

.stock-force-causal-spine-bed .positive {
  stroke: #18be5d;
}

.stock-force-causal-spine-bed .negative {
  stroke: #f43f53;
}

.stock-force-causal-depth-focus {
  fill: url("#flow-depth-focus");
  mix-blend-mode: screen;
  pointer-events: none;
}

.stock-force-causal-stage-zones .stage-zone {
  opacity: 0.42;
  stroke: none;
  filter: blur(16px);
  mix-blend-mode: screen;
}

.stock-force-causal-stage-zones .stage-zone.positive {
  fill: url("#flow-stage-zone-positive");
}

.stock-force-causal-stage-zones .stage-zone.negative {
  fill: url("#flow-stage-zone-negative");
}

.stock-force-causal-svg-card .card-shadow {
  fill: rgba(20, 34, 27, 0.1);
  filter: blur(5px);
  stroke: none;
}

.stock-force-causal-svg-card[role="button"],
.stock-force-orbit-node[role="button"] {
  cursor: pointer;
  outline: none;
}

.stock-force-causal-svg-card[role="button"]:hover .card-surface,
.stock-force-causal-svg-card[role="button"]:focus .card-surface,
.stock-force-orbit-node[role="button"]:hover circle,
.stock-force-orbit-node[role="button"]:focus circle {
  stroke-width: 2;
}

.stock-force-causal-svg-card[role="button"]:focus .card-surface,
.stock-force-orbit-node[role="button"]:focus circle {
  filter: drop-shadow(0 0 0 rgba(255, 255, 255, 0)) drop-shadow(0 0 12px rgba(11, 156, 70, 0.22));
}

.stock-force-causal-svg-card .card-surface {
  fill: rgba(255, 255, 255, 0.95);
  stroke: rgba(211, 225, 218, 0.96);
  stroke-width: 1.1;
  filter: drop-shadow(0 9px 14px rgba(20, 34, 27, 0.12));
}

.stock-force-causal-svg-card.positive .card-surface {
  stroke: rgba(23, 182, 84, 0.42);
}

.stock-force-causal-svg-card.negative .card-surface {
  stroke: rgba(246, 61, 79, 0.42);
}

.stock-force-causal-svg-card .card-rail {
  stroke: none;
}

.stock-force-causal-svg-card.positive .card-rail {
  fill: rgba(20, 184, 86, 0.54);
}

.stock-force-causal-svg-card.negative .card-rail {
  fill: rgba(244, 61, 79, 0.54);
}

.stock-force-causal-svg-card .card-gloss {
  fill: none;
  stroke: rgba(255, 255, 255, 0.82);
  stroke-linecap: round;
  stroke-width: 1.2;
}

.stock-force-causal-svg-card text {
  fill: #08120f;
  font-size: 11.2px;
  font-weight: 680;
  letter-spacing: 0;
}

.stock-force-causal-svg-card .foot {
  fill: #4d5e58;
  font-size: 8.4px;
  font-weight: 560;
}

.stock-force-causal-svg-card .icon-bg {
  fill: rgba(255, 255, 255, 0.88);
  stroke: currentColor;
  stroke-width: 1;
}

.stock-force-causal-svg-card.positive .icon-bg {
  color: rgba(24, 184, 88, 0.55);
}

.stock-force-causal-svg-card.negative .icon-bg {
  color: rgba(255, 70, 89, 0.58);
}

.stock-force-causal-svg-card .icon {
  fill: #66736e;
  font-size: 9px;
  font-weight: 700;
  text-anchor: middle;
}

.stock-force-causal-svg-card .icon-mark {
  fill: none;
  stroke: #66736e;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.stock-force-causal-svg-card.positive .icon {
  fill: #0a9c43;
}

.stock-force-causal-svg-card.negative .icon {
  fill: #e93448;
}

.stock-force-causal-svg-card.positive .icon-mark {
  stroke: #0a9c43;
}

.stock-force-causal-svg-card.negative .icon-mark {
  stroke: #e93448;
}

.stock-force-causal-pulse {
  stroke: #ffffff;
  stroke-width: 2;
}

.stock-force-causal-pulse.positive {
  fill: #16ad50;
}

.stock-force-causal-pulse.negative {
  fill: #f44455;
}

.stock-force-causal-stock-port path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3.4;
  filter: drop-shadow(0 4px 7px rgba(25, 38, 31, 0.13));
  opacity: 0.72;
}

.stock-force-causal-stock-port circle {
  display: none;
  fill: #ffffff;
  stroke-width: 1.6;
  opacity: 0.92;
}

.stock-force-causal-stock-port.positive path {
  stroke: rgba(9, 162, 73, 0.72);
}

.stock-force-causal-stock-port.positive circle {
  stroke: #12b955;
}

.stock-force-causal-stock-port.negative path {
  stroke: rgba(238, 53, 73, 0.7);
}

.stock-force-causal-stock-port.negative circle {
  stroke: #f44255;
}

.stock-force-causal-magnetic .field-link {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.2;
  filter: drop-shadow(0 3px 5px rgba(22, 33, 27, 0.12));
  opacity: 0.7;
}

.stock-force-causal-magnetic.positive .field-link {
  stroke: rgba(9, 168, 73, 0.5);
}

.stock-force-causal-magnetic.negative .field-link {
  stroke: rgba(238, 53, 73, 0.5);
}

.stock-force-causal-magnetic .spark {
  display: none;
  fill: #ffffff;
  stroke-width: 1.8;
  filter: drop-shadow(0 3px 5px rgba(22, 33, 27, 0.18));
}

.stock-force-causal-magnetic .spark.large {
  stroke-width: 2.2;
}

.stock-force-causal-magnetic.positive .spark {
  stroke: #0aa249;
}

.stock-force-causal-magnetic.negative .spark {
  stroke: #ee3549;
}

.stock-force-causal-receiver-blend path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 30;
  filter: blur(4.5px);
  opacity: 0.38;
  mix-blend-mode: screen;
}

.stock-force-causal-receiver-blend path.soft {
  stroke-width: 18;
  opacity: 0.25;
}

.stock-force-causal-receiver-blend .positive {
  stroke: url("#flow-receiver-intake-positive");
}

.stock-force-causal-receiver-blend .negative {
  stroke: url("#flow-receiver-intake-negative");
}

.stock-force-causal-receiver-blend .veil {
  fill: url("#flow-receiver-veil");
  mix-blend-mode: screen;
  pointer-events: none;
}

.stock-force-causal-receiver-funnel path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4.2;
  filter: drop-shadow(0 6px 9px rgba(22, 33, 27, 0.13));
  opacity: 0.68;
}

.stock-force-causal-receiver-funnel path.soft {
  stroke-width: 2.2;
  opacity: 0.4;
}

.stock-force-causal-receiver-funnel .positive {
  stroke: rgba(10, 162, 73, 0.48);
}

.stock-force-causal-receiver-funnel .negative {
  stroke: rgba(238, 53, 73, 0.44);
}

.stock-force-causal-receiver-funnel-bg path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 28;
  opacity: 0.19;
  filter: blur(4px);
}

.stock-force-causal-receiver-funnel-bg .positive {
  stroke: rgba(15, 176, 80, 0.42);
}

.stock-force-causal-receiver-funnel-bg .negative {
  stroke: rgba(241, 58, 77, 0.36);
}

.stock-force-causal-receiver-energy path {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 4.6;
  filter: drop-shadow(0 6px 9px rgba(16, 32, 24, 0.14));
  opacity: 0.78;
}

.stock-force-causal-receiver-energy path.soft {
  stroke-width: 2.8;
  opacity: 0.42;
}

.stock-force-causal-receiver-energy .positive {
  stroke: rgba(10, 166, 74, 0.74);
}

.stock-force-causal-receiver-energy .negative {
  stroke: rgba(236, 48, 68, 0.68);
}

.stock-force-causal-stage-rail .track {
  fill: none;
  stroke: rgba(93, 121, 110, 0.56);
  stroke-dasharray: 7 9;
  stroke-linecap: round;
  stroke-width: 2;
}

.stock-force-causal-stage-rail .chevron {
  fill: none;
  stroke: rgba(42, 67, 56, 0.66);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.1;
}

.stock-force-causal-stage-label text,
.stock-force-orbit-ring-label {
  fill: #263b32;
  font-size: 10.8px;
  font-weight: 760;
  text-anchor: middle;
  text-transform: uppercase;
}

.stock-force-causal-stage-label .stage-pill {
  fill: rgba(255, 255, 255, 0.76);
  stroke-width: 1.2;
  filter: drop-shadow(0 8px 13px rgba(18, 31, 24, 0.12));
}

.stock-force-causal-stage-label .stage-pill.positive {
  stroke: rgba(19, 184, 84, 0.26);
}

.stock-force-causal-stage-label .stage-pill.negative {
  stroke: rgba(245, 66, 85, 0.25);
}

.stock-force-causal-stage-label path {
  filter: drop-shadow(0 3px 5px rgba(18, 31, 24, 0.1));
}

.stock-force-causal-stage-label .stage-beacon {
  fill: #ffffff;
  stroke: #9fb9ab;
  stroke-width: 1.6;
  filter: drop-shadow(0 4px 8px rgba(22, 33, 27, 0.16));
}

.stock-force-causal-stage-label .stage-beacon.positive {
  stroke: rgba(20, 184, 86, 0.48);
}

.stock-force-causal-stage-label .stage-beacon.negative {
  stroke: rgba(245, 66, 85, 0.48);
}

.stock-force-causal-stage-label .stage-index {
  fill: #64736c;
  font-size: 8.6px;
  font-weight: 760;
}

.stock-force-flow-field-label {
  font-size: 11px;
  font-weight: 720;
  letter-spacing: 0;
  text-transform: uppercase;
}

.stock-force-flow-field-label.positive {
  fill: #0a9c43;
}

.stock-force-flow-field-label.negative {
  fill: #e93448;
}

.stock-force-flow-stock text,
.stock-force-orbit-stock text {
  fill: #5d6864;
  font-size: 10.5px;
  font-weight: 560;
  text-anchor: middle;
}

.stock-force-flow-stock .receiver-ring {
  fill: none;
  stroke: rgba(13, 153, 69, 0.24);
  stroke-dasharray: 9 9;
  stroke-linecap: round;
  stroke-width: 2.4;
}

.stock-force-flow-stock .receiver-aura {
  fill: none;
  stroke: rgba(11, 159, 72, 0.16);
  stroke-width: 16;
  filter: blur(4px);
}

.stock-force-flow-stock .symbol,
.stock-force-orbit-stock .symbol {
  fill: #08100d;
  font-size: 24px;
  font-weight: 620;
}

.stock-force-flow-stock .node-label {
  fill: #65706b;
  font-size: 9.5px;
  font-weight: 720;
  letter-spacing: 0;
  text-transform: uppercase;
}

.stock-force-flow-stock .positive,
.stock-force-orbit-stock .positive {
  fill: #079b42;
  font-size: 24px;
  font-weight: 760;
}

.stock-force-flow-stock .negative,
.stock-force-orbit-stock .negative {
  fill: #ee3549;
  font-size: 24px;
  font-weight: 760;
}

.stock-force-flow-stock-badge {
  fill: rgba(238, 247, 241, 0.94);
  stroke: rgba(190, 218, 201, 0.9);
  stroke-width: 1;
}

.stock-force-flow-stock .badge-text {
  fill: #53605b;
  font-size: 9.2px;
  font-weight: 720;
  letter-spacing: 0;
}

.stock-force-orbit-stock circle {
  fill: url(#orbit-stock-glow);
  stroke: #dfe7e2;
  stroke-width: 2;
  filter: drop-shadow(0 18px 34px rgba(22, 31, 26, 0.14));
}

.stock-force-orbit-stock circle.inner {
  fill: #ffffff;
  stroke: #eef2ef;
  filter: none;
}

.stock-force-flow-card {
  width: min(230px, 25%);
  position: absolute;
  display: grid;
  gap: 4px;
  border: 1px solid rgba(218, 229, 223, 0.92);
  border-radius: 10px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 14px 28px rgba(22, 33, 27, 0.08);
}

.stock-force-flow-card.source {
  left: 18px;
  top: 20px;
}

.stock-force-flow-card.evidence {
  left: 31%;
  bottom: 20px;
}

.stock-force-flow-card.transmission {
  right: 18%;
  top: 20px;
}

.stock-force-flow-card span,
.stock-force-selected-chain span,
.stock-force-causal-rank h3,
.stock-force-causal-rank article span {
  color: #65736d;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
}

.stock-force-flow-card strong {
  overflow: hidden;
  color: #101716;
  font-size: 14px;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-flow-card small {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: #56635e;
  font-size: 11px;
  line-height: 1.25;
}

.stock-force-causal-rank {
  grid-area: rank;
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 7px;
  border: 1px solid #dfe7e2;
  border-radius: 12px;
  padding: 10px;
  background: linear-gradient(180deg, #ffffff, #fbfdfb);
}

.stock-force-causal-flow .stock-force-causal-rank {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
}

.stock-force-causal-flow .stock-force-causal-rank h3 {
  grid-column: 1 / -1;
}

.stock-force-causal-rank h3 {
  margin: 0 0 3px;
  color: #111716;
  font-size: 13px;
  font-weight: 700;
  text-transform: none;
}

.stock-force-causal-rank article {
  --force: 0.4;
  min-width: 0;
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 2px 7px;
  overflow: hidden;
  border: 1px solid #e2e9e5;
  border-radius: 10px;
  padding: 7px 9px 7px 10px;
  background: #ffffff;
}

.stock-force-causal-rank article::before {
  content: "";
  width: 4px;
  position: absolute;
  inset: 0 auto 0 0;
  background: #1ab458;
}

.stock-force-causal-rank article.negative::before {
  background: #f34455;
}

.stock-force-causal-rank article.neutral::before {
  background: #aebbb5;
}

.stock-force-causal-rank article strong {
  grid-column: 2;
  overflow: hidden;
  color: #111716;
  font-size: 11.5px;
  font-weight: 690;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-causal-rank article small {
  grid-column: 2 / -1;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  color: #52615b;
  font-size: 9.6px;
  line-height: 1.25;
}

.stock-force-causal-rank article em {
  grid-column: 2 / -1;
  overflow: hidden;
  color: #6b7973;
  font-size: 9px;
  font-style: normal;
  font-weight: 640;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-causal-rank article > span {
  grid-column: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-causal-rank .stock-force-score-link {
  grid-row: 1 / span 2;
  grid-column: 3;
  min-width: 42px;
  height: 26px;
  align-self: center;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #f4f7f5;
  color: #079b42;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.stock-force-causal-rank-icon {
  grid-row: 1 / span 4;
  grid-column: 1;
  width: 25px;
  height: 25px;
  align-self: center;
  display: grid;
  place-items: center;
  border: 1px solid rgba(24, 184, 88, 0.32);
  border-radius: 999px;
  background: rgba(232, 252, 238, 0.95);
  color: #079b42;
  font-size: 8.8px;
  font-weight: 760;
  line-height: 1;
  text-transform: uppercase;
}

.stock-force-causal-rank article.negative .stock-force-score-link {
  color: #e93448;
}

.stock-force-causal-rank article.neutral {
  background: linear-gradient(180deg, #ffffff, #f7faf8);
}

.stock-force-causal-rank article.neutral .stock-force-score-link {
  color: #5f6d66;
}

.stock-force-causal-rank article.negative .stock-force-causal-rank-icon {
  border-color: rgba(243, 68, 85, 0.34);
  background: rgba(255, 239, 241, 0.95);
  color: #e93448;
}

.stock-force-causal-rank article.neutral .stock-force-causal-rank-icon {
  border-color: rgba(111, 128, 119, 0.28);
  background: rgba(244, 248, 246, 0.96);
  color: #64736c;
}

.stock-force-selected-chain {
  grid-area: selected;
  min-width: 0;
  display: grid;
  gap: 8px;
  border: 1px solid #dfe7e2;
  border-radius: 12px;
  padding: 9px 13px;
  background: #ffffff;
}

.stock-force-selected-chain strong {
  overflow: hidden;
  color: #101716;
  font-size: 12.5px;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.stock-force-selected-chain-steps {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.stock-force-chain-step {
  min-width: 0;
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 2px;
  overflow: visible;
  border: 1px solid rgba(218, 229, 223, 0.95);
  border-radius: 10px;
  padding: 7px 9px 7px 10px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98), rgba(247, 251, 248, 0.96));
}

.stock-force-chain-step::before {
  content: "";
  width: 3px;
  position: absolute;
  inset: 8px auto 8px 0;
  border-radius: 999px;
  background: #17b857;
}

.stock-force-selected-chain-steps.negative .stock-force-chain-step::before {
  background: #f34455;
}

.stock-force-chain-step:not(:last-child)::after {
  content: "";
  width: 10px;
  height: 2px;
  position: absolute;
  top: 50%;
  right: -10px;
  transform: translateY(-50%);
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(23, 184, 87, 0.54), rgba(23, 184, 87, 0.12));
}

.stock-force-selected-chain-steps.negative .stock-force-chain-step:not(:last-child)::after {
  background: linear-gradient(90deg, rgba(243, 68, 85, 0.52), rgba(243, 68, 85, 0.12));
}

.stock-force-selected-chain .stock-force-chain-step span {
  grid-column: 2;
  color: #60716a;
  font-size: 9px;
  font-weight: 740;
  letter-spacing: 0;
  text-transform: uppercase;
}

.stock-force-selected-chain .stock-force-chain-step strong {
  grid-column: 2;
  display: -webkit-box;
  overflow: hidden;
  color: #101716;
  font-size: 12px;
  font-weight: 740;
  line-height: 1.15;
  text-overflow: clip;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.stock-force-chain-step-mark {
  width: 22px;
  height: 22px;
  grid-row: 1 / span 2;
  align-self: center;
  display: grid;
  place-items: center;
  border: 1px solid rgba(20, 184, 86, 0.42);
  border-radius: 999px;
  background: rgba(231, 250, 237, 0.88);
  color: #079b42;
  font-size: 9px;
  font-weight: 820;
  line-height: 1;
}

.stock-force-selected-chain-steps.negative .stock-force-chain-step-mark {
  border-color: rgba(243, 68, 85, 0.4);
  background: rgba(255, 239, 241, 0.92);
  color: #e93448;
}

.stock-force-orbit-link {
  stroke: none;
  filter: drop-shadow(0 10px 12px rgba(20, 30, 25, 0.1));
  mix-blend-mode: multiply;
}

.stock-force-orbit-node circle {
  fill: #ffffff;
  stroke-width: 2;
  filter: drop-shadow(0 9px 13px rgba(24, 35, 29, 0.12));
}

.stock-force-orbit-node.positive circle {
  stroke: #18b858;
}

.stock-force-orbit-node.negative circle {
  stroke: #ff4659;
}

.stock-force-orbit-node text {
  fill: #101716;
  font-size: 11px;
  font-weight: 950;
  text-anchor: middle;
}

.stock-force-orbit-node .label {
  fill: #111716;
  font-size: 14px;
  font-weight: 950;
}

.stock-force-orbit-node .score {
  fill: #079b42;
  font-size: 12px;
}

.stock-force-orbit-node.negative .score {
  fill: #e93448;
}

.stock-force-causal-legend {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  color: #56635e;
  font-size: 11px;
  font-weight: 850;
}

.stock-force-flow-legend {
  grid-area: legend;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(218, 230, 224, 0.9);
  border-radius: 12px;
  padding: 8px 10px;
  background: linear-gradient(90deg, rgba(247, 255, 248, 0.96), #ffffff 50%, rgba(255, 248, 249, 0.96));
}

.stock-force-causal-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.stock-force-causal-legend b {
  display: inline-block;
  border-radius: 999px;
}

.stock-force-causal-legend .width {
  width: 34px;
  height: 8px;
  background: linear-gradient(90deg, #c9f7d3, #18b858);
}

.stock-force-causal-legend .opacity {
  width: 28px;
  height: 8px;
  background: rgba(255, 70, 89, 0.42);
}

.stock-force-causal-legend .pulse {
  width: 10px;
  height: 10px;
  background: #18b858;
}

.stock-force-causal-legend .quiet {
  width: 18px;
  height: 8px;
  background: #aebbb5;
}

.stock-force-causal-row {
  --force: 0.35;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-content: start;
  border: 1px solid #dfe6e2;
  border-radius: 10px;
  min-height: 116px;
  padding: 10px;
  background: linear-gradient(90deg, #ffffff, #fbfcfb);
}

.stock-force-causal-row.positive {
  border-color: rgba(28, 180, 81, 0.28);
  background: linear-gradient(90deg, rgba(234, 255, 235, 0.88), #ffffff);
}

.stock-force-causal-row.negative {
  border-color: rgba(242, 68, 84, 0.3);
  background: linear-gradient(90deg, rgba(255, 235, 235, 0.9), #ffffff);
}

.stock-force-causal-row > div,
.stock-force-causal-top > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.stock-force-causal-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.9fr) minmax(82px, 0.42fr);
  gap: 10px;
  align-items: start;
}

.stock-force-causal-impact {
  justify-items: end;
  text-align: right;
}

.stock-force-causal-category {
  padding-top: 0;
  border-top: 0;
}

.stock-force-causal-row span {
  color: #66736e;
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
}

.stock-force-causal-row strong {
  color: #111417;
  font-size: 13px;
  font-weight: 950;
  line-height: 1.16;
  overflow-wrap: anywhere;
}

.stock-force-causal-row small {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  color: #56625d;
  font-size: 11px;
  line-height: 1.24;
  overflow-wrap: anywhere;
}

.stock-force-causal-row > i {
  display: none;
  width: 46px;
  height: 16px;
  position: relative;
  margin-left: 2px;
}

.stock-force-causal-row > i::before {
  content: "";
  position: absolute;
  left: 0;
  right: 6px;
  top: 50%;
  height: 3px;
  border-radius: 999px;
  background: currentColor;
  opacity: calc(0.22 + var(--force) * 0.34);
  transform: translateY(-50%);
}

.stock-force-causal-row > i::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  border-top: 6px solid transparent;
  border-bottom: 6px solid transparent;
  border-left: 8px solid currentColor;
  opacity: calc(0.38 + var(--force) * 0.4);
  transform: translateY(-50%);
}

.stock-force-causal-row.positive > i {
  color: #22b854;
}

.stock-force-causal-row.negative > i {
  color: #f0525f;
}

.stock-force-causal-row .stock-force-score-link {
  width: fit-content;
  min-width: 54px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: #ffffff;
  font-size: 14px;
  font-weight: 950;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
}

.stock-force-causal-row.positive .stock-force-score-link {
  border: 1px solid rgba(20, 173, 81, 0.25);
  color: #0a9c43;
}

.stock-force-causal-row.negative .stock-force-score-link {
  border: 1px solid rgba(255, 82, 97, 0.28);
  color: #ed354a;
}

.stock-force-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  min-height: clamp(260px, 25vh, 360px);
  padding: 18px 30px 10px 6px;
}

.stock-force-panel {
  min-width: 0;
}

.stock-force-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 8px;
}

.stock-force-panel-head > div:first-child {
  display: flex;
  align-items: center;
  gap: 8px;
}

.stock-force-panel-head h2 {
  margin: 0;
  color: #111417;
  font-size: 18px;
}

.stock-force-panel-head span {
  color: #6d7773;
  font-size: 12px;
}

.stock-force-legend {
  display: flex;
  align-items: center;
  gap: 28px;
}

.stock-force-legend span {
  position: relative;
  color: #4f5a55;
  font-size: 11px;
  font-weight: 700;
}

.stock-force-legend span::before {
  content: "";
  width: 8px;
  height: 8px;
  position: absolute;
  left: -14px;
  top: 50%;
  border-radius: 50%;
  transform: translateY(-50%);
}

.stock-force-legend .positive::before {
  background: #16a94e;
}

.stock-force-legend .negative::before {
  background: #ff4655;
}

.stock-force-legend .event::before {
  background: #111417;
}

.stock-force-tape-panel {
  min-height: clamp(260px, 25vh, 360px);
  overflow: hidden;
}

.stock-force-tape {
  min-height: clamp(230px, 25vh, 330px);
  overflow: hidden;
}

.stock-force-tape svg {
  width: 100%;
  height: clamp(230px, 25vh, 330px);
  display: block;
  overflow: visible;
}

.stock-force-tape-canvas {
  width: 100%;
  min-height: clamp(245px, 25vh, 340px);
  display: block;
  border: 0;
}

.stock-force-tape line.grid {
  stroke: #e1e6e3;
  stroke-width: 1;
}

.stock-force-tape line.zero {
  stroke: #6f7874;
  stroke-dasharray: 5 7;
  stroke-width: 1.3;
}

.stock-force-tape .area.positive {
  fill: rgba(45, 194, 91, 0.28);
}

.stock-force-tape .area.negative {
  fill: rgba(255, 84, 94, 0.25);
}

.stock-force-tape polyline {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
}

.stock-force-tape circle.positive {
  fill: #17a94f;
}

.stock-force-tape circle.negative {
  fill: #ff4655;
}

.stock-force-tape circle.event {
  fill: #111417;
  stroke: #ffffff;
  stroke-width: 2;
}

.stock-force-tape text {
  fill: #111417;
  font-size: 10px;
  font-weight: 800;
  text-anchor: middle;
}

.stock-force-tape text.y-label {
  fill: #4c5652;
  font-size: 11px;
  font-weight: 650;
  text-anchor: start;
}

.stock-force-tape .x-label text {
  fill: #2f3834;
  font-size: 11px;
  font-weight: 850;
}

.stock-force-tape-single {
  min-height: 178px;
  display: grid;
  place-items: center;
  gap: 5px;
  border: 1px solid #dfe5e2;
  border-radius: 10px;
  background: #ffffff;
  color: #4e5a55;
  text-align: center;
}

.stock-force-tape-single strong {
  color: #111417;
  font-size: 30px;
  font-weight: 950;
  font-variant-numeric: tabular-nums;
}

.stock-force-tape-single.positive strong {
  color: #0a9c43;
}

.stock-force-tape-single.negative strong {
  color: #ed354a;
}

.stock-force-tape-single small {
  max-width: 360px;
  color: #68736f;
  font-size: 12px;
  line-height: 1.35;
}

.stock-force-day-summary {
  align-self: center;
  display: grid;
  overflow: hidden;
  border: 1px solid #d8dedb;
  border-radius: 9px;
  background: #ffffff;
}

.stock-force-day-summary div {
  display: grid;
  gap: 5px;
  padding: 14px 16px;
}

.stock-force-day-summary div + div {
  border-top: 1px solid #e1e6e3;
}

.stock-force-day-summary span {
  color: #111417;
  font-size: 13px;
  font-weight: 900;
}

.stock-force-day-summary strong {
  color: #0a9c43;
  font-size: 20px;
  line-height: 1;
  font-weight: 950;
}

.stock-force-day-summary small {
  color: #0a9c43;
  font-size: 12px;
  font-weight: 800;
}

.stock-force-disclaimer {
  margin: 0;
  color: #77817d;
  font-size: 13px;
  text-align: center;
}

.stock-force-empty {
  min-height: 98px;
  display: grid;
  place-items: center;
  border: 1px dashed #cfd8d3;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.78);
  color: #59645f;
  text-align: center;
  font-size: 12px;
  line-height: 1.4;
}

.stock-force-category-grid,
.stock-force-source-line,
.stock-force-market-row,
.stock-force-balance {
  display: none;
}

@media (max-width: 1600px) {
  .stock-force-controls {
    grid-template-columns: 50px minmax(220px, 1fr) auto minmax(160px, 220px) auto;
  }

  .stock-force-toolbar-logo {
    grid-row: 1;
    grid-column: 1;
  }

  .stock-force-search {
    grid-row: 1;
    grid-column: 2;
  }

  .stock-force-search-button {
    grid-row: 1;
    grid-column: 3;
  }

  .stock-force-date {
    grid-row: 1;
    grid-column: 4;
  }

  .stock-force-refresh-button {
    grid-row: 1;
    grid-column: 5;
  }

  .stock-force-horizon-label {
    grid-row: 2;
    grid-column: 1;
  }

  .stock-force-segments {
    grid-row: 2;
    grid-column: 2 / 6;
  }

  .stock-force-segments {
    width: 100%;
  }

  .stock-force-refresh-button {
    justify-self: end;
  }
}

@media (max-width: 1320px) {
  .stock-force-toolbar,
  .stock-force-stage,
  .stock-force-bottom {
    grid-template-columns: 1fr;
  }

  .stock-force-controls {
    grid-template-columns: 50px minmax(220px, 1fr) auto minmax(160px, 220px) auto;
  }

  .stock-force-segments {
    width: 100%;
  }

  .stock-force-refresh-button {
    justify-self: end;
  }

  .stock-force-band::before,
  .stock-force-band::after {
    display: none;
  }

  .stock-force-evidence-rail {
    border-left: 0;
    border-top: 1px solid #dce2df;
  }

  .stock-force-balance-row {
    grid-template-columns: 1fr;
  }

  .stock-force-metric-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .stock-force-transmission-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .stock-force-causal-chain {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-force-causal-visual {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "head"
      "visual"
      "legend"
      "selected"
      "rank";
  }

  .stock-force-causal-flow {
    grid-template-areas:
      "head"
      "visual"
      "legend"
      "selected"
      "rank";
  }

  .stock-force-causal-rank {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-force-causal-flow .stock-force-causal-rank {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .stock-force-causal-rank h3 {
    grid-column: 1 / -1;
  }

  .stock-force-metric:nth-child(3),
  .stock-force-transmission-cell:nth-child(3) {
    border-right: 0;
  }

  .stock-force-metric:nth-child(-n + 3),
  .stock-force-transmission-cell:nth-child(-n + 3) {
    border-bottom: 1px solid #dbe6df;
  }
}

@media (max-width: 980px) {
  .stock-force-causal-flow .stock-force-causal-rank {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-force-selected-chain-steps {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .stock-force-chain-step:not(:last-child)::after {
    display: none;
  }
}

@media (max-width: 820px) {
  .stock-force-appbar {
    height: auto;
    flex-wrap: wrap;
    gap: 12px;
    padding: 12px;
  }

  .stock-force-nav {
    order: 3;
    justify-content: flex-start;
    overflow: auto;
  }

  .stock-force-shell {
    padding: 14px 10px;
  }

  .stock-force-controls,
  .stock-force-neutral-list {
    grid-template-columns: 1fr;
  }

  .stock-force-controls {
    grid-auto-rows: auto;
  }

  .stock-force-toolbar-logo {
    grid-row: 1;
    grid-column: 1;
  }

  .stock-force-search {
    grid-row: 2;
    grid-column: 1;
  }

  .stock-force-search-button {
    grid-row: 3;
    grid-column: 1;
  }

  .stock-force-date {
    grid-row: 4;
    grid-column: 1;
  }

  .stock-force-segments {
    grid-row: 5;
    grid-column: 1;
  }

  .stock-force-refresh-button {
    grid-row: 6;
    grid-column: 1;
  }

  .stock-force-toolbar-logo {
    justify-self: start;
  }

  .stock-force-search-button,
  .stock-force-refresh-button {
    width: 100%;
    justify-self: stretch;
  }

  .stock-force-horizon-label {
    display: none;
  }

  .stock-force-segments {
    width: 100%;
  }

  .stock-force-segments button {
    min-width: 58px;
    flex: 0 0 auto;
  }

  .stock-force-orbit {
    width: min(100%, 330px);
  }

  .stock-force-bottom {
    gap: 16px;
    padding-right: 0;
  }

  .stock-force-balance-strip,
  .stock-force-transmission-strip {
    padding-right: 0;
  }

  .stock-force-metric-grid,
  .stock-force-neutral-list,
  .stock-force-transmission-grid {
    grid-template-columns: 1fr;
  }

  .stock-force-metric,
  .stock-force-transmission-cell,
  .stock-force-metric:nth-child(3),
  .stock-force-transmission-cell:nth-child(3),
  .stock-force-metric:nth-child(-n + 3),
  .stock-force-transmission-cell:nth-child(-n + 3) {
    border-right: 0;
    border-bottom: 1px solid #dbe6df;
  }

  .stock-force-metric:last-child,
  .stock-force-transmission-cell:last-child {
    border-bottom: 0;
  }

  .stock-force-causal {
    padding-right: 0;
  }

  .stock-force-causal .stock-force-panel-head,
  .stock-force-causal-settings,
  .stock-force-causal-visual-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .stock-force-causal-meta {
    justify-content: flex-start;
  }

  #stock-force-causal-status {
    white-space: normal;
  }

  .stock-force-causal-toggle {
    width: 100%;
  }

  .stock-force-causal-toggle button {
    flex: 1 1 0;
    min-width: 0;
  }

  .stock-force-causal-chain,
  .stock-force-causal-row {
    grid-template-columns: 1fr;
  }

  .stock-force-causal-hero svg,
  .stock-force-orbit-network svg {
    min-height: 340px;
  }

  .stock-force-flow-card {
    width: calc(100% - 24px);
    position: static;
    margin: 8px 12px;
  }

  .stock-force-causal-rank {
    grid-template-columns: 1fr;
  }

  .stock-force-causal-flow .stock-force-causal-rank {
    grid-template-columns: 1fr;
  }

  .stock-force-selected-chain-steps {
    grid-template-columns: 1fr;
  }

  .stock-force-selected-chain strong {
    white-space: normal;
  }

  .stock-force-causal-top {
    grid-template-columns: 1fr;
  }

  .stock-force-causal-impact {
    justify-items: start;
    text-align: left;
  }
}

.stock-force-causal-visual.stock-force-concept-spine {
  grid-template-columns: minmax(0, 1fr);
  grid-template-areas:
    "head"
    "visual"
    "legend";
}

.stock-force-causal-visual.stock-force-concept-spine .stock-force-causal-hero {
  overflow-x: auto;
  overflow-y: hidden;
}

.stock-force-causal-visual.stock-force-concept-spine .stock-force-causal-hero svg {
  width: 100%;
  min-width: 1220px;
  min-height: clamp(500px, 38vw, 620px);
}

.stock-force-concept-stock-node.force-map-style path {
  fill: none;
  stroke-linecap: butt;
  stroke-linejoin: round;
}

.stock-force-concept-stock-node.force-map-style .arc-base {
  stroke-width: 34;
}

.stock-force-concept-stock-node.force-map-style .arc-base.positive {
  stroke: rgba(204, 247, 216, 0.72);
}

.stock-force-concept-stock-node.force-map-style .arc-base.negative {
  stroke: rgba(255, 215, 221, 0.76);
}

.stock-force-concept-stock-node.force-map-style .arc-fill {
  stroke-width: 34;
  filter: drop-shadow(0 12px 18px rgba(20, 35, 26, 0.12));
}

.stock-force-concept-stock-node.force-map-style .arc-fill.positive {
  stroke: #20b85d;
}

.stock-force-concept-stock-node.force-map-style .arc-fill.negative {
  stroke: #f26674;
}

.stock-force-concept-stock-node.force-map-style .inner-shell,
.stock-force-concept-stock-node.force-map-style .inner-wash {
  filter: drop-shadow(0 16px 26px rgba(19, 29, 23, 0.12));
}

.stock-force-concept-stock-node.force-map-style .inner-shell {
  fill: rgba(255, 255, 255, 0.92);
  stroke: rgba(199, 226, 209, 0.82);
  stroke-width: 1.2;
}

.stock-force-concept-stock-node.force-map-style .inner-wash {
  fill: rgba(255, 255, 255, 0.86);
  stroke: rgba(232, 243, 236, 0.95);
  stroke-width: 1;
}

.stock-force-concept-stock-node.force-map-style .company-logo {
  filter: drop-shadow(0 2px 5px rgba(18, 24, 20, 0.12));
}

.stock-force-concept-stock-node.force-map-style .logo-fallback {
  fill: #050708;
  font-size: 15px;
  font-weight: 850;
}

.stock-force-concept-stock-node.force-map-style text {
  text-anchor: middle;
  letter-spacing: 0;
}

.stock-force-concept-stock-node.force-map-style .symbol {
  fill: #050708;
  font-size: 27px;
  font-weight: 850;
}

.stock-force-concept-stock-node.force-map-style .company,
.stock-force-concept-stock-node.force-map-style .net-label {
  fill: #5d6864;
  font-size: 10.5px;
  font-weight: 620;
}

.stock-force-concept-stock-node.force-map-style .price {
  fill: #070b0d;
  font-size: 14px;
  font-weight: 800;
}

.stock-force-concept-stock-node.force-map-style .change {
  font-size: 11.5px;
  font-weight: 820;
}

.stock-force-concept-stock-node.force-map-style .change.positive,
.stock-force-concept-stock-node.force-map-style .score.positive {
  fill: #079b42;
}

.stock-force-concept-stock-node.force-map-style .change.negative,
.stock-force-concept-stock-node.force-map-style .score.negative {
  fill: #e93448;
}

.stock-force-concept-stock-node.force-map-style .divider {
  stroke: #d7e1dc;
  stroke-dasharray: 3 4;
}

.stock-force-concept-stock-node.force-map-style .score {
  font-size: 27px;
  font-weight: 850;
}

.stock-force-concept-stock-node.force-map-style .tone-badge {
  fill: #ebf4ee;
}

.stock-force-concept-stock-node.force-map-style .badge-text {
  fill: #56625d;
  font-size: 10px;
  font-weight: 800;
}
