:root {
  --c-bg-0:#07090d; --c-bg-1:#0c1218; --c-bg-2:#131b25; --c-bg-3:#1a2532; --c-bg-4:#243245;
  --c-text-1:#e6edf3; --c-text-2:#94a3b8; --c-text-3:#64748b;
  --c-accent:#ff9d2e; --c-accent-2:#4dd0e1; --c-success:#34d399; --c-warn:#fbbf24; --c-danger:#f87171;
  --c-grid-major:rgba(255,255,255,.07); --c-grid-minor:rgba(255,255,255,.025);
  --c-cursor-1:#ffd54f; --c-cursor-2:#4fc3f7;
  --font-mono:'JetBrains Mono','SF Mono','Cascadia Code','Menlo','Consolas',monospace;
  --font-ui:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;
  --hairline:1px solid var(--c-bg-4); --tone-letterspace:.04em;
}
[data-theme="light"] {
  --c-bg-0:#f1f3f6; --c-bg-1:#fff; --c-bg-2:#f8fafc; --c-bg-3:#eef2f7; --c-bg-4:#cbd5e1;
  --c-text-1:#0f172a; --c-text-2:#475569; --c-text-3:#64748b;
  --c-grid-major:rgba(0,0,0,.08); --c-grid-minor:rgba(0,0,0,.025);
  --c-cursor-1:#f59e0b; --c-cursor-2:#0284c7;
}
*{box-sizing:border-box} html,body{margin:0;padding:0;height:100%}
body{background:var(--c-bg-0);color:var(--c-text-1);font-family:var(--font-ui);font-size:12px;overflow:hidden;-webkit-font-smoothing:antialiased}
.app{display:grid;grid-template-rows:auto 1fr 24px;height:100vh;min-height:0}
.toolbar{display:flex;align-items:center;gap:8px 10px;padding:6px 10px;background:linear-gradient(180deg,var(--c-bg-3),var(--c-bg-2));border-bottom:var(--hairline);flex-wrap:wrap;min-height:44px;max-height:116px;overflow:auto}
.brand{display:flex;align-items:baseline;gap:9px}.brand-mark{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.18em;color:var(--c-bg-0);background:var(--c-accent);padding:3px 7px;border-radius:2px}.brand-name{font-family:var(--font-mono);font-size:12px;font-weight:600;letter-spacing:.04em}.brand-version{font-family:var(--font-mono);font-size:10px;color:var(--c-text-3)}.toolbar-divider{width:1px;height:18px;background:var(--c-bg-4)}.spacer{flex:1}
.tbtn{background:transparent;border:1px solid transparent;color:var(--c-text-2);font-family:var(--font-mono);font-size:9px;font-weight:500;letter-spacing:0;text-transform:uppercase;padding:4px 7px;border-radius:2px;cursor:pointer;display:inline-flex;align-items:center;gap:4px;min-height:24px;white-space:nowrap}.tbtn:hover{color:var(--c-text-1);background:var(--c-bg-3)}.tbtn.active{color:var(--c-bg-0);background:var(--c-accent);border-color:var(--c-accent)}.tbtn-group{display:inline-flex;border:1px solid var(--c-bg-4);border-radius:2px;overflow:hidden;flex-wrap:nowrap}.tbtn-group .tbtn{border-radius:0;border:none;border-right:1px solid var(--c-bg-4)}.tbtn-group .tbtn:last-child{border-right:none}.tbtn-group .tbtn.active{background:var(--c-accent-2);color:var(--c-bg-0);border-color:var(--c-accent-2)}.tbtn-icon{width:auto;padding:4px 7px;justify-content:center}
select.tbtn{appearance:none;padding-right:22px;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(-45deg,transparent 50%,currentColor 50%);background-position:calc(100% - 12px) calc(50% - 1px),calc(100% - 8px) calc(50% - 1px);background-size:4px 4px;background-repeat:no-repeat}
.main{display:grid;grid-template-columns:240px minmax(0,1fr);background:var(--c-bg-0);overflow:hidden;min-height:0}.panel-left{background:var(--c-bg-2);border-right:var(--hairline);display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--c-text-3);border-bottom:var(--hairline)}.panel-header-count{font-family:var(--font-mono);color:var(--c-accent);letter-spacing:0}
.trace-search-box{padding:6px 8px;border-bottom:var(--hairline);background:var(--c-bg-2)}#trace-search{width:100%;background:var(--c-bg-0);border:1px solid var(--c-bg-4);color:var(--c-text-1);font-family:var(--font-ui);font-size:11px;padding:5px 8px;border-radius:2px;outline:none}#trace-search:focus{border-color:var(--c-accent)}
.trace-list{flex:1;overflow-y:auto;padding:4px}.trace-row{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px;padding:7px 8px;border-radius:2px;cursor:pointer;margin-bottom:1px}.trace-row:hover{background:var(--c-bg-3)}.trace-row.hidden{opacity:.4}.trace-row-swatch{width:10px;height:10px;border-radius:1px}.trace-row-name{font-family:var(--font-mono);font-size:11px;font-weight:600;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.trace-row-desc{font-size:10px;color:var(--c-text-3);text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.trace-row-value{font-family:var(--font-mono);font-size:11px;color:var(--c-accent-2);text-align:right;font-variant-numeric:tabular-nums}.trace-row.hidden .trace-row-swatch{outline:1px solid var(--c-text-3);background:transparent!important}
.graph-area{display:flex;flex-direction:column;position:relative;overflow:hidden;background:var(--c-bg-1)}.graph-info{display:flex;align-items:center;gap:18px;padding:6px 14px;background:var(--c-bg-2);border-bottom:var(--hairline);font-family:var(--font-mono);font-size:10px;color:var(--c-text-3);letter-spacing:.04em;flex-shrink:0}.graph-info-item b{color:var(--c-text-1);font-weight:500;margin-left:6px;font-variant-numeric:tabular-nums}.graph-container{flex:1;position:relative;overflow:hidden}canvas.plot{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;display:block}
.tooltip{position:absolute;background:rgba(7,9,13,.96);border:1px solid var(--c-bg-4);border-left:2px solid var(--c-accent);padding:8px 10px;font-family:var(--font-mono);font-size:10px;pointer-events:none;z-index:20;white-space:nowrap;color:var(--c-text-1);border-radius:2px;display:none;backdrop-filter:blur(8px)}[data-theme="light"] .tooltip{background:rgba(255,255,255,.97)}.tooltip.visible{display:block}.tooltip-time{color:var(--c-accent);font-weight:600;border-bottom:1px solid var(--c-bg-4);padding-bottom:4px;margin-bottom:5px;letter-spacing:.06em}
.cursor-panel{position:absolute;top:12px;right:12px;background:rgba(7,9,13,.88);border:1px solid var(--c-bg-4);padding:10px 11px;min-width:240px;font-family:var(--font-mono);font-size:10px;z-index:10;border-radius:2px;backdrop-filter:blur(6px)}[data-theme="light"] .cursor-panel{background:rgba(255,255,255,.93)}.cursor-panel-title{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--c-text-3);margin-bottom:7px}.cursor-row{display:grid;grid-template-columns:30px 1fr;gap:10px;padding:2px 0;align-items:baseline}.cursor-tag{font-size:9px;font-weight:700;padding:2px 4px;color:var(--c-bg-0);text-align:center;border-radius:1px}.cursor-tag.c1{background:var(--c-cursor-1)}.cursor-tag.c2{background:var(--c-cursor-2)}.cursor-tag.dt{background:var(--c-accent)}.cursor-val{font-variant-numeric:tabular-nums}.cursor-panel-divider{height:1px;background:var(--c-bg-4);margin:6px 0}.zoom-rect{position:absolute;pointer-events:none;border:1px dashed var(--c-accent);background:rgba(255,157,46,.08);z-index:15;display:none}
.drop-overlay{position:absolute;inset:0;background:rgba(7,9,13,.85);backdrop-filter:blur(4px);z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;border:2px dashed var(--c-accent);margin:10px;border-radius:8px}.drop-overlay.active{opacity:1;pointer-events:all}.drop-overlay-text{font-family:var(--font-mono);font-size:24px;color:var(--c-accent);letter-spacing:.1em;text-transform:uppercase}.drop-overlay-sub{margin-top:10px;font-size:14px;color:var(--c-text-2)}
.statusbar{display:flex;align-items:center;gap:14px;padding:0 14px;background:var(--c-bg-2);border-top:var(--hairline);font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;color:var(--c-text-3)}.statusbar-dot{width:7px;height:7px;border-radius:50%;background:var(--c-success);box-shadow:0 0 6px var(--c-success)}.statusbar-dot.idle{background:var(--c-text-3);box-shadow:none}.statusbar b{color:var(--c-text-1);font-weight:500;letter-spacing:0}.statusbar kbd{font-family:var(--font-mono);background:var(--c-bg-3);padding:1px 4px;font-size:9px;border:1px solid var(--c-bg-4);border-radius:2px;color:var(--c-text-1);letter-spacing:0}.statusbar-spacer{flex:1}.statusbar-perf{font-variant-numeric:tabular-nums}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--c-bg-4)}::-webkit-scrollbar-thumb:hover{background:var(--c-text-3)}

