/* ============================================
   CXO Command Center - executive layer on top of app.css
   Chart colours: validated palette (series 1 blue, series 2 orange); status colours reserved for state.
   ============================================ */
:root {
    --viz-1: #2a78d6;
    --viz-2: #eb6834;
    --viz-ref: #64748b;
    --st-good: #0ca30c;
    --st-warn: #b7791f;       /* text-safe amber on white */
    --st-warn-fill: #fab219;
    --st-crit: #d03b3b;
    --st-good-bg: #e9f7ec;
    --st-warn-bg: #fff6e0;
    --st-crit-bg: #fdecec;
    --exec-card: #ffffff;
    --exec-line: #e2e8f0;
    --exec-muted: #64748b;
    --exec-ink: #0f172a;
}
body.dark-theme {
    --viz-1: #3987e5;
    --viz-2: #d95926;
    --viz-ref: #94a3b8;
    --st-warn: #fab219;
    --st-good-bg: rgba(12,163,12,0.14);
    --st-warn-bg: rgba(250,178,25,0.12);
    --st-crit-bg: rgba(208,59,59,0.16);
    --exec-card: #0f172a;
    --exec-line: #1e293b;
    --exec-muted: #94a3b8;
    --exec-ink: #f1f5f9;
}

/* ---------- header additions ---------- */
.hdr-live { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 14px; font-size: 0.85rem; font-weight: 600;
    color: var(--st-good); background: var(--st-good-bg); margin-right: 4px; }
