/* ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════
   BUILD LOGS — forum home, Build Logs board, build page (Plan/PT-Forum-Build-Logs-Brief.md, prototype
   Plan/pt-forum-build-logs.html, 3 Oct 2026). Loaded after forum-v2.css. Uses the site tokens only (none declared here).
   Square corners; red only for count badges; amber only for "Needs an answer" and the current stage; green only for Solved
   and Verified.
   ═══════════════════════════════════════════════════════════════════════════════════════════════════════════════ */

/* ── Shared: tags, the thread row ──────────────────────────────────────────────────────────────────────────── */
.pt-fm-tag.pt-bl-stage, .pt-bl-stage { background: var(--pt-ink); color: var(--pt-surface); border-color: var(--pt-ink); text-transform: none; letter-spacing: 0; font-size: 11px; }
.pt-fm-tag--open { border-color: var(--pt-amber-deep); color: var(--pt-amber-deep); text-transform: none; letter-spacing: 0; }
.pt-fm-tag--solved { text-transform: none; letter-spacing: 0; }
.pt-fm-row__th { width: 72px !important; height: 54px !important; flex: 0 0 auto; object-fit: cover; display: block; border-radius: 0 !important; background: var(--pt-fill-control); }
.pt-fm-row__th.is-empty { display: inline-block; }
.pt-fm-row__av { width: 34px !important; height: 34px !important; }
.pt-fm-row__m { display: flex; flex-wrap: wrap; gap: 0 2px; align-items: center; }
.pt-fm-row__sep { color: var(--pt-ink-3); margin: 0 4px; }
.pt-fm-row__m b { font-weight: 600; color: var(--pt-ink); }

/* ── Forum home ─────────────────────────────────────────────────────────────────────────────────────────────── */
.pt-bl-acts { display: flex; gap: 8px; flex: 0 0 auto; }
.pt-bl-home .pt-fm-sub b { color: var(--pt-ink); font-weight: 600; }
.pt-bl-mycar { display: flex; align-items: center; gap: 14px; margin-top: 16px; padding: 12px 16px; background: var(--pt-surface); border: 1px solid var(--pt-border-strong); }
.pt-bl-mycar b { font-size: 14.5px; font-weight: 600; color: var(--pt-ink); }
.pt-bl-mycar__s { font-size: 12.5px; color: var(--pt-ink-2); margin-top: 2px; }
.pt-bl-mycar__im { width: 64px; height: 44px; flex: 0 0 auto; display: grid; place-items: center; background: var(--pt-fill-control); color: var(--pt-ink-3); overflow: hidden; }
.pt-bl-mycar__im img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pt-bl-mycar__lk { margin-left: auto; display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13px; }
.pt-bl-mycar__lk a, .pt-bl-mycar__lk a:hover { color: var(--pt-accent) !important; text-decoration: none; white-space: nowrap; }
.pt-bl-mycar__lk a:hover { text-decoration: underline; }

.pt-bl-boards { display: grid; grid-template-columns: 1.35fr 1fr 1fr 1fr; gap: 14px; margin-top: 16px; }   /* four boards incl. Buying Advice (4 Oct 2026) */
.pt-bl-bd { display: flex; flex-direction: column; padding: 16px; background: var(--pt-surface); border: 1px solid var(--pt-border-strong); color: var(--pt-ink) !important; text-decoration: none; min-width: 0; }
.pt-bl-bd:hover { border-color: var(--pt-ink); text-decoration: none; }
.pt-bl-bd__h { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.pt-bl-bd__h b { font-size: 16px; font-weight: 600; }
.pt-bl-bd__h .pt-mono { font-size: 12px; color: var(--pt-ink-3); white-space: nowrap; }
.pt-bl-bd__p { font-size: 12.5px; color: var(--pt-ink-2); margin-top: 3px; }
.pt-bl-amber { color: var(--pt-amber-deep); font-weight: 600; }
.pt-bl-bd__strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; margin-top: 12px; }
.pt-bl-bd__strip img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; display: block; border-radius: 0; }
.pt-bl-bd__last { margin-top: auto; padding-top: 12px; display: flex; justify-content: space-between; gap: 8px; border-top: 1px solid var(--pt-border); font-size: 13px; }
.pt-bl-bd__p + .pt-bl-bd__last, .pt-bl-bd__strip + .pt-bl-bd__last { margin-top: 12px; }
.pt-bl-bd__last span:first-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pt-bl-bd__last .pt-mono { font-size: 11.5px; color: var(--pt-ink-3); white-space: nowrap; }

.pt-bl-cols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; margin-top: 20px; align-items: start; }
.pt-bl-latest__h { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--pt-border); }
.pt-bl-latest__h h2, .pt-forum-wrapper .pt-bl-latest__h h2 { margin: 0; font-size: 15px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--pt-ink); }
.pt-bl-latest__h .pt-bl-chips { margin-left: auto; }
.pt-bl-latest .pt-fm-rows { padding: 0 16px; }
.pt-bl-side .pt-fm-join { margin-bottom: 14px; }
.pt-bl-card { background: var(--pt-surface); border: 1px solid var(--pt-border-strong); padding: 14px 16px; margin-bottom: 14px; }
.pt-bl-card h4 { margin: 0 0 8px; font-size: 13.5px; font-weight: 600; color: var(--pt-ink); text-transform: none; letter-spacing: 0; }
.pt-bl-card--flush { padding: 0; }
.pt-bl-botw { display: block; color: var(--pt-ink) !important; text-decoration: none; }
.pt-bl-botw__im { position: relative; display: block; aspect-ratio: 16 / 9; background: var(--pt-fill-control); overflow: hidden; }
.pt-bl-botw__im img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.pt-bl-botw__lbl { position: absolute; left: 10px; top: 10px; background: rgba(255, 255, 255, .94); color: var(--pt-ink); font-size: 11.5px; font-weight: 600; letter-spacing: 0; text-transform: none; padding: 3px 7px; border: 1px solid rgba(26, 26, 26, .18); }   /* #15 (6 Oct): a light label, not a black block, so it stops shouting over the list */
.pt-bl-botw__t { display: block; padding: 10px 16px 0; font-size: 14.5px; font-weight: 600; }
.pt-bl-botw__m { display: block; padding: 3px 16px 14px; font-size: 12.5px; color: var(--pt-ink-2); }
.pt-bl-botw:hover .pt-bl-botw__t { text-decoration: underline; }
.pt-bl-botw-m { display: none; }
.pt-bl-wk { display: flex; gap: 10px; align-items: center; padding: 7px 0; border-top: 1px solid var(--pt-border); font-size: 13px; color: var(--pt-ink) !important; text-decoration: none; }
.pt-bl-wk:first-of-type { border-top: 0; }
.pt-bl-wk b { font-weight: 600; }
.pt-bl-wk .pt-mono { margin-left: auto; font-size: 11.5px; color: var(--pt-ink-3); }
.pt-bl-hl { display: flex; gap: 10px; align-items: center; padding: 6px 0; font-size: 13px; color: var(--pt-ink) !important; text-decoration: none; }
.pt-bl-av { width: 26px !important; height: 26px !important; border-radius: 0 !important; flex: 0 0 auto; }
.pt-bl-hl .pt-mono { margin-left: auto; font-size: 12px; color: var(--pt-ink-3); }
.pt-bl-note { margin: 0; font-size: 12.5px; color: var(--pt-ink-2); line-height: 1.5; }

