/* Toll Bench light-sheet vocabulary.
   Cards float; sheets attach. All colour flows through the --tb-* contract. */

/* 1. Card, attached sheet, and paper stack. */
.tb-card {
    position: relative;
    z-index: 2;
    border-radius: var(--tb-card-radius);
    background: var(--tb-sheet);
    box-shadow: var(--tb-card-shadow);
}
.tb-sheet {
    position: relative;
    z-index: 1;
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: var(--tb-sheet-radius);
    background: var(--tb-sheet);
    box-shadow: var(--tb-sheet-shadow);
    font-family: var(--font-body);
}
.tb-card--attached { border-radius: var(--tb-card-radius); }
.tb-attach {
    width: calc(100% - var(--tb-sheet-inset) - var(--tb-sheet-inset));
    margin-top: 0;
    margin-right: auto;
    margin-left: auto;
}
.tb-sheet.tb-attach {
    border-top: 0;
}
.tb-stack { position: relative; margin-bottom: 12px; }
.tb-stack::before,
.tb-stack::after {
    content: "";
    position: absolute;
    height: 8px;
    border: var(--tb-hair) solid var(--tb-ink);
    border-top: 0;
    border-radius: 0 0 8px 8px;
    background: var(--tb-sheet);
    pointer-events: none;
}
.tb-stack::before { right: 17px; bottom: -8px; left: 17px; }
.tb-stack::after { right: 10px; bottom: -4px; left: 10px; }

/* 2. Section bar.
   The chip is a highlighter mark -- yellow paper carrying dark ink, the way a
   marker reads on a white sheet. A bar that inverts its own foreground (a dark
   or purple bar printing white text) has to put the mark out, or the chip
   prints white on yellow and cannot be read. Such a bar sets these three
   properties on itself and the chip falls back to a plain label; nothing else
   in the bar needs to know, and the next inverted bar copies one line. */
