.sessions-page {
  width: calc(100% - 32px);
  max-width: 1120px;
  margin: 0 auto;
  padding: 14px 0 72px;
}

.sessions-command {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 38px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--border);
}

.sessions-product-title {
  display: flex;
  align-items: center;
  gap: 12px;
}

.session-inspector-kicker,
.session-archive-intro > span {
  color: var(--accent-2);
  font: 800 10px var(--mono);
  letter-spacing: .13em;
}

.sessions-product-title h1 {
  margin: 0;
  color: var(--text-hi);
  font-size: 16px;
  letter-spacing: -.02em;
}

.sessions-clock {
  flex: 0 0 auto;
  color: var(--text-md);
  font: 700 11px var(--mono);
  letter-spacing: .04em;
}

.sessions-tabs { width: min(280px, 100%); margin: 0 0 8px; }

.sessions-filter-bar,
.sessions-archive-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
  padding: 5px 7px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-card);
}

.sessions-filter-bar .ark-seg,
.sessions-archive-bar .ark-seg { flex: 1; min-width: 0; }

.sessions-archive-bar > span {
  color: var(--text-lo);
  font: 700 9px var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sessions-archive-date-filter { display: flex; align-items: center; gap: 7px; color: var(--text-lo); font: 700 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.sessions-archive-date-filter input { min-height: 32px; padding: 5px 7px; border: 1px solid var(--border); border-radius: 7px; background: var(--bg); color: var(--text-hi); font: 650 10px var(--mono); }

.sessions-live-mark {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
  color: var(--text-md);
  font: 800 9px var(--mono);
  letter-spacing: .08em;
}

.sessions-live-mark i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 13%, transparent);
  animation: session-live-pulse 1.8s ease-out infinite;
}

.sessions-live-mark.idle i { background: var(--text-lo); box-shadow: none; animation: none; }

.sessions-chip-skeleton {
  width: 72px;
  height: 30px;
  flex: 0 0 auto;
  border-radius: 15px;
  background: linear-gradient(90deg, var(--bg-hover), var(--bg-card), var(--bg-hover));
  background-size: 220% 100%;
  animation: session-shimmer 1.5s linear infinite;
}

.sessions-workspace {
  display: grid;
  grid-template-columns: minmax(0, 980px);
  align-items: start;
  justify-content: center;
  gap: 0;
}

.session-now {
  display: grid;
  grid-template-columns: minmax(170px, .8fr) minmax(220px, 1fr) minmax(320px, 1.35fr);
  align-items: center;
  gap: 26px;
  padding: 18px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.session-now-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
  color: var(--accent-2);
  font: 800 10px var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.session-now-status::before {
  content: '';
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.session-now-status.live::before { animation: session-live-pulse 1.8s ease-out infinite; }

.session-now h2 {
  margin: 0;
  color: var(--text-hi);
  font-size: clamp(23px, 3vw, 32px);
  letter-spacing: -.045em;
}

.session-now-date {
  display: block;
  margin-top: 7px;
  color: var(--text-lo);
  font: 600 10px var(--mono);
}

.session-btc {
  margin: 0;
  padding: 3px 26px;
  border-right: 1px solid var(--border);
  border-left: 1px solid var(--border);
}

.session-btc > span,
.session-now-meta dt {
  color: var(--text-lo);
  font: 700 9px var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.session-btc strong {
  display: block;
  margin-top: 8px;
  color: var(--text-hi);
  font: 800 clamp(27px, 3.5vw, 38px) var(--mono);
  letter-spacing: -.05em;
  font-variant-numeric: tabular-nums;
}

.session-btc b {
  display: inline-block;
  margin-top: 6px;
  color: var(--text-md);
  font: 800 13px var(--mono);
}

.session-btc b.up { color: var(--flow-in); }
.session-btc b.down { color: var(--flow-out); }

.session-now-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 22px;
  margin: 0;
}

.session-now-meta div { display: grid; gap: 4px; }
.session-now-meta dd { margin: 0; color: var(--text-md); font: 650 11px var(--mono); line-height: 1.35; }

.session-book { min-width: 0; padding-top: 12px; }

.session-price-stage {
  position: relative;
  min-height: 390px;
  margin-bottom: 26px;
  padding: 20px 20px 15px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 22%, var(--border));
  border-radius: 14px;
  background: linear-gradient(180deg, color-mix(in srgb, var(--accent-2) 5%, var(--bg-card)), var(--bg));
}

.session-price-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}

.session-price-head span { color: var(--text-lo); font: 700 9px var(--mono); letter-spacing: .08em; }
.session-price-head strong { display: block; margin-top: 5px; color: var(--text-hi); font: 800 21px var(--mono); font-variant-numeric: tabular-nums; }
.session-price-head strong b { margin-left: 8px; color: var(--text-md); font-size: 12px; }
.session-price-head strong b.up { color: var(--flow-in); }
.session-price-head strong b.down { color: var(--flow-out); }
.session-price-range { color: var(--text-md); font: 700 10px var(--mono); text-align: right; }

.session-price-live { display: inline-flex; align-items: center; gap: 7px; color: var(--green); font: 800 9px var(--mono); letter-spacing: .09em; }
.session-price-live i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 12%, transparent); animation: session-live-pulse 1.8s ease-out infinite; }
.session-price-live.stale { color: var(--text-lo); }
.session-price-live.stale i { box-shadow: none; animation: none; }
.session-price-svg { display: block; width: 100%; height: 285px; overflow: visible; }
.session-chart-grid { stroke: color-mix(in srgb, var(--border) 65%, transparent); stroke-width: 1; stroke-dasharray: 2 6; }
.session-chart-level { stroke: var(--text-lo); stroke-width: 1; stroke-dasharray: 5 5; opacity: .7; }
.session-chart-level.open { stroke: var(--accent-2); opacity: .9; }
.session-chart-level.swept { stroke: var(--flow-out); opacity: .9; }
.session-chart-label,
.session-range-label { fill: var(--text-lo); font: 700 7px var(--mono); letter-spacing: .03em; }
.session-chart-label.open { fill: var(--accent-2); }
.session-chart-label.swept { fill: var(--flow-out); }
.session-open-marker { stroke: var(--accent-2); stroke-width: 1; stroke-dasharray: 2 4; opacity: .5; }
.session-candle line { stroke-width: 1.3; }
.session-candle rect { stroke-width: 0; }
.session-candle.up line { stroke: var(--flow-in); }
.session-candle.up rect { fill: var(--flow-in); }
.session-candle.down line { stroke: var(--flow-out); }
.session-candle.down rect { fill: var(--flow-out); }
.session-candle.pre { opacity: .42; }
.session-candle.pre line { stroke: var(--text-md); }
.session-candle.pre rect { fill: var(--text-md); }
.session-price-dot { fill: var(--accent-2); stroke: var(--bg); stroke-width: 2.5; }
.session-price-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: -2px; color: var(--text-lo); font: 650 9px var(--mono); }
.session-price-foot strong { color: var(--text-md); font-weight: 750; }

.session-evidence-ribbon {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0 0 32px;
  border-bottom: 1px solid var(--border);
}