/* Commit 2B — GE-like signal selection modal */
.signal-modal{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px)}.signal-modal.hidden{display:none}.signal-modal-card{width:min(960px,92vw);height:min(760px,90vh);background:var(--c-bg-2);border:1px solid var(--c-bg-4);box-shadow:0 24px 80px rgba(0,0,0,.45);display:grid;grid-template-rows:auto auto auto auto 1fr auto;border-radius:6px;overflow:hidden}.signal-modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:var(--hairline);background:linear-gradient(180deg,var(--c-bg-3),var(--c-bg-2))}.signal-modal-title{font-family:var(--font-mono);font-size:13px;font-weight:700;letter-spacing:.16em;color:var(--c-accent);}.signal-modal-sub{font-family:var(--font-mono);font-size:10px;color:var(--c-text-3);margin-top:5px}.signal-modal-site-row{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:var(--hairline);background:var(--c-bg-2)}.signal-modal-site-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.18em;color:var(--c-text-3);font-weight:700;padding:0 6px}.signal-modal-site-input{background:var(--c-bg-0);border:1px solid var(--c-bg-4);color:var(--c-text-1);font-family:var(--font-mono);font-size:12px;padding:5px 8px;border-radius:2px;outline:none;min-width:220px}.signal-modal-site-input:focus{border-color:var(--c-accent)}.signal-modal-site-detected{font-family:var(--font-mono);font-size:10px;color:var(--c-text-3);font-style:italic}.signal-modal-tabs{display:flex;gap:0;padding:0 12px;border-bottom:var(--hairline);background:var(--c-bg-2)}.signal-modal-tab{background:transparent;border:none;color:var(--c-text-2);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:10px 14px;cursor:pointer;border-bottom:2px solid transparent;transition:color .12s}.signal-modal-tab:hover{color:var(--c-text-1)}.signal-modal-tab.active{color:var(--c-accent);border-bottom-color:var(--c-accent)}.signal-modal-tab span{margin-left:5px;color:var(--c-text-3);font-weight:400}.signal-modal-tab.active span{color:var(--c-accent)}.signal-modal-tools{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:var(--hairline);background:var(--c-bg-2)}#signal-modal-search{flex:1;background:var(--c-bg-0);border:1px solid var(--c-bg-4);color:var(--c-text-1);font-family:var(--font-ui);font-size:12px;padding:7px 9px;border-radius:2px;outline:none}#signal-modal-search:focus{border-color:var(--c-accent)}.signal-modal-list{overflow:auto;padding:6px}.signal-modal-row{display:grid;grid-template-columns:22px 12px minmax(150px,1.2fr) minmax(200px,2fr) 90px;gap:10px;align-items:center;padding:7px 9px;margin-bottom:1px;border-radius:2px;cursor:pointer}.signal-modal-row:hover{background:var(--c-bg-3)}.signal-modal-row input{accent-color:var(--c-accent)}.signal-swatch{width:11px;height:11px;border-radius:1px}.signal-name{font-family:var(--font-mono);font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signal-desc{font-size:11px;color:var(--c-text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.signal-samples{font-family:var(--font-mono);font-size:10px;text-align:right;color:var(--c-accent-2);font-variant-numeric:tabular-nums}.signal-modal-foot{display:flex;gap:10px;align-items:center;padding:10px 12px;border-top:var(--hairline);background:var(--c-bg-2)}.signal-modal-count{font-family:var(--font-mono);font-size:10px;color:var(--c-text-2);letter-spacing:.05em}

/* Commit 2F — UX parity additions */
.panel-header {
  gap: 6px;
}
.panel-header-count {
  margin-left: auto;
}
.panel-header-btn {
  background: transparent;
  border: 1px solid var(--c-bg-4);
  color: var(--c-text-3);
  width: 20px;
  height: 20px;
  padding: 0;
  cursor: pointer;
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1;
  border-radius: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.panel-header-btn:hover { color: var(--c-accent); border-color: var(--c-accent); }
.panel-header-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.panel-header-btn:disabled:hover { color: var(--c-text-3); border-color: var(--c-bg-4); }

.trace-row {
  grid-template-columns: 10px 1fr auto auto;
}
.trace-row-actions {
  display: inline-flex;
  gap: 2px;
  opacity: 0;
  transition: opacity 120ms;
}
.trace-row:hover .trace-row-actions,
.trace-row.highlighted .trace-row-actions {
  opacity: 1;
}
.trace-row-actions button {
  background: transparent;
  border: none;
  color: var(--c-text-3);
  width: 18px;
  height: 18px;
  padding: 0;
  cursor: pointer;
  font-size: 12px;
  line-height: 1;
  border-radius: 2px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.trace-row-actions button:hover {
  background: var(--c-bg-4);
  color: var(--c-text-1);
}
.trace-row-actions button.danger:hover {
  background: var(--c-danger);
  color: var(--c-bg-0);
}

/* Cursor value rows */
.cursor-panel {
  min-width: 280px;
  max-width: 420px;
  max-height: calc(100vh - 100px);
  overflow-y: auto;
}
.cursor-trace-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  padding: 2px 0;
  align-items: baseline;
  min-width: 0;
}
.cursor-trace-name {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
}
.cursor-trace-vals {
  font-variant-numeric: tabular-nums;
  color: var(--c-text-2);
  white-space: nowrap;
  text-align: right;
}
.cursor-trace-vals .cur-v {
  color: var(--c-text-1);
}
.cursor-trace-vals .cur-dv {
  margin-left: 4px;
  font-weight: 600;
}
.cursor-trace-vals .pos { color: var(--c-success); }
.cursor-trace-vals .neg { color: var(--c-danger); }
.cursor-trace-vals .zero { color: var(--c-text-3); }

/* Context menu */
.ctx-menu {
  position: fixed;
  background: var(--c-bg-2);
  border: 1px solid var(--c-bg-4);
  border-radius: 2px;
  padding: 4px 0;
  min-width: 170px;
  z-index: 250;
  font-family: var(--font-mono);
  font-size: 11px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.5);
  display: none;
}
.ctx-menu.active { display: block; }
.ctx-menu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 12px;
  cursor: pointer;
  color: var(--c-text-1);
  letter-spacing: 0.04em;
}
.ctx-menu-item:hover { background: var(--c-bg-3); }
.ctx-menu-item.danger:hover { background: var(--c-danger); color: var(--c-bg-0); }
.ctx-menu-item .key {
  margin-left: auto;
  font-size: 9px;
  color: var(--c-text-3);
  letter-spacing: 0;
}
.ctx-menu-divider {
  height: 1px;
  background: var(--c-bg-4);
  margin: 4px 0;
}