.tb-bar {
    --tb-bar-chip-bg: var(--tb-mark);
    --tb-bar-chip-ink: var(--tb-ink);
    --tb-bar-chip-pad: var(--space-1) var(--space-2);
    min-height: var(--tb-bar-h);
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 12px;
    background: var(--tb-sheet);
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.tb-bar .chip,
.tb-bar .plain,
.tb-bar .meta {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.tb-bar .chip,
.tb-bar .plain {
    padding: var(--tb-bar-chip-pad);
    background: var(--tb-bar-chip-bg);
    color: var(--tb-bar-chip-ink);
}
.tb-bar .meta { margin-left: auto; color: var(--tb-meta); text-align: right; }
.tb-bar .meta.mark { color: var(--tb-ink); text-decoration: underline; }

/* 3. Dotted rule and leader. */
.tb-dotted { border-top: var(--tb-hair) dotted var(--tb-rule); }
.tb-leader { display: flex; align-items: center; gap: 10px; padding: 10px 14px; }
.tb-leader .line { flex: 1; border-top: var(--tb-hair) dotted var(--tb-rule); }

/* 4. Number circles. */
.tb-num {
    width: 26px;
    height: 26px;
    flex: none;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    font-family: var(--font-mono);
    font-size: 12px;
    font-weight: 600;
}
.tb-num--todo { border: 1.5px solid var(--tb-ink); background: transparent; color: var(--tb-ink); }
.tb-num--your { background: var(--tb-mark); color: var(--tb-ink); }
.tb-num--now { background: var(--tb-ink); color: var(--tb-sheet); }
.tb-num--done { background: var(--tb-ink); color: var(--tb-sheet); }

/* 5. Action bands. */
.tb-act { display: flex; align-items: center; gap: 12px; padding: 11px 14px; }
.tb-act .k {
    font-family: var(--font-mono);
    font-size: 11.5px;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.tb-act--future { border-top: var(--tb-hair) dotted var(--tb-rule); background: var(--tb-sheet); color: var(--tb-prose); }
.tb-act--now { background: var(--tb-go); color: var(--tb-ink); }
.tb-act--done { border-top: var(--tb-hair) dotted var(--tb-rule); background: var(--tb-sheet); color: var(--tb-prose); }
.tb-act .right { margin-left: auto; font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }

/* 6. Action pills. */
.tb-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 18px;
    border: 1.5px solid transparent;
    border-radius: 999px;
    font-family: var(--font-heading);
    font-size: 14px;
    font-weight: 700;
}
.tb-btn--go { background: var(--tb-go); color: var(--tb-ink); }
.tb-btn--ink { background: var(--tb-ink); color: var(--tb-sheet); }
.tb-btn--stop { background: var(--tb-stop); color: var(--tb-sheet); }
.tb-btn--mark { background: var(--tb-mark); color: var(--tb-ink); }
.tb-btn--ghost { border-color: var(--tb-ink); background: var(--tb-sheet); color: var(--tb-ink); }
.tb-btn--sm { padding: 6px 13px; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .1em; text-transform: uppercase; }

/* 7. Stat strip. */
.tb-stats { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
.tb-stats > div { padding: 12px 14px; border-left: var(--tb-hair) dotted var(--tb-rule); }
.tb-stats > div:first-child { border-left: 0; }
.tb-stats .v { font-family: var(--font-heading); font-size: 21px; font-weight: 700; }

/* 8. Label/value rows. */
.tb-rows > div { display: flex; gap: 16px; padding: 9px 14px; border-top: var(--tb-hair) dotted var(--tb-rule); }
.tb-rows > div:first-child { border-top: 0; }
.tb-rows .k { flex: 0 0 132px; }
.tb-rows .v { flex: 1; min-width: 0; }

/* 9. Form controls. */
.tb-opt { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border: 1.5px solid var(--tb-rule); border-radius: 7px; background: var(--tb-sheet); }
.tb-opt--on { border-color: var(--tb-ink); background: var(--tb-mark); font-weight: 600; }
.tb-opt .dot { width: 17px; height: 17px; flex: none; display: grid; place-items: center; border: 2px solid var(--tb-ink); border-radius: 50%; }
.tb-opt--on .dot::after { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--tb-ink); }
.tb-seg { display: grid; grid-template-columns: 1fr 1fr; border: 1.5px solid var(--tb-ink); }
.tb-seg > * { padding: 12px; text-align: center; font-family: var(--font-heading); font-weight: 700; }
.tb-seg > .on { background: var(--tb-ink); color: var(--tb-mark); }
.tb-input { width: 100%; padding: 12px 13px; border: 1.5px solid var(--tb-ink); border-radius: 5px; background: var(--tb-sheet); color: var(--tb-meta); font-family: var(--font-mono); font-size: 13px; }
.tb-check { width: 19px; height: 19px; display: inline-grid; place-items: center; border: 1.5px solid var(--tb-ink); border-radius: 3px; }

/* 10. Sheet typography. */
.tb-body { padding: 14px; }
.tb-serif { color: var(--tb-prose); font-family: var(--font-serif); }
.tb-title { font-family: var(--font-heading); font-size: 16px; font-weight: 700; line-height: 1.3; }
.tb-want { font-family: var(--font-serif); font-size: 19px; }
.tb-label { color: var(--tb-meta); font-family: var(--font-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; }

/* 11. Open/close affordance outside a sheet. */
.tb-open { padding: 14px; text-align: center; font-family: var(--font-mono); font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; }
.tb-open u { text-underline-offset: 4px; }

/* Wave 2 assembly: the live plan sheet. */
/* Waiting and history belong to the same flat paper vocabulary as plans. */
.want-proposals__stage,
.want-prior-attempts {
    padding: var(--space-4);
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: var(--tb-sheet-radius);
    background: var(--tb-sheet);
    box-shadow: var(--tb-sheet-shadow);
    color: var(--tb-prose);
    text-align: left;
}
.want-proposals__stage-glyph {
    font-size: var(--text-xl);
    color: var(--tb-meta);
    margin-bottom: var(--space-3);
}
.want-proposals__stage-title,
.want-prior-attempts__title {
    display: table;
    padding: var(--space-1) var(--space-2);
    margin: 0 0 var(--space-4);
    background: var(--tb-mark);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}
.want-proposals__stage-body {
    max-width: none;
    margin: 0;
    color: var(--tb-prose);
    font-family: var(--font-serif);
    font-size: var(--text-base);
    line-height: var(--leading-relaxed);
}
.want-proposals__stage-actions {
    margin-top: var(--space-4);
}
.want-prior-attempt + .want-prior-attempt,
.want-prior-attempt__step {
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.want-prior-attempt__name { color: var(--tb-ink); font-family: var(--font-heading); }
.want-prior-attempt__reg,
.want-prior-attempt__when,
.want-prior-attempt__cause {
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}
.want-prior-attempt__reg,
.want-prior-attempt__when { color: var(--tb-meta); }
.want-prior-attempt__step { font-family: var(--font-body); padding-block: var(--space-2); }

.want-plan-stack > .target-trajectory {
    position: relative;
    z-index: 2;
    border-radius: var(--tb-card-radius);
}
.want-plan-stack > .want-path-embed {
    position: relative;
    z-index: 1;
    margin: 0 0 var(--space-5);
}
/* Start at the card edge so the paper's side rules cannot protrude into it. */
.want-plan-stack .tb-plan-sheet {
    margin-top: 0;
    border-top: 0;
}
.tb-plan-sheet {
    padding: 0;
    overflow: visible;
    color: var(--tb-ink);
}
.tb-plan-sheet .tp-plan__bar { margin: 0; gap: var(--space-2); padding-block: var(--space-2); flex-wrap: nowrap; }
.tb-plan-sheet .tp-plan__bar .plain { padding-inline: var(--space-2); letter-spacing: var(--tracking-normal); white-space: nowrap; }
.tb-plan-sheet .tp-plan__bar .meta { margin-left: 0; letter-spacing: var(--tracking-normal); white-space: nowrap; }
.tb-plan-sheet .tp-plan__head { padding: var(--space-4); }
.tb-plan-sheet .tp-plan__title { color: var(--tb-ink); }
.tb-plan__full-link {
    padding: 0;
    border: 0;
    background: transparent;
    text-align: left;
    cursor: pointer;
    flex-basis: 100%;
    color: var(--tb-meta);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    text-decoration: underline;
}
.tb-plan-sheet .tp-plan__sub--toggle {
    margin: 0 0 0 auto;
    white-space: nowrap;
    padding: var(--space-2) 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--tb-meta);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
    letter-spacing: var(--tracking-normal);
    text-transform: none;
}
.tb-plan-sheet .tp-plan__sub--toggle:hover { background: transparent; color: var(--tb-prose); }
.tb-plan-sheet .tp-plan__sub--toggle:focus-visible { outline-color: var(--tb-ink); }
.tb-plan-sheet .tb-plan__toggle-close { display: none; }
.tb-plan-sheet .tp-plan__sub--toggle[aria-expanded="true"] .tb-plan__toggle-open { display: none; }
.tb-plan-sheet .tp-plan__sub--toggle[aria-expanded="true"] .tb-plan__toggle-close { display: inline; }
.tb-plan__meta {
    margin: 6px 14px 12px;
    color: var(--tb-meta);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.tb-plan-sheet .us-plan { margin: 0; }
.us-agent-message {
    display: grid;
    grid-template-columns: var(--space-10) minmax(0, 1fr);
    align-items: end;
    gap: var(--space-3);
    margin-top: var(--space-4);
}
.us-agent-message__avatar {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--space-10);
    height: var(--space-10);
    overflow: hidden;
    border-radius: var(--radius-full);
    background: var(--surface-secondary);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
}
.us-agent-message__avatar img { width: 100%; height: 100%; object-fit: cover; }
.us-agent-message__bubble {
    position: relative;
    margin: 0;
    padding: var(--space-4);
    border: 0;
    border-radius: var(--radius-xl);
    background: var(--surface-secondary);
    color: var(--text-primary);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-style: normal;
    line-height: var(--leading-relaxed);
    overflow-wrap: anywhere;
    box-shadow: none;
}
/* One understated signature on every agent promise bubble. */
.us-agent-message__signature {
    display: block;
    margin-top: var(--space-2);
    font-size: var(--agent-identity-meta-size, 13px);
    font-weight: var(--agent-identity-meta-weight, 400);
    color: var(--text-secondary);
    font-style: normal;
}
.us-agent-message__bubble::before,
.us-agent-message__bubble::after {
    content: '';
    position: absolute;
    border-radius: var(--radius-full);
    background: var(--surface-secondary);
}
.us-agent-message__bubble::before {
    width: var(--space-3);
    height: var(--space-3);
    left: calc(-1 * var(--space-2));
    bottom: var(--space-3);
}
.us-agent-message__bubble::after {
    width: var(--space-1);
    height: var(--space-1);
    left: calc(-1 * var(--space-3));
    bottom: var(--space-2);
}
.us-agent-message + .us-actions {
    margin-top: var(--space-2);
    margin-left: calc(var(--space-10) + var(--space-3));
    flex-wrap: wrap;
}
.tb-plan-sheet .us-row,
.tb-plan-sheet .us-plan > li:last-child {
    margin-right: 0;
    margin-left: 0;
    padding: 14px;
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
}
.tb-plan-sheet .us-head { align-items: center; }
.tb-plan-sheet .us-num { width: 26px; height: 26px; border: 1.5px solid var(--tb-ink); background: transparent; color: var(--tb-ink); font-family: var(--font-mono); font-size: 12px; }
.tb-plan-sheet .us-num.is--current,
.tb-plan-sheet .us-num.is--done { border-color: var(--tb-ink); background: var(--tb-ink); color: var(--tb-sheet); }
.tb-plan-sheet .us-title { color: var(--tb-ink); font-size: 15px; font-weight: 700; }
.tb-plan-sheet .us-row.is--current { background: var(--tb-sheet); }
.tb-plan-sheet .us-plan .us-row:has(:is([aria-label="agent working"], [aria-label="waiting outside"])),
.tb-feed-plan .us-plan .us-row:has(:is([aria-label="agent working"], [aria-label="waiting outside"])) {
    border-block: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-agent-highlight);
    color: var(--tb-ink);
}
.tb-plan-sheet .us-row:has(:is([aria-label="agent working"], [aria-label="waiting outside"])) :is(.us-title, .us-bullets, .us-detail, .us-promise__preview, .us-promise__full, .us-promise__more, .us-promises) {
    color: var(--tb-ink);
}
.tb-plan-sheet .us-bullets,
.tb-plan-sheet .us-detail { color: var(--tb-prose); }
.tb-plan-sheet .us-promise__preview,
.tb-plan-sheet .us-promise__full { color: var(--tb-prose); font-family: var(--font-serif); }
.tb-plan-sheet .us-promises { color: var(--tb-meta); font-family: var(--font-mono); font-size: 11px; }
.tb-plan-sheet .us-actions .us-btn { border-color: var(--tb-ink); background: var(--tb-sheet); color: var(--tb-ink); }
.tb-plan-sheet .tb-plan-step.is--done { background: var(--tb-band); }
.tb-plan-sheet .tb-plan-step.is--done .us-title { color: var(--tb-prose); }
.tb-plan-sheet .tb-plan-step.is--done .tb-step__done { display: inline; margin-left: auto; color: var(--tb-meta); font-family: var(--font-mono); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.tb-plan-sheet #tp-plan-list.is--folded .us-row.is--done { display: none; }
.tb-plan-sheet .us-row--action { padding: 11px 14px; }
.tb-plan-sheet .us-action--quiet { background: var(--tb-sheet); color: var(--tb-prose); }
.tb-plan-sheet .us-action--quiet.is--done { background: var(--tb-sheet); }
.tb-plan-sheet .us-action--quiet .us-action__num { width: 26px; height: 26px; margin: 0; background: var(--tb-ink); color: var(--tb-sheet); font-family: var(--font-mono); }
.tb-plan-sheet .us-row--action.us-action--live { background: var(--tb-go); color: var(--tb-ink); }
.tb-plan-sheet .us-action--live .us-action__num { background: var(--tb-ink); color: var(--tb-sheet); }
.tb-plan-sheet .us-action__txt { color: inherit; }
.tb-plan-sheet .us-action--live .us-action__btn { border-color: var(--tb-ink); background: var(--tb-ink); color: var(--tb-sheet); }
.tb-plan__resources { border-top: var(--tb-hair) dotted var(--tb-rule); }
.tb-plan__resources .tb-bar { margin: 0; }
.tb-plan__capabilities { display: flex; flex-wrap: wrap; gap: 6px; }
.tb-plan__stats { border-top: var(--tb-hair) dotted var(--tb-rule); }
.tb-plan__foot { margin: 0; }

/* Whole-plan information uses flat paper, like the plan itself. */
.tp-path .tp-terms,
.tp-path .tp-access,
.want-plan-stack .want-results,
.want-plan-stack .want-replies {
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) - var(--tb-sheet-inset));
    margin: var(--space-4) auto;
    padding: var(--space-4);
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: var(--tb-sheet-radius);
    background: var(--tb-sheet);
    box-shadow: var(--tb-sheet-shadow);
}
.tp-path .tp-terms__title,
.tp-path .tp-access__title,
.want-plan-stack .want-replies__title,
.tb-plan__section-label {
    display: table;
    width: fit-content;
    margin: 0 0 var(--space-2);
    padding: var(--space-1) var(--space-2);
    background: var(--tb-mark);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}
.tp-path .tp-terms__line { padding-block: var(--space-2); border-top: var(--tb-hair) dotted var(--tb-rule); }
.tp-path .tp-terms__line:first-child { border-top: 0; }
.tp-path .tp-access__empty,
.want-plan-stack .want-replies__empty,
.want-plan-stack .want-replies__body {
    font-family: var(--font-serif);
    font-size: var(--text-base);
    color: var(--tb-prose);
    line-height: var(--leading-relaxed);
}
.want-plan-stack .want-replies__item {
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: var(--tb-sheet-shadow);
}

@media (max-width: 520px) {
    .tb-bar .meta { max-width: 52%; font-size: 9px; }
    .tb-plan-sheet .us-row,
    .tb-plan-sheet .us-plan > li:last-child { padding-right: 12px; padding-left: 12px; }
    .tb-plan-sheet .us-row--action { flex-wrap: wrap; }
    .tb-plan-sheet .us-action__btn { width: auto; }
    .tb-rows > div { flex-direction: column; gap: 3px; }
    .tb-rows .k { flex-basis: auto; }
}

/* Wave 3: proposals are square paper sheets, not floating cards. */
.proposal-card.pcard--open-bid.tb-sheet {
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
    color: var(--tb-ink);
}
.pcard-ob-sheetbar,
.pcard-ob-sectionbar { margin: 0; }
.pcard-ob-sheetbar .meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pcard--open-bid .pcard-ob-face { padding: 16px 14px 13px; }
.pcard--open-bid .pcard-ob-head { gap: 10px; }
.pcard--open-bid .pcard-ob-logo {
    width: 36px;
    height: 36px;
    border: 0;
    background: color-mix(in srgb, var(--tb-stop) 18%, var(--tb-sheet));
}
.pcard--open-bid .pcard-ob-pitch__title {
    font-size: clamp(21px, 5vw, 27px);
    line-height: 1.08;
}
.pcard--open-bid .pcard-ob-byline,
.pcard--open-bid .pcard-ob-meta {
    color: var(--tb-meta);
    font-family: var(--font-mono);
    font-size: 11px;
}
.pcard--open-bid .pcard-ob-pitch__body {
    color: var(--tb-prose);
    font-family: var(--font-serif);
    font-size: 16px;
    line-height: 1.48;
}
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw--face:not(.pcard-ob-hw--wins) {
    display: none;
}
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw--wins {
    margin: 14px 0 0;
    padding-top: 12px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw--wins .pcard-ob-hw__label {
    padding: 0;
    background: transparent;
    color: var(--tb-meta);
}
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw__win { display: none; }
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw__win:first-child {
    display: flex;
    padding: 9px 10px;
    background: var(--tb-mark);
    color: var(--tb-ink);
}
.pcard--open-bid .pcard-ob-hw__win-icon { color: var(--tb-ink); }
.pcard--open-bid .pcard-ob-stats {
    margin-top: 14px;
    padding: 12px 0;
    border-color: var(--tb-rule);
    border-style: dotted;
}
.pcard--open-bid .pcard-ob-stat + .pcard-ob-stat {
    border-color: var(--tb-rule);
    border-left-style: dotted;
}
.pcard--open-bid .pcard-ob-stat__label,
.pcard--open-bid .pcard-ob-comp__label,
.pcard--open-bid .pcard-ob-plan__label,
.pcard--open-bid .pcard-ob-hw__label {
    color: var(--tb-meta);
    font-family: var(--font-mono);
    letter-spacing: .12em;
}
.pcard--open-bid .pcard-ob-stat__value {
    font-size: 24px;
    white-space: normal;
}
.pcard--open-bid .pcard-ob-stats--select {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin: 14px -14px -13px;
    padding: 16px 14px;
    border-right: 0;
    border-left: 0;
}
.pcard--open-bid[data-expanded="1"] .pcard-ob-stats--select {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}
.proposal-card.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-stats--select {
    grid-template-columns: minmax(0, 1fr) auto;
}
.pcard--open-bid .pcard-ob-stat-action {
    display: flex;
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    align-self: stretch;
    padding-left: 0;
    border-left: 0;
}
.pcard--open-bid .pcard-ob-stat-action .pcard-ob-actions__choose {
    margin-left: auto;
    white-space: nowrap;
}
.pcard--open-bid .pcard-ob-stat-action .pcard-ob-actions__reject-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    min-height: var(--size-10);
    width: auto;
    padding: var(--space-2) 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--text-secondary);
    font-size: var(--text-sm);
    font-weight: var(--font-normal);
    text-decoration: underline;
    text-underline-offset: .2em;
}
.pcard--open-bid .pcard-ob-stat-action .pcard-ob-actions__reject-link:hover {
    color: var(--status-error);
}
@media (max-width: 480px) {
    .proposal-card.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-stats--select {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    }
    .pcard--open-bid .pcard-ob-stat-action .pcard-ob-actions__choose {
        white-space: normal;
        max-width: 100%;
    }
    .pcard--open-bid[data-expanded="1"] .pcard-ob-stat-action {
        grid-column: 1 / -1;
        border-left: 0;
        padding-left: 0;
    }
}
.pcard--open-bid .pcard-ob-meta__free,
.pcard--open-bid .pcard-ob-plan__label,
.pcard--open-bid .pcard-ob-hw__label {
    border-radius: 0;
    background: var(--tb-mark);
}
.pcard--open-bid .pcard-ob-actions {
    padding: 12px 14px 14px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .pcard-ob-caret {
    width: 32px;
    height: 32px;
    border: 1.5px solid var(--tb-ink);
    background: var(--tb-sheet);
    color: var(--tb-ink);
}
.pcard--open-bid .pcard-ob-actions__choose {
    padding: 10px 18px;
    border-radius: 999px;
    background: var(--tb-go);
    color: var(--tb-ink);
}
.pcard--open-bid .pcard-detail {
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .pcard-ob-tollrow,
.pcard--open-bid .pcard-ob-comps,
.pcard--open-bid .pcard-ob-plan,
.pcard--open-bid .pcard-ob-hwpanel {
    margin: 0;
    border-radius: 0;
    background: var(--tb-sheet);
}
.pcard--open-bid .pcard-ob-tollrow,
.pcard--open-bid .pcard-ob-comps,
.pcard--open-bid .pcard-ob-hwpanel { padding: 14px; }
.pcard--open-bid .pcard-ob-comps {
    gap: 0;
    border: 0;
}
.pcard--open-bid .pcard-ob-comp {
    grid-template-columns: minmax(90px, 120px) 44px 1fr;
    padding: 9px 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .pcard-ob-comp:first-child { border-top: 0; }
.pcard--open-bid .pcard-ob-plan {
    margin: 14px;
    padding: 14px;
    border: 1.5px solid var(--tb-ink);
}
.pcard--open-bid .pcard-ob-hwpanel > .pcard-ob-hw {
    padding: 12px 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .pcard-ob-hwpanel > .pcard-ob-hw:first-child { border-top: 0; }

/* The same compact sheet face introduces current and historical proposals.
   Its disclosure sits outside the paper and opens the complete existing
   detail rather than replacing or abbreviating the old plan. */
.proposal-card.pcard--open-bid[data-collapsible] {
    position: relative;
    overflow: visible;
    margin-bottom: 54px;
}
.pcard--open-bid.proposal-card--expired { opacity: 1; }
.pcard--open-bid.proposal-card--expired .pcard-ob-sheetbar,
.pcard--open-bid.proposal-card--failed .pcard-ob-sheetbar {
    background: var(--tb-stop);
}
.pcard--with-agent:not(.proposal-card--failed):not(.proposal-card--expired) .pcard-wa-sheetbar {
    background: var(--tb-agent-highlight);
}
.proposal-card.pcard--with-agent:not(.proposal-card--failed):not(.proposal-card--expired) {
    border-color: var(--tb-agent);
}
.pcard--with-agent:not(.proposal-card--failed):not(.proposal-card--expired) .pcard-wa-sheetbar .plain {
    color: var(--tb-ink);
}
.pcard--with-agent:not(.proposal-card--failed):not(.proposal-card--expired) .pcard-wa-sheetbar .meta {
    color: var(--tb-prose);
    opacity: .78;
}
.pcard--with-agent:not(.proposal-card--failed):not(.proposal-card--expired) .pcard-wa-disclosure {
    color: var(--tb-agent);
}
.pcard--with-agent .pcard-ob-logo {
    background: var(--tb-agent-highlight);
}
.pcard--with-agent .pcard-wa-detail {
    background: var(--tb-sheet);
}
.pcard--with-agent > .pcard-wa-status {
    margin: 0;
    padding: 14px;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
    background: var(--tb-agent-highlight);
}
.pcard--with-agent > .pcard-wa-status .pcard-wa-header__icon,
.pcard--with-agent > .pcard-wa-status .pcard-wa-header__title {
    color: var(--tb-agent);
}
.pcard--with-agent .pcard-wa-detail > .pcard-wa-clock,
.pcard--with-agent .pcard-wa-detail > .pcard-ob-hwpanel,
.pcard--with-agent .pcard-wa-detail > .pcard-ob-meta,
.pcard--with-agent .pcard-wa-detail > .pcard-wa-body,
.pcard--with-agent .pcard-wa-detail > .pcard-more {
    margin-right: 14px;
    margin-left: 14px;
}
.pcard--with-agent .pcard-wa-detail > .pcard-wa-clock {
    margin-top: 0;
}
.pcard--open-bid .pcard-ob-sheetbar .plain {
    color: var(--tb-ink);
    font-weight: 700;
}
.pcard--open-bid .pcard-ob-face { cursor: default; }
.pcard--open-bid .pcard-ob-copy { padding: 2px 0 14px; }
.pcard--open-bid .pcard-ob-pitch__title { margin: 0; }
.pcard--open-bid .pcard-ob-pitch__body { margin: 12px 0 0; }
.pcard--open-bid:not([data-expanded="1"]) .pcard-odds-path--sheet,
.pcard--open-bid:not([data-expanded="1"]) .pcard-odds-path__note--sheet { display: none; }
.pcard--open-bid .pcard-odds-path--sheet { margin-top: 14px; }
.pcard--open-bid .pcard-ob-agent {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 -14px;
    padding: 13px 14px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .pcard-ob-agent__text { min-width: 0; }
.pcard--open-bid .pcard-ob-agent .pcard-ob-byline__name {
    color: var(--tb-ink);
    font-family: var(--font-heading);
    font-size: var(--text-2xl);
    line-height: 1.2;
    overflow-wrap: anywhere;
    font-weight: 700;
}
.pcard--open-bid .pcard-ob-agent .pcard-ob-byline { margin-top: 2px; }
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-stat--toll { display: none; }
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-stats { grid-template-columns: 1fr; }
.pcard--open-bid .pcard-ob-hw__label-short { display: none; }
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw__label-short { display: inline; }
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw__label-full { display: none; }
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw--wins .pcard-ob-hw__label {
    display: inline-block;
    padding: 5px 9px;
    background: var(--tb-mark);
    color: var(--tb-ink);
}
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw--wins .pcard-ob-hw__win:first-child {
    padding: 10px 0 0;
    background: transparent;
}
.pcard-sheet-disclosure {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    left: 0;
    display: block;
    width: max-content;
    max-width: 100%;
    margin: 0 auto;
    padding: 4px 8px;
    border: 0;
    background: transparent;
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .16em;
    line-height: 1.4;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-transform: uppercase;
    cursor: pointer;
}
.pcard-sheet-disclosure__close { display: none; }
.pcard--open-bid[data-expanded="1"] .pcard-sheet-disclosure__open { display: none; }
.pcard--open-bid[data-expanded="1"] .pcard-sheet-disclosure__close { display: inline; }
.pcard-sheet-disclosure:focus-visible {
    outline: 2px solid var(--tb-ink);
    outline-offset: 2px;
}

/* Wave 4: one square, ruled question sheet with tactile answer controls. */
.finalist-modal { background: color-mix(in srgb, var(--tb-ink) 58%, transparent); }
.finalist-modal__dialog {
    max-width: 488px;
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
}
.finalist-modal__sheetbar,
.finalist-modal__footbar { flex: none; }
.finalist-modal__header {
    gap: 6px;
    padding: 18px 14px;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
    background: var(--tb-sheet);
}
.finalist-modal__eyebrow {
    color: var(--tb-meta);
    font-family: var(--font-mono);
    letter-spacing: .13em;
}
.finalist-modal__title {
    color: var(--tb-ink);
    font-size: 22px;
}
.finalist-modal__subtitle {
    margin: 0;
    color: var(--tb-prose);
    font-family: var(--font-serif);
}
.finalist-modal .finalist-panel {
    padding: 0;
    background: var(--tb-sheet);
}
.finalist-modal .finalist-panel__block { margin: 0; }
.finalist-modal .finalist-panel__legend,
.finalist-modal .finalist-panel__public,
.finalist-modal .finalist-panel__hint,
.finalist-modal .finalist-panel__missing,
.finalist-modal .finalist-panel__error {
    margin: 0;
    padding: 12px 14px;
}
.finalist-modal .finalist-panel__legend {
    color: var(--tb-meta);
    font-family: var(--font-mono);
    letter-spacing: .12em;
}
.finalist-panel__counter {
    display: block;
    margin: -34px 14px 12px auto;
    width: max-content;
    color: var(--tb-meta);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.finalist-modal .finalist-panel__public {
    display: flex;
    align-items: center;
    gap: 9px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
    color: var(--tb-prose);
    font-family: var(--font-serif);
}
.finalist-modal .finalist-questions { gap: 0; }
.finalist-modal .finalist-question {
    gap: 9px;
    padding: 14px;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.finalist-question__leader {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--tb-meta);
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.finalist-question__number {
    width: 26px;
    height: 26px;
    display: grid;
    place-items: center;
    border: 1.5px solid var(--tb-ink);
    border-radius: 50%;
    color: var(--tb-ink);
}
.finalist-question__dots {
    flex: 1;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.finalist-question:has(input:checked, button[aria-pressed='true']) .finalist-question__state {
    font-size: 0;
}
.finalist-question:has(input:checked, button[aria-pressed='true']) .finalist-question__state::after {
    content: 'Answered';
    font-size: 10px;
}
.finalist-modal .finalist-question__label {
    color: var(--tb-ink);
    font-family: var(--font-heading);
    font-size: 15px;
}
.finalist-modal .finalist-question__help {
    color: var(--tb-prose);
    font-family: var(--font-serif);
}
.finalist-modal .finalist-question__input,
.finalist-modal .finalist-q-rank__place {
    border: 1.5px solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    color: var(--tb-ink);
    font-family: var(--font-mono);
}
.finalist-modal .finalist-q-choice {
    border: 1.5px solid var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
}
.finalist-modal .finalist-q-choice:has(input:checked) {
    border-color: var(--tb-ink);
    background: var(--tb-mark);
}
.finalist-modal .finalist-q-yesno {
    gap: 0;
    border: 1.5px solid var(--tb-ink);
}
.finalist-modal .finalist-q-yesno__btn {
    border: 0;
    border-left: 1.5px solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    color: var(--tb-ink);
}
.finalist-modal .finalist-q-yesno__btn:first-of-type { border-left: 0; }
.finalist-modal .finalist-q-yesno__btn[aria-pressed='true'] {
    background: var(--tb-ink);
    color: var(--tb-mark);
}
.finalist-modal .finalist-gate__actions {
    margin: 0;
    padding: 12px 14px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    background: var(--tb-sheet);
}
.finalist-modal .finalist-gate__cancel {
    border: 1.5px solid var(--tb-ink);
    background: var(--tb-sheet);
}
.finalist-modal .finalist-gate__choose {
    background: var(--tb-go);
    color: var(--tb-ink);
}

/* Wave 4: a refined plan comes back as the same attached paper used by the
   signed walk. The target keeps the shadow; the returned plan is square,
   shadowless, and aligned with the target card above. */
.want-detail:has(.want-proposals--attached-plan) .target-trajectory {
    position: relative;
    z-index: 2;
    border-radius: var(--tb-card-radius);
}
.want-proposals--attached-plan > .want-proposals__head { display: none; }
.want-proposals--attached-plan .want-proposals__list { gap: 0; }
.proposal-card.pcard--your-turn.tb-sheet {
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) - var(--tb-sheet-inset));
    margin-right: auto;
    margin-left: auto;
    z-index: 1;
    margin-top: 0;
    padding: 0;
    overflow: visible;
    border: var(--tb-hair) solid var(--tb-ink);
    border-top: 0;
    border-radius: var(--tb-sheet-radius);
    background: var(--tb-sheet);
    box-shadow: none;
    color: var(--tb-ink);
}
.pcard--your-turn .pcard-yt-sheetbar { margin: 0; justify-content: space-between; }
.pcard--your-turn .pcard-yt-sheetbar [data-step-toggle-all] { flex-shrink: 0; }
.pcard--your-turn .pcard-yt-intro {
    padding: var(--space-4);
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--your-turn .pcard-yt-intro > .pcard-step-overview__title { margin-bottom: var(--space-3); }
.pcard--your-turn .pcard-yt-sheetbar .plain {
    color: var(--tb-ink);
    font-weight: 700;
}
.pcard--your-turn .pcard-yt-summary {
    padding: var(--space-4);
    border: var(--tb-hair) solid var(--tb-rule);
}
.pcard--your-turn .pcard-yt-summary__text {
  white-space: pre-line;
    margin: 0;
    color: var(--tb-prose);
    font-size: 15px;
    line-height: 1.5;
}
.pcard--your-turn .pcard-yt-summary__text + .pcard-yt-summary__text {
    margin-top: var(--space-2);
}
.pcard--your-turn .pcard-yt-summary__meta {
    margin: 12px 0 0;
    color: var(--tb-meta);
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.pcard--your-turn .pcard-step-overview,
.proposal-card.pcard--your-turn .tp-plan.pcard-step-overview {
    margin: 0;
    padding: 0;
}
.pcard--your-turn .pcard-step-overview .tp-plan__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 14px;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--your-turn .pcard-step-overview__title {
    margin: 0;
    color: var(--tb-ink);
    font-family: var(--font-heading);
    font-size: 18px;
    font-weight: 800;
}
.pcard--your-turn .pcard-yt-plan-actions {
    display: flex;
    align-items: center;
    gap: 8px;
}
.pcard--your-turn .pcard-step-overview__toggle-all {
    padding: var(--space-2) 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--tb-meta);
    box-shadow: none;
}
.pcard--your-turn .pcard-step-overview__toggle-all:hover { background: transparent; color: var(--tb-prose); }
.pcard--your-turn .pcard-yt-plan-actions [data-choose-plan] {
    padding: 9px 18px;
    background: var(--tb-go);
    color: var(--tb-ink);
    font-size: 14px;
}
.pcard--your-turn .us-plan { margin: 0; }
.pcard--your-turn .pcard-step-overview .us-row,
.pcard--your-turn .pcard-step-overview .us-plan > li:last-child {
    margin: 0;
    padding: 14px;
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
}
.pcard--your-turn .pcard-step-overview .us-row:first-child { border-top: 0; }
.pcard--your-turn .pcard-step-overview .us-head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.pcard--your-turn .pcard-step-overview .us-num {
    width: 26px;
    height: 26px;
    flex: none;
    display: inline-grid;
    place-items: center;
    border: 1.5px solid var(--tb-ink);
    border-radius: 50%;
    background: var(--tb-sheet);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: 12px;
}
.pcard--your-turn .pcard-step-overview .us-title {
    color: var(--tb-ink);
    font-family: var(--font-heading);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}
.pcard--your-turn .pcard-step-overview .us-bullets {
    margin: 8px 0 0 36px;
    padding-left: 14px;
    color: var(--tb-meta);
    font-size: 13px;
}
.pcard--your-turn .pcard-step-overview .us-promises {
    margin-left: 36px;
    color: var(--tb-meta);
    font-family: var(--font-mono);
    font-size: 11px;
}
.pcard--your-turn .pcard-step-overview .us-promise {
    margin: 10px 0 0 36px;
}
.pcard--your-turn .pcard-step-overview .us-promise__preview,
.pcard--your-turn .pcard-step-overview .us-promise__full {
    color: var(--tb-prose);
    font-family: var(--font-serif);
}
.pcard--your-turn .pcard-step-overview .us-plan .us-row.us-row--action {
    display: grid;
    align-items: start;
    gap: 10px;
    padding: 10px 14px;
    background: var(--tb-band);
    color: var(--tb-prose);
}
.pcard--your-turn .pcard-step-overview .us-action__num {
    width: 22px;
    height: 22px;
    flex: none;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: var(--tb-ink);
    color: var(--tb-sheet);
    font-family: var(--font-mono);
    font-size: 10px;
}
.pcard--your-turn .pcard-step-overview .us-action__txt {
    color: inherit;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.pcard--your-turn .pcard-yt-footer--four {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 14px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--your-turn .pcard-yt-footer--four [data-pcard-send-back] {
    border: 1.5px solid var(--tb-ink);
    background: var(--tb-sheet);
    color: var(--tb-ink);
}
.pcard--your-turn .pcard-yt-footer--four [data-choose-plan] {
    margin-left: auto;
    background: var(--tb-go);
    color: var(--tb-ink);
}
.pcard--your-turn > .pcard-more {
    margin: 0;
    padding: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--your-turn > .pcard-more > .pcard-more__summary { padding: 12px 14px; }
.pcard--your-turn .pcard-yt-more-identity { margin: 0; }
.pcard--your-turn .pcard-yt-more-identity .pcard-yt-success { margin-top: 14px; }

@media (max-width: 520px) {
    .pcard--your-turn .pcard-step-overview .tp-plan__head {
        align-items: flex-start;
        flex-direction: column;
    }
    .pcard--your-turn .pcard-yt-plan-actions { width: 100%; }
    .pcard--your-turn .pcard-yt-plan-actions [data-choose-plan] { margin-left: auto; }
    .pcard--your-turn .pcard-step-overview .us-row,
    .pcard--your-turn .pcard-step-overview .us-plan > li:last-child { padding-right: 12px; padding-left: 12px; }
}

/* Wave 5: the feed card and its attached live-plan sheet. */
.feed-primary-want--wants-card:has(.tb-feed-plan) .target-trajectory {
    position: relative;
    z-index: 2;
    border: var(--feed-card-border);
    border-radius: var(--tb-card-radius);
    background: var(--tb-sheet);
    box-shadow: var(--tb-card-shadow);
}
.feed-primary-want--wants-card:has(.tb-feed-plan) {
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: var(--tb-sheet-shadow);
}
.feed-primary-want--wants-card:has(.tb-feed-plan) .target-trajectory {
    gap: 12px;
    padding: 16px 14px 14px;
}
.feed-primary-want--wants-card:has(.tb-feed-plan) .target-trajectory__title {
    font-size: 24px;
}
.feed-primary-want--wants-card:has(.tb-feed-plan) .target-trajectory__probability {
    gap: 8px;
}
.feed-primary-want--wants-card:has(.tb-feed-plan) .target-trajectory__probability strong {
    min-height: 38px;
    padding: 0 12px;
    font-size: 20px;
}
.feed-primary-want--wants-card:has(.tb-feed-plan) .target-trajectory__caption {
    font-size: 15px;
}
.feed-primary-want--wants-card:has(.tb-feed-plan) .want-proposal-arrival {
    display: none;
}
.tb-feed-plan {
    margin: 0 auto var(--space-3);
    border-top: 0;
}
.tb-feed-plan__summary {
    display: block;
    list-style: none;
    cursor: pointer;
}
.tb-feed-plan__summary::-webkit-details-marker { display: none; }
.tb-feed-plan__summary > .tb-bar { display: flex; }
.tb-feed-plan__pull {
    display: block;
    padding: 11px 14px;
    text-align: center;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .12em;
    text-decoration: underline;
    text-underline-offset: 4px;
    text-transform: uppercase;
}
.tb-feed-plan__pull-close { display: none; }
.tb-feed-plan[open] .tb-feed-plan__pull-open { display: none; }
.tb-feed-plan[open] .tb-feed-plan__pull-close { display: inline; }
.tb-feed-plan[open] .tb-feed-plan__done,
.tb-feed-plan[open] .tb-feed-plan__live { display: none; }
.tb-feed-plan__done .k,
.tb-feed-plan__live .k {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tb-feed-plan__strips { border-top: var(--tb-hair) dotted var(--tb-rule); }
.tb-feed-plan__strips .us-plan { margin: 0; }
.tb-feed-plan__strips .us-row {
    margin: 0;
    padding: 13px 14px;
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
}
.tb-feed-plan__strips .us-row:first-child { border-top: 0; }
.tb-feed-plan__overview {
    padding: 14px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.tb-feed-plan__overview p {
    margin: 7px 0 0;
    line-height: 1.5;
}

/* Screen 9: the same sheet grammar on the standalone step detail. */
.tb-detail-stephead {
    position: relative;
    border: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-sheet);
}
.tb-detail-stephead .tb-bar .meta {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.tp-detail:not(.is--history) {
    border-radius: 0;
    box-shadow: none;
}
.tp-detail:not(.is--history) .tp-sec {
    margin: 0;
    padding: 16px 14px;
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
}
.tp-detail:not(.is--history) .tp-sec__head {
    align-items: center;
}
.tp-detail:not(.is--history) .tp-sec__head::after {
    content: '';
    flex: 1;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.tp-detail:not(.is--history) .tp-sec__label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .12em;
}
.tp-detail:not(.is--history) .tp-info__odds4 {
    padding: 0;
    border: 1.5px solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    gap: 0;
}
.tp-detail:not(.is--history) .tp-info__odds4-row {
    padding: 10px 12px;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.tp-detail:not(.is--history) .tp-info__odds4-row:nth-child(-n+2) { border-top: 0; }
.tp-detail:not(.is--history) .tp-info__odds4-row:nth-child(even) {
    border-left: var(--tb-hair) dotted var(--tb-rule);
}
.tp-detail:not(.is--history) .tp-flag {
    padding: 12px;
    border: 1.5px solid var(--tb-ink);
    background: var(--tb-mark);
}
.tp-detail:not(.is--history) .tp-detail-foot {
    position: sticky;
    bottom: 0;
    margin: 0;
    padding: 12px 14px;
    border-top: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-sheet);
}

/* Detail is a continuous paper strip; only navigation remains sticky. */
.want-step-detail.is--oneball { min-width: 0; max-width: 100%; }
.is--oneball .tb-detail-sheet {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin: var(--space-4) 0;
    padding: 0;
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: var(--tb-sheet-shadow);
    overflow-wrap: anywhere;
}
.is--oneball .tb-detail-sheet .ob-topper {
    position: static;
    margin: 0;
    padding: 0;
    background: var(--tb-sheet);
}
.tb-detail-sheet .ob-topper__context { margin: 0; padding: var(--space-4); }
.tb-detail-sheet .ob-dashes { display: none; }
.is--oneball .tb-detail-sheet .ob-banner,
.is--oneball .tb-detail-sheet .ob-strip {
    margin: 0;
    padding: var(--space-4);
    border-radius: 0;
    border-top: var(--tb-hair) solid var(--tb-ink);
}
.is--oneball .tb-detail-sheet .ob-banner { background: var(--tb-agent-highlight); }
.tb-detail-sheet .ob-banner__num,
.tb-detail-sheet .ob-duo__num { background: var(--tb-ink); color: var(--tb-sheet); }
.tb-detail-sheet .ob-banner__title { font-size: var(--text-base); }
.tb-detail-agentbar {
    padding: var(--space-3) var(--space-4);
    background: var(--tb-ink);
    color: var(--tb-sheet);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}
.tb-detail-idle {
    padding: var(--space-3) var(--space-4);
    background: var(--tb-band);
    color: var(--tb-prose);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    border-bottom: var(--tb-hair) solid var(--tb-ink);
}
.is--oneball .tb-detail-sheet .ob-feed,
.is--oneball .tb-detail-sheet .ob-zone {
    margin: 0;
    padding: 0;
    min-width: 0;
}
.is--oneball .tb-detail-sheet .ob-card,
.is--oneball .tb-detail-sheet .ob-card--work .tp-dcard,
.is--oneball .tb-detail-sheet .ob-card--work .tp-har-block.ob-card,
.is--oneball .tb-detail-sheet .ob-card--work .tp-woy-attached__row.ob-card,
.is--oneball .tb-detail-sheet .ob-card--work .tp-approve,
.is--oneball .tb-detail-sheet .ob-card--work form.tp-reply,
.tb-detail-sheet .tp-detail.is--history,
.tb-detail-sheet .tp-detail.is--history .tp-sec {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: var(--space-4);
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: var(--tb-sheet-shadow);
}
.is--oneball .tb-detail-sheet .ob-card--work { padding: 0; border-top: 0; }
.is--oneball .tb-detail-sheet .ob-card--work .tp-detail { margin: 0; }
.tb-detail-sheet .tp-dcard--promise > .ob-card__pills { display: none; }
.tb-detail-sheet .tb-detail-stephead { display: none; }
.is--oneball .tb-detail-sheet .ob-card__pills {
    position: static;
    inset: auto;
    transform: none;
    margin: 0 0 var(--space-3);
    max-width: 100%;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.tb-detail-sheet .ob-pill--want { display: none; }
.tb-detail-sheet .ob-pill--step,
.tb-detail-sheet .ob-pill--agent {
    border-radius: 0;
    background: var(--tb-mark);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}
.tb-detail-sheet .tp-dcard__notetext,
.tb-detail-sheet .ob-card__help { font-family: var(--font-body); font-size: var(--text-base); }
.tb-detail-sheet .tp-dcard__kicker {
    display: table;
    padding: var(--space-1) var(--space-2);
    background: var(--tb-mark);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-normal);
}
.tb-detail-sheet .tp-detail:not(.is--history) .tp-detail-foot,
.is--oneball .tb-detail-sheet .ob-pinbar {
    position: static;
    inset: auto;
    width: auto;
    margin: 0;
    padding: var(--space-4);
    border: 0;
    border-top: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    box-shadow: var(--tb-sheet-shadow);
    flex-wrap: wrap;
    gap: var(--space-2);
}
.is--oneball .tb-detail-sheet .ob-fold,
.tb-detail-sheet .tb-detail-receipt {
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
}
.tb-detail-sheet .ob-fold__sum,
.tb-detail-sheet .tb-detail-receipt > summary {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin: 0;
    padding: var(--space-3) var(--space-4);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    text-transform: none;
    letter-spacing: var(--tracking-normal);
    color: var(--tb-meta);
    cursor: pointer;
    list-style: none;
}
.tb-detail-sheet summary::-webkit-details-marker { display: none; }
.tb-fold-count { margin-left: auto; color: var(--tb-meta); }
.tb-fold-open,
.ob-fold[open] > summary .tb-fold-closed { display: none; }
.ob-fold[open] > summary .tb-fold-open { display: inline; }
.tb-detail-receipt__body { padding: var(--space-4); }
.tb-detail-receipt__record { min-width: 0; margin: 0; padding: 0; border: 0; }
.tb-detail-receipt__step { border-top: var(--tb-hair) dotted var(--tb-rule); padding-block: var(--space-4); }
.tb-detail-receipt__step h3 { font-family: var(--font-heading); font-size: var(--text-base); }
.tb-detail-sheet .tp-detail.is--history { padding: 0; }
.tb-detail-sheet .tp-detail.is--history .tp-sec { padding-inline: 0; }
.tb-detail-sheet :is(img, video, object, iframe) { max-width: 100%; }
.tb-detail-sheet .ob-pinbar__num--agent { background: var(--tb-ink); color: var(--tb-sheet); }

/* The receipt is separate from the current stage's scroll. */
.tb-detail-tools { padding: var(--space-2) var(--space-4); text-align: right; }
.tb-detail-tools button {
    padding: var(--space-1) 0;
    border: 0;
    background: transparent;
    color: var(--tb-meta);
    font-family: var(--font-body);
    font-size: var(--text-xs);
    cursor: pointer;
    text-decoration: underline;
}
.tb-detail-sheet dialog.tb-detail-receipt {
    position: fixed;
    inset: 0;
    box-sizing: border-box;
    width: calc(100% - var(--space-8));
    max-width: var(--main-max-width);
    max-height: calc(100dvh - var(--space-8));
    margin: auto;
    padding: 0;
    overflow: auto;
    border: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-sheet);
    color: var(--tb-ink);
}
.tb-detail-receipt::backdrop { background: var(--surface-overlay); }
.tb-detail-receipt__head {
    position: sticky;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    padding: var(--space-4);
    border-bottom: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-sheet);
    z-index: var(--z-sticky);
}
.tb-detail-receipt__head h2 { margin: 0; font-family: var(--font-heading); font-size: var(--text-lg); }
.tb-detail-receipt__head button { padding: var(--space-2) var(--space-3); font-family: var(--font-body); cursor: pointer; }
.is--oneball .tb-detail-sheet { margin-bottom: calc(var(--size-32) + var(--space-8)); }
.is--oneball .tb-detail-sheet .ob-pinbar {
    position: fixed;
    inset: auto 0 0;
    z-index: var(--z-sticky);
    padding: var(--space-3) var(--space-4) calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
    background: var(--tb-sheet);
}
@media (min-width: 768px) {
    .is--oneball .tb-detail-sheet .ob-pinbar { left: calc(var(--layout-rail-width) + var(--layout-sidebar-width)); }
}
body:has(.tb-detail-sheet) .global-post-fab { bottom: calc(var(--size-32) + var(--space-4)); }

/* The want is the rounded bottom of the card; the stage is its inset sheet. */
.is--oneball .tb-detail-sheet {
    border: 0;
    background: transparent;
}
/* THE BAND IS IN FLOW (Steven 2026-09-11). The take-action strip used to be
   the sheet's own sticky element, pinned by a `top` computed from the want
   card's height and ranked at --z-sticky. Two sticky boxes racing for the
   same line is how, after an approval settled the tape, the green strip rode
   UP over the black Toll Bench header with the want title card underneath it.
   The strip is printed inside the step card now, after the agent's half, so
   it simply scrolls with the work it belongs to. */
.is--oneball .tb-detail-sheet .ob-topper {
    position: static;
    top: auto;
    z-index: auto;
    background: var(--surface-app);
}
.tb-detail-sheet .ob-topper__context {
    position: relative;
    z-index: 1;
    border: var(--feed-card-border);
    border-top: 0;
    border-radius: 0 0 var(--tb-card-radius) var(--tb-card-radius);
    background: var(--tb-sheet);
    box-shadow: var(--tb-card-shadow);
}
.is--oneball .tb-detail-sheet .ob-banner,
.is--oneball .tb-detail-sheet .ob-strip,
.tb-detail-sheet .tb-detail-idle,
.is--oneball .tb-detail-sheet .tb-detail-working,
.is--oneball .tb-detail-sheet > .ob-fold,
.is--oneball .tb-detail-sheet > .tb-detail-tools,
.is--oneball .tb-detail-sheet .tb-detail-focus > .ob-feed {
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) * 2);
    margin: 0 auto;
    border-inline: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
}
.is--oneball .tb-detail-sheet .ob-banner,
.is--oneball .tb-detail-sheet .ob-strip {
    border: var(--tb-hair) solid var(--tb-ink);
    border-top: 0;
}
.is--oneball .tb-detail-sheet .ob-banner {
    background-color: var(--tb-sheet);
    background-image: linear-gradient(var(--tb-agent-highlight), var(--tb-agent-highlight));
}
.tb-detail-sheet .tb-detail-idle,
.is--oneball .tb-detail-sheet > .ob-fold { border-bottom: var(--tb-hair) dotted var(--tb-rule); }
.tb-detail-sheet > .tb-detail-tools,
.tb-detail-sheet .tb-detail-focus > .ob-feed { background: var(--tb-sheet); }
.is--oneball .tb-detail-sheet .ob-topper .ob-dashes {
    display: block;
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) * 2);
    margin: 0 auto;
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.tb-detail-stage-note {
    margin: 0;
    padding: var(--space-4);
    border-top: var(--tb-hair) dotted var(--tb-rule);
    font-family: var(--font-body);
    font-size: var(--text-sm);
    line-height: var(--leading-relaxed);
    color: var(--tb-prose);
}

/* Expanded records live above the pinned fold, not in the working area. */
.tb-detail-focus { min-height: calc(100dvh - var(--size-16) - var(--size-12)); }
.tb-detail-history {
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) * 2);
    margin: 0 auto;
    border-inline: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-sheet);
}
.tb-history-title {
    margin: 0;
    padding: var(--space-4);
    border-block: var(--tb-hair) dotted var(--tb-rule);
    font-family: var(--font-mono);
    font-size: var(--text-sm);
    color: var(--tb-ink);
}
.tb-detail-sheet .ob-feed .tp-dcard--promise > .tp-dcard__kicker,
.tb-detail-sheet .ob-feed .tp-dcard--promise > .tp-dcard__asked { display: none; }
.tb-detail-sheet .ob-feed .tp-dcard--promise .us-agent-message { margin-top: 0; }

/* ONE STACKING RULE FOR THE SHEET (Steven 2026-09-11). The page header is
   above everything that sticks inside the sheet -- there is no second answer
   and no per-element patch. Read it top down: header, then the want title
   card, then anything else that sticks. Tokens only (tokens.css): --z-sticky
   is 200, and the calc(var(--z-sticky) + n) pattern is the one already in
   use here. Scoped to .toll-bench-header, so the shared .utility-bar rule
   other pages use is untouched. */
.toll-bench-header { z-index: calc(var(--z-sticky) + 2); }

/* History is part of the same sheet, sliding beneath the pinned want card. */
.tb-detail-card {
    position: sticky;
    top: calc(var(--size-16) + var(--size-12) + var(--tb-hair));
    z-index: calc(var(--z-sticky) + 1);
    background: var(--surface-app);
}
@media (min-width: 768px) {
    .tb-detail-card { top: calc(var(--size-16) + var(--space-1) + var(--size-12) + var(--tb-hair)); }
}
.is--oneball .tb-detail-sheet .ob-pinbar--agent {
    background-color: var(--tb-sheet);
    background-image: linear-gradient(var(--tb-agent-highlight), var(--tb-agent-highlight));
}
.is--oneball .tb-detail-sheet .ob-pinbar--go {
    background-color: var(--tb-go);
    background-image: none;
}

/* End the paper at the work block; navigation belongs to the surface. */
.tb-detail-sheet .ob-feed .tp-detail-foot { display: none; }
.is--oneball .tb-detail-sheet .tb-detail-focus > .ob-feed {
    border-bottom: var(--tb-hair) solid var(--tb-ink);
}
.tb-detail-back {
    display: flex;
    justify-content: center;
    padding: var(--space-4);
    background: transparent;
}

/* Plan status and action copy must remain readable on narrow screens. */
.us-actions .us-actions__state[aria-label^="waiting"] {
    flex: 0 1 auto;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    height: auto;
    white-space: normal;
    overflow-wrap: anywhere;
}
.us-row.us-action--quiet {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
}
.us-action--quiet > .us-action__num { grid-column: 1; grid-row: 1; }
.us-action--quiet > .us-action__txt {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    overflow-wrap: anywhere;
}
.us-action--quiet > .us-action__btn { grid-column: 3; grid-row: 1; white-space: nowrap; }
@media (max-width: 430px) {
    .us-row.us-action--quiet { gap: var(--space-2); }
    .us-action--quiet > .us-action__txt { font-size: var(--text-sm); }
    .us-action--quiet > .us-action__btn { padding-inline: var(--space-2); font-size: var(--text-sm); }
}

/* The win belongs to the agent above it; keep them in one section. */
.pcard--open-bid .pcard-ob-agent { border-bottom: 0; }
.pcard--open-bid .pcard-ob-hw--wins,
.pcard--open-bid:not([data-expanded="1"]) .pcard-ob-hw--wins { border-top: 0; }

/* Selected-agent paper attaches to the target while retaining its purple state. */
.want-proposals--attached-plan .proposal-card.pcard--with-agent {
    width: calc(100% - var(--tb-sheet-inset) - var(--tb-sheet-inset));
    margin-right: auto;
    margin-left: auto;
    margin-top: 0;
    border-top: 0;
}
/* Expanded proposal information uses the same flat ruled paper as the plan. */
.pcard--open-bid .finalist-record__answers { gap: 0; }
.pcard--open-bid .finalist-record__answer {
    margin: 0;
    padding: var(--space-3) 0;
    border-radius: 0;
    background: transparent;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .proposal-system {
    grid-template-columns: minmax(0, 1fr);
    background: transparent;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-bottom: 0;
}
.pcard--open-bid .proposal-system__item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: baseline;
    gap: var(--space-3);
    padding: var(--space-3) 0;
    background: transparent;
    border: 0;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .proposal-system__value { overflow-wrap: anywhere; }
.pcard--open-bid .pcard-more,
.pcard--open-bid .proposal-card__disclosure {
    border-top: var(--tb-hair) dotted var(--tb-rule);
}
.pcard--open-bid .pcard-fail-inline {
    border: var(--tb-hair) solid var(--tb-stop);
    border-radius: var(--radius-full);
    padding: var(--space-2) var(--space-4);
    background: var(--tb-stop);
    color: var(--tb-sheet);
    font-family: var(--font-body);
    font-weight: var(--font-bold);
}

/* A proposed plan is white paper; numbers identify rows without status discs. */
.pcard--your-turn .pcard-step-overview .us-plan .us-row.us-row--action {
    background: var(--tb-sheet);
}
.pcard--your-turn .pcard-step-overview .us-num,
.pcard--your-turn .pcard-step-overview .us-action__num {
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--tb-ink);
}

/* Approved plan: one full-plan control in the sheet bar. */
.tb-plan-sheet .tp-plan__bar .tb-plan__full-link {
    margin-left: auto;
    flex-shrink: 0;
    white-space: nowrap;
}
.tb-plan-sheet .us-row.us-action--grant {
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
}
.tb-plan-sheet .us-action--grant .us-action__txt { white-space: nowrap; }
.tb-plan-sheet .us-action--grant .us-action__btn { grid-column: 3; white-space: nowrap; }
@media (max-width: 430px) {
    .tb-plan-sheet .us-action--grant { gap: var(--space-2); }
    .tb-plan-sheet .us-action--grant .us-action__txt { font-size: var(--text-sm); }
    .tb-plan-sheet .us-action--grant .us-action__btn { padding-inline: var(--space-2); font-size: var(--text-sm); }
    .want-detail:has(.want-step-detail.is--oneball) { padding-inline: var(--space-2); }
}
/* Details shares the plan page's card width and attached paper seam. */
body.has-boh-interface .want-step-detail .tb-detail-sheet { border-radius: 0; }
.is--oneball .tb-detail-sheet { margin-top: 0; }
.tb-detail-card .ob-topper__context {
    border: var(--feed-card-border);
    border-radius: var(--tb-card-radius);
}
.is--oneball .tb-detail-sheet .ob-topper .ob-dashes { display: none; }
/* Action panels belong to the continuous sheet, not floating rounded cards. */
.tb-detail-sheet .ob-feed :is(.tp-askcard, .tp-grant, .tp-identity-card, .tp-har-block) {
    box-sizing: border-box;
    width: 100%;
    margin: 0;
    padding: var(--space-4);
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
}
.tb-detail-sheet .ob-feed .tp-askpills {
    position: static;
    inset: auto;
    transform: none;
    margin-bottom: var(--space-3);
    padding-bottom: var(--space-2);
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.tb-detail-sheet .ob-feed .tp-askpills .tp-pill,
.tb-detail-sheet .ob-feed .tp-sec__label {
    border: 0;
    border-radius: 0;
    background: var(--tb-mark);
    color: var(--tb-ink);
    padding: var(--space-1) var(--space-2);
}
body.has-boh-interface .tb-detail-sheet .tp-detail:not(.is--history) { border-radius: 0; }
.tb-detail-sheet .ob-feed :is(.tp-grant__lines, .tp-info__text table, .ob-facts) {
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
}
.tb-detail-sheet .ob-feed :is(.tp-grant__line, .ob-facts__row) {
    padding: var(--space-3);
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
.tb-detail-sheet .ob-feed :is(.tp-grant__line:last-child, .ob-facts__row:last-child) { border-bottom: 0; }

.tb-detail-sheet .ob-duo { min-width: 0; max-width: 100%; align-items: flex-start; }
.tb-detail-sheet .ob-pill { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.tb-detail-sheet .ob-duo__num { flex-shrink: 0; }
.tb-detail-sheet .ob-feed .tp-btn--primary {
    background: var(--tb-go);
    border-color: var(--tb-go);
    color: var(--tb-ink);
}

.tb-detail-sheet .ob-feed .contact-picker {
    border: var(--tb-hair) solid var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
}

/* Replies share the paper treatment in both signed and unsigned views. */
body.has-boh-interface .want-detail .want-replies {
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) - var(--tb-sheet-inset));
    margin: var(--space-4) auto;
    padding: var(--space-4);
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
}
body.has-boh-interface .want-detail .want-replies__title {
    display: table;
    margin: 0 0 var(--space-3);
    padding: var(--space-1) var(--space-2);
    background: var(--tb-mark);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    letter-spacing: var(--tracking-wide);
    text-transform: uppercase;
}
.want-detail .want-replies__list { gap: 0; }
.want-detail .want-replies__item {
    min-width: 0;
    padding: var(--space-4) 0;
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
}
.want-detail .want-replies__item:last-child { padding-bottom: 0; }
.want-detail .want-replies__meta { flex-wrap: wrap; gap: var(--space-1) var(--space-3); }
.want-detail .want-replies__from,
.want-detail .want-replies__when {
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}
.want-detail .want-replies__subject,
.want-detail .want-replies__body { overflow-wrap: anywhere; color: var(--tb-ink); }

/* Keep the plan disclosure at the right of its label, including on phones. */
body.has-boh-interface .tb-plan-sheet .tp-plan__bar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
}
body.has-boh-interface .tb-plan-sheet .tp-plan__bar .tb-plan__full-link {
    flex-basis: auto;
    align-self: center;
    justify-self: end;
    margin: 0;
    white-space: nowrap;
}
body.has-boh-interface .tb-plan-sheet .tp-plan__bar :is(.plain, .meta, .tb-plan__full-link) {
    font-size: var(--text-xs);
}
body.has-boh-interface .tb-plan-sheet .tp-plan__bar .plain { justify-self: start; }
body.has-boh-interface .tb-plan-sheet .tp-plan__bar .meta {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    max-width: none;
    text-align: center;
}
@media (max-width: 520px) {
    body.has-boh-interface .tb-plan-sheet .tp-plan__bar :is(.plain, .meta, .tb-plan__full-link) {
        white-space: normal;
    }
    body.has-boh-interface .tb-plan-sheet .tp-plan__bar .tb-plan__full-link { text-align: right; }
}
/* Apply the same paper system to receipts, history and the final decision. */
body.has-boh-interface .tb-detail-sheet :is(.tp-msg, .tp-outcome__item, .tp-outcome__fulltext, .tp-har-doc-reader, .tp-dcard__doc, .tp-info__more-body, .tp-approve__kind, .tp-finish) {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
    color: var(--tb-ink);
    padding: var(--space-3);
    overflow-wrap: anywhere;
}
.tb-detail-sheet .tp-msg + .tp-msg { border-top-style: dotted; }
.tb-detail-sheet .tp-outcome__thumb--text {
    aspect-ratio: auto;
    height: auto;
    min-height: 0;
    padding: var(--space-2);
    border: 0;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
    border-radius: 0;
    background: var(--tb-sheet);
}
body.has-boh-interface .tb-detail-sheet .tp-sec__head {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    margin-bottom: var(--space-3);
}
.tb-detail-sheet .tp-sec__head::after {
    content: '';
    flex: 1;
    border-bottom: var(--tb-hair) dotted var(--tb-rule);
}
body.has-boh-interface .tb-detail-sheet .tp-sec__label {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    border-radius: 0;
    background: var(--tb-mark);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}
.tb-detail-sheet .tp-info__odds4 {
    border: var(--tb-hair) solid var(--tb-ink);
    padding: var(--space-3);
    background: var(--tb-sheet);
    border-radius: 0;
    gap: var(--space-3);
}
.tb-detail-sheet .tp-info__odds4-row { border-bottom: var(--tb-hair) dotted var(--tb-rule); padding-bottom: var(--space-2); }
body.has-boh-interface .tb-detail-sheet .tb-history-title {
    background: var(--tb-ink);
    color: var(--tb-sheet);
    font-family: var(--font-mono);
    text-transform: uppercase;
}
body.has-boh-interface .tb-detail-sheet .tp-btn--danger {
    background: var(--tb-stop);
    color: var(--tb-sheet);
    border: var(--tb-hair) solid var(--tb-ink);
}
body.has-boh-interface .tb-detail-sheet .tp-btn--primary {
    background: var(--tb-go);
    color: var(--tb-ink);
    border: var(--tb-hair) solid var(--tb-ink);
}

body.has-boh-interface .tb-detail-sheet .tp-woy-attached__fulltext {
    padding: var(--space-3);
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
}
body.has-boh-interface .tb-detail-sheet .tp-approve__label {
    padding: var(--space-1) var(--space-2);
    background: var(--tb-mark);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
}
body.has-boh-interface .tb-detail-sheet .ob-strip {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    column-gap: var(--space-2);
    row-gap: var(--space-1);
}
.tb-detail-sheet .ob-strip__num { grid-row: 1 / 3; align-self: center; }
.tb-detail-sheet .ob-strip__label { grid-column: 2; }
body.has-boh-interface .tb-detail-sheet .ob-strip__ask {
    grid-column: 2;
    white-space: normal;
    overflow-wrap: anywhere;
    overflow: visible;
}
body.has-boh-interface .is--oneball .tb-detail-sheet .ob-pinbar--go {
    background: var(--tb-ink);
    color: var(--tb-sheet);
}
.tb-detail-sheet .ob-pinbar--go :is(.ob-pinbar__label, .ob-pinbar__num) { color: var(--tb-sheet); }

/* Screen 10: the response queue is an attached, compact plan sheet. */
.frq-group .frq-ghead { position: relative; z-index: 1; margin-bottom: 0; }
.frq-group .tb-feed-action {
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) * 2);
    margin: 0 auto;
    border: var(--tb-hair) solid var(--tb-ink);
    border-top: 0;
    border-radius: 0 0 var(--tb-sheet-radius) var(--tb-sheet-radius);
    background: var(--tb-sheet);
    box-shadow: none;
    overflow: visible;
}
.frq-group .tb-feed-action__bar { margin: 0; background: var(--tb-ink); color: var(--tb-mark); }
.frq-group .tb-feed-action__bar .plain { background: transparent; color: var(--tb-mark); padding: 0; }
.frq-group .tb-feed-action__bar .meta { color: var(--tb-sheet); }
.frq-group .tb-feed-action__done .k { font-family: var(--font-body); font-size: var(--text-sm); letter-spacing: normal; text-transform: none; }
.frq-group .tb-feed-action .frq-item__strip {
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    gap: var(--space-2);
    margin: 0;
    padding: var(--space-3) var(--space-4);
    border-radius: 0;
    border-block: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-go);
    color: var(--tb-ink);
}
.frq-group .tb-feed-action .ob-strip__ask { white-space: normal; overflow: visible; overflow-wrap: anywhere; }
.frq-group .tb-feed-action__overview { padding: var(--space-3) var(--space-4); }
.frq-group .tb-feed-action__overview .tb-leader { padding: 0; gap: var(--space-2); }
.frq-group .tb-feed-action__overview p { margin: var(--space-3) 0 0; font-family: var(--font-serif); font-size: var(--text-base); line-height: var(--leading-relaxed); color: var(--tb-ink); overflow-wrap: anywhere; }
.frq-group .tb-feed-action__source { font-family: var(--font-mono); font-size: 10px; text-transform: uppercase; color: var(--tb-meta); }
.frq-group .tb-feed-action__pull { padding: var(--space-3); text-align: center; cursor: pointer; list-style: none; font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; letter-spacing: var(--tracking-wide); border-top: var(--tb-hair) dotted var(--tb-rule); }
.frq-group .tb-feed-action__pull::-webkit-details-marker { display: none; }
.tb-feed-action__open, .tb-feed-action__details[open] > summary .tb-feed-action__closed { display: none; }
.tb-feed-action__details[open] > summary .tb-feed-action__open { display: inline; }
.frq-group .tb-feed-action :is(.tb-detail-stephead, .tp-stepband) { display: none; }
.frq-group .tb-feed-action :is(.tp-approve, .tp-finish, .tp-approve__kind, .tp-woy-attached__fulltext, .tp-msg, .tp-dcard__doc, .tp-har-doc-reader) {
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-sheet);
    box-shadow: none;
    color: var(--tb-ink);
}
.frq-group .tb-feed-action :is(.tp-approve__label, .tp-dcard__kicker, .tp-sec__label) { padding: var(--space-1) var(--space-2); background: var(--tb-mark); color: var(--tb-ink); font-family: var(--font-mono); font-size: var(--text-xs); }
.frq-group .tb-feed-action .tp-btn--primary { background: var(--tb-go); color: var(--tb-ink); border-color: var(--tb-ink); }
.frq-group .tb-feed-action .tp-btn--danger { background: var(--tb-stop); color: var(--tb-sheet); border-color: var(--tb-ink); }
@media (max-width: 520px) {
    .frq-group .tb-feed-action .frq-item__strip { grid-template-columns: auto minmax(0, 1fr); }
    .frq-group .tb-feed-action .ob-strip__num { grid-row: 1 / 3; align-self: center; }
    .frq-group .tb-feed-action :is(.ob-strip__label, .ob-strip__ask) { grid-column: 2; }
}