.session-evidence-ribbon:empty { display: none; }
.session-evidence-note { min-width: 0; padding: 11px 12px 12px 0; }
.session-evidence-note + .session-evidence-note { padding-left: 12px; border-left: 1px solid var(--border); }
.session-evidence-note span { display: block; color: var(--text-lo); font: 700 8.5px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.session-evidence-note strong { display: block; margin-top: 5px; overflow: hidden; color: var(--text-hi); font: 800 12px var(--mono); text-overflow: ellipsis; white-space: nowrap; }
.session-evidence-note small { display: block; margin-top: 3px; color: var(--text-md); font-size: 9.5px; }

.session-verdict {
  margin: 0 0 34px;
  padding: 22px 0 24px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.session-verdict[hidden] { display: none; }
.session-verdict-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.session-verdict-kicker { color: var(--accent-2); font: 800 9px var(--mono); letter-spacing: .12em; }
.session-verdict h2 { max-width: 560px; margin: 7px 0 8px; color: var(--text-hi); font-size: clamp(21px, 2.4vw, 30px); line-height: 1.12; letter-spacing: -.035em; }
.session-verdict p { max-width: 640px; margin: 0; color: var(--text-md); font-size: 12px; line-height: 1.65; }
.session-verdict-unusual { margin-top: 14px !important; color: var(--text-hi) !important; }
.session-share-button {
  flex: 0 0 auto;
  min-height: 40px;
  padding: 9px 12px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 38%, var(--border));
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent-2) 9%, var(--bg-card));
  color: var(--accent-2);
  font: 750 10px var(--mono);
  cursor: pointer;
}

.session-timeline-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 10px;
}

.session-timeline-head span { color: var(--accent-2); font: 800 9px var(--mono); letter-spacing: .12em; }
.session-timeline-head h2 { margin: 5px 0 0; color: var(--text-hi); font-size: 20px; letter-spacing: -.025em; }

.session-resume,
.session-load-more,
.sessions-error button {
  border: 1px solid color-mix(in srgb, var(--accent-2) 38%, var(--border));
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent-2) 10%, var(--bg-card));
  color: var(--accent-2);
  font: 750 10px var(--mono);
  cursor: pointer;
}

.session-resume { padding: 8px 10px; }

.session-timeline {
  position: relative;
  padding-left: 24px;
}

.session-timeline::before {
  content: '';
  position: absolute;
  top: 4px;
  bottom: 4px;
  left: 5px;
  width: 1px;
  background: var(--border);
}

.session-entry {
  position: relative;
  width: 100%;
  padding: 20px 4px 21px 0;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  text-align: left;
  color: inherit;
  cursor: pointer;
}

.session-entry::before {
  content: '';
  position: absolute;
  left: -23px;
  top: 27px;
  width: 8px;
  height: 8px;
  border: 2px solid var(--bg);
  border-radius: 50%;
  background: var(--text-lo);
  box-shadow: 0 0 0 1px var(--border);
}

.session-entry.live::before,
.session-entry.price_milestone::before { background: var(--accent-2); }
.session-entry.session_close::before { background: var(--flow-in); }
.session-entry.selected { background: color-mix(in srgb, var(--accent-2) 5%, transparent); }

.session-entry-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.session-entry-kind,
.session-entry-time {
  color: var(--text-lo);
  font: 750 9.5px var(--mono);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.session-entry h3 { margin: 0; color: var(--text-hi); font-size: 16px; line-height: 1.35; letter-spacing: -.015em; }
.session-entry p { margin: 7px 0 0; color: var(--text-md); font-size: 11.5px; line-height: 1.55; }

.session-entry-meta {
  display: flex;
  gap: 7px;
  margin-top: 11px;
  overflow-x: auto;
  scrollbar-width: none;
}

.session-entry-meta::-webkit-scrollbar { display: none; }
.session-entry-meta span {
  flex: 0 0 auto;
  padding: 4px 7px;
  border: 1px solid var(--border);
  border-radius: 12px;
  color: var(--text-md);
  font: 700 9.5px var(--mono);
}

.session-entry-open {
  position: absolute;
  top: 16px;
  right: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  color: var(--text-lo);
}

.session-entry-open svg { width: 16px; height: 16px; fill: currentColor; }

.session-inspector {
  position: fixed;
  z-index: 1001;
  right: 0;
  bottom: 0;
  width: min(420px, 100%);
  min-height: 280px;
  max-height: 78svh;
  padding: 24px;
  border: 1px solid var(--border);
  border-radius: 16px 0 0 0;
  background: var(--bg-card);
  box-shadow: 0 -18px 50px rgba(0,0,0,.28);
  transform: translateY(105%);
  transition: transform .2s ease;
  visibility: hidden;
  pointer-events: none;
  overflow-y: auto;
}

.session-inspector.open { transform: translateY(0); visibility: visible; pointer-events: auto; }
.session-inspector-close {
  display: grid;
  place-items: center;
  position: absolute;
  top: 12px;
  right: 12px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: var(--bg-hover);
  color: var(--text-md);
  cursor: pointer;
}
.session-inspector-close svg { width: 17px; fill: currentColor; }
.session-inspector h2 { margin: 8px 0; color: var(--text-hi); font-size: 17px; line-height: 1.4; }
.session-inspector > p { margin: 0; color: var(--text-md); font-size: 11px; line-height: 1.6; }

.session-evidence-time { display: block; margin: 13px 0 18px; color: var(--text-lo); font: 650 10px var(--mono); }
.session-facts { display: grid; gap: 0; margin: 20px 0 0; }
.session-fact { display: flex; justify-content: space-between; gap: 16px; padding: 10px 0; border-top: 1px solid var(--border); }
.session-fact span { color: var(--text-lo); font: 650 9.5px var(--mono); text-transform: uppercase; }
.session-fact strong { color: var(--text-hi); font: 700 10px var(--mono); text-align: right; word-break: break-word; }

.session-archive-intro { max-width: 690px; margin: 22px 0 14px; }
.session-archive-intro h2 { margin: 0; color: var(--text-hi); font-size: 19px; letter-spacing: -.025em; }
.session-archive-intro p { margin: 0; color: var(--text-md); font-size: 12px; line-height: 1.6; }
.session-archive { max-width: 980px; }

.session-archive-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  border-bottom: 1px solid var(--border);
  background: transparent;
}

