
  /* Estimated liquidation heatmap / map (monitor/pages/liqheatmap.py). lm-* matches hl_liqmap.html's map. */
  .le-ctl { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
  .le-coins { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }  .le-coins a { padding: 3px 9px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); font-size: 12.5px; text-decoration: none; }
  .le-coins a[aria-current] { color: var(--text); border-color: var(--line2); background: var(--panel2); }
  .le-note { margin: 0; padding: 0 14px 12px; font-size: 12.5px; color: var(--muted); }
  .le-note b { color: var(--text); font-weight: 600; }
  .le-alt { margin: 0 0 14px; padding: 10px 14px; border: 1px solid var(--line2); border-radius: 8px; background: var(--panel); font-size: 13px; color: var(--muted); }
  .le-alt a { font-weight: 600; }
  .le-prose { padding-top: 10px; }
  .le-prose p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.55; color: var(--muted); max-width: 900px; }
  .le-prose b { color: var(--text); font-weight: 600; }
  .le-prose .le-live { margin: 0; padding: 8px 12px; border-left: 3px solid var(--line2); background: var(--panel2); }
  .le-cmp { white-space: normal; }
  .le-cmp td { font-family: inherit; vertical-align: top; min-width: 110px; }
  /* Levels / max pain hubs (T-728, audit G12): the two link columns may wrap on desktop so the 9-column max pain
     table fits its panel at 1440px instead of cutting "Real positions". Phones keep one line and scroll sideways. */
  @media (min-width: 64rem) { .dtable .le-links { white-space: normal; min-width: 6.5rem; } }
  .le-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 14px; }
  .le-two .dtable { width: 100%; }
  .le-stamp { font-family: "JetBrains Mono", monospace; font-size: 12px; color: var(--muted); }
  .lh-chart { position: relative; padding: 4px 14px 6px; min-width: 0; }
  /* Fluid height (T-455), redrawn on resize. */
  .lh-canvas { display: block; width: 100%; height: clamp(360px, 62vh, 900px); border-radius: 4px; touch-action: pan-y; }
  .lh-canvas:focus-visible { outline: 2px solid var(--conf); outline-offset: 2px; }
  .lh-x { position: absolute; pointer-events: none; }
  @media (max-width: 600px) { .lh-chart { padding: 4px 6px 6px; } }
  /* Per-coin workspace (T-455): toolbar, chart + summary rail (beside the chart from 1320px, below it before). */
  .lh-bar { justify-content: flex-start; }
  .lh-bar .le-ctl { margin-left: auto; }
  /* Coin switcher (T-456): combobox over the #lh-coins links; the popover lists the top 12 or the matches. */
  .lh-pick { position: relative; display: flex; align-items: center; min-width: 0; max-width: 100%; color: var(--muted); }
  .lh-pick svg { position: absolute; left: 9px; pointer-events: none; }
  .lh-pick input { width: 11.5rem; min-width: 0; max-width: 100%; min-height: var(--ctl-h-sm); padding: 4px 10px 4px 28px; border: 1px solid var(--line2); border-radius: 8px; background: var(--panel); color: var(--text); font: inherit; font-size: var(--fs-sm); }
  .lh-pick input::placeholder { color: var(--muted); opacity: 1; }
  .lh-pick input:focus-visible { outline: 2px solid var(--conf); outline-offset: 1px; }
  .lh-pop { position: absolute; z-index: 5; top: calc(100% + 4px); left: 0; width: min(19rem, calc(100vw - 2rem)); padding: 8px; border: 1px solid var(--line2); border-radius: 8px; background: var(--panel); box-shadow: 0 8px 24px rgba(0, 0, 0, .35); }
  .lh-pop-h { padding: 0 4px 6px; font-size: var(--fs-xs); color: var(--muted); }
  .lh-opts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; max-height: min(50vh, 18rem); overflow-y: auto; margin: 0; padding: 0; list-style: none; }
  .lh-opts li { padding: 5px 4px; border: 1px solid var(--line); border-radius: 6px; text-align: center; font-size: var(--fs-sm); color: var(--text); cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .lh-opts li:hover, .lh-opts li[aria-selected="true"] { border-color: var(--conf); background: var(--panel2); }
  .lh-opts li.cur { font-weight: 600; }
  @media (hover: none) { .lh-pick input { font-size: 16px; } }
  .lh-pop-all { display: block; padding: 8px 4px 0; font-size: var(--fs-xs); }
  .lh-pick-nojs { font-size: var(--fs-sm); }
  .le-coins-h { margin: 18px 0 8px; font-size: var(--fs-h3); }
  .lh-fs { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; min-height: 30px; border: 1px solid var(--line2); border-radius: 8px; background: var(--panel); color: var(--muted); cursor: pointer; }
  .lh-fs:hover, .lh-fs[aria-pressed="true"] { color: var(--text); }
  .lh-rail { padding: 2px 14px 12px; }
  .lh-rail .stat { background: var(--panel2); box-shadow: none; }
  .lh-rail .lh-s { border-top: 2px solid var(--up); } .lh-rail .lh-l { border-top: 2px solid var(--down); }
  @media (min-width: 82.5rem) {
    .lh-body { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; }
    .lh-rail { grid-template-columns: 1fr; align-content: start; padding: 4px 14px 6px 0; }
  }
  .lh-work:fullscreen { overflow: auto; border-radius: 0; background: var(--bg); }
  .lh-work:fullscreen .lh-canvas { height: max(360px, calc(100vh - 9rem)); }
  .lh-rail .stat-label .up { color: var(--up); } .lh-rail .stat-label .down { color: var(--down); }
  .le-summary .lede + .lede { margin-top: 10px; }
  @media (hover: hover) and (min-width: 40rem) { .lh-keys { white-space: nowrap; } }
  .lh-tip { position: absolute; z-index: 2; pointer-events: none; padding: 6px 8px; border: 1px solid var(--line2); border-radius: 6px; background: var(--panel); color: var(--muted); font-size: 12px; line-height: 1.45; white-space: nowrap; box-shadow: 0 4px 14px rgba(0, 0, 0, .25); }
  .lh-tip .lh-tip-v { color: var(--text); font-weight: 600; }
  .lh-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; padding: 0 14px 10px; font-size: 12.5px; color: var(--muted); }
  .lh-legend label { display: inline-flex; align-items: center; gap: 6px; }
  .lh-legend input[type=range] { width: 120px; }
  .lm-chart { padding: 4px 14px 6px; }
  .lm-svg { display: block; width: 100%; height: auto; }
  .lm-plot { fill: var(--panel2); }
  .lm-grid { stroke: var(--line); stroke-width: 1; }
  .lm-long { fill: var(--down); fill-opacity: .8; }
  .lm-short { fill: var(--up); fill-opacity: .8; }
  .lm-long:hover, .lm-short:hover { fill-opacity: 1; }
  .lm-cum { fill: none; stroke-width: 2; stroke-linejoin: round; }
  .lm-cum-long { stroke: var(--down); stroke-dasharray: 5 3; }
  .lm-cum-short { stroke: var(--up); stroke-dasharray: 5 3; }
  .lm-mark { stroke: var(--text); stroke-width: 1.5; stroke-dasharray: 4 4; }
  .lm-tx { fill: var(--muted); font-size: 12px; font-family: inherit; }
  .lm-dim { fill: var(--dim); font-size: 11px; }
  .lm-cumtx { fill: var(--dim); }
  .lm-marktx { fill: var(--text); font-weight: 600; }
  .lm-empty { font-size: 16px; }
  .lm-narrow { display: none; }
  .lm-narrow .lm-tx { font-size: 14px; }
  .lm-narrow .lm-dim { font-size: 12.5px; }
  @media (max-width: 600px) {
    .lm-wide { display: none; }
    .lm-narrow { display: block; }
    .lm-chart { padding: 4px 6px 6px; }
  }
  .lm-legend { display: flex; flex-wrap: wrap; gap: 6px 16px; padding: 0 14px 10px; font-size: 12.5px; color: var(--muted); }
  .lm-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: 6px; vertical-align: -1px; }
  .lm-legend .k-long { background: var(--down); } .lm-legend .k-short { background: var(--up); }
  .lm-legend .k-cum { width: 16px; height: 0; border-top: 2px dashed var(--muted); border-radius: 0; vertical-align: 3px; }
