/* v89 DESIGN ROUND: page layer (today), per DESIGN-V89.md section 7. Tokens only; components come from next-v89.css.
   Today (.v89t), Review, the lot page (.v89l), Recalls, Trace and Vera's page. */

/* ======================= TODAY ======================= */
.v89t { --v89t-c-st: 168px; --v89t-c-lot: 22%; --v89t-c-age: 88px; --v89t-c-ac: 204px; --v89t-rail: 300px; }
.v89t .v89-head { margin-bottom: var(--s-6); }
.v89t .v89-strip { margin-bottom: var(--s-6); }

/* the alerts above the queue: one critical callout each, no icon tile */
.v89t-alerts { display: grid; gap: var(--s-3); margin: 0 0 var(--s-6); }
.v89t .v89t-alerts .card.stale { display: block; margin: 0; padding: var(--s-3) var(--s-4); border: 0; border-radius: var(--r-ctl); background: var(--critical-bg); color: var(--critical-fg); box-shadow: none; }
.v89t .v89t-alerts .card.stale .st-tx { display: block; }
.v89t .v89t-alerts .card.stale b { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-semibold); color: inherit; }
.v89t .v89t-alerts .card.stale p { margin: var(--s-1) 0 0; font-size: var(--t-body-size); line-height: var(--t-body-lh); color: inherit; }
.v89t .v89t-alerts .card.stale a.link { color: inherit; text-decoration: underline; text-underline-offset: 2px; }

/* the queue and the rail: side by side where the queue can still say each ask in one line, stacked below that */
.v89t-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--s-6); align-items: start; }
.v89t-main { min-width: 0; }
.v89t-rail { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4); align-items: start; }
@media (min-width: 1500px) {
  .v89t-grid { grid-template-columns: minmax(0, 1fr) var(--v89t-rail); }
  .v89t-rail { grid-template-columns: minmax(0, 1fr); }
}

/* one queue in one card: a column header, then each group's band and rows; the columns line up across the groups */
.v89t-qcard { overflow: visible; }
.v89t-qcard > .tablewrap { overflow: visible; }
table.v89t-q { width: 100%; table-layout: fixed; border-collapse: collapse; }
table.v89t-q col.c-st { width: var(--v89t-c-st); }
table.v89t-q col.c-lot { width: var(--v89t-c-lot); }
table.v89t-q col.c-age { width: var(--v89t-c-age); }
table.v89t-q col.c-ac { width: var(--v89t-c-ac); }
table.v89t-q th { width: auto; height: 36px; padding: 0 var(--s-4); font-size: var(--t-label-size); line-height: var(--t-label-lh); font-weight: var(--w-medium); color: var(--gray-500); background: var(--gray-50); border-bottom: 1px solid var(--gray-200); white-space: nowrap; }
.v89t-cols table.v89t-q th:first-child { border-top-left-radius: var(--r-card); }
.v89t-cols table.v89t-q th:last-child { border-top-right-radius: var(--r-card); }
.v89t-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
table.v89t-q td { height: 60px; padding: var(--s-2) var(--s-4); vertical-align: middle; border-bottom: 1px solid var(--gray-100); background: none; }
table.v89t-q td.st { padding-right: var(--s-2); }
table.v89t-q tbody tr:last-child td { border-bottom: 0; }
table.v89t-q tr[data-go] { cursor: pointer; }
table.v89t-q tr[data-go]:hover td { background: var(--gray-50); }
table.v89t-q td .l1, table.v89t-q td.nm b.l1 { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
table.v89t-q td.nm .l2 { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v89t-need { min-width: 0; }
.v89t-need > span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v89t-need > .w { font-size: var(--t-body-size); line-height: var(--t-body-lh); color: var(--gray-900); }
.v89t-need > .f { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
table.v89t-q td.age { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); white-space: nowrap; text-align: right; font-variant-numeric: tabular-nums; }
/* v90 (reviewer D): Waiting is 88px, its header and its values on one right edge */
table.v89t-q th.r, table.v89t-q td.r { text-align: right; }
table.v89t-q td.ac { white-space: nowrap; padding-right: var(--s-1); }
table.v89t-q td.ac .btn { margin: 0; }

/* the group band */
.v89t-grp { padding: var(--s-3) var(--s-4); background: var(--gray-0); border-bottom: 1px solid var(--gray-100); }
.v89t-grp + .tablewrap + .v89t-grp, .tablewrap + .v89t-grp { border-top: 1px solid var(--gray-200); }
.v89t-grp-h { display: flex; align-items: center; gap: var(--s-2); }
.v89t-grp h3 { margin: 0; font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-semibold); color: var(--gray-900); }
.v89t-grp .n { font-size: var(--t-label-size); line-height: var(--t-label-lh); font-weight: var(--w-medium); color: var(--gray-500); }
.v89t-grp p { margin: 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); max-width: 80ch; }
.v89t-qcard .tfoot { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); border-top: 1px solid var(--gray-200); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89t-qcard .tfoot .sp { margin-left: auto; }