@media (max-width: 900px) {
    .pt-bl-home .pt-fm-head { flex-wrap: wrap; align-items: flex-start; }
    .pt-bl-acts { width: 100%; }
    .pt-bl-acts .pt-fm-btn { flex: 1; }
    .pt-bl-mycar { flex-wrap: wrap; }
    .pt-bl-mycar__lk { margin-left: 0; width: 100%; }
    .pt-bl-boards { grid-template-columns: 1fr; gap: 10px; }
    .pt-bl-cols { grid-template-columns: minmax(0, 1fr); }
    .pt-bl-side { display: none; }
    .pt-bl-botw-m { display: block; margin-bottom: 14px; background: var(--pt-surface); border: 1px solid var(--pt-border-strong); }
    .pt-bl-latest__h { flex-wrap: wrap; }
    .pt-bl-latest__h .pt-bl-chips { margin-left: 0; width: 100%; }
    .pt-fm-row__th { width: 56px !important; height: 42px !important; }
}

/* ── Build Logs board ───────────────────────────────────────────────────────────────────────────────────────── */
.pt-bl-board .pt-fm-sub b { color: var(--pt-ink); font-weight: 600; }
.pt-bl-fbar { display: flex; gap: 8px; align-items: stretch; margin-top: 16px; }
.pt-bl-fbar__q { flex: 1; min-width: 0; margin: 0; }
.pt-bl-sel { position: relative; display: flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px; border: 1px solid var(--pt-border-strong); background: var(--pt-surface); font-size: 13.5px; white-space: nowrap; margin: 0; }
.pt-bl-sel span { color: var(--pt-ink-2); }
.pt-bl-fbar .pt-bl-sel select { border: 0 !important; background: transparent !important; box-shadow: none !important; padding: 0 !important; height: 40px; font: inherit; font-weight: 600; color: var(--pt-ink); max-width: 180px; cursor: pointer; }
.pt-bl-board__chips { margin-top: 10px; }
.pt-bl-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.pt-bl-gc { display: block; background: var(--pt-surface); border: 1px solid var(--pt-border-strong); color: var(--pt-ink) !important; text-decoration: none; min-width: 0; }
.pt-bl-gc:hover { border-color: var(--pt-ink); text-decoration: none; }
.pt-bl-gc:hover .pt-bl-gc__ti { text-decoration: underline; }
.pt-bl-gc__cv { position: relative; display: block; aspect-ratio: 16 / 10; background: var(--pt-fill-control); overflow: hidden; }
.pt-bl-gc__cv img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.pt-bl-gc__ph { position: absolute; inset: 0; display: grid; place-items: center; padding: 16px; text-align: center; font-family: var(--pt-mono); font-size: 13px; color: var(--pt-ink-3); }
.pt-bl-gc__fl { position: absolute; right: 10px; top: 10px; display: flex; gap: 5px; align-items: center; padding: 4px 8px; background: var(--pt-surface); font-size: 12px; font-weight: 600; }
.pt-bl-gc__stg { position: absolute; left: 10px; bottom: 10px; margin: 0; }
.pt-bl-gc__ph3 { position: absolute; right: 10px; bottom: 10px; padding: 3px 6px; background: rgba(26, 26, 26, .75); color: #fff; font-size: 11px; }
.pt-bl-gc__tx { display: block; padding: 12px 14px; }
.pt-bl-gc__car { display: block; font-size: 12px; color: var(--pt-ink-2); }
.pt-bl-gc__ti { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 3px; font-size: 15.5px; font-weight: 600; line-height: 1.3; }
.pt-bl-gc__up { display: block; margin-top: 6px; font-size: 12.5px; color: var(--pt-ink-2); }
.pt-bl-gc__up b { color: var(--pt-ink); font-weight: 600; }
.pt-bl-gc__by { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--pt-border); font-size: 12.5px; }
.pt-bl-gc__by .pt-bl-av { width: 24px !important; height: 24px !important; }
.pt-bl-rk { font-size: 11px; border: 1px solid var(--pt-border-strong); padding: 1px 5px; color: var(--pt-ink-2); }
.pt-bl-gc__r { margin-left: auto; font-size: 11.5px; color: var(--pt-ink-3); white-space: nowrap; }
.pt-bl-more { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 20px; }
.pt-bl-more .pt-mono { font-size: 12px; color: var(--pt-ink-3); }
@media (max-width: 900px) {
    .pt-bl-board .pt-fm-head { flex-wrap: wrap; align-items: flex-start; }
    .pt-bl-board .pt-fm-head .pt-fm-btn { width: 100%; }
    .pt-bl-fbar { flex-wrap: wrap; }
    .pt-bl-fbar__q { flex-basis: 100%; }
    .pt-bl-sel { flex: 1; height: 36px; padding: 0 8px; font-size: 12.5px; }
    .pt-bl-fbar .pt-bl-sel select { height: 34px; max-width: 100%; min-width: 0; }
    .pt-bl-grid { grid-template-columns: 1fr; gap: 12px; }
}

