/* Enzy visual redesign layer.
   Loaded last by the existing pages. Keep this file presentation-only:
   no layout-created features, no data changes, no API or JS behavior changes. */

:root {
  color-scheme: dark;
  --enzy-bg: #050608;
  --enzy-bg-2: #080a0e;
  --enzy-panel: #0c1015;
  --enzy-panel-2: #10161d;
  --enzy-panel-3: #141b24;
  --enzy-line: #222a35;
  --enzy-line-soft: rgba(139, 153, 171, 0.14);
  --enzy-text: #e8edf3;
  --enzy-muted: #8d98a6;
  --enzy-faint: #5f6a78;
  --enzy-blue: #5b9dff;
  --enzy-green: #24c77d;
  --enzy-red: #ef626a;
  --enzy-amber: #d7a640;
  --enzy-cyan: #34cfd0;
  --enzy-radius: 5px;
  --enzy-font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Tahoma, Arial, sans-serif;
  --enzy-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
}

* {
  box-sizing: border-box;
  letter-spacing: 0 !important;
}

html,
body {
  background: var(--enzy-bg) !important;
  color: var(--enzy-text) !important;
}

body {
  min-height: 100vh;
  background: var(--enzy-bg) !important;
  font-family: var(--enzy-font) !important;
  line-height: 1.42 !important;
}

a {
  color: inherit;
}

button,
input,
select {
  font: inherit;
}

.wrap,
.topbar,
.grid {
  width: min(1480px, calc(100% - 20px)) !important;
  max-width: none !important;
  margin-inline: auto !important;
}

.wrap {
  padding: 10px 0 22px !important;
}

h1 {
  color: #fff !important;
  font-size: clamp(18px, 2.1vw, 26px) !important;
  line-height: 1.08 !important;
  font-weight: 900 !important;
}

h2,
h3,
.title,
.panel-title,
.rail-title,
.stage-title,
.source-title,
.symbol,
.word {
  color: #fff !important;
  font-weight: 880 !important;
}

.sub,
.brand-subtitle,
.source-tag,
.source,
.note,
.panel-sub,
.meta,
.rule,
.status-line,
.rail-sub,
.stage-sub,
.stat-label,
.stat-note,
.label,
.muted {
  color: var(--enzy-muted) !important;
  font-size: 12px !important;
  font-weight: 650 !important;
}

.terminal-shell {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 168px minmax(0, 1fr);
  background: var(--enzy-bg) !important;
  direction: ltr !important;
}

.terminal-rail {
  position: sticky;
  top: 0;
  height: 100vh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 10px;
  padding: 12px 10px;
  border-inline-end: 1px solid var(--enzy-line);
  background: #06080b !important;
  direction: ltr !important;
  overflow: hidden;
}

.rail-logo,
.brand-mark {
  width: 36px !important;
  height: 36px !important;
  display: grid !important;
  place-items: center !important;
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: #0b0f14 !important;
  color: var(--enzy-cyan) !important;
  box-shadow: none !important;
  font-weight: 900 !important;
}

.rail-logo {
  margin: 0 0 8px;
}

.rail-nav {
  display: grid;
  gap: 5px;
  align-content: start;
}