/* Toast notifications */
.toast-container {
  position: fixed;
  bottom: 36px;
  right: 18px;
  z-index: 300;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}
.toast {
  background: var(--c-bg-2);
  border: 1px solid var(--c-bg-4);
  border-left: 3px solid var(--c-accent);
  padding: 10px 14px;
  font-family: var(--font-mono);
  font-size: 11px;
  color: var(--c-text-1);
  letter-spacing: 0.04em;
  max-width: 420px;
  pointer-events: auto;
  box-shadow: 0 6px 20px rgba(0,0,0,0.4);
  animation: toast-in 200ms ease-out;
}
.toast.success { border-left-color: var(--c-success); }
.toast.warn { border-left-color: var(--c-warn); }
.toast.error { border-left-color: var(--c-danger); }
.toast .toast-undo {
  display: inline-block;
  margin-left: 10px;
  padding: 1px 6px;
  border: 1px solid var(--c-text-2);
  border-radius: 2px;
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-accent);
  cursor: pointer;
  font-weight: 600;
}
.toast .toast-undo:hover { background: var(--c-accent); color: var(--c-bg-0); border-color: var(--c-accent); }
@keyframes toast-in {
  from { transform: translateX(20px); opacity: 0; }
  to { transform: translateX(0); opacity: 1; }
}


/* Commit 2G — T0 and SOE additions */
.tbtn.t0-active {
  background: var(--c-warn);
  border-color: var(--c-warn);
  color: var(--c-bg-0);
}


/* Commit 2H-FIX — stronger event axis / tooltip support */
.tooltip {
  max-width: 780px;
}
.tooltip-row span:nth-child(2) {
  overflow: hidden;
  text-overflow: ellipsis;
}


/* Commit 2H-FIX v4 — clean SOE triangles / parser-like cursor UX */
.tooltip {
  max-width: 820px;
}
.tooltip-row span:nth-child(2) {
  overflow: hidden;
  text-overflow: ellipsis;
}


/* Commit 2H-FIX v19 — SOE/Events window */
.events-window {
  position: fixed;
  left: 64px;
  right: 64px;
  bottom: 52px;
  height: 42vh;
  z-index: 240;
  background: var(--c-bg-1);
  border: 1px solid var(--c-bg-4);
  box-shadow: 0 12px 40px rgba(0,0,0,0.55);
  display: flex;
  flex-direction: column;
  font-family: var(--font-mono);
}
.events-window.hidden { display: none; }
.events-window-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--c-bg-4);
  background: var(--c-bg-2);
}
.events-window-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--c-text-1);
  letter-spacing: 0.08em;
}
.events-window-sub {
  font-size: 10px;
  color: var(--c-text-3);
  margin-top: 3px;
}
.events-window-actions { display: flex; gap: 8px; align-items: center; }
.events-window-actions input {
  width: 320px;
  background: var(--c-bg-0);
  color: var(--c-text-1);
  border: 1px solid var(--c-bg-4);
  padding: 6px 8px;
  font-family: var(--font-mono);
  font-size: 11px;
}
.events-table-wrap { overflow: auto; flex: 1; }
.events-table { width: 100%; border-collapse: collapse; font-size: 11px; }
.events-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--c-bg-2);
  color: var(--c-text-2);
  text-align: left;
  padding: 6px 8px;
  border-bottom: 1px solid var(--c-bg-4);
}
.events-table td {
  padding: 5px 8px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  color: var(--c-text-1);
  vertical-align: top;
}
.events-table tr.active td:first-child { border-left: 3px solid var(--c-danger); }
.events-table tr.cleared td:first-child { border-left: 3px solid var(--c-success); }
.events-table tr:hover td { background: var(--c-bg-3); }
.events-table .mono { font-variant-numeric: tabular-nums; white-space: nowrap; }
.events-table .tag { color: var(--c-accent); font-weight: 600; }
.events-empty { text-align: center; color: var(--c-text-3) !important; padding: 22px !important; }


/* Commit 3A — GE-like bottom TabControl */
.graph-area {
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.graph-container {
  flex: 1 1 auto;
  min-height: 0;
}
.bottom-tabs {
  flex: 0 0 250px;
  height: 250px;
  min-height: 140px;
  max-height: calc(100% - 80px);
  border-top: 1px solid var(--c-bg-4);
  background: var(--c-bg-1);
  display: flex;
  flex-direction: column;
  font-family: var(--font-mono);
}
.bottom-tabs.maximized {
  flex-basis: calc(100% - 80px);
  height: calc(100% - 80px);
  min-height: calc(100% - 80px);
}
.bottom-tabs.collapsed {
  flex-basis: 30px;
  height: 30px !important;
  min-height: 30px;
}
.bottom-tabs.collapsed .bottom-tab-content {
  display: none;
}
.bottom-tabbar {
  height: 30px;
  min-height: 30px;
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--c-bg-2);
  border-bottom: 1px solid var(--c-bg-4);
  position: relative;
}
.bottom-resize-handle {
  position: absolute;
  top: -5px;
  left: 0;
  right: 0;
  height: 9px;
  cursor: ns-resize;
  z-index: 2;
}
.bottom-resize-handle::after {
  content: "";
  position: absolute;
  top: 4px;
  left: 50%;
  width: 70px;
  height: 2px;
  transform: translateX(-50%);
  background: var(--c-bg-4);
  border-radius: 99px;
}
body.resizing-bottom-panel {
  cursor: ns-resize;
  user-select: none;
}
.bottom-tab {
  height: 30px;
  padding: 0 14px;
  border: none;
  border-right: 1px solid var(--c-bg-4);
  background: transparent;
  color: var(--c-text-3);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.05em;
  cursor: pointer;
}
.bottom-tab:hover {
  color: var(--c-text-1);
  background: var(--c-bg-3);
}
.bottom-tab.active {
  color: var(--c-accent);
  background: var(--c-bg-1);
}
.bottom-tab-spacer {
  flex: 1;
}
.bottom-tab-content {
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.bottom-pane {
  display: none;
  height: 100%;
}
.bottom-pane.active {
  display: flex;
  flex-direction: column;
}
.bottom-pane-hint {
  padding: 14px;
  color: var(--c-text-3);
  font-size: 11px;
}
.events-pane-tools {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--c-bg-4);
}
.events-pane-tools input {
  margin-left: auto;
  width: 360px;
  background: var(--c-bg-0);
  color: var(--c-text-1);
  border: 1px solid var(--c-bg-4);
  padding: 6px 8px;
  font-family: var(--font-mono);
  font-size: 11px;
}
.user-note {
  flex: 1;
  resize: none;
  background: var(--c-bg-0);
  color: var(--c-text-1);
  border: none;
  padding: 12px;
  font-family: var(--font-mono);
  font-size: 12px;
}