.frq-group .tb-feed-action { border: 0; background: transparent; }
.tb-feed-action__paper { border: var(--tb-hair) solid var(--tb-ink); border-top: 0; border-radius: 0 0 var(--tb-sheet-radius) var(--tb-sheet-radius); background: var(--tb-sheet); overflow: hidden; }
.frq-group .tb-feed-action__overview .tb-label { padding: var(--space-1) var(--space-2); background: var(--tb-mark); color: var(--tb-ink); }
.frq-group .tb-feed-action__pull { border: 0; background: transparent; }
.frq-group .tb-feed-action__details[open] { border: var(--tb-hair) solid var(--tb-ink); background: var(--tb-sheet); }


/* Refined paper meets the target with straight edges and one number column. */
.proposal-card.pcard--your-turn.tb-sheet { border-radius: 0; }
.pcard--your-turn .pcard-step-overview .us-plan .us-row,
.pcard--your-turn .pcard-step-overview .us-plan .us-row.us-row--action { padding-inline: 14px; }
.pcard--your-turn .pcard-step-overview :is(.us-num, .us-action__num) {
    box-sizing: border-box;
    width: 26px;
    height: 26px;
    margin: 0;
    padding: 0;
    font-size: 12px;
    text-align: center;
}
.pcard--your-turn .pcard-yt-summary__text strong { font-weight: 700; }
@media (max-width: 520px) {
    .pcard--your-turn .pcard-step-overview .us-plan .us-row,
.pcard--your-turn .pcard-step-overview .us-plan .us-row.us-row--action { padding-inline: 12px; }
}


