/* GreenMinter trading family: the finance constructs (trade alert, signal feed and detail, chart panel,
   trade setup ladder, risk/reward, confidence, watchlist, market overview, strategy cards, alert rule,
   performance summary, positions, trade history, live ticker, market status).

   Built to the GreenMint design system's exact values (STYLE_SPEC sections 4, 5.14 to 5.29), under a
   private `gt-` prefix so nothing here collides with Lumen's `lm-` or the app's `gm-` classes. Tokens and tone
   scopes are the theme's (`--gm-*`, `.gm-accent-scope`, `.gm-inverse-scope`, `.gm-warn-scope`,
   `.gm-danger-scope` in greenminter.css); only component-local knobs (`--gt-tlogo-size`) live here; the animal watermark is molecules' `.gm-wm`.
   Figures use `.gm-num` (Inter, tabular), never mono. */


/* ---- ported constructs ---- */
.gt-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
@keyframes gt-pulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.35;
  }
}
.gt-progress {
  width: 100%;
  height: 6px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-surface-3);
  overflow: hidden;
}
.gt-progress-bar {
  height: 100%;
  border-radius: var(--gm-radius-full);
  background: linear-gradient(90deg, var(--gm-success), var(--gm-primary));
  transition: width var(--gm-dur-slow) var(--gm-ease);
}
.gt-progress--striped .gt-progress-bar {
  background-image: linear-gradient(
    45deg,
    rgba(255, 255, 255, 0.18) 25%,
    transparent 25%,
    transparent 50%,
    rgba(255, 255, 255, 0.18) 50%,
    rgba(255, 255, 255, 0.18) 75%,
    transparent 75%
  );
  background-size: 12px 12px;
}
.gt-progress--animated .gt-progress-bar {
  animation: gt-stripes 1s linear infinite;
}
.gt-progress--glow {
  overflow: visible;
}
.gt-progress--glow .gt-progress-bar {
  box-shadow: 0 0 10px var(--gm-primary-glow), 0 0 22px var(--gm-primary-glow);
}
@keyframes gt-stripes {
  from {
    background-position: 12px 0;
  }
  to {
    background-position: 0 0;
  }
}
.gt-progress-circle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.gt-progress-circle svg {
  transform: rotate(-90deg);
}
.gt-progress-circle-track {
  stroke: var(--gm-surface-3);
}
.gt-progress-circle-bar {
  stroke: var(--gm-primary-control);
  stroke-linecap: round;
  transition: stroke-dashoffset var(--gm-dur-slow) var(--gm-ease);
}
.gt-progress-circle--glow .gt-progress-circle-bar {
  filter: drop-shadow(0 0 4px var(--gm-primary-glow))
    drop-shadow(0 0 10px var(--gm-primary-glow));
}
.gt-progress-circle-label {
  position: absolute;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.gt-card {
  background: var(--gm-surface);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-xl);
  padding: var(--gm-space-5);
}
.gt-card--raised {
  box-shadow: var(--gm-shadow-md);
}
.gt-card--glow {
  box-shadow: var(--gm-shadow-glow);
  border-color: var(--gm-primary-soft-border);
}
.gt-card--glow-green {
  box-shadow: var(--gm-shadow-glow-green);
  border-color: var(--gm-success-soft-border);
}
.gt-card--interactive {
  cursor: pointer;
  transition: border-color var(--gm-dur) var(--gm-ease),
    box-shadow var(--gm-dur) var(--gm-ease),
    transform var(--gm-dur) var(--gm-ease);
}
.gt-card--interactive:hover {
  border-color: var(--gm-border-strong);
  box-shadow: var(--gm-shadow-lg);
  transform: translateY(-2px);
}
.gt-stat-label {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gm-text-muted);
}
.gt-stat-value {
  font-size: var(--gm-text-h1);
  font-weight: 700;
  line-height: 1.15;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.02em;
}
.gt-stat-value--up {
  color: var(--gm-up-ink);
}
.gt-stat-value--down {
  color: var(--gm-down-ink);
}
.gt-stat-caption {
  font-size: var(--gm-text-small);
  color: var(--gm-text-subtle);
}
.gt-stat-delta {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--gm-text-small);
  font-weight: 600;
}
.gt-stat-delta--up {
  color: var(--gm-up-ink);
}
.gt-stat-delta--down {
  color: var(--gm-down-ink);
}
.gt-signal-chip {
  display: inline-flex;
  flex-direction: column;
  gap: var(--gm-space-2);
  padding: var(--gm-space-3) var(--gm-space-4);
  background: var(--gm-surface);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-lg);
}
.gt-ticker {
  font-weight: 700;
  letter-spacing: 0.02em;
}
.gt-tlogo {
  --gt-tlogo-size: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: var(--gt-tlogo-size);
  height: var(--gt-tlogo-size);
  overflow: hidden;
  border-radius: var(--gm-radius-xs);
}
.gt-tlogo--circle {
  border-radius: var(--gm-radius-full);
}
.gt-tlogo--square {
  border-radius: 0;
}
.gt-tlogo-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.gt-tlogo--contain {
  background: var(--gm-media-surface);
  border: 1px solid var(--gm-media-border);
}
.gt-tlogo--contain .gt-tlogo-img {
  object-fit: contain;
  padding: calc(var(--gt-tlogo-size) * 0.08);
}
.gt-tlogo-mono {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  background: var(--gm-media-surface);
  border: 1px solid var(--gm-media-border);
  border-radius: inherit;
  font-weight: 700;
  font-size: calc(var(--gt-tlogo-size) * 0.4);
  letter-spacing: 0.02em;
  line-height: 1;
  color: var(--gm-text-muted);
  box-sizing: border-box;
}
.gt-id {
  display: inline-flex;
  align-items: center;
  gap: var(--gm-space-2);
  min-width: 0;
}
.gt-side {
  font-weight: 700;
  font-size: var(--gm-text-small);
  letter-spacing: 0.06em;
}
.gt-side--call {
  color: var(--gm-up-ink);
}
.gt-side--put {
  color: var(--gm-down-ink);
}
.gt-tabs {
  display: inline-flex;
  gap: 2px;
  padding: 3px;
  background: var(--gm-surface-2);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-md);
}
.gt-tab {
  border: 1px solid transparent;
  background: transparent;
  color: var(--gm-text-muted);
  font-family: var(--gm-font-sans);
  font-size: var(--gm-text-small);
  font-weight: 600;
  padding: 6px 12px;
  border-radius: var(--gm-radius-sm);
  cursor: pointer;
  transition: all var(--gm-dur-fast) var(--gm-ease);
}
.gt-tab:hover {
  color: var(--gm-text);
}
.gt-tab--active {
  background: var(--gm-surface-3);
  border-color: var(--gm-border-strong);
  color: var(--gm-text);
}
.gt-signal-card {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-4);
}
.gt-signal-meta {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--gm-space-3);
}
.gt-signal-meta-item {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gt-signal-meta-label {
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.gt-signal-meta-value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.gt-signal-factors {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-signal-factor {
  display: grid;
  grid-template-columns: 90px 1fr 44px;
  align-items: center;
  gap: var(--gm-space-3);
  font-size: var(--gm-text-small);
}
.gt-signal-factor-name {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  color: var(--gm-text-muted);
}
.gt-signal-factor-value {
  color: var(--gm-primary-ink);
  font-weight: 600;
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.gt-table-wrap {
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-xl);
  overflow: hidden;
  background: var(--gm-surface);
}
.gt-table-scroll {
  overflow-x: auto;
}
.gt-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--gm-text-body);
}
.gt-table th {
  text-align: left;
  font-size: var(--gm-text-caption);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gm-text-subtle);
  padding: var(--gm-space-3) var(--gm-space-4);
  border-bottom: 1px solid var(--gm-border);
  background: var(--gm-surface-2);
  white-space: nowrap;
}
.gt-table td {
  padding: var(--gm-space-3) var(--gm-space-4);
  border-bottom: 1px solid var(--gm-border);
  vertical-align: middle;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.gt-table tbody tr:last-child td {
  border-bottom: none;
}
.gt-table tbody tr {
  transition: background var(--gm-dur-fast) var(--gm-ease);
}
.gt-table tbody tr:hover {
  background: var(--gm-surface-2);
}
.gt-table-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--gm-space-3) var(--gm-space-4);
  border-top: 1px solid var(--gm-border);
  color: var(--gm-text-muted);
  font-size: var(--gm-text-small);
}
.gt-confidence {
  font-weight: 700;
  color: var(--gm-primary-ink);
  font-variant-numeric: tabular-nums;
}
.gt-pagination {
  display: inline-flex;
  gap: 4px;
  align-items: center;
}
.gt-page {
  min-width: 28px;
  height: 28px;
  padding: 0 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gm-radius-sm);
  border: 1px solid transparent;
  background: transparent;
  color: var(--gm-text-muted);
  font-size: var(--gm-text-small);
  font-weight: 600;
  cursor: pointer;
  font-variant-numeric: tabular-nums;
}
.gt-page:hover {
  background: var(--gm-surface-3);
  color: var(--gm-text);
}
.gt-page--active {
  background: var(--gm-primary);
  color: var(--gm-primary-contrast);
}
.gt-glow-bg {
  position: relative;
  background-image: var(--gm-glow-green);
  background-repeat: no-repeat;
}
.gt-glow-bg--lime {
  background-image: var(--gm-glow-lime);
}
.gt-chart-tip {
  display: inline-flex;
  align-items: center;
  gap: var(--gm-space-3);
  padding: 10px 16px;
  border-radius: var(--gm-radius-lg);
  background: color-mix(in srgb, var(--gm-surface-3) 82%, transparent);
  backdrop-filter: blur(10px);
  border: 1px solid var(--gm-border-strong);
  box-shadow: var(--gm-shadow-lg);
}
.gt-chart-tip-icon {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--gm-up-soft);
  color: var(--gm-up);
  flex-shrink: 0;
}
.gt-chart-tip-icon--down {
  background: var(--gm-down-soft);
  color: var(--gm-down);
}
.gt-chart-tip-value {
  font-weight: 700;
  font-size: var(--gm-text-body-lg);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.gt-chart-tip-label {
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
  line-height: 1.2;
}
.gt-chart {
  position: relative;
  width: 100%;
}
.gt-chart svg {
  display: block;
  width: 100%;
  height: auto;
}
.gt-chart-label {
  fill: var(--gm-text-subtle);
  font-family: var(--gm-font-sans);
  font-size: 10px;
}
.gt-chart-overlay {
  position: absolute;
  pointer-events: none;
}
.gt-ticker-bar {
  overflow: hidden;
  border-block: 1px solid var(--gm-border);
  background: var(--gm-surface);
  padding: 10px 0;
  -webkit-mask-image: linear-gradient(
    90deg,
    transparent,
    #000 6%,
    #000 94%,
    transparent
  );
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.gt-ticker-track {
  display: flex;
  gap: var(--gm-space-6);
  width: max-content;
  animation: gt-ticker 40s linear infinite;
}
.gt-ticker-bar:hover .gt-ticker-track {
  animation-play-state: paused;
}
@keyframes gt-ticker {
  to {
    transform: translateX(-50%);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gt-ticker-track {
    animation: none;
  }
}
.gt-ticker-item {
  display: inline-flex;
  gap: var(--gm-space-2);
  align-items: center;
  font-size: var(--gm-text-small);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.gt-strategy-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--gm-radius-md);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--gm-primary-soft);
  color: var(--gm-primary-ink);
  border: 1px solid var(--gm-primary-soft-border);
}
.gt-strategy-stats {
  display: flex;
  gap: var(--gm-space-5);
  padding-top: var(--gm-space-3);
  border-top: 1px solid var(--gm-border);
}
.gt-strategy-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gt-strategy-stat b {
  font-variant-numeric: tabular-nums;
  font-size: var(--gm-text-body-lg);
}
.gt-strategy-stat span {
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.gt-trade-alert {
  display: flex;
  gap: var(--gm-space-4);
  align-items: stretch;
  padding: var(--gm-space-4);
}
.gt-trade-alert-rail {
  width: 3px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-up);
  flex-shrink: 0;
}
.gt-trade-alert-rail--down {
  background: var(--gm-down);
}
.gt-trade-alert-body {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
  min-width: 0;
  flex: 1;
}
.gt-trade-alert-top {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
  flex-wrap: wrap;
}
.gt-trade-alert-time {
  margin-left: auto;
  color: var(--gm-text-subtle);
  font-size: var(--gm-text-small);
  font-variant-numeric: tabular-nums;
}
.gt-trade-alert-levels {
  display: flex;
  gap: var(--gm-space-5);
  flex-wrap: wrap;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-trade-alert-levels b {
  color: var(--gm-text);
  font-variant-numeric: tabular-nums;
  font-weight: 600;
}
.gt-trade-alert-actions {
  display: flex;
  gap: var(--gm-space-2);
  margin-top: var(--gm-space-1);
}
.gt-feed {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-4);
  padding-left: var(--gm-space-5);
}
.gt-feed::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--gm-border);
}
.gt-feed-item {
  position: relative;
}
.gt-feed-dot {
  position: absolute;
  left: calc(-1 * var(--gm-space-5) + 3px);
  top: 14px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--gm-surface-3);
  border: 2px solid var(--gm-border-strong);
}
.gt-feed-item--live .gt-feed-dot {
  background: var(--gm-primary-control);
  border-color: var(--gm-primary-soft-border);
  box-shadow: 0 0 0 4px var(--gm-primary-soft);
}
.gt-ladder-head {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
}
.gt-ladder-rr-badge {
  margin-left: auto;
}
.gt-ladder-progress {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  color: var(--gm-text-subtle);
  margin-left: auto;
}
.gt-ladder-progress + .gt-ladder-rr-badge {
  margin-left: 0;
}
.gt-ladder {
  position: relative;
  height: 76px;
  margin-top: var(--gm-space-4);
}
.gt-ladder-track {
  position: absolute;
  top: 34px;
  left: 0;
  right: 0;
  height: 8px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-surface-3);
}
.gt-ladder-zone {
  position: absolute;
  top: 34px;
  height: 8px;
}
.gt-ladder-zone--risk {
  background: var(--gm-down-soft);
}
.gt-ladder-zone--reward {
  background: var(--gm-up-soft);
}
.gt-ladder-zone--round-left {
  border-radius: var(--gm-radius-full) 0 0 var(--gm-radius-full);
}
.gt-ladder-zone--round-right {
  border-radius: 0 var(--gm-radius-full) var(--gm-radius-full) 0;
}
.gt-ladder-mark {
  position: absolute;
  top: 26px;
  width: 2px;
  height: 24px;
  transform: translateX(-1px);
}
.gt-ladder-mark--now {
  top: 30px;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  transform: translateX(-5px) rotate(45deg);
  box-shadow: 0 0 0 2px var(--gm-surface);
}
.gt-ladder-label--now b {
  color: var(--gm-primary-ink);
}
.gt-ladder-label {
  position: absolute;
  transform: translateX(-50%);
  font-size: var(--gm-text-caption);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
}
.gt-ladder-label--top {
  top: 0;
}
.gt-ladder-label--bottom {
  top: 56px;
}
.gt-ladder-label b {
  font-weight: 600;
}
.gt-ladder-label span {
  color: var(--gm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.gt-rr {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-rr-head {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
}
.gt-rr-ratio {
  margin-left: auto;
  font-weight: 700;
  font-size: var(--gm-text-h3);
}
.gt-rr-bar {
  display: flex;
  height: 10px;
  border-radius: var(--gm-radius-full);
  overflow: hidden;
}
.gt-rr-bar span:first-child {
  background: var(--gm-down);
  opacity: 0.75;
}
.gt-rr-bar span:last-child {
  background: var(--gm-up);
}
.gt-rr-legend {
  display: flex;
  justify-content: space-between;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
  margin-top: var(--gm-space-2);
}
.gt-rr-legend b {
  font-weight: 600;
}
.gt-rr-breakeven {
  margin: 0;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-rr-breakeven b {
  font-weight: 700;
  color: var(--gm-text);
}
.gt-rr-rows {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-rr-row {
  display: flex;
  justify-content: space-between;
  gap: var(--gm-space-3);
  font-size: var(--gm-text-body);
  color: var(--gm-text-muted);
}
.gt-rr-row b {
  color: var(--gm-text);
}
.gt-watchlist {
  display: flex;
  flex-direction: column;
}
.gt-watchlist-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 76px auto;
  gap: var(--gm-space-3);
  align-items: center;
  padding: var(--gm-space-2) var(--gm-space-3);
  border-radius: var(--gm-radius-md);
  transition: background var(--gm-dur-fast) var(--gm-ease);
}
.gt-watchlist-row:hover {
  background: var(--gm-surface-2);
}
.gt-watchlist-star {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--gm-text-subtle);
  display: inline-flex;
  padding: 4px;
  border-radius: var(--gm-radius-xs);
}
.gt-watchlist-star--on {
  color: var(--gm-primary-ink);
}
.gt-watchlist-name {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  min-width: 0;
}
.gt-watchlist-name-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.gt-watchlist-name small {
  color: var(--gm-text-subtle);
  font-size: var(--gm-text-caption);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gt-watchlist-price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-variant-numeric: tabular-nums;
}
.gt-watchlist-price small {
  font-weight: 600;
  font-size: var(--gm-text-caption);
}
.gt-gauge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gm-space-2);
}
.gt-gauge-value {
  font-weight: 700;
  font-size: var(--gm-text-h3);
  margin-top: calc(-1 * var(--gm-space-5));
}
.gt-regime-chips {
  display: flex;
  gap: var(--gm-space-2);
  flex-wrap: wrap;
  justify-content: center;
}
.gt-donut-wrap {
  display: flex;
  align-items: center;
  gap: var(--gm-space-5);
  flex-wrap: wrap;
}
.gt-donut-legend {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
  min-width: 140px;
}
.gt-donut-legend-row {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-donut-legend-row i {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  flex-shrink: 0;
}
.gt-donut-legend-row b {
  margin-left: auto;
  color: var(--gm-text);
  font-variant-numeric: tabular-nums;
}
.gt-pnl--up {
  color: var(--gm-up-ink);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.gt-pnl--down {
  color: var(--gm-down-ink);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.gt-stat--compact {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
  padding: var(--gm-space-3) var(--gm-space-4);
}
.gt-stat--compact .gt-stat-label {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gt-stat--compact .gt-stat-value {
  flex: 0 0 auto;
  font-size: var(--gm-text-h3);
  line-height: 1.2;
}
.gt-stat--compact .gt-stat-delta {
  flex: 0 0 auto;
  font-size: var(--gm-text-caption);
  padding: 2px 8px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-up-soft);
}
.gt-stat--compact .gt-stat-delta--down {
  background: var(--gm-down-soft);
}
.gt-stat--tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--gm-space-2);
  padding: var(--gm-space-7) var(--gm-space-5);
}
.gt-stat--tile .gt-stat-value {
  font-size: 2.75rem;
  line-height: 1.05;
}
.gt-stat--hero {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-stat-hero-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gm-space-3);
}
.gt-stat-hero-spark {
  display: block;
  width: 100%;
  height: auto;
}
.gt-signal-chip--compact {
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-3);
  padding: var(--gm-space-2) var(--gm-space-3);
}
.gt-signal-chip-range {
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-signal-chip-meta {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  padding-top: var(--gm-space-2);
  border-top: 1px solid var(--gm-border);
  font-size: var(--gm-text-caption);
  color: var(--gm-text-muted);
}
.gt-signal-chip-delta--up {
  color: var(--gm-up-ink);
}
.gt-signal-chip-delta--down {
  color: var(--gm-down-ink);
}
.gt-tabs--pill {
  gap: var(--gm-space-2);
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
}
.gt-tabs--pill .gt-tab {
  background: var(--gm-surface-2);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-full);
  padding: 8px 16px;
}
.gt-tabs--pill .gt-tab:hover {
  border-color: var(--gm-border-strong);
}
.gt-tabs--pill .gt-tab--active {
  background: var(--gm-primary-control);
  border-color: var(--gm-primary-control);
  color: var(--gm-text-inverse);
}
.gt-tabs--underline {
  gap: var(--gm-space-5);
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid var(--gm-border);
}
.gt-tabs--underline .gt-tab {
  margin-bottom: -1px;
  padding: 10px 2px;
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
}
.gt-tabs--underline .gt-tab--active {
  background: transparent;
  border-color: transparent;
  border-bottom-color: var(--gm-primary-control);
  color: var(--gm-primary-ink);
}
.gt-tabs--enclosed {
  align-items: flex-end;
  gap: var(--gm-space-1);
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 0;
  border-bottom: 1px solid var(--gm-border-strong);
}
.gt-tabs--enclosed .gt-tab {
  margin-bottom: -1px;
  padding: 8px 14px;
  background: var(--gm-surface-2);
  border: 1px solid var(--gm-border);
  border-bottom: none;
  border-radius: var(--gm-radius-sm) var(--gm-radius-sm) 0 0;
}
.gt-tabs--enclosed .gt-tab--active {
  background: var(--gm-surface);
  border-color: var(--gm-border-strong);
  border-bottom: 1px solid var(--gm-surface);
  color: var(--gm-text);
}
.gt-chart-tip--minimal {
  padding: 6px 12px;
  border-radius: var(--gm-radius-full);
  background: transparent;
  border: 1px solid var(--gm-border);
  backdrop-filter: none;
  box-shadow: none;
  gap: var(--gm-space-2);
}
.gt-chart-tip-arrow {
  display: inline-flex;
  color: var(--gm-up);
}
.gt-chart-tip-arrow--down {
  color: var(--gm-down);
}
.gt-chart-tip--minimal .gt-chart-tip-label {
  color: var(--gm-text-subtle);
}
.gt-chart-tip--detailed {
  flex-direction: column;
  align-items: stretch;
  gap: var(--gm-space-2);
}
.gt-chart-tip-row {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
}
.gt-chart-tip-meta {
  display: flex;
  align-items: center;
  padding-top: var(--gm-space-2);
  border-top: 1px solid var(--gm-border);
}
.gt-chart-tip-delta {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  color: var(--gm-up-ink);
}
.gt-chart-tip-delta--down {
  color: var(--gm-down-ink);
}
.gt-trade-alert--compact {
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-3);
  padding: var(--gm-space-3) var(--gm-space-4);
  border-radius: var(--gm-radius-lg);
}
.gt-trade-alert--compact .gt-trade-alert-rail {
  align-self: stretch;
  min-height: 22px;
}
.gt-trade-alert--compact .gt-ticker {
  font-size: var(--gm-text-body-lg);
}
.gt-trade-alert-flow {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
  min-width: 0;
  font-size: var(--gm-text-body);
  color: var(--gm-text-muted);
}
.gt-trade-alert-flow b {
  font-weight: 600;
  color: var(--gm-text);
  font-variant-numeric: tabular-nums;
}
.gt-trade-alert-arrow {
  color: var(--gm-text-subtle);
}
.gt-trade-alert--compact .gt-trade-alert-actions {
  margin-top: 0;
}
.gt-trade-alert--expanded {
  padding: var(--gm-space-5);
  border-radius: var(--gm-radius-xl);
}
.gt-trade-alert--expanded .gt-trade-alert-body {
  gap: var(--gm-space-4);
}
.gt-trade-alert-name {
  color: var(--gm-text-subtle);
  font-size: var(--gm-text-small);
}
.gt-trade-alert-spark {
  display: block;
  width: 100%;
  height: auto;
}
.gt-trade-alert-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: var(--gm-space-2);
}
.gt-trade-alert-grid > * {
  grid-column: span 2;
}
.gt-trade-alert-grid > .gt-trade-alert-trigger {
  grid-column: span 3;
}
.gt-trade-alert-grid > .gt-trade-alert-trigger:nth-child(4):last-child {
  grid-column: span 6;
}
.gt-trade-alert-cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  padding: var(--gm-space-3);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-md);
  background: var(--gm-surface-2);
}
.gt-trade-alert-cell b {
  font-size: var(--gm-text-body-lg);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.gt-trade-alert-cell-label {
  font-size: var(--gm-text-caption);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gm-text-subtle);
}
.gt-trade-alert-cell--target {
  background: var(--gm-up-soft);
}
.gt-trade-alert-cell--target b {
  color: var(--gm-up-ink);
}
.gt-trade-alert-cell--stop {
  background: var(--gm-down-soft);
}
.gt-trade-alert-cell--stop b {
  color: var(--gm-down-ink);
}
.gt-trade-alert-conf {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-trade-alert-conf-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gm-space-3);
}
@media (max-width: 560px) {
  .gt-trade-alert-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .gt-trade-alert-grid > *,
  .gt-trade-alert-grid > .gt-trade-alert-trigger,
  .gt-trade-alert-grid > .gt-trade-alert-trigger:nth-child(4):last-child {
    grid-column: auto;
  }
  .gt-trade-alert-cell {
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    gap: var(--gm-space-3);
  }
}
.gt-trade-alert--notification {
  align-items: flex-start;
  gap: var(--gm-space-3);
  padding: var(--gm-space-3) var(--gm-space-4);
  border-radius: var(--gm-radius-md);
  background: var(--gm-surface-2);
}
.gt-trade-alert-pip {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  margin-top: 6px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-up);
  box-shadow: 0 0 0 4px var(--gm-up-soft);
}
.gt-trade-alert-pip--down {
  background: var(--gm-down);
  box-shadow: 0 0 0 4px var(--gm-down-soft);
}
.gt-trade-alert--notification .gt-trade-alert-body {
  gap: var(--gm-space-1);
}
.gt-trade-alert-note-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-trade-alert-note-time {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  color: var(--gm-text-muted);
}
.gt-trade-alert-note-kicker {
  text-transform: uppercase;
  letter-spacing: 0.12em;
}
.gt-trade-alert-note-conf {
  margin-left: auto;
  font-size: var(--gm-text-small);
}
.gt-trade-alert-note-title {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
  margin: 0;
  font-size: var(--gm-text-body-lg);
}
.gt-trade-alert-note-sub {
  margin: 0;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-trade-alert-note-sub b {
  color: var(--gm-text);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.gt-trade-alert--notification .gt-trade-alert-actions {
  margin-top: var(--gm-space-2);
}
.gt-trade-alert-trigger {
  border-color: var(--gm-primary-soft-border);
  background: var(--gm-primary-soft);
  box-shadow: var(--gm-shadow-glow);
}
.gt-trade-alert-trigger .gt-trade-alert-cell-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--gm-primary-ink);
}
.gt-trade-alert-levels .gt-trade-alert-trigger {
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 2px var(--gm-space-2);
  border: 1px solid var(--gm-primary-soft-border);
  border-radius: var(--gm-radius-full);
  color: var(--gm-primary-ink);
}
.gt-trade-alert-levels .gt-trade-alert-trigger b {
  color: var(--gm-primary-ink);
}
.gt-trade-alert-brief-shell {
  display: grid;
  container-type: inline-size;
  container-name: gt-brief;
  width: 100%;
  min-width: 0;
}
.gt-trade-alert--brief {
  padding: var(--gm-space-5);
  border-radius: var(--gm-radius-2xl);
  
  isolation: isolate;
  overflow: hidden;
}
.gt-trade-alert--brief .gt-trade-alert-body {
  gap: var(--gm-space-4);
}
.gt-trade-alert-brief-kicker {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-caption);
}
.gt-trade-alert--brief .gt-side {
  padding: 2px var(--gm-space-2);
  border-radius: var(--gm-radius-full);
  background: var(--gm-up-soft);
}
.gt-trade-alert--brief .gt-side--put {
  background: var(--gm-down-soft);
}
.gt-trade-alert-brief-type {
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-kicker .gt-trade-alert-time {
  margin-left: 0;
}
.gt-trade-alert-brief-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--gm-space-4);
  align-items: center;
}
.gt-trade-alert-brief-id {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.gt-trade-alert-brief-id .gt-ticker {
  font-size: var(--gm-text-h2);
  font-weight: 700;
}
.gt-trade-alert-brief-id .gt-trade-alert-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gt-trade-alert-brief-price {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--gm-space-2);
  min-width: 0;
  font-size: var(--gm-text-body-lg);
  font-weight: 700;
}
.gt-trade-alert-brief-price svg {
  margin-left: auto;
  align-self: center;
  min-width: 0;
  max-width: 100%;
  height: auto;
}
.gt-trade-alert-brief-change:not(.gt-pnl--up):not(.gt-pnl--down) {
  color: var(--gm-text-muted);
}
.gt-trade-alert-brief-conf {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gm-space-1);
}
.gt-trade-alert-brief-conf-cap {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: var(--gm-space-2) 0;
}
.gt-trade-alert-brief-hero::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -24px;
  left: 0;
  right: 0;
  height: 288px;
  background-image: var(--gm-glow-green);
  background-repeat: no-repeat;
  background-size: 480px 288px;
  background-position: -168px 0;
  pointer-events: none;
}
.gt-trade-alert-brief-hero-value {
  font-size: var(--gm-text-display-2);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--gm-up-ink);
}
.gt-trade-alert-brief-hero-cap {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-headline {
  margin: var(--gm-space-2) 0 0;
  font-size: var(--gm-text-body-lg);
  font-weight: 600;
  line-height: 1.35;
  color: var(--gm-text);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gt-trade-alert-brief-evidence {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gm-space-2);
}
.gt-trade-alert-brief-evidence > :last-child:nth-child(odd) {
  grid-column: 1 / -1;
}
@container gt-brief (min-width: 620px) {
  .gt-trade-alert-brief-evidence {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
  }
  .gt-trade-alert-brief-evidence > :last-child:nth-child(odd) {
    grid-column: auto;
  }
}
.gt-trade-alert-brief-pill {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  padding: var(--gm-space-3);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-lg);
  background: var(--gm-surface-2);
}
.gt-trade-alert-brief-pill--trigger {
  background: var(--gm-primary-soft);
  border-color: var(--gm-primary-soft-border);
  box-shadow: var(--gm-shadow-glow);
}
.gt-trade-alert-brief-pill-label {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--gm-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-pill--trigger .gt-trade-alert-brief-pill-label {
  color: var(--gm-primary-ink);
}
.gt-trade-alert-brief-pill-value {
  font-size: var(--gm-text-body-lg);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.gt-trade-alert-brief-pill-note {
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-spine {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
  padding: var(--gm-space-4);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-lg);
  background: var(--gm-surface-2);
}
.gt-trade-alert-brief-spine-head {
  display: flex;
  align-items: baseline;
  gap: var(--gm-space-3);
}
.gt-trade-alert-brief-now {
  margin-left: auto;
  font-size: var(--gm-text-caption);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-now b {
  color: var(--gm-text);
  font-size: var(--gm-text-small);
  letter-spacing: 0;
}
.gt-trade-alert-brief-more {
  border-top: 1px solid var(--gm-border);
  padding-top: var(--gm-space-3);
}
.gt-trade-alert-brief-more-summary {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  cursor: pointer;
  list-style: none;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-trade-alert-brief-more-summary::-webkit-details-marker {
  display: none;
}
.gt-trade-alert-brief-more-summary:focus-visible {
  outline: 2px solid var(--gm-primary-control);
  outline-offset: 2px;
  border-radius: var(--gm-radius-sm);
}
.gt-trade-alert-brief-chev {
  margin-left: auto;
  transition: transform var(--gm-dur) var(--gm-ease);
}
.gt-trade-alert-brief-more[open] > summary .gt-trade-alert-brief-chev {
  transform: rotate(180deg);
}
.gt-trade-alert-brief-more-body {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-4);
  padding-top: var(--gm-space-3);
}
.gt-trade-alert-brief-thesis {
  margin: 0;
  font-size: var(--gm-text-small);
  line-height: 1.6;
  color: var(--gm-text-muted);
}
.gt-trade-alert-brief-verdicts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-3);
}
.gt-trade-alert-brief-verdict {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.gt-trade-alert-brief-verdict-label {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-pill--up,
.gt-trade-alert-brief-pill--down {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 10px;
  border-radius: var(--gm-radius-full);
  font-size: var(--gm-text-caption);
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
}
.gt-trade-alert-brief-pill--up {
  background: var(--gm-up-soft);
  color: var(--gm-up-ink);
}
.gt-trade-alert-brief-pill--down {
  background: var(--gm-down-soft);
  color: var(--gm-down-ink);
}
.gt-trade-alert-brief-news {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-small);
  color: var(--gm-text);
}
.gt-trade-alert-brief-news-age,
.gt-trade-alert-brief-news-source {
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-news a {
  color: var(--gm-text);
  text-decoration: none;
}
.gt-trade-alert-brief-news a:hover {
  text-decoration: underline;
}
.gt-trade-alert-brief-news a svg {
  margin-left: 4px;
  vertical-align: -2px;
}
.gt-trade-alert-brief-prior {
  display: flex;
  flex-direction: column;
}
.gt-trade-alert-brief-prior-row {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) auto auto;
  gap: var(--gm-space-2);
  align-items: center;
  min-height: 32px;
  font-size: var(--gm-text-small);
}
.gt-trade-alert-brief-prior-row + .gt-trade-alert-brief-prior-row {
  border-top: 1px solid var(--gm-border);
}
.gt-trade-alert-brief-prior-time {
  color: var(--gm-text-subtle);
}
.gt-trade-alert-brief-prior-type {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--gm-text-muted);
}
.gt-trade-alert-brief-prior-dot {
  width: 6px;
  height: 6px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-text-subtle);
}
.gt-trade-alert-brief-prior-dot--win {
  background: var(--gm-up);
}
.gt-trade-alert-brief-prior-dot--loss {
  background: var(--gm-down);
}
.gt-trade-alert-brief-prior-dot--open {
  background: var(--gm-text-subtle);
}
.gt-trade-alert-brief-sectors {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-small);
}
.gt-trade-alert-brief-sector {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
}
.gt-trade-alert-brief-sector-name {
  color: var(--gm-text-muted);
}
.gt-trade-alert-brief-sep {
  color: var(--gm-text-subtle);
}
@container gt-brief (min-width: 440px) {
  .gt-trade-alert-brief-kicker .gt-trade-alert-time {
    margin-left: auto;
  }
}
@container gt-brief (max-width: 439px) {
  .gt-trade-alert--brief {
    padding: var(--gm-space-4);
    border-radius: var(--gm-radius-xl);
  }
  .gt-trade-alert--brief .gt-trade-alert-actions > :first-child {
    flex: 1;
  }
  .gt-trade-alert-brief-prior-row {
    grid-template-columns: 56px minmax(0, 1fr) auto auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gt-trade-alert-brief-chev {
    transition: none;
  }
}
.gt-feed--timeline {
  position: relative;
  padding-left: 0;
  gap: var(--gm-space-4);
}
.gt-feed--timeline::before {
  content: "";
  position: absolute;
  left: 54px;
  top: 8px;
  bottom: 8px;
  width: 2px;
  background: var(--gm-border);
}
.gt-feed-row {
  position: relative;
  display: grid;
  grid-template-columns: 60px 1fr;
  column-gap: var(--gm-space-3);
  align-items: start;
}
.gt-feed-rail {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  padding-top: 14px;
}
.gt-feed-rail-time {
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
  white-space: nowrap;
}
.gt-feed-node {
  width: 10px;
  height: 10px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-surface-3);
  border: 2px solid var(--gm-border-strong);
  flex-shrink: 0;
}
.gt-feed-row--live .gt-feed-rail-time {
  color: var(--gm-text-muted);
}
.gt-feed-row--live .gt-feed-node {
  background: var(--gm-primary-control);
  border-color: var(--gm-primary-soft-border);
  box-shadow: 0 0 0 4px var(--gm-primary-soft);
}
.gt-feed--timeline .gt-trade-alert-time {
  display: none;
}
@media (max-width: 480px) {
  .gt-feed--timeline::before {
    left: 30px;
  }
  .gt-feed-row {
    grid-template-columns: 36px 1fr;
  }
  .gt-feed-rail-time {
    display: none;
  }
  .gt-feed-rail {
    align-items: center;
    padding-top: 16px;
  }
}
.gt-feed--dense {
  gap: 0;
}
.gt-feed-dense-row {
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid var(--gm-border);
  background: transparent;
  box-shadow: none;
  padding: var(--gm-space-2) var(--gm-space-2);
}
.gt-feed-dense-row:first-child {
  padding-top: 0;
}
.gt-feed-dense-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.gt-feed-dense-row--live {
  background: var(--gm-primary-soft);
  border-radius: var(--gm-radius-sm);
  border-bottom-color: transparent;
}
.gt-signal-conf {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-signal-conf-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gm-space-3);
}
.gt-signal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
}
.gt-signal-split {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
  gap: var(--gm-space-5);
  align-items: start;
}
.gt-signal-split-main,
.gt-signal-split-side {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-5);
  min-width: 0;
}
.gt-signal-split-side {
  gap: var(--gm-space-4);
  padding-left: var(--gm-space-5);
  border-left: 1px solid var(--gm-border);
}
.gt-signal-thesis {
  margin: 0;
  color: var(--gm-text-muted);
  line-height: 1.6;
}
.gt-signal-facts {
  display: flex;
  flex-direction: column;
}
.gt-signal-fact {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--gm-space-3);
  padding: var(--gm-space-2) 0;
  border-bottom: 1px solid var(--gm-border);
  font-size: var(--gm-text-body);
  color: var(--gm-text-muted);
}
.gt-signal-fact:last-child {
  border-bottom: 0;
}
.gt-signal-fact b {
  font-weight: 700;
  color: var(--gm-text);
  font-variant-numeric: tabular-nums;
}
.gt-signal-fact--target b {
  color: var(--gm-up-ink);
}
.gt-signal-fact--stop b {
  color: var(--gm-down-ink);
}
.gt-signal-split-side .gt-signal-factor {
  grid-template-columns: 68px minmax(0, 1fr) 34px;
  gap: var(--gm-space-2);
}
.gt-signal-meta--stack {
  grid-template-columns: minmax(0, 1fr);
  gap: var(--gm-space-2);
  padding-top: var(--gm-space-1);
}
.gt-signal-meta--stack .gt-signal-meta-item {
  flex-direction: row;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--gm-space-3);
}
@media (max-width: 900px) {
  .gt-signal-split {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--gm-space-4);
  }
  .gt-signal-split-side {
    padding-left: 0;
    padding-top: var(--gm-space-4);
    border-left: 0;
    border-top: 1px solid var(--gm-border);
  }
}
.gt-signal-detail--condensed {
  gap: var(--gm-space-3);
  padding: var(--gm-space-4);
  border-radius: var(--gm-radius-lg);
}
.gt-signal-cond-head {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
}
.gt-signal-cond-head .gt-ticker {
  font-size: var(--gm-text-body-lg);
}
.gt-signal-cond-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--gm-text-small);
  color: var(--gm-text-subtle);
}
.gt-signal-cond-price {
  margin-left: auto;
  font-size: var(--gm-text-h3);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.gt-signal-cond-spark {
  display: block;
  width: 100%;
  height: auto;
}
.gt-signal-cond-levels {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--gm-space-2);
}
.gt-signal-cond-level {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  padding: var(--gm-space-2) var(--gm-space-3);
  border-radius: var(--gm-radius-sm);
  background: var(--gm-surface-2);
  font-size: var(--gm-text-caption);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gm-text-subtle);
}
.gt-signal-cond-level b {
  font-size: var(--gm-text-body);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  color: var(--gm-text);
  font-variant-numeric: tabular-nums;
}
.gt-signal-cond-level--target b {
  color: var(--gm-up-ink);
}
.gt-signal-cond-level--stop b {
  color: var(--gm-down-ink);
}
.gt-signal-cond-thesis {
  margin: 0;
  font-size: var(--gm-text-body);
  line-height: 1.55;
  color: var(--gm-text-muted);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.gt-signal-cond-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
}
.gt-signal-cond-meta-item {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
  padding: 2px var(--gm-space-2);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-full);
  font-size: var(--gm-text-small);
}
.gt-signal-cond-meta-label {
  font-size: var(--gm-text-caption);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gm-text-subtle);
}
.gt-signal-cond-meta-value {
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 560px) {
  .gt-signal-cond-levels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gt-signal-cond-price {
    font-size: var(--gm-text-body-lg);
  }
}
.gt-chart-panel--minimal {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-chart-panel-min-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: var(--gm-space-1) var(--gm-space-3);
}
.gt-chart-panel-min-head .gt-ticker {
  font-size: var(--gm-text-body-lg);
}
.gt-chart-panel-min-sub {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--gm-text-small);
  color: var(--gm-text-subtle);
}
.gt-chart-panel-min-price {
  margin-left: auto;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.gt-chart-panel-min-change {
  font-size: var(--gm-text-small);
}
.gt-chart-panel--minimal .gt-chart {
  margin-top: calc(-1 * var(--gm-space-2));
}
.gt-chart-panel-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--gm-space-3);
  margin-top: var(--gm-space-4);
  padding-top: var(--gm-space-4);
  border-top: 1px solid var(--gm-border);
}
.gt-chart-panel-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.gt-chart-panel-stat-label {
  font-size: var(--gm-text-caption);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gm-text-subtle);
}
.gt-chart-panel-stat-value {
  font-size: var(--gm-text-body-lg);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gm-text);
}
.gt-chart-panel-stat-value--up {
  color: var(--gm-up-ink);
}
.gt-chart-panel-stat-value--down {
  color: var(--gm-down-ink);
}
.gt-chart-panel--fullbleed {
  padding: 0;
  overflow: hidden;
}
.gt-chart-panel-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-2) var(--gm-space-4);
  padding: var(--gm-space-3) var(--gm-space-4);
  border-bottom: 1px solid var(--gm-border);
  background: var(--gm-surface-2);
}
.gt-chart-panel-bar-id {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.gt-chart-panel-bar-id .gt-ticker {
  font-size: var(--gm-text-body-lg);
}
.gt-chart-panel-bar-sub {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-chart-panel-bar-price {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
}
.gt-chart-panel-bar-price .gm-num {
  font-size: var(--gm-text-body-lg);
  font-weight: 700;
}
.gt-chart-panel-bar-price .gt-pnl--up,
.gt-chart-panel-bar-price .gt-pnl--down {
  font-size: var(--gm-text-small);
}
.gt-chart-panel-bar-tabs {
  margin-left: auto;
}
.gt-chart-panel-canvas {
  padding-top: var(--gm-space-2);
}
.gt-chart-panel-canvas .gt-chart svg {
  display: block;
  margin-bottom: -4px;
}
@media (max-width: 560px) {
  .gt-chart-panel-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--gm-space-3) var(--gm-space-4);
  }
  .gt-chart-panel-bar-tabs {
    margin-left: 0;
    width: 100%;
  }
  .gt-chart-panel-min-price {
    margin-left: 0;
  }
}
.gt-ladder--vertical {
  height: 208px;
}
.gt-ladder-v-track {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 8px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-surface-3);
}
.gt-ladder-v-zone {
  position: absolute;
  left: 0;
  width: 8px;
}
.gt-ladder-v-zone--risk {
  background: var(--gm-down-soft);
}
.gt-ladder-v-zone--reward {
  background: var(--gm-up-soft);
}
.gt-ladder-v-zone--round-bottom {
  border-radius: 0 0 var(--gm-radius-full) var(--gm-radius-full);
}
.gt-ladder-v-zone--round-top {
  border-radius: var(--gm-radius-full) var(--gm-radius-full) 0 0;
}
.gt-ladder-v-row {
  position: absolute;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  transform: translateY(50%);
  font-size: var(--gm-text-caption);
}
.gt-ladder-v-rung {
  flex-shrink: 0;
  width: 22px;
  height: 2px;
  border-radius: var(--gm-radius-full);
}
.gt-ladder-v-row b {
  font-size: var(--gm-text-small);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.gt-ladder-v-dash {
  flex: 1;
  min-width: var(--gm-space-3);
  border-top: 1px dashed var(--gm-border);
}
.gt-ladder-v-name {
  color: var(--gm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
  white-space: nowrap;
}
.gt-trade-setup--compact {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-ladder--compact {
  height: 14px;
  margin-top: 0;
}
.gt-ladder--compact .gt-ladder-track,
.gt-ladder--compact .gt-ladder-zone {
  top: 4px;
  height: 6px;
}
.gt-ladder--compact .gt-ladder-mark {
  top: 0;
  height: 14px;
  border-radius: var(--gm-radius-full);
}
.gt-ladder-c-legend {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-2) var(--gm-space-3);
  font-size: var(--gm-text-caption);
}
.gt-ladder-c-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--gm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-weight: 600;
}
.gt-ladder-c-item b {
  color: var(--gm-text);
  font-size: var(--gm-text-small);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  font-variant-numeric: tabular-nums;
}
.gt-ladder-c-dot {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: var(--gm-radius-full);
}
.gt-ladder-c-dot--now {
  border-radius: 1px;
  transform: rotate(45deg);
}
.gt-ladder-c-rr {
  margin-left: auto;
  padding: 2px var(--gm-space-2);
  border: 1px solid var(--gm-primary-soft-border);
  border-radius: var(--gm-radius-full);
  background: var(--gm-primary-soft);
  color: var(--gm-primary-ink);
  font-weight: 700;
  white-space: nowrap;
}
.gt-trade-setup--detailed {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-ladder-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
  gap: var(--gm-space-3);
  padding-top: var(--gm-space-3);
  border-top: 1px solid var(--gm-border);
}
.gt-ladder-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.gt-ladder-stat-label {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gm-text-subtle);
}
.gt-ladder-stat b {
  font-size: var(--gm-text-body-lg);
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--gm-text);
}
.gt-ladder-stat-sub {
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
  line-height: 1.35;
}
.gt-ladder-track-progress {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-ladder-track-progress .gt-progress {
  flex: 1;
}
.gt-ladder-track-progress > .gm-num {
  font-weight: 700;
  color: var(--gm-text);
}
@media (max-width: 480px) {
  .gt-ladder--vertical {
    height: 180px;
  }
  .gt-ladder-c-rr {
    margin-left: 0;
  }
}
.gt-rr-inline-row {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
}
.gt-rr-inline-ratio {
  font-weight: 700;
  font-size: var(--gm-text-h3);
  white-space: nowrap;
}
.gt-rr-bar--inline {
  flex: 1 1 auto;
  min-width: 48px;
  height: 8px;
  margin: 0;
}
.gt-rr-inline-val {
  font-weight: 600;
  font-size: var(--gm-text-small);
  white-space: nowrap;
}
.gt-rr-inline-rows {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
}
.gt-rr-inline-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 2px var(--gm-space-2);
  border-radius: var(--gm-radius-full);
  border: 1px solid var(--gm-border);
  background: var(--gm-surface-2);
  color: var(--gm-text-subtle);
  font-size: var(--gm-text-caption);
  white-space: nowrap;
}
.gt-rr-inline-chip b {
  color: var(--gm-text);
  font-weight: 700;
}
.gt-rr--gauge .gt-gauge-value {
  font-size: var(--gm-text-h3);
}
.gt-rr-split {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: stretch;
  gap: var(--gm-space-2);
}
.gt-rr-box {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-1);
  padding: var(--gm-space-3);
  border-radius: var(--gm-radius-lg);
  border: 1px solid var(--gm-border);
  background: var(--gm-surface-2);
  min-width: 0;
}
.gt-rr-box--risk {
  border-color: var(--gm-danger-soft-border);
  background: var(--gm-down-soft);
}
.gt-rr-box--reward {
  border-color: var(--gm-success-soft-border);
  background: var(--gm-up-soft);
}
.gt-rr-box-label {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gm-text-subtle);
}
.gt-rr-box b {
  font-size: var(--gm-text-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
}
.gt-rr-split-ratio {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 0 var(--gm-space-2);
  white-space: nowrap;
}
.gt-rr-split-ratio > .gm-num {
  font-size: var(--gm-text-h3);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--gm-text);
}
.gt-rr-split-ratio-cap {
  font-size: var(--gm-text-caption);
  letter-spacing: 0.04em;
  color: var(--gm-text-subtle);
}
@media (max-width: 480px) {
  .gt-rr-inline-row {
    flex-wrap: wrap;
  }
  .gt-rr-bar--inline {
    order: 1;
    flex-basis: 100%;
  }
  .gt-rr-split {
    grid-template-columns: 1fr;
  }
}
.gt-confidence-cap {
  font-size: var(--gm-text-caption);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gm-text-muted);
}
.gt-confidence-cap--pass {
  color: var(--gm-primary-ink);
}
.gt-confidence-cap--watch {
  color: var(--gm-warning);
}
.gt-confidence-cap--fail {
  color: var(--gm-danger);
}
.gt-confidence-delta {
  font-size: var(--gm-text-caption);
  font-weight: 600;
  color: var(--gm-text-subtle);
}
.gt-confidence-note {
  margin: 0;
  font-size: var(--gm-text-small);
  line-height: 1.5;
  color: var(--gm-text-muted);
}
.gt-confidence--ring {
  display: flex;
  align-items: center;
  gap: var(--gm-space-5);
  flex-wrap: wrap;
}
.gt-confidence-ring-lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gm-space-2);
}
.gt-confidence-ring-cap {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
}
.gt-confidence-ring-body {
  flex: 1;
  min-width: 220px;
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-confidence--bar {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-confidence-bar-head {
  display: flex;
  align-items: baseline;
  gap: var(--gm-space-2);
}
.gt-confidence-bar-value {
  font-size: var(--gm-text-h2);
  font-weight: 700;
}
.gt-confidence-bar-label {
  margin-left: auto;
}
.gt-confidence-bar-factors {
  margin-top: var(--gm-space-1);
}
.gt-confidence-track {
  position: relative;
}
.gt-confidence-tick {
  position: absolute;
  top: -3px;
  bottom: -3px;
  width: 2px;
  transform: translateX(-1px);
  border-radius: var(--gm-radius-full);
  background: var(--gm-surface);
  opacity: 0.85;
}
.gt-confidence--badge {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-confidence-pill {
  align-self: flex-start;
}
.gt-confidence-pill b {
  font-weight: 700;
}
.gt-confidence-pill-factors {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-1) var(--gm-space-3);
}
.gt-confidence-pill-factor {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-confidence-pill-dot {
  flex-shrink: 0;
  width: 6px;
  height: 6px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-text-subtle);
}
.gt-confidence-pill-dot--pass {
  background: var(--gm-success);
}
.gt-confidence-pill-dot--watch {
  background: var(--gm-warning);
}
.gt-confidence-pill-dot--fail {
  background: var(--gm-danger);
}
.gt-confidence-pill-factor b {
  font-weight: 700;
  color: var(--gm-text-muted);
}
.gt-confidence--dial {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-4);
}
.gt-confidence-dial-figure {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.gt-confidence-band--fail {
  stroke: var(--gm-danger);
  opacity: 0.75;
}
.gt-confidence-band--watch {
  stroke: var(--gm-warning);
  opacity: 0.75;
}
.gt-confidence-band--pass {
  stroke: var(--gm-primary-control);
}
.gt-confidence-needle {
  stroke: var(--gm-text);
}
.gt-confidence-hub {
  fill: var(--gm-text);
}
.gt-confidence-dial-read {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  margin-top: calc(-1 * var(--gm-space-1));
}
.gt-confidence-dial-value {
  font-size: var(--gm-text-h1);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
  color: var(--gm-text);
}
.gt-confidence-dial-cap {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
}
.gt-confidence--rings {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-4);
}
.gt-confidence-rings-lead {
  display: flex;
  align-items: center;
  gap: var(--gm-space-4);
}
.gt-confidence-rings-lead-cap {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gt-confidence-rings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
  gap: var(--gm-space-3);
}
.gt-confidence-ring-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--gm-space-2);
  text-align: center;
}
.gt-confidence-ring-item-name {
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
  line-height: 1.3;
}
@media (max-width: 480px) {
  .gt-confidence-bar-value {
    font-size: var(--gm-text-h3);
  }
  .gt-confidence-bar-label {
    margin-left: 0;
  }
}
.gt-watchlist--compact .gt-watchlist-row {
  grid-template-columns: 20px minmax(0, 1fr) auto;
  gap: var(--gm-space-2);
  padding: var(--gm-space-1) var(--gm-space-2);
}
.gt-watchlist-compact-id {
  display: flex;
  align-items: baseline;
  gap: var(--gm-space-2);
  min-width: 0;
}
.gt-watchlist-compact-id .gt-ticker {
  font-size: var(--gm-text-small);
}
.gt-watchlist-compact-id small {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--gm-text-subtle);
  font-size: var(--gm-text-caption);
}
.gt-watchlist-compact-price {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
  font-variant-numeric: tabular-nums;
}
.gt-watchlist-compact-price .gm-num {
  font-size: var(--gm-text-small);
  font-weight: 600;
}
.gt-watchlist-compact-price small {
  font-weight: 600;
  font-size: var(--gm-text-caption);
}
.gt-watchlist--detailed .gt-watchlist-row {
  grid-template-columns: 28px minmax(0, 1fr) 96px auto;
  row-gap: 4px;
  padding: var(--gm-space-3);
}
.gt-watchlist--detailed .gt-watchlist-row:not(:last-child) {
  border-bottom: 1px solid var(--gm-border);
}
.gt-watchlist-meta {
  grid-column: 2 / -1;
  display: flex;
  gap: var(--gm-space-4);
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-watchlist-meta b {
  color: var(--gm-text-muted);
  font-weight: 600;
}
@media (max-width: 420px) {
  .gt-watchlist--detailed .gt-watchlist-row {
    grid-template-columns: 22px minmax(0, 1fr) auto;
  }
  .gt-watchlist--detailed .gt-watchlist-row svg {
    display: none;
  }
}
.gt-market-overview-breadth-bar {
  display: flex;
  height: 8px;
  min-width: 0;
  border-radius: var(--gm-radius-full);
  overflow: hidden;
  background: var(--gm-surface-3);
}
.gt-market-overview-breadth-fill {
  display: block;
  height: 100%;
}
.gt-market-overview-breadth-fill--adv {
  background: var(--gm-up);
}
.gt-market-overview-breadth-fill--dec {
  background: var(--gm-down);
  opacity: 0.75;
}
.gt-market-overview-breadth-caption {
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}
.gt-market-overview--strip {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-market-overview-strip {
  display: flex;
  align-items: stretch;
  overflow-x: auto;
  background: var(--gm-surface);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-xl);
  padding: var(--gm-space-1) var(--gm-space-2);
  scrollbar-width: thin;
}
.gt-market-overview-strip-cell {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
  padding: var(--gm-space-2) var(--gm-space-4);
  white-space: nowrap;
}
.gt-market-overview-strip-cell + .gt-market-overview-strip-cell {
  border-left: 1px solid var(--gm-border);
}
.gt-market-overview-strip-id {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-2);
}
.gt-market-overview-strip-id .gt-ticker {
  font-size: var(--gm-text-small);
}
.gt-market-overview-strip-id .gm-num {
  font-weight: 700;
  font-size: var(--gm-text-small);
}
.gt-market-overview-strip-quote {
  display: inline-flex;
  align-items: center;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-caption);
  font-weight: 600;
}
.gt-market-overview-strip-breadth {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
  padding: 0 var(--gm-space-4);
}
.gt-market-overview-strip-breadth .gt-market-overview-breadth-bar {
  flex: 1;
  height: 6px;
}
.gt-market-overview-strip-counts {
  display: inline-flex;
  align-items: baseline;
  gap: var(--gm-space-1);
  font-size: var(--gm-text-caption);
  font-variant-numeric: tabular-nums;
  color: var(--gm-text-subtle);
}
.gt-market-overview--detailed {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  gap: var(--gm-space-3);
  align-items: start;
}
@media (max-width: 900px) {
  .gt-market-overview--detailed {
    grid-template-columns: minmax(0, 1fr);
  }
}
.gt-market-overview-list {
  padding: var(--gm-space-2) var(--gm-space-3);
}
.gt-market-overview-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: var(--gm-space-3);
  row-gap: 4px;
  padding: var(--gm-space-3) 0;
}
.gt-market-overview-row:not(:last-child) {
  border-bottom: 1px solid var(--gm-border);
}
.gt-market-overview-row-id {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  min-width: 0;
}
.gt-market-overview-row-id-text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.gt-market-overview-row-id small {
  color: var(--gm-text-subtle);
  font-size: var(--gm-text-caption);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gt-market-overview-row-quote {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  font-variant-numeric: tabular-nums;
}
.gt-market-overview-row-quote > span.gm-num {
  font-weight: 700;
  font-size: var(--gm-text-body-lg);
}
.gt-market-overview-row-quote > small.gm-num {
  font-weight: 600;
  font-size: 11px;
}
.gt-market-overview-row-meta {
  grid-column: 1 / -1;
  display: flex;
  gap: var(--gm-space-4);
  flex-wrap: wrap;
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-market-overview-row-meta b {
  color: var(--gm-text-muted);
  font-weight: 600;
}
.gt-market-overview-breadth {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-market-overview-breadth-ratio {
  font-size: var(--gm-text-h1);
  font-weight: 700;
  line-height: 1;
  color: var(--gm-up-ink);
}
.gt-market-overview-breadth-rows {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-1);
  margin-top: var(--gm-space-1);
}
.gt-market-overview-breadth-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 40px;
  align-items: baseline;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-market-overview-breadth-row b {
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.gt-market-overview-breadth-row i {
  font-style: normal;
  text-align: right;
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-market-overview-breadth-row--total {
  border-top: 1px solid var(--gm-border);
  padding-top: var(--gm-space-2);
  margin-top: var(--gm-space-1);
  color: var(--gm-text-subtle);
}
@media (max-width: 720px) {
  .gt-market-overview--detailed {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 420px) {
  .gt-market-overview-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .gt-market-overview-row > svg {
    display: none;
  }
}
.gt-regime-note {
  margin: var(--gm-space-3) 0 0;
  color: var(--gm-text-muted);
  font-size: var(--gm-text-small);
}
.gt-regime--minimal {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
}
.gt-regime-head {
  display: flex;
  align-items: baseline;
  gap: var(--gm-space-2);
  flex-wrap: wrap;
}
.gt-regime-head-label {
  font-weight: 700;
  font-size: var(--gm-text-body-lg);
}
.gt-regime-head-score {
  margin-left: auto;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--gm-text-muted);
}
.gt-regime-meter {
  position: relative;
  display: flex;
  gap: 3px;
  height: 8px;
}
.gt-regime-meter-seg {
  flex: 1;
  border-radius: var(--gm-radius-full);
  opacity: 0.55;
}
/* The session day: pre-market and after hours are neutral, the regular session is the action colour. Red,
   amber and green stay loss, warning and gain. */
.gt-regime-meter-seg--pre,
.gt-regime-meter-seg--after {
  background: var(--gm-border-strong);
  opacity: 1;
}
.gt-regime-meter-seg--regular {
  background: var(--gm-primary-control);
}
.gt-regime-marker {
  position: absolute;
  top: 50%;
  width: 14px;
  height: 14px;
  border-radius: var(--gm-radius-full);
  background: var(--gm-text);
  border: 3px solid var(--gm-surface);
  transform: translate(-50%, -50%);
  box-shadow: var(--gm-shadow-sm);
}
.gt-regime-scale {
  display: flex;
  justify-content: space-between;
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
}
.gt-regime-chips--flush {
  justify-content: flex-start;
  margin-top: var(--gm-space-1);
}
.gt-regime--dial {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-regime--dial .gt-regime-note {
  margin: 0;
  text-align: center;
}
.gt-regime--minimal .gt-regime-note {
  margin-top: 0;
}
.gt-regime-detail-top {
  display: flex;
  align-items: center;
  gap: var(--gm-space-4);
}
.gt-regime-detail-dial {
  flex: 0 0 auto;
}
.gt-regime-detail-dial .gt-gauge-value {
  font-size: var(--gm-text-body-lg);
}
.gt-regime-detail-read {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-2);
  min-width: 0;
}
.gt-regime-detail-score {
  font-size: var(--gm-text-display-2);
  font-weight: 700;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.gt-regime-detail-score i {
  font-style: normal;
  font-size: var(--gm-text-body);
  font-weight: 600;
  color: var(--gm-text-subtle);
}
.gt-regime-bands {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gt-regime-band {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-caption);
  color: var(--gm-text-subtle);
  padding: 2px var(--gm-space-2);
  border-radius: var(--gm-radius-full);
  border: 1px solid transparent;
}
.gt-regime-band::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: var(--gm-radius-full);
  background: currentcolor;
  opacity: 0.4;
}
.gt-regime-band--off.gt-regime-band--active {
  color: var(--gm-down-ink);
  background: var(--gm-down-soft);
  border-color: var(--gm-down-soft);
}
.gt-regime-band--neutral.gt-regime-band--active {
  color: var(--gm-warning);
  background: var(--gm-warning-soft);
  border-color: var(--gm-warning-soft-border);
}
.gt-regime-band--on.gt-regime-band--active {
  color: var(--gm-up-ink);
  background: var(--gm-up-soft);
  border-color: var(--gm-up-soft);
}
.gt-regime-band--active::before {
  opacity: 1;
}
.gt-regime-states {
  display: flex;
  flex-direction: column;
  margin-top: var(--gm-space-3);
  border-top: 1px solid var(--gm-border);
}
.gt-regime-state {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  padding: var(--gm-space-2) 0;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-regime-state:not(:last-child) {
  border-bottom: 1px solid var(--gm-border);
}
.gt-regime-state-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  border-radius: var(--gm-radius-full);
  background: var(--gm-text-subtle);
}
.gt-regime-state-dot--primary {
  background: var(--gm-primary-control);
}
.gt-regime-state-dot--warning {
  background: var(--gm-warning);
}
.gt-regime-state-dot--danger {
  background: var(--gm-down);
}
.gt-regime-state-dot--info {
  background: var(--gm-info);
}
.gt-regime-state-value {
  margin-left: auto;
  font-weight: 700;
  color: var(--gm-text);
}
.gt-regime-note--footer {
  margin-top: var(--gm-space-3);
  padding-top: var(--gm-space-3);
  border-top: 1px solid var(--gm-border);
  font-size: var(--gm-text-caption);
}
@media (max-width: 440px) {
  .gt-regime-detail-top {
    flex-direction: column;
    align-items: stretch;
    gap: var(--gm-space-2);
  }
  .gt-regime-detail-dial {
    align-self: center;
  }
  .gt-regime-detail-score {
    font-size: var(--gm-text-h1);
  }
}
.gt-perf-compact-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-5);
}
.gt-perf-compact-metric {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-right: var(--gm-space-5);
  border-right: 1px solid var(--gm-border);
}
.gt-perf-compact-metric:last-child {
  border-right: none;
  padding-right: 0;
}
.gt-perf-compact-value {
  font-size: var(--gm-text-h3);
  font-weight: 700;
  letter-spacing: -0.01em;
}
.gt-perf-compact-chart {
  margin-top: var(--gm-space-4);
}
.gt-perf-detailed {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: var(--gm-space-5);
  align-items: stretch;
}
.gt-perf-detailed-stats {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-perf-detailed-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: var(--gm-space-3);
  border-bottom: 1px solid var(--gm-border);
}
.gt-perf-detailed-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.gt-perf-detailed-row-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--gm-space-2);
}
.gt-perf-detailed-value {
  font-size: var(--gm-text-h3);
  font-weight: 700;
  letter-spacing: -0.01em;
}
@media (max-width: 640px) {
  .gt-perf-detailed {
    grid-template-columns: 1fr;
  }
}
.gt-strategy-table-rate {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
}
.gt-strategy-table-rate .gt-progress {
  width: 96px;
}
.gt-strategy-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--gm-space-3);
}
.gt-strategy-cards-item {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
}
.gt-strategy-cards-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.gt-strategy-cards-name {
  font-weight: 600;
  font-size: var(--gm-text-body);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gt-history-compact-list {
  display: flex;
  flex-direction: column;
}
.gt-history-compact-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--gm-space-2) var(--gm-space-4);
  padding: var(--gm-space-3) var(--gm-space-4);
  border-bottom: 1px solid var(--gm-border);
  font-size: var(--gm-text-body);
}
.gt-history-compact-row:last-child {
  border-bottom: none;
}
.gt-history-compact-lead {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
}
.gt-history-compact-date {
  color: var(--gm-text-muted);
  font-size: var(--gm-text-small);
}
.gt-history-compact-spread {
  flex: 1;
  min-width: 120px;
  color: var(--gm-text-muted);
  font-size: var(--gm-text-small);
}
.gt-history-compact-spread span {
  color: var(--gm-text-subtle);
  margin: 0 2px;
}
.gt-history-compact-trail {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
  margin-left: auto;
}
.gt-donut--rings .gt-progress-circle-label {
  font-size: var(--gm-text-small);
  font-weight: 600;
}
.gt-donut--half {
  align-items: flex-start;
  overflow: hidden;
  max-width: 100%;
}
.gt-donut--half svg {
  transform: rotate(180deg);
}
.gt-donut--half .gt-progress-circle-label {
  left: 0;
  right: 0;
  bottom: 0;
  text-align: center;
}
.gt-positions-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--gm-space-3);
}
.gt-positions-card {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
}
.gt-positions-card-head {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
}
.gt-positions-card-qty {
  margin-left: auto;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-positions-card-pnl-row {
  display: flex;
  align-items: baseline;
  gap: var(--gm-space-2);
}
.gt-positions-card-pnl {
  font-size: var(--gm-text-h3);
  font-weight: 700;
  letter-spacing: -0.01em;
}
.gt-positions-card-spread {
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-positions-card-spread span {
  color: var(--gm-text-subtle);
  margin: 0 2px;
}
.gt-positions-card-target {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: auto;
}
.gt-positions-card-target-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
}
.gt-positions-card-target-label b {
  color: var(--gm-text);
  font-weight: 600;
}
.gt-history-group-row td {
  background: var(--gm-surface-2);
  font-weight: 600;
}
.gt-history-group-date {
  font-size: var(--gm-text-small);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gm-text-muted);
}
.gt-history-group-meta {
  margin-left: var(--gm-space-3);
  display: inline-flex;
  gap: var(--gm-space-2);
  font-size: var(--gm-text-small);
}
.gt-signal-table--dense .gt-table th,
.gt-signal-table--dense .gt-table td {
  padding: var(--gm-space-2) var(--gm-space-4);
  font-size: var(--gm-text-small);
}
.gt-signal-table-dense-ticker {
  display: inline-flex;
  align-items: center;
  gap: var(--gm-space-2);
}
.gt-signal-table-dense-range {
  color: var(--gm-text-muted);
}
.gt-signal-table-dense-range span {
  color: var(--gm-text-subtle);
  margin: 0 2px;
}
.gt-signal-table--striped .gt-table tbody tr:nth-child(even) {
  background: var(--gm-surface-2);
}
.gt-signal-table--striped .gt-table tbody tr:hover {
  background: var(--gm-surface-3);
}
.gt-signal-table-row td:first-child {
  position: relative;
}
.gt-signal-table-row td:first-child::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
}
.gt-signal-table-row--call td:first-child::before {
  background: var(--gm-up);
}
.gt-signal-table-row--put td:first-child::before {
  background: var(--gm-down);
}
.gt-pagination--compact {
  gap: var(--gm-space-2);
}
.gt-pagination-label {
  padding: 0 var(--gm-space-2);
  font-size: var(--gm-text-small);
  color: var(--gm-text-muted);
  font-variant-numeric: tabular-nums;
}
.gt-pagination-label b {
  color: var(--gm-text);
  font-weight: 600;
}
.gt-pagination--minimal {
  gap: 0;
  display: inline-flex;
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-md);
  overflow: hidden;
}
.gt-pagination--minimal .gt-page {
  height: 28px;
  min-width: 0;
  padding: 0 var(--gm-space-3);
  border-radius: 0;
  gap: 6px;
}
.gt-pagination--minimal .gt-page:first-child {
  border-right: 1px solid var(--gm-border);
}
.gt-pagination--minimal .gt-page:hover:not(:disabled) {
  background: var(--gm-surface-3);
}
.gt-alertcfg-condensed {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-3);
  margin-top: var(--gm-space-3);
}
.gt-alertcfg-condensed-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-3);
}
.gt-alertcfg-condensed-field {
  flex: 1 1 130px;
  min-width: 110px;
}
.gt-alertcfg-condensed-field--narrow {
  flex: 0 1 96px;
  min-width: 84px;
}
.gt-alertcfg-condensed-channels {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--gm-space-2) var(--gm-space-4);
  padding: var(--gm-space-3);
  border: 1px solid var(--gm-border);
  border-radius: var(--gm-radius-md);
  background: var(--gm-surface-2);
}
.gt-alertcfg-chip {
  gap: var(--gm-space-2);
}
.gt-ticker-bar--pill {
  overflow: visible;
  -webkit-mask-image: none;
  mask-image: none;
  border-block: none;
  background: transparent;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--gm-space-2);
}
.gt-ticker-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--gm-space-2);
  padding: var(--gm-space-2) var(--gm-space-3);
  border-radius: var(--gm-radius-full);
  border: 1px solid var(--gm-border);
  background: var(--gm-surface-2);
  font-size: var(--gm-text-small);
  white-space: nowrap;
}
.gt-ticker-pill--up {
  border-color: var(--gm-up-soft);
  background: var(--gm-up-soft);
}
.gt-ticker-pill--down {
  border-color: var(--gm-down-soft);
  background: var(--gm-down-soft);
}
.gt-ticker-pill-price {
  color: var(--gm-text-muted);
}
.gt-ticker-pill--up .gt-ticker-pill-change {
  color: var(--gm-up-ink);
  font-weight: 600;
}
.gt-ticker-pill--down .gt-ticker-pill-change {
  color: var(--gm-down-ink);
  font-weight: 600;
}
.gt-ticker-bar--dense {
  overflow: visible;
  -webkit-mask-image: none;
  mask-image: none;
  padding: var(--gm-space-2) var(--gm-space-4);
}
.gt-ticker-dense-track {
  display: flex;
  flex-wrap: wrap;
  row-gap: var(--gm-space-1);
}
.gt-ticker-dense-item {
  display: inline-flex;
  align-items: center;
  gap: var(--gm-space-1);
  padding-inline: var(--gm-space-3);
  border-right: 1px solid var(--gm-border);
  font-size: var(--gm-text-caption);
  white-space: nowrap;
}
.gt-ticker-dense-item:first-child {
  padding-inline-start: 0;
}
.gt-ticker-dense-item:last-child {
  border-right: none;
}
.gt-strategy-card--compact {
  display: flex;
  align-items: center;
  gap: var(--gm-space-3);
  padding: var(--gm-space-3) var(--gm-space-4);
}
.gt-strategy-icon--sm {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
}
.gt-strategy-card-compact-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}
.gt-strategy-card-compact-head {
  display: flex;
  align-items: center;
  gap: var(--gm-space-2);
  min-width: 0;
}
.gt-strategy-card-compact-head > strong {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gt-strategy-card-compact-head > .gt-badge {
  flex-shrink: 0;
}
.gt-strategy-card-compact-desc {
  margin: 0;
  color: var(--gm-text-muted);
  font-size: var(--gm-text-small);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gt-strategy-card-compact-stats {
  display: flex;
  gap: var(--gm-space-4);
  flex-shrink: 0;
}
.gt-strategy-stat--sm b {
  font-size: var(--gm-text-body);
}
.gt-strategy-stat--sm span {
  font-size: 10px;
}
.gt-strategy-card--featured {
  display: flex;
  flex-direction: column;
  gap: var(--gm-space-4);
  padding: var(--gm-space-6);
}
.gt-strategy-card-featured-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.gt-strategy-icon--lg {
  width: 56px;
  height: 56px;
  border-radius: var(--gm-radius-lg);
}
.gt-strategy-card-featured-name {
  font-size: var(--gm-text-h3);
  letter-spacing: -0.01em;
}
.gt-strategy-card-featured-stats {
  display: flex;
  gap: var(--gm-space-5);
  padding: var(--gm-space-3) var(--gm-space-4);
  border-radius: var(--gm-radius-md);
  background: var(--gm-surface-2);
  border: 1px solid var(--gm-border);
}
@media (max-width: 390px) {
  .gt-strategy-card-compact-desc {
    max-width: 120px;
  }
}


/* ============================================================
   GreenMinter additions: constructs GreenMint has no class for (setup card, alert rule, session panel),
   the symbol-with-name stack, table heading line, and the showcase's own demo labels and grids.
   ============================================================ */

/* Showcase furniture: GreenMint's `.demo-label` and grids, for the trading sections. */
.gt-sc-grid { display: grid; gap: var(--gm-space-4); grid-template-columns: repeat(auto-fit, minmax(min(300px, 100%), 1fr)); }
.gt-sc-grid > * { min-width: 0; }
.gt-sc-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); }
.gt-sc-grid--4 { grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); }
.gt-sc-grid--wide { grid-template-columns: repeat(auto-fit, minmax(min(420px, 100%), 1fr)); }
.gt-sc-stack { display: flex; flex-direction: column; gap: var(--gm-space-4); min-width: 0; }
.gt-sc-narrow { max-width: 640px; }
.gt-sc-pad { padding: var(--gm-space-4); }
.gt-sc-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gm-space-3); }