.hdr-live .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--st-good); animation: cxoPulse 1.6s infinite; }
.hdr-live.off { color: var(--exec-muted); background: transparent; }
.hdr-live.off .dot { background: var(--exec-muted); animation: none; }
@keyframes cxoPulse { 0%, 100% { opacity: 1; } 50% { opacity: .3; } }
.hdr-demo { font-size: 0.82rem; font-weight: 600; color: #92400e; background: #fef3c7; border: 1px solid #fde68a; padding: 2px 9px; border-radius: 12px; margin-right: 6px; }
body.dark-theme .hdr-demo { color: #fbbf24; background: rgba(251,191,36,0.1); border-color: rgba(251,191,36,0.3); }
.bell-count { position: absolute; top: 3px; right: 2px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--st-crit); color: #fff;
    font-size: 0.7rem; font-weight: 700; line-height: 17px; text-align: center; }
.bell-menu { width: 380px; max-width: 92vw; overflow: hidden; border-radius: 12px; }
.bell-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--exec-line); }
.bell-list { max-height: 420px; overflow-y: auto; }
.bell-empty { padding: 28px 14px; text-align: center; color: var(--exec-muted); }
.bell-item { display: flex; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--exec-line); color: inherit; text-decoration: none; }
.bell-item:hover { background: var(--pla-accent-soft); color: inherit; }
.bell-item.unread { background: rgba(42,120,214,0.06); }
.bell-item.unread .bi-title { font-weight: 700; }
.bell-item > .bi { margin-top: 2px; }
.bi-title { font-size: 0.95rem; color: var(--exec-ink); line-height: 1.3; }
.bi-body { font-size: 0.85rem; color: var(--exec-muted); margin-top: 2px; }
.bi-time { font-size: 0.78rem; color: var(--exec-muted); margin-top: 3px; }
.bell-foot { display: block; padding: 9px 14px; text-align: center; font-weight: 600; text-decoration: none; border-top: 1px solid var(--exec-line); }
.sev-crit-text { color: var(--st-crit); }
.sev-warn-text { color: var(--st-warn); }
.sev-info-text { color: var(--viz-1); }
.sidebar .nav-count { margin-left: auto; min-width: 22px; padding: 0 6px; border-radius: 10px; background: rgba(255,255,255,0.14); color: #fff; font-size: 0.78rem; font-weight: 700; text-align: center; }
.sidebar .nav-count.crit { background: var(--st-crit); }

/* ---------- toasts ---------- */
.cxo-toast { background: var(--exec-card); border: 1px solid var(--exec-line); border-left: 4px solid var(--viz-1); cursor: pointer; min-width: 320px; box-shadow: 0 10px 30px rgba(15,23,42,0.18); }
.cxo-toast .toast-body { display: flex; align-items: flex-start; color: var(--exec-ink); }
.cxo-toast.sev-crit { border-left-color: var(--st-crit); }
.cxo-toast.sev-crit .bi { color: var(--st-crit); }
.cxo-toast.sev-warn { border-left-color: var(--st-warn-fill); }
.cxo-toast.sev-warn .bi { color: var(--st-warn); }
.ct-title { font-weight: 600; }
.ct-sub { font-size: 0.82rem; color: var(--exec-muted); }

/* ---------- badges & chips ---------- */
.sev-badge { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: 12px; font-size: 0.78rem; font-weight: 700; letter-spacing: .02em; }
.sev-badge.sev-crit { background: var(--st-crit-bg); color: var(--st-crit); }
.sev-badge.sev-warn { background: var(--st-warn-bg); color: var(--st-warn); }
.sev-badge.sev-info { background: var(--pla-accent-soft); color: var(--viz-1); }
.status-chip { padding: 2px 8px; border-radius: 10px; font-size: 0.78rem; font-weight: 600; background: var(--pla-line-soft); color: var(--exec-muted); }
.status-chip.st-new { background: rgba(42,120,214,0.12); color: var(--viz-1); }
.status-chip.st-in_progress { background: var(--st-warn-bg); color: var(--st-warn); }
.status-chip.st-resolved { background: var(--st-good-bg); color: var(--st-good); }
.demo-chip { padding: 1px 7px; border-radius: 6px; font-size: 0.7rem; font-weight: 700; letter-spacing: .06em; color: #92400e; background: #fef3c7; }
body.dark-theme .demo-chip { color: #fbbf24; background: rgba(251,191,36,0.12); }
.ai-chip { padding: 1px 8px; border-radius: 6px; font-size: 0.75rem; font-weight: 600; color: #6d28d9; background: #f3e8ff; }
body.dark-theme .ai-chip { color: #c4b5fd; background: rgba(139,92,246,0.15); }
.agent-dot { display: inline-block; width: 9px; height: 9px; border-radius: 50%; margin-right: 6px; }

/* ---------- executive overview ---------- */
.exec-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; margin-bottom: 1.1rem; }
.exec-hero h1 { font-size: 1.75rem; font-weight: 700; color: var(--exec-ink); margin: 0; }
.exec-hero .sub { color: var(--exec-muted); margin-top: 2px; }
.exec-hero .clock { text-align: right; }
.exec-hero .clock .t { font-size: 1.6rem; font-weight: 700; color: var(--exec-ink); font-variant-numeric: tabular-nums; }
.exec-hero .clock .d { color: var(--exec-muted); font-size: 0.9rem; }
.shift-bar { height: 4px; border-radius: 3px; background: var(--exec-line); overflow: hidden; margin-top: 6px; width: 180px; margin-left: auto; }
.shift-bar > span { display: block; height: 100%; background: var(--viz-1); }

.act-band { background: var(--exec-card); border: 1px solid var(--exec-line); border-radius: 14px; padding: 1rem 1.1rem; margin-bottom: 1.2rem; position: relative; overflow: hidden; }
.act-band::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--st-crit); }
.act-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: .75rem; gap: 1rem; flex-wrap: wrap; }
.act-head h2 { font-size: 1.15rem; font-weight: 700; margin: 0; color: var(--exec-ink); }
.act-head .counts { display: flex; gap: .5rem; flex-wrap: wrap; }
.act-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: .8rem; }
.act-card { border: 1px solid var(--exec-line); border-radius: 12px; padding: .8rem .9rem; cursor: pointer; transition: border-color .15s, transform .15s, box-shadow .15s; background: var(--exec-card); display: flex; flex-direction: column; gap: .35rem; }
.act-card:hover { border-color: var(--viz-1); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(15,23,42,0.08); }
.act-card.crit { border-top: 3px solid var(--st-crit); }
.act-card.warn { border-top: 3px solid var(--st-warn-fill); }
.act-card .ac-src { font-size: 0.75rem; font-weight: 700; letter-spacing: .06em; color: var(--exec-muted); display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.act-card .ac-title { font-weight: 700; color: var(--exec-ink); line-height: 1.3; }
.act-card .ac-do { font-size: 0.92rem; color: var(--exec-ink); background: var(--pla-accent-soft); border-radius: 8px; padding: .4rem .55rem; }
.act-card .ac-do strong { color: var(--viz-1); }
.act-card .ac-foot { font-size: 0.8rem; color: var(--exec-muted); display: flex; justify-content: space-between; }
.act-empty { padding: 1.2rem; text-align: center; color: var(--st-good); font-weight: 600; }

.stage-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .8rem; margin-bottom: 1.2rem; }
@media (max-width: 1400px) { .stage-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 900px) { .stage-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .stage-grid { grid-template-columns: 1fr; } }
.stage { background: var(--exec-card); border: 1px solid var(--exec-line); border-radius: 14px; padding: .9rem 1rem; cursor: pointer; position: relative; transition: border-color .15s; }
.stage:hover, .stage.active { border-color: var(--viz-1); }
.stage .st-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .55rem; }
.stage .st-name { font-size: 0.82rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--exec-muted); }
.health { display: inline-flex; align-items: center; gap: 5px; font-size: 0.8rem; font-weight: 700; }
.health .hd { width: 8px; height: 8px; border-radius: 50%; }
.health.ok { color: var(--st-good); } .health.ok .hd { background: var(--st-good); }
.health.warn { color: var(--st-warn); } .health.warn .hd { background: var(--st-warn-fill); }
.health.crit { color: var(--st-crit); } .health.crit .hd { background: var(--st-crit); }
.st-big { font-size: 1.75rem; font-weight: 700; color: var(--exec-ink); line-height: 1.1; font-variant-numeric: tabular-nums; }
.st-big small { font-size: 0.9rem; color: var(--exec-muted); font-weight: 500; }
.st-rows { margin-top: .5rem; display: flex; flex-direction: column; gap: 6px; }
.st-row { display: grid; grid-template-columns: 52px 1fr 56px; gap: 8px; align-items: center; font-size: 0.85rem; }
.st-row .lbl { color: var(--exec-muted); font-weight: 600; }
.st-row .bar { height: 6px; border-radius: 3px; background: var(--exec-line); overflow: hidden; }
.st-row .bar > span { display: block; height: 100%; border-radius: 3px; }
.st-row .val { text-align: right; font-weight: 700; color: var(--exec-ink); font-variant-numeric: tabular-nums; }
.fill-ok { background: var(--st-good); } .fill-warn { background: var(--st-warn-fill); } .fill-crit { background: var(--st-crit); }
.st-foot { margin-top: .55rem; font-size: 0.78rem; color: var(--exec-muted); display: flex; justify-content: space-between; gap: .5rem; }
.spark { width: 100%; height: 34px; display: block; margin-top: .4rem; }