/* ── A build page ───────────────────────────────────────────────────────────────────────────────────────────── */
.pt-bl-page { padding-bottom: 36px; }
.pt-bl-hero { position: relative; height: 340px; background: var(--pt-ink); overflow: hidden; }
.pt-bl-hero.is-empty { background: linear-gradient(160deg, #3E4448, #15181A); }
.pt-bl-hero__im { position: absolute; inset: 0; width: 100% !important; height: 100% !important; object-fit: cover; display: block; border-radius: 0; }
.pt-bl-hero__ov { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px max(36px, calc((100% - 1180px) / 2 + 32px)); background: linear-gradient(transparent, rgba(0, 0, 0, .72)); color: #fff; }
.pt-bl-hero__crumb { font-size: 12.5px; margin-bottom: 8px; opacity: .85; }
.pt-bl-hero__crumb a, .pt-bl-hero__crumb a:hover { color: #fff !important; text-decoration: none; }
.pt-bl-hero__car { font-size: 13px; opacity: .85; }
.pt-forum-wrapper .pt-bl-hero__t, .pt-bl-hero__t { margin: 4px 0 0; font-size: 30px; font-weight: 600; line-height: 1.2; color: #fff; text-transform: none; letter-spacing: -.01em; max-width: 760px; }
.pt-bl-hero__meta { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: center; margin-top: 10px; font-size: 13.5px; }
.pt-bl-hero__meta .pt-bl-av { width: 30px !important; height: 30px !important; }
.pt-bl-hero__meta .pt-bl-rk { color: #fff; border-color: rgba(255, 255, 255, .5); }
.pt-bl-ver { color: var(--pt-green-text); }
.pt-bl-hero .pt-bl-ver { color: #8fd3a8; }
.pt-bl-hero__st { opacity: .8; }
.pt-bl-hero__acts { position: absolute; right: max(36px, calc((100% - 1180px) / 2 + 32px)); bottom: 24px; display: flex; gap: 8px; z-index: 2; }
.pt-bl-btn, .pt-bl-btn:hover, .pt-bl-btn:focus, .pt-bl-btn:active, .pt-forum-wrapper .pt-bl-btn, .pt-forum-wrapper .pt-bl-btn:hover, .pt-forum-wrapper .pt-bl-btn:focus, .pt-forum-wrapper .pt-bl-btn:active { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 14px; font: inherit; font-size: 13.5px; font-weight: 600; white-space: nowrap; background: var(--pt-surface); color: var(--pt-ink) !important; border: 1px solid var(--pt-border-strong); border-radius: 0; text-decoration: none; cursor: pointer; text-transform: none; letter-spacing: 0; box-shadow: none; }
.pt-bl-btn:hover, .pt-bl-btn:focus-visible, .pt-forum-wrapper .pt-bl-btn:hover { background: var(--pt-fill-control); }
.pt-bl-hero .pt-bl-btn { background: rgba(0, 0, 0, .35); color: #fff !important; border-color: rgba(255, 255, 255, .7); }
.pt-bl-hero .pt-bl-btn:hover, .pt-bl-hero .pt-bl-btn:focus-visible { background: rgba(0, 0, 0, .55); color: #fff !important; }
.pt-bl-hero .pt-bl-btn--w, .pt-bl-hero .pt-bl-btn--w:focus, .pt-bl-hero .pt-bl-btn--w:active { background: #fff; color: var(--pt-ink) !important; border-color: #fff; }
.pt-bl-hero .pt-bl-btn--w:hover, .pt-bl-hero .pt-bl-btn--w:focus-visible { background: #EFEBE3; color: var(--pt-ink) !important; }
.pt-bl-btn[aria-pressed="true"] { border-color: var(--pt-ink); }
.pt-bl-stats { display: grid; grid-template-columns: repeat(5, 1fr); background: var(--pt-surface); border-bottom: 1px solid var(--pt-border-strong); padding: 0 max(16px, calc((100% - 1180px) / 2 + 16px)); }
.pt-bl-stats div { padding: 12px 20px; border-left: 1px solid var(--pt-border); }
.pt-bl-stats div:first-child { border-left: 0; }
.pt-bl-stats b { display: block; font-size: 18px; font-weight: 600; color: var(--pt-ink); }
.pt-bl-stats span { font-size: 12px; color: var(--pt-ink-2); }
.pt-bl-body { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; max-width: 1180px; margin: 0 auto; padding: 22px 32px; align-items: start; }
.pt-bl-main { min-width: 0; }
.pt-bl-nudge { display: flex; gap: 10px; align-items: flex-start; padding: 12px 16px; margin-bottom: 16px; background: var(--pt-surface); border: 1px dashed var(--pt-border-strong); color: var(--pt-ink-2) !important; text-decoration: none; font-size: 13px; }
.pt-bl-nudge b { color: var(--pt-ink); font-weight: 600; }
.pt-bl-staff { font-size: 12.5px; color: var(--pt-ink-3); margin: 0 0 12px; }
.pt-bl-stages, .pt-bl-upd, .pt-bl-uform, .pt-bl-cform { background: var(--pt-surface); border: 1px solid var(--pt-border-strong); margin-bottom: 16px; }
.pt-bl-stages { padding: 14px 16px; }
.pt-forum-wrapper .pt-bl-stages h2, .pt-bl-stages h2 { margin: 0 0 12px; font-size: 13.5px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--pt-ink); }
.pt-bl-track { display: flex; list-style: none; margin: 0; padding: 0; }
.pt-bl-track__s { flex: 1; min-width: 0; position: relative; padding: 18px 8px 0 0; font-size: 12px; color: var(--pt-ink-3); margin: 0; }
.pt-bl-track__s::before { content: ""; position: absolute; top: 5px; left: 0; right: 0; height: 2px; background: var(--pt-border-strong); }
.pt-bl-track__s::after { content: ""; position: absolute; top: 0; left: 0; width: 12px; height: 12px; border-radius: 50%; background: var(--pt-surface); border: 2px solid var(--pt-border-strong); box-sizing: border-box; }
.pt-bl-track__s.is-done::before, .pt-bl-track__s.is-done::after { background: var(--pt-ink); border-color: var(--pt-ink); }
.pt-bl-track__s.is-cur::after { background: var(--pt-amber-deep); border-color: var(--pt-amber-deep); }
.pt-bl-track__s.is-cur::before { background: linear-gradient(90deg, var(--pt-ink) 0 30%, var(--pt-border-strong) 30%); }
.pt-bl-track__s:last-child::before { right: auto; width: 12px; }
.pt-bl-track__s b { display: block; color: var(--pt-ink); font-weight: 600; font-size: 12.5px; }
.pt-bl-track__s.is-todo b { color: var(--pt-ink-3); font-weight: 500; }
.pt-bl-track__s span { display: block; }
.pt-bl-upd__h { display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-bottom: 1px solid var(--pt-border); }
.pt-bl-upd__h .pt-fm-tag { margin: 0; }
.pt-bl-upd__h b { font-size: 15px; font-weight: 600; color: var(--pt-ink); }
.pt-bl-upd__h time { margin-left: auto; font-size: 12px; color: var(--pt-ink-3); white-space: nowrap; }
.pt-bl-upd__b { padding: 14px 16px; font-size: 14px; line-height: 1.55; color: var(--pt-ink); }
.pt-bl-upd__b p { margin: 0 0 10px; }
.pt-bl-upd__b p:last-child { margin: 0; }
.pt-bl-gal { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-auto-rows: 160px; gap: 4px; padding: 0 16px 14px; }
.pt-bl-gal--1 { grid-template-columns: 1fr; grid-auto-rows: 324px; }
.pt-bl-gal--2 { grid-auto-rows: 260px; }
.pt-bl-gal__i, .pt-bl-gal__i:hover, .pt-bl-gal__i:focus, .pt-bl-gal__i:active { position: relative; display: block; padding: 0; margin: 0; border: 0; background: var(--pt-fill-control); cursor: zoom-in; overflow: hidden; border-radius: 0; box-shadow: none; }
.pt-bl-gal__i img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.pt-bl-gal--3 .pt-bl-gal__i:first-child { grid-row: span 2; }
.pt-bl-gal__more { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(26, 26, 26, .55); color: #fff; font-size: 20px; }
.pt-bl-cmt .pt-bl-gal { padding: 8px 0 0; grid-auto-rows: 90px; max-width: 420px; }
.pt-bl-parts { margin: 0 16px 14px; border: 1px solid var(--pt-border); }
.pt-bl-parts__h { display: flex; justify-content: space-between; padding: 8px 12px; font-size: 12px; font-weight: 600; color: var(--pt-ink-2); background: var(--pt-surface-dim); border-bottom: 1px solid var(--pt-border); }
.pt-bl-pt { display: flex; align-items: center; gap: 10px; padding: 9px 12px; border-top: 1px solid var(--pt-border); font-size: 13px; color: var(--pt-ink); }
.pt-bl-pt:first-of-type { border-top: 0; }
.pt-bl-pt svg { flex: 0 0 auto; color: var(--pt-ink-2); }
.pt-bl-pt__n { min-width: 0; }
.pt-bl-pt__p { font-size: 12.5px; color: var(--pt-ink-2); }
.pt-bl-pt a, .pt-bl-pt a:hover { margin-left: auto; color: var(--pt-accent) !important; font-size: 12.5px; white-space: nowrap; text-decoration: none; }
.pt-bl-pt a:hover { text-decoration: underline; }
.pt-bl-upd__f { display: flex; align-items: center; gap: 16px; padding: 10px 16px; border-top: 1px solid var(--pt-border); font-size: 13px; color: var(--pt-ink-2); }
.pt-bl-like, .pt-bl-like:hover, .pt-bl-like:focus, .pt-bl-like:active { display: inline-flex; gap: 6px; align-items: center; padding: 0; margin: 0; border: 0; background: none; color: var(--pt-ink-2); font: inherit; font-size: 13px; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-bl-like:hover, .pt-bl-like:focus-visible { color: var(--pt-ink); }
.pt-bl-like[aria-pressed="true"], .pt-bl-like[aria-pressed="true"]:hover { color: var(--pt-ink); }
.pt-bl-like[aria-pressed="true"] svg { fill: currentColor; }
.pt-bl-like.is-static { cursor: default; }
.pt-bl-cbtn, .pt-bl-cbtn:hover, .pt-bl-cbtn:focus, .pt-bl-cbtn:active { margin-left: auto; padding: 0; border: 0; background: none; color: var(--pt-accent); font: inherit; font-size: 13px; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-bl-cbtn:hover, .pt-bl-cbtn:focus-visible { text-decoration: underline; }
.pt-bl-cmt { display: flex; gap: 10px; padding: 10px 16px; border-top: 1px solid var(--pt-border); font-size: 13.5px; color: var(--pt-ink); }
.pt-bl-cmt .pt-bl-av { width: 28px !important; height: 28px !important; }
.pt-bl-cmt__b { min-width: 0; flex: 1; }
.pt-bl-cmt b { font-weight: 600; }
.pt-bl-cmt__q { color: var(--pt-ink-2); font-size: 12px; }
.pt-bl-cmt__t p { margin: 2px 0 0; }
.pt-bl-mu { margin-top: 6px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.pt-bl-mu .pt-fm-txt { height: 32px; padding: 4px 8px; font-size: 13px; }
.pt-bl-err { font-size: 12.5px; color: var(--pt-ink-2); }
.pt-bl-cform { padding: 14px 16px; }
.pt-bl-upd .pt-bl-cform { margin: 0; border: 0; border-top: 1px solid var(--pt-border); }
.pt-bl-cform__l { display: block; font-size: 13px; font-weight: 600; margin-bottom: 6px; color: var(--pt-ink); }
.pt-bl-cform textarea, .pt-bl-uform textarea { width: 100%; border: 1px solid var(--pt-border-strong); border-radius: 0; padding: 10px 12px; font: inherit; font-size: 14px; background: var(--pt-surface); color: var(--pt-ink); box-sizing: border-box; }
.pt-bl-cform__f, .pt-bl-uform__f { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; }
.pt-bl-file { font-size: 13px; color: var(--pt-accent); cursor: pointer; }
.pt-bl-file input { font-size: 12px; max-width: 220px; }
.pt-bl-uform { padding: 16px; }
.pt-bl-uform[hidden] { display: none; }
.pt-bl-uform__h { display: flex; gap: 10px; align-items: baseline; margin-bottom: 4px; }
.pt-bl-uform__h b { font-size: 15px; }
.pt-bl-uform__h span { font-size: 12.5px; color: var(--pt-ink-2); }
.pt-bl-uform__row { display: grid; grid-template-columns: 1fr; gap: 6px; }
.pt-bl-check { display: flex; gap: 8px; align-items: center; font-size: 13px; color: var(--pt-ink); margin-top: 4px; }
.pt-bl-prows { display: flex; flex-direction: column; gap: 6px; margin-bottom: 6px; }
.pt-bl-prow { display: grid; grid-template-columns: minmax(0, 1.4fr) 90px minmax(0, 1.4fr) 32px; gap: 6px; align-items: start; }
.pt-bl-prow__shop { position: relative; display: block; }
.pt-bl-prow__res { position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: var(--pt-surface); border: 1px solid var(--pt-border-strong); display: flex; flex-direction: column; }
.pt-bl-prow__res[hidden] { display: none; }
.pt-bl-prow__opt, .pt-bl-prow__opt:hover, .pt-bl-prow__opt:focus, .pt-bl-prow__opt:active { text-align: left; padding: 8px 10px; border: 0; border-top: 1px solid var(--pt-border); background: var(--pt-surface); color: var(--pt-ink); font: inherit; font-size: 13px; cursor: pointer; border-radius: 0; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-bl-prow__opt:hover, .pt-bl-prow__opt:focus-visible { background: var(--pt-fill-control); }
.pt-bl-x, .pt-bl-x:hover, .pt-bl-x:focus, .pt-bl-x:active { width: 32px; height: 38px; padding: 0; border: 1px solid var(--pt-border-strong); background: var(--pt-surface); color: var(--pt-ink-2); font-size: 18px; cursor: pointer; border-radius: 0; box-shadow: none; }
.pt-bl-x:hover, .pt-bl-x:focus-visible { background: var(--pt-fill-control); color: var(--pt-ink); }
.pt-bl-aside .pt-bl-card h4 { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.pt-bl-aside .pt-bl-card h4 a, .pt-bl-aside .pt-bl-card h4 a:hover { font-weight: 400; font-size: 12.5px; color: var(--pt-accent) !important; text-decoration: none; }
.pt-bl-spec { display: grid; grid-template-columns: 90px 1fr; gap: 6px 10px; margin: 0; font-size: 13px; }
.pt-bl-spec dt { color: var(--pt-ink-2); margin: 0; font-weight: 400; }
.pt-bl-spec dd { margin: 0; color: var(--pt-ink); }
.pt-bl-ask { display: flex; gap: 8px; margin-top: 12px; }
.pt-bl-ask .pt-bl-btn { flex: 1; }
.pt-bl-mini { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--pt-border); font-size: 13px; color: var(--pt-ink) !important; text-decoration: none; }
.pt-bl-mini:first-of-type { border-top: 0; }
.pt-bl-mini:hover { text-decoration: underline; }
.pt-bl-mini__im { width: 56px; height: 42px; flex: 0 0 auto; background: var(--pt-fill-control); overflow: hidden; display: block; }
.pt-bl-mini__im img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.pt-bl-mini__p { display: block; font-size: 12.5px; font-weight: 600; }
.pt-bl-mini small { display: block; color: var(--pt-ink-2); font-size: 12px; }
@media (max-width: 900px) {
    .pt-bl-hero { height: 260px; }
    .pt-bl-hero__ov { padding: 16px; }
    .pt-forum-wrapper .pt-bl-hero__t, .pt-bl-hero__t { font-size: 22px; }
    .pt-bl-hero__crumb { display: none; }
    .pt-bl-hero__acts { top: 12px; right: 12px; bottom: auto; }
    .pt-bl-hero__acts .pt-bl-btn { padding: 8px 10px; font-size: 12.5px; }
    .pt-bl-stats { grid-template-columns: repeat(3, 1fr); padding: 0; }
    .pt-bl-stats div { padding: 10px 12px; }
    .pt-bl-stats div:nth-child(n+4) { display: none; }
    .pt-bl-body { grid-template-columns: minmax(0, 1fr); padding: 14px; gap: 0; }
    .pt-bl-hide-m { display: none; }
    .pt-bl-track__s span { display: none; }
    .pt-bl-gal { grid-auto-rows: 90px; }
    .pt-bl-gal--1 { grid-auto-rows: 200px; }
    .pt-bl-gal--2 { grid-auto-rows: 140px; }
    .pt-bl-prow { grid-template-columns: minmax(0, 1fr) 80px 32px; }
    .pt-bl-prow__shop { grid-column: 1 / -1; grid-row: 2; }
}

/* §5a: link-style buttons (Make this an update, + Add a part, + Add a stage) — GeneratePress paints button:hover/:focus #333 */
.pt-forum-wrapper button.pt-fm-link, .pt-forum-wrapper button.pt-fm-link:hover, .pt-forum-wrapper button.pt-fm-link:focus, .pt-forum-wrapper button.pt-fm-link:active,
.pt-fm-link:hover, .pt-fm-link:focus, .pt-fm-link:active { background: none; color: var(--pt-accent); border: 0; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper button.pt-fm-link:hover, .pt-forum-wrapper button.pt-fm-link:focus-visible { text-decoration: underline; }

/* the build page starts right under the site header (the forum wrapper's 40px top padding is for the other forum pages) */
.pt-forum-wrapper.pt-bl-page { padding-top: 0; }
@media (max-width: 900px) {
    .pt-bl-hero__acts { left: 12px; justify-content: flex-end; flex-wrap: wrap; }
    .pt-bl-hero__acts .pt-bl-btn__l { display: none; }   /* Share + Edit build become icon buttons on phones; the main action keeps its words */
    .pt-bl-hero__acts .pt-bl-btn--w .pt-bl-btn__l { display: inline; }
}

/* Prototype match (3 Oct): the hero's buttons are both solid white with an ink label — Share as well as Follow build. */
.pt-bl-hero .pt-bl-btn, .pt-bl-hero .pt-bl-btn:focus, .pt-bl-hero .pt-bl-btn:active { background: #fff; color: var(--pt-ink) !important; border-color: #fff; }
.pt-bl-hero .pt-bl-btn:hover, .pt-bl-hero .pt-bl-btn:focus-visible { background: #EFEBE3; color: var(--pt-ink) !important; border-color: #EFEBE3; }

/* #18 (6 Oct): the Photos total is a button that opens every photo in the media hub. It keeps the cell's look; "See all"
   tells you it opens. Every state declares background + colour (GeneratePress's button:hover rule). */
.pt-bl-stats .pt-bl-stats__btn, .pt-bl-stats .pt-bl-stats__btn:hover, .pt-bl-stats .pt-bl-stats__btn:focus, .pt-bl-stats .pt-bl-stats__btn:active { display: block; width: 100%; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--pt-ink); text-align: left; font: inherit; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-bl-stats .pt-bl-stats__btn em { font-style: normal; color: var(--pt-accent, #185FA5); text-decoration: underline; margin-left: 4px; }
.pt-bl-stats .pt-bl-stats__btn:hover em, .pt-bl-stats .pt-bl-stats__btn:focus-visible em { text-decoration-thickness: 2px; }
.pt-bl-stats .pt-bl-stats__btn:focus-visible { outline: 2px solid var(--pt-ink); outline-offset: 4px; }

/* #17 — build-log comments, modernised (Leon, 6 Oct 2026): the thread page's reply in miniature. Head line (name · Owner ·
   time in mono), 14.5px words with room to breathe, photos, then a quiet action row — ♥ helpful · Reply · Quote · Edit /
   Delete — that reads as controls, not stray text. The comment form gets the shared toolbar and the styled photo picker. */
.pt-bl-cmt { gap: 12px; padding: 14px 16px; font-size: 14.5px; line-height: 1.5; }
.pt-bl-cmt .pt-bl-av { width: 32px !important; height: 32px !important; flex: 0 0 32px; }
.pt-bl-cmt__h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; font-size: 13.5px; }
.pt-bl-cmt__h b { color: var(--pt-ink); }
.pt-bl-cmt__own { font-size: 11px; font-weight: 600; padding: 1px 6px; border: 1px solid var(--pt-border-strong); color: var(--pt-ink-2); }
.pt-bl-cmt__h time { margin-left: auto; font-size: 12px; color: var(--pt-ink-3); }
.pt-bl-cmt__t { margin-top: 4px; color: var(--pt-ink); overflow-wrap: anywhere; }
.pt-bl-cmt__t p { margin: 0 0 8px; } .pt-bl-cmt__t p:last-child { margin-bottom: 0; }
.pt-bl-cmt__t a { color: var(--pt-ink); text-decoration: underline; text-underline-offset: 2px; }   /* Leon 6 Oct 23:02: links in member text are black */
.pt-bl-cmt__f { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin-top: 8px; }
.pt-bl-cmt__f .pt-bl-like { font-size: 13px; min-height: 32px; }
.pt-bl-cmt__f .pt-ft-own { margin-left: auto; display: inline-flex; gap: 12px; }
.pt-bl-cmt .pt-ft-confirm { margin-top: 8px; }
.pt-bl-cmt .pt-ft-editbox textarea { width: 100%; min-height: 80px; border: 1px solid var(--pt-border-strong); padding: 8px 10px; font: inherit; box-sizing: border-box; }
.pt-bl-cform .pt-cmp { margin-bottom: 0; }
.pt-bl-cform .pt-cmp + textarea { border-top-color: var(--pt-border-strong); }
.pt-bl-cform .pt-bl-file { position: relative; display: inline-flex; align-items: center; padding: 9px 12px; border: 1px solid var(--pt-border-strong); background: var(--pt-surface); color: var(--pt-ink); font-size: 13px; font-weight: 600; }
.pt-bl-cform .pt-bl-file:hover { background: var(--pt-fill-control); }
.pt-bl-cform .pt-bl-file input { position: absolute; inset: 0; opacity: 0; cursor: pointer; max-width: none; }
@media (max-width: 640px) { .pt-bl-cmt { padding: 12px; } .pt-bl-cmt__f { gap: 2px 14px; } }

/* #17 threads (6 Oct 2026): sort control, "n new since your last visit", one-level replies, "Show n more", inline reply box. */
.pt-bl-cmts__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 10px 16px; border-top: 1px solid var(--pt-border); }
.pt-bl-cmts__new { font-size: 13.5px; font-weight: 600; color: var(--pt-ink); }
.pt-bl-csort { margin-left: auto; display: inline-flex; align-items: center; gap: 0; font-size: 13px; }
.pt-bl-csort button + button::before { content: "·"; margin: 0 8px; color: var(--pt-ink-3); font-weight: 400; }
.pt-forum-wrapper .pt-bl-csort button, .pt-forum-wrapper .pt-bl-csort button:hover, .pt-forum-wrapper .pt-bl-csort button:focus, .pt-forum-wrapper .pt-bl-csort button:active, .pt-bl-csort button, .pt-bl-csort button:hover, .pt-bl-csort button:focus, .pt-bl-csort button:active { padding: 0; margin: 0; min-height: 32px; border: 0; border-radius: 0; background: transparent; color: #5C5A54; font: inherit; font-size: 13px; font-weight: 400; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-csort button:hover, .pt-forum-wrapper .pt-bl-csort button:focus-visible, .pt-bl-csort button:hover { background: transparent; color: var(--pt-ink); text-decoration: underline; }
.pt-forum-wrapper .pt-bl-csort button[aria-pressed="true"], .pt-forum-wrapper .pt-bl-csort button[aria-pressed="true"]:hover, .pt-bl-csort button[aria-pressed="true"] { color: var(--pt-ink); font-weight: 600; text-decoration: none; }
.pt-bl-cmt.is-new { box-shadow: inset 3px 0 0 var(--pt-amber-deep); }   /* a state, so amber — never red */
.pt-bl-replies { margin-left: 32px; border-left: 1px solid var(--pt-border-strong); }
.pt-bl-cmt--reply { border-top: 0; padding-top: 10px; padding-bottom: 10px; }
.pt-bl-cmt--reply .pt-bl-av { width: 28px !important; height: 28px !important; flex: 0 0 28px; }
.pt-forum-wrapper .pt-bl-cmts__more, .pt-forum-wrapper .pt-bl-cmts__more:hover, .pt-forum-wrapper .pt-bl-cmts__more:focus, .pt-forum-wrapper .pt-bl-cmts__more:active, .pt-bl-cmts__more, .pt-bl-cmts__more:hover, .pt-bl-cmts__more:focus, .pt-bl-cmts__more:active { display: block; width: 100%; margin: 0; padding: 10px 16px; min-height: 44px; border: 0; border-top: 1px solid var(--pt-border); border-radius: 0; background: var(--pt-surface); color: var(--pt-accent, #185FA5); font: inherit; font-size: 13.5px; font-weight: 600; text-align: left; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-cmts__more:hover, .pt-forum-wrapper .pt-bl-cmts__more:focus-visible, .pt-bl-cmts__more:hover { background: var(--pt-fill-control); color: var(--pt-accent, #185FA5); text-decoration: underline; }
.pt-bl-rform { margin: 0 16px 12px 60px; }
.pt-bl-replies .pt-bl-rform { margin-left: 44px; }
.pt-bl-rform textarea { width: 100%; border: 1px solid var(--pt-border-strong); border-radius: 0; padding: 8px 10px; font: inherit; font-size: 14px; background: var(--pt-surface); color: var(--pt-ink); box-sizing: border-box; }
.pt-bl-rform__f { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }
@media (max-width: 640px) { .pt-bl-replies { margin-left: 20px; } .pt-bl-rform { margin: 0 12px 12px 12px; } .pt-bl-cmts__bar { padding: 10px 12px; } .pt-bl-csort { margin-left: 0; } }
/* "Show 3 more · 2 new" (Leon, 6 Oct): the count of new comments inside collapsed threads, ink 600, and the same 3px amber
   edge as a new comment. */
.pt-bl-cmts__more b { color: var(--pt-ink); font-weight: 600; }
.pt-forum-wrapper .pt-bl-cmts__more.has-new, .pt-bl-cmts__more.has-new { box-shadow: inset 3px 0 0 var(--pt-amber-deep); }

/* Hero photo (6 Oct): a cover narrower than 1600px is shown sharp at its own size — fitted, never enlarged — over a blurred,
   darkened copy of itself that fills the band. The copy is clipped by its own wrapper because the thread hero is overflow:visible. */
.pt-bl-hero__bgw { position: absolute; inset: 0; overflow: hidden; z-index: 0; }
.pt-bl-hero__bg { position: absolute; inset: -40px; background: center / cover no-repeat; filter: blur(22px) brightness(.7) saturate(1.1); }
.pt-bl-hero .pt-bl-hero__im.is-native { z-index: 0; object-fit: contain !important; }
.pt-bl-hero:has(.pt-bl-hero__im.is-native) .pt-bl-hero__ov { padding-top: 72px; background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, .82) 55%); }   /* a bright sharp photo still lets the title read */

/* "Where it's at" (Leon, 6 Oct: "Stage 2 doesn't look right"): the current stage was a flat amber blob with no line after it, so it
   read as unfinished. Now: done = ink dot + ink line; current = an ink ring with an amber centre and a small amber NOW label (a state,
   so amber); to come = grey ring. The line runs ink up to the current stage. */
.pt-bl-track__s.is-cur::after { width: 16px; height: 16px; top: -2px; left: -2px; background: var(--pt-amber-deep); border: 3px solid var(--pt-ink); box-shadow: 0 0 0 3px var(--pt-surface); }
.pt-bl-track__s.is-cur::before { background: var(--pt-border-strong); }
.pt-bl-track__s.is-cur:last-child::before { display: none; }
/* Leon 6 Oct 22:57: the current stage pulses — an amber ring breathing out from the node (off for reduced motion) */
@keyframes pt-bl-pulse { 0% { box-shadow: 0 0 0 3px var(--pt-surface), 0 0 0 3px rgba(168, 106, 0, .55); } 70% { box-shadow: 0 0 0 3px var(--pt-surface), 0 0 0 11px rgba(168, 106, 0, 0); } 100% { box-shadow: 0 0 0 3px var(--pt-surface), 0 0 0 11px rgba(168, 106, 0, 0); } }
.pt-bl-track__s.is-cur::after { animation: pt-bl-pulse 2s ease-out infinite; }
@media (prefers-reduced-motion: reduce) { .pt-bl-track__s.is-cur::after { animation: none; } }
.pt-bl-track__s.is-cur b::after { content: "NOW"; margin-left: 8px; font-size: 10.5px; font-weight: 700; letter-spacing: .04em; color: var(--pt-amber-deep); vertical-align: 1px; }
.pt-bl-track__s.is-done::after { width: 12px; height: 12px; }

/* Mobile (Leon, 6 Oct): "The car" card — Ask the owner + Follow — sat at the very bottom of the page. On phones it comes straight
   after the stats strip; the other side cards stay at the end. */
@media (max-width: 900px) {
    .pt-bl-body > .pt-bl-aside { display: contents; }
    .pt-bl-body > .pt-bl-aside > .pt-bl-card:first-child { order: -1; margin-bottom: 14px; }
    .pt-bl-body > .pt-bl-main { order: 0; }
    .pt-bl-body > .pt-bl-aside > *:not(:first-child) { order: 1; }
}

/* Comments v2 (Leon, 6 Oct 22:12 — Plan/pt-build-log-comments-v2.html) */
.pt-forum-wrapper .pt-bl-cview, .pt-forum-wrapper .pt-bl-cview:hover, .pt-forum-wrapper .pt-bl-cview:focus, .pt-forum-wrapper .pt-bl-cview:active, .pt-bl-cview, .pt-bl-cview:hover, .pt-bl-cview:focus, .pt-bl-cview:active { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; margin: 0; padding: 10px 16px; border: 0; border-top: 1px solid var(--pt-border); border-radius: 0; background: var(--pt-surface); color: var(--pt-ink); font: inherit; font-size: 13.5px; font-weight: 600; text-align: left; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-cview:hover, .pt-forum-wrapper .pt-bl-cview:focus-visible, .pt-bl-cview:hover { background: #FAF9F6; color: var(--pt-ink); }
.pt-bl-cview[hidden] { display: none !important; }
.pt-bl-cview__faces { display: inline-flex; }
.pt-bl-cview__av { width: 22px !important; height: 22px !important; border-radius: 50%; border: 2px solid #fff; margin-left: -6px; }
.pt-bl-cview__faces .pt-bl-cview__av:first-child { margin-left: 0; }
.pt-bl-cview__new { margin-left: 4px; padding-left: 8px; border-left: 3px solid var(--pt-amber-deep); color: var(--pt-ink); font-weight: 600; }
.pt-bl-cview__ch { margin-left: auto; color: var(--pt-ink-3); }
.pt-bl-cbar { position: sticky; top: var(--pt-header-h, 84px); z-index: 5; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 10px 16px; background: #fff; border-top: 1px solid var(--pt-border); border-bottom: 1px solid var(--pt-border); font-size: 13px; color: var(--pt-ink-2); }
.pt-bl-cbar[hidden] { display: none; }
.pt-bl-cbar__n b { color: var(--pt-ink); font-weight: 600; }
.pt-bl-cbar .pt-bl-csort { margin-left: auto; }
.pt-forum-wrapper .pt-bl-cbar__jump, .pt-forum-wrapper .pt-bl-cbar__jump:hover, .pt-forum-wrapper .pt-bl-cbar__jump:focus, .pt-forum-wrapper .pt-bl-cbar__jump:active, .pt-forum-wrapper .pt-bl-cbar__hide, .pt-forum-wrapper .pt-bl-cbar__hide:hover, .pt-forum-wrapper .pt-bl-cbar__hide:focus, .pt-forum-wrapper .pt-bl-cbar__hide:active { padding: 0; margin: 0; min-height: 32px; border: 0; border-radius: 0; background: transparent; color: var(--pt-accent, #185FA5); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-cbar__hide, .pt-forum-wrapper .pt-bl-cbar__hide:hover, .pt-forum-wrapper .pt-bl-cbar__hide:focus, .pt-forum-wrapper .pt-bl-cbar__hide:active { color: var(--pt-ink-2); }
.pt-forum-wrapper .pt-bl-cmts__load, .pt-forum-wrapper .pt-bl-cmts__load:hover, .pt-forum-wrapper .pt-bl-cmts__load:focus, .pt-forum-wrapper .pt-bl-cmts__load:active { display: block; width: 100%; min-height: 44px; margin: 0; padding: 10px 16px; border: 0; border-top: 1px solid var(--pt-border); border-radius: 0; background: var(--pt-surface); color: var(--pt-accent, #185FA5); font: inherit; font-size: 13.5px; font-weight: 600; text-align: left; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-cmts__load:hover, .pt-forum-wrapper .pt-bl-cmts__load:focus-visible { background: #FAF9F6; color: var(--pt-accent, #185FA5); text-decoration: underline; }
.pt-bl-cmts__load[hidden] { display: none !important; }
.pt-bl-cmt__own { background: var(--pt-ink); border-color: var(--pt-ink) !important; color: #fff !important; }
.pt-bl-cmt__newtag { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; color: var(--pt-amber-deep); }
.pt-bl-cmore { position: relative; display: inline-flex; }
.pt-forum-wrapper .pt-bl-cmore__b, .pt-forum-wrapper .pt-bl-cmore__b:hover, .pt-forum-wrapper .pt-bl-cmore__b:focus, .pt-forum-wrapper .pt-bl-cmore__b:active { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; padding: 0; margin: 0; border: 0; border-radius: 0; background: transparent; color: var(--pt-ink-2); cursor: pointer; box-shadow: none; }
.pt-forum-wrapper .pt-bl-cmore__b:hover, .pt-forum-wrapper .pt-bl-cmore__b:focus-visible, .pt-forum-wrapper .pt-bl-cmore__b[aria-expanded="true"] { background: #F2F1EC; color: var(--pt-ink); }
.pt-bl-cmenu { position: absolute; left: 0; top: 100%; z-index: 20; min-width: 150px; background: #fff; border: 1px solid var(--pt-border-strong); box-shadow: 0 10px 24px rgba(0, 0, 0, .14); }
.pt-bl-cmenu[hidden] { display: none; }
.pt-forum-wrapper .pt-bl-cmenu button, .pt-forum-wrapper .pt-bl-cmenu button:hover, .pt-forum-wrapper .pt-bl-cmenu button:focus, .pt-forum-wrapper .pt-bl-cmenu button:active { display: block; width: 100%; padding: 10px 14px; margin: 0; border: 0; border-top: 1px solid var(--pt-border); border-radius: 0; background: #fff; color: var(--pt-ink); font: inherit; font-size: 13.5px; font-weight: 400; text-align: left; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-cmenu button:first-child { border-top: 0; }
.pt-forum-wrapper .pt-bl-cmenu button:hover, .pt-forum-wrapper .pt-bl-cmenu button:focus-visible { background: #F2F1EC; color: var(--pt-ink); }
.pt-bl-cmt__f .pt-ft-fb { font-weight: 600; }
@media (max-width: 640px) { .pt-bl-cbar .pt-bl-csort { margin-left: 0; } }

/* 7 Oct: the open comments end in one row — Load 20 more (left) · Close (right), so nobody scrolls back up to fold them */
.pt-bl-cmts__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--pt-border); padding: 0 16px 0 0; }
.pt-bl-cmts__foot[hidden] { display: none; }
.pt-forum-wrapper .pt-bl-cmts__foot .pt-bl-cmts__load, .pt-forum-wrapper .pt-bl-cmts__foot .pt-bl-cmts__load:hover, .pt-forum-wrapper .pt-bl-cmts__foot .pt-bl-cmts__load:focus, .pt-forum-wrapper .pt-bl-cmts__foot .pt-bl-cmts__load:active { width: auto; flex: 1 1 auto; border-top: 0; }
.pt-forum-wrapper .pt-bl-cmts__foot .pt-bl-cmts__close { margin-left: auto; flex: 0 0 auto; min-height: 44px; }
/* "View n earlier replies" — at the top of a long thread's replies */
.pt-forum-wrapper .pt-bl-earlier, .pt-forum-wrapper .pt-bl-earlier:hover, .pt-forum-wrapper .pt-bl-earlier:focus, .pt-forum-wrapper .pt-bl-earlier:active { display: block; margin: 0 0 4px; padding: 8px 0 8px 12px; border: 0; border-radius: 0; background: none; color: var(--pt-ink); font: inherit; font-size: 13px; font-weight: 600; text-align: left; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-earlier:hover, .pt-forum-wrapper .pt-bl-earlier:focus-visible { color: var(--pt-ink); text-decoration: underline; background: none; }
.pt-forum-wrapper .pt-bl-earlier.is-busy { opacity: .6; cursor: progress; }
/* 7 Oct: Follow build (hero) = heart, filled when following; Follow [builder] (side card) = person-plus, ink fill when following */
.pt-forum-wrapper #pt-fm-follow { display: inline-flex; align-items: center; gap: 6px; }
.pt-forum-wrapper #pt-fm-follow[aria-pressed="true"] svg { fill: currentColor; }
/* Following a member = a light fill + ink border, never a black block (Leon, 10 Oct 2026). */
.pt-forum-wrapper .pt-bl-btn[data-pt-bl-ufollow][aria-pressed="true"], .pt-forum-wrapper .pt-bl-btn[data-pt-bl-ufollow][aria-pressed="true"]:hover, .pt-forum-wrapper .pt-bl-btn[data-pt-bl-ufollow][aria-pressed="true"]:focus, .pt-forum-wrapper .pt-bl-btn[data-pt-bl-ufollow][aria-pressed="true"]:active { background: var(--pt-fill-control, #F2F1EC); border-color: var(--pt-ink); color: var(--pt-ink) !important; }
.pt-forum-wrapper .pt-bl-btn[data-pt-bl-ufollow][aria-pressed="true"]:hover { background: #E9E7E1; border-color: var(--pt-ink); color: var(--pt-ink) !important; }
/* 7 Oct: replies row — "View n earlier replies" left · "Hide replies" right */
.pt-bl-reprow { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 4px; padding-right: 16px; }   /* right edge lines up with the dates */
.pt-bl-reprow .pt-bl-earlier[hidden], .pt-bl-reprow .pt-bl-rephide[hidden] { display: none; }
.pt-forum-wrapper .pt-bl-reprow .pt-bl-earlier { margin: 0; }
.pt-forum-wrapper .pt-bl-rephide, .pt-forum-wrapper .pt-bl-rephide:hover, .pt-forum-wrapper .pt-bl-rephide:focus, .pt-forum-wrapper .pt-bl-rephide:active { display: inline-flex; align-items: center; gap: 4px; margin: 0 0 0 auto; padding: 8px 0; border: 0; border-radius: 0; background: none; color: var(--pt-ink-2); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; }
.pt-forum-wrapper .pt-bl-rephide:hover, .pt-forum-wrapper .pt-bl-rephide:focus-visible { color: var(--pt-ink); background: none; text-decoration: underline; }
/* "Paused": no update for 90 days (pt_bl_paused). Neutral, never red. */
.pt-fm-tag.pt-bl-paused { background: #F2F1EC; border: 1px solid #C9C7BF; color: #5C5A54; }
.pt-bl-hero__paused { margin-left: 8px; }
/* Mute and block (22-mute-block.php, A3): a hidden member's comment collapses to one line with Show. */
.pt-bl-cmt.is-mb-hidden { display: none; }
.pt-mb-ph { padding: 8px 16px; border-top: 1px solid var(--pt-border, #E4E2DB); font-size: 13px; color: #888780; }
.pt-forum-wrapper .pt-mb-ph button, .pt-forum-wrapper .pt-mb-ph button:hover, .pt-forum-wrapper .pt-mb-ph button:focus, .pt-forum-wrapper .pt-mb-ph button:active { padding: 0; border: 0; background: transparent; color: #5C5A54; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }

/* Removed by their author (Forum lessons A6, 10 Oct 2026): the words stay as a grey line so replies under it still make sense; no actions. */
.pt-bl-cmt.is-removed .pt-bl-cmt__t, .pt-ft-gone { color: #6b6b6b; font-style: italic; }
.pt-bl-cmt.is-removed .pt-bl-cmt__f { display: none; }
.pt-bl-upd__b.pt-ft-gone { margin-top: 0; margin-bottom: 0; }

/* Where you left off (Forum lessons B4, 10 Oct 2026): the line above the first comment since your last visit. */
.pt-bl-newdiv { display: flex; align-items: center; gap: 10px; margin: 14px 0 6px; color: #185FA5; font-size: 12px; font-weight: 700; letter-spacing: .02em; }
.pt-bl-newdiv::before, .pt-bl-newdiv::after { content: ''; flex: 1; height: 1px; background: #185FA5; opacity: .45; }