/* Feed paper slides beneath the card and uses the shared white/yellow bar. */
.frq-group .frq-ghead { z-index: 2; }
.frq-group .tb-feed-action {
    z-index: 1;
    box-sizing: border-box;
    width: calc(100% - var(--tb-sheet-inset) * 2);
}
.frq-group .frq-ghead + .tb-feed-action { margin-top: calc(-1 * var(--tb-sheet-inset)); }
.frq-group .frq-ghead + .tb-feed-action > .tb-feed-action__paper { padding-top: var(--tb-sheet-inset); }
.frq-group .tb-feed-action__paper { box-sizing: border-box; width: 100%; }
.frq-group .tb-feed-action__bar { background: var(--tb-sheet); color: var(--tb-ink); }
.frq-group .tb-feed-action__bar .plain { padding: var(--space-1) var(--space-2); background: var(--tb-mark); color: var(--tb-ink); }
.frq-group .tb-feed-action__bar .meta { color: var(--tb-meta); }

/* An overview introduces the step; actions have their own sequence. */
.tb-detail-sheet .ob-card--work > .ob-card__pills,
.tb-detail-sheet .tp-dcard--note > .ob-card__pills,
.tb-detail-sheet .tb-numbered-action > .ob-card__pills,
.tb-detail-sheet .tb-action-heading-host > .tp-askpills > .tp-pill { display: none; }
.tb-detail-sheet .tb-step-overview .tp-dcard__notetext {
    margin: var(--space-3) 0 0;
    padding: var(--space-4);
    border: var(--tb-hair) solid var(--tb-ink);
    background: var(--tb-sheet);
}
.tb-detail-sheet .tb-action-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    margin-bottom: var(--space-3);
    color: var(--tb-ink);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    text-transform: uppercase;
}
.tb-action-heading__label { padding: var(--space-1) var(--space-2); background: var(--tb-mark); font-weight: 700; }
/* THE CHAIN (Steven 2026-09-10, his sketch): a green "Your action:" tag and
   the link's title beside it; the title is the same words the Plan page
   lists. State words come from the record, never from the screen. */