.session-archive-open {
  display: grid;
  grid-template-columns: 130px minmax(190px, 1fr) minmax(180px, .8fr) 28px;
  align-items: center;
  gap: 24px;
  width: 100%;
  padding: 20px 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.session-archive-row:hover { background: color-mix(in srgb, var(--accent-2) 4%, transparent); }
.session-archive-row.selected { background: color-mix(in srgb, var(--accent-2) 7%, transparent); }
.session-archive-date { color: var(--text-lo); font: 650 10px var(--mono); }
.session-archive-main strong { display: block; color: var(--text-hi); font-size: 16px; }
.session-archive-main span { display: block; margin-top: 4px; color: var(--text-md); font: 650 10px var(--mono); }
.session-archive-result strong { display: block; color: var(--text-hi); font: 800 15px var(--mono); }
.session-archive-result span { display: block; margin-top: 4px; color: var(--text-lo); font-size: 10px; }
.session-archive-open svg { width: 19px; fill: var(--text-lo); }
.session-archive-compare {
  align-self: center;
  margin-right: 12px;
  padding: 7px 9px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--bg-card);
  color: var(--text-md);
  font: 750 9px var(--mono);
  cursor: pointer;
}
.session-archive-row.selected .session-archive-compare { border-color: var(--accent-2); color: var(--accent-2); }
.session-compare-tray {
  position: sticky;
  z-index: 15;
  bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  max-width: 720px;
  margin: 18px 0;
  padding: 11px 12px 11px 15px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 35%, var(--border));
  border-radius: 10px;
  background: color-mix(in srgb, var(--bg-card) 94%, var(--accent-2));
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
}
.session-compare-tray span { color: var(--text-md); font: 700 10px var(--mono); }
.session-compare-tray button { padding: 8px 11px; }
.session-comparison { max-width: 980px; margin: 30px 0; overflow-x: auto; }
.session-comparison h2 { margin: 0 0 14px; color: var(--text-hi); font-size: 24px; }
.session-comparison table { width: 100%; min-width: 680px; border-collapse: collapse; }
.session-comparison th,
.session-comparison td { padding: 11px 12px; border-bottom: 1px solid var(--border); text-align: right; }
.session-comparison th:first-child,
.session-comparison td:first-child { position: sticky; left: 0; text-align: left; background: var(--bg); }
.session-comparison th { color: var(--text-md); font: 700 10px var(--mono); }
.session-comparison td { color: var(--text-hi); font: 750 11px var(--mono); }
.session-comparison-mobile { display: none; }
.session-load-more { margin-top: 18px; padding: 10px 14px; }

.sessions-error {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  padding: 12px 14px;
  border: 1px solid color-mix(in srgb, var(--flow-out) 35%, var(--border));
  border-radius: 9px;
  color: var(--text-md);
  font-size: 11px;
}

.sessions-error[hidden],
.sessions-view[hidden],
.session-load-more[hidden],
.session-resume[hidden],
.session-compare-tray[hidden],
.session-comparison[hidden] { display: none !important; }

.sessions-error button { padding: 7px 10px; }

.session-empty { padding: 35px 0; color: var(--text-md); font-size: 12px; line-height: 1.6; }

.session-now-skeleton span,
.session-now-skeleton strong,
.session-now-skeleton b,
.session-now-skeleton i,
.session-chart-skeleton,
.session-entry-skeleton,
.session-archive-skeleton {
  display: block;
  border-radius: 7px;
  background: linear-gradient(90deg, var(--bg-hover), var(--bg-card), var(--bg-hover));
  background-size: 220% 100%;
  animation: session-shimmer 1.5s linear infinite;
}

.session-now-skeleton span { width: 80px; height: 12px; }
.session-now-skeleton strong { width: 72%; height: 38px; margin-top: 22px; }
.session-now-skeleton b { width: 90%; height: 54px; margin-top: 35px; }
.session-now-skeleton i { width: 65%; height: 10px; margin-top: 18px; }
.session-chart-skeleton { height: 190px; }
.session-entry-skeleton { height: 112px; margin: 0 0 10px; }
.session-archive-skeleton { height: 82px; margin-bottom: 8px; }

@keyframes session-shimmer { to { background-position: -220% 0; } }
@keyframes session-live-pulse {
  0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--green) 30%, transparent); }
  70%, 100% { box-shadow: 0 0 0 7px transparent; }
}

@media (max-width: 1180px) {
  .sessions-workspace { grid-template-columns: minmax(0, 940px); }
}

@media (max-width: 860px) {
  .sessions-page {
    width: calc(100% - 20px);
    min-width: 0;
    padding: 6px 0 calc(var(--bottom-nav-h, 64px) + 28px);
    overflow-x: clip;
  }
  .sessions-command { min-height: 34px; }
  .sessions-product-title h1 { font-size: 14px; }
  .sessions-clock { font-size: 9px; }
  .sessions-tabs { width: 100%; margin: 0 0 8px; }
  .sessions-filter-bar { position: sticky; top: 6px; z-index: 20; margin-bottom: 10px; }
  .sessions-live-mark { display: inline-flex; font-size: 8px; }
  .sessions-workspace { display: block; }
  .session-now {
    grid-template-columns: 1fr auto;
    gap: 14px 12px;
    padding: 14px 2px;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    background: transparent;
  }
  .session-now-identity { min-width: 0; }
  .session-now-status { margin-bottom: 9px; font-size: 9.5px; }
  .session-now h2 { font-size: 25px; }
  .session-now-date { font-size: 9.5px; }
  .session-btc { margin: 0; padding: 0; border: 0; text-align: right; }
  .session-btc strong { margin-top: 5px; font-size: 25px; }
  .session-btc b { margin-top: 3px; font-size: 10px; }
  .session-now-meta { grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px 14px; padding-top: 12px; border-top: 1px solid var(--border); }
  .session-price-stage { min-height: 300px; margin: 10px 0 20px; padding: 15px 10px 10px; border-radius: 10px; }
  .session-evidence-ribbon { grid-template-columns: repeat(2, minmax(0,1fr)); margin-top: -12px; }
  .session-evidence-note:nth-child(3) { border-left: 0; }
  .session-evidence-note:nth-child(n+3) { border-top: 1px solid var(--border); }
  .session-verdict { margin-bottom: 26px; padding: 18px 2px 20px; }
  .session-verdict-top { display: block; }
  .session-verdict h2 { font-size: 24px; }
  .session-share-button { width: 100%; min-height: 44px; margin-top: 18px; }
  .session-price-svg { height: 220px; }
  .session-price-head { margin-bottom: 6px; }
  .session-price-head strong { font-size: 17px; }
  .session-price-foot { align-items: flex-start; font-size: 8px; }
  .session-price-foot span { max-width: 48%; }
  .session-timeline-head { align-items: center; }
  .session-timeline-head h2 { font-size: 18px; }
  .session-timeline { padding-left: 0; }
  .session-timeline::before,
  .session-entry::before { display: none; }
  .session-entry {
    margin-bottom: 0;
    padding: 15px 2px;
    border: 0;
    border-bottom: 1px solid var(--border);
    border-radius: 0;
    background: transparent;
  }
  .session-entry.selected { border-color: color-mix(in srgb, var(--accent-2) 45%, var(--border)); }
  .session-entry h3 { font-size: 18px; line-height: 1.28; }
  .session-entry p { font-size: 11px; }
  .session-entry-meta { position: relative; margin-right: -13px; padding-right: 22px; }
  .session-inspector {
    left: 0;
    width: 100%;
    max-height: 76svh;
    border-radius: 16px 16px 0 0;
    padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
  }
  .sessions-archive-bar { position: sticky; top: 6px; z-index: 20; }
  .sessions-archive-bar { align-items: stretch; flex-direction: column; }
  .sessions-archive-bar > span { display: none; }
  .sessions-archive-date-filter { justify-content: space-between; min-height: 38px; }
  .session-archive-intro { margin: 24px 2px 18px; }
  .session-archive-intro h2 { font-size: 27px; }
  .session-archive-row {
    margin-bottom: 10px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg-card);
    overflow: hidden;
  }
  .session-archive-open { grid-template-columns: 1fr 28px; gap: 8px 14px; padding: 13px; }
  .session-archive-date { grid-column: 1; grid-row: 1; }
  .session-archive-main { grid-column: 1; grid-row: 2; }
  .session-archive-result { grid-column: 1; grid-row: 3; }
  .session-archive-open > svg { grid-column: 2; grid-row: 1 / 4; align-self: center; }
  .session-archive-compare { margin: 0 10px 0 0; }
  .session-compare-tray { bottom: calc(var(--bottom-nav-h, 64px) + 10px); }
  .session-comparison { overflow: visible; }
  .session-comparison table { display: none; }
  .session-comparison-mobile { display: block; }
  .session-metric-selector { margin-bottom: 12px; }
  .session-mobile-metric { border-top: 1px solid var(--border); }
  .session-mobile-metric > span { display: block; padding: 13px 0 8px; color: var(--text-lo); font: 750 9px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
  .session-mobile-metric article { display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 62px; padding: 11px 0; border-bottom: 1px solid var(--border); }
  .session-mobile-metric strong { display: block; color: var(--text-hi); font-size: 15px; }
  .session-mobile-metric small { display: block; margin-top: 4px; color: var(--text-lo); font: 650 9.5px var(--mono); }
  .session-mobile-metric b { color: var(--text-hi); font: 800 19px var(--mono); font-variant-numeric: tabular-nums; }
  .session-archive-main strong { font-size: 18px; }
  .session-archive-result strong { font-size: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .session-inspector { transition: none; }
  .sessions-chip-skeleton,
  .session-now-skeleton span,
  .session-now-skeleton strong,
  .session-now-skeleton b,
  .session-now-skeleton i,
  .session-chart-skeleton,
  .session-entry-skeleton,
  .session-archive-skeleton { animation: none; }
}

/* Product workspace finish: stable gutters and distinct holders keep the live
   evidence dense without turning the page into a generic dashboard grid. */
@media (min-width: 861px) {
  .sessions-page {
    width: calc(100% - 24px);
    max-width: 1760px;
    margin: 0 auto;
    padding: 12px 0 48px;
  }
  .sessions-command {
    min-height: 48px;
    padding-inline: 16px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--bg-card);
  }
  .sessions-filter-bar { margin-top: 10px; border: 1px solid var(--border); border-radius: 11px; }
  #sessions-view-live .sessions-workspace {
    grid-template-columns: minmax(250px, 280px) minmax(430px, 1fr) minmax(350px, 420px);
    gap: 10px;
    height: calc(100svh - var(--promo-h, 0px) - 132px);
    min-height: 660px;
    margin-top: 10px;
    border: 0;
    background: transparent;
  }
  .session-context, .session-market-rail, .session-book {
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-card);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .055);
    overflow: hidden;
  }
  .session-context { border-right: 1px solid var(--border); }
  .session-book { border-left: 1px solid var(--border); }
  .session-market-rail { border-left: 1px solid var(--border); }
  #sessions-view-archive { padding: 10px 0 72px; }
}