.exec-card { background: var(--exec-card); border: 1px solid var(--exec-line); border-radius: 14px; padding: 1rem 1.1rem; height: 100%; }
.exec-card h3 { font-size: 1rem; font-weight: 700; color: var(--exec-ink); margin: 0 0 .2rem; }
.exec-card .ec-sub { color: var(--exec-muted); font-size: 0.85rem; margin-bottom: .7rem; }
.ec-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; }
.legend-inline { margin-left: auto; font-size: 0.8rem; color: var(--exec-muted); font-weight: 500; display: inline-flex; align-items: center; gap: 4px; }
.sw { display: inline-block; width: 12px; height: 3px; border-radius: 2px; vertical-align: middle; margin: 0 4px 0 8px; }
.sw.ref { background: transparent; border-top: 2px dashed var(--viz-ref); height: 0; }

.dim-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .6rem; }
.dim-card { border: 1px solid var(--exec-line); border-radius: 10px; padding: .55rem .65rem; }
.dim-card .dn { font-size: 0.85rem; font-weight: 600; color: var(--exec-muted); display: flex; justify-content: space-between; }
.dim-card .dv { font-size: 1.15rem; font-weight: 700; color: var(--exec-ink); font-variant-numeric: tabular-nums; }
.dim-card .dv small { font-size: 0.8rem; color: var(--exec-muted); font-weight: 500; }

