.eh-app {
  --eh-bg: #08110f;
  --eh-surface: #0d1916;
  --eh-surface-2: #12211d;
  --eh-line: rgba(184, 232, 216, 0.13);
  --eh-muted: #89a39a;
  --eh-text: #edf8f4;
  --eh-lime: #b9f27c;
  --eh-mint: #53d6a0;
  position: relative;
  display: grid;
  grid-template-columns: 230px minmax(0, 1fr) 300px;
  grid-template-rows: minmax(0, 1fr) 34px;
  height: 100%;
  min-height: 560px;
  overflow: hidden;
  color: var(--eh-text);
  background:
    radial-gradient(circle at 55% -20%, rgba(83, 214, 160, 0.16), transparent 36%),
    linear-gradient(145deg, #07100e, #091411 65%, #07100e);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.eh-app * { box-sizing: border-box; }
.eh-app button, .eh-app input { font: inherit; }
.eh-app button { color: inherit; border: 0; cursor: pointer; }
.eh-rail, .eh-inspector { min-height: 0; background: rgba(9, 20, 17, 0.82); backdrop-filter: blur(22px); }
.eh-rail { grid-row: 1; padding: 16px 12px 12px; border-right: 1px solid var(--eh-line); display: flex; flex-direction: column; gap: 16px; }
.eh-brand { display: flex; align-items: center; gap: 10px; padding: 0 6px; }
.eh-brand-mark { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; color: #08110f; background: linear-gradient(135deg, var(--eh-lime), var(--eh-mint)); font-size: 11px; font-weight: 900; box-shadow: 0 8px 28px rgba(83, 214, 160, .2); }
.eh-brand strong, .eh-brand span { display: block; }
.eh-brand strong { font-size: 13px; letter-spacing: -.01em; }
.eh-brand span { color: var(--eh-muted); font-size: 10px; margin-top: 2px; }
.eh-new-project { min-height: 36px; border-radius: 10px; color: #0b1512 !important; background: var(--eh-lime); font-weight: 750; }
.eh-new-project:hover { filter: brightness(1.06); }
.eh-rail-section { display: flex; flex-direction: column; gap: 4px; min-height: 0; }
.eh-rail-section.eh-grow { flex: 1; overflow-y: auto; }
.eh-section-label, .eh-kicker { color: #6f8f84; font-size: 9px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.eh-section-label { padding: 0 7px 5px; }
.eh-project, .eh-dataset-link { width: 100%; min-height: 34px; padding: 7px 8px; border-radius: 9px; display: flex; align-items: center; gap: 8px; text-align: left; background: transparent; color: #b8cbc4 !important; }
.eh-project:hover, .eh-dataset-link:hover { background: rgba(255,255,255,.04); }
.eh-project.active, .eh-dataset-link.active { color: var(--eh-text) !important; background: rgba(83, 214, 160, .1); box-shadow: inset 0 0 0 1px rgba(83,214,160,.16); }
.eh-project-dot { width: 6px; height: 6px; border-radius: 50%; background: #5f7d73; flex: 0 0 auto; }
.eh-project.active .eh-project-dot { background: var(--eh-lime); box-shadow: 0 0 12px var(--eh-lime); }
.eh-project span:nth-child(2), .eh-dataset-link span { min-width: 0; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.eh-project small { font-size: 8px; color: #69847b; text-transform: uppercase; }
.eh-dataset-link b { min-width: 22px; padding: 2px 5px; color: #8ba69c; background: rgba(255,255,255,.04); border-radius: 99px; font-size: 9px; text-align: center; }
.eh-rail-empty { color: var(--eh-muted); padding: 4px 7px; font-size: 10px; line-height: 1.5; }
.eh-rail-footer { display: grid; gap: 4px; padding-top: 10px; border-top: 1px solid var(--eh-line); }
.eh-rail-footer button { padding: 7px 8px; border-radius: 8px; color: #91aaa1; background: transparent; font-size: 10px; text-align: left; }
.eh-rail-footer button:hover { color: var(--eh-text); background: rgba(255,255,255,.04); }
.eh-main { grid-row: 1; min-width: 0; min-height: 0; padding: 18px 22px 30px; overflow: auto; }
.eh-topbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.eh-topbar h1 { margin: 4px 0 0; font-size: clamp(18px, 2vw, 25px); letter-spacing: -.035em; }
.eh-top-actions { display: flex; align-items: center; gap: 8px; }
.eh-trust { padding: 6px 9px; border: 1px solid rgba(83,214,160,.2); border-radius: 99px; color: #9edfc8; background: rgba(83,214,160,.06); font-size: 9px; }
.eh-trust::first-letter { color: var(--eh-mint); }
.eh-icon-btn { width: 30px; height: 30px; border: 1px solid var(--eh-line) !important; border-radius: 9px; display: grid; place-items: center; background: rgba(255,255,255,.03); }
.eh-command { position: relative; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; margin: 17px 0 18px; padding: 13px; border: 1px solid rgba(185,242,124,.25); border-radius: 16px; background: linear-gradient(110deg, rgba(185,242,124,.08), rgba(83,214,160,.035)); box-shadow: 0 18px 70px rgba(0,0,0,.2), inset 0 1px rgba(255,255,255,.035); overflow: hidden; }
.eh-command::after { content: ""; position: absolute; inset: auto 12% -25px; height: 25px; background: var(--eh-mint); filter: blur(35px); opacity: .18; }
.eh-command-orbit { width: 39px; height: 39px; border-radius: 12px; display: grid; place-items: center; color: var(--eh-lime); background: #10231d; border: 1px solid rgba(185,242,124,.18); font-size: 22px; }
.eh-command-body { min-width: 0; }
.eh-command-body label { display: block; color: #b4cec5; font-size: 9px; font-weight: 700; }
.eh-command-input { width: 100%; padding: 3px 0; border: 0; outline: 0; color: var(--eh-text); background: transparent; font-size: 13px; }
.eh-command-input::placeholder { color: #607970; }
.eh-command-hints { display: flex; gap: 6px; }
.eh-command-hints span { padding: 2px 6px; border-radius: 99px; color: #76968b; background: rgba(255,255,255,.035); font-size: 8px; }
.eh-run { position: relative; z-index: 1; min-height: 37px; padding: 0 15px; border-radius: 10px; color: #0a130f !important; background: var(--eh-lime); font-size: 10px; font-weight: 800; }
.eh-run:disabled { cursor: wait; opacity: .65; }
.eh-error { margin-bottom: 16px; padding: 12px 14px; border: 1px solid rgba(255,125,157,.25); border-radius: 12px; background: rgba(255,125,157,.07); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; }
.eh-error div { color: #ff9db5; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .1em; }
.eh-error p { margin: 0; color: #cbb1b7; font-size: 10px; }
.eh-error button { padding: 6px 9px; border-radius: 8px; background: rgba(255,255,255,.06); font-size: 9px; }
.eh-overview { display: grid; gap: 18px; }
.eh-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.eh-metric { padding: 12px; border: 1px solid var(--eh-line); border-radius: 12px; background: rgba(13,25,22,.72); }
.eh-metric > span, .eh-metric small { display: block; color: var(--eh-muted); font-size: 9px; }
.eh-metric strong { display: block; margin: 5px 0 2px; font-size: 21px; line-height: 1; letter-spacing: -.04em; }
.eh-section-head, .eh-panel-head, .eh-dataset-head { display: flex; justify-content: space-between; align-items: end; gap: 12px; }
.eh-section-head h2, .eh-panel-head h2, .eh-dataset-head h2 { margin: 3px 0 0; font-size: 13px; letter-spacing: -.015em; }
.eh-muted, .eh-panel-head span { color: var(--eh-muted); font-size: 9px; }
.eh-source-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-top: 9px; }
.eh-source-card { position: relative; min-width: 0; padding: 11px; border: 1px solid var(--eh-line); border-radius: 12px; display: grid; grid-template-columns: auto 1fr auto; gap: 8px; background: linear-gradient(145deg, color-mix(in srgb, var(--source-accent) 6%, #0d1916), #0d1916 58%); overflow: hidden; }
.eh-source-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 2px; background: var(--source-accent); opacity: .65; }
.eh-source-mark { width: 28px; height: 28px; border-radius: 9px; display: grid; place-items: center; color: var(--source-accent); background: color-mix(in srgb, var(--source-accent) 10%, transparent); font-size: 9px; font-weight: 900; }
.eh-source-info { min-width: 0; }
.eh-source-info strong, .eh-source-info span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.eh-source-info strong { font-size: 10px; }
.eh-source-info span { color: var(--eh-muted); font-size: 8px; margin-top: 2px; }
.eh-source-status { align-self: start; color: var(--source-accent); font-size: 7px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.eh-source-card p { grid-column: 1 / -1; min-height: 30px; margin: 2px 0; color: #819c92; font-size: 8px; line-height: 1.45; }
.eh-source-card button { grid-column: 1 / -1; padding: 5px; border-radius: 7px; color: #a7bdb5; background: rgba(255,255,255,.035); font-size: 8px; }
.eh-two-column { display: grid; grid-template-columns: 1.2fr .8fr; gap: 10px; }
.eh-panel { min-height: 190px; padding: 13px; border: 1px solid var(--eh-line); border-radius: 13px; background: rgba(13,25,22,.72); }
.eh-live-dot { color: var(--eh-mint) !important; }
.eh-live-dot::before { content: ""; display: inline-block; width: 5px; height: 5px; margin-right: 4px; border-radius: 50%; background: var(--eh-mint); box-shadow: 0 0 10px var(--eh-mint); }
.eh-recent-list { display: grid; margin-top: 7px; }
.eh-recent-list button { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; padding: 8px 3px; text-align: left; border-bottom: 1px solid rgba(184,232,216,.07); background: transparent; }
.eh-file-glyph { width: 25px; height: 25px; border-radius: 8px; display: grid; place-items: center; color: var(--eh-mint); background: rgba(83,214,160,.08); }
.eh-recent-list strong, .eh-recent-list small { display: block; }
.eh-recent-list strong { max-width: 300px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.eh-recent-list small { margin-top: 2px; color: var(--eh-muted); font-size: 8px; }
.eh-recent-list b { color: #9fb5ad; font-size: 9px; }
.eh-empty { min-height: 145px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--eh-muted); text-align: center; }
.eh-empty.compact { min-height: 120px; }
.eh-empty > span { color: var(--eh-mint); font-size: 24px; }
.eh-empty strong { margin-top: 7px; color: #abc2b9; font-size: 10px; }
.eh-empty p { max-width: 320px; margin: 5px 0 0; font-size: 9px; line-height: 1.55; }
.eh-pulse-ring { width: 46px; height: 46px; border: 1px solid rgba(83,214,160,.2); border-radius: 50%; display: grid; place-items: center; }
.eh-pulse-ring span { width: 18px; height: 18px; border: 1px solid var(--eh-mint); border-radius: 50%; box-shadow: 0 0 25px rgba(83,214,160,.22); }
.eh-run-status { display: flex; align-items: center; gap: 7px; margin: 12px 0; text-transform: capitalize; font-size: 11px; }
.eh-spinner-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--eh-lime); box-shadow: 0 0 12px var(--eh-lime); animation: ehPulse 1s infinite alternate; }
@keyframes ehPulse { to { opacity: .35; transform: scale(.75); } }
.eh-step-list { display: grid; gap: 5px; }
.eh-step { display: grid; grid-template-columns: 16px 70px 1fr; align-items: center; gap: 5px; color: #9ab1a8; font-size: 9px; text-transform: capitalize; }
.eh-step small { color: #617a71; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.eh-step-state { width: 14px; height: 14px; border: 1px solid #345147; border-radius: 50%; display: grid; place-items: center; font-size: 8px; }
.eh-step-state.succeeded { color: #08110f; background: var(--eh-mint); border-color: var(--eh-mint); }
.eh-step-state.running { border-color: var(--eh-lime); box-shadow: 0 0 8px rgba(185,242,124,.2); }
.eh-inspector { grid-row: 1; border-left: 1px solid var(--eh-line); padding: 17px 14px; overflow: auto; }
.eh-inspector-head { display: flex; justify-content: space-between; align-items: center; }
.eh-inspector-head h2 { margin: 4px 0 0; font-size: 14px; }
.eh-inspector-empty { min-height: calc(100% - 50px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.eh-provenance-seal { width: 52px; height: 52px; border: 1px solid rgba(185,242,124,.25); border-radius: 50%; display: grid; place-items: center; color: var(--eh-lime); background: rgba(185,242,124,.05); box-shadow: 0 0 40px rgba(83,214,160,.08); }
.eh-inspector-empty h3 { margin: 13px 0 0; font-size: 13px; }
.eh-inspector-empty p { margin: 7px 0 18px; color: var(--eh-muted); font-size: 9px; line-height: 1.6; }
.eh-inspector-empty dl { width: 100%; margin: 0; }
.eh-inspector-empty dl div { display: flex; justify-content: space-between; padding: 7px 0; border-top: 1px solid var(--eh-line); font-size: 9px; }
.eh-inspector-empty dt { color: var(--eh-muted); }
.eh-inspector-empty dd { margin: 0; color: #bbd0c8; }
.eh-record-inspector { margin-top: 16px; }
.eh-record-title span { color: var(--eh-mint); font-size: 8px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.eh-record-title h3 { margin: 6px 0 14px; font-size: 13px; line-height: 1.35; }
.eh-evidence-list { display: grid; gap: 7px; }
.eh-evidence-list article { padding: 9px; border: 1px solid var(--eh-line); border-radius: 10px; background: rgba(255,255,255,.025); }
.eh-evidence-list header { display: flex; justify-content: space-between; gap: 6px; }
.eh-evidence-list header strong { font-size: 9px; }
.eh-evidence-list header span { color: var(--eh-lime); font-size: 8px; }
.eh-evidence-list p { margin: 7px 0; color: #a2b8b0; font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.eh-evidence-list footer code { color: #68847a; font-size: 7px; overflow-wrap: anywhere; }
.eh-activity { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: 230px 1fr auto; align-items: center; border-top: 1px solid var(--eh-line); background: #06100d; color: #789087; font-size: 8px; }
.eh-activity-label { padding-left: 17px; color: #9eb4ac; }
.eh-activity-light { display: inline-block; width: 5px; height: 5px; margin-right: 6px; border-radius: 50%; background: var(--eh-mint); box-shadow: 0 0 8px var(--eh-mint); }
.eh-activity-text { padding-left: 12px; }
.eh-activity-stats { display: flex; gap: 14px; padding-right: 16px; }
.eh-dataset { min-width: 0; }
.eh-dataset-head { align-items: center; padding: 5px 0 10px; }
.eh-back { padding: 0 0 5px; color: var(--eh-muted) !important; background: transparent; font-size: 9px; }
.eh-dataset-head h2 { font-size: 18px; }
.eh-dataset-head p { margin: 4px 0 0; color: var(--eh-muted); font-size: 9px; }
.eh-dataset-actions { display: flex; gap: 5px; }
.eh-dataset-actions button { padding: 7px 10px; border: 1px solid var(--eh-line); border-radius: 8px; background: rgba(255,255,255,.035); font-size: 9px; }
.eh-dataset-actions button.primary { color: #08110f; background: var(--eh-lime); border-color: var(--eh-lime); font-weight: 800; }
.eh-view-tabs { display: flex; gap: 4px; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid var(--eh-line); }
.eh-view-tabs button { padding: 6px 9px; border-radius: 7px; color: #819990; background: transparent; font-size: 9px; text-transform: capitalize; }
.eh-view-tabs button.active { color: var(--eh-text); background: rgba(83,214,160,.09); }
.eh-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.eh-evidence-card { padding: 13px; border: 1px solid var(--eh-line) !important; border-radius: 13px; text-align: left; background: linear-gradient(145deg, rgba(18,33,29,.95), rgba(11,23,19,.95)); transition: border-color .15s, transform .15s; }
.eh-evidence-card:hover { border-color: rgba(83,214,160,.32) !important; transform: translateY(-1px); }
.eh-evidence-top { display: flex; justify-content: space-between; gap: 8px; }
.eh-evidence-id { color: var(--eh-mint); font-size: 8px; font-weight: 800; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.eh-confidence { padding: 2px 5px; border-radius: 99px; color: #a6c3b8; background: rgba(255,255,255,.04); font-size: 7px; text-transform: capitalize; }
.eh-evidence-card h3 { margin: 8px 0 5px; font-size: 12px; line-height: 1.35; }
.eh-evidence-card > p { height: 33px; margin: 0; overflow: hidden; color: #87a097; font-size: 8px; line-height: 1.45; }
.eh-evidence-fields { display: grid; grid-template-columns: repeat(2, 1fr); gap: 5px; margin-top: 10px; }
.eh-evidence-fields span { min-width: 0; color: #b2c6be; font-size: 8px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.eh-evidence-fields small { display: block; margin-bottom: 2px; color: #5f796f; font-size: 7px; text-transform: uppercase; }
.eh-evidence-card footer { display: flex; justify-content: space-between; margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--eh-line); color: #78948a; font-size: 8px; }
.eh-evidence-card footer b { color: var(--eh-lime); }
.eh-table-wrap { overflow: auto; border: 1px solid var(--eh-line); border-radius: 12px; }
.eh-table { width: 100%; border-collapse: collapse; font-size: 8px; }
.eh-table th { position: sticky; top: 0; z-index: 1; padding: 8px; color: #78948a; background: #0d1916; text-align: left; text-transform: uppercase; letter-spacing: .08em; }
.eh-table td { max-width: 220px; padding: 8px; border-top: 1px solid rgba(184,232,216,.07); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #a7bdb5; }
.eh-table tr { cursor: pointer; }
.eh-table tbody tr:hover { background: rgba(83,214,160,.04); }
.eh-source-pill { color: var(--eh-mint); }
.eh-graph-view { position: relative; min-height: 420px; border: 1px solid var(--eh-line); border-radius: 14px; overflow: hidden; background: radial-gradient(circle at center, rgba(83,214,160,.08), transparent 45%), repeating-radial-gradient(circle at center, transparent 0 54px, rgba(184,232,216,.035) 55px 56px); }
.eh-graph-core { position: absolute; left: 50%; top: 50%; width: 110px; height: 110px; transform: translate(-50%,-50%); border: 1px solid rgba(185,242,124,.28); border-radius: 50%; display: grid; place-content: center; text-align: center; background: #102019; box-shadow: 0 0 45px rgba(83,214,160,.12); }
.eh-graph-core strong { max-width: 85px; font-size: 10px; }
.eh-graph-core small { color: var(--eh-muted); font-size: 7px; }
.eh-graph-node { position: absolute; left: var(--x); top: var(--y); width: 30px; height: 30px; transform: translate(-50%,-50%); border: 1px solid rgba(140,200,255,.3) !important; border-radius: 50%; color: #a8d9ff !important; background: #102027; font-size: 7px; animation: ehNodeIn .3s both; animation-delay: var(--delay); }
@keyframes ehNodeIn { from { opacity: 0; transform: translate(-50%,-50%) scale(.5); } }
.eh-graph-legend { position: absolute; left: 12px; bottom: 10px; color: var(--eh-muted); font-size: 8px; }
.eh-timeline { position: relative; display: grid; padding-left: 72px; }
.eh-timeline::before { content: ""; position: absolute; left: 62px; top: 0; bottom: 0; width: 1px; background: var(--eh-line); }
.eh-timeline button { position: relative; display: grid; grid-template-columns: 70px 15px 1fr; align-items: start; margin-left: -72px; padding: 9px 0; background: transparent; text-align: left; }
.eh-timeline time { color: var(--eh-muted); font-size: 8px; text-align: right; }
.eh-timeline-dot { width: 7px; height: 7px; margin: 1px auto; border-radius: 50%; background: var(--eh-mint); box-shadow: 0 0 8px rgba(83,214,160,.4); }
.eh-timeline strong, .eh-timeline small { display: block; }
.eh-timeline strong { font-size: 9px; }
.eh-timeline small { margin-top: 3px; color: var(--eh-muted); font-size: 8px; }
@media (max-width: 1050px) {
  .eh-app { grid-template-columns: 190px minmax(0,1fr); }
  .eh-inspector { position: absolute; z-index: 10; right: 0; top: 0; bottom: 34px; width: 300px; box-shadow: -20px 0 50px rgba(0,0,0,.35); }
  .eh-source-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
  .eh-app { grid-template-columns: 1fr; }
  .eh-rail { display: none; }
  .eh-main { padding: 14px; }
  .eh-inspector { display: none; }
  .eh-metrics { grid-template-columns: repeat(2, 1fr); }
  .eh-source-grid { grid-template-columns: repeat(2, 1fr); }
  .eh-two-column, .eh-evidence-grid { grid-template-columns: 1fr; }
  .eh-command { grid-template-columns: auto 1fr; }
  .eh-run { grid-column: 1 / -1; }
  .eh-activity { grid-template-columns: 1fr auto; }
  .eh-activity-label { display: none; }
  .eh-activity-text { padding-left: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .eh-app *, .eh-app *::before, .eh-app *::after { animation: none !important; transition: none !important; }
}


/* ── Expanded harvester: search, live trail, assistant, entities ───────────── */

/* Global search sits in the topbar so any record is reachable from anywhere. */
.eh-global-search { width: 190px; padding: 6px 10px; border: 1px solid var(--eh-line); border-radius: 8px;
  background: var(--eh-surface-2); color: var(--eh-text); font-size: 10px; }
.eh-global-search::placeholder { color: var(--eh-muted); }
.eh-global-search:focus { outline: none; border-color: var(--eh-mint); box-shadow: 0 0 0 2px rgba(83, 214, 160, .15); }

.eh-search-view { display: grid; gap: 12px; }
.eh-search-list { display: grid; gap: 8px; }
.eh-search-hit { display: grid; gap: 4px; padding: 11px 13px; border: 1px solid var(--eh-line); border-radius: 11px;
  background: var(--eh-surface); text-align: left; cursor: pointer; }
.eh-search-hit:hover { border-color: var(--eh-mint); background: var(--eh-surface-2); }
.eh-search-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.eh-search-top small { color: var(--eh-muted); font-size: 8px; }
.eh-search-hit strong { font-size: 11px; color: var(--eh-text); }
.eh-search-hit p { margin: 0; color: var(--eh-muted); font-size: 9px; line-height: 1.5; }

/* The search plan: what the assistant decided to ask each database. */
.eh-plan { display: grid; gap: 5px; margin: 8px 0 4px; padding: 9px 10px;
  border: 1px solid var(--eh-line); border-radius: 10px; background: rgba(83, 214, 160, .04); }
.eh-plan-head { display: grid; gap: 2px; font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: var(--eh-muted); }
.eh-plan-head small { text-transform: none; letter-spacing: 0; font-size: 9px; color: var(--eh-text); opacity: .8; }
.eh-plan-row { display: grid; grid-template-columns: 92px minmax(0, 1fr); gap: 6px; align-items: baseline;
  padding: 4px 0; border-top: 1px solid var(--eh-line); }
.eh-plan-source { color: var(--source-accent, var(--eh-mint)); font-size: 9px; font-weight: 600; }
.eh-plan-query { display: block; overflow: hidden; color: var(--eh-text); font-size: 8px; line-height: 1.45;
  text-overflow: ellipsis; white-space: nowrap; opacity: .85; }
.eh-plan-row small { grid-column: 2; color: var(--eh-muted); font-size: 8px; }

/* Live run trail — the fine-grained view of what the harvest is doing now. */
.eh-run-interpretation { display: block; margin-top: 3px; color: var(--eh-muted); font-size: 9px; font-weight: 400; line-height: 1.5; }
.eh-trail { margin-top: 9px; display: grid; gap: 3px; max-height: 190px; overflow-y: auto; }
.eh-trail-head { font-size: 8px; letter-spacing: .1em; text-transform: uppercase; color: var(--eh-muted); }
.eh-trail-row { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 7px; align-items: baseline;
  padding: 3px 0; border-top: 1px solid var(--eh-line); font-size: 9px; line-height: 1.45; }
.eh-trail-row time { color: var(--eh-mint); font-variant-numeric: tabular-nums; font-size: 8px; }
.eh-trail-row span { color: var(--eh-text); opacity: .85; }
.eh-trail-row.warn span { color: #ffb86c; }
.eh-step-state.failed { border-color: #ff7d9d; color: #ff7d9d; }
.eh-step-state.skipped { opacity: .4; }

/* Assistant panel. */
.eh-ai { display: grid; gap: 11px; }
.eh-ai-guarantee { display: grid; grid-template-columns: 16px minmax(0, 1fr); gap: 8px; padding: 9px 11px;
  border: 1px solid rgba(185, 242, 124, .22); border-radius: 10px; background: rgba(185, 242, 124, .05); }
.eh-ai-guarantee span { color: var(--eh-lime); font-size: 11px; }
.eh-ai-guarantee p { margin: 0; color: var(--eh-text); font-size: 9px; line-height: 1.55; opacity: .85; }
.eh-ai-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.eh-ai-actions button { padding: 6px 11px; border: 1px solid var(--eh-line); border-radius: 8px;
  background: var(--eh-surface-2); color: var(--eh-text); font-size: 9px; cursor: pointer; }
.eh-ai-actions button:hover:not(:disabled) { border-color: var(--eh-mint); }
.eh-ai-actions button:disabled { opacity: .45; cursor: default; }
.eh-ai-actions button.busy { border-color: var(--eh-mint); color: var(--eh-mint); }
.eh-ai-ask { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.eh-ai-input { padding: 8px 11px; border: 1px solid var(--eh-line); border-radius: 9px;
  background: var(--eh-surface-2); color: var(--eh-text); font-size: 10px; }
.eh-ai-input:focus { outline: none; border-color: var(--eh-mint); }
.eh-ai-ask .primary { padding: 8px 15px; border: 0; border-radius: 9px; background: var(--eh-lime);
  color: #06231a; font-size: 10px; font-weight: 600; cursor: pointer; }
.eh-ai-error { margin: 0; color: #ff9f6e; font-size: 9px; }
.eh-ai-block { border: 1px solid var(--eh-line); border-radius: 11px; background: var(--eh-surface); overflow: hidden; }
.eh-ai-block > header { display: flex; justify-content: space-between; align-items: center; gap: 8px;
  padding: 8px 12px; border-bottom: 1px solid var(--eh-line); background: var(--eh-surface-2);
  font-size: 9px; letter-spacing: .08em; text-transform: uppercase; color: var(--eh-text); }
.eh-ai-block > header small { text-transform: none; letter-spacing: 0; color: var(--eh-muted); font-size: 8px; }
.eh-ai-text { padding: 11px 13px; color: var(--eh-text); font-size: 10px; line-height: 1.65; white-space: pre-wrap; opacity: .92; }
.eh-ai-usage { margin: 0; color: var(--eh-muted); font-size: 8px; text-align: right; font-variant-numeric: tabular-nums; }

.eh-rank-list, .eh-screen-list, .eh-fulltext-list { display: grid; }
.eh-rank-row { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 9px; align-items: center;
  padding: 7px 12px; border-top: 1px solid var(--eh-line); }
.eh-rank-row:first-child { border-top: 0; }
.eh-rank-row b { position: relative; padding: 3px 0; border-radius: 5px; background: var(--eh-surface-2);
  color: var(--eh-lime); font-size: 10px; text-align: center; font-variant-numeric: tabular-nums; overflow: hidden; }
.eh-rank-row b::before { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--score, 0%);
  background: rgba(185, 242, 124, .18); }
.eh-rank-row span { display: grid; gap: 2px; }
.eh-rank-row code { color: var(--eh-mint); font-size: 9px; }
.eh-rank-row small { color: var(--eh-muted); font-size: 8px; }

.eh-screen-row { display: grid; grid-template-columns: 64px 118px minmax(0, 1fr); gap: 8px; align-items: baseline;
  padding: 6px 12px; border-top: 1px solid var(--eh-line); }
.eh-screen-row:first-child { border-top: 0; }
.eh-screen-tag { padding: 2px 6px; border-radius: 20px; font-size: 7px; letter-spacing: .08em;
  text-transform: uppercase; text-align: center; }
.eh-screen-row.include .eh-screen-tag { background: rgba(83, 214, 160, .16); color: var(--eh-mint); }
.eh-screen-row.exclude .eh-screen-tag { background: rgba(255, 125, 157, .14); color: #ff7d9d; }
.eh-screen-row.uncertain .eh-screen-tag { background: rgba(255, 184, 108, .14); color: #ffb86c; }
.eh-screen-row code { color: var(--eh-text); font-size: 8px; opacity: .8; }
.eh-screen-row small { color: var(--eh-muted); font-size: 8px; }

.eh-fulltext-row { display: grid; grid-template-columns: 96px minmax(0, 1fr); gap: 9px; align-items: baseline;
  padding: 6px 12px; border-top: 1px solid var(--eh-line); }
.eh-fulltext-row:first-child { border-top: 0; }
.eh-fulltext-row code { color: var(--eh-mint); font-size: 9px; }
.eh-fulltext-row small { color: var(--eh-muted); font-size: 8px; }
.eh-prisma { margin: 0; padding: 12px 14px; color: var(--eh-text); font-size: 9px; line-height: 1.6;
  white-space: pre; overflow-x: auto; opacity: .9; }

/* Entity cloud — the cross-source link layer made visible. */
.eh-entity-cloud { display: flex; flex-wrap: wrap; gap: 5px; padding: 11px 12px; }
.eh-entity { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 20px;
  border: 1px solid var(--eh-line); background: var(--eh-surface-2); color: var(--eh-text);
  font-size: 9px; cursor: pointer; }
.eh-entity:hover { border-color: var(--eh-mint); }
.eh-entity b { color: var(--eh-muted); font-size: 8px; font-weight: 500; }
.eh-entity.gene { border-color: rgba(185, 242, 124, .3); color: var(--eh-lime); }
.eh-entity.protein { border-color: rgba(255, 125, 157, .3); color: #ff7d9d; }
.eh-entity.disease { border-color: rgba(196, 167, 255, .3); color: #c4a7ff; }
.eh-entity.compound { border-color: rgba(242, 165, 216, .3); color: #f2a5d8; }
.eh-entity.organism { border-color: rgba(126, 224, 210, .3); color: #7ee0d2; }

/* 13 sources need to wrap rather than stretch. */
.eh-source-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }

@media (max-width: 1180px) {
  .eh-global-search { width: 130px; }
  .eh-screen-row { grid-template-columns: 60px minmax(0, 1fr); }
  .eh-screen-row small { grid-column: 1 / -1; }
}