/* A symbol mark with its name stacked beneath: table cells, alert rules, lists. */
.gt-tk { display: inline-flex; flex-shrink: 0; align-items: center; gap: var(--gm-space-2); min-width: 0; }
.gt-tk__text { display: inline-flex; flex-direction: column; gap: 1px; min-width: 0; line-height: 1.25; }
.gt-tk__text small { font-size: var(--gm-text-caption); color: var(--gm-text-subtle); font-weight: 400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-id__name { font-size: var(--gm-text-caption); color: var(--gm-text-subtle); font-weight: 400; margin-left: 2px; }
.gt-id-line { display: inline-flex; align-items: center; gap: var(--gm-space-2); }
.gt-pnl--flat { color: var(--gm-text-muted); font-weight: 600; font-variant-numeric: tabular-nums; }
.gt-stat-delta--flat { color: var(--gm-text-muted); }
.gt-stat-delta-pill { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: var(--gm-radius-full); font-size: var(--gm-text-caption); font-weight: 600; font-variant-numeric: tabular-nums; }
.gt-stat-delta-pill--up { background: var(--gm-up-soft); color: var(--gm-up-ink); }
.gt-stat-delta-pill--down { background: var(--gm-down-soft); color: var(--gm-down-ink); }
.gt-stat-delta-pill--flat { background: var(--gm-surface-2); color: var(--gm-text-muted); }

/* One muted line with a leading icon ("last run", "expires"). */
.gt-meta-line { display: inline-flex; align-items: center; gap: var(--gm-space-1); white-space: nowrap; margin: 0; font-size: var(--gm-text-small); color: var(--gm-text-subtle); }
.gt-meta-line svg, .gt-meta-icon svg { width: 12px; height: 12px; }
.gt-meta-icon { display: inline-flex; vertical-align: -2px; margin-right: 4px; }

/* Table heading line (a title and a muted description above the table, inside its wrap). */
.gt-table-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--gm-space-2) var(--gm-space-4); padding: var(--gm-space-4) var(--gm-space-4) var(--gm-space-3); border-bottom: 1px solid var(--gm-border); background: var(--gm-surface); }
.gt-table-head__desc { font-size: var(--gm-text-small); color: var(--gm-text-subtle); }
.gt-table-empty { text-align: center; color: var(--gm-text-subtle); padding: var(--gm-space-6) var(--gm-space-4) !important; }
.gt-table-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--gm-space-3); }
.gt-page--gap { pointer-events: none; }
a.gt-page { text-decoration: none; }

