:root {
  --stock-line: #557d9b;
  --stock-surface: #f7fbff;
  --stock-text: #23495e;
  --stock-up: #a12d2d;
  --stock-down: #2459a1;
  --stock-notice-line: #946700;
  --stock-notice-text: #624a10;
  --stock-notice: #fff7dc;
  --stock-buy-line: #a66a6a;
  --stock-buy: #fff0f0;
  --stock-buy-text: #812020;
  --stock-sell-line: #587bb4;
  --stock-sell: #edf4ff;
  --stock-sell-text: #17467e;
  --stock-hover: #dfedee;
  --stock-active: #c9dfe2;
  --stock-disabled: #edf0f1;
  --stock-muted: #52616b;
}
:root[data-qr-theme="dark"] {
  --stock-line: #608caa;
  --stock-surface: #122a36;
  --stock-text: #d7e5ec;
  --stock-up: #ffaeae;
  --stock-down: #a8c8ff;
  --stock-notice-line: #f0c96e;
  --stock-notice-text: #fff3c8;
  --stock-notice: #352b12;
  --stock-buy-line: #b78484;
  --stock-buy: #512629;
  --stock-buy-text: #ffd8d8;
  --stock-sell-line: #88a5d4;
  --stock-sell: #253b61;
  --stock-sell-text: #dce9ff;
  --stock-hover: #284551;
  --stock-active: #345566;
  --stock-disabled: #293e48;
  --stock-muted: #b4c9d2;
}
.stock-market { border-color: var(--line); }
.stock-market .section-heading { flex-wrap: wrap; align-items: flex-start; }
.stock-market .section-heading > div { min-width: 0; }
.stock-market .section-heading .badge { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
.stock-trade-date {
  margin: .4rem 0 0;
  color: var(--stock-text);
  font-size: .8rem;
  font-weight: 800;
}
.simulation-disclosure {
  margin: .55rem 0 .25rem;
  border-left: 4px solid var(--stock-notice-line);
  border-radius: 6px;
  padding: .58rem .68rem;
  color: var(--stock-notice-text);
  background: var(--stock-notice);
  font-size: .82rem;
  line-height: 1.48;
}
.stock-list {
  display: grid;
  grid-template-columns: var(--qr-pair-columns);
  gap: .75rem;
  margin-top: 1rem;
}
.stock-list > .empty { grid-column: 1 / -1; }
.stock-card {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  align-items: start;
  border-color: var(--stock-line);
}
.stock-card > div { min-width: 0; }
.stock-market .card .stock-quote {
  display: grid;
  gap: .2rem;
  margin: .85rem 0 .7rem;
  color: var(--stock-text);
  line-height: 1.4;
  font-variant-numeric: tabular-nums;
}
.stock-price { color: var(--stock-text); font-size: 1.35rem; font-weight: 850; }
.stock-change { font-size: .85rem; font-weight: 750; }
.card .stock-quote.up { color: var(--stock-up); }
.card .stock-quote.down { color: var(--stock-down); }
.stock-market .card .stock-owned { color: var(--stock-text); font-size: .82rem; line-height: 1.5; }
.stock-market .card small.stock-owned { padding-top: .6rem; border-top: 1px solid var(--stock-line); }
.stock-controls {
  display: grid;
  min-width: 0;
  gap: .6rem;
  padding-top: .5rem;
}
.stock-controls label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .42rem;
  align-items: center;
  color: var(--muted);
  font-size: .85rem;
}
.stock-controls input {
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: .48rem .55rem;
  font-size: 1rem;
  text-align: right;
}
.stock-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .38rem;
}
.stock-actions button {
  min-width: 0;
  min-height: 44px;
  padding-inline: .25rem;
}
.stock-buy { border-color: var(--stock-buy-line); background: var(--stock-buy); }
.stock-sell { border-color: var(--stock-sell-line); background: var(--stock-sell); }

.stock-market .stock-card { display: grid; gap: .6rem; padding: .85rem; border: 1px solid var(--line); border-radius: 15px; min-width: 0; }
.stock-market .stock-card h3 { margin: 0 0 .25rem; font-size: 1rem; line-height: 1.45; word-break: keep-all; overflow-wrap: anywhere; }
.stock-market .stock-card p { overflow-wrap: anywhere; }
/* The legacy stock-market-light class remains a compatibility hook, not a theme choice. */
.stock-market .stock-card { background: var(--stock-surface); color: var(--stock-text); }
.stock-market .stock-trade-date, .stock-market .stock-owned, .stock-market .stock-quote { color: var(--stock-text); }
.stock-market .stock-quote.up { color: var(--stock-up); }
.stock-market .stock-quote.down { color: var(--stock-down); }
.stock-market .stock-controls label { color: var(--stock-text); }
.stock-market .stock-buy { background: var(--stock-buy); color: var(--stock-buy-text); }
.stock-market .stock-sell { background: var(--stock-sell); color: var(--stock-sell-text); }
.stock-market .stock-actions button:hover, .stock-market .stock-actions button:focus-visible { background: var(--stock-hover); color: var(--stock-text); }
.stock-market .stock-actions button:active { background: var(--stock-active); color: var(--stock-text); }
.stock-market .stock-actions button:disabled { background: var(--stock-disabled); color: var(--stock-muted); opacity: 1; }