.session-entry { cursor: pointer; }
.session-entry-icon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid color-mix(in srgb, var(--accent-2) 24%, var(--border));
  border-radius: 8px;
  background: color-mix(in srgb, var(--accent-2) 7%, var(--bg-card2));
  color: var(--accent-2);
}
.session-entry-icon svg { width: 15px; height: 15px; fill: currentColor; }
.session-entry { grid-template-columns: 52px 28px minmax(0, 1fr); }
.session-entry-open { position: static; grid-column: 3; display: inline-flex; width: max-content; margin-top: 8px; padding: 0; color: var(--accent-2); font: 750 9px var(--mono); }
.session-entry-open span { display: inline; }
.session-entry-open svg { width: 13px; height: 13px; }
.session-event-marker { cursor: pointer; }
.session-event-marker circle { fill: var(--bg-card); stroke: var(--accent-2); stroke-width: 1.5; }
.session-event-marker text { fill: var(--text-hi); font: 800 7px var(--mono); pointer-events: none; }
.session-event-marker.kind-cex_flow_shift circle, .session-event-marker.kind-dex_pressure circle { stroke: var(--flow-in); }
.session-event-marker.kind-session_close circle { stroke: var(--green); }

.session-evidence-ribbon { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.session-evidence-note { min-height: 132px; padding: 14px 15px; color: inherit; }
.session-evidence-note:nth-child(3) { border-left: 1px solid var(--border); }
.session-evidence-note:nth-child(4) { border-left: 0; }
.session-evidence-title { display: flex; align-items: center; gap: 7px; }
.session-evidence-title i { display: inline-flex; color: var(--accent-2); }
.session-evidence-title svg { width: 14px; height: 14px; fill: currentColor; }
.session-cex-breakdown { grid-column: 1 / -1; padding: 15px; border-top: 1px solid var(--border); background: color-mix(in srgb, var(--bg-card2) 55%, var(--bg-card)); }
.session-cex-breakdown-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.session-cex-breakdown-head > span { display: inline-flex; align-items: center; gap: 7px; color: var(--text-hi); font: 800 10px var(--mono); text-transform: uppercase; }
.session-cex-breakdown-head svg { width: 15px; height: 15px; fill: var(--accent-2); }
.session-cex-breakdown-head small { color: var(--text-lo); font: 700 7px var(--mono); letter-spacing: .06em; }
.session-cex-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 11px; }
.session-cex-list a { display: flex; min-width: 0; min-height: 42px; padding: 7px 9px; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg-card); color: inherit; }
.session-cex-list span { min-width: 0; }
.session-cex-list strong, .session-cex-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.session-cex-list strong { color: var(--text-hi); font-size: 10px; }
.session-cex-list small { margin-top: 3px; color: var(--text-lo); font: 650 8px var(--mono); text-transform: uppercase; }
.session-cex-list b { color: var(--text-md); font: 800 10px var(--mono); }
.session-cex-list b.up { color: var(--green); }
.session-cex-list b.down { color: var(--red); }
.session-cex-list p { grid-column: 1 / -1; margin: 5px 0; color: var(--text-lo); font-size: 10px; }

