﻿/* ═══════════════════════════════════════════════════════════════════════════
   KRONOS — Investment Analysis Terminal
   Bloomberg Terminal meets modern fintech. Dark, precise, data-dense.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Design Tokens ──────────────────────────────────────────────────────── */
:root {
    --bg-0: #05080e;
    --bg-1: #0a0f1a;
    --bg-2: #111827;
    --bg-3: #1a2332;
    --bg-4: #212d3d;
    --border: #1e2d3d;
    --border-focus: #00e5ff33;
    --text-0: #f0f4f8;
    --text-1: #c9d1d9;
    --text-2: #8b949e;
    --text-3: #484f58;
    --cyan: #00e5ff;
    --cyan-dim: #00e5ff22;
    --cyan-mid: #00e5ff55;
    --green: #00dc82;
    --green-dim: #00dc8222;
    --red: #ff4d6a;
    --red-dim: #ff4d6a22;
    --amber: #ffb545;
    --amber-dim: #ffb54522;
    --purple: #a78bfa;
    --purple-dim: #a78bfa22;
    --font-brand: 'Orbitron', 'Inter', sans-serif;
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', 'Cascadia Code', monospace;
    --radius: 8px;
    --radius-sm: 4px;
    --transition: 180ms ease;
}

/* ── Reset ──────────────────────────────────────────────────────────────── */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

html { font-size: 14px; }

body {
    font-family: var(--font-sans);
    background: var(--bg-0);
    color: var(--text-1);
    min-height: 100vh;
    overflow: hidden;
    -webkit-font-smoothing: antialiased;
}

/* Force form controls to inherit the app font — browsers default these to system/Arial */
input, textarea, select, button {
    font-family: inherit;
    font-size: inherit;
}

/* ── Scrollbar ─────────────────────────────────────────────────────────── */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-3); }

/* ── Layout ────────────────────────────────────────────────────────────── */
.app {
    display: grid;
    grid-template-columns: 220px 1fr;
    grid-template-rows: 48px 1fr;
    height: 100vh;
    overflow: hidden;
}

/* ── Top Bar ───────────────────────────────────────────────────────────── */
.topbar {
    grid-column: 1 / -1;
    background: var(--bg-1);
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    padding: 0 16px;
    gap: 16px;
    z-index: 100;
}

.topbar-logo {
    display: flex;
    align-items: center;
    padding: 0 4px;
}

.topbar-logo-img {
    height: 44px;
    width: auto;
    max-width: 260px;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 0 12px rgba(0, 229, 255, 0.6)) brightness(1.1);
}

.topbar-search {
    flex: 1;
    max-width: 420px;
    position: relative;
}

.topbar-search input {
    width: 100%;
    background: var(--bg-0);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 7px 12px 7px 32px;
    color: var(--text-0);
    font-size: 13px;
    font-family: var(--font-mono);
    outline: none;
    transition: border-color var(--transition);
}

.topbar-search input:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 2px var(--cyan-dim);
}

.topbar-search input::placeholder { color: var(--text-3); }

.topbar-search .search-icon {
    position: absolute;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--text-3);
    pointer-events: none;
}

.topbar-right {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-left: auto;
}

.market-badge {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-2);
    padding: 4px 10px;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

.pulse-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--green);
    animation: pulse 2s ease-in-out infinite;
}

.pulse-dot--open {
    background: var(--green);
    animation: pulse-open 2s ease-in-out infinite;
}

.pulse-dot--closed {
    background: var(--red);
    animation: none;
    opacity: 0.6;
}

@keyframes pulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 4px var(--green); }
    50% { opacity: 0.4; box-shadow: 0 0 8px var(--green); }
}

@keyframes pulse-open {
    0%, 100% { opacity: 1; box-shadow: 0 0 4px var(--green); }
    50% { opacity: 0.4; box-shadow: 0 0 8px var(--green); }
}

/* ── AI Model Tooltip ──────────────────────────────────────────────────── */
[data-ai-model] {
    position: relative;
}

[data-ai-model]::after {
    content: "🤖 " attr(data-ai-model);
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
    background: var(--bg-3);
    color: var(--text-0);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 500;
    padding: 4px 8px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.15s ease;
    z-index: 999;
}

[data-ai-model]:hover::after {
    opacity: 1;
}

/* ── Sidebar ───────────────────────────────────────────────────────────── */
.sidebar {
    background: var(--bg-1);
    border-right: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.sidebar-nav {
    padding: 12px 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.nav-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 10px;
    border-radius: var(--radius-sm);
    font-size: 12px;
    color: var(--text-2);
    cursor: pointer;
    transition: all var(--transition);
    border: 1px solid transparent;
}

.nav-item:hover { background: var(--bg-2); color: var(--text-1); }
.nav-item-legacy { display: none !important; }
.nav-item.active { background: var(--cyan-dim); color: var(--cyan); border-color: var(--cyan-dim); }

.sidebar-label {
    padding: 16px 10px 6px;
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--text-3);
}

.watchlist-wrap {
    flex: 1;
    overflow-y: auto;
    padding: 0 8px 8px;
}

.watchlist-intro {
    padding: 4px 2px 8px;
}

.watchlist-intro-title {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--text-3);
}

.watchlist-intro-note {
    margin-top: 6px;
    font-size: 11px;
    line-height: 1.5;
    color: var(--text-2);
}

.watchlist-filter-row {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    gap: 6px;
    padding: 4px 2px 8px;
    margin-bottom: 4px;
    background: linear-gradient(180deg, rgba(11, 16, 24, 0.98), rgba(11, 16, 24, 0.88));
}

.watchlist-filter-chip {
    padding: 6px 8px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.82);
    color: var(--text-2);
    font-size: 10px;
    font-family: var(--font-mono);
    cursor: pointer;
}

.watchlist-filter-chip.active {
    border-color: var(--cyan-dim);
    background: var(--cyan-dim);
    color: var(--cyan);
}

.wl-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: all var(--transition);
    border: 1px solid transparent;
}

.wl-item:hover { background: var(--bg-2); }
.wl-item.active { background: var(--cyan-dim); border-color: var(--cyan-dim); }

.wl-info {
    flex: 1;
    min-width: 0;
    cursor: pointer;
}

.wl-ticker-row {
    display: flex;
    align-items: center;
    gap: 6px;
}

.wl-ticker {
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 12px;
    color: var(--text-0);
}

.wl-name {
    font-size: 10px;
    color: var(--text-3);
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wl-right {
    display: flex;
    align-items: center;
    gap: 6px;
}

.wl-score-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.wl-rank {
    min-width: 34px;
    padding: 2px 6px;
    border-radius: 999px;
    font-family: var(--font-mono);
    font-size: 10px;
    text-align: center;
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-2);
}

.wl-rank.is-long {
    color: var(--green);
    border-color: var(--green-dim);
    background: var(--green-dim);
}

.wl-rank.is-short {
    color: var(--red);
    border-color: var(--red-dim);
    background: var(--red-dim);
}

.wl-rank.is-mixed {
    color: var(--amber);
    border-color: var(--amber-dim);
    background: var(--amber-dim);
}

.wl-rank-secondary {
    min-width: 42px;
    font-size: 9px;
    opacity: 0.92;
}

.wl-price {
    font-family: var(--font-mono);
    font-size: 11px;
    text-align: right;
    color: var(--text-1);
}

.wl-remove {
    display: none;
    background: none;
    border: none;
    color: var(--text-3);
    font-size: 16px;
    cursor: pointer;
    padding: 0 2px;
    line-height: 1;
    transition: color var(--transition);
}

.wl-remove:hover { color: var(--red); }
.wl-item:hover .wl-remove { display: block; }

/* ── Trading 212 Portfolio ────────────────────────────────────────────── */
.sidebar-label--t212 {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.lane-brief {
    margin: 4px 0 14px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background:
        radial-gradient(circle at top right, rgba(0,229,255,0.06), transparent 32%),
        linear-gradient(180deg, rgba(17,24,39,0.94), rgba(10,15,26,0.94));
}

.lane-brief-head {
    margin-bottom: 10px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: var(--text-3);
}

.lane-brief-card + .lane-brief-card {
    margin-top: 10px;
}

.lane-brief-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

.lane-brief-card--uk {
    border-color: rgba(0, 229, 255, 0.22);
}

.lane-brief-card--us {
    border-color: rgba(245, 158, 11, 0.24);
}

.lane-brief-kicker {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--text-2);
}

.lane-brief-metrics {
    margin-top: 5px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.lane-brief-note {
    margin-top: 5px;
    font-size: 11px;
    line-height: 1.5;
    color: var(--text-2);
}

.lane-brief-foot {
    margin-top: 10px;
    font-size: 11px;
    color: var(--text-2);
}

.lane-brief-foot.is-warn {
    color: var(--amber);
}

.t212-pnl {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
}

.t212-pnl.is-pos { color: var(--green); }
.t212-pnl.is-neg { color: var(--red); }

.t212-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 5px 10px;
    cursor: pointer;
    border-bottom: 1px solid var(--border);
    gap: 6px;
}

.t212-row:hover { background: var(--bg-2); }

.t212-name {
    font-size: 11px;
    color: var(--text-1);
    font-family: var(--font-mono);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
}

.t212-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    flex-shrink: 0;
}

.t212-val {
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-0);
    font-weight: 600;
}

.t212-pnl-row {
    font-size: 9px;
    font-family: var(--font-mono);
}

.t212-pnl-row.is-pos { color: var(--green); }
.t212-pnl-row.is-neg { color: var(--red); }

/* ── T212 Account Value Banner ───────────────────────────────────────── */
.t212-account-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 10px;
    background: var(--bg-1);
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background 0.15s;
}
.t212-account-banner:hover { background: var(--bg-2); }
.t212-acct-label {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-3);
    font-family: var(--font-mono);
    margin-bottom: 2px;
}
.t212-acct-value {
    font-size: 16px;
    font-weight: 700;
    font-family: var(--font-mono);
    color: var(--text-0);
}

/* ── Performance Modal ───────────────────────────────────────────────── */
.perf-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.6);
    z-index: 1100;
    display: flex;
    align-items: center;
    justify-content: center;
}
.perf-modal {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: 8px;
    width: 520px;
    max-width: 95vw;
    padding: 0;
    overflow: hidden;
}
.perf-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 18px;
    border-bottom: 1px solid var(--border);
}
.perf-modal-title {
    font-size: 12px;
    font-weight: 800;
    color: var(--text-0);
    font-family: var(--font-brand);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.perf-summary {
    padding: 16px 18px 10px;
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}
.perf-stat { display: flex; flex-direction: column; gap: 2px; }
.perf-stat-label {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.perf-stat-value {
    font-size: 18px;
    font-weight: 700;
    font-family: var(--font-mono);
    color: var(--text-0);
}
.perf-stat-value.is-pos { color: var(--green); }
.perf-stat-value.is-neg { color: var(--red); }
.perf-stat-value.sm {
    font-size: 13px;
}
.perf-period-tabs {
    display: flex;
    gap: 4px;
    padding: 0 18px 10px;
}
.perf-tab {
    padding: 4px 10px;
    border-radius: 4px;
    border: 1px solid var(--border);
    background: transparent;
    color: var(--text-3);
    font-size: 11px;
    font-family: var(--font-mono);
    cursor: pointer;
    transition: all 0.15s;
}
.perf-tab:hover { border-color: var(--cyan); color: var(--cyan); }
.perf-tab.active { background: var(--cyan); border-color: var(--cyan); color: #000; font-weight: 700; }
.perf-chart-wrap {
    padding: 0 18px 14px;
    height: 160px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.perf-chart-empty {
    font-size: 11px;
    color: var(--text-3);
    font-family: var(--font-mono);
    text-align: center;
}
.perf-chart-svg { width: 100%; height: 140px; display: block; }
.perf-note {
    padding: 8px 18px 14px;
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    border-top: 1px solid var(--border);
    line-height: 1.5;
}

/* ── FCA Short Interest Panel ────────────────────────────────────────── */
.fca-shorts-panel {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-left: 3px solid var(--cyan);
    border-radius: 6px;
    flex-shrink: 0;
}
.fca-shorts-panel.fca-loading {
    padding: 14px 16px;
    font-size: 11px;
    color: var(--text-1);
    font-family: var(--font-mono);
}
.fca-shorts-head {
    padding: 12px 16px 8px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-2);
}
.fca-shorts-title {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.fca-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-0);
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.fca-badge {
    font-size: 11px;
    font-weight: 700;
    font-family: var(--font-mono);
    padding: 2px 8px;
    border-radius: 4px;
}
.fca-badge.short-high { background: rgba(255,60,60,0.15); color: var(--red); border: 1px solid rgba(255,60,60,0.3); }
.fca-badge.short-med  { background: rgba(255,170,0,0.12); color: var(--amber); border: 1px solid rgba(255,170,0,0.3); }
.fca-badge.short-low  { background: rgba(0,255,128,0.08); color: var(--green); border: 1px solid rgba(0,255,128,0.2); }
.fca-trend {
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 600;
}
.fca-trend.trend-up   { color: var(--red); }
.fca-trend.trend-down { color: var(--green); }
.fca-trend.trend-stable { color: var(--text-3); }
.fca-meta {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.fca-explain {
    padding: 10px 16px;
    font-size: 12px;
    color: var(--text-1);
    line-height: 1.6;
    border-bottom: 1px solid var(--border);
}
.fca-chart-wrap {
    padding: 8px 16px 4px;
    border-bottom: 1px solid var(--border);
}
.fca-history-svg {
    width: 100%;
    height: 36px;
    display: block;
}
.fca-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-mono);
    font-size: 11px;
}
.fca-table th {
    padding: 6px 16px;
    text-align: left;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-3);
    border-bottom: 1px solid var(--border);
    font-weight: 500;
}
.fca-table td { padding: 6px 16px; border-bottom: 1px solid rgba(255,255,255,0.03); }
.fca-table tr:last-child td { border-bottom: none; }
.fca-table tr:hover td { background: var(--bg-2); }
.fca-holder-name { color: var(--text-1); }
.fca-holder-pct { color: var(--text-0); font-weight: 600; }
.fca-holder-pct.short-high { color: var(--red); }
.fca-holder-pct.short-med  { color: var(--amber); }
.fca-holder-date { color: var(--text-3); }
.fca-shorts-empty {
    padding: 12px 16px;
    font-size: 11px;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.fca-note {
    padding: 6px 16px 10px;
    font-size: 9px;
    color: var(--text-3);
    font-family: var(--font-mono);
    border-top: 1px solid var(--border);
}

.t212-cash-banner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 7px 10px;
    background: var(--bg-2);
    border-bottom: 1px solid var(--border);
}
.t212-cash-label {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.t212-cash-value {
    font-size: 13px;
    font-weight: 700;
    font-family: var(--font-mono);
    color: var(--cyan);
}
.t212-cash-value.is-zero { color: var(--red); }

.t212-footer {
    display: flex;
    justify-content: space-between;
    padding: 5px 10px;
    font-size: 9px;
    font-family: var(--font-mono);
    color: var(--text-3);
    border-top: 1px solid var(--border);
}

.t212-error {
    padding: 6px 10px;
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
}

/* ── Portfolio Advisor Panel ──────────────────────────────────────────── */
.advisor-panel {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;
    margin-bottom: 20px;
}

.advisor-summary {
    font-family: var(--font-sans);
    font-size: 12px;
    color: var(--text-1);
    line-height: 1.6;
    padding: 12px 14px;
    background: var(--bg-2);
    border-left: 3px solid var(--cyan);
    border-radius: var(--radius-sm);
    margin-bottom: 16px;
}

.advisor-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
    margin-top: 12px;
}

.advisor-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.advisor-card-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 8px;
}

.advisor-name {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-0);
    font-family: var(--font-mono);
}

.advisor-meta {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    margin-top: 2px;
}

.advisor-right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    flex-shrink: 0;
}

.advisor-action {
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
    padding: 2px 7px;
    border-radius: 999px;
    border: 1px solid;
}

.advisor-action.is-long  { color: var(--green); border-color: var(--green-dim); background: var(--green-dim); }
.advisor-action.is-short { color: var(--red);   border-color: var(--red-dim);   background: var(--red-dim); }
.advisor-action.is-mixed { color: var(--amber);  border-color: var(--amber-dim); background: var(--amber-dim); }

.advisor-pnl {
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 600;
}

.advisor-pnl.is-pos { color: var(--green); }
.advisor-pnl.is-neg { color: var(--red); }

.advisor-prices {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 4px;
    background: var(--bg-3);
    border-radius: var(--radius-sm);
    padding: 8px;
}

.advisor-price-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.advisor-price-label {
    font-size: 9px;
    font-family: var(--font-mono);
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.advisor-price-val {
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-1);
}

.advisor-price-live { color: var(--cyan); }
.advisor-price-stop { color: var(--red); }
.advisor-price-exit { color: var(--green); }

.advisor-targets {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.advisor-target, .advisor-stop, .advisor-fc {
    font-size: 10px;
    font-family: var(--font-mono);
    padding: 2px 7px;
    border-radius: var(--radius-sm);
    background: var(--bg-3);
    color: var(--text-1);
}

.advisor-target span { color: var(--green); margin-right: 4px; }
.advisor-stop   span { color: var(--red);   margin-right: 4px; }
.advisor-fc     span { color: var(--cyan);  margin-right: 4px; }

.advisor-text {
    font-family: var(--font-sans);
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
    border-top: 1px solid var(--border);
    padding-top: 8px;
}

.advisor-empty, .advisor-loading {
    font-size: 12px;
    color: var(--text-3);
    padding: 20px 0;
    text-align: center;
}

.advisor-foot {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    margin-top: 12px;
    text-align: right;
}

/* ── Confirm Overlay ──────────────────────────────────────────────────── */
.confirm-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    backdrop-filter: blur(4px);
}

.confirm-box {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 24px;
    width: 340px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5);
}

.confirm-title {
    font-family: var(--font-mono);
    font-size: 14px;
    font-weight: 700;
    color: var(--text-0);
    margin-bottom: 8px;
}

.confirm-msg {
    font-size: 12px;
    color: var(--text-2);
    line-height: 1.5;
    margin-bottom: 20px;
}

.confirm-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

/* ── T212 Order Modal ─────────────────────────────────────────────────── */
.order-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
}

.order-modal {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    width: 380px;
    max-width: 95vw;
}

.order-modal-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 16px 18px 12px;
    border-bottom: 1px solid var(--border);
}

.order-modal-title {
    font-size: 12px;
    font-weight: 800;
    font-family: var(--font-brand);
    color: var(--text-0);
}

.order-modal-sub {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    margin-top: 3px;
}

.order-modal-close {
    background: none;
    border: none;
    color: var(--text-3);
    font-size: 18px;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}

.order-modal-close:hover { color: var(--text-0); }

.order-modal-body {
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.order-field label {
    display: block;
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 6px;
}

.order-type-row {
    display: flex;
    gap: 6px;
}

.order-type-btn {
    flex: 1;
    padding: 6px;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-2);
    font-size: 11px;
    font-family: var(--font-mono);
    cursor: pointer;
}

.order-type-btn.active {
    background: var(--bg-3);
    border-color: var(--cyan);
    color: var(--cyan);
}

.order-input {
    width: 100%;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-0);
    font-family: var(--font-mono);
    font-size: 13px;
    padding: 8px 10px;
    box-sizing: border-box;
}

.order-input:focus {
    outline: none;
    border-color: var(--cyan);
}

.order-estimate {
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--cyan);
    min-height: 16px;
}

.order-warning {
    font-size: 10px;
    color: var(--amber);
    font-family: var(--font-mono);
    background: var(--amber-dim);
    border: 1px solid var(--amber);
    border-radius: var(--radius-sm);
    padding: 8px 10px;
    line-height: 1.5;
}

.order-modal-foot {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 12px 18px 16px;
    border-top: 1px solid var(--border);
}

.advisor-order-row {
    display: flex;
    gap: 6px;
    padding-top: 8px;
    border-top: 1px solid var(--border);
}

.hero-trade-btns {
    display: flex;
    gap: 6px;
}

.hero-sell-btn {
    color: var(--red);
    border-color: var(--red);
    background: var(--red-dim);
    font-weight: 700;
}
.hero-sell-btn:hover { background: var(--red); color: var(--bg-0); }

.hero-buy-btn {
    color: var(--green);
    border-color: var(--green);
    background: var(--green-dim);
    font-weight: 700;
}
.hero-buy-btn:hover { background: var(--green); color: var(--bg-0); }

.btn-danger {
    background: var(--red-dim);
    color: var(--red);
    border-color: var(--red);
}

.btn-danger:hover {
    background: var(--red);
    color: var(--bg-0);
}

/* ── Main Content ──────────────────────────────────────────────────────── */
.main {
    overflow-y: auto;
    overflow-x: hidden;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* ── Skeleton Loading ──────────────────────────────────────────────────── */
.skeleton {
    background: linear-gradient(90deg, var(--bg-2) 25%, var(--bg-3) 50%, var(--bg-2) 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s ease-in-out infinite;
    border-radius: var(--radius-sm);
}

@keyframes shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.skeleton-line { height: 14px; margin-bottom: 8px; }
.skeleton-block { height: 120px; }

/* ── Cards ─────────────────────────────────────────────────────────────── */
.card {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
}

.card-title {
    font-size: 10px;
    font-family: var(--font-brand);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-2);
}

.card-body { padding: 16px; }

/* ── Panel Animations ──────────────────────────────────────────────────── */
.panel-enter {
    /* Animations disabled — all panels visible immediately */
}

/* ── Stock Hero ────────────────────────────────────────────────────────── */
.hero {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 16px;
    flex-wrap: wrap;
}

.hero-info { flex: 1; min-width: 200px; }

.hero-company {
    font-family: var(--font-sans);
    font-size: 18px;
    font-weight: 700;
    color: var(--text-0);
    margin-bottom: 4px;
}

.hero-badges {
    display: flex;
    gap: 6px;
    margin-bottom: 8px;
}

.badge {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.badge-ticker { background: var(--cyan-dim); color: var(--cyan); }
.badge-exchange { background: var(--bg-3); color: var(--text-2); }
.badge-sector { background: var(--purple-dim); color: var(--purple); }
/* USD badge — shown for US stocks */
.badge-usd {
    background: var(--cyan-dim);
    color: var(--cyan);
    border: 1px solid var(--cyan-mid);
    font-size: 9px;
    padding: 1px 5px;
    align-self: center;
    cursor: default;
}
/* GBX pence badge — only shown for LSE stocks priced in pence */
.badge-gbx {
    background: #ffb54522;
    color: var(--amber);
    border: 1px solid #ffb54544;
    font-size: 9px;
    padding: 1px 5px;
    align-self: center;
    cursor: default;
}
/* LSE Adjusted momentum blend note in Kronos signal layer */
.lse-adjusted-badge {
    display: inline-block;
    margin-top: 3px;
    font-size: 10px;
    color: var(--amber);
    background: #ffb54518;
    border: 1px solid #ffb54533;
    border-radius: 3px;
    padding: 1px 6px;
    cursor: help;
    font-family: var(--font-mono);
}

.hero-price {
    font-family: var(--font-mono);
    font-size: 32px;
    font-weight: 700;
    color: var(--text-0);
    line-height: 1;
}

.hero-change {
    font-family: var(--font-mono);
    font-size: 14px;
    font-weight: 600;
    margin-left: 8px;
}

.hero-change.up { color: var(--green); }
.hero-change.down { color: var(--red); }

.hero-meta {
    font-size: 11px;
    color: var(--text-3);
    margin-top: 4px;
    font-family: var(--font-mono);
}

.hero-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.hero-action-stack {
    display: grid;
    grid-template-columns: minmax(360px, 1fr) minmax(220px, 260px);
    gap: 12px;
    width: 100%;
}

.hero-action-panel {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-2);
    padding: 12px;
}

.hero-action-panel-execution {
    background: linear-gradient(180deg, rgba(255, 181, 69, 0.07), rgba(17, 24, 39, 0.86));
    border-color: rgba(255, 181, 69, 0.22);
}

.hero-action-title {
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--cyan);
    margin-bottom: 8px;
}

.hero-action-note {
    font-size: 11px;
    color: var(--text-2);
    margin-bottom: 10px;
    line-height: 1.5;
}

.hero-utility-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.hero-remove-btn {
    justify-content: center;
    color: var(--red);
    border-color: rgba(255, 84, 89, 0.22);
    white-space: nowrap;
}

.forecast-controls {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 300px;
}

.forecast-mode-label {
    font-size: 10px;
    font-family: var(--font-mono);
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text-3);
}

.forecast-mode-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.forecast-mode-btn {
    min-width: 92px;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.forecast-mode-btn.active {
    border-color: var(--cyan);
    background: linear-gradient(180deg, var(--cyan-dim), rgba(0, 229, 255, 0.08));
    color: var(--text-0);
    box-shadow: 0 0 0 1px var(--cyan-dim);
}

.forecast-mode-title {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
}

.forecast-mode-hint {
    font-size: 10px;
    color: var(--text-2);
}

.forecast-progress {
    display: none;
    padding: 10px 12px;
    border: 1px solid var(--border);
    background: linear-gradient(180deg, var(--bg-2), rgba(0, 229, 255, 0.04));
    border-radius: var(--radius-sm);
    min-width: 300px;
}

.forecast-progress.active {
    display: block;
}

.forecast-progress.done {
    border-color: var(--green-dim);
}

.forecast-progress.error {
    border-color: var(--red-dim);
    background: linear-gradient(180deg, var(--bg-2), rgba(255, 77, 106, 0.08));
}

.forecast-progress-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 6px;
}

.forecast-progress-label,
.forecast-progress-value,
.forecast-progress-detail {
    font-family: var(--font-mono);
}

.forecast-progress-label {
    font-size: 11px;
    color: var(--text-1);
}

.forecast-progress-value {
    font-size: 11px;
    color: var(--cyan);
}

.forecast-progress-track {
    height: 7px;
    background: var(--bg-3);
    border-radius: 999px;
    overflow: hidden;
    position: relative;
}

.forecast-progress-fill {
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--cyan), var(--green));
    box-shadow: 0 0 12px rgba(0, 229, 255, 0.25);
    transition: width 180ms linear;
}

.forecast-progress.error .forecast-progress-fill {
    background: linear-gradient(90deg, var(--amber), var(--red));
    box-shadow: none;
}

.forecast-progress-detail {
    margin-top: 6px;
    font-size: 10px;
    color: var(--text-2);
}

/* 52W Range Bar */
.range-52w {
    flex: 0 0 200px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.range-52w-label {
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.range-track {
    position: relative;
    height: 6px;
    background: var(--bg-3);
    border-radius: 3px;
    overflow: visible;
}

.range-fill {
    position: absolute;
    top: 0; left: 0;
    height: 100%;
    background: linear-gradient(90deg, var(--red), var(--amber), var(--green));
    border-radius: 3px;
    transition: width 0.6s ease;
}

.range-marker {
    position: absolute;
    top: -3px;
    width: 12px; height: 12px;
    background: var(--cyan);
    border: 2px solid var(--bg-1);
    border-radius: 50%;
    transform: translateX(-50%);
    transition: left 0.6s ease;
    box-shadow: 0 0 6px var(--cyan);
}

.range-values {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-3);
}

/* ── Investment Summary Panel ───────────────────────────────────────────── */
.inv-summary {
    background: linear-gradient(135deg, var(--bg-1) 0%, #0d1520 100%);
    border: 1px solid var(--cyan-mid);
    border-radius: var(--radius);
    position: relative;
}

.inv-summary::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--cyan), var(--green), var(--cyan));
}

.inv-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px 12px;
    border-bottom: 1px solid var(--border);
}

.inv-summary-title {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--cyan);
}

.inv-summary-verdict {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 3px;
    letter-spacing: 1px;
}

.inv-summary-verdict.buy { background: var(--green-dim); color: var(--green); border: 1px solid var(--green); }
.inv-summary-verdict.watch { background: var(--amber-dim); color: var(--amber); border: 1px solid var(--amber); }
.inv-summary-verdict.avoid { background: var(--red-dim); color: var(--red); border: 1px solid var(--red); }

.inv-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: var(--border);
}

.inv-grid > div {
    background: var(--bg-1);
    padding: 16px 20px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.inv-label {
    font-size: 11px;
    color: var(--text-3);
    margin-bottom: 4px;
    line-height: 1.3;
}

.inv-value {
    font-family: var(--font-mono);
    font-size: 24px;
    font-weight: 700;
    line-height: 1.1;
}

.inv-hint {
    font-size: 10px;
    color: var(--text-3);
    margin-top: 4px;
    line-height: 1.4;
}

.inv-footer {
    padding: 10px 20px;
    border-top: 1px solid var(--border);
    font-size: 10px;
    color: var(--text-3);
    line-height: 1.5;
    background: var(--bg-0);
}

/* Risk dots */
.risk-dots {
    display: flex;
    gap: 4px;
    margin-top: 6px;
}

.risk-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    border: 1px solid var(--border);
    background: var(--bg-3);
    transition: background 0.3s ease, border-color 0.3s ease;
}

.risk-dot.filled-green { background: var(--green); border-color: var(--green); box-shadow: 0 0 4px var(--green-dim); }
.risk-dot.filled-amber { background: var(--amber); border-color: var(--amber); box-shadow: 0 0 4px var(--amber-dim); }
.risk-dot.filled-red { background: var(--red); border-color: var(--red); box-shadow: 0 0 4px var(--red-dim); }

/* Confidence bar */
.conf-track {
    height: 6px;
    background: var(--bg-3);
    border-radius: 3px;
    margin-top: 8px;
    overflow: hidden;
}

.conf-fill {
    height: 100%;
    border-radius: 3px;
    transition: width 0.8s ease;
}

/* Awaiting state */
.inv-awaiting {
    padding: 24px 20px;
    text-align: center;
}

.inv-awaiting-title {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--text-2);
    margin-bottom: 6px;
}

.inv-awaiting-sub {
    font-size: 12px;
    color: var(--text-3);
    line-height: 1.5;
}

.detail-top-grid {
    display: grid;
    grid-template-columns: minmax(340px, 0.95fr) minmax(460px, 1.05fr);
    gap: 12px;
    align-items: start;
}

.detail-lower-grid {
    display: grid;
    grid-template-columns: minmax(300px, 0.9fr) minmax(420px, 1.1fr);
    gap: 12px;
    align-items: start;
}

.research-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    align-items: start;
}

.decision-panel {
    border-color: rgba(0, 229, 255, 0.26);
    background: linear-gradient(180deg, rgba(0, 229, 255, 0.08), rgba(8, 14, 22, 0.94));
}

.decision-panel-head {
    align-items: flex-start;
    gap: 12px;
}

.decision-panel-kicker {
    margin-top: 6px;
    color: var(--text-2);
    font-size: 12px;
}

.decision-badges {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.decision-chip,
.decision-status-pill {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--border);
}

.decision-chip.is-buy,
.decision-status-pill.is-green {
    color: var(--green);
    background: var(--green-dim);
    border-color: var(--green);
}

.decision-chip.is-watch,
.decision-status-pill.is-amber {
    color: var(--amber);
    background: var(--amber-dim);
    border-color: var(--amber);
}

.decision-chip.is-avoid,
.decision-status-pill.is-red {
    color: var(--red);
    background: var(--red-dim);
    border-color: var(--red);
}

.decision-status-pill.is-cyan,
.decision-chip.is-cyan {
    color: var(--cyan);
    background: var(--cyan-dim);
    border-color: var(--cyan-mid);
}

.decision-headline {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-0);
    line-height: 1.2;
}

.decision-note {
    margin-top: 8px;
    color: var(--text-1);
    font-size: 13px;
    line-height: 1.6;
}

.decision-reason {
    margin-top: 12px;
    padding: 12px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: rgba(8, 14, 22, 0.75);
    color: var(--text-2);
    font-size: 12px;
    line-height: 1.6;
}

.decision-action-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.decision-forecast-controls {
    margin-top: 10px;
    padding: 10px 12px;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
}

.decision-readiness-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.decision-status-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(8, 14, 22, 0.78);
    padding: 12px;
}

.decision-status-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.decision-status-label {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-0);
}

.decision-status-note {
    margin-top: 8px;
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.decision-support-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.decision-support-label {
    display: block;
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-3);
    margin-bottom: 4px;
}

.decision-support-value {
    color: var(--text-1);
    font-size: 12px;
}

.decision-scroll-card {
    max-height: 340px;
    overflow-y: auto;
}

@media (max-width: 768px) {
    .inv-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ── Signal Cards Row ──────────────────────────────────────────────────── */
.signal-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.signal-card {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 16px;
    position: relative;
    overflow: hidden;
}

.signal-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
}

.signal-card.cyan::before { background: var(--cyan); }
.signal-card.green::before { background: var(--green); }
.signal-card.amber::before { background: var(--amber); }
.signal-card.red::before { background: var(--red); }
.signal-card.purple::before { background: var(--purple); }

.signal-label {
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-3);
    margin-bottom: 8px;
}

.signal-value {
    font-family: var(--font-mono);
    font-size: 28px;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 4px;
}

.signal-sub {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 600;
    margin-bottom: 8px;
}

.signal-bar-track {
    height: 4px;
    background: var(--bg-3);
    border-radius: 2px;
    overflow: hidden;
    margin-top: 10px;
}

.signal-bar-fill {
    height: 100%;
    border-radius: 2px;
    transition: width 0.8s ease;
    width: 0;
}

.signal-bar-fill.cyan { background: var(--cyan); }
.signal-bar-fill.green { background: var(--green); }
.signal-bar-fill.amber { background: var(--amber); }
.signal-bar-fill.red { background: var(--red); }
.signal-bar-fill.purple { background: var(--purple); }

/* ── Monte Carlo Chart ─────────────────────────────────────────────────── */
.chart-wrap {
    position: relative;
    background: var(--bg-0);
    border-radius: var(--radius-sm);
    overflow: hidden;
}

.chart-wrap canvas {
    display: block;
    width: 100%;
}

.chart-tabs {
    display: flex;
    gap: 2px;
    padding: 0 16px;
}

.chart-tab {
    padding: 6px 14px;
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-3);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: all var(--transition);
}

.chart-tab:hover { color: var(--text-2); }
.chart-tab.active { color: var(--cyan); border-bottom-color: var(--cyan); }

/* ── Score Pills ───────────────────────────────────────────────────────── */
.score-pills {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.score-pill {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 10px 16px;
    background: var(--bg-0);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    min-width: 80px;
    transition: border-color var(--transition);
}

.score-pill:hover { border-color: var(--text-3); }

.score-pill-value {
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
}

.score-pill-label {
    font-size: 9px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--text-3);
}

/* ── Stockopedia Fundamentals Tags ────────────────────────────────────── */
.stock-fundamentals {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
}

.fund-tag {
    display: inline-block;
    font-size: 10px;
    font-family: var(--font-mono);
    padding: 2px 7px;
    border-radius: 3px;
    background: var(--bg-0);
    border: 1px solid var(--border);
    color: var(--text-2);
}

.fund-tag.strong-buy, .fund-tag.buy { color: var(--green); border-color: var(--green-dim); }
.fund-tag.hold { color: var(--amber); border-color: var(--amber-dim); }
.fund-tag.sell, .fund-tag.strong-sell { color: var(--red); border-color: var(--red-dim); }

.fundamentals-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 1px;
    background: var(--border);
}

/* ── Stockopedia Signals card ─────────────────────────────────────────── */
.sig-card .card-body {
    padding: 14px;
}

.sig-styles {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 14px;
}

.style-chip {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-1);
}
.style-chip.is-bear {
    color: var(--red);
    border-color: var(--red-dim);
    background: var(--red-dim);
}
.style-chip.is-bull {
    color: var(--green);
    border-color: var(--green-dim);
    background: var(--green-dim);
}

.sig-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.sig-cell {
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-2);
}
.sig-cell.is-warn {
    border-color: var(--amber-dim);
    background: linear-gradient(180deg, rgba(255,181,69,0.08), var(--bg-2));
}

.sig-label {
    font-family: var(--font-mono);
    font-size: 9.5px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text-3);
    margin-bottom: 4px;
}
.sig-value {
    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 700;
    color: var(--text-0);
}
.sig-sub {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-2);
    font-family: var(--font-mono);
}
.sig-hint {
    margin-top: 4px;
    font-size: 10.5px;
    color: var(--text-3);
    line-height: 1.4;
}
.sig-dim {
    color: var(--text-3);
    padding: 0 6px;
}

.rs-curve {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 6px;
    margin-top: 4px;
}
.rs-step {
    text-align: center;
    padding: 6px 4px;
    border: 1px solid var(--border);
    border-radius: 3px;
    background: var(--bg-1);
}
.rs-window {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.8px;
    color: var(--text-3);
    text-transform: uppercase;
}
.rs-val {
    margin-top: 2px;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
}

.fund-item {
    background: var(--bg-1);
    padding: 10px 12px;
}

.fund-label {
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--text-3);
    margin-bottom: 3px;
}

.fund-value {
    font-size: 13px;
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--text-1);
}

.fund-value.strong-buy, .fund-value.buy { color: var(--green); }
.fund-value.hold { color: var(--amber); }
.fund-value.sell, .fund-value.strong-sell { color: var(--red); }

/* ── Signal Stack ──────────────────────────────────────────────────────── */
.stack-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

.stack-item {
    padding: 14px;
    background: var(--bg-0);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.stack-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 8px;
    border-radius: 3px;
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 8px;
}

.stack-badge.bullish { background: var(--green-dim); color: var(--green); }
.stack-badge.bearish { background: var(--red-dim); color: var(--red); }
.stack-badge.neutral { background: var(--amber-dim); color: var(--amber); }

.stack-signals {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 8px;
}

.stack-signal {
    font-size: 11px;
    color: var(--text-2);
    padding-left: 12px;
    position: relative;
}

.stack-signal::before {
    content: '';
    position: absolute;
    left: 0;
    top: 5px;
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--text-3);
}

/* ── Combined Signal Panel ─────────────────────────────────────────────── */
.verdict {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 20px;
}

.verdict-signal {
    font-family: var(--font-mono);
    font-size: 28px;
    font-weight: 800;
    letter-spacing: 2px;
    text-transform: uppercase;
    padding: 12px 24px;
    border-radius: var(--radius);
    border: 2px solid;
    white-space: nowrap;
}

.verdict-signal.buy { background: var(--green-dim); color: var(--green); border-color: var(--green); }
.verdict-signal.watch { background: var(--amber-dim); color: var(--amber); border-color: var(--amber); }
.verdict-signal.avoid { background: var(--red-dim); color: var(--red); border-color: var(--red); }

.verdict-reason {
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-2);
    line-height: 1.5;
}

/* ── News Feed ─────────────────────────────────────────────────────────── */
.news-item {
    padding: 12px 0;
    border-bottom: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.news-item:last-child { border-bottom: none; }

.news-head {
    display: flex;
    align-items: center;
    gap: 8px;
}

.news-title {
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-0);
    flex: 1;
}

.news-title a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transition);
}

.news-title a:hover { color: var(--cyan); }

.news-meta {
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-3);
}

.news-badge {
    font-size: 9px;
    font-family: var(--font-mono);
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.news-badge.catalyst-ma { background: var(--purple-dim); color: var(--purple); }
.news-badge.catalyst-earnings { background: var(--cyan-dim); color: var(--cyan); }
.news-badge.catalyst-contract { background: var(--green-dim); color: var(--green); }
.news-badge.catalyst-activist { background: var(--amber-dim); color: var(--amber); }
.news-badge.catalyst-expansion { background: var(--cyan-dim); color: var(--cyan); }
.news-badge.sentiment-bullish { background: var(--green-dim); color: var(--green); }
.news-badge.sentiment-bearish { background: var(--red-dim); color: var(--red); }
.news-badge.sentiment-neutral { background: var(--bg-3); color: var(--text-2); }

/* ── Catalyst Timeline ─────────────────────────────────────────────────── */
.timeline { padding: 8px 0; }

.tl-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 8px 0;
    position: relative;
}

.tl-dot-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 12px;
    flex-shrink: 0;
}

.tl-dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.tl-line {
    width: 1px;
    flex: 1;
    min-height: 20px;
    background: var(--border);
}

.tl-dot.high { background: var(--red); box-shadow: 0 0 6px var(--red-dim); }
.tl-dot.medium { background: var(--amber); box-shadow: 0 0 6px var(--amber-dim); }
.tl-dot.low { background: var(--text-3); }

.tl-content { flex: 1; }

.tl-title {
    font-size: 12px;
    color: var(--text-1);
}

.tl-date {
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-3);
}

/* ── Insight Panel ────────────────────────────────────────────────────── */
#insight-wrap {
    padding: 0 20px 16px;
}

#insight-wrap:empty {
    display: none;
}

.btn-insight {
    width: 100%;
    padding: 12px 20px;
    margin-top: 12px;
    background: linear-gradient(135deg, var(--cyan), #0097a7);
    color: var(--bg-0);
    border: none;
    border-radius: var(--radius-sm);
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 2px 12px rgba(0, 229, 255, 0.25);
}

.btn-insight:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 20px rgba(0, 229, 255, 0.4);
}

.insight-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 0;
    font-size: 12px;
    color: var(--text-2);
    font-family: var(--font-mono);
}

.insight-panel {
    margin-top: 12px;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
}

/* ── Verdict banner (1-line verdict above hero on research page) ──────── */
.verdict-banner {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 12px 18px;
    margin-bottom: 10px;
    border: 1px solid var(--border);
    border-left-width: 4px;
    border-radius: var(--radius);
    background: linear-gradient(90deg, var(--bg-2), var(--bg-1));
    font-family: var(--font-sans);
    font-size: 13px;
    color: var(--text-1);
}

.verdict-pair {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-brand);
    font-weight: 700;
    letter-spacing: 1px;
    font-size: 12px;
    text-transform: uppercase;
    flex-shrink: 0;
}

.verdict-sep {
    color: var(--text-3);
    font-weight: 400;
}

.verdict-dir,
.verdict-act {
    padding: 3px 10px;
    border-radius: 3px;
    border: 1px solid var(--border);
}

.verdict-reason {
    font-family: var(--font-sans);
    color: var(--text-2);
    line-height: 1.45;
    flex: 1;
}

/* Direction colors */
.verdict-banner.is-long  { border-left-color: var(--green); }
.verdict-banner.is-long  .verdict-dir { color: var(--green); border-color: var(--green-dim); background: var(--green-dim); }
.verdict-banner.is-short { border-left-color: var(--red); }
.verdict-banner.is-short .verdict-dir { color: var(--red); border-color: var(--red-dim); background: var(--red-dim); }
.verdict-banner.is-neutral { border-left-color: var(--amber); }
.verdict-banner.is-neutral .verdict-dir { color: var(--amber); border-color: var(--amber-dim); background: var(--amber-dim); }

/* Action chips */
.verdict-banner.is-act-trade    .verdict-act { color: var(--green); border-color: var(--green); background: var(--green-dim); }
.verdict-banner.is-act-watch    .verdict-act { color: var(--cyan);  border-color: var(--cyan-mid); background: var(--cyan-dim); }
.verdict-banner.is-act-research .verdict-act { color: var(--amber); border-color: var(--amber-dim); background: var(--amber-dim); }
.verdict-banner.is-act-skip     .verdict-act { color: var(--text-3); border-color: var(--border); background: var(--bg-2); }

.insight-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 14px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-1);
}

.insight-title {
    font-size: 10px;
    font-family: var(--font-brand);
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--cyan);
}

.insight-text {
    font-family: var(--font-sans);
    padding: 14px;
    font-size: 12.5px;
    line-height: 1.7;
    color: var(--text-1);
    white-space: pre-wrap;
    word-break: break-word;
}

.insight-levels {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1px;
    margin: 0 14px 14px;
    border: 1px solid var(--border);
    border-radius: 6px;
    overflow: hidden;
    background: var(--border);
}

.insight-level-item {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px;
    background: var(--bg-1);
}

.insight-level-label {
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-3);
}

.insight-level-value {
    font-size: 13px;
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--text-1);
    line-height: 1.3;
}

.insight-level-entry  .insight-level-label { color: var(--cyan); }
.insight-level-entry  .insight-level-value  { color: var(--cyan); }
.insight-level-target .insight-level-label  { color: #4ade80; }
.insight-level-target .insight-level-value  { color: #4ade80; }
.insight-level-stop   .insight-level-label  { color: #f87171; }
.insight-level-stop   .insight-level-value  { color: #f87171; }

.spinner {
    display: inline-block;
    width: 16px;
    height: 16px;
    border: 2px solid var(--border);
    border-top-color: var(--cyan);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* ── Toast Notification ──────────────────────────────────────────────── */
.toast-msg {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%) translateY(80px);
    background: var(--bg-2);
    color: var(--amber);
    border: 1px solid var(--amber-dim);
    padding: 12px 24px;
    border-radius: var(--radius);
    font-size: 13px;
    font-family: var(--font-mono);
    z-index: 9999;
    opacity: 0;
    transition: opacity 0.3s, transform 0.3s;
    pointer-events: none;
    max-width: 500px;
    text-align: center;
}

.toast-msg.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.settings-overlay {
    position: fixed;
    inset: 0;
    background: rgba(5, 8, 14, 0.72);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    z-index: 10000;
}

.settings-modal {
    width: min(760px, 100%);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(17,24,39,0.98), rgba(10,15,26,0.98));
    box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
    padding: 20px;
}

.settings-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 18px;
}

.settings-title {
    font-size: 16px;
    font-weight: 800;
    font-family: var(--font-brand);
    color: var(--text-0);
}

.settings-sub {
    font-family: var(--font-sans);
    margin-top: 4px;
    font-size: 12px;
    color: var(--text-2);
}

.settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.settings-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.settings-label {
    font-family: var(--font-sans);
    font-size: 11px;
    color: var(--text-1);
    text-transform: uppercase;
    letter-spacing: 0.6px;
}

.settings-input {
    width: 100%;
    background: var(--bg-0);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    color: var(--text-0);
    font-size: 13px;
    font-family: var(--font-mono);
    outline: none;
}

.settings-input:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 2px var(--cyan-dim);
}

.settings-hint {
    font-family: var(--font-sans);
    font-size: 11px;
    color: var(--text-3);
}

.settings-actions {
    margin-top: 18px;
    display: flex;
    justify-content: flex-end;
}

/* ── Buttons ───────────────────────────────────────────────────────────── */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: var(--radius-sm);
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 600;
    cursor: pointer;
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-2);
    transition: all var(--transition);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

.btn:hover { background: var(--bg-3); color: var(--text-0); border-color: var(--text-3); }

.btn-cyan {
    background: var(--cyan-dim);
    color: var(--cyan);
    border-color: var(--cyan-mid);
}

.btn-cyan:hover {
    background: var(--cyan);
    color: var(--bg-0);
}

.btn-send {
    background: var(--cyan);
    color: var(--bg-0);
    border: none;
    padding: 8px 16px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    border-radius: 20px;
    letter-spacing: 0.5px;
}

.btn-send:hover { opacity: 0.9; }

.btn-sm { padding: 4px 10px; font-size: 10px; }

.alert-btn {
    position: relative;
}

.alert-count {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: var(--red);
    color: var(--bg-0);
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

/* ── Empty / Welcome State ─────────────────────────────────────────────── */
.welcome {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    min-height: 100%;
    text-align: left;
    gap: 18px;
    padding: 24px 20px 40px;
}

.command-deck {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 460px);
    align-items: start;
    gap: 18px;
    padding: 20px 22px;
    border: 1px solid var(--border);
    border-radius: calc(var(--radius) + 2px);
    background:
        radial-gradient(circle at top left, rgba(0,229,255,0.12), transparent 28%),
        linear-gradient(180deg, rgba(17,24,39,0.98), rgba(9,14,24,0.96));
}

.command-copy {
    flex: 1;
    min-width: 0;
}

.command-side {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    width: 100%;
}

.command-kicker {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 1.4px;
    text-transform: uppercase;
    color: var(--cyan);
}

.command-title {
    margin-top: 8px;
    font-family: var(--font-brand);
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1.1;
    color: var(--text-0);
    max-width: 14ch;
}

.command-sub {
    margin-top: 10px;
    max-width: 560px;
    font-size: 13px;
    line-height: 1.65;
    color: var(--text-2);
}

.command-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    min-width: 0;
    width: 100%;
    padding: 10px 14px;
    border: 1px solid rgba(0, 229, 255, 0.14);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(8,12,20,0.86), rgba(8,12,20,0.58));
}

.command-brand-logo {
    width: min(180px, 100%);
    height: auto;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 0 18px rgba(0, 229, 255, 0.2));
}

.command-brand-note {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.5px;
    text-align: center;
    color: var(--text-3);
}

.command-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.welcome-context-grid,
.welcome-ops-grid,
.welcome-priority-grid {
    display: grid;
    gap: 18px;
}

.welcome-priority-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: start;
}

.welcome-context-grid {
    grid-template-columns: minmax(320px, 1.05fr) minmax(320px, 0.95fr);
}

.welcome-ops-grid {
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    align-items: start;
}

.welcome-support-block {
    margin-top: 4px;
}

.operator-review-panel {
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background:
        radial-gradient(circle at top right, rgba(0,229,255,0.06), transparent 26%),
        linear-gradient(180deg, rgba(17,24,39,0.95), rgba(10,15,26,0.95));
}

.operator-review-head {
    margin-bottom: 12px;
}

.operator-review-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.operator-review-card {
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(10,15,26,0.96), rgba(8,12,20,0.96));
}

.operator-review-kicker {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--text-3);
}

.operator-review-value {
    margin-top: 8px;
    font-family: var(--font-brand);
    font-size: 22px;
    font-weight: 800;
    color: var(--text-0);
}

.operator-review-note {
    margin-top: 8px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--text-2);
}

.operator-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.ops-disclosure {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(17,24,39,0.93), rgba(10,15,26,0.93));
    overflow: hidden;
}

.ops-disclosure > summary {
    list-style: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    cursor: pointer;
}

.ops-disclosure > summary::-webkit-details-marker {
    display: none;
}

.ops-disclosure > summary::after {
    content: '+';
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border);
    border-radius: 999px;
    color: var(--text-2);
    font-family: var(--font-mono);
    font-size: 14px;
}

.ops-disclosure[open] > summary::after {
    content: '−';
}

.ops-disclosure-kicker {
    display: block;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--text-3);
}

.ops-disclosure > summary strong {
    display: block;
    margin-top: 6px;
    font-size: 15px;
    color: var(--text-0);
}

.ops-disclosure-note {
    max-width: 320px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--text-2);
    text-align: right;
}

.ops-disclosure-body {
    padding: 0 18px 18px;
    display: grid;
    gap: 14px;
}

.focus-panel {
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(17,24,39,0.96), rgba(10,15,26,0.96));
    text-align: left;
}

.focus-head {
    margin-bottom: 12px;
}

.focus-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.focus-card {
    min-height: 112px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10,15,26,0.9);
}

.focus-label {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: var(--text-3);
}

.focus-text {
    margin-top: 10px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-1);
}

.focus-list {
    margin-top: 10px;
    display: grid;
    gap: 7px;
    font-size: 12px;
    line-height: 1.55;
    color: var(--text-2);
}

.best-panel {
    width: 100%;
    margin-top: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: calc(var(--radius) + 2px);
    background:
        radial-gradient(circle at top left, rgba(0,220,130,0.12), transparent 26%),
        radial-gradient(circle at top right, rgba(0,229,255,0.08), transparent 30%),
        linear-gradient(180deg, rgba(17,24,39,0.98), rgba(10,15,26,0.96));
    text-align: left;
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.22);
}

.best-head {
    margin-bottom: 12px;
}

.best-meta {
    margin-bottom: 14px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    color: var(--text-3);
}

.best-summary {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.best-summary span {
    padding: 5px 9px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(10,15,26,0.9);
    color: var(--text-2);
    font-size: 11px;
}

.best-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}

.us-watch-panel {
    border-color: rgba(0, 229, 255, 0.25);
    background:
        radial-gradient(circle at top left, rgba(0,229,255,0.12), transparent 24%),
        radial-gradient(circle at top right, rgba(167,139,250,0.08), transparent 28%),
        linear-gradient(180deg, rgba(17,24,39,0.98), rgba(10,15,26,0.96));
}

.us-watch-head {
    margin-bottom: 12px;
}

.us-watch-card {
    min-height: 178px;
}

.us-watch-card .best-note {
    margin-top: 10px;
    color: var(--text-1);
    line-height: 1.6;
}

.us-watch-card-meta {
    margin-top: 10px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    color: var(--text-2);
}

.us-score-pill {
    min-width: 78px;
    padding: 7px 8px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-2);
    text-align: right;
    font-family: var(--font-mono);
}

.us-score-pill span,
.us-score-pill em {
    display: block;
    font-size: 9px;
    font-style: normal;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    color: var(--text-3);
}

.us-score-pill strong {
    display: block;
    margin: 2px 0;
    font-size: 22px;
    line-height: 1;
    color: var(--text-0);
}

.us-score-pill.is-enriched {
    border-color: rgba(0, 220, 130, 0.35);
    background: rgba(0, 220, 130, 0.08);
}

.us-score-pill.is-early {
    border-color: rgba(255, 181, 69, 0.35);
    background: rgba(255, 181, 69, 0.08);
}

.hot-stocks-panel {
    width: 100%;
    margin: 14px 0;
    padding: 14px;
    border: 1px solid rgba(255, 181, 69, 0.38);
    border-radius: calc(var(--radius) + 1px);
    background:
        linear-gradient(180deg, rgba(36, 25, 9, 0.86), rgba(12, 16, 24, 0.96));
    box-shadow: inset 0 0 0 1px rgba(255, 181, 69, 0.06);
}

.hot-stocks-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.hot-stocks-count {
    flex: 0 0 auto;
    padding: 5px 9px;
    border: 1px solid rgba(255, 181, 69, 0.35);
    border-radius: 999px;
    background: rgba(255, 181, 69, 0.1);
    color: var(--amber);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.hot-stocks-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px;
}

.hot-stock-card {
    display: block;
    width: 100%;
    padding: 10px;
    border: 1px solid rgba(255, 181, 69, 0.24);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.82);
    color: inherit;
    text-align: left;
    cursor: pointer;
}

.hot-stock-card:hover {
    border-color: rgba(255, 181, 69, 0.52);
    background: rgba(255, 181, 69, 0.08);
}

.hot-stock-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.hot-stock-ticker {
    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 800;
    color: var(--text-0);
}

.hot-stock-meta {
    margin-top: 5px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    color: var(--text-2);
}

.hot-stock-card-note {
    margin-top: 6px;
    font-size: 11px;
    line-height: 1.45;
    color: var(--amber);
}

.best-card {
    border: 1px solid var(--border);
    border-radius: calc(var(--radius) + 1px);
    background: linear-gradient(180deg, rgba(10,15,26,0.96), rgba(8,12,20,0.96));
    padding: 14px;
    cursor: pointer;
    transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}

.best-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
}

.best-card.is-ready {
    border-color: var(--green);
    box-shadow: inset 0 0 0 1px rgba(0, 220, 130, 0.08);
}

.best-card.is-prep {
    border-color: var(--cyan-mid);
}

.best-card.is-caution {
    border-color: var(--amber);
}

.best-card.is-watch {
    border-color: var(--border);
}

.best-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.best-rank {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text-3);
}

.best-ticker {
    margin-top: 4px;
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    color: var(--text-0);
    letter-spacing: 0.7px;
}

.best-name {
    margin-top: 4px;
    min-height: 28px;
    font-size: 12px;
    color: var(--text-2);
}

.best-live-line {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin-top: 7px;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-2);
}

.best-live-line span {
    font-size: 9px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--text-3);
}

.best-live-line strong {
    color: var(--text-0);
    font-weight: 700;
}

.best-live-line em {
    font-style: normal;
    color: var(--text-2);
}

.best-score-wrap {
    min-width: 64px;
    text-align: right;
}

.best-grade {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    padding: 4px 9px;
    border-radius: 999px;
    border: 1px solid var(--border);
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    background: var(--bg-2);
    color: var(--text-2);
}

.best-grade.g-a-plus {
    color: #0b1a14;
    background: var(--green);
    border-color: var(--green);
}

.best-grade.g-a {
    color: var(--green);
    background: var(--green-dim);
    border-color: var(--green);
}

.best-grade.g-b {
    color: var(--cyan);
    background: var(--cyan-dim);
    border-color: var(--cyan-mid);
}

.best-grade.g-c {
    color: var(--text-2);
}

.best-score {
    margin-top: 10px;
    font-family: var(--font-mono);
    font-size: 26px;
    font-weight: 700;
    color: var(--cyan);
    line-height: 1;
}

.best-score-sub {
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--amber);
}

.best-chip-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.best-chip {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-2);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.best-chip.is-ready {
    color: var(--green);
    border-color: var(--green);
    background: var(--green-dim);
}

.best-chip.is-prep {
    color: var(--cyan);
    border-color: var(--cyan-mid);
    background: var(--cyan-dim);
}

.best-chip.is-caution {
    color: var(--amber);
    border-color: var(--amber);
    background: var(--amber-dim);
}

.best-chip.is-watch {
    color: var(--text-2);
}

.best-chip.is-long {
    color: var(--green);
    border-color: var(--green-dim);
    background: var(--green-dim);
}

.best-chip.is-short {
    color: var(--red);
    border-color: var(--red-dim);
    background: var(--red-dim);
}

.best-chip.is-mixed {
    color: var(--amber);
    border-color: var(--amber-dim);
    background: var(--amber-dim);
}

.hot-stock-badge {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 2px 6px;
    border-radius: 999px;
    border: 1px solid rgba(255, 181, 69, 0.42);
    background: rgba(255, 181, 69, 0.12);
    color: var(--amber);
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.6px;
    line-height: 1.4;
    text-transform: uppercase;
    white-space: nowrap;
}

.hot-stock-note {
    margin-top: 8px;
    padding: 7px 9px;
    border: 1px solid rgba(255, 181, 69, 0.25);
    border-radius: var(--radius-sm);
    background: rgba(255, 181, 69, 0.08);
    color: var(--amber);
    font-size: 11px;
    line-height: 1.45;
}

.best-why {
    margin-top: 12px;
    min-height: 54px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--text-1);
}

.best-checks {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}

.best-check {
    padding: 8px 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(17,24,39,0.9);
    font-size: 11px;
    color: var(--text-2);
}

.best-check.is-good {
    color: var(--green);
    border-color: var(--green-dim);
    background: rgba(0, 220, 130, 0.08);
}

.best-check.is-warn {
    color: var(--amber);
    border-color: var(--amber-dim);
    background: rgba(255, 181, 69, 0.08);
}

.best-check.is-muted {
    color: var(--text-3);
}

.best-next {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    font-size: 12px;
    line-height: 1.55;
    color: var(--text-1);
}

.best-next span {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--text-3);
}

.best-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.best-empty {
    padding: 18px 10px 8px;
}

.best-empty-title {
    font-size: 16px;
    font-weight: 800;
    font-family: var(--font-brand);
    color: var(--text-0);
}

.best-empty-sub {
    margin-top: 8px;
    max-width: 680px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--text-2);
}

.scanner-panel {
    width: 100%;
    margin-top: 0;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background:
        radial-gradient(circle at top right, rgba(0,229,255,0.08), transparent 28%),
        linear-gradient(180deg, rgba(17,24,39,0.95), rgba(10,15,26,0.95));
    text-align: left;
}

.lane-strip {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 16px;
}

.lane-strip-card {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background:
        radial-gradient(circle at top right, rgba(255,255,255,0.04), transparent 28%),
        linear-gradient(180deg, rgba(17,24,39,0.95), rgba(10,15,26,0.95));
}

.lane-strip-card--uk {
    border-color: rgba(0, 229, 255, 0.22);
}

.lane-strip-card--us {
    border-color: rgba(245, 158, 11, 0.28);
    box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.06);
}

.lane-strip-card--mixed {
    border-color: rgba(245, 158, 11, 0.28);
    box-shadow: inset 0 0 0 1px rgba(245, 158, 11, 0.06);
}

.lane-strip-card--warn {
    border-color: rgba(239, 68, 68, 0.34);
    box-shadow: inset 0 0 0 1px rgba(239, 68, 68, 0.08);
}

.lane-strip-kicker {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: var(--text-3);
}

.lane-strip-title {
    margin-top: 6px;
    font-family: var(--font-brand);
    font-size: 20px;
    font-weight: 800;
    color: var(--text-0);
}

.lane-strip-metrics {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

.lane-strip-metrics span {
    padding: 6px 9px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.78);
    font-size: 11px;
    color: var(--text-1);
}

.lane-strip-note {
    margin-top: 10px;
    font-size: 12px;
    line-height: 1.6;
    color: var(--text-2);
}

.lane-strip-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-top: 12px;
}

.control-room-preflight {
    display: grid;
    gap: 8px;
    margin-bottom: 14px;
}

.control-room-preflight-row {
    display: grid;
    grid-template-columns: minmax(0, 180px) 90px minmax(0, 1fr);
    gap: 10px;
    align-items: center;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: rgba(10, 15, 26, 0.78);
}

.control-room-preflight-row span,
.control-room-preflight-row strong,
.control-room-preflight-row em {
    font-size: 12px;
}

.control-room-preflight-row em {
    color: var(--text-2);
    font-style: normal;
}

.us-research-panel {
    border-color: rgba(245, 158, 11, 0.28);
    background:
        radial-gradient(circle at top right, rgba(245, 158, 11, 0.10), transparent 28%),
        linear-gradient(180deg, rgba(17,24,39,0.95), rgba(10,15,26,0.95));
}

.us-research-panel .scanner-kicker {
    color: var(--amber);
}

.alerts-panel {
    margin-top: 0;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg-1);
    padding: 16px;
}

.alerts-panel .alert-list {
    max-height: 280px;
    overflow-y: auto;
}

.assistant-panel {
    min-width: 0;
    grid-column: 1 / -1;
}

.assistant-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: -4px 0 14px;
}

.assistant-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.assistant-section {
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(17,24,39,0.88), rgba(10,15,26,0.88));
    max-height: 280px;
    overflow-y: auto;
    scrollbar-width: thin;
}

.assistant-brief {
    white-space: pre-wrap;
    line-height: 1.6;
}

.assistant-settings-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 12px;
}

.assistant-control {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: 11px;
    color: var(--text-2);
}

.assistant-control span {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.7px;
    text-transform: uppercase;
    color: var(--text-3);
}

.assistant-control input,
.assistant-control select {
    width: 100%;
    min-width: 0;
    background: var(--bg-2);
    color: var(--text-1);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 8px 10px;
    font-size: 12px;
}

.assistant-control input[type="checkbox"] {
    width: 16px;
    height: 16px;
    padding: 0;
}

.assistant-section.assistant-section--controls {
    max-height: 420px;
}

.assistant-control-actions {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.assistant-row + .assistant-row {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.assistant-row-top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
}

.assistant-ticker,
.assistant-score,
.assistant-state {
    font-family: var(--font-mono);
}

.assistant-ticker {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.assistant-score {
    font-size: 11px;
    color: var(--cyan);
}

.assistant-state.is-good {
    color: var(--green);
}

.assistant-state.is-muted {
    color: var(--text-3);
}

.assistant-state.is-warn {
    color: var(--amber);
}

.assistant-meta {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-3);
}

.assistant-note {
    margin-top: 8px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--text-1);
}

.control-room-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}

.control-room-card {
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(17,24,39,0.88), rgba(10,15,26,0.88));
}

.control-room-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.control-room-lists {
    margin-top: 12px;
    display: grid;
    gap: 8px;
}

.control-room-lists div {
    display: grid;
    gap: 4px;
}

.control-room-lists span {
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-family: var(--font-mono);
}

.control-room-lists strong {
    font-size: 11px;
    color: var(--text-1);
    line-height: 1.5;
    font-weight: 500;
}

.simulation-shell {
    display: grid;
    gap: 18px;
}

.simulation-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.simulation-breakdown-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.simulation-breakdown-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(17,24,39,0.92), rgba(10,15,26,0.92));
    padding: 12px;
}

.simulation-breakdown-row + .simulation-breakdown-row {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--border);
}

.simulation-breakdown-head,
.simulation-breakdown-foot {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.simulation-breakdown-head strong {
    color: var(--text-0);
    font-size: 12px;
}

.simulation-breakdown-head span,
.simulation-breakdown-foot span {
    font-size: 11px;
    color: var(--text-2);
    font-family: var(--font-mono);
}

.simulation-breakdown-meta {
    margin-top: 6px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.simulation-breakdown-meta span {
    font-size: 10px;
    color: var(--text-2);
    font-family: var(--font-mono);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 4px 8px;
    background: var(--bg-2);
}

.simulation-filters {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.simulation-filter {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.simulation-filter span {
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-family: var(--font-mono);
}

.simulation-filter select,
.simulation-filter strong {
    min-height: 36px;
    border-radius: var(--radius-sm);
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-0);
    padding: 8px 10px;
    font-family: var(--font-mono);
    font-size: 12px;
}

.simulation-filter strong {
    display: flex;
    align-items: center;
}

.simulation-filter--meta strong {
    color: var(--cyan);
}

.simulation-timeline-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.simulation-timeline-card {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(17, 24, 39, 0.96), rgba(10, 15, 26, 0.96));
    padding: 12px;
    display: grid;
    gap: 10px;
}

.simulation-timeline-head,
.simulation-timeline-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.simulation-timeline-head strong {
    color: var(--text-0);
    font-size: 12px;
}

.simulation-timeline-head span,
.simulation-timeline-foot span {
    font-size: 11px;
    color: var(--text-2);
    font-family: var(--font-mono);
}

.simulation-timeline-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.simulation-timeline-stats span {
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-2);
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--bg-2);
}

.simulation-hero .scanner-head {
    margin-bottom: 14px;
}

.simulation-table-wrap {
    overflow-x: auto;
}

.simulation-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.simulation-table th,
.simulation-table td {
    padding: 12px 10px;
    border-bottom: 1px solid var(--border);
    text-align: left;
    vertical-align: top;
}

.simulation-table tbody tr {
    cursor: pointer;
}

.simulation-table tbody tr:hover {
    background: rgba(15, 23, 42, 0.55);
}

.simulation-ticker {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-0);
}

.simulation-meta {
    font-size: 11px;
    color: var(--text-3);
}

.simulation-note {
    margin-top: 4px;
    color: var(--text-1);
    line-height: 1.5;
}

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

.scanner-kicker {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--cyan);
}

.scanner-title {
    margin-top: 6px;
    font-size: 18px;
    font-weight: 800;
    font-family: var(--font-brand);
    color: var(--text-0);
}

.scanner-sub {
    font-family: var(--font-sans);
    margin-top: 6px;
    font-size: 12px;
    color: var(--text-2);
}

.autopilot-run-picker {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    gap: 14px;
    margin: 0 0 16px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(17,24,39,0.88), rgba(10,15,26,0.88));
}

.autopilot-run-control {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.autopilot-run-select {
    width: 100%;
    min-width: 0;
    background: var(--bg-2);
    color: var(--text-1);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 10px 12px;
    font-size: 12px;
}

.autopilot-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.autopilot-metric {
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(17,24,39,0.94), rgba(10,15,26,0.94));
}

.autopilot-metric.is-failure {
    border-color: var(--red-dim);
    box-shadow: inset 0 0 0 1px rgba(255, 77, 106, 0.08);
}

.autopilot-metric-label {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    color: var(--text-3);
}

.autopilot-metric-value {
    margin-top: 8px;
    font-family: var(--font-mono);
    font-size: 24px;
    font-weight: 700;
    color: var(--text-0);
}

.autopilot-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(290px, 0.85fr);
    gap: 14px;
    align-items: start;
}

.autopilot-main,
.autopilot-side {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.autopilot-section {
    margin: 0;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: linear-gradient(180deg, rgba(17,24,39,0.94), rgba(10,15,26,0.94));
}

.autopilot-section-primary {
    background:
        radial-gradient(circle at top right, rgba(0,229,255,0.07), transparent 34%),
        linear-gradient(180deg, rgba(17,24,39,0.96), rgba(10,15,26,0.96));
}

.autopilot-failures {
    border-color: var(--red-dim);
}

.autopilot-section-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.autopilot-log-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
}

.autopilot-log-row {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: rgba(10,15,26,0.92);
    padding: 12px;
    min-height: 138px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

@media (max-width: 1320px) {
    .lane-strip {
        grid-template-columns: 1fr;
    }

    .assistant-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .autopilot-layout {
        grid-template-columns: 1fr;
    }

    .autopilot-run-picker {
        grid-template-columns: 1fr;
    }

    .autopilot-run-control {
        justify-content: stretch;
        width: 100%;
    }

    .autopilot-section-head {
        flex-direction: column;
        align-items: flex-start;
    }
}

.autopilot-ticker {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    color: var(--text-0);
}

.autopilot-score {
    font-family: var(--font-mono);
    font-size: 16px;
    font-weight: 700;
    color: var(--cyan);
}

.autopilot-reason {
    font-size: 12px;
    line-height: 1.55;
    color: var(--text-1);
}

.scanner-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    font-size: 11px;
    color: var(--text-2);
}

.scanner-summary span,
.scanner-tag {
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--bg-2);
}

.scanner-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
}

.scanner-card {
    appearance: none;
    border: 1px solid var(--border);
    background: linear-gradient(180deg, rgba(17,24,39,0.94), rgba(10,15,26,0.94));
    border-radius: var(--radius);
    padding: 14px;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform var(--transition), border-color var(--transition), box-shadow var(--transition);
}

.scanner-card:hover {
    transform: translateY(-2px);
    border-color: var(--cyan-mid);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.25);
}

.scanner-card.is-actionable { border-color: var(--green-dim); }
.scanner-card.is-watch { border-color: var(--amber-dim); }
.scanner-card.is-research { border-color: var(--border); }

.scanner-card-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.scanner-rankno {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.scanner-ticker {
    margin-top: 4px;
    font-family: var(--font-mono);
    font-size: 15px;
    font-weight: 700;
    color: var(--text-0);
}

.scanner-score {
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    color: var(--cyan);
}

.scanner-score-wrap {
    text-align: right;
}

.scanner-score-sub {
    margin-top: 4px;
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--amber);
}

.swing-score-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
}

.swing-score-sub {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--amber);
}

.scanner-name {
    font-family: var(--font-sans);
    margin-top: 10px;
    font-size: 12px;
    color: var(--text-2);
    min-height: 32px;
}

.scanner-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.scanner-tag {
    font-size: 10px;
    color: var(--text-2);
}

.scanner-tag.is-long {
    color: var(--green);
    border-color: var(--green-dim);
    background: var(--green-dim);
}

.scanner-tag.is-short {
    color: var(--red);
    border-color: var(--red-dim);
    background: var(--red-dim);
}

.scanner-tag.is-mixed {
    color: var(--amber);
    border-color: var(--amber-dim);
    background: var(--amber-dim);
}

.scanner-note {
    font-family: var(--font-sans);
    margin-top: 12px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--text-1);
}

.best-data-badge,
.swing-data-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    margin-top: 8px;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--border);
    font-family: var(--font-mono);
    font-size: 10px;
    line-height: 1.2;
    white-space: nowrap;
}

.best-data-badge.is-live,
.swing-data-badge.is-live {
    background: rgba(42, 157, 79, 0.12);
    border-color: rgba(42, 157, 79, 0.32);
    color: #8ee3a0;
}

.best-data-badge.is-stale,
.swing-data-badge.is-stale {
    background: rgba(230, 126, 34, 0.12);
    border-color: rgba(230, 126, 34, 0.32);
    color: #ffbf73;
}

.best-data-badge.is-cached,
.swing-data-badge.is-cached {
    background: rgba(148, 163, 184, 0.10);
    border-color: rgba(148, 163, 184, 0.24);
    color: var(--text-2);
}

/* ── Swing Setups Panel ────────────────────────────────────────────────── */
.swing-panel {
    width: min(1200px, 100%);
    margin-top: 28px;
    padding: 18px 20px 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background:
        radial-gradient(circle at top left, rgba(0,229,255,0.10), transparent 32%),
        linear-gradient(180deg, rgba(17,24,39,0.96), rgba(10,15,26,0.96));
    text-align: left;
}

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

.swing-kicker {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--cyan);
}

.swing-title {
    margin-top: 6px;
    font-size: 20px;
    font-weight: 700;
    color: var(--text-0);
}

.swing-meta {
    margin-top: 4px;
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.swing-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 8px;
}

.swing-actions-row {
    display: flex;
    gap: 8px;
    align-items: center;
}

.swing-filter-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-2);
    color: var(--text-2);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition), color var(--transition);
}

.swing-filter-btn:hover {
    border-color: var(--green-dim);
    color: var(--green);
}

.swing-filter-btn.is-on {
    background: var(--green-dim);
    color: var(--green);
    border-color: var(--green);
}

.swing-filter-count {
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--bg-0);
    color: var(--text-1);
    font-size: 10px;
    font-weight: 700;
}

.swing-filter-btn.is-on .swing-filter-count {
    background: var(--green);
    color: var(--bg-0);
}

.swing-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    justify-content: flex-end;
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-2);
}

.swing-summary span {
    padding: 3px 8px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: var(--bg-2);
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

.swing-summary strong {
    color: var(--cyan);
    margin-right: 4px;
}

.swing-empty {
    padding: 18px;
    border: 1px dashed var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-3);
    font-size: 12px;
    background: var(--bg-1);
    line-height: 1.55;
}

.swing-empty-title {
    color: var(--cyan);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.swing-empty-sub {
    color: var(--text-2);
    font-size: 12px;
}

.swing-table-wrap {
    overflow-x: auto;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-1);
    scrollbar-gutter: stable;
}

.swing-table-wrap::-webkit-scrollbar {
    height: 10px;
}
.swing-table-wrap::-webkit-scrollbar-thumb {
    background: var(--cyan-dim);
    border-radius: 5px;
}
.swing-table-wrap::-webkit-scrollbar-thumb:hover {
    background: var(--cyan-mid);
}
.swing-table-wrap::-webkit-scrollbar-track {
    background: var(--bg-2);
}

.swing-footnote {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.4px;
    color: var(--text-3);
}

.swing-table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--font-mono);
    font-size: 11.5px;
    min-width: 1120px;
    table-layout: fixed;
}

.swing-table col.c-rank    { width: 36px; }
.swing-table col.c-grade   { width: 52px; }
.swing-table col.c-ticker  { width: 70px; }
.swing-table col.c-bias    { width: 58px; }
.swing-table col.c-score   { width: 50px; }
.swing-table col.c-price   { width: 68px; }
.swing-table col.c-chg     { width: 58px; }
.swing-table col.c-vol     { width: 48px; }
.swing-table col.c-rsi     { width: 44px; }
.swing-table col.c-high    { width: 64px; }
.swing-table col.c-rr      { width: 44px; }
.swing-table col.c-signals { width: 190px; }
.swing-table col.c-read    { width: auto; }
.swing-table col.c-ext     { width: 44px; }

.swing-table thead th {
    position: sticky;
    top: 0;
    background: var(--bg-2);
    color: var(--text-3);
    font-weight: 600;
    font-size: 10px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    text-align: left;
    padding: 8px 10px;
    border-bottom: 1px solid var(--border);
    white-space: nowrap;
}

.swing-table thead th.num {
    text-align: right;
}

.swing-table td {
    padding: 9px 10px;
    border-bottom: 1px solid var(--border);
    color: var(--text-1);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.swing-table td.num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.swing-table tbody tr {
    cursor: pointer;
    transition: background var(--transition), border-color var(--transition);
}

.swing-table tbody tr:hover {
    background: var(--bg-3);
}

.swing-table tbody tr:last-child td {
    border-bottom: none;
}

.swing-rank {
    color: var(--text-3);
    font-size: 10px;
    width: 38px;
}

.swing-ticker {
    font-weight: 700;
    color: var(--text-0);
    letter-spacing: 0.6px;
}

.swing-score {
    color: var(--cyan);
    font-weight: 700;
    font-size: 13px;
}

.swing-bias {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 3px;
    font-size: 10px;
    letter-spacing: 0.6px;
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-2);
}

.swing-bias.is-long {
    color: var(--green);
    border-color: var(--green-dim);
    background: var(--green-dim);
}

.swing-bias.is-short {
    color: var(--red);
    border-color: var(--red-dim);
    background: var(--red-dim);
}

.swing-bias.is-mixed {
    color: var(--amber);
    border-color: var(--amber-dim);
    background: var(--amber-dim);
}

.swing-table td.up   { color: var(--green); }
.swing-table td.down { color: var(--red); }

.swing-signals {
    white-space: normal;
    overflow: hidden;
}

.swing-signals-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    max-width: 100%;
}

.swing-chip {
    display: inline-block;
    padding: 2px 6px;
    margin: 1px 3px 1px 0;
    border: 1px solid var(--cyan-dim);
    color: var(--cyan);
    background: rgba(0,229,255,0.06);
    border-radius: 3px;
    font-size: 9.5px;
    letter-spacing: 0.6px;
}

.swing-chip.muted {
    color: var(--text-3);
    border-color: var(--border);
    background: var(--bg-2);
}

.swing-read {
    white-space: normal;
    word-break: break-word;
    overflow: hidden;
    font-family: var(--font-sans);
    font-size: 11.5px;
    color: var(--text-2);
    line-height: 1.45;
}

.swing-ext {
    text-align: center;
}

.swing-link-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 22px;
    border: 1px solid var(--cyan-mid);
    border-radius: 3px;
    color: var(--cyan);
    background: var(--cyan-dim);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
    transition: background var(--transition), color var(--transition), transform var(--transition);
}

.swing-link-btn:hover {
    background: var(--cyan);
    color: var(--bg-0);
    transform: translateY(-1px);
}

/* ── Swing Grade ───────────────────────────────────────────────────────── */
.swing-grade {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    padding: 3px 7px;
    border-radius: 3px;
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    border: 1px solid var(--border);
    background: var(--bg-2);
    color: var(--text-2);
}

.swing-grade.g-a-plus {
    color: #0b1a14;
    background: var(--green);
    border-color: var(--green);
    box-shadow: 0 0 14px var(--green-dim);
}

.swing-grade.g-a {
    color: var(--green);
    background: var(--green-dim);
    border-color: var(--green);
}

.swing-grade.g-b {
    color: var(--cyan);
    background: var(--cyan-dim);
    border-color: var(--cyan-mid);
}

.swing-grade.g-c {
    color: var(--text-3);
    background: var(--bg-2);
    border-color: var(--border);
}

/* Row-level highlight so A+ setups visually pop in the first glance */
.swing-row.is-grade-a-plus {
    background: linear-gradient(90deg, rgba(0,220,130,0.10), transparent 60%);
}
.swing-row.is-grade-a-plus:hover {
    background: linear-gradient(90deg, rgba(0,220,130,0.18), var(--bg-3));
}
.swing-row.is-grade-a:hover   { background: var(--bg-3); }
.swing-row.is-grade-b:hover   { background: var(--bg-3); }
.swing-row.is-grade-c         { opacity: 0.78; }

/* Summary chip tints for the grade counters in the header */
.swing-summary .sum-chip.is-a-plus {
    color: var(--green);
    border-color: var(--green);
    background: var(--green-dim);
}
.swing-summary .sum-chip.is-a {
    color: var(--green);
    border-color: var(--green-dim);
}

.alerts-modal {
    width: min(760px, calc(100vw - 32px));
    max-height: 80vh;
    overflow-y: auto;
}

.alert-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.alert-row {
    border: 1px solid var(--border);
    border-left: 3px solid var(--border);
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 12px 12px 12px 14px;
    transition: border-color var(--transition), background var(--transition);
}

.alert-row:hover {
    background: var(--bg-3);
    border-color: var(--cyan-dim);
    border-left-color: var(--cyan);
}

.alert-row.severity-high {
    border-left-color: var(--red);
}

.alert-row.severity-medium {
    border-left-color: var(--amber);
}

.alert-row .trade-tag.is-short {
    background: var(--red-dim);
    color: var(--red);
    border-color: var(--red-dim);
}

.alert-row .trade-tag.is-mixed {
    background: var(--amber-dim);
    color: var(--amber);
    border-color: var(--amber-dim);
}

.alert-message {
    margin-top: 4px;
    font-size: 11px;
    line-height: 1.6;
    color: var(--text-2);
}

.alert-title {
    margin-top: 8px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
    line-height: 1.4;
}

/* ── Utilities ─────────────────────────────────────────────────────────── */
.evidence-empty,
.evidence-note,
.evidence-subnote {
    font-family: var(--font-sans);
    font-size: 12px;
    line-height: 1.6;
}

.quality-summary,
.quality-meta {
    font-family: var(--font-sans);
    font-size: 12px;
    line-height: 1.6;
}

.quality-summary {
    color: var(--text-1);
}

.quality-meta {
    color: var(--text-2);
    margin-top: 4px;
}

.quality-pill,
.quality-component-pill {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 5px 9px;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
}

.quality-pill.green,
.quality-component-pill.green {
    background: var(--green-dim);
    color: var(--green);
    border-color: var(--green);
}

.quality-pill.amber,
.quality-component-pill.amber {
    background: var(--amber-dim);
    color: var(--amber);
    border-color: var(--amber);
}

.quality-pill.red,
.quality-component-pill.red {
    background: var(--red-dim);
    color: var(--red);
    border-color: var(--red);
}

.quality-warning-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.quality-warning {
    font-size: 11px;
    color: var(--amber);
    background: var(--amber-dim);
    border: 1px solid rgba(255, 181, 69, 0.28);
    border-radius: 999px;
    padding: 5px 10px;
}

.quality-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.quality-component {
    border: 1px solid var(--border);
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 12px;
}

.quality-component-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

.quality-component-title {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-0);
}

.quality-component-note {
    margin-top: 8px;
    font-size: 12px;
    color: var(--text-2);
    line-height: 1.6;
}

.quality-component-meta {
    margin-top: 8px;
    font-size: 11px;
    color: var(--text-3);
    font-family: var(--font-mono);
}

.evidence-note {
    color: var(--text-1);
}

.evidence-subnote {
    color: var(--text-3);
    margin-top: 4px;
}

.evidence-pill {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    padding: 5px 9px;
    border-radius: var(--radius-sm);
    border: 1px solid transparent;
}

.evidence-pill.green {
    background: var(--green-dim);
    color: var(--green);
    border-color: var(--green);
}

.evidence-pill.amber {
    background: var(--amber-dim);
    color: var(--amber);
    border-color: var(--amber);
}

.evidence-pill.red {
    background: var(--red-dim);
    color: var(--red);
    border-color: var(--red);
}

.evidence-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 14px;
}

.evidence-stat {
    border: 1px solid var(--border);
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 12px;
}

.guide-block {
    font-family: var(--font-mono);
    margin-top: 12px;
    margin-bottom: 12px;
    border: 1px solid rgba(0, 229, 255, 0.18);
    background: linear-gradient(180deg, rgba(0, 229, 255, 0.06), rgba(17, 24, 39, 0.75));
    border-radius: var(--radius-sm);
    padding: 12px;
}

.guide-title {
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--cyan);
}

.guide-lines {
    margin-top: 8px;
    display: grid;
    gap: 5px;
}

.guide-line {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.55;
}

.help-badge {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
    margin-left: 6px;
    outline: none;
}

.help-badge-dot {
    width: 15px;
    height: 15px;
    border-radius: 999px;
    border: 1px solid var(--cyan-mid);
    background: rgba(0, 229, 255, 0.08);
    color: var(--cyan);
    font-size: 10px;
    font-family: var(--font-mono);
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.help-tooltip {
    position: absolute;
    left: 50%;
    bottom: calc(100% + 10px);
    transform: translateX(-50%) translateY(6px);
    width: min(260px, 70vw);
    padding: 10px 11px;
    border-radius: 10px;
    border: 1px solid var(--border);
    background: rgba(7, 11, 18, 0.98);
    color: var(--text-1);
    font-size: 11px;
    line-height: 1.5;
    text-transform: none;
    letter-spacing: 0;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.42);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s ease;
    z-index: 20;
}

.help-badge:hover .help-tooltip,
.help-badge:focus .help-tooltip,
.help-badge:focus-within .help-tooltip {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}

.evidence-label {
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

.evidence-value {
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 20px;
    font-weight: 700;
    color: var(--text-0);
}

.evidence-hint {
    margin-top: 6px;
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.evidence-footer {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 14px;
    font-size: 12px;
    color: var(--text-2);
}

.evidence-actions {
    margin-top: 12px;
}

.evidence-history {
    margin-top: 14px;
    border-top: 1px solid var(--border);
    padding-top: 10px;
}

.evidence-row {
    display: grid;
    grid-template-columns: 90px 1fr 56px;
    gap: 10px;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid var(--border);
}

.evidence-row:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.evidence-date,
.evidence-returns {
    font-family: var(--font-mono);
    font-size: 11px;
}

.evidence-returns {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.evidence-result {
    justify-self: end;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.evidence-result.hit {
    color: var(--green);
}

.evidence-result.miss {
    color: var(--red);
}

.trade-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.trade-summary-stat {
    border: 1px solid var(--border);
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 12px;
}

.trade-summary-label {
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 1px;
    display: flex;
    align-items: center;
    gap: 4px;
    flex-wrap: wrap;
}

.trade-summary-value {
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 18px;
    font-weight: 700;
    color: var(--text-0);
}

.trade-compose {
    margin-top: 14px;
    border: 1px solid var(--border);
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 14px;
}

.trade-compose-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.trade-compose-title {
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.trade-compose-sub {
    font-family: var(--font-sans);
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-2);
}

.trade-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.trade-note-input {
    width: 100%;
    margin-top: 12px;
    min-height: 72px;
    resize: vertical;
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-1);
    padding: 10px 12px;
    font-size: 12px;
    font-family: var(--font-sans);
    outline: none;
}

.portfolio-guardrails {
    margin-top: 14px;
    border: 1px solid var(--border);
    background: linear-gradient(180deg, rgba(17,24,39,0.94), rgba(10,15,26,0.94));
    border-radius: var(--radius-sm);
    padding: 14px;
}

.portfolio-guardrails-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 12px;
}

.guardrail-pill {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    padding: 4px 8px;
    border-radius: 999px;
    border: 1px solid var(--border);
}

.guardrail-pill.is-ok {
    background: var(--green-dim);
    color: var(--green);
    border-color: var(--green-dim);
}

.guardrail-pill.is-capped {
    background: var(--amber-dim);
    color: var(--amber);
    border-color: var(--amber-dim);
}

.guardrail-pill.is-blocked {
    background: var(--red-dim);
    color: var(--red);
    border-color: var(--red-dim);
}

.guardrail-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.guardrail-meta {
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-2);
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.guardrail-meta span {
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.guardrail-meta strong {
    font-size: 12px;
    color: var(--text-0);
    font-weight: 600;
}

.trade-note-input:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 2px var(--cyan-dim);
}

.trade-note-input::placeholder {
    color: var(--text-3);
}

.trade-lists {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 14px;
}

.trade-list-title {
    margin-bottom: 8px;
    font-size: 11px;
    font-family: var(--font-mono);
    letter-spacing: 0.8px;
    text-transform: uppercase;
    color: var(--text-2);
}

.trade-row {
    border: 1px solid var(--border);
    background: var(--bg-2);
    border-radius: var(--radius-sm);
    padding: 12px;
    margin-bottom: 10px;
}

.trade-row:last-child {
    margin-bottom: 0;
}

.trade-row-head {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.trade-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.trade-tag {
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 2px 7px;
    border-radius: 999px;
    border: 1px solid transparent;
}

.trade-tag.long {
    background: var(--green-dim);
    color: var(--green);
    border-color: var(--green-dim);
}

.trade-tag.short,
.trade-tag.is-short {
    background: var(--red-dim);
    color: var(--red);
    border-color: var(--red-dim);
}

.trade-tag.is-mixed {
    background: var(--amber-dim);
    color: var(--amber);
    border-color: var(--amber-dim);
}

.trade-tag.open {
    background: var(--cyan-dim);
    color: var(--cyan);
    border-color: var(--cyan-dim);
}

.trade-tag.closed,
.trade-tag.neutral {
    background: var(--bg-3);
    color: var(--text-2);
    border-color: var(--border);
}

.trade-return {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
}

.trade-meta,
.trade-note,
.trade-review,
.trade-row-foot,
.trade-empty {
    font-size: 11px;
    line-height: 1.6;
}

.trade-meta,
.trade-row-foot,
.trade-empty {
    color: var(--text-2);
}

.trade-note,
.trade-review {
    color: var(--text-1);
    margin-top: 8px;
}

.trade-review {
    padding-top: 8px;
    border-top: 1px dashed var(--border);
}

.trade-row-foot {
    margin-top: 10px;
    display: flex;
    justify-content: space-between;
    gap: 10px;
    align-items: center;
}

.mono { font-family: var(--font-mono); }
.text-cyan { color: var(--cyan); }
.text-green { color: var(--green); }
.text-red { color: var(--red); }
.text-amber { color: var(--amber); }
.text-purple { color: var(--purple); }
.text-muted { color: var(--text-3); }
.text-dim { color: var(--text-2); }
.flex-between { display: flex; justify-content: space-between; align-items: center; }
.gap-8 { gap: 8px; }
.gap-12 { gap: 12px; }
.mt-8 { margin-top: 8px; }
.mt-12 { margin-top: 12px; }
.mb-8 { margin-bottom: 8px; }

/* ── Two-column layout for lower panels ────────────────────────────────── */
.two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

/* ── Loading spinner ───────────────────────────────────────────────────── */
.spinner {
    width: 16px; height: 16px;
    border: 2px solid var(--border);
    border-top-color: var(--cyan);
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
    display: inline-block;
}

@keyframes spin { to { transform: rotate(360deg); } }

/* ── Responsive ────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .app {
        grid-template-columns: 1fr;
        grid-template-rows: 48px 1fr 56px;
    }

    .sidebar {
        grid-row: 3;
        border-right: none;
        border-top: 1px solid var(--border);
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
        padding: 0 8px;
    }

    .sidebar-nav {
        flex-direction: row;
        padding: 8px 0;
    }

    .sidebar-label { display: none; }
    .watchlist-wrap { display: none; }

    .signal-row,
    .stack-grid,
    .two-col,
    .detail-top-grid,
    .research-grid,
    .detail-lower-grid,
    .decision-readiness-grid,
    .decision-support-strip,
    .hero-action-stack {
        grid-template-columns: 1fr;
    }

    .evidence-grid,
    .quality-grid {
        grid-template-columns: 1fr;
    }

    .evidence-row {
        grid-template-columns: 1fr;
        justify-items: start;
    }

    .trade-summary-grid,
    .guardrail-meta-grid,
    .trade-lists,
    .settings-grid {
        grid-template-columns: 1fr;
    }

    .trade-compose-head,
    .portfolio-guardrails-head,
    .settings-head,
    .trade-row-foot {
        flex-direction: column;
        align-items: flex-start;
    }

    .hero { flex-direction: column; align-items: flex-start; }
    .range-52w { flex: auto; width: 100%; }
    .decision-action-row,
    .hero-utility-row {
        flex-direction: column;
        align-items: stretch;
    }

    .topbar-search { max-width: 200px; }

    .welcome {
        gap: 14px;
        padding: 22px 12px 28px;
    }

    .command-deck {
        flex-direction: column;
        padding: 16px;
    }

    .command-side {
        align-items: stretch;
    }

    .command-brand {
        width: 100%;
    }

    .command-title {
        font-size: 24px;
    }

    .command-actions {
        justify-content: flex-start;
    }

    .welcome-context-grid,
    .welcome-ops-grid,
    .welcome-priority-grid,
    .focus-grid,
    .operator-review-grid {
        grid-template-columns: 1fr;
    }

    .ops-disclosure > summary {
        align-items: flex-start;
        flex-direction: column;
    }

    .ops-disclosure-note {
        max-width: none;
        text-align: left;
    }

    .topbar-logo-img {
        height: 36px;
    }

    .scanner-panel {
        padding: 14px;
    }

    .best-panel {
        padding: 14px;
    }

    .scanner-head,
    .autopilot-section-head,
    .autopilot-run-picker {
        grid-template-columns: 1fr;
        flex-direction: column;
        align-items: flex-start;
    }

    .best-summary {
        justify-content: flex-start;
    }

    .best-actions {
        width: 100%;
    }

    .best-actions .btn {
        flex: 1 1 auto;
        justify-content: center;
    }

    .best-card {
        padding: 13px;
    }

    .autopilot-run-control {
        width: 100%;
    }

    .autopilot-metrics,
    .autopilot-layout {
        grid-template-columns: 1fr;
    }

    .lane-strip {
        grid-template-columns: 1fr;
    }

    .assistant-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .assistant-settings-grid {
        grid-template-columns: 1fr;
    }

    .simulation-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .simulation-breakdown-grid {
        grid-template-columns: 1fr;
    }

    .simulation-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .autopilot-log-grid {
        grid-template-columns: 1fr;
    }

    .autopilot-log-row {
        min-height: 0;
    }
}

@media (max-width: 560px) {
    .simulation-summary-grid {
        grid-template-columns: 1fr;
    }

    .simulation-filters {
        grid-template-columns: 1fr;
    }
}

/* ── Backtest Page ──────────────────────────────────────────────────────── */
.bt-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 32px 24px 80px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.bt-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}

.bt-controls {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.bt-label {
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-size: 11px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.6px;
}

.bt-input {
    width: 80px;
    background: var(--bg-2);
    color: var(--text-1);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    padding: 7px 10px;
    font-size: 13px;
}

.bt-summary-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.bt-card {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: linear-gradient(180deg, rgba(17,24,39,0.88), rgba(10,15,26,0.88));
    text-align: center;
}

.bt-card-value {
    font-family: var(--font-mono);
    font-size: 22px;
    font-weight: 700;
    color: var(--text-0);
}

.bt-card-label {
    margin-top: 6px;
    font-size: 11px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.6px;
}

.bt-positive { color: var(--green); }
.bt-negative { color: #f87171; }

.bt-section-head {
    font-size: 12px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-3);
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
}

.bt-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.bt-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.bt-table th {
    text-align: left;
    padding: 8px 10px;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: var(--text-3);
    border-bottom: 1px solid var(--border);
}

.bt-table td {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    color: var(--text-1);
    font-family: var(--font-mono);
    font-size: 12px;
}

.bt-row-highlight td {
    background: rgba(34, 197, 94, 0.06);
}

.bt-table-sm td,
.bt-table-sm th {
    padding: 6px 8px;
}

.bt-hit {
    color: var(--green);
    font-weight: 700;
}

.bt-stop {
    color: #f87171;
    font-weight: 700;
}

.bt-direction-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 16px 0 8px;
    padding: 14px 16px;
    background: var(--surface-2);
    border-radius: 8px;
    border: 1px solid var(--border);
}

.bt-dir-card {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.bt-dir-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .06em;
    color: var(--text-3);
    text-transform: uppercase;
}

.bt-dir-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--text-1);
    font-family: var(--font-mono);
}

.bt-dir-hit, .bt-dir-exit {
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-2);
}

.bt-dir-vs {
    font-size: 12px;
    color: var(--text-3);
    padding: 0 8px;
    flex-shrink: 0;
}

.bt-regime-note {
    font-size: 11px;
    color: var(--text-3);
    padding: 8px 12px;
    background: rgba(251,191,36,.06);
    border-left: 2px solid rgba(251,191,36,.4);
    border-radius: 0 4px 4px 0;
    margin-bottom: 16px;
}

@media (max-width: 900px) {
    .bt-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* ── Ticker Page 4-Block Structure ──────────────────────────────────────── */
.ticker-block {
    margin-bottom: 6px;
}

.ticker-block-label {
    font-family: var(--font-brand);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--text-3);
    padding: 4px 0 6px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 8px;
}

/* Deep Research block */
.ticker-block-deep {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg-1);
    margin-top: 4px;
}

.ticker-block-deep-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
}

.ticker-block-deep-summary .ticker-block-label {
    border: none;
    padding: 0;
    margin: 0;
    color: var(--cyan);
}

.ticker-block-deep-hint {
    font-size: 11px;
    color: var(--text-3);
    font-family: var(--font-sans);
}

.ticker-block-deep-body {
    padding: 0 12px 12px;
}

/* ── Decision Blockers ───────────────────────────────────────────────────── */
.decision-blockers {
    margin: 6px 0 10px;
    background: rgba(255,180,60,.06);
    border-left: 3px solid var(--amber);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding: 8px 12px;
}

.decision-blockers-label {
    font-size: 10px;
    font-family: var(--font-brand);
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--amber);
    margin-bottom: 5px;
}

.decision-blocker-item {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.8;
    font-family: var(--font-sans);
}

.decision-all-clear {
    margin: 6px 0 10px;
    font-size: 11px;
    color: var(--green);
    font-family: var(--font-sans);
    background: rgba(0,220,130,.06);
    border-left: 3px solid var(--green);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    padding: 6px 12px;
}

/* ── Verdict Tier Chips ──────────────────────────────────────────────────── */
.decision-chip.verdict-tier-actionable {
    background: rgba(0,220,130,.15);
    border-color: var(--green);
    color: var(--green);
    font-weight: 700;
}

.decision-chip.verdict-tier-reject {
    background: rgba(255,77,106,.15);
    border-color: var(--red);
    color: var(--red);
    font-weight: 700;
}

.decision-chip.verdict-tier-watch {
    background: rgba(255,181,69,.12);
    border-color: var(--amber);
    color: var(--amber);
}

/* ── Insight Locked State ────────────────────────────────────────────────── */
.insight-locked {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    font-size: 12px;
    color: var(--text-3);
    font-family: var(--font-sans);
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    border-left: 3px solid var(--text-3);
}

.insight-locked-icon {
    font-size: 14px;
    flex-shrink: 0;
}

/* ── Verdict Banner Prompt (no insight, no forecast) ────────────────────── */
.verdict-banner-prompt {
    opacity: 0.8;
}
.verdict-banner-prompt .verdict-act {
    color: var(--amber);
    border-color: var(--amber-dim);
    background: var(--amber-dim);
}

/* ── Hero Corner Actions ─────────────────────────────────────────────────── */
.hero-corner-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: flex-start;
    gap: 8px;
}

/* ── Evidence Empty State ────────────────────────────────────────────────── */
.evidence-empty-state {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--text-3);
    font-family: var(--font-sans);
    padding: 8px 0;
    font-style: italic;
}

.evidence-empty-icon {
    font-size: 14px;
}

/* ── Research Grid (Why block — 2-col max) ───────────────────────────────── */
.research-grid-why {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 768px) {
    .research-grid-why {
        grid-template-columns: 1fr;
    }
    .ticker-block-deep-summary {
        flex-wrap: wrap;
    }
}

/* ── Ranked Candidates Board ─────────────────────────────────────────────── */
.ranked-board-body {
    padding: 0;
}

.ranked-board-grid {
    display: grid;
    grid-template-columns: 28px 1fr 70px 78px 60px 50px 90px;
    font-family: var(--font-mono);
    font-size: 11px;
}

.ranked-board-header {
    display: contents;
}

.ranked-board-header > span {
    padding: 6px 10px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--text-3);
    border-bottom: 1px solid var(--border);
    background: var(--bg-2);
}

.ranked-board-row {
    display: contents;
    cursor: pointer;
}

.ranked-board-row > span {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(255,255,255,.04);
    display: flex;
    align-items: center;
    transition: background 0.1s;
}

.ranked-board-row:hover > span {
    background: rgba(0, 229, 255, 0.04);
}

.ranked-rank {
    color: var(--text-3);
    font-size: 10px;
}

.ranked-ticker {
    display: flex !important;
    align-items: center;
    gap: 6px;
}

.ranked-tick {
    color: var(--cyan);
    font-weight: 700;
}

.ranked-dir {
    font-size: 9px;
    letter-spacing: 0.5px;
}

.ranked-score {
    font-weight: 600;
}

.ranked-price {
    color: var(--text-0);
    font-weight: 700;
}

.ranked-composite {
    color: var(--text-0);
    font-weight: 700;
}

.ranked-tier {
    font-family: var(--font-brand);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 2px 6px !important;
    border-radius: 3px;
    border: 1px solid transparent;
}

.ranked-tier.is-actionable {
    color: var(--green);
    border-color: var(--green-dim);
    background: rgba(0, 220, 130, 0.08);
}

.ranked-tier.is-watch {
    color: var(--amber);
    border-color: rgba(255, 181, 69, 0.3);
    background: rgba(255, 181, 69, 0.08);
}

.ranked-tier.is-stand-aside,
.ranked-tier.is-raw {
    color: var(--amber);
    border-color: rgba(255, 181, 69, 0.3);
    background: rgba(255, 181, 69, 0.08);
}

.ranked-tier.is-reject {
    color: var(--red);
    border-color: rgba(255, 77, 106, 0.3);
    background: rgba(255, 77, 106, 0.08);
}

.ranked-src-badge {
    display: inline-block;
    margin-left: 4px;
    padding: 1px 4px;
    font-size: 8px;
    font-family: var(--font-brand);
    letter-spacing: 0.04em;
    color: var(--cyan);
    border: 1px solid rgba(0, 200, 200, 0.4);
    border-radius: 3px;
    background: rgba(0, 200, 200, 0.08);
    vertical-align: middle;
}

@media (max-width: 768px) {
    .ranked-board-grid {
        grid-template-columns: 24px 1fr 58px 50px 50px 44px 70px;
        font-size: 10px;
    }
}

/* ── Watchlist show-more button ───────────────────────────────────────── */
.wl-show-more {
    display: block;
    width: 100%;
    margin-top: 4px;
    padding: 5px 8px;
    background: none;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--text-3);
    font-size: 10px;
    font-family: var(--font-mono);
    letter-spacing: 0.04em;
    cursor: pointer;
    text-align: center;
    transition: color 0.15s, border-color 0.15s;
}
.wl-show-more:hover {
    color: var(--cyan);
    border-color: var(--cyan);
}

/* ── Sidebar portfolio collapsible ───────────────────────────────────── */
.sidebar-portfolio-details {
    margin-top: 4px;
}
.sidebar-portfolio-summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    position: relative;
}
.sidebar-portfolio-summary::-webkit-details-marker { display: none; }
.sidebar-portfolio-summary::after {
    content: '▸';
    font-size: 9px;
    color: var(--text-3);
    margin-left: 4px;
    transition: transform 0.15s;
}
.sidebar-portfolio-details[open] .sidebar-portfolio-summary::after {
    content: '▾';
}

/* ── Score legend (ranked board) ─────────────────────────────────────── */
.score-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    padding: 6px 16px 10px;
    border-bottom: 1px solid var(--border);
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.score-legend b {
    color: var(--text-2);
    font-weight: 600;
}

/* ── Research Queue view (full-width list) ───────────────────────────── */
.queue-view-table {
    margin-top: 12px;
}
.queue-view-header {
    display: grid;
    grid-template-columns: 36px 80px 1fr 100px 70px 28px;
    gap: 0;
    padding: 6px 12px;
    font-size: 10px;
    font-family: var(--font-mono);
    letter-spacing: 0.06em;
    color: var(--text-3);
    text-transform: uppercase;
    border-bottom: 1px solid var(--border);
}
.queue-row {
    display: grid;
    grid-template-columns: 36px 80px 1fr 100px 70px 28px;
    align-items: center;
    gap: 0;
    padding: 7px 12px;
    border-bottom: 1px solid var(--border);
    cursor: pointer;
    transition: background 0.1s;
}
.queue-row:hover { background: var(--surface-2); }
.queue-row.active { background: rgba(0, 220, 255, 0.07); }
.queue-row-market {
    font-size: 9px;
    font-family: var(--font-mono);
    color: var(--text-3);
    letter-spacing: 0.04em;
}
.queue-row-ticker {
    font-size: 12px;
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--text-1);
}
.queue-row-name {
    font-size: 11px;
    color: var(--text-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-right: 8px;
}
.queue-row-score {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 10px;
    font-family: var(--font-mono);
}
.queue-row-price {
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-2);
    text-align: right;
}

/* ── Sidebar watchlist compact control ───────────────────────────────── */
.wl-empty-hint {
    padding: 6px 10px 2px;
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.wl-queue-control {
    padding: 6px 10px 8px;
}
.wl-queue-counts {
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-2);
    margin-bottom: 5px;
}
.wl-muted {
    color: var(--text-3);
}
.wl-open-queue {
    display: block;
    width: 100%;
    padding: 5px 8px;
    background: none;
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--cyan);
    font-size: 10px;
    font-family: var(--font-mono);
    letter-spacing: 0.04em;
    cursor: pointer;
    text-align: left;
    transition: background 0.15s, border-color 0.15s;
}
.wl-open-queue:hover {
    background: rgba(0, 220, 255, 0.06);
    border-color: var(--cyan);
}
.wl-active-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 5px 10px;
    background: rgba(0, 220, 255, 0.06);
    border-left: 2px solid var(--cyan);
    cursor: pointer;
}
.wl-active-row .wl-ticker {
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 600;
    color: var(--cyan);
}
.wl-active-row .wl-name {
    font-size: 10px;
    color: var(--text-3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ── Compact operator status bar ─────────────────────────────────────── */
.operator-status-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    border-radius: 6px;
    margin: 12px 0;
    flex-wrap: wrap;
}
.operator-status-label {
    font-size: 9px;
    font-family: var(--font-mono);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-3);
    flex-shrink: 0;
}
.operator-status-items {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
    flex: 1;
}
.operator-status-item {
    font-size: 11px;
    color: var(--text-2);
    font-family: var(--font-mono);
}
.operator-status-item b {
    color: var(--text-1);
}
.operator-status-item.is-warn b { color: var(--amber); }
.operator-status-item.is-good b { color: var(--green); }
.operator-status-item.is-muted { color: var(--text-3); }
.operator-status-item.is-muted b { color: var(--text-3); }
.operator-status-sep {
    color: var(--text-3);
    font-size: 10px;
}
.operator-status-actions {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}


/* ── Autonomy panel ────────────────────────────────────────────────── */
.autonomy-panel {
    border-left: 3px solid var(--cyan);
}
.autonomy-divider {
    margin-top: 16px;
    padding-top: 10px;
    border-top: 1px dashed var(--cyan-dim);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.08em;
    color: var(--cyan);
    text-transform: uppercase;
}
.autonomy-warning {
    margin: 6px 0 12px;
    padding: 8px 10px;
    background: var(--amber-dim);
    border: 1px solid var(--amber);
    border-radius: 4px;
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.45;
}
.autonomy-warning code {
    background: rgba(0,0,0,0.3);
    padding: 1px 5px;
    border-radius: 3px;
    font-family: var(--font-mono);
    color: var(--text-1);
}
.autonomy-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
    margin-top: 12px;
}
.autonomy-section {
    background: var(--bg-2);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 5px;
    padding: 12px;
}
.autonomy-meta {
    color: var(--text-2);
    font-size: 12px;
    margin: 4px 0;
    font-family: var(--font-mono);
}
.autonomy-position {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,0.04);
}
.autonomy-position:last-child { border-bottom: 0; }
.autonomy-pos-ticker {
    font-family: var(--font-mono);
    font-weight: 700;
    color: var(--text-1);
    font-size: 12px;
}
.autonomy-pos-dir {
    padding: 1px 6px;
    border-radius: 3px;
    font-size: 10px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    border: 1px solid;
}
.autonomy-pos-dir.is-long {
    color: var(--green);
    border-color: var(--green);
    background: var(--green-dim);
}
.autonomy-pos-dir.is-short {
    color: var(--red);
    border-color: var(--red);
    background: var(--red-dim);
}
.autonomy-pos-prices {
    color: var(--text-2);
    font-size: 11px;
    font-family: var(--font-mono);
    flex: 1;
}
.autonomy-gate {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 8px;
    margin: 4px 0;
    border-radius: 4px;
    background: rgba(255,255,255,0.02);
    border: 1px solid rgba(255,255,255,0.05);
    font-size: 11px;
}
.autonomy-gate-label {
    color: var(--text-2);
    font-family: var(--font-mono);
}
.autonomy-gate-state {
    font-family: var(--font-mono);
    font-weight: 700;
    letter-spacing: 0.06em;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 3px;
}
.autonomy-gate.is-good {
    background: var(--green-dim);
    border-color: var(--green);
}
.autonomy-gate.is-good .autonomy-gate-state {
    color: var(--green);
}
.autonomy-gate.is-warn .autonomy-gate-state {
    color: var(--amber);
}
.autonomy-verdict {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: 4px;
    font-family: var(--font-mono);
    font-size: 11px;
    text-align: center;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.autonomy-verdict.is-good {
    background: var(--green-dim);
    border: 1px solid var(--green);
    color: var(--green);
}
.autonomy-verdict.is-muted {
    background: rgba(255,255,255,0.02);
    border: 1px dashed rgba(255,255,255,0.1);
    color: var(--text-2);
}

/* AUTO badge for paper trade rows */
.paper-trade-origin-badge {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 5px;
    font-size: 9px;
    font-family: var(--font-mono);
    letter-spacing: 0.06em;
    color: var(--cyan);
    border: 1px solid var(--cyan);
    border-radius: 3px;
    background: var(--cyan-dim);
    vertical-align: middle;
    text-transform: uppercase;
}

/* ── Autonomy strip (top-of-dashboard, always visible) ─────────────── */
.autonomy-strip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 16px 0;
    padding: 14px 18px;
    background: linear-gradient(90deg, var(--cyan-dim), transparent 60%);
    border: 1px solid var(--cyan-mid);
    border-left: 4px solid var(--cyan);
    border-radius: 6px;
    flex-wrap: wrap;
}
.autonomy-strip-left {
    display: flex;
    align-items: center;
    gap: 22px;
    flex-wrap: wrap;
    flex: 1;
    min-width: 0;
}
.autonomy-strip-right {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
}
.autonomy-strip-pill {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 5px 10px;
    border-radius: 4px;
    border: 1px solid;
    text-transform: uppercase;
    flex-shrink: 0;
}
.autonomy-strip-pill.is-live {
    color: var(--green);
    border-color: var(--green);
    background: var(--green-dim);
    box-shadow: 0 0 12px rgba(0, 220, 130, 0.35);
}
.autonomy-strip-pill.is-off {
    color: var(--text-2);
    border-color: rgba(255,255,255,0.15);
    background: rgba(255,255,255,0.03);
}
.autonomy-strip-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}
.autonomy-strip-stat-label {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.1em;
    color: var(--text-3);
    text-transform: uppercase;
}
.autonomy-strip-stat-value {
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-1);
    display: flex;
    align-items: center;
    gap: 6px;
}
.autonomy-strip-meta {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--amber);
    padding: 3px 8px;
    background: var(--amber-dim);
    border-radius: 3px;
    border: 1px solid var(--amber);
}
.autonomy-strip-gate {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
.autonomy-strip-gate.is-good { background: var(--green); box-shadow: 0 0 6px var(--green); }
.autonomy-strip-gate.is-pending { background: rgba(255,255,255,0.18); }
.autonomy-strip-verdict {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.06em;
    padding: 2px 6px;
    border-radius: 3px;
    margin-left: 4px;
}
.autonomy-strip-verdict.is-good {
    color: var(--green);
    background: var(--green-dim);
    border: 1px solid var(--green);
}
.autonomy-strip-verdict.is-pending {
    color: var(--amber);
    background: var(--amber-dim);
    border: 1px solid var(--amber);
}
.autonomy-strip-verdict.is-muted {
    color: var(--text-3);
    border: 1px dashed rgba(255,255,255,0.15);
}

/* ── Page shell (sidebar nav targets) ─────────────────────────────────── */
.page {
    padding: 24px 28px 60px;
    max-width: 1500px;
    margin: 0 auto;
}
.page-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 24px;
    margin-bottom: 22px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.page-kicker {
    font-family: var(--font-brand);
    font-size: 28px;
    font-weight: 800;
    letter-spacing: 0.04em;
    color: var(--text-1);
    text-transform: uppercase;
}
.page-sub {
    font-size: 13px;
    color: var(--text-2);
    margin-top: 6px;
    max-width: 700px;
}
.page-body { display: flex; flex-direction: column; gap: 18px; }
.page-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 12px;
    margin: 8px 0 18px;
}
.page-stat {
    background: var(--bg-2);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 6px;
    padding: 12px 14px;
}
.page-stat-label {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: 0.1em;
    color: var(--text-3);
    text-transform: uppercase;
}
.page-stat-value {
    font-family: var(--font-mono);
    font-size: 20px;
    font-weight: 700;
    color: var(--text-1);
    margin-top: 4px;
}
.page-stat-value.is-good { color: var(--green); }
.page-stat-value.is-bad  { color: var(--red); }
.page-section-title {
    font-family: var(--font-brand);
    font-size: 13px;
    letter-spacing: 0.08em;
    color: var(--cyan);
    text-transform: uppercase;
    margin: 18px 0 8px;
}
.page-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: var(--bg-2);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 6px;
    overflow: hidden;
}
.page-table.compact th, .page-table.compact td { padding: 6px 10px; font-size: 11px; }
.page-table th {
    text-align: left;
    padding: 10px 12px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--text-3);
    background: rgba(255,255,255,0.02);
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.page-table td {
    padding: 9px 12px;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    color: var(--text-1);
    font-size: 12px;
}
.page-table tr:last-child td { border-bottom: 0; }
.page-table .mono { font-family: var(--font-mono); }
.page-table .dim { color: var(--text-3); }
.page-table .is-good { color: var(--green); }
.page-table .is-bad  { color: var(--red); }
.page-table .is-muted { color: var(--text-3); }
.trade-table-row { cursor: pointer; transition: background 80ms; }
.trade-table-row:hover { background: rgba(255,255,255,0.02); }
.graded-table th,
.graded-table td {
    vertical-align: top;
}
.graded-table .graded-reason {
    max-width: 320px;
    white-space: normal;
    line-height: 1.35;
}
.graded-date {
    font-size: 15px;
}
.page-empty {
    padding: 22px !important;
    text-align: center;
    color: var(--text-3);
    font-size: 12px;
}
.page-actions-row {
    display: flex;
    gap: 8px;
    margin: 10px 0;
}
.page-note {
    font-size: 12px;
    color: var(--text-2);
    margin: 8px 0;
}
.page-note a { color: var(--cyan); text-decoration: none; }
.event-outcome {
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    padding: 1px 5px;
    border-radius: 3px;
    letter-spacing: 0.06em;
}
.event-outcome.is-good { background: var(--green-dim); color: var(--green); border: 1px solid var(--green); }
.event-outcome.is-bad  { background: var(--red-dim);   color: var(--red);   border: 1px solid var(--red); }
.event-outcome.is-muted { background: rgba(255,255,255,0.04); color: var(--text-3); }
.event-reason { color: var(--text-2); font-size: 11px; }

/* ── Live price flash (T212-style) ───────────────────────────────────── */
@keyframes flash-up-anim {
    0%   { background: rgba(0, 220, 130, 0.55); color: #fff; }
    60%  { background: rgba(0, 220, 130, 0.18); }
    100% { background: transparent; }
}
@keyframes flash-down-anim {
    0%   { background: rgba(255, 77, 106, 0.55); color: #fff; }
    60%  { background: rgba(255, 77, 106, 0.18); }
    100% { background: transparent; }
}
[data-live-ticker].flash-up   { animation: flash-up-anim   1.2s ease-out; border-radius: 3px; padding: 0 3px; }
[data-live-ticker].flash-down { animation: flash-down-anim 1.2s ease-out; border-radius: 3px; padding: 0 3px; }

[data-live-ticker] {
    transition: color 200ms ease;
    font-variant-numeric: tabular-nums;
}

.ranked-live-price {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
    margin-left: 6px;
    font-variant-numeric: tabular-nums;
}
.ranked-live-price.text-green { color: var(--green); }
.ranked-live-price.text-red   { color: var(--red); }

.autonomy-pos-live {
    display: inline-flex;
    gap: 8px;
    align-items: baseline;
    font-family: var(--font-mono);
    font-size: 12px;
    color: var(--text-1);
    margin: 0 8px;
}
.autonomy-pos-live-price { font-weight: 700; font-variant-numeric: tabular-nums; }
.autonomy-pos-live-change { font-size: 11px; font-variant-numeric: tabular-nums; }

.trade-table-live-change {
    font-size: 10px;
    margin-left: 6px;
    color: var(--text-3);
    font-variant-numeric: tabular-nums;
}

/* ── Kronos Score breakdown card ──────────────────────────────────────── */
.kronos-score-card {
    border-left: 4px solid var(--cyan);
    background: linear-gradient(90deg, rgba(0,229,255,0.04) 0%, transparent 50%);
}

.identity-debug-line {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0 0 10px;
    padding: 7px 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    color: var(--text-3);
    font-family: var(--font-mono);
    font-size: 11px;
    background: rgba(255, 255, 255, 0.03);
}
.identity-debug-line span { white-space: nowrap; }
.identity-debug-line.is-invalid {
    border-color: rgba(255, 88, 88, 0.55);
    color: var(--red);
}
.identity-invalid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 88, 88, 0.55);
    border-radius: 6px;
    color: var(--red);
    background: rgba(255, 88, 88, 0.08);
}
.identity-invalid span,
.identity-invalid em {
    color: var(--text-2);
    font-style: normal;
}
.ks-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}
.ks-label {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    padding: 3px 10px;
    border-radius: 4px;
    border: 1px solid;
    text-transform: uppercase;
}
.ks-label.is-great { color: var(--cyan); border-color: var(--cyan); background: rgba(0,229,255,0.1); }
.ks-label.is-good  { color: var(--green); border-color: var(--green); background: var(--green-dim); }
.ks-label.is-amber { color: var(--amber); border-color: var(--amber); background: var(--amber-dim); }
.ks-label.is-muted { color: var(--text-3); border-color: rgba(255,255,255,0.12); background: transparent; }

.ks-body {
    display: flex;
    gap: 28px;
    align-items: flex-start;
    flex-wrap: wrap;
}
.ks-score-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 96px;
    flex-shrink: 0;
}
.ks-score {
    font-family: var(--font-brand);
    font-size: 56px;
    font-weight: 900;
    line-height: 1;
    letter-spacing: 0;
}
.ks-score--great { color: var(--cyan); text-shadow: 0 0 24px rgba(0,229,255,0.4); }
.ks-score--good  { color: var(--green); text-shadow: 0 0 20px rgba(0,220,130,0.35); }
.ks-score--mid   { color: var(--amber); }
.ks-score--low   { color: var(--red); }
.ks-score--none  { color: var(--text-3); }
.ks-score-sub {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    margin-top: 4px;
}
.ks-forecast-line, .ks-no-forecast {
    font-size: 10px;
    color: var(--text-2);
    font-family: var(--font-mono);
    margin-top: 10px;
    text-align: center;
    max-width: 120px;
    line-height: 1.4;
}
.ks-no-forecast { color: var(--amber); }
.ks-adjustments {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 10px;
    align-items: center;
}
.ks-adj {
    font-size: 10px;
    font-family: var(--font-mono);
}
.ks-adj.is-good { color: var(--green); }
.ks-adj.is-bad  { color: var(--red); }
.ks-adj.is-amber { color: var(--amber); }
.ks-intel-panel {
    margin-top: 16px;
    padding: 12px 14px;
    border-top: 1px solid rgba(255,255,255,0.1);
    background: rgba(255,255,255,0.025);
    color: var(--text-2);
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.45;
}
.ks-intel-head {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}
.ks-intel-head span {
    color: var(--text-1);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0;
}
.ks-intel-head strong {
    font-size: 11px;
    letter-spacing: 0;
}
.ks-intel-head small {
    color: var(--text-3);
    margin-left: auto;
}
.ks-intel-summary {
    max-width: 880px;
    color: var(--text-2);
}
.ks-intel-list {
    display: grid;
    grid-template-columns: 74px 1fr;
    gap: 10px;
    margin-top: 8px;
}
.ks-intel-list > span {
    color: var(--text-3);
    text-transform: uppercase;
}
.ks-intel-list > div {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.ks-intel-list em {
    font-style: normal;
    padding: 2px 6px;
    border: 1px solid rgba(255,255,255,0.11);
    background: rgba(0,0,0,0.18);
    border-radius: 4px;
    overflow-wrap: anywhere;
}
.ks-intel-panel .is-good { color: var(--green); }
.ks-intel-panel .is-amber { color: var(--amber); }
.ks-intel-panel .is-bad { color: var(--red); }
.ks-intel-panel .is-muted { color: var(--text-3); }
.ks-advisory-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 6px;
    margin-top: 10px;
}
.ks-advisory-metric {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255,255,255,0.08);
    padding: 6px 8px;
    min-height: 32px;
    background: rgba(0,0,0,0.16);
}
.ks-advisory-metric span {
    color: var(--text-3);
    overflow-wrap: anywhere;
}
.ks-advisory-metric strong {
    color: var(--text-1);
    text-align: right;
    white-space: nowrap;
}
.ks-advisory-metric.is-bad strong { color: var(--red); }
.ks-advisory-metric.is-warn strong { color: var(--amber); }
.ks-advisory-metric.is-coverage strong { color: var(--text-2); }
.ks-advisory-metric.is-ok strong { color: var(--green); }
.ks-next-check {
    margin-top: 10px;
    color: var(--text-2);
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.08);
}

.ks-comp-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 240px;
}
.ks-comp {
    display: grid;
    grid-template-columns: 18px 90px 1fr 36px 32px;
    align-items: center;
    gap: 8px;
    cursor: default;
}
.ks-comp--missing { opacity: 0.4; }
.ks-comp-icon {
    font-size: 12px;
    color: var(--cyan);
    text-align: center;
    line-height: 1;
}
.ks-comp-name {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-2);
    letter-spacing: 0.03em;
}
.ks-comp-bar-wrap {
    height: 6px;
    background: rgba(255,255,255,0.06);
    border-radius: 3px;
    overflow: hidden;
}
.ks-comp-bar {
    height: 100%;
    border-radius: 3px;
    transition: width 400ms ease;
}
.ks-bar-good { background: linear-gradient(90deg, var(--green), rgba(0,220,130,0.6)); }
.ks-bar-mid  { background: linear-gradient(90deg, var(--amber), rgba(255,181,69,0.5)); }
.ks-bar-low  { background: linear-gradient(90deg, var(--red), rgba(255,77,106,0.4)); }

.ks-comp-val {
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 700;
    text-align: right;
    font-variant-numeric: tabular-nums;
}
.ks-comp-val.is-good  { color: var(--green); }
.ks-comp-val.is-amber { color: var(--amber); }
.ks-comp-val.is-bad   { color: var(--red); }
.ks-comp-val.is-muted { color: var(--text-3); }
.ks-comp-wt {
    font-family: var(--font-mono);
    font-size: 9px;
    color: var(--text-3);
    text-align: right;
}

/* Manual multi-agent debug panel */
.multi-agent-debug-shell {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.multi-agent-debug-panel,
.multi-agent-debug-output,
.multi-agent-debug-section {
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: 6px;
}
.multi-agent-debug-panel {
    padding: 14px;
    border-left: 3px solid var(--amber);
}
.multi-agent-debug-grid {
    display: grid;
    grid-template-columns: minmax(360px, 1fr) minmax(260px, 340px);
    gap: 14px;
    align-items: stretch;
}
.multi-agent-debug-side {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.multi-agent-debug-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.multi-agent-debug-field span,
.multi-agent-debug-check span,
.multi-agent-debug-metric-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
    letter-spacing: 0.06em;
    text-transform: uppercase;
}
.multi-agent-debug-field textarea,
.multi-agent-debug-field select,
.multi-agent-debug-field input[type="date"],
.multi-agent-debug-field input[type="text"],
.multi-agent-debug-field input[type="number"] {
    width: 100%;
    background: var(--bg-0);
    border: 1px solid var(--border);
    border-radius: 4px;
    color: var(--text-1);
    outline: none;
}
.multi-agent-debug-field textarea {
    min-height: 340px;
    padding: 10px;
    resize: vertical;
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.45;
}
.multi-agent-debug-side textarea {
    min-height: 140px;
}
.multi-agent-debug-field select,
.multi-agent-debug-field input[type="date"],
.multi-agent-debug-field input[type="text"],
.multi-agent-debug-field input[type="number"] {
    height: 34px;
    padding: 0 10px;
}
.multi-agent-debug-field textarea:focus,
.multi-agent-debug-field select:focus,
.multi-agent-debug-field input[type="date"]:focus,
.multi-agent-debug-field input[type="text"]:focus,
.multi-agent-debug-field input[type="number"]:focus {
    border-color: var(--cyan);
    box-shadow: 0 0 0 2px var(--cyan-dim);
}
.multi-agent-debug-check {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
}
.multi-agent-debug-note {
    margin-top: 12px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.45;
}
.multi-agent-debug-error {
    padding: 10px 12px;
    border: 1px solid var(--red);
    background: var(--red-dim);
    border-radius: 5px;
    color: var(--text-1);
    font-size: 12px;
}
.multi-agent-debug-output {
    padding: 14px;
}
.multi-agent-debug-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin-bottom: 12px;
}
.multi-agent-debug-metric {
    background: var(--bg-2);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 5px;
    padding: 10px;
}
.multi-agent-debug-metric-value {
    margin-top: 6px;
    font-family: var(--font-mono);
    color: var(--text-0);
    font-weight: 700;
    overflow-wrap: anywhere;
}
.multi-agent-debug-metric-value.is-good { color: var(--green); }
.multi-agent-debug-metric-value.is-bad { color: var(--red); }
.multi-agent-debug-metric-value.is-muted { color: var(--text-2); }
.multi-agent-debug-section {
    margin-top: 10px;
    padding: 12px;
}
.multi-agent-debug-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.multi-agent-debug-empty {
    margin-top: 8px;
    color: var(--text-3);
    font-size: 12px;
}
.multi-agent-debug-json {
    margin-top: 10px;
    max-height: 420px;
    overflow: auto;
    background: var(--bg-0);
    border: 1px solid rgba(255,255,255,0.05);
    border-radius: 4px;
    padding: 10px;
    color: var(--text-1);
    font-family: var(--font-mono);
    font-size: 11px;
    line-height: 1.45;
    white-space: pre-wrap;
}
.multi-agent-debug-table td:last-child {
    min-width: 260px;
}
.multi-agent-debug-field-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}
.multi-agent-debug-sample-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}
.multi-agent-debug-sample-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}
.multi-agent-debug-sample-meta span {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 3px;
    background: var(--amber-dim);
    border: 1px solid rgba(255, 181, 69, 0.45);
    color: var(--amber);
    font-family: var(--font-mono);
    font-size: 10px;
}
.multi-agent-debug-route-badge {
    margin-top: 10px;
    display: inline-block;
    padding: 3px 8px;
    border-radius: 3px;
    background: var(--cyan-dim);
    border: 1px solid var(--cyan-mid);
    color: var(--cyan);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.multi-agent-debug-real-panel {
    border-left-color: var(--cyan);
}
.multi-agent-debug-real-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.multi-agent-debug-real-controls {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.multi-agent-debug-helper-text {
    margin-top: 8px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.45;
}
.multi-agent-debug-real-table-wrap {
    margin-top: 12px;
    overflow-x: auto;
}
.multi-agent-debug-real-table td,
.multi-agent-debug-real-table th {
    white-space: nowrap;
}
.multi-agent-debug-ledger-panel {
    border-left-color: var(--green);
}
.multi-agent-debug-ledger-table-wrap {
    margin-top: 12px;
    overflow-x: auto;
}
.multi-agent-debug-ledger-table td,
.multi-agent-debug-ledger-table th {
    white-space: nowrap;
}
.multi-agent-debug-ledger-detail {
    margin-top: 14px;
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: rgba(255, 255, 255, 0.02);
}
.multi-agent-debug-performance-summary {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid rgba(50, 220, 140, 0.32);
    border-left: 3px solid var(--green);
    border-radius: 6px;
    background: rgba(50, 220, 140, 0.05);
}
.multi-agent-debug-journal-section {
    border-left: 3px solid var(--cyan);
}
.multi-agent-debug-journal-textareas {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.multi-agent-debug-journal-textareas textarea {
    min-height: 96px;
}
.multi-agent-debug-offline-badge {
    display: inline-block;
    padding: 4px 10px;
    border-radius: 4px;
    background: var(--cyan-dim);
    border: 1px solid var(--cyan-mid);
    color: var(--cyan);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 12px;
}
.multi-agent-debug-persist-warn {
    padding: 6px 10px;
    border-radius: 4px;
    background: var(--amber-dim);
    border: 1px solid var(--amber);
    color: var(--amber);
    font-size: 11px;
    font-family: var(--font-mono);
    margin-bottom: 10px;
}
.multi-agent-debug-enforcement-panel {
    margin: 12px 0;
    padding: 12px;
    border: 1px solid rgba(255, 181, 69, 0.62);
    border-left: 3px solid var(--amber);
    border-radius: 6px;
    background: rgba(255, 181, 69, 0.08);
}
.multi-agent-debug-enforcement-title {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--amber);
}
.multi-agent-debug-enforcement-note {
    margin-top: 6px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.45;
}
.multi-agent-debug-enforcement-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 8px;
    margin-top: 10px;
}

.multi-agent-debug-ai-advisory-section {
    border-left: 3px solid var(--cyan);
    background: rgba(0, 229, 255, 0.04);
}
.multi-agent-debug-ai-advisory-warn {
    padding: 8px 10px;
    background: var(--cyan-dim);
    border-radius: 4px;
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--cyan);
    margin-bottom: 10px;
}
.multi-agent-debug-ai-advisory-row td {
    color: var(--text-2);
}

@media (max-width: 980px) {
    .multi-agent-debug-grid {
        grid-template-columns: 1fr;
    }
}

/* ── Production Morning Dashboard (Phase 27N) ──────────────────────────── */
.morning-dashboard-production {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.morning-dash-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    background: rgba(50, 220, 140, 0.05);
    border: 1px solid rgba(50, 220, 140, 0.2);
    border-left: 3px solid var(--green);
    border-radius: 6px;
}
.morning-dash-meta {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.morning-dash-source {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--green);
    font-weight: 600;
    letter-spacing: 0.02em;
}
.morning-dash-meta-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}
.morning-dash-meta-item {
    font-size: 11px;
    color: var(--text-2);
    font-family: var(--font-mono);
}
.morning-dash-controls {
    display: flex;
    gap: 8px;
    flex-shrink: 0;
    flex-wrap: wrap;
    align-items: center;
}
.morning-dash-safety-strip {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}
.morning-dash-badge {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 3px;
    background: rgba(50, 220, 140, 0.08);
    border: 1px solid rgba(50, 220, 140, 0.25);
    color: var(--green);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}
.morning-dash-warning {
    padding: 6px 10px;
    border-radius: 4px;
    background: var(--amber-dim);
    border: 1px solid var(--amber);
    color: var(--amber);
    font-size: 11px;
    font-family: var(--font-mono);
}
.morning-dash-loading {
    padding: 8px 12px;
    font-size: 12px;
    color: var(--text-2);
    font-family: var(--font-mono);
}
.morning-dash-error {
    padding: 8px 12px;
    border-radius: 4px;
    background: rgba(255, 80, 80, 0.08);
    border: 1px solid rgba(255, 80, 80, 0.35);
    color: var(--red);
    font-size: 12px;
    font-family: var(--font-mono);
}
.morning-dash-empty {
    padding: 24px 16px;
    text-align: center;
    color: var(--text-2);
    font-size: 13px;
    border: 1px dashed var(--border);
    border-radius: 6px;
}

/* Phase 27R — morning candidate cards */
.morning-candidate-cards {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 8px;
}
.morning-candidate-card {
    background: var(--bg-2);
    border: 1px solid rgba(255,255,255,0.06);
    border-radius: 5px;
    padding: 10px 12px;
}
.morning-cand-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}
.morning-cand-ticker {
    font-family: var(--font-mono);
    font-weight: 700;
    font-size: 13px;
    color: var(--text-0);
}
.morning-cand-meta {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.morning-cand-quality {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.04);
    padding-top: 8px;
}
.morning-cand-row {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    flex-wrap: wrap;
}
.morning-cand-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    min-width: 96px;
    padding-top: 3px;
    flex-shrink: 0;
}
.morning-cand-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}
.morning-cand-more {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    padding: 2px 4px;
}
.morning-cand-action-text {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.4;
}
/* Phase 27S — paper trade creation form */
.morning-cand-paper-btn { margin-top: 8px; padding-top: 8px; border-top: 1px solid rgba(255,255,255,0.04); }
.morning-cand-create-btn { font-size: 11px; }
.morning-paper-form { background: var(--bg-2); border: 1px solid rgba(100,180,255,0.15); border-radius: 6px; padding: 12px 14px; margin: 10px 0; }
.morning-paper-form-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.morning-paper-form-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.morning-paper-form-title { font-family: var(--font-mono); font-weight: 700; font-size: 12px; color: var(--text-0); text-transform: uppercase; letter-spacing: 0.04em; }
.morning-paper-form-safety { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.morning-paper-form-error { color: #f87171; font-size: 12px; margin-bottom: 8px; }
.morning-paper-form-error-list { color: #f87171; font-size: 12px; margin: 0 0 8px 0; padding-left: 18px; }
.morning-paper-form-fields { display: flex; flex-direction: column; gap: 8px; margin-bottom: 12px; }
.morning-paper-form-row { display: flex; align-items: center; gap: 10px; }
.morning-paper-form-label { font-family: var(--font-mono); font-size: 10px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.05em; min-width: 110px; flex-shrink: 0; }
.morning-paper-form-input { background: var(--bg-3,#111); border: 1px solid rgba(255,255,255,0.12); border-radius: 4px; color: var(--text-0); font-size: 12px; padding: 5px 8px; width: 140px; }
.morning-paper-form-input:focus { outline: none; border-color: rgba(100,180,255,0.5); }
.morning-paper-form-actions { display: flex; gap: 8px; align-items: center; }
.morning-paper-form-result-ok { color: #4ade80; font-size: 13px; font-weight: 600; margin-bottom: 6px; }
.morning-paper-form-refresh-ok { color: var(--text-2); font-size: 12px; margin-bottom: 6px; }
.morning-paper-form-result-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; font-size: 11px; color: var(--text-2); font-family: var(--font-mono); }

/* ── Phase 33B: Operator Dashboard Shell ────────────────────────────────── */

.nav-section-label {
    padding: 10px 10px 4px;
    font-size: 9px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 1.8px;
    color: var(--text-3);
}
.nav-section-divider {
    height: 1px;
    background: var(--border);
    margin: 6px 10px;
    opacity: 0.5;
}

.op-dashboard {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}
.op-dashboard-header {
    padding: 0 2px 4px;
}
.op-dashboard-title {
    font-family: var(--font-brand);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--text-0);
    text-transform: uppercase;
}
.op-dashboard-sub {
    font-size: 12px;
    color: var(--text-2);
    margin-top: 4px;
}
.op-dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 12px;
}
.op-section-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
}
.op-section-card--action {
    border-color: var(--cyan-mid);
    background: rgba(0,229,255,0.04);
}
.op-card-title {
    padding: 10px 14px 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    color: var(--cyan);
    border-bottom: 1px solid rgba(255,255,255,0.05);
}
.op-card-body {
    padding: 10px 14px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.op-card-footer {
    padding: 8px 14px 10px;
    border-top: 1px solid rgba(255,255,255,0.04);
}
.op-card-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 12px;
}
.op-card-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
    flex-shrink: 0;
    min-width: 70px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.op-card-value {
    color: var(--text-1);
    font-size: 12px;
}
.op-val-ready { color: var(--green); }
.op-val-warn  { color: var(--amber); }
.op-card-empty {
    font-size: 11px;
    color: var(--text-3);
    font-style: italic;
    line-height: 1.5;
}
.op-card-text {
    font-size: 12px;
    color: var(--text-2);
    line-height: 1.6;
    white-space: pre-wrap;
}
.op-card-link-btn {
    margin-top: 6px;
    align-self: flex-start;
}
.op-next-action-text {
    font-size: 13px;
    color: var(--text-0);
    line-height: 1.5;
    margin-bottom: 10px;
}
.op-next-action-btn {
    align-self: flex-start;
}
.op-safety-footer {
    padding: 8px 14px;
    border-top: 1px solid rgba(0,229,255,0.1);
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.op-safety-footer span {
    font-size: 10px;
    font-family: var(--font-mono);
    color: var(--text-3);
    letter-spacing: 0.3px;
}

.op-section-page {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}
.op-section-page-header {
    padding: 0 2px 4px;
}
.op-section-page-title {
    font-family: var(--font-brand);
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--text-0);
    text-transform: uppercase;
}
.op-section-page-sub {
    font-size: 12px;
    color: var(--text-2);
    margin-top: 4px;
}
.op-section-links {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 12px;
}
.op-section-link-card {
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.op-section-link-card.op-link-muted {
    background: var(--bg-1);
    border-color: rgba(255,255,255,0.04);
    opacity: 0.7;
}
.op-link-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-0);
}
.op-link-muted .op-link-title {
    color: var(--text-2);
}
.op-link-desc {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.6;
}
.audit-debug-group {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 12px;
    padding-bottom: 4px;
}
.audit-debug-group:first-child {
    padding-top: 0;
}
.audit-debug-group-heading {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    color: var(--text-1);
    text-transform: uppercase;
    padding: 4px 2px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

/* ── Phase 34B: Operator Dashboard Polish ───────────────────────────────── */

.nav-tools-details {
    margin-top: 4px;
}
.nav-tools-summary {
    list-style: none;
    padding: 6px 10px;
    font-size: 9px;
    font-family: var(--font-mono);
    text-transform: uppercase;
    letter-spacing: 1.8px;
    color: var(--text-3);
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
    gap: 4px;
}
.nav-tools-summary::-webkit-details-marker { display: none; }
.nav-tools-summary::before {
    content: '▶';
    font-size: 7px;
    transition: transform 0.15s;
}
.nav-tools-details[open] .nav-tools-summary::before {
    transform: rotate(90deg);
}

.discovery-snapshot-status {
    margin: 0 0 14px;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-2);
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    line-height: 1.5;
}
.discovery-snapshot-status--ready {
    color: var(--green);
    border-color: rgba(74,222,128,0.25);
    background: rgba(74,222,128,0.06);
}
.discovery-snapshot-status--warn {
    color: var(--amber, #f59e0b);
    border-color: rgba(245,158,11,0.25);
    background: rgba(245,158,11,0.06);
}
.discovery-snapshot-status--empty {
    color: var(--text-3);
}

.op-director-briefing-body {
    font-size: 13px;
    line-height: 1.75;
    color: var(--text-1);
    white-space: pre-wrap;
    margin-top: 10px;
    padding: 12px 14px;
    background: rgba(255,255,255,0.04);
    border-radius: 6px;
    border: 1px solid var(--border);
    max-height: 420px;
    overflow-y: auto;
}

/* ── Phase 36O: OpenClaw Director Briefing candidate card ───────────────── */

.openclaw-candidate-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 10px;
}

.openclaw-candidate-card .card-ticker {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-1);
    margin-bottom: 4px;
}

.openclaw-candidate-card .card-lane {
    font-size: 11px;
    font-weight: 600;
    color: var(--accent);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.openclaw-candidate-card .card-field {
    font-size: 12px;
    color: var(--text-2);
    margin-bottom: 4px;
    line-height: 1.5;
}

.openclaw-candidate-card .card-field strong {
    color: var(--text-1);
}

/* ── Phase 34E: Discovery diagnostic header ─────────────────────────────── */

.discovery-diag-title {
    font-size: 13px;
    font-weight: 600;
    color: inherit;
    margin-bottom: 6px;
}
.discovery-diag-meta {
    font-size: 11px;
    color: inherit;
    opacity: 0.85;
    margin-bottom: 4px;
}
.discovery-diag-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 6px;
}
.discovery-diag-field {
    font-size: 11px;
    font-family: var(--font-mono);
    color: var(--text-2);
}
.discovery-diag-key {
    color: var(--text-3);
    margin-right: 3px;
}
.discovery-diag-blockers {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 6px;
}
.discovery-diag-blockers span {
    font-size: 10px;
    font-family: var(--font-mono);
    padding: 2px 6px;
    border-radius: 3px;
    background: rgba(239,68,68,0.12);
    color: #f87171;
    border: 1px solid rgba(239,68,68,0.2);
}
.discovery-diag-warnings {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 6px;
}
.discovery-diag-warnings span {
    font-size: 10px;
    font-family: var(--font-mono);
    padding: 2px 6px;
    border-radius: 3px;
    background: rgba(245,158,11,0.1);
    color: var(--amber, #f59e0b);
    border: 1px solid rgba(245,158,11,0.2);
}
.discovery-diag-refresh {
    margin-bottom: 8px;
}
.discovery-diag-safety {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 6px;
}
.discovery-diag-label {
    font-size: 9px;
    font-family: var(--font-mono);
    letter-spacing: 0.08em;
    padding: 2px 6px;
    border-radius: 3px;
    background: rgba(255,255,255,0.05);
    color: var(--text-3);
    border: 1px solid rgba(255,255,255,0.08);
}

/* ── Phase 34H: Confirmed auto-load section ── */
.autoload-section {
    margin: 10px 0;
    padding: 12px 14px;
    border-radius: 6px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
}
.autoload-unavailable {
    color: var(--text-3);
    font-size: 13px;
}
.autoload-error {
    border-color: rgba(239,68,68,0.3);
    background: rgba(239,68,68,0.06);
}
.autoload-success {
    border-color: rgba(16,185,129,0.3);
    background: rgba(16,185,129,0.06);
}
.autoload-loading {
    color: var(--text-3);
}
.autoload-trigger,
.autoload-confirm {
    border-color: rgba(14,165,233,0.2);
    background: rgba(14,165,233,0.04);
}
.autoload-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-1, #e2e8f0);
    margin-bottom: 6px;
}
.autoload-msg {
    font-size: 13px;
    color: var(--text-2);
    margin-bottom: 8px;
}
.autoload-meta {
    font-size: 12px;
    color: var(--text-3);
    margin-top: 4px;
}
.autoload-success-msg {
    font-size: 13px;
    font-weight: 600;
    color: var(--green, #10b981);
    margin-bottom: 4px;
}
.autoload-fields {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
    font-size: 11px;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.autoload-field {
    padding: 2px 6px;
    border-radius: 3px;
    background: rgba(255,255,255,0.04);
}
.autoload-safety-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: 8px 0;
}
.autoload-safety-label {
    font-size: 9px;
    font-family: var(--font-mono);
    letter-spacing: 0.08em;
    padding: 2px 6px;
    border-radius: 3px;
    background: rgba(255,255,255,0.05);
    color: var(--text-3);
    border: 1px solid rgba(255,255,255,0.08);
}
.autoload-confirm-label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 10px 0 6px;
    font-size: 13px;
    color: var(--text-1, #e2e8f0);
    cursor: pointer;
}
.autoload-confirm-context {
    font-size: 11px;
    color: var(--text-3);
    margin-bottom: 10px;
    line-height: 1.6;
}
.autoload-btn-disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

/* ── Phase 35B: Prompted Morning Dashboard Build ─────────────────────── */
.prompted-build-section {
    border-top: 1px solid rgba(255,255,255,0.06);
    margin-top: 10px;
    padding-top: 12px;
}
.prompted-build-prompt {
    font-size: 14px;
    font-weight: 600;
    color: var(--text-1, #e2e8f0);
    margin: 10px 0 8px;
}
.prompted-build-safety-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin: 8px 0;
}
.prompted-build-safety-label {
    font-size: 9px;
    font-family: var(--font-mono);
    letter-spacing: 0.08em;
    padding: 2px 6px;
    border-radius: 3px;
    background: rgba(255,255,255,0.05);
    color: var(--text-3);
    border: 1px solid rgba(255,255,255,0.08);
}
.prompted-build-confirm-label {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 10px 0 6px;
    font-size: 13px;
    color: var(--text-1, #e2e8f0);
    cursor: pointer;
}
.prompted-build-confirm-label input[type="checkbox"] {
    margin-top: 2px;
    flex-shrink: 0;
}
.prompted-build-confirm-context {
    font-size: 11px;
    color: var(--text-3);
    margin-bottom: 10px;
    line-height: 1.6;
}
.prompted-build-btn-disabled {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}
.prompted-build-success {
    font-size: 13px;
    font-weight: 600;
    color: var(--green, #68d391);
    margin-bottom: 6px;
}
.prompted-build-error {
    font-size: 12px;
    color: var(--red, #fc8181);
    margin-top: 8px;
}

/* ── Phase 37G: Single-source live read UI ──────────────────────────────── */

.op-link-safety-note {
    font-size: 10px;
    color: var(--text-3);
    line-height: 1.6;
    padding: 4px 0;
}
.op-link-error {
    font-size: 11px;
    color: var(--red, #fc8181);
    margin-top: 4px;
}
.op-link-status {
    font-size: 11px;
    color: var(--green, #68d391);
    margin-top: 4px;
}
.sslr-safety-labels {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding: 4px 0;
}
.sslr-label {
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--text-2);
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 3px;
    padding: 2px 5px;
    white-space: nowrap;
}
.sslr-controls {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
}
.sslr-control-label {
    font-size: 11px;
    color: var(--text-2);
}
.sslr-select {
    font-size: 11px;
    background: var(--bg-3, #2d3748);
    color: var(--text-1);
    border: 1px solid var(--border);
    border-radius: 3px;
    padding: 2px 6px;
}
.sslr-results {
    margin-top: 10px;
    padding: 10px 14px;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.sslr-results-header {
    display: flex;
    align-items: baseline;
    gap: 8px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    padding-bottom: 6px;
}
.sslr-results-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-0);
}
.sslr-results-meta {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
}
.sslr-blockers {
    font-size: 11px;
    color: var(--red, #fc8181);
}
.sslr-warnings {
    font-size: 11px;
    color: var(--yellow, #f6e05e);
}
.sslr-no-candidates {
    font-size: 11px;
    color: var(--text-3);
    font-style: italic;
}
.sslr-candidate-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.sslr-candidate-card {
    background: var(--bg-3, #2d3748);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: var(--radius);
    padding: 10px 12px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.sslr-candidate-ticker {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
    font-family: var(--font-mono);
}
.sslr-candidate-company {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-1);
}
.sslr-candidate-field {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}
.sslr-field-label {
    font-weight: 600;
    color: var(--text-1);
}
.sslr-source-link {
    color: var(--blue, #63b3ed);
    text-decoration: none;
    word-break: break-all;
}
.sslr-source-link:hover { text-decoration: underline; }
.sslr-snippets {
    margin: 2px 0 0 14px;
    padding: 0;
    font-size: 10px;
    color: var(--text-3);
    line-height: 1.5;
}
.sslr-rejected-count {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
}
.sslr-next-action {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding-top: 6px;
    margin-top: 2px;
}
.sslr-validate-btn {
    background: rgba(99,179,237,0.12);
    border: 1px solid rgba(99,179,237,0.35);
    color: var(--accent-1, #63b3ed);
    font-size: 11px;
    padding: 5px 14px;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.15s;
}
.sslr-validate-btn:hover:not(:disabled) {
    background: rgba(99,179,237,0.22);
}
.sslr-validate-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.sslrv-empty-note {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    margin-left: 8px;
}
.sslrv-loading {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    margin-left: 8px;
}
.sslrv-error {
    font-size: 10px;
    color: #fc8181;
    margin-left: 8px;
}
.sslrv-results {
    margin-top: 10px;
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 8px;
}
.sslrv-results-header {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 6px;
}
.sslrv-results-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-1);
}
.sslrv-results-meta {
    font-size: 10px;
    color: var(--text-3);
}
.sslrv-blockers {
    font-size: 10px;
    color: #fc8181;
    margin-bottom: 6px;
}
.sslrv-no-candidates {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
}
.sslrv-section-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-2);
    margin: 6px 0 2px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sslrv-candidate-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sslrv-candidate-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 4px;
    padding: 7px 10px;
    font-size: 11px;
}
.sslrv-candidate-validated {
    border-color: rgba(72,187,120,0.35);
}
.sslrv-candidate-rejected {
    border-color: rgba(252,129,129,0.25);
}
.sslrv-candidate-ticker {
    font-weight: 700;
    color: var(--text-1);
    font-size: 12px;
}
.sslrv-candidate-company {
    font-size: 10px;
    color: var(--text-2);
    margin-bottom: 4px;
}
.sslrv-candidate-field {
    font-size: 10px;
    color: var(--text-2);
    margin-top: 2px;
}
.sslrv-field-label {
    color: var(--text-3);
    font-weight: 600;
}
.sslrv-rejection-reasons {
    color: #fc8181;
}
.sslrv-next-action {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding-top: 6px;
    margin-top: 6px;
}
.sslrv-score-btn {
    background: rgba(154,205,137,0.12);
    border: 1px solid rgba(154,205,137,0.35);
    color: #9acd89;
    font-size: 11px;
    padding: 5px 14px;
    border-radius: 4px;
    cursor: pointer;
    transition: background 0.15s;
}
.sslrv-score-btn:hover:not(:disabled) {
    background: rgba(154,205,137,0.22);
}
.sslrv-score-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.sslrs-empty-note {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    margin-left: 8px;
}
.sslrs-loading {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    margin-left: 8px;
}
.sslrs-error {
    font-size: 10px;
    color: #fc8181;
    margin-left: 8px;
}
.sslrs-context {
    font-size: 10px;
    color: var(--text-3);
    margin-top: 5px;
}
.sslrs-safety-copy {
    font-size: 9px;
    color: var(--text-3);
    margin: 4px 0 0 12px;
    padding: 0;
    list-style: disc;
    line-height: 1.5;
}
.sslrs-results {
    margin-top: 10px;
    border-top: 1px solid rgba(255,255,255,0.08);
    padding-top: 8px;
}
.sslrs-results-header {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 6px;
}
.sslrs-results-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-1);
}
.sslrs-results-meta {
    font-size: 10px;
    color: var(--text-3);
}
.sslrs-blockers {
    font-size: 10px;
    color: #fc8181;
    margin-bottom: 6px;
}
.sslrs-warnings {
    font-size: 10px;
    color: #f6ad55;
    margin-bottom: 4px;
}
.sslrs-no-candidates {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
}
.sslrs-section-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-2);
    margin: 6px 0 2px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sslrs-candidate-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.sslrs-candidate-card {
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(154,205,137,0.25);
    border-radius: 4px;
    padding: 7px 10px;
    font-size: 11px;
}
.sslrs-candidate-ticker {
    font-weight: 700;
    color: var(--text-1);
    font-size: 12px;
}
.sslrs-candidate-company {
    font-size: 10px;
    color: var(--text-2);
    margin-bottom: 4px;
}
.sslrs-market {
    font-size: 9px;
    color: var(--text-3);
    margin-left: 4px;
}
.sslrs-candidate-band {
    font-size: 10px;
    font-weight: 600;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.sslrs-band-strong { color: #48bb78; }
.sslrs-band-moderate { color: #9acd89; }
.sslrs-band-weak { color: #f6ad55; }
.sslrs-band-poor { color: #fc8181; }
.sslrs-scores {
    margin-top: 4px;
}
.sslrs-score-row {
    display: flex;
    justify-content: space-between;
    font-size: 10px;
    color: var(--text-2);
    margin-top: 1px;
}
.sslrs-score-label {
    color: var(--text-3);
}
.sslrs-score-val {
    font-weight: 600;
    color: var(--text-1);
}
.sslrs-explanation {
    font-size: 9px;
    color: var(--text-3);
    margin-top: 4px;
    font-style: italic;
}
.sslrs-next-action {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding-top: 6px;
    margin-top: 6px;
}

/* ── Phase 37S: single-source lane assignment handoff ──────────────────── */
.ssla-section {
    margin-top: 10px;
    padding: 10px 12px;
    background: rgba(255,255,255,0.03);
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 6px;
}
.ssla-assign-btn {
    background: #2a6496;
    color: #fff;
    border: none;
    border-radius: 4px;
    padding: 5px 12px;
    font-size: 11px;
    cursor: pointer;
    margin-bottom: 6px;
}
.ssla-assign-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
.ssla-assign-btn:not(:disabled):hover {
    background: #3277ad;
}
.ssla-empty-note {
    font-size: 10px;
    color: var(--text-3);
    margin-left: 8px;
}
.ssla-context {
    font-size: 10px;
    color: var(--text-3);
    margin-bottom: 6px;
}
.ssla-safety-copy {
    font-size: 9px;
    color: var(--text-3);
    padding-left: 16px;
    margin: 0 0 8px 0;
}
.ssla-safety-copy li {
    margin-bottom: 2px;
}
.ssla-loading {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    margin: 4px 0;
}
.ssla-error {
    font-size: 10px;
    color: #e06c6c;
    background: rgba(224,108,108,0.08);
    border-radius: 3px;
    padding: 4px 8px;
    margin: 4px 0;
}
.ssla-results {
    margin-top: 8px;
}
.ssla-results-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}
.ssla-results-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-1);
}
.ssla-results-meta {
    font-size: 9px;
    color: var(--text-3);
}
.ssla-blockers {
    font-size: 10px;
    color: #e06c6c;
    margin-bottom: 4px;
}
.ssla-warnings {
    font-size: 10px;
    color: #e0b46c;
    margin-bottom: 4px;
}
.ssla-no-candidates {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
}
.ssla-section-label {
    font-size: 10px;
    font-weight: 600;
    color: var(--text-2);
    margin: 8px 0 4px 0;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.ssla-rejected-label {
    color: #e06c6c;
}
.ssla-candidate-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.ssla-candidate-card {
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: 5px;
    padding: 7px 10px;
}
.ssla-candidate-rejected {
    opacity: 0.6;
    border-color: rgba(224,108,108,0.3);
}
.ssla-candidate-ticker {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-1);
}
.ssla-candidate-company {
    font-size: 10px;
    color: var(--text-2);
    margin-bottom: 4px;
}
.ssla-market {
    font-size: 9px;
    color: var(--text-3);
}
.ssla-lane-badge {
    display: inline-block;
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: 2px 6px;
    border-radius: 3px;
    margin-bottom: 4px;
    background: rgba(255,255,255,0.08);
    color: var(--text-2);
}
.ssla-lane-reject { background: rgba(224,108,108,0.18); color: #e06c6c; }
.ssla-lane-research { background: rgba(97,175,239,0.18); color: #61afef; }
.ssla-lane-watchlist { background: rgba(224,180,108,0.18); color: #e0b46c; }
.ssla-lane-paper-eligible-review { background: rgba(152,195,121,0.18); color: #98c379; }
.ssla-lane-live-review-only { background: rgba(198,120,221,0.18); color: #c678dd; }
.ssla-band {
    font-size: 9px;
    color: var(--text-3);
    margin-bottom: 3px;
}
.ssla-lane-reason {
    font-size: 10px;
    color: var(--text-2);
    margin-bottom: 3px;
}
.ssla-suppression {
    font-size: 9px;
    color: #e06c6c;
    margin-bottom: 2px;
}
.ssla-lane-warning {
    font-size: 9px;
    color: #e0b46c;
    margin-bottom: 2px;
}
.ssla-scores {
    display: flex;
    flex-direction: column;
    gap: 1px;
    margin-top: 4px;
}
.ssla-score-row {
    display: flex;
    justify-content: space-between;
    font-size: 9px;
}
.ssla-score-label { color: var(--text-3); }
.ssla-score-val { color: var(--text-2); font-weight: 500; }
.ssla-risk-notes {
    font-size: 9px;
    color: var(--text-3);
    font-style: italic;
    margin-top: 4px;
    border-top: 1px solid rgba(255,255,255,0.05);
    padding-top: 3px;
}
.ssla-next-action {
    font-size: 10px;
    color: var(--text-3);
    font-style: italic;
    border-top: 1px solid rgba(255,255,255,0.06);
    padding-top: 6px;
    margin-top: 6px;
}

.ssdb-section {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.ssdb-build-btn {
    padding: 8px 12px;
    border: 1px solid rgba(0, 229, 255, 0.35);
    border-radius: var(--radius-sm);
    background: rgba(0, 229, 255, 0.08);
    color: var(--text-0);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ssdb-build-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ssdb-build-btn:not(:disabled):hover {
    background: rgba(0, 229, 255, 0.14);
}

.ssdb-empty-note,
.ssdb-loading,
.ssdb-error,
.ssdb-context,
.ssdb-safety-copy,
.ssdb-results,
.ssdb-blockers,
.ssdb-warnings,
.ssdb-safety-flags,
.ssdb-next-action,
.ssdb-rejected-item,
.ssdb-summary,
.ssdb-field {
    margin-top: 8px;
}

.ssdb-empty-note,
.ssdb-loading,
.ssdb-context,
.ssdb-safety-flags,
.ssdb-summary,
.ssdb-field,
.ssdb-rejected-item,
.ssdb-next-action {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.ssdb-error,
.ssdb-blockers {
    color: #fca5a5;
}

.ssdb-safety-copy {
    padding-left: 18px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.5;
}

.ssdb-results {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.72);
}

.ssdb-results-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.ssdb-results-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssdb-results-meta,
.ssdb-field-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.ssdb-section-label {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-3);
}

.ssdb-candidate-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    margin-top: 8px;
}

.ssdb-candidate-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

.ssdb-candidate-ticker {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssdb-candidate-company,
.ssdb-headline {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-1);
}

.ssdb-market {
    color: var(--text-3);
}

.ssdb-lane-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(0, 229, 255, 0.1);
    color: var(--cyan);
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
}

.ssdb-rejected-label {
    color: var(--amber);
}

.ssdb-rejected-list {
    margin-top: 8px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.5);
}

.sspr-section {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.sspr-build-btn {
    padding: 8px 12px;
    border: 1px solid rgba(0, 229, 255, 0.35);
    border-radius: var(--radius-sm);
    background: rgba(0, 229, 255, 0.08);
    color: var(--text-0);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.sspr-build-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.sspr-build-btn:not(:disabled):hover {
    background: rgba(0, 229, 255, 0.14);
}

.sspr-empty-note,
.sspr-loading,
.sspr-error,
.sspr-context,
.sspr-safety-copy,
.sspr-results,
.sspr-blockers,
.sspr-warnings,
.sspr-safety-flags,
.sspr-next-action,
.sspr-rejected-item,
.sspr-summary,
.sspr-field {
    margin-top: 8px;
}

.sspr-empty-note,
.sspr-loading,
.sspr-context,
.sspr-safety-flags,
.sspr-summary,
.sspr-field,
.sspr-rejected-item,
.sspr-next-action {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.sspr-error,
.sspr-blockers {
    color: #fca5a5;
}

.sspr-safety-copy {
    padding-left: 18px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.5;
}

.sspr-results {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.72);
}

.sspr-results-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.sspr-results-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.sspr-results-meta,
.sspr-field-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.sspr-section-label {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-3);
}

.sspr-candidate-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    margin-top: 8px;
}

.sspr-candidate-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

.sspr-candidate-ticker {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.sspr-candidate-company {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-1);
}

.sspr-market {
    color: var(--text-3);
}

.sspr-lane-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(0, 229, 255, 0.1);
    color: var(--cyan);
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
}

.sspr-rejected-label {
    color: var(--amber);
}

.sspr-rejected-list {
    margin-top: 8px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.5);
}

.ssptdp-section {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.ssptdp-build-btn {
    padding: 8px 12px;
    border: 1px solid rgba(34, 197, 94, 0.35);
    border-radius: var(--radius-sm);
    background: rgba(34, 197, 94, 0.08);
    color: var(--text-0);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ssptdp-build-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ssptdp-build-btn:not(:disabled):hover {
    background: rgba(34, 197, 94, 0.14);
}

.ssptdp-empty-note,
.ssptdp-loading,
.ssptdp-error,
.ssptdp-context,
.ssptdp-safety-copy,
.ssptdp-results,
.ssptdp-blockers,
.ssptdp-warnings,
.ssptdp-safety-flags,
.ssptdp-next-action,
.ssptdp-rejected-item,
.ssptdp-summary,
.ssptdp-field {
    margin-top: 8px;
}

.ssptdp-empty-note,
.ssptdp-loading,
.ssptdp-context,
.ssptdp-safety-flags,
.ssptdp-summary,
.ssptdp-field,
.ssptdp-rejected-item,
.ssptdp-next-action {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.ssptdp-error,
.ssptdp-blockers {
    color: #fca5a5;
}

.ssptdp-safety-copy {
    padding-left: 18px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.5;
}

.ssptdp-results {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.72);
}

.ssptdp-results-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.ssptdp-results-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssptdp-results-meta,
.ssptdp-field-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.ssptdp-section-label {
    margin-top: 12px;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--text-3);
}

.ssptdp-candidate-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

.ssptdp-candidate-ticker {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssptdp-candidate-company {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-1);
}

.ssptdp-market {
    color: var(--text-3);
}

.ssptdp-lane-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.1);
    color: #86efac;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
}

.ssptdp-rejected-list {
    margin-top: 8px;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.5);
}

.ssptp-section {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.ssptp-build-btn {
    padding: 8px 12px;
    border: 1px solid rgba(59, 130, 246, 0.4);
    border-radius: var(--radius-sm);
    background: rgba(59, 130, 246, 0.08);
    color: var(--text-0);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ssptp-build-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ssptp-build-btn:not(:disabled):hover {
    background: rgba(59, 130, 246, 0.14);
}

.ssptp-empty-note,
.ssptp-loading,
.ssptp-error,
.ssptp-context,
.ssptp-safety-copy,
.ssptp-results,
.ssptp-blockers,
.ssptp-safety-flags,
.ssptp-next-action,
.ssptp-field {
    margin-top: 8px;
}

.ssptp-empty-note,
.ssptp-loading,
.ssptp-context,
.ssptp-safety-flags,
.ssptp-field,
.ssptp-next-action {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.ssptp-error,
.ssptp-blockers {
    color: #fca5a5;
}

.ssptp-safety-copy {
    padding-left: 18px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.5;
}

.ssptp-results {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.72);
}

.ssptp-results-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.ssptp-results-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssptp-results-meta,
.ssptp-field-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.ssptp-candidate-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

.ssptp-candidate-ticker {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssptp-candidate-company {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-1);
}

.ssptp-market {
    color: var(--text-3);
}

.ssptp-lane-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(59, 130, 246, 0.12);
    color: #93c5fd;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
}

.ssnp-section {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.ssnp-build-btn {
    padding: 8px 12px;
    border: 1px solid rgba(34, 197, 94, 0.4);
    border-radius: var(--radius-sm);
    background: rgba(34, 197, 94, 0.08);
    color: var(--text-0);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ssnp-build-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ssnp-build-btn:not(:disabled):hover {
    background: rgba(34, 197, 94, 0.14);
}

.ssnp-empty-note,
.ssnp-loading,
.ssnp-error,
.ssnp-context,
.ssnp-safety-copy,
.ssnp-results,
.ssnp-blockers,
.ssnp-warnings,
.ssnp-safety-flags,
.ssnp-next-action,
.ssnp-field {
    margin-top: 8px;
}

.ssnp-empty-note,
.ssnp-loading,
.ssnp-context,
.ssnp-safety-flags,
.ssnp-field,
.ssnp-next-action {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.ssnp-error,
.ssnp-blockers {
    color: #fca5a5;
}

.ssnp-warnings {
    color: #facc15;
}

.ssnp-safety-copy {
    padding-left: 18px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.5;
}

.ssnp-results {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.72);
}

.ssnp-results-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.ssnp-results-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssnp-results-meta,
.ssnp-field-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.ssnp-candidate-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

.ssnp-candidate-ticker {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssnp-candidate-company {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-1);
}

.ssnp-market {
    color: var(--text-3);
}

.ssnp-lane-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(34, 197, 94, 0.12);
    color: #86efac;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
}

.ssns-section {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.ssns-send-btn {
    padding: 8px 12px;
    border: 1px solid rgba(245, 158, 11, 0.42);
    border-radius: var(--radius-sm);
    background: rgba(245, 158, 11, 0.08);
    color: var(--text-0);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ssns-send-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.ssns-send-btn:not(:disabled):hover {
    background: rgba(245, 158, 11, 0.14);
}

.ssns-empty-note,
.ssns-loading,
.ssns-error,
.ssns-context,
.ssns-safety-copy,
.ssns-results,
.ssns-blockers,
.ssns-warnings,
.ssns-safety-flags,
.ssns-next-action,
.ssns-field {
    margin-top: 8px;
}

.ssns-empty-note,
.ssns-loading,
.ssns-context,
.ssns-safety-flags,
.ssns-field,
.ssns-next-action {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.ssns-error,
.ssns-blockers {
    color: #fca5a5;
}

.ssns-warnings {
    color: #facc15;
}

.ssns-safety-copy {
    padding-left: 18px;
    color: var(--text-2);
    font-size: 11px;
    line-height: 1.5;
}

.ssns-results {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.72);
}

.ssns-results-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.ssns-results-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssns-results-meta,
.ssns-field-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.ssns-candidate-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

.ssns-candidate-ticker {
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.ssns-candidate-company {
    margin-top: 4px;
    font-size: 11px;
    color: var(--text-1);
}

.ssns-market {
    color: var(--text-3);
}

.ssns-lane-badge {
    display: inline-block;
    margin-top: 6px;
    padding: 3px 8px;
    border-radius: 999px;
    background: rgba(245, 158, 11, 0.12);
    color: #fbbf24;
    font-family: var(--font-mono);
    font-size: 10px;
    text-transform: uppercase;
}

.sslp-section {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
}

.sslp-build-btn {
    padding: 8px 12px;
    border: 1px solid rgba(56, 189, 248, 0.42);
    border-radius: var(--radius-sm);
    background: rgba(56, 189, 248, 0.08);
    color: var(--text-0);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.sslp-build-btn:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.sslp-build-btn:not(:disabled):hover {
    background: rgba(56, 189, 248, 0.14);
}

.sslp-controls {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 8px;
    margin-top: 10px;
}

.sslp-controls label {
    display: grid;
    gap: 4px;
    font-size: 11px;
    color: var(--text-2);
}

.sslp-controls input,
.sslp-controls select {
    min-width: 0;
    padding: 6px 8px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.8);
    color: var(--text-0);
    font-size: 12px;
}

.sslp-empty-note,
.sslp-loading,
.sslp-error,
.sslp-context,
.sslp-results,
.sslp-blockers,
.sslp-warnings,
.sslp-safety-flags,
.sslp-next-action,
.sslp-section-label,
.sslp-summary,
.sslp-rejected-list {
    margin-top: 8px;
}

.sslp-empty-note,
.sslp-loading,
.sslp-context,
.sslp-safety-flags,
.sslp-next-action,
.sslp-summary,
.sslp-rejected-item {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
}

.sslp-error,
.sslp-blockers {
    color: #fca5a5;
}

.sslp-warnings {
    color: #facc15;
}

.sslp-results {
    padding: 12px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(10, 15, 26, 0.72);
}

.sslp-results-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 8px;
}

.sslp-results-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-0);
}

.sslp-results-meta,
.sslp-section-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

.sslp-report-card {
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: rgba(15, 23, 42, 0.72);
}

/* ══════════════════════════════════════════════════════════════════════════
   TOM MODE — Product Shell  (Phase 44E)
   ══════════════════════════════════════════════════════════════════════════ */

/* Safety banner — always visible at the top of every Tom Mode page */
.tom-safety-banner {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    background: rgba(15, 23, 42, 0.85);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-2);
    flex-wrap: wrap;
    flex-shrink: 0;
}

.tom-safety-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.tom-safety-item svg {
    flex-shrink: 0;
    opacity: 0.7;
}

.tom-safety-closed {
    color: var(--red);
}

.tom-safety-sep {
    color: var(--text-3);
    font-size: 13px;
    line-height: 1;
}

/* Page container */
.tom-mode-page {
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
}

/* Page header */
.tom-page-header {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}

.tom-page-title {
    font-family: var(--font-brand);
    font-size: 20px;
    font-weight: 700;
    color: var(--text-0);
    letter-spacing: 0.02em;
}

.tom-page-sub {
    font-size: 12px;
    color: var(--text-3);
    font-family: var(--font-sans);
}

/* Section within a Tom Mode page */
.tom-section {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tom-section-label {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

/* Phase 47Q - Tom-facing pipeline orientation */
.tom-orientation-panel {
    border-top: 1px solid rgba(99, 179, 237, 0.12);
    padding-top: 2px;
}
.tom-orientation-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.8fr);
    gap: 14px;
}
.tom-orientation-main,
.tom-orientation-side {
    min-width: 0;
}
.tom-orientation-title {
    color: var(--text-1);
    font-size: 16px;
    font-weight: 650;
    margin-bottom: 6px;
}
.tom-orientation-copy {
    color: var(--text-2);
    font-size: 12px;
    line-height: 1.55;
    max-width: 900px;
}
.tom-orientation-copy-muted {
    color: var(--text-3);
    margin-top: 5px;
}
.tom-orientation-stages {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-top: 14px;
}
.tom-orientation-stage {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 8px;
    align-items: start;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    padding: 9px;
    background: rgba(255, 255, 255, 0.018);
}
.tom-orientation-step {
    width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(99, 179, 237, 0.10);
    border: 1px solid rgba(99, 179, 237, 0.18);
    color: var(--text-2);
    font-size: 11px;
    font-family: var(--font-mono);
}
.tom-orientation-stage-title {
    color: var(--text-1);
    font-size: 12px;
    font-weight: 600;
}
.tom-orientation-stage-detail {
    color: var(--text-3);
    font-size: 11px;
    line-height: 1.4;
    margin-top: 2px;
}
.tom-orientation-state {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    padding: 10px;
    margin-bottom: 8px;
    background: rgba(15, 23, 42, 0.42);
}
.tom-orientation-state-label {
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    font-size: 10px;
    font-weight: 600;
    margin-bottom: 5px;
}
.tom-orientation-state-value {
    color: var(--text-1);
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 4px;
}
.tom-orientation-state-detail {
    color: var(--text-3);
    font-size: 11px;
    line-height: 1.45;
}
.tom-orientation-roles {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}
.tom-orientation-role {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 6px;
    padding: 8px 10px;
    background: rgba(255, 255, 255, 0.018);
}
.tom-orientation-role-link {
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}
.tom-orientation-role-link:hover {
    border-color: rgba(0, 229, 255, 0.24);
    background: rgba(0, 229, 255, 0.035);
}
.tom-orientation-role-label {
    color: var(--text-1);
    font-size: 12px;
    font-weight: 600;
}
.tom-orientation-role-detail {
    color: var(--text-3);
    font-size: 11px;
    line-height: 1.35;
    margin-top: 2px;
}
@media (max-width: 980px) {
    .tom-orientation-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 720px) {
    .tom-orientation-stages {
        grid-template-columns: 1fr;
    }
}

/* Info card (used on Risk/Performance/Source Health for status rows) */
.tom-card {
    background: rgba(15, 23, 42, 0.72);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.tom-card-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.tom-card-label {
    font-size: 12px;
    color: var(--text-1);
    font-family: var(--font-sans);
}

/* Status badges */
.tom-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 10px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.tom-badge-ok {
    background: rgba(16, 185, 129, 0.12);
    color: var(--green);
    border: 1px solid rgba(16, 185, 129, 0.25);
}

.tom-badge-closed {
    background: rgba(239, 68, 68, 0.10);
    color: var(--red);
    border: 1px solid rgba(239, 68, 68, 0.22);
}

.tom-badge-warn {
    background: rgba(245, 158, 11, 0.10);
    color: var(--amber);
    border: 1px solid rgba(245, 158, 11, 0.22);
}

/* Empty state */
.tom-empty {
    background: rgba(15, 23, 42, 0.55);
    border: 1px dashed var(--border);
    border-radius: var(--radius);
    padding: 24px 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.tom-empty-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text-1);
}

.tom-empty-body {
    font-size: 12px;
    color: var(--text-3);
    line-height: 1.6;
    max-width: 520px;
}

/* Link button to Audit/Debug */
.tom-debug-link {
    margin-top: 8px;
    font-size: 11px;
    color: var(--cyan);
    background: transparent;
    border: 1px solid rgba(6, 182, 212, 0.3);
    padding: 4px 12px;
    border-radius: var(--radius-sm);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}

.tom-debug-link:hover {
    background: rgba(6, 182, 212, 0.08);
    border-color: var(--cyan);
}

/* ══════════════════════════════════════════════════════════════════════════
   AUDIT/DEBUG CONSOLIDATION — Phase 44H
   12-section organised workspace. adcg- prefix = audit-debug-consolidation.
   ══════════════════════════════════════════════════════════════════════════ */

/* Section container */
.adcg-section {
    display: flex;
    flex-direction: column;
    gap: 0;
    border: 1px solid rgba(255,255,255,0.07);
    border-radius: var(--radius, 6px);
    background: rgba(15,23,42,0.55);
    margin-bottom: 10px;
    overflow: hidden;
}

/* Section header bar */
.adcg-section-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 14px;
    background: rgba(255,255,255,0.04);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}

.adcg-section-number {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    color: var(--text-3, #64748b);
    background: rgba(255,255,255,0.06);
    padding: 2px 7px;
    border-radius: 10px;
    letter-spacing: 0.04em;
    min-width: 22px;
    text-align: center;
}

.adcg-section-title {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-1, #cbd5e1);
}

/* Safety label bar */
.adcg-safety-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 6px;
    padding: 5px 14px;
    background: rgba(15,23,42,0.4);
    border-bottom: 1px solid rgba(255,255,255,0.04);
    font-family: var(--font-mono);
    font-size: 10px;
}

.adcg-safety-item {
    color: var(--text-2, #94a3b8);
}

.adcg-safety-item.adcg-safety-closed {
    color: var(--red, #f87171);
}

.adcg-safety-item.adcg-safety-ok {
    color: var(--green, #34d399);
}

.adcg-safety-sep {
    color: var(--text-3, #64748b);
}

/* Section body */
.adcg-section-body {
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Status grid (for Overview and Paper/Trade Safety status displays) */
.adcg-status-grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 4px;
}

.adcg-status-item {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 12px;
    padding: 3px 0;
    border-bottom: 1px solid rgba(255,255,255,0.04);
}

.adcg-status-item:last-child {
    border-bottom: none;
}

.adcg-status-label {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 600;
    color: var(--text-3, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    min-width: 150px;
    flex-shrink: 0;
}

.adcg-status-value {
    color: var(--text-1, #cbd5e1);
    font-size: 11px;
}

.adcg-status-value.adcg-status-closed {
    color: var(--red, #f87171);
    font-weight: 600;
}

.adcg-status-value.adcg-status-ok {
    color: var(--green, #34d399);
}

/* Section note (small explanatory text) */
.adcg-section-note {
    font-size: 10px;
    color: var(--text-3, #64748b);
    font-family: var(--font-mono);
    padding: 4px 0 0;
    line-height: 1.5;
}

/* v0.1 placeholder card */
.adcg-placeholder {
    background: rgba(15,23,42,0.55);
    border: 1px dashed rgba(255,255,255,0.10);
    border-radius: var(--radius, 6px);
    padding: 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.adcg-placeholder-title {
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-2, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.adcg-placeholder-body {
    font-size: 11px;
    color: var(--text-3, #64748b);
    line-height: 1.6;
}

/* ══════════════════════════════════════════════════════════════════════════
   AGENT WORKSPACE — Phase 45F v0.1
   Read-only static shell. aw- prefix. No live data, no controls.
   ══════════════════════════════════════════════════════════════════════════ */

/* Status summary strip */
.aw-status-summary {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.aw-status-card {
    background: rgba(15, 23, 42, 0.72);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 18px;
    min-width: 90px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.aw-status-count {
    font-family: var(--font-brand);
    font-size: 22px;
    font-weight: 700;
    color: var(--text-1);
    line-height: 1;
}

.aw-status-card-label {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: center;
}

.aw-count-running  { color: var(--cyan); }
.aw-count-blocked  { color: var(--red); }
.aw-count-pending  { color: var(--amber); }

/* Category grouping */
.aw-category {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 14px;
}

.aw-category-label {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    color: var(--cyan);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: 4px 0 4px;
    border-bottom: 1px solid rgba(0, 229, 255, 0.14);
}

/* Agent grid */
.aw-agent-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 8px;
}

/* Agent card */
.aw-agent-card {
    background: rgba(15, 23, 42, 0.65);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 5px;
    transition: border-color 0.15s;
}

.aw-agent-card:hover {
    border-color: rgba(255, 255, 255, 0.14);
}

.aw-agent-name {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-0);
    font-family: var(--font-sans);
}

.aw-agent-role {
    font-size: 11px;
    color: var(--text-3);
    line-height: 1.5;
}

.aw-agent-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.aw-agent-last-run {
    font-family: var(--font-mono);
    font-size: 10px;
    color: var(--text-3);
}

/* Agent status badges */
.aw-status-badge {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: 10px;
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.aw-status-not-scheduled {
    background: rgba(72, 79, 88, 0.16);
    color: var(--text-3);
    border: 1px solid rgba(72, 79, 88, 0.30);
}

.aw-status-running {
    background: rgba(0, 229, 255, 0.10);
    color: var(--cyan);
    border: 1px solid rgba(0, 229, 255, 0.25);
}

.aw-status-blocked {
    background: rgba(255, 77, 106, 0.10);
    color: var(--red);
    border: 1px solid rgba(255, 77, 106, 0.22);
}

.aw-status-error {
    background: rgba(255, 181, 69, 0.10);
    color: var(--amber);
    border: 1px solid rgba(255, 181, 69, 0.22);
}

.aw-status-idle {
    background: rgba(0, 220, 130, 0.08);
    color: var(--green);
    border: 1px solid rgba(0, 220, 130, 0.20);
}

/* Handoff path */
.aw-handoff-path {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    padding: 14px 18px;
    background: rgba(15, 23, 42, 0.55);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.aw-handoff-step {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.aw-handoff-step-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-1);
    font-family: var(--font-sans);
}

.aw-handoff-step-sub {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
}

.aw-handoff-arrow {
    font-family: var(--font-mono);
    font-size: 14px;
    color: var(--text-3);
    flex-shrink: 0;
    padding-bottom: 10px;
}

/* Audit/Debug escape hatch */
.aw-escape-hatch {
    background: rgba(15, 23, 42, 0.55);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
}

.aw-escape-body {
    font-size: 12px;
    color: var(--text-2);
    line-height: 1.55;
    max-width: 560px;
}

/* Future / Gated agent card and badge (Phase 45H) */
.aw-agent-card-gated {
    opacity: 0.72;
    border-style: dashed;
}

.aw-agent-card-gated:hover {
    opacity: 0.85;
    border-color: rgba(255, 181, 69, 0.25);
}

.aw-status-future-gated {
    background: rgba(255, 181, 69, 0.08);
    color: var(--amber);
    border: 1px solid rgba(255, 181, 69, 0.22);
}

/* Future / Gated category label variant */
.aw-category-label-gated {
    color: var(--amber);
    border-bottom-color: rgba(255, 181, 69, 0.14);
}

/* Future / Gated status count chip */
.aw-count-gated { color: var(--amber); }

/* ══════════════════════════════════════════════════════════════════════════
   DERIVED OUTPUT BRIDGE — Phase 45L
   aw-bridge-* prefix. Read-only. Session-derived. Not persisted.
   No backend calls on render. No invented data.
   ══════════════════════════════════════════════════════════════════════════ */

/* Bridge notice block */
.aw-bridge-notice {
    background: rgba(99, 179, 237, 0.06);
    border: 1px solid rgba(99, 179, 237, 0.16);
    border-radius: var(--radius);
    padding: 14px 16px;
    margin-bottom: 12px;
}

.aw-bridge-notice-title {
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 6px;
}

.aw-bridge-notice-body {
    font-size: 0.83rem;
    color: var(--muted);
    line-height: 1.55;
}

/* Bridge agent row (overview list) */
.aw-bridge-agent-list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.aw-bridge-agent-row {
    display: flex;
    align-items: baseline;
    gap: 12px;
    padding: 8px 10px;
    border-radius: calc(var(--radius) - 2px);
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--border);
    font-size: 0.82rem;
    flex-wrap: wrap;
}

.aw-bridge-row-gated {
    opacity: 0.6;
    border-color: rgba(255, 181, 69, 0.18);
}

.aw-bridge-agent-name {
    font-weight: 600;
    color: var(--text);
    white-space: nowrap;
    min-width: 200px;
}

.aw-bridge-agent-surface {
    color: var(--muted);
    font-size: 0.79rem;
    min-width: 180px;
}

.aw-bridge-agent-state {
    color: var(--muted);
    font-size: 0.79rem;
    flex: 1;
    opacity: 0.8;
}

/* Bridge card output area (inline in each agent card) */
.aw-bridge-card-output {
    margin-top: 10px;
    padding: 8px 10px;
    border-radius: calc(var(--radius) - 2px);
    background: rgba(255, 255, 255, 0.025);
    border: 1px solid var(--border);
    font-size: 0.8rem;
}

.aw-bridge-output-gated {
    opacity: 0.55;
    border-color: rgba(255, 181, 69, 0.15);
}

.aw-bridge-label {
    display: inline-block;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
    margin-bottom: 5px;
    opacity: 0.8;
}

.aw-bridge-source-desc {
    color: var(--muted);
    font-size: 0.79rem;
    margin-bottom: 4px;
}

.aw-bridge-empty {
    color: var(--muted);
    font-size: 0.8rem;
    font-style: italic;
    margin-bottom: 3px;
}

.aw-bridge-empty-reason {
    color: var(--muted);
    font-size: 0.75rem;
    opacity: 0.7;
}

/* Phase 45N: live derived output state */
.aw-bridge-output-live {
    background: rgba(99, 179, 237, 0.06);
    border-color: rgba(99, 179, 237, 0.22);
}

.aw-bridge-output-summary {
    color: var(--text);
    font-size: 0.82rem;
    margin-bottom: 3px;
}

.aw-bridge-output-count {
    color: var(--muted);
    font-size: 0.75rem;
    opacity: 0.75;
}

.aw-bridge-audit-link-hint {
    color: var(--muted);
    font-size: 0.74rem;
    opacity: 0.65;
    margin-top: 4px;
    font-style: italic;
}

.aw-bridge-state-live {
    color: var(--text);
    font-weight: 500;
}

/* Phase 47T Worker Pipeline Visibility Preview */
.aw-visibility-panel {
    --aw-vis-line: rgba(148, 163, 184, 0.16);
}

.aw-visibility-note {
    background: rgba(99, 179, 237, 0.05);
    border: 1px solid rgba(99, 179, 237, 0.16);
    border-radius: 6px;
    padding: 12px 14px;
    margin-bottom: 10px;
}

.aw-visibility-note-title {
    color: var(--text-1);
    font-size: 0.76rem;
    font-weight: 700;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.aw-visibility-note-body {
    color: var(--text-3);
    font-size: 0.8rem;
    line-height: 1.5;
}

.aw-visibility-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.aw-visibility-legend span {
    border: 1px solid var(--border);
    border-radius: 5px;
    color: var(--text-3);
    background: rgba(255, 255, 255, 0.025);
    font-family: var(--font-mono);
    font-size: 0.66rem;
    padding: 4px 7px;
}

.aw-visibility-table {
    border: 1px solid var(--aw-vis-line);
    border-radius: 6px;
    overflow: hidden;
}

.aw-visibility-header,
.aw-visibility-row {
    display: grid;
    grid-template-columns: minmax(210px, 1.6fr) minmax(92px, 0.7fr) minmax(115px, 0.8fr) minmax(110px, 0.8fr) minmax(120px, 0.9fr) 70px 70px minmax(150px, 1fr);
    gap: 8px;
    align-items: stretch;
}

.aw-visibility-header {
    background: rgba(15, 23, 42, 0.82);
    border-bottom: 1px solid var(--aw-vis-line);
    color: var(--text-3);
    font-family: var(--font-mono);
    font-size: 0.63rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 8px 10px;
    text-transform: uppercase;
}

.aw-visibility-row {
    background: rgba(255, 255, 255, 0.018);
    border-bottom: 1px solid var(--aw-vis-line);
    padding: 9px 10px;
}

.aw-visibility-row:last-child {
    border-bottom: 0;
}

.aw-visibility-stage-name {
    color: var(--text-1);
    font-size: 0.82rem;
    font-weight: 650;
    line-height: 1.25;
}

.aw-visibility-action {
    color: var(--text-3);
    font-size: 0.69rem;
    line-height: 1.35;
    margin-top: 3px;
}

.aw-visibility-state,
.aw-visibility-source {
    align-self: start;
    border: 1px solid var(--border);
    border-radius: 999px;
    display: inline-flex;
    font-family: var(--font-mono);
    font-size: 0.65rem;
    justify-content: center;
    line-height: 1;
    padding: 5px 7px;
    text-transform: uppercase;
}

.aw-visibility-state-unavailable,
.aw-visibility-source-unavailable {
    background: rgba(148, 163, 184, 0.07);
    color: var(--text-3);
}

.aw-visibility-state-idle,
.aw-visibility-state-ready {
    background: rgba(0, 220, 130, 0.08);
    border-color: rgba(0, 220, 130, 0.2);
    color: var(--green);
}

.aw-visibility-state-running {
    background: rgba(0, 229, 255, 0.08);
    border-color: rgba(0, 229, 255, 0.22);
    color: var(--cyan);
}

.aw-visibility-state-completed {
    background: rgba(99, 179, 237, 0.08);
    border-color: rgba(99, 179, 237, 0.2);
    color: #93c5fd;
}

.aw-visibility-state-blocked,
.aw-visibility-state-failed,
.aw-visibility-state-stale {
    background: rgba(255, 181, 69, 0.08);
    border-color: rgba(255, 181, 69, 0.22);
    color: var(--amber);
}

.aw-visibility-source-persisted {
    background: rgba(0, 220, 130, 0.08);
    border-color: rgba(0, 220, 130, 0.2);
    color: var(--green);
}

.aw-visibility-source-session-derived {
    background: rgba(99, 179, 237, 0.08);
    border-color: rgba(99, 179, 237, 0.2);
    color: #93c5fd;
}

.aw-visibility-source-static-preview {
    background: rgba(255, 181, 69, 0.07);
    border-color: rgba(255, 181, 69, 0.18);
    color: var(--amber);
}

.aw-visibility-id,
.aw-visibility-count,
.aw-visibility-stale {
    color: var(--text-3);
    font-family: var(--font-mono);
    font-size: 0.68rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.aw-visibility-count {
    text-align: center;
}

.aw-visibility-runtime-note {
    background: rgba(255, 181, 69, 0.055);
    border: 1px solid rgba(255, 181, 69, 0.16);
    border-radius: 6px;
    color: var(--text-3);
    font-size: 0.74rem;
    line-height: 1.5;
    margin-top: 10px;
    padding: 10px 12px;
}

.aw-visibility-runtime-note strong {
    color: var(--text-1);
}

@media (max-width: 1100px) {
    .aw-visibility-header {
        display: none;
    }
    .aw-visibility-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .aw-visibility-count {
        text-align: left;
    }
}

/* ══════════════════════════════════════════════════════════════════════════
   DIRECTOR / JARVIS — Phase 45I preview shell
   Read-only static preview. dj- prefix. No live data, no LLM/API, no controls.
   ══════════════════════════════════════════════════════════════════════════ */

/* Grounding unavailable banner */
.dj-unavailable-banner {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: rgba(167, 139, 250, 0.06);
    border: 1px solid rgba(167, 139, 250, 0.18);
    border-radius: var(--radius);
    padding: 18px 20px;
    margin-bottom: 4px;
}

.dj-unavailable-icon {
    color: var(--purple);
    flex-shrink: 0;
    margin-top: 2px;
}

.dj-unavailable-content { flex: 1; }

.dj-unavailable-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--purple);
    margin-bottom: 6px;
    font-family: var(--font-sans);
}

.dj-unavailable-body {
    font-size: 12px;
    color: var(--text-2);
    line-height: 1.6;
    font-family: var(--font-sans);
}

/* Suggested question chips */
.dj-question-grid {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.dj-question-chip {
    background: rgba(0, 229, 255, 0.05);
    border: 1px solid rgba(0, 229, 255, 0.15);
    border-radius: 20px;
    padding: 5px 14px;
    font-size: 11px;
    color: var(--text-1);
    font-family: var(--font-sans);
    cursor: default;
    opacity: 0.72;
}

/* Disabled chat input preview */
.dj-chat-preview {
    background: rgba(15, 23, 42, 0.55);
    border: 1px dashed rgba(255, 255, 255, 0.10);
    border-radius: var(--radius);
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.dj-chat-input {
    width: 100%;
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    color: var(--text-3);
    font-size: 12px;
    font-family: var(--font-sans);
    padding: 8px 12px;
    resize: none;
    height: 60px;
    opacity: 0.55;
    cursor: not-allowed;
}

.dj-chat-preview-label {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
    display: flex;
    align-items: center;
    gap: 5px;
}

/* Answer contract grid */
.dj-contract-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 8px;
}

.dj-contract-item {
    background: rgba(15, 23, 42, 0.65);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 10px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dj-contract-field {
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 700;
    color: var(--cyan);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.dj-contract-note {
    font-size: 11px;
    color: var(--text-2);
    line-height: 1.5;
    font-family: var(--font-sans);
}

/* Action boundary list */
.dj-boundary-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.dj-boundary-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-2);
    font-family: var(--font-sans);
}

.dj-boundary-item svg { color: var(--red); flex-shrink: 0; }

/* Related pages grid */
.dj-links-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 8px;
}

.dj-link-card {
    background: rgba(15, 23, 42, 0.65);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 12px 14px;
    cursor: pointer;
    transition: border-color 0.15s;
}

.dj-link-card:hover { border-color: rgba(0, 229, 255, 0.25); }

.dj-link-card-future {
    opacity: 0.55;
    border-style: dashed;
    cursor: default;
}

.dj-link-card-future:hover { border-color: var(--border); }

.dj-link-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-1);
    font-family: var(--font-sans);
    margin-bottom: 3px;
}

.dj-link-sub {
    font-size: 10px;
    color: var(--text-3);
    font-family: var(--font-mono);
}

/* Phase 45R: DJ Derived Context Bridge — dj-context-* prefix */
.dj-context-section {
    border-top: 1px solid rgba(99, 179, 237, 0.12);
    margin-top: 14px;
}
.dj-context-body {
    padding: 8px 0 4px;
}
.dj-context-header {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 5px;
}
.dj-context-tier-badge {
    font-size: 0.71rem;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.dj-context-tier-full {
    background: rgba(72, 187, 120, 0.14);
    color: #68d391;
    border: 1px solid rgba(72, 187, 120, 0.22);
}
.dj-context-tier-partial {
    background: rgba(246, 173, 85, 0.1);
    color: #f6ad55;
    border: 1px solid rgba(246, 173, 85, 0.18);
}
.dj-context-tier-minimal {
    background: rgba(99, 179, 237, 0.09);
    color: #63b3ed;
    border: 1px solid rgba(99, 179, 237, 0.18);
}
.dj-context-tier-empty {
    background: rgba(245, 101, 101, 0.07);
    color: #fc8181;
    border: 1px solid rgba(245, 101, 101, 0.13);
}
.dj-context-coverage {
    font-size: 0.78rem;
    color: var(--text-3);
}
.dj-context-flags {
    font-size: 0.71rem;
    color: var(--text-3);
    opacity: 0.7;
    font-style: italic;
}
.dj-context-tier-desc {
    font-size: 0.77rem;
    color: var(--text-3);
    margin-bottom: 8px;
    line-height: 1.45;
}
.dj-context-slots {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-bottom: 10px;
}
.dj-context-slot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    padding: 3px 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.03);
    font-size: 0.76rem;
}
.dj-context-slot-name {
    font-weight: 500;
    color: var(--text);
    min-width: 195px;
}
.dj-context-slot-surface {
    color: var(--text-3);
    font-size: 0.73rem;
}
.dj-context-slot-fresh {
    color: var(--text-3);
    font-size: 0.71rem;
    opacity: 0.75;
}
.dj-context-slot-id {
    color: var(--text-3);
    font-size: 0.69rem;
    opacity: 0.5;
    font-family: var(--font-mono);
}
.dj-context-state-available {
    color: #68d391;
    font-size: 0.71rem;
    font-weight: 500;
}
.dj-context-state-unavailable {
    color: var(--text-3);
    font-size: 0.71rem;
    opacity: 0.65;
}
.dj-context-state-gated {
    color: var(--text-3);
    font-size: 0.71rem;
    opacity: 0.5;
    font-style: italic;
}
.dj-context-slot-available { }
.dj-context-slot-unavailable { opacity: 0.72; }
.dj-context-slot-gated       { opacity: 0.45; }
.dj-context-notice {
    font-size: 0.74rem;
    color: var(--text-3);
    padding: 7px 10px;
    background: rgba(255, 255, 255, 0.02);
    border-radius: 4px;
    border-left: 2px solid rgba(99, 179, 237, 0.18);
    line-height: 1.55;
}
.dj-context-notice-links {
    display: inline-flex;
    gap: 10px;
    margin-left: 6px;
}
.dj-context-link {
    color: var(--accent);
    cursor: pointer;
    text-decoration: none;
    font-size: 0.73rem;
}
.dj-context-link:hover {
    text-decoration: underline;
}

/* ── Phase 45T: dj-readiness-* — Grounded Answer Readiness section ─────── */
.dj-readiness-section {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 0;
    margin-bottom: 10px;
    overflow: hidden;
}
.dj-readiness-body {
    padding: 12px 14px 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.dj-readiness-header {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.dj-readiness-coverage {
    font-size: 0.73rem;
    color: var(--muted);
}
.dj-readiness-meta {
    font-size: 0.70rem;
    color: var(--muted);
    opacity: 0.75;
    font-family: monospace;
}
.dj-readiness-refusal {
    background: rgba(220, 50, 50, 0.07);
    border: 1px solid rgba(220, 50, 50, 0.18);
    border-radius: 5px;
    padding: 10px 12px;
    font-size: 0.78rem;
    color: var(--text);
    line-height: 1.5;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.dj-readiness-links {
    display: flex;
    gap: 10px;
    margin-top: 4px;
}
.dj-readiness-grounded-ok {
    background: rgba(40, 160, 80, 0.07);
    border: 1px solid rgba(40, 160, 80, 0.18);
    border-radius: 5px;
    padding: 8px 12px;
    font-size: 0.78rem;
    color: var(--text);
    line-height: 1.5;
}
.dj-readiness-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
@media (max-width: 700px) {
    .dj-readiness-columns { grid-template-columns: 1fr; }
}
.dj-readiness-col {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.dj-readiness-col-label {
    font-size: 0.70rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--muted);
    padding-bottom: 4px;
    border-bottom: 1px solid var(--border);
    margin-bottom: 2px;
}
.dj-readiness-items {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.dj-readiness-item {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 8px;
    border-radius: 4px;
    border: 1px solid transparent;
}
.dj-readiness-can {
    background: rgba(40, 140, 80, 0.06);
    border-color: rgba(40, 140, 80, 0.15);
}
.dj-readiness-cannot {
    background: rgba(180, 100, 20, 0.06);
    border-color: rgba(180, 100, 20, 0.13);
}
.dj-readiness-item-label {
    font-size: 0.76rem;
    font-weight: 500;
    color: var(--text);
}
.dj-readiness-item-detail {
    font-size: 0.70rem;
    color: var(--muted);
    line-height: 1.4;
}
.dj-readiness-empty-can,
.dj-readiness-empty-cannot {
    font-size: 0.73rem;
    color: var(--muted);
    font-style: italic;
    padding: 6px 0;
}
.dj-readiness-contract {
    border: 1px solid var(--border);
    border-radius: 5px;
    overflow: hidden;
}
.dj-readiness-contract-label {
    font-size: 0.68rem;
    color: var(--muted);
    padding: 6px 10px;
    background: var(--surface2, rgba(255,255,255,0.03));
    border-bottom: 1px solid var(--border);
    font-weight: 500;
}
.dj-readiness-contract-grid {
    display: flex;
    flex-direction: column;
}
.dj-readiness-contract-item {
    display: grid;
    grid-template-columns: 18px 140px 1fr;
    gap: 6px;
    align-items: start;
    padding: 5px 10px;
    border-bottom: 1px solid var(--border);
    font-size: 0.72rem;
}
.dj-readiness-contract-item:last-child { border-bottom: none; }
.dj-readiness-contract-ok  { background: rgba(40,140,80,0.04); }
.dj-readiness-contract-gap { background: rgba(180,100,20,0.04); }
.dj-readiness-contract-icon {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--muted);
    padding-top: 1px;
}
.dj-readiness-contract-ok  .dj-readiness-contract-icon { color: #4a8; }
.dj-readiness-contract-gap .dj-readiness-contract-icon { color: #b87; }
.dj-readiness-contract-field {
    font-weight: 500;
    color: var(--text);
}
.dj-readiness-contract-note {
    color: var(--muted);
    line-height: 1.4;
}

/* -- Phase 47H: dj-grounded-* - Grounded Candidate Context Preview -------- */
.dj-grounded-candidate-section {
    border: 1px solid var(--border);
    border-radius: 6px;
}
.dj-grounded-unavailable {
    padding: 12px 14px;
    background: rgba(180, 100, 20, 0.06);
    border-top: 1px solid var(--border);
}
.dj-grounded-copy {
    color: var(--muted);
    font-size: 0.76rem;
    line-height: 1.5;
    margin: 8px 0;
}
.dj-grounded-meta {
    color: var(--muted);
    font-family: monospace;
    font-size: 0.68rem;
    line-height: 1.45;
}
.dj-grounded-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}
.dj-grounded-card {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.02);
}
.dj-grounded-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}
.dj-grounded-title {
    color: var(--text);
    font-weight: 650;
    font-size: 0.86rem;
}
.dj-grounded-sub {
    color: var(--muted);
    font-size: 0.72rem;
    margin-top: 2px;
}
.dj-grounded-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
@media (max-width: 900px) {
    .dj-grounded-grid { grid-template-columns: 1fr; }
}
.dj-grounded-panel {
    border: 1px solid var(--border);
    border-radius: 5px;
    padding: 8px;
    color: var(--muted);
    font-size: 0.72rem;
    line-height: 1.45;
}
.dj-grounded-panel-label {
    color: var(--text);
    font-weight: 600;
    font-size: 0.70rem;
    margin-bottom: 5px;
    text-transform: uppercase;
}
.dj-grounded-citations {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 10px;
    font-size: 0.70rem;
    color: var(--muted);
}
.dj-grounded-ref {
    display: inline-block;
    margin: 2px 4px 2px 0;
    padding: 2px 5px;
    border-radius: 4px;
    background: rgba(99, 179, 237, 0.08);
    border: 1px solid rgba(99, 179, 237, 0.14);
    color: var(--text-2);
    font-family: monospace;
}
.dj-grounded-ref-missing {
    background: rgba(180, 100, 20, 0.08);
    border-color: rgba(180, 100, 20, 0.16);
}
.dj-grounded-modes {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 8px;
    color: var(--muted);
    font-family: monospace;
    font-size: 0.67rem;
}
.dj-grounded-quality-full { background: rgba(72, 187, 120, 0.14); color: #68d391; }
.dj-grounded-quality-partial { background: rgba(246, 173, 85, 0.1); color: #f6ad55; }
.dj-grounded-quality-minimal { background: rgba(99, 179, 237, 0.09); color: #63b3ed; }
.dj-grounded-quality-unavailable { background: rgba(245, 101, 101, 0.07); color: #fc8181; }

/* ── Phase 45V: ro-* — Ranked Opportunities preview shell ───────────────── */
.ro-context-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}
.ro-context-coverage {
    font-size: 11px;
    color: var(--muted);
}
.ro-context-meta {
    font-size: 10px;
    color: var(--muted);
    font-style: italic;
}

/* Summary cards */
.ro-summary-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 8px;
    margin-top: 8px;
}
.ro-summary-card {
    background: var(--bg-2, #1a1a1a);
    border: 1px solid var(--border, #2a2a2a);
    border-radius: 4px;
    padding: 10px 12px;
}
.ro-card-label {
    font-size: 10px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
}
.ro-card-value {
    font-size: 16px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 4px;
}
.ro-card-note {
    font-size: 10px;
    color: var(--muted);
    line-height: 1.4;
}
.ro-card-empty   { border-left: 3px solid var(--muted, #555); }
.ro-card-partial { border-left: 3px solid #a87; }
.ro-card-gated   { border-left: 3px solid #666; opacity: 0.7; }

/* Phase 47K grounded preview */
.ro-grounded-safety-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}
.ro-grounded-safety-grid span {
    border: 1px solid var(--border);
    border-radius: 4px;
    padding: 4px 7px;
    color: var(--muted);
    font-size: 0.68rem;
    font-family: monospace;
    background: rgba(255, 255, 255, 0.02);
}
.ro-grounded-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}
.ro-grounded-row {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.02);
}
.ro-grounded-row-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}
.ro-grounded-title {
    color: var(--text);
    font-weight: 650;
    font-size: 0.86rem;
}
.ro-grounded-sub {
    color: var(--muted);
    font-size: 0.72rem;
    margin-top: 2px;
}
.ro-grounded-priority {
    min-width: 120px;
    text-align: right;
    color: var(--muted);
    font-size: 0.68rem;
    text-transform: uppercase;
}
.ro-grounded-priority strong {
    display: block;
    color: var(--text);
    font-size: 1rem;
    margin-top: 2px;
}
.ro-grounded-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
@media (max-width: 900px) {
    .ro-grounded-grid { grid-template-columns: 1fr; }
    .ro-grounded-row-head { flex-direction: column; }
    .ro-grounded-priority { text-align: left; }
}
.ro-grounded-panel {
    border: 1px solid var(--border);
    border-radius: 5px;
    padding: 8px;
    color: var(--muted);
    font-size: 0.72rem;
    line-height: 1.45;
}
.ro-grounded-label {
    color: var(--text);
    font-weight: 600;
    font-size: 0.70rem;
    margin-bottom: 5px;
    text-transform: uppercase;
}
.ro-grounded-refs {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 10px;
    font-size: 0.70rem;
    color: var(--muted);
}
.ro-grounded-ref {
    display: inline-block;
    margin: 2px 4px 2px 0;
    padding: 2px 5px;
    border-radius: 4px;
    background: rgba(99, 179, 237, 0.08);
    border: 1px solid rgba(99, 179, 237, 0.14);
    color: var(--text-2);
    font-family: monospace;
}
.ro-grounded-ref-missing {
    background: rgba(180, 100, 20, 0.08);
    border-color: rgba(180, 100, 20, 0.16);
}

/* Phase 47N Tom Review Surface */
.tom-review-page {
    max-width: 1320px;
}
.tom-review-summary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 8px;
    margin-top: 8px;
}
.tom-review-summary-card {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 10px 12px;
    background: rgba(255, 255, 255, 0.02);
}
.tom-review-summary-card span {
    display: block;
    color: var(--muted);
    font-family: monospace;
    font-size: 0.68rem;
}
.tom-review-summary-card strong {
    display: block;
    color: var(--text);
    font-size: 1rem;
    margin: 3px 0;
}
.tom-review-summary-card small {
    color: var(--muted);
    font-size: 0.68rem;
    line-height: 1.35;
}
.tom-review-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 8px;
}
.tom-review-card {
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 12px;
    background: rgba(255, 255, 255, 0.02);
}
.tom-review-card-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
    margin-bottom: 10px;
}
.tom-review-title {
    color: var(--text);
    font-size: 0.88rem;
    font-weight: 650;
}
.tom-review-sub {
    color: var(--muted);
    font-size: 0.72rem;
    margin-top: 2px;
}
.tom-review-position {
    min-width: 130px;
    text-align: right;
    color: var(--muted);
    font-size: 0.68rem;
    text-transform: uppercase;
}
.tom-review-position strong {
    display: block;
    color: var(--text);
    font-size: 1rem;
    margin-top: 2px;
}
.tom-review-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}
@media (max-width: 900px) {
    .tom-review-grid { grid-template-columns: 1fr; }
    .tom-review-card-head { flex-direction: column; }
    .tom-review-position { text-align: left; }
}
.tom-review-panel {
    border: 1px solid var(--border);
    border-radius: 5px;
    padding: 8px;
    color: var(--muted);
    font-size: 0.72rem;
    line-height: 1.45;
}
.tom-review-label {
    color: var(--text);
    font-size: 0.70rem;
    font-weight: 600;
    margin-bottom: 5px;
    text-transform: uppercase;
}
.tom-review-refs {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 10px;
    color: var(--muted);
    font-size: 0.70rem;
}
.tom-review-ref {
    display: inline-block;
    margin: 2px 4px 2px 0;
    padding: 2px 5px;
    border-radius: 4px;
    background: rgba(99, 179, 237, 0.08);
    border: 1px solid rgba(99, 179, 237, 0.14);
    color: var(--text-2);
    font-family: monospace;
}
.tom-review-ref-missing {
    background: rgba(180, 100, 20, 0.08);
    border-color: rgba(180, 100, 20, 0.16);
}
.tom-review-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}
.tom-review-forbidden,
.tom-review-guidance,
.tom-review-unavailable,
.tom-review-empty {
    margin-top: 8px;
    color: var(--muted);
    font-size: 0.74rem;
    line-height: 1.5;
}
.tom-review-unavailable,
.tom-review-empty {
    border: 1px dashed var(--border);
    border-radius: 6px;
    padding: 12px;
    background: rgba(180, 100, 20, 0.05);
}
.tom-review-forbidden {
    font-family: monospace;
    font-size: 0.68rem;
}
.tom-review-link-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
}

/* Ranked list empty state */
.ro-ranked-empty {
    background: var(--bg-2, #1a1a1a);
    border: 1px solid var(--border, #2a2a2a);
    border-radius: 4px;
    padding: 20px;
    margin-top: 8px;
}
.ro-ranked-empty-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--text);
    margin-bottom: 6px;
}
.ro-ranked-empty-body {
    font-size: 12px;
    color: var(--muted);
    line-height: 1.55;
}

/* Placeholders */
.ro-detail-placeholder,
.ro-evidence-placeholder {
    background: var(--bg-2, #1a1a1a);
    border: 1px dashed var(--border, #2a2a2a);
    border-radius: 4px;
    padding: 14px 16px;
    margin-top: 8px;
    font-size: 11px;
    color: var(--muted);
    line-height: 1.55;
}

/* Ranking requirements grid */
.ro-req-grid {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 8px;
}
.ro-req-item {
    display: grid;
    grid-template-columns: 18px 170px 1fr;
    gap: 8px;
    align-items: baseline;
    padding: 5px 8px;
    border-radius: 3px;
    font-size: 11px;
}
.ro-req-met   { background: rgba(40, 140, 80, 0.04); }
.ro-req-unmet { background: rgba(180, 100, 20, 0.04); }
.ro-req-icon  { font-size: 11px; }
.ro-req-met   .ro-req-icon { color: #4a8; }
.ro-req-unmet .ro-req-icon { color: #b87; }
.ro-req-label { font-weight: 500; color: var(--text); }
.ro-req-note  { color: var(--muted); }

/* Pipeline lifecycle grid */
.ro-lifecycle-grid {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-top: 8px;
}
.ro-lifecycle-row {
    display: grid;
    grid-template-columns: 150px 110px 1fr;
    gap: 8px;
    align-items: baseline;
    padding: 4px 8px;
    border-radius: 3px;
    font-size: 11px;
    background: var(--bg-2, #1a1a1a);
}
.ro-lifecycle-stage { font-family: monospace; color: var(--muted); }
.ro-lifecycle-count { font-weight: 500; color: var(--text); }
.ro-lifecycle-note  { color: var(--muted); }
.ro-lifecycle-note-footer {
    font-size: 10px;
    color: var(--muted);
    margin-top: 6px;
    font-style: italic;
}

/* Next safe actions */
.ro-actions-grid {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 8px;
}
.ro-action-item {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 10px;
    align-items: baseline;
    padding: 8px 10px;
    border-radius: 4px;
    background: var(--bg-2, #1a1a1a);
    border: 1px solid var(--border, #2a2a2a);
    cursor: pointer;
    font-size: 11px;
}
.ro-action-item:not(.ro-action-unavailable):hover {
    border-color: var(--border-hover, #444);
}
.ro-action-unavailable {
    opacity: 0.55;
    cursor: default;
}
.ro-action-label { font-weight: 500; color: var(--text); }
.ro-action-note  { color: var(--muted); }
.ro-actions-note {
    font-size: 10px;
    color: var(--muted);
    margin-top: 6px;
    font-style: italic;
}

/* Related pages links */
.ro-links {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
}

/* ═══════════════════════════════════════════════════════════════════════
   MANUAL RESEARCH RUN — Phase 48I
   mrr- prefix. Tom-facing controlled workflow surface.
   ═══════════════════════════════════════════════════════════════════════ */

/* Tom Today entry point widget */
.mrr-today-entry {
    background: rgba(15, 23, 42, 0.6);
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    padding: 14px 16px;
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}

.mrr-today-desc {
    flex: 1;
    font-size: 12px;
    color: var(--text-dim, #8899aa);
    min-width: 200px;
}

.mrr-today-btn {
    white-space: nowrap;
    flex-shrink: 0;
}

/* Page container */
.mrr-page {
    max-width: 900px;
}

/* What-it-does / what-it-does-not box */
.mrr-what-box {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    padding: 14px 16px;
}

@media (max-width: 640px) {
    .mrr-what-box { grid-template-columns: 1fr; }
}

.mrr-what-heading {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--green, #4caf50);
    margin-bottom: 8px;
}

.mrr-what-heading-closed {
    color: var(--text-dim, #8899aa);
}

.mrr-what-list {
    margin: 0;
    padding-left: 18px;
    font-size: 12px;
    color: var(--text, #c8d8e8);
    line-height: 1.7;
}

.mrr-what-list-closed {
    color: var(--text-dim, #8899aa);
}

/* Payload textarea */
.mrr-payload-note {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
    margin-bottom: 8px;
    line-height: 1.5;
}

.mrr-textarea {
    width: 100%;
    height: 200px;
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    background: var(--bg-2, #1a2233);
    color: var(--text, #c8d8e8);
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    padding: 8px;
    resize: vertical;
    box-sizing: border-box;
}

.mrr-textarea:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Source Intake guided input */
.mrr-mode-tabs {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    background: rgba(15, 23, 42, 0.65);
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    margin-bottom: 12px;
}

.mrr-mode-tab {
    border: 0;
    border-radius: 4px;
    padding: 7px 10px;
    background: transparent;
    color: var(--text-dim, #8899aa);
    font-size: 12px;
    cursor: pointer;
}

.mrr-mode-tab.active {
    background: rgba(64, 196, 255, 0.14);
    color: var(--text, #c8d8e8);
}

.mrr-mode-tab:disabled {
    opacity: 0.55;
    cursor: not-allowed;
}

.mrr-guided-panel {
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    padding: 14px;
}

.mrr-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

@media (max-width: 720px) {
    .mrr-form-grid { grid-template-columns: 1fr; }
}

.mrr-field,
.mrr-check-field {
    display: flex;
    flex-direction: column;
    gap: 5px;
    font-size: 12px;
    color: var(--text, #c8d8e8);
}

.mrr-check-field {
    flex-direction: row;
    align-items: flex-start;
}

.mrr-field-wide {
    grid-column: 1 / -1;
}

.mrr-input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    background: var(--bg-2, #1a2233);
    color: var(--text, #c8d8e8);
    padding: 7px 8px;
    font-size: 12px;
}

.mrr-input-small {
    max-width: 120px;
}

.mrr-textarea-small {
    min-height: 78px;
    height: 78px;
}

.mrr-field-hint {
    color: var(--text-dim, #8899aa);
    font-size: 11px;
    line-height: 1.45;
}

.mrr-check-row {
    display: flex;
    gap: 14px;
    align-items: center;
    flex-wrap: wrap;
}

.mrr-subsection-label {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-dim, #8899aa);
    margin: 16px 0 10px;
}

.mrr-must-not-infer {
    padding: 8px 10px;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    margin-bottom: 10px;
}

.mrr-safety-flag-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}

.mrr-safety-flag {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    padding: 7px 9px;
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    color: var(--text-dim, #8899aa);
    background: rgba(255,255,255,0.03);
}

.mrr-safety-flag strong {
    color: var(--green, #4caf50);
}

.mrr-validation {
    border-radius: 4px;
    padding: 10px;
    margin: 12px 0;
    border: 1px solid var(--border, #2a3547);
}

.mrr-validation-ok {
    background: rgba(76, 175, 80, 0.08);
    border-color: rgba(76, 175, 80, 0.28);
}

.mrr-validation-warn {
    background: rgba(245, 166, 35, 0.08);
    border-color: rgba(245, 166, 35, 0.28);
}

.mrr-validation-blocked {
    background: rgba(231, 76, 60, 0.08);
    border-color: rgba(231, 76, 60, 0.28);
}

.mrr-validation-state {
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    text-transform: uppercase;
    color: var(--text, #c8d8e8);
    margin-bottom: 8px;
}

.mrr-warning {
    padding: 5px 8px;
    background: rgba(245, 166, 35, 0.08);
    border: 1px solid rgba(245, 166, 35, 0.25);
    border-radius: 3px;
    font-size: 11px;
    color: var(--amber, #f5a623);
    margin-bottom: 4px;
}

.mrr-generated-json {
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    padding: 8px 10px;
    background: rgba(255,255,255,0.03);
}

.mrr-generated-json summary {
    cursor: pointer;
    font-size: 12px;
    color: var(--text-dim, #8899aa);
}

.mrr-generated-json pre {
    white-space: pre-wrap;
    overflow-x: auto;
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    color: var(--text, #c8d8e8);
    margin: 8px 0 0;
}

/* Phase 49G — Review panel and payload preview */
.mrr-review-panel {
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    padding: 14px;
    background: rgba(255,255,255,0.02);
    margin-top: 14px;
}

.mrr-review-note {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
    margin-bottom: 10px;
    line-height: 1.45;
}

.mrr-review-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 12px;
}

@media (max-width: 720px) {
    .mrr-review-grid { grid-template-columns: 1fr; }
}

.mrr-review-section {
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    padding: 10px;
    background: rgba(255,255,255,0.02);
    margin-top: 10px;
}

.mrr-review-section-label {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-dim, #8899aa);
    margin-bottom: 8px;
}

.mrr-review-kv {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    font-size: 11px;
    font-family: var(--font-mono, monospace);
    padding: 3px 0;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    color: var(--text, #c8d8e8);
    flex-wrap: wrap;
}

.mrr-review-kv span:first-child {
    color: var(--text-dim, #8899aa);
    flex-shrink: 0;
}

.mrr-review-internal {
    color: var(--text-dim, #8899aa);
    font-style: italic;
    font-size: 10px;
}

.mrr-review-tag {
    font-size: 10px;
    color: var(--amber, #f5a623);
    margin-left: 4px;
}

.mrr-review-ref-row span:last-child {
    word-break: break-all;
}

.mrr-review-safe {
    color: var(--green, #4caf50);
}

.mrr-review-ref {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    color: var(--text, #c8d8e8);
    padding: 3px 0;
    border-bottom: 1px solid rgba(255,255,255,0.04);
}

.mrr-review-empty {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
    font-style: italic;
}

.mrr-review-run-gate {
    font-size: 11px;
    color: var(--text, #c8d8e8);
    margin-top: 6px;
}

.mrr-review-validator-note {
    font-size: 10px;
    color: var(--text-dim, #8899aa);
    margin-top: 4px;
    font-style: italic;
}

.mrr-review-generated-note {
    margin-top: 12px;
    font-size: 11px;
    color: var(--text-dim, #8899aa);
    line-height: 1.5;
    border-top: 1px solid var(--border, #2a3547);
    padding-top: 10px;
}

.mrr-review-generated-note code {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    background: rgba(255,255,255,0.06);
    padding: 1px 4px;
    border-radius: 3px;
}

/* Payload preview panel */
.mrr-payload-preview-panel {
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    padding: 12px;
    background: rgba(255,255,255,0.02);
    margin-top: 12px;
}

.mrr-payload-preview-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.mrr-payload-preview-title {
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    color: var(--text, #c8d8e8);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mrr-payload-preview-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.mrr-copy-btn,
.mrr-open-raw-btn,
.mrr-copy-dismiss {
    font-size: 11px;
    padding: 5px 10px;
    border-radius: 4px;
    border: 1px solid var(--border, #2a3547);
    background: rgba(255,255,255,0.05);
    color: var(--text, #c8d8e8);
    cursor: pointer;
}

.mrr-copy-btn:hover,
.mrr-open-raw-btn:hover,
.mrr-copy-dismiss:hover {
    background: rgba(255,255,255,0.09);
}

.mrr-raw-warning {
    font-size: 11px;
    color: var(--amber, #f5a623);
    background: rgba(245,166,35,0.07);
    border: 1px solid rgba(245,166,35,0.2);
    border-radius: 4px;
    padding: 6px 9px;
    margin-bottom: 8px;
}

.mrr-payload-preview-note {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
    margin-bottom: 8px;
    line-height: 1.45;
}

.mrr-payload-preview-pre {
    white-space: pre-wrap;
    overflow-x: auto;
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    color: var(--text, #c8d8e8);
    margin: 0;
    background: rgba(0,0,0,0.2);
    padding: 10px;
    border-radius: 4px;
    border: 1px solid var(--border, #2a3547);
}

.mrr-copy-fallback {
    margin-bottom: 8px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.mrr-copy-fallback-note {
    font-size: 11px;
    color: var(--amber, #f5a623);
}

/* Confirmation gate */
.mrr-confirm-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 14px;
}

.mrr-confirm-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13px;
    color: var(--text, #c8d8e8);
    cursor: pointer;
    line-height: 1.5;
}

.mrr-confirm-item input[type="checkbox"] {
    flex-shrink: 0;
    margin-top: 2px;
    cursor: pointer;
}

.mrr-run-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 4px;
}

.mrr-run-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.mrr-confirm-hint {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
}

/* Running state */
.mrr-running {
    padding: 12px 14px;
    background: rgba(245, 166, 35, 0.08);
    border: 1px solid rgba(245, 166, 35, 0.3);
    border-radius: 4px;
    font-size: 12px;
    color: var(--amber, #f5a623);
}

/* Error */
.mrr-error {
    padding: 10px 12px;
    background: rgba(231, 76, 60, 0.1);
    border: 1px solid rgba(231, 76, 60, 0.3);
    border-radius: 4px;
    font-size: 12px;
    color: var(--red, #e74c3c);
}

/* Empty state */
.mrr-empty {
    font-size: 12px;
    color: var(--text-dim, #8899aa);
    padding: 10px 0;
}

/* Result panel */
.mrr-result {
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    padding: 16px;
}

.mrr-result-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.mrr-state {
    font-family: var(--font-mono, monospace);
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.mrr-state-ok    { color: var(--green, #4caf50); }
.mrr-state-warn  { color: var(--amber, #f5a623); }
.mrr-state-fail  { color: var(--red, #e74c3c); }

.mrr-badge {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    color: var(--text-dim, #8899aa);
    background: rgba(255,255,255,0.05);
    border: 1px solid var(--border, #2a3547);
    border-radius: 3px;
    padding: 2px 6px;
}

/* Counts grid */
.mrr-counts {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
    gap: 8px;
    margin-bottom: 14px;
}

.mrr-count-cell {
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    padding: 8px 10px;
}

.mrr-count-label {
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-dim, #8899aa);
    margin-bottom: 4px;
}

.mrr-count-val {
    font-size: 18px;
    font-weight: 700;
    color: var(--text, #c8d8e8);
}

/* Blocker rows */
.mrr-result-section {
    margin-bottom: 12px;
}

.mrr-result-section-label {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-dim, #8899aa);
    margin-bottom: 6px;
}

.mrr-blocker {
    padding: 5px 8px;
    background: rgba(231, 76, 60, 0.08);
    border: 1px solid rgba(231, 76, 60, 0.25);
    border-radius: 3px;
    font-size: 11px;
    color: var(--red, #e74c3c);
    margin-bottom: 4px;
}

/* Stage list */
.mrr-stages-detail {
    margin-bottom: 14px;
}

.mrr-stages-summary {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-dim, #8899aa);
    cursor: pointer;
    padding: 6px 0;
}

.mrr-stages-list {
    margin-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.mrr-stage {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 7px 10px;
    border-radius: 4px;
    border: 1px solid var(--border, #2a3547);
    font-size: 12px;
}

.mrr-stage-ok   { border-color: rgba(76, 175, 80, 0.3);  background: rgba(76, 175, 80, 0.04); }
.mrr-stage-warn { border-color: rgba(245, 166, 35, 0.3); background: rgba(245, 166, 35, 0.04); }
.mrr-stage-fail { border-color: rgba(231, 76, 60, 0.3);  background: rgba(231, 76, 60, 0.04); }
.mrr-stage-skip { border-color: var(--border, #2a3547);  background: transparent; opacity: 0.6; }

.mrr-stage-name {
    flex: 1;
    font-weight: 500;
    color: var(--text, #c8d8e8);
    min-width: 140px;
}

.mrr-stage-status {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--text-dim, #8899aa);
}

.mrr-stage-count {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
}

.mrr-stage-reason {
    font-size: 10px;
    color: var(--text-dim, #8899aa);
    font-style: italic;
}

.mrr-stage-reason-fail {
    color: var(--red, #e74c3c);
}

/* Next steps */
.mrr-next-steps {
    background: rgba(76, 175, 80, 0.05);
    border: 1px solid rgba(76, 175, 80, 0.2);
    border-radius: 5px;
    padding: 12px 14px;
    margin-bottom: 12px;
}

.mrr-next-label {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--text-dim, #8899aa);
    margin-bottom: 8px;
}

.mrr-next-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.mrr-link-btn {
    font-size: 11px;
}

.mrr-next-note {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
    line-height: 1.5;
}

/* Safety tags row */
.mrr-safety-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 10px;
}

.mrr-safety-tag {
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    color: var(--text-dim, #8899aa);
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border, #2a3547);
    border-radius: 3px;
    padding: 2px 6px;
    white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════════════
   MANUAL RESEARCH RUN HISTORY — Phase 48N
   mrr-history- prefix. Read-only run history panel.
   ═══════════════════════════════════════════════════════════════════════ */

.mrr-history-loading,
.mrr-history-error,
.mrr-history-empty {
    font-size: 12px;
    color: var(--text-dim, #8899aa);
    padding: 10px 0;
}

.mrr-history-error {
    color: var(--red, #e74c3c);
}

.mrr-history-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mrr-history-card {
    background: rgba(15, 23, 42, 0.5);
    border: 1px solid var(--border, #2a3547);
    border-radius: 6px;
    padding: 12px 14px;
}

.mrr-history-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.mrr-history-card-main {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    flex: 1;
}

.mrr-history-run-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--text, #c8d8e8);
}

.mrr-history-run-id {
    font-size: 10px;
}

.mrr-history-ts {
    font-size: 11px;
    color: var(--text-dim, #8899aa);
}

.mrr-history-outcome {
    flex-shrink: 0;
}

.mrr-history-outcome-label {
    font-family: var(--font-mono, monospace);
    font-size: 10px;
    color: var(--text-dim, #8899aa);
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--border, #2a3547);
    border-radius: 3px;
    padding: 3px 7px;
    white-space: nowrap;
}

.mrr-history-counts {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
}

.mrr-history-count {
    display: flex;
    flex-direction: column;
    align-items: center;
    background: rgba(255,255,255,0.03);
    border: 1px solid var(--border, #2a3547);
    border-radius: 4px;
    padding: 5px 10px;
    min-width: 52px;
    font-size: 14px;
    font-weight: 600;
    color: var(--text, #c8d8e8);
}

.mrr-history-count .mrr-count-label {
    font-size: 8px;
    margin-bottom: 2px;
    font-weight: 400;
}

.mrr-history-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 8px;
}

.mrr-history-links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.mrr-history-details-btn {
    font-size: 11px;
    flex-shrink: 0;
}

.mrr-history-safety-label {
    font-family: var(--font-mono, monospace);
    font-size: 9px;
    color: var(--text-dim, #8899aa);
    opacity: 0.7;
    margin-top: 4px;
}

.mrr-history-stages {
    margin-top: 10px;
    border-top: 1px solid var(--border, #2a3547);
    padding-top: 8px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

/* Live agent status badges (corrected to real palette vars) */
.aw-status-live-running   { background: var(--cyan-dim);  color: var(--cyan); }
.aw-status-live-completed { background: var(--green-dim); color: var(--green); }
.aw-status-live-blocked   { background: var(--amber-dim); color: var(--amber); }
.aw-status-live-error     { background: var(--red-dim);   color: var(--red); }

/* Worker scheduler control panel */
.aw-sched {
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg-2);
    padding: 12px 14px;
}
.aw-sched-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.aw-sched-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    color: var(--text-1);
}
.aw-sched-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}
.aw-sched-dot-on  { background: var(--green); box-shadow: 0 0 8px var(--green); }
.aw-sched-dot-off { background: var(--text-3); }
.aw-sched-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.aw-sched-input {
    width: 56px;
    padding: 4px 6px;
    border: 1px solid var(--border);
    border-radius: var(--radius-sm);
    background: var(--bg-1);
    color: var(--text-1);
    font-family: var(--font-mono);
    font-size: 12px;
}
.aw-sched-unit { color: var(--text-3); font-size: 11px; }
.aw-sched-meta {
    margin-top: 10px;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 12px;
    color: var(--text-2);
}
.aw-sched-meta strong { color: var(--text-1); }
.aw-sched-note {
    font-family: var(--font-mono);
    font-size: 11px;
    color: var(--text-3);
}

/* ── Ranked Opportunities live table ─────────────────────────── */
.rk-table { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; }
.rk-row {
    display: grid;
    grid-template-columns: 34px 74px 1.3fr 120px 84px 84px 96px 70px 132px 74px 88px;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 12px;
}
/* Ranked board header: title + sort toggle + freshness line */
.rk-topbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.rk-controls { display: flex; gap: 6px; }
.rk-sortbtn { background: var(--bg-2); border: 1px solid var(--border); color: var(--text-2); border-radius: 999px; padding: 5px 13px; font-size: 11px; font-family: var(--font-mono); cursor: pointer; transition: all 0.12s; }
.rk-sortbtn:hover { border-color: var(--cyan-mid); color: var(--cyan); }
.rk-sort-on { background: var(--cyan); border-color: var(--cyan); color: #001016; font-weight: 700; }
.rk-fresh { font-size: 11px; color: var(--text-3); font-family: var(--font-mono); margin: 6px 0 10px; }
.rk-fresh strong { color: var(--cyan); }
.rk-fresh-pulse { animation: rk-pulse 0.8s ease; }
@keyframes rk-pulse { 0% { color: var(--cyan); } 100% { color: var(--text-3); } }

/* Scoring legend */
.rk-legend { margin: 0 0 12px; border: 1px solid var(--border); border-radius: 10px; background: var(--bg-1, #0d1117); }
.rk-legend-sum { cursor: pointer; padding: 9px 13px; font-size: 12px; font-weight: 600; color: var(--cyan); list-style: none; }
.rk-legend-sum::-webkit-details-marker { display: none; }
.rk-legend-sum::before { content: "ⓘ "; }
.rk-legend-body { padding: 4px 14px 12px; display: flex; flex-direction: column; gap: 7px; }
.rk-leg-row { font-size: 12px; color: var(--text-1); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rk-leg-act { font-weight: 600; }
.rk-leg-buy { color: #34d399; }
.rk-leg-look { color: #6ee7ff; }
.rk-leg-watch { color: #ffce6b; }
.rk-leg-avoid { color: #ff8a96; }
.rk-leg-divider { height: 1px; background: var(--border); margin: 4px 0; }
.rk-leg-note { font-size: 10px; color: var(--text-3); font-style: italic; margin-top: 4px; line-height: 1.5; }

/* Ask Jarvis button on rows — always visible (overrides hover-reveal) */
.rk-open { opacity: 1; }
.rk-ask { background: var(--cyan-dim); border: 1px solid var(--cyan-mid); color: var(--cyan); border-radius: 999px; padding: 4px 11px; font-size: 11px; cursor: pointer; white-space: nowrap; transition: all 0.12s; }
.rk-ask:hover { background: var(--cyan); color: #001016; font-weight: 700; }

/* Ask-Jarvis modal */
.jmodal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.6); backdrop-filter: blur(3px); z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; }
.jmodal { width: min(560px, 94vw); max-height: 86vh; display: flex; flex-direction: column; background: var(--bg-1, #0d1117); border: 1px solid var(--cyan-mid); border-radius: 16px; box-shadow: 0 0 40px rgba(0,200,255,0.2); overflow: hidden; }
.jmodal-head { display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; border-bottom: 1px solid var(--border); }
.jmodal-title { font-family: var(--font-display, var(--font-mono)); font-size: 16px; letter-spacing: 0.1em; color: var(--text-0); font-weight: 800; }
.jmodal-tk { color: var(--cyan); }
.jmodal-x { background: none; border: none; color: var(--text-3); font-size: 18px; cursor: pointer; }
.jmodal-x:hover { color: var(--text-0); }
.jmodal-body { padding: 18px; overflow-y: auto; }
.jmodal-loading { display: flex; align-items: center; gap: 10px; color: var(--text-2); font-size: 13px; }
.jmodal-reply { font-size: 14px; line-height: 1.65; color: var(--text-0); }
.jmodal-err { font-size: 13px; color: #ff8a96; }
.jmodal-foot { padding: 12px 18px; border-top: 1px solid var(--border); text-align: right; }
.rk-row:last-child { border-bottom: none; }
.rk-row:not(.rk-head):hover { background: var(--bg-2); }
.rk-row-click { cursor: pointer; transition: background 0.12s ease; }
.rk-row-click:hover { background: var(--cyan-dim); }
.rk-open { font-size: 11px; color: var(--text-3); font-family: var(--font-mono); text-align: right; opacity: 0; transition: opacity 0.12s ease; }
.rk-row-click:hover .rk-open { opacity: 1; color: var(--cyan); }
.rk-head { background: var(--bg-2); color: var(--text-3); font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; }
.rk-rank { color: var(--text-3); font-family: var(--font-mono); }
.rk-tic { font-family: var(--font-mono); font-weight: 700; color: var(--cyan); }
.rk-co { color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rk-score strong { font-size: 14px; color: var(--text-0); }
.rk-band { font-size: 9px; padding: 1px 5px; border-radius: 3px; text-transform: uppercase; margin-left: 4px; }
.rk-band-high { background: var(--green-dim); color: var(--green); }
.rk-band-medium { background: var(--cyan-dim); color: var(--cyan); }
.rk-band-low { background: var(--amber-dim); color: var(--amber); }
.rk-dim { display: flex; align-items: center; gap: 6px; color: var(--text-2); }
.rk-dim em { font-style: normal; font-family: var(--font-mono); font-size: 11px; min-width: 26px; }
.rk-bar { display: inline-block; width: 46px; height: 5px; border-radius: 3px; background: var(--bg-3); overflow: hidden; flex-shrink: 0; }
.rk-bar-fill { display: block; height: 100%; background: var(--cyan); }
.rk-lane-tag { font-size: 10px; padding: 2px 7px; border-radius: 999px; white-space: nowrap; }
.rk-lane-asym { background: var(--purple-dim); color: var(--purple); }
.rk-lane-high { background: var(--green-dim); color: var(--green); }
.rk-lane-std { background: var(--cyan-dim); color: var(--cyan); }
.rk-lane-watch { background: var(--amber-dim); color: var(--amber); }
.rk-lane-other { background: var(--bg-3); color: var(--text-3); }
.rk-when { color: var(--text-3); font-family: var(--font-mono); font-size: 10px; }
.rk-rr { font-family: var(--font-mono); font-size: 12px; font-weight: 700; color: #6ee7ff; text-align: center; }
.rk-head .rk-rr { color: var(--text-3); font-weight: 400; }
.rk-ready { color: #ffd34d; margin-right: 3px; filter: drop-shadow(0 0 4px rgba(255,211,77,0.6)); }
.rk-foot { margin-top: 8px; font-size: 11px; color: var(--text-3); font-family: var(--font-mono); }

/* ── Agent forum (live chat-stream of the desk working) ─────────── */
.aw-forum-live-dot {
    display: inline-block; width: 7px; height: 7px; border-radius: 50%;
    background: var(--green); box-shadow: 0 0 6px var(--green);
    margin-right: 4px; animation: aw-forum-pulse 1.6s ease-in-out infinite;
}
@keyframes aw-forum-pulse { 0%,100%{opacity:1} 50%{opacity:.35} }
.aw-forum-sub { color: var(--text-3); font-family: var(--font-mono); font-size: 10px; margin-left: 8px; text-transform: none; letter-spacing: 0; }
.aw-forum {
    max-height: 420px; overflow-y: auto;
    border: 1px solid var(--border); border-radius: var(--radius);
    background: var(--bg-2); padding: 10px 12px;
    display: flex; flex-direction: column; gap: 8px;
}
.aw-forum-empty { color: var(--text-3); font-size: 12px; padding: 24px 8px; text-align: center; }
.aw-msg { display: flex; gap: 10px; align-items: flex-start; }
.aw-msg-avatar {
    flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-mono); font-size: 10px; font-weight: 700;
    background: var(--cyan-dim); color: var(--cyan);
}
.aw-msg-avatar-blocked { background: var(--amber-dim); color: var(--amber); }
.aw-msg-avatar-error   { background: var(--red-dim);   color: var(--red); }
.aw-msg-body { flex: 1; min-width: 0; }
.aw-msg-head { display: flex; align-items: baseline; gap: 8px; }
.aw-msg-agent { font-size: 12px; font-weight: 600; color: var(--text-1); }
.aw-msg-when { font-size: 10px; color: var(--text-3); font-family: var(--font-mono); }
.aw-msg-text { font-size: 12px; color: var(--text-2); line-height: 1.45; margin-top: 1px; }
.aw-msg-blocked .aw-msg-text { color: var(--amber); }
.aw-msg-error .aw-msg-text { color: var(--red); }
.aw-msg-new { animation: aw-msg-in 0.45s ease-out; }
@keyframes aw-msg-in {
    from { opacity: 0; transform: translateY(8px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Agent workspace — clean, non-expert layout ─────────────────── */
/* ══ Agent grid — named, clickable, live-status tiles ═══════════════════ */
.aw-pipe-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 12px;
}
.aw-tile {
    position: relative; background: var(--bg-1, #0d1117); border: 1px solid var(--border);
    border-radius: 14px; padding: 16px 10px 12px; text-align: center; cursor: pointer;
    transition: border-color 0.15s, transform 0.1s, box-shadow 0.2s;
}
.aw-tile:hover { transform: translateY(-2px); border-color: var(--cyan-mid); }
.aw-tile-selected { border-color: var(--cyan); box-shadow: 0 0 0 1px var(--cyan-dim), 0 0 22px rgba(0,200,255,0.18); }
.aw-tile-step {
    position: absolute; top: 8px; left: 10px; font-family: var(--font-mono);
    font-size: 10px; color: var(--text-3); opacity: 0.6;
}
.aw-tile-ring {
    width: 60px; height: 60px; margin: 4px auto 10px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-family: var(--font-mono); font-weight: 700; font-size: 17px; letter-spacing: 0.04em;
    border: 2px solid var(--border); color: var(--text-2);
    background: radial-gradient(circle at 50% 40%, rgba(255,255,255,0.04), transparent 70%);
}
.aw-ring-idle    { border-color: #2b3340; color: var(--text-3); }
.aw-ring-done    { border-color: #00e5ff; color: #aef3ff; box-shadow: 0 0 16px rgba(0,200,255,0.35), inset 0 0 12px rgba(0,200,255,0.12); }
.aw-ring-working { border-color: #ffc24d; color: #ffe6ab; box-shadow: 0 0 16px rgba(255,190,60,0.4); animation: aw-ring-pulse 1.3s ease-in-out infinite; }
.aw-ring-blocked { border-color: #ff5a6e; color: #ffc2c9; box-shadow: 0 0 14px rgba(255,90,110,0.4); }
@keyframes aw-ring-pulse { 0%,100% { box-shadow: 0 0 10px rgba(255,190,60,0.3); } 50% { box-shadow: 0 0 22px rgba(255,190,60,0.7); } }

/* Mini Jarvis-style orb on each agent tile — coloured by job role via --role */
.aw-orb {
    --role: #00e5ff;
    position: relative; width: 64px; height: 64px; margin: 6px auto 10px;
    display: flex; align-items: center; justify-content: center;
}
.aw-orb-ring { position: absolute; border-radius: 50%; border: 1px dashed color-mix(in srgb, var(--role) 45%, transparent); pointer-events: none; }
.aw-orb-ring-1 { inset: 2%;  animation: jarvis-spin 16s linear infinite; }
.aw-orb-ring-2 { inset: 16%; border-style: solid; border-color: color-mix(in srgb, var(--role) 30%, transparent); animation: jarvis-spin-rev 11s linear infinite; }
.aw-orb-core {
    position: relative; z-index: 2; width: 58%; height: 58%; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: radial-gradient(circle at 50% 42%, #fff, color-mix(in srgb, var(--role) 70%, transparent) 46%, transparent 74%);
    box-shadow: 0 0 18px 4px color-mix(in srgb, var(--role) 45%, transparent), inset 0 0 14px rgba(255,255,255,0.5);
    animation: jarvis-breathe 3.6s ease-in-out infinite;
    transition: box-shadow 0.2s, opacity 0.2s;
}
.aw-orb-mono { font-family: var(--font-mono); font-weight: 800; font-size: 16px; color: #05222b; }
/* State: role colour stays (identity); animation/intensity shows what it's doing */
.aw-orb-idle .aw-orb-core    { opacity: 0.45; animation-duration: 6s; box-shadow: 0 0 8px 2px color-mix(in srgb, var(--role) 25%, transparent), inset 0 0 12px rgba(255,255,255,0.35); }
.aw-orb-idle .aw-orb-ring    { animation-play-state: paused; opacity: 0.5; }
.aw-orb-working .aw-orb-core { animation: aw-orb-pulse 1.1s ease-in-out infinite; }
.aw-orb-speaking .aw-orb-core{ animation: aw-orb-pulse 0.5s ease-in-out infinite; box-shadow: 0 0 26px 8px color-mix(in srgb, var(--role) 70%, transparent), inset 0 0 16px rgba(255,255,255,0.6); }
.aw-orb-blocked .aw-orb-core { background: radial-gradient(circle at 50% 42%, #fff, rgba(255,90,110,0.7) 46%, transparent 74%); box-shadow: 0 0 18px 5px rgba(255,90,110,0.5); }
.aw-orb-blocked .aw-orb-mono { color: #3a0a10; }
@keyframes aw-orb-pulse { 0%,100% { box-shadow: 0 0 14px 3px color-mix(in srgb, var(--role) 40%, transparent), inset 0 0 12px rgba(255,255,255,0.45); } 50% { box-shadow: 0 0 30px 10px color-mix(in srgb, var(--role) 75%, transparent), inset 0 0 18px rgba(255,255,255,0.65); } }

/* Speak button on tiles + selected ring uses role colour */
.aw-tile-speak { position: absolute; top: 7px; right: 8px; background: none; border: none; font-size: 13px; cursor: pointer; opacity: 0.5; transition: opacity 0.12s, transform 0.1s; }
.aw-tile-speak:hover { opacity: 1; transform: scale(1.15); }
.aw-tile:hover { border-color: color-mix(in srgb, var(--role) 55%, transparent); }
.aw-tile-selected { border-color: var(--role); box-shadow: 0 0 0 1px color-mix(in srgb, var(--role) 30%, transparent), 0 0 22px color-mix(in srgb, var(--role) 22%, transparent); }
.aw-tile-name { font-size: 14px; font-weight: 700; color: var(--text-0); line-height: 1.2; }
.aw-tile-job {
    margin-top: 3px;
    min-height: 14px;
    color: rgba(202, 238, 244, 0.72);
    font-size: 10px;
    line-height: 1.25;
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.aw-tile-tag  { font-size: 9px; font-family: var(--font-mono); color: var(--role, var(--cyan)); letter-spacing: 0.08em; text-transform: uppercase; margin-top: 2px; }
.aw-tile-status { font-size: 11px; margin-top: 8px; font-weight: 600; }
.aw-tstat-idle    { color: var(--text-3); }
.aw-tstat-done    { color: #6ee7ff; }
.aw-tstat-working { color: #ffce6b; }
.aw-tstat-blocked { color: #ff8a96; }
.aw-tile-foot { font-size: 10px; color: var(--text-3); margin-top: 6px; font-family: var(--font-mono); }

/* Detail drawer */
.aw-d-head { display: flex; align-items: center; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--border); margin-bottom: 12px; }
.aw-d-orb { width: 56px; height: 56px; margin: 0; flex: 0 0 auto; }
.aw-d-roletag { font-size: 10px; font-family: var(--font-mono); color: var(--role, var(--cyan)); letter-spacing: 0.08em; text-transform: uppercase; margin-left: 6px; }
.aw-d-speak { background: color-mix(in srgb, var(--role, var(--cyan)) 16%, transparent); border: 1px solid color-mix(in srgb, var(--role, var(--cyan)) 45%, transparent); color: var(--role, var(--cyan)); border-radius: 999px; padding: 6px 13px; font-size: 12px; cursor: pointer; white-space: nowrap; transition: all 0.12s; }
.aw-d-speak:hover { background: var(--role, var(--cyan)); color: #04222b; font-weight: 700; }
.aw-d-ring { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-weight: 700; font-size: 15px; border: 2px solid var(--border); flex: 0 0 auto; }
.aw-d-headtext { flex: 1; }
.aw-d-title { font-size: 16px; font-weight: 700; color: var(--text-0); }
.aw-d-role { font-size: 12px; color: var(--text-2); margin-top: 2px; }
.aw-d-close { flex: 0 0 auto; }
.aw-d-list { display: flex; flex-direction: column; gap: 2px; max-height: 380px; overflow-y: auto; }
.aw-d-row { display: flex; align-items: baseline; gap: 10px; padding: 8px 6px; border-radius: 8px; font-size: 13px; }
.aw-d-row:hover { background: var(--bg-2); }
.aw-d-dot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto; align-self: center; }
.aw-d-done .aw-d-dot    { background: #00e5ff; }
.aw-d-working .aw-d-dot { background: #ffc24d; }
.aw-d-blocked .aw-d-dot { background: #ff5a6e; }
.aw-d-when { font-family: var(--font-mono); font-size: 11px; color: var(--text-3); flex: 0 0 auto; min-width: 64px; }
.aw-d-text { color: var(--text-1); line-height: 1.45; }

/* "Working on now" banner */
.aw-d-now { background: var(--cyan-dim); border: 1px solid var(--cyan-mid); border-radius: 12px; padding: 12px 14px; margin-bottom: 14px; }
.aw-d-now-label { font-size: 10px; font-family: var(--font-mono); letter-spacing: 0.1em; text-transform: uppercase; color: var(--cyan); }
.aw-d-now-text { font-size: 15px; font-weight: 600; color: var(--text-0); margin-top: 3px; }
.aw-d-now-sub { font-size: 12px; color: var(--text-2); margin-top: 4px; }

/* Concrete per-item work cards */
.aw-d-worklist { display: flex; flex-direction: column; gap: 8px; max-height: 440px; overflow-y: auto; }
.aw-work { border: 1px solid var(--border); border-left: 3px solid var(--cyan); border-radius: 10px; padding: 10px 12px; background: var(--bg-1, #0d1117); }
.aw-work-blocked { border-left-color: #ff5a6e; }
.aw-work-lesson  { border-left-color: #b48cff; }
.aw-work-top { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.aw-work-ticker { font-family: var(--font-mono); font-weight: 700; font-size: 14px; color: var(--cyan); flex: 0 0 auto; }
.aw-work-lesson .aw-work-ticker { color: #c4a8ff; }
.aw-work-line { font-size: 13px; color: var(--text-0); flex: 1; min-width: 120px; }
.aw-work-when { font-family: var(--font-mono); font-size: 10px; color: var(--text-3); flex: 0 0 auto; }
.aw-work-chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.aw-chip { font-size: 11px; font-family: var(--font-mono); background: var(--bg-2); border: 1px solid var(--border); border-radius: 6px; padding: 2px 8px; color: var(--text-2); }
.aw-chip b { color: var(--text-3); font-weight: 600; margin-right: 3px; }
.aw-work-note { font-size: 12px; color: var(--text-2); margin-top: 8px; line-height: 1.5; }

/* Live team comms — the trading floor talking */
.aw-comms { display: flex; flex-direction: column; gap: 8px; max-height: 320px; overflow-y: auto; padding: 4px 2px; }
.aw-cm { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 10px; background: var(--bg-1, #0d1117); border: 1px solid var(--border); border-left: 3px solid var(--cyan-mid); }
.aw-cm-flag   { border-left-color: #ffc24d; }
.aw-cm-lesson { border-left-color: #b48cff; }
.aw-cm-alert  { border-left-color: #ff5a6e; }
.aw-cm-av { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-weight: 700; font-size: 11px; color: #aef3ff; border: 1px solid var(--cyan-mid); background: var(--cyan-dim); }
.aw-cm-body { flex: 1; min-width: 0; }
.aw-cm-head { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; font-size: 11px; }
.aw-cm-from { font-weight: 700; color: var(--text-0); }
.aw-cm-arrow { color: var(--text-3); }
.aw-cm-to { color: var(--cyan); }
.aw-cm-when { color: var(--text-3); font-family: var(--font-mono); margin-left: auto; }
.aw-cm-text { font-size: 13px; color: var(--text-1); line-height: 1.45; margin-top: 3px; }
.aw-cm-tk { font-family: var(--font-mono); font-weight: 700; color: var(--cyan); background: var(--cyan-dim); border-radius: 5px; padding: 1px 6px; margin-right: 6px; font-size: 12px; }

/* ══ The office floor — little bots at desks ════════════════════════════════ */
.aw-floor-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; }
.aw-floor-toggle { display: flex; gap: 6px; }
.aw-ft-btn { background: var(--bg-2); border: 1px solid var(--border); color: var(--text-2); border-radius: 999px; padding: 5px 13px; font-size: 11px; cursor: pointer; transition: all 0.12s; }
.aw-ft-btn:hover { border-color: var(--cyan-mid); color: var(--cyan); }
.aw-ft-on { background: var(--cyan); border-color: var(--cyan); color: #001016; font-weight: 700; }

.aw-office {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(184px, 1fr)); gap: 22px;
    padding: 40px 22px 22px; border-radius: 16px;
    background:
        radial-gradient(120% 80% at 50% 0%, rgba(0,229,255,0.06), transparent 60%),
        repeating-linear-gradient(90deg, rgba(255,255,255,0.02) 0 1px, transparent 1px 56px),
        linear-gradient(180deg, #0b1018, #0d1320);
    border: 1px solid var(--border);
}
.aw-desk {
    --role: #00e5ff;
    position: relative; height: 186px; cursor: pointer;
    display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    padding-bottom: 4px;
}
/* Bot */
.aw-bot { position: relative; width: 64px; padding-top: 16px; display: flex; flex-direction: column; align-items: center; z-index: 2; animation: aw-bob 4.2s ease-in-out infinite; }
.aw-desk-working .aw-bot { animation: aw-bob 1.5s ease-in-out infinite; }
/* Antennae (variants) */
.aw-bot-antenna { position: absolute; top: 2px; left: 50%; transform: translateX(-50%); width: 2px; height: 12px; background: var(--role); border-radius: 2px; box-shadow: 0 0 6px var(--role); }
.aw-bot-antenna::after { content: ""; position: absolute; top: -4px; left: 50%; transform: translateX(-50%); width: 6px; height: 6px; border-radius: 50%; background: var(--role); box-shadow: 0 0 8px var(--role); }
.aw-ant-l { left: 34%; transform: rotate(-18deg); }
.aw-ant-r { left: 66%; transform: rotate(18deg); }
.aw-ant-bulb { height: 14px; } .aw-ant-bulb::after { width: 10px; height: 10px; top: -6px; }
.aw-ant-dish { height: 10px; } .aw-ant-dish::after { width: 16px; height: 8px; border-radius: 50% 50% 0 0; top: -7px; background: color-mix(in srgb, var(--role) 70%, #fff); }
.aw-bot-head {
    width: 46px; height: 36px; border-radius: 11px; position: relative;
    background: linear-gradient(180deg, #eef8ff, #b9cfdb);
    border: 1.5px solid color-mix(in srgb, var(--role) 55%, #2a3a44);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 0 14px color-mix(in srgb, var(--role) 30%, transparent);
}
/* Head shapes */
.aw-bot-head[data-head="dome"]   { border-radius: 22px 22px 9px 9px; }
.aw-bot-head[data-head="square"] { border-radius: 6px; }
.aw-bot-head[data-head="round"]  { border-radius: 50%; width: 40px; height: 40px; }
.aw-bot-head[data-head="tall"]   { width: 38px; height: 44px; border-radius: 12px; }
.aw-bot-head[data-head="wide"]   { width: 54px; height: 32px; border-radius: 14px; }
.aw-eyes { display: flex; align-items: center; justify-content: center; gap: 8px; }
.aw-bot-eye { width: 6px; height: 6px; border-radius: 50%; background: var(--role); box-shadow: 0 0 7px var(--role); animation: aw-blink 5s infinite; }
/* Eye variants */
.aw-eye-round { width: 9px; height: 9px; }
.aw-eye-single { width: 11px; height: 11px; }
.aw-eye-visor { width: 26px; height: 6px; border-radius: 3px; background: var(--role); box-shadow: 0 0 9px var(--role); animation: aw-blink 5s infinite; }
.aw-eye-happy { width: 8px; height: 8px; border: 2px solid var(--role); border-bottom: none; border-radius: 8px 8px 0 0; box-shadow: 0 0 7px color-mix(in srgb, var(--role) 50%, transparent); }
.aw-desk-working .aw-bot-eye, .aw-desk-working .aw-eye-visor { animation: aw-blink 2.2s infinite; }
/* Accessories */
.aw-acc { position: absolute; pointer-events: none; }
.aw-acc-glasses { top: 12px; left: 50%; transform: translateX(-50%); width: 30px; height: 10px; border: 1.5px solid #1b2a33; border-radius: 6px; background: linear-gradient(180deg, rgba(255,255,255,0.25), transparent); box-shadow: 0 0 0 1px rgba(0,0,0,0.1); }
.aw-acc-glasses::after { content: ""; position: absolute; top: 3px; left: 50%; width: 4px; height: 1.5px; background: #1b2a33; transform: translateX(-50%); }
.aw-acc-headset { top: -4px; left: -5px; right: -5px; height: 26px; border: 2.5px solid #29333d; border-bottom: none; border-radius: 18px 18px 0 0; }
.aw-acc-headset::after { content: ""; position: absolute; bottom: 0; left: -3px; width: 7px; height: 11px; background: var(--role); border-radius: 3px; box-shadow: 0 0 8px var(--role); }
.aw-acc-cap { top: -8px; left: 50%; transform: translateX(-50%); width: 42px; height: 12px; background: color-mix(in srgb, var(--role) 60%, #11202a); border-radius: 8px 8px 0 0; }
.aw-acc-cap::after { content: ""; position: absolute; bottom: -3px; left: 50%; transform: translateX(-50%); width: 50px; height: 4px; background: color-mix(in srgb, var(--role) 50%, #11202a); border-radius: 3px; }
.aw-acc-bowtie { bottom: -7px; left: 50%; transform: translateX(-50%); width: 0; height: 0; border: 6px solid var(--role); border-left-color: transparent; border-right-color: transparent; filter: drop-shadow(0 0 5px color-mix(in srgb, var(--role) 50%, transparent)); }
.aw-acc-crown { top: -11px; left: 50%; transform: translateX(-50%); width: 28px; height: 12px; background:
    conic-gradient(from 90deg at 16% 100%, var(--role) 0 0) /* fallback */; }
.aw-acc-crown { background: none; }
.aw-acc-crown::before { content: "♛"; position: absolute; top: -13px; left: 50%; transform: translateX(-50%); font-size: 17px; color: var(--role); text-shadow: 0 0 8px var(--role); }
.aw-acc-scarf { bottom: -5px; left: 50%; transform: translateX(-50%); width: 34px; height: 7px; background: color-mix(in srgb, var(--role) 65%, #11202a); border-radius: 4px; }
.aw-desk-working .aw-bot-eye { animation: aw-blink 2.2s infinite; }
.aw-bot-body { width: 30px; height: 16px; margin-top: -2px; border-radius: 8px 8px 5px 5px; background: linear-gradient(180deg, color-mix(in srgb, var(--role) 35%, #1a2730), #14202a); border: 1.5px solid color-mix(in srgb, var(--role) 45%, #233039); }
.aw-bot-arm { position: absolute; bottom: 14px; width: 4px; height: 12px; background: color-mix(in srgb, var(--role) 40%, #1a2730); border-radius: 3px; }
.aw-bot-arm-l { left: 8px; transform-origin: top center; }
.aw-bot-arm-r { right: 8px; transform-origin: top center; }
.aw-desk-working .aw-bot-arm-l { animation: aw-type 0.45s ease-in-out infinite; }
.aw-desk-working .aw-bot-arm-r { animation: aw-type 0.45s ease-in-out infinite 0.22s; }
/* Monitor */
.aw-monitor { position: relative; z-index: 3; margin-top: -3px; display: flex; flex-direction: column; align-items: center; }
.aw-screen {
    width: 64px; height: 40px; border-radius: 5px; padding: 6px 7px; overflow: hidden;
    background: linear-gradient(180deg, #04121a, #061a24);
    border: 1.5px solid color-mix(in srgb, var(--role) 60%, #243038);
    box-shadow: 0 0 16px color-mix(in srgb, var(--role) 35%, transparent), inset 0 0 12px rgba(0,0,0,0.5);
    display: flex; flex-direction: column; gap: 4px;
}
.aw-screen i { display: block; height: 3px; border-radius: 2px; background: color-mix(in srgb, var(--role) 70%, transparent); width: 40%; opacity: 0.5; }
.aw-screen i:nth-child(2) { width: 75%; }
.aw-screen i:nth-child(3) { width: 55%; }
.aw-desk-working .aw-screen i { animation: aw-typecode 1.1s steps(4) infinite; }
.aw-desk-working .aw-screen i:nth-child(2) { animation-delay: 0.2s; }
.aw-desk-working .aw-screen i:nth-child(3) { animation-delay: 0.4s; }
.aw-desk-idle .aw-screen { opacity: 0.5; box-shadow: inset 0 0 12px rgba(0,0,0,0.5); }
.aw-desk-blocked .aw-screen { border-color: #ff5a6e; box-shadow: 0 0 16px rgba(255,90,110,0.4); }
.aw-mon-stand { width: 10px; height: 6px; background: color-mix(in srgb, var(--role) 40%, #1a2730); margin-top: -1px; border-radius: 0 0 3px 3px; }
.aw-desk-top { width: 96%; height: 8px; border-radius: 3px; background: linear-gradient(180deg, #1b2735, #111a24); border: 1px solid rgba(255,255,255,0.05); box-shadow: 0 6px 14px rgba(0,0,0,0.4); margin-top: 1px; }
.aw-desk-name { font-size: 11px; font-weight: 700; color: var(--text-1); margin-top: 5px; }
.aw-desk:hover .aw-desk-name { color: var(--role); }
.aw-desk-job {
    max-width: 100%;
    margin-top: 2px;
    color: rgba(202, 238, 244, 0.68);
    font-size: 9px;
    line-height: 1.2;
    font-style: italic;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.aw-desk-talking .aw-bot-head { box-shadow: 0 0 18px color-mix(in srgb, var(--role) 70%, transparent); }

/* Speech bubbles above a bot */
.aw-bubbles { position: absolute; bottom: 118px; left: 50%; transform: translateX(-50%); width: 168px; display: flex; flex-direction: column; align-items: center; gap: 5px; z-index: 6; pointer-events: none; }
.aw-bub {
    max-width: 168px; background: #0e1a24; border: 1px solid color-mix(in srgb, var(--role) 55%, transparent);
    border-radius: 10px; padding: 6px 9px; font-size: 10.5px; line-height: 1.35; color: var(--text-0);
    box-shadow: 0 6px 18px rgba(0,0,0,0.5), 0 0 14px color-mix(in srgb, var(--role) 22%, transparent);
    animation: aw-bub-in 0.35s ease; position: relative;
}
.aw-bub::after { content: ""; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%) rotate(45deg); width: 8px; height: 8px; background: #0e1a24; border-right: 1px solid color-mix(in srgb, var(--role) 55%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--role) 55%, transparent); }
.aw-bub-out { animation: aw-bub-out 0.4s ease forwards; }
.aw-bub-to { color: var(--role); font-weight: 700; margin-right: 4px; }
.aw-bub-text b { color: var(--role); }
.aw-bub-flag { border-color: #ffc24d; } .aw-bub-flag::after { border-color: #ffc24d; }
.aw-bub-lesson { border-color: #b48cff; } .aw-bub-lesson::after { border-color: #b48cff; }

@keyframes aw-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes aw-blink { 0%,92%,100% { transform: scaleY(1); } 96% { transform: scaleY(0.1); } }
@keyframes aw-type { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(18deg); } }
@keyframes aw-typecode { 0% { width: 20%; } 100% { width: 85%; } }
@keyframes aw-bub-in { from { opacity: 0; transform: translateY(8px) scale(0.9); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes aw-bub-out { to { opacity: 0; transform: translateY(-6px); } }

.aw-status-strip { display: flex; gap: 10px; flex-wrap: wrap; }
.aw-status-strip .aw-status-card {
    flex: 1; min-width: 110px; text-align: center;
    border: 1px solid var(--border); border-radius: var(--radius);
    background: var(--bg-2); padding: 14px 10px;
}
.aw-status-strip .aw-status-count { font-size: 22px; font-weight: 700; color: var(--text-0); }
.aw-status-strip .aw-status-card-label { font-size: 11px; color: var(--text-3); margin-top: 3px; }
.aw-sched-every { color: var(--text-3); font-size: 11px; display: inline-flex; align-items: center; gap: 4px; margin-left: 4px; }
.aw-roster-wrap { margin-top: 10px; }

/* ── The Call banner (concrete decision, replaces ambiguous MC framing) ── */
.inv-call-banner {
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    padding: 10px 12px; margin: 8px 0;
    background: var(--bg-2); border: 1px solid var(--border); border-radius: var(--radius);
}
.inv-call-dir { font-family: var(--font-mono); font-weight: 800; font-size: 18px; letter-spacing: 0.04em; }
.inv-call-conv { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.inv-call-ret { font-size: 13px; font-weight: 700; margin-left: auto; font-family: var(--font-mono); }
.inv-call-reasons { margin: 4px 0 10px; padding-left: 18px; }
.inv-call-reasons li { font-size: 12px; color: var(--text-2); line-height: 1.5; }

/* ── Kronos score card: agent commentary section ───────────────── */
.ks-agents { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 12px; }
.ks-agents-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 10px; }
.ks-agents-title { font-weight: 700; color: var(--text-1); font-size: 13px; }
.ks-agents-sub { font-size: 11px; color: var(--text-3); }
.ks-agents-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 10px; }
.ks-agent-card { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-2); padding: 10px 12px; }
.ks-agent-head { display: flex; align-items: center; gap: 9px; }
.ks-agent-avatar { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: var(--cyan-dim); color: var(--cyan); display: flex; align-items: center; justify-content: center; font-family: var(--font-mono); font-size: 10px; font-weight: 700; }
.ks-agent-id { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.ks-agent-name { font-size: 12px; font-weight: 600; color: var(--text-1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ks-agent-role { font-size: 10px; color: var(--text-3); }
.ks-agent-verdict { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 2px 7px; border-radius: 999px; background: var(--bg-3); white-space: nowrap; }
.ks-agent-verdict.is-good { background: var(--green-dim); color: var(--green); }
.ks-agent-verdict.is-bad { background: var(--red-dim); color: var(--red); }
.ks-agent-verdict.is-amber { background: var(--amber-dim); color: var(--amber); }
.ks-agent-verdict.is-muted { background: var(--bg-3); color: var(--text-3); }
.ks-agent-comment { margin-top: 7px; font-size: 12px; line-height: 1.5; color: var(--text-2); }
.ks-agents-foot { margin-top: 10px; font-size: 11px; color: var(--text-3); font-style: italic; }
.ks-agents-empty { margin-top: 14px; border-top: 1px solid var(--border); padding-top: 12px; font-size: 12px; color: var(--text-3); }

/* ── Agent commentary: live LLM reasoning controls ─────────────── */
.ks-agents-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.ks-agent-llm { font-style: italic; color: var(--cyan); opacity: 0.85; }
.ks-agent-thinking { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; color: var(--cyan); white-space: nowrap; }
.ks-agent-thinking .spinner { width: 10px; height: 10px; border-width: 2px; }
.ks-agent-card { transition: background 0.2s ease; }

/* ── Auto-flagged top lead (the desk catching one for you) ──────── */
.aw-toplead { margin-top: 12px; border: 1px solid var(--cyan); border-radius: var(--radius); background: var(--cyan-dim); padding: 11px 13px; cursor: pointer; transition: filter 0.12s ease; }
.aw-toplead:hover { filter: brightness(1.12); }
.aw-toplead-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.aw-toplead-flag { font-size: 11px; font-weight: 700; color: var(--cyan); text-transform: uppercase; letter-spacing: 0.04em; }
.aw-toplead-tic { font-family: var(--font-mono); font-weight: 800; font-size: 15px; color: var(--text-0); }
.aw-toplead-co { font-size: 12px; color: var(--text-2); }
.aw-toplead-score { font-family: var(--font-mono); font-weight: 700; color: var(--text-1); }
.aw-toplead-verdict { margin-left: auto; font-size: 10px; font-weight: 700; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; }
.aw-toplead-verdict.is-good { background: var(--green-dim); color: var(--green); }
.aw-toplead-verdict.is-bad { background: var(--red-dim); color: var(--red); }
.aw-toplead-verdict.is-amber { background: var(--amber-dim); color: var(--amber); }
.aw-toplead-comment { margin-top: 7px; font-size: 12px; line-height: 1.5; color: var(--text-1); }
.aw-toplead-foot { margin-top: 6px; font-size: 10px; color: var(--text-3); font-family: var(--font-mono); }

/* ── Proof loop: track record scoreboard ───────────────────────── */
.pf-wrap { border: 1px solid var(--border); border-radius: var(--radius); background: var(--bg-2); padding: 12px 14px; }
.pf-headline { display: flex; align-items: baseline; gap: 12px; margin-bottom: 10px; }
.pf-big { font-size: 30px; font-weight: 800; font-family: var(--font-mono); }
.pf-big.is-good { color: var(--green); } .pf-big.is-amber { color: var(--amber); } .pf-big.is-bad { color: var(--red); } .pf-big.is-muted { color: var(--text-3); }
.pf-big-sub { font-size: 12px; color: var(--text-3); }
.pf-buckets, .pf-recent { margin-top: 8px; }
.pf-buckets-head { font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-3); margin: 8px 0 4px; }
.pf-row { display: grid; grid-template-columns: 1.4fr 1.3fr 0.9fr 1fr; gap: 8px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--border); font-size: 12px; }
.pf-label { font-weight: 600; color: var(--text-1); }
.pf-n { color: var(--text-3); font-size: 11px; }
.pf-hit { font-family: var(--font-mono); font-weight: 700; }
.pf-hit.is-good { color: var(--green); } .pf-hit.is-amber { color: var(--amber); } .pf-hit.is-bad { color: var(--red); } .pf-hit.is-muted { color: var(--text-3); }
.pf-ret { font-family: var(--font-mono); text-align: right; }
.pf-recent-row { display: grid; grid-template-columns: 0.7fr 0.5fr 1.2fr 0.8fr 0.7fr; gap: 8px; align-items: center; padding: 5px 0; border-bottom: 1px solid var(--border); font-size: 12px; cursor: pointer; }
.pf-recent-row:hover { background: var(--bg-3); }
.pf-rt-tic { font-family: var(--font-mono); font-weight: 700; color: var(--cyan); }
.pf-rt-dir { font-size: 10px; color: var(--text-3); }
.pf-rt-cat { color: var(--text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pf-rt-ret { font-family: var(--font-mono); text-align: right; }
.pf-rt-when { font-size: 10px; color: var(--text-3); text-align: right; }
.pf-foot { margin-top: 10px; font-size: 11px; color: var(--text-3); font-style: italic; }

/* ── Jarvis home page ──────────────────────────────────────────── */
.jarvis-page {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 64px);
    height: calc(100vh - 64px);
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 22px 22px;
    overflow-y: auto;
    overflow-x: hidden;
    isolation: isolate;
    scrollbar-gutter: stable both-edges;
}
.jarvis-page::before {
    content: "";
    position: absolute;
    inset: 14px 8px 8px;
    z-index: -1;
    pointer-events: none;
    border: 1px solid rgba(0,229,255,0.08);
    background:
        radial-gradient(circle at 50% 42%, rgba(0,229,255,0.13), transparent 35%),
        radial-gradient(circle at 50% 48%, rgba(255,181,69,0.055), transparent 52%),
        linear-gradient(90deg, transparent 0 48%, rgba(0,229,255,0.1) 50%, transparent 52% 100%);
    box-shadow: inset 0 0 110px rgba(0,229,255,0.055), inset 0 -40px 90px rgba(0,0,0,0.36);
    clip-path: polygon(0 16px, 16px 0, calc(100% - 16px) 0, 100% 16px, 100% calc(100% - 16px), calc(100% - 16px) 100%, 16px 100%, 0 calc(100% - 16px));
}
.jarvis-page::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(180deg, transparent, rgba(0,229,255,0.035) 50%, transparent),
        radial-gradient(circle at 50% 42%, transparent 0 28%, rgba(0,229,255,0.055) 29% 29.4%, transparent 30% 100%);
    background-size: 100% 9px, auto;
    opacity: 0.58;
}
.jarvis-bg-grid {
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        linear-gradient(rgba(0, 229, 255, 0.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 229, 255, 0.045) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: radial-gradient(circle at 50% 46%, #000 0%, #000 42%, transparent 78%);
}
.jarvis-horizon {
    position: absolute;
    left: 4%;
    right: 4%;
    bottom: 22%;
    height: 1px;
    z-index: -2;
    background: linear-gradient(90deg, transparent, rgba(0,229,255,0.45), rgba(255,181,69,0.28), transparent);
    box-shadow: 0 0 32px rgba(0,229,255,0.38);
}
.jarvis-topbar {
    display: grid;
    grid-template-columns: auto minmax(160px, auto) 1fr auto;
    align-items: center;
    gap: 16px;
    padding: 18px 4px 12px;
    border-bottom: 1px solid rgba(0,229,255,0.12);
    position: relative;
    z-index: 3;
}
/* History / conversations button (hamburger) */
.jarvis-histbtn {
    width: 40px; height: 40px; border-radius: 11px; cursor: pointer;
    background: rgba(0,229,255,0.06); border: 1px solid var(--cyan-mid);
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
    transition: all 0.15s;
}
.jarvis-histbtn span { width: 16px; height: 2px; border-radius: 2px; background: var(--cyan); box-shadow: 0 0 6px var(--cyan); }
.jarvis-histbtn:hover { background: var(--cyan); }
.jarvis-histbtn:hover span { background: #001016; box-shadow: none; }

/* Conversations drawer — slides in from the left, glass + cyan */
.jarvis-convos-scrim { position: fixed; inset: 0; background: rgba(0,6,12,0.5); backdrop-filter: blur(2px); opacity: 0; pointer-events: none; transition: opacity 0.25s; z-index: 60; }
.jarvis-convos-scrim.jarvis-convos-open { opacity: 1; pointer-events: auto; }
.jarvis-convos {
    position: fixed; top: 0; left: 0; bottom: 0; width: 312px; max-width: 86vw; z-index: 61;
    transform: translateX(-104%); transition: transform 0.28s cubic-bezier(.4,0,.2,1);
    display: flex; flex-direction: column;
    background: linear-gradient(180deg, rgba(8,16,24,0.98), rgba(6,12,20,0.98));
    border-right: 1px solid var(--cyan-mid);
    box-shadow: 0 0 60px rgba(0,229,255,0.12), inset -1px 0 0 rgba(0,229,255,0.15);
}
.jarvis-convos.jarvis-convos-open { transform: translateX(0); }
.jarvis-convos-head { display: flex; align-items: center; justify-content: space-between; padding: 18px 16px 10px; }
.jarvis-convos-title { font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.22em; color: var(--cyan); }
.jarvis-convos-x { background: none; border: none; color: var(--text-3); font-size: 16px; cursor: pointer; }
.jarvis-convos-x:hover { color: var(--text-0); }
.jarvis-newchat {
    margin: 4px 14px 12px; padding: 11px 14px; border-radius: 11px; cursor: pointer;
    background: var(--cyan-dim); border: 1px solid var(--cyan-mid); color: var(--cyan);
    font-size: 13px; font-weight: 600; text-align: left; transition: all 0.15s;
}
.jarvis-newchat:hover { background: var(--cyan); color: #001016; }
.jarvis-convos-list { flex: 1; overflow-y: auto; padding: 0 10px 16px; display: flex; flex-direction: column; gap: 4px; }
.jarvis-convos-empty { color: var(--text-3); font-size: 12px; text-align: center; padding: 30px 16px; line-height: 1.6; }
.jarvis-convo {
    display: flex; align-items: center; gap: 8px; padding: 10px 11px; border-radius: 10px; cursor: pointer;
    border: 1px solid transparent; transition: all 0.12s;
}
.jarvis-convo:hover { background: rgba(255,255,255,0.04); border-color: var(--border); }
.jarvis-convo-active { background: var(--cyan-dim); border-color: var(--cyan-mid); }
.jarvis-convo-main { flex: 1; min-width: 0; }
.jarvis-convo-title { font-size: 13px; color: var(--text-0); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jarvis-convo-meta { font-size: 10px; color: var(--text-3); font-family: var(--font-mono); margin-top: 2px; }
.jarvis-convo-del { background: none; border: 1px solid transparent; border-radius: 7px; color: var(--text-3); font-size: 13px; cursor: pointer; opacity: 0.45; flex: 0 0 auto; width: 24px; height: 24px; line-height: 1; transition: all 0.12s; }
.jarvis-convo:hover .jarvis-convo-del { opacity: 0.85; }
.jarvis-convo-del:hover { opacity: 1; color: #ff8a96; border-color: rgba(255,90,110,0.5); background: rgba(255,90,110,0.1); }
.jarvis-titleblock { min-width: 0; }
.jarvis-title {
    font-family: var(--font-brand);
    font-size: clamp(28px, 5vw, 54px);
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: 0.14em;
    color: var(--text-0);
    text-shadow: 0 0 18px rgba(0,229,255,0.72), 0 0 52px rgba(0,229,255,0.26);
}
.jarvis-subtitle {
    margin-top: 7px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: rgba(255,181,69,0.9);
}
.jarvis-status {
    min-height: 18px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cyan);
    text-align: center;
}
.jarvis-modebtn {
    background: rgba(10,15,26,0.72);
    border: 1px solid rgba(0,229,255,0.45);
    color: var(--cyan);
    border-radius: 6px;
    padding: 9px 17px;
    font-size: 11px;
    font-family: var(--font-mono);
    font-weight: 800;
    cursor: pointer;
    letter-spacing: 0.14em;
    box-shadow: inset 0 0 18px rgba(0,229,255,0.08), 0 0 18px rgba(0,229,255,0.12);
}
.jarvis-modebtn:hover { background: rgba(0,229,255,0.11); }

/* Mode switching */
.jarvis-mode-voice .jarvis-chatpanel { display: none; }
.jarvis-mode-chat  .jarvis-voicestage { display: none; }
.jarvis-chatpanel {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
    width: min(960px, 100%);
    margin: 0 auto;
    padding-bottom: 4px;
}
.jarvis-thread { flex: 1; overflow-y: auto; padding: 10px 2px 14px; display: flex; flex-direction: column; gap: 14px; }
.jarvis-welcome { color: var(--text-3); font-size: 13px; padding: 24px 4px; }
.jarvis-welcome-line { margin-bottom: 12px; }
.jarvis-suggest { display: flex; gap: 8px; flex-wrap: wrap; }
.jarvis-chip { background: rgba(10,15,26,0.76); border: 1px solid rgba(0,229,255,0.22); color: var(--text-1); border-radius: 6px; padding: 8px 12px; font-size: 12px; cursor: pointer; transition: background 0.12s, border-color 0.12s; }
.jarvis-chip:hover { background: rgba(0,229,255,0.12); border-color: rgba(0,229,255,0.65); }
.jarvis-msg { display: flex; flex-direction: column; gap: 4px; }
.jarvis-msg-who { font-size: 10px; font-family: var(--font-mono); letter-spacing: 0.14em; color: var(--text-3); }
.jarvis-msg-you { align-items: flex-end; }
.jarvis-msg-you .jarvis-msg-who { color: rgba(255,181,69,0.82); }
.jarvis-msg-body { font-size: 14px; line-height: 1.6; padding: 12px 14px; border-radius: 7px; max-width: 86%; }
.jarvis-msg-you .jarvis-msg-body { background: rgba(255,181,69,0.12); color: var(--text-0); border: 1px solid rgba(255,181,69,0.24); }
.jarvis-msg-jarvis .jarvis-msg-body { background: rgba(10,15,26,0.78); border: 1px solid rgba(0,229,255,0.22); color: var(--text-1); box-shadow: inset 0 0 18px rgba(0,229,255,0.06); }
.jarvis-typing { display: inline-flex; gap: 4px; }
.jarvis-typing span { width: 6px; height: 6px; border-radius: 50%; background: var(--cyan); animation: jarvis-blink 1.2s infinite both; }
.jarvis-typing span:nth-child(2) { animation-delay: 0.2s; }
.jarvis-typing span:nth-child(3) { animation-delay: 0.4s; }
@keyframes jarvis-blink { 0%,80%,100%{opacity:0.25} 40%{opacity:1} }
.jarvis-inputbar { display: flex; gap: 8px; align-items: center; padding: 10px 0; border-top: 1px solid rgba(0,229,255,0.18); }
.jarvis-input { flex: 1; background: rgba(5,8,14,0.92); border: 1px solid rgba(0,229,255,0.24); border-radius: 6px; padding: 12px 14px; color: var(--text-0); font-size: 14px; }
.jarvis-input:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 18px rgba(0,229,255,0.16); }
.jarvis-web-toggle { font-size: 11px; color: var(--text-2); font-family: var(--font-mono); display: inline-flex; align-items: center; gap: 5px; cursor: pointer; text-transform: uppercase; letter-spacing: 0.08em; }
.jarvis-send { padding: 11px 20px; }
.jarvis-foot { font-size: 10px; color: var(--text-3); padding: 6px 2px 12px; line-height: 1.5; }

/* Cinematic Jarvis voice stage */
.jarvis-voicestage {
    flex: 1;
    display: grid;
    grid-template-columns: minmax(170px, 250px) minmax(300px, 1fr) minmax(300px, 390px);
    align-items: center;
    gap: clamp(14px, 2.4vw, 34px);
    min-height: 0;
    padding: 12px 0 28px;
}
.jarvis-orb-column {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-width: 0;
}
.jarvis-orbwrap {
    position: relative;
    width: min(58vh, 560px, 100%);
    aspect-ratio: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    isolation: isolate;
    transform-style: preserve-3d;
    animation: jarvis-reactor-float 5.8s ease-in-out infinite;
}
.jarvis-orbwrap::before,
.jarvis-orbwrap::after {
    content: "";
    position: absolute;
    inset: 8%;
    border: 1px solid rgba(0,229,255,0.18);
    border-radius: 50%;
    box-shadow: inset 0 0 46px rgba(0,229,255,0.08), 0 0 38px rgba(0,229,255,0.13);
    animation: jarvis-shell-breathe 4.4s ease-in-out infinite;
}
.jarvis-orbwrap::after {
    inset: 20%;
    border-color: rgba(255,181,69,0.17);
    transform: rotate(22deg);
    animation: jarvis-shell-breathe 3.8s ease-in-out infinite reverse;
}
.jarvis-orbwrap:hover {
    filter: saturate(1.14);
}
.jarvis-orb { position: absolute; inset: 0; width: 100%; height: 100%; filter: drop-shadow(0 0 26px rgba(0,229,255,0.36)); }
.jarvis-orb-ring {
    position: absolute;
    border-radius: 50%;
    border: 1px dashed rgba(0,229,255,0.24);
    pointer-events: none;
}
.jarvis-orb-ring::before,
.jarvis-orb-ring::after {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    border: 2px solid transparent;
    border-top-color: rgba(0,229,255,0.62);
    border-right-color: rgba(255,181,69,0.28);
    filter: drop-shadow(0 0 12px rgba(0,229,255,0.4));
}
.jarvis-orb-ring::after {
    inset: 10%;
    border-top-color: rgba(0,220,130,0.42);
    border-right-color: transparent;
}
.jarvis-orb-ring-1 { inset: 12%; animation: jarvis-spin 18s linear infinite; }
.jarvis-orb-ring-2 { inset: 25%; border-color: rgba(255,181,69,0.28); animation: jarvis-spin-rev 13s linear infinite; }
.jarvis-orb-ring-3 { inset: 38%; border-style: solid; border-color: rgba(0,220,130,0.22); animation: jarvis-spin 8s linear infinite; }
.jarvis-orb-core {
    position: relative;
    z-index: 2;
    width: 25%;
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        radial-gradient(circle at 45% 38%, rgba(255,255,255,1), rgba(0,229,255,0.82) 30%, rgba(0,118,155,0.22) 58%, transparent 76%),
        conic-gradient(from 90deg, rgba(0,229,255,0.22), rgba(255,181,69,0.1), rgba(0,220,130,0.14), rgba(0,229,255,0.22));
    box-shadow:
        0 0 38px 10px rgba(0,229,255,0.58),
        0 0 112px 30px rgba(0,229,255,0.22),
        0 0 210px 54px rgba(0,70,95,0.16),
        inset 0 0 38px rgba(255,255,255,0.54);
    transition: box-shadow 0.2s, background 0.2s;
    animation: jarvis-breathe 3.4s ease-in-out infinite, jarvis-core-hue 12s ease-in-out infinite;
}
.jarvis-orb-core::before {
    content: "";
    position: absolute;
    inset: 18%;
    border: 2px solid rgba(255,255,255,0.42);
    border-radius: 50%;
    box-shadow: 0 0 18px rgba(255,255,255,0.25);
}
.jarvis-orb-listening { background: radial-gradient(circle at 50% 42%, rgba(236,255,245,0.98), rgba(0,220,130,0.64) 44%, rgba(0,110,70,0.08) 72%, transparent 74%); box-shadow: 0 0 52px 15px rgba(0,220,130,0.54), 0 0 126px 38px rgba(0,220,130,0.2), inset 0 0 34px rgba(255,255,255,0.46); }
.jarvis-orb-thinking  { background: radial-gradient(circle at 50% 42%, rgba(255,248,230,0.98), rgba(255,181,69,0.66) 44%, rgba(120,78,0,0.08) 72%, transparent 74%); box-shadow: 0 0 52px 15px rgba(255,181,69,0.48), 0 0 126px 38px rgba(255,181,69,0.17), inset 0 0 34px rgba(255,255,255,0.42); }
.jarvis-orb-speaking  { box-shadow: 0 0 72px 22px rgba(0,229,255,0.68), 0 0 160px 46px rgba(0,229,255,0.28), inset 0 0 42px rgba(255,255,255,0.58); animation: jarvis-breathe 0.8s ease-in-out infinite; }
@keyframes jarvis-reactor-float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-7px); } }
@keyframes jarvis-shell-breathe { 0%,100% { transform: scale(0.985) rotate(0deg); opacity: 0.78; } 50% { transform: scale(1.025) rotate(7deg); opacity: 1; } }
@keyframes jarvis-breathe { 0%,100% { transform: scale(1); filter: brightness(1); } 50% { transform: scale(1.075); filter: brightness(1.18); } }
@keyframes jarvis-core-hue { 0%,100% { filter: hue-rotate(0deg); } 50% { filter: hue-rotate(-10deg); } }
@keyframes jarvis-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes jarvis-spin-rev { from { transform: rotate(360deg); } to { transform: rotate(0deg); } }

.jarvis-hud-panel {
    position: relative;
    min-height: 210px;
    padding: 14px;
    border: 1px solid rgba(0,229,255,0.24);
    border-radius: 7px;
    background:
        linear-gradient(180deg, rgba(0,229,255,0.055), rgba(5,8,14,0.62) 38%, rgba(5,8,14,0.72)),
        repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 7px);
    box-shadow: inset 0 0 36px rgba(0,229,255,0.06), 0 0 28px rgba(0,229,255,0.08);
    overflow: hidden;
}
.jarvis-hud-panel > * { position: relative; z-index: 1; }
.jarvis-hud-panel::selection { background: rgba(0,229,255,0.25); }
.jarvis-hud-panel::before,
.jarvis-hud-panel::after {
    content: "";
    position: absolute;
    width: 28px;
    height: 28px;
    border-color: rgba(0,229,255,0.62);
    border-style: solid;
}
.jarvis-hud-panel::before { top: -1px; left: -1px; border-width: 1px 0 0 1px; }
.jarvis-hud-panel::after { right: -1px; bottom: -1px; border-width: 0 1px 1px 0; }
.jarvis-hud-label {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: rgba(255,181,69,0.88);
    margin-bottom: 12px;
}
.jarvis-signal-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    font-family: var(--font-mono);
    font-size: 11px;
}
.jarvis-signal-row span { color: var(--text-3); text-transform: uppercase; }
.jarvis-signal-row b { color: var(--cyan); font-weight: 700; text-align: right; }
.jarvis-feed-ok { color: #4dffa6 !important; }
.jarvis-feed-warn { color: #ffce6b !important; }
.jarvis-feed-bad { color: #ff8a96 !important; }
.jarvis-hud-right {
    min-height: 0;
    max-height: min(68vh, 620px);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.jarvis-memory-prime {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 12px;
}
.jarvis-memory-count {
    font-family: var(--font-brand);
    font-size: 48px;
    line-height: 0.9;
    color: var(--text-0);
    text-shadow: 0 0 22px rgba(0,229,255,0.4);
}
.jarvis-memory-sub { font-size: 10px; color: var(--text-3); text-transform: uppercase; letter-spacing: 0.12em; margin-top: 4px; }
.jarvis-memory-ring {
    width: 82px;
    aspect-ratio: 1;
    border-radius: 50%;
    display: grid;
    place-items: center;
    border: 1px solid rgba(0,229,255,0.38);
    background: radial-gradient(circle, rgba(0,229,255,0.16), rgba(0,229,255,0.035) 58%, transparent 60%);
    box-shadow: inset 0 0 22px rgba(0,229,255,0.08), 0 0 22px rgba(0,229,255,0.12);
    font-family: var(--font-mono);
}
.jarvis-memory-ring span { color: var(--cyan); font-size: 22px; font-weight: 800; line-height: 1; }
.jarvis-memory-ring small { color: rgba(255,181,69,0.84); font-size: 8px; text-transform: uppercase; letter-spacing: 0.1em; margin-top: -18px; }
.jarvis-memory-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; margin-bottom: 12px; }
.jarvis-memory-grid div {
    border: 1px solid rgba(0,229,255,0.18);
    border-radius: 5px;
    padding: 8px 5px;
    min-height: 48px;
    text-align: center;
    background: linear-gradient(180deg, rgba(0,229,255,0.07), rgba(0,229,255,0.025));
    box-shadow: inset 0 0 14px rgba(0,229,255,0.035);
}
.jarvis-memory-grid b { display: block; font-family: var(--font-mono); color: var(--cyan); font-size: 15px; line-height: 1.05; }
.jarvis-memory-grid span { display: block; margin-top: 4px; color: var(--text-3); font-size: 7.8px; line-height: 1.2; text-transform: uppercase; overflow-wrap: anywhere; }
.jarvis-role-uplink {
    border-top: 1px solid rgba(255,181,69,0.15);
    border-bottom: 1px solid rgba(255,181,69,0.12);
    padding: 8px 0;
    margin: 2px 0 10px;
    font-family: var(--font-mono);
}
.jarvis-role-uplink span { display: block; color: rgba(255,181,69,0.8); font-size: 9px; text-transform: uppercase; letter-spacing: 0.14em; margin-bottom: 5px; }
.jarvis-role-uplink b { display: block; color: var(--cyan); font-size: 10px; line-height: 1.45; font-weight: 700; text-transform: uppercase; }
.jarvis-memory-recent { display: flex; flex-direction: column; gap: 7px; }
.jarvis-memory-line { color: var(--text-2); font-size: 11px; line-height: 1.4; border-left: 2px solid rgba(255,181,69,0.42); padding-left: 8px; }

.jarvis-voicestatus {
    margin-top: -6px;
    font-family: var(--font-brand);
    font-size: 16px;
    letter-spacing: 0.2em;
    color: var(--cyan);
    min-height: 22px;
    text-align: center;
    text-shadow: 0 0 16px rgba(0,229,255,0.45);
}
.jarvis-learning-status { margin-top: 8px; font-size: 10px; color: rgba(255,181,69,0.84); }
.jarvis-transcript { max-width: 760px; text-align: center; font-size: 14px; line-height: 1.55; color: var(--text-1); padding: 10px 12px 0; min-height: 46px; max-height: 22vh; overflow-y: auto; }
.jarvis-tr-you { display: block; color: rgba(255,181,69,0.78); font-style: italic; margin-bottom: 8px; }
.jarvis-tr-jarvis { display: block; color: var(--text-0); }
.jarvis-voicebar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 10px; }
.jarvis-handsfree { background: var(--bg-2); border: 1px solid var(--border); color: var(--text-2); border-radius: 999px; padding: 9px 16px; font-size: 12px; cursor: pointer; transition: all 0.15s; }
.jarvis-handsfree:hover { border-color: var(--cyan-mid); color: var(--cyan); }
.jarvis-hf-on { background: rgba(0,220,130,0.16); border-color: rgba(0,220,130,0.6); color: #4dffa6; box-shadow: 0 0 14px rgba(0,220,130,0.3); animation: jarvis-hf-pulse 2s ease-in-out infinite; }
@keyframes jarvis-hf-pulse { 0%,100% { box-shadow: 0 0 10px rgba(0,220,130,0.25); } 50% { box-shadow: 0 0 20px rgba(0,220,130,0.5); } }
.jarvis-wakehint { font-size: 11px; font-family: var(--font-mono); color: var(--text-3); text-align: center; margin-top: 7px; min-height: 14px; letter-spacing: 0.04em; }
.jarvis-mic {
    background: var(--cyan);
    color: #001016;
    border: 1px solid rgba(255,255,255,0.3);
    border-radius: 6px;
    padding: 13px 34px;
    font-size: 14px;
    font-weight: 800;
    font-family: var(--font-mono);
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 0 28px rgba(0,229,255,0.42);
    transition: transform 0.1s, box-shadow 0.2s, background 0.2s;
}
.jarvis-mic:hover { transform: translateY(-1px); box-shadow: 0 0 38px rgba(0,229,255,0.55); }
.jarvis-mic-live { background: rgba(0,229,255,0.14); color: var(--cyan); border-color: rgba(0,229,255,0.52); box-shadow: inset 0 0 20px rgba(0,229,255,0.08), 0 0 24px rgba(0,229,255,0.18); }
.jarvis-mic-on { background: #ff4d6a; color: #fff; box-shadow: 0 0 34px rgba(255,77,106,0.58); animation: jarvis-pulse 1.1s ease-in-out infinite; }
.jarvis-session-live .jarvis-orbwrap::before { border-color: rgba(0,229,255,0.34); box-shadow: inset 0 0 52px rgba(0,229,255,0.08), 0 0 42px rgba(0,229,255,0.16); }
.jarvis-session-live .jarvis-horizon { box-shadow: 0 0 42px rgba(0,229,255,0.5); }
@keyframes jarvis-pulse { 0%,100% { box-shadow: 0 0 24px rgba(255,77,106,0.45); } 50% { box-shadow: 0 0 46px rgba(255,77,106,0.72); } }
.jarvis-textlink { background: none; border: 1px solid rgba(255,255,255,0.08); border-radius: 5px; color: var(--text-2); font-size: 11px; cursor: pointer; padding: 8px 10px; text-transform: uppercase; letter-spacing: 0.08em; }
.jarvis-textlink:hover { color: var(--cyan); border-color: rgba(0,229,255,0.38); }

@media (max-width: 1100px) {
    .jarvis-page { overflow-y: auto; }
    .jarvis-voicestage { grid-template-columns: 1fr; align-content: start; gap: 18px; padding-bottom: 22px; }
    .jarvis-hud-panel { min-height: auto; width: min(720px, 100%); margin: 0 auto; }
    .jarvis-hud-left { display: none; }
    .jarvis-hud-right { order: 2; margin-top: 0; max-height: none; }
    .jarvis-orb-column { order: 1; }
    .jarvis-orbwrap { width: min(42vh, 380px, 100%); }
    .jarvis-transcript { min-height: 30px; max-height: 16vh; }
    .jarvis-voicebar { margin-bottom: 6px; }
}
@media (max-width: 720px) {
    .jarvis-page { height: calc(100vh - 48px); padding: 0 12px 12px; overflow-y: auto; }
    .jarvis-topbar { grid-template-columns: 1fr auto; gap: 10px; }
    .jarvis-topbar .jarvis-status { grid-column: 1 / -1; text-align: left; }
    .jarvis-title { font-size: 30px; }
    .jarvis-subtitle { font-size: 9px; }
    .jarvis-hud-panel { min-height: auto; }
    .jarvis-hud-left { display: none; }
    .jarvis-memory-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jarvis-memory-count { font-size: 38px; }
    .jarvis-orbwrap { width: min(72vw, 340px); }
    .jarvis-transcript { max-height: none; }
    .jarvis-inputbar { flex-wrap: wrap; }
    .jarvis-input { flex-basis: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   MOBILE / RESPONSIVE LAYER  (desktop unaffected — all scoped to small screens)
   ═══════════════════════════════════════════════════════════════════════════ */
.topbar-burger { display: none; }

@media (max-width: 860px) {
  /* Hamburger shows; sidebar becomes an off-canvas drawer */
  .topbar-burger {
    display: flex; flex-direction: column; justify-content: center; gap: 4px;
    width: 40px; height: 34px; padding: 7px 9px; flex: 0 0 auto;
    background: rgba(0,229,255,0.07); border: 1px solid var(--cyan-mid);
    border-radius: 9px; cursor: pointer;
  }
  .topbar-burger span { display: block; height: 2px; background: var(--cyan); border-radius: 2px; box-shadow: 0 0 5px var(--cyan); }

  /* override the old bottom-bar grid (which reserved a 3rd row) */
  .app { grid-template-columns: 1fr !important; grid-template-rows: 48px 1fr !important; overflow-x: hidden; }
  .topbar { padding: 0 10px; gap: 8px; }
  .topbar-search { display: none; }
  .topbar-logo-img { max-height: 26px; }
  .topbar-right { gap: 6px; margin-left: auto; }
  .topbar-right .btn { padding: 6px 9px; font-size: 11px; }
  .market-badge { display: none; }

  /* Left slide-in drawer — override the old horizontal bottom-bar rules */
  .sidebar {
    position: fixed !important; top: 48px !important; left: 0 !important; bottom: 0 !important;
    right: auto !important; grid-row: auto !important; width: 260px !important; max-width: 84vw;
    flex-direction: column !important; border-top: none !important; border-right: 1px solid var(--border);
    background: var(--bg-1);
    z-index: 200; transform: translateX(-103%); transition: transform 0.25s ease;
    overflow-x: hidden !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch;
    box-shadow: 6px 0 40px rgba(0,0,0,0.6); padding: 0;
  }
  .sidebar-nav { flex-direction: column !important; padding: 10px 8px 24px !important; gap: 2px; width: 100%; }
  .sidebar-label { display: block; }   /* show section labels in the drawer */
  .app.nav-open .sidebar { transform: translateX(0); }
  .mnav-scrim { position: fixed; inset: 48px 0 0 0; background: rgba(0,6,12,0.55);
    z-index: 150; opacity: 0; pointer-events: none; transition: opacity 0.25s; }
  .mnav-scrim.mnav-scrim-on { opacity: 1; pointer-events: auto; }
  .nav-item { padding: 12px 12px !important; width: 100%; }   /* bigger tap targets */

  .main { overflow-y: auto; -webkit-overflow-scrolling: touch; min-width: 0; }

  /* ── Jarvis page: single column; hide the decorative side HUDs ── */
  .jarvis-voicestage { grid-template-columns: 1fr !important; gap: 14px; padding: 6px 0 18px; }
  .jarvis-hud-left, .jarvis-hud-right, #jarvis-memory-panel { display: none !important; }
  .jarvis-page { height: auto; min-height: calc(100vh - 48px); padding: 0 10px 18px; overflow-y: auto; }
  .jarvis-orbwrap { width: min(74vw, 340px); }
  .jarvis-topbar { grid-template-columns: auto 1fr auto auto; gap: 8px; padding: 12px 2px 8px; }
  .jarvis-title { font-size: 30px; }
  .jarvis-subtitle { display: none; }
  .jarvis-voicebar { gap: 8px; flex-wrap: wrap; }
  .jarvis-transcript { font-size: 14px; }
  .jarvis-chatpanel { padding: 0 8px 12px; }
  .jarvis-inputbar { flex-wrap: wrap; }
  .jarvis-input { min-width: 0; }

  /* ── Ranked board: scroll the wide table instead of overlapping ── */
  .rk-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .rk-row { min-width: 740px; }
  .rk-topbar { flex-direction: column; align-items: flex-start; gap: 8px; }
  .rk-legend-body { font-size: 11px; }

  /* ── Agent office: 2 columns so bots don't cram ── */
  .aw-office { grid-template-columns: repeat(2, 1fr); gap: 16px; padding: 26px 12px 14px; }
  .aw-floor-bar { flex-direction: column; align-items: flex-start; gap: 8px; }
  .aw-pipe-grid { grid-template-columns: repeat(2, 1fr); }
  .aw-comms { max-height: 260px; }

  /* ── Generic: keep wide sections from forcing horizontal scroll ── */
  .tom-mode-page, .tom-section { min-width: 0; max-width: 100%; }
  .tom-page-title { font-size: 22px; }
  table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

@media (max-width: 480px) {
  .jarvis-title { font-size: 24px; }
  .jarvis-orbwrap { width: min(82vw, 300px); }
  .aw-office { gap: 12px; padding: 22px 10px 12px; }
  .jarvis-voicebar .jarvis-mic { width: 100%; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   JARVIS OS NAVIGATION SHELL
   Desktop rail + mobile drawer skin. Markup stays unchanged.
   ═══════════════════════════════════════════════════════════════════════════ */
.sidebar {
    position: relative;
    isolation: isolate;
    background:
        linear-gradient(180deg, rgba(0, 229, 255, 0.075), rgba(255, 181, 69, 0.035) 44%, rgba(0, 6, 12, 0.94)),
        #050b12;
    border-right: 1px solid rgba(0, 229, 255, 0.22);
    box-shadow:
        inset -1px 0 0 rgba(255, 181, 69, 0.16),
        18px 0 46px rgba(0, 0, 0, 0.28);
}

.sidebar::before {
    content: "J.A.R.V.I.S OS";
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    min-height: 38px;
    margin: 10px 10px 5px;
    padding: 0 10px;
    border: 1px solid rgba(0, 229, 255, 0.26);
    border-left-color: rgba(255, 181, 69, 0.72);
    background:
        linear-gradient(90deg, rgba(255, 181, 69, 0.13), rgba(0, 229, 255, 0.065) 46%, rgba(0, 0, 0, 0));
    color: var(--cyan);
    font-family: var(--font-brand);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    text-shadow: 0 0 12px rgba(0, 229, 255, 0.75);
    clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 50%, calc(100% - 10px) 100%, 0 100%);
    z-index: 1;
}

.sidebar::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: -1;
    background:
        repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.035) 0 1px, transparent 1px 6px),
        linear-gradient(90deg, transparent, rgba(0, 229, 255, 0.075) 48%, transparent);
    opacity: 0.42;
}

.sidebar-nav {
    position: relative;
    padding: 6px 9px 12px;
    gap: 4px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 229, 255, 0.36) transparent;
}

.nav-section-label,
.sidebar-label {
    padding: 12px 10px 5px;
    color: rgba(255, 181, 69, 0.82);
    font-family: var(--font-mono);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    text-shadow: 0 0 12px rgba(255, 181, 69, 0.22);
}

.nav-section-label::after,
.sidebar-label::after {
    content: "";
    display: block;
    width: 36px;
    height: 1px;
    margin-top: 5px;
    background: linear-gradient(90deg, rgba(255, 181, 69, 0.9), rgba(0, 229, 255, 0));
}

.nav-section-divider {
    height: 1px;
    margin: 9px 10px;
    background: linear-gradient(90deg, rgba(0, 229, 255, 0), rgba(0, 229, 255, 0.42), rgba(255, 181, 69, 0.22), rgba(0, 229, 255, 0));
    opacity: 1;
}

.nav-item {
    position: relative;
    min-height: 34px;
    padding: 8px 10px 8px 12px;
    border-radius: 3px;
    border: 1px solid rgba(0, 229, 255, 0.075);
    border-left-color: rgba(0, 229, 255, 0.18);
    background: rgba(2, 12, 20, 0.34);
    color: rgba(201, 238, 244, 0.72);
    font-family: var(--font-mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.015em;
    text-transform: uppercase;
    overflow: hidden;
}

.nav-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 6px;
    bottom: 6px;
    width: 2px;
    background: rgba(0, 229, 255, 0.32);
    box-shadow: 0 0 10px rgba(0, 229, 255, 0.28);
}

.nav-item::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(90deg, rgba(0, 229, 255, 0.13), transparent 46%);
    opacity: 0;
    transition: opacity 160ms ease;
}

.nav-item svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    color: rgba(0, 229, 255, 0.72);
    filter: drop-shadow(0 0 6px rgba(0, 229, 255, 0.28));
    z-index: 1;
}

.nav-item:hover {
    background: rgba(0, 229, 255, 0.075);
    border-color: rgba(0, 229, 255, 0.24);
    color: #f0fbff;
    transform: translateX(2px);
}

.nav-item:hover::after {
    opacity: 1;
}

.nav-item.active {
    background:
        linear-gradient(90deg, rgba(255, 181, 69, 0.18), rgba(0, 229, 255, 0.14) 56%, rgba(0, 229, 255, 0.045)),
        rgba(0, 17, 25, 0.86);
    border-color: rgba(0, 229, 255, 0.44);
    border-left-color: rgba(255, 181, 69, 0.92);
    color: #ffffff;
    box-shadow:
        inset 0 0 18px rgba(0, 229, 255, 0.1),
        0 0 18px rgba(0, 229, 255, 0.08);
}

.nav-item.active::before {
    width: 3px;
    background: var(--amber);
    box-shadow: 0 0 12px rgba(255, 181, 69, 0.85);
}

.nav-item.active svg {
    color: var(--amber);
    filter: drop-shadow(0 0 7px rgba(255, 181, 69, 0.45));
}

.nav-tools-details {
    margin: 6px 0 2px;
    border: 1px solid rgba(0, 229, 255, 0.09);
    background: rgba(0, 0, 0, 0.16);
}

.nav-tools-details:not([open]) .nav-item {
    display: none;
}

.nav-tools-summary {
    min-height: 34px;
    padding: 8px 10px;
    color: rgba(255, 181, 69, 0.86);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.18em;
    border-bottom: 1px solid rgba(0, 229, 255, 0.08);
}

.nav-tools-summary::before {
    color: var(--cyan);
    text-shadow: 0 0 8px rgba(0, 229, 255, 0.6);
}

.watchlist-wrap,
.sidebar-portfolio-details {
    margin: 0 8px 10px;
    border: 1px solid rgba(0, 229, 255, 0.09);
    background: rgba(0, 8, 14, 0.32);
}

.watchlist-wrap {
    padding: 6px;
}

.sidebar-portfolio-summary {
    color: rgba(255, 181, 69, 0.86);
}

.topbar-burger {
    border-radius: 3px;
    background:
        linear-gradient(135deg, rgba(255, 181, 69, 0.13), rgba(0, 229, 255, 0.09)),
        rgba(0, 8, 14, 0.9);
    border: 1px solid rgba(0, 229, 255, 0.45);
    box-shadow: inset 0 0 14px rgba(0, 229, 255, 0.08), 0 0 16px rgba(0, 229, 255, 0.08);
}

.topbar-burger span {
    background: var(--cyan);
    box-shadow: 0 0 7px rgba(0, 229, 255, 0.86);
}

@media (max-width: 860px) {
    .sidebar {
        width: min(320px, 86vw) !important;
        background:
            linear-gradient(180deg, rgba(0, 229, 255, 0.12), rgba(5, 10, 18, 0.98) 34%, rgba(0, 0, 0, 0.98)),
            #050b12 !important;
        border-right-color: rgba(0, 229, 255, 0.36) !important;
        box-shadow: 18px 0 55px rgba(0, 0, 0, 0.78), inset -1px 0 0 rgba(255, 181, 69, 0.2) !important;
    }

    .sidebar::before {
        position: sticky;
        top: 0;
        min-height: 44px;
        margin: 10px 10px 8px;
        background:
            linear-gradient(90deg, rgba(255, 181, 69, 0.16), rgba(0, 229, 255, 0.1) 58%, rgba(0, 0, 0, 0.18)),
            rgba(0, 10, 18, 0.96);
        backdrop-filter: blur(10px);
    }

    .sidebar-nav {
        padding: 4px 10px 18px !important;
        gap: 5px !important;
    }

    .nav-item {
        min-height: 44px;
        padding: 12px 12px 12px 14px !important;
        font-size: 11px;
    }

    .nav-tools-summary {
        min-height: 42px;
        padding: 12px;
    }

    .mnav-scrim {
        background:
            linear-gradient(90deg, rgba(0, 229, 255, 0.12), rgba(0, 0, 0, 0.7)),
            rgba(0, 4, 8, 0.62) !important;
        backdrop-filter: blur(2px);
    }
}

@media (max-width: 480px) {
    .sidebar {
        width: min(304px, 90vw) !important;
    }

    .topbar-burger {
        width: 38px;
        height: 34px;
    }

    .nav-section-label,
    .sidebar-label {
        font-size: 8px;
    }
}

/* ═══════════════════════════════════════════════════════════════════════════
   JARVIS AGI WORKSPACE SURFACES
   Ranked Opportunities + Agent Workspace HUD skin. Behavior remains unchanged.
   ═══════════════════════════════════════════════════════════════════════════ */
#ranked-opportunities-page,
#agent-workspace-page {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    border: 1px solid rgba(0, 229, 255, 0.08);
    background:
        linear-gradient(180deg, rgba(0, 229, 255, 0.055), rgba(255, 181, 69, 0.028) 40%, rgba(0, 0, 0, 0)),
        radial-gradient(90% 58% at 50% 0%, rgba(0, 229, 255, 0.09), transparent 64%),
        #050b12;
}

#ranked-opportunities-page::before,
#agent-workspace-page::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        linear-gradient(rgba(0, 229, 255, 0.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 229, 255, 0.045) 1px, transparent 1px),
        repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.025) 0 1px, transparent 1px 7px);
    background-size: 38px 38px, 38px 38px, auto;
    mask-image: linear-gradient(180deg, rgba(0,0,0,0.72), rgba(0,0,0,0.28) 54%, transparent);
    opacity: 0.72;
}

#ranked-opportunities-page .tom-page-header,
#agent-workspace-page .tom-page-header {
    position: relative;
    padding: 20px 22px 18px;
    border: 1px solid rgba(0, 229, 255, 0.2);
    border-left-color: rgba(255, 181, 69, 0.78);
    border-radius: 4px;
    background:
        linear-gradient(90deg, rgba(255, 181, 69, 0.12), rgba(0, 229, 255, 0.08) 44%, rgba(0, 0, 0, 0.12)),
        rgba(0, 10, 18, 0.76);
    box-shadow: inset 0 0 24px rgba(0, 229, 255, 0.055), 0 0 28px rgba(0, 0, 0, 0.24);
    clip-path: polygon(0 0, calc(100% - 18px) 0, 100% 18px, 100% 100%, 0 100%);
}

#ranked-opportunities-page .tom-page-header::after,
#agent-workspace-page .tom-page-header::after {
    content: "";
    position: absolute;
    right: 18px;
    top: 16px;
    width: 78px;
    height: 2px;
    background: linear-gradient(90deg, rgba(0, 229, 255, 0), rgba(0, 229, 255, 0.9), rgba(255, 181, 69, 0.82));
    box-shadow: 0 0 14px rgba(0, 229, 255, 0.5);
}

#ranked-opportunities-page .tom-page-title,
#agent-workspace-page .tom-page-title {
    color: #f7fdff;
    font-family: var(--font-brand);
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    text-shadow: 0 0 18px rgba(0, 229, 255, 0.52);
}

#ranked-opportunities-page .tom-page-sub,
#agent-workspace-page .tom-page-sub {
    max-width: 980px;
    color: rgba(202, 238, 244, 0.76);
    font-family: var(--font-mono);
    font-size: 12px;
    line-height: 1.6;
}

#ranked-opportunities-page .tom-section,
#agent-workspace-page .tom-section {
    border-radius: 4px;
    border-color: rgba(0, 229, 255, 0.14);
    background:
        linear-gradient(180deg, rgba(0, 229, 255, 0.045), rgba(255, 181, 69, 0.018)),
        rgba(4, 13, 22, 0.72);
    box-shadow: inset 0 0 22px rgba(0, 229, 255, 0.035);
}

#ranked-opportunities-page .tom-section-label,
#agent-workspace-page .tom-section-label {
    color: rgba(255, 181, 69, 0.92);
    font-family: var(--font-mono);
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-shadow: 0 0 10px rgba(255, 181, 69, 0.24);
}

/* Ranked Opportunities board */
#ranked-live-host {
    position: relative;
    overflow: hidden;
}

#ranked-live-host::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent, rgba(0, 229, 255, 0.08), transparent),
        repeating-linear-gradient(180deg, rgba(255,255,255,0.025) 0 1px, transparent 1px 6px);
    opacity: 0.36;
}

.rk-topbar {
    position: relative;
    z-index: 1;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(0, 229, 255, 0.14);
}

.rk-controls {
    padding: 3px;
    border: 1px solid rgba(0, 229, 255, 0.18);
    background: rgba(0, 9, 16, 0.58);
}

.rk-sortbtn,
.aw-ft-btn {
    border-radius: 3px;
    border-color: rgba(0, 229, 255, 0.2);
    background: rgba(0, 13, 22, 0.78);
    color: rgba(203, 242, 247, 0.78);
    font-family: var(--font-mono);
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rk-sortbtn:hover,
.aw-ft-btn:hover {
    border-color: rgba(0, 229, 255, 0.58);
    color: #f4fdff;
    box-shadow: 0 0 16px rgba(0, 229, 255, 0.14);
}

.rk-sort-on,
.aw-ft-on {
    border-color: rgba(255, 181, 69, 0.78);
    background:
        linear-gradient(90deg, rgba(255, 181, 69, 0.24), rgba(0, 229, 255, 0.12)),
        rgba(0, 18, 28, 0.95);
    color: #fff9e8;
    box-shadow: inset 0 0 15px rgba(255, 181, 69, 0.08), 0 0 16px rgba(255, 181, 69, 0.12);
}

.rk-fresh {
    position: relative;
    z-index: 1;
    color: rgba(202, 238, 244, 0.62);
    letter-spacing: 0.035em;
}

.rk-fresh strong {
    color: var(--amber);
    text-shadow: 0 0 8px rgba(255, 181, 69, 0.35);
}

.rk-edge-strip {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, minmax(118px, 0.65fr)) minmax(220px, 1.4fr);
    gap: 8px;
    margin: 12px 0;
}

.rk-edge-cell,
.rk-edge-directive {
    min-width: 0;
    border: 1px solid rgba(0, 229, 255, 0.16);
    border-left-color: rgba(255, 181, 69, 0.54);
    border-radius: 4px;
    background:
        linear-gradient(135deg, rgba(0, 229, 255, 0.08), rgba(255, 181, 69, 0.035)),
        rgba(0, 9, 16, 0.68);
    box-shadow: inset 0 0 16px rgba(0, 229, 255, 0.035);
}

.rk-edge-cell {
    padding: 9px 10px;
}

.rk-edge-cell span {
    display: block;
    color: rgba(202, 238, 244, 0.55);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.rk-edge-cell strong {
    display: block;
    overflow: hidden;
    margin-top: 4px;
    color: #f7fdff;
    font-family: var(--font-mono);
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-shadow: 0 0 10px rgba(0, 229, 255, 0.34);
}

.rk-edge-directive {
    display: flex;
    align-items: center;
    min-height: 54px;
    padding: 9px 12px;
    color: rgba(202, 238, 244, 0.72);
    font-size: 12px;
    line-height: 1.4;
}

.rk-legend {
    position: relative;
    z-index: 1;
    border-radius: 4px;
    border-color: rgba(0, 229, 255, 0.18);
    background: rgba(1, 13, 22, 0.72);
}

.rk-legend-sum {
    color: rgba(0, 229, 255, 0.92);
    font-family: var(--font-mono);
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.rk-table {
    position: relative;
    z-index: 1;
    border-radius: 4px;
    border-color: rgba(0, 229, 255, 0.22);
    background: rgba(0, 8, 14, 0.72);
    box-shadow: inset 0 0 24px rgba(0, 229, 255, 0.045);
}

.rk-row {
    border-bottom-color: rgba(0, 229, 255, 0.105);
    background: linear-gradient(90deg, rgba(0, 229, 255, 0.025), rgba(0, 0, 0, 0));
}

.rk-row:not(.rk-head):hover,
.rk-row-click:hover {
    background:
        linear-gradient(90deg, rgba(255, 181, 69, 0.12), rgba(0, 229, 255, 0.08) 55%, rgba(0, 0, 0, 0));
}

.rk-head {
    background:
        linear-gradient(90deg, rgba(0, 229, 255, 0.12), rgba(255, 181, 69, 0.06)),
        rgba(0, 15, 24, 0.92);
    color: rgba(202, 238, 244, 0.72);
}

.rk-rank,
.rk-when,
.rk-open,
.rk-dim em {
    color: rgba(202, 238, 244, 0.58);
}

.rk-tic {
    color: #8ff6ff;
    text-shadow: 0 0 10px rgba(0, 229, 255, 0.32);
}

.rk-score strong,
.rk-rr {
    color: #ffffff;
    text-shadow: 0 0 10px rgba(0, 229, 255, 0.22);
}

.rk-bar {
    height: 6px;
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.075);
}

.rk-bar-fill {
    background: linear-gradient(90deg, var(--cyan), var(--amber));
    box-shadow: 0 0 9px rgba(0, 229, 255, 0.42);
}

.rk-lane-tag,
.rk-proof-tag,
.rk-band,
.ro-grounded-ref,
.tom-review-ref,
.aw-chip,
.aw-status-badge {
    border-radius: 3px;
    font-family: var(--font-mono);
    font-weight: 800;
    letter-spacing: 0.035em;
}

.rk-proof-tag {
    display: inline-flex;
    max-width: 100%;
    margin-top: 4px;
    padding: 2px 6px;
    border: 1px solid rgba(0, 229, 255, 0.16);
    background: rgba(0, 229, 255, 0.06);
    color: rgba(202, 238, 244, 0.72);
    font-size: 10px;
    line-height: 1.2;
    text-transform: uppercase;
}

.rk-proof-reinforce,
.rk-proof-live_review {
    border-color: rgba(0, 255, 166, 0.38);
    background: rgba(0, 255, 166, 0.09);
    color: #9fffe0;
}

.rk-proof-watch_reinforce,
.rk-proof-promising {
    border-color: rgba(255, 181, 69, 0.46);
    background: rgba(255, 181, 69, 0.1);
    color: #ffe4a3;
}

.rk-proof-penalise {
    border-color: rgba(255, 83, 83, 0.46);
    background: rgba(255, 83, 83, 0.1);
    color: #ffb4b4;
}

.rk-ask {
    border-radius: 3px;
    border-color: rgba(255, 181, 69, 0.52);
    background: rgba(255, 181, 69, 0.1);
    color: var(--amber);
    font-family: var(--font-mono);
    font-weight: 800;
    text-transform: uppercase;
}

.rk-ask:hover {
    background: var(--amber);
    color: #130d00;
}

.rk-foot,
.ro-actions-note,
.ro-lifecycle-note-footer {
    color: rgba(202, 238, 244, 0.55);
}

.ro-summary-card,
.ro-grounded-row,
.ro-grounded-panel,
.ro-detail-placeholder,
.ro-evidence-placeholder,
.ro-ranked-empty,
.ro-action-item,
.ro-req-item,
.ro-lifecycle-row,
.tom-review-card,
.tom-review-panel,
.tom-review-summary-card {
    border-radius: 4px;
    border-color: rgba(0, 229, 255, 0.15);
    background:
        linear-gradient(135deg, rgba(0, 229, 255, 0.055), rgba(255, 181, 69, 0.025)),
        rgba(2, 13, 22, 0.74);
}

.ro-card-value,
.tom-review-summary-card strong,
.ro-grounded-priority strong,
.tom-review-position strong {
    color: #f7fdff;
    font-family: var(--font-brand);
    text-shadow: 0 0 14px rgba(0, 229, 255, 0.32);
}

/* Agent Workspace command floor */
.aw-floor-bar {
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(0, 229, 255, 0.14);
}

.aw-floor-toggle {
    padding: 3px;
    border: 1px solid rgba(0, 229, 255, 0.16);
    background: rgba(0, 9, 16, 0.58);
}

.aw-office {
    position: relative;
    isolation: isolate;
    grid-template-columns: repeat(auto-fill, minmax(176px, 1fr));
    gap: 18px;
    padding: 38px 20px 26px;
    border-radius: 4px;
    border-color: rgba(0, 229, 255, 0.2);
    overflow: hidden;
    background:
        radial-gradient(80% 42% at 50% 0%, rgba(0, 229, 255, 0.16), transparent 68%),
        linear-gradient(rgba(0, 229, 255, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 229, 255, 0.05) 1px, transparent 1px),
        linear-gradient(180deg, #06121c, #04080d);
    background-size: auto, 42px 42px, 42px 42px, auto;
    box-shadow: inset 0 0 42px rgba(0, 229, 255, 0.07), 0 20px 48px rgba(0, 0, 0, 0.22);
}

.aw-office::before {
    content: "";
    position: absolute;
    left: -10%;
    right: -10%;
    bottom: -18%;
    height: 52%;
    z-index: -1;
    pointer-events: none;
    transform: perspective(560px) rotateX(58deg);
    transform-origin: bottom center;
    background:
        linear-gradient(rgba(0, 229, 255, 0.18) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 229, 255, 0.14) 1px, transparent 1px);
    background-size: 34px 34px;
    opacity: 0.56;
}

.aw-desk {
    height: 214px;
    padding: 18px 10px 10px;
    border: 1px solid rgba(0, 229, 255, 0.11);
    border-top-color: color-mix(in srgb, var(--role) 36%, rgba(0, 229, 255, 0.14));
    border-radius: 4px;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--role) 10%, transparent), rgba(0, 9, 16, 0.64) 45%, rgba(0, 0, 0, 0.2)),
        rgba(2, 12, 20, 0.55);
    box-shadow: inset 0 0 18px rgba(0, 229, 255, 0.035);
    overflow: visible;
}

.aw-desk::before {
    content: "";
    position: absolute;
    inset: 8px 8px auto 8px;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--role), transparent);
    opacity: 0.72;
    box-shadow: 0 0 12px color-mix(in srgb, var(--role) 52%, transparent);
}

.aw-desk:hover {
    border-color: color-mix(in srgb, var(--role) 44%, rgba(0, 229, 255, 0.18));
    box-shadow: inset 0 0 24px color-mix(in srgb, var(--role) 8%, transparent), 0 0 24px color-mix(in srgb, var(--role) 12%, transparent);
}

.aw-bot {
    width: 70px;
    filter: drop-shadow(0 12px 18px rgba(0, 0, 0, 0.46));
}

.aw-bot-head {
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--role) 22%, #1f3542), #09131d 72%),
        #0b1722;
    border-color: color-mix(in srgb, var(--role) 62%, #32424c);
    box-shadow:
        inset 0 0 12px rgba(255, 255, 255, 0.045),
        0 0 18px color-mix(in srgb, var(--role) 30%, transparent);
}

.aw-bot-head::before {
    content: "";
    position: absolute;
    inset: 6px;
    border: 1px solid color-mix(in srgb, var(--role) 34%, transparent);
    border-radius: inherit;
    opacity: 0.58;
}

.aw-bot-eye,
.aw-eye-visor,
.aw-eye-single,
.aw-eye-round {
    background: #dffcff;
    box-shadow: 0 0 10px var(--role), 0 0 18px rgba(0, 229, 255, 0.25);
}

.aw-eye-happy {
    border-color: #dffcff;
}

.aw-bot-body {
    width: 34px;
    height: 18px;
    border-radius: 4px;
    background:
        linear-gradient(180deg, color-mix(in srgb, var(--role) 30%, #18252e), #071018);
    border-color: color-mix(in srgb, var(--role) 48%, #26343d);
}

.aw-bot-arm {
    background: color-mix(in srgb, var(--role) 42%, #15232d);
}

.aw-bot-antenna,
.aw-bot-antenna::after {
    box-shadow: 0 0 10px var(--role), 0 0 20px color-mix(in srgb, var(--role) 35%, transparent);
}

.aw-acc-glasses,
.aw-acc-headset {
    border-color: color-mix(in srgb, var(--role) 52%, #5b6a73);
}

.aw-acc-crown::before {
    content: "";
    top: -8px;
    width: 28px;
    height: 9px;
    border: 1px solid var(--role);
    border-bottom: none;
    background:
        linear-gradient(135deg, transparent 0 22%, var(--role) 23% 27%, transparent 28% 49%, var(--role) 50% 55%, transparent 56% 76%, var(--role) 77% 82%, transparent 83%);
    color: transparent;
    text-shadow: none;
    box-shadow: 0 0 10px color-mix(in srgb, var(--role) 45%, transparent);
}

.aw-screen {
    width: 70px;
    height: 42px;
    border-radius: 3px;
    background:
        linear-gradient(rgba(0, 229, 255, 0.16) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 229, 255, 0.12) 1px, transparent 1px),
        linear-gradient(180deg, #021018, #031c27);
    background-size: 9px 9px, 9px 9px, auto;
    border-color: color-mix(in srgb, var(--role) 60%, #243038);
}

.aw-screen i {
    height: 2px;
    border-radius: 0;
    background: linear-gradient(90deg, var(--role), rgba(255, 181, 69, 0.68));
}

.aw-desk-top {
    width: 88%;
    height: 9px;
    border-radius: 2px;
    background: linear-gradient(180deg, rgba(0, 229, 255, 0.1), rgba(4, 12, 18, 0.9));
    border-color: rgba(0, 229, 255, 0.12);
}

.aw-desk-name {
    max-width: 100%;
    padding: 3px 7px;
    color: rgba(245, 253, 255, 0.86);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.aw-desk-job {
    max-width: 100%;
    padding: 0 7px;
    color: rgba(202, 238, 244, 0.68);
    font-family: var(--font-mono);
    font-size: 8.5px;
    font-style: italic;
    line-height: 1.2;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.aw-bubbles {
    bottom: 132px;
    width: min(190px, 92vw);
}

.aw-bub {
    max-width: 190px;
    border-radius: 3px;
    padding: 7px 9px;
    background: rgba(2, 12, 20, 0.94);
    color: rgba(243, 252, 255, 0.9);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.01em;
    border-color: color-mix(in srgb, var(--role) 62%, rgba(0, 229, 255, 0.25));
    box-shadow: 0 8px 22px rgba(0,0,0,0.58), 0 0 18px color-mix(in srgb, var(--role) 18%, transparent);
}

.aw-bub::after {
    width: 7px;
    height: 7px;
    border-radius: 0;
    background: rgba(2, 12, 20, 0.94);
}

.aw-desk-working {
    border-color: color-mix(in srgb, var(--role) 54%, rgba(0, 229, 255, 0.22));
}

.aw-desk-blocked {
    border-top-color: rgba(255, 90, 110, 0.74);
}

.aw-comms,
.aw-forum {
    border-radius: 4px;
    border-color: rgba(0, 229, 255, 0.16);
    background:
        linear-gradient(180deg, rgba(0, 229, 255, 0.04), rgba(0, 0, 0, 0)),
        rgba(0, 10, 18, 0.74);
}

.aw-cm,
.aw-msg,
.aw-work,
.aw-d-now,
.aw-agent-card,
.aw-status-strip .aw-status-card,
.aw-escape-hatch,
.aw-handoff-path {
    border-radius: 4px;
    border-color: rgba(0, 229, 255, 0.14);
    background:
        linear-gradient(90deg, rgba(0, 229, 255, 0.045), rgba(255, 181, 69, 0.018)),
        rgba(3, 13, 21, 0.74);
}

.aw-cm {
    border-left-color: rgba(0, 229, 255, 0.76);
}

.aw-cm-flag,
.aw-work-blocked {
    border-left-color: rgba(255, 181, 69, 0.82);
}

.aw-cm-alert {
    border-left-color: rgba(255, 90, 110, 0.88);
}

.aw-cm-lesson,
.aw-work-lesson {
    border-left-color: rgba(180, 140, 255, 0.82);
}

.aw-cm-av,
.aw-msg-avatar {
    border-radius: 3px;
    border-color: rgba(0, 229, 255, 0.34);
    background:
        linear-gradient(135deg, rgba(0, 229, 255, 0.18), rgba(255, 181, 69, 0.08)),
        rgba(1, 14, 22, 0.86);
    color: #eafdff;
}

.aw-agent-card {
    position: relative;
    overflow: hidden;
}

.aw-agent-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    bottom: 10px;
    width: 2px;
    background: rgba(0, 229, 255, 0.54);
    box-shadow: 0 0 10px rgba(0, 229, 255, 0.36);
}

.aw-agent-card:hover {
    border-color: rgba(255, 181, 69, 0.34);
    box-shadow: inset 0 0 20px rgba(0, 229, 255, 0.04), 0 0 18px rgba(0, 229, 255, 0.08);
}

.aw-agent-name,
.aw-cm-from,
.aw-work-ticker {
    color: #f7fdff;
}

.aw-agent-title {
    margin-top: 4px;
    color: rgba(0, 229, 255, 0.76);
    font-family: var(--font-mono);
    font-size: 10px;
    font-style: italic;
    letter-spacing: 0.04em;
}

.aw-agent-role,
.aw-cm-text,
.aw-work-line,
.aw-work-note {
    color: rgba(202, 238, 244, 0.74);
}

.aw-category-label {
    color: rgba(0, 229, 255, 0.88);
    border-bottom-color: rgba(0, 229, 255, 0.18);
    letter-spacing: 0.16em;
}

.aw-category-label-gated {
    color: rgba(255, 181, 69, 0.9);
    border-bottom-color: rgba(255, 181, 69, 0.22);
}

.aw-forum-empty,
.tom-empty,
.ro-ranked-empty-body {
    color: rgba(202, 238, 244, 0.62);
}

@media (max-width: 860px) {
    #ranked-opportunities-page,
    #agent-workspace-page {
        border-left: 0;
        border-right: 0;
    }

    #ranked-opportunities-page .tom-page-header,
    #agent-workspace-page .tom-page-header {
        padding: 16px 14px;
        clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 12px, 100% 100%, 0 100%);
    }

    #ranked-opportunities-page .tom-page-title,
    #agent-workspace-page .tom-page-title {
        font-size: 21px;
        line-height: 1.15;
    }

    #ranked-opportunities-page .tom-page-sub,
    #agent-workspace-page .tom-page-sub {
        font-size: 11px;
    }

    .rk-table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .rk-row {
        min-width: 860px;
    }

    .rk-edge-strip {
        grid-template-columns: 1fr;
    }

    .rk-edge-directive {
        min-height: auto;
    }

    .rk-controls,
    .aw-floor-toggle {
        width: 100%;
    }

    .rk-sortbtn,
    .aw-ft-btn {
        flex: 1;
        min-height: 34px;
        padding-left: 8px;
        padding-right: 8px;
    }

    .aw-office {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        padding: 28px 10px 18px;
    }

    .aw-desk {
        height: 198px;
        padding-left: 6px;
        padding-right: 6px;
    }

    .aw-bubbles {
        bottom: 124px;
        width: 160px;
    }

    .aw-bub {
        max-width: 160px;
        font-size: 9.5px;
    }

    .aw-agent-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 480px) {
    .aw-office {
        grid-template-columns: 1fr;
    }

    .aw-desk {
        height: 192px;
    }

    .aw-bubbles {
        width: min(190px, 78vw);
    }

    .ro-summary-cards,
    .ro-grounded-grid,
    .ro-req-grid,
    .ro-actions-grid,
    .tom-review-summary-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ── Proof Desk — Jarvis HUD scoreboard ─────────────────────────────────── */
.proof-hero {
    display: flex; gap: 24px; flex-wrap: wrap; align-items: stretch;
    background: linear-gradient(135deg, var(--bg-2), var(--bg-1));
    border: 1px solid var(--cyan-dim); border-radius: 14px;
    padding: 22px 26px; margin-bottom: 16px; position: relative; overflow: hidden;
}
.proof-hero::before {
    content: ""; position: absolute; inset: 0;
    background: radial-gradient(600px 120px at 0% 0%, var(--cyan-dim), transparent 70%);
    pointer-events: none;
}
.proof-hero-main { flex: 1 1 240px; min-width: 220px; z-index: 1; }
.proof-hero-label { font-size: 11px; letter-spacing: .14em; color: var(--text-2); text-transform: uppercase; }
.proof-hero-value { font-size: 42px; font-weight: 800; line-height: 1.1; margin: 6px 0; font-variant-numeric: tabular-nums; text-shadow: 0 0 18px var(--cyan-dim); }
.proof-hero-sub { font-size: 13px; color: var(--text-1); font-variant-numeric: tabular-nums; }
.proof-hero-grid {
    flex: 2 1 360px; display: grid; grid-template-columns: repeat(4, 1fr);
    gap: 10px; z-index: 1;
}
.proof-metric {
    background: var(--bg-3); border: 1px solid var(--bg-4); border-radius: 10px;
    padding: 10px 12px; display: flex; flex-direction: column; gap: 4px;
}
.proof-metric span { font-size: 10px; letter-spacing: .08em; color: var(--text-2); text-transform: uppercase; }
.proof-metric b { font-size: 19px; font-weight: 700; color: var(--text-0); font-variant-numeric: tabular-nums; }
.proof-note {
    font-size: 12px; color: var(--text-2); margin: 4px 2px 18px;
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.proof-run-btn {
    background: var(--cyan-dim); color: var(--cyan); border: 1px solid var(--cyan-mid);
    border-radius: 8px; padding: 5px 12px; font-size: 12px; cursor: pointer; font-weight: 600;
}
.proof-run-btn:hover { background: var(--cyan-mid); }
.proof-section-title {
    font-size: 13px; font-weight: 700; color: var(--text-0); text-transform: uppercase;
    letter-spacing: .1em; margin: 22px 2px 10px; display: flex; align-items: center; gap: 10px;
}
.proof-pill {
    background: var(--cyan-dim); color: var(--cyan); border-radius: 20px;
    padding: 1px 10px; font-size: 11px; font-weight: 700; letter-spacing: .04em;
}
.proof-table .proof-tk { font-weight: 700; color: var(--cyan); }
.proof-table .is-good, .proof-hero .is-good, .proof-metric b.is-good { color: var(--green); }
.proof-table .is-bad, .proof-hero .is-bad, .proof-metric b.is-bad { color: var(--red); }
.proof-table .is-muted, .proof-metric b.is-muted { color: var(--text-2); }
.trade-tag.is-good { background: var(--green-dim); color: var(--green); }
.trade-tag.is-bad { background: var(--red-dim); color: var(--red); }
.trade-tag.is-muted { background: var(--bg-3); color: var(--text-2); }
.proof-command,
.proof-live-panel,
.proof-chart-panel,
.proof-matrix-panel {
    border: 1px solid rgba(58, 214, 255, .22);
    background:
        linear-gradient(135deg, rgba(58, 214, 255, .08), rgba(255, 182, 72, .035)),
        var(--bg-2);
    border-radius: 12px;
    padding: 16px;
    margin: 14px 0;
    box-shadow: inset 0 0 26px rgba(58, 214, 255, .05);
}
.proof-command {
    position: relative;
    overflow: hidden;
}
.proof-command::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(58, 214, 255, .08) 1px, transparent 1px),
        linear-gradient(0deg, rgba(58, 214, 255, .045) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(90deg, rgba(0,0,0,.35), transparent 78%);
    pointer-events: none;
}
.proof-command-head,
.proof-funnel,
.proof-readout-grid,
.proof-directives {
    position: relative;
    z-index: 1;
}
.proof-command-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}
.proof-command-head span,
.proof-readout-card span,
.proof-funnel span,
.proof-live-edge span {
    display: block;
    color: var(--text-2);
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.proof-command-head b {
    display: block;
    color: var(--text-0);
    font-size: 21px;
    line-height: 1.15;
    margin-top: 3px;
}
.proof-command-head strong {
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 6px 12px;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    white-space: nowrap;
    background: rgba(2, 8, 14, .58);
}
.proof-funnel {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 12px;
}
.proof-funnel div,
.proof-readout-card {
    border: 1px solid rgba(58, 214, 255, .16);
    background: rgba(2, 10, 18, .58);
    border-radius: 8px;
    padding: 10px 12px;
}
.proof-funnel b {
    display: block;
    color: var(--text-0);
    font-size: 24px;
    line-height: 1.1;
    margin-top: 3px;
    font-variant-numeric: tabular-nums;
}
.proof-readout-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.proof-readout-card b {
    display: block;
    color: var(--cyan);
    font-size: 15px;
    line-height: 1.25;
    margin: 5px 0 4px;
}
.proof-readout-card em,
.proof-live-edge em {
    font-style: normal;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}
.proof-directives {
    margin: 12px 0 0;
    padding-left: 18px;
    color: var(--text-1);
    font-size: 13px;
    line-height: 1.45;
}
.proof-directives li + li {
    margin-top: 4px;
}
.proof-live-edge {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid rgba(255, 182, 72, .20);
    background: rgba(255, 182, 72, .045);
    border-radius: 8px;
    padding: 10px 12px;
}
.proof-live-edge + .proof-live-edge {
    margin-top: 8px;
}
.proof-live-edge b {
    display: block;
    color: var(--amber);
    font-size: 14px;
    margin-bottom: 3px;
}
.proof-live-edge em {
    white-space: nowrap;
}
.proof-chart-panel {
    padding: 16px;
}
.proof-chart-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
}
.proof-chart-head span {
    display: block;
    color: var(--text-2);
    font-size: 10px;
    letter-spacing: .11em;
    text-transform: uppercase;
}
.proof-chart-head b {
    display: block;
    color: var(--text-0);
    font-size: 17px;
    line-height: 1.2;
    margin-top: 3px;
}
.proof-chart-legend {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: flex-end;
    color: var(--text-1);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}
.proof-line {
    width: 24px;
    height: 2px;
    display: inline-block;
    border-radius: 999px;
    box-shadow: 0 0 10px currentColor;
}
.proof-line-kronos {
    color: var(--cyan);
    background: var(--cyan);
}
.proof-line-sp {
    color: var(--amber);
    background: var(--amber);
}
.proof-chart-wrap {
    position: relative;
    min-height: 320px;
    border: 1px solid rgba(58, 214, 255, .14);
    background:
        linear-gradient(90deg, rgba(58, 214, 255, .055) 1px, transparent 1px),
        linear-gradient(0deg, rgba(58, 214, 255, .035) 1px, transparent 1px),
        rgba(2, 10, 18, .62);
    background-size: 44px 44px;
    border-radius: 8px;
    overflow: hidden;
}
.proof-chart-wrap canvas {
    display: block;
    width: 100%;
}
.proof-chart-empty {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--text-2);
    font-size: 13px;
}
.proof-chart-note {
    color: var(--text-2);
    font-size: 12px;
    margin-top: 9px;
    line-height: 1.4;
}
.proof-matrix-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    align-items: start;
}
.proof-matrix-panel {
    overflow-x: auto;
}
.proof-matrix-panel .proof-section-title {
    margin-top: 0;
}
.proof-matrix-table {
    min-width: 520px;
}
@media (max-width: 860px) {
    .proof-hero-grid { grid-template-columns: repeat(2, 1fr); }
    .proof-hero-value { font-size: 34px; }
    .proof-funnel,
    .proof-readout-grid,
    .proof-matrix-grid {
        grid-template-columns: 1fr;
    }
    .proof-command-head,
    .proof-chart-head,
    .proof-live-edge {
        align-items: flex-start;
        flex-direction: column;
    }
    .proof-chart-legend {
        justify-content: flex-start;
    }
    .proof-live-edge em {
        white-space: normal;
    }
}

/* ── Jarvis discovery focus (adaptive steering banner) ───────────────────── */
.aw-focus {
    margin-top: 10px; padding: 10px 12px; border-radius: 10px;
    background: linear-gradient(135deg, var(--cyan-dim), transparent);
    border: 1px solid var(--cyan-dim);
}
.aw-focus-head { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--cyan); font-weight: 700; }
.aw-focus-line { font-size: 13px; color: var(--text-0); margin-top: 4px; }
.aw-focus-line strong { color: var(--cyan); }
.aw-focus-why { font-size: 11.5px; color: var(--text-2); margin-top: 4px; line-height: 1.4; }

/* ── Proof Desk: scoring-evolution proposals (one-click approve) ─────────── */
.proof-calib-card {
    background: var(--bg-2); border: 1px solid var(--cyan-dim); border-radius: 10px;
    padding: 12px 14px; margin: 8px 0;
}
.proof-calib-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.proof-calib-param { font-weight: 700; color: var(--text-0); text-transform: capitalize; }
.proof-calib-change { font-family: var(--mono, monospace); color: var(--cyan); font-size: 14px; }
.proof-calib-why { font-size: 12px; color: var(--text-2); margin: 6px 0 10px; line-height: 1.45; }
.proof-calib-actions { display: flex; gap: 8px; }

/* ── Proof Desk: system maturity indicator ──────────────────────────────── */
.proof-maturity {
    background: var(--bg-2); border: 1px solid var(--bg-4); border-radius: 10px;
    padding: 12px 14px; margin: 14px 0 6px;
}
.proof-maturity.is-ready { border-color: var(--green-dim); }
.proof-maturity-head { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); font-weight: 700; }
.proof-maturity-bar { height: 8px; border-radius: 6px; background: var(--bg-4); margin: 8px 0 6px; overflow: hidden; }
.proof-maturity-bar span { display: block; height: 100%; background: linear-gradient(90deg, var(--cyan), var(--green)); transition: width .4s ease; }
.proof-maturity.is-ready .proof-maturity-bar span { background: var(--green); }
.proof-maturity-label { font-size: 12px; color: var(--text-1); }
