/* ALFRED PARTS, brand pack v3.1 (IMPLEMENTATION.md step 2). The ten building blocks B1 to B10 and the parts of RULES sections 14 to 16, each defined ONCE.
   Screens never restyle a part: they call static/48_parts.js (alfParts) and put the result in a card or an open section.
   Only --v3-* names. No literal colour, face or shadow in this file (tests/test_parts_v31.py measures it). Demo and every state: /static/design/parts.html */

/* ── shared pieces ───────────────────────────────────────────────────────── */
.pt-label { font-size: var(--v3-fs-label); font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-text-2); line-height: 1.3; }
.pt-eyebrow { font-size: var(--v3-fs-label); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--v3-brass); }
.pt-meta { font-size: var(--v3-fs-meta); font-weight: 500; color: var(--v3-text-2); line-height: 1.45; }
.pt-block { display: flex; flex-direction: column; gap: var(--v3-s-3); min-width: 0; font-family: var(--v3-font); color: var(--v3-ink); }
.pt-block-hd { display: flex; justify-content: space-between; align-items: baseline; gap: var(--v3-s-4); }
.pt-block-title { font-size: var(--v3-fs-sub); font-weight: 700; color: var(--v3-navy); }
.pt-icon { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pt-legend { display: flex; flex-wrap: wrap; gap: var(--v3-s-2) var(--v3-s-4); font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.pt-legend b { color: var(--v3-ink); font-weight: 700; font-variant-numeric: tabular-nums; }
.pt-sw { width: 10px; height: 12px; border-radius: 2px; background: var(--v3-series-1); flex: none; }
.pt-sw.s1 { background: var(--v3-series-1); } .pt-sw.s2 { background: var(--v3-series-2); } .pt-sw.s3 { background: var(--v3-series-3); } .pt-sw.s4 { background: var(--v3-series-4); } .pt-sw.s5 { background: var(--v3-series-5); } .pt-sw.brass { background: var(--v3-brass); }
.pt-sw.soft { background: color-mix(in srgb, var(--v3-navy) 55%, transparent); }
.pt-sw.is-late { background: color-mix(in srgb, var(--v3-attention) 22%, var(--v3-attention-bg)); box-shadow: inset 0 0 0 1px var(--v3-attention); }
.pt-sw.dash { width: 14px; height: 0; border-top: 2px dashed var(--v3-series-3); background: none; border-radius: 0; }
.pt-card { background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); box-shadow: var(--v3-shadow-card); padding: var(--v3-pad-card); }
.pt-note { font-size: var(--v3-fs-meta); color: var(--v3-text-2); }
.pt-link { display: inline-flex; align-items: center; gap: 2px; color: var(--v3-navy); font-size: var(--v3-fs-body); font-weight: 600; text-decoration: none; cursor: pointer; background: none; border: 0; padding: 0; font-family: inherit; }
.pt-link:hover { text-decoration: underline; }
.pt-link:focus-visible { outline: none; box-shadow: var(--v3-focus); border-radius: var(--v3-radius-step); }

/* loading: shimmer in the shape of the content, moving left to right every 1.4s; it is removed with the state, never left behind */
@keyframes ptShimmer { from { background-position: 0 0; } to { background-position: 600px 0; } }
.pt-skel { display: block; height: 12px; border-radius: var(--v3-radius-step); background: linear-gradient(90deg, var(--v3-chip) 0, var(--v3-grid) 120px, var(--v3-chip) 240px); background-size: 600px 100%; animation: ptShimmer var(--v3-t-shimmer) linear infinite; }
.pt-skel.mt6 { margin-top: 6px; } .pt-skel.mt8 { margin-top: 8px; }
.pt-skel.w40 { width: 40%; } .pt-skel.w60 { width: 60%; } .pt-skel.w80 { width: 80%; } .pt-skel.h28 { height: 28px; } .pt-skel.h22 { height: 22px; }

/* ── B1 headline figure ──────────────────────────────────────────────────── */
.pt-b1-row { display: grid; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: var(--v3-s-4); }
.pt-b1 { display: flex; flex-direction: column; min-width: 0; padding: 14px var(--v3-s-4); background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); font-family: var(--v3-font); }
.pt-b1-value { margin-top: 6px; font-size: var(--v3-fs-title); font-weight: 700; letter-spacing: -.02em; color: var(--v3-navy); white-space: nowrap; font-variant-numeric: proportional-nums; }
.pt-b1.is-lead .pt-b1-value { font-size: var(--v3-fs-lead); font-weight: 800; line-height: 1.1; }
.pt-b1.is-hero .pt-b1-value { font-size: var(--v3-fs-hero); font-weight: 800; line-height: 1.05; }
.pt-b1.is-zero { flex-direction: row; align-items: baseline; gap: 6px; padding: 0; border: 0; background: none; }
.pt-b1.is-zero .pt-label { text-transform: none; letter-spacing: normal; font-size: var(--v3-fs-meta); font-weight: 500; color: var(--v3-text-2); }
.pt-b1.is-zero .pt-b1-value { margin: 0; font-size: var(--v3-fs-meta); font-weight: 500; letter-spacing: normal; color: var(--v3-text-2); }
.pt-b1.is-secondary .pt-b1-value { font-size: var(--v3-fs-section); font-weight: 700; line-height: 1.2; }
.pt-b1-meaning { margin-top: 4px; font-size: var(--v3-fs-meta); font-weight: 500; line-height: 1.45; color: var(--v3-text-2); }
.pt-zero-line { margin: var(--v3-s-2) 0 0; font-size: var(--v3-fs-meta); line-height: 1.45; color: var(--v3-text-2); }
/* a zero tile of a desk's figure strip is a quiet line at the end of the strip; the screens' own #view rules set the tile's size, so these state theirs with !important */
.iv-stats .iv-stat.is-zero { order: 9; display: inline-flex; flex-direction: row; align-items: baseline; gap: 6px; }
.iv-stats .iv-stat.is-zero .iv-stat-v { font-size: var(--v3-fs-meta) !important; font-weight: 500 !important; color: var(--v3-text-2) !important; order: 2; }
.iv-stats .iv-stat.is-zero .iv-stat-l { font-size: var(--v3-fs-meta) !important; color: var(--v3-text-2) !important; margin: 0 !important; }
.pt-b1-visual { margin-top: var(--v3-s-2); }
.pt-spark { display: flex; align-items: flex-end; gap: 3px; height: 22px; }
.pt-spark i { flex: 1; background: var(--v3-series-2); border-radius: 2px; }
.pt-spark i.is-now { background: var(--v3-navy); }
.pt-spark-axis { display: flex; justify-content: space-between; margin-top: 4px; font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-segs { display: flex; gap: 3px; margin-top: var(--v3-s-3); }
.pt-segs i { flex: 1; height: 6px; border-radius: 2px; background: var(--v3-line); }
.pt-segs i.is-on { background: var(--v3-navy); }
.pt-segs i.is-key { background: var(--v3-brass); }
.pt-b1-change { margin-top: 6px; font-size: var(--v3-fs-label); font-weight: 700; color: var(--v3-text-2); }
.pt-b1-change.is-good { color: var(--v3-positive); } .pt-b1-change.is-bad { color: var(--v3-attention); } .pt-b1-change.is-key { color: var(--v3-brass); }
.pt-b1-empty { margin-top: 6px; font-size: var(--v3-fs-body); color: var(--v3-text-2); }

/* the change chip (section 12) */
.pt-chg { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: var(--v3-radius-chip); background: var(--v3-chip); color: var(--v3-text-2); font-size: var(--v3-fs-label); font-weight: 700; white-space: nowrap; }
.pt-chg.is-good { background: var(--v3-positive-bg); color: var(--v3-positive); }
.pt-chg.is-bad { background: var(--v3-attention-bg); color: var(--v3-attention); }

/* ── B2 milestone track ──────────────────────────────────────────────────── */
.pt-b2 { padding: 18px 20px; background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); }
.pt-track { position: relative; margin-top: var(--v3-s-4); }
.pt-track-line, .pt-track-fill { position: absolute; top: 15px; height: 4px; border-radius: 2px; }
.pt-track-line { left: calc(50% / var(--n)); right: calc(50% / var(--n)); background: var(--v3-line); }
.pt-track-fill { left: calc(50% / var(--n)); width: calc(100% * var(--at) / var(--n)); background: var(--v3-navy); transition: width var(--v3-t-panel) var(--v3-ease); }
.pt-steps { position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
.pt-step { display: flex; flex-direction: column; align-items: center; gap: var(--v3-s-2); text-align: center; min-width: 0; }
.pt-step-mark { width: 24px; height: 24px; margin: 5px 0; border-radius: var(--v3-radius-step); background: var(--v3-card); box-shadow: inset 0 0 0 2px var(--v3-line); display: flex; align-items: center; justify-content: center; color: var(--v3-page); }
.pt-step-mark .pt-icon { width: 14px; height: 14px; }
.pt-step.is-done .pt-step-mark { background: var(--v3-navy); box-shadow: none; }
.pt-step.is-current .pt-step-mark { width: 34px; height: 34px; margin: 0; border-radius: 4px; box-shadow: 0 0 0 3px var(--v3-brass), 0 0 0 9px var(--v3-halo); }
.pt-step.is-key .pt-step-mark { box-shadow: inset 0 0 0 2px var(--v3-brass); border-radius: 2px; }
.pt-step-label { max-width: 100%; font-size: var(--v3-fs-label); font-weight: 600; color: var(--v3-text-2); overflow-wrap: anywhere; line-height: 1.3; }
.pt-step.is-done .pt-step-label, .pt-step.is-key .pt-step-label { color: var(--v3-navy); }
.pt-step.is-current .pt-step-label { color: var(--v3-navy); font-weight: 800; }
.pt-step-date { font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-step-more { position: relative; margin-top: 8px; padding: 0 var(--v3-s-2); background: var(--v3-card); font-size: var(--v3-fs-body); font-weight: 700; color: var(--v3-text-2); }

/* ── B3 proportion bar ───────────────────────────────────────────────────── */
.pt-b3 { display: flex; flex-direction: column; gap: 10px; padding: var(--v3-s-4); background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); }
.pt-prop { display: flex; height: 14px; border-radius: var(--v3-radius-step); overflow: hidden; gap: 3px; }
.pt-prop i { background: var(--v3-series-1); min-width: 14px; }
.pt-prop i.s1 { background: var(--v3-series-1); } .pt-prop i.s4 { background: var(--v3-series-4); } .pt-prop i.s5 { background: var(--v3-series-5); }
.pt-prop i.s2 { background: var(--v3-series-2); box-shadow: inset 0 0 0 1px var(--v3-text-3); } .pt-prop i.s3 { background: var(--v3-series-3); }

/* ── B4 bar and line ─────────────────────────────────────────────────────── */
.pt-b4 { padding: var(--v3-s-4); background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); display: flex; flex-direction: column; gap: var(--v3-s-2); }
.pt-chart { position: relative; height: 130px; display: flex; align-items: flex-end; gap: 10px; border-bottom: 1px solid var(--v3-line); background-image: linear-gradient(var(--v3-grid) 1px, transparent 1px); background-size: 100% 25%; }
.pt-chart > i { flex: 1; background: color-mix(in srgb, var(--v3-navy) 55%, transparent); border-radius: 2px 2px 0 0; min-height: 2px; }
.pt-chart > i.is-now { background: var(--v3-navy); }
.pt-chart > svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.pt-chart polyline { fill: none; stroke: var(--v3-series-3); stroke-width: 2; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; }
.pt-axis { display: flex; justify-content: space-around; font-size: var(--v3-fs-label); color: var(--v3-text-2); }

