/* Outcome visualization: real, local data only. */
.recon-viz{margin:26px 0 30px;padding:26px 28px;border:1px solid #dce6f1;border-radius:22px;background:linear-gradient(125deg,#f7faff,#fff 65%);box-shadow:0 14px 40px rgba(20,45,76,.035)}
.recon-viz h3{font-size:21px;letter-spacing:-.035em;margin:0 0 5px}
.recon-viz p{font-size:13px;color:#66798d;margin:0}
.recon-viz-body{display:grid;grid-template-columns:minmax(185px,260px) 1fr;align-items:center;gap:28px;margin-top:20px}
.recon-viz-ring{position:relative;max-width:235px;margin:0 auto;width:100%;aspect-ratio:1}
.recon-viz-ring svg{display:block;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}
.recon-viz-ring circle{fill:none;stroke-width:22;transition:stroke-dasharray 850ms cubic-bezier(.2,.75,.2,1),stroke-dashoffset 850ms cubic-bezier(.2,.75,.2,1)}
.recon-viz-ring .recon-viz-track{stroke:#e6edf5;stroke-width:22}
.recon-viz-ring-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.recon-viz-ring-label strong{font-size:clamp(32px,4vw,46px);line-height:1;letter-spacing:-.055em;color:#14253d;font-variant-numeric:tabular-nums}
.recon-viz-ring-label span{font-size:11px;font-weight:650;color:#67798d;margin-top:7px}
.recon-viz-list{display:grid;gap:20px}
.recon-viz-row{display:grid;gap:7px}
.recon-viz-row-head{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:650;color:#2e425c}
.recon-viz-row-head strong{font-size:17px;font-variant-numeric:tabular-nums;color:#182b45}
.recon-viz-key{display:inline-flex;align-items:center;gap:9px}
.recon-viz-key:before{content:"";width:9px;height:9px;border-radius:3px;background:var(--viz-color)}
.recon-viz-bar{height:9px;background:#eaf0f6;border-radius:99px;overflow:hidden}
.recon-viz-bar span{display:block;width:0;height:100%;border-radius:99px;background:var(--viz-color);transition:width 850ms cubic-bezier(.2,.75,.2,1)}
.recon-viz-note{padding-top:17px;border-top:1px solid #e7edf5;margin-top:18px!important}
@media(max-width:640px){.recon-viz{padding:22px 18px}.recon-viz-body{grid-template-columns:1fr;gap:10px}.recon-viz-ring{max-width:190px}.recon-viz-list{gap:16px}}
@media(prefers-reduced-motion:reduce){.recon-viz-ring circle,.recon-viz-bar span{transition:none}}
@media print{.recon-viz{break-inside:avoid}.recon-viz-ring circle,.recon-viz-bar span{transition:none}}