.events-table tr.recorder-trigger td:first-child {
  border-left: 3px solid var(--c-accent);
}
.events-table tr.recorder-trigger td {
  background: rgba(87, 148, 242, 0.10);
}


/* Commit 3H — operator display polish */
.tooltip-section-title {
  font-weight: 700;
  margin-bottom: 5px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--c-bg-4);
  letter-spacing: 0.05em;
}
.tooltip-section-title.danger {
  color: var(--c-danger);
}
.tooltip-events-list {
  max-height: 260px;
  overflow-y: auto;
  padding-right: 4px;
  margin-bottom: 6px;
}
.tooltip-event-row {
  display: grid;
  grid-template-columns: 16px minmax(180px, 1fr) auto;
  gap: 6px;
  align-items: baseline;
  font-size: 11px;
  line-height: 1.35;
  padding: 2px 0;
  border-bottom: 1px solid rgba(255,255,255,0.03);
}
.tooltip-event-icon {
  opacity: 0.9;
}
.tooltip-event-text {
  white-space: normal;
  overflow-wrap: anywhere;
}
.tooltip-event-state {
  white-space: nowrap;
  opacity: 0.85;
}
.tooltip-more {
  color: var(--c-text-3);
  font-size: 10px;
  padding-top: 5px;
  border-top: 1px dashed var(--c-bg-4);
}
#tooltip {
  max-width: min(720px, calc(100vw - 32px));
}


/* Commit 3I — bottom panel close button */
.bottom-close {
  font-size: 15px;
  line-height: 1;
  color: var(--c-text-2);
}
.bottom-close:hover {
  color: var(--c-danger);
}


/* Commit 4A — RCA tab placeholder */
.rca-toolbar {
  height: 38px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 10px;
  border-bottom: 1px solid var(--c-bg-4);
}
.rca-toolbar-note {
  color: var(--c-text-3);
  font-size: 11px;
}
.rca-pane-content {
  flex: 1;
  overflow: auto;
  padding: 10px;
}
.rca-empty {
  padding: 16px;
  color: var(--c-text-2);
}
.rca-title {
  font-weight: 700;
  color: var(--c-text-1);
  margin-bottom: 6px;
}
.rca-muted {
  color: var(--c-text-3);
  font-size: 11px;
  line-height: 1.35;
}
.rca-grid {
  display: grid;
  grid-template-columns: minmax(260px, 360px) 1fr;
  gap: 10px;
}
.rca-card {
  border: 1px solid var(--c-bg-4);
  background: var(--c-bg-0);
  padding: 10px;
  min-height: 80px;
}
.rca-card.rca-wide {
  grid-column: 1 / -1;
}
.rca-card-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--c-accent);
  margin-bottom: 8px;
  letter-spacing: 0.06em;
}
.rca-kv {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 8px;
  font-size: 11px;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.rca-kv span {
  color: var(--c-text-3);
}
.rca-kv b {
  color: var(--c-text-1);
  font-weight: 600;
}
.rca-finding {
  border-left: 3px solid var(--c-text-3);
  padding: 8px;
  margin-bottom: 8px;
  background: rgba(255,255,255,0.025);
}
.rca-finding.severity-high {
  border-left-color: var(--c-danger);
}
.rca-finding.severity-medium {
  border-left-color: var(--c-warn);
}
.rca-finding.severity-info,
.rca-finding.severity-low {
  border-left-color: var(--c-accent);
}
.rca-finding-head {
  display: flex;
  justify-content: space-between;
  color: var(--c-text-1);
  margin-bottom: 4px;
}
.rca-reco {
  margin-top: 6px;
  color: var(--c-text-2);
  font-size: 11px;
}
.rca-table-wrap {
  max-height: 260px;
  overflow: auto;
}
.rca-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.rca-table th {
  position: sticky;
  top: 0;
  background: var(--c-bg-2);
  color: var(--c-text-2);
  text-align: left;
  padding: 5px 6px;
  border-bottom: 1px solid var(--c-bg-4);
}
.rca-table td {
  padding: 4px 6px;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.rca-table .tag {
  color: var(--c-accent);
  font-weight: 600;
}


/* Commit 4B — RCA 40 ms timeline */
.rca-table th:first-child,
.rca-table td:first-child {
  white-space: nowrap;
}


/* Commit 4C — First-Out / First Meaningful Event */
.rca-subtitle {
  margin-top: 8px;
  margin-bottom: 4px;
  color: var(--c-text-2);
  font-size: 11px;
  font-weight: 700;
}
.rca-evidence-line {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) 45px 80px minmax(180px, 2fr);
  gap: 6px;
  color: var(--c-text-1);
  font-size: 11px;
  padding: 5px;
  background: rgba(255,255,255,0.025);
  border-left: 3px solid var(--c-accent);
}


/* Commit 4E — visual trigger and cursor improvements */
.events-table tr.recorder-trigger td,
.events-table tr.trigger-zero-row td,
.rca-table tr.recorder-trigger td,
.rca-table tr.trigger-zero-row td {
  background: rgba(248, 113, 113, 0.18) !important;
  color: var(--c-text-1);
}
.events-table tr.recorder-trigger td:first-child,
.events-table tr.trigger-zero-row td:first-child,
.rca-table tr.recorder-trigger td:first-child,
.rca-table tr.trigger-zero-row td:first-child {
  border-left: 4px solid var(--c-danger) !important;
}
.events-table tr.recorder-trigger:hover td,
.events-table tr.trigger-zero-row:hover td,
.rca-table tr.recorder-trigger:hover td,
.rca-table tr.trigger-zero-row:hover td {
  background: rgba(248, 113, 113, 0.30) !important;
  cursor: pointer;
}


/* Commit 4F — Signal Evidence Extractor v1 */
.rca-table-wrap.wide {
  overflow: auto;
}
.rca-signal-table th,
.rca-signal-table td {
  white-space: nowrap;
}
.rca-signal-table td:first-child {
  position: sticky;
  left: 0;
  background: var(--c-bg-0);
  z-index: 1;
}
.rca-signal-table th:first-child {
  position: sticky;
  left: 0;
  background: var(--c-bg-2);
  z-index: 2;
}


/* Commit 4G — Protective trip candidate */
.rca-evidence-line.protective-candidate {
  border-left-color: var(--c-danger);
  background: rgba(248, 113, 113, 0.10);
}
.rca-evidence-line.master-trip-confirmation {
  border-left-color: var(--c-warn);
  background: rgba(251, 191, 36, 0.08);
}


/* ─── Strict Signal Evidence (Commit 4F) ───────────────────────────── */
.rca-card-subtitle {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 400;
  color: var(--c-text-3);
  letter-spacing: .04em;
  margin-left: 10px;
  text-transform: none;
}
.rca-strict-policy-note {
  font-family: var(--font-mono);
  font-size: 10px;
  color: var(--c-text-3);
  background: var(--c-bg-0);
  padding: 6px 10px;
  border-left: 2px solid var(--c-accent-2);
  margin-bottom: 8px;
  line-height: 1.5;
}
.rca-strict-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--c-bg-4);
  border-radius: 3px;
}
.rca-strict-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-mono);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}
.rca-strict-table thead th {
  background: var(--c-bg-3);
  color: var(--c-text-2);
  font-weight: 700;
  text-align: center;
  padding: 6px 4px;
  border-bottom: 1px solid var(--c-bg-4);
  white-space: nowrap;
  font-size: 9px;
  letter-spacing: .04em;
}
.rca-strict-table th.rca-strict-frame.trip {
  color: var(--c-warn);
  background: rgba(255,157,46,0.08);
}
.rca-strict-table th.rca-strict-frame.t0 {
  color: var(--c-accent);
  background: rgba(77,208,225,0.08);
}
.rca-strict-row td {
  padding: 5px 5px;
  border-bottom: 1px solid var(--c-bg-3);
  text-align: right;
  white-space: nowrap;
}
.rca-strict-row:hover { background: rgba(255,255,255,0.02); }

