/* §4 SIGNATURE — positioning composer: fill-in statement, option tray, agent checks, human sign-off */
.cbf-cmp__desk{background:var(--paper);border:1px solid var(--line-3);border-radius:var(--r-lg);box-shadow:var(--sh-2);overflow:hidden}
.cbf-cmp__bar{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap;padding:14px clamp(18px,2.4vw,32px);border-bottom:1px solid var(--line)}
.cbf-cmp__bar-r{display:inline-flex;align-items:center;gap:14px;flex-wrap:wrap}
.cbf-cmp__auto{color:var(--blue)}
.cbf-cmp__body{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.cbf-cmp__draft{padding:clamp(28px,4vw,60px) clamp(20px,3.6vw,56px);display:flex;flex-direction:column;gap:clamp(28px,3.4vw,44px);min-width:0}

.cbf-cmp__stmt{margin:0;font-family:var(--f-h);font-weight:500;font-size:clamp(1.4rem,2.6vw,2.3rem);line-height:1.42;letter-spacing:-.02em;color:var(--faint)}
.cbf-cmp__slot{appearance:none;font:inherit;letter-spacing:inherit;color:var(--ink);background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:left;border-radius:4px;box-shadow:inset 0 -2px 0 var(--line-3);transition:box-shadow var(--d2) var(--e),background-color var(--d2) var(--e),color var(--d2)}
.cbf-cmp__slot:hover{box-shadow:inset 0 -2px 0 var(--ink)}
.cbf-cmp__slot[aria-pressed="true"]{background:var(--blue-wash);box-shadow:inset 0 -2px 0 var(--blue)}
.cbf-cmp__slot.is-weak{color:var(--muted);text-decoration:underline wavy var(--blue-line);text-decoration-thickness:1.5px;text-underline-offset:.22em}
.cbf-cmp__val{display:inline}
.cbf-cmp__slot.is-swap .cbf-cmp__val{animation:cbfSwap .55s var(--e)}
@keyframes cbfSwap{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:none}}

.cbf-cmp__overlap{display:flex;flex-direction:column;gap:10px;margin-top:auto}
.cbf-cmp__struck{margin:0;display:flex;flex-wrap:wrap;gap:8px;min-height:34px;align-items:center}
.cbf-cmp__struck s{font-size:var(--t-sm);color:var(--muted);padding:5px 10px;border-radius:var(--r-xs);background:var(--paper-3);text-decoration:line-through;text-decoration-color:var(--blue);text-decoration-thickness:1.5px;animation:cbfWhy .45s var(--e)}
.cbf-cmp__none{font-size:var(--t-sm);color:var(--muted)}
.cbf-cmp__tray{margin:0;padding:22px 0 0;border:0;border-top:1px solid var(--line);min-width:0}
.cbf-cmp__legend{padding:0;margin-bottom:14px;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;float:left;width:100%}
.cbf-cmp__legend b{font-weight:500;font-size:var(--t-sm);color:var(--ink)}
.cbf-cmp__opts{clear:both;display:flex;flex-wrap:wrap;gap:10px}
.cbf-cmp__opt{position:relative;cursor:pointer}
.cbf-cmp__opt input{position:absolute;opacity:0;width:1px;height:1px}
.cbf-cmp__opt span{display:inline-flex;align-items:center;min-height:40px;padding:8px 16px;border-radius:var(--r-pill);border:1px solid var(--line-3);font-size:var(--t-sm);font-weight:500;color:var(--txt);line-height:1.35;background:var(--paper);transition:background-color var(--d2),border-color var(--d2),color var(--d2)}
.cbf-cmp__opt:hover span{border-color:var(--ink);color:var(--ink)}
.cbf-cmp__opt input:checked+span{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}
.cbf-cmp__opt input:focus-visible+span{outline:2px solid var(--blue);outline-offset:3px}