.tb-action-heading--chain { text-transform: none; font-family: var(--font-body); font-size: var(--text-base); justify-content: flex-start; }
.tb-action-heading--chain .tb-action-heading__label { background: var(--tb-go); color: var(--tb-ink); font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; }
.tb-action-heading--chain .tb-action-heading__title { font-weight: var(--font-medium); }
.tb-action-heading--chain .tb-action-heading__status { margin-left: auto; font-family: var(--font-mono); font-size: var(--text-xs); text-transform: uppercase; color: var(--tb-meta); }
.tb-detail-sheet .tb-action--pending { opacity: 0.6; }
/* THE PLAN'S ORDER (2026-09-10): a pending link sleeps inside a disabled fieldset
   with one line saying what it opens after; nothing inside it can be tapped. */
.tb-action-sleep { display: block; border: 0; padding: 0; margin: 0; min-width: 0; opacity: 0.6; }
/* the ask's own heading when its form is not on the page yet (W-V 2026-09-10) */
.tb-action-heading--server { margin: var(--space-4) 0 var(--space-2); }
/* a server-printed heading for a PENDING link is gray, never green (W-X 2026-09-10) */
.tb-action-heading--server.tb-action--pending .tb-action-heading__label { background: var(--tb-rule); }
.tb-action-heading--server.tb-action--pending { color: var(--tb-meta); }
/* THE WRAP-UP: the finish is a completion block -- what happened, from records, then one question */
.tp-wrapup { margin: var(--space-3) 0 var(--space-4); }
/* THE WRAP-UP IS THE ACTION (Steven 2026-09-11): the band sits at the top of
   the final block, above everything the agent did and the question. It used to
   take a flex `order` of its own here, and the finish band another -- two
   corner patches for one missing rule. The template prints the band first now
   (targets/_one_ball.html), so nothing needs sorting.
   Final approval uses the normal green heading; checkers close the tape. */
