/* viz.css — styles for the React-wrapped Injury Map (and the retired Evidence
   Graph, kept as dead code). Loaded globally by templates/spa.html, so this
   file's :root is on EVERY SPA page and must never fight static/css/tokens.css.

   It used to: the block below was copied wholesale from odyssey.css and
   re-declared --ink, --line, --muted and --frost with the OPPOSITE meaning
   (--ink meant "text", tokens.css means "ground"). Whichever file loaded last
   won, which is how the injury map's empty state ended up rendering near-white
   text on a white card. Those names now belong to tokens.css alone; what is
   left here are the odyssey-era names tokens.css does NOT define, aliased onto
   the palette so any surviving rule follows the active theme instead of
   pinning a dark neon value. Do not reintroduce a color literal here. */
:root{
  /* Type + geometry — no equivalent in tokens.css */
  --display:'Space Grotesk','Inter',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:'Inter',system-ui,-apple-system,sans-serif;
  --serif:var(--display);
  --r-sm:8px;--r-md:14px;--r-lg:20px;--r-xl:28px;

  /* Legacy color names -> the active palette */
  --depth-2:var(--raised);--volt-soft:var(--cobalt-bright);--slate:var(--muted);
  --glass:rgb(var(--ov-rgb) / .045);--glass-2:rgb(var(--ov-rgb) / .07);
  --hairline:var(--line);--hairline-2:var(--line-strong);
  --ivory:var(--ink);--parchment:var(--deep);--navy:var(--cobalt);
  --navy-deep:var(--cobalt-deep);--brass:var(--gold);--brass-light:var(--gold-bright);
  --danger:var(--urgent);

  /* Retired neon effects, neutralised rather than deleted — the instrument
     register has no gradients and no glows. */
  --grad-volt:none;--grad-glint:none;--glow-volt:none;
  --shadow-1:none;--shadow-2:none;--shadow-3:none;
}
.casehead{margin-bottom:18px;}
.casehead h1{margin:0 0 8px;}
.meta{display:flex;gap:30px;font-size:14px;color:var(--muted);align-items:center;}
.meta b{color:var(--frost);font-weight:600;margin-left:6px;}
.tabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:24px;}
.tabs a{padding:12px 2px;font-size:15px;color:var(--muted);border-bottom:2px solid transparent;}
.tabs a.on{color:var(--navy);border-bottom-color:var(--brass);font-weight:600;}
.drop{border:2px dashed var(--line);border-radius:10px;padding:34px;text-align:center;background:#FBF9F4;cursor:pointer;transition:border-color .15s,background .15s;display:block;}
.drop:hover,.drop.hot{border-color:var(--brass);background:#F7F0E2;}
.drop .big{font-family:var(--serif);font-size:20px;color:var(--navy);margin-bottom:6px;}
.drop .sm{font-size:13px;color:var(--muted);}
.doc-row{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid var(--line);border-radius:8px;margin-top:10px;background:#fff;}
.doc-row .name{font-weight:500;}
.doc-row .sub{font-size:12px;color:var(--muted);margin-top:2px;}
.pill{font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:3px 10px;border-radius:99px;border:1px solid var(--line);color:var(--muted);}
.pill.uploaded{color:var(--navy);border-color:#B9C3D2;background:#EEF1F6;}
.pill.processing{color:#7A5A1E;border-color:#E6C089;background:#FDF4E3;}
.pill.processed{color:#2E5E3A;border-color:#A8C9B0;background:#EDF5EF;}
.pill.failed{color:#8B2B22;border-color:#E3B5AE;background:#FBF0EE;}
.pill.injury{color:#8B2B22;border-color:#E3B5AE;background:#FBF0EE;}
.pill.visit{color:#1E4E79;border-color:#B8CDDE;background:#EEF4F8;}
.pill.imaging{color:#2E5E3A;border-color:#A8C9B0;background:#EDF5EF;}
.pill.treatment{color:#0F4C81;border-color:#AFC7E2;background:#EEF4FB;}
.pill.diagnosis{color:#5F5A52;border-color:#CFC8BD;background:#F5F2ED;}
.pill.medication{color:#8A6A2C;border-color:#DCC99E;background:#FBF6EA;}
.pill.redflag{color:#B45309;border-color:#E6C089;background:#FDF4E3;}
.pill.preexisting{color:#6B21A8;border-color:#D2B5E6;background:#F6EFFB;}
.pill.surgery{color:#1E3A5F;border-color:#A9C0DA;background:#EAF1F8;}
.pill.injections{color:#9A4D14;border-color:#E7BE9D;background:#FFF1E7;}
.pill.referral{color:#6E5A24;border-color:#D6C78D;background:#FAF6E4;}
.pill.firm_referral{color:#7C3A00;border-color:#E0B895;background:#FBF0E6;}
.pill.other{color:#4B5563;border-color:#CBD0D7;background:#F4F6F8;}
.placeholder{padding:48px;text-align:center;color:var(--muted);}
.placeholder .pf{font-family:var(--serif);font-size:24px;color:var(--navy);margin-bottom:10px;}
.chatwrap{display:flex;flex-direction:column;height:460px;border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden;margin-top:16px;}
.chatlog{flex:1;padding:20px;overflow:auto;color:var(--muted);}
.chatbar{display:flex;gap:10px;padding:14px;border-top:1px solid var(--line);background:#FBF9F4;}
.chatbar input{flex:1;}
.thread-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px;}
.thread-panel{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden;}
.thread-head{padding:14px 16px;border-bottom:1px solid var(--line);background:#FBF9F4;}
.thread-log{padding:16px;max-height:360px;overflow:auto;}
.thread-note{font-size:12px;color:var(--muted);margin-top:4px;}
.tl-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:14px;flex-wrap:wrap;}
.timeline-visual{border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#fff 0%,#FBF9F4 100%);padding:18px;margin:16px 0 22px;}
.timeline-legend{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 14px;}
.timeline-legend .item{display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:12px;color:var(--muted);}
.timeline-board-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;padding:16px;}
.timeline-board{display:flex;gap:16px;align-items:flex-start;min-width:860px;}
.timeline-day{width:260px;flex:0 0 260px;}
.timeline-day-head{position:sticky;top:0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#FBF9F4;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);margin-bottom:12px;}
.timeline-day-stack{display:flex;flex-direction:column;gap:10px;}
.timeline-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px 12px 12px 14px;box-shadow:0 4px 10px rgba(22,36,59,.04);cursor:pointer;transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease;}
.timeline-card:hover{transform:translateY(-1px);border-color:var(--brass);box-shadow:0 8px 18px rgba(22,36,59,.08);}
.timeline-card-top{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.timeline-marker{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;}
.timeline-marker svg{width:18px;height:18px;display:block;}
.timeline-card-title{font-size:11px;text-transform:uppercase;letter-spacing:.05em;font-weight:700;}
.timeline-card-summary{font-size:13px;line-height:1.45;color:var(--ink);}
.timeline-card-meta{font-size:11px;color:var(--muted);margin-top:8px;}
.timeline-arrow{flex:0 0 34px;display:flex;align-items:flex-start;justify-content:center;padding-top:28px;color:#C7B89E;font-size:26px;}
.timeline-undated{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
.timeline-undated-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px;}
.timeline-chip{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:220px;}
.timeline-chip .k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
.timeline-chip .v{font-size:13px;color:var(--ink);margin-top:4px;}
.timeline-row-focus td{background:#F7F0E2 !important;}
.bill-cards{display:flex;gap:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:16px 0 24px;background:#fff;}
.bill-card{flex:1;padding:18px 22px;border-right:1px solid var(--line);}
.bill-card:last-child{border-right:0;}
.bill-card .lbl{font-size:12px;color:var(--muted);margin-bottom:6px;}
.bill-card .val{font-family:var(--serif);font-size:22px;color:var(--navy);font-weight:600;}
.bill-card.primary .val{color:var(--brass);}
.bill-grp-row{cursor:pointer;}
.bill-grp-row:hover{background:#FBF9F4;}
.bill-grp-row td{font-weight:600;}
.bill-line-row td{font-size:13px;color:var(--muted);background:#FBF9F4;}
.exp{display:inline-block;width:18px;height:18px;line-height:16px;text-align:center;border:1px solid var(--line);border-radius:4px;font-size:12px;color:var(--muted);}
.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;}
.contextbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:#FBF9F4;}
.contextbar .copy{font-size:13px;color:var(--muted);}
.panel.panel-graph{padding:24px 26px 28px;}
.gx-shell{display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-areas:"side main" "side inspect";gap:18px;margin-top:18px;align-items:start;}
.gx-panel{border:1px solid var(--hairline);border-radius:18px;background:rgba(255,255,255,.04);padding:16px;}
.gx-sidebar{grid-area:side;position:sticky;top:92px;}
.gx-label{display:block;margin-bottom:10px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ion);}
.gx-modes,.gx-filters,.gx-insights{display:flex;flex-direction:column;gap:8px;}
.gx-mode,.gx-filter,.gx-insight{width:100%;text-align:left;border:1px solid var(--hairline);border-radius:12px;background:rgba(255,255,255,.03);color:var(--frost);padding:11px 12px;cursor:pointer;font:inherit;transition:border-color .12s,background .12s,transform .12s;}
.gx-mode:hover,.gx-filter:hover,.gx-insight:hover{border-color:rgba(61,139,255,.44);}
.gx-mode.on,.gx-filter.on,.gx-insight.on{border-color:var(--volt);background:rgba(61,139,255,.12);}
.gx-mode .sm,.gx-insight .sm{display:block;margin-top:5px;font-size:12px;color:var(--slate);line-height:1.45;}
.gx-board{grid-area:main;position:relative;overflow:hidden;padding:18px;}
.gx-board-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;}
.gx-board-copy{max-width:620px;font-size:13px;line-height:1.6;color:var(--slate);}
.gx-stage{position:relative;height:780px;border:1px solid var(--hairline);border-radius:22px;background:
radial-gradient(circle at 50% 16%, rgba(234,241,255,.08), transparent 26%),
linear-gradient(180deg, rgba(8,13,23,.96), rgba(7,12,22,.98));overflow:hidden;}
.gx-grid{position:absolute;inset:0;opacity:.16;background-image:linear-gradient(rgba(234,226,209,.1) 1px,transparent 1px),linear-gradient(90deg, rgba(234,226,209,.1) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(circle at center,#000 54%,transparent 96%);}
.gx-svg{position:absolute;inset:0;width:100%;height:100%;}
.gx-canvas{position:absolute;inset:0;}
.gx-stage-overlay{position:absolute;left:18px;right:18px;bottom:16px;display:flex;justify-content:space-between;gap:12px;pointer-events:none;}
.gx-stage-pill{padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.08);background:rgba(6,10,20,.72);font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);}
.gx-node{position:absolute;display:flex;align-items:center;justify-content:center;padding:10px 12px;border-radius:16px;border:1px solid var(--hairline-2);background:rgba(11,18,32,.94);color:var(--frost);font-family:var(--mono);font-size:11px;letter-spacing:.02em;white-space:normal;text-align:center;line-height:1.32;cursor:pointer;transform:translate(-50%,-50%);transition:transform .14s, box-shadow .14s, border-color .14s, opacity .14s;box-shadow:0 16px 28px -22px rgba(0,0,0,.92);}
.gx-node:hover{transform:translate(-50%,-50%) scale(1.03);}
.gx-node.hot,.gx-node.focus{border-color:var(--volt);box-shadow:0 0 0 1px rgba(61,139,255,.28), 0 22px 42px -24px rgba(61,139,255,.78);}
.gx-node.dim{opacity:.24;}
.gx-node.case{min-height:52px;min-width:188px;max-width:220px;font-size:12px;font-weight:600;font-family:var(--display);letter-spacing:.01em;background:linear-gradient(180deg, rgba(20,31,48,.96), rgba(10,17,29,.98));}
.gx-node.event{min-height:58px;min-width:168px;max-width:210px;}
.gx-node.document{min-height:54px;min-width:150px;max-width:180px;background:linear-gradient(180deg, #eee5d1, #dcccc1);color:#231d17;border-color:rgba(176,141,87,.26);}
.gx-node.provider,.gx-node.facility{min-height:46px;min-width:132px;max-width:158px;}
.gx-node.region{min-height:42px;min-width:126px;max-width:152px;}
.gx-node.legal{box-shadow:0 0 0 1px rgba(245,181,68,.24), 0 20px 36px -20px rgba(245,181,68,.6);}
.gx-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0 0;}
.gx-metric{border:1px solid var(--hairline);border-radius:14px;background:rgba(255,255,255,.03);padding:12px;}
.gx-metric .k{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);}
.gx-metric .v{margin-top:8px;font-family:var(--display);font-size:24px;color:var(--frost);}
.gx-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.gx-legend .item{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;border:1px solid var(--hairline);background:rgba(255,255,255,.03);font-size:11px;color:var(--slate);}
.gx-dot{width:8px;height:8px;border-radius:50%;}
.gx-inspector{grid-area:inspect;}
.gx-inspector h3{margin:0;font-size:20px;color:var(--frost);}
.gx-inspector p{font-size:14px;line-height:1.6;color:var(--slate);}
.gx-list{display:flex;flex-direction:column;gap:10px;margin-top:14px;}
.gx-list .row{display:block;margin:0;padding:10px 0;border-top:1px solid var(--hairline);}
.gx-list .row:first-child{border-top:0;padding-top:0;}
.gx-list .k{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--ion);margin-bottom:5px;}
.gx-action{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;}
.gx-empty{display:grid;place-items:center;height:100%;color:var(--slate);font-size:14px;}
.panel.panel-map{padding:24px 26px 28px;}
/* .im-* — retinted to the tokens.css role vars (UI v2) so the injury map
   follows the active palette wherever it renders: the firm app's Injury Map
   tab (any data-theme) and the landing's Exhibit B-2 (product default).
   Flat surfaces + hairlines, mono data. The 3D stage and its loading dots
   stay fixed dark — imaging reads on a film lightbox — and the impact scale
   bar mirrors the JS heat-ramp stops (a data encoding, not chrome). */
#im-root{
  --im-impact-low:rgb(var(--cobalt-rgb));
  --im-impact-mid:rgb(var(--gold-rgb));
  --im-impact-high:rgb(var(--urgent-rgb));
  --im-stage-surface:
    linear-gradient(180deg, rgb(var(--ov-rgb) / .035), transparent 22%),
    radial-gradient(circle at 50% 16%, rgb(var(--cobalt-rgb) / .1), transparent 42%),
    var(--su);
  --im-card-surface:
    linear-gradient(180deg, rgb(var(--ov-rgb) / .04), transparent 26%),
    radial-gradient(circle at 50% 18%, rgb(var(--cobalt-rgb) / .08), transparent 46%),
    var(--we);
}
.im-shell{display:grid;grid-template-columns:minmax(0,1.35fr) 360px;gap:18px;margin-top:18px;align-items:start;}
.im-panel{border:1px solid var(--li);border-radius:16px;background:var(--su);padding:18px;}
.im-stage{padding:18px 18px 22px;background:var(--im-stage-surface);}
.im-stage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;}
.im-copy{max-width:620px;font-size:13.5px;line-height:1.65;color:var(--mu);}
.im-stage-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.im-card{border:1px solid var(--li);border-radius:12px;background:var(--im-card-surface);padding:16px;position:relative;overflow:hidden;}
.im-card h3{position:relative;z-index:1;margin:0 0 10px;font-size:18px;color:var(--ik);}
.im-figure{position:relative;z-index:1;width:100%;height:auto;display:block;filter:drop-shadow(0 10px 18px rgb(var(--ink-rgb) / .08));}
.im-outline{fill:none;stroke:rgb(var(--ov-rgb) / .35);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;}
.im-zone{fill:rgb(var(--ov-rgb) / .05);stroke:rgb(var(--ov-rgb) / .12);stroke-width:2.8;transition:fill .18s ease, stroke .18s ease, opacity .18s ease, filter .18s ease;cursor:pointer;}
.im-zone.is-active{stroke:var(--ik);stroke-width:4;}
.im-zone.is-dim{opacity:.26;}
.im-pill{padding:7px 10px;border-radius:999px;border:1px solid var(--li);background:var(--we);font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);}
.im-scale{display:flex;align-items:center;gap:12px;margin-top:16px;}
.im-scale-bar{flex:1;height:12px;border-radius:999px;border:1px solid var(--li);background:linear-gradient(90deg, var(--im-impact-low), var(--im-impact-mid), var(--im-impact-high));}
.im-scale-note{font-size:12.5px;color:var(--mu);}
.im-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;}
.im-metric{display:flex;flex-direction:column;justify-content:space-between;gap:10px;min-height:92px;border:1px solid var(--li);border-radius:12px;background:var(--we);padding:14px 15px;}
.im-metric .k{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);}
.im-metric .v{margin-top:0;font-family:var(--mono);font-size:24px;font-weight:700;line-height:1.15;font-variant-numeric:tabular-nums;color:var(--ik);text-wrap:balance;overflow-wrap:anywhere;}
.im-sidebar{position:sticky;top:92px;}
.im-sidebar h3{margin:0;font-size:22px;color:var(--ik);}
.im-sidebar p{font-size:14px;line-height:1.65;color:var(--mu);}
.im-list{display:flex;flex-direction:column;gap:8px;margin-top:16px;}
.im-region{width:100%;text-align:left;border:1px solid var(--li);border-radius:8px;background:var(--we);padding:12px 13px;color:var(--ik);cursor:pointer;font:inherit;transition:border-color .12s,background .12s;}
.im-region:hover{border-color:rgb(var(--cobalt-rgb) / .5);}
.im-region.on{border-color:var(--ac);background:rgb(var(--cobalt-rgb) / .08);}
.im-region .hd{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;}
.im-region .nm{font-weight:600;color:var(--ik);}
.im-region .sc{font-family:var(--mono);font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ac);}
.im-region .sub{display:block;margin-top:6px;font-size:12.5px;color:var(--mu);}
.im-inspector{margin-top:18px;padding-top:18px;border-top:1px solid var(--li);}
.im-kv{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--li);}
.im-kv:first-child{border-top:0;padding-top:0;}
.im-kv .k{font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--mu);}
.im-kv .v{font-family:var(--mono);font-size:12.5px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ik);text-align:right;}
.im-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.im-tag{padding:5px 8px;border-radius:999px;border:1px solid var(--li);background:rgb(var(--ov-rgb) / .04);font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--mu);}
.im-events{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
.im-event{border:1px solid var(--li);border-radius:8px;background:var(--we);padding:12px;}
.im-event .meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-family:var(--mono);font-size:11.5px;color:var(--mu);margin:0 0 8px;}
.im-event .meta b{margin:0;color:var(--ac);}
.im-event .sum{font-size:13.5px;line-height:1.6;color:var(--ik);}
@media(max-width:1240px){.im-shell{grid-template-columns:1fr;}.im-sidebar{position:static;}}
@media(max-width:760px){.im-stage-grid{grid-template-columns:1fr;}.im-summary{grid-template-columns:1fr;}}
/* ---- 3D anatomy evidence map ---- */
/* The stage follows the active palette (the scene background in
   anatomy-injury-map.js reads the same --well-rgb token), so the canvas sits
   on the theme's well instead of a fixed navy lightbox. */
#im-root .im-stage3d{position:relative;z-index:1;width:100%;height:min(70vh,640px);border:1px solid var(--li);border-radius:12px;overflow:hidden;background:linear-gradient(180deg, rgb(var(--ov-rgb) / .03), transparent 22%), radial-gradient(circle at 50% 16%, rgb(var(--cobalt-rgb) / .12), transparent 36%), var(--we);}
#im-root .im-stage3d canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none;}
#im-root .im-stage3d canvas:active{cursor:grabbing;}
#im-root .im-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--mu);font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;}
#im-root .im-loading i{width:8px;height:8px;border-radius:50%;background:var(--ac);animation:impulse 1s infinite;}
#im-root .im-loading i:nth-child(2){animation-delay:.15s;}
#im-root .im-loading i:nth-child(3){animation-delay:.3s;}
@keyframes impulse{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
#imStage3d{display:none;}
#im-root[data-mode="3d"] #imStage3d,#im-root[data-mode="loading"] #imStage3d{display:block;}
#im-root[data-mode="3d"] #imStageFallback,#im-root[data-mode="loading"] #imStageFallback{display:none;}
#im-root[data-mode="3d"] .im-loading{display:none;}
#im-root[data-mode="2d"] #imStage3d{display:none;}
.im-controls{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-bottom:14px;}
#im-root[data-mode="2d"] .im-controls{display:none;}
.im-ctl-group{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.im-ctl-label{font-family:var(--mono);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--mu);margin-right:2px;}
.im-ctl{padding:7px 11px;border:1px solid var(--li);border-radius:4px;background:var(--we);color:var(--mu);font:inherit;font-size:12.5px;cursor:pointer;transition:border-color .14s,background .14s,color .14s;}
.im-ctl:hover{border-color:rgb(var(--cobalt-rgb) / .5);color:var(--ik);}
.im-ctl.on{border-color:var(--ac);background:rgb(var(--cobalt-rgb) / .12);color:var(--ik);}
.im-why{margin-top:14px;font-size:13px;line-height:1.6;color:var(--mu);padding:12px 13px;border:1px solid var(--li);border-left:2px solid rgb(var(--cobalt-rgb) / .5);border-radius:0 8px 8px 0;background:rgb(var(--cobalt-rgb) / .06);}
#im-root[data-mode="2d"] .im-why,#im-root .im-why:empty{display:none;}
.im-why strong{color:var(--ik);}
.im-disclaimer{display:block;margin-top:8px;font-size:11.5px;color:var(--fa);font-style:italic;}
.im-region{display:flex;gap:10px;align-items:flex-start;}
.im-region-dot{flex:none;width:11px;height:11px;border-radius:50%;margin-top:4px;box-shadow:0 0 0 1px rgb(var(--ov-rgb) / .22);}
.im-region-main{flex:1;min-width:0;}
.im-event .meta.src{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 0;}
.im-srcref{color:var(--ac);text-decoration:none;border:1px solid rgb(var(--cobalt-rgb) / .4);border-radius:4px;padding:3px 7px;background:rgb(var(--cobalt-rgb) / .08);font-family:var(--mono);font-size:11.5px;font-weight:500;}
.im-srcref:hover{border-color:var(--ac);}
.im-srcref.muted{color:var(--mu);border-style:dashed;background:none;cursor:default;}
.im-evtype{color:var(--ac);}
.im-credit{margin-top:12px;font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--fa);}

/* --- Cited structures (the Injury Profile panel) ---------------------------
   The structure NAME leads and the record's own quote is the body: the model's
   `finding` label is a paraphrase and sits between them in ordinary weight, so
   the eye reaches the quote — the thing an attorney can actually check. */
.im-summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));}
.im-denom{display:block;margin-top:2px;font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--mu);}
.im-notice{margin-top:12px;border:1px solid var(--li);border-radius:8px;background:var(--we);padding:10px 13px;font-size:12.5px;line-height:1.55;color:var(--mu);}
.im-notice strong{color:var(--ik);font-weight:600;}
/* The attention state differs by TINT, not by a fat side rule — flat cards and
   hairlines are the register this redesign moved to (REDESIGN.md). */
.im-notice.warn{border-color:rgb(var(--gold-rgb,var(--cobalt-rgb)) / .45);background:rgb(var(--gold-rgb,var(--cobalt-rgb)) / .06);}
.im-structure .im-struct-name{font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ik);}
.im-structure .im-evtype{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;}
.im-structure .im-evtype.pre{color:var(--mu);}
.im-structure .im-evtype.muted{color:var(--fa);}
.im-cites{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:9px;}
.im-cite{border-left:2px solid var(--li);padding-left:10px;}
.im-cite .q{display:block;font-size:12.5px;line-height:1.6;color:var(--ik);}
.im-cite.more{border-left-style:dashed;font-family:var(--mono);font-size:11px;color:var(--mu);}
.im-unverified{font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--at,var(--mu));border:1px dashed currentColor;border-radius:4px;padding:2px 6px;}
/* Light themes need more contrast on the map's dense mono metadata and controls.
   Keep dark themes unchanged; only lift the paper palettes where the original
   muted/faint values read too softly against white and well surfaces. */
[data-theme="slate"] .im-copy,
[data-theme="slate"] .im-scale-note,
[data-theme="slate"] .im-sidebar p,
[data-theme="slate"] .im-region .sub,
[data-theme="slate"] .im-event .meta,
[data-theme="slate"] .im-why,
[data-theme="slate"] #im-root .im-loading,
[data-theme="slate"] .im-ctl,
[data-theme="slate"] .im-ctl-label,
[data-theme="slate"] .im-kv .k,
[data-theme="slate"] .im-tag,
[data-theme="slate"] .im-pill,
[data-theme="slate"] .im-srcref.muted,
[data-theme="chancery"] .im-copy,
[data-theme="chancery"] .im-scale-note,
[data-theme="chancery"] .im-sidebar p,
[data-theme="chancery"] .im-region .sub,
[data-theme="chancery"] .im-event .meta,
[data-theme="chancery"] .im-why,
[data-theme="chancery"] #im-root .im-loading,
[data-theme="chancery"] .im-ctl,
[data-theme="chancery"] .im-ctl-label,
[data-theme="chancery"] .im-kv .k,
[data-theme="chancery"] .im-tag,
[data-theme="chancery"] .im-pill,
[data-theme="chancery"] .im-srcref.muted{
  color: var(--ik);
}
[data-theme="slate"] .im-metric,
[data-theme="chancery"] .im-metric{
  border-color: rgb(var(--cobalt-rgb) / .18);
  background: rgb(var(--cobalt-rgb) / .05);
}
[data-theme="slate"] .im-stage,
[data-theme="chancery"] .im-stage{
  border-color: rgb(var(--cobalt-rgb) / .16);
}
[data-theme="slate"] .im-card,
[data-theme="chancery"] .im-card{
  border-color: rgb(var(--cobalt-rgb) / .18);
}
[data-theme="slate"] .im-metric .k,
[data-theme="chancery"] .im-metric .k{
  color: var(--fa);
}
[data-theme="slate"] .im-disclaimer,
[data-theme="slate"] .im-credit,
[data-theme="chancery"] .im-disclaimer,
[data-theme="chancery"] .im-credit{
  color: var(--mu);
}
@media(max-width:1180px){.gx-shell{grid-template-columns:1fr;grid-template-areas:"side" "main" "inspect";}.gx-sidebar{position:static;}.gx-stage{height:640px;}.gx-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:760px){.gx-stage{height:520px;}.gx-board-head{flex-direction:column;}.gx-metrics{grid-template-columns:1fr;}}

/* ===================== Evidence Graph investigation workspace ============= */
.eg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;}
.eg-headsub{font-size:13px;color:var(--muted);margin-top:6px;max-width:760px;line-height:1.5;}
.eg-stats{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0 14px;}
.eg-stat{flex:1 1 0;min-width:96px;padding:12px 14px;border:1px solid rgba(140,165,200,.16);border-radius:12px;background:rgba(11,20,36,.5);font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#8aa;display:flex;flex-direction:column;gap:4px;}
.eg-stat span{font-family:var(--display,inherit);font-size:24px;font-weight:700;color:#eaf1ff;letter-spacing:0;}
.eg-stat.warn span{color:#ff7d7d;}
.eg-stat.lit span{color:#36e6ff;}

#eg-root{--eg-bg:#070d18;--eg-panel:rgba(255,255,255,.035);--eg-line:rgba(140,165,200,.16);--eg-ink:#cdd9ec;--eg-muted:#8595ad;--eg-cyan:#36e6ff;--eg-gold:#c9a959;}
#eg-root .eg-grid{display:grid;grid-template-columns:268px minmax(0,1fr) 312px;gap:14px;margin-top:6px;align-items:stretch;}
#eg-root aside,#eg-root .eg-stage{border:1px solid var(--eg-line);border-radius:16px;background:var(--eg-panel);}
#eg-root .eg-side{display:flex;flex-direction:column;gap:16px;padding:14px;max-height:760px;overflow-y:auto;}
#eg-root .eg-cap{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--eg-cyan);margin-bottom:9px;}
#eg-root .eg-cap em{color:var(--eg-muted);font-style:normal;}
#eg-root .eg-block{display:flex;flex-direction:column;}
#eg-root .eg-grow{flex:1;}
#eg-root .eg-search input{width:100%;padding:9px 12px;border:1px solid var(--eg-line);border-radius:9px;background:rgba(6,12,22,.6);color:var(--eg-ink);font-size:13px;font-family:inherit;}
#eg-root .eg-search input:focus{outline:none;border-color:var(--eg-cyan);box-shadow:0 0 0 3px rgba(54,230,255,.14);}

#eg-root .eg-lenses{display:flex;flex-direction:column;gap:7px;}
#eg-root .eg-lens{text-align:left;padding:10px 12px;border:1px solid var(--eg-line);border-radius:10px;background:rgba(6,12,22,.4);color:var(--eg-ink);cursor:pointer;transition:all .16s ease;}
#eg-root .eg-lens span{display:block;font-size:13px;font-weight:600;}
#eg-root .eg-lens em{display:block;font-style:normal;font-size:11px;color:var(--eg-muted);margin-top:3px;line-height:1.35;}
#eg-root .eg-lens:hover{border-color:rgba(54,230,255,.4);}
#eg-root .eg-lens.on{border-color:rgba(54,230,255,.6);background:rgba(54,230,255,.1);box-shadow:0 0 26px -10px rgba(54,230,255,.7);}

#eg-root .eg-filters{display:flex;flex-wrap:wrap;gap:6px;}
#eg-root .eg-filter{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--eg-line);border-radius:999px;background:rgba(6,12,22,.4);color:var(--eg-muted);font-size:11px;cursor:pointer;}
#eg-root .eg-filter i{width:8px;height:8px;border-radius:2px;opacity:.5;}
#eg-root .eg-filter.on{color:var(--eg-ink);border-color:rgba(140,165,200,.4);}
#eg-root .eg-filter.on i{opacity:1;}

#eg-root .eg-insights{display:flex;flex-direction:column;gap:8px;padding-right:4px;}
#eg-root .eg-insight{text-align:left;padding:11px 12px;border:1px solid var(--eg-line);border-radius:11px;background:rgba(6,12,22,.42);cursor:pointer;transition:all .15s ease;}
#eg-root .eg-insight:hover{border-color:rgba(54,230,255,.45);transform:translateX(2px);}
#eg-root .eg-insight.on{border-color:var(--eg-cyan);background:rgba(54,230,255,.09);}
#eg-root .eg-insight-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
#eg-root .eg-insight strong{display:block;font-size:12.5px;color:#eaf1ff;line-height:1.3;}
#eg-root .eg-insight-sum{display:block;font-size:11px;color:var(--eg-muted);margin-top:4px;line-height:1.4;}
#eg-root .eg-conf{font-family:var(--mono);font-size:11px;color:var(--eg-cyan);}
#eg-root .eg-tag{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;padding:3px 6px;border-radius:5px;}
#eg-root .eg-tag.direct{background:rgba(54,230,255,.14);color:#9fe9ff;}
#eg-root .eg-tag.possible{background:rgba(255,107,107,.14);color:#ffb4b4;}

#eg-root .eg-stage{display:flex;flex-direction:column;overflow:hidden;}
#eg-root .eg-stagehead{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--eg-line);}
#eg-root .eg-stagehead strong{font-size:14px;color:#eaf1ff;}
#eg-root .eg-stagehead span{display:block;font-size:11.5px;color:var(--eg-muted);margin-top:2px;}
#eg-root .eg-zoom{display:flex;gap:4px;}
#eg-root .eg-zoom button{width:30px;height:28px;border:1px solid var(--eg-line);border-radius:7px;background:rgba(6,12,22,.5);color:var(--eg-ink);cursor:pointer;font-size:14px;}
#eg-root .eg-zoom button[data-z=fit]{width:auto;padding:0 10px;font-size:11px;font-family:var(--mono);}
#eg-root .eg-zoom button:hover{border-color:var(--eg-cyan);color:#fff;}
#eg-root .eg-canvas{position:relative;flex:1;height:min(70vh,660px);background:radial-gradient(120% 90% at 50% 0%,rgba(54,120,255,.08),transparent 55%),linear-gradient(180deg,#070d18,#050a13);overflow:hidden;}
#eg-root .eg-canvas svg{display:block;cursor:grab;touch-action:none;}
#eg-root .eg-canvas svg:active{cursor:grabbing;}
#eg-root .eg-nodelabel{fill:#aebed6;font-family:var(--mono);font-size:10.5px;pointer-events:none;}
#eg-root .eg-lanelabel{fill:#5f7390;font-family:var(--mono);font-size:11px;letter-spacing:.14em;pointer-events:none;}
#eg-root .eg-node.sel .eg-nodelabel{fill:#fff;}
#eg-root .eg-node.dim{opacity:.16;}
#eg-root .eg-node.sel circle,#eg-root .eg-node.sel rect,#eg-root .eg-node.sel polygon{stroke:#fff;stroke-width:2.5;}
#eg-root .eg-edge{cursor:pointer;}
#eg-root .eg-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:40px;color:var(--eg-muted);font-size:14px;}
#eg-root .eg-empty[hidden]{display:none;}
#eg-root .eg-legend{position:absolute;left:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;padding:9px 11px;border:1px solid var(--eg-line);border-radius:10px;background:rgba(5,9,18,.72);backdrop-filter:blur(6px);pointer-events:none;}
#eg-root .eg-legend-row{display:flex;flex-wrap:wrap;gap:10px;}
#eg-root .eg-legend span{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9.5px;color:var(--eg-muted);}
#eg-root .eg-legend i{width:9px;height:9px;border-radius:50%;}
#eg-root .eg-legend .ln{width:16px;height:0;border-top:2px solid var(--eg-muted);display:inline-block;}
#eg-root .eg-legend .ln.dash{border-top-style:dashed;}

#eg-root .eg-inspector{padding:16px;overflow-y:auto;max-height:760px;}
#eg-root .eg-inspector-empty{font-size:13px;color:var(--eg-muted);line-height:1.55;}
#eg-root .eg-itype{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--eg-muted);margin-bottom:8px;}
#eg-root .eg-itype i{width:10px;height:10px;border-radius:50%;}
#eg-root .eg-inspector h3{margin:0 0 6px;font-size:16px;color:#eef4ff;line-height:1.25;}
#eg-root .eg-rel{font-size:11px;color:var(--eg-cyan);font-family:var(--mono);padding:0 3px;}
#eg-root .eg-sub{font-size:12px;color:var(--eg-muted);margin-bottom:10px;}
#eg-root .eg-plain{font-size:12.5px;color:var(--eg-ink);line-height:1.5;margin:0 0 12px;padding:10px 12px;border-left:2px solid rgba(54,230,255,.4);background:rgba(54,230,255,.05);border-radius:0 8px 8px 0;}
#eg-root .eg-why,#eg-root .eg-next{margin:12px 0;font-size:12.5px;color:var(--eg-ink);line-height:1.5;}
#eg-root .eg-why span,#eg-root .eg-next span,#eg-root .eg-field span{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--eg-cyan);margin-bottom:5px;}
#eg-root .eg-next{padding:11px 12px;border:1px solid rgba(201,169,89,.3);border-radius:10px;background:rgba(201,169,89,.07);}
#eg-root .eg-next span{color:var(--eg-gold);}
#eg-root .eg-field{margin:12px 0;}
#eg-root .eg-refs{display:flex;flex-direction:column;gap:5px;}
#eg-root .eg-srcref{display:inline-block;font-size:12px;color:#9fe9ff;text-decoration:none;padding:5px 9px;border:1px solid rgba(54,230,255,.25);border-radius:8px;background:rgba(54,230,255,.06);}
#eg-root .eg-srcref:hover{border-color:var(--eg-cyan);}
#eg-root .eg-warn{font-size:12px;color:#ffb4b4;font-style:normal;}
#eg-root .eg-chips{display:flex;flex-wrap:wrap;gap:6px;}
#eg-root .eg-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--eg-line);border-radius:999px;background:rgba(6,12,22,.5);color:var(--eg-ink);font-size:11px;cursor:pointer;}
#eg-root .eg-chip:hover{border-color:var(--eg-cyan);}
#eg-root .eg-chip i{width:8px;height:8px;border-radius:50%;}
#eg-root .eg-links{display:flex;flex-direction:column;gap:5px;}
#eg-root .eg-link{text-align:left;background:none;border:none;color:#bcd0ea;font-size:12px;cursor:pointer;padding:3px 0;}
#eg-root .eg-link:hover{color:var(--eg-cyan);}
#eg-root .eg-conf-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--eg-ink);}
#eg-root .eg-muted{color:var(--eg-muted);font-size:12px;}
#eg-root .eg-chat{display:flex;flex-direction:column;gap:8px;max-height:236px;overflow-y:auto;margin-bottom:9px;padding-right:3px;}
#eg-root .eg-chat-empty{font-size:11.5px;color:var(--eg-muted);line-height:1.55;}
#eg-root .eg-bub{font-size:12px;line-height:1.5;padding:9px 11px;border-radius:11px;max-width:97%;}
#eg-root .eg-bub.user{align-self:flex-end;background:rgba(54,230,255,.12);border:1px solid rgba(54,230,255,.3);color:#dff4ff;}
#eg-root .eg-bub.ai{align-self:flex-start;background:rgba(6,12,22,.55);border:1px solid var(--eg-line);color:var(--eg-ink);}
#eg-root .eg-bub-src{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
#eg-root .eg-finds{display:flex;flex-direction:column;gap:6px;margin-top:9px;}
#eg-root .eg-find{text-align:left;padding:8px 10px;border:1px solid rgba(255,107,107,.3);border-radius:9px;background:rgba(255,107,107,.06);cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:7px;}
#eg-root .eg-find:hover{border-color:#ff9a9a;}
#eg-root .eg-find strong{flex-basis:100%;font-size:12px;color:#ffe3e3;font-weight:600;}
#eg-root .eg-bub.thinking{display:inline-flex;gap:4px;align-items:center;}
#eg-root .eg-bub.thinking i{width:6px;height:6px;border-radius:50%;background:var(--eg-cyan);opacity:.4;animation:egpulse 1s infinite;}
#eg-root .eg-bub.thinking i:nth-child(2){animation-delay:.15s;}
#eg-root .eg-bub.thinking i:nth-child(3){animation-delay:.3s;}
@keyframes egpulse{0%,100%{opacity:.25;transform:translateY(0);}50%{opacity:1;transform:translateY(-2px);}}
#eg-root .eg-askbar{display:flex;gap:6px;}
#eg-root .eg-askbar input{flex:1;min-width:0;padding:9px 12px;border:1px solid var(--eg-line);border-radius:9px;background:rgba(6,12,22,.6);color:var(--eg-ink);font-size:13px;font-family:inherit;}
#eg-root .eg-askbar input:focus{outline:none;border-color:var(--eg-cyan);box-shadow:0 0 0 3px rgba(54,230,255,.14);}
#eg-root .eg-askbar button{padding:0 14px;border:1px solid rgba(54,230,255,.5);border-radius:9px;background:rgba(54,230,255,.12);color:#dff4ff;font-size:12px;font-weight:600;cursor:pointer;}
#eg-root .eg-askbar button:hover{background:rgba(54,230,255,.2);}
#eg-root .eg-askbar button:disabled{opacity:.5;cursor:default;}
#eg-root .eg-askhint{font-size:10px;color:var(--eg-muted);margin-top:6px;}

/* --- answer-first redesign: left-rail mode buttons --- */
#eg-root .eg-home,#eg-root .eg-advanced{width:100%;text-align:left;padding:11px 13px;border:1px solid var(--eg-line);border-radius:11px;background:rgba(6,12,22,.42);color:var(--eg-ink);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .14s;}
#eg-root .eg-home:hover,#eg-root .eg-advanced:hover{border-color:rgba(54,230,255,.45);}
#eg-root .eg-home.on{border-color:var(--eg-cyan);background:rgba(54,230,255,.1);color:#eaf6ff;}
#eg-root .eg-advanced{color:var(--eg-muted);font-weight:500;font-size:12px;}
#eg-root .eg-advanced.on{border-color:rgba(154,139,255,.6);background:rgba(154,139,255,.1);color:#dcd6ff;}
/* search bar (mirrors askbar) */
#eg-root .eg-searchbar{display:flex;gap:6px;}
#eg-root .eg-searchbar input{flex:1;min-width:0;padding:9px 12px;border:1px solid var(--eg-line);border-radius:9px;background:rgba(6,12,22,.6);color:var(--eg-ink);font-size:13px;font-family:inherit;}
#eg-root .eg-searchbar input:focus{outline:none;border-color:var(--eg-cyan);box-shadow:0 0 0 3px rgba(54,230,255,.14);}
#eg-root .eg-searchbar button{padding:0 13px;border:1px solid var(--eg-line);border-radius:9px;background:rgba(6,12,22,.5);color:var(--eg-ink);font-size:12px;font-weight:600;cursor:pointer;}
#eg-root .eg-searchbar button:hover{border-color:var(--eg-cyan);color:#fff;}
/* saved maps */
#eg-root .eg-saved{display:flex;flex-direction:column;gap:6px;}
#eg-root .eg-savedmap{text-align:left;padding:8px 11px;border:1px solid var(--eg-line);border-radius:9px;background:rgba(6,12,22,.4);color:var(--eg-ink);cursor:pointer;}
#eg-root .eg-savedmap:hover{border-color:var(--eg-cyan);}
#eg-root .eg-savedmap strong{display:block;font-size:12px;}
#eg-root .eg-savedmap em{font-style:normal;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--eg-muted);}
/* --- overview --- */
#eg-root .eg-stage.is-overview{overflow-y:auto;padding:18px;min-height:560px;}
#eg-root .eg-ovhead{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;margin-bottom:14px;}
#eg-root .eg-ovhead strong{display:block;font-size:17px;color:#eef4ff;}
#eg-root .eg-ovhead span{display:block;font-size:12.5px;color:var(--eg-muted);margin-top:4px;max-width:560px;line-height:1.5;}
#eg-root .eg-sort{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--eg-muted);display:flex;gap:6px;align-items:center;white-space:nowrap;}
#eg-root .eg-sort select{font-family:inherit;font-size:12px;letter-spacing:0;text-transform:none;padding:6px 8px;border:1px solid var(--eg-line);border-radius:8px;background:rgba(6,12,22,.6);color:var(--eg-ink);cursor:pointer;}
#eg-root .eg-ovfilters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
#eg-root .eg-ovchip{padding:6px 11px;border:1px solid var(--eg-line);border-radius:999px;background:rgba(6,12,22,.4);color:var(--eg-muted);font-size:11.5px;cursor:pointer;}
#eg-root .eg-ovchip em{font-style:normal;color:var(--eg-cyan);font-family:var(--mono);font-size:10px;margin-left:3px;}
#eg-root .eg-ovchip.on{color:#eaf6ff;border-color:var(--eg-cyan);background:rgba(54,230,255,.1);}
#eg-root .eg-ovcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:12px;align-content:start;}
#eg-root .eg-ovcard{text-align:left;display:flex;flex-direction:column;gap:7px;padding:14px;border:1px solid var(--eg-line);border-radius:14px;background:rgba(6,12,22,.42);cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;}
#eg-root .eg-ovcard:hover{border-color:rgba(54,230,255,.5);transform:translateY(-2px);box-shadow:0 10px 30px -18px rgba(54,230,255,.6);}
#eg-root .eg-ovcard-top{display:flex;justify-content:space-between;align-items:center;}
#eg-root .eg-ovcard strong{font-size:13.5px;color:#eaf1ff;line-height:1.3;}
#eg-root .eg-ovcard-sum{font-size:12px;color:var(--eg-ink);line-height:1.45;}
#eg-root .eg-ovcard-why{font-size:11.5px;color:var(--eg-muted);line-height:1.45;}
#eg-root .eg-ovcard-foot{display:flex;justify-content:space-between;align-items:center;margin-top:2px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--eg-muted);}
#eg-root .eg-ovcard-foot .eg-open{color:var(--eg-cyan);}
/* --- map head + controls --- */
#eg-root .eg-maphead{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:14px 16px;border-bottom:1px solid var(--eg-line);}
#eg-root .eg-maphead-main{min-width:0;}
#eg-root .eg-mapkind{font-family:var(--mono);font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--eg-cyan);margin-bottom:6px;}
#eg-root .eg-maphead-main strong{display:block;font-size:15px;color:#eef4ff;line-height:1.25;}
#eg-root .eg-maphead-main span{display:block;font-size:12px;color:var(--eg-muted);margin-top:4px;line-height:1.45;}
#eg-root .eg-mapctl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex-shrink:0;}
#eg-root .eg-mapctl>button{padding:7px 11px;border:1px solid var(--eg-line);border-radius:8px;background:rgba(6,12,22,.5);color:var(--eg-ink);font:inherit;font-size:11.5px;cursor:pointer;transition:all .14s;}
#eg-root .eg-mapctl>button:hover{border-color:var(--eg-cyan);color:#fff;}
#eg-root .eg-mapctl>button.on{border-color:var(--eg-cyan);background:rgba(54,230,255,.14);color:#eaf6ff;}
/* --- advanced lens tabs --- */
#eg-root .eg-fulllens{display:flex;gap:6px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--eg-line);}
#eg-root .eg-lenstab{padding:6px 12px;border:1px solid var(--eg-line);border-radius:999px;background:rgba(6,12,22,.4);color:var(--eg-muted);font-size:12px;cursor:pointer;}
#eg-root .eg-lenstab.on{color:#eaf6ff;border-color:var(--eg-cyan);background:rgba(54,230,255,.1);}

@media (max-width:1180px){
  #eg-root .eg-grid{grid-template-columns:1fr;}
  #eg-root .eg-side,#eg-root .eg-inspector{max-height:none;overflow-y:visible;}
  #eg-root .eg-ovcards{grid-template-columns:1fr;}
  #eg-root .eg-maphead{flex-direction:column;}
  #eg-root .eg-stage.is-overview{min-height:0;}
}


    .tlx-h{display:flex;align-items:baseline;gap:8px;font-size:14px;font-weight:600;color:var(--frost);margin:0 0 12px;}
    .tlx-h .sub{font-family:var(--mono);font-size:10px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);}
    /* Layer 1 — case arc */
    .tlx-arc{padding:18px;margin:16px 0 22px;}
    .tlx-arc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
    .tlx-arc-rail{position:relative;display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;}
    .tlx-arc-line{position:absolute;left:14px;right:14px;top:15px;height:1px;background:linear-gradient(90deg,rgba(61,139,255,.35),rgba(56,232,255,.5),rgba(124,108,255,.45));}
    .tlx-ms{position:relative;z-index:1;flex:0 0 128px;display:flex;flex-direction:column;align-items:center;text-align:center;background:none;border:0;cursor:pointer;padding:2px 4px;color:inherit;font-family:inherit;}
    .tlx-ms:focus-visible{outline:2px solid var(--volt);border-radius:8px;}
    .tlx-ms .nd{position:relative;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--depth);border:2px solid;transition:transform .12s;}
    .tlx-ms:hover .nd{transform:scale(1.14);}
    .tlx-ms .nd i{width:11px;height:11px;border-radius:50%;}
    .tlx-ms .nd .lg{position:absolute;top:-4px;right:-4px;width:13px;height:13px;border-radius:50%;background:var(--warn);color:#0B1220;display:grid;place-items:center;font-size:8px;}
    .tlx-ms .ml{margin-top:8px;font-size:11px;font-weight:600;line-height:1.25;}
    .tlx-ms .md{margin-top:2px;font-family:var(--mono);font-size:10px;color:var(--slate);}
    /* shared controls */
    .tlx-controls{display:flex;flex-direction:column;gap:12px;margin:6px 0 18px;}
    .tlx-filters{display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
    .tlx-fbtn{border:1px solid var(--hairline);background:rgba(255,255,255,.05);color:var(--slate);border-radius:99px;padding:5px 11px;font-size:11px;font-weight:500;cursor:pointer;font-family:var(--mono);transition:color .12s,border-color .12s,background .12s;}
    .tlx-fbtn:hover{color:var(--frost);}
    .tlx-fbtn.on{color:var(--frost);border-color:var(--volt);background:rgba(61,139,255,.14);}
    /* Layer 2 — grouped timeline */
    .tlx-timeline{position:relative;padding-left:24px;display:flex;flex-direction:column;gap:12px;}
    .tlx-spine{position:absolute;left:7px;top:6px;bottom:6px;width:1px;background:linear-gradient(180deg,rgba(61,139,255,.45),rgba(255,255,255,.08),rgba(124,108,255,.45));}
    .tlx-card{position:relative;width:100%;text-align:left;border:1px solid var(--hairline);background:var(--glass);border-radius:16px;padding:16px;cursor:pointer;color:inherit;font-family:inherit;transition:border-color .15s,background .15s,box-shadow .15s;backdrop-filter:blur(12px);}
    .tlx-card:hover{border-color:rgba(61,139,255,.5);background:rgba(255,255,255,.07);}
    .tlx-card.hot{border-color:var(--ion);box-shadow:0 0 26px -6px rgba(56,232,255,.55);}
    .tlx-node{position:absolute;left:-21px;top:21px;width:12px;height:12px;border-radius:50%;background:var(--volt);box-shadow:0 0 0 4px var(--abyss);}
    .tlx-node.legal{background:var(--warn);}
    .tlx-cardtop{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
    .tlx-date{font-family:var(--mono);font-size:12px;color:var(--ion);}
    .tlx-ttl{font-size:15px;font-weight:600;color:var(--frost);margin:5px 0 0;line-height:1.35;}
    .tlx-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px;}
    .tlx-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid;border-radius:99px;padding:3px 9px;font-family:var(--mono);font-size:11px;white-space:nowrap;}
    .tlx-dot{width:6px;height:6px;border-radius:50%;flex:0 0 6px;}
    .tlx-rows-pill{font-family:var(--mono);font-size:10px;color:var(--slate);border:1px solid var(--hairline);border-radius:8px;padding:3px 8px;white-space:nowrap;}
    .tlx-legal{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10px;color:var(--warn);border:1px solid rgba(245,181,68,.4);background:rgba(245,181,68,.1);border-radius:99px;padding:2px 8px;}
    /* Layer 3 — evidence table */
    .tlx-tablewrap{border:1px solid var(--hairline);border-radius:16px;overflow:hidden;background:rgba(255,255,255,.03);}
    .tlx-tablewrap .scroll{overflow-x:auto;}
    .tlx-table{width:100%;border-collapse:collapse;font-size:13px;}
    .tlx-table th{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);padding:12px 14px;border-bottom:1px solid var(--hairline-2);white-space:nowrap;}
    .tlx-table th[data-sort]{cursor:pointer;}
    .tlx-table th[data-sort]:hover{color:var(--ion);}
    .tlx-table td{padding:11px 14px;border-bottom:1px solid var(--hairline);vertical-align:top;}
    .tlx-xrow{cursor:pointer;}
    .tlx-xrow:hover td{background:rgba(61,139,255,.06);}
    .tlx-exp{display:grid;place-items:center;width:20px;height:20px;border:1px solid var(--hairline-2);border-radius:5px;background:none;color:var(--slate);cursor:pointer;}
    .tlx-exp:hover{color:var(--ion);}
    .tlx-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:340px;color:var(--slate);}
    .tlx-detail td{background:rgba(7,12,22,.55);color:var(--slate);}
    .tlx-codes{font-family:var(--mono);font-size:11px;color:#9fe7ff;white-space:nowrap;}
    .tlx-src{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:11px;color:var(--slate);}
    /* drawer */
    .tlx-scrim{position:fixed;inset:0;background:rgba(0,0,0,.6);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .25s;z-index:120;}
    .tlx-scrim.show{opacity:1;pointer-events:auto;}
    .tlx-drawer{position:fixed;top:0;right:0;height:100%;width:100%;max-width:460px;background:var(--depth);border-left:1px solid var(--hairline);transform:translateX(100%);transition:transform .3s ease;z-index:130;display:flex;flex-direction:column;}
    .tlx-drawer.show{transform:translateX(0);}
    .tlx-dwhd{padding:18px;border-bottom:1px solid var(--hairline);display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
    .tlx-dwbd{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px;}
    .tlx-close{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border:1px solid var(--hairline-2);border-radius:9px;background:none;color:var(--slate);cursor:pointer;}
    .tlx-close:hover{color:var(--frost);}
    .tlx-erow{border:1px solid var(--hairline);background:rgba(255,255,255,.04);border-radius:12px;padding:13px;}
    .tlx-erow.legal{border-color:rgba(245,181,68,.3);}
    .tlx-erow dl{display:grid;grid-template-columns:78px 1fr;gap:3px 10px;margin:9px 0 0;font-size:12px;}
    .tlx-erow dt{color:var(--slate);} .tlx-erow dd{margin:0;color:var(--frost);}
    .tlx-empty{border:1px dashed var(--hairline-2);border-radius:16px;padding:28px;text-align:center;color:var(--slate);font-size:14px;}
    @media(max-width:760px){.tlx-table .opt{display:none;}}