.rca-strict-tag {
  text-align: left !important;
  font-weight: 700;
  color: var(--c-text-1);
  max-width: 200px;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rca-strict-unit {
  font-weight: 400;
  color: var(--c-text-3);
  font-size: 9px;
}
.rca-strict-kind {
  text-align: center !important;
  font-weight: 700;
  width: 24px;
}
.rca-strict-kind.analog  { color: var(--c-accent-2); }
.rca-strict-kind.digital { color: #ce93d8; }

.rca-strict-cell { color: var(--c-text-1); }
.rca-strict-cell.fresh { color: var(--c-text-1); }
.rca-strict-cell.ok    { color: var(--c-text-2); }
.rca-strict-cell.stale { color: var(--c-text-3); font-style: italic; }
.rca-strict-cell.na    { color: var(--c-text-3); }
.rca-strict-cell.trip  { background: rgba(255,157,46,0.05); }
.rca-strict-cell.t0    { background: rgba(77,208,225,0.05); font-weight: 700; }
.rca-strict-flag {
  display: inline-block;
  margin-left: 3px;
  padding: 0 3px;
  background: rgba(248,113,113,0.18);
  color: #f87171;
  border-radius: 1px;
  font-size: 8px;
  letter-spacing: .04em;
}

.rca-strict-extreme {
  color: var(--c-text-2);
  font-style: italic;
}
.rca-strict-prefiring {
  text-align: left !important;
  white-space: normal;
  max-width: 200px;
}
.rca-prefire-digital { color: #ce93d8; font-weight: 600; }
.rca-prefire-analog  { color: var(--c-accent-2); }
.rca-prefire-slope   { color: var(--c-text-3); font-size: 9px; }

.rca-strict-warning-row td {
  background: var(--c-bg-0);
  padding: 4px 8px;
  border-bottom: 1px solid var(--c-bg-3);
}
.rca-strict-warnings {
  font-family: var(--font-mono);
  font-size: 9px;
  color: var(--c-warn);
  line-height: 1.4;
}


/* Commit 5C — Trigger bucket protective trip candidate fix */
.rca-evidence-line.protective-candidate {
  border-left-color: var(--c-danger);
  background: rgba(248, 113, 113, 0.10);
}
.rca-evidence-line.master-trip-confirmation {
  border-left-color: var(--c-warn);
  background: rgba(251, 191, 36, 0.08);
}


/* Commit 5D-lite — RCA sequence context built-in only */
.rca-seq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 10px;
}
.rca-seq-table {
  font-size: 10px;
}
.rca-seq-table td,
.rca-seq-table th {
  vertical-align: top;
}
@media (max-width: 1100px) {
  .rca-seq-grid {
    grid-template-columns: 1fr;
  }
}


/* Commit 5E — Cursor range export + trend color picker */
.trace-row-swatch {
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
}
.trace-row-actions button[title="Color"] {
  font-size: 11px;
}
#btn-export-cursors,
#btn-export-cursors-json {
  font-weight: 700;
}


/* Commit 5E-fix3 — restore UI methods support */
.rca-seq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 10px;
}
.rca-seq-table {
  font-size: 10px;
}
.rca-seq-table td,
.rca-seq-table th {
  vertical-align: top;
}
.trace-row-swatch {
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
}
@media (max-width: 1100px) {
  .rca-seq-grid { grid-template-columns: 1fr; }
}


/* Commit 5E-fix4 — runtime sanity */
.rca-seq-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(280px, 1fr));
  gap: 10px;
}
.rca-seq-table {
  font-size: 10px;
}
.trace-row-swatch {
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
}
@media (max-width: 1100px) {
  .rca-seq-grid { grid-template-columns: 1fr; }
}


/* Commit 5I — Signal visibility controls + zoom between cursors */
.panel-header {
  gap: 6px;
}
.panel-header-count {
  margin-left: auto;
}
.panel-header-btn {
  min-width: 28px;
  padding: 2px 7px;
}
#btn-show-all-traces,
#btn-hide-all-traces {
  font-size: 9px;
  letter-spacing: 0.08em;
}
#btn-zoom-cursors {
  font-weight: 700;
}


/* Commit 5J — draggable / collapsible cursor panel */
.cursor-panel {
  user-select: none;
  max-width: min(520px, calc(100% - 24px));
  max-height: min(70vh, calc(100% - 24px));
  overflow: auto;
}
.cursor-panel.dragging {
  opacity: .92;
  cursor: grabbing;
}
.cursor-panel-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  cursor: grab;
  margin: -2px -3px 7px -3px;
  padding: 2px 3px 6px 3px;
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.cursor-panel.dragging .cursor-panel-title {
  cursor: grabbing;
}
.cursor-panel-actions {
  display: inline-flex;
  gap: 4px;
}
.cursor-panel-actions button {
  width: 18px;
  height: 16px;
  padding: 0;
  border: 1px solid var(--c-bg-4);
  background: var(--c-bg-2);
  color: var(--c-text-2);
  font-family: var(--font-mono);
  font-size: 10px;
  line-height: 12px;
  border-radius: 2px;
  cursor: pointer;
}
.cursor-panel-actions button:hover {
  color: var(--c-text-1);
  border-color: var(--c-accent);
}
.cursor-panel.collapsed {
  min-width: 160px;
  width: auto;
  overflow: hidden;
}
.cursor-panel.collapsed #cursor-rows {
  display: none;
}
.cursor-panel.collapsed .cursor-panel-title {
  margin-bottom: 0;
  border-bottom: none;
}


/* Commit 7B — GE Trace Settings add-on */
.trace-row.y-locked .trace-row-name {
  color: #fbbf24;
}
.trace-row.y-locked {
  border-left: 2px solid #fbbf24;
}