.insight-list { display: flex; flex-direction: column; gap: .55rem; }
.insight { display: flex; gap: .6rem; align-items: flex-start; padding: .55rem .65rem; border-radius: 10px; border: 1px solid var(--exec-line); }
.ins-type { flex-shrink: 0; font-size: 0.7rem; font-weight: 800; letter-spacing: .06em; padding: 2px 7px; border-radius: 5px; margin-top: 2px; }
.ins-type.predict { color: var(--st-warn); background: var(--st-warn-bg); }
.ins-type.recommend { color: var(--st-good); background: var(--st-good-bg); }
.ins-type.anomaly { color: var(--st-crit); background: var(--st-crit-bg); }
.ins-type.trend { color: var(--viz-1); background: var(--pla-accent-soft); }
.insight .it { font-size: 0.92rem; color: var(--exec-ink); line-height: 1.35; }
.insight .is { font-size: 0.8rem; color: var(--exec-muted); margin-top: 2px; }
.insight .ic { margin-left: auto; font-weight: 700; font-size: 0.85rem; color: var(--exec-muted); }

.funnel { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; margin-bottom: .7rem; }
.funnel .fs { border-radius: 10px; padding: .55rem .7rem; background: var(--pla-accent-soft); }
.funnel .fs .fl { font-size: 0.8rem; color: var(--exec-muted); font-weight: 600; }
.funnel .fs .fv { font-size: 1.25rem; font-weight: 700; color: var(--exec-ink); }
.conv-row { display: grid; grid-template-columns: 80px 1fr 48px; gap: 8px; align-items: center; font-size: 0.85rem; margin-bottom: 5px; }
.conv-row .bar { height: 8px; background: var(--exec-line); border-radius: 4px; overflow: hidden; }
.conv-row .bar > span { display: block; height: 100%; background: var(--viz-1); border-radius: 4px; }
.conv-row .v { text-align: right; font-weight: 700; color: var(--exec-ink); }

.fresh-table td, .fresh-table th { font-size: 0.86rem; padding: .35rem .5rem; }
.fresh-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 6px; }

/* ---------- charts ---------- */
.chart-wrap { position: relative; }
.chart .grid { stroke: var(--exec-line); stroke-width: 1; }
.chart .axis { fill: var(--exec-muted); font-size: 11px; }
.chart .ref-line { fill: none; stroke: var(--viz-ref); stroke-width: 1.5; stroke-dasharray: 5 4; }
.chart .ref-tick { stroke: var(--exec-ink); stroke-width: 2; }
.chart .xhair { stroke: var(--viz-ref); stroke-width: 1; }
.chart .bar { transition: opacity .15s; }
.chart-tip { position: absolute; pointer-events: none; background: var(--exec-card); border: 1px solid var(--exec-line); border-radius: 8px; padding: 6px 9px;
    font-size: 0.82rem; color: var(--exec-ink); box-shadow: 0 6px 16px rgba(15,23,42,0.14); white-space: nowrap; z-index: 5; }
.chart-tip .tt-date { font-weight: 700; margin-bottom: 2px; }
.chart-tip .sw { margin-left: 0; }
.chart-empty { padding: 2rem; text-align: center; color: var(--exec-muted); }