.session-archive-intro { display: flex; max-width: none; margin: 10px 0; padding: 16px 18px; align-items: end; justify-content: space-between; gap: 20px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-card); }
.session-archive-intro h2 { margin-top: 5px; font-size: 22px; }
.session-heat-legend { display: flex; gap: 14px; color: var(--text-lo); font: 700 9px var(--mono); }
.session-heat-legend span { display: inline-flex; align-items: center; gap: 5px; }
.session-heat-legend i { width: 8px; height: 8px; border-radius: 3px; background: var(--bg-hover); }
.session-heat-legend i.up { background: color-mix(in srgb, var(--green) 70%, var(--bg-card)); }
.session-heat-legend i.down { background: color-mix(in srgb, var(--red) 70%, var(--bg-card)); }
.session-week-pulse { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.session-pulse-card { min-width: 0; padding: 13px; border: 1px solid var(--border); border-radius: 11px; background: var(--bg-card); }
.session-pulse-card > span { display: flex; align-items: center; gap: 6px; color: var(--text-lo); font: 750 8px var(--mono); text-transform: uppercase; }
.session-pulse-card svg { width: 13px; height: 13px; fill: var(--accent-2); }
.session-pulse-card > strong { display: block; margin-top: 9px; color: var(--text-hi); font-size: 13px; }
.session-pulse-card > div { display: grid; gap: 5px; margin-top: 12px; }
.session-pulse-card small { display: flex; justify-content: space-between; color: var(--text-lo); font: 650 7px var(--mono); }
.session-pulse-card b { color: var(--text-md); font-size: 8px; }
.session-pulse-card b.up { color: var(--green); }
.session-pulse-card b.down { color: var(--red); }
.session-heatmap-shell { padding: 12px; overflow-x: auto; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-card); }
.session-archive { display: grid; grid-template-columns: 98px repeat(var(--heat-cols, 7), minmax(88px, 1fr)); gap: 6px; width: 100%; max-width: none !important; min-width: 760px; }
.session-heat-corner, .session-heat-date, .session-heat-name { min-height: 38px; padding: 6px; }
.session-heat-corner { display: flex; align-items: end; color: var(--text-lo); font: 750 8px var(--mono); }
.session-heat-date { text-align: center; }
.session-heat-date strong, .session-heat-date span { display: block; }
.session-heat-date strong { color: var(--text-md); font: 750 9px var(--mono); }
.session-heat-date span { margin-top: 2px; color: var(--text-lo); font: 650 7px var(--mono); }
.session-heat-name { display: flex; justify-content: center; flex-direction: column; border-right: 1px solid var(--border); }
.session-heat-name strong { color: var(--text-hi); font: 800 10px var(--mono); }
.session-heat-name span { margin-top: 3px; color: var(--text-lo); font-size: 8px; }
.session-heat-cell, .session-heat-empty { min-height: 58px; border-radius: 9px; }
.session-heat-empty { border: 1px dashed var(--border); background: color-mix(in srgb, var(--bg-card2) 48%, transparent); }
.session-heat-cell { padding: 7px; border: 1px solid transparent; text-align: left; transition: transform .14s ease, border-color .14s ease; }
.session-heat-cell:hover { transform: translateY(-1px); border-color: var(--text-lo); }
.session-heat-cell.selected { border-color: var(--accent-2); box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-2) 12%, transparent); }
.session-heat-cell.up { background: color-mix(in srgb, var(--green) calc(var(--heat) * 46%), var(--bg-card)); }
.session-heat-cell.down { background: color-mix(in srgb, var(--red) calc(var(--heat) * 43%), var(--bg-card)); }
.session-heat-cell.flat { background: var(--bg-card2); }
.session-heat-cell strong, .session-heat-cell span { display: block; }
.session-heat-cell strong { color: var(--text-hi); font: 800 11px var(--mono); }
.session-heat-cell span { margin-top: 6px; overflow: hidden; color: var(--text-md); font: 650 7px var(--mono); text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.session-heat-detail { margin-top: 10px; padding: 18px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-card); }
.session-heat-detail-head { display: flex; align-items: start; justify-content: space-between; gap: 24px; }
.session-heat-detail-head span { color: var(--accent-2); font: 750 9px var(--mono); }
.session-heat-detail-head h2 { margin: 6px 0 0; color: var(--text-hi); font-size: 21px; }
.session-heat-detail-head p { max-width: 700px; margin: 7px 0 0; color: var(--text-md); font-size: 11px; line-height: 1.55; }
.session-heat-detail-head button { display: inline-flex; min-height: 36px; padding: 0 11px; align-items: center; gap: 5px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg-card2); color: var(--text-hi); font-size: 10px; font-weight: 750; }
.session-heat-detail-head button svg { width: 14px; height: 14px; fill: currentColor; }
.session-heat-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
.session-heat-metric { min-width: 0; padding: 11px; border: 1px solid var(--border); border-radius: 9px; background: var(--bg-card2); }
.session-heat-metric span, .session-heat-metric strong, .session-heat-metric small { display: block; }
.session-heat-metric span { color: var(--text-lo); font: 700 8px var(--mono); text-transform: uppercase; }
.session-heat-metric strong { margin-top: 7px; color: var(--text-hi); font: 800 14px var(--mono); }
.session-heat-metric small { margin-top: 4px; color: var(--text-md); font-size: 8px; }

@media (max-width: 1180px) and (min-width: 861px) {
  .session-week-pulse { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .session-heat-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 860px) {
  .sessions-page { width: calc(100% - 16px); margin: 8px; }
  .sessions-command, .sessions-filter-bar, .session-context, .session-market-rail, .session-book { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
  .sessions-filter-bar { top: 4px; margin-top: 7px; }
  #sessions-view-live .sessions-workspace { gap: 8px; margin-top: 8px; }
  .session-context, .session-market-rail, .session-book { border-bottom: 1px solid var(--border); }
  .session-entry { grid-template-columns: 30px minmax(0, 1fr) 22px; gap: 0 9px; }
  .session-entry-clock { grid-column: 1 / -1; }
  .session-entry-icon { grid-column: 1; grid-row: 2; }
  .session-entry-body { grid-column: 2; }
  .session-entry-open { grid-column: 2; }
  .session-severity { margin-left: 0; }
  .session-evidence-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session-evidence-note:nth-child(3) { border-left: 0; }
  .session-evidence-note:nth-child(4) { border-left: 1px solid var(--border); }
  .session-cex-list { grid-template-columns: 1fr; }
  .session-archive-intro, .session-heat-detail-head { align-items: flex-start; flex-direction: column; }
  .session-week-pulse { display: flex; margin-right: -8px; padding-right: 8px; overflow-x: auto; scrollbar-width: none; }
  .session-pulse-card { min-width: 190px; }
  .session-heat-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #sessions-view-archive { padding-inline: 0; }
}

/* Live Session Book terminal composition. The chronology owns the workspace;
   context and market evidence are supporting rails, not dashboard cards. */
.sessions-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 56px;
}

.sessions-command {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) 190px minmax(170px, 1fr);
  align-items: center;
  min-height: 46px;
  margin: 0;
  padding: 0 14px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-card);
}

.sessions-product-title { gap: 10px; }
.sessions-product-title h1 { font-size: 13px; letter-spacing: .01em; }
.sessions-clock { justify-self: end; font-size: 9.5px; }
.sessions-tabs { width: 190px; margin: 0; }
.sessions-tabs .seg-tab { min-height: 30px; padding-block: 6px; font-size: 10px; }

.sessions-filter-bar {
  min-height: 44px;
  margin: 0;
  padding: 5px 12px;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: color-mix(in srgb, var(--bg-card) 92%, var(--bg-page));
}

.sessions-filter-bar .ark-seg { max-width: none; }
.sessions-chip-skeleton { height: 28px; }

#sessions-view-live .sessions-workspace {
  display: grid;
  grid-template-areas: "context market book";
  grid-template-columns: minmax(260px, 290px) minmax(500px, 1fr) minmax(410px, 520px);
  align-items: stretch;
  justify-content: stretch;
  gap: 0;
  width: 100%;
  height: calc(100svh - 116px);
  min-height: 650px;
  border-bottom: 1px solid var(--border);
  background: var(--bg);
}

.session-context {
  grid-area: context;
  min-width: 0;
  border-right: 1px solid var(--border);
  background: var(--bg-card);
  overflow-y: auto;
}