/* Setup card: identity, tags, compact ladder, expiry. */
.gt-setup-card { display: flex; flex-direction: column; gap: var(--gm-space-4); padding: var(--gm-space-5); }
.gt-setup-card__head { display: flex; align-items: center; gap: var(--gm-space-3); }
.gt-setup-card__id { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gt-setup-card__id small { font-size: var(--gm-text-small); color: var(--gm-text-subtle); }
.gt-setup-card__state { margin-left: auto; }
.gt-setup-card__tags { display: flex; flex-wrap: wrap; align-items: center; gap: var(--gm-space-2); }
.gt-setup-card__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--gm-space-3); padding-top: var(--gm-space-3); border-top: 1px solid var(--gm-border); font-size: var(--gm-text-small); color: var(--gm-text-muted); }
.gt-setup-card__foot b { color: var(--gm-text); font-weight: 600; }

/* Signal detail head and the strategy rows. */
.gt-signal-detail-head { display: flex; align-items: flex-start; gap: var(--gm-space-3); flex-wrap: wrap; }
.gt-strategy-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--gm-space-2) var(--gm-space-3); padding-top: var(--gm-space-3); border-top: 1px solid var(--gm-border); }
.gt-strategy-row { display: grid; grid-template-columns: 140px 1fr 48px auto; gap: var(--gm-space-3); align-items: center; }
.gt-strategy-row__name { font-weight: 600; font-size: var(--gm-text-body); }
@media (max-width: 520px) { .gt-strategy-row { grid-template-columns: 1fr auto; } .gt-strategy-row .gt-progress { grid-column: 1 / -1; order: 3; } }

