/* §5 decision rules — a case file (vertical tabs) and a ruling sheet: rule · answer · reasoning trace */
.cbf-rules__grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);column-gap:var(--bdh-gap-l);row-gap:36px;align-items:start}
.cbf-rules__cases{display:flex;flex-direction:column;gap:18px;min-width:0}
.cbf-rules__cap{margin:0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cbf-rules__tabs{display:flex;flex-direction:column;border-bottom:1px solid var(--line)}
.cbf-rules__case{appearance:none;background:none;border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer;padding:20px 0 20px 20px;position:relative;display:flex;flex-direction:column;gap:6px;font:inherit;color:inherit}
.cbf-rules__case::before{content:"";position:absolute;left:0;top:20px;bottom:20px;width:2px;background:var(--ink);transform:scaleY(0);transform-origin:top;transition:transform .5s var(--e)}
.cbf-rules__case[aria-selected="true"]::before{transform:none}
.cbf-rules__cn{font-family:var(--f);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.cbf-rules__ct{font-family:var(--f-h);font-weight:500;font-size:clamp(1.05rem,1.4vw,1.25rem);letter-spacing:-.012em;line-height:1.25;color:var(--muted);transition:color var(--d2)}
.cbf-rules__cx{font-size:var(--t-sm);line-height:1.5;color:var(--faint);display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .45s var(--e),opacity .45s var(--e)}
.cbf-rules__cx{overflow:hidden}
.cbf-rules__case:hover .cbf-rules__ct,.cbf-rules__case[aria-selected="true"] .cbf-rules__ct{color:var(--ink)}
.cbf-rules__case[aria-selected="true"] .cbf-rules__cx{grid-template-rows:1fr;opacity:1;color:var(--muted)}
.cbf-rules__case[aria-selected="true"] .cbf-rules__cn{color:var(--blue)}
.cbf-rules__note{margin:0;font-size:var(--t-xs);line-height:1.6;color:var(--muted);max-width:40ch}

.cbf-rules__panes{min-width:0}
.cbf-rules__pane{background:var(--paper);border:1px solid var(--line-3);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:clamp(20px,3vw,40px)}
.cbf-rules__head{margin:0 0 8px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.cbf-rules__tally{display:inline-flex;gap:6px;flex-wrap:wrap}
.cbf-rules__tally i{font-style:normal;font-family:var(--f);font-size:10px;letter-spacing:.08em;text-transform:uppercase;padding:3px 7px;border-radius:4px;border:1px solid var(--line-3);color:var(--muted)}
.cbf-rules__tally i.is-yes{background:var(--blue-wash);border-color:transparent;color:var(--blue-d)}
.cbf-rules__tally i.is-no{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}

.cbf-rules__list{list-style:none;margin:0;padding:0}
.cbf-rules__row{display:grid;grid-template-columns:minmax(0,1.05fr) 56px minmax(0,1.2fr);column-gap:clamp(16px,2vw,28px);align-items:start;padding:20px 0;border-bottom:1px solid var(--line)}
.cbf-rules__vn{margin:0;display:flex;align-items:baseline;gap:10px;font-family:var(--f-h);font-weight:500;font-size:1.02rem;letter-spacing:-.012em;line-height:1.3;color:var(--ink)}
.cbf-rules__vi{font-family:var(--f);font-size:10px;letter-spacing:.08em;color:var(--faint)}
.cbf-rules__vt{margin:6px 0 0;font-size:var(--t-sm);line-height:1.55;color:var(--muted)}
.cbf-rules__ans{margin:0;justify-self:center;width:48px;height:30px;border-radius:var(--r-pill);display:grid;place-items:center;font-family:var(--f);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-3);color:var(--muted)}
.is-yes .cbf-rules__ans{background:var(--blue);border-color:var(--blue);color:var(--on-ink)}
.is-no .cbf-rules__ans{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.is-cond .cbf-rules__ans{border-color:var(--blue);color:var(--blue-d)}
.is-na .cbf-rules__ans{border-style:dashed;color:var(--faint)}
.cbf-rules__trace{margin:0;display:flex;flex-direction:column;gap:6px;font-size:var(--t-sm);line-height:1.5;color:var(--txt)}
.cbf-rules__trace span{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px}
.cbf-rules__trace b{font-family:var(--f);font-weight:500;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);padding-top:.25em}
.is-na .cbf-rules__trace,.is-na .cbf-rules__vt{color:var(--faint)}

.cbf-rules__verdict{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 28px;align-items:end;padding-top:24px}
.cbf-rules__verdict p{margin:0;display:flex;flex-direction:column;gap:8px}
.cbf-rules__vl b{font-family:var(--f-h);font-weight:500;font-size:clamp(1.15rem,1.7vw,1.45rem);letter-spacing:-.015em;line-height:1.3;color:var(--ink);max-width:38ch}
.cbf-rules__own b{font-weight:500;font-size:var(--t-sm);color:var(--ink);padding-bottom:4px;border-bottom:1px solid var(--ink)}

/* ruling plays in: answers stamp, traces slide like footnotes */
.cbf-rules__pane.is-run .cbf-rules__ans{animation:cbfStamp .5s var(--e) both;animation-delay:calc(var(--i) * 260ms + 120ms)}
.cbf-rules__pane.is-run .cbf-rules__trace span{animation:cbfTrace .55s var(--e) both;animation-delay:calc(var(--i) * 260ms + 260ms)}
.cbf-rules__pane.is-run .cbf-rules__trace span+span{animation-delay:calc(var(--i) * 260ms + 380ms)}
.cbf-rules__pane.is-run .cbf-rules__verdict{animation:cbfTrace .6s var(--e) both;animation-delay:1.3s}
@keyframes cbfStamp{from{opacity:0;transform:scale(1.5)}to{opacity:1;transform:none}}
@keyframes cbfTrace{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}

@media (max-width:1024px){.cbf-rules__grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .cbf-rules__row{grid-template-columns:minmax(0,1fr) 52px;row-gap:12px}
  .cbf-rules__trace{grid-column:1 / -1;padding:10px 12px;background:var(--paper-2);border-radius:var(--r-xs)}
  .cbf-rules__verdict{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .cbf-rules__pane.is-run .cbf-rules__ans,.cbf-rules__pane.is-run .cbf-rules__trace span,.cbf-rules__pane.is-run .cbf-rules__verdict{animation:none}
  .cbf-rules__case::before,.cbf-rules__cx{transition:none}
}
