5793 lines
110 KiB
CSS
5793 lines
110 KiB
CSS
: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(680px, 1fr) 310px;
|
|
grid-template-areas:
|
|
"canvas routes"
|
|
"canvas strip";
|
|
}
|
|
|
|
.mock-graph-canvas {
|
|
grid-area: canvas;
|
|
position: relative;
|
|
min-height: 620px;
|
|
border-block: 1px solid var(--mock-line);
|
|
overflow: hidden;
|
|
background:
|
|
linear-gradient(0deg, var(--mock-line) 1px, transparent 1px) 0 0 / 100% 62px,
|
|
linear-gradient(90deg, var(--mock-line) 1px, transparent 1px) 0 0 / 82px 100%;
|
|
}
|
|
|
|
.mock-graph-link {
|
|
position: absolute;
|
|
left: var(--x1);
|
|
top: var(--y);
|
|
width: calc(var(--x2) - var(--x1));
|
|
display: grid;
|
|
gap: 4px;
|
|
border-top: 2px solid var(--mock-accent);
|
|
padding-top: 8px;
|
|
}
|
|
|
|
.mock-graph-link.is-good {
|
|
border-color: var(--mock-good);
|
|
}
|
|
|
|
.mock-graph-link.is-info {
|
|
border-color: var(--mock-info);
|
|
}
|
|
|
|
.mock-graph-link.is-watch {
|
|
border-color: var(--mock-alt);
|
|
}
|
|
|
|
.mock-graph-link strong {
|
|
font-family: var(--font-mono), monospace;
|
|
font-size: 0.74rem;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.mock-graph-link span {
|
|
color: var(--mock-muted);
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
.mock-graph-node {
|
|
position: absolute;
|
|
display: grid;
|
|
place-items: center;
|
|
min-height: 46px;
|
|
border: 1px solid var(--mock-line-strong);
|
|
border-radius: 6px;
|
|
padding: 9px 12px;
|
|
background: var(--mock-surface-2);
|
|
color: var(--mock-ink);
|
|
font-family: var(--font-mono), monospace;
|
|
font-size: 0.72rem;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.mock-graph-node.is-options {
|
|
left: 7%;
|
|
top: 14%;
|
|
}
|
|
|
|
.mock-graph-node.is-packet {
|
|
left: 38%;
|
|
top: 31%;
|
|
}
|
|
|
|
.mock-graph-node.is-alert {
|
|
right: 8%;
|
|
top: 17%;
|
|
}
|
|
|
|
.mock-graph-node.is-market {
|
|
left: 24%;
|
|
bottom: 19%;
|
|
}
|
|
|
|
.mock-graph-routes {
|
|
grid-area: routes;
|
|
border-block: 1px solid var(--mock-line);
|
|
padding-block: 8px;
|
|
}
|
|
|
|
.mock-graph-routes strong {
|
|
color: var(--mock-ink);
|
|
}
|
|
|
|
.mock-graph-strip {
|
|
grid-area: strip;
|
|
}
|
|
|
|
.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-command-strip,
|
|
.mock-radar-sweep,
|
|
.mock-risk-map {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.mock-packet-chain article,
|
|
.mock-flow-ladder 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-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-graph-canvas {
|
|
min-height: 520px;
|
|
}
|
|
|
|
.mock-graph-link {
|
|
width: 42%;
|
|
}
|
|
|
|
.mock-graph-node {
|
|
max-width: 150px;
|
|
text-align: center;
|
|
}
|
|
}
|