/* CFO section. Styled only from core/tokens.css (Bleu design system, 1A rings, 2A figures). */
.cfo{display:flex;flex-direction:column;gap:20px;max-width:1100px}
.cfo h1{font:700 clamp(26px,3.4vw,34px)/1.15 var(--font-display);color:var(--bleu-blue);margin:0;text-wrap:balance}
.cfo h2{font:700 19px/1.25 var(--font-display);margin:0}
.cfo .sub{color:var(--bleu-muted);margin:4px 0 0;font-size:14px}
.cfo-head{display:flex;flex-wrap:wrap;gap:12px;align-items:end;justify-content:space-between}
.cfo-tabs{display:flex;gap:6px;flex-wrap:wrap}
.cfo-tabs button{border:1px solid var(--bleu-line);background:var(--bleu-card);color:var(--bleu-ink);border-radius:var(--radius-pill);padding:7px 14px;font:600 13px var(--font-ui);cursor:pointer}
.cfo-tabs button[aria-pressed="true"]{background:var(--bleu-btn);color:var(--bleu-btn-ink);border-color:var(--bleu-btn)}
.cfo-card{background:var(--bleu-card);border:1px solid var(--bleu-line);border-radius:var(--radius-card);padding:18px 20px;display:flex;flex-direction:column;gap:14px;min-width:0}
.cfo-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px}
.cfo-stat{display:flex;flex-direction:column;gap:2px}
.cfo-stat b{font:700 30px/1.1 var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.cfo-stat span{font-size:13px;color:var(--bleu-muted)}
.cfo-stat.late b{color:var(--bleu-danger)}
.cfo-tablewrap{overflow-x:auto}
.cfo table{width:100%;border-collapse:collapse;font-size:14px}
.cfo th{text-align:left;font:600 12px var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--bleu-muted);padding:8px 10px;border-bottom:1px solid var(--bleu-line);white-space:nowrap}
.cfo td{padding:10px;border-bottom:1px solid var(--bleu-line);vertical-align:top}
.cfo tr.click{cursor:pointer}.cfo tr.click:hover td{background:var(--bleu-sunk)}
.cfo .num{text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums;white-space:nowrap}
.cfo .code{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--bleu-muted)}
.cfo-pill{display:inline-block;font:600 12px var(--font-ui);border-radius:var(--radius-pill);padding:3px 10px;white-space:nowrap}
.cfo-pill.draft{background:var(--bleu-sunk);color:var(--bleu-muted)}
.cfo-pill.sent,.cfo-pill.submitted{background:var(--bleu-blue-soft);color:var(--bleu-blue)}
.cfo-pill.partly_paid,.cfo-pill.due{background:var(--bleu-warn-bg);color:var(--bleu-warn)}
.cfo-pill.paid{background:var(--bleu-ok-bg);color:var(--bleu-ok)}
.cfo-pill.void,.cfo-pill.late{background:var(--bleu-danger-bg);color:var(--bleu-danger)}
.cfo-seg{font:600 11px var(--font-ui);border-radius:6px;padding:2px 7px}
.cfo-seg.MC{background:var(--bleu-mc-bg);color:var(--bleu-mc)}.cfo-seg.SS{background:var(--bleu-ss-bg);color:var(--bleu-ss)}.cfo-seg.PT{background:var(--bleu-sunk);color:var(--bleu-muted)}
.cfo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px}
.cfo label.fld{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--bleu-muted);min-width:0}
.cfo label.fld.wide{grid-column:1/-1}
.cfo input,.cfo select,.cfo textarea{font:14px var(--font-ui);color:var(--bleu-ink);background:var(--bleu-bg);border:1px solid var(--bleu-line);border-radius:8px;padding:8px 10px;width:100%;min-width:0}
.cfo input[type=number]{font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:right}
.cfo textarea{min-height:64px;resize:vertical}
.cfo input:disabled,.cfo select:disabled,.cfo textarea:disabled{opacity:.75}
.cfo-btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cfo-btn{font:600 14px var(--font-ui);border-radius:var(--radius-pill);padding:9px 18px;border:1px solid var(--bleu-line);background:var(--bleu-card);color:var(--bleu-ink);cursor:pointer;white-space:nowrap}
.cfo-btn.primary{background:var(--bleu-btn);color:var(--bleu-btn-ink);border-color:var(--bleu-btn)}
.cfo-btn.sm{font-size:13px;padding:5px 12px}
.cfo-btn.link{border:0;background:none;color:var(--bleu-blue);padding:4px 6px}
.cfo-btn.danger{color:var(--bleu-danger)}
.cfo-btn:disabled{opacity:.45;cursor:not-allowed}
.cfo-btn:focus-visible,.cfo-tabs button:focus-visible{outline:2px solid var(--bleu-blue);outline-offset:2px}
.cfo-lines td{padding:6px}
.cfo-lines input,.cfo-lines select{padding:6px 8px}
.cfo-lines .desc{min-width:220px}
.cfo-totals{display:flex;flex-direction:column;gap:6px;align-self:end;min-width:260px}
.cfo-totals div{display:flex;justify-content:space-between;gap:24px;font-variant-numeric:tabular-nums}
.cfo-totals .grand{font:700 22px var(--font-num);border-top:1px solid var(--bleu-line);padding-top:8px}
.cfo-totals .internal{font-size:12.5px;color:var(--bleu-muted)}
.cfo-check{display:flex;flex-direction:column;gap:8px}
.cfo-check li{display:flex;gap:10px;align-items:baseline;list-style:none;font-size:14px}
.cfo-check ul{margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.cfo-check i{font-style:normal;font-weight:700;width:18px;flex:none;text-align:center}
.cfo-check .ok i{color:var(--bleu-ok)}.cfo-check .no i{color:var(--bleu-danger)}.cfo-check .warn i{color:var(--bleu-warn)}
.cfo-check .ask{display:inline-flex;gap:6px;margin-left:6px}
.cfo-note{font-size:13px;color:var(--bleu-muted);margin:0}
.cfo-err{background:var(--bleu-danger-bg);color:var(--bleu-danger);border-radius:12px;padding:12px 14px;font-size:14px}
.cfo-empty{color:var(--bleu-muted);padding:18px 0;text-align:center}
.cfo-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between}
.cfo-inline{display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.cfo-inline label.fld{flex:1 1 140px}
.cfo-search{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.cfo-search input[type=search]{flex:1 1 260px;font-size:15px;padding:10px 14px;border-radius:var(--radius-pill)}
.cfo-show{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--bleu-muted)}
.cfo-show select{width:auto;min-width:140px}
.cfo-aging{margin:8px 0 0;display:grid;gap:2px;font-size:12.5px;color:var(--bleu-ink)}
.cfo-aging div{display:flex;justify-content:space-between;gap:16px;max-width:240px}
.cfo-aging dt{color:var(--bleu-muted)}.cfo-aging dd{margin:0;font-variant-numeric:tabular-nums;font-family:var(--font-num)}
.cfo-aging .zero{opacity:.55}