/* the rail's cards */
.v89t-rc .card-h .sub { order: 10; }
.v89t-rc .card-b > p { margin: 0; }
.v89t-lead { font-size: var(--t-body-size); line-height: var(--t-body-lh); color: var(--gray-900); }
.v89t-lead b { font-weight: var(--w-medium); }
.v89t-meta { margin: var(--s-1) 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89t-act { margin-top: var(--s-3); }
.v89t-rows, .v89t-soon { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--gray-200); }
.v89t-rows li + li, .v89t-soon li + li { border-top: 1px solid var(--gray-100); }
.v89t-rows a { display: flex; align-items: center; gap: var(--s-3); min-height: 44px; padding: var(--s-2) var(--s-5); text-decoration: none; color: var(--gray-700); font-size: var(--t-body-size); line-height: var(--t-body-lh); }
.v89t-rows a:hover, .v89t-soon a:hover { background: var(--gray-50); }
.v89t-rows b { margin-left: auto; font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); font-variant-numeric: tabular-nums; }
.v89t-rows b.critical { color: var(--critical-fg); }
.v89t-rc:last-child .v89t-rows li:last-child a, .v89t-rc .v89t-soon li:last-child a { border-bottom-left-radius: var(--r-card); border-bottom-right-radius: var(--r-card); }
.v89t-soon a { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-5); text-decoration: none; color: inherit; }
.v89t-soon .tx { display: block; min-width: 0; flex: 1 1 auto; }
.v89t-soon .tx b, .v89t-soon .tx span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v89t-soon .tx b { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
.v89t-soon .tx span { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89t-soon time { flex: none; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); font-variant-numeric: tabular-nums; }

@media (max-width: 1099px) { .v89t-rail { grid-template-columns: minmax(0, 1fr); } }

/* phone: each row is a small card; the column header goes */
@media (max-width: 699px) {
  .v89t-cols { display: none; }
  .v89t-grp { padding: var(--s-3) var(--s-4); }
  #view table.v89t-q, #view table.v89t-q tbody { display: block; width: auto; }
  #view table.v89t-q colgroup { display: none; }
  #view table.v89t-q tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-1) var(--s-3); padding: var(--s-3) var(--s-4); border-bottom: 1px solid var(--gray-100); }
  #view table.v89t-q tbody tr:last-child { border-bottom: 0; }
  #view table.v89t-q td { display: block; height: auto; padding: 0; border: 0; background: none; }
  #view table.v89t-q td.st { grid-column: 1; grid-row: 1; }
  #view table.v89t-q td.age { grid-column: 2; grid-row: 1; align-self: center; text-align: right; }
  #view table.v89t-q td.nm { grid-column: 1 / -1; grid-row: 2; }
  #view table.v89t-q td.why { grid-column: 1 / -1; grid-row: 3; }
  #view table.v89t-q td.ac { grid-column: 1 / -1; grid-row: 4; text-align: left; }
  #view table.v89t-q td.ac .btn { margin-left: calc(-1 * var(--s-3)); }
  .v89t-need > span { white-space: normal; }
  #view table.v89t-q td.why span.f { display: block; }
  .v89t-rail { grid-template-columns: minmax(0, 1fr); }
}

/* ======================= THE LOT PAGE (.v89l) ======================= */
.v89l .v89l-head { margin: 0 0 var(--s-6); }
.v89l .v89l-head .titleline { display: flex; align-items: center; gap: var(--s-2) var(--s-3); flex-wrap: wrap; }
.v89l .v89l-head .titleline h1 { margin: 0; font-size: var(--t-title-size); line-height: var(--t-title-lh); font-weight: var(--w-semibold); letter-spacing: var(--t-title-track); }
.v89l .v89l-head .titleline h1 .v89-id { font-weight: inherit; }
.v89l .v89l-head .idline.v89l-meta { margin: var(--s-1) 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l > .ptabs { margin: 0 0 var(--s-6); }

/* Review and sign: the main column and a 320px rail */
.v89l-grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: var(--s-6); align-items: start; }
.v89l-main, .v89l-rail { display: grid; gap: var(--s-6); min-width: 0; align-content: start; }
.v89l-rail { gap: var(--s-4); }
.v89l-main > *, .v89l-rail > * { margin: 0; }
.v89l-next .nextbar { margin: 0; }
.v89l-calls .brief-b { padding: 0 var(--s-5) var(--s-5); }
.v89l-calls .card-h + .brief-b { padding-top: 0; }
.v89l-calls .brief-b .v84basis { margin-top: var(--s-4); }
.v89l .v84checks .v89l-lastrun { margin: 0; padding: var(--s-3) var(--s-5); border-top: 1px solid var(--gray-100); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l .v84checks .v89l-lastrun .tag, .v89l .v84checks .v89l-lastrun .chip { margin-right: var(--s-2); }
.v89l-rail .card-h { padding: var(--s-4) var(--s-5) var(--s-3); }
.v89l-rail .card-b { padding: 0 var(--s-5) var(--s-5); }
.v89l-rail section.card.panel > section { padding: 0 var(--s-5) var(--s-5); }
.v89l-rail dl.kv, .v89l-rail .facts { font-size: var(--t-small-size); line-height: var(--t-small-lh); }
@media (max-width: 1099px) { .v89l-grid { grid-template-columns: minmax(0, 1fr); } }

/* Certificate: the document inline */
.v89l-certcard .card-h h2 .v89-id { font-weight: var(--w-semibold); }
.v89l-certcard + .v89l-docs, .v89l-docs + * { margin-top: var(--s-6); }
.v89l-asprinted { margin: 0 0 var(--s-3); }
.v89l-print { list-style: none; margin: 0; padding: var(--s-4) 0; counter-reset: ln; background: var(--gray-50); border-radius: var(--r-ctl); max-height: 640px; overflow: auto; }
.v89l-print li { display: grid; grid-template-columns: 48px minmax(0, 1fr); counter-increment: ln; }
.v89l-print li::before { content: counter(ln); text-align: right; padding-right: var(--s-3); font-size: var(--t-label-size); line-height: var(--t-small-lh); color: var(--gray-500); font-variant-numeric: tabular-nums; }
.v89l-print .v89-mono { white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-900); padding-right: var(--s-4); }
.v89l-vals col.c-k { width: 36%; }
.v89l-vals td:first-child { color: var(--gray-500); }

/* Chain: one card, one row per step */
.v89l-cnts { display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-5); padding: 0 var(--s-5) var(--s-4); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-cnt b { font-weight: var(--w-semibold); color: var(--gray-900); font-variant-numeric: tabular-nums; }
.v89l-cnt.f b { color: var(--critical-fg); }
.v89l-steps { border-top: 1px solid var(--gray-200); }
.v89l-step + .v89l-step { border-top: 1px solid var(--gray-100); }
.v89l-step > summary { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto 16px; align-items: center; gap: var(--s-4); min-height: 48px; padding: var(--s-2) var(--s-5); cursor: pointer; list-style: none; }
.v89l-step > summary::-webkit-details-marker { display: none; }
.v89l-step > summary:hover { background: var(--gray-50); }
.v89l-step > summary > svg.i { width: 16px; height: 16px; color: var(--gray-500); transform: rotate(90deg); transition: transform var(--d-hover) var(--ease); }
.v89l-step[open] > summary > svg.i { transform: rotate(-90deg); }
.v89l-sn { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
.v89l-sv { font-size: var(--t-body-size); line-height: var(--t-body-lh); color: var(--gray-700); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v89l-sm { justify-self: end; }
.v89l-sb { padding: 0 var(--s-5) var(--s-5) calc(180px + var(--s-5) + var(--s-4)); }
.v89l-sb > section { padding: 0; border: 0; }
.v89l-sb .v85cks { margin: 0 0 var(--s-3); }
.v89l-foot { margin: 0; padding: var(--s-4) var(--s-5); border-top: 1px solid var(--gray-200); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
/* the checks a step card does not hold (a preparation's, ingredient by ingredient), kept in the chain card */
.v89l-checks { padding: var(--s-4) var(--s-5) var(--s-5); border-top: 1px solid var(--gray-200); }
.v89l-checks > h3 { margin: 0 0 var(--s-3); font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-medium); color: var(--gray-500); letter-spacing: 0; }
.v89l-checks .cstages { margin: 0; }
.v89l-impact { margin-top: var(--s-6); }
.v89l-impact > .card > .card.stats { border: 0; border-radius: 0; border-top: 1px solid var(--gray-200); border-bottom: 1px solid var(--gray-200); }
@media (max-width: 699px) {
  .v89l-step > summary { grid-template-columns: minmax(0, 1fr) auto 16px; gap: var(--s-1) var(--s-3); padding: var(--s-3) var(--s-4); }
  .v89l-sn { grid-column: 1; grid-row: 1; }
  .v89l-sv { grid-column: 1 / -1; grid-row: 2; }
  .v89l-sm { grid-column: 2; grid-row: 1; }
  .v89l-step > summary > svg.i { grid-column: 3; grid-row: 1; }
  .v89l-sb { padding: 0 var(--s-4) var(--s-4); }
  .v89l-cnts { padding: 0 var(--s-4) var(--s-3); }
}
.v89l .v89l-head .top2 { display: flex; align-items: flex-start; gap: var(--s-4) var(--s-6); }
.v89l .v89l-head .top2 > div:not(.acts) { flex: 1 1 auto; min-width: 0; }
.v89l .v89l-head .top2 > .acts { margin-left: auto; flex: none; }
/* the calls: one list, one frame (the card); no tray, no side rules */
.v89l-calls .flist { display: block; padding: 0; background: none; border-radius: 0; border-top: 1px solid var(--gray-100); }
.v89l-calls .fitem { padding: var(--s-4) 0; border: 0; border-left: 0; border-radius: 0; box-shadow: none; background: none; }
.v89l-calls .fitem + .fitem { border-top: 1px solid var(--gray-100); }
.v89l-calls .fitem .fh { display: flex; align-items: center; gap: var(--s-2); margin: 0 0 var(--s-2); }
.v89l-calls .fitem .fh b { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-semibold); color: var(--gray-900); }
.v89l-calls .fitem p { margin: var(--s-2) 0 0; font-size: var(--t-body-size); line-height: var(--t-body-lh); color: var(--gray-700); }
.v89l-calls .fitem p > span { display: block; margin: 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-calls .fitem p.clr { padding-top: 0; border-top: 0; }
.v89l-calls .fitem p.clr > span { color: var(--gray-500); }
.v89l-calls .fitem p.v89-t-label { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-callact { margin-top: var(--s-3); }
.v89l-calls .brief-b > .meta { display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-2); padding-top: var(--s-4); border-top: 1px solid var(--gray-100); }
.v89l-calls .v84basis { display: flex; align-items: center; gap: var(--s-3); margin: var(--s-4) 0 0; padding: var(--s-3) var(--s-4); border: 0; border-radius: var(--r-ctl); background: var(--attention-bg); color: var(--attention-fg); font-size: var(--t-body-size); line-height: var(--t-body-lh); }
.v89l-calls .v84basis.ok { background: var(--gray-50); color: var(--gray-700); }
.v89l-calls .v84basis > svg { flex: none; width: 16px; height: 16px; color: currentColor; }
.v89l-calls .v84basis > span { flex: 1 1 auto; min-width: 0; }
.v89l-calls .v84basis > .btn { flex: none; margin-left: auto; }
@media (max-width: 699px) { .v89l .v89l-head .top2 { flex-wrap: wrap; } .v89l .v89l-head .top2 > .acts { margin-left: 0; width: 100%; } .v89l-calls .v84basis { flex-wrap: wrap; } }
@media (min-width: 1100px) {
  .v89l-hist table { table-layout: fixed; }
  .v89l-hist th:nth-child(1) { width: 192px; }
  .v89l-hist th:nth-child(2) { width: 22%; }
  .v89l-hist th:nth-child(3) { width: 30%; }
}
@media (max-width: 699px) { .v89l-calls .brief-b > .meta .btn { height: auto; min-height: 32px; white-space: normal; text-align: left; padding-top: var(--s-1); padding-bottom: var(--s-1); } }

/* ======================= WHAT A LOT REACHES (.v89-impact), on Trace, Recalls and the lot's Chain tab =======================
   the counts are one row inside the card, split by dividers; nothing inside is framed a second time */
#view .v89-impact .card.stats { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); grid-template-columns: none; margin: 0; padding: 0; border: 0; border-radius: 0; border-top: 1px solid var(--gray-200); border-bottom: 1px solid var(--gray-200); background: none; box-shadow: none; overflow: visible; }
#view .v89-impact .card.stats::before, #view .v89-impact .card.stats::after { display: none; }
#view .v89-impact .card.stats > .stat { display: flex; flex-direction: column; align-items: flex-start; gap: var(--s-1); min-width: 0; height: auto; padding: var(--s-4) var(--s-5); border: 0; border-radius: 0; background: none; box-shadow: none; text-align: left; }
#view .v89-impact .card.stats > .stat + .stat { border-left: 1px solid var(--gray-100); }
#view .v89-impact .card.stats > .stat > * { padding: 0; margin: 0; }
#view .v89-impact .card.stats .lab { order: 0; white-space: normal; font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-medium); color: var(--gray-500); }
#view .v89-impact .card.stats .lab svg { display: none; }
#view .v89-impact .card.stats .val { order: 1; }
#view .v89-impact .card.stats .sub, #view .v89-impact .card.stats .subl { order: 2; display: block; white-space: normal; overflow: visible; text-overflow: clip; -webkit-line-clamp: none; line-clamp: none; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
#view .v89-impact .grid.g-2 { gap: 0; }
#view .v89-impact .grid.g-2 > div { min-width: 0; border: 0; }
#view .v89-impact .grid.g-2 > div + div { border-left: 1px solid var(--gray-200); }
#view .v89-impact .grid.g-2 .card-h { border: 0; min-height: 0; }
#view .v89-impact .grid.g-2 .card-h h2 { font-size: var(--t-body-size); line-height: var(--t-body-lh); }
#view .v89-impact .ministats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3) var(--s-4); padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
#view .v89-impact .ministats > div { padding: 0; border: 0; background: none; }
#view .v89-impact .ministats b { display: block; font-size: var(--t-heading-size); line-height: var(--t-heading-lh); font-weight: var(--w-semibold); letter-spacing: 0; }
#view .v89-impact .ministats span { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
#view .v89-impact .reach-links td { height: 44px; }
@media (max-width: 1099px) { #view .v89-impact .card.stats { grid-auto-flow: row; grid-template-columns: repeat(2, minmax(0, 1fr)); } #view .v89-impact .card.stats > .stat + .stat { border-left: 0; } #view .v89-impact .grid.g-2 { grid-template-columns: minmax(0, 1fr); } #view .v89-impact .grid.g-2 > div + div { border-left: 0; border-top: 1px solid var(--gray-200); } }

/* ======================= REVIEW (.v89r) ======================= */
.v89r .v89r-one { grid-template-columns: minmax(0, 1fr); }
.v89r .rboard .btool { gap: var(--s-3); }
.v89r .bnote { display: flex; align-items: center; gap: var(--s-2); margin: var(--s-3) 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89r .bnote svg.i { width: 16px; height: 16px; color: var(--gray-400); }

/* ======================= RECALLS (.v89c) ======================= */
.v89c .v89-head .acts .btn[aria-disabled="true"] { opacity: .6; }

/* ======================= VERA (.v89v): on the page gutter, one column and her source pane ======================= */
.v89v > .convo { margin: 0; padding: 0; max-width: none; }
.v89v .v81v-main { display: grid; gap: var(--s-6); align-content: start; }
.v89v .v81v-main > * { margin: 0; }
.v89v-db { padding: 0 var(--s-5) var(--s-5); }
.v89v-need > summary { list-style: none; display: flex; align-items: center; gap: var(--s-3); padding-right: var(--s-5); cursor: pointer; }
.v89v-need > summary::-webkit-details-marker { display: none; }
.v89v-need > summary .card-h { flex: 1 1 auto; border: 0; }
.v89v-need > summary > svg.i { width: 16px; height: 16px; color: var(--gray-500); transform: rotate(90deg); transition: transform var(--d-hover) var(--ease); }
.v89v-need[open] > summary > svg.i { transform: rotate(-90deg); }
.v89v-need[open] > summary { border-bottom: 1px solid var(--gray-200); }
.v89v-nb { padding: 0 var(--s-5) var(--s-5); }
.v89v .v89-id { color: inherit; font-weight: var(--w-medium); }
.v89v-ask .log:empty { display: none; }
.v89v-ask .log { margin: 0 var(--s-5) var(--s-4); }
.v89v-ask form.composer { position: sticky; bottom: 0; z-index: 1; }
.v89v-ask .log:has(> .askend:only-child) { display: none; }
.v89v-db .v81sec-b > p:first-child { margin: 0 0 var(--s-2); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
/* what she drafted, and her read of each item: rows in the card, not boxes inside it */
.v89v .v89v-db .prep, .v89v .v89v-nb .prep { margin: 0; padding: var(--s-4) 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.v89v .v89v-db .prep + .prep, .v89v .v89v-nb .prep + .prep { border-top: 1px solid var(--gray-100); }
.v89v .v89v-db .prep .ph { display: flex; align-items: center; gap: var(--s-2); margin: 0 0 var(--s-1); padding: 0; border: 0; background: none; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89v .v89v-db .prep .ph svg.i { width: 16px; height: 16px; }
.v89v .v89v-db .prep .pb { padding: 0; }
.v89v .v89v-db .prep .pb b { display: block; font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-semibold); color: var(--gray-900); }
.v89v .v89v-db .prep .pb p { margin: var(--s-1) 0 0; font-size: var(--t-body-size); line-height: var(--t-body-lh); color: var(--gray-700); }
.v89v .v89v-db .prep .pf { margin: var(--s-3) 0 0; padding: 0; border: 0; background: none; }
#view .v89-impact .card.stats > .stat > * { align-self: stretch; text-align: left; }
#view .v89-impact .reach-links table { table-layout: auto; width: 100%; }
#view .v89-impact .reach-links td { padding-left: var(--s-3); padding-right: var(--s-3); white-space: nowrap; }
#view .v89-impact .reach-links td:first-child { padding-left: var(--s-5); width: 24px; }
.v89v-db .v81sec-b { padding: 0; }
/* no coloured icon tiles in card titles on these pages */
.v89c .card-h > .tile, .v89tr .card-h > .tile, .v89l .card-h > .tile, .v89r .card-h > .tile { display: none; }
.v89v .pcite a.cite, .v89v .vdoc a.cite { font-family: var(--font); font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-medium); }
@media (max-width: 699px) {
  .v89v-ask form.composer { margin-left: var(--s-4); margin-right: var(--s-4); }
  .v89v-ask .chipbtn { max-width: 100%; white-space: normal; height: auto; min-height: 28px; text-align: left; }
}
/* the steps' own counts (dispensing and administration) are a quiet row, not a grid of boxed numerals */
#view .v89l-steps .ministats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-3) var(--s-4); padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
#view .v89l-steps .ministats > div { padding: 0; border: 0; background: none; }
#view .v89l-steps .ministats b { display: block; font-size: var(--t-heading-size); line-height: var(--t-heading-lh); font-weight: var(--w-semibold); letter-spacing: 0; }
#view .v89l-steps .ministats span { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-step[open] + .v89l-step { border-top-color: var(--gray-200); }
/* the compounding record elements (a preparation's evidence), on the scale: they were 13.5px in the system font */
.v89l .bdcard .elgrid .el, .v89l .bdcard .elgrid .el span { font-family: var(--font); font-size: var(--t-small-size); line-height: var(--t-small-lh); }
.v89l .bdcard .tablewrap { overflow-x: auto; }
/* two parts other layers draw onto the lot page, on the scale here: the recorded balance and the formula card */
.v89l .qeq, .v89l .qeq span { font-size: var(--t-small-size); line-height: var(--t-small-lh); }
.v89l .qeq { border-radius: var(--r-ctl); padding: var(--s-2) var(--s-3); }
.v89l .v87fx-n b { font-size: var(--t-num-size); line-height: var(--t-num-lh); letter-spacing: var(--t-num-track); }
.v89l .v87fx-n span, .v89l .v87fx-a, .v89l .v87fx-note { font-size: var(--t-small-size); line-height: var(--t-small-lh); }
.v89l .v87fx-foot { font-size: var(--t-label-size); line-height: var(--t-label-lh); }
.v89l .v87fx-two > div { border: 0; border-radius: var(--r-ctl); background: var(--gray-50); padding: var(--s-2) var(--s-3); }
.v89l .v87fx-two b { font-size: var(--t-heading-size); line-height: var(--t-heading-lh); }
.v89l .v87fx-two span { font-size: var(--t-small-size); line-height: var(--t-small-lh); }
@media (max-width: 699px) {
  .v89l-calls .v84basis { display: grid; grid-template-columns: 16px minmax(0, 1fr); align-items: start; gap: var(--s-2) var(--s-3); }
  .v89l-calls .v84basis > svg { margin-top: 2px; }
  .v89l-calls .v84basis > .btn { grid-column: 2; justify-self: start; margin-left: 0; }
}

/* ======================= v90 fix round (fixer B) ======================= */
/* Today: the count and one product sentence are one line under the title, so the strip starts higher */
.v89t .v89-head .v89-purpose { max-width: 720px; }
.v89t .v89-head { margin-bottom: var(--s-5); }
.v89t-need > .f.flag { color: var(--attention-fg); }
/* row actions are ghost buttons that read as actions: the icon and the label in the action colour, a tint on hover */
:is(table.v89t-q td.ac, .v89c table.signals td.ac, .v89tr .v89b-act) .btn.ghost { color: var(--accent); }
:is(table.v89t-q td.ac, .v89c table.signals td.ac, .v89tr .v89b-act) .btn.ghost:hover { background: var(--accent-tint); color: var(--accent-hover); }
:is(table.v89t-q td.ac, .v89c table.signals td.ac) .btn.ghost svg.i { color: currentColor; }
.v89t-loop .v89-cell .ctx [data-v89count] { font-variant-numeric: tabular-nums; }
/* Review: the board's toolbar is a 14px search and the system's menu button; cards keep full names and say their counts */
.v89r .rboard .btool { display: flex; align-items: center; gap: var(--s-3); margin: 0 0 var(--s-4); }
.v89r .rboard .btool .sq { display: flex; align-items: center; gap: var(--s-2); min-width: 280px; height: 32px /* v93 (decision 16): the search, the filter and the buttons share 32px */; padding: 0 var(--s-3); border: 1px solid var(--gray-300); border-radius: var(--r-ctl); background: var(--gray-0); }
.v89r .rboard .btool .sq svg.i { width: 16px; height: 16px; color: var(--gray-400); flex: none; }
.v89r .rboard .btool .sq input { flex: 1 1 auto; min-width: 0; height: auto; padding: 0; border: 0; box-shadow: none; background: transparent; outline: 0; font-family: var(--font); font-size: var(--t-body-size); line-height: var(--t-body-lh); color: var(--gray-900); }
.v89r .rboard .btool .sq:focus-within { border-color: var(--accent); box-shadow: var(--focus-ring); }
.v89r .bfilter > summary.btn { height: 32px; gap: var(--s-1); font-weight: var(--w-regular); color: var(--gray-700); }
.v89r .bfilter > summary.btn .bf-v { font-weight: var(--w-medium); color: var(--gray-900); }
.v89r .bfilter > summary.btn svg.i { margin-left: var(--s-1); color: var(--gray-500); }
.v89r .bfilter .v84menu { position: absolute; z-index: 20; top: calc(100% + var(--s-1)); left: 0; width: max-content; min-width: 100%; max-width: 360px; max-height: 320px; overflow-y: auto; }
.v89r .bfilter .btn.mi[aria-checked="true"] { font-weight: var(--w-medium); background: var(--gray-50); }
.v89r .bcard .bc-t { -webkit-line-clamp: unset; display: block; }
.v89r .bcard .bc-foot { align-items: flex-start; }
.v89r .bcard .bc-sup { align-items: flex-start; }
.v89r .bcard .bc-sup > span:last-child { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-700); padding-top: 2px; }
.v89r .bcard .bc-flag { margin: var(--s-1) 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--attention-fg); }
.v89r .bcard .bc-meta { margin: var(--s-2) 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); font-variant-numeric: tabular-nums; }
.v89r .bcard .bage { margin-left: auto; }
.v89r .v89r-screen { margin-top: var(--s-6); }
/* All lots: the search keeps its whole placeholder; a lot's name stays on one line */
.v89r [data-batchscope] .toolbar label.field { min-width: 300px; }
.v89r #lotTable td.two > b { white-space: nowrap; }
.v89r #lotTable td.st { white-space: nowrap; }
@media (max-width: 699px) {
  .v89r .rboard .btool { flex-wrap: wrap; }
  .v89r .rboard .btool .sq { min-width: 0; flex: 1 1 100%; }
  .v89r .rboard .btool .sq input { font-size: 16px; }
  .v89r [data-batchscope] .toolbar label.field { min-width: 0; }
  .v89r #lotTable td.two > b { white-space: normal; }
}
/* the lot page: one callout per tab; the rule's record is a quiet inner group, not a card in a card */
.v89l .sig.v90sig { border: 0; border-radius: var(--r-ctl); background: var(--gray-50); box-shadow: none; padding: var(--s-3) var(--s-4); }
.v89l .sig.v90sig h4 { margin: 0 0 var(--s-1); font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-medium); color: var(--gray-500); }
.v89l .sig.v90sig dl { margin: var(--s-2) 0 0; }
.v90quiet { margin: var(--s-3) 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v90muted { color: var(--gray-500); }
.v90crit { color: var(--critical-fg); }
.v90sigrow { display: flex; align-items: flex-start; gap: var(--s-3); padding: var(--s-3) var(--s-4); border-radius: var(--r-ctl); background: var(--gray-50); }
.v90sigrow .tx { display: grid; gap: 2px; flex: 1 1 auto; min-width: 0; }
.v90sigrow .tx b { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
.v90sigrow .tx span { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-700); }
.v90sigrow .tx span.v90muted { color: var(--gray-500); }
.v90sigrow .chip { flex: none; }
/* the 503A basis line is a quiet row: the next step above is the tab's one callout */
.v89l-calls .v84basis:not(.ok) { background: var(--gray-50); color: var(--gray-700); }
/* the rail's labels stay on one line */
.v89l-rail .facts > div > small { white-space: nowrap; }
.v89l-rail .facts > div > span { text-align: right; }

/* Chain: the rule a step answers is small grey text under it, not a pill; a lot waiting for a pharmacist has no green mark */
.v89l-chain .cvlink .vchip { display: block; height: auto; margin: var(--s-1) 0 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; white-space: normal; font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-regular); color: var(--gray-500); }
.v89l-chain .cvlink .vchip::before { display: none; }
.v89l-chain .cvlink.st-wait .vst { color: var(--gray-500); }
.v89l-chain .cvlink.st-fail .cfix { color: var(--gray-700); }
.v89l-cnt.w b { color: var(--gray-900); }
.v90maker { margin: 0 0 var(--s-3); }
/* a preparation's chain checks, ingredient by ingredient: the same quiet rows as the steps above */
.v89l-checks .cstages, .v89l-checks .cgroup { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.v89l-checks .cgroup + .cgroup { margin-top: var(--s-4); padding-top: var(--s-4); border-top: 1px solid var(--gray-100); }
.v89l-checks .cgroup > h4, .v89l-checks .cstage > h4 { margin: 0 0 var(--s-2); font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); letter-spacing: 0; text-transform: none; }
.v89l-checks .v85cks, .v89l-checks ul { margin: 0; padding: 0; list-style: none; }
.v89l-checks li.cvlink { padding: var(--s-2) 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.v89l-checks li.cvlink + li.cvlink { border-top: 1px solid var(--gray-100); }
.v89l-checks li.cvlink b { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
.v89l-checks li.cvlink p { margin: 2px 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }

/* Passports: the id whole, cut at its end, with a copy button; a recalled lot's note under the table */
.v89l td.v90pid { display: flex; align-items: center; gap: var(--s-2); min-width: 0; max-width: 360px; }
.v89l td.v90pid .v89-id { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v89l td.v90pid .btn { flex: none; }
.v90passnote { border-top: 1px solid var(--gray-100); }
.v90passnote p { margin: 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-700); }

/* History: a row never runs over itself, whatever the system's table defaults */
.v89l-hist td { white-space: normal; overflow-wrap: anywhere; vertical-align: top; }
.v89l-hist td:first-child { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* phone: the lot's tabs scroll sideways; a fade says more tabs sit past the edge */
@media (max-width: 699px) {
  .v89l > .ptabs .tabs { gap: var(--s-5); scroll-snap-type: x proximity; }
  .v89l > .ptabs .tabs > * { scroll-snap-align: start; flex: none; }
  .v89l > .ptabs .tabs.v90more { -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 48px), transparent); }
  .v89l > .ptabs .tabs.v90more.v90less { -webkit-mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 48px), transparent); mask-image: linear-gradient(to right, transparent, #000 32px, #000 calc(100% - 48px), transparent); }
  .v89l > .ptabs .tabs.v90less:not(.v90more) { -webkit-mask-image: linear-gradient(to right, transparent, #000 32px); mask-image: linear-gradient(to right, transparent, #000 32px); }
  .v89l td.v90pid { max-width: none; }
}

/* Recalls: card headers are the title with one line under it, the chevron centred; the signals table on its axes */
.card-h.v90h { flex-wrap: nowrap; align-items: center; }
.v90ht { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.v90tr { display: flex; align-items: center; gap: var(--s-2); min-width: 0; }
.v90sub { font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-regular); color: var(--gray-500); }
#view details.v85fold > summary .card-h.v90h::after { align-self: center; }
.v89c table.signals td.v90date, .v89c table.signals th:first-child { padding-left: var(--s-4); text-align: left; white-space: nowrap; }
.v89c table.signals td.v90chev, .v89c table.signals th.v90chev { width: 40px; text-align: right; }
.v90rowchev svg.i { width: 16px; height: 16px; color: var(--gray-400); }
/* Trace and every "what this lot reaches" card: the link chip keeps its whole word; the order may wrap instead */
#view .v89-impact .reach-links td { white-space: normal; overflow-wrap: anywhere; }
#view .v89-impact .reach-links td.r { white-space: nowrap; width: 1%; }
.v89c table.signals td.two > span:not(.tag):not(.chip) { white-space: nowrap; display: block; overflow: hidden; text-overflow: ellipsis; }   /* v90: in the fixed-layout table the lot line drew over the Signal column; chips are left as chips (reviewer D2) */

/* Vera: one column; the input is the last card, pinned to the bottom of the window as the page scrolls */
.v89v .v81v-main { display: flex; flex-direction: column; gap: var(--s-6); overflow: visible; max-height: none; height: auto; }
.v89v .v89v-ask.v90pin { position: sticky; bottom: var(--s-4); z-index: 3; box-shadow: var(--shadow-overlay); }
.v89v .v89v-ask.v90pin > .card-h { padding-bottom: var(--s-2); }
.v89v .v89v-ask.v90pin .log { max-height: 40vh; overflow-y: auto; }
.v89v .v89v-ask.v90pin textarea { min-height: 44px; }
/* her source pane: no placeholder tile; the file name is an id and the line under it is whole */
.v73pane .vp-head.v90vp { align-items: flex-start; gap: var(--s-3); }
.v73pane .vp-head.v90vp b.v89-id { white-space: normal; overflow-wrap: anywhere; font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
.v73pane .vp-head.v90vp span:not(.chip) { white-space: normal; overflow: visible; text-overflow: clip; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v73pane .vp-head.v90vp .chip { flex: none; }
@media (max-width: 699px) { .v89v .v89v-ask.v90pin { bottom: calc(var(--s-4) + 64px); } }
/* the pinned input is compact: one line to type in, the suggestions in one row beside Ask, the note under it */
.v89v .v89v-ask.v90pin { padding: var(--s-3) var(--s-4); }
.v89v .v89v-ask.v90pin > .card-h { padding: 0 0 var(--s-2); }
.v89v .v89v-ask.v90pin > .card-h h2 { font-size: var(--t-body-size); line-height: var(--t-body-lh); }
.v89v .v89v-ask.v90pin form.composer { margin: 0; padding: 0; }
.v89v .v89v-ask.v90pin .log { margin: 0 0 var(--s-3); }
.v89v .v89v-ask.v90pin .box textarea { height: 40px; min-height: 40px; max-height: 120px; resize: none; padding: var(--s-2) var(--s-3); }
.v89v .v89v-ask.v90pin .box .row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: var(--s-2); padding: var(--s-2); }
.v89v .v89v-ask.v90pin .box .chips { display: flex; flex-wrap: nowrap; gap: var(--s-2); min-width: 0; flex: 1 1 auto; overflow-x: auto; scrollbar-width: none; -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); mask-image: linear-gradient(to right, #000 calc(100% - 32px), transparent); }
.v89v .v89v-ask.v90pin .box .chips::-webkit-scrollbar { display: none; }
.v89v .v89v-ask.v90pin .box .chips .chipbtn { flex: none; }
.v89v .v89v-ask.v90pin .box .row > .btn { flex: none; margin: 0; }
.v89v .v89v-ask.v90pin .askfoot { margin: var(--s-2) 0 0; font-size: var(--t-label-size); line-height: var(--t-label-lh); color: var(--gray-500); }
@media (max-width: 699px) { .v89v .v89v-ask.v90pin .askfoot { display: none; } .v89v .v89v-ask.v90pin > .card-h { display: none; } }
/* the chain checks a step card does not hold sit in the same rows as the steps: name on the left, mark on the right, the
   checks indented under it like a step's record (the lead's chain() moves them here; chain.cjs reads them) */
.v89l-chain .v89l-checks { padding: 0; }
.v89l-chain .v89l-checks > h3 { margin: 0; padding: var(--s-4) var(--s-5) var(--s-1); }
.v89l-checks .cstage { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.v89l-checks .cstage + .cstage { border-top: 1px solid var(--gray-100); }
.v89l-checks .cstage > .cs-h { display: grid; grid-template-columns: 180px minmax(0, 1fr) auto; align-items: center; gap: var(--s-4); min-height: 48px; margin: 0; padding: var(--s-2) var(--s-5); border: 0; background: none; }
.v89l-checks .cstage > .cs-h > .cs-n { display: none; }
.v89l-checks .cstage > .cs-h > div { grid-column: 1; min-width: 0; }
.v89l-checks .cstage > .cs-h > div b { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
.v89l-checks .cstage > .cs-h > .cs-s { grid-column: 3; justify-self: end; }
.v89l-checks .cstage > ul { margin: 0; padding: 0 var(--s-5) var(--s-4) calc(180px + var(--s-5) + var(--s-4)); }
.v89l-checks .cgroup { padding: var(--s-3) 0 0; }
.v89l-checks .cgroup > h4 { padding: 0 var(--s-5); }
@media (max-width: 699px) {
  .v89l-checks .cstage > .cs-h { grid-template-columns: minmax(0, 1fr) auto; padding: var(--s-3) var(--s-4); }
  .v89l-checks .cstage > .cs-h > .cs-s { grid-column: 2; }
  .v89l-checks .cstage > ul { padding: 0 var(--s-4) var(--s-4); }
}
.v89l-calls .fitem p.v90flag { margin: 0 0 var(--s-2); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--attention-fg); }
.v89l-chain .v89l-checks .cstages { display: block; }
.v89l-chain .v89l-checks .cstage > ul { display: block; }
@media (max-width: 699px) { .v89c table.signals td.v90chev, .v89c table.signals th.v90chev { display: none; } }
/* Vera's source pane: the marks beside a cited line ("Read here", "Your call") on the type scale (they were 11.5px and 10.5px at 650) */
.v73pane .vp-doc li small { margin: var(--s-1) 0; font-family: var(--font); font-size: var(--t-label-size); line-height: var(--t-label-lh); font-weight: var(--w-medium); color: var(--gray-700); }
.v73pane .vp-doc li small b { font-size: var(--t-label-size); line-height: var(--t-label-lh); font-weight: var(--w-semibold); }

/* v90 (proof/run.cjs red): the lot page's 320px rail left the main column too narrow at 768; below 1181px the rail drops under it */
@media (max-width: 1180px) { #view .v89l-grid { grid-template-columns: minmax(0, 1fr); } }

/* v90 (proof/run.cjs red): these pages hide the header's icon tile (above), but the system rule for a tile-led header still
   started the subtitle in column 2, an empty 46px track at 390 ("3 of 14 on record" crushed). With the tile hidden, the
   subtitle starts on the title's own left edge, and takes the full width on a phone. */
:is(.v89c, .v89tr, .v89l, .v89r) .card-h:has(> .tile:first-child):has(> :is(.sub, small, .v85sub, .v89-subn)) > :is(.sub, small, .v85sub, .v89-subn) { grid-column: 1 / -3; }
@media (max-width: 699px) { :is(.v89c, .v89tr, .v89l, .v89r) .card-h:has(> .tile:first-child):has(> :is(.sub, small, .v85sub, .v89-subn)) > :is(.sub, small, .v85sub, .v89-subn) { grid-column: 1 / -1; } }
/* the second line under a Source card value (the maker a person named, and how) */
#view dd > small.v90-ddsub { display: block; margin-top: 2px; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); font-weight: var(--w-regular); }

/* =============================================================== v92 (fixer G1) */
/* Today: each strip cell's context on one line (they ran 1, 1, 2 and 3 lines); the full sentence is the cell's hover title */
.v89t .v89t-loop .ctx { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* Today: the lot column has room for a supplier's whole name; "What it needs" keeps the rest */
.v89t { --v89t-c-st: 148px; --v89t-c-lot: 27%; --v89t-c-age: 64px; --v89t-c-ac: 176px; }
.v89t .v89t-loop > .v89-cell { min-width: 0; }
.v89t-need > .f.flag { color: var(--attention-fg); }
@media (max-width: 699px) {
  /* the strip under the queue's first group; each cell may take two short lines on a phone */
  .v89t .v89t-loop.v92t-midstrip { margin: var(--s-4) 0; }
  .v89t .v92t-qrest { margin-top: 0; }
  .v89t .v89t-loop .ctx { white-space: normal; }
}

/* Review board: one neutral glyph style in every column header */
.v89r .bcol-h .sg, .rboard .bcol-h .sg, .bempty .sg { color: var(--gray-500); }

/* lot page: the rail's Details card on the system's key/value rows: a 20px inset, the label in its own column, the value
   left-aligned beside it (never a right-aligned value wrapping onto two lines), the same title gap as the rail's other cards.
   Overrides the legacy next-v84.css:185 .v84facts .facts { padding: 0 16px 12px } */
#view .v89l-rail .v84facts > .facts { display: block; margin: 0; padding: 0 var(--s-5) var(--s-4); }
#view .v89l-rail .v84facts > .facts > div { display: grid; grid-template-columns: minmax(0, 116px) minmax(0, 1fr); column-gap: var(--s-3); align-items: start; justify-content: start; padding: var(--s-2) 0; border-top: 1px solid var(--gray-100); }
#view .v89l-rail .v84facts > .facts > div:first-child { border-top: 0; }
#view .v89l-rail .v84facts > .facts > div > small { white-space: normal; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
#view .v89l-rail .v84facts > .facts > div > span { text-align: left; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-900); white-space: normal; }
#view .v89l-rail dl.kv { display: grid; grid-template-columns: minmax(0, 116px) minmax(0, 1fr); column-gap: var(--s-3); row-gap: 0; margin: 0; }
#view .v89l-rail dl.kv > dt, #view .v89l-rail dl.kv > dd { margin: 0; padding: var(--s-2) 0; border-top: 1px solid var(--gray-100); font-size: var(--t-small-size); line-height: var(--t-small-lh); text-align: left; }
#view .v89l-rail dl.kv > dt { color: var(--gray-500); font-weight: var(--w-regular); }
#view .v89l-rail dl.kv > dd { color: var(--gray-900); }
#view .v89l-rail dl.kv > dt:first-of-type, #view .v89l-rail dl.kv > dt:first-of-type + dd { border-top: 0; }
#view .v89l-rail section.card.panel > section { padding: 0 var(--s-5) var(--s-4); }
/* "Checked against" on a decision owed: references are 13px, as the spec says (they were 12px under a 13px label) */
#view .v89l-calls .fitem p.v89-t-label { font-size: var(--t-small-size); line-height: var(--t-small-lh); }
/* one next step: the step the next-step box named, when it is not the header's, stays one quiet line under it */
.v89l-next .v92also { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s-2) var(--s-3); margin-top: var(--s-3); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-next .v92also .btn { margin: 0; }

/* Chain tab: the label column fits "How the patient opens it" on one line; a step with nothing on record reads so, quietly; a
   sentence is text, not a chip; the decision block inside a step is a divider, not a card in a card */
.v89l-chain .v89l-sb dl.kv { grid-template-columns: minmax(200px, max-content) minmax(0, 1fr); }
.v89l-chain .v89l-sb dl.kv > dt { white-space: nowrap; }
.v89l-chain .v92none { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-chain .v92smtx { display: block; max-width: 320px; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); text-align: right; white-space: normal; }
.v89l-chain .v92smtx.att { color: var(--attention-fg); }
.v89l-chain .v89l-sb .sig { margin: var(--s-3) 0 0; padding: var(--s-3) 0 0; border: 0; border-top: 1px solid var(--gray-200); border-radius: 0; background: none; box-shadow: none; }
.v89l-chain .v89l-step.v92empty > summary .v89l-sv { color: var(--gray-500); }
@media (max-width: 699px) { .v89l-chain .v89l-sb dl.kv { grid-template-columns: minmax(0, 1fr); } .v89l-chain .v89l-sb dl.kv > dt { white-space: normal; } .v89l-chain .v92smtx { text-align: left; } }

/* Passports tab: the passport id whole, in a column with room for it */
.v89l .v92pass table { table-layout: auto; }
.v89l .v92pass table th:first-child, .v89l .v92pass table td.v90pid { width: 46%; }
.v89l .v92pass td.v90pid { display: table-cell; max-width: none; white-space: nowrap; }
.v89l .v92pass td.v90pid .v89-id { display: inline; white-space: nowrap; overflow: visible; text-overflow: clip; }
.v89l .v92pass td.v90pid .btn { margin-left: var(--s-2); vertical-align: middle; }
@media (max-width: 699px) { .v89l .v92pass td.v90pid { white-space: normal; } .v89l .v92pass td.v90pid .v89-id { overflow-wrap: anywhere; white-space: normal; } }

/* Recalls: "See these lots in Review" is a quiet link, not a third full-width button */
.v89c .v92linkrow { padding: var(--s-3) var(--s-5); }

/* Vera: the pinned input never covers what it sits over without saying so: a fade above it, and room under the column's last
   card; the suggestions end in an ellipsis rather than mid-word; "Read here" beside a cited line is a quiet mark */
.v89v .v89v-ask.v90pin { box-shadow: 0 -1px 0 var(--gray-200), 0 -12px 24px -12px rgba(18, 22, 25, .18); }
.v89v .v89v-ask.v90pin::before { content: ""; position: absolute; left: 0; right: 0; top: -32px; height: 32px; pointer-events: none; background: linear-gradient(to bottom, transparent, var(--gray-25)); }
.v89v .v81v-main > .v89v-ask.v90pin { margin-top: var(--s-4); }
.v89v .v81v-main { padding-bottom: var(--s-2); }
/* the suggestions: whole pills on one row; one that does not fit drops to a hidden second row instead of being cut mid-word,
   and a pill wider than the row ends in an ellipsis */
.v89v .v89v-ask.v90pin .box .chips { -webkit-mask-image: none; mask-image: none; overflow: hidden; flex-wrap: wrap; align-items: flex-start; align-content: flex-start; max-height: 36px; row-gap: var(--s-4); }
.v89v .v89v-ask.v90pin .box .chips .chipbtn { flex: 0 0 auto; display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v73pane .vp-doc li small b.k-b { padding: 0; margin-right: var(--s-1); border-radius: 0; background: none; color: var(--gray-500); font-weight: var(--w-medium); box-shadow: none; }

/* Review board: a column title that is two words longer than the others wraps under its glyph rather than being cut */
.v89r .bcol-h { height: auto; min-height: 40px; padding-top: var(--s-2); padding-bottom: var(--s-2); }
.v89r .bcol-h b { white-space: normal; overflow: visible; text-overflow: clip; line-height: var(--t-small-lh); }
.v89l-certcard .card-h .v92certst { display: inline-flex; align-items: center; gap: var(--s-2); justify-self: start; }
.v89l-certcard .card-h .v92certst .v92quiet + .chip { margin-left: 0; }
/* History: a local date and time with its zone ("Sep 30, 2026, 10:37 PM CDT") is longer than the UTC stamp it replaced */
@media (min-width: 700px) { .v89l-hist th:nth-child(1) { width: 232px; } .v89l-hist th:nth-child(2) { width: 20%; } .v89l-hist th:nth-child(3) { width: 26%; } }
/* the column header row is not a group: no second rule under it (on a phone, where it is hidden, the rule sat over the card's own edge) */
.v89t-qcard > .v89t-cols + .v89t-grp { border-top: 0; }
.v89r .bcard .bc-meta + .bc-meta { margin-top: 0; }
/* the column headers share one height, so the first card of every column starts on the same line when one title wraps */
@media (min-width: 1100px) { .v89r .bcol-h { min-height: 56px; } }

/* Today: what a row needs may take two lines rather than end in an ellipsis; its second line stays one */
.v89t-need > .w { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; overflow: hidden; }

/* =============================================================== v93 (fixer H1) */
/* Today: the compact setup guide, one row per step; the next one carries its action word in accent */
.v93setup-l { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--gray-200); }
.v93setup-l li + li { border-top: 1px solid var(--gray-100); }
.v93setup-l a { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; align-items: center; gap: var(--s-3); min-height: 44px; padding: var(--s-2) var(--s-5); text-decoration: none; color: var(--gray-700); font-size: var(--t-body-size); line-height: var(--t-body-lh); }
.v93setup-l a:hover { background: var(--gray-50); }
.v93setup-l .n { width: 20px; height: 20px; border-radius: 50%; display: inline-grid; place-items: center; background: var(--gray-100); color: var(--gray-700); font-size: var(--t-label-size); line-height: var(--t-label-lh); font-weight: var(--w-medium); }
.v93setup-l .n svg { width: 12px; height: 12px; }
.v93setup-l li.done .n { background: none; color: var(--positive-dot); }
.v93setup-l li.done .t { color: var(--gray-500); }
.v93setup-l li.now .t { color: var(--gray-900); font-weight: var(--w-medium); }
.v93setup-l .m { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); white-space: nowrap; }
.v93setup-l li.now .m { color: var(--accent); font-weight: var(--w-medium); }
.v89t-rc:last-child .v93setup-l li:last-child a { border-bottom-left-radius: var(--r-card); border-bottom-right-radius: var(--r-card); }

/* Today: the second line of what a row needs may take two lines rather than be cut where the Waiting column has room */
.v89t-need > .f { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; white-space: normal; overflow: hidden; }
.v89t-need > .f.flag { color: var(--gray-500); }
table.v89t-q td.st:empty { padding: 0; }
/* phone: the queue's card keeps its rounded corners at the top as at the bottom (its first group band painted square over them) */
@media (max-width: 699px) {
  .v89t .v89t-qcard { overflow: hidden; }
  .v89t .v89t-qcard > .v89t-grp:first-of-type { border-top-left-radius: var(--r-card); border-top-right-radius: var(--r-card); }
}
/* the rail under the queue: as many columns as fit, so the setup guide joins the other cards on one row */
@media (min-width: 1100px) and (max-width: 1499px) { .v89t-rail { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); } }

/* Review board (v93): every column header on one line, the count in it, and every tray the same height (they ended ragged); a
   card's reason is whole; the pharmacy's own preparation is marked as made here; an owed list on a reviewed lot is in attention */
.v89r .bcols { align-items: stretch; }
.v89r .bcols > .bcol { align-self: stretch; display: flex; flex-direction: column; }
.v89r .bcol > .bcol-b { flex: 1 1 auto; align-content: start; }
.v89r .bcol-h, .v89r .bcol .bcol-h { height: 40px; min-height: 40px; padding-top: 0; padding-bottom: 0; }
.v89r .bcol-h b { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: var(--t-body-size); line-height: var(--t-body-lh); }
.v89r .bcol-h .bcn { flex: none; margin-left: auto; }
.v89r .bcard .bc-why { display: block; -webkit-line-clamp: unset; overflow: visible; }
.v89r .bcard .bc-own { flex: none; margin: 0 var(--s-2) 0 0; padding: 0 var(--s-2); height: 20px; display: inline-flex; align-items: center; border-radius: var(--r-chip); background: var(--gray-100); color: var(--gray-700); font-size: var(--t-label-size); line-height: var(--t-label-lh); font-weight: var(--w-medium); white-space: nowrap; }
.v89r .bcard .bc-top { display: flex; align-items: center; }
.v89r .bcard .bc-made { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); padding-top: 0; }
.v89r .bcard .bc-sup:has(> .bc-own) { align-items: center; flex-wrap: wrap; row-gap: var(--s-1); }
.v89r .bcard .bc-meta.owed { color: var(--attention-fg); }
@media (min-width: 1100px) { .v89r .bcol-h { min-height: 40px; } }
@media (max-width: 699px) { .v89r .bcols > .bcol { display: block; } }

/* lot page, Certificate tab (v93): the certificate page's white sheet, lines as printed, a checked line marked by colour with the same key */
.v89l-certcard .v93sheet { background: var(--gray-0); border: 1px solid var(--gray-200); border-radius: var(--r-ctl); max-height: 640px; overflow: auto; }
.v89l-certcard .v93sheet ol { list-style: none; margin: 0; padding: var(--s-3) 0; width: max-content; min-width: 100%; }
.v89l-certcard .v93sheet li { display: grid; grid-template-columns: 48px max-content; align-items: baseline; box-shadow: inset 3px 0 0 transparent; }
.v89l-certcard .v93sheet li .n { text-align: right; padding: 0 var(--s-3) 0 0; border-right: 1px solid var(--gray-200); font-size: var(--t-label-size); line-height: var(--t-small-lh); color: var(--gray-500); font-variant-numeric: tabular-nums; }
.v89l-certcard .v93sheet li .t { white-space: pre; overflow-wrap: normal; padding: 0 var(--s-4) 0 var(--s-3); color: var(--gray-900); }
.v89l-certcard .v93sheet li.mk-r { box-shadow: inset 3px 0 0 var(--critical-dot); background: var(--critical-bg); }
.v89l-certcard .v93sheet li.mk-a { box-shadow: inset 3px 0 0 var(--attention-dot); background: var(--attention-bg); }
.v89l-certcard .v93sheet li.mk-g { box-shadow: inset 3px 0 0 var(--positive-dot); background: var(--positive-bg); }
.v89l-certcard .v93sheet li.mk-b { box-shadow: inset 3px 0 0 var(--accent); background: var(--accent-tint); }
.v89l-certcard .v93key { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); margin: 0 0 var(--s-3); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-certcard .v93key span { display: inline-flex; align-items: center; gap: var(--s-2); }
.v89l-certcard .v93key span::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--neutral-dot); }
.v89l-certcard .v93key .r::before { background: var(--critical-dot); } .v89l-certcard .v93key .a::before { background: var(--attention-dot); }
.v89l-certcard .v93key .g::before { background: var(--positive-dot); } .v89l-certcard .v93key .b::before { background: var(--accent); }

/* lot page, Review and sign (v93): the decisions owed beyond the review's own calls, one row each with what settles it */
.v89l-calls .v93owed { margin: var(--s-4) 0 0; padding-top: var(--s-4); border-top: 1px solid var(--gray-100); }
.v89l-calls .v93owed > h3 { margin: 0 0 var(--s-2); font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-medium); color: var(--gray-500); }
.v89l-calls .v93ow { display: flex; align-items: center; gap: var(--s-3); padding: var(--s-2) 0; }
.v89l-calls .v93ow + .v93ow { border-top: 1px solid var(--gray-100); }
.v89l-calls .v93ow .tx { flex: 1 1 auto; min-width: 0; display: grid; gap: 2px; }
.v89l-calls .v93ow .tx b { font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-medium); color: var(--gray-900); }
.v89l-calls .v93ow .tx span { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l-calls .v93ow .btn { flex: none; }
.v93above { display: block; margin-top: var(--s-2); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
/* the release checks' recall line before any check has run: grey, never the green of a check that ran */
#view .v89l .v77r-s.off::before, .v89l .v77r-s.off i { background: var(--neutral-dot); }
/* the rail's labels stay on one line ("Compounding record checks", "Master formulation record"); each card's label column fits its longest label */
#view .v89l-rail dl.kv { grid-template-columns: fit-content(184px) minmax(0, 1fr); }
#view .v89l-rail .v84facts > .facts { display: grid; grid-template-columns: fit-content(184px) minmax(0, 1fr); column-gap: var(--s-3); }
#view .v89l-rail .v84facts > .facts > div { grid-column: 1 / -1; grid-template-columns: subgrid; }
#view .v89l-rail .v84facts > .facts > div > small, #view .v89l-rail dl.kv > dt { white-space: nowrap; }

/* lot page, Passports tab (v93): one fixed table inside its card; the id wraps by character with its copy button; one status; the date whole */
.v89l .v92pass table.v93pass { table-layout: fixed; width: 100%; }
.v89l .v92pass table.v93pass th.v93pid, .v89l .v92pass table.v93pass td.v93pid { width: auto; white-space: normal; }
.v89l .v92pass table.v93pass th.v93pst, .v89l .v92pass table.v93pass td.v93pst { width: 216px; }
.v89l .v92pass table.v93pass th.v93pdt, .v89l .v92pass table.v93pass td.v93pdt { width: 136px; white-space: nowrap; }
.v89l .v92pass .v93pid-1 { display: flex; align-items: flex-start; gap: var(--s-2); }
.v89l .v92pass table td .v89-id.v93wrap, .v89l-hist table td .v89-id.v93wrap { white-space: normal; word-break: break-all; overflow-wrap: anywhere; min-width: 0; }
.v89l .v92pass .v93pid-1 .btn { flex: none; margin-top: -4px; }
.v89l .v92pass td.v93pid .l2 { display: block; margin-top: 2px; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v89l .v92pass td.v93pid .l2 .v89-id { color: var(--gray-700); }
.v93passfoot { border-top: 1px solid var(--gray-100); }
.v93passfoot p { margin: 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
@media (max-width: 699px) { .v89l .v92pass table.v93pass th, .v89l .v92pass table.v93pass td { width: auto; } }

/* lot page, History tab (v93): every cell on the same top line with the same padding; a long detail is whole */
.v89l-hist tbody td { vertical-align: top; padding-top: var(--s-3); padding-bottom: var(--s-3); height: auto; }
.v89l-hist td .clamp.v93full, .v89l-hist td .clamp { display: block; -webkit-line-clamp: unset; overflow: visible; white-space: normal; text-overflow: clip; }

/* Recalls (v93): a lot in "Your exposure" carries a neutral icon, not a red tile (red is for what stops a lot, said once by its chip);
   the signals table gives the lot, supplier and signal their room and nothing in it is cut */
#view .v89c .slrow > .tile, #view .v89c .slrow > .tile.r { background: var(--gray-100); color: var(--gray-700); box-shadow: none; border: 0; outline: 0; }
.v89c .slrow > .tile svg.i { color: currentColor; }
.v89c table.signals { table-layout: fixed; width: 100%; }
.v89c table.signals th:nth-child(1) { width: 128px; }
.v89c table.signals th:nth-child(2) { width: auto; }
.v89c table.signals th:nth-child(3) { width: 30%; }
.v89c table.signals th:nth-child(4) { width: 136px; }
.v89c table.signals td:nth-child(4) { white-space: nowrap; }
.v89c table.signals td.two > span:not(.tag):not(.chip), .v89c table.signals td.two > b { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.v89c table.signals td.two > .tag { margin-bottom: var(--s-1); }

/* Vera's source pane (v93): the certificate page's sheet. White, lines as printed and scrolling sideways, a cited line marked by a
   coloured rule (no pill, no caption under it), the selected line ringed, one key above */
.v73pane .vp-doc.v93vdoc { padding: var(--s-3) 0; border-radius: var(--r-ctl); background: var(--gray-0); box-shadow: none; border: 1px solid var(--gray-200); overflow: auto; }
.v73pane .vp-doc.v93vdoc li { display: grid; grid-template-columns: 40px max-content; gap: 0; padding: 0; border-radius: 0; width: max-content; min-width: 100%; box-shadow: inset 3px 0 0 transparent; background: none; }
.v73pane .vp-doc.v93vdoc li em { width: auto; padding: 0 var(--s-3) 0 0; text-align: right; border-right: 1px solid var(--gray-200); font-family: var(--font); font-size: var(--t-label-size); line-height: var(--t-small-lh); color: var(--gray-500); font-variant-numeric: tabular-nums; }
.v73pane .vp-doc.v93vdoc li .orig, .v73pane .vp-doc.v93vdoc li > span { white-space: pre; word-break: normal; overflow-wrap: normal; padding: 0 var(--s-4) 0 var(--s-3); font-family: var(--font-mono); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-900); }
.v73pane .vp-doc.v93vdoc li.k-f { background: var(--critical-bg); box-shadow: inset 3px 0 0 var(--critical-dot); }
.v73pane .vp-doc.v93vdoc li.k-a { background: var(--attention-bg); box-shadow: inset 3px 0 0 var(--attention-dot); }
.v73pane .vp-doc.v93vdoc li.k-g { background: var(--positive-bg); box-shadow: inset 3px 0 0 var(--positive-dot); }
.v73pane .vp-doc.v93vdoc li.k-b { background: var(--accent-tint); box-shadow: inset 3px 0 0 var(--accent); }
.v73pane .vp-doc.v93vdoc li.on { outline: 2px solid var(--accent); outline-offset: -2px; }
.v73pane .vp-doc.v93vdoc li.vp-pg > span { font-family: var(--font); color: var(--gray-500); }
.v73pane .v93vkey { display: flex; flex-wrap: wrap; gap: var(--s-1) var(--s-4); margin: 0 0 var(--s-2); font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
.v73pane .v93vkey span { display: inline-flex; align-items: center; gap: var(--s-2); }
.v73pane .v93vkey span::before { content: ""; width: 8px; height: 8px; border-radius: 2px; background: var(--neutral-dot); }
.v73pane .v93vkey .k-f::before { background: var(--critical-dot); } .v73pane .v93vkey .k-a::before { background: var(--attention-dot); }
.v73pane .v93vkey .k-g::before { background: var(--positive-dot); } .v73pane .v93vkey .k-b::before { background: var(--accent); }

/* Vera's page at a desk (v93): the composer covered the third draft's button at rest (a hit test returned the composer). The column
   is the window's height: what she drafted scrolls in its own region, which ends where the composer begins, so the composer never
   sits over a draft (next-v89-today.js sets --v93vh from where the column starts) */
@media (min-width: 700px) {
  .v89v .v81v-main.v93vcol { display: flex; flex-direction: column; gap: 0; height: var(--v93vh, auto); max-height: none; overflow: hidden; padding-bottom: 0; }
  .v89v .v81v-main.v93vcol > .v93vfeed { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: var(--s-6); padding: 0 2px var(--s-4); margin: 0 -2px; }
  .v89v .v81v-main.v93vcol > .v93vfeed > * { margin: 0; flex: none; }
  .v89v .v81v-main.v93vcol > .v89v-ask.v90pin { position: relative; bottom: auto; flex: none; margin-top: var(--s-3); box-shadow: none; }
  .v89v .v81v-main.v93vcol > .v89v-ask.v90pin::before { display: none; }
}
/* the count beside a column title is its number in grey, not a 32px tile (the monogram rule reached .bcn), so the title has the
   room to stay whole on one line */
.v89r .bcol-h { gap: var(--s-2); padding-left: var(--s-2); padding-right: var(--s-3); }
.v89r .bcol-h b { font-size: var(--t-small-size); line-height: var(--t-small-lh); }
.v89r .bcol-h .bcn { width: auto; min-width: 0; height: auto; padding: 0; border-radius: 0; background: none; display: inline-flex; align-items: baseline; gap: var(--s-1); font-size: var(--t-label-size); line-height: var(--t-label-lh); font-weight: var(--w-medium); color: var(--gray-500); }
.v89r .bcol-h .bcn i { font-style: normal; }
/* Vera's source tabs: the system's segmented control across the pane, with room under it */
#view .v73pane .vp-tabs:not(#v93-seg) { display: flex; width: 100%; margin: 0 0 var(--s-3); }
#view .v73pane .vp-tabs:not(#v93-seg) > button { flex: 1 1 0; }
/* the drafts region says it scrolls: its last lines fade under the edge rather than being cut */
@media (min-width: 700px) { .v89v .v81v-main.v93vcol > .v93vfeed { -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 24px), transparent); mask-image: linear-gradient(to bottom, #000 calc(100% - 24px), transparent); } }
/* Today: the status column holds its longest chip whole ("Waiting for a certificate" was cut to "Waiting for a certi") */
.v89t { --v89t-c-st: 188px; }
/* v97 (M15): All lots fits its card at 1440 (it was 1297px in an 1134px card: Passports cut to "Pas", Updated off the edge). Fixed
   columns for the figures, the lot and its supplier share the rest, and both wrap at word breaks (the lot's name was held on one
   line, so a long one took 468px and pushed the supplier into four lines). The Receiving column left the table in v90. */
#view #lotTable.v97lots { table-layout: fixed; width: 100%; min-width: 0; }
#view #lotTable.v97lots col.c-ck { width: 44px; }
#view #lotTable.v97lots col.c-sup { width: 16%; }
#view #lotTable.v97lots col.c-st { width: 196px; }
#view #lotTable.v97lots col.c-open { width: 120px; }
#view #lotTable.v97lots col.c-doc { width: 140px; }
#view #lotTable.v97lots col.c-pass { width: 106px; }
#view #lotTable.v97lots col.c-upd { width: 98px; }
@media (min-width: 700px) { #view #lotTable.v97lots th:not(.ck), #view #lotTable.v97lots td:not(.ck) { padding-left: 12px; padding-right: 12px; } }
#view #lotTable.v97lots th { white-space: nowrap; overflow: hidden; text-overflow: clip; }
.v89r #lotTable.v97lots td.two > b, #view #lotTable.v97lots td.two b, #view #lotTable.v97lots td.v97sup { white-space: normal; overflow-wrap: normal; word-break: normal; }
#view #lotTable.v97lots td.st { white-space: nowrap; overflow: hidden; }
#view #lotTable.v97lots td.st > * { max-width: 100%; }
@media (max-width: 699px) {
  /* the phone row: the checkbox and the lot share the first line (the checkbox sat alone on a line, the lot indented under it) */
  #view #lotTable.v97lots tbody tr[data-go] { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: var(--s-2); align-items: start; }
  #view #lotTable.v97lots tbody tr[data-go] > td { grid-column: 1 / -1; }
  #view #lotTable.v97lots tbody tr[data-go] > td.ck { grid-column: 1; grid-row: 1; align-self: center; }
  #view #lotTable.v97lots tbody tr[data-go] > td.two { grid-column: 2; grid-row: 1; display: block; }
  #view #lotTable.v97lots tbody tr[data-go] > td.two::before { content: none; display: none; }
}
/* v97: Vera's drafted asks, on a phone: the button that opens the supplier wraps onto a second line inside the card instead of
   being cut mid-word ("Open Northlake Compounding (synthet") */
@media (max-width: 699px) {
  #view .v89v-drafted .prep .pf { min-width: 0; flex-wrap: wrap; }
  #view .v89v-drafted .prep .pf .btn { white-space: normal; height: auto; min-height: 32px; padding-top: 6px; padding-bottom: 6px; line-height: 1.3; text-align: left; max-width: 100%; overflow-wrap: anywhere; }
}

/* r96 (F-TODAY, E5 F9 and fix 8): the morning list, one per seat (next-v95.js r96card, built by next-morning-r96.js). One row per
   kind of work, with what it is and the one action that does it; the dated items of the week under it; a Settings item said once,
   never as a move. Phone rules sit inside the 699px query below, appended last. */
#view .r96m { margin: 0 0 var(--s-4); }
#view .r96m .card-b { padding-top: var(--s-2); }
#view .r96m-l { list-style: none; margin: 0; padding: 0; }
#view .r96m-r { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s-2) var(--s-4); align-items: center; padding: var(--s-3) 0 var(--s-3) var(--s-4); border-top: 1px solid var(--gray-200); box-shadow: inset 3px 0 0 var(--r96m-rule, var(--gray-300)); }
#view .r96m-r:first-child { border-top: 0; }
#view .r96m-r[data-tone="critical"] { --r96m-rule: var(--critical-dot); }
#view .r96m-r[data-tone="attention"] { --r96m-rule: var(--attention-dot); }
#view .r96m-t { min-width: 0; }
#view .r96m-t b { display: block; font-size: var(--t-body-size); line-height: var(--t-body-lh); font-weight: var(--w-semibold); color: var(--gray-900); }
#view .r96m-t span { display: block; margin-top: 2px; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); overflow-wrap: anywhere; }
#view .r96m-only { display: block; margin-top: 4px; font-style: normal; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-700); }
#view .r96m-a { display: flex; gap: var(--s-2); flex-wrap: wrap; justify-content: flex-end; }
#view .r96m-wait, #view .r96m-setup, #view .r96m-mail, #view .r96m-empty, #view .r96m-more { margin: var(--s-3) 0 0; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
#view .r96m-setup b, #view .r96m-wait b { color: var(--gray-700); font-weight: var(--w-semibold); }
#view .r96m-mail .link, #view .r96m-setup .link { font-size: inherit; }
#view .r96m-due { margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid var(--gray-200); }
#view .r96m-due h3 { margin: 0 0 var(--s-2); font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-semibold); color: var(--gray-700); }
#view .r96m-due ol { list-style: none; margin: 0; padding: 0; }
#view .r96m-due a { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: var(--s-3); align-items: baseline; padding: 6px 0; color: inherit; text-decoration: none; }
#view .r96m-due a:hover b { color: var(--accent); }
#view .r96m-due time { font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); }
#view .r96m-due time.late { color: var(--critical-fg); }
#view .r96m-due b { display: block; font-weight: var(--w-medium); font-size: var(--t-body-size); line-height: var(--t-body-lh); color: var(--gray-900); }
#view .r96m-due small { display: block; font-size: var(--t-small-size); line-height: var(--t-small-lh); color: var(--gray-500); overflow-wrap: anywhere; }
/* Coming up's overdue dates (next-r91-agents.js comingUp) */
#view .r91-coming .r91-dates li.late time { color: var(--critical-fg); }
#view .r91-coming .r91-more { margin: var(--s-2) 0 0; font-size: var(--t-small-size); color: var(--gray-500); }
@media (max-width: 699px) {
  #view .r96m-r { grid-template-columns: minmax(0, 1fr); padding-left: var(--s-3); }
  #view .r96m-a { justify-content: flex-start; }
  #view .r96m-a .btn { white-space: normal; height: auto; min-height: 32px; }
  #view .r96m-due a { grid-template-columns: 84px minmax(0, 1fr); }
}

/* r96 (W2-POLISH; F-INTAKE): a lot with no certificate scrolled 7 px sideways at 390 px. The next step's "Fetch lot ...'s certificate
   from Fagron" is one unbreakable button line (349 px), and the lot page's main column, a grid track sized to its content, grew to
   fit it, carrying the next step, the checks and the sign card past the screen. The column never grows past the screen, and the
   button's words wrap. */
@media (max-width: 699px) {
  #view .v89l-main, #view .v89l-rail { grid-template-columns: minmax(0, 1fr); }
  #view .v87lotfetch .btn { white-space: normal; height: auto; min-height: 28px; padding-block: 5px; text-align: left; justify-content: flex-start; max-width: 100%; }
}

/* r96 (W2-POLISH; W1-RECORD): where a carried value on the compounding record came from, under the value */
.v89l .bdcard .bd-from { display: block; margin-top: 2px; color: var(--gray-500); font-family: var(--font); font-size: var(--t-small-size); line-height: var(--t-small-lh); font-weight: var(--w-regular); white-space: normal; }
