/* Terminal theme (trading-floor style). Applies only to html[data-theme="terminal"]; see themeHead in
   shared/layout.mjs. Colour never carries meaning alone: ▲▼ and +/− stay. No animations (Pi at ~10-15 fps). */
:root[data-theme="terminal"] {
  --bg: #000; --panel: #000; --line: #333; --line2: #444; --row: #1A1A1A;
  --fg: #F2F2F2; --fg2: #D4D4D4; --muted: #B4B4B4; --dim: #8E8E8E;
  --accent: #FFB000; --amber: #FFB000; --up: #22E07A; --down: #FF4D4D; --link: #5CC8FF;
  --sans: 'JetBrains Mono', ui-monospace, monospace;
}
:root[data-theme="terminal"] body { background: #000; font-size: 13px; }
:root[data-theme="terminal"] .prose { font-family: 'IBM Plex Sans', 'IBM Plex Sans KR', system-ui, sans-serif; }

/* panels: thin grid lines, square corners, dense rows, short amber uppercase headers */
:root[data-theme="terminal"] .panel { background: #000; border: 1px solid var(--line); border-radius: 0; padding: 6px 10px; }
:root[data-theme="terminal"] .panel h2,
:root[data-theme="terminal"] .site main h1 { font-family: var(--sans); font-size: 12px; font-weight: 600; color: var(--amber); text-transform: uppercase; letter-spacing: .6px; }
:root[data-theme="terminal"] .site main h1 { font-size: 16px !important; }
:root[data-theme="terminal"] .prose h1, :root[data-theme="terminal"] .prose h2 { font-family: var(--sans); color: var(--amber); text-transform: uppercase; }
:root[data-theme="terminal"] .panel h2 small { font-size: 11px; color: var(--dim); }
:root[data-theme="terminal"] [data-term] { font-size: 0 !important; }
:root[data-theme="terminal"] [data-term] > * { display: none; }
:root[data-theme="terminal"] [data-term]::before { content: attr(data-term); font-size: 12px; }
:root[data-theme="terminal"] .card { background: #000; border-radius: 0; border-color: var(--line); padding: 6px 8px; gap: 2px; }
:root[data-theme="terminal"] .league-row { padding: 2px 0; font-size: 12px; border-bottom-color: var(--row); }
:root[data-theme="terminal"] .swatch { border-radius: 0; }
:root[data-theme="terminal"] .tag,
:root[data-theme="terminal"] .filters select,
:root[data-theme="terminal"] .filters button { border-radius: 0; background: #000; }
:root[data-theme="terminal"] .mv-bar { border-radius: 0; }

/* up/down: green/red plus a ▲▼ sign (numbers already carry +/−) */
:root[data-theme="terminal"] span.up::before { content: '▲ '; }
:root[data-theme="terminal"] span.down::before { content: '▼ '; }
:root[data-theme="terminal"] .flash-up { background: rgba(34, 224, 122, .38) !important; }
:root[data-theme="terminal"] .flash-down { background: rgba(255, 77, 77, .38) !important; }

/* badges */
:root[data-theme="terminal"] .badge { border-radius: 0; background: #000; color: #FF4D4D; border: 1px solid #FF4D4D; font-family: var(--sans); font-size: 12px; padding: 1px 6px; }
:root[data-theme="terminal"] .badge::before { content: '● '; }
:root[data-theme="terminal"] .badge.sample { color: #FF6BFF; border-color: #FF6BFF; background: #000; }
/* mode badges: bracketed text, each with its own colour and weight; LIVE (real money) is inverted */
:root[data-theme="terminal"] .mode { font-size: 0; padding: 0; border: 0; border-radius: 0; background: none; line-height: 14px; margin-left: 6px; }
:root[data-theme="terminal"] .mode::before { font-size: 10px; font-weight: 600; letter-spacing: .3px; }
:root[data-theme="terminal"] .mode-live::before { content: '[LIVE]'; background: var(--up); color: #000; padding: 0 2px; }
:root[data-theme="terminal"] .mode-demo::before { content: '[DEMO]'; color: #5CC8FF; }
:root[data-theme="terminal"] .mode-sim::before { content: '[SIM]'; color: #B4B4B4; }
:root[data-theme="terminal"] .mode-legend .mode { margin-right: 4px; }

/* ticker tape: stepped by script, never scrolled */
.tape { display: none; }
:root[data-theme="terminal"] .tape { display: flex; overflow: hidden; white-space: nowrap; height: 22px; align-items: center; border: 1px solid var(--line); font-family: var(--sans); font-size: 12px; flex: none; }
:root[data-theme="terminal"] .tk { flex: none; padding: 0 12px; border-right: 1px solid var(--row); }
:root[data-theme="terminal"] .tk b { color: var(--amber); font-weight: 600; }
:root[data-theme="terminal"] .tk-px { color: var(--fg); padding: 0 2px; }
:root[data-theme="terminal"] .tk-ch { color: var(--muted); }
:root[data-theme="terminal"] .tk-up { color: var(--up); } :root[data-theme="terminal"] .tk-down { color: var(--down); }

/* function-key bar */
:root[data-theme="terminal"] .fkeys { display: flex; font-family: var(--sans); font-size: 12px; background: #000; border-top: 1px solid var(--line); }
:root[data-theme="terminal"] .fkeys > * { flex: 1; display: flex; align-items: center; gap: 6px; padding: 3px 8px; color: var(--fg); text-decoration: none; white-space: nowrap; border-right: 1px solid var(--row); }
:root[data-theme="terminal"] .fkeys b { background: var(--amber); color: #000; padding: 0 4px; font-weight: 600; }
:root[data-theme="terminal"] .fkeys a:hover { background: #1A1A1A; }
:root[data-theme="terminal"] body.has-fkeys { padding-bottom: 32px; }
:root[data-theme="terminal"] body.has-fkeys > .fkeys { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; }
@media (max-width: 600px) {
  :root[data-theme="terminal"] body.has-fkeys > .fkeys { display: grid; grid-template-columns: repeat(3, 1fr); }
  :root[data-theme="terminal"] .fkeys > * { border-bottom: 1px solid var(--row); }
  :root[data-theme="terminal"] body.has-fkeys { padding-bottom: 56px; }
}

/* site pages */
:root[data-theme="terminal"] .site-header { padding: 8px 0; border-bottom-color: var(--amber); }
:root[data-theme="terminal"] .brand { color: var(--amber); text-transform: uppercase; font-size: 16px; letter-spacing: 1px; }
:root[data-theme="terminal"] .brand::after { content: '<GO>'; margin-left: 8px; background: var(--amber); color: #000; font-size: 11px; padding: 1px 4px; vertical-align: 2px; }
:root[data-theme="terminal"] .site-nav { font-size: 12px; text-transform: uppercase; }
:root[data-theme="terminal"] .site-nav a { color: var(--fg2); }
:root[data-theme="terminal"] .disclaimer { text-transform: uppercase; font-size: 11px; color: var(--muted); padding: 6px 0; letter-spacing: .3px; }
:root[data-theme="terminal"] .site .tape { margin-top: 8px; }
:root[data-theme="terminal"] .site main, :root[data-theme="terminal"] .two, :root[data-theme="terminal"] .grid2 { gap: 8px; }
:root[data-theme="terminal"] .site-footer { border-top-color: var(--line); font-size: 11px; text-transform: uppercase; }

/* /live: same 1280x720 stage, tighter so tape and F-key bar fit */
:root[data-theme="terminal"] .stage { padding: 6px 10px; gap: 4px; }
:root[data-theme="terminal"] .top { align-items: center; padding-bottom: 4px; border-bottom: 1px solid var(--amber); }
:root[data-theme="terminal"] .top-left { gap: 2px; }
:root[data-theme="terminal"] .title-row { gap: 10px; }
:root[data-theme="terminal"] .logo { font-family: var(--sans); font-size: 20px; color: var(--amber); letter-spacing: 1px; }
:root[data-theme="terminal"] .logo::after { content: '<GO>'; margin-left: 8px; background: var(--amber); color: #000; font-size: 12px; padding: 1px 4px; vertical-align: 3px; }
:root[data-theme="terminal"] .sub { font-size: 13px; color: var(--fg); text-transform: uppercase; }
:root[data-theme="terminal"] .disc { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; }
:root[data-theme="terminal"] .top-right { gap: 0; align-items: stretch; }
:root[data-theme="terminal"] .kv { padding: 0 12px; border-left: 1px solid var(--line); gap: 0; }
:root[data-theme="terminal"] .kv span { font-size: 10px; color: var(--amber); text-transform: uppercase; }
:root[data-theme="terminal"] .kv b { font-size: 20px; color: var(--fg); }
:root[data-theme="terminal"] .scene { gap: 1px; background: var(--line); border: 1px solid var(--line); grid-template-rows: auto minmax(0, 1fr) auto 96px; }
:root[data-theme="terminal"] .scene .panel, :root[data-theme="terminal"] .trade-scene .panel { border: 0; }
:root[data-theme="terminal"] .chart-panel { padding: 4px 6px; }
:root[data-theme="terminal"] .panel-head h2 { font-size: 12px; }
:root[data-theme="terminal"] .legend { font-size: 11px; }
:root[data-theme="terminal"] .team-panel, :root[data-theme="terminal"] .pos-panel { padding: 4px 10px; }
:root[data-theme="terminal"] .team-panel .panel-head h2, :root[data-theme="terminal"] .pos-panel h2 { font-size: 12px; }
:root[data-theme="terminal"] .chip-row, :root[data-theme="terminal"] .trade-line, :root[data-theme="terminal"] .research-line { font-size: 12px; }
:root[data-theme="terminal"] .stack { gap: 3px; }
:root[data-theme="terminal"] .trade-scene { gap: 1px; background: var(--line); border: 1px solid var(--line); }
:root[data-theme="terminal"] .t-side { gap: 1px; background: var(--line); }
:root[data-theme="terminal"] .tchart-panel h2 { font-size: 14px; }
:root[data-theme="terminal"] .log { background: #000; border-radius: 0; border-color: var(--line); padding: 3px 8px; font-size: 12px; flex: none; }
:root[data-theme="terminal"] .log-tag { background: var(--amber); color: #000; padding: 0 4px; }
:root[data-theme="terminal"] .log-url { text-transform: uppercase; font-size: 11px; }
:root[data-theme="terminal"] .stage > .fkeys { flex: none; border: 1px solid var(--line); }
:root[data-theme="terminal"] .stage > .fkeys > * { padding: 1px 8px; }