.session-panel-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 39px;
  padding: 0 18px;
  border-bottom: 1px solid var(--border);
  color: var(--text-lo);
  font: 750 8.5px var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.session-panel-label i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--green) 10%, transparent);
}

.session-now {
  display: block;
  padding: 22px 18px;
  border: 0;
}

.session-now-status { margin-bottom: 12px; font-size: 9px; }
.session-now h2 { font-size: 30px; line-height: .98; letter-spacing: -.035em; }
.session-now-date { margin-top: 8px; font-size: 8.5px; line-height: 1.45; }

.session-progress {
  margin: 28px 0 20px;
  padding: 17px 0 19px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.session-progress > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.session-progress span { color: var(--text-lo); font: 700 8px var(--mono); letter-spacing: .08em; }
.session-progress strong { color: var(--text-hi); font: 800 16px var(--mono); }
.session-progress > i { display: block; height: 4px; margin-top: 12px; background: var(--bg-hover); overflow: hidden; }
.session-progress > i b { display: block; height: 100%; background: var(--accent-2); transition: width .45s ease; }

.session-now-meta { display: block; }
.session-now-meta div { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.session-now-meta dt { flex: 0 0 auto; font-size: 8px; }
.session-now-meta dd { max-width: 125px; font-size: 9.5px; text-align: right; }

.session-volatility { margin-top: 24px; border-top: 1px solid var(--border); }
.session-volatility-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 42px;
  color: var(--text-lo);
  font: 750 8px var(--mono);
  letter-spacing: .08em;
}
.session-volatility-head small { color: var(--text-md); font: inherit; }
.session-volatility-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  min-height: 52px;
  border-top: 1px solid var(--border);
}
.session-volatility-row > strong { color: var(--text-hi); font: 800 11px var(--mono); }
.session-volatility-row > span { display: flex; align-items: baseline; gap: 6px; }
.session-volatility-row > span b { color: var(--text-hi); font: 800 14px var(--mono); font-variant-numeric: tabular-nums; }
.session-volatility-row > span b.up { color: var(--green); }
.session-volatility-row > span b.down { color: var(--red); }
.session-volatility-row > span small { color: var(--text-md); font: 750 8px var(--mono); }
.session-volatility-row > em { color: var(--text-lo); font: 650 8px var(--mono); font-style: normal; }

.session-book {
  grid-area: book;
  display: flex;
  min-width: 0;
  min-height: 0;
  padding: 0;
  flex-direction: column;
  border-left: 1px solid var(--border);
  background: var(--bg-card);
}

.session-timeline-head {
  position: relative;
  z-index: 3;
  flex: 0 0 auto;
  align-items: center;
  min-height: 68px;
  margin: 0;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--bg-card);
}

.session-timeline-head > div:first-child { min-width: 0; }
.session-timeline-head span { font-size: 8px; }
.session-timeline-head h2 { margin-top: 4px; overflow: hidden; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }

.session-tape-state {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  color: var(--green);
  font: 800 8px var(--mono);
  letter-spacing: .08em;
}

.session-tape-state i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; animation: session-live-pulse 1.8s ease-out infinite; }
.session-tape-state.idle { color: var(--text-lo); }
.session-tape-state.idle i { animation: none; }
.session-resume { margin-left: 8px; padding: 6px 8px; }

.session-timeline {
  flex: 1 1 auto;
  min-height: 0;
  padding: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}

.session-timeline::before,
.session-entry::before { display: none; }

.session-entry {
  display: grid;
  grid-template-columns: 58px 3px minmax(0, 1fr) 24px;
  align-items: start;
  gap: 0 12px;
  min-height: 98px;
  padding: 11px 10px 11px 14px;
  border-bottom: 1px solid var(--border);
  transition: background .14s ease;
}

