/* Pathology Studio — the slide is the page. Calm neutral chrome: greys,
   near-black primary actions, grey selection, blue only for links, focus and
   the measuring tools. Every colour derives from the window's tokens
   (--surface, --ink, --muted, --accent) so light, dark and custom window
   themes work. Class names avoid the suffixes and words the desktop's colour
   themes repaint (-panel, -card, -stage, -canvas, -tab, toolbar, sidebar…). */

.pth {
  --pth-bg: var(--surface, #fbfbfa);
  --pth-base: #ffffff;
  --pth-ink: var(--ink, #1c1c1b);
  --pth-ink2: color-mix(in srgb, var(--pth-ink) 74%, var(--pth-bg));
  --pth-muted: var(--muted, #6b6a66);
  --pth-faint: color-mix(in srgb, var(--pth-ink) 42%, var(--pth-bg));
  --pth-line: color-mix(in srgb, var(--pth-ink) 10%, transparent);
  --pth-line2: color-mix(in srgb, var(--pth-ink) 18%, transparent);
  --pth-soft: color-mix(in srgb, var(--pth-ink) 3%, var(--pth-bg));
  --pth-soft2: color-mix(in srgb, var(--pth-ink) 6%, var(--pth-bg));
  --pth-hover: color-mix(in srgb, var(--pth-ink) 5.5%, transparent);
  --pth-sel: color-mix(in srgb, var(--pth-ink) 10%, transparent);
  --pth-cta: color-mix(in srgb, var(--pth-ink) 92%, var(--pth-bg));
  --pth-on-cta: var(--pth-bg);
  --pth-link: var(--accent, #2f6bd8);
  --pth-focus: color-mix(in srgb, var(--accent, #2f6bd8) 55%, transparent);
  --pth-stage: color-mix(in srgb, var(--pth-ink) 7%, var(--pth-bg));
  --pth-good: #1f7a3a;
  --pth-warn: #93620a;
  --pth-warn-bg: color-mix(in srgb, #e0a020 12%, var(--pth-bg));
  --pth-bad: #b3403a;
  --pth-bad-bg: color-mix(in srgb, #d24a40 10%, var(--pth-bg));
  --pth-info-bg: color-mix(in srgb, var(--pth-link) 7%, var(--pth-bg));
  --pth-shadow: 0 1px 2px rgba(0, 0, 0, 0.06), 0 4px 14px rgba(0, 0, 0, 0.07);
  --pth-font: var(--font, system-ui, -apple-system, "Segoe UI", sans-serif);
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  background: var(--pth-bg);
  color: var(--pth-ink);
  font: 13px/1.45 var(--pth-font);
  -webkit-font-smoothing: antialiased;
  container: pth / inline-size;
}
.dark .pth, .pth.dark, [data-app-color-tone="dark"] .pth {
  --pth-base: #1c1c1b;
  --pth-good: #4cc26a;
  --pth-warn: #e2a33a;
  --pth-bad: #ec7a6f;
  --pth-stage: color-mix(in srgb, #000 45%, var(--pth-bg));
  --pth-shadow: 0 1px 2px rgba(0, 0, 0, 0.3), 0 6px 18px rgba(0, 0, 0, 0.35);
}
[data-app-color-tone="light"] .pth { --pth-base: #ffffff; }
.pth *, .pth *::before, .pth *::after { box-sizing: border-box; }
.pth [hidden] { display: none !important; }
:where(.pth) button { font: inherit; color: inherit; }
:where(.pth) input, :where(.pth) select, :where(.pth) textarea { font: inherit; color: var(--pth-ink); }
.pth :focus-visible { outline: 2px solid var(--pth-focus); outline-offset: 1px; }
.pth p { margin: 0; }
.pth h2, .pth h3, .pth h4 { margin: 0; }
.pth .pth-grow { flex: 1; }
.pth .pth-ico { display: inline-flex; width: 18px; height: 18px; flex: 0 0 auto; align-items: center; justify-content: center; }
.pth .pth-ico svg { display: block; }
.pth .pth-fine { color: var(--pth-muted); font-size: 11.5px; line-height: 1.45; }
.pth .pth-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pth .pth-row-end { justify-content: flex-end; margin-top: 8px; }
.pth kbd, .pth .pth-kbd {
  display: inline-block; min-width: 18px; padding: 0 5px; border: 1px solid var(--pth-line2); border-bottom-width: 2px;
  border-radius: 5px; font: 10.5px/16px var(--pth-font); color: var(--pth-muted); background: var(--pth-bg); text-align: center; white-space: nowrap;
}
.pth .pth-count {
  display: inline-block; min-width: 18px; padding: 0 5px; border-radius: 9px; background: var(--pth-soft2);
  font-size: 10.5px; line-height: 16px; color: var(--pth-muted); text-align: center; font-weight: 600;
}

/* ── Buttons ─────────────────────────────────────────────────────────── */
.pth .pth-btn {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 11px;
  border: 1px solid var(--pth-line2); border-radius: 7px; background: var(--pth-bg); cursor: pointer; white-space: nowrap;
}
.pth .pth-btn:hover:not(:disabled) { background: var(--pth-hover); }
.pth .pth-btn:disabled { opacity: 0.5; cursor: default; }
.pth .pth-btn.is-on { background: var(--pth-sel); }
.pth .pth-btn.is-danger { color: var(--pth-bad); border-color: color-mix(in srgb, var(--pth-bad) 40%, transparent); }
.pth .pth-cta {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 30px; padding: 0 14px;
  border: 0; border-radius: 7px; background: var(--pth-cta); color: var(--pth-on-cta); font-weight: 600; cursor: pointer; white-space: nowrap;
}
.pth .pth-cta:hover:not(:disabled) { background: color-mix(in srgb, var(--pth-cta) 86%, var(--pth-bg)); }
.pth .pth-cta:disabled { opacity: 0.45; cursor: default; }
.pth .pth-cta-wide { width: 100%; }
.pth .pth-ibtn {
  display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; padding: 0;
  border: 0; border-radius: 7px; background: transparent; color: var(--pth-ink2); cursor: pointer;
}
.pth .pth-ibtn:hover:not(:disabled) { background: var(--pth-hover); color: var(--pth-ink); }
.pth .pth-ibtn[aria-pressed="true"] { background: var(--pth-sel); color: var(--pth-ink); }
.pth .pth-ibtn:disabled { opacity: 0.4; cursor: default; }
.pth .pth-link {
  display: inline-flex; align-items: center; gap: 4px; border: 0; background: transparent; padding: 2px 0;
  color: var(--pth-link); cursor: pointer; font-size: 12px;
}
.pth .pth-link:hover { text-decoration: underline; }
.pth .pth-link .pth-ico { width: 14px; height: 14px; }

/* ── Top bar ─────────────────────────────────────────────────────────── */
.pth .pth-top {
  display: flex; align-items: center; gap: 10px; height: 46px; padding: 0 10px; flex: 0 0 auto;
  border-bottom: 1px solid var(--pth-line); background: var(--pth-bg); position: relative; z-index: 6;
}
.pth .pth-top-l, .pth .pth-top-r { display: flex; align-items: center; gap: 4px; min-width: 0; flex: 0 0 auto; }
.pth .pth-top-r { gap: 6px; }
.pth .pth-top-m { flex: 1; min-width: 0; display: flex; justify-content: center; overflow: hidden; }
.pth .pth-topbtn {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border: 0; border-radius: 7px;
  background: transparent; cursor: pointer; color: var(--pth-ink2); font-weight: 500;
}
.pth .pth-topbtn:hover, .pth .pth-topbtn.is-on { background: var(--pth-hover); color: var(--pth-ink); }
.pth .pth-casebtn {
  display: inline-flex; align-items: baseline; gap: 8px; max-width: 420px; height: 30px; padding: 0 10px; border: 0; border-radius: 7px;
  background: transparent; cursor: pointer; overflow: hidden; white-space: nowrap; align-items: center;
}
.pth .pth-casebtn:hover { background: var(--pth-hover); }
.pth .pth-casebtn strong { font-weight: 650; }
.pth .pth-casebtn span:not(.pth-tag) { color: var(--pth-muted); overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pth .pth-slidechips { display: flex; align-items: center; gap: 4px; overflow-x: auto; scrollbar-width: none; padding: 2px; }
.pth .pth-schip {
  display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border: 1px solid transparent; border-radius: 7px;
  background: transparent; cursor: pointer; white-space: nowrap; color: var(--pth-ink2); font-size: 12.5px;
}
.pth .pth-schip:hover { background: var(--pth-hover); color: var(--pth-ink); }
.pth .pth-schip.is-on { background: var(--pth-sel); color: var(--pth-ink); font-weight: 600; }
.pth .pth-schip.is-b { border-color: var(--pth-line2); }
.pth .pth-schip-add { padding: 0 7px; color: var(--pth-muted); }
.pth .pth-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--pth-line2); flex: 0 0 auto; }
.pth .pth-dot.is-done { background: var(--pth-good); }
.pth .pth-dot.is-warn { background: #d18b16; }
.pth .pth-dot.is-busy { background: var(--pth-link); animation: pth-pulse 1s ease-in-out infinite; }
@keyframes pth-pulse { 50% { opacity: 0.35; } }
.pth .pth-find {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 8px 0 10px; border: 1px solid var(--pth-line2); border-radius: 8px;
  background: var(--pth-soft); color: var(--pth-muted); cursor: pointer; min-width: 150px;
}
.pth .pth-find span:not(.pth-ico) { flex: 1; text-align: left; }
.pth .pth-find:hover { background: var(--pth-hover); }
.pth .pth-aibtn {
  display: inline-flex; align-items: center; gap: 5px; height: 30px; padding: 0 11px; border: 1px solid var(--pth-line2); border-radius: 8px;
  background: var(--pth-bg); cursor: pointer; font-weight: 600;
}
.pth .pth-aibtn:hover, .pth .pth-aibtn.is-on { background: var(--pth-sel); }
@container pth (max-width: 980px) {
  .pth .pth-find span:not(.pth-ico), .pth .pth-find kbd, .pth .pth-topbtn span:not(.pth-ico) { display: none; }
  .pth .pth-find { min-width: 0; }
  .pth .pth-casebtn span:not(.pth-tag) { display: none; }
}

/* ── Body ────────────────────────────────────────────────────────────── */
.pth .pth-body { position: relative; flex: 1; min-height: 0; display: flex; }
.pth .pth-casev { display: flex; flex: 1; min-width: 0; min-height: 0; }
.pth .pth-scope { position: relative; flex: 1; min-width: 0; background: var(--pth-stage); overflow: hidden; }
.pth .pth-views { position: absolute; inset: 0; display: grid; grid-template-columns: 1fr; gap: 2px; background: var(--pth-line2); }
.pth.is-compare .pth-views { grid-template-columns: 1fr 1fr; }
.pth .pth-view { position: relative; overflow: hidden; background: var(--pth-stage); min-width: 0; --pth-stage: color-mix(in srgb, var(--pth-ink) 7%, var(--pth-bg)); }
.pth .pth-cv { position: absolute; inset: 0; display: block; touch-action: none; outline: none; cursor: default; }
.pth .pth-viewlabel {
  position: absolute; z-index: 2; left: 60px; top: 10px; padding: 3px 9px; border-radius: 6px; font-size: 12px; font-weight: 600;
  background: color-mix(in srgb, var(--pth-base) 88%, transparent); box-shadow: var(--pth-shadow); pointer-events: none; display: none;
}
.pth.is-compare .pth-viewlabel { display: block; }
.pth .pth-minimap {
  position: absolute; z-index: 2; right: 12px; bottom: 12px; border-radius: 6px; border: 1px solid var(--pth-line2);
  box-shadow: var(--pth-shadow); cursor: crosshair; background: #f4f3f6;
}
.pth .pth-rail {
  position: absolute; z-index: 3; left: 10px; top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 2px; padding: 4px;
  background: color-mix(in srgb, var(--pth-base) 94%, transparent); border: 1px solid var(--pth-line); border-radius: 10px; box-shadow: var(--pth-shadow);
}
.pth .pth-tool {
  display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 0; border-radius: 7px;
  background: transparent; color: var(--pth-ink2); cursor: pointer;
}
.pth .pth-tool:hover { background: var(--pth-hover); color: var(--pth-ink); }
.pth .pth-tool.is-on { background: var(--pth-cta); color: var(--pth-on-cta); }
.pth .pth-rail-sep { height: 1px; margin: 3px 6px; background: var(--pth-line2); }
.pth .pth-mags {
  position: absolute; z-index: 3; left: 50%; bottom: 12px; transform: translateX(-50%); display: flex; align-items: center; gap: 1px; padding: 3px;
  background: color-mix(in srgb, var(--pth-base) 94%, transparent); border: 1px solid var(--pth-line); border-radius: 10px; box-shadow: var(--pth-shadow);
}
.pth .pth-mag {
  display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 28px; padding: 0 6px; border: 0; border-radius: 7px;
  background: transparent; cursor: pointer; font-size: 12px; font-weight: 600; color: var(--pth-ink2); font-variant-numeric: tabular-nums;
}
.pth .pth-mag:hover { background: var(--pth-hover); color: var(--pth-ink); }
.pth .pth-mag.is-on { background: var(--pth-sel); color: var(--pth-ink); }
.pth .pth-mag-now { min-width: 46px; padding: 0 8px; font-size: 12px; color: var(--pth-muted); text-align: right; font-variant-numeric: tabular-nums; border-left: 1px solid var(--pth-line); margin-left: 3px; }
.pth.is-compare .pth-mags { left: 25%; }
.pth.is-compare .pth-pill { left: auto; right: 12px; transform: none; }
.pth .pth-pill {
  position: absolute; z-index: 4; left: 50%; top: 12px; transform: translateX(-50%); display: flex; align-items: center; gap: 8px; padding: 6px 12px;
  background: color-mix(in srgb, var(--pth-base) 95%, transparent); border: 1px solid var(--pth-line); border-radius: 999px; box-shadow: var(--pth-shadow);
  font-size: 12px; white-space: nowrap;
}
.pth .pth-bar { display: inline-block; width: 90px; height: 4px; border-radius: 3px; background: var(--pth-soft2); overflow: hidden; flex: 0 0 auto; }
.pth .pth-bar i { display: block; height: 100%; background: var(--pth-link); transition: width 0.25s ease; }
.pth .pth-spin {
  width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--pth-line2); border-top-color: var(--pth-link);
  animation: pth-spin 0.8s linear infinite; flex: 0 0 auto;
}
@keyframes pth-spin { to { transform: rotate(360deg); } }
.pth .pth-layerpop {
  position: absolute; z-index: 7; top: 8px; right: 10px; width: 270px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px;
  background: var(--pth-base); border: 1px solid var(--pth-line2); border-radius: 10px; box-shadow: var(--pth-shadow);
}
.pth .pth-reviewbar {
  position: absolute; z-index: 4; left: 50%; bottom: 58px; transform: translateX(-50%); display: flex; align-items: center; gap: 6px; padding: 6px 8px 6px 12px;
  background: var(--pth-base); border: 1px solid var(--pth-line2); border-radius: 10px; box-shadow: var(--pth-shadow); white-space: nowrap;
}
.pth .pth-review-n { font-weight: 650; margin-right: 4px; }
.pth .pth-drop {
  position: absolute; inset: 0; z-index: 20; display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--pth-link) 10%, transparent); border: 2px dashed var(--pth-link); pointer-events: none;
}
.pth .pth-drop > div { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 18px 24px; border-radius: 12px; background: var(--pth-base); color: var(--pth-link); font-weight: 600; }

/* ── Side ────────────────────────────────────────────────────────────── */
.pth .pth-side { position: relative; flex: 0 0 auto; width: 360px; min-width: 300px; max-width: 620px; display: flex; flex-direction: column; border-left: 1px solid var(--pth-line); background: var(--pth-bg); }
.pth.is-panel-closed .pth-side { display: none; }
.pth .pth-grip { position: absolute; left: -3px; top: 0; bottom: 0; width: 6px; cursor: col-resize; z-index: 2; }
.pth .pth-grip:hover { background: var(--pth-focus); }
.pth .pth-segs { display: flex; gap: 2px; padding: 3px; border-radius: 9px; background: var(--pth-soft2); }
.pth .pth-side-segs { margin: 10px 12px 4px; }
.pth .pth-seg {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 5px; height: 28px; padding: 0 8px; border: 0; border-radius: 7px;
  background: transparent; cursor: pointer; color: var(--pth-ink2); font-size: 12.5px; font-weight: 500; white-space: nowrap;
}
.pth .pth-seg .pth-ico { width: 15px; height: 15px; }
.pth .pth-seg:hover { color: var(--pth-ink); }
.pth .pth-seg.is-on { background: var(--pth-base); color: var(--pth-ink); box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08); font-weight: 600; }
.pth .pth-side-b { flex: 1; min-height: 0; overflow: auto; padding: 8px 14px 16px; display: flex; flex-direction: column; gap: 10px; }

/* ── Findings ────────────────────────────────────────────────────────── */
.pth .pth-blank { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 28px 12px; text-align: center; color: var(--pth-muted); }
.pth .pth-status-line { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--pth-muted); }
.pth .pth-status-line .pth-ico { width: 14px; height: 14px; }
.pth .pth-headline { font-size: 15px; line-height: 1.4; font-weight: 600; letter-spacing: -0.005em; }
.pth .pth-chips { display: flex; flex-wrap: wrap; gap: 5px; }
.pth .pth-chip {
  display: inline-flex; align-items: center; gap: 4px; height: 24px; padding: 0 8px; border-radius: 6px; background: var(--pth-soft2);
  font-size: 11.5px; color: var(--pth-ink2); white-space: nowrap; border: 0;
}
.pth .pth-chip.is-bad { background: var(--pth-bad-bg); color: var(--pth-bad); }
.pth .pth-chip-btn { cursor: pointer; height: 28px; padding: 0 10px; font-size: 12px; }
.pth .pth-chip-btn:hover:not(:disabled) { background: var(--pth-sel); color: var(--pth-ink); }
.pth .pth-callout {
  display: flex; align-items: flex-start; gap: 8px; padding: 9px 10px; border-radius: 8px; border: 0; text-align: left; width: 100%;
  background: var(--pth-info-bg); color: var(--pth-ink); cursor: default;
}
button.pth-callout { cursor: pointer; }
.pth .pth-callout strong { display: block; font-size: 12.5px; }
.pth .pth-callout p { font-size: 12px; color: var(--pth-ink2); }
.pth .pth-callout .pth-ico { color: var(--pth-link); margin-top: 1px; }
.pth .pth-callout.is-warn { background: var(--pth-warn-bg); }
.pth .pth-callout.is-warn .pth-ico { color: var(--pth-warn); }
.pth .pth-callout.is-bad { background: var(--pth-bad-bg); }
.pth .pth-callout.is-bad .pth-ico { color: var(--pth-bad); }
.pth .pth-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 6px; }
.pth .pth-kpi {
  display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 9px 10px; border: 1px solid var(--pth-line); border-radius: 9px;
  background: var(--pth-soft); text-align: left; min-width: 0;
}
button.pth-kpi:not([onclick]) { cursor: default; }
.pth .pth-kpi-v { font-size: 17px; font-weight: 650; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.pth .pth-kpi-l { font-size: 11px; color: var(--pth-muted); }
.pth .pth-sec { display: flex; flex-direction: column; gap: 7px; padding-top: 10px; border-top: 1px solid var(--pth-line); }
.pth .pth-sec-h { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.pth .pth-sec h4 { font-size: 11.5px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pth-muted); }
.pth .pth-dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; margin: 0; font-size: 12.5px; }
.pth .pth-dl dt { color: var(--pth-muted); }
.pth .pth-dl dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; }
.pth .pth-dl-wide { grid-template-columns: 140px 1fr; }
.pth .pth-dl-wide dd { text-align: left; }
.pth .pth-stack { display: flex; flex-direction: column; gap: 6px; }
.pth .pth-stack-bar { display: flex; height: 14px; border-radius: 4px; overflow: hidden; gap: 1px; background: var(--pth-line); }
.pth .pth-stack-seg { border: 0; padding: 0; min-width: 2px; cursor: pointer; }
.pth .pth-stack-seg:hover { filter: brightness(1.12); }
.pth .pth-stack-key { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11.5px; color: var(--pth-ink2); }
.pth .pth-stack-key span { display: inline-flex; align-items: center; gap: 4px; }
.pth .pth-stack-key i, .pth .pth-swatch { display: inline-block; width: 9px; height: 9px; border-radius: 2px; flex: 0 0 auto; }
.pth .pth-adjust { font-size: 12px; }
.pth .pth-adjust summary { cursor: pointer; color: var(--pth-link); list-style: none; }
.pth .pth-adjust summary::-webkit-details-marker { display: none; }
.pth .pth-adjust[open] summary { margin-bottom: 6px; }
.pth .pth-slider { display: grid; grid-template-columns: 1fr 120px 44px; align-items: center; gap: 8px; font-size: 12px; }
.pth .pth-slider input { width: 100%; accent-color: var(--pth-cta); }
.pth .pth-slider output { text-align: right; font-variant-numeric: tabular-nums; color: var(--pth-muted); }
.pth .pth-note-text { font-size: 12px; color: var(--pth-ink2); }
.pth .pth-grade { display: flex; flex-direction: column; gap: 6px; padding: 10px; border-radius: 9px; background: var(--pth-soft); border: 1px solid var(--pth-line); }
.pth .pth-grade-h { display: flex; justify-content: space-between; align-items: baseline; }
.pth .pth-grade-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.pth .pth-grade-part { display: flex; flex-direction: column; align-items: center; padding: 6px; border-radius: 7px; background: var(--pth-bg); font-size: 11px; color: var(--pth-muted); }
.pth .pth-grade-part b { font-size: 18px; color: var(--pth-ink); }
.pth .pth-pat { display: flex; align-items: center; gap: 2px; }
.pth .pth-pat.is-off { opacity: 0.5; }
.pth .pth-pat-eye { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 0; border-radius: 6px; background: transparent; cursor: pointer; }
.pth .pth-pat-eye:hover { background: var(--pth-hover); }
.pth .pth-pat-eye i { width: 12px; height: 12px; border-radius: 3px; }
.pth .pth-pat-name { flex: 1; display: flex; justify-content: space-between; gap: 8px; align-items: center; height: 26px; padding: 0 6px; border: 0; border-radius: 6px; background: transparent; cursor: pointer; text-align: left; min-width: 0; }
.pth .pth-pat-name:hover { background: var(--pth-hover); }
.pth .pth-pat-name span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pth .pth-pat-v { color: var(--pth-muted); font-size: 12px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pth .pth-finding {
  display: flex; flex-direction: column; gap: 3px; padding: 8px 9px; border: 1px solid var(--pth-line); border-radius: 8px; background: var(--pth-bg);
  text-align: left; cursor: pointer; width: 100%;
}
.pth .pth-finding:hover { background: var(--pth-soft); }
.pth .pth-finding-top { display: flex; justify-content: space-between; gap: 8px; }
.pth .pth-finding-top strong { font-size: 12.5px; }
.pth .pth-finding-v { font-weight: 650; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pth .pth-finding p { font-size: 12px; color: var(--pth-ink2); }
.pth .pth-go { display: inline-flex; align-items: center; gap: 3px; font-size: 11px; color: var(--pth-link); }
.pth .pth-go .pth-ico { width: 13px; height: 13px; }
.pth .pth-review { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.pth .pth-teach-classes, .pth .pth-drawcls { display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
.pth .pth-teach-cls {
  display: inline-flex; align-items: center; gap: 5px; height: 26px; padding: 0 8px; border: 1px solid var(--pth-line2); border-radius: 7px;
  background: var(--pth-bg); cursor: pointer; font-size: 12px;
}
.pth .pth-teach-cls i { width: 10px; height: 10px; border-radius: 3px; }
.pth .pth-teach-cls.is-on { background: var(--pth-sel); border-color: var(--pth-ink2); font-weight: 600; }

/* ── Annotations ─────────────────────────────────────────────────────── */
.pth .pth-toolhint { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11.5px; color: var(--pth-muted); }
.pth .pth-hintkey { display: inline-flex; align-items: center; gap: 4px; }
.pth .pth-annlist { display: flex; flex-direction: column; gap: 2px; }
.pth .pth-ann { display: flex; align-items: center; gap: 4px; border-radius: 7px; }
.pth .pth-ann.is-on { background: var(--pth-sel); }
.pth .pth-ann-main { flex: 1; display: flex; align-items: center; gap: 8px; height: 32px; padding: 0 8px; border: 0; border-radius: 7px; background: transparent; cursor: pointer; text-align: left; min-width: 0; }
.pth .pth-ann-main:hover { background: var(--pth-hover); }
.pth .pth-ann-name { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pth .pth-ann-m { color: var(--pth-muted); font-size: 12px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.pth .pth-ico-faint { color: var(--pth-faint); padding-right: 6px; }
.pth .pth-form { display: flex; flex-direction: column; gap: 6px; }
.pth .pth-input {
  width: 100%; min-height: 30px; padding: 5px 9px; border: 1px solid var(--pth-line2); border-radius: 7px; background: var(--pth-base); color: var(--pth-ink);
  resize: vertical;
}
.pth .pth-input:disabled { opacity: 0.65; }
.pth .pth-input:focus { outline: none; border-color: var(--pth-link); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pth-link) 18%, transparent); }
.pth select.pth-input { padding-right: 24px; }
.pth .pth-mono { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 12px; }
.pth .pth-switch { display: flex; align-items: center; gap: 8px; font-size: 12.5px; cursor: pointer; }
.pth .pth-switch input { accent-color: var(--pth-cta); width: 15px; height: 15px; }
.pth .pth-switch small { margin-left: auto; color: var(--pth-muted); font-size: 11px; }

/* ── Report ──────────────────────────────────────────────────────────── */
.pth .pth-rep-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.pth .pth-status, .pth .pth-tag {
  display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 6px; font-size: 11.5px; font-weight: 600; white-space: nowrap;
  background: var(--pth-soft2); color: var(--pth-ink2);
}
.pth .pth-tag { height: 19px; font-size: 10.5px; padding: 0 6px; }
.pth .pth-tag.is-faint { background: transparent; border: 1px solid var(--pth-line2); color: var(--pth-muted); font-weight: 500; }
.pth .pth-status.s-new { background: color-mix(in srgb, var(--pth-link) 12%, var(--pth-bg)); color: var(--pth-link); }
.pth .pth-status.s-in_review { background: var(--pth-warn-bg); color: var(--pth-warn); }
.pth .pth-status.s-draft { background: var(--pth-soft2); }
.pth .pth-status.s-signed, .pth .pth-status.s-amended { background: color-mix(in srgb, var(--pth-good) 12%, var(--pth-bg)); color: var(--pth-good); }
.pth .pth-field { display: flex; flex-direction: column; gap: 4px; }
.pth .pth-field-l { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--pth-ink2); }
.pth .pth-field-l small { color: var(--pth-faint); }
.pth .pth-src { display: inline-flex; align-items: center; gap: 3px; margin-left: auto; font-size: 10.5px; color: var(--pth-muted); }
.pth .pth-src .pth-ico { width: 12px; height: 12px; }
.pth .pth-sugg {
  display: grid; grid-template-columns: auto auto 1fr auto; align-items: center; gap: 6px; width: 100%; padding: 5px 8px; border: 1px dashed color-mix(in srgb, var(--pth-link) 45%, transparent);
  border-radius: 7px; background: color-mix(in srgb, var(--pth-link) 5%, var(--pth-bg)); cursor: pointer; text-align: left; font-size: 12px;
}
.pth .pth-sugg:hover { background: color-mix(in srgb, var(--pth-link) 10%, var(--pth-bg)); }
.pth .pth-sugg .pth-ico { width: 12px; height: 12px; color: var(--pth-link); }
.pth .pth-sugg span { font-weight: 650; white-space: nowrap; }
.pth .pth-sugg small { color: var(--pth-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.pth .pth-sugg b { color: var(--pth-link); font-weight: 600; }
.pth .pth-figs { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 8px; }
.pth .pth-fig { position: relative; margin: 0; display: flex; flex-direction: column; gap: 4px; }
.pth .pth-fig img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 6px; border: 1px solid var(--pth-line); }
.pth .pth-fig-wait { aspect-ratio: 4 / 3; border-radius: 6px; background: var(--pth-soft2); display: flex; align-items: center; justify-content: center; color: var(--pth-muted); font-size: 11px; }
.pth .pth-fig figcaption { font-size: 11px; color: var(--pth-muted); }
.pth .pth-fig .pth-ibtn { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; background: color-mix(in srgb, var(--pth-base) 85%, transparent); }
.pth .pth-signbar { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 0 2px; border-top: 1px solid var(--pth-line); position: sticky; bottom: -16px; background: var(--pth-bg); padding-bottom: 12px; }
.pth .pth-signed { display: flex; align-items: center; gap: 6px; width: 100%; color: var(--pth-good); font-weight: 600; font-size: 12.5px; }
.pth .pth-ver { padding: 6px 0; border-bottom: 1px solid var(--pth-line); }
.pth .pth-tblwrap { overflow-x: auto; }
.pth .pth-tbl { border-collapse: collapse; width: 100%; font-size: 12px; }
.pth .pth-tbl th, .pth .pth-tbl td { padding: 4px 6px; border-bottom: 1px solid var(--pth-line); text-align: left; white-space: nowrap; }
.pth .pth-tbl th { color: var(--pth-muted); font-weight: 600; background: var(--pth-soft); }
.pth .pth-tbl td:not(:first-child) { text-align: center; font-variant-numeric: tabular-nums; }

/* ── AI ──────────────────────────────────────────────────────────────── */
.pth .pth-quick { display: flex; flex-wrap: wrap; gap: 5px; }
.pth .pth-thread { display: flex; flex-direction: column; gap: 10px; flex: 1; min-height: 120px; }
.pth .pth-msg { display: flex; flex-direction: column; gap: 5px; }
.pth .pth-msg.is-user { align-self: flex-end; max-width: 88%; padding: 7px 10px; border-radius: 10px 10px 3px 10px; background: var(--pth-sel); }
.pth .pth-msg.is-assistant { padding: 2px 0; }
.pth .pth-msg-h { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--pth-muted); }
.pth .pth-msg-b { font-size: 13px; line-height: 1.5; display: flex; flex-direction: column; gap: 6px; }
.pth .pth-msg-b ul { margin: 0; padding-left: 18px; }
.pth .pth-composer { display: flex; flex-direction: column; gap: 6px; position: sticky; bottom: -16px; background: var(--pth-bg); padding: 8px 0 12px; }
.pth .pth-ask { min-height: 64px; }

/* ── Worklist ────────────────────────────────────────────────────────── */
.pth .pth-home { flex: 1; overflow: auto; padding: 22px 26px 30px; display: flex; flex-direction: column; gap: 14px; }
.pth .pth-home > * { width: 100%; max-width: 1240px; margin: 0 auto; }
.pth .pth-home-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pth .pth-home-h h2 { font-size: 21px; font-weight: 650; letter-spacing: -0.01em; }
.pth .pth-home-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.pth .pth-home-bar .pth-segs { flex: 0 1 auto; }
.pth .pth-home-bar .pth-seg { flex: 0 0 auto; padding: 0 11px; }
.pth .pth-search { flex: 1; min-width: 200px; max-width: 360px; height: 32px; }
.pth .pth-wllist { display: flex; flex-direction: column; border: 1px solid var(--pth-line); border-radius: 12px; overflow: hidden; background: var(--pth-base); }
.pth .pth-wl {
  display: grid; grid-template-columns: 70px minmax(220px, 1.4fr) minmax(150px, 0.9fr) minmax(220px, 1.6fr) 104px 74px; align-items: center; gap: 14px;
  padding: 11px 16px; border: 0; border-bottom: 1px solid var(--pth-line); background: transparent; cursor: pointer; text-align: left; width: 100%;
}
.pth .pth-wl:last-child { border-bottom: 0; }
.pth .pth-wl:hover { background: var(--pth-soft); }
.pth .pth-pri { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pth-muted); }
.pth .pth-pri.p-urgent { color: var(--pth-warn); }
.pth .pth-pri.p-stat { color: var(--pth-bad); }
.pth .pth-wl-main { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.pth .pth-wl-top { display: flex; align-items: center; gap: 6px; }
.pth .pth-wl-title { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--pth-ink2); }
.pth .pth-wl-sub { font-size: 11.5px; color: var(--pth-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pth .pth-wl-slides { display: flex; flex-wrap: wrap; gap: 3px; }
.pth .pth-slidechip { display: inline-flex; align-items: center; height: 20px; padding: 0 6px; border-radius: 5px; font-size: 11px; background: var(--pth-soft2); color: var(--pth-ink2); white-space: nowrap; }
.pth .pth-slidechip.is-done { box-shadow: inset 0 -2px 0 color-mix(in srgb, var(--pth-good) 55%, transparent); }
.pth .pth-slidechip.is-flag { box-shadow: inset 0 -2px 0 #d18b16; }
.pth .pth-wl-ai { min-width: 0; font-size: 12px; color: var(--pth-ink2); }
.pth .pth-wl-ai-t { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pth .pth-wl-ai-t .pth-ico { width: 13px; height: 13px; vertical-align: -2px; margin-right: 3px; color: var(--pth-link); }
.pth .pth-wl-when { font-size: 11.5px; color: var(--pth-muted); text-align: right; white-space: nowrap; }
.pth .pth-home-foot { text-align: center; }
@container pth (max-width: 1100px) {
  .pth .pth-wl { grid-template-columns: 60px minmax(180px, 1.4fr) minmax(200px, 1.6fr) 100px; }
  .pth .pth-wl-slides, .pth .pth-wl-when { display: none; }
}
@container pth (max-width: 760px) {
  .pth .pth-wl { grid-template-columns: 1fr auto; }
  .pth .pth-pri, .pth .pth-wl-ai { display: none; }
}

/* ── Sheets and palette ──────────────────────────────────────────────── */
.pth .pth-sheet-wrap, .pth .pth-pal-wrap {
  position: absolute; inset: 0; z-index: 40; display: flex; align-items: flex-start; justify-content: center; padding: 56px 16px 16px;
  background: color-mix(in srgb, #000 22%, transparent);
}
.pth .pth-sheet {
  width: min(480px, 100%); max-height: calc(100% - 20px); display: flex; flex-direction: column; border-radius: 12px; overflow: hidden;
  background: var(--pth-base); box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28); border: 1px solid var(--pth-line2);
}
.pth .pth-sheet.is-wide { width: min(720px, 100%); }
.pth .pth-sheet-h { display: flex; align-items: center; justify-content: space-between; padding: 12px 14px 8px 18px; }
.pth .pth-sheet-h h3 { font-size: 15px; font-weight: 650; }
.pth .pth-sheet-b { padding: 4px 18px 14px; overflow: auto; display: flex; flex-direction: column; gap: 10px; }
.pth .pth-sheet-f { display: flex; justify-content: flex-end; gap: 6px; padding: 10px 14px; border-top: 1px solid var(--pth-line); background: var(--pth-soft); }
.pth .pth-sheet-text { font-size: 13px; }
.pth .pth-sheet-sub { font-size: 12px; margin-top: 8px; color: var(--pth-muted); }
.pth .pth-preview-text { margin: 0; max-height: 260px; overflow: auto; padding: 10px 12px; border-radius: 8px; background: var(--pth-soft); border: 1px solid var(--pth-line); font: 12px/1.5 ui-monospace, "SF Mono", Menlo, monospace; white-space: pre-wrap; }
.pth .pth-audit { display: flex; flex-direction: column; max-height: 220px; overflow: auto; }
.pth .pth-audit-row { display: grid; grid-template-columns: 150px 1fr; gap: 8px; padding: 3px 0; border-bottom: 1px solid var(--pth-line); font-size: 12px; }
.pth .pth-improws { display: flex; flex-direction: column; gap: 8px; }
.pth .pth-improw { display: grid; grid-template-columns: 1fr 1fr 150px 150px; gap: 6px; align-items: center; }
.pth .pth-improw > span { grid-column: 1 / -1; }
.pth .pth-sendlist { display: flex; flex-direction: column; gap: 4px; }
.pth .pth-sendrow { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 9px 12px; border: 1px solid var(--pth-line); border-radius: 8px; background: var(--pth-bg); cursor: pointer; text-align: left; }
.pth .pth-sendrow:hover { background: var(--pth-soft); }
.pth .pth-keys { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.pth .pth-keys h4 { font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pth-muted); margin-bottom: 6px; }
.pth .pth-keyrow { display: flex; align-items: center; gap: 8px; padding: 3px 0; font-size: 12.5px; }
.pth .pth-keyrow kbd { min-width: 54px; }
.pth .pth-pal-wrap { padding-top: 70px; }
.pth .pth-pal { width: min(560px, 100%); display: flex; flex-direction: column; border-radius: 12px; overflow: hidden; background: var(--pth-base); box-shadow: 0 18px 60px rgba(0, 0, 0, 0.28); border: 1px solid var(--pth-line2); }
.pth .pth-pal-top { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--pth-line); color: var(--pth-muted); }
.pth .pth-pal-in { flex: 1; border: 0; outline: 0; background: transparent; font-size: 14px; color: var(--pth-ink); }
.pth .pth-pal-list { max-height: 380px; overflow: auto; padding: 4px; }
.pth .pth-pal-row { display: flex; align-items: center; gap: 10px; width: 100%; height: 34px; padding: 0 10px; border: 0; border-radius: 7px; background: transparent; cursor: pointer; text-align: left; }
.pth .pth-pal-row.is-on { background: var(--pth-sel); }
.pth .pth-pal-l { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pth .pth-pal-g { color: var(--pth-muted); font-size: 11.5px; white-space: nowrap; }
.pth .pth-pal-none { padding: 18px; text-align: center; color: var(--pth-muted); }
.pth .pth-pal-foot { display: flex; justify-content: space-between; padding: 6px 12px; border-top: 1px solid var(--pth-line); font-size: 11px; color: var(--pth-muted); background: var(--pth-soft); }

/* ── Status line ─────────────────────────────────────────────────────── */
.pth .pth-foot {
  display: flex; align-items: center; gap: 12px; height: 26px; padding: 0 12px; flex: 0 0 auto; border-top: 1px solid var(--pth-line);
  font-size: 11.5px; color: var(--pth-muted); background: var(--pth-bg); white-space: nowrap; overflow: hidden;
}
.pth .pth-foot-l { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.pth .pth-foot-r { font-variant-numeric: tabular-nums; }

/* ── Graphs (pth-gx: never "chart"/"graph"/"plot", which window themes repaint) ── */
.pth .pth-gx { position: relative; color: var(--pth-ink); }
.pth .pth-gx-svg { display: block; width: 100%; height: auto; overflow: visible; font: 10.5px/1 var(--pth-font); user-select: none; touch-action: none; }
.pth .pth-gx-svg text { fill: var(--pth-ink2); }
.pth .pth-gx-lab { font-size: 11px; }
.pth .pth-gx-val { font-size: 10.5px; fill: var(--pth-muted) !important; font-variant-numeric: tabular-nums; }
.pth .pth-gx-tick { font-size: 9.5px; fill: var(--pth-muted) !important; font-variant-numeric: tabular-nums; }
.pth .pth-gx-track { fill: var(--pth-soft2); }
.pth .pth-gx-hit { fill: transparent; }
.pth .pth-gx-row.is-pick { cursor: pointer; }
.pth .pth-gx-row.is-pick:hover .pth-gx-hit, .pth .pth-gx-row:focus-visible .pth-gx-hit { fill: var(--pth-hover); }
.pth .pth-gx-row:focus { outline: none; }
.pth .pth-gx-row.is-on .pth-gx-hit { fill: var(--pth-sel); }
.pth .pth-gx-row.is-on .pth-gx-lab { font-weight: 650; fill: var(--pth-ink) !important; }
.pth .pth-gx-axis { stroke: var(--pth-line2); stroke-width: 1; }
.pth .pth-gx-grid { stroke: var(--pth-line); stroke-width: 1; }
.pth .pth-gx-mark { stroke: var(--pth-ink2); stroke-width: 1.2; stroke-dasharray: 4 3; }
.pth .pth-gx-hair { stroke: var(--pth-faint); stroke-width: 1; }
.pth .pth-gx-brush { fill: color-mix(in srgb, var(--pth-link) 16%, transparent); stroke: var(--pth-link); stroke-width: 1; }
.pth .pth-gx-cut.is-drag { cursor: ew-resize; }
.pth .pth-gx-grab { fill: transparent; }
.pth .pth-gx-cutlab { font-size: 10px; font-weight: 650; }
.pth .pth-gx-tip {
  position: absolute; z-index: 3; pointer-events: none; max-width: 240px; padding: 4px 7px; border-radius: 6px;
  background: color-mix(in srgb, var(--pth-ink) 88%, transparent); color: var(--pth-bg); font-size: 11px; line-height: 1.35; white-space: normal;
}
.pth .pth-gx-key { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11px; color: var(--pth-muted); margin-top: 2px; }
.pth .pth-gx-key span { display: inline-flex; align-items: center; gap: 4px; }
.pth .pth-gx-key i { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }
.pth .pth-gx-head { display: flex; align-items: flex-start; gap: 8px; }
.pth .pth-gx-head .pth-fine { flex: 1; }
.pth .pth-gx-live { color: var(--pth-ink); font-weight: 600; }
.pth .pth-gx-list { display: flex; flex-wrap: wrap; gap: 4px; }
.pth .pth-gx-item {
  display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 8px; border: 1px solid var(--pth-line2); border-radius: 7px;
  background: var(--pth-bg); cursor: pointer; font-size: 11.5px;
}
.pth .pth-gx-item:hover { background: var(--pth-hover); }
.pth .pth-gx-item.is-on { background: var(--pth-sel); border-color: transparent; }
.pth .pth-gx-item b { font-variant-numeric: tabular-nums; }
.pth .pth-gx-item span { color: var(--pth-muted); }
.pth .pth-gx-item.is-low b { color: var(--pth-muted); }
.pth .pth-tbl tr.is-pick { cursor: pointer; }
.pth .pth-tbl tr.is-pick:hover td { background: var(--pth-hover); }
.pth .pth-tbl td .pth-swatch { margin-right: 6px; vertical-align: -1px; }
.pth .pth-gx-wide {
  position: absolute; inset: 0; z-index: 20; overflow: auto; padding: 14px 18px 24px;
  background: var(--pth-bg); border-left: 1px solid var(--pth-line);
}
.pth .pth-gx-wide-h { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.pth .pth-gx-wide-h h3 { font-size: 15px; font-weight: 650; }
.pth .pth-gx-cols { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 6px 22px; align-items: start; }
.pth .pth-gx-cols > .pth-kpis { grid-column: 1 / -1; }

/* ── Hover readout ─────────────────────────────────────────────────────── */
.pth .pth-hud {
  position: absolute; z-index: 12; pointer-events: none; max-width: 300px; padding: 7px 9px; border-radius: 8px;
  background: color-mix(in srgb, var(--pth-bg) 94%, transparent); border: 1px solid var(--pth-line2); box-shadow: var(--pth-shadow);
  font-size: 11.5px; line-height: 1.4; color: var(--pth-ink2); backdrop-filter: blur(6px);
}
.pth .pth-hud-r { display: flex; align-items: baseline; gap: 6px; }
.pth .pth-hud-r i { width: 9px; height: 9px; border-radius: 2px; flex: 0 0 auto; transform: translateY(1px); }
.pth .pth-hud-r.is-strong { color: var(--pth-ink); font-weight: 650; }
.pth .pth-hud-r:last-child { color: var(--pth-muted); font-variant-numeric: tabular-nums; }

/* ── Right-click menu (pth-ctx: never "menu"/"popover") ─────────────────── */
.pth .pth-ctx {
  position: absolute; z-index: 40; min-width: 230px; max-width: 300px; padding: 5px; border-radius: 10px;
  background: var(--pth-bg); border: 1px solid var(--pth-line2); box-shadow: var(--pth-shadow);
}
.pth .pth-ctx-h { padding: 5px 8px 6px; font-size: 11px; color: var(--pth-muted); border-bottom: 1px solid var(--pth-line); margin-bottom: 3px; }
.pth .pth-ctx-i {
  display: flex; align-items: center; gap: 8px; width: 100%; height: 30px; padding: 0 8px; border: 0; border-radius: 6px;
  background: transparent; cursor: pointer; text-align: left; font-size: 12.5px;
}
.pth .pth-ctx-i span:not(.pth-ico) { flex: 1; }
.pth .pth-ctx-i:hover, .pth .pth-ctx-i:focus-visible { background: var(--pth-hover); outline: none; }
.pth .pth-ctx-i[disabled] { opacity: 0.45; cursor: default; }
.pth .pth-ctx-i .pth-ico { color: var(--pth-muted); }
.pth .pth-ctx-sep { height: 1px; background: var(--pth-line); margin: 4px 2px; }

/* ── Analysed area ─────────────────────────────────────────────────────── */
.pth .pth-probe {
  position: absolute; z-index: 14; width: 292px; padding: 10px 12px 12px; border-radius: 10px;
  background: var(--pth-bg); border: 1px solid var(--pth-line2); box-shadow: var(--pth-shadow);
  display: flex; flex-direction: column; gap: 8px;
}
.pth .pth-probe-h { display: flex; align-items: center; gap: 6px; }
.pth .pth-probe-h strong { font-size: 13px; }
.pth .pth-probe-k { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.pth .pth-probe-k div { display: flex; flex-direction: column; padding: 5px 6px; border-radius: 7px; background: var(--pth-soft); min-width: 0; }
.pth .pth-probe-k b { font-size: 14px; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pth .pth-probe-k span { font-size: 10.5px; color: var(--pth-muted); }
.pth .pth-probe-a { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
.pth .pth-probe-a .pth-btn { height: 27px; padding: 0 8px; font-size: 12px; }

/* ── One spot on every stain ───────────────────────────────────────────── */
.pth .pth-strip { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.pth .pth-strip-i { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.pth .pth-strip-img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 8px; border: 1px solid var(--pth-line2); background: var(--pth-soft2); display: block; }
.pth .pth-strip-img.is-wait { display: flex; align-items: center; justify-content: center; }
.pth .pth-strip-i figcaption { display: flex; flex-direction: column; gap: 1px; font-size: 11.5px; color: var(--pth-ink2); }
.pth .pth-strip-i figcaption strong { color: var(--pth-ink); font-size: 12.5px; }

/* ── AI evaluation ─────────────────────────────────────────────────────── */
.pth .pth-ai-modes { margin-bottom: 2px; }
.pth .pth-ai-modes .pth-seg { flex: 1; }
.pth .pth-ev-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 6px; }
.pth .pth-ev-img {
  position: relative; display: flex; flex-direction: column; padding: 0; border: 1px solid var(--pth-line2); border-radius: 8px;
  background: var(--pth-bg); cursor: pointer; overflow: hidden; text-align: left; opacity: 0.62; transition: opacity 0.12s, border-color 0.12s;
}
.pth .pth-ev-img.is-on { opacity: 1; border-color: var(--pth-ink2); box-shadow: 0 0 0 1px var(--pth-ink2); }
.pth .pth-ev-img img, .pth .pth-ev-ph { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; background: var(--pth-soft2); }
.pth .pth-ev-ph { display: flex; align-items: center; justify-content: center; }
.pth .pth-ev-cap { display: flex; align-items: flex-start; gap: 5px; padding: 5px 6px 6px; font-size: 10.5px; line-height: 1.3; color: var(--pth-ink2); }
.pth .pth-ev-tick { flex: 0 0 auto; width: 14px; height: 14px; border-radius: 4px; border: 1px solid var(--pth-line2); display: inline-flex; align-items: center; justify-content: center; font-style: normal; }
.pth .pth-ev-img.is-on .pth-ev-tick { background: var(--pth-cta); color: var(--pth-on-cta); border-color: transparent; }
.pth .pth-ev-tick .pth-ico { width: 12px; height: 12px; }
.pth .pth-ev-opts { margin-top: 4px; }
.pth .pth-ev-go { flex: 0 0 auto; }
.pth .pth-ev { display: flex; flex-direction: column; gap: 10px; padding-top: 10px; border-top: 1px solid var(--pth-line); }
.pth .pth-ev-meta { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--pth-muted); }
.pth .pth-ev-sum { padding: 10px 12px; border-radius: 9px; background: var(--pth-soft); display: flex; flex-direction: column; gap: 4px; }
.pth .pth-ev-sum strong { font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pth-muted); }
.pth .pth-ev-part { display: flex; flex-direction: column; gap: 5px; }
.pth .pth-ev-part h5 { margin: 0; font-size: 12.5px; font-weight: 650; }
.pth .pth-ev-text { display: flex; flex-direction: column; gap: 6px; line-height: 1.5; }
.pth .pth-ev-part ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 3px; }
.pth .pth-ev-part .pth-tag { margin-left: 6px; vertical-align: 1px; }
.pth .pth-tag.is-high { background: color-mix(in srgb, var(--pth-good) 16%, var(--pth-bg)); color: var(--pth-good); }
.pth .pth-tag.is-moderate { background: var(--pth-warn-bg); color: var(--pth-warn); }
.pth .pth-tag.is-low { background: var(--pth-bad-bg); color: var(--pth-bad); }
.pth .pth-ev-agree td { white-space: normal; text-align: left !important; vertical-align: top; }
.pth .pth-ev-ag { white-space: nowrap !important; }
.pth .pth-ev-ag .pth-ico { width: 14px; height: 14px; vertical-align: -3px; margin-right: 3px; }
.pth .pth-ev-agree tr.is-true .pth-ev-ag { color: var(--pth-good); }
.pth .pth-ev-agree tr.is-false .pth-ev-ag { color: var(--pth-bad); }
.pth .pth-ev-agree tr.is-null .pth-ev-ag { color: var(--pth-muted); }
.pth .pth-ev-per { display: flex; flex-direction: column; gap: 9px; }
.pth .pth-ev-row { display: grid; grid-template-columns: 72px 1fr; gap: 9px; align-items: start; }
.pth .pth-ev-th { padding: 0; border: 1px solid var(--pth-line2); border-radius: 7px; overflow: hidden; background: var(--pth-soft2); cursor: pointer; }
.pth .pth-ev-th img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; }
.pth .pth-ev-act { padding-top: 4px; }
/* Five panel tabs: drop the icons when the panel is narrow. */
.pth .pth-side { container: pthside / inline-size; }
@container pthside (max-width: 440px) {
  .pth .pth-side-segs .pth-seg .pth-ico { display: none; }
  .pth .pth-side-segs .pth-seg { padding: 0 4px; }
}

/* ── Compare: side by side, or overlay with a divider ───────────────────── */
.pth .pth-cmpbar {
  position: absolute; top: 12px; left: 50%; transform: translateX(-50%); z-index: 8; display: flex; gap: 2px; padding: 3px;
  border-radius: 9px; background: color-mix(in srgb, var(--pth-bg) 92%, transparent); box-shadow: var(--pth-shadow);
}
.pth .pth-cmpbar .pth-seg { flex: 0 0 auto; padding: 0 10px; height: 26px; font-size: 12px; }
.pth.is-compare .pth-pill { top: 52px; }
.pth.is-swipe .pth-views { display: block; }
.pth.is-swipe .pth-view { position: absolute; inset: 0; }
.pth.is-swipe .pth-view[data-side="b"] { clip-path: inset(0 0 0 var(--pth-swipe, 50%)); }
.pth.is-swipe .pth-view[data-side="b"] .pth-viewlabel { left: auto; right: 12px; }
.pth .pth-swipe-bar {
  position: absolute; top: 0; bottom: 0; left: 50%; width: 18px; margin-left: -9px; z-index: 6; cursor: ew-resize; touch-action: none;
  display: flex; align-items: center; justify-content: center;
}
.pth .pth-swipe-bar::before { content: ""; position: absolute; top: 0; bottom: 0; left: 8px; width: 2px; background: rgba(255, 255, 255, 0.95); box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25); }
.pth .pth-swipe-h { position: relative; width: 18px; height: 42px; border-radius: 9px; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); }

/* ── Tissue identification and the report draft ─────────────────────────── */
.pth .pth-ev-tis { display: flex; flex-direction: column; gap: 5px; padding: 10px 12px; border-radius: 9px; border: 1px solid var(--pth-line2); background: var(--pth-bg); }
.pth .pth-ev-tis-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pth .pth-ev-tis-h strong { font-size: 15px; letter-spacing: -0.01em; }
.pth .pth-ev-marks { display: flex; flex-wrap: wrap; gap: 4px; }
.pth .pth-ev-marks span { padding: 2px 7px; border-radius: 999px; background: var(--pth-soft2); font-size: 11px; color: var(--pth-ink2); }
.pth .pth-ev-warn { display: flex; align-items: flex-start; gap: 5px; color: var(--pth-warn); font-size: 12px; }
.pth .pth-ev-rep {
  display: flex; flex-direction: column; gap: 6px; padding: 12px 14px 14px; border-radius: 9px;
  border: 1px solid var(--pth-line2); background: var(--pth-base); box-shadow: var(--pth-shadow);
  font: 12.5px/1.55 ui-serif, Georgia, "Times New Roman", serif; color: var(--pth-ink);
}
.pth .pth-ev-rep-t { display: flex; align-items: center; gap: 6px; font: 600 11.5px var(--pth-font); text-transform: uppercase; letter-spacing: 0.05em; color: var(--pth-muted); }
.pth .pth-ev-rep h6 { margin: 6px 0 0; font: 700 11px var(--pth-font); letter-spacing: 0.08em; color: var(--pth-ink2); }
.pth .pth-ev-dx { display: flex; flex-direction: column; gap: 2px; }
.pth .pth-ev-dx p.is-site { font-weight: 700; }
.pth .pth-ev-dx p.is-item { padding-left: 14px; text-indent: -10px; }
.pth .pth-ev-rep .pth-ev-text { gap: 5px; }
.pth .pth-ev-rep .pth-dl { font: 12px var(--pth-font); }
.pth .pth-ev-err .pth-row { margin-top: 6px; }
.pth .pth-ev-err strong { display: block; margin-bottom: 2px; }
.pth .pth-tis-row .pth-chip { cursor: pointer; }
.pth .pth-tis-row .pth-btn { height: 26px; font-size: 12px; }

/* ── 1.08: what kind of slide, the read, its marks, tables and notes ─────── */
.pth .pth-prof { gap: 5px; }
.pth .pth-prof.is-strip { padding: 9px 11px; border-radius: 9px; border: 1px solid var(--pth-line2); background: var(--pth-base); }
.pth .pth-prof-h { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; min-width: 0; }
.pth .pth-prof-h strong { font-size: 14.5px; letter-spacing: -0.01em; }
.pth .pth-prof.is-strip .pth-prof-h strong { font-size: 13.5px; }
.pth .pth-prof-h .pth-btn { height: 26px; font-size: 12px; }
.pth .pth-prof-src { font-size: 11px; color: var(--pth-muted); }
.pth .pth-prof-line { font-size: 12px; color: var(--pth-ink2); line-height: 1.45; }
.pth .pth-prof-lesion { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 12.5px; font-weight: 600; }
/* Colour carries meaning only for the lesion category; certainty and checklist status stay neutral. */
.pth .pth-cat, .pth .pth-cert, .pth .pth-st {
  display: inline-flex; align-items: center; height: 19px; padding: 0 7px; border-radius: 999px; font-size: 10.5px; font-weight: 650;
  letter-spacing: 0.01em; white-space: nowrap; background: var(--pth-soft2); color: var(--pth-ink2); text-transform: none;
}
.pth .pth-cat.is-bad { background: color-mix(in srgb, var(--pth-bad) 14%, var(--pth-bg)); color: var(--pth-bad); }
.pth .pth-cat.is-warn { background: var(--pth-warn-bg); color: var(--pth-warn); }
.pth .pth-cat.is-good { background: color-mix(in srgb, var(--pth-good) 14%, var(--pth-bg)); color: var(--pth-good); }
.pth .pth-cat.is-info { background: var(--pth-info-bg); color: var(--pth-link); }
.pth .pth-cert.is-strong, .pth .pth-st.is-strong { background: var(--pth-cta); color: var(--pth-on-cta); }
.pth .pth-cert.is-mid, .pth .pth-st.is-mid { background: var(--pth-soft2); color: var(--pth-ink); }
.pth .pth-cert.is-warn, .pth .pth-st.is-warn { background: transparent; border: 1px dashed var(--pth-line2); color: var(--pth-ink2); }
.pth .pth-st.is-good { background: transparent; border: 1px solid var(--pth-line2); color: var(--pth-ink2); }
.pth .pth-st.is-muted { background: transparent; border: 1px solid var(--pth-line); color: var(--pth-muted); }
.pth .pth-ev-dxb-t .pth-cat, .pth .pth-ev-dxb-t .pth-cert, .pth .pth-ev-dxb-t .pth-tag { text-transform: none; letter-spacing: 0; }

/* Progress: recognise → capture → read. */
.pth .pth-ev-prog { display: flex; flex-direction: column; gap: 7px; padding: 10px 12px; border-radius: 9px; background: var(--pth-soft); }
.pth .pth-ev-steps { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.pth .pth-ev-steps li { display: grid; grid-template-columns: 20px 1fr; align-items: center; column-gap: 7px; font-size: 12.5px; color: var(--pth-muted); }
.pth .pth-ev-steps li > i { width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font: 650 10.5px var(--pth-font); font-style: normal; border: 1px solid var(--pth-line2); background: var(--pth-bg); }
.pth .pth-ev-steps li > i .pth-spin { width: 12px; height: 12px; }
.pth .pth-ev-steps li small { grid-column: 2; font-size: 11px; color: var(--pth-muted); }
.pth .pth-ev-steps li.is-active { color: var(--pth-ink); font-weight: 600; }
.pth .pth-ev-steps li.is-done { color: var(--pth-ink2); }
.pth .pth-ev-steps li.is-done > i { background: var(--pth-cta); border-color: transparent; color: var(--pth-on-cta); }
.pth .pth-ev-steps li.is-failed > i { background: var(--pth-warn-bg); border-color: transparent; color: var(--pth-warn); }
.pth .pth-ev-steps .pth-ico { width: 12px; height: 12px; }

/* The impression, first. */
.pth .pth-ev-dxb { display: flex; flex-direction: column; gap: 5px; padding: 11px 13px 12px; border-radius: 10px; border: 1px solid var(--pth-line2); border-left-width: 4px; background: var(--pth-base); }
.pth .pth-ev-dxb.is-bad { border-left-color: var(--pth-bad); }
.pth .pth-ev-dxb.is-warn { border-left-color: var(--pth-warn); }
.pth .pth-ev-dxb.is-good { border-left-color: var(--pth-good); }
.pth .pth-ev-dxb.is-info { border-left-color: var(--pth-link); }
.pth .pth-ev-dxb-t { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; font: 600 11px var(--pth-font); text-transform: uppercase; letter-spacing: 0.05em; color: var(--pth-muted); }
.pth .pth-ev-dxb-t > span:first-child { margin-right: 2px; }
.pth .pth-ev-dxb-dx { font-size: 15.5px; line-height: 1.35; letter-spacing: -0.01em; }
.pth .pth-ev-dxb-tis { font-size: 12px; color: var(--pth-ink2); }

/* The images with their findings. */
.pth .pth-ev-part h5 { display: flex; align-items: center; gap: 5px; }
.pth .pth-ev-part h5 .pth-ico { width: 13px; height: 13px; color: var(--pth-muted); }
.pth .pth-ev-figs { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 9px; }
.pth .pth-ev-figs.is-wide { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.pth .pth-ev-fig { margin: 0; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.pth .pth-ev-fig-btn { padding: 0; border: 1px solid var(--pth-line2); border-radius: 8px; overflow: hidden; background: var(--pth-soft2); cursor: zoom-in; display: block; width: 100%; }
.pth .pth-ev-fig-pic { position: relative; width: 100%; aspect-ratio: 1; }
.pth .pth-ev-fig-pic img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: fill; display: block; }
.pth .pth-ev-fig-svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; overflow: visible; }
.pth .pth-ev-box { fill: none; stroke: var(--mk, #d64560); stroke-width: 2.2px; vector-effect: non-scaling-stroke; paint-order: stroke; filter: drop-shadow(0 0 1.2px rgba(255, 255, 255, 0.95)); }
.pth .pth-ev-box.is-possible { stroke-dasharray: 6 4; }
.pth .pth-ev-box.is-on { stroke-width: 3.4px; fill: color-mix(in srgb, var(--mk, #d64560) 16%, transparent); }
.pth .pth-ev-badge {
  position: absolute; transform: translate(-50%, -50%); min-width: 20px; height: 20px; padding: 0 4px; border-radius: 999px;
  border: 2px solid #fff; background: var(--mk, #d64560); color: #fff; font: 700 10.5px/16px var(--pth-font); cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
}
.pth .pth-ev-badge.is-on { transform: translate(-50%, -50%) scale(1.18); }
.pth .pth-ev-fig figcaption { display: flex; flex-direction: column; gap: 3px; font-size: 11.5px; line-height: 1.4; color: var(--pth-ink2); }
.pth .pth-ev-fig figcaption strong { font-size: 11.5px; color: var(--pth-ink); }
.pth .pth-ev-fig-n { display: flex; flex-wrap: wrap; gap: 3px; }
.pth .pth-ev-chip, .pth .pth-ev-ref {
  display: inline-flex; align-items: center; gap: 4px; padding: 1px 6px 1px 2px; border-radius: 999px; border: 1px solid var(--pth-line2);
  background: var(--pth-bg); font-size: 10.5px; color: var(--pth-ink2); cursor: pointer; max-width: 100%;
}
.pth .pth-ev-chip b { display: inline-flex; align-items: center; justify-content: center; min-width: 15px; height: 15px; border-radius: 999px; background: var(--mk, #d64560); color: #fff; font-size: 9.5px; }
.pth .pth-ev-ref { padding: 0 6px; border-color: var(--mk, var(--pth-line2)); color: var(--pth-ink); font-weight: 600; }

/* Tables of the read. */
.pth .pth-ev-find td, .pth .pth-ev-check td { white-space: normal; text-align: left !important; vertical-align: top; }
.pth .pth-ev-find td p { margin-top: 2px; }
.pth .pth-ev-find tr.is-on td { background: color-mix(in srgb, var(--pth-link) 8%, var(--pth-bg)); }
.pth .pth-ev-find .pth-link .pth-ico, .pth .pth-ev-find .pth-ico-faint .pth-ico { width: 14px; height: 14px; }
.pth .pth-ev-num { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; border-radius: 999px; background: var(--mk, #d64560); color: #fff; font: 700 10.5px var(--pth-font); }
.pth .pth-nowrap { white-space: nowrap !important; }
.pth .pth-ev-check td:first-child { font-weight: 600; color: var(--pth-ink); }
.pth .pth-ev-part .pth-tbl td { white-space: normal; }
.pth .pth-ev-notes { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; line-height: 1.45; }
.pth .pth-ev-more { border-top: 1px solid var(--pth-line); padding-top: 8px; }
.pth .pth-ev-more summary { cursor: pointer; font-size: 12px; font-weight: 600; color: var(--pth-ink2); }
.pth .pth-ev-more[open] { display: flex; flex-direction: column; gap: 9px; }
.pth .pth-ev-morph { display: flex; flex-direction: column; gap: 10px; }
.pth .pth-ev-act { flex-wrap: wrap; row-gap: 6px; }
.pth .pth-ev-meta .pth-ibtn { width: 26px; height: 26px; }
.pth .pth-ev-meta .pth-ibtn.is-on { background: var(--pth-sel); color: var(--pth-ink); }

/* Full size: the images beside the report and the tables. */
.pth .pth-sheet.is-full { width: min(1280px, calc(100% - 8px)); height: calc(100% - 8px); max-height: none; }
.pth .pth-sheet.is-full .pth-sheet-b { flex: 1; }
.pth .pth-sheet-wrap:has(.pth-sheet.is-full) { padding: 12px; align-items: stretch; }
.pth .pth-ev.is-wide { border-top: 0; padding-top: 0; }
.pth .pth-ev-cols { display: grid; grid-template-columns: minmax(280px, 0.95fr) minmax(360px, 1.05fr); gap: 18px; align-items: start; }
.pth .pth-ev-cols > div { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
@container pth (max-width: 900px) {
  .pth .pth-ev-cols { grid-template-columns: 1fr; }
}

/* Notes kept from the AI, in the Notes panel. */
.pth .pth-ann { flex-wrap: wrap; }
.pth .pth-ann-note { flex: 1 0 100%; margin: -4px 0 6px; font-size: 11px; color: var(--pth-muted); line-height: 1.35; padding: 0 8px 0 28px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pth .pth-ann-ai { font: 650 9.5px var(--pth-font); letter-spacing: 0.04em; color: var(--pth-muted); border: 1px solid var(--pth-line2); border-radius: 4px; padding: 0 3px; }
.pth .pth-ev-again > summary { display: flex; align-items: center; gap: 8px; cursor: pointer; list-style: none; }
.pth .pth-ev-again > summary::-webkit-details-marker { display: none; }
.pth .pth-ev-again > summary::before { content: "▸"; font-size: 11px; color: var(--pth-muted); transition: transform 0.15s; }
.pth .pth-ev-again[open] > summary::before { transform: rotate(90deg); }
.pth .pth-ev-again-t { font-size: 11.5px; font-weight: 650; text-transform: uppercase; letter-spacing: 0.05em; color: var(--pth-muted); }
.pth .pth-ev-again[open] { display: flex; flex-direction: column; gap: 7px; }

/* ── Pointing, re-checking and confirming (1.08, second round) ──────────── */
/* A place in an answer: number, optional label, re-check mark. Hover → arrow on the slide. */
.pth .pth-ref {
  display: inline-flex; align-items: center; gap: 3px; vertical-align: 1px; margin: 0 1px; padding: 0 5px 0 1px; height: 19px;
  border-radius: 999px; border: 1px solid color-mix(in srgb, var(--mk, #d64560) 45%, transparent);
  background: color-mix(in srgb, var(--mk, #d64560) 9%, var(--pth-bg)); color: var(--pth-ink); font: 600 11px var(--pth-font); cursor: pointer;
}
.pth .pth-ref > b { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; border-radius: 999px; background: var(--mk, #d64560); color: #fff; font-size: 10px; }
.pth .pth-ref > span { max-width: 190px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 500; }
.pth .pth-ref > i { font-style: normal; font-size: 10.5px; }
.pth .pth-ref:hover { background: color-mix(in srgb, var(--mk, #d64560) 18%, var(--pth-bg)); }
.pth .pth-ref.is-ok > i { color: var(--pth-good); }
.pth .pth-ref.is-unsure { border-style: dashed; }
.pth .pth-ref.is-unsure > i { color: var(--pth-warn); }
.pth .pth-ref.is-no { opacity: 0.6; cursor: default; }
.pth .pth-ref.is-no > span, .pth .pth-ref.is-no > b { text-decoration: line-through; }
.pth .pth-ref.is-no > i { color: var(--pth-bad); }
.pth .pth-msg-places { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.pth .pth-msg-chk { display: inline-flex; align-items: center; gap: 4px; margin-left: 6px; }
.pth .pth-msg-chk .pth-spin { width: 11px; height: 11px; }
.pth .pth-msg-tbl { display: flex; flex-direction: column; gap: 4px; }
.pth .pth-msg-tbl strong { font-size: 12px; }
.pth .pth-msg-tbl td, .pth .pth-msg-tbl th { white-space: normal; text-align: left !important; vertical-align: top; }
.pth .pth-msg-confirm { display: flex; flex-direction: column; gap: 4px; padding: 8px 10px; border-radius: 8px; background: var(--pth-warn-bg); }
.pth .pth-msg-confirm > strong { display: flex; align-items: center; gap: 5px; font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--pth-warn); }
.pth .pth-msg-confirm ul { margin: 0; padding-left: 16px; display: flex; flex-direction: column; gap: 3px; font-size: 12.5px; }
.pth .pth-msg-confirm small { color: var(--pth-ink2); }

/* The evaluation's re-check line and the review. */
.pth .pth-ev-check { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 10px; border-radius: 8px; background: var(--pth-soft); font-size: 12px; color: var(--pth-ink2); }
.pth .pth-ev-check > span { flex: 1 1 200px; }
.pth .pth-ev-check .pth-btn { height: 28px; font-size: 12px; }
.pth .pth-ev-badge.is-unsure { border-style: dashed; opacity: 0.85; }
.pth .pth-ev-part h5 .pth-link { font-weight: 500; font-size: 11.5px; }
.pth .pth-ev-find tbody tr.is-pick, .pth .pth-ev-conf tbody tr.is-pick { cursor: pointer; }
.pth .pth-ev-find tbody tr.is-pick:hover td, .pth .pth-ev-conf tbody tr.is-pick:hover td { background: var(--pth-hover); }
.pth .pth-ev-conf td { white-space: normal; text-align: left !important; vertical-align: top; }
.pth .pth-ev-conf tr.is-confirmed td:nth-child(2) strong { color: var(--pth-good); }
.pth .pth-ev-conf tr.is-rejected td:nth-child(2) strong { color: var(--pth-muted); text-decoration: line-through; }
.pth .pth-ev-cnum { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 18px; padding: 0 4px; border-radius: 5px; background: #c77700; color: #fff; font: 700 10px var(--pth-font); }
.pth .pth-ev-yn {
  display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 22px; margin-right: 3px; border-radius: 6px;
  border: 1px solid var(--pth-line2); background: var(--pth-bg); color: var(--pth-ink2); cursor: pointer;
}
.pth .pth-ev-yn .pth-ico { width: 12px; height: 12px; }
.pth .pth-ev-yn.is-on { background: var(--pth-good); border-color: transparent; color: #fff; }
.pth .pth-ev-yn.is-no.is-on { background: var(--pth-bad); }
.pth .pth-ev-rejected ul { margin: 6px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; }
.pth .pth-ev-review { gap: 8px; max-width: calc(100% - 140px); }
.pth .pth-ev-review-t { display: flex; flex-direction: column; min-width: 0; max-width: 420px; }
.pth .pth-ev-review-t strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; }
.pth .pth-ev-review-t small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; color: var(--pth-muted); }

/* The map's trust, in the Findings panel. */
.pth .pth-trust .pth-row { margin-top: 6px; flex-wrap: wrap; }
.pth .pth-trust .pth-cta, .pth .pth-trust .pth-btn { height: 28px; font-size: 12px; }
.pth .pth-callout.is-ok { background: color-mix(in srgb, var(--pth-good) 9%, var(--pth-bg)); }
.pth .pth-callout.is-ok > .pth-ico { color: var(--pth-good); }
.pth .pth-trust-list { margin: 4px 0 0; padding-left: 16px; font-size: 12px; display: flex; flex-direction: column; gap: 2px; }
.pth .pth-unchecked { border: 1px dashed var(--pth-line2); border-radius: 9px; padding: 7px 10px; }
.pth .pth-unchecked > summary { display: flex; align-items: center; gap: 6px; cursor: pointer; font-size: 12px; font-weight: 600; color: var(--pth-warn); }
.pth .pth-unchecked[open] { display: flex; flex-direction: column; gap: 8px; }
.pth .pth-unchecked-b { display: flex; flex-direction: column; gap: 10px; }
.pth .pth-ev-find-h { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; }
.pth .pth-ev-find .pth-ev-where { white-space: normal !important; font-size: 11px; color: var(--pth-muted); min-width: 56px; }
/* Chat: the conversation scrolls, the composer stays put under it. */
.pth .pth-side-b.is-chat { overflow: hidden; }
.pth .pth-side-b.is-chat .pth-thread { flex: 1 1 auto; min-height: 0; overflow: auto; padding-right: 2px; }
.pth .pth-side-b.is-chat .pth-composer { position: static; padding: 4px 0 0; }
.pth .pth-side-b.is-chat > .pth-fine:last-child { flex: 0 0 auto; }

/* ── 1.08 · what to know (a ranked briefing, no model call) ── */
.pth .pth-brief { flex: none; margin: 10px 0 12px; border: 1px solid var(--pth-line); border-radius: 10px; background: var(--pth-base); overflow: hidden; }
.pth .pth-brief-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 10px; border-bottom: 1px solid var(--pth-line); background: var(--pth-soft); }
.pth .pth-brief-h strong { font-size: 12.5px; }
.pth .pth-brief-n { font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 999px; }
.pth .pth-brief-n.is-act { color: var(--pth-bad); background: var(--pth-bad-bg); }
.pth .pth-brief-n.is-check { color: var(--pth-warn); background: var(--pth-warn-bg); }
.pth .pth-brief-i { display: grid; grid-template-columns: 16px minmax(0, 1fr) auto; gap: 8px; align-items: start; padding: 8px 10px; border-top: 1px solid var(--pth-line); }
.pth .pth-brief-h + .pth-brief-i { border-top: 0; }
.pth .pth-brief-i > .pth-ico { margin-top: 1px; color: var(--pth-faint); }
.pth .pth-brief-i.is-act > .pth-ico { color: var(--pth-bad); }
.pth .pth-brief-i.is-check > .pth-ico { color: var(--pth-warn); }
.pth .pth-brief-i.is-act { box-shadow: inset 3px 0 0 var(--pth-bad); }
.pth .pth-brief-i.is-check { box-shadow: inset 3px 0 0 color-mix(in srgb, var(--pth-warn) 70%, transparent); }
.pth .pth-brief-t { min-width: 0; }
.pth .pth-brief-t strong { display: block; font-size: 12.5px; line-height: 1.35; overflow-wrap: anywhere; }
.pth .pth-brief-t p { margin: 2px 0 0; font-size: 11.5px; line-height: 1.4; color: var(--pth-ink2); overflow-wrap: anywhere; }
.pth .pth-brief-go { padding: 3px 9px; font-size: 11.5px; white-space: nowrap; }
.pth .pth-brief-more { border-top: 1px solid var(--pth-line); }
.pth .pth-brief-more > summary { padding: 7px 10px; font-size: 12px; color: var(--pth-muted); cursor: pointer; }
.pth .pth-brief-more[open] > summary { border-bottom: 1px solid var(--pth-line); }
.pth .pth-ev-cost { cursor: help; text-decoration: underline dotted color-mix(in srgb, currentColor 45%, transparent); text-underline-offset: 2px; }