/* ---------- alert drawer ---------- */
.alert-drawer { width: 560px !important; max-width: 100vw; background: var(--exec-card); color: var(--exec-ink); }
.alert-drawer .offcanvas-header { align-items: flex-start; border-bottom: 1px solid var(--exec-line); }
.ad-meta { display: flex; align-items: center; gap: .45rem; flex-wrap: wrap; margin-bottom: .45rem; }
.ad-agent { font-size: 0.85rem; color: var(--exec-muted); }
.alert-drawer .offcanvas-title { font-weight: 700; font-size: 1.2rem; line-height: 1.3; }
.ad-summary { font-size: 1rem; font-weight: 600; margin-bottom: .9rem; }
.ad-section { margin-bottom: 1rem; }
.ad-label { display: flex; align-items: center; gap: 6px; font-size: 0.75rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--exec-muted); margin-bottom: .3rem; }
.ad-action { background: var(--pla-accent-soft); border-left: 3px solid var(--viz-1); border-radius: 8px; padding: .6rem .8rem; margin-bottom: 1rem; font-weight: 600; }
.ad-action .ad-label { color: var(--viz-1); }
.ad-related { margin: 0; padding-left: 1.1rem; font-size: 0.9rem; }
.peer-list { display: flex; flex-direction: column; gap: 5px; }
.peer { display: grid; grid-template-columns: 110px 1fr 48px; gap: 8px; align-items: center; font-size: 0.86rem; }
.peer.me .pn { font-weight: 700; color: var(--exec-ink); }
.peer .pb { height: 7px; background: var(--exec-line); border-radius: 4px; overflow: hidden; }
.peer .pf { display: block; height: 100%; border-radius: 4px; }
.peer .pf.ok { background: var(--st-good); } .peer .pf.warn { background: var(--st-warn-fill); } .peer .pf.crit { background: var(--st-crit); }
.peer .pv { text-align: right; font-weight: 700; }
.ad-toolbar { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 .8rem; padding-top: .8rem; border-top: 1px solid var(--exec-line); }
.ad-acc .accordion-button { padding: .55rem .8rem; font-size: 0.92rem; }
.timeline { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--exec-line); }
.timeline li { position: relative; padding: 0 0 .7rem .6rem; }
.timeline li::before { content: ''; position: absolute; left: -20px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--exec-card); border: 2px solid var(--viz-ref); }
.timeline li.tl-created::before { border-color: var(--st-crit); }
.timeline li.tl-cleared::before, .timeline li.tl-status::before { border-color: var(--st-good); }
.timeline li.tl-shared::before, .timeline li.tl-emailed::before { border-color: var(--viz-1); }
.tl-text { font-size: 0.9rem; }
.tl-meta { font-size: 0.78rem; color: var(--exec-muted); }