.rail-link {
  min-height: 35px !important;
  display: grid !important;
  align-items: center !important;
  justify-items: start !important;
  padding: 0 10px !important;
  border: 1px solid transparent !important;
  border-radius: var(--enzy-radius) !important;
  background: transparent !important;
  color: var(--enzy-muted) !important;
  font-size: 11px !important;
  font-weight: 780 !important;
  text-decoration: none !important;
  cursor: pointer;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.rail-link:hover,
.rail-link.active {
  color: var(--enzy-text) !important;
  border-color: var(--enzy-line) !important;
  background: var(--enzy-panel-2) !important;
}

.rail-link.danger {
  color: #ffb8bc !important;
}

.rail-link.bermuda-link {
  color: #e3b952 !important;
  border-color: rgba(215, 170, 69, .36) !important;
  background: linear-gradient(135deg, rgba(215, 170, 69, .13), rgba(215, 170, 69, .04)) !important;
}

.rail-link.bermuda-link:hover,
.rail-link.bermuda-link.active {
  color: #ffe39a !important;
  border-color: rgba(227, 185, 82, .68) !important;
  background: linear-gradient(135deg, rgba(215, 170, 69, .24), rgba(215, 170, 69, .08)) !important;
}

.terminal-main {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 10px !important;
  direction: ltr !important;
}

.terminal-main.wrap {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 10px !important;
}

.terminal-top,
.top,
.title-bar,
.app-shell > .title-bar {
  min-height: 50px !important;
  margin: 0 0 10px !important;
  padding: 10px 12px !important;
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: var(--enzy-panel) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

.terminal-top {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  gap: 12px !important;
  align-items: center !important;
}

.title-bar,
.top {
  align-items: center !important;
}

.brand-row {
  direction: ltr !important;
}

.brand-block,
.app-shell,
.terminal-stage,
.analysis-stack,
.stack,
.side,
.plan,
.rules,
.signal,
.summary {
  gap: 10px !important;
}

.terminal-actions,
.actions,
.title-actions,
.nav-actions,
.top-controls,
.mode-row,
.chips,
.levels,
.choices,
.ticker-row,
.summary-bar,
.key-levels,
.tabs {
  gap: 6px !important;
}

.terminal-chip,
.pill,
.chip,
.tag,
.badge,
.source-tag,
.summary-chip,
.key-level {
  min-height: 26px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: #0a0e13 !important;
  color: var(--enzy-muted) !important;
  padding: 4px 7px !important;
  box-shadow: none !important;
  font-size: 11px !important;
  font-weight: 760 !important;
}

.tag.green,
.badge.call,
.change.up,
.val.up,
.up {
  color: var(--enzy-green) !important;
}

.tag.red,
.badge.put,
.change.down,
.val.down,
.down {
  color: var(--enzy-red) !important;
}

.tag.yellow,
.badge.watch,
.warn {
  color: var(--enzy-amber) !important;
}

.tag.blue,
.flat {
  color: var(--enzy-blue) !important;
}

.btn,
.back,
.back-btn,
.refresh,
.refresh-btn,
.choice,
.tab,
.toggle button,
.toggle-group button,
.chart-btn,
.ticker-row button,
.ticker,
.replay-bar button,
.mode button,
button.secondary {
  min-height: 32px !important;
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: #0a0e13 !important;
  color: var(--enzy-text) !important;
  box-shadow: none !important;
  padding: 6px 10px !important;
  font-size: 12px !important;
  font-weight: 780 !important;
  text-decoration: none !important;
  transition: background .14s ease, border-color .14s ease !important;
}

.btn:hover,
.back:hover,
.back-btn:hover,
.refresh:hover,
.refresh-btn:hover,
.choice:hover,
.tab:hover,
.toggle button:hover,
.toggle-group button:hover,
.chart-btn:hover,
.ticker-row button:hover,
.ticker:hover,
.replay-bar button:hover,
.mode button:hover,
button.secondary:hover {
  background: var(--enzy-panel-2) !important;
  border-color: #364253 !important;
}

.btn.active,
.refresh-btn.primary,
.choice.active,
.tab.active,
.toggle button.active,
.toggle-group button.active,
.ticker-row button.active,
.ticker.active,
.replay-bar button.active,
.mode button.active {
  background: #11243a !important;
  border-color: var(--enzy-blue) !important;
  color: #fff !important;
  box-shadow: inset 0 0 0 1px rgba(91, 157, 255, .24) !important;
}

.refresh-btn.danger,
.rail-link.danger {
  border-color: rgba(239, 98, 106, .38) !important;
}

.panel,
.card,
.source-panel,
.chart-wrap,
.metric,
.stat-tile,
.ticker-card,
.summary-chip,
.key-level,
.idea,
.swing-card,
.heatmap-box,
.table-wrap,
.comparison > article,
.terminal-blotter,
.terminal-stage > section,
.auth-shell,
.intro,
.box,
.feature,
.detail-row,
.swing-box,
.kv,
.level,
.position,
.rule,
.rail,
.stage {
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: var(--enzy-panel) !important;
  box-shadow: none !important;
}

.panel-head,
.source-head,
.rail-head,
.stage-head {
  min-height: 40px !important;
  padding: 9px 10px !important;
  border-bottom: 1px solid var(--enzy-line) !important;
  background: #090d12 !important;
}

.section-body,
.panel-body,
.summary,
.ideas,
.detail-table,
.cards-grid,
.chips {
  padding: 10px !important;
}

.terminal-stats,
.status-strip {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 8px !important;
}

.stat-tile {
  min-height: 66px !important;
  align-content: center !important;
  gap: 4px !important;
  padding: 9px 10px !important;
}

.stat-value,
.price,
.value,
.val,
.score,
.level b,
.position b,
.metric b,
.metric .value,
.detail-row .val,
.swing-box b,
.kv b,
.row b,
.summary-chip .val,
.key-level .val {
  color: var(--enzy-text) !important;
  font-family: var(--enzy-mono) !important;
  font-weight: 780 !important;
  letter-spacing: 0 !important;
}

.terminal-grid,
.workspace {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 360px !important;
  gap: 10px !important;
  align-items: start !important;
}

.layout {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 300px !important;
  gap: 10px !important;
}

.command {
  display: grid !important;
  grid-template-columns: 280px minmax(0, 1fr) !important;
  gap: 10px !important;
}

.comparison {
  gap: 10px !important;
}

.grid {
  gap: 10px !important;
}

.cards-grid {
  display: block !important;
  max-height: calc(100vh - 218px) !important;
  overflow: auto !important;
  background: #070a0f !important;
}

.ticker-card {
  min-height: 0 !important;
  padding: 0 !important;
  border-width: 0 0 1px !important;
  border-color: var(--enzy-line-soft) !important;
  border-radius: 0 !important;
  display: grid !important;
  grid-template-columns: 82px 1fr 1fr !important;
  gap: 0 !important;
  align-items: stretch !important;
  cursor: pointer !important;
}

.ticker-card::before {
  width: 3px !important;
  height: auto !important;
  inset: 0 auto 0 0 !important;
  background: var(--enzy-faint) !important;
}

.ticker-card.positive::before {
  background: var(--enzy-green) !important;
}

.ticker-card.negative::before {
  background: var(--enzy-red) !important;
}

.ticker-card > * {
  padding: 9px 8px !important;
  border-inline-start: 1px solid var(--enzy-line-soft) !important;
}

.ticker-card .gex-indicator {
  display: none !important;
}

.ticker-card .symbol {
  margin: 0 !important;
  align-self: center !important;
  font-size: 15px !important;
}

.ticker-card .price-row,
.ticker-card .metric {
  margin: 0 !important;
  align-self: center !important;
}

.ticker-card .metric {
  display: grid !important;
  gap: 2px !important;
}

.ticker-card .metric:last-child {
  display: none !important;
}

.ticker-card:hover,
.ticker-card.selected {
  background: #10161d !important;
}

.ticker-card.selected {
  box-shadow: inset 3px 0 0 var(--enzy-blue) !important;
}

.chart-wrap,
.chart-box,
.heatmap-container,
.heatmap-box,
.table-wrap {
  background: #070a0f !important;
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  overflow: auto !important;
  box-shadow: none !important;
}

.chart-wrap {
  padding: 10px !important;
  margin-bottom: 8px !important;
}

.chart-wrap h3,
.card h2 {
  color: var(--enzy-muted) !important;
  font-size: 11px !important;
  font-weight: 760 !important;
  text-transform: uppercase !important;
}

canvas {
  max-width: 100% !important;
}

table,
.heatmap-table {
  width: max-content;
  min-width: 100%;
  border-collapse: collapse !important;
  background: #070a0f !important;
  font-family: var(--enzy-mono) !important;
}

th,
.heatmap-table th {
  background: #0f151d !important;
  color: #dce5ef !important;
  border-color: var(--enzy-line) !important;
  font-size: 10px !important;
  font-weight: 760 !important;
}

td,
th,
.heatmap-table td,
.heatmap-table th {
  border-color: rgba(139, 153, 171, .13) !important;
}

td,
.heatmap-table td {
  color: #cfd8e3 !important;
  font-size: 10px !important;
  font-weight: 650 !important;
}

td.strike,
td.strike-cell,
.heatmap-table td.strike-cell,
.heatmap-table th:first-child,
.heatmap-table td:first-child {
  background: #0f151d !important;
  color: #fff !important;
}

.heatmap-table td.cell:hover {
  filter: brightness(1.28) !important;
  outline: 1px solid var(--enzy-blue) !important;
  outline-offset: -1px !important;
}

.heatmap-table th.dte-0dte {
  background: #141409 !important;
  color: var(--enzy-amber) !important;
}

.ticker-row {
  direction: ltr !important;
  display: flex !important;
  flex-wrap: wrap !important;
  overflow: auto !important;
}

.ticker-btn,
.ticker {
  width: auto !important;
  min-width: 58px !important;
  height: 31px !important;
}

.ticker-btn.merged-link {
  min-width: 88px !important;
  background: #141409 !important;
  border-color: rgba(215, 166, 64, .48) !important;
  color: var(--enzy-amber) !important;
}

.summary-bar,
.key-levels {
  margin: 8px 0 !important;
}

.mode-row,
.top-controls,
.replay-bar {
  padding: 0 !important;
}

.toggle,
.toggle-group,
.mode {
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: #090d12 !important;
  overflow: hidden !important;
}

.toggle button,
.toggle-group button,
.mode button {
  border-width: 0 1px 0 0 !important;
  border-radius: 0 !important;
}

.legend,
.zoom-controls {
  direction: ltr !important;
}

.legend-item,
.zoom-label {
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: rgba(6, 8, 11, .86) !important;
  color: var(--enzy-text) !important;
  font-size: 10px !important;
}

.signal,
.signal-main {
  border-color: var(--enzy-line) !important;
  background: var(--enzy-panel-2) !important;
  border-radius: var(--enzy-radius) !important;
}

.signal.long {
  border-color: rgba(36, 199, 125, .42) !important;
  background: rgba(36, 199, 125, .08) !important;
}

.signal.short,
.signal-main {
  border-color: rgba(239, 98, 106, .42) !important;
  background: rgba(239, 98, 106, .08) !important;
}

.signal.wait {
  border-color: rgba(215, 166, 64, .42) !important;
  background: rgba(215, 166, 64, .08) !important;
}

.signal .word {
  font-size: clamp(22px, 5vw, 30px) !important;
}

.result {
  gap: 10px !important;
}

.levels,
.positions,
.grid2,
.detail-table,
.swing-grid,
.agent-grid,
.feature-row {
  gap: 8px !important;
}

.bar-row {
  min-height: 30px !important;
}

.track {
  height: 22px !important;
  border-radius: var(--enzy-radius) !important;
  background: #080c11 !important;
}

.bar-fill.pos {
  background: rgba(36, 199, 125, .82) !important;
}

.bar-fill.neg {
  background: rgba(239, 98, 106, .78) !important;
}

.sector-strip {
  background: #090d12 !important;
  border-bottom: 1px solid var(--enzy-line) !important;
}

.sector-chip {
  border-radius: var(--enzy-radius) !important;
  background: rgba(36, 199, 125, .82) !important;
  color: #03110a !important;
}

.sector-chip.red {
  background: rgba(239, 98, 106, .82) !important;
  color: #180305 !important;
}

.tooltip {
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: #0b1016 !important;
  box-shadow: 0 18px 45px rgba(0, 0, 0, .42) !important;
}

.loading,
.empty,
.empty-state,
.chart-empty {
  color: var(--enzy-muted) !important;
  background: transparent !important;
}

.loading .spinner {
  border-color: var(--enzy-line) !important;
  border-top-color: var(--enzy-cyan) !important;
}

.error-banner,
.error {
  border: 1px solid rgba(239, 98, 106, .5) !important;
  border-radius: var(--enzy-radius) !important;
  background: rgba(239, 98, 106, .1) !important;
  color: #ffc2c6 !important;
}

.auth-shell {
  width: min(920px, 100%) !important;
  grid-template-columns: minmax(0, .9fr) minmax(320px, .72fr) !important;
  overflow: hidden !important;
}

.intro {
  min-height: 0 !important;
  padding: 22px !important;
  align-content: space-between !important;
  border-left: 1px solid var(--enzy-line) !important;
}

.intro h2 {
  color: #fff !important;
  font-size: clamp(24px, 4vw, 36px) !important;
  line-height: 1.08 !important;
}

.intro p {
  color: var(--enzy-muted) !important;
  font-size: 13px !important;
}

.box {
  padding: 22px !important;
}

input {
  height: 38px !important;
  border: 1px solid var(--enzy-line) !important;
  border-radius: var(--enzy-radius) !important;
  background: #080c11 !important;
  color: var(--enzy-text) !important;
  outline: 0 !important;
}

input:focus {
  border-color: var(--enzy-blue) !important;
  box-shadow: 0 0 0 2px rgba(91, 157, 255, .16) !important;
}

button:not(.rail-link):not(.nav-button) {
  box-shadow: none !important;
}

button[type],
.primary,
button:not(.secondary) {
  border-radius: var(--enzy-radius);
}

button[id="sendBtn"],
button[id="verifyBtn"],
button.primary,
.primary-btn {
  border-color: var(--enzy-blue) !important;
  background: #11243a !important;
  color: #fff !important;
}

@media (max-width: 1100px) {
  .terminal-grid,
  .workspace,
  .layout,
  .command,
  .comparison,
  .grid {
    grid-template-columns: 1fr !important;
  }

  .terminal-stats,
  .status-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 780px) {
  .terminal-shell {
    grid-template-columns: 118px minmax(0, 1fr) !important;
  }

  .terminal-rail {
    position: sticky !important;
    top: 0 !important;
    height: 100vh !important;
    grid-template-columns: 1fr !important;
    grid-template-rows: auto 1fr auto !important;
    align-items: start !important;
    border-inline-end: 1px solid var(--enzy-line) !important;
    border-bottom: 0 !important;
    padding: 10px 7px !important;
  }

  .rail-logo {
    margin: 0 0 8px !important;
  }

  .rail-nav {
    display: grid !important;
    overflow: hidden !important;
  }

  .rail-link {
    min-width: 0 !important;
    width: 100% !important;
    padding-inline: 8px !important;
  }

  .terminal-top,
  .title-bar,
  .top {
    grid-template-columns: 1fr !important;
    display: grid !important;
    align-items: start !important;
  }

  .terminal-actions,
  .actions,
  .title-actions,
  .nav-actions,
  .top-controls {
    justify-content: stretch !important;
    display: flex !important;
    flex-wrap: wrap !important;
  }

  .btn,
  .back,
  .back-btn,
  .refresh,
  .refresh-btn {
    flex: 1 1 auto !important;
  }

  .cards-grid {
    max-height: none !important;
  }

  .auth-shell {
    grid-template-columns: 1fr !important;
  }

  .intro {
    border-left: 0 !important;
    border-bottom: 1px solid var(--enzy-line) !important;
  }
}

@media (max-width: 520px) {
  .terminal-shell {
    grid-template-columns: 68px minmax(0, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .terminal-rail {
    width: 68px !important;
    padding: 8px 4px !important;
  }

  .rail-logo {
    width: 32px !important;
    height: 32px !important;
  }

  .rail-link {
    min-height: 32px !important;
    padding-inline: 4px !important;
    font-size: 8.5px !important;
  }

  .terminal-main,
  .terminal-main > *,
  .profile-main,
  .profile-main > * {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .terminal-main,
  .profile-main {
    overflow-x: hidden !important;
  }

  .wrap,
  .topbar,
  .grid {
    width: min(100% - 14px, 1480px) !important;
  }

  .terminal-main {
    padding: 8px !important;
  }

  .terminal-stats,
  .status-strip,
  .levels,
  .positions,
  .grid2,
  .detail-table,
  .swing-grid,
  .feature-row,
  .choices {
    grid-template-columns: 1fr !important;
  }

  .ticker-card {
    grid-template-columns: 76px 1fr !important;
  }

  .ticker-card .metric:last-child {
    display: none !important;
  }

  .ticker-card > * {
    padding: 8px !important;
  }

  .sub,
  .brand-subtitle {
    font-size: 11px !important;
  }

  h1 {
    font-size: 20px !important;
  }

  .btn,
  .back,
  .back-btn,
  .refresh,
  .refresh-btn,
  .choice,
  .tab,
  .ticker-row button,
  .ticker {
    min-height: 31px !important;
    padding: 5px 7px !important;
    font-size: 11px !important;
  }

  .heatmap-table td {
    min-width: 44px !important;
    height: 25px !important;
  }

  .heatmap-table td.strike-cell {
    min-width: 58px !important;
  }
}