.want-step-detail .tb-detail-sheet .ob-card--work > .tb-finish-footer,
.is--oneball .tb-detail-sheet .ob-finish-line > .tb-finish-footer {
    display: flex; align-items: center; justify-content: center; order: 99; flex: none; width: 100%; padding: var(--space-3) 0;
    background: repeating-conic-gradient(var(--color-black) 0 25%, var(--color-white) 0 50%) 0 0 / var(--space-8) var(--space-8);
}
/* THE FINISH LINE (Steven 2026-09-13): the completed plan's top is the same
   checkered band the finish card closed with, pill reading "🎉 Complete", one
   plain line under it. Same slot and frame as the banner, no shading. */
.is--oneball .tb-detail-sheet .ob-banner.ob-finish-line {
    display: block; padding: 0;
    background-color: var(--tb-sheet); background-image: none;
}
.is--oneball .tb-detail-sheet .ob-finish-line > .tb-finish-footer { order: 0; padding: var(--space-4) 0; }
.tb-detail-sheet .ob-finish-line__note {
    margin: 0; padding: var(--space-3) var(--space-4);
    color: var(--tb-prose); font-family: var(--font-body); font-size: var(--text-sm);
}
.tp-wrapup__step { margin: var(--space-3) 0 var(--space-1); font-weight: var(--font-medium); }
.tp-wrapup__n { display: inline-block; min-width: var(--space-5); color: var(--tb-meta); }
.tp-wrapup__items { margin: 0; padding-left: var(--space-5); }
.tp-wrapup__items li { margin: var(--space-1) 0; }
.tp-finish__promise { margin: var(--space-2) 0; color: var(--text-secondary); }
.rp-wrapup { list-style: disc; }
/* A sleeping link is disabled and dim and says nothing else (Steven
   2026-09-11: the "opens after ..." line "doesn't need to be there"). */