.session-entry:hover,
.session-entry.selected { background: color-mix(in srgb, var(--accent-2) 6%, var(--bg-card)); }
.session-entry.latest { animation: session-entry-arrive .65s ease both; }
.session-entry-clock { padding-top: 1px; text-align: right; }
.session-entry-clock strong { display: block; color: var(--text-md); font: 750 9px var(--mono); }
.session-entry-clock span { display: block; margin-top: 5px; color: var(--text-lo); font: 650 8px var(--mono); }
.session-entry-signal { width: 3px; height: 100%; min-height: 70px; border-radius: 2px; background: var(--text-lo); }
.session-entry.live .session-entry-signal,
.session-entry.price_milestone .session-entry-signal { background: var(--accent-2); }
.session-entry.cex_flow_shift .session-entry-signal,
.session-entry.dex_flow_shift .session-entry-signal { background: var(--flow-in); }
.session-entry.session_close .session-entry-signal { background: var(--green); }
.session-entry-body { min-width: 0; }
.session-entry-top { justify-content: flex-start; margin: 0 0 6px; }
.session-entry-kind,
.session-entry-asset { color: var(--text-lo); font: 750 8px var(--mono); letter-spacing: .07em; text-transform: uppercase; }
.session-entry-asset { color: var(--accent-2); }
.session-severity {
  display: inline-flex;
  min-height: 18px;
  margin-left: auto;
  padding: 2px 7px;
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  font: 800 8px var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.session-severity.critical {
  color: var(--red);
  border-color: color-mix(in srgb, var(--red) 34%, transparent);
  background: color-mix(in srgb, var(--red) 10%, transparent);
}
.session-severity.high {
  color: #d58b27;
  border-color: color-mix(in srgb, #d58b27 36%, transparent);
  background: color-mix(in srgb, #d58b27 11%, transparent);
}
.session-severity.medium {
  color: var(--text-md);
  border-color: var(--border);
  background: color-mix(in srgb, var(--bg-card2) 78%, transparent);
}
.session-inspector-heading { display: flex; align-items: center; gap: 8px; }
.session-inspector-heading .session-severity { margin-left: 0; }
.session-entry h3 { padding-right: 22px; font-size: 14px; line-height: 1.32; }
.session-entry p { max-width: 680px; margin-top: 4px; font-size: 10px; line-height: 1.4; }
.session-entry-meta { gap: 6px; margin-top: 7px; }
.session-entry-meta span { padding: 3px 6px; border-radius: 9px; font-size: 8px; }
.session-entry-open { top: 12px; right: 7px; }

.session-market-rail {
  grid-area: market;
  display: flex;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  border-left: 0;
  background: color-mix(in srgb, var(--bg-card) 62%, var(--bg));
  overflow-y: auto;
}

.session-price-stage {
  display: flex;
  min-height: 430px;
  margin: 0;
  padding: 22px 22px 14px;
  flex: 1 1 auto;
  flex-direction: column;
  border: 0;
  border-bottom: 1px solid var(--border);
  border-radius: 0;
  background: color-mix(in srgb, var(--bg-card) 78%, var(--bg));
}

.session-price-head { align-items: center; margin-bottom: 8px; }
.session-price-head span { font-size: 8px; }
.session-price-head strong { margin-top: 5px; font-size: 25px; letter-spacing: -.025em; }
.session-price-head strong b { margin-left: 6px; font-size: 9px; }
.session-price-live { font-size: 7.5px; }
.session-price-live i { width: 5px; height: 5px; }
.session-price-svg {
  width: 100%;
  height: auto;
  aspect-ratio: 700 / 280;
  margin: auto 0;
}
.session-chart-pre-zone { fill: color-mix(in srgb, var(--accent-2) 5%, transparent); }
.session-chart-grid { stroke: color-mix(in srgb, var(--border) 80%, transparent); stroke-dasharray: 2 5; }
.session-chart-level { opacity: .82; }
.session-chart-label,
.session-range-label,
.session-time-label { fill: var(--text-lo); font: 700 7px var(--mono); letter-spacing: .02em; }
.session-time-label.open { fill: var(--accent-2); }
.session-candle { opacity: .88; }
.session-candle.pre { opacity: .38; }
.session-close-line { fill: none; stroke: var(--text-hi); stroke-width: 1.65; stroke-linejoin: round; stroke-linecap: round; opacity: .9; }
.session-volume-bar { fill: color-mix(in srgb, var(--accent-2) 42%, transparent); }
.session-volume-bar.pre { opacity: .32; }
.session-price-dot { stroke-width: 2; }
.session-price-foot { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--border); font-size: 8px; }

.session-evidence-ribbon {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
  flex: 0 0 auto;
  border: 0;
}

.session-evidence-note {
  display: flex;
  min-width: 0;
  min-height: 154px;
  padding: 18px 20px;
  flex-direction: column;
  justify-content: space-between;
  border-bottom: 1px solid var(--border);
}

.session-evidence-note + .session-evidence-note { padding-left: 20px; border-left: 1px solid var(--border); }
.session-evidence-note:nth-child(3) { border-left: 0; }
.session-evidence-note span { font-size: 8px; }
.session-evidence-note strong { margin-top: 7px; font-size: 18px; }
.session-evidence-note small { min-height: 24px; font-size: 8.5px; line-height: 1.35; white-space: normal; }
.session-spark { width: 100%; height: 38px; margin-top: 12px; overflow: visible; }
.session-spark line { stroke: var(--border); stroke-width: 1; stroke-dasharray: 2 3; }
.session-spark path { fill: none; stroke: var(--accent-2); stroke-width: 1.7; vector-effect: non-scaling-stroke; }
.session-spark.up path { stroke: var(--flow-in); }
.session-spark.down path { stroke: var(--flow-out); }
.session-spark-empty { display: block; width: 100%; height: 38px; margin-top: 12px; border-bottom: 1px dashed var(--border); }

.session-verdict { flex: 0 0 auto; margin: 0; padding: 16px; border-top: 0; }
.session-verdict h2 { font-size: 19px; }

#sessions-view-archive { padding: 14px 18px 72px; }
#sessions-view-archive .sessions-archive-bar,
#sessions-view-archive .session-archive,
#sessions-view-archive .session-comparison { max-width: 1180px; }

@keyframes session-entry-arrive {
  from { background: color-mix(in srgb, var(--accent-2) 16%, var(--bg)); }
  to { background: transparent; }
}

@media (max-width: 1180px) and (min-width: 1101px) {
  #sessions-view-live .sessions-workspace { grid-template-columns: 220px minmax(360px, 1fr) minmax(310px, 360px); }
  .session-now { padding-inline: 12px; }
  .session-entry { grid-template-columns: 50px 3px minmax(0, 1fr) 22px; gap: 0 9px; }
  .session-price-stage { min-height: 390px; padding-inline: 16px; }
  .session-evidence-note { padding-inline: 14px; }
  .session-evidence-note + .session-evidence-note { padding-left: 14px; }
}

@media (max-width: 1100px) and (min-width: 861px) {
  #sessions-view-live .sessions-workspace {
    grid-template-areas: "context context" "market book";
    grid-template-columns: minmax(400px, 1fr) minmax(330px, 390px);
    grid-template-rows: auto minmax(620px, 1fr);
    height: auto;
  }
  .session-context { border-right: 0; border-bottom: 1px solid var(--border); }
  .session-book { border-left: 1px solid var(--border); }
  .session-panel-label { display: none; }
  .session-now { display: grid; grid-template-columns: 180px 180px minmax(320px, 1fr); align-items: center; gap: 18px; padding: 12px 14px; }
  .session-progress { margin: 0; padding: 10px 18px; border: 0; border-right: 1px solid var(--border); border-left: 1px solid var(--border); }
  .session-now-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 16px; }
  .session-now-meta div { padding: 4px 0; border: 0; }
  .session-price-stage { min-height: 420px; padding-inline: 18px; }
}

@media (max-width: 860px) {
  .sessions-page { width: 100%; padding: 0 0 calc(var(--bottom-nav-h, 64px) + 18px); }
  .sessions-command {
    grid-template-columns: 1fr auto;
    min-height: 74px;
    padding: 7px 10px;
  }
  .sessions-product-title h1 { font-size: 13px; }
  .sessions-clock { font-size: 8px; }
  .sessions-tabs { grid-column: 1 / -1; grid-row: 2; width: 100%; margin-top: 5px; }
  .sessions-filter-bar { position: sticky; z-index: 30; top: 0; min-height: 42px; padding-inline: 8px; }
  #sessions-view-live .sessions-workspace {
    display: flex;
    width: 100%;
    height: auto;
    min-height: 0;
    border-bottom: 0;
    flex-direction: column;
  }
  .session-context { order: 1; border-right: 0; border-bottom: 1px solid var(--border); }
  .session-panel-label { display: none; }
  .session-now { display: grid; grid-template-columns: 1fr auto; gap: 14px 18px; padding: 14px 11px; }
  .session-now-identity { min-width: 0; }
  .session-now h2 { font-size: 24px; }
  .session-progress { width: 116px; margin: 0; padding: 8px 0; border-top: 0; }
  .session-now-meta { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
  .session-now-meta div { display: grid; gap: 4px; padding: 9px 0; }
  .session-now-meta dd { max-width: none; text-align: left; }
  .session-volatility { grid-column: 1 / -1; margin-top: 4px; }
  .session-volatility-head { min-height: 38px; font-size: 9.5px; }
  .session-volatility-row { grid-template-columns: 48px minmax(0, 1fr) auto; min-height: 48px; }
  .session-volatility-row > strong { font-size: 11px; }
  .session-volatility-row > span b { font-size: 14px; }
  .session-volatility-row > span small,
  .session-volatility-row > em { font-size: 9.5px; }
  .session-market-rail { order: 2; border-left: 0; border-bottom: 1px solid var(--border); overflow: visible; }
  .session-price-stage { min-height: 0; padding: 16px 10px 10px; }
  .session-price-svg { height: auto; }
  .session-evidence-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session-evidence-note { min-height: 112px; padding: 12px 10px; }
  .session-evidence-note + .session-evidence-note { padding-left: 10px; }
  .session-book { order: 3; min-height: 0; border-left: 0; overflow: visible; }
  .session-timeline-head { min-height: 62px; padding: 10px 11px; }
  .session-timeline-head h2 { font-size: 15px; }
  .session-tape-state { font-size: 7.5px; }
  .session-timeline { padding: 8px 0; overflow: visible; }
  .session-entry {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 24px;
    gap: 0;
    min-height: 0;
    margin: 0 8px 8px;
    padding: 12px 12px 13px;
    border: 1px solid var(--border);
    border-radius: 11px;
    background: var(--bg-card);
  }
  .session-entry-clock { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; padding: 0; text-align: left; }
  .session-entry-clock strong,
  .session-entry-clock span { display: inline; margin: 0; color: var(--text-md); font-size: 9px; }
  .session-entry-signal { display: none; }
  .session-entry-body { grid-column: 1; }
  .session-entry-open { grid-column: 2; grid-row: 2; position: static; align-self: center; justify-self: end; }
  .session-entry h3 { padding-right: 0; font-size: 17px; }
  .session-entry p { font-size: 10.5px; }
  .session-entry-meta { margin-right: -12px; padding-right: 20px; }
  .session-entry-meta span { min-height: 25px; padding: 5px 8px; font-size: 9px; }
  .session-verdict { padding: 15px 11px; }
  #sessions-view-archive { padding: 10px 10px calc(var(--bottom-nav-h, 64px) + 28px); }
}