.trace-settings-panel {
  position: fixed;
  right: 22px;
  top: 86px;
  width: 340px;
  z-index: 420;
  background: var(--c-bg-1);
  border: 1px solid var(--c-bg-4);
  box-shadow: 0 18px 46px rgba(0,0,0,0.55);
  font-family: var(--font-mono);
  color: var(--c-text-1);
}
.trace-settings-panel.hidden {
  display: none;
}
.trace-settings-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  padding: 10px 12px;
  background: var(--c-bg-2);
  border-bottom: 1px solid var(--c-bg-4);
}
.trace-settings-title {
  color: var(--c-accent);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .12em;
}
.trace-settings-sub {
  margin-top: 4px;
  color: var(--c-text-2);
  font-size: 10px;
  word-break: break-all;
}
#trace-settings-close {
  background: var(--c-bg-3);
  color: var(--c-text-1);
  border: 1px solid var(--c-bg-4);
  cursor: pointer;
  width: 24px;
  height: 24px;
}
.trace-settings-body {
  padding: 12px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px 10px;
}
.trace-settings-body label {
  display: flex;
  flex-direction: column;
  gap: 5px;
  color: var(--c-text-3);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.trace-settings-body input,
.trace-settings-body select {
  background: var(--c-bg-0);
  color: var(--c-text-1);
  border: 1px solid var(--c-bg-4);
  padding: 6px 7px;
  font-family: var(--font-mono);
  font-size: 11px;
}
.trace-settings-section-title,
.trace-settings-note,
.trace-settings-actions {
  grid-column: 1 / -1;
}
.trace-settings-section-title {
  margin-top: 5px;
  color: #fbbf24;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
}
.trace-settings-actions {
  display: flex;
  gap: 7px;
  flex-wrap: wrap;
}
.trace-settings-actions button {
  background: var(--c-bg-3);
  color: var(--c-text-1);
  border: 1px solid var(--c-bg-4);
  padding: 6px 8px;
  font-family: var(--font-mono);
  font-size: 10px;
  cursor: pointer;
}
.trace-settings-actions button:hover {
  border-color: var(--c-accent);
}
.trace-settings-note {
  color: var(--c-text-3);
  font-size: 10px;
  line-height: 1.45;
  border-top: 1px solid var(--c-bg-4);
  padding-top: 9px;
  margin-top: 4px;
  text-transform: none;
  letter-spacing: 0;
}


/* Commit 7C — GE time window modes */
.time-window-group .tbtn.active {
  border-color: #fbbf24;
  color: #fbbf24;
  background: rgba(251, 191, 36, 0.08);
}


/* Commit 7C-fix1 — BB preset buttons */
#ts-bb-title {
  color: #fde047;
}
#ts-bb-presets button {
  border-color: rgba(253, 224, 71, 0.35);
}


/* Commit 7F — Events Go to Trigger */
#events-go-trigger {
  border-color: rgba(251, 191, 36, 0.45);
  color: #fbbf24;
}
#events-go-trigger:hover {
  border-color: #fbbf24;
}


/* Commit 8A — RCA JSON Reader */
.rca-hypothesis-card {
  border: 1px solid var(--c-bg-4);
  background: rgba(15, 23, 42, 0.35);
  padding: 10px;
  margin-bottom: 10px;
}
.rca-hypothesis-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.rca-score {
  min-width: 58px;
  text-align: center;
  color: #fbbf24;
  border: 1px solid rgba(251, 191, 36, 0.35);
  padding: 4px 6px;
  font-weight: 800;
}
.rca-summary-text {
  color: var(--c-text-2);
  margin: 6px 0 10px 0;
  line-height: 1.45;
}
.rca-json-evidence,
.rca-mapping-row {
  cursor: pointer;
}
.rca-json-evidence:hover,
.rca-mapping-row:hover {
  background: rgba(84, 212, 232, 0.08);
}
.rca-mapping-row.status-found .tag {
  color: #34d399;
}
.rca-mapping-row.status-uncertain .tag {
  color: #fbbf24;
}
.rca-mapping-row.status-missing .tag {
  color: #f87171;
}


/* Commit 8A-fix1 — RCA toolbar grouping */
.rca-toolbar-group-label {
  color: #fbbf24;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  align-self: center;
  opacity: 0.95;
}
.rca-toolbar-separator {
  width: 1px;
  height: 22px;
  background: var(--c-bg-4);
  display: inline-block;
  margin: 0 4px;
}


/* Commit 8B-fix1 — RCA evidence navigation */
.rca-navigation-status {
  margin-top: 8px;
  padding: 6px 8px;
  border: 1px solid var(--c-bg-4);
  color: var(--c-text-2);
  background: rgba(15, 23, 42, 0.38);
  font-family: var(--font-mono);
  font-size: 10px;
}
.rca-json-evidence.nav-found,
.rca-mapping-row.nav-found {
  outline: 1px solid rgba(52, 211, 153, 0.55);
  background: rgba(52, 211, 153, 0.08);
}
.rca-json-evidence.nav-missing,
.rca-mapping-row.nav-missing {
  outline: 1px solid rgba(248, 113, 113, 0.45);
  background: rgba(248, 113, 113, 0.06);
}


/* Commit 8C — Incident Export MVP */
#rca-export-incident {
  border-color: rgba(84, 212, 232, 0.45);
  color: #54d4e8;
}
#rca-export-incident:hover {
  border-color: #54d4e8;
}


/* Commit 8D-fix1 — RCA report export */
.rca-report-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}
#rca-export-report-json,
#rca-export-report-txt {
  border-color: rgba(84, 212, 232, 0.45);
  color: #54d4e8;
}
#rca-export-report-json:hover,
#rca-export-report-txt:hover {
  border-color: #54d4e8;
}


/* Commit 8E — Composite Trip Required Evidence Checklist */
.rca-required-evidence {
  margin: 8px 0 10px 0;
  border: 1px solid rgba(148,163,184,0.18);
  background: rgba(15,23,42,0.25);
  padding: 8px;
}
.rca-subtitle {
  color: #fbbf24;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 6px;
}
.rca-required-evidence .req-found td:nth-child(2) {
  color: #34d399;
  font-weight: 800;
}
.rca-required-evidence .req-partial td:nth-child(2) {
  color: #fbbf24;
  font-weight: 800;
}
.rca-required-evidence .req-missing td:nth-child(2) {
  color: #f87171;
  font-weight: 800;
}


/* Commit 9A — TRIP logic path */
.rca-logic-path {
  margin: 8px 0 10px 0;
  border: 1px solid rgba(96,165,250,0.22);
  background: rgba(30,64,175,0.12);
  padding: 8px;
}
.rca-logic-path-text {
  color: #bfdbfe;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.45;
}


.rca-grid-mini {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
  margin: 10px 0 12px 0;
}

.rca-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 6px 0 12px 0;
}

.rca-chip {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  max-width: 260px;
  padding: 6px 8px;
  border: 1px solid rgba(180, 190, 205, 0.22);
  border-radius: 8px;
  background: rgba(255,255,255,0.035);
  font-size: 12px;
  cursor: default;
}