/* A sleeping chain LINK is a disabled fieldset and stays dead to the
   touch. A sleeping act CARD is a plain div (checker D3, 18 September
   2026): only its Allow is held, because the door still takes the
   person's no, so the blanket must not reach its other buttons. */
fieldset.tb-action-sleep .tp-btn, fieldset.tb-action-sleep button,
fieldset.tb-action-sleep a[role="button"] { pointer-events: none; }
.tb-detail-sheet .tb-action--pending .tb-action-heading--chain .tb-action-heading__label { background: var(--tb-rule); }
.tb-detail-sheet .tb-chain-part > .tb-action-heading { display: none; }
.rp-chain { list-style: none !important; padding-left: 0 !important; margin-left: 0 !important; }
.rp-chain .rp-link { position: relative; padding-left: var(--space-5); }
.rp-chain .rp-link:before { content: none !important; }
.rp-chain .rp-link__mark { position: absolute; left: 0; }
.rp-chain .rp-link.is--open .rp-link__title { font-weight: var(--font-medium); }
.rp-chain .rp-link.is--pending { color: var(--tb-meta); }
.rp-chain .rp-link__note { display: block; font-size: var(--text-xs); color: var(--tb-meta); }
.tb-action-heading__status { font-weight: 700; }
body.has-boh-interface .tb-detail-sheet .tb-action--done {
    background: var(--tb-band);
    color: var(--tb-meta);
}
.tb-detail-sheet .tb-action--done > .tp-dcard__submitted { display: none; }
.tb-detail-sheet .tb-action--done .tb-action-heading__label { background: var(--tb-rule); }
.tb-detail-sheet .tb-action--done .tb-action-heading { color: var(--tb-meta); }
.tb-detail-sheet .ob-feed :is(.tp-har-actions, .tp-ac-askrow, .tp-approve__note, .tp-har-footnote, .tp-askfoot) {
    box-sizing: border-box;
    padding: var(--space-3) var(--space-4);
    margin-inline: 0;
}
.tb-detail-sheet .ob-feed .tp-har-actions { gap: var(--space-3); flex-wrap: wrap; }

body.has-boh-interface .tb-detail-sheet .ob-card--work .tb-numbered-action > .tp-har-block__header {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2);
}
.tb-detail-sheet .tb-numbered-action > .tp-har-block__header > :is(.tp-har-block__number, .tp-har-format-pill) { display: none; }
.tb-detail-sheet .tb-numbered-action.tb-action--done > .tb-action-heading { opacity: 1; }
.tb-detail-sheet .tb-action--done .tp-har-connect__live { color: var(--tb-meta); }

.want-proposals__stage-heading {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  margin-bottom: var(--space-4);
}
.want-proposals__stage-heading .want-proposals__stage-glyph {
  display: inline-flex;
  flex: none;
  margin: 0;
  animation: want-response-spin 6s linear infinite;
}
.want-proposals__stage-heading .want-proposals__stage-title { margin: 0; }
@keyframes want-response-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .want-proposals__stage-heading .want-proposals__stage-glyph { animation: none; }
}

/* Reserve the avatar's column independently of the wrapping identity text. */
.proposal-card .pcard-ob-agent { display: grid; grid-template-columns: var(--size-20) minmax(0, 1fr); column-gap: var(--space-4); align-items: start; }
.proposal-card .pcard-ob-agent .pcard-ob-logo {
    position: relative;
    align-self: start;
    flex: 0 0 auto;
    width: 100%;
    height: auto;
    aspect-ratio: 1;
}
.proposal-card .pcard-ob-agent__text { grid-column: 2; min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 480px) {
    .proposal-card .pcard-ob-agent { grid-template-columns: var(--size-16) minmax(0, 1fr); }
}
.proposal-card .pcard-ob-agent .pcard-ob-logo img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
}

/* Let the entire agent identity open its existing passport dialog. */
.proposal-card .pcard-ob-agent { position: relative; }
.proposal-card .pcard-ob-agent__profile {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}
.proposal-card .pcard-ob-agent__profile:hover,
.proposal-card .pcard-ob-agent__profile:active,
.proposal-card .pcard-ob-agent__profile:focus-visible {
  background: transparent;
  color: inherit;
}
.proposal-card .pcard-ob-agent__profile:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -3px;
}

/* Connected services remain legible, with one clear state per card. */
.tp-har-block[data-connection-state="connected"] {
  border: 2px solid var(--color-green-500);
  background: var(--bg-surface, white);
  color: var(--text-primary);
}
.tp-har-block[data-connection-state="connected"] .tp-har-block__header {
  background: var(--color-green-50);
  color: var(--text-primary);
  flex-wrap: wrap;
}
.tp-har-block[data-connection-state] .tp-har-required-chip { white-space: nowrap; }
.tp-profile-lock { display: flex; align-items: baseline; gap: var(--space-2); margin-top: var(--space-6); font-size: var(--text-sm); }
.tp-profile-lock__help summary { cursor: pointer; border: 1px solid currentColor; border-radius: 50%; width: 1.4em; text-align: center; list-style: none; }
.tp-profile-lock__help summary::-webkit-details-marker { display: none; }
.tp-profile-lock__help p { max-width: 30em; }
[data-acts-step] { scroll-margin-top: 110px; }

/* Selected proposals emerge directly from their target card. */
.want-detail:has(.want-proposals--attached-plan) [data-live-region="path"] > .want-hero__posted { display: none; }
.want-detail:has(.want-proposals--attached-plan) [data-live-region="path"] > .target-trajectory { margin-bottom: 0; }
.want-proposals--attached-plan { margin-top: 0; padding-top: 0; }
.want-proposals--attached-plan .want-proposals__list > .pcard--with-agent:first-child,
.want-proposals--attached-plan .want-proposals__list > .pcard--your-turn:first-child { margin-top: -1px; }

/* Probability is a padded row between full-width rules, never a dotted box. */
.proposal-card.pcard--open-bid .pcard-ob-stats {
  margin: var(--space-4) -14px -13px;
  padding: var(--space-4) 14px;
  border: 0;
  border-top: var(--tb-hair) solid var(--tb-rule);
  border-bottom: var(--tb-hair) solid var(--tb-rule);
  border-radius: 0;
}
.proposal-card.pcard--open-bid .pcard-ob-stat { padding: 0; gap: var(--space-2); }
.proposal-card.pcard--open-bid .pcard-ob-stat__label { font-size: var(--text-xs); line-height: 1.4; }
.proposal-card.pcard--open-bid .pcard-ob-stat__value { font-size: var(--text-3xl); font-weight: var(--font-bold); line-height: 1.1; }
.proposal-card.pcard--open-bid .pcard-ob-stat + .pcard-ob-stat { border-left: 0; padding-left: var(--space-4); }

/* Native modal top layer covers drawer headers and transformed card stacks. */
dialog.finalist-modal {
  inset: 0;
  width: 100%;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  border: 0;
  background: var(--surface-app);
  color: var(--text-primary);
  overflow: hidden;
}
dialog.finalist-modal::backdrop { background: var(--surface-app); }
dialog.finalist-modal .finalist-modal__dialog { max-height: 100%; }
@media (max-width: 640px) {
  dialog.finalist-modal .finalist-modal__dialog { height: 100%; min-height: 0; }
  dialog.finalist-modal .finalist-panel { flex: 1; }
}

.pcard-ob-agent__bands > span { white-space: nowrap; }

/* Refined and signed plans: one bordered step, one active handoff. */
.rp-plan{margin:0;padding:0}
.rp-step{border:var(--tb-hair) solid var(--tb-ink);background:var(--tb-sheet);margin:0}
/* The plan sheet supplies the outer frame; steps own only their separator. */
.tb-plan-sheet .rp-step,
.tb-plan-sheet .rp-step + .rp-step,
.tb-plan-sheet #tp-plan-list.is--folded .rp-step--current {
    border: 0;
    border-top: var(--tb-hair) dotted var(--tb-ink);
}
.tb-plan-sheet .tp-plan__bar { border-bottom: 0; }
.rp-step+.rp-step{border-top:0}
.rp-step>summary{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5);cursor:pointer;list-style:none;font-weight:var(--font-semibold)}
.rp-step>summary::-webkit-details-marker{display:none}
.rp-step>summary iconify-icon{margin-left:auto;flex-shrink:0;transition:transform .15s}
/* The pay point on a paid step's row (Steven 2026-10-06): the quiet ob-chip,
   one line, at the row's end beside the caret. On a phone the title keeps the
   first line and the chip drops to the end of a second one. */
.rp-pay{flex-shrink:0;white-space:nowrap;margin-left:auto}
.rp-step>summary:has(.rp-pay),.rp-detail-heading:has(.rp-pay){flex-wrap:wrap}
.rp-step>summary:has(.rp-pay) .rp-title,.rp-detail-heading:has(.rp-pay) .rp-title{flex:1 1 var(--size-32)}
.rp-step>summary .rp-pay+iconify-icon{margin-left:0}
.rp-step[open]>summary iconify-icon{transform:rotate(180deg)}