@media (prefers-reduced-motion: reduce) {
  .session-entry.latest { animation: none; }
  .session-progress > i b { transition: none; }
}

/* Keep the holder composition authoritative after the terminal density rules. */
@media (min-width: 861px) {
  .sessions-page { width: calc(100% - 24px); max-width: 1760px; margin: 0 auto; padding: 12px 0 48px; }
  .sessions-command { min-height: 48px; padding-inline: 16px; border: 1px solid var(--border); border-radius: 12px; }
  .sessions-filter-bar { margin-top: 10px; border: 1px solid var(--border); border-radius: 11px; }
  #sessions-view-live .sessions-workspace {
    grid-template-areas: "context market book";
    grid-template-columns: minmax(250px, 280px) minmax(430px, 1fr) minmax(350px, 420px);
    gap: 10px;
    height: calc(100svh - var(--promo-h, 0px) - 132px);
    min-height: 660px;
    margin-top: 10px;
    border: 0;
    background: transparent;
  }
  .session-context, .session-market-rail, .session-book {
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, .055);
    overflow: hidden;
  }
  #sessions-view-archive { padding: 10px 0 72px; }
}
.session-entry { grid-template-columns: 52px 28px minmax(0, 1fr); cursor: pointer; }
.session-entry-open { position: static; grid-column: 3; width: max-content; margin-top: 8px; padding: 0; }
.session-evidence-ribbon { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.session-evidence-note { min-height: 132px; padding: 14px 15px; }
.session-evidence-note:nth-child(3) { border-left: 1px solid var(--border); }
.session-evidence-note:nth-child(4) { border-left: 0; }
@media (max-width: 860px) {
  .sessions-page { width: calc(100% - 16px); margin: 8px; padding-bottom: calc(var(--bottom-nav-h, 64px) + 18px); }
  .sessions-command, .sessions-filter-bar, .session-context, .session-market-rail, .session-book { border: 1px solid var(--border); border-radius: 12px; overflow: hidden; }
  .sessions-filter-bar { top: 4px; margin-top: 7px; }
  #sessions-view-live .sessions-workspace { gap: 8px; margin-top: 8px; }
  .session-entry { grid-template-columns: 30px minmax(0, 1fr) 22px; gap: 0 9px; }
  .session-entry-icon { grid-column: 1; grid-row: 2; }
  .session-entry-body { grid-column: 2; }
  .session-entry-open { grid-column: 2; grid-row: auto; justify-self: start; }
  .session-evidence-ribbon { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .session-evidence-note:nth-child(3) { border-left: 0; }
  .session-evidence-note:nth-child(4) { border-left: 1px solid var(--border); }
  #sessions-view-archive { padding: 10px 0 calc(var(--bottom-nav-h, 64px) + 28px); }
}

/* Terminal fixes for the live read and tape density. The read must be a compact
   interpretation above the chart, never an unstyled block that pushes the SVG
   outside its holder. Tape metadata shares the content column so time does not
   consume a quarter of a narrow card. */
.session-live-read {
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 54px;
  margin: 2px 0 10px;
  padding: 9px 11px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bg-card2) 72%, transparent);
}
.session-live-read > span { display: grid; width: 30px; height: 30px; place-items: center; border-radius: 9px; background: color-mix(in srgb, var(--accent-2) 13%, transparent); color: var(--accent-2); }
.session-live-read > span svg { width: 16px; height: 16px; fill: currentColor; }
.session-live-read > div { min-width: 0; }
.session-live-read small { display: block; color: var(--text-lo); font: 750 7px var(--mono); letter-spacing: .08em; }
.session-live-read strong { display: block; margin-top: 2px; color: var(--text-hi); font-size: 12px; line-height: 1.2; }
.session-live-read p { margin: 2px 0 0; overflow: hidden; color: var(--text-md); font-size: 9px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.session-live-read.swept > span { color: var(--flow-out); background: color-mix(in srgb, var(--flow-out) 11%, transparent); }
.session-live-read.accepted.up > span { color: var(--flow-in); background: color-mix(in srgb, var(--flow-in) 11%, transparent); }
.session-price-stage { overflow: hidden; }
.session-price-svg { min-height: 0; margin: 0; flex: 1 1 auto; }

.session-entry {
  position: relative;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 0 9px;
  min-height: 0;
  padding: 11px 12px;
}
.session-entry-clock {
  grid-column: 2;
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 5px;
  padding: 0;
  text-align: left;
}
.session-entry-clock strong, .session-entry-clock span { display: inline; margin: 0; }
.session-entry-clock span::before { content: ""; display: inline-block; width: 3px; height: 3px; margin-right: 7px; border-radius: 50%; background: var(--border2); vertical-align: middle; }
.session-entry-icon { grid-column: 1; grid-row: 1 / span 3; margin-top: 1px; }
.session-entry-icon.sell-pressure { color: var(--flow-out); border-color: color-mix(in srgb, var(--flow-out) 28%, var(--border)); background: color-mix(in srgb, var(--flow-out) 10%, var(--bg-card2)); }
.session-entry-icon.buy-pressure { color: var(--flow-in); border-color: color-mix(in srgb, var(--flow-in) 28%, var(--border)); background: color-mix(in srgb, var(--flow-in) 10%, var(--bg-card2)); }
.session-event-marker.sell-pressure circle { stroke: var(--flow-out); }
.session-event-marker.buy-pressure circle { stroke: var(--flow-in); }
.session-entry-body { grid-column: 2; }
.session-entry-open { grid-column: 2; margin-top: 7px; }
.session-entry h3 { padding-right: 0; }

@media (max-width: 860px) {
  .session-live-read { grid-template-columns: 28px minmax(0, 1fr); min-height: 50px; margin-bottom: 8px; padding: 8px 9px; }
  .session-live-read > span { width: 28px; height: 28px; }
  .session-live-read p { white-space: normal; }
  .session-entry { grid-template-columns: 30px minmax(0, 1fr); gap: 0 9px; }
  .session-entry-clock { grid-column: 2; justify-content: flex-start; margin-bottom: 5px; }
  .session-entry-icon { grid-row: 1 / span 3; }
  .session-entry-body, .session-entry-open { grid-column: 2; }
}