/* Alert rule: GreenMint's alert-configuration card, read-only: fields are boxes, the message is the verbatim payload. */
.gt-alertrule { display: flex; flex-direction: column; gap: var(--gm-space-4); }
.gt-alertrule__head { display: flex; align-items: center; justify-content: space-between; gap: var(--gm-space-3); }
.gt-alertrule__title h3 { margin: 0; font-size: var(--gm-text-body-lg); font-weight: 700; letter-spacing: -0.01em; color: var(--gm-text); }
.gt-alertrule__title p { margin: 2px 0 0; font-size: var(--gm-text-small); color: var(--gm-text-subtle); }
.gt-alertrule__field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gt-alertrule__label { font-size: var(--gm-text-small); font-weight: 600; color: var(--gm-text-muted); }
.gt-alertrule__control { display: flex; align-items: center; gap: var(--gm-space-3); min-height: 40px; padding: 8px 12px; border: 1px solid var(--gm-border); border-radius: var(--gm-radius-md); background: var(--gm-surface-2); font-size: var(--gm-text-body); color: var(--gm-text); }
.gt-trade-code { margin: 0; padding: var(--gm-space-3) var(--gm-space-4); overflow-x: auto; border: 1px solid var(--gm-border); border-radius: var(--gm-radius-md); background: var(--gm-surface-2); font-family: var(--gm-font-mono); font-size: var(--gm-text-small); line-height: 1.6; color: var(--gm-text); white-space: pre-wrap; overflow-wrap: break-word; }
/* The three fact cells share a row while their figures fit and wrap whole cells, never a figure: each
   cell grows from its own content and a figure stays on one line. */
