/* Verifier stages 6–9 (v13): base rows, endpoints, tail register, strict sign. Prefix vfb-. Apache-2.0. */
.vfb-num{font-variant-numeric:tabular-nums;white-space:nowrap}
.vfb-table caption{caption-side:top}
.vfb-table th small,.vfb-role{display:block;font-size:13.5px;font-weight:400;color:var(--muted);white-space:nowrap}
.vfb-table td small{font-size:13.5px;color:var(--muted)}
.vfb-perm{font-family:var(--mono);font-size:15px}
.vfb-test{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.vfb-test .ex-result{align-self:stretch}
.vfb-lines{margin:4px 0;padding-left:22px}
.vfb-lines li{margin:4px 0}
.vfb-pending{color:var(--muted)}
.vfb-card{border:1px solid var(--soft-line);border-radius:8px;background:#fff;padding:10px 12px;min-width:0;font-size:16px;line-height:1.45}
.vfb-card h4{font-size:16.5px;margin:0 0 4px;color:var(--wine)}
.vfb-card p{margin:6px 0}
.vfb-event .vf-waiting{margin-bottom:8px}
.vfb-ends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
/* The complete list of strong score sequences, full width under the two end cards. */
.vfb-seq-block{margin:0}
.vfb-seq-block>.ex-note{margin:6px 0 0}
.vfb-seqs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;list-style:none;padding:0;margin:8px 0}
.vfb-seqs li{font-family:var(--mono);font-size:15px;word-spacing:-.2em;border:1px solid var(--wine-line);border-radius:6px;padding:3px 6px;background:var(--panel);text-align:center;white-space:nowrap;min-width:0}
/* Decomposition (32) for the chosen d: three labelled parts. */
.vfb-decomp{border:1px solid var(--soft-line);border-radius:8px;background:#fff;padding:8px 12px;font-size:16px;line-height:1.45}
.vfb-decomp p{margin:6px 0}
.vfb-parts{list-style:none;padding:0;margin:6px 0;display:grid;gap:4px}
.vfb-parts li{display:grid;grid-template-columns:7.5em minmax(0,1fr) auto;gap:4px 12px;align-items:baseline;padding:4px 0;border-bottom:1px solid var(--soft-line)}
.vfb-parts li:last-child{border-bottom:0}
.vfb-part-name{font-weight:700;color:var(--wine)}
.vfb-part-math{min-width:0;overflow-x:auto;overflow-y:hidden;padding:2px 0}
.vfb-parts small{font-size:14px;color:var(--muted);white-space:nowrap}
.vfb-row-table td.vfb-w{padding-top:7px;padding-bottom:7px}
/* Register column: the sign and the run mark go on their own line, so wide values never push them out of view. */
.vfb-reg-table small.vfb-z-note{display:block;font-size:13.5px}
.vfb-zlong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
/* Size buttons: separate bordered buttons that wrap cleanly (the shared .seg-options frame does not wrap well). */
.vfb-lab .ex-controls .seg-options{border:0;border-radius:0;background:none;overflow:visible}
.vfb-lab .ex-controls .seg-options .btn{border:1px solid var(--control-line);border-radius:7px;min-width:48px}
.vfb-lab .ex-controls .seg-options .btn[aria-pressed=true]{border-color:var(--wine)}
.vfb-table th .btn{min-height:44px}
.vfb-def{margin:0}
.vfb-nw{white-space:nowrap}
.vfb-buttons{display:flex;flex-wrap:wrap;gap:8px}
.vfb-flow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}
.vfb-box{border:1px solid var(--line);border-radius:8px;padding:6px 10px;background:#fff;display:flex;flex-direction:column;gap:2px;max-width:100%;overflow-x:auto;min-width:0}
.vfb-box small{font-size:13px;color:var(--muted)}
.vfb-box.is-new{border:2px solid var(--teal)}
.vfb-op{font-size:15px;color:var(--muted)}
.vfb-arith{overflow-x:auto;max-width:100%;font-size:15px;line-height:1.7}
.vfb-match{color:var(--teal);font-weight:700;white-space:nowrap}
.vfb-reg-table td,.vfb-reg-table th{vertical-align:top}
.vfb-branches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;list-style:none;padding:0;margin:6px 0}
.vfb-branch{border:1px dashed var(--control-line);border-radius:8px;padding:6px 9px;font-size:15px;line-height:1.35;color:var(--muted);display:flex;flex-direction:column;gap:2px}
.vfb-branch b{color:var(--ink)}
.vfb-branch.is-on{border:2px solid var(--teal);background:#fff;color:var(--ink)}
.vfb-here{align-self:flex-start;font-size:13px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:#fff;background:var(--teal);border-radius:4px;padding:0 6px}
.vfb-squares{font-family:var(--mono);font-size:15px;overflow-wrap:anywhere;border-left:3px solid var(--teal-line);padding:2px 10px;margin:6px 0;background:#fff}
.vfb-squares p{margin:3px 0}
.vfb-verdict{font-size:17px}
.vfb-warn{padding:8px 10px;border:1px solid var(--ochre-line);border-radius:7px;background:var(--ochre-tint);color:var(--ink)}
.vfb-sign-two{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.vfb-sign-text{min-width:0}
.vfb-sign-text h4{font-size:16.5px;margin:0 0 4px}
.vfb-big{font-variant-numeric:tabular-nums;font-weight:700}
.ex-result.vfb-idle{background:var(--panel);border-left-color:var(--line)}
.vfb-dir{max-width:340px}
.vfb-dir .vfb-pos{fill:var(--teal-tint)}
.vfb-dir .vfb-circle{fill:none;stroke:var(--line);stroke-width:1.5}
.vfb-dir .vfb-axis{stroke:#8a9196;stroke-width:1}
.vfb-dir .vfb-boundary{stroke:var(--wine);stroke-width:2.5}
.vfb-dir .vfb-ray{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 3}
.vfb-dir .vfb-dot{fill:var(--ink);stroke:#fff;stroke-width:2}
.vfb-dir text{font-size:13.5px;fill:var(--muted)}
.vfb-dir .vfb-axis-label{font-style:italic;fill:var(--ink);font-size:16px}
.vfb-dir .vfb-line-label{fill:var(--wine);font-size:13.5px}
.vfb-dir .vfb-sign-label{font-size:16px;font-weight:700;fill:var(--teal)}
.vfb-dir .vfb-sign-label.is-neg{fill:var(--muted)}
.vfb-presets-wrap{display:flex;flex-direction:column;gap:6px}
.vfb-presets-wrap .ex-note{margin:0}
.vfb-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:6px}
.vfb-presets .btn{flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;gap:1px;min-height:52px;padding:6px 10px;white-space:normal;overflow-wrap:anywhere;min-width:0}
.vfb-presets .btn small{font-size:13.5px;color:var(--muted);line-height:1.25}
.vfb-presets .btn[aria-pressed=true] small{color:#fff}
.vfb-pair{font-family:var(--mono);font-size:15.5px}
#vfb-sign-small .ex-entry input[type=text]{width:min(320px,100%)}
.vfb-cap{margin:0}
.vfb-table td.num{padding-right:16px}
@media(max-width:760px){.vfb-sign-two{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){
 /* Tables with labelled cells stack into one block per row on a phone: no sideways scrolling, no clipped columns. */
 .vfb-stack,.vfb-stack tbody,.vfb-stack tfoot{display:block;width:100%}
 .vfb-stack thead{display:none}
 .vfb-stack tr{display:block;border-bottom:1px solid var(--soft-line);padding:6px 4px}
 .vfb-stack th,.vfb-stack td{display:block;border:0;padding:2px 4px;text-align:left}
 .vfb-stack th .btn{min-width:88px}
 .vfb-stack td[data-label]::before{content:attr(data-label) ": ";color:var(--muted);font-size:13.5px}
 .vfb-stack td.vfb-skip{display:none}
 .vfb-stack .vfb-num,.vfb-stack td.num{white-space:normal;overflow-wrap:anywhere;padding-right:4px;text-align:left}
 .vfb-stack th small{display:inline;margin-left:8px}
 .vfb-ends,.vfb-branches{grid-template-columns:minmax(0,1fr)}
 .vfb-presets{grid-template-columns:repeat(2,minmax(0,1fr))}
 .vfb-seqs{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
 .vfb-seqs li{font-size:14.5px;padding:3px 4px}
 .vfb-parts li{grid-template-columns:minmax(0,1fr)}
 .vfb-dir{max-width:300px}
}
