:root { color-scheme: dark; --bg: oklch(0.12 0.01 250); --bg-elevated: oklch(0.15 0.012 250); --bg-pane: oklch(0.18 0.013 250); --bg-pane-2: oklch(0.16 0.012 250); --bg-soft: oklch(0.97 0.008 250 / 0.035); --border: oklch(0.72 0.012 250 / 0.16); --border-strong: oklch(0.78 0.09 74 / 0.28); --text: oklch(0.93 0.014 250); --text-dim: oklch(0.74 0.018 250); --text-faint: oklch(0.59 0.016 250); --accent: oklch(0.78 0.12 74); --accent-soft: oklch(0.78 0.12 74 / 0.1); --green: oklch(0.74 0.13 151); --green-soft: oklch(0.74 0.13 151 / 0.1); --red: oklch(0.68 0.16 28); --red-soft: oklch(0.68 0.16 28 / 0.12); --blue: oklch(0.72 0.13 247); --blue-soft: oklch(0.72 0.13 247 / 0.11); --drawer-width: min(320px, calc(100vw - 28px)); --topbar-height: 64px; } * { box-sizing: border-box; } html, body { margin: 0; min-height: 100%; } body { min-height: 100vh; font-family: var(--font-sans), sans-serif; color: var(--text); background: radial-gradient(circle at top left, oklch(0.78 0.12 74 / 0.08), transparent 30%), linear-gradient(180deg, oklch(0.15 0.012 250) 0%, oklch(0.11 0.01 250) 100%); } a { color: inherit; text-decoration: none; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } .skip-link { position: absolute; top: 12px; left: 12px; z-index: 40; padding: 8px 10px; border: 1px solid rgba(255, 216, 154, 0.44); border-radius: 8px; background: rgba(7, 10, 14, 0.98); color: #ffe2aa; font-family: var(--font-mono), monospace; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; transform: translateY(-160%); transition: transform 160ms ease; } .skip-link:focus-visible { transform: translateY(0); } button, input { font: inherit; } .terminal-shell { position: relative; min-height: 100vh; background: linear-gradient(180deg, oklch(0.14 0.011 250) 0%, oklch(0.11 0.01 250) 100%); } .terminal-nav-drawer { position: fixed; inset: 0 auto 0 0; z-index: 45; width: var(--drawer-width); padding: 20px 18px 18px; display: flex; flex-direction: column; gap: 20px; background: linear-gradient(180deg, oklch(0.16 0.012 250 / 0.98), oklch(0.13 0.011 250 / 0.98)); border-right: 1px solid var(--border); box-shadow: 0 28px 72px rgba(0, 0, 0, 0.48); } .terminal-drawer-backdrop { position: fixed; inset: 0; z-index: 40; border: 0; background: rgba(3, 5, 8, 0.62); cursor: pointer; } .terminal-drawer-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } .terminal-drawer-close { flex: 0 0 auto; } .terminal-brand { display: grid; gap: 4px; } .terminal-brand-kicker { font-family: var(--font-display), sans-serif; font-size: 0.72rem; letter-spacing: 0.22em; color: oklch(0.78 0.11 74 / 0.8); } .terminal-brand-name { min-width: 0; font-family: var(--font-display), sans-serif; font-size: 1.56rem; letter-spacing: 0.07em; text-transform: uppercase; overflow-wrap: anywhere; } .terminal-nav { display: grid; gap: 8px; } .terminal-nav-link { min-width: 0; min-height: 44px; padding: 12px 14px; border: 1px solid transparent; border-radius: 10px; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.76rem; transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease; } .terminal-nav-link:hover { border-color: var(--border); color: var(--text); background: var(--bg-soft); } .terminal-nav-link:focus-visible, .terminal-button:focus-visible, .instrument-focus-chip button:focus-visible { outline: 2px solid oklch(0.83 0.08 74 / 0.82); outline-offset: 2px; } .terminal-nav-link-active { border-color: var(--border-strong); color: var(--text); background: var(--accent-soft); } .shell-metrics { margin-top: auto; display: grid; gap: 8px; } .shell-metric { padding: 11px 13px; border-radius: 10px; border: 1px solid var(--border); background: var(--bg-soft); } .shell-metric-label, .overview-label, .focus-label, .terminal-filter-label, .summary-title, .filter-label { display: block; margin-bottom: 6px; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.68rem; } .shell-metric-value, .overview-cell strong, .focus-value { font-family: var(--font-mono), monospace; font-size: 0.92rem; } .terminal-frame { min-width: 0; min-height: 100vh; display: grid; grid-template-rows: minmax(var(--topbar-height), auto) minmax(0, 1fr); } .terminal-topbar { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 20px; background: oklch(0.15 0.012 250 / 0.96); border-bottom: 1px solid var(--border); backdrop-filter: blur(12px); } .terminal-topbar-leading { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; } .terminal-menu-trigger { display: inline-flex; align-items: center; gap: 10px; min-width: 104px; } .terminal-menu-trigger-icon { display: inline-grid; gap: 4px; } .terminal-menu-trigger-icon span { display: block; width: 14px; height: 1px; border-radius: 999px; background: currentColor; } .status-dot, .chart-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--text-faint); } .status-connected .status-dot, .chart-status-connected .chart-dot { background: var(--green); box-shadow: 0 0 0 4px rgba(37, 193, 122, 0.14); } .chart-status-connecting .chart-dot { background: var(--accent); box-shadow: 0 0 0 4px rgba(245, 166, 35, 0.12); animation: pulse 1.3s ease-in-out infinite; } .status-stale .status-dot, .chart-status-stale .chart-dot { background: var(--accent); box-shadow: 0 0 0 4px rgba(245, 166, 35, 0.18); } .status-disconnected .status-dot, .chart-status-disconnected .chart-dot { background: var(--red); box-shadow: 0 0 0 4px rgba(255, 107, 95, 0.12); } .terminal-topbar-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 12px; min-width: 0; width: auto; margin-left: auto; } .terminal-topbar-controls { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; min-width: 0; flex: 0 1 auto; } .terminal-topbar-mode { display: flex; align-items: center; justify-content: flex-end; flex: 0 0 auto; margin-left: auto; } .terminal-filter { display: flex; flex-direction: column; gap: 4px; min-width: clamp(220px, 24vw, 360px); flex: 0 1 clamp(220px, 24vw, 360px); } .terminal-filter-label { margin-bottom: 0; line-height: 1; } .terminal-filter-field { position: relative; display: flex; align-items: center; min-height: 32px; } .terminal-filter-field::before, .terminal-filter-field::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; transition: opacity 160ms ease, transform 160ms ease, box-shadow 160ms ease, background 160ms ease; } .terminal-filter-field::before { height: 1px; background: var(--border); opacity: 1; } .terminal-filter-field::after { height: 2px; background: var(--accent); transform: scaleX(0.12); transform-origin: left center; opacity: 0; } .terminal-input { min-width: 0; width: 100%; padding: 0 0 6px; border: none; border-radius: 0; background: transparent; color: var(--text); font-family: var(--font-mono), monospace; font-size: 0.9rem; font-weight: 500; letter-spacing: 0.01em; } .terminal-input::placeholder { color: oklch(0.7 0.014 250 / 0.72); font-size: 0.84rem; } .terminal-filter:focus-within .terminal-filter-label { color: var(--text-dim); } .terminal-filter:focus-within .terminal-filter-field::before { background: oklch(0.74 0.02 250 / 0.32); } .terminal-filter:focus-within .terminal-filter-field::after { transform: scaleX(1); opacity: 1; } .terminal-filter:focus-within .terminal-input { color: var(--text); } .terminal-input:focus-visible, .filter-input:focus-visible { outline: none; } .terminal-button, .mode-button, .filter-clear, .jump-button, .pause-button, .interval-button, .overlay-toggle, .drawer-close { min-height: 36px; border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; background: var(--bg-soft); color: var(--text); cursor: pointer; text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.72rem; } .terminal-button:disabled, .filter-clear:disabled, .jump-button:disabled { opacity: 0.45; cursor: default; } .terminal-button-primary, .interval-button.active, .overlay-toggle.overlay-toggle-on, .mode-button { border-color: var(--border-strong); background: var(--accent-soft); color: var(--text); } .instrument-focus-chip { display: inline-flex; align-items: center; gap: 8px; min-width: 0; min-height: 32px; max-width: min(360px, 32vw); padding: 5px 8px 5px 10px; border: 1px solid var(--border-strong); border-radius: 8px; background: oklch(0.78 0.12 74 / 0.07); color: var(--text); font-family: var(--font-mono), monospace; font-size: 0.72rem; font-weight: 600; } .instrument-focus-chip span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .instrument-focus-chip button, .instrument-cell-button { border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; } .instrument-focus-chip button { padding: 4px 6px; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.62rem; } .instrument-cell-button { padding: 0; text-align: inherit; text-decoration: underline; text-decoration-color: var(--border-strong); text-underline-offset: 3px; } .instrument-cell-button:hover, .instrument-cell-button:focus-visible { color: var(--text); outline: none; } .pause-button { padding: 7px 10px; font-size: 0.66rem; } .terminal-content { min-width: 0; padding: 24px clamp(16px, 2vw, 28px) 24px; } .page-shell { display: grid; gap: 18px; } .page-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .page-title, h1, h2, h3 { margin: 0; font-family: var(--font-display), sans-serif; text-transform: uppercase; letter-spacing: 0.08em; } .page-title { font-size: clamp(1.75rem, 2.4vw, 2.3rem); letter-spacing: 0.06em; } .page-actions { display: flex; align-items: center; gap: 10px; position: relative; } .contract-filter-button { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; min-width: 0; max-width: min(440px, 42vw); } .contract-filter-button-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .contract-filter-button.is-active { border-color: var(--border-strong); background: var(--accent-soft); color: var(--text); } .flow-filter-popover { position: relative; } .flow-filter-trigger { display: inline-flex; align-items: center; gap: 8px; } .flow-filter-trigger.is-active { border-color: var(--border-strong); background: var(--accent-soft); } .flow-filter-badge { min-width: 22px; padding: 2px 6px; border-radius: 999px; background: oklch(0.78 0.12 74 / 0.16); color: var(--text); font-family: var(--font-mono), monospace; font-size: 0.7rem; text-align: center; } .flow-filter-popover-panel { position: absolute; top: calc(100% + 12px); right: 0; z-index: 30; width: min(420px, calc(100vw - 72px)); max-height: min(70vh, 560px); overflow: auto; border: 1px solid var(--border); border-radius: 16px; background: oklch(0.16 0.012 250 / 0.98); box-shadow: 0 24px 54px rgba(0, 0, 0, 0.32); } .flow-filter-popover-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 16px 14px; border-bottom: 1px solid var(--border); } .flow-filter-popover-title { font-family: var(--font-sans), sans-serif; font-size: 0.84rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; } .flow-filter-popover-copy { margin-top: 6px; color: var(--text-dim); font-size: 0.78rem; } .flow-filter-popover-body { display: grid; gap: 12px; padding: 14px; } .flow-filter-section { display: grid; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: 14px; background: var(--bg-soft); } .flow-filter-section-title { color: var(--text-dim); font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; } .flow-filter-section-copy { margin: -2px 0 0; color: var(--text-muted); font-size: 0.78rem; line-height: 1.35; } .flow-filter-checkbox-grid, .flow-filter-chip-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; } .flow-filter-checkbox-grid-wide { grid-template-columns: repeat(3, minmax(0, 1fr)); } .flow-filter-chip-grid-two { grid-template-columns: repeat(2, minmax(0, 1fr)); } .flow-filter-check { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 10px 12px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-soft); font-size: 0.82rem; text-transform: uppercase; cursor: pointer; } .flow-filter-check input { margin: 0; accent-color: var(--accent); } .filter-chip { border: 1px solid var(--border); border-radius: 12px; background: var(--bg-soft); color: var(--text); min-height: 42px; padding: 8px 12px; font: inherit; cursor: pointer; text-transform: uppercase; } .filter-chip.is-active { border-color: var(--border-strong); background: var(--accent-soft); color: var(--text); } .replay-matrix { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); } .overview-cell { min-width: 0; padding: 14px 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-soft); } .page-grid { display: grid; gap: 16px; align-items: stretch; } .page-grid-home { grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr); } .page-grid-options { grid-template-columns: minmax(0, 1fr); } .page-grid-signals { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-rows: minmax(0, 2fr) minmax(0, 1fr); height: calc(100vh - var(--topbar-height) - 172px); min-height: 620px; } .page-grid-charts { grid-template-columns: minmax(0, 1.7fr) minmax(320px, 1fr); } .page-grid-replay { grid-template-columns: repeat(3, minmax(0, 1fr)); } .page-grid-news { grid-template-columns: minmax(0, 1fr); } .page-grid-home > :nth-child(3), .page-grid-home > :nth-child(4), .page-grid-options > :nth-child(1), .page-grid-replay > :nth-child(1) { grid-column: 1 / -1; } .command-deck-shell { display: grid; gap: 12px; } .command-deck-header { min-width: 0; display: grid; grid-template-columns: minmax(220px, 0.8fr) minmax(260px, 1fr) auto; gap: 14px; align-items: center; padding: 13px 14px; border: 1px solid var(--border); border-radius: 12px; background: linear-gradient(180deg, oklch(0.18 0.013 250 / 0.96), oklch(0.145 0.012 250 / 0.96)); } .command-deck-brand { min-width: 0; display: flex; align-items: center; gap: 11px; } .command-deck-mark { width: 34px; height: 34px; flex: 0 0 auto; border: 1px solid var(--border-strong); border-radius: 8px; background: linear-gradient(135deg, oklch(0.78 0.12 74 / 0.7), oklch(0.28 0.035 250)), var(--accent-soft); } .command-deck-kicker, .command-pane-meta, .command-health-row, .command-replay-strip, .command-ticker-card { font-family: var(--font-mono), monospace; } .command-deck-kicker { display: block; color: var(--text-faint); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: lowercase; } .command-deck-brand h2 { margin: 1px 0 0; font-family: var(--font-display), sans-serif; font-size: 1.2rem; line-height: 1.05; letter-spacing: 0; } .command-deck-brief { min-width: 0; display: flex; align-items: center; gap: 9px; flex-wrap: wrap; color: var(--text-dim); font-size: 0.82rem; } .command-deck-brief strong { color: var(--text); font-family: var(--font-mono), monospace; font-size: 0.86rem; } .command-deck-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; } .compact-command-bar { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 10px 12px; border-radius: 10px; background: linear-gradient(180deg, oklch(0.17 0.013 250 / 0.95), oklch(0.13 0.011 250 / 0.95)); } .compact-command-topline, .compact-command-context { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; } .compact-command-title, .compact-command-controls, .compact-command-context { min-width: 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .compact-command-title span, .compact-command-context > span { color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; letter-spacing: 0.12em; text-transform: lowercase; } .compact-command-title strong { color: var(--text); font-family: var(--font-display), sans-serif; font-size: 1.05rem; letter-spacing: 0.02em; text-transform: uppercase; } .compact-command-context strong { color: var(--text); font-family: var(--font-mono), monospace; font-size: 0.8rem; } .command-filter-tooltip { position: relative; min-width: 0; max-width: min(360px, 38vw); min-height: 32px; display: inline-flex; align-items: center; gap: 7px; padding: 5px 8px 5px 10px; border: 1px solid var(--border-strong); border-radius: 999px; background: oklch(0.78 0.12 74 / 0.09); color: var(--text); font-family: var(--font-mono), monospace; font-size: 0.68rem; text-transform: uppercase; } .command-filter-tooltip span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .command-filter-tooltip button { width: 20px; height: 20px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: oklch(0.97 0.008 250 / 0.08); color: var(--text-dim); cursor: pointer; font-family: var(--font-mono), monospace; font-size: 0.62rem; opacity: 0; transform: translateX(3px); transition: background-color 150ms ease, color 150ms ease, opacity 150ms ease, transform 150ms ease; } .command-filter-tooltip:hover button, .command-filter-tooltip:focus-within button { opacity: 1; transform: translateX(0); } .command-filter-tooltip button:hover, .command-filter-tooltip button:focus-visible { background: oklch(0.78 0.12 74 / 0.17); color: var(--text); outline: none; } .command-chip { min-height: 32px; display: inline-flex; align-items: center; border: 1px solid var(--border); border-radius: 999px; padding: 5px 9px; background: var(--bg-soft); color: var(--text-dim); font-family: var(--font-mono), monospace; font-size: 0.68rem; text-transform: uppercase; } .command-chip-connected { color: var(--green); background: var(--green-soft); } .command-chip-stale, .command-chip-connecting { color: var(--accent); background: var(--accent-soft); } .command-chip-disconnected { color: var(--red); background: var(--red-soft); } .command-ticker-rail { min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 10px; background: oklch(0.13 0.012 250 / 0.98); } .command-ticker-track { display: grid; grid-auto-columns: minmax(176px, 1fr); grid-auto-flow: column; gap: 8px; overflow-x: auto; padding: 7px; } .command-ticker-card { min-width: 176px; min-height: 64px; display: grid; grid-template-columns: 1fr auto; gap: 4px 9px; align-items: center; border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; background: oklch(0.17 0.013 250); color: inherit; text-align: left; cursor: pointer; } .command-ticker-card:hover, .command-ticker-card:focus-visible { border-color: var(--border-strong); outline: none; } .command-ticker-symbol { color: var(--text); font-weight: 700; } .command-ticker-price, .command-ticker-meta { color: var(--text-dim); font-size: 0.72rem; } .command-ticker-move { justify-self: end; color: var(--text-faint); font-size: 0.68rem; } .command-ticker-card.is-up .command-ticker-move { color: var(--green); } .command-ticker-card.is-down .command-ticker-move { color: var(--red); } .command-ticker-meta { grid-column: 1 / -1; } .command-deck-grid { display: grid; grid-template-columns: minmax(360px, 1.12fr) minmax(420px, 1.38fr) minmax(300px, 0.9fr); grid-template-areas: "tape chart signals" "feed dark context" "replay replay replay"; gap: 10px; align-items: stretch; } .command-deck-grid > .terminal-pane { border-radius: 10px; } .command-deck-grid > :nth-child(1) { grid-area: tape; min-height: 386px; } .command-deck-grid > :nth-child(2) { grid-area: chart; min-height: 386px; } .command-deck-grid > :nth-child(3) { grid-area: signals; min-height: 386px; } .command-deck-grid > :nth-child(4) { grid-area: feed; min-height: 278px; } .command-deck-grid > :nth-child(5) { grid-area: dark; min-height: 278px; } .command-deck-grid > :nth-child(6) { grid-area: context; min-height: 278px; } .command-deck-grid > :nth-child(7) { grid-area: replay; min-height: 116px; } .command-deck-grid .terminal-pane-head { min-height: 42px; padding: 10px 12px; } .command-deck-grid .terminal-pane-body { padding: 10px 12px 12px; } .command-deck-grid .terminal-pane-title { font-family: var(--font-mono), monospace; font-size: 0.72rem; letter-spacing: 0.12em; text-transform: uppercase; } .command-deck-grid .chart-surface { height: 300px; } .command-pane-meta { color: var(--text-faint); font-size: 0.68rem; text-transform: uppercase; } .command-health-list, .command-context-list, .command-replay-strip { display: grid; gap: 8px; } .command-health-row { min-height: 34px; display: grid; grid-template-columns: minmax(96px, 1fr) 92px 76px 92px; gap: 8px; align-items: center; border-bottom: 1px solid oklch(0.72 0.012 250 / 0.09); color: var(--text-dim); font-size: 0.72rem; } .command-health-row:last-child { border-bottom: 0; } .command-health-status { width: fit-content; max-width: 100%; display: inline-flex; align-items: center; min-height: 22px; border: 1px solid var(--border); border-radius: 999px; padding: 3px 7px; font-size: 0.64rem; } .command-health-connected { color: var(--green); background: var(--green-soft); } .command-health-stale, .command-health-connecting { color: var(--accent); background: var(--accent-soft); } .command-health-disconnected { color: var(--red); background: var(--red-soft); } .command-context-row { min-width: 0; min-height: 42px; display: grid; grid-template-columns: 62px 52px minmax(0, 1fr); gap: 4px 8px; align-items: center; border: 0; border-bottom: 1px solid oklch(0.72 0.012 250 / 0.09); padding: 6px 0; background: transparent; color: inherit; text-align: left; cursor: pointer; } .command-context-row:last-child { border-bottom: 0; } .command-context-row time, .command-context-row span { color: var(--text-dim); font-family: var(--font-mono), monospace; font-size: 0.68rem; } .command-context-row strong { min-width: 0; overflow: hidden; color: var(--text); font-size: 0.78rem; text-overflow: ellipsis; white-space: nowrap; } .command-context-row > span:last-child { grid-column: 3; overflow: hidden; color: var(--text-faint); text-overflow: ellipsis; white-space: nowrap; } .command-context-kind { width: fit-content; border: 1px solid var(--border); border-radius: 999px; padding: 2px 6px; background: var(--bg-soft); text-transform: uppercase; } .command-replay-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); } .command-replay-strip div { min-width: 0; display: grid; gap: 3px; border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; background: var(--bg-soft); } .command-replay-strip span { color: var(--text-faint); font-size: 0.66rem; text-transform: uppercase; } .command-replay-strip strong { min-width: 0; overflow: hidden; color: var(--text); font-size: 0.78rem; text-overflow: ellipsis; white-space: nowrap; } .terminal-pane { min-width: 0; height: 100%; display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 14px; background: var(--bg-pane); overflow: hidden; } .terminal-pane-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; border-bottom: 1px solid var(--border); background: oklch(0.2 0.012 250 / 0.38); } .terminal-pane-title-row { display: flex; align-items: center; gap: 14px; min-width: 0; } .terminal-pane-title { font-family: var(--font-sans), sans-serif; font-size: 0.94rem; font-weight: 600; letter-spacing: 0.08em; } .terminal-pane-status { min-width: 0; } .terminal-pane-actions, .card-controls, .chart-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: nowrap; } .terminal-pane-body, .card-body { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; gap: 14px; padding: 16px 18px 18px; } .chart-panel { display: grid; gap: 12px; } .chart-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-size: 0.8rem; color: var(--text-dim); } .chart-status { display: inline-flex; align-items: center; gap: 8px; } .chart-meta-time, .chart-hint, .overlay-legend, .timestamp, .drawer-subtitle, .drawer-note, .drawer-empty, .note, .time { color: var(--text-dim); } .chart-surface { width: 100%; height: 460px; border-radius: 12px; border: 1px solid var(--border); background: var(--bg-pane-2); overflow: hidden; } .chart-empty { margin-top: -2px; } .chart-intervals { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .status span, .timestamp, .missed-count, .chart-hint, .meta, .note, .drawer-note, .drawer-row-meta { font-family: var(--font-mono), monospace; } .status-replay .status-dot { background: var(--blue); box-shadow: 0 0 0 4px rgba(77, 163, 255, 0.14); } .status-inline { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; min-width: 0; font-family: var(--font-mono), monospace; } .status-inline-label { color: var(--text); font-size: 0.82rem; } .status-inline-meta { color: var(--text-dim); font-size: 0.72rem; } .status-inline-counter { min-width: 82px; color: var(--accent); font-size: 0.72rem; opacity: 0; transition: opacity 0.15s ease; } .status-inline-counter-visible { opacity: 1; } .tape-controls { display: flex; align-items: center; justify-content: flex-end; gap: 6px; flex-wrap: nowrap; } .tape-controls button { white-space: nowrap; } .missed-count { display: inline-flex; align-items: center; justify-content: flex-start; max-width: 0; overflow: hidden; white-space: nowrap; font-size: 0.72rem; color: var(--accent); opacity: 0; transform: translateX(6px); transition: max-width 180ms ease, opacity 140ms ease, transform 180ms ease; } .missed-count-visible { max-width: 92px; opacity: 1; transform: translateX(0); } .list { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; gap: 10px; overflow: auto; padding: 12px; padding-right: 8px; border: 1px solid var(--border); border-radius: 12px; background: var(--bg-pane-2); align-self: stretch; } .terminal-list-compact { flex: 0 0 auto; max-height: 260px; } .page-grid-home > :nth-child(1), .page-grid-home > :nth-child(2) { height: clamp(430px, 56vh, 760px); } .page-grid-home > :nth-child(3), .page-grid-home > :nth-child(4), .page-grid-replay > :not(:first-child) { height: clamp(430px, 58vh, 760px); } .page-grid-signals > .terminal-pane { height: 100%; min-height: 0; } .page-grid-signals > .signals-pane-alerts { grid-column: 1; grid-row: 1; } .page-grid-signals > .signals-pane-rules { grid-column: 2; grid-row: 1; } .page-grid-signals > .signals-pane-dark { grid-column: 1 / -1; grid-row: 2; } .page-grid-options > :first-child { height: clamp(460px, 64vh, 880px); } .page-grid-options > :not(:first-child) { height: clamp(400px, 50vh, 680px); } .page-grid-charts > :first-child { height: auto; } .page-grid-charts > :last-child { height: clamp(430px, 58vh, 760px); } .row { display: flex; justify-content: space-between; gap: 14px; padding: 14px 16px; border-radius: 12px; border: 1px solid var(--border); background: var(--bg-soft); } .row-button { width: 100%; text-align: left; color: inherit; } .row-button:hover { border-color: var(--border-strong); background: oklch(0.78 0.12 74 / 0.05); } .data-table-shell, .options-table-wrap { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; overflow: hidden; } .history-load-warning { flex: 0 0 auto; padding: 8px 12px; border-top: 1px solid oklch(0.72 0.13 58 / 0.45); border-bottom: 1px solid oklch(0.72 0.13 58 / 0.45); background: oklch(0.24 0.05 58 / 0.72); color: oklch(0.91 0.08 72); font-size: 0.78rem; line-height: 1.35; } .data-table-wrap { display: flex; flex: 1 1 auto; min-height: 0; overflow-x: auto; overflow-y: hidden; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); background: oklch(0.14 0.01 250 / 0.72); } .data-table { display: flex; flex: 1 1 auto; flex-direction: column; height: 100%; min-height: 0; min-width: 980px; } .data-table-scroll { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; background-color: oklch(0.12 0.01 250); } .data-table-body { position: relative; min-width: 100%; --tape-row-height: 36px; --tape-row-double-height: 72px; background: repeating-linear-gradient( to bottom, oklch(0.98 0.008 250 / 0.01) 0, oklch(0.98 0.008 250 / 0.01) calc(var(--tape-row-height) - 1px), oklch(0.72 0.012 250 / 0.08) calc(var(--tape-row-height) - 1px), oklch(0.72 0.012 250 / 0.08) var(--tape-row-height), oklch(0.98 0.008 250 / 0.018) var(--tape-row-height), oklch(0.98 0.008 250 / 0.018) calc(var(--tape-row-double-height) - 1px), oklch(0.72 0.012 250 / 0.08) calc(var(--tape-row-double-height) - 1px), oklch(0.72 0.012 250 / 0.08) var(--tape-row-double-height) ), oklch(0.12 0.01 250); } .data-table-options { min-width: 1280px; } .data-table-equities { min-width: 660px; } .data-table-flow { min-width: 1260px; } .data-table-alerts { min-width: 900px; } .data-table-classifier { min-width: 760px; } .data-table-dark { min-width: 820px; } .data-table-head, .data-table-row { display: grid; align-items: center; column-gap: 8px; } .data-table-head { flex: 0 0 auto; height: 30px; padding: 0 10px; border-bottom: 1px solid oklch(0.72 0.012 250 / 0.12); background: oklch(0.15 0.012 250 / 0.96); color: var(--text-faint); font-size: 0.64rem; font-weight: 700; letter-spacing: 0.08em; } .data-table-row { width: 100%; height: 40px; padding: 0 10px; border: 0; border-bottom: 1px solid oklch(0.72 0.012 250 / 0.08); background: oklch(0.98 0.008 250 / 0.008); color: inherit; font: inherit; text-align: left; } .data-table-row.is-even { background: oklch(0.98 0.008 250 / 0.018); } .data-table-virtual-row { position: absolute; top: 0; left: 0; width: 100%; } .data-table-row:hover, .data-table-row:focus-visible { outline: none; background: oklch(0.78 0.12 74 / 0.05); } .data-table-row-button { cursor: pointer; } .data-table-row-options { height: 36px; } .data-table-row-equities { height: 36px; } .data-table-row-flow, .data-table-row-alerts, .data-table-row-classifier, .data-table-row-dark { height: 44px; } .data-table-flow .data-table-body, .data-table-alerts .data-table-body, .data-table-classifier .data-table-body, .data-table-dark .data-table-body { --tape-row-height: 44px; --tape-row-double-height: 88px; } .data-table-row-classified { background: linear-gradient( 90deg, rgba( var(--classifier-rgb, 192, 200, 210), calc(0.012 + var(--classifier-intensity, 0) * 0.06) ), transparent 62% ), oklch(0.98 0.008 250 / 0.008); } .data-table-row-classified:hover, .data-table-row-classified:focus-visible { background: linear-gradient( 90deg, rgba(var(--classifier-rgb, 192, 200, 210), calc(0.02 + var(--classifier-intensity, 0) * 0.1)), transparent 68% ), oklch(0.78 0.12 74 / 0.035); } .data-table-row-classified.is-classified { box-shadow: inset 0 0 0 1px rgba(var(--classifier-rgb), calc(0.16 + var(--classifier-intensity) * 0.12)); } .data-table-row-warn, .data-table-row-severity-high, .data-table-row-direction-bearish { box-shadow: inset 0 0 0 1px oklch(0.68 0.16 28 / 0.32); } .data-table-row-severity-medium, .data-table-row-direction-neutral { box-shadow: inset 0 0 0 1px oklch(0.72 0.13 247 / 0.24); } .data-table-row-severity-low, .data-table-row-direction-bullish { box-shadow: inset 0 0 0 1px oklch(0.74 0.13 151 / 0.26); } .data-table-options .data-table-head, .data-table-options .data-table-row { grid-template-columns: minmax(72px, 0.8fr) minmax(50px, 0.55fr) minmax(64px, 0.7fr) minmax( 58px, 0.6fr ) minmax(34px, 0.35fr) minmax(62px, 0.65fr) minmax(104px, 1fr) minmax(54px, 0.55fr) minmax( 66px, 0.7fr ) minmax(48px, 0.5fr) minmax(42px, 0.45fr) minmax(92px, 0.9fr); } .data-table-equities .data-table-head, .data-table-equities .data-table-row { grid-template-columns: minmax(76px, 0.9fr) minmax(70px, 0.8fr) minmax(76px, 0.8fr) minmax( 70px, 0.75fr ) minmax(80px, 0.8fr) minmax(76px, 0.75fr); } .data-table-flow .data-table-head, .data-table-flow .data-table-row { grid-template-columns: minmax(148px, 1.1fr) minmax(180px, 1.4fr) minmax(62px, 0.45fr) minmax( 70px, 0.5fr ) minmax(88px, 0.7fr) minmax(74px, 0.55fr) minmax(132px, 1fr) minmax(110px, 0.8fr) minmax( 210px, 1.6fr ); } .data-table-alerts .data-table-head, .data-table-alerts .data-table-row { grid-template-columns: minmax(76px, 0.75fr) minmax(170px, 1.4fr) minmax(52px, 0.45fr) minmax( 58px, 0.45fr ) minmax(52px, 0.4fr) minmax(66px, 0.55fr) minmax(260px, 2fr); } .data-table-classifier .data-table-head, .data-table-classifier .data-table-row { grid-template-columns: minmax(76px, 0.75fr) minmax(180px, 1.45fr) minmax(70px, 0.6fr) minmax( 74px, 0.65fr ) minmax(300px, 2.2fr); } .data-table-dark .data-table-head, .data-table-dark .data-table-row { grid-template-columns: minmax(76px, 0.75fr) minmax(170px, 1.35fr) minmax(76px, 0.65fr) minmax( 74px, 0.65fr ) minmax(74px, 0.65fr) minmax(260px, 2fr); } .data-table-cell { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.72rem; } .data-table-cell-number { font-family: var(--font-mono), monospace; font-variant-numeric: tabular-nums; } .data-table-spacer { min-width: 100%; pointer-events: none; } .options-table { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; overflow: hidden; } .options-table-head, .options-table-row { display: grid; grid-template-columns: minmax(72px, 0.8fr) minmax(50px, 0.55fr) minmax(64px, 0.7fr) minmax( 58px, 0.6fr ) minmax(34px, 0.35fr) minmax(62px, 0.65fr) minmax(104px, 1fr) minmax(54px, 0.55fr) minmax( 66px, 0.7fr ) minmax(48px, 0.5fr) minmax(42px, 0.45fr) minmax(92px, 0.9fr); align-items: center; column-gap: 8px; } .options-table-head { flex: 0 0 auto; height: 30px; padding: 0 8px; border-bottom: 1px solid var(--border); background: oklch(0.15 0.012 250 / 0.96); color: var(--text-faint); font-size: 0.64rem; font-weight: 700; letter-spacing: 0.08em; } .options-table-body { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; } .options-table-row { width: 100%; min-height: 34px; padding: 0 8px; border: 0; border-bottom: 1px solid oklch(0.72 0.012 250 / 0.08); background: linear-gradient( 90deg, rgba( var(--classifier-rgb, 192, 200, 210), calc(0.012 + var(--classifier-intensity, 0) * 0.06) ), transparent 62% ), oklch(0.98 0.008 250 / 0.012); color: inherit; font: inherit; text-align: left; } .options-table-row:hover, .options-table-row:focus-visible { outline: none; background: linear-gradient( 90deg, rgba(var(--classifier-rgb, 192, 200, 210), calc(0.02 + var(--classifier-intensity, 0) * 0.1)), transparent 68% ), oklch(0.78 0.12 74 / 0.03); } .options-table-row.is-classified { cursor: pointer; box-shadow: inset 0 0 0 1px rgba(var(--classifier-rgb), calc(0.16 + var(--classifier-intensity) * 0.12)); } .options-table-row > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 0.72rem; } .mono { font-variant-numeric: tabular-nums; } .classifier-green { --classifier-rgb: 37, 193, 122; } .classifier-red { --classifier-rgb: 255, 107, 95; } .classifier-amber { --classifier-rgb: 245, 166, 35; } .classifier-copper { --classifier-rgb: 198, 122, 75; } .classifier-blue { --classifier-rgb: 77, 163, 255; } .classifier-teal { --classifier-rgb: 64, 210, 190; } .classifier-yellowgreen { --classifier-rgb: 174, 210, 78; } .classifier-violet { --classifier-rgb: 170, 130, 255; } .classifier-cyan { --classifier-rgb: 94, 214, 255; } .classifier-magenta { --classifier-rgb: 255, 92, 205; } .classifier-neutral { --classifier-rgb: 192, 200, 210; } .contract, .drawer-row-title { margin-bottom: 6px; font-size: 0.92rem; font-weight: 600; } .option-contract { display: inline-flex; flex-wrap: wrap; gap: 8px; } .meta, .drawer-row-meta, .flow-meta { display: flex; flex-wrap: wrap; gap: 10px; font-size: 0.76rem; } .notional-emphasis { font-weight: 700; letter-spacing: 0.01em; color: var(--accent); } .condition-chip { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; border: 1px solid var(--border); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; } .condition-sweep { border-color: rgba(37, 193, 122, 0.34); color: #98f0c0; background: var(--green-soft); } .condition-iso { border-color: rgba(77, 163, 255, 0.34); color: #bddcff; background: var(--blue-soft); } .condition-neutral { border-color: rgba(192, 200, 210, 0.28); color: #d4dbe3; background: rgba(192, 200, 210, 0.08); } .pill, .drawer-chip, .flag { display: inline-flex; align-items: center; padding: 3px 8px; border-radius: 999px; border: 1px solid var(--border); font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; } .structure-tag { border-color: rgba(77, 163, 255, 0.36); color: #9bcbff; background: var(--blue-soft); } .aggressor-tag, .direction-bullish, .severity-low, .flag { border-color: rgba(37, 193, 122, 0.34); color: #98f0c0; background: var(--green-soft); } .direction-bearish, .severity-high, .nbbo-missing { border-color: rgba(255, 107, 95, 0.34); color: #ffc3bd; background: var(--red-soft); } .direction-neutral, .severity-medium, .flag-muted, .nbbo-stale { border-color: rgba(77, 163, 255, 0.26); color: #bddcff; background: var(--blue-soft); } .nbbo-meta { margin-top: 8px; } .nbbo-side { position: relative; display: inline-flex; align-items: center; } .nbbo-tag { padding: 2px 6px; border-radius: 999px; border: 1px solid var(--border); font-size: 0.68rem; text-transform: uppercase; } .nbbo-tag-a, .nbbo-tag-aa { border-color: rgba(37, 193, 122, 0.34); color: #98f0c0; background: var(--green-soft); } .nbbo-tag-b, .nbbo-tag-bb { border-color: rgba(255, 107, 95, 0.34); color: #ffc3bd; background: var(--red-soft); } .nbbo-tooltip { position: absolute; right: 0; bottom: calc(100% + 10px); display: grid; gap: 4px; padding: 10px; border-radius: 10px; border: 1px solid var(--border); background: rgba(7, 10, 14, 0.96); box-shadow: 0 16px 40px rgba(0, 0, 0, 0.45); opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity 0.15s ease, transform 0.15s ease; z-index: 5; } .nbbo-tooltip-row { display: inline-flex; align-items: center; gap: 6px; font-size: 0.68rem; } .nbbo-side:hover .nbbo-tooltip, .nbbo-side:focus-within .nbbo-tooltip { opacity: 1; transform: translateY(0); } .alert-strips { display: grid; gap: 12px; } .alert-strip-section { display: grid; gap: 6px; } .alert-strip-header { display: flex; justify-content: space-between; gap: 12px; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.68rem; } .alert-strip-bar { display: flex; height: 24px; overflow: hidden; border-radius: 999px; border: 1px solid var(--border); background: var(--bg-soft); } .strip-segment { display: flex; align-items: center; justify-content: center; font-size: 0.64rem; text-transform: uppercase; letter-spacing: 0.08em; color: #03130a; } .alert-strip-bar .severity-high, .alert-strip-bar .direction-bearish { background: rgba(255, 107, 95, 0.9); color: #230705; } .alert-strip-bar .severity-medium, .alert-strip-bar .direction-neutral { background: rgba(77, 163, 255, 0.9); color: #04111f; } .alert-strip-bar .severity-low, .alert-strip-bar .direction-bullish { background: rgba(37, 193, 122, 0.92); color: #03130a; } .focus-stack { display: grid; gap: 14px; } .focus-block { display: grid; gap: 8px; } .focus-value { font-size: 1.4rem; } .empty { padding: 18px; border-radius: 12px; border: 1px dashed var(--border); background: var(--bg-soft); color: var(--text-dim); } .drawer { position: fixed; top: 24px; right: 24px; width: min(420px, calc(100vw - 32px)); max-height: calc(100vh - 48px); overflow: auto; padding: 18px; border-radius: 14px; border: 1px solid var(--border); background: oklch(0.16 0.012 250 / 0.98); box-shadow: 0 22px 56px rgba(0, 0, 0, 0.38); z-index: 40; } .synthetic-control-gear { position: fixed; right: 22px; bottom: 22px; width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: 12px; background: oklch(0.16 0.012 250 / 0.96); color: var(--text-dim); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28); z-index: 45; transition: border-color 0.16s ease, background-color 0.16s ease, color 0.16s ease; } .synthetic-control-gear:hover, .synthetic-control-gear.is-open { border-color: var(--border-strong); background: var(--bg-elevated); color: var(--text); } .synthetic-control-gear-mark { display: inline-flex; font-size: 1.05rem; line-height: 1; transform: rotate(45deg); } .synthetic-control-drawer { position: fixed; top: 84px; right: 0; bottom: 0; width: min(388px, calc(100vw - 20px)); padding: 18px 18px 24px; display: grid; align-content: start; gap: 16px; overflow: auto; border-left: 1px solid var(--border); background: oklch(0.15 0.012 250 / 0.98); box-shadow: -16px 0 42px rgba(0, 0, 0, 0.26); z-index: 42; } .synthetic-control-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; } .synthetic-control-header h3 { margin: 0; font-family: var(--font-sans), sans-serif; font-size: 0.94rem; font-weight: 600; letter-spacing: 0.08em; } .synthetic-control-kicker { margin: 0 0 6px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.16em; font-size: 0.64rem; } .synthetic-control-section { display: grid; gap: 10px; padding: 14px 14px 0; border-top: 1px solid var(--border); } .synthetic-control-section-head { display: flex; justify-content: space-between; gap: 12px; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.68rem; } .synthetic-control-select select, .synthetic-segment, .synthetic-control-toggle { font: inherit; } .synthetic-control-select select { width: 100%; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-soft); color: var(--text); } .synthetic-control-toggle { display: inline-flex; align-items: center; gap: 10px; color: var(--text-dim); } .synthetic-control-toggle input { accent-color: var(--accent); } .synthetic-segment-row { display: flex; flex-wrap: wrap; gap: 8px; } .synthetic-segment { padding: 8px 10px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg-soft); color: var(--text-dim); } .synthetic-segment.is-active { border-color: var(--border-strong); background: var(--accent-soft); color: var(--text); } .synthetic-profile-grid, .synthetic-hit-list { display: grid; gap: 12px; } .synthetic-profile-row, .synthetic-hit-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .synthetic-profile-row > span, .synthetic-hit-row > span, .synthetic-status-grid span { color: var(--text-dim); font-size: 0.84rem; } .synthetic-status-grid { display: grid; gap: 10px; } .terminal-link-button { text-decoration: none; } .news-list { display: flex; flex-direction: column; gap: 10px; } .news-row { width: 100%; display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; border: 1px solid var(--border); border-radius: 12px; background: oklch(0.18 0.012 250 / 0.6); color: var(--text); text-align: left; transition: border-color 150ms ease, background 150ms ease; } .news-row:hover { border-color: var(--accent-soft); background: oklch(0.2 0.015 250 / 0.75); } .news-row-head, .news-row-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; } .news-row h3 { margin: 0; font-size: 0.96rem; font-weight: 600; } .news-row-time { color: var(--text-dim); font-family: var(--font-mono), monospace; font-size: 0.78rem; } .news-row-meta { color: var(--text-dim); font-size: 0.78rem; } .news-drawer-body a { color: var(--accent); } .news-drawer-body p, .news-drawer-body ul, .news-drawer-body ol, .news-drawer-body blockquote { margin: 0 0 12px; } .synthetic-status-grid strong, .synthetic-hit-row strong { font-family: var(--font-mono), monospace; font-size: 0.86rem; } .synthetic-control-disabled { display: grid; gap: 8px; padding: 14px 14px 0; border-top: 1px solid var(--border); } .synthetic-control-disabled p, .synthetic-control-disabled span { margin: 0; } .synthetic-control-disabled-label { color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.68rem; } .synthetic-control-error { color: var(--red); } .drawer-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 12px; } .drawer-eyebrow { margin: 0 0 6px; font-size: 0.68rem; color: var(--text-dim); text-transform: uppercase; letter-spacing: 0.14em; } .drawer-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; } .drawer-section { display: grid; gap: 10px; margin-bottom: 18px; } .drawer-section h4 { margin: 0; color: var(--text-faint); text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.72rem; } .drawer-list { display: grid; gap: 10px; } .drawer-context-loading { padding: 12px 0 2px; } .drawer-skeleton { width: 64%; height: 12px; border-radius: 999px; background: linear-gradient(90deg, var(--bg-soft), rgba(245, 166, 35, 0.14), var(--bg-soft)); background-size: 180% 100%; animation: drawer-skeleton 1.2s ease-out infinite; } .drawer-skeleton-wide { width: 100%; } .drawer-evidence-context { margin-top: 8px; color: var(--text-faint); } .drawer-row { padding: 12px 14px; border-radius: 12px; border: 1px solid var(--border); background: var(--bg-soft); } @keyframes drawer-skeleton { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.18); } 100% { transform: scale(1); } } @media (prefers-reduced-motion: reduce) { .skip-link, .terminal-nav-link, .terminal-filter-field::before, .terminal-filter-field::after, .terminal-button, .mode-button, .filter-clear, .jump-button, .pause-button, .interval-button, .overlay-toggle, .drawer-close, .command-filter-tooltip button, .status-inline-counter, .missed-count, .synthetic-control-gear { transition: none; } .chart-status-connecting .chart-dot { animation: none; } } @media (max-width: 1180px) { .terminal-nav-drawer { width: min(300px, calc(100vw - 24px)); } .terminal-brand-name { font-size: 1.25rem; } .shell-metric { min-width: 136px; padding: 10px 12px; } .command-deck-header { grid-template-columns: minmax(220px, 0.8fr) minmax(240px, 1fr); } .compact-command-topline { justify-content: flex-start; } .command-deck-controls { grid-column: 1 / -1; justify-content: flex-start; } .command-deck-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "signals chart" "tape chart" "feed context" "dark dark" "replay replay"; } } @media (max-width: 980px) { .page-grid-home, .page-grid-options, .page-grid-signals, .page-grid-charts, .page-grid-replay, .replay-matrix, .shell-metrics { grid-template-columns: minmax(0, 1fr); } .page-grid-home > :nth-child(3), .page-grid-home > :nth-child(4), .page-grid-options > :nth-child(1), .page-grid-replay > :nth-child(1) { grid-column: auto; grid-row: auto; } .page-grid-home > :nth-child(1), .page-grid-home > :nth-child(2), .page-grid-home > :nth-child(3), .page-grid-home > :nth-child(4), .page-grid-signals > .terminal-pane, .page-grid-replay > :not(:first-child), .page-grid-options > :first-child, .page-grid-options > :not(:first-child), .page-grid-charts > :last-child { height: auto; } .page-grid-signals { grid-template-rows: auto; min-height: 0; } .command-deck-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "signals" "chart" "tape" "context" "replay" "feed" "dark"; } .command-deck-grid > .terminal-pane { min-height: 0; } .command-deck-grid > :nth-child(1), .command-deck-grid > :nth-child(2), .command-deck-grid > :nth-child(3), .command-deck-grid > :nth-child(4), .command-deck-grid > :nth-child(5), .command-deck-grid > :nth-child(6), .command-deck-grid > :nth-child(7) { min-height: 0; } .terminal-topbar { align-items: center; justify-content: space-between; padding: 10px 16px; } .terminal-topbar-actions { justify-content: flex-end; } .terminal-topbar-controls { flex: 0 1 auto; } .flow-filter-popover-panel { width: min(420px, calc(100vw - 56px)); } } @media (max-width: 720px) { .terminal-shell { background-size: 24px 24px, 24px 24px, 100% 100%, auto; } .terminal-nav-drawer { width: min(340px, calc(100vw - 12px)); padding: 16px 12px 12px; } .terminal-brand { grid-template-columns: auto minmax(0, 1fr); align-items: baseline; gap: 10px; } .terminal-brand-kicker { font-size: 0.7rem; } .terminal-brand-name { font-size: 1rem; } .terminal-nav { padding-bottom: 2px; } .terminal-content { padding: 16px 10px 22px; } .page-shell { gap: 14px; } .page-title { font-size: 1.55rem; line-height: 1.06; } .page-header, .terminal-pane-head, .chart-controls, .card-controls, .terminal-pane-actions, .command-deck-header { flex-direction: column; align-items: flex-start; } .command-deck-header { display: flex; } .command-deck-brief, .command-deck-controls { width: 100%; justify-content: flex-start; } .command-deck-controls .terminal-button, .command-chip { width: 100%; justify-content: center; } .compact-command-bar .command-chip, .compact-command-bar .terminal-button, .command-filter-tooltip { width: auto; max-width: 100%; justify-content: center; } .compact-command-topline, .compact-command-context { align-items: flex-start; flex-direction: column; } .command-ticker-track { grid-auto-columns: minmax(164px, 78vw); } .terminal-pane-title-row { flex-direction: column; align-items: flex-start; gap: 8px; } .terminal-topbar { position: sticky; top: 0; z-index: 30; flex-wrap: wrap; align-items: stretch; padding: 12px 10px; } .terminal-topbar-leading { width: 100%; } .terminal-button, .mode-button, .filter-clear, .jump-button, .pause-button, .interval-button, .overlay-toggle, .drawer-close, .contract-filter-button, .filter-chip { min-height: 44px; } .terminal-topbar-actions, .terminal-topbar-controls, .terminal-topbar-mode { width: 100%; justify-content: flex-start; } .terminal-topbar-actions, .terminal-topbar-controls { flex-direction: column; align-items: stretch; } .terminal-menu-trigger { width: 100%; justify-content: center; } .terminal-topbar-mode .terminal-button, .terminal-topbar-controls > .terminal-button, .terminal-topbar-leading > .terminal-button, .page-actions > .terminal-button, .page-actions > .flow-filter-popover { width: 100%; } .instrument-focus-chip { max-width: none; min-height: 44px; justify-content: space-between; } .terminal-filter { width: 100%; min-width: 0; flex-basis: auto; flex: 1 1 auto; } .terminal-input { width: 100%; min-height: 38px; padding-bottom: 8px; font-size: 1rem; } .terminal-pane { border-radius: 12px; } .terminal-pane-head, .terminal-pane-body { padding: 14px 12px; } .terminal-pane-actions, .card-controls, .chart-controls, .tape-controls { width: 100%; flex-wrap: wrap; justify-content: flex-start; } .tape-controls button { flex: 1 1 112px; } .status-inline { flex-wrap: wrap; row-gap: 4px; } .status-inline-counter { min-width: 0; } .page-actions { width: 100%; flex-direction: column; align-items: stretch; } .flow-filter-popover { width: 100%; } .flow-filter-trigger { width: 100%; justify-content: space-between; } .flow-filter-popover-panel { position: fixed; top: auto; bottom: calc(10px + env(safe-area-inset-bottom)); left: 10px; right: 10px; width: auto; max-height: min(72vh, 560px); border-radius: 16px; } .flow-filter-checkbox-grid, .flow-filter-checkbox-grid-wide, .flow-filter-chip-grid { grid-template-columns: minmax(0, 1fr); } .row { flex-direction: column; align-items: flex-start; } .data-table-wrap { margin-inline: -12px; border-radius: 0; scroll-snap-type: x proximity; } .data-table { min-width: 860px; scroll-snap-align: start; } .data-table-options, .data-table-flow { min-width: 1080px; } .data-table-head, .data-table-row { padding-inline: 8px; } .data-table-row-options, .data-table-row-equities { height: 40px; } .data-table-row-flow, .data-table-row-alerts, .data-table-row-classifier, .data-table-row-dark { height: 48px; } .command-deck-grid .chart-surface { height: 320px; } .command-health-row { grid-template-columns: minmax(94px, 1fr) 92px; } .command-health-row span:nth-child(3), .command-health-row span:nth-child(4) { font-size: 0.68rem; } .command-context-row { grid-template-columns: 58px minmax(0, 1fr); } .command-context-kind { grid-column: 2; grid-row: 1; } .command-context-row strong, .command-context-row > span:last-child { grid-column: 2; } .command-replay-strip { grid-template-columns: minmax(0, 1fr); } .time { text-align: left; } .chart-surface { height: 320px; } .drawer { position: fixed; inset: auto 10px calc(10px + env(safe-area-inset-bottom)); width: auto; max-height: min(78vh, 640px); margin-top: 0; border-radius: 16px; } } @media (max-width: 420px) { .terminal-content { padding-inline: 8px; } .terminal-pane-head, .terminal-pane-body { padding-inline: 10px; } .shell-metric { flex-basis: 142px; } .data-table-wrap { margin-inline: -10px; } .synthetic-control-gear { right: 14px; bottom: 14px; } .synthetic-control-drawer { top: auto; left: 14px; right: 14px; bottom: 68px; width: auto; border: 1px solid var(--border); border-radius: 14px; } } .mock-redesign { min-height: calc(100vh - var(--topbar-height)); padding: 18px; color: var(--text); background: linear-gradient(180deg, oklch(0.18 0.018 240 / 0.88), oklch(0.11 0.012 250) 280px), oklch(0.11 0.012 250); } .mock-redesign-header { display: grid; grid-template-columns: minmax(340px, 1fr) auto; gap: 14px 18px; align-items: end; margin-bottom: 14px; } .mock-redesign-title { min-width: 0; display: grid; gap: 7px; } .mock-redesign-product, .mock-panel-label, .mock-redesign-meta span, .mock-redesign-switcher a { color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; letter-spacing: 0.11em; text-transform: uppercase; } .mock-redesign-title h1 { margin: 0; font-size: 1.54rem; line-height: 1.12; letter-spacing: 0; text-wrap: balance; } .mock-redesign-title p { max-width: 75ch; margin: 0; color: var(--text-dim); font-size: 0.91rem; line-height: 1.46; text-wrap: pretty; } .mock-redesign-meta, .mock-redesign-switcher { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; } .mock-redesign-meta span, .mock-redesign-switcher a { min-height: 30px; display: inline-flex; align-items: center; border: 1px solid var(--border); border-radius: 8px; padding: 6px 9px; background: oklch(0.97 0.008 250 / 0.035); } .mock-redesign-meta .is-live, .mock-redesign-switcher a.is-active { color: var(--accent); border-color: var(--border-strong); background: var(--accent-soft); } .mock-redesign-switcher { grid-column: 1 / -1; justify-content: flex-start; } .mock-redesign-panel { min-width: 0; overflow: hidden; border: 1px solid var(--border); border-radius: 12px; background: linear-gradient(180deg, oklch(0.19 0.015 246 / 0.98), oklch(0.135 0.012 246 / 0.98)); } .mock-panel-label { min-height: 34px; display: flex; align-items: center; padding: 9px 11px 8px; border-bottom: 1px solid oklch(0.72 0.012 250 / 0.12); } .mock-badge { width: fit-content; max-width: 100%; min-height: 22px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid currentColor; border-radius: 999px; padding: 3px 8px; font-family: var(--font-mono), monospace; font-size: 0.64rem; line-height: 1; white-space: nowrap; } .mock-badge.is-bullish { color: var(--green); background: var(--green-soft); } .mock-badge.is-bearish { color: var(--red); background: var(--red-soft); } .mock-badge.is-watch { color: var(--accent); background: var(--accent-soft); } .mock-badge.is-info { color: var(--blue); background: var(--blue-soft); } .mock-score-dial { --score-color: oklch(0.74 0.13 151); width: 42px; height: 42px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: radial-gradient(circle, oklch(0.13 0.012 250) 54%, transparent 56%), conic-gradient(var(--score-color) calc(var(--score) * 1%), oklch(0.72 0.012 250 / 0.16) 0); color: var(--text); font-family: var(--font-mono), monospace; font-size: 0.76rem; } .mock-symbol-strip { grid-area: symbols; display: grid; grid-template-columns: repeat(5, minmax(130px, 1fr)); gap: 10px; } .mock-symbol-tile, .mock-evidence-card, .mock-queue-item, .mock-cluster-row { min-width: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; border: 1px solid oklch(0.72 0.012 250 / 0.12); border-radius: 10px; background: oklch(0.97 0.008 250 / 0.035); } .mock-symbol-tile { min-height: 68px; padding: 10px; } .mock-symbol-tile div, .mock-cluster-row div, .mock-evidence-card, .mock-queue-item div, .mock-inspector-header, .mock-check-list div { min-width: 0; display: grid; gap: 4px; } .mock-symbol-tile strong, .mock-redesign-row strong, .mock-cluster-row strong { font-family: var(--font-mono), monospace; } .mock-symbol-tile span, .mock-evidence-card span, .mock-queue-item span, .mock-cluster-row span, .mock-inspector-header p, .mock-case-heading p, .mock-time-spine span { color: var(--text-dim); font-size: 0.78rem; line-height: 1.42; } .mock-canvas-grid { display: grid; grid-template-columns: minmax(320px, 0.78fr) minmax(460px, 1.22fr) minmax(300px, 0.72fr); grid-template-areas: "symbols symbols symbols" "brief chart context" "tape chart context"; gap: 10px; } .mock-canvas-brief { grid-area: brief; } .mock-canvas-chart { grid-area: chart; } .mock-canvas-tape { grid-area: tape; } .mock-canvas-context { grid-area: context; } .mock-case-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 12px; } .mock-case-heading h2, .mock-inspector-header h2, .mock-replay-hero h2 { margin: 0; font-size: 1.1rem; line-height: 1.22; text-wrap: balance; } .mock-case-heading h2 { font-size: 0.98rem; } .mock-case-heading p, .mock-inspector-header p { margin: 0; } .mock-case-symbol { grid-column: 1; display: grid; place-items: center; width: fit-content; min-height: 28px; border-radius: 10px; padding: 5px 9px; background: oklch(0.78 0.12 74 / 0.12); color: var(--accent); font-family: var(--font-mono), monospace; font-weight: 500; } .mock-confidence { grid-column: 2; grid-row: 1; min-height: 28px; display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 9px; color: var(--green); background: var(--green-soft); font-family: var(--font-mono), monospace; font-size: 0.68rem; } .mock-case-heading > div { grid-column: 1 / -1; } .mock-evidence-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(142px, 1fr)); gap: 8px; padding: 0 12px 12px; } .mock-evidence-list.is-compact { grid-template-columns: 1fr; padding: 10px; } .mock-evidence-card { align-items: stretch; padding: 10px; } .mock-evidence-card strong { font-size: 0.83rem; line-height: 1.28; } .mock-evidence-card div { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .mock-redesign-chart { min-height: 332px; } .mock-chart-topline, .mock-replay-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 12px; } .mock-chart-topline div, .mock-replay-hero div:first-child { display: grid; gap: 4px; } .mock-chart-topline span, .mock-replay-hero span { color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; text-transform: uppercase; } .mock-chart-topline strong { font-family: var(--font-mono), monospace; font-size: 1.18rem; } .mock-chart-field { position: relative; height: 210px; display: flex; align-items: end; gap: 4px; margin: 2px 12px 0; padding: 14px 0; border-top: 1px solid oklch(0.72 0.012 250 / 0.1); border-bottom: 1px solid oklch(0.72 0.012 250 / 0.1); background: linear-gradient(0deg, oklch(0.72 0.012 250 / 0.07) 1px, transparent 1px) 0 0 / 100% 40px, linear-gradient(180deg, oklch(0.14 0.015 246), oklch(0.1 0.012 246)); } .mock-redesign-chart.is-compressed .mock-chart-field { height: 150px; } .mock-redesign-chart.is-replay .mock-chart-field { height: 260px; } .mock-chart-field span { width: 6px; height: var(--height); min-height: 16px; border-radius: 5px; } .mock-chart-field .is-green, .mock-volume-field .is-green { background: var(--green); } .mock-chart-field .is-red, .mock-volume-field .is-red { background: var(--red); } .mock-chart-marker { position: absolute; top: 10px; bottom: 10px; left: 64%; width: 2px; border-radius: 999px; background: var(--accent); } .mock-chart-marker::after { content: "signal"; position: absolute; top: 6px; left: 8px; border-radius: 999px; padding: 4px 7px; background: var(--accent-soft); color: var(--accent); font-family: var(--font-mono), monospace; font-size: 0.62rem; font-style: normal; } .mock-volume-field { height: 66px; display: flex; align-items: end; gap: 5px; padding: 9px 12px 12px; } .mock-volume-field span { width: 7px; height: var(--height); min-height: 8px; opacity: 0.8; } .mock-flow-tape { min-height: 0; } .mock-redesign-table { overflow-x: auto; padding: 8px 10px 10px; } .mock-redesign-row { min-width: 650px; min-height: 36px; display: grid; grid-template-columns: 48px 64px minmax(170px, 1fr) 72px 82px 86px; gap: 10px; align-items: center; border-bottom: 1px solid oklch(0.72 0.012 250 / 0.09); color: var(--text-dim); font-size: 0.76rem; } .mock-redesign-row:last-child { border-bottom: 0; } .mock-redesign-row.is-head { min-height: 28px; color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.64rem; text-transform: uppercase; } .mock-causality { padding-bottom: 10px; } .mock-causality dl { display: grid; gap: 9px; margin: 0; padding: 10px; } .mock-causality div, .mock-feed-health div { display: grid; grid-template-columns: minmax(100px, 0.76fr) minmax(0, 1fr); gap: 8px; align-items: start; } .mock-causality dt { color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.66rem; text-transform: uppercase; } .mock-causality dd { margin: 0; color: var(--text-dim); font-size: 0.82rem; } .mock-queue-grid { display: grid; grid-template-columns: minmax(270px, 0.72fr) minmax(440px, 1.2fr) minmax(280px, 0.72fr); grid-template-areas: "queue inspector checks"; gap: 10px; } .mock-queue-list { grid-area: queue; } .mock-queue-inspector { grid-area: inspector; } .mock-queue-checks { grid-area: checks; } .mock-queue-list, .mock-queue-checks { align-self: start; } .mock-queue-item { margin: 10px 10px 0; padding: 10px; } .mock-queue-item:last-child { margin-bottom: 10px; } .mock-queue-item.is-selected { border-color: var(--border-strong); background: var(--accent-soft); } .mock-queue-item time { color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; } .mock-queue-item strong { font-size: 1rem; } .mock-inspector-header { padding: 12px; } .mock-inspector-header span { color: var(--accent); font-family: var(--font-mono), monospace; font-size: 0.76rem; } .mock-check-list, .mock-feed-health { display: grid; gap: 8px; padding: 10px; } .mock-check-list div, .mock-feed-health div { border: 1px solid oklch(0.72 0.012 250 / 0.11); border-radius: 10px; padding: 9px; background: oklch(0.97 0.008 250 / 0.03); } .mock-check-list span, .mock-feed-health span { color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.66rem; text-transform: uppercase; } .mock-check-list strong, .mock-feed-health strong { font-size: 0.78rem; } .mock-feed-health div { grid-template-columns: minmax(55px, 0.6fr) auto auto; } .mock-replay-grid { display: grid; grid-template-columns: minmax(280px, 0.64fr) minmax(500px, 1.36fr) minmax(300px, 0.8fr); grid-template-areas: "spine stage stage" "spine tape notes"; gap: 10px; } .mock-replay-stage { grid-area: stage; } .mock-replay-spine { grid-area: spine; } .mock-replay-tape { grid-area: tape; } .mock-replay-notes { grid-area: notes; } .mock-replay-controls { display: flex; align-items: center; justify-content: flex-end; gap: 8px; flex-wrap: wrap; } .mock-replay-controls button { min-height: 30px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-soft); color: var(--text); cursor: pointer; } .mock-replay-controls button:hover { border-color: var(--border-strong); } .mock-replay-track-redesign { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 0 12px 12px; color: var(--text-faint); font-family: var(--font-mono), monospace; font-size: 0.7rem; } .mock-replay-track-redesign div { position: relative; height: 28px; border: 1px solid var(--border); border-radius: 999px; background: linear-gradient(90deg, var(--blue-soft) 0 54%, var(--accent-soft) 54% 66%, oklch(0.97 0.008 250 / 0.035) 66%); } .mock-replay-track-redesign i { position: absolute; top: 3px; bottom: 3px; left: 64%; width: 3px; border-radius: 999px; background: var(--green); } .mock-time-spine { display: grid; gap: 10px; margin: 0; padding: 10px; list-style: none; } .mock-time-spine li { display: grid; gap: 5px; border: 1px solid oklch(0.72 0.012 250 / 0.11); border-radius: 10px; padding: 10px; background: oklch(0.97 0.008 250 / 0.03); } .mock-time-spine time { color: var(--accent); font-family: var(--font-mono), monospace; font-size: 0.72rem; } .mock-atlas-grid { display: grid; grid-template-columns: minmax(540px, 1.35fr) minmax(320px, 0.8fr); grid-template-areas: "map symbols" "map correlation"; gap: 10px; } .mock-atlas-map { grid-area: map; } .mock-atlas-symbols { grid-area: symbols; } .mock-atlas-correlation { grid-area: correlation; } .mock-atlas-field { position: relative; min-height: 570px; margin: 10px; border: 1px solid oklch(0.72 0.012 250 / 0.12); border-radius: 10px; background: radial-gradient(circle at 30% 35%, oklch(0.78 0.12 74 / 0.14), transparent 18%), radial-gradient(circle at 72% 62%, oklch(0.72 0.13 247 / 0.12), transparent 22%), linear-gradient(0deg, oklch(0.72 0.012 250 / 0.07) 1px, transparent 1px) 0 0 / 100% 54px, linear-gradient(90deg, oklch(0.72 0.012 250 / 0.07) 1px, transparent 1px) 0 0 / 64px 100%, oklch(0.11 0.012 250); } .mock-atlas-node { position: absolute; left: var(--x); top: var(--y); width: clamp(130px, calc(var(--heat) * 1.8px), 190px); min-height: clamp(88px, calc(var(--heat) * 1.1px), 126px); display: grid; align-content: center; gap: 6px; transform: translate(-50%, -50%); border: 1px solid oklch(0.78 0.12 74 / 0.36); border-radius: 12px; padding: 14px; background: radial-gradient(circle at 50% 20%, oklch(0.78 0.12 74 / 0.16), transparent 62%), oklch(0.15 0.014 246 / 0.96); } .mock-atlas-node strong { font-size: 0.9rem; } .mock-atlas-node span { color: var(--accent); font-family: var(--font-mono), monospace; font-size: 0.72rem; } .mock-cluster-row { margin: 10px 10px 0; padding: 10px; } .mock-cluster-row:last-child { margin-bottom: 10px; } @media (max-width: 1180px) { .mock-redesign-header, .mock-canvas-grid, .mock-queue-grid, .mock-replay-grid, .mock-atlas-grid { grid-template-columns: 1fr; } .mock-redesign-meta, .mock-redesign-switcher { justify-content: flex-start; } .mock-symbol-strip { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); } .mock-canvas-grid, .mock-queue-grid, .mock-replay-grid, .mock-atlas-grid { grid-template-areas: none; } .mock-canvas-grid > *, .mock-queue-grid > *, .mock-replay-grid > *, .mock-atlas-grid > * { grid-area: auto; } } @media (max-width: 720px) { .mock-redesign { padding: 12px; } .mock-redesign-title h1 { font-size: 1.28rem; } .mock-case-heading, .mock-chart-topline, .mock-replay-hero { grid-template-columns: 1fr; display: grid; } .mock-confidence { width: fit-content; } .mock-atlas-field { min-height: 460px; } .mock-atlas-node { width: 128px; min-height: 92px; } } .mock-shell { min-height: 100vh; background: oklch(0.11 0.018 262); } .mock-skip-link { border-color: oklch(0.82 0.11 184 / 0.58); background: oklch(0.11 0.018 262); color: oklch(0.9 0.08 184); } .mock-redesign { --mock-bg: oklch(0.12 0.018 262); --mock-surface: oklch(0.18 0.02 262); --mock-surface-2: oklch(0.145 0.018 262); --mock-line: oklch(0.74 0.028 262 / 0.22); --mock-line-strong: oklch(0.78 0.11 184 / 0.48); --mock-ink: oklch(0.93 0.014 250); --mock-muted: oklch(0.76 0.024 248); --mock-faint: oklch(0.62 0.03 248); --mock-accent: oklch(0.78 0.14 184); --mock-accent-soft: oklch(0.78 0.14 184 / 0.13); --mock-alt: oklch(0.72 0.16 328); --mock-alt-soft: oklch(0.72 0.16 328 / 0.13); --mock-good: oklch(0.77 0.16 158); --mock-good-soft: oklch(0.77 0.16 158 / 0.13); --mock-bad: oklch(0.68 0.18 24); --mock-bad-soft: oklch(0.68 0.18 24 / 0.14); --mock-info: oklch(0.72 0.14 236); --mock-info-soft: oklch(0.72 0.14 236 / 0.13); min-height: 100vh; padding: 22px; color: var(--mock-ink); background: linear-gradient(90deg, oklch(0.14 0.03 262) 0 1px, transparent 1px 100%) 0 0 / 72px 72px, linear-gradient(180deg, var(--mock-surface-2), var(--mock-bg) 36vh), var(--mock-bg); font-family: var(--font-sans), system-ui, sans-serif; } .mock-redesign.mock-desk { --mock-bg: oklch(0.96 0.008 248); --mock-surface: oklch(0.995 0.002 248); --mock-surface-2: oklch(0.91 0.018 222); --mock-line: oklch(0.42 0.04 236 / 0.2); --mock-line-strong: oklch(0.54 0.14 216 / 0.5); --mock-ink: oklch(0.19 0.03 244); --mock-muted: oklch(0.38 0.036 244); --mock-faint: oklch(0.5 0.035 244); --mock-accent: oklch(0.5 0.16 218); --mock-accent-soft: oklch(0.5 0.16 218 / 0.11); --mock-alt: oklch(0.52 0.17 352); --mock-alt-soft: oklch(0.52 0.17 352 / 0.1); background: linear-gradient(90deg, oklch(0.45 0.04 236 / 0.08) 0 1px, transparent 1px 100%) 0 0 / 72px 72px, linear-gradient(180deg, oklch(0.9 0.022 222), var(--mock-bg) 38vh), var(--mock-bg); } .mock-redesign.mock-theatre { --mock-bg: oklch(0.14 0.042 312); --mock-surface: oklch(0.2 0.048 312); --mock-surface-2: oklch(0.16 0.04 312); --mock-line: oklch(0.78 0.05 312 / 0.22); --mock-line-strong: oklch(0.82 0.12 82 / 0.5); --mock-accent: oklch(0.82 0.15 82); --mock-accent-soft: oklch(0.82 0.15 82 / 0.14); --mock-alt: oklch(0.76 0.15 210); --mock-alt-soft: oklch(0.76 0.15 210 / 0.14); } .mock-redesign.mock-map { --mock-bg: oklch(0.16 0.04 163); --mock-surface: oklch(0.21 0.045 163); --mock-surface-2: oklch(0.18 0.04 163); --mock-line: oklch(0.78 0.05 163 / 0.22); --mock-line-strong: oklch(0.8 0.15 137 / 0.5); --mock-accent: oklch(0.82 0.17 137); --mock-accent-soft: oklch(0.82 0.17 137 / 0.14); --mock-alt: oklch(0.74 0.16 52); --mock-alt-soft: oklch(0.74 0.16 52 / 0.14); } .mock-redesign.mock-options { --mock-bg: oklch(0.075 0.02 250); --mock-surface: oklch(0.105 0.024 250); --mock-surface-2: oklch(0.13 0.03 250); --mock-line: oklch(0.76 0.048 236 / 0.26); --mock-line-strong: oklch(0.82 0.16 82 / 0.58); --mock-accent: oklch(0.86 0.17 84); --mock-accent-soft: oklch(0.86 0.17 84 / 0.12); --mock-alt: oklch(0.74 0.2 32); --mock-alt-soft: oklch(0.74 0.2 32 / 0.13); background: linear-gradient(90deg, oklch(0.7 0.05 240 / 0.11) 1px, transparent 1px) 0 0 / 34px 34px, linear-gradient(180deg, oklch(0.11 0.026 250), var(--mock-bg) 42vh), var(--mock-bg); } .mock-redesign.mock-packets { --mock-bg: oklch(0.13 0.014 198); --mock-surface: oklch(0.17 0.022 198); --mock-surface-2: oklch(0.11 0.018 198); --mock-line: oklch(0.76 0.04 198 / 0.22); --mock-line-strong: oklch(0.78 0.15 176 / 0.54); --mock-accent: oklch(0.78 0.15 176); --mock-accent-soft: oklch(0.78 0.15 176 / 0.13); --mock-alt: oklch(0.77 0.14 300); --mock-alt-soft: oklch(0.77 0.14 300 / 0.13); } .mock-redesign.mock-alerts { --mock-bg: oklch(0.11 0.026 22); --mock-surface: oklch(0.16 0.032 22); --mock-surface-2: oklch(0.13 0.028 22); --mock-line: oklch(0.8 0.04 42 / 0.23); --mock-line-strong: oklch(0.8 0.17 58 / 0.54); --mock-accent: oklch(0.8 0.17 58); --mock-accent-soft: oklch(0.8 0.17 58 / 0.13); --mock-alt: oklch(0.74 0.16 24); --mock-alt-soft: oklch(0.74 0.16 24 / 0.14); } .mock-redesign.mock-graph { --mock-bg: oklch(0.1 0.026 274); --mock-surface: oklch(0.155 0.034 274); --mock-surface-2: oklch(0.125 0.03 274); --mock-line: oklch(0.78 0.05 274 / 0.22); --mock-line-strong: oklch(0.76 0.17 220 / 0.52); --mock-accent: oklch(0.76 0.17 220); --mock-accent-soft: oklch(0.76 0.17 220 / 0.13); --mock-alt: oklch(0.78 0.16 340); --mock-alt-soft: oklch(0.78 0.16 340 / 0.13); } .mock-redesign.mock-command { --mock-bg: oklch(0.092 0.018 238); --mock-surface: oklch(0.132 0.022 238); --mock-surface-2: oklch(0.112 0.02 238); --mock-line: oklch(0.76 0.04 238 / 0.24); --mock-line-strong: oklch(0.8 0.15 84 / 0.52); --mock-accent: oklch(0.82 0.16 84); --mock-accent-soft: oklch(0.82 0.16 84 / 0.13); --mock-alt: oklch(0.74 0.16 28); --mock-alt-soft: oklch(0.74 0.16 28 / 0.13); } .mock-redesign.mock-radar { --mock-bg: oklch(0.102 0.022 184); --mock-surface: oklch(0.145 0.028 184); --mock-surface-2: oklch(0.118 0.024 184); --mock-line: oklch(0.78 0.044 184 / 0.23); --mock-line-strong: oklch(0.78 0.16 176 / 0.52); --mock-accent: oklch(0.78 0.16 176); --mock-accent-soft: oklch(0.78 0.16 176 / 0.13); --mock-alt: oklch(0.8 0.15 80); --mock-alt-soft: oklch(0.8 0.15 80 / 0.13); } .mock-redesign.mock-risk { --mock-bg: oklch(0.105 0.026 16); --mock-surface: oklch(0.145 0.032 16); --mock-surface-2: oklch(0.118 0.028 16); --mock-line: oklch(0.78 0.04 32 / 0.24); --mock-line-strong: oklch(0.76 0.16 36 / 0.52); --mock-accent: oklch(0.76 0.16 36); --mock-accent-soft: oklch(0.76 0.16 36 / 0.13); --mock-alt: oklch(0.78 0.14 326); --mock-alt-soft: oklch(0.78 0.14 326 / 0.13); } .mock-redesign.mock-source { --mock-bg: oklch(0.095 0.018 268); --mock-surface: oklch(0.138 0.024 268); --mock-surface-2: oklch(0.112 0.022 268); --mock-line: oklch(0.78 0.044 268 / 0.23); --mock-line-strong: oklch(0.74 0.15 220 / 0.52); --mock-accent: oklch(0.74 0.15 220); --mock-accent-soft: oklch(0.74 0.15 220 / 0.13); --mock-alt: oklch(0.82 0.15 86); --mock-alt-soft: oklch(0.82 0.15 86 / 0.13); } .mock-nav { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "brand tabs now" "hero hero hero"; gap: 14px; align-items: start; margin: 0 auto 18px; max-width: 1600px; } .mock-brand { grid-area: brand; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--mock-ink); font-weight: 700; } .mock-brand span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: var(--mock-accent); color: var(--mock-bg); font-family: var(--font-mono), monospace; } .mock-brand strong, .mock-now, .mock-route-tabs a span, .mock-panel > header h2, .mock-hero p, .mock-flow-row.is-head, .mock-facts dt, .mock-desk-rail strong, .mock-desk-rail button { font-family: var(--font-mono), ui-monospace, monospace; letter-spacing: 0.08em; text-transform: uppercase; } .mock-route-tabs { grid-area: tabs; min-width: 0; display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; } .mock-route-tabs a { min-width: 142px; min-height: 52px; display: grid; gap: 3px; align-content: center; border: 1px solid var(--mock-line); border-radius: 12px; padding: 8px 11px; color: var(--mock-muted); background: oklch(from var(--mock-surface) l c h / 0.72); } .mock-route-tabs a:hover, .mock-route-tabs a:focus-visible { border-color: var(--mock-line-strong); color: var(--mock-ink); outline: none; } .mock-route-tabs a.is-active { border-color: var(--mock-line-strong); background: var(--mock-accent-soft); color: var(--mock-ink); } .mock-route-tabs a span, .mock-now span { color: var(--mock-faint); font-size: 0.62rem; } .mock-route-tabs a strong { font-size: 0.88rem; } .mock-now { grid-area: now; display: grid; gap: 4px; justify-items: end; border: 1px solid var(--mock-line); border-radius: 12px; padding: 9px 11px; color: var(--mock-muted); background: oklch(from var(--mock-surface) l c h / 0.72); font-size: 0.68rem; } .mock-now strong { color: var(--mock-ink); font-size: 0.82rem; } .mock-hero { grid-area: hero; display: grid; grid-template-columns: minmax(180px, 0.36fr) minmax(260px, 0.74fr) minmax(360px, 1fr); gap: 18px; align-items: end; border-top: 1px solid var(--mock-line); padding-top: 18px; } .mock-hero p, .mock-hero h1, .mock-hero span { margin: 0; } .mock-hero p { color: var(--mock-accent); font-size: 0.72rem; } .mock-hero h1 { font-size: 2.05rem; line-height: 1.02; letter-spacing: -0.02em; text-wrap: balance; } .mock-hero span { max-width: 72ch; color: var(--mock-muted); font-size: 0.94rem; line-height: 1.5; text-wrap: pretty; } .mock-panel { min-width: 0; overflow: hidden; border: 1px solid var(--mock-line); border-radius: 12px; background: oklch(from var(--mock-surface) l c h / 0.94); } .mock-panel > header { display: flex; align-items: center; min-height: 40px; border-bottom: 1px solid var(--mock-line); padding: 10px 12px; } .mock-panel > header h2 { margin: 0; color: var(--mock-muted); font-size: 0.68rem; } .mock-badge { width: fit-content; max-width: 100%; min-height: 24px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid currentColor; border-radius: 999px; padding: 3px 8px; font-family: var(--font-mono), ui-monospace, monospace; font-size: 0.65rem; line-height: 1; white-space: nowrap; } .mock-badge.is-bullish { color: var(--mock-good); background: var(--mock-good-soft); } .mock-badge.is-bearish { color: var(--mock-bad); background: var(--mock-bad-soft); } .mock-badge.is-watch { color: var(--mock-alt); background: var(--mock-alt-soft); } .mock-badge.is-info { color: var(--mock-info); background: var(--mock-info-soft); } .mock-court-layout, .mock-desk-layout, .mock-theatre-layout, .mock-map-layout { max-width: 1600px; margin: 0 auto; display: grid; gap: 12px; } .mock-court-layout { grid-template-columns: minmax(320px, 0.9fr) minmax(440px, 1.2fr) minmax(280px, 0.72fr); grid-template-areas: "verdict chart objections" "exhibits chart objections"; } .mock-verdict { grid-area: verdict; padding-bottom: 14px; } .mock-exhibits { grid-area: exhibits; } .mock-court-chart { grid-area: chart; } .mock-objections { grid-area: objections; } .mock-verdict-mark { width: fit-content; margin: 14px 14px 0; border-radius: 999px; padding: 5px 10px; background: var(--mock-accent); color: var(--mock-bg); font-family: var(--font-mono), monospace; font-weight: 700; } .mock-verdict h2, .mock-workspace-head h2, .mock-stage-head h2 { margin: 10px 14px 0; font-size: 1.36rem; line-height: 1.12; letter-spacing: -0.01em; text-wrap: balance; } .mock-verdict p, .mock-workspace-head p { margin: 10px 14px 0; color: var(--mock-muted); line-height: 1.5; } .mock-verdict-actions { display: flex; gap: 8px; flex-wrap: wrap; padding: 16px 14px 0; } .mock-verdict-actions button, .mock-stage-controls button, .mock-desk-rail button { min-height: 34px; border: 1px solid var(--mock-line); border-radius: 10px; padding: 7px 10px; background: var(--mock-surface-2); color: var(--mock-ink); cursor: pointer; } .mock-verdict-actions button:hover, .mock-verdict-actions button:focus-visible, .mock-stage-controls button:hover, .mock-stage-controls button:focus-visible, .mock-desk-rail button:hover, .mock-desk-rail button:focus-visible, .mock-desk-rail button.is-active { border-color: var(--mock-line-strong); background: var(--mock-accent-soft); outline: none; } .mock-evidence-stack, .mock-health, .mock-facts { display: grid; gap: 9px; padding: 12px; } .mock-evidence, .mock-desk-ticket, .mock-cluster, .mock-health div, .mock-facts div, .mock-script li { min-width: 0; border: 1px solid var(--mock-line); border-radius: 10px; background: oklch(from var(--mock-surface-2) l c h / 0.72); } .mock-evidence { display: grid; gap: 7px; padding: 10px; } .mock-evidence > span, .mock-evidence em, .mock-desk-ticket time, .mock-desk-ticket em, .mock-stage-head span, .mock-script time, .mock-script span, .mock-cluster span, .mock-flow-row span { color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; font-style: normal; } .mock-evidence strong, .mock-desk-ticket strong, .mock-cluster strong, .mock-flow-row strong { color: var(--mock-ink); font-family: var(--font-mono), monospace; } .mock-evidence div { display: flex; align-items: center; justify-content: space-between; gap: 8px; } .mock-chart { display: grid; gap: 12px; padding: 12px; } .mock-chart-readout { display: flex; align-items: center; justify-content: space-between; gap: 12px; } .mock-chart-readout span { color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.72rem; } .mock-chart-readout strong { margin-right: auto; color: var(--mock-ink); font-family: var(--font-mono), monospace; font-size: 1.18rem; } .mock-bars { position: relative; min-height: 340px; display: flex; align-items: end; gap: 4px; border: 1px solid var(--mock-line); border-radius: 10px; padding: 14px 10px; overflow: hidden; background: linear-gradient(0deg, var(--mock-line) 1px, transparent 1px) 0 0 / 100% 54px, var(--mock-surface-2); } .mock-bars span, .mock-volume span { flex: 1 1 4px; min-width: 3px; height: var(--height); border-radius: 999px 999px 2px 2px; } .mock-bars .is-up, .mock-volume .is-up { background: var(--mock-good); } .mock-bars .is-down, .mock-volume .is-down { background: var(--mock-bad); } .mock-bars i { position: absolute; top: 12px; bottom: 12px; left: 63%; width: 2px; border-radius: 999px; background: var(--mock-accent); color: var(--mock-accent); font-family: var(--font-mono), monospace; font-size: 0.62rem; font-style: normal; white-space: nowrap; } .mock-bars i::after { content: attr(data-empty); } .mock-bars i { text-indent: 8px; } .mock-volume { height: 72px; display: flex; align-items: end; gap: 5px; } .mock-facts { margin: 0; } .mock-facts div { padding: 10px; } .mock-facts dt { margin-bottom: 5px; color: var(--mock-faint); font-size: 0.64rem; } .mock-facts dd { margin: 0; color: var(--mock-muted); font-size: 0.86rem; line-height: 1.42; } .mock-desk-layout { grid-template-columns: 146px minmax(330px, 0.88fr) minmax(420px, 1.18fr) minmax(280px, 0.72fr); grid-template-areas: "rail queue workspace health"; } .mock-desk-rail { grid-area: rail; display: grid; align-content: start; gap: 8px; border: 1px solid var(--mock-line); border-radius: 12px; padding: 10px; background: var(--mock-surface); } .mock-desk-rail strong { color: var(--mock-faint); font-size: 0.64rem; } .mock-desk-rail button { width: 100%; justify-content: start; color: var(--mock-muted); font-size: 0.64rem; text-align: left; } .mock-queue-board { grid-area: queue; } .mock-desk-workspace { grid-area: workspace; } .mock-desk-health { grid-area: health; } .mock-desk-ticket { display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; gap: 10px; align-items: start; margin: 10px 10px 0; padding: 10px; } .mock-desk-ticket:last-child { margin-bottom: 10px; } .mock-desk-ticket.is-selected { border-color: var(--mock-line-strong); background: var(--mock-accent-soft); } .mock-desk-ticket div { min-width: 0; display: grid; gap: 4px; } .mock-desk-ticket span { color: var(--mock-muted); font-size: 0.8rem; line-height: 1.35; } .mock-workspace-head { padding: 2px 0 8px; } .mock-workspace-head span { display: inline-flex; margin: 14px 14px 0; border-radius: 999px; padding: 5px 10px; background: var(--mock-accent-soft); color: var(--mock-accent); font-family: var(--font-mono), monospace; } .mock-health div { display: grid; grid-template-columns: minmax(54px, 1fr) auto auto; gap: 8px; align-items: center; padding: 9px; } .mock-health span { color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; } .mock-theatre-layout { grid-template-columns: minmax(260px, 0.7fr) minmax(520px, 1.3fr) minmax(280px, 0.72fr); grid-template-areas: "script stage stage" "script tape notes"; } .mock-stage { grid-area: stage; } .mock-script { grid-area: script; } .mock-theatre-tape { grid-area: tape; } .mock-director-notes { grid-area: notes; } .mock-stage-head { display: flex; justify-content: space-between; gap: 14px; padding: 12px; } .mock-stage-head h2 { margin-left: 0; } .mock-stage-controls { display: flex; align-items: flex-start; justify-content: flex-end; gap: 8px; flex-wrap: wrap; } .mock-stage-controls strong { min-height: 34px; display: inline-flex; align-items: center; border-radius: 10px; padding: 7px 10px; background: var(--mock-alt-soft); color: var(--mock-alt); font-family: var(--font-mono), monospace; } .mock-replay-rail { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 10px; align-items: center; padding: 0 12px 12px; color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.7rem; } .mock-replay-rail div { position: relative; height: 28px; border: 1px solid var(--mock-line); border-radius: 999px; background: linear-gradient(90deg, var(--mock-info-soft) 0 54%, var(--mock-accent-soft) 54% 66%, var(--mock-surface-2) 66%); } .mock-replay-rail i { position: absolute; top: 3px; bottom: 3px; left: 64%; width: 3px; border-radius: 999px; background: var(--mock-accent); } .mock-script ol { display: grid; gap: 9px; margin: 0; padding: 12px; list-style: none; } .mock-script li { display: grid; gap: 5px; padding: 10px; } .mock-script strong { color: var(--mock-ink); } .mock-flow-table { overflow-x: auto; padding: 10px; } .mock-flow-row { min-width: 620px; min-height: 36px; display: grid; grid-template-columns: 48px 64px minmax(160px, 1fr) 72px 82px 86px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); color: var(--mock-muted); font-size: 0.76rem; } .mock-flow-row:last-child { border-bottom: 0; } .mock-flow-row.is-head { min-height: 28px; color: var(--mock-faint); font-size: 0.64rem; } .mock-map-layout { grid-template-columns: minmax(520px, 1.38fr) minmax(320px, 0.82fr); grid-template-areas: "canvas index" "canvas flow"; } .mock-map-canvas { grid-area: canvas; } .mock-map-index { grid-area: index; } .mock-map-flow { grid-area: flow; } .mock-territory { position: relative; min-height: 610px; margin: 12px; border: 1px solid var(--mock-line); border-radius: 12px; overflow: hidden; background: linear-gradient(0deg, var(--mock-line) 1px, transparent 1px) 0 0 / 100% 58px, linear-gradient(90deg, var(--mock-line) 1px, transparent 1px) 0 0 / 70px 100%, var(--mock-surface-2); } .mock-territory-node { position: absolute; left: var(--x); top: var(--y); width: clamp(136px, calc(var(--heat) * 1.9px), 196px); min-height: clamp(86px, calc(var(--heat) * 1.08px), 128px); display: grid; align-content: center; gap: 7px; transform: translate(-50%, -50%); border: 1px solid var(--mock-line-strong); border-radius: 12px; padding: 13px; background: color-mix(in oklch, var(--mock-surface) 84%, var(--mock-accent) calc(var(--heat) * 0.16%)); } .mock-territory-node strong, .mock-territory-node span { position: relative; z-index: 1; } .mock-territory-node span { color: var(--mock-accent); font-family: var(--font-mono), monospace; font-size: 0.74rem; } .mock-cluster { display: grid; grid-template-columns: minmax(0, 1fr) 86px; gap: 12px; align-items: center; margin: 10px 10px 0; padding: 10px; } .mock-cluster:last-child { margin-bottom: 10px; } .mock-cluster div { min-width: 0; display: grid; gap: 4px; } .mock-meter { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; } .mock-meter i { height: 8px; border-radius: 999px; background: linear-gradient(90deg, var(--mock-accent) var(--value), var(--mock-line) var(--value)); } .mock-meter em { color: var(--mock-muted); font-family: var(--font-mono), monospace; font-size: 0.72rem; font-style: normal; } .mock-options-layout, .mock-packet-layout, .mock-alert-layout, .mock-graph-layout { max-width: 1600px; margin: 0 auto; display: grid; gap: 12px; } .mock-options-layout { grid-template-columns: minmax(720px, 1fr) 270px; grid-template-areas: "command depth" "tape depth" "ladder ladder"; } .mock-options-command { grid-area: command; display: flex; flex-wrap: wrap; gap: 7px; border-block: 1px solid var(--mock-line); padding: 8px 0; } .mock-options-command button { min-height: 30px; border: 1px solid var(--mock-line); border-radius: 4px; padding: 5px 9px; background: transparent; color: var(--mock-muted); font-family: var(--font-mono), monospace; font-size: 0.64rem; letter-spacing: 0.06em; text-transform: uppercase; } .mock-options-command button:hover, .mock-options-command button:focus-visible, .mock-options-command button.is-active { border-color: var(--mock-line-strong); color: var(--mock-accent); outline: none; } .mock-options-tape { grid-area: tape; overflow-x: auto; border-block: 1px solid var(--mock-line); background: oklch(from var(--mock-surface) l c h / 0.54); } .mock-options-row { min-width: 1060px; min-height: 38px; display: grid; grid-template-columns: 116px 64px minmax(170px, 1fr) 86px 92px 110px 70px 82px 96px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-family: var(--font-mono), monospace; font-size: 0.72rem; } .mock-options-row:last-child { border-bottom: 0; } .mock-options-row.is-head { min-height: 30px; color: var(--mock-faint); font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; } .mock-options-row:not(.is-head):hover { background: var(--mock-accent-soft); } .mock-options-row.is-candidate, .mock-options-row.is-join, .mock-options-row.is-confirm { color: var(--mock-ink); } .mock-options-row.is-reject { color: color-mix(in oklch, var(--mock-bad) 70%, var(--mock-muted)); } .mock-options-depth { grid-area: depth; border-block: 1px solid var(--mock-line); padding-block: 12px; } .mock-options-depth h2, .mock-packet-inspector h2, .mock-alert-reason h2 { margin: 0 0 12px; font-size: 1rem; letter-spacing: -0.01em; } .mock-options-depth dl { display: grid; gap: 0; margin: 0; } .mock-options-depth div, .mock-graph-routes div { display: grid; gap: 4px; border-top: 1px solid var(--mock-line); padding: 11px 0; } .mock-options-depth div:last-child, .mock-graph-routes div:last-child { border-bottom: 1px solid var(--mock-line); } .mock-options-depth dt, .mock-flow-ladder span, .mock-graph-routes span { color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; } .mock-options-depth dd { margin: 0; color: var(--mock-ink); font-family: var(--font-mono), monospace; font-size: 1.12rem; } .mock-flow-ladder { grid-area: ladder; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--mock-line); } .mock-flow-ladder div { min-height: 70px; display: grid; align-content: center; gap: 5px; border-right: 1px solid var(--mock-line); padding: 10px 12px; } .mock-flow-ladder div:last-child { border-right: 0; } .mock-flow-ladder div.is-active { background: var(--mock-accent-soft); } .mock-flow-ladder strong { font-size: 0.92rem; text-transform: capitalize; } .mock-packet-layout { grid-template-columns: minmax(640px, 1.2fr) minmax(330px, 0.8fr); grid-template-areas: "chain inspector" "ledger inspector"; } .mock-packet-chain { grid-area: chain; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-block: 1px solid var(--mock-line); } .mock-packet-chain article { min-width: 0; display: grid; gap: 8px; border-right: 1px solid var(--mock-line); padding: 12px; background: linear-gradient(180deg, color-mix(in oklch, var(--mock-accent) calc(var(--weight) * 0.1%), transparent), transparent 78%), transparent; } .mock-packet-chain article:last-child { border-right: 0; } .mock-packet-chain time, .mock-alert-row time { color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.66rem; } .mock-packet-chain strong { font-family: var(--font-mono), monospace; text-transform: uppercase; } .mock-packet-chain p { margin: 0; color: var(--mock-muted); font-size: 0.8rem; line-height: 1.42; } .mock-packet-chain span { color: var(--mock-accent); font-family: var(--font-mono), monospace; font-size: 0.68rem; } .mock-packet-ledger { grid-area: ledger; overflow-x: auto; border-block: 1px solid var(--mock-line); } .mock-packet-row { min-width: 760px; min-height: 42px; display: grid; grid-template-columns: 98px 66px 92px 92px minmax(220px, 1fr) 60px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-packet-row:last-child { border-bottom: 0; } .mock-packet-row.is-head { min-height: 30px; color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; } .mock-packet-inspector { grid-area: inspector; border-block: 1px solid var(--mock-line); padding-block: 12px; } .mock-alert-layout { grid-template-columns: minmax(800px, 1fr) 320px; grid-template-areas: "wall reason"; } .mock-alert-wall { grid-area: wall; overflow-x: auto; border-block: 1px solid var(--mock-line); } .mock-alert-row { min-width: 1080px; min-height: 58px; display: grid; grid-template-columns: 78px 68px 118px 170px minmax(260px, 1fr) 170px 86px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-alert-row:last-child { border-bottom: 0; } .mock-alert-row.is-head { min-height: 30px; color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; } .mock-alert-row.is-high { background: var(--mock-accent-soft); color: var(--mock-ink); } .mock-alert-row p { margin: 0; line-height: 1.35; } .mock-alert-reason { grid-area: reason; border-block: 1px solid var(--mock-line); padding-block: 12px; } .mock-alert-reason ol { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; } .mock-alert-reason li { display: grid; gap: 5px; border-top: 1px solid var(--mock-line); padding: 12px 0; } .mock-alert-reason li:last-child { border-bottom: 1px solid var(--mock-line); } .mock-alert-reason strong { color: var(--mock-ink); } .mock-alert-reason span { color: var(--mock-muted); font-size: 0.84rem; line-height: 1.42; } .mock-graph-layout { grid-template-columns: minmax(720px, 1fr) 320px; grid-template-areas: "scope scope" "chain inspector" "queue invalid"; } .mock-lineage-scope { grid-area: scope; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--mock-line); } .mock-lineage-scope div { min-width: 0; min-height: 86px; display: grid; align-content: center; gap: 5px; border-right: 1px solid var(--mock-line); padding: 12px; } .mock-lineage-scope div:last-child { border-right: 0; } .mock-lineage-scope span, .mock-lineage-scope em, .mock-lineage-row time, .mock-lineage-row span, .mock-lineage-queue-row time, .mock-lineage-queue-row span { color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; font-style: normal; } .mock-lineage-scope strong { color: var(--mock-ink); font-size: 1rem; line-height: 1.12; } .mock-lineage-chain, .mock-lineage-queue { overflow-x: auto; border-block: 1px solid var(--mock-line); } .mock-lineage-chain { grid-area: chain; } .mock-lineage-queue { grid-area: queue; } .mock-lineage-row { min-width: 900px; min-height: 44px; display: grid; grid-template-columns: 116px 86px minmax(210px, 1fr) 104px minmax(150px, 0.72fr) 106px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-lineage-queue-row { min-width: 720px; min-height: 42px; display: grid; grid-template-columns: 76px 66px 112px 58px minmax(170px, 1fr) 88px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-lineage-row:last-child, .mock-lineage-queue-row:last-child { border-bottom: 0; } .mock-lineage-row.is-head, .mock-lineage-queue-row.is-head { min-height: 30px; color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; } .mock-lineage-row.is-active, .mock-lineage-queue-row.is-active { background: var(--mock-accent-soft); color: var(--mock-ink); } .mock-lineage-queue-row.is-reject { color: color-mix(in oklch, var(--mock-bad) 72%, var(--mock-muted)); } .mock-lineage-inspector, .mock-lineage-invalid { border-block: 1px solid var(--mock-line); padding-block: 12px; } .mock-lineage-inspector { grid-area: inspector; } .mock-lineage-invalid { grid-area: invalid; } .mock-lineage-inspector h2, .mock-lineage-invalid h2 { margin: 0 0 12px; color: var(--mock-ink); font-size: 1rem; letter-spacing: -0.01em; } .mock-command-layout, .mock-radar-layout, .mock-risk-layout, .mock-source-layout { min-width: 0; max-width: 1600px; margin: 0 auto; display: grid; gap: 12px; } .mock-command-layout > *, .mock-radar-layout > *, .mock-risk-layout > *, .mock-source-layout > * { min-width: 0; } .mock-command-layout { grid-template-columns: minmax(760px, 1fr) 320px; grid-template-areas: "strip strip" "board levels" "flow levels"; } .mock-command-strip { grid-area: strip; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--mock-line); } .mock-command-strip div { min-width: 0; min-height: 86px; display: grid; align-content: center; gap: 5px; border-right: 1px solid var(--mock-line); padding: 12px; } .mock-command-strip div:last-child { border-right: 0; } .mock-command-strip span, .mock-command-strip em, .mock-command-row time, .mock-command-row span, .mock-radar-row span, .mock-radar-row time, .mock-risk-row span, .mock-risk-level em, .mock-source-row span, .mock-source-routes span { color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.68rem; font-style: normal; } .mock-command-strip strong { color: var(--mock-ink); font-size: 1rem; line-height: 1.12; } .mock-command-board, .mock-radar-board, .mock-risk-board, .mock-source-board { overflow-x: auto; border-block: 1px solid var(--mock-line); } .mock-command-board { grid-area: board; } .mock-command-row { min-width: 900px; min-height: 42px; display: grid; grid-template-columns: 80px 70px 100px minmax(200px, 1fr) 126px 86px 90px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-command-row:last-child, .mock-radar-row:last-child, .mock-risk-row:last-child, .mock-source-row:last-child { border-bottom: 0; } .mock-command-row.is-head, .mock-radar-row.is-head, .mock-risk-row.is-head, .mock-source-row.is-head { min-height: 30px; color: var(--mock-faint); font-family: var(--font-mono), monospace; font-size: 0.62rem; letter-spacing: 0.08em; text-transform: uppercase; } .mock-command-row.is-confirm, .mock-command-row.is-hold, .mock-radar-row.is-bullish, .mock-source-row.is-eligible { color: var(--mock-ink); } .mock-command-row.is-reject, .mock-radar-row.is-bearish { color: color-mix(in oklch, var(--mock-bad) 72%, var(--mock-muted)); } .mock-command-levels { grid-area: levels; border-block: 1px solid var(--mock-line); padding-block: 12px; } .mock-command-levels h2, .mock-radar-context h2, .mock-risk-notes h2, .mock-source-audit h2 { margin: 0 0 12px; color: var(--mock-ink); font-size: 1rem; letter-spacing: -0.01em; } .mock-command-flow { grid-area: flow; } .mock-radar-layout { grid-template-columns: minmax(720px, 1fr) 320px; grid-template-areas: "sweep context" "board context"; } .mock-radar-sweep { grid-area: sweep; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--mock-line); } .mock-radar-band { min-height: 108px; display: grid; align-content: center; gap: 8px; border-right: 1px solid var(--mock-line); padding: 12px; } .mock-radar-band:last-child { border-right: 0; } .mock-radar-band.is-good { background: var(--mock-good-soft); } .mock-radar-band.is-watch { background: var(--mock-alt-soft); } .mock-radar-band.is-info { background: var(--mock-info-soft); } .mock-radar-band.is-bad { background: var(--mock-bad-soft); } .mock-radar-band strong, .mock-risk-level strong, .mock-source-routes strong { color: var(--mock-ink); } .mock-radar-band span { color: var(--mock-muted); font-family: var(--font-mono), monospace; font-size: 0.7rem; } .mock-radar-board { grid-area: board; } .mock-radar-row { min-width: 860px; min-height: 44px; display: grid; grid-template-columns: 70px 126px 72px 70px minmax(140px, 1fr) 92px 88px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-radar-context { grid-area: context; border-block: 1px solid var(--mock-line); padding-block: 12px; } .mock-risk-layout { grid-template-columns: minmax(760px, 1fr) 330px; grid-template-areas: "board notes" "map notes"; } .mock-risk-board { grid-area: board; } .mock-risk-row { min-width: 780px; min-height: 48px; display: grid; grid-template-columns: minmax(140px, 1fr) 110px 180px 90px minmax(180px, 1fr); gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-risk-map { grid-area: map; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-block: 1px solid var(--mock-line); } .mock-risk-level { min-height: 150px; display: grid; align-content: center; gap: 7px; border-right: 1px solid var(--mock-line); padding: 12px; background: linear-gradient(180deg, var(--mock-accent-soft), transparent 72%), transparent; } .mock-risk-level:last-child { border-right: 0; } .mock-risk-level.is-against { background: linear-gradient(180deg, var(--mock-bad-soft), transparent 72%), transparent; } .mock-risk-level span { color: var(--mock-accent); font-family: var(--font-mono), monospace; font-size: 1.18rem; } .mock-risk-notes { grid-area: notes; border-block: 1px solid var(--mock-line); padding-block: 12px; } .mock-source-layout { grid-template-columns: minmax(520px, 0.92fr) minmax(340px, 0.78fr) 280px; grid-template-areas: "board routes audit"; } .mock-source-board { grid-area: board; } .mock-source-row { min-width: 640px; min-height: 44px; display: grid; grid-template-columns: minmax(90px, 1fr) 76px 92px 96px 80px; gap: 10px; align-items: center; border-bottom: 1px solid var(--mock-line); padding: 0 10px; color: var(--mock-muted); font-size: 0.76rem; } .mock-source-row.is-degraded { background: var(--mock-alt-soft); } .mock-source-routes { grid-area: routes; display: grid; border-block: 1px solid var(--mock-line); } .mock-source-routes div { min-height: 82px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 10px; align-content: center; border-bottom: 1px solid var(--mock-line); padding: 12px; } .mock-source-routes div:last-child { border-bottom: 0; } .mock-source-routes span { grid-column: 1 / -1; } .mock-source-audit { grid-area: audit; border-block: 1px solid var(--mock-line); padding-block: 12px; } @media (max-width: 1180px) { .mock-nav, .mock-hero, .mock-court-layout, .mock-desk-layout, .mock-theatre-layout, .mock-map-layout, .mock-options-layout, .mock-packet-layout, .mock-alert-layout, .mock-graph-layout, .mock-command-layout, .mock-radar-layout, .mock-risk-layout, .mock-source-layout { grid-template-columns: 1fr; grid-template-areas: none; } .mock-nav > *, .mock-court-layout > *, .mock-desk-layout > *, .mock-theatre-layout > *, .mock-map-layout > *, .mock-options-layout > *, .mock-packet-layout > *, .mock-alert-layout > *, .mock-graph-layout > *, .mock-command-layout > *, .mock-radar-layout > *, .mock-risk-layout > *, .mock-source-layout > * { grid-area: auto; } .mock-now { justify-items: start; } .mock-desk-rail { display: flex; flex-wrap: wrap; align-items: center; } .mock-desk-rail button { width: auto; } .mock-packet-chain, .mock-flow-ladder, .mock-lineage-scope, .mock-command-strip, .mock-radar-sweep, .mock-risk-map { grid-template-columns: 1fr; } .mock-packet-chain article, .mock-flow-ladder div, .mock-lineage-scope div, .mock-command-strip div, .mock-radar-band, .mock-risk-level { border-right: 0; border-bottom: 1px solid var(--mock-line); } .mock-packet-chain article:last-child, .mock-flow-ladder div:last-child, .mock-lineage-scope div:last-child, .mock-command-strip div:last-child, .mock-radar-band:last-child, .mock-risk-level:last-child { border-bottom: 0; } } @media (max-width: 720px) { .mock-redesign { padding: 14px; } .mock-route-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow-x: visible; } .mock-route-tabs a { min-width: 0; } .mock-hero h1 { font-size: 1.58rem; } .mock-stage-head, .mock-chart-readout, .mock-desk-ticket, .mock-cluster { grid-template-columns: 1fr; display: grid; } .mock-bars { min-height: 260px; } .mock-territory { min-height: 480px; } .mock-territory-node { width: 132px; min-height: 94px; } .mock-options-command button { flex: 1 1 130px; } .mock-command-strip strong, .mock-risk-level span { font-size: 1rem; } .mock-lineage-scope strong { font-size: 1rem; } }