:root {
  color-scheme: dark;
  --bg: #070d16;
  --surface: #0e1724;
  --panel: #101b2a;
  --border: #2a3a50;
  --text: #f1f5fb;
  --soft: #c2cede;
  --muted: #93a3b8;
  --dim: #65758b;
  --blue: #246bfe;
  --green: #55d991;
  --red: #ef5b6c;
  --shadow: 0 14px 36px rgba(0, 0, 0, .24);
}

* { box-sizing: border-box; }
.te-icon {
  display: inline-block;
  width: 1.1rem;
  height: 1.1rem;
  flex: 0 0 auto;
  background-color: currentColor;
  vertical-align: -.18em;
  -webkit-mask: var(--te-icon-url) center / contain no-repeat;
  mask: var(--te-icon-url) center / contain no-repeat;
}
.te-icon-label { display: inline-flex; align-items: center; gap: .5rem; }
.te-icon-ai-coach { --te-icon-url: url('/web/icons/ai-coach.svg'); }
.te-icon-confirmation { --te-icon-url: url('/web/icons/confirmation.svg'); }
.te-icon-confluence { --te-icon-url: url('/web/icons/confluence.svg'); }
.te-icon-evidence { --te-icon-url: url('/web/icons/evidence.svg'); }
.te-icon-fibonacci { --te-icon-url: url('/web/icons/fibonacci.svg'); }
.te-icon-heatmap { --te-icon-url: url('/web/icons/heatmap.svg'); }
.te-icon-invalidation { --te-icon-url: url('/web/icons/invalidation.svg'); }
.te-icon-market-structure { --te-icon-url: url('/web/icons/market-structure.svg'); }
.te-icon-momentum { --te-icon-url: url('/web/icons/momentum.svg'); }
.te-icon-resistance { --te-icon-url: url('/web/icons/resistance.svg'); }
.te-icon-risk { --te-icon-url: url('/web/icons/risk.svg'); }
.te-icon-support { --te-icon-url: url('/web/icons/support.svg'); }
.te-icon-trend { --te-icon-url: url('/web/icons/trend.svg'); }
.te-icon-volume { --te-icon-url: url('/web/icons/volume.svg'); }
.te-icon-watch-next { --te-icon-url: url('/web/icons/watch-next.svg'); }
html { background: var(--bg); scrollbar-color: #344258 var(--bg); }
body {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  color: var(--text);
  background: radial-gradient(circle at 75% -20%, rgba(36,107,254,.11), transparent 38rem), linear-gradient(180deg, #08101b, var(--bg) 52%, #060b12);
  font-family: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

.ambient {
  position: fixed;
  z-index: 0;
  width: 24rem;
  height: 24rem;
  border-radius: 50%;
  pointer-events: none;
  filter: blur(100px);
  opacity: .07;
}
.ambient-one { top: 10%; right: -12rem; background: var(--blue); }
.ambient-two { bottom: -14rem; left: -10rem; background: var(--green); }
.app-shell { position: relative; z-index: 1; width: min(1440px, 100%); margin: auto; padding: 28px clamp(20px, 3vw, 48px) 24px; }

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 72px;
  margin-bottom: 22px;
  padding: 12px 14px 12px 16px;
  background: rgba(17,29,44,.82);
  border: 1px solid rgba(71,95,126,.55);
  border-radius: 12px;
  box-shadow: 0 10px 32px rgba(0,0,0,.22), inset 0 1px rgba(255,255,255,.025);
  backdrop-filter: blur(16px);
}
.brand, .topbar-actions, .market-chip, .section-meta, .section-meta span, .list-card-header, .list-card-header > div { display: flex; align-items: center; }
.brand { gap: 13px; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  color: #66819f;
  background: linear-gradient(145deg, #16273d, #0c1624);
  border: 1px solid #31455f;
  border-radius: 11px;
  box-shadow: inset 0 1px rgba(255,255,255,.05);
}
.brand-mark svg { width: 25px; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.5; }
.brand-mark .brand-trend { stroke: var(--blue); stroke-width: 2; }
.brand-identity { display: flex; align-items: baseline; gap: 8px; }
.eyebrow, .section-kicker { margin: 0 0 3px; color: #7790ae; font-size: .68rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.brand-domain {
  color: #aeb4bc;
  font-size: .76rem;
  font-weight: 450;
  letter-spacing: .01em;
  line-height: 1;
  text-decoration: none;
  transition: color .15s ease;
}
.brand-domain:hover { color: #d7dbe0; }
.brand-domain:focus-visible { outline: 1px solid #8793a1; outline-offset: 3px; border-radius: 2px; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 0; font-size: clamp(1.15rem,2vw,1.45rem); font-weight: 650; letter-spacing: -.025em; }
.topbar-actions { gap: 10px; }
.market-chip {
  min-height: 42px;
  gap: 9px;
  padding: 0 13px;
  color: var(--muted);
  background: rgba(8,16,27,.56);
  border: 1px solid rgba(96,125,163,.2);
  border-radius: 9px;
  font-size: .78rem;
}
.market-chip-label { color: var(--dim); }
.market-chip strong { color: var(--text); font-size: .83rem; }
.market-divider { width: 1px; height: 15px; background: var(--border); }
.status-pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 0 14px;
  color: #b1bdcd;
  background: #152032;
  border: 1px solid #33435a;
  border-radius: 9px;
  font-size: .78rem;
  font-weight: 700;
  transition: .18s ease;
}
.status-dot { width: 7px; height: 7px; background: #8290a3; border-radius: 50%; }
.status-pill.is-connected { color: #baf4d2; background: #10271e; border-color: #245c3b; box-shadow: 0 0 22px rgba(76,175,80,.15), inset 0 0 14px rgba(76,175,80,.045); }
.status-pill.is-connected .status-dot { background: var(--green); box-shadow: 0 0 0 4px rgba(85,217,145,.1), 0 0 12px rgba(85,217,145,.78); animation: pulse 2.4s ease-in-out infinite; }
.status-pill.is-disconnected { color: #ffb4bd; background: #2a151d; border-color: #68313d; }
.status-pill.is-disconnected .status-dot { background: var(--red); box-shadow: 0 0 10px rgba(239,91,108,.55); }
@keyframes pulse { 50% { opacity: .66; } }

.chart-dock-layout {
  display: grid;
  grid-template-columns: minmax(0, 18fr) minmax(240px, 7fr);
  align-items: stretch;
  gap: 10px;
  margin-bottom: 18px;
}
.chart-card { min-width: 0; margin: 0; padding: 0; overflow: hidden; }
.chart-card:hover { transform: none; }
.market-dock {
  display: grid;
  grid-template-rows: repeat(6, minmax(0, 1fr));
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #0d141b;
  border: 1px solid #27313b;
  border-radius: 8px;
}
.dock-card {
  display: flex;
  min-width: 0;
  min-height: 0;
  padding: 8px 11px;
  flex-direction: column;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(61, 73, 86, .58);
  border-radius: 0;
}
.dock-card:last-child { border-bottom: 0; }
.dock-card-title {
  margin: 0;
  color: #9da8b4;
  font-size: .66rem;
  font-weight: 600;
  letter-spacing: .045em;
}
.dock-card-content { min-height: 0; flex: 1; }
.dock-card-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.volume-dock-value {
  overflow: hidden;
  color: #aeb8c4;
  font-size: .65rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.volume-dock .dock-card-content { position: relative; margin-top: 4px; overflow: hidden; }
.volume-dock-chart { position: absolute; inset: 0; }
.volume-dock-chart[hidden] { display: none; }
.volume-dock-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #687583;
  font-size: .62rem;
}
.volume-dock-empty[hidden] { display: none; }
.macd-dock .dock-card-content { position: relative; margin-top: 4px; overflow: hidden; }
.macd-dock-chart { position: absolute; inset: 0; }
.macd-dock-chart[hidden] { display: none; }
.macd-dock-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #687583;
  font-size: .62rem;
}
.macd-dock-empty[hidden] { display: none; }
.rsi-dock-value {
  color: #aeb8c4;
  font-size: .65rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.rsi-dock .dock-card-content { position: relative; margin-top: 4px; overflow: hidden; }
.rsi-dock-chart { position: absolute; inset: 0; }
.rsi-dock-chart[hidden] { display: none; }
.rsi-dock-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #687583;
  font-size: .62rem;
}
.rsi-dock-empty[hidden] { display: none; }
.stoch-rsi-dock-value {
  color: #aeb8c4;
  font-size: .61rem;
  font-variant-numeric: tabular-nums;
  line-height: 1;
  white-space: nowrap;
}
.stoch-rsi-dock .dock-card-content { position: relative; margin-top: 4px; overflow: hidden; }
.stoch-rsi-dock-chart { position: absolute; inset: 0; }
.stoch-rsi-dock-chart[hidden] { display: none; }
.stoch-rsi-dock-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #687583;
  font-size: .62rem;
}
.stoch-rsi-dock-empty[hidden] { display: none; }
.chart-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 70px; padding: 13px 16px 12px 20px; border-bottom: 1px solid rgba(96,125,163,.18); }
.chart-title-row { display: flex; align-items: center; gap: 10px; }
.chart-title-row h2 { margin: 0; font-size: 1.05rem; font-weight: 650; }
.chart-market { padding: 3px 6px; color: #9eb1c8; background: rgba(76,98,127,.13); border: 1px solid rgba(96,125,163,.16); border-radius: 5px; font-size: .64rem; font-weight: 700; }
.chart-actions, .chart-legend, .chart-legend span { display: flex; align-items: center; }
.chart-actions { gap: 17px; }
.timeframe-controls { display: flex; align-items: center; gap: 3px; padding: 3px; background: #0c1219; border: 1px solid #29333e; border-radius: 6px; }
.chart-view-controls { display: flex; align-items: center; gap: 7px; min-width: 0; }
.indicator-view-toggle { height: 35px; padding: 0 10px; color: #9aa7b7; background: #0c1219; border: 1px solid #29333e; border-radius: 6px; font: inherit; font-size: .67rem; font-weight: 650; white-space: nowrap; cursor: pointer; }
.indicator-view-toggle:hover { color: #d1d7de; background: #18212b; }
.indicator-view-toggle:focus-visible { outline: 2px solid #778391; outline-offset: 1px; }
.timeframe-button { min-width: 34px; height: 27px; padding: 0 8px; color: #84909d; background: transparent; border: 0; border-radius: 4px; font: inherit; font-size: .68rem; font-weight: 650; cursor: pointer; }
.timeframe-button:hover { color: #d1d7de; background: #18212b; }
.timeframe-button.is-active { color: #f2f4f6; background: #35404c; box-shadow: inset 0 0 0 1px #485461; }
.timeframe-button:focus-visible { outline: 2px solid #778391; outline-offset: 1px; }
.chart-legend { flex-wrap: wrap; justify-content: flex-end; gap: 7px 12px; color: #718198; font-size: .63rem; }
.chart-legend span { gap: 5px; white-space: nowrap; }
.legend-line { width: 13px; height: 2px; border-radius: 2px; background: #72839a; }
.ema20-line { background: #2962ff; }
.ema50-line { background: #ffd54f; }
.ema200-line { height: 3px; background: #ab47bc; }
.support-line { background: #35c978; }
.resistance-line { background: #ef5b6c; }
.fib-line { background: #ffc107; }
.reset-chart { min-height: 34px; padding: 0 11px; color: #aebdd0; background: #142237; border: 1px solid #2c3e56; border-radius: 7px; font-size: .7rem; font-weight: 650; cursor: pointer; transition: .15s ease; white-space: nowrap; }
.reset-chart:hover { color: var(--text); background: #1b304b; border-color: #48617e; }
.reset-chart:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.capture-chart { min-height: 34px; padding: 0 10px; color: #aebdd0; background: #111b29; border: 1px solid #2c3e56; border-radius: 7px; font: inherit; font-size: .7rem; font-weight: 650; cursor: pointer; white-space: nowrap; }
.capture-chart:hover { color: var(--text); background: #182638; border-color: #48617e; }
.capture-chart:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.capture-chart:disabled { opacity: .55; cursor: wait; }
.capture-status { min-width: 0; color: #8fbda2; font-size: .66rem; white-space: nowrap; }
.chart-wrap { position: relative; height: clamp(390px, 52vw, 610px); background: #0b1420; }
#market-chart { width: 100%; height: 100%; }
.manual-pattern-controls { position: relative; display: flex; align-items: center; gap: 6px; }
.calculate-pattern, .delete-manual-pattern { border: 1px solid rgba(126,153,190,.28); background: rgba(15,27,43,.72); color: var(--text); border-radius: 6px; padding: 6px 9px; font: inherit; font-size: .78rem; cursor: pointer; }
.saved-patterns-toggle { border: 1px solid rgba(126,153,190,.22); background: rgba(15,27,43,.58); color: #aebdcd; border-radius: 6px; padding: 6px 9px; font: inherit; font-size: .72rem; cursor: pointer; }
.calculate-pattern.is-selecting { border-color: rgba(89,180,219,.62); color: #bdeaff; }
.delete-manual-pattern { color: #c6d0dc; }
.manual-pattern-picker { position: absolute; right: 0; top: 34px; z-index: 45; min-width: 126px; padding: 6px; border: 1px solid var(--border); border-radius: 7px; background: var(--panel); box-shadow: 0 8px 22px rgba(2,8,23,.55); }
.manual-pattern-picker button { display: block; width: 100%; border: 0; border-radius: 5px; padding: 7px 8px; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.manual-pattern-picker button:hover { background: rgba(89,180,219,.10); }
.manual-pattern-status { max-width: 190px; color: var(--dim); font-size: .72rem; line-height: 1.2; }
.manual-pattern-info { position: absolute; z-index: 4; left: 12px; top: 12px; width: 218px; padding: 10px 11px; border: 1px solid rgba(112,145,184,.22); border-radius: 8px; background: rgba(10,20,33,.84); color: var(--text); backdrop-filter: blur(4px); }
.manual-pattern-info-title { margin-bottom: 7px; color: #dce8f5; font-size: .78rem; font-weight: 650; }
.manual-pattern-info-title span { float: right; color: #8495a8; font-size: .57rem; letter-spacing: .08em; }
.manual-pattern-info dl { display: grid; gap: 3px; margin: 0; }
.manual-pattern-info dl div { display: flex; justify-content: space-between; gap: 10px; }
.manual-pattern-info dt, .manual-pattern-info dd { margin: 0; font-size: .7rem; }
.manual-pattern-info dt { color: var(--dim); }
.manual-pattern-info dd { color: #c9d8e8; font-variant-numeric: tabular-nums; }
.manual-pattern-scenarios { display: grid; gap: 2px; margin-top: 8px; padding-top: 7px; border-top: 1px solid rgba(112,145,184,.16); font-size: .67rem; }
.manual-pattern-scenarios span { color: var(--dim); }
.manual-pattern-scenarios b { color: #bdd4e8; font-weight: 550; }
.manual-pattern-scenarios .manual-pattern-section-title { margin-bottom: 3px; font-size: .59rem; letter-spacing: .08em; text-transform: uppercase; }
.manual-pattern-scenarios > div { display: grid; grid-template-columns: 14px 1fr 1fr; gap: 5px; align-items: center; padding: 3px 4px; border-radius: 4px; background: rgba(255,255,255,.018); }
.manual-pattern-scenarios > div > strong { color: #8fc5d8; font-size: .75rem; }
.manual-pattern-scenarios > div span { display: grid; gap: 1px; font-size: .58rem; }
.manual-pattern-scenarios > div b { font-size: .65rem; font-variant-numeric: tabular-nums; }
.manual-pattern-scenarios > small { margin-top: 2px; color: #65778a; font-size: .55rem; }
.manual-pattern-node-details { position: absolute; z-index: 5; width: 218px; max-height: 210px; overflow: auto; padding: 9px; border: 1px solid rgba(126,177,201,.30); border-radius: 7px; background: rgba(8,18,30,.96); box-shadow: 0 8px 22px rgba(0,0,0,.34); color: #b9c9d8; pointer-events: auto; }
.manual-pattern-node-details[hidden] { display: none; }
.manual-pattern-node-details header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.manual-pattern-node-details header strong { color: #d7e5ef; font-size: .69rem; }
.manual-pattern-node-details header button { border: 0; background: transparent; color: #8294a7; cursor: pointer; }
.manual-pattern-node-details dl { display: grid; grid-template-columns: 1fr auto; gap: 3px 8px; margin: 0; font-size: .61rem; }
.manual-pattern-node-details dt { color: #76889c; }
.manual-pattern-node-details dd { margin: 0; color: #becddb; font-variant-numeric: tabular-nums; text-align: right; }
.manual-pattern-node-levels { display: grid; gap: 3px; margin-top: 7px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,.07); }
.manual-pattern-node-levels div { display: flex; justify-content: space-between; gap: 8px; color: #91a3b5; font-size: .59rem; }
.manual-breakout-details { position: absolute; z-index: 5; width: 224px; max-height: 240px; overflow: auto; padding: 9px 10px; border: 1px solid rgba(126,177,201,.30); border-radius: 7px; background: rgba(8,18,30,.96); box-shadow: 0 8px 22px rgba(0,0,0,.34); color: #b9c9d8; pointer-events: auto; }
.manual-breakout-details[hidden] { display: none; }
.manual-breakout-details header { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.manual-breakout-details header strong { color: #d7e5ef; font-size: .69rem; }
.manual-breakout-details header button { border: 0; background: transparent; color: #8294a7; cursor: pointer; }
.manual-breakout-details dl { display: grid; grid-template-columns: 1fr auto; gap: 3px 8px; margin: 0; font-size: .61rem; }
.manual-breakout-details dt { color: #76889c; }
.manual-breakout-details dd { margin: 0; color: #becddb; font-variant-numeric: tabular-nums; text-align: right; }
.manual-breakout-details h4 { margin: 8px 0 5px; padding-top: 6px; border-top: 1px solid rgba(255,255,255,.07); color: #91a3b5; font-size: .59rem; font-weight: 600; }
.manual-breakout-levels { display: grid; gap: 3px; }
.manual-breakout-levels div { display: flex; justify-content: space-between; gap: 8px; color: #91a3b5; font-size: .59rem; }
.manual-breakout-levels strong { color: #becddb; font-variant-numeric: tabular-nums; font-weight: 500; }
.manual-breakout-levels p { margin: 0; color: #65778a; font-size: .59rem; }
.manual-pattern-display { display: flex; gap: 10px; margin: 8px 0 0; padding: 7px 0 0; border: 0; border-top: 1px solid rgba(112,145,184,.16); }
.manual-pattern-display legend { float: left; width: 100%; margin: 0 0 5px; padding: 0; color: var(--dim); font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.manual-pattern-display label { display: inline-flex; align-items: center; gap: 4px; color: #aebdcd; font-size: .65rem; cursor: pointer; }
.manual-pattern-display input { margin: 0; accent-color: #67b1cc; }
.manual-pattern-save-actions { display: flex; gap: 6px; margin-top: 8px; }
.manual-pattern-save-actions button { flex: 1; padding: 5px 6px; border: 1px solid rgba(103,177,204,.25); border-radius: 5px; background: rgba(31,71,91,.34); color: #c6d9e5; font: inherit; font-size: .65rem; cursor: pointer; }
.manual-pattern-save-actions button:disabled { opacity: .55; cursor: default; }
.saved-patterns-library { position: absolute; z-index: 5; left: 12px; top: 12px; width: 246px; max-height: calc(100% - 24px); overflow: auto; padding: 10px; border: 1px solid rgba(112,145,184,.24); border-radius: 8px; background: rgba(8,17,29,.94); backdrop-filter: blur(5px); }
.saved-patterns-library header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; color: #dce8f5; font-size: .78rem; }
.saved-patterns-library header button { border: 0; background: transparent; color: #8fa0b3; cursor: pointer; }
.saved-pattern-card { display: grid; grid-template-columns: 58px 1fr; gap: 8px; margin-top: 7px; padding: 8px; border: 1px solid rgba(112,145,184,.15); border-radius: 6px; background: rgba(255,255,255,.025); }
.saved-pattern-card svg { width: 58px; height: 46px; color: #67b1cc; }
.saved-pattern-card-body { min-width: 0; color: #b9c8d7; font-size: .65rem; line-height: 1.4; }
.saved-pattern-card-body strong { display: block; color: #d2dfeb; }
.saved-pattern-card-actions { display: flex; gap: 5px; margin-top: 5px; }
.saved-pattern-card-actions button { border: 1px solid rgba(112,145,184,.18); border-radius: 4px; background: rgba(23,43,62,.65); color: #adbdcc; font: inherit; font-size: .61rem; cursor: pointer; }
.saved-pattern-card-actions .is-delete { color: #d59aa2; }
.saved-patterns-library > p { margin: 8px 0 0; color: var(--dim); font-size: .67rem; }
.pattern-path-tooltip { position: absolute; z-index: 6; max-width: 220px; padding: 7px 8px; border: 1px solid rgba(112,145,184,.24); border-radius: 6px; background: rgba(8,17,29,.94); color: #c9d8e8; font-size: .66rem; line-height: 1.45; pointer-events: none; white-space: pre-line; }
.chart-wrap.is-manual-pattern-selecting #market-chart { cursor: crosshair; }
.chart-wrap.is-manual-pattern-handle-hovered #market-chart { cursor: grab; }
.chart-wrap.is-manual-pattern-handle-dragging #market-chart { cursor: grabbing; }
.chart-wrap.is-manual-pattern-pin-hovered #market-chart { cursor: pointer; }
.chart-loading { position: absolute; z-index: 5; inset: 0; display: flex; align-items: center; justify-content: center; gap: 9px; color: #8595aa; background: rgba(11,20,32,.92); font-size: .76rem; transition: opacity .18s ease, visibility .18s ease; }
.chart-loading span { width: 8px; height: 8px; background: var(--blue); border-radius: 50%; box-shadow: 0 0 12px rgba(36,107,254,.8); animation: pulse 1.2s ease-in-out infinite; }
.chart-loading.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.chart-loading.is-error { color: #f6a7b0; }
.chart-loading.is-error span { background: var(--red); box-shadow: 0 0 12px rgba(239,91,108,.6); animation: none; }

.hero-row { display: grid; grid-template-columns: minmax(260px,1.45fr) repeat(2,minmax(230px,1fr)); gap: 14px; margin-bottom: 34px; }
.card {
  position: relative;
  min-width: 0;
  overflow: hidden;
  background: linear-gradient(145deg, rgba(17,29,45,.97), rgba(13,23,36,.97));
  border: 1px solid rgba(96,125,163,.2);
  border-radius: 14px;
  box-shadow: var(--shadow), inset 0 1px rgba(255,255,255,.025);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.card::after { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(120deg,rgba(255,255,255,.025),transparent 35%); pointer-events: none; content: ""; }
@media (hover:hover) { .card:hover { transform: translateY(-2px); border-color: rgba(76,102,137,.55); box-shadow: 0 18px 42px rgba(0,0,0,.29), inset 0 1px rgba(255,255,255,.035); } }
.price-card, .signal-card, .session-card { min-height: 158px; padding: 22px 24px; }
.price-card::before { position: absolute; right: -40px; bottom: -70px; width: 180px; height: 180px; border: 1px solid rgba(36,107,254,.12); border-radius: 50%; box-shadow: 0 0 70px rgba(36,107,254,.08); content: ""; }
.card-label { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: .72rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.label-icon { display: grid; place-items: center; width: 22px; height: 22px; color: #88a6cc; background: rgba(55,85,123,.18); border: 1px solid rgba(102,133,172,.2); border-radius: 6px; font-size: .69rem; }
.price-value { display: block; margin: 19px 0 6px; font-size: clamp(1.8rem,3vw,2.55rem); font-variant-numeric: tabular-nums; font-weight: 650; letter-spacing: -.045em; }
.signal-content { display: flex; align-items: baseline; gap: 12px; margin: 18px 0 8px; }
.signal-score { font-size: 2.2rem; font-variant-numeric: tabular-nums; line-height: 1; }
.signal-direction { color: var(--soft); font-size: .82rem; font-weight: 650; }
.signal-card { width: 100%; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.signal-card:focus-visible { outline: 2px solid #778391; outline-offset: 2px; }
.breakdown-hint { display: flex; align-items: center; gap: 5px; color: var(--dim); font-size: .68rem; }
.breakdown-hint svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.5; transition: transform .18s ease; }
.signal-card[aria-expanded="true"] .breakdown-hint svg { transform: rotate(180deg); }
.session-card > strong { display: block; margin: 20px 0 8px; font-size: 1.25rem; }
.data-caption, .updated-line { color: var(--dim); font-size: .72rem; }

.score-breakdown[hidden] { display: none; }
.score-breakdown {
  margin: -24px 0 34px;
  padding: 18px 20px 0;
  background: #0d141c;
  border: 1px solid rgba(96,125,163,.22);
  border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.16);
}
.score-breakdown-header, .score-breakdown-row, .score-breakdown-row-heading, .score-breakdown-raw, .score-breakdown-total { display: flex; align-items: center; }
.score-breakdown-header { justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid #252f3a; }
.score-breakdown-header h2 { margin: 0; font-size: .9rem; font-weight: 650; }
.score-breakdown-header > span { color: var(--dim); font-size: .67rem; }
.score-breakdown-list { display: grid; }
.score-breakdown-group + .score-breakdown-group { border-top: 1px solid #303a46; }
.score-breakdown-group h3 { margin: 0; padding: 11px 2px 5px; color: #8793a1; font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.score-breakdown-group.is-bullish h3 { color: #72b98b; }
.score-breakdown-group.is-bearish h3 { color: #cc7882; }
.score-breakdown-row { justify-content: space-between; gap: 18px; padding: 11px 2px; border-bottom: 1px solid rgba(47,58,70,.65); }
.score-breakdown-row > div { min-width: 0; }
.score-breakdown-row-heading { flex-wrap: wrap; gap: 8px; }
.score-breakdown-row-heading strong { color: #c8d0da; font-size: .76rem; font-weight: 650; }
.score-breakdown-row-heading span { padding: 2px 5px; color: #8995a3; background: #171f28; border: 1px solid #2c3641; border-radius: 4px; font-size: .57rem; letter-spacing: .04em; text-transform: uppercase; }
.score-breakdown-row p { margin: 4px 0 0; color: #758291; font-size: .68rem; line-height: 1.4; }
.score-points { flex: 0 0 auto; min-width: 36px; color: #aab4c0; font-size: .8rem; font-variant-numeric: tabular-nums; text-align: right; }
.score-points.is-positive { color: #72c891; }
.score-points.is-negative { color: #e27d89; }
.score-breakdown-raw[hidden] { display: none; }
.score-breakdown-raw { justify-content: space-between; min-height: 38px; color: #7f8b99; border-bottom: 1px solid #252f3a; font-size: .7rem; }
.score-breakdown-raw strong { color: #c1cad4; font-variant-numeric: tabular-nums; }
.score-breakdown-total { justify-content: space-between; min-height: 48px; color: #aeb8c4; font-size: .74rem; }
.score-breakdown-total strong { color: var(--text); font-size: 1rem; font-variant-numeric: tabular-nums; }

.coach-card { margin-bottom: 34px; padding: 20px 22px; overflow: visible; border-color: rgba(82,108,142,.42); }
.coach-header, .coach-overview, .coach-confidence-copy, .coach-watch-grid, .coach-detail-grid { display: flex; }
.coach-header { align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 13px; border-bottom: 1px solid rgba(70,87,108,.32); }
.coach-header h2 { margin: 0; font-size: 1rem; font-weight: 680; }
.coach-status { display: inline-flex; align-items: center; gap: 7px; color: #8795a7; font-size: .66rem; }
.coach-status i { width: 6px; height: 6px; background: #6684a6; border-radius: 50%; }
.coach-content { padding-top: 16px; }
.coach-content[hidden], .coach-loading[hidden], .coach-unavailable[hidden], .coach-details[hidden] { display: none; }
.coach-overview { align-items: flex-end; justify-content: space-between; gap: 24px; }
.coach-bias-block { display: grid; gap: 6px; }
.coach-field-label { color: #7f8c9c; font-size: .62rem; font-weight: 700; letter-spacing: .075em; text-transform: uppercase; }
.coach-bias { width: fit-content; padding: 5px 9px; background: #171f29; border: 1px solid #34404d; border-radius: 5px; font-size: .75rem; }
.coach-bias.bullish { background: rgba(76,175,122,.09); border-color: rgba(76,175,122,.3); }
.coach-bias.bearish { background: rgba(239,91,108,.08); border-color: rgba(239,91,108,.28); }
.coach-confidence-block { width: min(360px, 48%); }
.coach-confidence-copy { align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 7px; }
.coach-confidence-copy strong { color: #c7d1dc; font-size: .72rem; font-variant-numeric: tabular-nums; }
.coach-progress { height: 5px; overflow: hidden; background: #222d39; border-radius: 5px; }
.coach-progress span { display: block; width: 0; height: 100%; background: #6888ad; border-radius: inherit; transition: width .2s ease; }
.coach-summary { margin-top: 16px; padding: 14px 15px; background: #0c131b; border: 1px solid #26313d; border-radius: 6px; }
.coach-summary h3 { margin: 0 0 6px; color: #d8e0e9; font-size: .86rem; font-weight: 650; }
.coach-summary p { display: -webkit-box; overflow: hidden; margin: 0; color: #aeb9c6; font-size: .76rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 5; }
.coach-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 10px; }
.coach-group, .coach-watch { padding: 12px 13px; background: #0e151d; border: 1px solid #27313c; border-radius: 6px; }
.coach-group h3, .coach-watch h3, .coach-details h3 { margin: 0 0 9px; color: #8d9cad; font-size: .64rem; font-weight: 750; letter-spacing: .065em; text-transform: uppercase; }
.coach-group ul, .coach-watch ul, .coach-details ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.coach-group li, .coach-watch li, .coach-details li { position: relative; padding-left: 15px; color: #aeb9c6; font-size: .71rem; line-height: 1.4; }
.coach-group li::before, .coach-watch li::before, .coach-details li::before { position: absolute; top: .55em; left: 2px; width: 4px; height: 4px; background: #61748b; border-radius: 50%; content: ''; }
.coach-supporting li::before { background: var(--green); }
.coach-opposing li::before { background: var(--red); }
.coach-group li.is-empty, .coach-watch li.is-empty, .coach-details li.is-empty { color: #687687; }
.coach-watch { margin-top: 10px; }
.coach-watch-grid { gap: 18px; }
.coach-watch-grid > section { min-width: 0; flex: 1; }
.coach-watch h4 { margin: 0 0 7px; color: #aab5c2; font-size: .7rem; font-weight: 650; }
.coach-watch h3 .te-icon, .coach-details h3 .te-icon { width: .95rem; height: .95rem; }
.coach-watch h4 .te-icon { width: .82rem; height: .82rem; }
.coach-details-toggle { display: flex; align-items: center; gap: 6px; margin-top: 12px; padding: 6px 0; color: #93a5ba; background: transparent; border: 0; font: inherit; font-size: .69rem; cursor: pointer; }
.coach-details-toggle span { font-size: .85rem; transition: transform .18s ease; }
.coach-details-toggle[aria-expanded='true'] span { transform: rotate(180deg); }
.coach-details-toggle:focus-visible { outline: 2px solid #778da7; outline-offset: 3px; border-radius: 3px; }
.coach-details { display: grid; gap: 10px; margin-top: 8px; padding-top: 14px; border-top: 1px solid #29333e; }
.coach-details > section, .coach-detail-grid > section { min-width: 0; padding: 12px 13px; background: #0b1219; border: 1px solid #252f3a; border-radius: 6px; }
.coach-details p { margin: 0; color: #9eabb9; font-size: .7rem; line-height: 1.5; }
.coach-details p + p { margin-top: 9px; }
.coach-details p strong { display: block; margin-bottom: 2px; color: #c0cad5; font-size: .68rem; }
.coach-detail-grid { gap: 10px; }
.coach-detail-grid > section { flex: 1; }
.coach-quality-metrics, .coach-quality-penalties { font-variant-numeric: tabular-nums; }
.coach-quality-penalties { margin-top: 4px !important; color: #8795a5 !important; }
.coach-quality-metrics + .coach-quality-penalties + ul { margin-top: 8px; }
.coach-source p { word-break: break-word; }
.coach-loading { display: grid; gap: 9px; padding: 18px 0 3px; }
.coach-skeleton { width: 100%; height: 10px; background: #1a2430; border-radius: 4px; }
.coach-skeleton-short { width: 32%; }
.coach-unavailable { padding: 18px 0 2px; color: #8996a5; font-size: .74rem; }

/* AI Coach primary hierarchy and in-card information view */
.coach-card { background: var(--panel); }
.coach-header-actions { display: flex; align-items: center; gap: 10px; }
.coach-info-button {
  display: inline-grid;
  place-items: center;
  width: 25px;
  height: 25px;
  padding: 0;
  color: #a9b5c3;
  background: transparent;
  border: 1px solid #34404d;
  border-radius: 50%;
  font: inherit;
  font-size: .7rem;
  font-weight: 700;
  cursor: pointer;
}
.coach-info-button:hover { color: var(--text); border-color: #5c6b7d; }
.coach-info-button:focus-visible,
.coach-information-close:focus-visible { outline: 2px solid #778da7; outline-offset: 2px; }
.coach-primary { display: grid; gap: 16px; }
.coach-primary[hidden] { display: none; }
.coach-primary .coach-overview { display: grid; align-items: start; gap: 18px; }
.coach-primary .coach-bias { padding: 0; background: transparent; border: 0; font-size: clamp(1.35rem,2vw,1.75rem); font-weight: 680; line-height: 1.15; letter-spacing: -.025em; }
.coach-primary .coach-confidence-block { width: 100%; }
.coach-primary .coach-progress { height: 6px; }
.coach-primary .coach-summary { margin: 0; padding: 0; background: transparent; border: 0; }
.coach-primary .coach-summary h3 { margin-bottom: 5px; font-size: .78rem; }
.coach-primary .coach-summary p { color: #aeb9c6; font-size: .76rem; line-height: 1.5; -webkit-line-clamp: 2; }
.coach-primary-watch { padding: 12px 13px; background: #0d141c; border: 1px solid rgba(255,255,255,.06); border-radius: var(--radius-sm); }
.coach-primary-watch h3 { margin: 0 0 7px; color: #8e9dae; font-size: .63rem; font-weight: 700; letter-spacing: .065em; text-transform: uppercase; }
.coach-primary-watch h3 .te-icon { width: .9rem; height: .9rem; }
.coach-primary-watch p { margin: 0; color: #c1cad5; font-size: .74rem; line-height: 1.4; }
.coach-information { margin-top: 0; padding-top: 0; border-top: 0; }
.coach-information-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 11px; }
.coach-information-header h3 { margin: 2px 0 0; color: var(--text); font-size: 1rem; letter-spacing: 0; text-transform: none; }
.coach-information-close { padding: 6px 9px; color: #a8b5c4; background: transparent; border: 1px solid #34404d; border-radius: 5px; font: inherit; font-size: .68rem; cursor: pointer; }
.coach-information-close:hover { color: var(--text); border-color: #5c6b7d; }
.coach-information .coach-columns { margin-top: 0; }

@media (max-width:640px) {
  .coach-header { align-items: flex-start; }
  .coach-header-actions { flex-shrink: 0; }
  .coach-information .coach-columns,
  .coach-information .coach-watch-grid,
  .coach-information .coach-detail-grid { grid-template-columns: 1fr; flex-direction: column; }
}

.dashboard-section + .dashboard-section { margin-top: 34px; }

/* Layer toggle popover */
.layer-toggle { position: relative; }
.layer-toggle-button { background: transparent; border: 1px solid rgba(255,255,255,0.04); color: var(--text); padding: 6px 8px; border-radius: 6px; font-size: 0.85rem; cursor: pointer; }
.layer-toggle-popover { position: absolute; right: 0; top: 36px; background: var(--panel); border: 1px solid rgba(255,255,255,0.04); padding: 8px; border-radius: 8px; box-shadow: 0 6px 18px rgba(2,8,23,0.6); display: none; min-width: 150px; z-index: 40; }
.layer-toggle-popover[aria-hidden="false"] { display: block; }
.layer-toggle-popover form { display: grid; gap: 6px; }
.layer-toggle-popover label { display: flex; align-items: center; gap: 8px; color: var(--dim); font-size: .85rem; }
.layer-toggle-popover input[type="checkbox"] { width: 14px; height: 14px; }
.layer-actions { display:flex; justify-content: flex-end; }
.layer-actions button { background: transparent; border: none; color: var(--dim); cursor: pointer; font-size: .85rem; }

.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 14px; padding: 0 2px; }
.section-heading h2 { margin-bottom: 0; font-size: 1.05rem; font-weight: 650; letter-spacing: -.015em; }
.section-meta { gap: 18px; color: var(--dim); font-size: .72rem; }
.section-meta span { gap: 7px; }
.section-meta strong { color: var(--soft); font-size: .75rem; }
.meta-dot { width: 5px; height: 5px; background: var(--blue); border-radius: 50%; box-shadow: 0 0 8px rgba(36,107,254,.7); }
.section-note { color: var(--dim); font-size: .7rem; }
.stats-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 10px; }
.metric-card { min-height: 122px; padding: 17px 16px; }
.metric-name { color: var(--muted); font-size: .71rem; font-weight: 650; letter-spacing: .045em; text-transform: uppercase; }
.metric-name.te-icon-label { gap: .38rem; }
.metric-name .te-icon { width: .9rem; height: .9rem; }
.metric-card strong { display: block; overflow: hidden; margin: 17px 0 8px; font-size: clamp(.95rem,1.4vw,1.15rem); font-variant-numeric: tabular-nums; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.metric-hint { color: var(--dim); font-size: .66rem; }
.bullish { color: var(--green) !important; }
.bearish { color: var(--red) !important; }
.neutral { color: var(--text) !important; }

.info-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.list-card { min-height: 216px; padding: 19px 20px; }
.bullish-card { border-top-color: rgba(76,175,122,.38); }
.bearish-card { border-top-color: rgba(239,91,108,.35); }
.list-card-header { justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.list-card-header > div { gap: 10px; }
.list-card h3 { margin: 0; font-size: .84rem; font-weight: 650; }
.list-icon { display: grid; place-items: center; width: 28px; height: 28px; color: #8da2bc; background: rgba(93,116,147,.1); border: 1px solid rgba(93,116,147,.2); border-radius: 7px; font-size: .72rem; font-weight: 800; }
.list-icon .te-icon { width: 1rem; height: 1rem; }
.bullish-card .list-icon { color: var(--green); background: rgba(76,175,122,.11); border-color: rgba(76,175,122,.2); }
.bearish-card .list-icon { color: var(--red); background: rgba(239,91,108,.1); border-color: rgba(239,91,108,.2); }
.tone-badge { padding: 4px 7px; color: #8092a9; background: rgba(91,113,142,.1); border: 1px solid rgba(91,113,142,.16); border-radius: 5px; font-size: .58rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.bullish-badge { color: #75dba2; background: rgba(76,175,122,.11); }
.bearish-badge { color: #f28592; background: rgba(239,91,108,.1); }
.list-card ul { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.list-card li { position: relative; min-height: 31px; padding: 7px 10px 7px 23px; color: #aebcd0; background: rgba(6,12,20,.25); border: 1px solid rgba(67,88,116,.12); border-radius: 7px; font-size: .76rem; line-height: 1.35; transition: .15s ease; }
.list-card li::before { position: absolute; top: 50%; left: 10px; width: 4px; height: 4px; background: #536880; border-radius: 50%; transform: translateY(-50%); content: ""; }
.bullish-card li::before, .support-card li::before { background: var(--green); box-shadow: 0 0 7px rgba(76,175,122,.4); }
.bearish-card li::before, .resistance-card li::before { background: var(--red); box-shadow: 0 0 7px rgba(239,91,108,.35); }
@media (hover:hover) { .list-card li:hover { color: #d9e3f0; background: rgba(22,37,57,.72); border-color: rgba(78,103,137,.3); transform: translateX(2px); } }
footer { display: flex; justify-content: space-between; gap: 16px; margin-top: 28px; padding: 16px 3px 0; color: #526177; border-top: 1px solid rgba(58,75,98,.18); font-size: .67rem; }

@media (max-width:1120px) { .stats-grid { grid-template-columns: repeat(4,minmax(0,1fr)); } }
@media (max-width:1120px) {
  .chart-dock-layout { grid-template-columns: minmax(0, 3fr) minmax(210px, .85fr); }
}
@media (max-width:820px) {
  .app-shell { padding: 18px 16px 22px; }
  .chart-dock-layout { grid-template-columns: 1fr; }
  .market-dock {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(6, minmax(64px, auto));
  }
  .hero-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .price-card { grid-column: 1/-1; }
  .stats-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width:640px) {
  .topbar { align-items: stretch; flex-direction: column; }
  .topbar-actions { width: 100%; }
  .market-chip { flex: 1; }
  .market-chip-label { display: none; }
  .hero-row, .info-grid { grid-template-columns: 1fr; }
  .price-card { grid-column: auto; }
  .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 9px; }
  .price-card, .signal-card, .session-card { min-height: 142px; }
  .chart-toolbar { align-items: flex-start; flex-direction: column; gap: 12px; }
  .chart-actions { width: 100%; justify-content: space-between; }
  .chart-legend { justify-content: flex-start; }
  .chart-wrap { height: 390px; }
  .coach-card { padding: 16px 14px; }
  .coach-overview { align-items: stretch; flex-direction: column; gap: 13px; }
  .coach-confidence-block { width: 100%; }
  .coach-columns, .coach-watch-grid, .coach-detail-grid { grid-template-columns: 1fr; }
  .coach-watch-grid, .coach-detail-grid { display: grid; gap: 12px; }
}
@media (max-width:390px) {
  .app-shell { padding-inline: 11px; }
  .topbar-actions { align-items: stretch; flex-direction: column; }
  .market-chip, .status-pill { justify-content: center; }
  .stats-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 108px; }
  footer { flex-direction: column; gap: 5px; }
  .chart-actions { align-items: flex-end; }
  .chart-legend { gap: 6px 9px; }
  .chart-wrap { height: 350px; }
}
@media (prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Compact graphite refinement */
body { background: #080d14; }
.app-shell { max-width: 1520px; padding: 16px clamp(14px, 2.2vw, 34px) 18px; }
.topbar {
  min-height: 58px;
  margin-bottom: 12px;
  padding: 8px 10px 8px 12px;
  gap: 16px;
  background: #111820;
  border-color: #2a333e;
  border-radius: 8px;
  box-shadow: 0 5px 16px rgba(0,0,0,.2);
  backdrop-filter: none;
}
.brand { gap: 10px; }
.brand-mark {
  width: 36px;
  height: 36px;
  background: #161e27;
  border-color: #343e49;
  border-radius: 7px;
  box-shadow: none;
}
.brand-mark svg { width: 22px; }
.brand-mark .brand-trend { stroke: #a8b2be; }
.eyebrow { margin-bottom: 1px; color: #818c99; font-size: .62rem; }
h1 { font-size: 1.05rem; letter-spacing: -.01em; }
.topbar-actions { flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.market-chip, .status-pill, .header-updated {
  min-height: 34px;
  background: #0d131a;
  border: 1px solid #29333e;
  border-radius: 6px;
}
.market-chip { padding: 0 10px; }
.status-pill { padding: 0 11px; transition: none; }
.status-pill.is-connected { color: #a6d6b8; background: #101a16; border-color: #294438; box-shadow: none; }
.status-pill.is-connected .status-dot { background: #65bc82; box-shadow: none; animation: none; }
.status-pill.is-disconnected .status-dot { box-shadow: none; }
.header-updated {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0 10px;
  color: #7d8997;
  font-size: .68rem;
  white-space: nowrap;
}
.header-updated time { color: #b1bbc7; font-variant-numeric: tabular-nums; }
.discord-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  gap: 7px;
  padding: 0 11px;
  color: #f2f3ff;
  background: rgba(88, 101, 242, .12);
  border: 1px solid rgba(121, 132, 255, .55);
  border-radius: 6px;
  font-size: .72rem;
  font-weight: 650;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.discord-link svg { width: 15px; height: 15px; flex: 0 0 auto; fill: #aab1ff; transition: fill .18s ease; }
.discord-link:hover {
  color: #fff;
  background: rgba(88, 101, 242, .2);
  border-color: rgba(142, 151, 255, .78);
  box-shadow: 0 0 15px rgba(88, 101, 242, .16);
  transform: translateY(-1px);
}
.discord-link:hover svg { fill: #c3c8ff; }
.discord-link:focus-visible { outline: 2px solid #8d96ff; outline-offset: 2px; }
.discord-link:active { transform: translateY(0); }

.card {
  background: #101720;
  border-color: #29323d;
  border-radius: 9px;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  transition: border-color .15s ease;
}
.card::after, .price-card::before { display: none; }
@media (hover:hover) {
  .card:hover { transform: none; border-color: #3b4653; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
}

.chart-dock-layout { margin-bottom: 10px; }
.chart-toolbar { min-height: 58px; padding: 9px 12px 9px 16px; gap: 14px; }
.chart-title-row h2 { font-size: .98rem; }
.chart-wrap { height: clamp(480px, 62vh, 680px); }
.chart-loading { background: rgba(11,17,24,.96); transition: none; }
.chart-loading span { box-shadow: none; animation: none; }
.reset-chart { min-height: 30px; color: #b4bec9; background: #151d26; border-color: #343e49; border-radius: 5px; }
.reset-chart:hover { background: #1c252f; border-color: #505b67; }

.hero-row {
  grid-template-columns: minmax(260px,1.25fr) minmax(240px,1fr) minmax(190px,.65fr);
  gap: 9px;
  margin-bottom: 22px;
}
.price-card, .signal-card, .session-card {
  min-height: 126px;
  padding: 16px 18px;
}
.price-card, .signal-card { background: #131b24; border-color: #3a4551; }
.card-label { font-size: .66rem; letter-spacing: .08em; }
.label-icon { width: 20px; height: 20px; color: #a9b2bd; background: #19222c; border-color: #343f4b; border-radius: 4px; }
.price-value { margin: 13px 0 3px; font-size: clamp(1.9rem,3vw,2.65rem); }
.signal-content { margin: 13px 0 5px; }
.signal-score { font-size: clamp(1.9rem,3vw,2.45rem); }
.score-breakdown { margin: -12px 0 22px; }
.coach-card { margin-bottom: 22px; padding: 16px 18px; background: #111922; }
.session-card > strong { margin: 15px 0 5px; font-size: 1.08rem; }

.dashboard-section + .dashboard-section { margin-top: 22px; }
.section-heading { margin-bottom: 9px; }
.section-kicker { margin-bottom: 2px; color: #717d8b; font-size: .61rem; }
.section-heading h2 { font-size: .95rem; }
.stats-grid { gap: 8px; }
.metric-card {
  display: flex;
  min-height: 102px;
  padding: 13px 14px;
  flex-direction: column;
}
.metric-card strong { margin: 12px 0 5px; font-size: clamp(1.05rem,1.35vw,1.22rem); }
.metric-hint { margin-top: auto; }

.info-grid { gap: 9px; }
.list-card { min-height: 184px; padding: 14px 15px; }
.list-card-header { margin-bottom: 11px; }
.list-icon { width: 25px; height: 25px; background: #18212a; box-shadow: none; }
.bullish-card .list-icon, .bearish-card .list-icon { background: #18212a; }
.list-card ul { gap: 5px; }
.list-card li {
  min-height: 29px;
  padding: 6px 9px 6px 22px;
  color: #bac3ce;
  background: #0c1219;
  border-color: #222b35;
  border-radius: 4px;
  font-size: .74rem;
  font-variant-numeric: tabular-nums;
  transition: background-color .15s ease;
}
.bullish-card li::before, .support-card li::before, .bearish-card li::before, .resistance-card li::before { box-shadow: none; }
@media (hover:hover) {
  .list-card li:hover { transform: none; background: #141d26; border-color: #303b47; }
}
footer { margin-top: 20px; padding-top: 11px; }

@media (min-width:1121px) {
  .app-shell {
    width: min(1920px, calc(100% - 24px));
    max-width: none;
    padding-inline: clamp(18px, 1.25vw, 24px);
  }
}
@media (max-width:900px) {
  .topbar { align-items: flex-start; }
  .topbar-actions { max-width: 70%; }
  .chart-wrap { height: clamp(440px,60vh,600px); }
  .chart-toolbar { flex-wrap: wrap; }
  .timeframe-controls { order: 3; }
  .hero-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .session-card { grid-column: 1/-1; min-height: 104px; }
}
@media (max-width:640px) {
  .app-shell { padding: 9px 9px 16px; }
  .topbar { gap: 9px; margin-bottom: 8px; padding: 9px; }
  .topbar-actions { max-width: none; }
  .header-updated { flex: 1 1 100%; justify-content: space-between; }
  .chart-toolbar { padding: 10px 11px; }
  .timeframe-controls { order: 0; width: 100%; justify-content: space-between; overflow: hidden; }
  .timeframe-button { min-width: 0; flex: 1; padding: 0 5px; }
  .chart-actions { align-items: flex-start; flex-direction: column; gap: 10px; }
  .reset-chart { align-self: flex-end; }
  .chart-wrap { height: 430px; }
  .hero-row { gap: 7px; margin-bottom: 18px; }
  .price-card, .signal-card, .session-card { min-height: 116px; padding: 14px; }
  .score-breakdown { margin: -10px 0 18px; padding: 15px 14px 0; }
  .score-breakdown-row { align-items: flex-start; }
  .info-grid { gap: 7px; }
}
@media (max-width:420px) {
  .market-chip { flex: 1 1 auto; justify-content: center; }
  .status-pill { flex: 0 0 auto; }
  .discord-link { flex: 1 1 auto; }
  .chart-legend { display: grid; grid-template-columns: repeat(3,auto); width: 100%; }
  .chart-wrap { height: 390px; }
  .market-dock {
    grid-template-columns: 1fr;
    grid-template-rows: repeat(6, 64px);
  }
  .hero-row { grid-template-columns: 1fr; }
  .session-card { grid-column: auto; }
  .stats-grid { grid-template-columns: 1fr; }
}

/* Premium application shell */
:root {
  --bg: #080b10;
  --surface: #0d1118;
  --panel: #111722;
  --elevated: #151d29;
  --border: rgba(255,255,255,.06);
  --text: #f4f7fb;
  --soft: #c3ccd9;
  --muted: #8e9aad;
  --dim: #5f6b7a;
  --blue: #4c8dff;
  --green: #22c55e;
  --red: #ef5350;
  --amber: #f5a524;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 15px;
  --shadow-panel: 0 12px 30px rgba(0,0,0,.2);
}
html { scroll-behavior: smooth; }
body { background: var(--bg); }
.app-frame { display: grid; grid-template-columns: 184px minmax(0,1fr); min-height: 100vh; }
.app-sidebar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  height: 100vh;
  padding: 18px 12px;
  flex-direction: column;
  color: var(--muted);
  background: var(--surface);
  border-right: 1px solid var(--border);
}
.sidebar-brand { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 0 8px 18px; color: var(--text); text-decoration: none; }
.sidebar-brand-mark { display: grid; place-items: center; width: 36px; height: 36px; flex: 0 0 auto; color: #dce8ff; background: #142039; border: 1px solid rgba(76,141,255,.3); border-radius: 10px; font-size: .65rem; font-weight: 800; letter-spacing: -.02em; }
.sidebar-brand-copy { display: grid; min-width: 0; gap: 2px; }
.sidebar-brand-copy strong { color: var(--text); font-size: .79rem; white-space: nowrap; }
.sidebar-brand-copy small { color: var(--dim); font-size: .61rem; letter-spacing: .08em; text-transform: uppercase; }
.sidebar-nav { display: grid; gap: 4px; margin-top: 10px; }
.sidebar-link { display: flex; align-items: center; min-height: 40px; gap: 11px; padding: 0 11px; color: #7f8b9c; border: 1px solid transparent; border-radius: 9px; font-size: .72rem; font-weight: 620; text-decoration: none; transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease; }
.sidebar-link .te-icon { width: 1rem; height: 1rem; }
.sidebar-link:hover { color: #dce5f2; background: rgba(255,255,255,.035); transform: translateY(-1px); }
.sidebar-link:focus-visible { outline: 2px solid rgba(76,141,255,.75); outline-offset: 2px; }
.sidebar-link.is-active { color: #dce8ff; background: rgba(76,141,255,.12); border-color: rgba(76,141,255,.16); }
.sidebar-divider { height: 1px; margin: 10px 9px; background: var(--border); }
.sidebar-foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding: 12px 9px 4px; color: var(--dim); font-size: .62rem; }
.sidebar-live { width: 6px; height: 6px; background: var(--green); border-radius: 50%; }

.app-shell {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(520px, 2.25fr) minmax(300px, .95fr);
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 18px;
  gap: 14px;
  align-items: start;
}
.app-shell > *, .chart-dock-layout, .chart-card, .topbar, .topbar-actions { min-width: 0; }
.topbar { grid-column: 1 / -1; margin: 0; background: rgba(17,23,34,.96); border-color: var(--border); border-radius: var(--radius-md); box-shadow: var(--shadow-panel); }
.brand-mark { background: var(--elevated); border-color: var(--border); }
.chart-dock-layout { grid-column: 2; grid-row: 2; grid-template-columns: 1fr; margin: 0; gap: 10px; }
.chart-card { border-radius: var(--radius-lg); }
.chart-toolbar { background: var(--panel); border-bottom-color: var(--border); }
.chart-wrap { height: clamp(500px,61vh,690px); }
.analysis-tabs { display: flex; align-items: center; gap: 5px; min-height: 39px; padding: 5px 10px; overflow-x: auto; background: #0d131c; border-bottom: 1px solid var(--border); scrollbar-width: none; }
.analysis-tabs::-webkit-scrollbar { display: none; }
.analysis-tabs a { padding: 7px 11px; color: var(--dim); border-radius: 7px; font-size: .67rem; font-weight: 650; text-decoration: none; white-space: nowrap; transition: color .18s ease, background-color .18s ease; }
.analysis-tabs a:hover { color: var(--soft); background: rgba(255,255,255,.04); }
.analysis-tabs a.is-active { color: #dbe7ff; background: rgba(76,141,255,.12); }
.market-dock { grid-template-columns: repeat(3,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(94px,auto)); min-width: 0; border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; }
.dock-card { min-height: 94px; }

.hero-row { grid-column: 1; grid-row: 2; grid-template-columns: 1fr; margin: 0; gap: 10px; }
.price-card, .signal-card, .session-card { min-height: 124px; border-radius: var(--radius-md); }
.price-card, .signal-card { background: var(--elevated); border-color: var(--border); }
.score-breakdown { grid-column: 1; margin: 0; border-color: var(--border); border-radius: var(--radius-md); }
.coach-card { grid-column: 3; grid-row: 2; max-height: calc(61vh + 260px); margin: 0; overflow: auto; background: var(--panel); border-color: var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-panel); scrollbar-width: thin; scrollbar-color: #344052 transparent; }
.coach-header { position: sticky; top: -16px; z-index: 2; padding-top: 16px; background: var(--panel); }
.coach-summary, .coach-group, .coach-watch, .coach-details > section, .coach-detail-grid > section { background-color: #0d131c; border-color: var(--border); border-radius: var(--radius-sm); }
.coach-progress { background: #222b38; }
.coach-progress span { background: var(--blue); }

#technical-snapshot { grid-column: 1; margin: 0; }
#technical-snapshot .section-heading { align-items: flex-start; flex-direction: column; }
#technical-snapshot .stats-grid { grid-template-columns: 1fr; }
#technical-snapshot .metric-card { min-height: 88px; padding: 12px 14px; border-radius: var(--radius-md); }
#technical-snapshot .metric-card strong { margin: 8px 0 3px; }
#market-intelligence { grid-column: 2 / -1; margin: 0; }
#market-intelligence .list-card { border-radius: var(--radius-md); }
.card { border-color: var(--border); box-shadow: var(--shadow-panel); }
.card:hover { border-color: rgba(255,255,255,.1); }
.timeframe-button, .reset-chart, .discord-link { transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease; }
.timeframe-button:hover, .reset-chart:hover, .discord-link:hover { transform: translateY(-1px); }
footer { grid-column: 1 / -1; }

@media (max-width:1450px) {
  .app-frame { grid-template-columns: 72px minmax(0,1fr); }
  .app-sidebar { align-items: center; padding-inline: 9px; }
  .sidebar-brand { padding-inline: 0; }
  .sidebar-brand-copy, .sidebar-link > span:last-child, .sidebar-foot > span:last-child { display: none; }
  .sidebar-link { justify-content: center; width: 42px; padding: 0; }
  .sidebar-divider { width: 34px; }
  .app-shell { grid-template-columns: minmax(210px,.65fr) minmax(500px,2fr) minmax(280px,.9fr); padding: 14px; gap: 11px; }
}
@media (max-width:1180px) {
  .app-shell { grid-template-columns: minmax(0,1fr) 320px; }
  .topbar { grid-column: 1 / -1; }
  .chart-dock-layout { grid-column: 1; grid-row: 2; }
  .coach-card { grid-column: 2; grid-row: 2; }
  .hero-row { grid-column: 1 / -1; grid-row: 3; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .score-breakdown { grid-column: 1 / -1; }
  #technical-snapshot { grid-column: 1 / -1; }
  #technical-snapshot .section-heading { align-items: flex-end; flex-direction: row; }
  #technical-snapshot .stats-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
  #market-intelligence { grid-column: 1 / -1; }
}
@media (max-width:820px) {
  .app-frame { display: block; }
  .app-sidebar { position: sticky; width: 100%; height: auto; padding: 7px 9px; align-items: center; flex-direction: row; border-right: 0; border-bottom: 1px solid var(--border); }
  .sidebar-brand { min-height: 38px; padding: 0 8px 0 0; }
  .sidebar-brand-mark { width: 32px; height: 32px; }
  .sidebar-nav { display: flex; min-width: 0; margin: 0; overflow-x: auto; }
  .sidebar-link { width: 38px; min-width: 38px; min-height: 36px; }
  .sidebar-divider, .sidebar-foot { display: none; }
  .app-shell { display: grid; grid-template-columns: minmax(0,1fr); padding: 9px; gap: 10px; }
  .topbar, .chart-dock-layout, .hero-row, .coach-card, .score-breakdown, #technical-snapshot, #market-intelligence, footer { grid-column: 1; grid-row: auto; }
  .chart-dock-layout { order: 1; }
  .hero-row { order: 2; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .price-card { grid-column: 1 / -1; }
  .coach-card { order: 3; max-height: none; overflow: visible; }
  #technical-snapshot { order: 4; }
  #market-intelligence { order: 5; }
  footer { order: 6; }
  .market-dock { grid-template-columns: 1fr; grid-template-rows: repeat(6,minmax(64px,auto)); }
  #technical-snapshot .stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width:520px) {
  .topbar { border-radius: 10px; }
  .topbar-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  .market-chip, .header-updated { grid-column: 1 / -1; }
  .discord-link, .status-pill { min-width: 0; }
  .timeframe-controls { justify-content: flex-start; overflow-x: auto; scrollbar-width: none; }
  .timeframe-controls::-webkit-scrollbar { display: none; }
  .timeframe-button { min-width: 46px; flex: 0 0 auto; }
  .chart-actions { min-width: 0; overflow: hidden; }
  .chart-legend { width: 100%; max-width: 100%; padding-bottom: 2px; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
  .chart-legend::-webkit-scrollbar { display: none; }
  .hero-row { grid-template-columns: 1fr; }
  .price-card { grid-column: auto; }
  #technical-snapshot .stats-grid { grid-template-columns: 1fr; }
  .info-grid { grid-template-columns: 1fr; }
  .analysis-tabs { padding-inline: 7px; }
}

/* Focused hierarchy and indicator-detail polish */
.hero-row { align-content: start; }
.price-card { min-height: 142px; padding: 19px 18px; }
.price-card .price-value { margin-top: 17px; font-size: clamp(2.15rem,3.2vw,2.8rem); letter-spacing: -.045em; }
.signal-card { min-height: 132px; }
.signal-card .signal-score { line-height: .95; letter-spacing: -.04em; }
.signal-card .signal-direction { max-width: 15ch; color: var(--soft); font-size: .7rem; line-height: 1.35; }
.session-card { min-height: 94px; padding-block: 13px; background: #0e141d; box-shadow: none; }
.session-card > strong { margin: 10px 0 3px; }

.coach-header { border-bottom-color: rgba(255,255,255,.045); }
.coach-summary { padding: 13px 2px 12px; background: transparent; border: 0; }
.coach-summary p { line-height: 1.55; -webkit-line-clamp: 4; }
.coach-group, .coach-watch { padding: 12px 3px; background: transparent; border: 0; }
.coach-columns { gap: 18px; border-top: 1px solid rgba(255,255,255,.045); border-bottom: 1px solid rgba(255,255,255,.045); }
.coach-group li, .coach-watch li { padding: 6px 7px 6px 17px; background: rgba(255,255,255,.018); border-radius: 5px; }
.coach-details { border-top-color: rgba(255,255,255,.045); }
.coach-details > section, .coach-detail-grid > section { padding: 11px 3px; background: transparent; border: 0; }

.score-breakdown-header { border-bottom-color: rgba(255,255,255,.045); }
.score-breakdown-group + .score-breakdown-group { border-top-color: rgba(255,255,255,.045); }
.score-breakdown-row { padding: 9px 2px; border-bottom: 0; }
.score-breakdown-row + .score-breakdown-row { border-top: 1px solid rgba(255,255,255,.035); }
.score-breakdown-row-heading span { background: rgba(255,255,255,.035); border: 0; }

#market-intelligence .list-card { min-height: 160px; }
.list-card li { min-height: 28px; background: rgba(255,255,255,.018); border: 0; }
.list-card-header { padding-bottom: 9px; border-bottom: 1px solid rgba(255,255,255,.04); }
.list-icon { border-color: transparent; }

.timeframe-controls { padding: 3px; background: #0b1119; border-color: rgba(255,255,255,.07); }
.timeframe-button { color: #8491a4; }
.timeframe-button.is-active { color: #eef4ff; background: #263246; border-color: rgba(255,255,255,.12); }
.analysis-tabs a { color: #748196; }
.analysis-tabs a.is-active { color: #e4edff; }
.chart-legend { color: #8491a4; }
.reset-chart { color: #c0cad8; }

.market-dock {
  position: relative;
  grid-template-columns: repeat(4,minmax(0,1fr));
  grid-template-rows: 108px 84px;
  gap: 1px;
  background: rgba(255,255,255,.055);
}
.market-dock .dock-card { padding: 8px 10px; background: #0d141c; border: 0; }
.market-dock .volume-dock { grid-column: 1 / 3; grid-row: 1 / 3; }
.market-dock .macd-dock { grid-column: 3 / 5; grid-row: 1; }
.market-dock .rsi-dock { grid-column: 3; grid-row: 2; }
.market-dock .stoch-rsi-dock { grid-column: 4; grid-row: 2; }
.market-dock [data-slot^='reserved'] { display: none; }
.dock-card-header { min-height: 17px; }
.volume-dock-value, .macd-dock-value, .rsi-dock-value, .stoch-rsi-dock-value { color: #aeb9c8; font-size: .61rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.macd-dock-value { overflow: hidden; max-width: 72%; text-overflow: ellipsis; }
.volume-dock-chart:focus-visible, .macd-dock-chart:focus-visible, .rsi-dock-chart:focus-visible, .stoch-rsi-dock-chart:focus-visible { outline: 1px solid rgba(76,141,255,.7); outline-offset: -2px; }

.indicator-hover-detail {
  position: fixed;
  z-index: 100;
  width: min(320px,calc(100vw - 20px));
  padding: 11px 12px 12px;
  pointer-events: none;
  color: var(--soft);
  background: #111923;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 10px;
  box-shadow: 0 16px 38px rgba(0,0,0,.38);
  opacity: 1;
  transition: opacity .12s ease;
}
.indicator-hover-detail[hidden] { display: none; opacity: 0; }
.indicator-hover-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.indicator-hover-head strong { color: var(--text); font-size: .72rem; }
.indicator-hover-head time { color: var(--dim); font-size: .61rem; font-variant-numeric: tabular-nums; }
.indicator-hover-detail canvas { display: block; width: 100%; height: 112px; background: #0b1118; border-radius: 6px; }
.indicator-hover-values { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-top: 8px; }
.indicator-hover-values span { display: grid; min-width: 0; gap: 2px; }
.indicator-hover-values small { color: var(--dim); font-size: .57rem; text-transform: uppercase; }
.indicator-hover-values b { overflow: hidden; color: var(--soft); font-size: .67rem; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width:820px) {
  .market-dock { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: 150px 100px 90px; }
  .market-dock .volume-dock { grid-column: 1 / -1; grid-row: 1; }
  .market-dock .macd-dock { grid-column: 1 / -1; grid-row: 2; }
  .market-dock .rsi-dock { grid-column: 1; grid-row: 3; }
  .market-dock .stoch-rsi-dock { grid-column: 2; grid-row: 3; }
}
@media (hover:none), (pointer:coarse) { .indicator-hover-detail { display: none !important; } }
@media (prefers-reduced-motion:reduce) { .indicator-hover-detail { transition: none; } }

/* Final full-width indicator reading flow */
.market-dock {
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.market-dock .volume-dock,
.market-dock .macd-dock,
.market-dock .rsi-dock,
.market-dock .stoch-rsi-dock {
  width: 100%;
  flex: 0 0 auto;
}
.market-dock .volume-dock { height: 90px; }
.market-dock .macd-dock { height: 65px; }
.market-dock .rsi-dock,
.market-dock .stoch-rsi-dock { height: 45px; }

/* Workstation Redesign: Left Sidebar Community Card */
.sidebar-card {
  margin-top: auto;
  border-top: 1px solid var(--border);
  padding-top: 12px;
}
.sidebar-card-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 8px 11px;
  color: var(--muted);
  background: transparent;
  border: 0;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 620;
  cursor: pointer;
}
.sidebar-card-toggle svg {
  width: 12px;
  height: 12px;
  transition: transform 0.18s ease;
}
.sidebar-card-toggle[aria-expanded="true"] svg {
  transform: rotate(180deg);
}
.sidebar-card-content {
  padding: 8px 11px;
}
.community-placeholder {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.chat-area {
  height: 80px;
  background: rgba(0,0,0,0.2);
  border: 1px solid var(--border);
  border-radius: 4px;
}
.chat-input {
  width: 100%;
  padding: 8px 10px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 6px;
  font-size: 0.65rem;
  color: var(--dim);
}

/* Workstation Redesign: Right Sidebar Scenario Explorer */
.scenario-explorer-card {
  padding: 16px 18px;
  background: var(--panel);
  border-radius: var(--radius-lg);
}
.scenario-explorer-card h2 {
  margin: 3px 0 0;
  color: var(--text);
  font-size: 1rem;
}
.scenario-explorer-grid {
  display: grid;
  gap: 10px;
  margin-top: 16px;
}
.scenario-placeholder-card {
  padding: 12px;
  background: var(--elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  transition: border-color 0.15s ease;
}
.scenario-placeholder-card:hover {
  border-color: rgba(255,255,255,0.1);
}
.placeholder-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
}
.placeholder-rank {
  font-size: 0.65rem;
  font-weight: 700;
  color: var(--blue);
}
.placeholder-status {
  font-size: 0.65rem;
  color: var(--dim);
}
.scenario-placeholder-card h3 {
  margin: 0 0 4px;
  font-size: 0.85rem;
  font-weight: 650;
}
.placeholder-meta {
  font-size: 0.7rem;
  color: var(--dim);
}
.chart-dock-layout[data-indicator-view="price-action"] .market-dock .macd-dock,
.chart-dock-layout[data-indicator-view="price-action"] .market-dock .rsi-dock,
.chart-dock-layout[data-indicator-view="price-action"] .market-dock .stoch-rsi-dock { display: none; }
.chart-dock-layout[data-indicator-view="price-action"] .chart-wrap {
  height: calc(clamp(500px,61vh,690px) + 272px);
}

@media (max-width:820px) {
  .chart-view-controls { flex-wrap: wrap; justify-content: flex-end; }
  .indicator-view-toggle { flex: 0 0 auto; }
}

/* Readable decision context and collapsible market context */
.app-shell { transition: grid-template-columns .18s ease; }
.market-context-panel {
  position: relative;
  grid-column: 1;
  grid-row: 2;
  min-width: 0;
  width: 100%;
  transition: width .18s ease, transform .18s ease;
}
.market-context-content { display: grid; gap: 10px; transition: opacity .15s ease, transform .18s ease; }
.market-context-panel .hero-row { grid-template-columns: 1fr; margin: 0; }
.market-context-panel .score-breakdown { margin: 0; }
.market-context-toggle {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  min-height: 30px;
  gap: 6px;
  padding: 0 8px;
  color: #9eacbd;
  background: #111923;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 7px;
  font: inherit;
  font-size: .62rem;
  cursor: pointer;
  transition: color .18s ease, background-color .18s ease, border-color .18s ease;
}
.market-context-toggle:hover { color: var(--text); background: #172130; border-color: rgba(255,255,255,.13); }
.market-context-toggle:focus-visible { outline: 2px solid rgba(76,141,255,.8); outline-offset: 2px; }
.market-context-toggle .te-icon { width: .9rem; height: .9rem; }
.market-context-panel .price-card .card-label { padding-right: 72px; }

.context-collapsed .app-shell { grid-template-columns: 44px minmax(520px,2.55fr) minmax(300px,.95fr); }
.context-collapsed .market-context-panel { width: 44px; }
.context-collapsed .market-context-content { visibility: hidden; opacity: 0; transform: translateX(-10px); pointer-events: none; }
.context-collapsed .market-context-toggle { right: 6px; width: 32px; padding: 0; }
.context-collapsed .market-context-toggle-text { display: none; }
.context-collapsed #technical-snapshot { visibility: hidden; max-height: 0; margin: 0; overflow: hidden; opacity: 0; pointer-events: none; }

.coach-field-label { color: #929fb0; font-size: .71rem; line-height: 1.35; }
.coach-bias { font-size: .84rem; line-height: 1.35; }
.coach-confidence-copy strong { font-size: .82rem; }
.coach-summary { margin-top: 18px; }
.coach-summary h3 { margin-bottom: 8px; font-size: .92rem; line-height: 1.35; }
.coach-summary p { color: #bac5d2; font-size: .86rem; line-height: 1.62; }
.coach-columns { margin-top: 14px; padding-block: 3px; }
.coach-group h3, .coach-watch h3, .coach-details h3 { margin-bottom: 11px; color: #a2afbe; font-size: .73rem; line-height: 1.35; }
.coach-group li, .coach-watch li, .coach-details li { color: #bac5d2; font-size: .81rem; line-height: 1.52; }
.coach-watch { margin-top: 14px; }
.coach-watch h4 { margin-bottom: 9px; color: #bac5d2; font-size: .78rem; line-height: 1.35; }
.coach-details { gap: 14px; }
.coach-details p { color: #afbbc9; font-size: .8rem; line-height: 1.58; }
.coach-details p strong { font-size: .76rem; }

@media (max-width:1180px) and (min-width:821px) {
  .market-context-panel { grid-column: 1 / -1; grid-row: 3; min-height: 40px; }
  .context-collapsed .app-shell { grid-template-columns: minmax(0,1fr) 320px; }
  .context-collapsed .market-context-panel { width: 44px; }
}
@media (max-width:820px) {
  .market-context-panel { grid-column: 1; grid-row: auto; order: 2; width: 100%; }
  .market-context-toggle { display: none; }
  .market-context-content, .context-collapsed .market-context-content { visibility: visible; opacity: 1; transform: none; pointer-events: auto; }
  .context-collapsed #technical-snapshot { visibility: visible; max-height: none; overflow: visible; opacity: 1; pointer-events: auto; }
  .coach-summary p { font-size: .84rem; }
  .coach-group li, .coach-watch li, .coach-details li { font-size: .79rem; }
}
@media (prefers-reduced-motion:reduce) {
  .app-shell, .market-context-panel, .market-context-content { transition: none; }
}

/* Heatmap level selection and details drawer */
.heatmap-level-controls { display: flex; align-items: center; min-height: 34px; gap: 5px; padding: 5px 10px; overflow-x: auto; background: #0b1118; border-bottom: 1px solid rgba(255,255,255,.045); scrollbar-width: none; }
.heatmap-level-controls:empty { display: none; }
.heatmap-level-controls::-webkit-scrollbar { display: none; }
.heatmap-level-button { flex: 0 0 auto; padding: 5px 8px; color: #8f9caf; background: rgba(255,255,255,.025); border: 1px solid transparent; border-radius: 6px; font: inherit; font-size: .61rem; cursor: pointer; transition: color .16s ease, background-color .16s ease, border-color .16s ease; }
.heatmap-level-button:hover { color: var(--text); background: rgba(255,255,255,.05); }
.heatmap-level-button[aria-expanded='true'] { color: #e3ebf7; background: rgba(76,141,255,.09); border-color: rgba(76,141,255,.18); }
.heatmap-level-button:focus-visible { outline: 2px solid rgba(76,141,255,.8); outline-offset: 2px; }

.heatmap-details {
  position: fixed;
  top: 0;
  right: 0;
  z-index: 80;
  width: min(410px,calc(100vw - 24px));
  height: 100vh;
  padding: 18px;
  overflow-y: auto;
  color: var(--soft);
  background: #0e151e;
  box-shadow: -18px 0 42px rgba(0,0,0,.34);
  transform: translateX(102%);
  visibility: hidden;
  transition: transform .18s ease, visibility 0s linear .18s;
  scrollbar-width: thin;
  scrollbar-color: #344052 transparent;
}
.heatmap-details.is-open { visibility: visible; transform: translateX(0); transition-delay: 0s; }
.heatmap-details-header { position: sticky; top: -18px; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: -18px -18px 18px; padding: 18px; background: #0e151e; border-bottom: 1px solid rgba(255,255,255,.055); }
.heatmap-details-header h2 { margin: 0; font-size: 1rem; }
.heatmap-details-close { min-height: 32px; padding: 0 10px; color: #b5c0ce; background: #151e29; border: 1px solid rgba(255,255,255,.08); border-radius: 7px; font: inherit; font-size: .67rem; cursor: pointer; }
.heatmap-details-close:hover { color: var(--text); background: #1a2532; }
.heatmap-details-close:focus-visible { outline: 2px solid rgba(76,141,255,.8); outline-offset: 2px; }
.heatmap-details-status { color: #95a3b5; font-size: .78rem; line-height: 1.5; }
.heatmap-details-status:empty { display: none; }
.heatmap-details-status.is-unavailable { padding: 14px; background: rgba(239,83,80,.055); border-radius: 8px; color: #d9a2a2; }
.heatmap-details-content { display: grid; gap: 18px; }
.heatmap-details-content > section + section { padding-top: 16px; border-top: 1px solid rgba(255,255,255,.045); }
.heatmap-details-content h3 { margin: 0 0 10px; color: #aab6c5; font-size: .68rem; letter-spacing: .07em; text-transform: uppercase; }
.heatmap-level-overview { display: grid; grid-template-columns: 1fr auto; gap: 5px 14px; align-items: end; }
.heatmap-level-overview > span:first-child { color: var(--blue); font-size: .7rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.heatmap-level-overview strong { grid-row: 1 / 3; grid-column: 2; color: var(--text); font-size: 1.65rem; font-variant-numeric: tabular-nums; letter-spacing: -.035em; }
.heatmap-level-overview span:not(:first-child) { color: var(--muted); font-size: .7rem; }
.heatmap-detail-rows { display: grid; gap: 3px; }
.heatmap-detail-row { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 29px; padding: 5px 7px; background: rgba(255,255,255,.018); border-radius: 5px; }
.heatmap-detail-row span { color: #8290a2; font-size: .7rem; }
.heatmap-detail-row strong { color: #c8d2df; font-size: .72rem; font-variant-numeric: tabular-nums; }
.heatmap-detail-row.is-positive strong { color: var(--green); }
.heatmap-detail-row.is-negative strong { color: var(--red); }
.heatmap-reason-list, .heatmap-history { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.heatmap-reason-list li, .heatmap-history li { padding: 7px 8px; color: #b4bfcc; background: rgba(255,255,255,.018); border-radius: 5px; font-size: .72rem; line-height: 1.45; }
.heatmap-reason-list li.is-empty, .heatmap-history li.is-empty { color: var(--dim); }
.heatmap-history li > div { display: flex; justify-content: space-between; gap: 12px; }
.heatmap-history strong { color: #c6d0dc; font-size: .71rem; }
.heatmap-history time { color: var(--dim); font-size: .62rem; }
.heatmap-history p { margin: 4px 0 0; color: #8492a3; font-size: .67rem; }
.heatmap-technical { padding-top: 15px; border-top: 1px solid rgba(255,255,255,.045); }
.heatmap-technical summary { color: #8997a9; font-size: .7rem; cursor: pointer; }
.heatmap-technical summary:focus-visible { outline: 2px solid rgba(76,141,255,.8); outline-offset: 3px; }
.heatmap-technical dl { display: grid; grid-template-columns: minmax(110px,.75fr) 1.25fr; gap: 6px 12px; margin: 12px 0 0; font-size: .67rem; }
.heatmap-technical dt { color: var(--dim); }
.heatmap-technical dd { margin: 0; overflow-wrap: anywhere; color: #aab6c4; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }

@media (max-width:640px) {
  .heatmap-details { top: auto; bottom: 0; width: 100%; max-height: 88vh; height: auto; min-height: 64vh; padding: 15px; transform: translateY(102%); }
  .heatmap-details.is-open { transform: translateY(0); }
  .heatmap-details-header { top: -15px; margin: -15px -15px 16px; padding: 15px; }
  .heatmap-level-controls { padding-inline: 7px; }
}
@media (prefers-reduced-motion:reduce) { .heatmap-details { transition: none; } }

/* Primary inspector | chart | live guidance workspace */
.app-shell,
.context-collapsed .app-shell { grid-template-columns: minmax(0,1fr); }
.main-workspace {
  display: grid;
  grid-column: 1;
  grid-template-columns: minmax(0,1fr) minmax(290px,340px);
  gap: 12px;
  width: 100%;
  min-width: 0;
  overflow: hidden;
  align-items: start;
}
.crypto-market-radar {
  display: flex;
  width: 100%;
  min-width: 0;
  min-height: 58px;
  margin-bottom: 10px;
  padding: 8px 10px;
  gap: 12px;
  align-items: center;
  overflow: hidden;
  background: linear-gradient(90deg,rgba(17,27,39,.96),rgba(13,22,32,.92));
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 5px 18px rgba(0,0,0,.12);
}
.crypto-market-radar-heading { display: grid; flex: 0 0 auto; gap: 1px; padding: 0 4px; }
.crypto-market-radar-heading strong { color: var(--text); font-size: .76rem; white-space: nowrap; }
.crypto-market-radar-status { flex: 0 0 auto; max-width: 128px; margin: 0; color: var(--dim); font-size: .61rem; line-height: 1.25; }
.crypto-market-radar-list { display: flex; flex: 1 1 auto; min-width: 0; gap: 7px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.crypto-market-radar-item {
  display: grid;
  grid-template-columns: auto auto;
  flex: 0 0 auto;
  min-width: 118px;
  min-height: 38px;
  padding: 5px 8px;
  gap: 1px 9px;
  align-items: center;
  color: #bdc9d8;
  background: rgba(255,255,255,.025);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 7px;
  font: inherit;
  font-size: .65rem;
  font-variant-numeric: tabular-nums;
  text-align: left;
}
button.crypto-market-radar-item { cursor: pointer; }
button.crypto-market-radar-item:hover { background: rgba(76,141,255,.09); border-color: rgba(76,141,255,.25); }
.crypto-market-radar-item:focus-visible { outline: 2px solid rgba(76,141,255,.72); outline-offset: -2px; }
.crypto-market-radar-item strong { grid-row: 1 / 3; color: #edf3fa; font-size: .73rem; }
.crypto-market-radar-change { font-weight: 700; }
.crypto-market-radar-item.is-positive .crypto-market-radar-change { color: #58d7a0; }
.crypto-market-radar-item.is-negative .crypto-market-radar-change { color: #ff7d8a; }
.crypto-market-radar-item.is-neutral .crypto-market-radar-change { color: #9caabd; }
.crypto-market-radar-item.is-active { background: rgba(76,141,255,.14); border-color: rgba(76,141,255,.48); box-shadow: inset 2px 0 #4c8dff; }
.crypto-market-radar.is-stale { border-color: rgba(232,178,80,.25); }
.crypto-market-radar-retry { flex: 0 0 auto; min-height: 30px; padding: 0 10px; color: #cfe0f6; background: rgba(76,141,255,.12); border: 1px solid rgba(76,141,255,.25); border-radius: 7px; cursor: pointer; }
.chart-object-row {
  --object-inspector-width: 300px;
  display: grid;
  grid-template-columns: 0 0 minmax(0,1fr);
  min-width: 0;
  align-items: stretch;
  transition: grid-template-columns .18s ease;
}
.chart-object-row.inspector-open { grid-template-columns: var(--object-inspector-width) 8px minmax(0,1fr); }
.chart-object-row .object-inspector-slot { grid-column: 1; grid-row: 1; min-width: 0; min-height: 0; overflow: hidden; }
.chart-object-row .object-inspector-divider { position: relative; grid-column: 2; grid-row: 1; min-width: 0; cursor: col-resize; touch-action: none; }
.object-inspector-divider::before { content: ''; position: absolute; inset: 0 3px; background: rgba(91,111,138,.24); }
.object-inspector-divider:focus-visible { outline: 1px solid rgba(76,141,255,.72); outline-offset: -1px; }
.object-inspector-divider:focus-visible::before,
.object-inspector-divider:hover::before { background: rgba(105,139,185,.58); }
.chart-object-row > .chart-card { grid-column: 3; grid-row: 1; min-width: 0; }
.main-workspace .chart-dock-layout { grid-column: 1; grid-row: 1; min-width: 0; }
.right-workspace-column { display: grid; grid-column: 2; grid-row: 1; min-width: 0; gap: 12px; }
.right-workspace-column .coach-card { grid-column: auto; grid-row: auto; width: 100%; max-height: calc(61vh + 120px); }
.market-events-card { min-width: 0; padding: 16px 18px; background: var(--panel); border-radius: var(--radius-lg); }
.market-events-card h2 { margin: 3px 0 0; color: var(--text); font-size: 1rem; }
.market-events-status { margin: 18px 0 2px; color: var(--dim); font-size: .75rem; line-height: 1.5; }
.market-events-list { max-height: 276px; margin: 12px 0 0; padding: 0; overflow-y: auto; list-style: none; }
.market-event-row { display: grid; gap: 3px; padding: 8px 0; align-items: center; grid-auto-flow: column; grid-auto-columns: min-content 1fr auto; }
.market-event-row + .market-event-row { border-top: 1px solid rgba(255,255,255,.055); }
.market-event-context { color: var(--dim); font-size: .68rem; font-variant-numeric: tabular-nums; }

.market-event-row strong { color: var(--text); font-size: .76rem; font-weight: 600; line-height: 1.35; }
.market-event-row.is-new { animation: market-event-arrival 240ms ease-out; }
.market-alert-row {
  grid-auto-flow: row;
  grid-template-columns: minmax(0,1fr) auto;
  grid-auto-columns: auto;
  gap: 3px 8px;
  align-items: start;
}
.market-alert-row .market-event-context:last-child {
  grid-column: 1 / -1;
  font-size: .63rem;
}
.market-alerts-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.market-alerts-header button {
  min-height: 30px;
  padding: 0 10px;
  color: #cfe0f6;
  background: rgba(76,141,255,.14);
  border: 1px solid rgba(76,141,255,.28);
  border-radius: 7px;
  font: inherit;
  font-size: .62rem;
  font-weight: 700;
  cursor: pointer;
}
.market-alerts-header button:disabled {
  opacity: .65;
  cursor: default;
}
.alert-priority {
  align-self: center;
  padding: 2px 6px;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 999px;
  color: #9cb0c8;
  background: rgba(255,255,255,.03);
  font-size: .54rem;
  font-weight: 700;
  letter-spacing: .04em;
}
.alert-priority.is-high {
  color: #ffcad2;
  border-color: rgba(239, 83, 80, .38);
  background: rgba(239, 83, 80, .12);
}
.alert-priority.is-medium {
  color: #b8d4ff;
  border-color: rgba(76, 141, 255, .34);
  background: rgba(76, 141, 255, .1);
}

/* subtle colored badge indicating event type - keeps dark theme and small footprint */
.market-event-badge { width: 8px; height: 8px; border-radius: 50%; display: inline-block; margin-right: 10px; opacity: 0.95; box-shadow: 0 0 0 3px rgba(0,0,0,0.35) inset; }
.market-event-badge.type-bullish { background: rgba(40, 167, 82, 0.12); border: 1px solid rgba(40,167,82,0.35); }
.market-event-badge.type-bearish { background: rgba(220, 53, 69, 0.12); border: 1px solid rgba(220,53,69,0.35); }
.market-event-badge.type-warning { background: rgba(255, 193, 7, 0.12); border: 1px solid rgba(255,193,7,0.35); }
.market-event-badge.type-info { background: rgba(130, 140, 150, 0.10); border: 1px solid rgba(130,140,150,0.25); }
@keyframes market-event-arrival { from { opacity: .55; } to { opacity: 1; } }
.fibonacci-context-card { min-height: 88px; padding: 14px 16px; background: var(--panel); border-radius: var(--radius-lg); }
.heatmap-details-marker-row { display: flex; grid-column: 1 / -1; align-items: center; min-height: 24px; gap: 7px; margin-top: 5px; }
.heatmap-details-marker { display: inline-block; flex: 0 0 auto; box-sizing: border-box; border: 1.5px solid rgba(236,242,248,.88); border-radius: 50%; }
.heatmap-details-marker-row > strong { color: #aeb9c7; font-size: .68rem; font-variant-numeric: tabular-nums; }
.main-workspace .market-context-panel { grid-column: 1; grid-row: 2; width: 100%; }
.main-workspace .heatmap-details {
  position: relative;
  top: auto;
  right: auto;
  z-index: 1;
  display: none;
  width: 100%;
  height: 100%;
  max-height: 100%;
  padding: 18px;
  overflow-y: auto;
  visibility: hidden;
  transform: none;
  background: #0e151e;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-panel);
}
.main-workspace .heatmap-details.is-open { display: block; visibility: visible; transform: none; }
#technical-snapshot, #market-intelligence { grid-column: 1; }

@media (max-width:1180px) {
  .main-workspace { grid-template-columns: minmax(0,1fr) minmax(290px,340px); }
  .main-workspace .chart-dock-layout { grid-column: 1; }
  .right-workspace-column { grid-column: 2; }
  .chart-object-row,
  .chart-object-row.inspector-open { grid-template-columns: minmax(0,1fr); }
  .chart-object-row .object-inspector-slot { display: contents; }
  .chart-object-row .object-inspector-divider { display: none; }
  .chart-object-row > .chart-card { grid-column: 1; }
  .main-workspace .heatmap-details,
  .main-workspace .heatmap-details.is-open {
    position: fixed;
    top: 12px;
    left: 12px;
    right: auto;
    bottom: 12px;
    z-index: 80;
    width: min(360px,calc(100vw - 24px));
    height: auto;
    max-height: calc(100vh - 24px);
    visibility: hidden;
    transform: translateX(-102%);
  }
  .main-workspace .heatmap-details.is-open { visibility: visible; transform: translateX(0); }
}

@media (max-width:820px) {
  .crypto-market-radar { align-items: stretch; flex-wrap: wrap; gap: 5px 10px; }
  .crypto-market-radar-status { max-width: none; align-self: center; }
  .crypto-market-radar-list { flex-basis: 100%; order: 3; padding-bottom: 2px; }
  .main-workspace { grid-template-columns: minmax(0,1fr); overflow: visible; }
  .main-workspace .chart-dock-layout { grid-column: 1; grid-row: auto; order: 1; }
  .right-workspace-column { grid-column: 1; grid-row: auto; order: 2; }
  .right-workspace-column .coach-card { max-height: none; overflow: visible; }
  .main-workspace .market-context-panel { grid-column: 1; grid-row: auto; order: 3; }
  .main-workspace .heatmap-details,
  .main-workspace .heatmap-details.is-open {
    position: fixed;
    top: auto;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 80;
    display: block;
    width: 100%;
    height: auto;
    min-height: 64vh;
    max-height: 88vh;
    border-radius: 12px 12px 0 0;
    visibility: hidden;
    transform: translateY(102%);
  }
  .main-workspace .heatmap-details.is-open { visibility: visible; transform: translateY(0); }
}
@media (prefers-reduced-motion:reduce) { .main-workspace { transition: none; } }

/* Scenario Tab Panel Styling */
.scenarios-panel {
  margin-top: 1rem;
  padding: 1.5rem;
  background: var(--bg-card, #0e1726);
  border: 1px solid var(--border-color, #1e293b);
  border-radius: 10px;
}
.scenarios-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.25rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--border-color, #1e293b);
}
.scenarios-meta {
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--text-muted, #94a3b8);
}
.scenarios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.25rem;
}
.scenario-card {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 380px;
  padding: 1.5rem;
  background: var(--bg-surface, #131d31);
  border: 1px solid var(--border-color, #1e293b);
  border-radius: 8px;
  box-shadow: var(--shadow-card, 0 4px 6px -1px rgba(0, 0, 0, 0.2));
}
.scenario-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.scenario-rank {
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  color: var(--accent-color, #38bdf8);
  background: rgba(56, 189, 248, 0.12);
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
}
.scenario-status-badge {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.2rem 0.65rem;
  border-radius: 4px;
  background: rgba(148, 163, 184, 0.15);
  color: #cbd5e1;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.scenario-title {
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.35;
  margin: 0;
  color: var(--text-primary, #f8fafc);
}
.scenario-evidence-block {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.85rem 1rem;
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 6px;
}
.scenario-evidence-block .evidence-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.85rem;
  color: var(--text-secondary, #cbd5e1);
}
.scenario-evidence-block .evidence-title {
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.05em;
  color: var(--text-muted, #94a3b8);
}
.scenario-evidence-block .evidence-value {
  font-size: 0.9rem;
  color: var(--text-secondary, #cbd5e1);
}
.scenario-evidence-block .evidence-value strong {
  font-size: 1.05rem;
  color: var(--accent-color, #38bdf8);
}
.scenario-evidence-block .evidence-bar-track {
  width: 100%;
  height: 6px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 3px;
  overflow: hidden;
}
.scenario-evidence-block .evidence-bar-fill {
  display: block;
  height: 100%;
  background: var(--accent-color, #38bdf8);
  border-radius: 3px;
}
.scenario-evidence-block .evidence-subtext {
  display: flex;
  justify-content: flex-end;
  margin-top: 0.15rem;
}
.scenario-evidence-block .evidence-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.15);
  padding: 0.1rem 0.45rem;
  border-radius: 3px;
}
.scenario-summary {
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--text-muted, #94a3b8);
  margin: 0;
}
.scenario-section {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.825rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 0.75rem;
}
.scenario-section h4 {
  margin: 0;
  font-size: 0.775rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted, #94a3b8);
}
.scenario-section ul {
  margin: 0;
  padding-left: 1.25rem;
  color: var(--text-secondary, #cbd5e1);
  line-height: 1.45;
}
.scenario-section ul li {
  margin-bottom: 0.25rem;
}
.scenario-unavailable {
  padding: 1.25rem;
  font-size: 0.85rem;
  color: var(--text-muted, #94a3b8);
  text-align: center;
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.2);
  border-radius: 6px;
}
.scenarios-loading {
  padding: 1.5rem;
  font-size: 0.85rem;
  color: var(--text-muted, #94a3b8);
  text-align: center;
}

.scenario-card.is-selected {
  border-color: var(--accent-color, #38bdf8);
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.25);
  background: rgba(19, 29, 49, 0.95);
}
.scenario-path-badge .path-status-badge {
  font-size: 0.725rem;
  font-weight: 600;
  color: #f59e0b;
  background: rgba(245, 158, 11, 0.15);
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.scenarios-disclaimer {
  font-size: 0.8rem;
  color: var(--text-muted, #94a3b8);
  margin: 0.25rem 0 0 0;
  font-style: italic;
}

.scenario-status-badge.status-waiting { background: rgba(148, 163, 184, 0.15); color: #cbd5e1; }
.scenario-status-badge.status-developing { background: rgba(56, 189, 248, 0.15); color: #38bdf8; }
.scenario-status-badge.status-active { background: rgba(245, 158, 11, 0.18); color: #f59e0b; }
.scenario-status-badge.status-confirmed { background: rgba(16, 185, 129, 0.18); color: #10b981; }
.scenario-status-badge.status-invalidated { background: rgba(239, 68, 68, 0.18); color: #ef4444; }
.scenario-status-badge.status-completed { background: rgba(59, 130, 246, 0.18); color: #3b82f6; }

.path-unavailable-block {
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.25);
  border-radius: 6px;
  padding: 10px 12px;
  margin: 10px 0;
}
.path-unavailable-title {
  color: #f87171;
  font-weight: 600;
  font-size: 0.85rem;
  margin-bottom: 4px;
}
.path-unavailable-reason {
  color: #cbd5e1;
  font-size: 0.8rem;
  line-height: 1.35;
}

.watch-next-block {
  background: rgba(15, 23, 42, 0.6);
  border: 1px solid rgba(56, 189, 248, 0.2);
  border-radius: 6px;
  padding: 10px 12px;
  margin: 10px 0;
}
.watch-next-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.watch-next-tf {
  font-size: 0.75rem;
  font-weight: 700;
  color: #94a3b8;
  background: rgba(148, 163, 184, 0.12);
  padding: 2px 6px;
  border-radius: 4px;
}
.readiness-status-badge {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 2px 7px;
  border-radius: 4px;
  text-transform: uppercase;
}
.readiness-status-badge.readiness-ready { background: rgba(16, 185, 129, 0.2); color: #10b981; }
.readiness-status-badge.readiness-developing { background: rgba(56, 189, 248, 0.2); color: #38bdf8; }
.readiness-status-badge.readiness-blocked { background: rgba(245, 158, 11, 0.2); color: #f59e0b; }
.readiness-status-badge.readiness-unavailable { background: rgba(239, 68, 68, 0.2); color: #ef4444; }

.readiness-score-val {
  font-size: 0.8rem;
  font-weight: 700;
  color: #f8fafc;
}
.readiness-bar-track {
  height: 4px;
  background: rgba(30, 41, 59, 0.8);
  border-radius: 2px;
  overflow: hidden;
  margin-bottom: 8px;
}
.readiness-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #38bdf8, #10b981);
  border-radius: 2px;
  transition: width 0.3s ease;
}
.watch-next-body {
  font-size: 0.78rem;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.readiness-sec-title {
  font-weight: 600;
  color: #94a3b8;
  font-size: 0.72rem;
  margin-top: 4px;
}
.readiness-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.readiness-cond {
  padding: 3px 6px;
  border-radius: 4px;
  line-height: 1.3;
}
.readiness-cond.sat { color: #6ee7b7; background: rgba(16, 185, 129, 0.08); }
.readiness-cond.pend { color: #bae6fd; background: rgba(56, 189, 248, 0.08); }
.readiness-cond.block { color: #fca5a5; background: rgba(239, 68, 68, 0.08); }

/* T&E workstation polish — compact indicators, readable values, persistent scenarios */
.market-dock .volume-dock { height: 72px; }
.market-dock .macd-dock { height: 56px; }
.market-dock .rsi-dock { height: 120px; }
.market-dock .stoch-rsi-dock { height: 42px; }
.market-dock .dock-card { padding: 5px 9px; }
.market-dock .dock-card-header { min-height: 15px; gap: 8px; }
.market-dock .dock-card-title { color: #7f8c9c; font-size: .58rem; letter-spacing: .055em; text-transform: uppercase; }
.volume-dock-value,
.macd-dock-value,
.rsi-dock-value,
.stoch-rsi-dock-value {
  margin-left: auto;
  color: #d6deea;
  font-size: .88rem;
  font-weight: 760;
  line-height: 1;
  letter-spacing: -.015em;
  font-variant-numeric: tabular-nums;
  text-shadow: 0 0 18px rgba(255,255,255,.035);
}
.volume-dock-value.is-bullish { color: rgba(101,188,130,.98); }
.volume-dock-value.is-bearish { color: rgba(226,91,104,.98); }
.macd-dock-value { display: inline-flex; align-items: center; gap: 8px; max-width: none; overflow: visible; }
.macd-value-main { color: rgba(91,136,220,.98); }
.macd-value-signal { color: rgba(224,174,83,.96); }
.macd-value-hist { color: #9ba8b8; }
.macd-value-hist.is-bullish { color: rgba(101,188,130,.98); }
.macd-value-hist.is-bearish { color: rgba(226,91,104,.98); }
.rsi-dock-value { color: rgba(119,143,210,.98); }
.rsi-dock-value.is-overbought { color: rgba(226,91,104,.98); }
.rsi-dock-value.is-oversold { color: rgba(101,188,130,.98); }
.stoch-rsi-dock-value { display: inline-flex; gap: 8px; }
.stoch-value-k { color: rgba(91,136,220,.98); }
.stoch-value-d { color: rgba(224,174,83,.98); }
.market-dock .dock-card-content { margin-top: 2px; }

/* External news remains a presentation-only peer of the synchronized indicator stack. */
.lower-analysis-split {
  --news-share: 35%;
  position: relative;
  display: grid;
  grid-template-columns: minmax(260px,var(--news-share)) 8px minmax(50%,1fr);
  width: 100%;
  min-width: 0;
  align-items: stretch;
}
.lower-analysis-split > .market-dock { min-width: 0; width: 100%; }
.lower-analysis-split.is-news-collapsed { grid-template-columns: 0 0 minmax(0,1fr); }
.lower-analysis-split.is-news-collapsed .crypto-news-panel,
.lower-analysis-split.is-news-collapsed .lower-analysis-divider { visibility: hidden; overflow: hidden; pointer-events: none; }
.crypto-news-panel { min-width: 0; padding: 9px 10px; overflow: hidden; color: var(--soft); background: #0d141c; border: 1px solid var(--border); border-radius: var(--radius-md) 0 0 var(--radius-md); }
.crypto-news-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 30px; }
.crypto-news-header > div { display: grid; gap: 1px; }
.crypto-news-header strong { color: var(--text); font-size: .78rem; }
.crypto-news-header .section-kicker { font-size: .48rem; }
.crypto-news-collapse,
.crypto-news-retry,
.crypto-news-restore { min-height: 28px; padding: 0 9px; color: #b7c5d7; background: #121c27; border: 1px solid rgba(255,255,255,.09); border-radius: 6px; font: inherit; font-size: .58rem; cursor: pointer; }
.crypto-news-controls { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 7px; margin-top: 7px; }
.crypto-news-controls label { display: grid; gap: 3px; color: var(--dim); font-size: .5rem; }
.crypto-news-controls select { min-width: 0; min-height: 29px; padding: 0 7px; color: #c9d4e1; background: #0a1119; border: 1px solid rgba(255,255,255,.08); border-radius: 5px; font: inherit; font-size: .59rem; }
.crypto-news-status { margin: 8px 0 0; color: var(--dim); font-size: .58rem; line-height: 1.35; }
.crypto-news-list { display: grid; gap: 1px; margin-top: 6px; }
.crypto-news-item { display: grid; gap: 3px; padding: 6px 5px; color: inherit; border-top: 1px solid rgba(255,255,255,.045); text-decoration: none; }
.crypto-news-item:first-child { border-top: 0; }
.crypto-news-item:hover { background: rgba(255,255,255,.025); }
.crypto-news-item-head { display: flex; align-items: center; gap: 6px; color: var(--dim); font-size: .48rem; }
.crypto-news-item-head time { font-variant-numeric: tabular-nums; }
.crypto-news-item-head .crypto-news-external { margin-left: auto; }
.crypto-news-item strong { overflow: hidden; color: #cbd6e3; font-size: .61rem; font-weight: 620; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.crypto-news-item-meta { display: flex; gap: 6px; color: #738297; font-size: .49rem; }
.crypto-news-retry { margin-top: 8px; }
.lower-analysis-divider { position: relative; cursor: col-resize; touch-action: none; }
.lower-analysis-divider::before { content: ''; position: absolute; inset: 0 3px; background: rgba(91,111,138,.25); transition: background .12s ease; }
.lower-analysis-divider:hover::before,
.lower-analysis-divider:focus-visible::before { background: rgba(105,139,185,.58); }
.lower-analysis-divider:focus-visible { outline: 1px solid rgba(76,141,255,.7); outline-offset: -1px; }
.crypto-news-restore { position: absolute; z-index: 2; top: 7px; left: 7px; }
.lower-analysis-split:not(.is-news-collapsed) .crypto-news-restore { display: none; }
.crypto-news-collapse:focus-visible,
.crypto-news-retry:focus-visible,
.crypto-news-restore:focus-visible,
.crypto-news-controls select:focus-visible,
.crypto-news-item:focus-visible { outline: 1px solid rgba(76,141,255,.75); outline-offset: 1px; }

@media (min-width:821px) and (max-width:1100px) {
  .lower-analysis-split { --news-share: 35%; }
  .lower-analysis-divider { cursor: default; pointer-events: none; }
}
@media (max-width:820px) {
  .lower-analysis-split,
  .lower-analysis-split.is-news-collapsed { display: flex; flex-direction: column; }
  .lower-analysis-divider { display: none; }
  .lower-analysis-split > .market-dock { order: 2; width: 100%; }
  .crypto-news-panel { order: 1; width: 100%; min-width: 0; border-radius: var(--radius-md); }
  .lower-analysis-split.is-news-collapsed .crypto-news-panel { display: none; }
  .crypto-news-restore { position: static; order: 1; align-self: flex-start; margin-bottom: 6px; min-height: 36px; }
}
.crypto-news-body[hidden] { display: none; }
.crypto-news-list { max-height: 310px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #344052 transparent; }
.chart-secondary-analysis { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 10px; margin-top: 10px; }
.chart-secondary-analysis > * { min-width: 0; margin: 0; }
@media (max-width:820px) {
  .chart-secondary-analysis { grid-template-columns: minmax(0,1fr); }
}

.share-snapshot { color: #b9d3ff; background: rgba(76,141,255,.1); border-color: rgba(76,141,255,.28); }
.share-snapshot:hover { color: #eef5ff; background: rgba(76,141,255,.16); border-color: rgba(76,141,255,.45); }

/* Community stays intentionally lightweight until multi-user transport is connected. */
.sidebar-card { margin-top: auto; padding-top: 10px; }
.sidebar-foot { margin-top: 8px; }
.sidebar-card-content { padding: 7px 8px 8px; }
.community-sidebar-hint { color: #6c7b8f; font-size: .54rem; text-transform: uppercase; letter-spacing: .05em; }
.main-workspace { position: relative; }
.community-drawer-backdrop {
  position: absolute;
  inset: 0;
  z-index: 59;
  background: rgba(4, 8, 12, .38);
  opacity: 0;
  transition: opacity .24s ease;
}
.community-drawer-backdrop.is-open { opacity: 1; }
.community-drawer {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 60;
  width: min(380px, 38vw);
  max-width: calc(100% - 16px);
  padding: 12px;
  overflow-y: auto;
  background: #0d151f;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  box-shadow: 0 20px 42px rgba(0,0,0,.4);
  transform: translateX(calc(-100% - 20px));
  opacity: 0;
  pointer-events: none;
  transition: transform .24s ease, opacity .24s ease;
}
.community-drawer.is-open {
  transform: translateX(0);
  opacity: 1;
  pointer-events: auto;
}
.community-drawer-header { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.community-drawer-header h2 { margin: 0; color: #d9e2ee; font-size: .88rem; }
.community-drawer-header button {
  min-height: 30px;
  padding: 0 10px;
  color: #c2cedc;
  background: #121c27;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 7px;
  font: inherit;
  font-size: .6rem;
  cursor: pointer;
}
.community-drawer-section { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,.06); }
.community-drawer-section h3 { margin: 0 0 7px; color: #c9d4e3; font-size: .68rem; font-weight: 700; }
.community-friends-list,
.community-top-rated-list,
.community-my-analysis-grid { display: grid; gap: 6px; }
.community-friends-list article,
.community-top-rated-card,
.community-my-analysis-grid article {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 7px 8px;
  background: #0a1119;
  border: 1px solid rgba(255,255,255,.055);
  border-radius: 7px;
}
.community-online-dot { width: 7px; height: 7px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 3px rgba(34,197,94,.15); }
.community-online-dot.is-offline { background: #7e8b9b; box-shadow: none; }
.community-friends-list strong,
.community-my-analysis-grid strong,
.community-top-rated-card strong { color: #d4dee9; font-size: .61rem; font-weight: 650; }
.community-friends-list small,
.community-my-analysis-grid span,
.community-top-rated-card small { color: #6c7c90; font-size: .54rem; }
.community-top-rated-card { grid-template-columns: 40px 1fr; }
.community-top-rated-card .thumb {
  display: grid;
  place-items: center;
  width: 40px;
  height: 28px;
  color: #8ea5c2;
  background: #111b28;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 6px;
  font-size: .5rem;
}

.community-mini-head { display: flex; align-items: center; gap: 6px; color: #c9d4e3; font-size: .66rem; font-weight: 700; }
.community-mini-head small { margin-left: auto; color: #708096; font-size: .54rem; font-weight: 650; text-transform: uppercase; }
.community-live-dot { width: 6px; height: 6px; background: #22c55e; border-radius: 50%; box-shadow: 0 0 8px rgba(34,197,94,.28); }
.chat-area { display: grid; place-items: center; height: 74px; padding: 9px; background: #0a1017; border-color: rgba(255,255,255,.055); border-radius: 7px; }
.community-empty { margin: 0; color: #6f7d90; font-size: .58rem; line-height: 1.45; text-align: center; }
.community-name-label { color: #738196; font-size: .55rem; font-weight: 650; text-transform: uppercase; letter-spacing: .05em; }
.chat-input { box-sizing: border-box; min-width: 0; padding: 7px 8px; color: #c4ceda; background: #0a1017; border-color: rgba(255,255,255,.065); }
.chat-input:focus { outline: 1px solid rgba(76,141,255,.55); border-color: rgba(76,141,255,.35); }
.community-comment { resize: none; font-family: inherit; line-height: 1.35; }
.community-draft { position: relative; overflow: hidden; border: 1px solid rgba(76,141,255,.2); border-radius: 7px; background: #090f16; }
.community-draft img { display: block; width: 100%; max-height: 108px; object-fit: cover; opacity: .9; }
.community-draft button { position: absolute; top: 5px; right: 5px; padding: 3px 6px; color: #d3dbe6; background: rgba(8,12,18,.84); border: 1px solid rgba(255,255,255,.1); border-radius: 5px; font: inherit; font-size: .52rem; cursor: pointer; }
.community-footnote { color: #5f6d80; font-size: .52rem; text-align: center; }

/* Compact live Scenario Engine in the fixed guidance column. */
.scenario-explorer-live.scenarios-panel { margin: 0; padding: 14px 15px; background: var(--panel); border-color: var(--border); border-radius: var(--radius-lg); }
.right-workspace-column .scenario-explorer-live { width: 100%; max-height: min(440px,48vh); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.scenario-explorer-live .scenarios-header { margin-bottom: 10px; padding-bottom: 9px; }
.scenario-explorer-live .scenarios-header h2 { margin: 2px 0 0; font-size: .94rem; }
.scenario-explorer-live .scenarios-meta { font-size: .62rem; }
.scenario-explorer-live .scenarios-grid { grid-template-columns: 1fr; gap: 8px; }
.scenario-explorer-live .scenario-card { min-height: 0; gap: 8px; padding: 11px 12px; background: #0d141d; border-radius: 8px; box-shadow: none; }
.scenario-explorer-live .scenario-card.is-selected { box-shadow: inset 2px 0 0 rgba(76,141,255,.85); border-color: rgba(76,141,255,.22); background: #0f1722; }
.scenario-explorer-live .scenario-card-header { gap: 7px; }
.scenario-explorer-live .scenario-rank { padding: 2px 5px; font-size: .58rem; }
.scenario-explorer-live .scenario-status-badge { margin-left: auto; padding: 2px 5px; font-size: .57rem; }
.scenario-explorer-live .scenario-title { font-size: .82rem; line-height: 1.28; }
.scenario-explorer-live .watch-next-block { margin: 0; padding: 8px 9px; }
.scenario-explorer-live .watch-next-header { gap: 6px; }
.scenario-explorer-live .watch-next-tf { font-size: .64rem; font-weight: 750; }
.scenario-explorer-live .readiness-status-badge { font-size: .54rem; }
.scenario-explorer-live .readiness-score-val { font-size: .64rem; }
.scenario-explorer-live .readiness-bar-track { height: 3px; }
.scenario-explorer-live .watch-next-body { margin-top: 7px; }
.scenario-explorer-live .readiness-sec-title { margin-top: 5px; font-size: .55rem; }
.scenario-explorer-live .readiness-cond { font-size: .62rem; line-height: 1.35; }
.scenario-explorer-live .scenario-evidence-block { padding: 7px 8px; }
.scenario-explorer-live .scenario-evidence-block .evidence-title { font-size: .57rem; }
.scenario-explorer-live .scenario-evidence-block .evidence-value { font-size: .62rem; }
.scenario-explorer-live .scenario-evidence-block .evidence-value strong { font-size: .75rem; }
.scenario-explorer-live .scenario-evidence-block .evidence-bar-track { height: 3px; }
.scenario-explorer-live .scenario-summary { font-size: .66rem; line-height: 1.4; }
.scenario-explorer-live .scenario-section { display: flex; gap: 4px; padding-top: 6px; font-size: .64rem; }
.scenario-explorer-live .scenario-section h4 { font-size: .56rem; }
.scenario-explorer-live .scenario-section ul { padding-left: 16px; line-height: 1.35; }
.scenario-explorer-live .scenario-section li { margin-bottom: 2px; }
.scenario-explorer-live .scenarios-disclaimer { display: none; }
.scenario-explorer-live .path-unavailable-block { margin: 0; padding: 7px 8px; }
.scenario-explorer-live .path-unavailable-title { font-size: .65rem; }
.scenario-explorer-live .path-unavailable-reason { font-size: .58rem; }

@media (max-width:1450px) {
  .sidebar-card { display: block; }
}
@media (min-width:821px) and (max-width:1100px) {
  .market-dock .rsi-dock { height: 100px; }
}
@media (max-width:820px) {
  .community-drawer {
    position: fixed;
    top: 52px;
    left: 8px;
    bottom: 8px;
    width: min(92vw, 380px);
    max-width: calc(100vw - 16px);
  }
  .community-drawer-backdrop {
    position: fixed;
    top: 52px;
    left: 0;
    right: 0;
    bottom: 0;
  }
  .market-dock .volume-dock { height: 72px; }
  .market-dock .macd-dock { height: 56px; }
  .market-dock .rsi-dock { height: 90px; }
  .market-dock .stoch-rsi-dock { height: 42px; }
  .scenario-explorer-live .scenario-card { min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .community-drawer,
  .community-drawer-backdrop { transition: none; }
}

/* Community v1: real shared posts, still intentionally compact. */
.chat-area {
  display: block;
  height: 156px;
  overflow-y: auto;
  padding: 6px;
  scrollbar-width: thin;
}
.community-message {
  padding: 7px;
  margin-bottom: 6px;
  background: #0d141d;
  border: 1px solid rgba(255,255,255,.055);
  border-radius: 7px;
}
.community-message:last-child { margin-bottom: 0; }
.community-message-meta { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.community-message-meta strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: #d6dfeb; font-size: .59rem; }
.community-message-meta time { margin-left: auto; color: #637185; font-size: .49rem; font-variant-numeric: tabular-nums; }
.community-message p { margin: 0 0 5px; color: #aab7c7; font-size: .56rem; line-height: 1.35; overflow-wrap: anywhere; }
.community-message img { display: block; width: 100%; max-height: 92px; object-fit: cover; border-radius: 5px; border: 1px solid rgba(76,141,255,.16); }
.community-send {
  width: 100%;
  padding: 7px 8px;
  color: #dbe9ff;
  background: rgba(76,141,255,.14);
  border: 1px solid rgba(76,141,255,.3);
  border-radius: 7px;
  font: inherit;
  font-size: .58rem;
  font-weight: 700;
  cursor: pointer;
}
.community-send:hover { background: rgba(76,141,255,.2); border-color: rgba(76,141,255,.45); }
.community-send:disabled { opacity: .55; cursor: wait; }

/* Community v2 — analysis feed and chart takeover viewer */
.community-title { font-weight: 650; }
.community-trade-details { border-top: 1px solid rgba(255,255,255,.05); padding-top: 4px; }
.community-trade-details summary { color: #78879a; font-size: .55rem; cursor: pointer; list-style: none; }
.community-trade-details summary::-webkit-details-marker { display: none; }
.community-trade-details[open] summary { margin-bottom: 6px; color: #9aa9bb; }
.community-bias { width: 100%; margin-bottom: 5px; }
.community-level-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; }
.community-level-grid .chat-input { padding-inline: 5px; font-size: .52rem; }
.community-analysis-card { cursor: pointer; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.community-analysis-card:hover,
.community-analysis-card:focus-visible { background: #101923; border-color: rgba(76,141,255,.28); outline: none; transform: translateY(-1px); }
.community-analysis-title { margin: 0 0 5px; color: #e0e7f0; font-size: .62rem; line-height: 1.3; }
.community-analysis-chips { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 5px; }
.community-analysis-chips > span { padding: 2px 5px; color: #8290a2; background: rgba(255,255,255,.035); border: 1px solid rgba(255,255,255,.05); border-radius: 999px; font-size: .48rem; font-weight: 650; }
.community-bias-chip.is-bullish { color: #86cda0; border-color: rgba(101,188,130,.22); background: rgba(101,188,130,.06); }
.community-bias-chip.is-bearish { color: #e38f9a; border-color: rgba(226,91,104,.22); background: rgba(226,91,104,.06); }
.community-bias-chip.is-neutral { color: #9eabbc; }
.community-analysis-summary { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.community-analysis-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; color: #65758a; font-size: .49rem; }
.community-analysis-footer span:last-child { color: #89a9d7; }
.community-analysis-meta-left { display: flex; align-items: center; gap: 6px; min-width: 0; }
.community-analysis-rating { display: inline-flex; align-items: center; gap: 4px; }
.community-rating-select {
  min-width: 44px;
  padding: 1px 4px;
  color: #9fb1c8;
  background: #0b121a;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 6px;
  font: inherit;
  font-size: .48rem;
}
.community-rating-select:disabled { opacity: .9; cursor: default; }
.community-rating-summary { color: #7f91a7; font-size: .48rem; }

.chart-dock-layout { position: relative; }
.chart-dock-layout.community-view-open > .chart-card,
.chart-dock-layout.community-view-open > .lower-analysis-split { display: none; }
.community-analysis-viewer {
  position: relative;
  grid-column: 1 / -1;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow: visible;
  background: #091018;
  border: 1px solid rgba(255,255,255,.07);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-panel);
}
.community-analysis-viewer[hidden] { display: none; }
.community-viewer-header {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: 12px;
  align-items: center;
  min-height: 52px;
  padding: 9px 12px;
  background: #0d151e;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.community-viewer-back,
.community-viewer-info,
.community-inspector-head button,
.community-comment-compose button {
  color: #c2cedc;
  background: #121c27;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 7px;
  font: inherit;
  cursor: pointer;
}
.community-viewer-back { min-height: 32px; padding: 0 10px; font-size: .64rem; }
.community-viewer-info { width: 32px; height: 32px; padding: 0; color: #b9d3ff; font-weight: 800; }
.community-viewer-info[aria-expanded="true"] { color: #fff; border-color: rgba(76,141,255,.45); background: rgba(76,141,255,.14); }
.community-viewer-heading { display: grid; min-width: 0; gap: 2px; }
.community-viewer-heading strong { overflow: hidden; color: #e5ebf3; font-size: .83rem; text-overflow: ellipsis; white-space: nowrap; }
.community-viewer-heading span { overflow: hidden; color: #718196; font-size: .57rem; text-overflow: ellipsis; white-space: nowrap; }
.community-viewer-body { display: grid; grid-template-columns: minmax(0,1fr) auto; min-width: 0; min-height: 0; }
.community-viewer-main { min-width: 0; overflow: visible; padding: 14px; }
.community-viewer-main > img { display: block; width: 100%; max-width: 100%; height: clamp(480px,55vh,590px); object-fit: fill; background: #070c12; border: 1px solid rgba(255,255,255,.055); border-radius: 8px; box-shadow: 0 5px 14px rgba(0,0,0,.12); cursor: zoom-in; }
.community-image-lightbox { position: fixed; inset: 0; z-index: 300; display: grid; grid-template-rows: auto 1fr; background: rgba(2,7,13,.94); }
.community-image-lightbox[hidden] { display: none; }
.community-lightbox-toolbar { display: flex; align-items: center; justify-content: flex-end; gap: 6px; min-height: 48px; padding: 7px 12px; background: rgba(8,16,26,.92); border-bottom: 1px solid rgba(255,255,255,.07); }
.community-lightbox-toolbar button { min-width: 32px; min-height: 30px; border: 1px solid rgba(255,255,255,.10); border-radius: 5px; background: #111d2b; color: #c7d3e0; font: inherit; font-size: .72rem; cursor: pointer; }
.community-lightbox-toolbar span { min-width: 44px; color: #8797aa; font-size: .65rem; text-align: center; }
.community-lightbox-stage { position: relative; min-width: 0; min-height: 0; overflow: auto; touch-action: none; }
.community-lightbox-stage img { position: absolute; left: 50%; top: 50%; max-width: none; max-height: none; transform-origin: center; user-select: none; cursor: default; will-change: transform; }
.community-lightbox-stage.is-zoomed img { cursor: grab; }
.community-lightbox-stage.is-panning img { cursor: grabbing; }
.community-viewer-copy { padding: 12px 2px 4px; }
.community-viewer-author { display: flex; align-items: center; gap: 8px; }
.community-viewer-author strong { color: #dfe7f0; font-size: .76rem; }
.community-viewer-author span { padding: 2px 6px; border-radius: 999px; color: #8c9aad; background: rgba(255,255,255,.04); font-size: .54rem; font-weight: 700; }
.community-viewer-author span.is-bullish { color: #8bd0a2; background: rgba(101,188,130,.08); }
.community-viewer-author span.is-bearish { color: #e598a2; background: rgba(226,91,104,.08); }
.community-viewer-copy > p { margin: 8px 0 0; color: #aeb9c8; font-size: .73rem; line-height: 1.55; }
.community-viewer-levels { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 10px; }
.community-viewer-levels > span { display: grid; gap: 1px; min-width: 86px; padding: 7px 9px; background: #0d151e; border: 1px solid rgba(255,255,255,.055); border-radius: 7px; }
.community-viewer-levels small { color: #6f7e92; font-size: .51rem; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.community-viewer-levels strong { color: #dce4ed; font-size: .7rem; font-variant-numeric: tabular-nums; }
.community-comments { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.055); background: rgba(255,255,255,.008); }
.community-comments-head { display: flex; align-items: center; gap: 7px; }
.community-comments-head h3 { margin: 0; color: #c8d2df; font-size: .72rem; }
.community-comments-head span { color: #6d7b8f; font-size: .59rem; }
.community-comments-list { display: grid; gap: 7px; margin-top: 9px; }
.community-comments-empty { margin: 0; padding: 10px; color: #69788b; background: #0b121a; border-radius: 7px; font-size: .63rem; }
.community-comment-row { padding: 9px 10px; background: #0d151e; border: 1px solid rgba(255,255,255,.05); border-radius: 7px; }
.community-comment-row > div { display: flex; gap: 8px; align-items: center; }
.community-comment-row strong { color: #d4dee9; font-size: .64rem; }
.community-comment-row time { margin-left: auto; color: #657489; font-size: .52rem; }
.community-comment-row p { margin: 5px 0 0; color: #a5b2c2; font-size: .64rem; line-height: 1.45; }
.community-comment-compose { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 7px; margin-top: 9px; }
.community-comment-compose textarea { min-width: 0; resize: vertical; padding: 8px 9px; color: #c4ceda; background: #0a1119; border: 1px solid rgba(255,255,255,.07); border-radius: 7px; font: inherit; font-size: .64rem; }
.community-comment-compose button { align-self: stretch; padding: 0 12px; color: #d9e8ff; background: rgba(76,141,255,.12); border-color: rgba(76,141,255,.26); font-size: .62rem; font-weight: 700; }
.community-viewer-inspector { width: 260px; overflow-y: auto; padding: 13px; background: #0d151e; border-left: 1px solid rgba(255,255,255,.065); }
.community-viewer-inspector[hidden] { display: none; }
.community-inspector-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-bottom: 11px; border-bottom: 1px solid rgba(255,255,255,.055); }
.community-inspector-head > div { display: grid; gap: 1px; }
.community-inspector-head span { color: #66758a; font-size: .5rem; text-transform: uppercase; letter-spacing: .06em; }
.community-inspector-head strong { color: #dbe4ee; font-size: .76rem; }
.community-inspector-head button { min-height: 29px; padding: 0 8px; font-size: .55rem; }
.community-inspector-rows { display: grid; gap: 0; margin-top: 9px; }
.community-inspector-row { display: grid; grid-template-columns: minmax(70px,.75fr) minmax(0,1.25fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid rgba(255,255,255,.04); }
.community-inspector-row span { color: #718096; font-size: .55rem; }
.community-inspector-row strong { color: #cbd6e2; font-size: .59rem; font-weight: 650; text-align: right; overflow-wrap: anywhere; }
.community-inspector-note { margin: 12px 0 0; color: #647388; font-size: .53rem; line-height: 1.45; }

@media (max-width: 820px) {
  .community-analysis-viewer { position: relative; inset: auto; width: 100%; max-width: 100%; }
  .community-viewer-body { grid-template-columns: 1fr; }
  .community-viewer-main > img { width: 100%; height: auto; object-fit: contain; }
  .community-viewer-inspector { position: absolute; inset: 52px 0 0 auto; z-index: 3; width: min(86vw,320px); box-shadow: -16px 0 30px rgba(0,0,0,.35); }
  .community-level-grid { grid-template-columns: 1fr; }
}