/* ── B5 ring ─────────────────────────────────────────────────────────────── */
.pt-b5 { display: flex; gap: 20px; align-items: center; padding: var(--v3-s-4); background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); }
.pt-ring { width: 130px; height: 130px; flex: none; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.pt-ring-hole { width: 92px; height: 92px; border-radius: 50%; background: var(--v3-card); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pt-ring-total { font-size: 22px; font-weight: 700; color: var(--v3-navy); font-variant-numeric: tabular-nums; }
.pt-ring-label { font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-ring-legend { display: flex; flex-direction: column; gap: var(--v3-s-2); font-size: var(--v3-fs-meta); flex: 1; min-width: 0; }
.pt-ring-legend > div { display: flex; justify-content: space-between; gap: var(--v3-s-3); }
.pt-ring-legend span { display: inline-flex; align-items: center; gap: 7px; min-width: 0; }
.pt-ring-legend b { font-variant-numeric: tabular-nums; }

/* ── B6 ranked bars ──────────────────────────────────────────────────────── */
.pt-b6 { padding: var(--v3-s-4); background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); display: flex; flex-direction: column; gap: 11px; font-size: var(--v3-fs-meta); }
/* BD-19/20/21 (CD audit, 17 Oct): the label column is 240 and wraps to two lines (the full name on hover, never an ellipsis), the value column is a fixed 88 and never wraps */
.pt-rank { display: grid; grid-template-columns: minmax(0, 240px) minmax(0, 480px) 88px; justify-content: start; gap: 12px; align-items: center; }   /* BD3-03: the track stops at 480, the value follows it */
.pt-rank > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.3; overflow-wrap: anywhere; }
.pt-rank > i { display: block; height: 12px; border-radius: 2px; background: var(--v3-series-1); }
.pt-rank > i.s2 { background: var(--v3-series-2); } .pt-rank > i.s3 { background: var(--v3-series-3); } .pt-rank > i.s4 { background: var(--v3-series-4); } .pt-rank > i.s5 { background: var(--v3-series-5); }
.pt-rank > i.is-zero { background: none; }
.pt-rank > i.is-attention { background: var(--v3-attention); }
.pt-rank > b { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ── B7 timeline lanes ───────────────────────────────────────────────────── */
.pt-b7 { position: relative; padding: var(--v3-s-4); background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); display: flex; flex-direction: column; gap: 10px; }
.pt-lane-head, .pt-lane { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: center; }
.pt-lane-weeks { display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-lane > span { font-size: var(--v3-fs-meta); font-weight: 600; }
.pt-lane-track { position: relative; height: 26px; border-top: 1px solid var(--v3-grid); }
.pt-bar { position: absolute; top: 4px; height: 18px; border-radius: var(--v3-radius-step); background: var(--v3-navy); }
.pt-bar.is-slate { background: var(--v3-series-3); }
.pt-bar.is-late { background: var(--v3-attention-bg); box-shadow: inset 0 0 0 1.5px var(--v3-attention); }
.pt-bar.is-key { top: 3px; height: 20px; background: var(--v3-brass); }
.pt-b7 .pt-legend { margin-top: var(--v3-s-2); }
.pt-today { position: absolute; top: 36px; bottom: 12px; border-left: 1.5px solid var(--v3-navy); left: calc(var(--v3-s-4) + 120px + (100% - 120px - 2 * var(--v3-s-4)) * var(--at)); }
.pt-today::after { content: attr(data-label); position: absolute; top: -2px; left: 4px; font-size: var(--v3-fs-label); font-weight: 700; color: var(--v3-navy); }

/* ── B8 list with reading pane ───────────────────────────────────────────── */
.pt-b8 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); min-height: 200px; background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); overflow: hidden; }
.pt-b8-list { border-right: 1px solid var(--v3-line); display: flex; flex-direction: column; min-width: 0; }
.pt-b8-row { display: flex; flex-direction: column; gap: 3px; padding: var(--v3-s-3) var(--v3-s-4); border: 0; border-bottom: 1px solid var(--v3-line); background: none; text-align: left; font-family: inherit; color: var(--v3-ink); cursor: pointer; transition: background-color var(--v3-t-hover) var(--v3-ease); min-height: var(--v3-row-2line); box-sizing: border-box; }
.pt-b8-row:hover { background: var(--v3-grid); }
.pt-b8-row[aria-selected="true"] { background: var(--v3-chip); box-shadow: inset 3px 0 0 var(--v3-navy); }
.pt-b8-row:focus-visible { outline: none; box-shadow: var(--v3-focus); position: relative; }
.pt-b8-top { display: flex; justify-content: space-between; gap: var(--v3-s-3); font-size: var(--v3-fs-body); }
.pt-b8-top b { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-b8-row[aria-selected="true"] .pt-b8-top b { color: var(--v3-navy); }
.pt-b8-top time { font-size: var(--v3-fs-label); color: var(--v3-text-2); flex: none; }
.pt-b8-sub { font-size: var(--v3-fs-meta); color: var(--v3-text-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-b8-pane { padding: var(--v3-s-4) 20px; display: flex; flex-direction: column; gap: var(--v3-s-2); min-width: 0; }
.pt-b8-pane h3 { margin: 0; font-size: var(--v3-fs-sub); font-weight: 700; color: var(--v3-navy); }
.pt-b8-state { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--v3-s-3); padding: var(--v3-s-6); text-align: center; }

/* ── B9 lead story band ──────────────────────────────────────────────────── */
.pt-b9 { display: flex; align-items: center; gap: var(--v3-s-5); padding: 18px 22px; background: var(--v3-card); border-radius: var(--v3-radius-card); box-shadow: var(--v3-shadow-raised), inset 3px 0 0 var(--v3-brass); font-family: var(--v3-font); }
.pt-b9-text { display: flex; flex-direction: column; gap: 4px; flex: 1; min-width: 0; }
.pt-b9-head { font-size: 17px; font-weight: 700; color: var(--v3-navy); line-height: 1.35; }
.pt-b9-why { font-size: var(--v3-fs-meta); color: var(--v3-text-2); }
.pt-b9-acts { display: flex; align-items: center; gap: var(--v3-s-2); flex: none; }

/* ── B10 date block ──────────────────────────────────────────────────────── */
.pt-b10 { display: flex; flex-direction: column; padding: 14px var(--v3-s-4); background: var(--v3-card); border: 1px solid var(--v3-line); border-radius: var(--v3-radius-card); }
.pt-date { display: flex; gap: var(--v3-s-3); align-items: center; padding: 6px 0; }
.pt-date + .pt-date { border-top: 1px solid var(--v3-line); }
.pt-date-box { width: 46px; height: 48px; flex: none; border-radius: 5px; box-shadow: inset 0 0 0 1px var(--v3-line); display: flex; flex-direction: column; align-items: center; justify-content: center; }
.pt-date-mon { font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--v3-text-2); }
.pt-date-day { font-size: 18px; font-weight: 700; color: var(--v3-navy); line-height: 1.1; font-variant-numeric: tabular-nums; }
.pt-date.is-overdue .pt-date-mon, .pt-date.is-overdue .pt-date-day { color: var(--v3-attention); }
.pt-date.is-overdue .pt-date-box { box-shadow: inset 0 0 0 1px var(--v3-attention); background: var(--v3-attention-bg); }
.pt-date.is-key .pt-date-box { background: var(--v3-navy); box-shadow: none; }
.pt-date.is-key .pt-date-mon { color: var(--v3-brass); } .pt-date.is-key .pt-date-day { color: var(--v3-page); }
.pt-date-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pt-date-text b { font-size: var(--v3-fs-body); font-weight: 700; }
.pt-date-text span { font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-date.is-overdue .pt-date-text span { color: var(--v3-attention); font-weight: 600; }

/* ── section 14: tables ──────────────────────────────────────────────────── */
.pt-table-wrap { display: flex; flex-direction: column; gap: var(--v3-s-3); }
.pt-table { width: 100%; border-collapse: collapse; font-family: var(--v3-font); font-size: var(--v3-fs-body); }
.pt-table th { text-transform: none; letter-spacing: 0; position: sticky; top: 0; z-index: var(--v3-z-sticky); height: var(--v3-row-compact); padding: 0 var(--v3-s-2); background: var(--v3-card); text-align: left; font-size: var(--v3-fs-label); font-weight: 700; color: var(--v3-text-2); border-bottom: 1px solid var(--v3-line); white-space: nowrap; }
.pt-table th.is-num, .pt-table td.is-num { text-align: right; font-variant-numeric: tabular-nums; }
.pt-table td.is-clip { max-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-table th[aria-sort] { cursor: pointer; }
.pt-table th[aria-sort] button { all: unset; cursor: pointer; display: inline-flex; align-items: center; gap: 4px; min-height: var(--v3-control-h); }
.pt-table th[aria-sort] button:focus-visible { box-shadow: var(--v3-focus); border-radius: var(--v3-radius-step); }
.pt-table th[aria-sort]:hover, .pt-table th[aria-sort="ascending"], .pt-table th[aria-sort="descending"] { color: var(--v3-navy); }
.pt-table th[aria-sort] .pt-icon { opacity: 0; width: 12px; height: 12px; transition: opacity var(--v3-t-hover) var(--v3-ease), transform var(--v3-t-hover) var(--v3-ease); }
.pt-table th[aria-sort="ascending"] .pt-icon, .pt-table th[aria-sort="descending"] .pt-icon { opacity: 1; }
.pt-table th[aria-sort="descending"] .pt-icon { transform: rotate(180deg); }
.pt-table td { height: var(--v3-row); padding: 0 var(--v3-s-2); border-bottom: 1px solid var(--v3-line); vertical-align: middle; font-weight: 500; }
.pt-table.is-dense td { height: var(--v3-row-compact); }
.pt-table.is-two td { height: var(--v3-row-2line); }
.pt-table tbody tr { transition: background-color var(--v3-t-hover) var(--v3-ease); }
.pt-table tbody tr[data-open]:hover { background: var(--v3-grid); cursor: pointer; }
.pt-table tbody tr[aria-selected="true"] { background: var(--v3-chip); box-shadow: inset 3px 0 0 var(--v3-navy); }
.pt-table .is-sel { width: var(--v3-row-compact); padding-left: var(--v3-s-3); }
.pt-table .is-act { width: var(--v3-row-compact); text-align: center; color: var(--v3-text-2); }
.pt-table .pt-two { display: flex; flex-direction: column; gap: 2px; }
.pt-table .pt-two small { font-size: var(--v3-fs-meta); color: var(--v3-text-2); font-weight: 500; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow-wrap: anywhere; }
.pt-table .pt-two { min-width: 0; }
.pt-table td:has(> .pt-two) { width: 100%; max-width: 0; }
.pt-ref, .pt-table .pt-ref { font-family: var(--al-font-id); font-size: var(--v3-fs-ref); color: var(--v3-text-2); white-space: nowrap; }
.pt-table td.is-date { white-space: nowrap; }
.pt-table td.is-person { display: table-cell; }
.pt-person { display: inline-flex; align-items: center; gap: var(--v3-s-2); }
.pt-tick { color: var(--v3-ink); appearance: none; -webkit-appearance: none; width: 16px; height: 16px; margin: 0; border-radius: 4px; box-shadow: inset 0 0 0 1.5px var(--v3-control-edge); background: var(--v3-card); cursor: pointer; display: inline-grid; place-items: center; transition: background-color var(--v3-t-hover) var(--v3-ease); }
.pt-tick:hover { box-shadow: inset 0 0 0 1.5px var(--v3-navy); }
.pt-tick:checked, .pt-tick:indeterminate, .pt-tick[data-pt-partial] { background: var(--v3-navy); box-shadow: none; }
.pt-tick:checked::after { content: ""; width: 8px; height: 4px; border-left: 2px solid var(--v3-page); border-bottom: 2px solid var(--v3-page); transform: translateY(-1px) rotate(-45deg); }
.pt-tick:indeterminate::after, .pt-tick[data-pt-partial]::after { content: ""; width: 8px; height: 2px; background: var(--v3-page); }
.pt-tick:focus-visible { outline: none; box-shadow: var(--v3-focus); }
.pt-bulkbar { display: flex; align-items: center; gap: var(--v3-s-4); height: var(--v3-row-compact); padding: 0 var(--v3-s-3); background: var(--v3-chip); border-radius: var(--v3-radius-button); font-size: var(--v3-fs-label); font-weight: 700; color: var(--v3-text-2); }
.pt-bulkbar .pt-link { font-size: var(--v3-fs-body); }
.pt-pager { display: flex; justify-content: space-between; align-items: center; font-size: var(--v3-fs-meta); color: var(--v3-text-2); }
.pt-pager-btns { display: flex; gap: var(--v3-s-2); }
.pt-pgbtn { width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: var(--v3-radius-button); background: var(--v3-card); box-shadow: inset 0 0 0 1px var(--v3-control-edge); color: var(--v3-navy); cursor: pointer; }
.pt-pgbtn:hover { box-shadow: inset 0 0 0 1px var(--v3-navy); }
.pt-pgbtn:disabled { box-shadow: inset 0 0 0 1px var(--v3-line); color: var(--v3-text-3); cursor: not-allowed; }
.pt-pgbtn:focus-visible { outline: none; box-shadow: var(--v3-focus); }
.pt-chip-state { display: inline-flex; padding: 3px 9px; border-radius: var(--v3-radius-chip); background: var(--v3-chip); color: var(--v3-ink); font-size: var(--v3-fs-label); font-weight: 600; white-space: nowrap; }
.pt-chip-state.is-attention { background: var(--v3-attention-bg); color: var(--v3-attention); }
.pt-chip-state.is-positive { background: var(--v3-positive-bg); color: var(--v3-positive); }
.pt-chip-state.is-critical { background: var(--v3-critical-bg); color: var(--v3-critical); }

/* ── section 14: help and error text under a field (the field itself is the kit's .alf-field), search ───────────────────────────────────────── */
.pt-help { font-size: var(--v3-fs-meta); color: var(--v3-text-2); }
.pt-error { font-size: var(--v3-fs-meta); color: var(--v3-critical); }
.pt-form-grid { display: grid; grid-template-columns: repeat(var(--cols, 1), minmax(0, 1fr)); gap: var(--v3-s-4) var(--v3-s-5); }
.pt-form-grid .is-wide { grid-column: 1 / -1; }
.pt-form-grid .alf-field textarea { min-height: 96px; resize: none; }
.pt-form-title { margin: 0 0 var(--v3-s-3); font-size: var(--v3-fs-sub); font-weight: 700; color: var(--v3-ink); }
.pt-search { position: relative; display: block; }
.pt-search .pt-icon { position: absolute; left: var(--v3-s-3); top: 12px; color: var(--v3-text-2); pointer-events: none; }
.pt-search input { padding-left: 36px; }
/* ── section 15: people ──────────────────────────────────────────────────── */
.pt-av { --sz: var(--v3-avatar-m); width: var(--sz); height: var(--sz); flex: none; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font: 700 12px var(--v3-font); background: var(--v3-series-1); color: var(--v3-page); overflow: hidden; box-sizing: border-box; }
.pt-av.sz-s { --sz: var(--v3-avatar-s); font-size: 10px; } .pt-av.sz-l { --sz: var(--v3-avatar-l); font-size: var(--v3-fs-body); }
.pt-av.s1 { background: var(--v3-series-1); } .pt-av.s2 { background: var(--v3-series-2); color: var(--v3-navy); } .pt-av.s3 { background: var(--v3-series-3); } .pt-av.s4 { background: var(--v3-series-4); } .pt-av.s5 { background: var(--v3-series-5); }
.pt-av.is-client { background: var(--v3-chip); color: var(--v3-navy); }
.pt-av.is-you { box-shadow: var(--v3-you-ring); }
.pt-av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pt-stack { display: inline-flex; align-items: center; }
.pt-stack .pt-av { box-shadow: 0 0 0 2px var(--v3-card); }
.pt-stack .pt-av + .pt-av, .pt-stack .pt-av + .pt-more { margin-left: -8px; }
.pt-stack > .pt-av:not(:last-child) { padding-right: 10px; }
.pt-stack .pt-av.is-you { box-shadow: 0 0 0 2px var(--v3-card), 0 0 0 4px var(--v3-brass); }
.pt-more { height: var(--v3-avatar-m); padding: 0 10px; border-radius: calc(var(--v3-avatar-m) / 2); background: var(--v3-chip); color: var(--v3-text-2); font: 700 12px var(--v3-font); display: inline-flex; align-items: center; box-shadow: 0 0 0 2px var(--v3-card); box-sizing: border-box; }
.pt-pcard { position: fixed; z-index: var(--v3-z-attached); width: 280px; box-sizing: border-box; padding: var(--v3-s-4); display: flex; gap: var(--v3-s-3); background: var(--v3-card); border-radius: var(--v3-radius-layer); box-shadow: var(--v3-shadow-menu); font-family: var(--v3-font); animation: ptArrive var(--v3-t-menu) var(--v3-ease); }
.pt-pcard.is-static { position: static; }
.pt-pcard-body { display: flex; flex-direction: column; gap: 2px; font-size: var(--v3-fs-meta); min-width: 0; }
.pt-pcard-body b { font-size: var(--v3-fs-read); font-weight: 700; }
.pt-pcard-body .pt-meta { color: var(--v3-text-2); }
.pt-pcard-acts { margin-top: var(--v3-s-1); display: flex; gap: var(--v3-s-3); }
@keyframes ptArrive { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

/* ── section 16: bell, toasts, uploads ───────────────────────────────────── */
.pt-bellwrap { position: relative; display: inline-block; }
.pt-bell { position: relative; width: var(--v3-control-h); height: var(--v3-control-h); display: grid; place-items: center; border: 0; border-radius: 50%; background: none; color: var(--v3-text-2); cursor: pointer; }
.pt-bell:hover { background: var(--v3-chip); color: var(--v3-navy); }
.pt-bell:focus-visible { outline: none; box-shadow: var(--v3-focus); }
.pt-bell .pt-icon { width: 20px; height: 20px; }
.pt-bell-count { position: absolute; top: 3px; right: 1px; min-width: 18px; height: 18px; padding: 0 5px; box-sizing: border-box; border-radius: 9px; background: var(--v3-navy); color: var(--v3-page); font: 700 11px/18px var(--v3-font); text-align: center; font-variant-numeric: tabular-nums; }
.pt-bellmenu { position: absolute; right: 0; top: calc(100% + var(--v3-s-2)); z-index: var(--v3-z-attached); width: 380px; max-width: calc(100vw - 32px); padding: var(--v3-s-2) 0; background: var(--v3-card); border-radius: var(--v3-radius-menu); box-shadow: var(--v3-shadow-menu); display: flex; flex-direction: column; font-family: var(--v3-font); animation: ptArrive var(--v3-t-menu) var(--v3-ease); }
.pt-bellmenu[hidden] { display: none; }
.pt-bellmenu .pt-label { padding: 10px var(--v3-s-4); }
.pt-bell-item { display: flex; flex-direction: column; gap: 2px; padding: 10px var(--v3-s-4); border: 0; background: none; text-align: left; font-family: inherit; color: var(--v3-ink); cursor: pointer; text-decoration: none; }
.pt-bell-item:hover, .pt-bell-item:focus-visible { background: var(--v3-menu-selected); outline: none; }
.pt-bell-item.is-new { background: var(--v3-menu-selected); box-shadow: inset 2px 0 0 var(--v3-brass); }
.pt-bell-item b { font-size: var(--v3-fs-body); font-weight: 600; }
.pt-bell-item span { font-size: var(--v3-fs-meta); color: var(--v3-text-2); }
.pt-bell-empty { padding: var(--v3-s-4); font-size: var(--v3-fs-body); color: var(--v3-text-2); }

.pt-drop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 120px; padding: var(--v3-s-4); box-sizing: border-box; border: 1.5px dashed var(--v3-control-edge); border-radius: var(--v3-radius-layer); font-family: var(--v3-font); transition: background-color var(--v3-t-hover) var(--v3-ease), border-color var(--v3-t-hover) var(--v3-ease); }
.pt-drop-main { font-size: var(--v3-fs-read); font-weight: 600; color: var(--v3-navy); }
.pt-drop-main button { all: unset; cursor: pointer; text-decoration: underline; }
.pt-drop-main button:focus-visible { box-shadow: var(--v3-focus); border-radius: var(--v3-radius-step); }
.pt-drop.is-over { background: var(--v3-chip); border-color: var(--v3-navy); }
.pt-drop.is-disabled { opacity: .45; }
.pt-files { display: flex; flex-direction: column; }
.pt-file { display: flex; align-items: center; gap: var(--v3-s-3); padding: var(--v3-s-3) 0; border-bottom: 1px solid var(--v3-line); }
.pt-ftype { width: 32px; height: 38px; flex: none; box-sizing: border-box; border-radius: 4px; box-shadow: inset 0 0 0 1px var(--v3-series-2); font-size: 9.5px; font-weight: 800; color: var(--v3-text-2); display: flex; align-items: flex-end; justify-content: center; padding-bottom: 5px; }
.pt-file-body { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pt-file-name { font-size: var(--v3-fs-body); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-prog { height: 3px; border-radius: 2px; background: var(--v3-chip); margin-top: 4px; }
.pt-prog > i { display: block; height: 3px; border-radius: 2px; background: var(--v3-navy); width: var(--pct, 0%); transition: width var(--v3-t-local) var(--v3-ease); }
.pt-file.is-refused .pt-ftype { box-shadow: inset 0 0 0 1px var(--v3-critical); color: var(--v3-critical); }
.pt-file.is-refused .pt-meta { color: var(--v3-critical); }
.pt-file-pct { font-size: var(--v3-fs-meta); color: var(--v3-text-2); font-variant-numeric: tabular-nums; }

/* ── section 15: the twelve empty-state marks, and the empty card ────────── */
.pt-mark { flex: none; fill: none; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pt-mark path { stroke: var(--v3-series-3); }
.pt-mark path.is-brass { stroke: var(--v3-brass); }
.pt-empty { display: flex; flex-direction: column; align-items: center; gap: var(--v3-s-3); padding: var(--v3-s-6); text-align: center; font-family: var(--v3-font); }
.pt-empty-title { font-size: var(--v3-fs-sub); font-weight: 700; color: var(--v3-navy); }
.pt-empty-text { font-size: var(--v3-fs-body); color: var(--v3-text-2); max-width: 46ch; }
.pt-empty .alf-button { margin-top: var(--v3-s-1); }

/* ── the states every screen draws (section 6): attention line, not recorded, error, refused ── */
/* RULES section 6: the attention line is one amber line with a 16px mark and no fill (BD-29, wide audit K4) */
.pt-attention { display: flex; align-items: center; gap: var(--v3-s-2); padding: 0; background: none; color: var(--v3-attention); font-size: var(--v3-fs-body); font-weight: 600; line-height: 1.4; }
.pt-attention > svg { width: 16px; height: 16px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.pt-notrec { color: var(--v3-text-2); font-size: var(--v3-fs-body); }
.pt-state-box { display: flex; flex-direction: column; gap: var(--v3-s-2); padding: var(--v3-s-4); border-radius: var(--v3-radius-button); font-size: var(--v3-fs-body); }
.pt-state-box.is-error { background: var(--v3-critical-bg); color: var(--v3-critical); }
.pt-state-box.is-refused { background: var(--v3-chip); color: var(--v3-ink); }

@media (prefers-reduced-motion: reduce) { .pt-skel { animation: none; } .pt-pcard, .pt-bellmenu { animation: none; } }

.pt-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pt-actbtn { width: 32px; height: 32px; display: inline-grid; place-items: center; border: 0; border-radius: var(--v3-radius-button); background: none; color: var(--v3-text-2); cursor: pointer; }
.pt-actbtn:hover { background: var(--v3-chip); color: var(--v3-navy); }
.pt-actbtn:focus-visible { outline: none; box-shadow: var(--v3-focus); }
.pt-filterbar { display: flex; align-items: flex-start; gap: var(--v3-s-3); }
.pt-filterbar .alf-filters { flex: 1; min-width: 0; }
.pt-filterbar .pt-link { flex: none; white-space: nowrap; height: var(--v3-chip-h); }
.alf-filter em { font-style: normal; font-weight: 500; color: var(--v3-text-2); font-variant-numeric: tabular-nums; }
.pt-icon.pt-dots { stroke-width: 3; }

/* ── step 4 (Matter): the parts the file screens are built from ─────────────────────────────────────────────────────────── */
.pt-b1.is-bare { padding: 0; border: 0; background: none; }
.pt-step.is-skipped .pt-step-mark { background: var(--v3-card); box-shadow: none; border: 2px dashed var(--v3-control-edge); box-sizing: border-box; }
.pt-step.is-skipped .pt-step-label, .pt-step.is-skipped .pt-step-date { color: var(--v3-text-2); font-weight: 500; }
.pt-b2-foot { display: flex; flex-wrap: wrap; align-items: flex-start; gap: var(--v3-s-3) var(--v3-s-6); margin-top: var(--v3-s-4); padding-top: var(--v3-s-3); border-top: 1px solid var(--v3-line); }
.pt-b2 .pt-block-hd .pt-meta { display: inline-flex; align-items: baseline; gap: var(--v3-s-3); }
.pt-b10-hd { margin-bottom: var(--v3-s-2); }
.pt-card-ft, .pt-b10 > .pt-card-ft { margin-top: var(--v3-s-3); padding-top: var(--v3-s-3); border-top: 1px solid var(--v3-line); display: flex; flex-wrap: wrap; gap: var(--v3-s-2) var(--v3-s-4); align-items: center; }
.pt-sec { padding: var(--v3-s-4) 18px; display: flex; flex-direction: column; gap: var(--v3-s-2); min-width: 0; box-shadow: none; }
.pt-card-hd { display: flex; justify-content: space-between; align-items: baseline; gap: var(--v3-s-3); }
.pt-card-title { margin: 0; font-size: var(--v3-fs-section); font-weight: 800; line-height: 1.25; color: var(--v3-navy); letter-spacing: 0; }
.pt-card-body { display: flex; flex-direction: column; gap: var(--v3-s-3); min-width: 0; }
.pt-srows { display: flex; flex-direction: column; }
.pt-srow { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px 0; border-top: 1px solid var(--v3-line); min-height: var(--v3-row-compact); box-sizing: border-box; }
.pt-srow-name { font-size: var(--v3-fs-meta); font-weight: 700; color: var(--v3-ink); }
.pt-srow-text { font-size: var(--v3-fs-meta); color: var(--v3-text-2); }
.pt-feed { display: flex; flex-direction: column; }
.pt-feed-row { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--v3-s-3); align-items: center; min-height: var(--v3-control-h); padding: 4px 0; width: 100%; border: 0; border-top: 1px solid var(--v3-line); background: none; text-align: left; font: 500 var(--v3-fs-body) var(--v3-font); color: var(--v3-ink); cursor: pointer; }
.pt-feed-row:first-child { border-top: 0; }
.pt-feed-row time { font-size: var(--v3-fs-meta); color: var(--v3-text-2); font-variant-numeric: tabular-nums; }
.pt-feed-row:hover span { text-decoration: underline; }
.pt-feed-row:focus-visible { outline: none; box-shadow: var(--v3-focus); border-radius: var(--v3-radius-step); }
.pt-move-title { font-weight: 700; display: inline-flex; align-items: center; gap: var(--v3-s-2); flex-wrap: wrap; }
.pt-money { font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.pt-money.is-in { color: var(--v3-positive); }
.pt-money.is-attention { color: var(--v3-attention); }
.pt-dash { color: var(--v3-text-2); }
/* a bar part inside a card sits on the card; it never draws a second box (BD-09) */
.pt-card .pt-b6, .pt-card .pt-b3 { padding: 0; background: none; border: 0; box-shadow: none; border-radius: 0; }
.pt-table td.is-money, .pt-table th.is-money { text-align: right; }
.pt-still { display: flex; flex-direction: column; gap: var(--v3-s-2); padding: var(--v3-s-3) 14px; border-radius: var(--v3-radius-button); background: var(--v3-chip); }
.pt-still-row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--v3-s-4); }
.pt-still-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pt-still-text b { font-size: var(--v3-fs-body); color: var(--v3-navy); }
.pt-still-text small { font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-still-note { font-size: var(--v3-fs-meta); color: var(--v3-attention); font-weight: 600; }

.pt-b10.is-bare { padding: 0; border: 0; background: none; }
.mx-acct-head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--v3-s-4); }
.pt-step.is-flagged .pt-step-mark { background: var(--v3-attention-bg); box-shadow: inset 0 0 0 2px var(--v3-attention); }
.pt-step.is-flagged .pt-step-label { color: var(--v3-attention); font-weight: 700; }
.pt-wrows { display: flex; flex-direction: column; }
.pt-wrow { display: flex; flex-wrap: wrap; gap: var(--v3-s-2) var(--v3-s-3); align-items: center; padding: var(--v3-s-2) 0; min-height: var(--v3-row-2line); box-sizing: border-box; }
.pt-wrow + .pt-wrow { border-top: 1px solid var(--v3-line); }
.pt-wrow-date.pt-date { padding: 0; }
.pt-wrow-nodate { width: 46px; flex: none; }
.pt-wrow-date { flex: none; }
.pt-wrow-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 200px; }
.pt-wrow-main b { font-size: var(--v3-fs-body); font-weight: 700; overflow-wrap: anywhere; }
.pt-wrow-main span { font-size: var(--v3-fs-label); color: var(--v3-text-2); }
.pt-wrow-who { display: inline-flex; align-items: center; gap: var(--v3-s-2); font-size: var(--v3-fs-meta); color: var(--v3-text-2); min-width: 0; }
.pt-wrow-acts { display: inline-flex; align-items: center; gap: var(--v3-s-1); flex-wrap: wrap; justify-content: flex-end; margin-left: auto; }
.pt-kv { margin: 0; display: flex; flex-direction: column; }
.pt-kv-row { display: flex; justify-content: space-between; align-items: baseline; gap: var(--v3-s-4); padding: 10px 0; border-top: 1px solid var(--v3-line); min-height: var(--v3-row-compact); box-sizing: border-box; }
.pt-kv-row:first-child { border-top: 0; }
.pt-kv dt { margin: 0; font-size: var(--v3-fs-body); color: var(--v3-text-2); }
.pt-kv dd { margin: 0; font-size: var(--v3-fs-body); font-weight: 700; color: var(--v3-ink); text-align: right; font-variant-numeric: tabular-nums; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.pt-kv dd small { font-size: var(--v3-fs-label); font-weight: 500; color: var(--v3-text-2); }
.pt-fig-quiet { display: flex; flex-direction: column; gap: 4px; }
.pt-fig-quiet b { font-size: var(--v3-fs-sub); font-weight: 700; color: var(--v3-ink); font-variant-numeric: tabular-nums; }
.pt-fig-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--v3-s-3) var(--v3-s-6); }
.pt-notes { display: flex; flex-direction: column; }
.pt-note { padding: var(--v3-s-3) 0; display: flex; flex-direction: column; gap: 4px; }
.pt-note + .pt-note { border-top: 1px solid var(--v3-line); }
.pt-note-text { font-size: var(--v3-fs-read); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; max-width: var(--v3-measure); }

/* the drawn tooltip: dark navy, 13px, the pack radius; shown on hover and on focus by alfParts (never the native title) */
.pt-tip { position: fixed; z-index: 2147483000; left: 0; top: 0; max-width: 280px; padding: 7px 10px; border-radius: var(--v3-radius-button); background: var(--v3-navy); color: var(--v3-page); font: 500 13px/1.4 var(--v3-font); pointer-events: none; opacity: 0; transition: opacity .12s ease; box-shadow: var(--v3-shadow-menu); }
.pt-tip.is-on { opacity: 1; }
.pt-tipped { cursor: default; outline-offset: 3px; }

.pt-prop > i.att, .pt-sw.att { background: var(--v3-attention); }
.pt-quiet { color: var(--v3-text-3); }
.pt-prop > i.mist, .pt-sw.mist { background: var(--v3-line); box-shadow: inset 0 0 0 1px var(--v3-text-3); }
/* a text link keeps a 40 px hit area without moving the line (machine check, eyes e3) */
.pt-link { padding-top: 11px; padding-bottom: 11px; margin-top: -11px; margin-bottom: -11px; }
/* B6 with two series: one bar per row split navy (s1) and mist (s2), the legend under the rows */
.pt-rank-two { display: flex; height: 12px; border-radius: 2px; overflow: hidden; gap: 2px; }
.pt-rank-two > i.s1 { background: var(--v3-series-1); } .pt-rank-two > i.s2 { background: var(--v3-series-2); }
.pt-sw.s2 { background: var(--v3-series-2); }
.pt-b6.is-two .pt-legend { margin-top: 4px; }
.pt-date.is-unconfirmed .pt-date-box { box-shadow: none; outline: 1.5px dashed var(--v3-text-3); outline-offset: -1.5px; background: var(--v3-card); }
/* ruling (d): an icon-only or one-mark control may draw small, but its hit area is 40 px */
.pt-tipped { display: inline-block; padding: 11px 8px; margin: -11px -8px; }
.pt-rank[role="button"] { min-height: 40px; }
/* a card head with a count and an act: the count stays beside the title, the act goes to the right (eyes ops3) */
.pt-card-hd > .pt-card-title + .pt-meta:not(:last-child) { margin-right: auto; }
