.jbha-app{max-width:720px;margin:0 auto;font-family:inherit;color:#1f2937}
.jbha-card{background:#fff;border:1px solid #e9e4f5;border-radius:16px;padding:28px;box-shadow:0 6px 24px rgba(124,58,237,.08)}
.jbha-progress{height:10px;background:#ede9fe;border-radius:99px;overflow:hidden;margin:0 0 20px}
.jbha-progress>div{height:100%;width:0;background:linear-gradient(90deg,#8b5cf6,#6d28d9);border-radius:99px;transition:width .35s ease}
.jbha-step-label{font-size:13px;color:#7c3aed;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:6px}
.jbha-sys-title{font-size:22px;font-weight:800;margin:0 0 6px;color:#111827}
.jbha-sys-blurb{font-size:14px;color:#6b7280;margin:0 0 18px;line-height:1.5}
.jbha-q{padding:14px 0;border-top:1px solid #f3f0fb}
.jbha-q:first-of-type{border-top:0}
.jbha-q-text{font-size:15px;font-weight:600;margin-bottom:10px;line-height:1.45}
.jbha-opts{display:flex;flex-wrap:wrap;gap:8px}
.jbha-opt{flex:1 1 0;min-width:86px}
.jbha-opt input{position:absolute;opacity:0;pointer-events:none}
.jbha-opt span{display:block;text-align:center;font-size:13px;font-weight:600;padding:10px 6px;border:2px solid #e9e4f5;border-radius:10px;cursor:pointer;color:#6b7280;transition:all .15s}
.jbha-opt input:checked+span{background:#7c3aed;border-color:#7c3aed;color:#fff}
.jbha-opt input:focus-visible+span{outline:2px solid #7c3aed;outline-offset:2px}
.jbha-nav{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
.jbha-btn{border:0;border-radius:12px;padding:13px 26px;font-size:15px;font-weight:700;cursor:pointer}
.jbha-btn-primary{background:#7c3aed;color:#fff}
.jbha-btn-primary:hover{background:#6d28d9}
.jbha-btn-ghost{background:#f5f3ff;color:#6d28d9}
.jbha-btn:disabled{opacity:.5;cursor:not-allowed}
.jbha-err{display:none;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;padding:10px 14px;font-size:14px;margin-top:14px}
.jbha-lead p{margin:0 0 14px}
.jbha-lead label{display:block;font-size:14px;font-weight:700;margin-bottom:6px}
.jbha-lead input,.jbha-lead select{width:100%;padding:12px 14px;border:2px solid #e9e4f5;border-radius:10px;font-size:15px;box-sizing:border-box}
.jbha-lead input:focus,.jbha-lead select:focus{border-color:#7c3aed;outline:none}
.jbha-req{color:#dc2626}
/* results */
.jbha-results h2{font-size:24px;margin:0 0 8px;color:#111827}
.jbha-results h3{font-size:18px;margin:26px 0 12px;color:#111827}
.jbha-sig{background:#f5f3ff;border:1px solid #ddd6fe;border-radius:12px;padding:16px 18px;font-size:15px;line-height:1.55;margin:14px 0 6px}
.jbha-bar-row{margin:12px 0}
.jbha-bar-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.jbha-bar-name{font-size:14px;font-weight:700}
.jbha-bar-val{font-size:14px;font-weight:800;color:#6d28d9}
.jbha-bar{height:12px;background:#ede9fe;border-radius:99px;overflow:hidden}
.jbha-bar>div{height:100%;border-radius:99px;background:linear-gradient(90deg,#a78bfa,#7c3aed);width:0;transition:width .8s ease}
.jbha-band{font-size:12px;font-weight:700;padding:2px 10px;border-radius:99px;margin-left:8px;vertical-align:middle}
.jbha-high{background:#fee2e2;color:#b91c1c}
.jbha-mod{background:#ffedd5;color:#c2410c}
.jbha-mild{background:#fef9c3;color:#a16207}
.jbha-low{background:#dcfce7;color:#15803d}
.jbha-band-desc{font-size:13px;color:#6b7280;margin:4px 0 2px;line-height:1.5}
.jbha-top3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:14px 0}
.jbha-top3-card{background:#faf8ff;border:2px solid #ddd6fe;border-radius:12px;padding:16px}
.jbha-top3-rank{font-size:12px;font-weight:800;color:#7c3aed;text-transform:uppercase;letter-spacing:.05em}
.jbha-top3-name{font-size:16px;font-weight:800;margin:4px 0}
.jbha-top3-score{font-size:26px;font-weight:800;color:#6d28d9}
.jbha-cta{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 8px}
.jbha-cta a{flex:1 1 200px;text-align:center;text-decoration:none;border-radius:12px;padding:14px 20px;font-size:15px;font-weight:800}
.jbha-cta-book{background:#7c3aed;color:#fff}
.jbha-cta-prog{background:#f5f3ff;color:#6d28d9;border:2px solid #ddd6fe}
.jbha-disclaimer{font-size:12px;color:#9ca3af;line-height:1.6;margin-top:18px;border-top:1px solid #f3f0fb;padding-top:14px}
.jbha-spinner{display:none;text-align:center;padding:30px;font-size:15px;color:#6b7280}
@media(max-width:520px){.jbha-card{padding:20px}.jbha-opt{min-width:calc(33% - 8px)}}