.rp-title{min-width:0;overflow-wrap:anywhere}
.rp-result{padding:0 var(--space-5) var(--space-5);color:var(--text-secondary)}
.rp-result>span{text-transform:uppercase;letter-spacing:var(--tracking-wide);font-size:var(--text-xs)}
.rp-result p{margin:var(--space-2) 0 0}
.rp-agent,.rp-person{border-top:var(--tb-hair) dotted var(--tb-ink);display:flex;gap:var(--space-3);padding:var(--space-5)}
.rp-agent>div,.rp-person>div{min-width:0;flex:1}
.rp-label{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--font-medium)}
.rp-dot{width:var(--space-4);flex-shrink:0;color:var(--tb-ink)}
.rp-agent:not(.rp-agent--complete)>.rp-dot{color:var(--tb-agent)}
.rp-agent .us-bullets,.rp-person .us-bullets{margin:0;padding-left:var(--space-4);font-size:var(--text-sm)}
.rp-agent--complete .us-bullets{list-style:none;padding-left:0}
.rp-agent--complete .us-bullets li{position:relative;padding-left:var(--space-5)}
.rp-agent--complete .us-bullets li:before{content:'✓';position:absolute;left:0;color:var(--tb-ink)}
.rp-agent--working{background:var(--tb-agent-highlight)}
.rp-agent .rp-identity{flex:0 0 var(--space-8);display:flex;flex-direction:column;justify-content:space-between;padding-bottom:calc(var(--space-6) + var(--space-3));gap:var(--space-4)}
.rp-heading-number,.rp-number{box-sizing:border-box;border:var(--tb-hair) solid var(--tb-ink);font-size:var(--text-base);line-height:1;width:var(--space-8);height:var(--space-8);border-radius:var(--radius-full);background:var(--tb-ink);color:var(--tb-sheet);display:grid;place-items:center;flex-shrink:0;font-weight:var(--font-semibold)}
.rp-heading-number{background:transparent;color:var(--tb-ink)}
.rp-avatar{display:block;width:var(--space-8);height:var(--space-8);overflow:hidden;border-radius:var(--radius-full)}
.rp-avatar img,.rp-avatar svg{width:100%;height:100%;object-fit:cover}
.rp-bubble{position:relative;margin:0;padding:var(--space-4);border-radius:var(--radius-xl);background:var(--surface-secondary);font-size:var(--text-sm);overflow-wrap:anywhere}
.rp-bubble:before{content:'';position:absolute;left:calc(-1 * var(--space-2));bottom:var(--space-3);width:var(--space-4);height:var(--space-3);border-radius:0 0 0 var(--space-3);background:var(--surface-secondary)}
.rp-bubble>p{margin:0 0 var(--space-2)}
.rp-working{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3)}
.rp-working-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:rp-working 1.2s ease-in-out infinite}
@keyframes rp-working{50%{opacity:.25;transform:scale(.65)}}
.rp-person--active{background:var(--tb-go);color:var(--tb-ink)}
.rp-action{margin-top:var(--space-4)}
.rp-facts,.rp-links{border-top:var(--tb-hair) dotted var(--tb-ink);padding:var(--space-3) var(--space-5);font-size:var(--text-sm)}
.rp-facts p{margin:var(--space-1) 0}
.rp-links{display:flex;justify-content:flex-end;gap:var(--space-4)}
@media(prefers-reduced-motion:reduce){.rp-working-dot{animation:none}.rp-step>summary iconify-icon{transition:none}}

/* Scope bullets use the same left gutter as the role marker. */
.rp-agent:not(.rp-agent--working),.rp-person:not(.rp-person--active){gap:var(--space-2)}
.rp-agent:not(.rp-agent--working) .us-bullets,.rp-person:not(.rp-person--active) .us-bullets{margin-left:calc(-1 * (var(--space-4) + var(--space-2)));padding-left:var(--space-4)}
.rp-agent--complete .us-bullets{padding-left:0!important}
.rp-agent--working{display:grid;grid-template-columns:var(--space-8) minmax(0,1fr);gap:var(--space-3)}
.rp-agent--working .rp-identity,.rp-agent--working .rp-message-column{display:contents}
.rp-agent--working .rp-number{grid-column:1;grid-row:1;align-self:start}
.rp-agent--working .rp-avatar{grid-column:1;grid-row:1;align-self:end}
.rp-agent--working .rp-bubble{grid-column:2;grid-row:1;min-height:calc(var(--space-8) * 2 + var(--space-3))}
.rp-agent--working .rp-working{grid-column:2;grid-row:2;justify-self:start;margin-top:0}

/* The working plan begins at the current step; the full-plan link restores context. */
[data-tp-plan]:has(#tp-plan-list.is--folded .rp-step--current)>.tp-plan__head{display:none}
#tp-plan-list.is--folded:has(.rp-step--current) .rp-step:not(.rp-step--current){display:none}
#tp-plan-list.is--folded .rp-step--current{border-top:var(--tb-hair) solid var(--tb-ink)}

/* THE DONE FACE ON ONE LINK (W-E, 2026-09-10). When one link of the chain
   completes and the step does not advance, the finished unit wears the
   feed's cover (.frq-stamp, wants.css) as a BAND at its top, under its
   "Your action:" heading, labelled from the record (Connected / Approved /
   Sent / Declined / Sent back / Did not complete). Worn on that unit only;
   the tape's own band (.frq-stamp--tape) stays the step's. */
.tb-detail-sheet .frq-stamp--link {
    position: static;
    inset: auto;
    z-index: auto;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: var(--space-3);
    box-sizing: border-box;
    width: auto;
    margin: 0 0 var(--space-3);
    padding: var(--space-2) var(--space-3);
    border: var(--tb-hair) solid var(--tb-ink);
    border-radius: 0;
    background: var(--tb-band);
    backdrop-filter: none;
    text-align: left;
    animation: none;
}
.tb-detail-sheet .frq-stamp--link .frq-stamp__label { font-size: var(--text-base); }
.tb-detail-sheet .frq-stamp--link .frq-stamp__sub {
    max-width: none;
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    color: var(--tb-meta);
}
.tb-detail-sheet .frq-stamp--link .frq-stamp__sub:empty { display: none; }
/* Held, not done: sent back / did not complete / blocked keep the ink border
   and the mark colour, so a stop never reads as a finish. */
.tb-detail-sheet .frq-stamp--held { background: var(--tb-mark); }
/* A band that landed in a live update takes the cover's entrance. */
.tb-detail-sheet .frq-stamp--link.is--in { animation: frq-stamp-in var(--duration-slow) var(--ease-out); }
/* A finished unit keeps its words but its buttons go quiet; the record's own
   controls (undo a refusal, open a receipt) stay, so only the primary
   buttons are hidden. A held unit keeps everything: it still needs a tap. */
.tb-detail-sheet .tb-action--done.tb-action--faced .tp-btn--primary,
.tb-detail-sheet .tb-action--done.tb-action--faced .tp-approve__buttons { display: none; }
/* Focus: the next open link is the one at full contrast; pending links
   stay dim (set above). No scroll, no motion: the eye finds the green tag. */
.tb-detail-sheet .tb-action--focus > .tb-action-heading--chain .tb-action-heading__label,
.tb-detail-sheet .tb-action--focus.tb-action-heading-host > .tb-action-heading--chain .tb-action-heading__label { background: var(--tb-go); }
.tb-detail-sheet .tb-action--open:not(.tb-action--focus) > .tb-action-heading--chain .tb-action-heading__label { background: var(--tb-go); }
.tb-detail-sheet .tb-action--held > .tb-action-heading--chain .tb-action-heading__label { background: var(--tb-mark); }
@media (prefers-reduced-motion: reduce) {
    .tb-detail-sheet .frq-stamp--link.is--in { animation: none; }
}

/* Plan and Detail share one marker gutter and readable completion states. */
.rp-agent:not(.rp-agent--working), .rp-person {
  display: grid; grid-template-columns: var(--space-8) minmax(0, 1fr); gap: var(--space-3);
}
.rp-agent:not(.rp-agent--working) > div, .rp-person > div { display: contents; }
.rp-agent:not(.rp-agent--working) .rp-label, .rp-person .rp-label { grid-column: 2; }
.rp-agent:not(.rp-agent--working) .us-bullets, .rp-person .us-bullets {
  grid-column: 1 / -1; margin: 0; padding: 0 !important; list-style: none;
}
.rp-agent:not(.rp-agent--working) .us-bullets li, .rp-person .us-bullets li {
  position: relative; padding-left: calc(var(--space-8) + var(--space-3));
}
.rp-agent:not(.rp-agent--working) .us-bullets:not(.rp-chain) li::before,
.rp-person .us-bullets:not(.rp-chain) li::before { content: '•'; position: absolute; left: 0; }
.rp-agent--complete .us-bullets:not(.rp-chain) li::before { content: '✓' !important; }
.rp-person .rp-action, .rp-agent .rp-status { grid-column: 2; justify-self: start; }
.rp-person--complete, .rp-person .rp-link.is--done { background: var(--surface-secondary); color: var(--text-primary); }
.rp-person .rp-link.is--done { padding-block: var(--space-2); }
.rp-link.is--done .rp-link__note { color: var(--text-secondary); }
.rp-detail-heading { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-5); }
.rp-detail-heading .rp-title { margin:0; font-size:var(--text-base); font-weight:var(--font-semibold); }
.rp-detail-context { border:var(--tb-hair) solid var(--tb-ink); width:calc(100% - var(--tb-sheet-inset) * 2); margin:auto; }
.rp-detail-records { background:var(--surface-secondary); color:var(--text-primary); border-top:var(--tb-hair) dotted var(--tb-ink); }
.rp-detail-records > .rp-label { padding:var(--space-4); margin:0; }

/* Completed plan sections keep a direct route to their details. */
.rp-plan .rp-section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}
.rp-plan .rp-section-details{margin-left:auto;font-size:var(--text-xs);font-weight:var(--font-normal);color:inherit;white-space:nowrap}
/* Completion marks live on the continuous green person section. */
.rp-plan .rp-person--complete{background:var(--tb-go);color:var(--tb-ink)}
.rp-plan .rp-person .rp-link{background:transparent}

.tb-finish-footer__brand { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); border-radius: var(--radius-full); background: var(--color-white); color: var(--color-black); font-family: var(--font-heading); font-size: var(--text-sm); font-weight: var(--font-bold); }
.tb-finish-footer__brand iconify-icon { font-size: var(--size-5); }
.pcard--your-turn > .want-plan-costs,
.pcard--with-agent > .want-plan-costs,
.tb-plan-sheet > .want-plan-costs {
  margin: 0;
  border: 0;
  border-top: 1px solid var(--border-default);
  border-radius: 0;
  background: transparent;
}

/* ── WAITING ON A RESULT WEARS A COLOUR (Steven, 17 September) ──────────────
   WHAT FORCED IT: every other action card says its state with a colour -- the
   agent's working card is the purple-subtle highlight, the person's live card
   is brand green -- and a step waiting on a result was a plain white card with
   the words "Waiting on response" buried in the agent block. It now wears the
   light yellow of the waiting pill, and its state line carries the same
   pulsing dot the agent-working card already uses (the rp-working keyframes;
   no new keyframe, no new token). Reduced motion stops the dot, as it does
   everywhere else on this sheet. */
.rp-step[data-rp-state="waiting_outside"] > .rp-agent { background: var(--color-yellow-100); }
.rp-step[data-rp-state="waiting_outside"] .rp-status {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2);
    margin: var(--space-3) 0 0;
    padding: 2px var(--space-3);
    border-radius: var(--radius-full);
    background: var(--color-yellow-400);
    color: var(--color-black);
    font-family: var(--font-mono);
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    letter-spacing: .06em;
    text-transform: uppercase;
}
.rp-step[data-rp-state="waiting_outside"] .rp-status::before {
    content: '';
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    animation: rp-working 1.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .rp-step[data-rp-state="waiting_outside"] .rp-status::before { animation: none; }
}

/* The SAME RULE on the Plan tab (Steven's screenshot, 17 September). The turn
   block under a step's heading -- "Waiting on response · Waiting for the
   result of an approved action" and what to do about it -- is the same state
   in another place, so it wears the same light yellow and the same pulsing
   dot. `data-step-turn` is the turn's own party, so this can never disagree
   with the ball. */
body.toll-bench-brand .rp-facts[data-step-turn="agent"] { background: var(--tb-agent-highlight); }
.rp-facts[data-step-turn="outside"] { background: var(--color-yellow-100); }
.rp-facts[data-step-turn="outside"] p:first-child strong::before {
    content: '';
    display: inline-block;
    width: 6px;
    height: 6px;
    margin-right: var(--space-2);
    vertical-align: middle;
    border-radius: 50%;
    background: currentColor;
    animation: rp-working 1.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .rp-facts[data-step-turn="outside"] p:first-child strong::before { animation: none; }
}

/* Steven 2026-09-23: the action rows under a want card were too sharp. The row
   wears the same standard card radius as the want card above it; boxes and
   chips inside it take the smaller inner sizes. The black border stays. */
.frq-group .tb-feed-action__details,
.frq-group .tb-feed-action__compact { border-radius: var(--feed-card-radius); }
.frq-group .tb-feed-action__details[open] > .tb-feed-action__compact { border-radius: var(--feed-card-radius) var(--feed-card-radius) 0 0; }
.frq-group .tb-feed-action__tag { border-radius: var(--radius-sm); }
.frq-group .tb-feed-action :is(.tp-approve, .tp-finish, .tp-approve__kind, .tp-woy-attached__fulltext, .tp-msg, .tp-dcard__doc, .tp-har-doc-reader) { border-radius: var(--radius-lg); }