.rca-chip small {
  display: block;
  opacity: 0.72;
  font-size: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rca-check-list {
  margin: 6px 0 12px 18px;
  padding: 0;
}

.rca-check-list li {
  margin: 4px 0;
}


.rca-details {
  margin: 8px 0;
  border: 1px solid rgba(180, 190, 205, 0.16);
  border-radius: 8px;
  padding: 6px 8px;
  background: rgba(255,255,255,0.018);
}

.rca-details summary {
  cursor: pointer;
  font-weight: 600;
  padding: 4px 0;
}

.rca-details[open] summary {
  margin-bottom: 6px;
}


.rca-client-report {
  border-left: 4px solid rgba(90, 180, 255, 0.6);
}

.rca-client-hero {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 14px;
}

.rca-client-hero h2 {
  margin: 4px 0;
  font-size: 20px;
  font-weight: 700;
}

.rca-client-label {
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.7;
}

.rca-client-score {
  min-width: 130px;
  text-align: right;
  padding: 10px 12px;
  border-radius: 12px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(180,190,205,0.18);
}

.rca-client-score b {
  display: block;
  font-size: 28px;
  line-height: 1;
}

.rca-client-score span {
  font-size: 11px;
  opacity: 0.7;
}

.rca-client-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(140px, 1fr));
  gap: 10px;
  margin: 12px 0 16px;
}

.rca-client-summary-card {
  padding: 10px;
  border-radius: 10px;
  background: rgba(255,255,255,0.035);
  border: 1px solid rgba(180,190,205,0.14);
}

.rca-client-summary-card span {
  display: block;
  font-size: 11px;
  opacity: 0.7;
  margin-bottom: 4px;
}

.rca-client-summary-card b {
  display: block;
  font-size: 14px;
  margin-bottom: 3px;
}

.rca-client-summary-card small {
  display: block;
  opacity: 0.65;
  line-height: 1.35;
}

.rca-client-section {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(180,190,205,0.12);
}

.rca-client-section h3 {
  margin: 0 0 8px;
  font-size: 14px;
}

.rca-client-section p {
  margin: 0;
  line-height: 1.55;
}

.rca-client-section.two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.rca-client-list {
  margin: 6px 0 0 18px;
  padding: 0;
}

.rca-client-list li {
  margin: 5px 0;
  line-height: 1.45;
}

.client-chip-list .rca-chip {
  max-width: 310px;
}

.debug-details {
  margin-top: 12px;
}