.cbf-cmp__test{padding:clamp(24px,3vw,44px) clamp(20px,3vw,44px);border-left:1px solid var(--line);background:var(--paper-2);display:flex;flex-direction:column;gap:22px;min-width:0}
.cbf-cmp__who{margin:0;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:var(--t-sm);font-weight:500;color:var(--ink)}
.cbf-cmp__who .cbf-mono{margin-left:auto;color:var(--faint)}
.cbf-cmp__pip{width:8px;height:8px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 4px var(--blue-wash-2)}
.cbf-cmp__checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.cbf-cmp__check{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.cbf-cmp__check:last-child{border-bottom:1px solid var(--line)}
.cbf-cmp__mark{position:relative;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line-3);margin-top:1px;transition:background-color .3s,border-color .3s}
.cbf-cmp__mark::after{content:"";position:absolute;left:50%;top:50%;opacity:0;transition:opacity .25s}
.cbf-cmp__check.is-pass .cbf-cmp__mark{background:var(--blue);border-color:var(--blue)}
.cbf-cmp__check.is-pass .cbf-cmp__mark::after{width:6px;height:10px;margin:-7px 0 0 -3px;border:solid var(--on-ink);border-width:0 2px 2px 0;transform:rotate(45deg);opacity:1}
.cbf-cmp__check.is-warn .cbf-cmp__mark{border-color:var(--ink)}
.cbf-cmp__check.is-warn .cbf-cmp__mark::after{content:"!";font-family:var(--f);font-size:12px;font-weight:600;color:var(--ink);transform:translate(-50%,-52%);opacity:1}
.cbf-cmp__check.is-checking .cbf-cmp__mark{border-style:dashed;border-color:var(--blue);background:none;animation:cbfSpin 1s linear infinite}
.cbf-cmp__check.is-checking .cbf-cmp__mark::after{opacity:0}
@keyframes cbfSpin{to{transform:rotate(360deg)}}
.cbf-cmp__ct{margin:0;display:flex;align-items:center;gap:10px;font-family:var(--f-h);font-weight:500;font-size:1.05rem;letter-spacing:-.012em;color:var(--ink)}
.cbf-cmp__res{font-family:var(--f);font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:3px 7px;border-radius:4px;background:var(--blue-wash);color:var(--blue-d)}
.cbf-cmp__check.is-warn .cbf-cmp__res{background:var(--paper-4);color:var(--ink)}
.cbf-cmp__check.is-checking .cbf-cmp__res{background:none;color:var(--faint)}
.cbf-cmp__cq{margin:4px 0 0;font-size:var(--t-xs);color:var(--faint)}
.cbf-cmp__why{margin:8px 0 0;font-size:var(--t-sm);line-height:1.5;color:var(--txt)}
.cbf-cmp__why.is-new{animation:cbfWhy .5s var(--e)}
@keyframes cbfWhy{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}

.cbf-cmp__sign{display:flex;flex-direction:column;gap:14px;margin-top:auto}
.cbf-cmp__sl{margin:0}
.cbf-cmp__line{position:relative;height:64px;border-bottom:1px solid var(--ink);display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.cbf-cmp__sig{width:min(220px,62%);height:48px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;clip-path:inset(0 100% 0 0);transition:clip-path 1.1s var(--e)}
.cbf-cmp__stamp{color:var(--blue);padding-bottom:8px;opacity:0;transform:translateY(4px);transition:opacity .4s var(--e) .7s,transform .4s var(--e) .7s;text-align:right}
.cbf-cmp__sign.is-signed .cbf-cmp__sig{clip-path:inset(0 0 0 0)}
.cbf-cmp__sign.is-signed .cbf-cmp__stamp{opacity:1;transform:none}
.cbf-cmp__acts{display:flex;flex-wrap:wrap;gap:10px}
.cbf-cmp__go[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.cbf-cmp__rule{margin:0;font-size:var(--t-xs);line-height:1.55;color:var(--muted)}

@media (max-width:1024px){
  .cbf-cmp__body{grid-template-columns:minmax(0,1fr)}
  .cbf-cmp__test{border-left:0;border-top:1px solid var(--line)}
}
.cbf-cmp__mini{display:none}
@media (max-width:1024px){.cbf-cmp__mini{display:inline;margin-left:auto;font-family:var(--f);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}}
@media (max-width:600px){.cbf-cmp__stamp{font-size:9px;letter-spacing:.08em}.cbf-cmp__bar{flex-direction:column;align-items:flex-start}}
@media (prefers-reduced-motion:reduce){
  .cbf-cmp__sig,.cbf-cmp__stamp{transition:none}
  .cbf-cmp__struck s,.cbf-cmp__check.is-checking .cbf-cmp__mark,.cbf-cmp__why.is-new,.cbf-cmp__slot.is-swap .cbf-cmp__val{animation:none}
}