.gt-alertrule__facts { display: flex; flex-wrap: wrap; gap: var(--gm-space-2); }
.gt-alertrule__facts > div { flex: 1 1 auto; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: var(--gm-space-3); border: 1px solid var(--gm-border); border-radius: var(--gm-radius-md); background: var(--gm-surface-2); }
.gt-alertrule__facts .gt-alertrule__label { font-size: var(--gm-text-caption); font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gm-text-subtle); white-space: nowrap; }
.gt-alertrule__facts b { font-size: var(--gm-text-body); font-weight: 700; color: var(--gm-text); white-space: nowrap; }
/* A narrow rule card (a two-up column) keeps the three facts on one row: 8px cell padding, a 6px gap
   and the 10px meta-label size (0.06em, STYLE_SPEC 2.3 meta labels). Narrower still, cells wrap whole. */
.gt-alertrule { container: gt-rule / inline-size; }
@container gt-rule (max-width: 360px) {
  .gt-alertrule__facts { gap: 6px; }
  .gt-alertrule__facts > div { padding-inline: 8px; }
  .gt-alertrule__facts .gt-alertrule__label { font-size: 10px; letter-spacing: 0.06em; }
}
.gt-alertrule__mono { font-family: var(--gm-font-mono); font-size: var(--gm-text-small) !important; }
.gt-alertrule__foot { display: flex; gap: var(--gm-space-2); }

