/* Combine page. Uses host theme tokens when present, with fallbacks. */
.cb{--cb-up:var(--up,#2e6b3f);--cb-down:var(--down,#9a2c25);--cb-warn:var(--warn,#b26b00);--cb-muted:var(--muted,#6b7280);--cb-border:var(--border,#e5e7eb);--cb-soft:var(--surface-2,#f4f5f7);--cb-chip:var(--chip,#eef0f4);--cb-text:var(--text,#111);--cb-accent:var(--accent)}
.cb-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px}.cb-h h3{margin:0}
.cb-sub{color:var(--cb-muted);font-size:12.5px}
.cb-bar{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:14px}
.cb-bar label{display:flex;gap:6px;align-items:center;font-size:13px;color:var(--cb-muted)}
.cb-bar select,.cb-bar input{font:inherit;font-size:13px;padding:5px 10px;border:1px solid var(--cb-border);border-radius:8px;background:var(--surface,#fff);color:var(--cb-text);max-width:100%}
.cb-state{font-size:12.5px;color:var(--cb-muted)}.cb-state.err{color:var(--cb-down)}
.cb-pick{border:1px solid var(--cb-border);border-radius:12px;padding:10px 12px;margin-bottom:14px}
.cb-pick-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.cb-pick-h .btn{margin-left:auto}
.cb-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.cb-col{display:grid;gap:4px;align-content:start}
.cb-tf{font-weight:700;font-size:13px}
.cb-rec{display:flex;gap:6px;align-items:center;font-size:12.5px;padding:4px 8px;border:1px solid var(--cb-border);border-radius:8px;cursor:pointer}
.cb-rec.on{border-color:var(--cb-accent);background:rgba(83,74,183,.08)}
.cb-badge{font-style:normal;font-size:10.5px;font-weight:600;color:var(--cb-accent)}
.cb-empty{padding:16px;text-align:center;color:var(--cb-muted)}
.cb-warn{padding:8px 12px;border-radius:10px;margin-bottom:12px;font-size:13px;color:var(--cb-warn);background:color-mix(in srgb,var(--cb-warn) 12%,transparent)}
.cb-verdict{border:1.5px solid var(--cb-border);border-left-width:5px;border-radius:12px;padding:12px 16px;margin-bottom:14px;display:grid;gap:8px}
.cb-verdict h4{margin:2px 0 0;font-size:18px}.cb-verdict ul{margin:0;padding-left:18px;font-size:13px;display:grid;gap:3px}
.cb-verdict.t-hi{border-left-color:var(--cb-up)}.cb-verdict.t-md{border-left-color:var(--cb-warn)}.cb-verdict.t-lo{border-left-color:var(--cb-muted)}
.cb-bias{max-width:360px}.cb-bias-t{display:flex;justify-content:space-between;font-size:10.5px;color:var(--cb-muted)}
.cb-bias-g{position:relative;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--cb-down),var(--cb-chip) 50%,var(--cb-up))}
.cb-bias-g i{position:absolute;top:-4px;width:4px;height:16px;border-radius:2px;background:var(--cb-text);transform:translateX(-50%)}
.cb-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:14px;margin-bottom:14px}
@media (max-width:820px){.cb-grid{grid-template-columns:1fr}}
.cb-box{border:1px solid var(--cb-border);border-radius:12px;padding:12px 14px;min-width:0}
.cb-box-h{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.cb-tol{margin-left:auto;display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--cb-muted)}
.cb-tbl{overflow-x:auto}.cb-tbl table{width:100%;border-collapse:collapse;font-size:13px}
.cb-tbl th,.cb-tbl td{padding:6px 8px;border-bottom:1px solid var(--cb-border);text-align:left;vertical-align:top}
.cb-tbl .n{text-align:right;font-variant-numeric:tabular-nums}
.cb-up{color:var(--cb-up);font-weight:600}.cb-down{color:var(--cb-down);font-weight:600}.cb-md-t{color:var(--cb-warn);font-weight:600}
.cb-lv{font-size:11px;font-weight:600}
.cb-lo{color:var(--cb-muted)}.cb-md{color:var(--cb-warn)}.cb-hi{color:var(--cb-up)}
.cb-pill{font-size:11px;font-weight:600;border-radius:999px;padding:1px 8px;white-space:nowrap;background:color-mix(in srgb,currentColor 14%,transparent)}
.cb-ladder{width:100%;height:auto;display:block;margin-bottom:10px;font-variant-numeric:tabular-nums}
.cb-ladder .cl{fill:var(--cb-accent)}
.cb-ladder .lv{stroke-width:2}.cb-ladder .lv.r{stroke:#D85A30}.cb-ladder .lv.s{stroke:#1D9E75}.cb-ladder .lv.flip{stroke-dasharray:4 3;stroke:var(--cb-muted)}
.cb-ladder .px{stroke:var(--cb-accent);stroke-width:2.5}.cb-ladder .pxl{font-size:11px;font-weight:700;fill:var(--cb-accent)}
/* ladder component (scoped copy of the record view's S/R styles) */
.cbl{display:grid;gap:0;min-width:0}
.cbl-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.cbl-top [data-l="help"]{margin-left:auto}
.cbl .btn{padding:3px 10px;font-size:13px}
.cbl-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin-bottom:12px}
.cbl-guide>div{border:1px solid var(--cb-border);border-left:3px solid var(--cb-accent);border-radius:10px;padding:8px 12px;display:grid;gap:3px;background:var(--cb-soft)}
.cbl-guide b{font-size:13px}.cbl-guide span{font-size:12px;color:var(--cb-muted)}
.cbl-guide kbd{font:inherit;font-size:11px;border:1px solid var(--cb-border);border-bottom-width:2px;border-radius:4px;padding:0 5px;background:var(--surface,#fff)}
.cbl .sr-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 10px;font-size:12px;color:var(--cb-muted)}
.cbl .sr-leg{display:flex;flex-wrap:wrap;gap:16px}.cbl-it{display:flex;align-items:center;gap:6px}
.cbl .sr-sw{width:22px;height:10px;background:linear-gradient(90deg,rgba(216,90,48,.25) 50%,rgba(29,158,117,.25) 50%);border-radius:2px;display:inline-block}
.cbl .sr-ctl{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap}
.cbl .sr-ctl label{display:flex;align-items:center;gap:6px;margin-right:6px}
.cbl .sr-ctl input[type=range]{width:110px;accent-color:#BA7517}
.cbl .sr-ctl b{min-width:120px;color:var(--cb-text);font-variant-numeric:tabular-nums}
.cbl .sr-ctl .btn{padding:3px 9px;min-width:30px}
.cbl [data-z="full"].on{background:var(--cb-accent);color:#fff;border-color:var(--cb-accent)}
.cbl .sr-sep{width:1px;height:20px;background:var(--cb-border);margin:0 4px}
.cbl .sr-hint{font-size:11.5px;color:var(--cb-muted);margin:-4px 0 6px}
.cbl .sr-svg{max-width:1000px;overflow-x:auto;cursor:grab;touch-action:pan-x;user-select:none;border:1px solid var(--cb-border);border-radius:10px;padding:6px 4px}
.cbl .sr-svg.drag{cursor:grabbing}
.cbl .lbl-h{font-weight:600;font-size:14px;margin-bottom:8px}
.cbl .tbl{overflow-x:auto}.cbl table{width:100%;border-collapse:collapse;font-size:13px}
.cbl th,.cbl td{padding:6px 8px;border-bottom:1px solid var(--cb-border);text-align:left}.cbl .n{text-align:right;font-variant-numeric:tabular-nums}
.cbl tr[data-cl]{cursor:pointer}.cbl tr[data-cl]:hover{background:var(--cb-soft)}
.cbl .tg{font-size:11px;border-radius:999px;padding:0 6px;background:var(--cb-chip)}
.cbl .sr-bar-s{display:inline-block;width:80px;height:6px;border-radius:3px;background:var(--cb-border);overflow:hidden;vertical-align:middle}
.cbl .sr-bar-s i{display:block;height:100%;background:#BA7517}
.cbl.cbl-full{position:fixed;inset:20px;z-index:40;background:var(--surface,#fff);border:1px solid var(--cb-border);border-radius:16px;padding:14px 18px;overflow:auto;box-shadow:0 0 0 100vmax rgba(0,0,0,.4),0 20px 60px rgba(0,0,0,.3);align-content:start}
.cbl.cbl-full .sr-svg{max-width:none}

/* z-score map */
.zm{position:relative;--zm-hi:color-mix(in srgb,var(--cb-up) 13%,transparent);--zm-md:color-mix(in srgb,var(--cb-warn) 12%,transparent);--zm-lo:color-mix(in srgb,var(--cb-muted) 8%,transparent)}
.zm-svg{width:100%;height:auto;display:block;max-width:460px;margin:0 auto;font-variant-numeric:tabular-nums;user-select:none;-webkit-user-select:none}
.zm-z{stroke:var(--surface,#fff);stroke-width:1.5}.zm-z.zm-hi{fill:var(--zm-hi)}.zm-z.zm-md{fill:var(--zm-md)}.zm-z.zm-lo{fill:var(--zm-lo)}
.zm-0{stroke:var(--cb-muted);stroke-opacity:.18}
.zm-th{stroke:var(--cb-muted);stroke-opacity:.6;stroke-dasharray:3 3}
.zm-zl rect{fill:var(--surface,#fff);fill-opacity:.85}.zm-zl text{font-size:9.5px;font-weight:600}
.zm-zl.zm-hi text{fill:var(--cb-up)}.zm-zl.zm-md text{fill:var(--cb-warn)}.zm-zl.zm-lo text{fill:var(--cb-muted)}
.zm-t{font-size:9.5px;fill:var(--cb-muted)}.zm-t.th{font-weight:700;fill:var(--cb-text)}
.zm-ax{font-size:10.5px;fill:var(--cb-muted);font-weight:600}
.zm-p{cursor:pointer;outline:none}.zm-hit{fill:transparent}
.zm-d{fill:var(--surface,#fff);stroke:var(--cb-text);stroke-width:1.8;transition:r .12s}
.zm-d.clip{stroke-dasharray:2.5 2}
.zm-p path.up{fill:var(--cb-up)}.zm-p path.dn{fill:var(--cb-down)}
.zm-l{font-size:11px;font-weight:700;fill:var(--cb-text);paint-order:stroke;stroke:var(--surface,#fff);stroke-width:3px;stroke-linejoin:round}
.zm-c{font-weight:500;fill:var(--cb-muted)}
.zm-p.zm-hl .zm-d,.zm-p:focus .zm-d{r:10;stroke:var(--cb-accent);stroke-width:2.5}
.zm-mv{fill:none;stroke:var(--cb-accent);stroke-width:1.6;stroke-opacity:.75}.zm-mv.zm-hl{stroke-opacity:1;stroke-width:2.4}.zm-ahp{fill:var(--cb-accent)}
.zm-tip{position:absolute;pointer-events:none;font-size:12px;background:var(--cb-text);color:var(--surface,#fff);padding:5px 9px;border-radius:8px;white-space:nowrap;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.zm-leg{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;font-size:11.5px;color:var(--cb-muted);margin-top:6px}
.zm-leg span{display:inline-flex;align-items:center;gap:5px}.zm-leg .up{color:var(--cb-up)}.zm-leg .dn{color:var(--cb-down)}
.zm-sw{width:12px;height:12px;border-radius:3px;display:inline-block}.zm-sw.zm-hi{background:var(--zm-hi);outline:1px solid var(--cb-up)}.zm-sw.zm-md{background:var(--zm-md);outline:1px solid var(--cb-warn)}.zm-sw.zm-lo{background:var(--zm-lo);outline:1px solid var(--cb-border)}
.zm-zoom{position:absolute;top:0;right:0;z-index:1;width:28px;height:28px;border:1px solid var(--cb-border);border-radius:7px;background:var(--surface,#fff);color:var(--cb-text);cursor:pointer;font-size:15px;line-height:1}.zm-zoom:hover{border-color:var(--cb-accent);color:var(--cb-accent)}
.zm-dlg{width:min(94vw,1000px);max-height:94vh;border:none;border-radius:14px;padding:30px 18px 16px;background:var(--surface,#fff);color:var(--cb-text);box-shadow:0 20px 60px rgba(0,0,0,.3)}.zm-dlg::backdrop{background:rgba(0,0,0,.5)}
.zm-dlg .zm-svg{max-width:none;max-height:calc(94vh - 110px)}
.zm-x{position:absolute;top:6px;right:8px;border:none;background:none;font-size:18px;color:var(--cb-muted);cursor:pointer}.zm-x:hover{color:var(--cb-text)}
@media print{.zm-zoom{display:none}}
.cb-tbl tr[data-ztf]{transition:background .12s}.cb-tbl tr.zm-hl{background:rgba(83,74,183,.08)}