/* ---------- alerts list ---------- */
.alert-row { display: grid; grid-template-columns: 6px 1fr auto; gap: .8rem; padding: .75rem .9rem; border-bottom: 1px solid var(--exec-line); cursor: pointer; align-items: center; }
.alert-row:hover { background: var(--pla-accent-soft); }
.alert-row .ar-bar { align-self: stretch; border-radius: 3px; background: var(--exec-line); }
.alert-row.crit .ar-bar { background: var(--st-crit); }
.alert-row.warn .ar-bar { background: var(--st-warn-fill); }
.alert-row.closed { opacity: .65; }
.ar-title { font-weight: 700; color: var(--exec-ink); }
.ar-sub { font-size: 0.86rem; color: var(--exec-muted); margin-top: 2px; }
.ar-do { font-size: 0.88rem; margin-top: 3px; color: var(--exec-ink); }
.ar-do i { color: var(--viz-1); }
.ar-right { text-align: right; font-size: 0.82rem; color: var(--exec-muted); display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.kpi-chips { display: flex; gap: .6rem; flex-wrap: wrap; margin-bottom: 1rem; }
.kpi-chip { background: var(--exec-card); border: 1px solid var(--exec-line); border-radius: 12px; padding: .55rem .9rem; min-width: 130px; cursor: pointer; }
.kpi-chip.active { border-color: var(--viz-1); box-shadow: 0 0 0 2px rgba(42,120,214,0.15); }
.kpi-chip .kc-v { font-size: 1.45rem; font-weight: 700; color: var(--exec-ink); }
.kpi-chip .kc-l { font-size: 0.8rem; color: var(--exec-muted); font-weight: 600; }

/* ---------- agents ---------- */
.agent-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: .9rem; }
.agent-card { background: var(--exec-card); border: 1px solid var(--exec-line); border-radius: 14px; padding: 1rem; display: flex; flex-direction: column; gap: .5rem; position: relative; overflow: hidden; }
.agent-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--agent-color, var(--viz-1)); }
.agent-card.off { opacity: .6; }
.agent-card .ag-head { display: flex; align-items: center; gap: .6rem; }
.agent-card .ag-icon { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 1.15rem; color: #fff; background: var(--agent-color, var(--viz-1)); }
.agent-card .ag-name { font-weight: 700; color: var(--exec-ink); font-size: 1.05rem; }
.agent-card .ag-fn { font-size: 0.8rem; color: var(--exec-muted); }
.agent-card .ag-desc { font-size: 0.9rem; color: var(--exec-text, inherit); min-height: 2.6em; }
.agent-card .ag-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .4rem; }
.agent-card .ag-stat { background: var(--pla-line-soft); border-radius: 8px; padding: .35rem .5rem; text-align: center; }
body.dark-theme .agent-card .ag-stat { background: #111c33; }
.agent-card .ag-stat .v { font-weight: 700; font-size: 1.1rem; color: var(--exec-ink); }
.agent-card .ag-stat .l { font-size: 0.72rem; color: var(--exec-muted); }
.agent-card .ag-last { font-size: 0.8rem; color: var(--exec-muted); }
.agent-card .ag-actions { display: flex; gap: .4rem; margin-top: auto; }
.rule-table td, .rule-table th { font-size: 0.86rem; vertical-align: middle; }
.ai-banner { display: flex; align-items: center; gap: .8rem; padding: .7rem 1rem; border-radius: 12px; background: var(--exec-card); border: 1px solid var(--exec-line); margin-bottom: 1rem; flex-wrap: wrap; }
.ai-banner .bi-stars { font-size: 1.3rem; color: #7c3aed; }

/* ---------- data sources ---------- */
.src-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(310px, 1fr)); gap: .9rem; }
.src-card { background: var(--exec-card); border: 1px solid var(--exec-line); border-radius: 14px; padding: .9rem 1rem; display: flex; flex-direction: column; gap: .4rem; }
.src-card .sc-head { display: flex; justify-content: space-between; gap: .5rem; align-items: flex-start; }
.src-card .sc-name { font-weight: 700; color: var(--exec-ink); }
.src-card .sc-sys { font-size: 0.82rem; color: var(--exec-muted); }
.src-card .sc-msg { font-size: 0.8rem; color: var(--exec-muted); word-break: break-word; }
.src-status { font-size: 0.75rem; font-weight: 700; padding: 2px 8px; border-radius: 10px; white-space: nowrap; }
.src-status.CONNECTED { background: var(--st-good-bg); color: var(--st-good); }
.src-status.ERROR { background: var(--st-crit-bg); color: var(--st-crit); }
.src-status.NOT_CONFIGURED { background: var(--pla-line-soft); color: var(--exec-muted); }
.sql-box { font-family: Consolas, "Courier New", monospace; font-size: 0.85rem; min-height: 260px; }
.preview-table { font-size: 0.8rem; }
.preview-table td, .preview-table th { white-space: nowrap; padding: .25rem .45rem; }