/* Market session or feed chip: the badge plus a muted detail. */
.gm-market-status { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--gm-space-2); }
.gm-market-status__detail { font-size: var(--gm-text-small); color: var(--gm-text-muted); }
.gm-market-status [data-live] .lm-badge__dot { animation: gt-live-pulse 1.6s ease-in-out infinite; }
[data-live="true"] .lm-badge__dot { animation: gt-live-pulse 1.6s ease-in-out infinite; }
@keyframes gt-live-pulse { 50% { opacity: 0.35; } }
@media (prefers-reduced-motion: reduce) { .gm-market-status [data-live] .lm-badge__dot, [data-live="true"] .lm-badge__dot { animation: none; } }
.gt-sc-chipcell { padding: var(--gm-space-4); }


/* Cards in a narrow column: the top row and the level row wrap on a 4 px row gap instead of the 24 px column gap. */
.gt-trade-alert-top { row-gap: var(--gm-space-1); }
/* The top row gives way in order: the name truncates first (it grows only up to its own width, from a
   zero basis, so it never forces a wrap), then the state badge and the time wrap together onto a second
   line, badge left and time right. The symbol never shrinks. */
.gt-trade-alert-top > .gt-id { flex: none; }
.gt-trade-alert-top > .gt-trade-alert-name { flex: 1 1 0; min-width: 0; max-width: max-content; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-trade-alert-end { display: flex; flex: 1 0 auto; align-items: center; gap: var(--gm-space-3); }
.gt-trade-alert-end > .gt-trade-alert-time { white-space: nowrap; }
.gt-trade-alert-levels { row-gap: var(--gm-space-1); }
/* Tables that carry many columns (positions, history) take 12 px cell padding so they fit a main column without scrolling. */
.gt-table--tight th, .gt-table--tight td { padding-inline: 12px; }
.gt-table__note { color: var(--gm-text-muted); }
/* A cell holding a badge and a short line under it (positions_table's per-row note). */
.gt-table__stack { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.gt-table__sub { font-size: var(--gm-text-caption); color: var(--gm-text-subtle); }
/* A signal card in a half-width or narrow column drops the company name, which the symbol already carries, so the state and the time stay on the top row. */
.gt-trade-alert:not(.gt-trade-alert--brief):not(.gt-trade-alert--compact):not(.gt-trade-alert--notification) { container: gt-alert / inline-size; }
@container gt-alert (max-width: 380px) { .gt-trade-alert-name { display: none; } }

/* Round 3 (2026-10-23). In a narrow card the state badge and the time always take their own second
   line (badge left, time right), so every card in a row reads alike instead of one long state
   (CONFIRMED) wrapping alone while its shorter siblings stay on one line. */
@container gt-alert (max-width: 380px) {
  .gt-trade-alert-end { flex: 1 0 100%; }
}
/* Confluence score in a trade alert's top row and compact row: GreenMint's 0.952rem. */
.gt-trade-alert-top > .gt-confidence, .gt-trade-alert--compact > .gt-confidence { font-size: 0.9525rem; }
.gt-trade-alert--expanded .gt-trade-alert-top .gt-ticker { font-size: var(--gm-text-body-lg); }
/* Strategy card, narrow (carousel): the name and version on one line, the state badge under them; two
   stats whose caps labels never wrap. */
.gt-strategy-head--narrow { display: flex; align-items: flex-start; gap: var(--gm-space-3); }
.gt-strategy-head__id { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.gt-strategy-head__name { display: flex; align-items: baseline; gap: var(--gm-space-2); min-width: 0; }
.gt-strategy-head__name strong { font-size: var(--gm-text-body-lg); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gt-strategy-head__ver { font-size: var(--gm-text-small); color: var(--gm-text-subtle); }
.gt-strategy-stat span { white-space: nowrap; }
