/* Full-width FreeRTOS scheduling instrument. */
.thread-viewer {
  --tv-border: var(--ui-line); --tv-dim: var(--ui-muted); --tv-strong: var(--ui-navy);
  display: block; min-width: 0; color: var(--ui-ink); container-type: inline-size;
  font-variant-numeric: tabular-nums;
  font: 13px/1.45 "DM Sans", "Segoe UI", sans-serif;
}
.thread-viewer [hidden] { display: none !important; }
.tv-header, .tv-section-head, .tv-subhead { display: flex; align-items: center; gap: 10px; }
.tv-header { padding: 18px 0 15px; flex-wrap: wrap; }
.tv-transport { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.tv-ident { min-width: 0; margin-right: auto; }
.tv-heading { margin: 0; color: var(--tv-strong); font: 680 clamp(20px,1.8vw,27px)/1.15 "DM Sans", sans-serif; letter-spacing: -.035em; }
.tv-project-label { margin: 5px 0 0; color: var(--ui-navy); font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.tv-settings { margin: 4px 0 0; color: var(--tv-dim); font-size: 12px; }
.tv-live-label { font: 600 11px/1.4 var(--mono); color: #28654a; white-space: nowrap; }
.tv-live-label::before { content: ""; width: 7px; height: 7px; display: inline-block; vertical-align: .08em; margin-right: 6px; border-radius: 50%; background: #459e6f; }
.tv-live-label.tv-held { color: #736135; }
.tv-live-label.tv-held::before { background: #ae8e4f; }
.thread-viewer button.tv-control {
  min-height: 31px; padding: 4px 9px; border: 1px solid var(--ui-line); border-radius: 6px;
  background: #fff; color: var(--ui-navy); font: 620 12px/1.3 "DM Sans", sans-serif;
}
.thread-viewer button.tv-control:hover:not(:disabled) { background: var(--ui-wash); border-color: #97b1c6; }
.thread-viewer :is(button,input,select,summary):focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
.thread-viewer button:disabled { opacity: .45; cursor: default; }
.tv-content { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; }
.tv-empty { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 0 0 12px; padding: 16px; border: 1px dashed #c6d6c8; border-radius: 8px; background: #f6f9f6; color: #455b4b; }
.tv-message { margin: 0; flex: 1 1 230px; }
.tv-start-error { flex-basis: 100%; margin: 0; color: #954436; }
.tv-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--tv-border); border-radius: 8px; overflow: hidden; }
.tv-metric { min-width: 0; display: grid; align-content: start; justify-items: start; padding: 11px clamp(9px,1.2vw,20px); gap: 1px; border-left: 1px solid var(--tv-border); background: #fbfcfb; }
.tv-metric:first-child { border-left: 0; background: var(--ui-tint); }
.tv-metric-label { font-size: 12px; font-weight: 650; color: var(--ui-muted); }
.tv-figure { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 1px 0; font: 630 clamp(17px,1.65vw,26px)/1.28 var(--mono); letter-spacing: -.045em; font-variant-numeric: tabular-nums; color: #203c2d; }
.tv-metric-detail { min-height: 1.5em; font-variant-numeric: tabular-nums; color: var(--tv-dim); font-size: 11px; }
.tv-section-head { justify-content: space-between; flex-wrap: wrap; margin: 0 0 9px; }
.tv-section-head h4, .tv-subhead h4 { margin: 0; color: var(--ui-navy); font: 670 16px/1.3 "DM Sans", sans-serif; letter-spacing: -.02em; }
.tv-range { margin-right: 6px; font: 520 11px/1.3 var(--mono); color: var(--ui-muted); }
.tv-chart {
  --tv-name-width: clamp(105px, 15%, 190px); overflow: hidden;
  color: var(--ui-ink); border: 1px solid var(--ui-line); border-radius: 8px; background: #fff;
  padding: 12px clamp(8px,1.25vw,20px) 14px;
}
.tv-axis, .tv-lane { display: grid; grid-template-columns: var(--tv-name-width) minmax(0,1fr); }
.tv-axis { padding: 0 0 7px; color: var(--ui-muted); font: 10px/1.4 var(--mono); }
.tv-origin { color: var(--ui-muted); font: 10px/1.4 var(--mono); margin-bottom: 6px; }
.tv-axis-unit { padding-left: 2px; align-self: center; }
.tv-ticks { display: flex; justify-content: space-between; align-items: center; white-space: nowrap; }
.tv-lane-name { min-width: 0; display: flex; gap: 7px; align-items: center; padding-right: 8px; font: 11.5px/1.2 var(--mono); color: var(--ui-ink); }
.tv-lane-name span { text-overflow: ellipsis; overflow: hidden; white-space: nowrap; }
.tv-track {
  overflow: hidden;
  position: relative; height: clamp(31px,3vw,42px); box-sizing: border-box;
  border-inline: 1px solid var(--ui-line); border-bottom: 1px solid var(--ui-line);
  background-image: linear-gradient(to right,var(--ui-line) 1px, transparent 1px), linear-gradient(to right,#edf2f6 1px, transparent 1px);
  background-size: 25% 100%,6.25% 100%;
}
.tv-lane:nth-child(2n) .tv-track { background-color: #f8fafc; }
.tv-mark {
  position: absolute; top: 24%; height: 52%; display: grid; align-items: center; text-align: center;
  max-width: 100%; min-width: 2px; overflow: hidden; white-space: nowrap; border-radius: 2px; color: #1b3029;
  font: 600 10px/1 var(--mono); cursor: zoom-in;
}
.tv-mark:hover { outline: 1px solid #1b5b44; outline-offset: 1px; }
.tv-ticks, .tv-track { touch-action: pan-y pinch-zoom; user-select: none; }
.thread-viewer .tv-pannable :is(.tv-ticks, .tv-track, .tv-mark) { cursor: grab; }
.thread-viewer .tv-chart.tv-grabbing, .thread-viewer .tv-chart.tv-grabbing * { cursor: grabbing; }
.tv-note, .tv-table-note { margin: 7px 0 0; color: var(--tv-dim); font-size: 11.5px; line-height: 1.45; }
.tv-subhead { justify-content: space-between; flex-wrap: wrap; margin: 0 0 8px; }
.tv-subhead .tv-table-note { margin: 0; }
.tv-table-scroll { max-width: 100%; border: 1px solid var(--tv-border); border-radius: 7px; overflow-x: auto; overscroll-behavior-x: contain; }
.thread-viewer .tv-table { margin: 0; width: 100%; table-layout: fixed; border-spacing: 0; border-collapse: separate; font-size: 12px; color: #293c32; }
.thread-viewer .tv-table :is(th,td) { background: white; font-weight: normal; padding: 7px clamp(8px, .9vw, 14px); border: none; border-bottom: 1px solid #e3e9e4; text-align: left; white-space: nowrap; }
.thread-viewer .tv-table th { padding-block: 8px; background: var(--ui-wash); color: var(--ui-muted); font: 620 11px/1.3 "DM Sans",sans-serif; }
.thread-viewer .tv-table tr:last-child td { border-bottom: 0; }
.thread-viewer .tv-table .tv-num { font: 11.5px/1.4 var(--mono); font-variant-numeric: tabular-nums; text-align: right; }
.tv-label { display: inline-flex; max-width: 100%; align-items: center; gap: 7px; vertical-align: middle; }
.tv-label > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.tv-dot { display: inline-block; flex: none; width: 8px; height: 8px; border-radius: 2px; box-shadow: inset 0 0 0 1px #283b313d; }
.tv-state { color: #546059; }.tv-state.tv-selected { color: #28603d; font-weight: 650; }
.tv-share { display: grid; grid-template-columns: minmax(0,1fr) 8ch; gap: 7px; align-items: center; font: 11.5px/1.4 var(--mono); }
.tv-share-track { width: 100%; height: 7px; border-radius: 2px; overflow: hidden; background: #e6ebe7; }
.tv-share-track i { display: block; height: 100%; box-shadow: inset 0 0 0 1px #53665430; }
.tv-details summary { padding: 6px 0; cursor: pointer; color: #2d4035; font-weight: 650; }
.tv-details summary::marker { color: #657f6e; font-size: .9em; }
.tv-inspection { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 7px 10px; background: #eaf1e9; border-radius: 5px; margin-top: 7px; }
.tv-inspection > span { font-size: 12px; }
.thread-viewer .tv-table tr.tv-inspected td { background: #edf4ed; }
.tv-table .tv-event-link { background: transparent; border: 0; padding: 2px 0; color: #315d49; text-decoration: underline; text-underline-offset: 3px; font: inherit; }
/* Fixed column geometry keeps the trace legible across live repaints. */
.thread-viewer .tv-allocations .tv-table { min-width: 1060px; }
.tv-allocations th:nth-child(1) { width: 16%; }
.tv-allocations th:nth-child(2) { width: 8%; }
.tv-allocations th:nth-child(3) { width: 14%; }
.tv-allocations th:nth-child(4) { width: 8%; }
.tv-allocations th:nth-child(5) { width: 13%; }
.tv-allocations th:nth-child(6) { width: 15%; }
.tv-allocations th:nth-child(7), .tv-allocations th:nth-child(8) { width: 13%; }
.thread-viewer .tv-allocations th:not(:nth-child(1)):not(:nth-child(3)),
.thread-viewer .tv-details th:not(:nth-child(2)) { text-align: right; }
.tv-details .tv-table { min-width: 640px; }
.tv-details th:nth-child(2) { width: 28%; }
.tv-details th:nth-child(3) { width: 13%; }
.thread-viewer .tv-allocations tbody tr { cursor: pointer; }
.thread-viewer .tv-allocations tbody tr:hover td { background: #f2f7f3; }
.thread-viewer .tv-allocations tbody tr.tv-picked td { background: #e6f2e9; }
.thread-viewer .tv-allocations tbody tr.tv-picked td:first-child { box-shadow: inset 3px 0 #39815a; }
.thread-viewer button.tv-task-pick {
  display: inline-flex; max-width: 100%; align-items: center; padding: 2px 0;
  color: #244b36; background: transparent; border: 0; min-height: 23px;
  font: 620 12px/1.35 "DM Sans", sans-serif; text-align: left;
}
.thread-viewer button.tv-task-pick:hover { color: #0d5635; text-decoration: underline; text-underline-offset: 3px; }
.thread-viewer button.tv-lane-name {
  width: 100%; margin: 0; padding: 0 8px; border: 0; background: transparent; border-radius: 4px;
  text-align: left; color: var(--ui-ink);
}
.thread-viewer button.tv-lane-name:hover { background: #e9f0ec; }
.tv-lane.tv-picked .tv-lane-name { color: #144831; font-weight: 700; background: #e2f1e8; box-shadow: inset 3px 0 #398161; }
.tv-lane.tv-picked .tv-track { background-color: #f0f7f3; box-shadow: inset 0 1px #9fbdaa; }
.thread-viewer button.tv-mark { transition: none; padding: 0; min-height: 0; margin: 0; border: 0; border-radius: 2px; }
.thread-viewer button.tv-mark.tv-inspected { box-shadow: inset 0 0 0 2px #254e3e; }
.thread-viewer .tv-chart button:focus-visible { outline: 2px solid #235a8a; outline-offset: -2px; z-index: 1; }
.thread-viewer .tv-control[aria-pressed="true"] { border-color: #88aa90; background: #e5f0e5; color: #274f35; }
/* The navigator keeps both the history position and the visible time span in reach. */
.tv-navigator {
  min-width: 0; padding: 13px clamp(10px, 1.4vw, 20px);
  border: 1px solid var(--ui-line); border-bottom: 0; border-radius: 8px 8px 0 0; background: var(--ui-wash);
}
.tv-navigator + .tv-chart { border-radius: 0 0 8px 8px; }
.tv-history { min-width: 0; }
.tv-history-heading, .tv-history-footer, .tv-history-axis {
  display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 2px 14px;
}
.tv-history-heading h5 { margin: 0; color: var(--ui-navy); font: 660 14px/1.35 "DM Sans", sans-serif; }
.tv-history-caption { margin: 3px 0 8px; color: var(--ui-muted); font-size: 12px; }
.tv-history-key { display: inline-flex; align-items: center; gap: 5px; color: #385f6b; font-size: 11px; }
.tv-history-key::before {
  content: ""; width: 14px; height: 8px; border: 2px solid #226a84; border-radius: 2px; background: #479fc125;
}
.tv-history-plot { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: 1px 6px; }
.tv-history-scale { display: flex; flex-direction: column; align-items: end; justify-content: space-between; }
.tv-history-axis { grid-column: 2; flex-wrap: nowrap; }
.tv-history-axis, .tv-history-scale { color: var(--ui-muted); font: 10px/1.3 var(--mono); }
.tv-history-footer { margin-top: 4px; color: var(--ui-muted); font-size: 11px; }
.tv-history-readout { color: var(--ui-accent); font: 560 11px/1.45 var(--mono); font-variant-numeric: tabular-nums; }
@container (max-width: 530px) {
  .tv-history-footer { display: grid; justify-content: start; }
}
.tv-nav-overview {
  position: relative; isolation: isolate; height: 46px; min-width: 0; overflow: hidden;
  border: 1px solid #a2b9cc; border-radius: 4px; cursor: crosshair;
  background: repeating-linear-gradient(to right, #bbcec350 0 1px, transparent 1px 12.5%),
    linear-gradient(to bottom, transparent 49%, #bfcec370 49% 51%, transparent 51%), #f7faf7;
}
.tv-nav-overview:focus-visible { outline: 2px solid #226a84; outline-offset: 2px; }
.tv-nav-activity { display: flex; align-items: end; position: absolute; inset: 1px 0 0; }
.tv-nav-activity i {
  box-sizing: border-box; flex: 1 1 0; min-width: 0; border-right: 1px solid #f7faf7; background: #57846e;
}
.tv-nav-aperture {
  position: absolute; top: 0; bottom: 0; box-sizing: border-box; min-width: 2px;
  box-shadow: inset 0 0 0 2px #226a84; background: #479fc125;
  pointer-events: none;
}
.tv-history-probe {
  position: absolute; inset-block: 0; border-bottom: 3px solid #965010; background: #eb9d302b;
  pointer-events: none;
}
.tv-nav-ranges { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px 30px; margin: 10px 0; }
.tv-nav-field { display: grid; grid-template-columns: auto minmax(0,1fr); align-items: baseline; align-content: start; min-width: 0; gap: 0 8px; margin: 0; }
.tv-nav-label { color: var(--ui-navy); font-size: 12px; font-weight: 650; }
.tv-nav-value, .tv-nav-cursor { color: var(--ui-muted); font: 11px/1.4 var(--mono); font-variant-numeric: tabular-nums; }
.tv-nav-value { margin-inline-start: auto; text-align: right; }
.tv-navigator input[type="range"] {
  grid-column: 1 / -1; appearance: none; -webkit-appearance: none; width: 100%; min-width: 0; height: 25px;
  padding: 0; margin: 0; border: 0; border-radius: 4px; background: transparent;
  accent-color: #387854; cursor: pointer; touch-action: pan-y;
}
.tv-navigator input[type="range"]::-webkit-slider-runnable-track { height: 5px; background: var(--ui-line); border-radius: 3px; }
.tv-navigator input[type="range"]::-webkit-slider-thumb {
  appearance: none; -webkit-appearance: none; width: 16px; height: 16px; margin-top: -5.5px;
  background: #f6faff; border: 4px solid var(--ui-accent); border-radius: 50%;
}
.tv-navigator input[type="range"]::-moz-range-track { height: 5px; background: var(--ui-line); border-radius: 3px; }
.tv-navigator input[type="range"]::-moz-range-thumb { width: 9px; height: 9px; border: 4px solid var(--ui-accent); border-radius: 50%; background: #f6faff; }
.tv-navigator input[type="range"]:disabled { cursor: default; opacity: .55; }
.tv-nav-toolbar, .tv-nav-playback, .tv-nav-pan { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.tv-nav-toolbar { justify-content: space-between; gap: 8px 16px; }
.tv-nav-playback .tv-nav-rate { border: 1px solid var(--ui-line); border-radius: 5px; color: var(--ui-ink); background: #fff; min-height: 30px; font: 600 12px var(--mono); }
.tv-nav-playback { min-width: 0; max-width: 100%; }
.tv-nav-cursor { min-width: 0; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tv-nav-play { min-width: 100px; }
.tv-time-edge { display:block; margin:4px 2px; text-align:right; color:var(--ui-navy,#284763); font:600 11px/1.3 var(--mono); }
.tv-time-edge[hidden] { display:none; }
.tv-at-live-edge .tv-track { border-right:2px solid #426c97; }
.tv-playhead { position: absolute; top: 0; bottom: 0; z-index: 2; pointer-events: none; width: 1px; background: #2d4b7b; box-shadow: 0 0 0 1px #fff; }

/* The task inspector shares the waveform palette and uses the full table width. */
.tv-task-inspector {
  min-width: 0; padding: 14px clamp(12px, 1.5vw, 20px); border: 1px solid #b8d2c3;
  border-inline-start: 3px solid #418260; border-radius: 8px; background: #f4f8f4;
}
.ti-head, .ti-identity, .ti-navigation { display: flex; align-items: center; gap: 8px; }
.ti-head { justify-content: space-between; gap: 16px; height: auto; padding: 0; background: transparent; color: inherit; }
.ti-identity { min-width: 0; gap: 10px; }
.ti-identity > div { min-width: 0; }
.ti-identity .tv-dot { width: 11px; height: 11px; }
.ti-kicker { font-weight: 600; font-size: 11px; color: #486450; }
.ti-title { margin: 1px 0 2px; font: 650 17px/1.2 "DM Sans", sans-serif; color: var(--ui-navy); overflow-wrap: anywhere; }
.ti-title:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
.ti-meta { color: #4d6353; font: 11px/1.4 var(--mono); }
.ti-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 12px 0 4px; padding: 0; border-block: 1px solid #d3e0d6; }
.ti-stat { min-width: 0; margin: 9px 0; padding: 0 12px; border-inline-start: 1px solid #d3e0d6; }
.ti-stat:first-child { border-inline-start: 0; padding-inline-start: 0; }
.ti-stat dt { color: #4a6250; font-size: 11.5px; }
.ti-stat dd { margin: 2px 0 0; font: 620 15px/1.35 var(--mono); color: #264532; overflow-wrap: anywhere; }
.ti-extremes { margin-top: 12px; }
.ti-extremes h5 { margin: 0 0 6px; color: #284b35; font-size: 13px; }
.ti-extreme-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); gap: 6px; }
.ti-extreme {
  display: grid; align-content: start; align-items: baseline; gap: 3px; padding: 8px 10px;
  border: 1px solid #c4d5c9; border-radius: 6px; background: #f9fcfa; color: #274b34;
  text-align: start; font: inherit; cursor: pointer;
}
.ti-extreme:hover:enabled { background: #edf5ef; border-color: #799c85; }
.ti-extreme:focus-visible { outline: 2px solid #42805c; outline-offset: 2px; }
.ti-extreme:disabled { color: #667169; background: #f4f6f4; border-style: dashed; cursor: default; }
.ti-extreme-label { font-size: 11.5px; font-weight: 600; }
.ti-extreme-measure { display: flex; flex-wrap: wrap; gap: 5px; align-items: baseline; min-width: 0; }
.ti-extreme-measure strong { font: 650 16px/1.3 var(--mono); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ti-extreme-unit, .ti-extreme-target { font-size: 11px; }
.ti-extreme-target { color: #3b694a; }
.ti-extreme:disabled .ti-extreme-target { color: inherit; }
.ti-extremes > .tv-note { margin-top: 5px; }
.ti-occurrences { margin: 12px 0 7px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; }
.ti-cursor { min-width: 0; color: #506754; font: 11.5px/1.5 var(--mono); }
.ti-cursor strong { display: block; color: #304c38; font: 650 12.5px/1.45 "DM Sans", sans-serif; }
.ti-gap { display: block; }
.ti-navigation { flex-wrap: wrap; gap: 5px; }
.ti-history summary { color: #355e44; cursor: pointer; font: 600 12px/1.5 "DM Sans", sans-serif; padding: 5px 0; }
.ti-list { display: grid; gap: 2px; padding: 0; margin: 6px 0; list-style: none; }
.ti-list button {
  width: 100%; display: flex; align-items: center; flex-wrap: wrap; gap: 4px 16px; text-align: start;
  border: 1px solid transparent; border-radius: 5px; padding: 5px 8px;
  background: #f9fcf9; color: #3b5642; font: 11.5px/1.4 var(--mono);
}
.ti-list button:hover, .ti-list button[aria-current="true"] { border-color: #a5c2ae; background: #e5f0e8; color: #1a462b; }
@container (max-width: 620px) {
  .tv-nav-ranges { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .tv-nav-field { grid-template-columns: minmax(0,1fr) auto; }
  .ti-stat:nth-child(odd) { border-inline-start: 0; padding-inline-start: 0; }
  .ti-kicker, .ti-cursor { font-size: 11px; }
}
@container (max-width: 760px) {
  .tv-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tv-metric:nth-child(3) { border-left: 0; }
  .tv-metric:nth-child(n+3) { border-top: 1px solid var(--tv-border); }

}
@container (max-width: 520px) {
  .tv-heading { font-size: 19px; }
  .tv-header { align-items: flex-start; }
  .tv-ident { flex-basis: 100%; }
  .tv-nav-field { display: flex; flex-direction: column; align-items: stretch; }
  .tv-nav-value { margin: 0; text-align: left; }
  .tv-chart { --tv-name-width: 86px; }
  .tv-lane-name { gap: 4px; font-size: 10px; }
  .tv-minor-tick { display: none; }
  .tv-ticks { font-size: 9px; }
  .tv-content { gap: 13px; }
  .tv-metric { padding: 8px; }
  .tv-metric-label, .tv-metric-detail { font-size: 10.5px; }
}

.tv-chart-caption { margin:6px 0 10px; font-size:11.5px; color:#4d6155; }
.tv-lane-count { margin-inline-start:auto; flex:none; font:600 10px/1.5 var(--mono); color:#365447; background:#e8eee9; border-radius:4px; padding:0 4px; }
.thread-viewer button.tv-mark { box-shadow:inset 1.5px 0 #33594b, inset -1px 0 #fff; }
.thread-viewer button.tv-mark.tv-cluster {
  z-index:1; overflow:visible; display:flex; align-items:center; color:transparent;
  background-color:transparent !important; box-shadow:none;
}
.tv-mark.tv-cluster::after {
  content:attr(data-count); position:absolute; left:0; top:0; min-width:17px; padding:0 2px; box-sizing:border-box;
  display:grid; place-items:center; height:100%; border:1px dashed #436b59; border-radius:3px;
  color:#1b3029; background-color:var(--tv-cluster-color); font-weight:750;
}
.tv-mark.tv-cluster.tv-at-right::after { left:auto; right:0; }
.thread-viewer button.tv-mark.tv-cluster.tv-inspected::after { outline:2px solid #254e3e; }
.tv-replay-speed { display:inline-flex; align-items:center; gap:5px; color:var(--ui-muted); font-size:11px; }
.thread-viewer .tv-nav-field.tv-replay-field { margin-top:6px; grid-template-columns:max-content minmax(80px,1fr) auto; align-items:center; gap:9px; }
.tv-navigator .tv-replay-field input { grid-column:2; grid-row:1; }
.tv-replay-field .tv-nav-value { grid-column:3; grid-row:1; }
.tv-ticks { display:block; position:relative; min-height:1.5em; font-variant-numeric:tabular-nums; }
.tv-ticks.tv-clock-axis { min-height:2.8em; }
.tv-ticks span { position:absolute; bottom:0; transform:translateX(-50%); max-width:25%; overflow:hidden; text-overflow:ellipsis; white-space:pre-line; text-align:center; }
.tv-ticks span:first-child { text-align:start; transform:none; } .tv-ticks span:last-child:not(:first-child) { text-align:end; transform:translateX(-100%); }
.thread-viewer .tv-allocations tbody tr { height:3.25rem; }
.thread-viewer .tv-allocations .tv-num { white-space:pre; overflow:hidden; text-overflow:ellipsis; line-height:1.35; font-variant-numeric:tabular-nums; }
@container (max-width:640px) {
  .tv-lane-count { padding:0 2px; }
  .tv-replay-field .tv-nav-value { margin-inline-start:0; }
}

.concurrency-progress {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px;
  padding: 12px 16px; margin-block: 10px 2px;
  border: 1px solid var(--ui-line); border-inline-start: 3px solid var(--ui-accent);
  border-radius: 6px; color: var(--ui-ink); background: #fff;
}
.concurrency-progress[hidden] { display: none; }
.concurrency-progress h3, .concurrency-progress dl, .concurrency-progress dd { margin: 0; }
.concurrency-progress h3 { font-size: 14px; }
.cp-status, .concurrency-progress dt { font-size: 12px; color: var(--ui-muted); }
.concurrency-progress dl { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.concurrency-progress dl > div { min-width: 11ch; }
.concurrency-progress dd {
  font-family: var(--mono); font-size: 15px; font-variant-numeric: tabular-nums;
  color: var(--ui-navy);
}

.tv-task-lists {margin:16px 0 12px;min-width:0;font-variant-numeric:tabular-nums}
.tv-queue-head,.tv-queue-foot,.tv-queue-title {display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.tv-queue-head {justify-content:space-between;margin-bottom:8px}
.tv-queue-head h4,.tv-queue-title,.tv-queue-empty {margin:0}
.tv-queue-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tv-queue-group {border:1px solid var(--ui-line,#cbd5e0);border-radius:7px;padding:9px 12px;background:var(--ui-surface,#fff);min-width:0}
.tv-queue-title {font-size:13px;font-weight:600;line-height:1.4;color:var(--ui-navy,#233c5b)}
.tv-queue-count {padding:1px 6px;border-radius:4px;background:var(--ui-wash,#f2f5f8);font:600 11px/1.4 var(--mono,monospace);color:var(--ui-muted,#526679)}
.tv-queue-list {display:flex;flex-wrap:wrap;gap:5px;align-items:start;align-content:start;max-height:100px;overflow:auto;list-style:none;padding:0;margin:5px 0 0}
.tv-queue-list li {min-width:0;max-width:100%}
.tv-queue-task,.tv-queue-current {border:1px solid var(--ui-line,#cbd5e0);border-radius:4px;padding:2px 6px;background:var(--ui-wash,#f6f8fa);color:var(--ui-ink,#24364a);font:inherit;font-size:12px;cursor:pointer}
.tv-queue-task {max-width:100%;display:inline-flex;align-items:center;gap:6px}
.tv-queue-task small {font:10px var(--mono,monospace);color:var(--ui-muted,#526679)}
.tv-queue-name {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tv-queue-task.is-picked {outline:1px solid var(--ui-accent,#315779)}
.tv-queue-empty,.tv-queue-foot {font-size:12px;color:var(--ui-muted,#526679)}
.tv-queue-foot {margin-top:6px}
.tv-queue-task:focus-visible,.tv-queue-current:focus-visible {outline:2px solid var(--ui-accent,#315779);outline-offset:1px}
@media(max-width:580px) {.tv-queue-grid {grid-template-columns:minmax(0,1fr)}}
.thread-viewer .tv-chart .tv-ticks { cursor:crosshair; touch-action:pan-y; }
.tv-ticks:focus-visible { outline:2px solid var(--ui-accent); outline-offset:2px; }
.tv-ruler-cursor::after {
  content:""; position:absolute; left:var(--tv-cursor-left); bottom:0; transform:translateX(-50%);
  width:8px; height:6px; background:#315779; clip-path:polygon(0 0,100% 0,50% 100%); pointer-events:none;
}
.tv-scope-actions { display:flex; flex-wrap:wrap; gap:6px; }
