/* FeeBulldog — portal, admin and demo only. Loaded after styles.css on the
   pages whose scripts render these components, so marketing pages do not
   download them. Tokens come from styles.css and restate inside .dark. */

.conf-block{margin-top:4px}

/* ---------- JS-rendered table ----------
   Was a TH/TD inline string on every cell, in three drifting copies. Child
   combinators so a table nested in a cell keeps its own look. */
.jtable{width:100%;border-collapse:collapse;min-width:520px}
.jtable>*>tr>th{
  text-align:left;padding:8px 12px;border-bottom:1px solid var(--rule);
  font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--tone-waiting);
}
.jtable>*>tr>td{padding:9px 12px;border-bottom:1px solid var(--rule);font-size:.92rem}
.jtable.adm>*>tr>th{font-size:.78rem}
.jtable .r{text-align:right}

/* ---------- finding card (dashboard + demo) ---------- */
.f-row{margin:10px 0 0;display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.f-chip{
  font-size:.76rem;font-weight:600;padding:3px 9px;border-radius:3px;white-space:nowrap;
  background:var(--tone-waiting-tint);color:var(--tone-waiting);
}
.f-chip.tone-good{background:var(--tone-good-tint);color:var(--tone-good)}
.f-chip.tone-active{background:var(--tone-active-tint);color:var(--tone-active)}
.f-chip.tone-attention{background:var(--tone-attention-tint);color:var(--tone-attention)}
.f-chip.tone-closed{background:var(--tone-closed-tint);color:var(--tone-closed)}
.f-detail{font-size:.88rem;flex:1;min-width:200px}
.f-meta{font-size:.82rem;margin:9px 0 0}
.is-closed{opacity:.62}
.tnum{font-variant-numeric:tabular-nums}
.c-good{color:var(--tone-good)}

/* ---------- finding timeline (FB.stepsHtml in portal.js) ---------- */
.tl{margin-top:10px}
.tl summary{cursor:pointer;font-size:.82rem;color:var(--tone-waiting);list-style:none}
.tl ul{list-style:none;padding:8px 0 0;margin:0;border-top:1px solid var(--rule)}
.tl li{display:flex;gap:10px;align-items:baseline;padding:5px 0}
.tl li.tl-upcoming,.tl li.tl-skipped{opacity:.62}
.tl-dot{flex:0 0 9px;height:9px;border-radius:50%;background:var(--dot-idle);margin-top:.42em}
.tl-done .tl-dot{background:var(--tone-good)}
.tl-current .tl-dot{background:var(--rust)}
.tl-label{flex:1;font-weight:400;font-size:.87rem}
.tl-current .tl-label{font-weight:600}
.tl-hint{font-size:.79rem;font-weight:400}
.tl-when{font-size:.79rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.tl-proj{opacity:.7}
.tl-none{opacity:.6}

/* ---------- client claim timeline (app.js claimCard, GET /api/app/claims) ---------- */
.claims-block{margin-top:56px}
.claim-said{margin:12px 0 0;padding:0}
.claim-said figcaption{font-size:.78rem;color:var(--tone-waiting);margin:0 0 4px}
.claim-said blockquote{margin:0;padding:8px 12px;border-left:3px solid var(--rule);font-size:.88rem;white-space:pre-wrap;overflow-wrap:anywhere}
.claim-events{list-style:none;margin:10px 0 0;padding:8px 0 0;border-top:1px solid var(--rule)}
.claim-events li{display:flex;gap:10px;align-items:baseline;padding:3px 0}
.claim-events .tl-dot{background:var(--tone-good)}
.claim-ev{flex:1;font-size:.85rem}