@media (max-width: 1200px) {
  .rca-client-summary-grid,
  .rca-client-section.two-cols {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 800px) {
  .rca-client-hero,
  .rca-client-section.two-cols {
    display: block;
  }
  .rca-client-score {
    text-align: left;
    margin-top: 10px;
  }
  .rca-client-summary-grid {
    grid-template-columns: 1fr;
  }
}


/* Replay graph / event playback */
.replay-graph-wrap { width: 100%; overflow-x: auto; border: 1px solid rgba(150,180,220,.18); border-radius: 12px; background: rgba(0,0,0,.22); }
.replay-graph { width: 100%; min-width: 900px; height: 260px; color: #9fb7cf; }
.replay-graph .axis { stroke: rgba(180,200,220,.35); stroke-width: 1; }
.replay-graph .stem { stroke: rgba(150,180,220,.35); stroke-width: 1; }
.replay-graph .node { fill: #4db5ff; stroke: #dcecff; stroke-width: 1.4; }
.replay-graph .node.cause { fill: #ffb347; stroke: #fff2d2; }
.replay-graph .node.trip { fill: #ff5a77; stroke: #ffe0e6; }
.replay-graph .node.active-node { r: 11; stroke-width: 3; filter: drop-shadow(0 0 8px rgba(255,190,80,.9)); }
.replay-graph .node-label { fill: #dce7f4; font-size: 11px; font-family: monospace; }
.replay-graph .t0-line { stroke: #49d6ff; stroke-width: 2; stroke-dasharray: 5 5; }
.replay-graph .cause-line { stroke: #ffb347; stroke-width: 3; }
.replay-graph .t0-label, .replay-graph .cause-label { fill: #ffcf80; font-size: 12px; font-family: monospace; font-weight: 700; }
.replay-controls { margin-top: 10px; display: flex; gap: 8px; align-items: center; }
.replay-controls button { background: #102033; color: #dbe9f9; border: 1px solid rgba(120,170,220,.45); border-radius: 8px; padding: 6px 10px; cursor: pointer; }
.active-replay-row { background: rgba(255,180,70,.18) !important; outline: 1px solid rgba(255,180,70,.55); }
.json { white-space: pre-wrap; max-height: 360px; overflow: auto; background: rgba(0,0,0,.25); border: 1px solid rgba(190,205,225,.14); border-radius: 10px; padding: 12px; font-size: 12px; }


/* One-page RCA replay trend view */
.onepage-rca {
  display: grid;
  grid-template-columns: 300px minmax(760px, 1fr) 260px;
  gap: 12px;
  min-height: calc(100vh - 96px);
}
.rca-left-events, .rca-right-signals, .rca-main-replay {
  background: rgba(13,18,24,.94);
  border: 1px solid rgba(120,150,190,.22);
  border-radius: 12px;
  overflow: hidden;
}
.rca-left-events { display: flex; flex-direction: column; }
.event-rail-header, .signal-panel-title {
  color: #ffb347;
  font-weight: 800;
  letter-spacing: .08em;
  font-size: 12px;
  padding: 12px 12px 4px;
}
.event-rail-sub {
  color: #8fa8c4;
  font-size: 11px;
  padding: 0 12px 8px;
}
.event-rail-list {
  overflow: auto;
  padding: 8px;
  max-height: calc(100vh - 160px);
}
.event-card {
  border: 1px solid rgba(120,150,190,.16);
  background: rgba(255,255,255,.025);
  border-radius: 10px;
  padding: 8px;
  margin-bottom: 7px;
  font-size: 11px;
}
.event-card.precursor { border-left: 3px solid #5bbcff; }
.event-card.pressure { border-left: 3px solid #f6d365; }
.event-card.cause { border-left: 3px solid #ffb347; background: rgba(255,179,71,.08); }
.event-card.logic { border-left: 3px solid #b48cff; }
.event-card.trip { border-left: 3px solid #ff5a77; }
.event-card.active-replay-row {
  outline: 2px solid rgba(255,179,71,.8);
  background: rgba(255,179,71,.14);
}
.event-top { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.event-idx { color: #9bb3cc; }
.event-dt { margin-left: auto; color: #9bdcff; font-family: monospace; }
.badge { font-size: 10px; border-radius: 4px; padding: 1px 4px; font-weight: 800; }
.badge.c1 { background: #ffb347; color: #111; }
.badge.c2 { background: #4dd6ff; color: #07121a; }
.event-tag { color: #e8f2ff; font-family: monospace; font-weight: 800; }
.event-role { color: #8fa8c4; margin-top: 2px; }
.event-msg { color: #b7c7d9; margin-top: 4px; line-height: 1.35; }

.replay-head {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 14px 16px 8px;
  border-bottom: 1px solid rgba(120,150,190,.18);
}
.replay-head h2 { margin: 0 0 4px; color: #eaf4ff; }
.replay-head p { margin: 0; color: #9bb3cc; }
.head-kpis { display: grid; grid-template-columns: repeat(2, minmax(120px, 1fr)); gap: 8px; }
.head-kpis div {
  border: 1px solid rgba(120,150,190,.18);
  border-radius: 8px;
  padding: 7px 9px;
  background: rgba(255,255,255,.025);
}
.head-kpis span { display: block; font-size: 10px; color: #8fa8c4; text-transform: uppercase; }
.head-kpis b { color: #fff; font-family: monospace; }

.rca-trend-shell { margin: 14px; border: 1px solid rgba(120,150,190,.22); border-radius: 12px; overflow: hidden; background: #090f15; }
.rca-trend-toolbar {
  display: flex; align-items: center; gap: 10px;
  background: #101a25; color: #b8cbe0; height: 34px;
  padding: 0 10px; border-bottom: 1px solid rgba(120,150,190,.24);
  font: 12px monospace;
}
.rca-trend-toolbar .brand { color: #eaf4ff; font-weight: 900; margin-right: auto; }
.rca-trend-toolbar .metric { border-left: 1px solid rgba(120,150,190,.25); padding-left: 10px; }
.rca-trend-toolbar .mode { color: #ffb347; margin-left: 10px; }
.rca-trend-svg { display: block; width: 100%; min-height: 430px; }
.trend-bg { fill: #0a1017; }
.grid { stroke: rgba(160,185,210,.15); stroke-width: 1; }
.grid.faint { stroke: rgba(160,185,210,.08); }
.axis { stroke: rgba(190,210,230,.32); stroke-width: 1; }
.trace { fill: none; stroke-width: 1.8; opacity: .92; }
.trace-0 { stroke: #f1d65a; }
.trace-1 { stroke: #64d2d8; }
.trace-2 { stroke: #9be28f; }
.trace-3 { stroke: #f08ab5; }
.trace-4 { stroke: #c7b3ff; }
.trace-5 { stroke: #ffb89a; }
.trace-6 { stroke: #a6e3ff; }
.trace-label { fill: #dbe9f7; font: 11px monospace; }
.event-tri { stroke: #0b1118; stroke-width: 1; }
.event-tri.precursor { fill: #5bbcff; }
.event-tri.pressure { fill: #f6d365; }
.event-tri.cause { fill: #ffb347; }
.event-tri.logic { fill: #b48cff; }
.event-tri.trip { fill: #ff5a77; }
.event-tri.active-node { filter: drop-shadow(0 0 8px rgba(255,190,80,.95)); stroke: #fff; stroke-width: 2; }
.cursor { stroke-width: 3; }
.cursor.c1 { stroke: #ffb347; }
.cursor.c2 { stroke: #4dd6ff; }
.t0-line { stroke: rgba(255,255,255,.42); stroke-width: 1.5; stroke-dasharray: 6 5; }
.cursor-badge.c1b { fill: #ffb347; }
.cursor-badge.c2b { fill: #4dd6ff; }
.cursor-text { fill: #081018; font: 12px monospace; font-weight: 900; }
.cause-text { fill: #ffcf80; font: 12px monospace; font-weight: 800; }
.trigger-text { fill: #8ee7ff; font: 12px monospace; font-weight: 800; }
.time-label { fill: #8fa8c4; font: 11px monospace; }

.signal-pillbox { padding: 8px 12px 14px; display: flex; flex-wrap: wrap; gap: 6px; }
.signal-pillbox span {
  border: 1px solid rgba(120,170,220,.32);
  background: rgba(70,120,180,.12);
  color: #dcecff;
  border-radius: 999px;
  padding: 4px 8px;
  font: 11px monospace;
}
.availability-list { padding: 4px 12px 12px; }
.availability-row {
  display: flex; justify-content: space-between; gap: 8px;
  border-bottom: 1px solid rgba(120,150,190,.12);
  padding: 6px 0; font-size: 11px;
}
.availability-row b { color: #e8f2ff; font-family: monospace; }
.availability-row span { color: #ffbc7a; }
.debug-json { margin: 8px 14px 14px; }
.debug-json pre { white-space: pre-wrap; max-height: 260px; overflow: auto; background: rgba(0,0,0,.25); border: 1px solid rgba(190,205,225,.14); border-radius: 10px; padding: 12px; font-size: 12px; }
@media (max-width: 1180px) {
  .onepage-rca { grid-template-columns: 260px 1fr; }
  .rca-right-signals { grid-column: 1 / -1; }
}


/* 10L Fleet Trip Case Library */
.fleet-page {
  min-height: 100vh;
  background: #071018;
  color: #d7e4f2;
  padding: 22px;
  font-family: ui-sans-serif, system-ui, Segoe UI, Arial, sans-serif;
}
.fleet-header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: flex-start;
  border: 1px solid rgba(100, 170, 210, .22);
  background: linear-gradient(180deg, rgba(18, 34, 49, .95), rgba(10, 18, 27, .95));
  border-radius: 14px;
  padding: 16px 18px;
  margin-bottom: 16px;
}
.fleet-header h1 { margin: 12px 0 4px; font-size: 26px; letter-spacing: .04em; }
.fleet-header p { margin: 0; color: #91a8bf; }
.fleet-nav { display: flex; gap: 10px; flex-wrap: wrap; }
.fleet-nav a, .fleet-btn {
  color: #071018;
  background: #61d8ef;
  border: 0;
  border-radius: 8px;
  padding: 7px 10px;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}
.fleet-card {
  border: 1px solid rgba(100, 170, 210, .22);
  background: rgba(9, 17, 25, .92);
  border-radius: 14px;
  padding: 16px;
  margin: 14px 0;
  box-shadow: 0 18px 55px rgba(0, 0, 0, .23);
}
.fleet-card h2 { margin: 0 0 10px; color: #f6a629; font-size: 16px; letter-spacing: .08em; text-transform: uppercase; }
.fleet-summary { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 12px; }
.fleet-stat {
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.025);
  border-radius: 12px;
  padding: 12px;
}
.fleet-stat span { display:block; color:#91a8bf; font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.fleet-stat b { display:block; font-size:28px; color:#61d8ef; margin-top:4px; }
.fleet-muted { color:#91a8bf; }
.fleet-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.fleet-table th, .fleet-table td {
  border-bottom: 1px solid rgba(130, 160, 190, .18);
  text-align: left;
  padding: 9px 8px;
  vertical-align: top;
}
.fleet-table th { color: #91a8bf; text-transform: uppercase; font-size: 11px; letter-spacing: .08em; }
.fleet-table small { color:#6f859a; }
.fleet-grid { display:grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 10px; }
.fleet-grid div { border:1px solid rgba(255,255,255,.08); border-radius:10px; padding:10px; background:rgba(255,255,255,.025); }
.fleet-grid b, .fleet-grid span { display:block; }
.fleet-grid span { color:#61d8ef; margin-top:4px; }
#case-viewer pre {
  max-height: 520px;
  overflow: auto;
  background: #050a10;
  color: #b9d7ec;
  padding: 12px;
  border-radius: 10px;
  border: 1px solid rgba(130, 160, 190, .18);
}
.fleet-error { color: #ff9e8d !important; }
@media (max-width: 900px) {
  .fleet-header { flex-direction: column; }
  .fleet-summary, .fleet-grid { grid-template-columns: 1fr; }
  .fleet-table { font-size: 12px; }
}
