body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:#f7f4ef;color:#172929}.shell{max-width:880px;margin:0 auto;padding:28px 18px 80px}.panel{background:#fff;border:1px solid #e5ded4;border-radius:8px;padding:22px;margin:14px 0;box-shadow:0 2px 10px rgba(20,82,82,.04)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.btn,button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:0;border-radius:8px;background:#145252;color:white;padding:0 16px;font-weight:700;text-decoration:none;cursor:pointer}.btn.alt{background:#d9b65f;color:#132}.btn.ghost{background:#eef5f4;color:#145252}input,select,textarea{width:100%;box-sizing:border-box;border:1px solid #d7d0c7;border-radius:8px;padding:12px;margin:6px 0 14px;font:inherit}label{font-weight:650;display:block}.muted{color:#687878}.result{font-size:2.2rem;font-weight:800;color:#145252}.danger{color:#9f2929}.ok{color:#16744c}.list{width:100%;border-collapse:collapse}.list th,.list td{text-align:left;border-bottom:1px solid #eee;padding:10px}.badge{display:inline-block;border-radius:999px;padding:4px 10px;background:#eef5f4;color:#145252;font-size:.86rem}
/* ED questionnaire */
:root{--accent:#145252;--accent-soft:#eef5f4;--surface:#fff;--muted:#687878;--radius:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.questionnaire-panel{padding:18px 14px;overflow-x:hidden}.questionnaire-intro h1{line-height:1.25;margin:.35rem 0 .65rem}.progress-track{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;align-items:start;margin:18px 0 22px}.progress-step{min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:7px;color:#82908f;font-size:.75rem;text-align:center}.progress-segment{display:block;width:100%;height:4px;border-radius:999px;background:#eef1ef}.progress-step.active{color:var(--accent);font-weight:700}.progress-step.active .progress-segment{background:var(--accent)}.progress-label{display:block;white-space:nowrap}.questionnaire-section[hidden]{display:none}.section-heading{border-bottom:1px solid #eee8e0;padding-bottom:14px;margin-bottom:14px}.section-heading h2{margin:.2rem 0 .4rem;color:var(--accent)}.section-heading p{line-height:1.65;margin:.35rem 0}.section-icon{font-size:1.5rem;margin:0!important}.source-note{background:#fff8e7;border:1px solid #f1dfaa;border-radius:8px;padding:12px 13px;line-height:1.65;margin:0 0 14px}.question-card{box-sizing:border-box;border:.5px solid #e9e2d8;border-radius:var(--radius);padding:16px;margin:0 0 14px;background:var(--surface)}.question-number{color:var(--muted);font-size:12px;line-height:1.4;margin-bottom:5px}.question-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.question-heading h3{min-width:0;font-size:15px;line-height:1.6;margin:0;color:#203b3a}.question-optional{flex:none;border-radius:999px;background:var(--accent-soft);color:var(--accent);padding:3px 8px;font-size:.72rem;font-weight:700}.question-hint{font-size:.84rem;color:var(--muted);margin:.5rem 0}.answer-field{display:block;font-weight:400}.answer-input{margin-top:10px}.answer-options{display:grid;grid-template-columns:1fr;gap:8px;margin-top:12px}.answer-choice{box-sizing:border-box;display:flex;align-items:center;gap:12px;min-height:44px;padding:12px 14px;border:.5px solid #dcd8d0;border-radius:var(--radius);background:var(--surface);font-weight:500;line-height:1.45;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}.answer-choice:has(input:checked){border:2px solid var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:500}.answer-choice input{width:18px;height:18px;flex:0 0 18px;margin:0;accent-color:var(--accent)}.answer-choice span{min-width:0}.character-count{text-align:right;color:var(--muted);font-size:.78rem;margin-top:-8px}.wizard-actions{display:grid;grid-template-columns:1fr;gap:12px;margin-top:18px}.wizard-actions .btn{width:100%;min-width:0}.wizard-actions>span:empty{display:none}.questionnaire-panel .btn,.questionnaire-panel button{box-sizing:border-box;min-height:44px;padding:14px 16px}.consent-box{border-top:1px solid #e5ded4;margin-top:24px;padding-top:20px}.consent-box h2{font-size:1.15rem;color:var(--accent)}.consent-box p{line-height:1.7}.consent-choice{display:flex;align-items:flex-start;gap:10px;padding:10px 0;line-height:1.55}.consent-choice input{width:20px;height:20px;flex:none;margin:2px 0 0;accent-color:var(--accent)}.consent-review-note{font-size:.8rem}.submit-assessment{width:100%;margin-top:10px}.submit-assessment[disabled],.submit-assessment:disabled{background:#d7d0c7;color:var(--muted);cursor:not-allowed}.consent-warning{background:#fff8e7;border-left:3px solid #f1dfaa;border-radius:6px;color:#5b4a22;font-weight:650;line-height:1.6;padding:10px 12px;margin:8px 0}.questionnaire-status{line-height:1.7;margin:14px 0}.questionnaire-status.error{color:#9f2929}.questionnaire-status.ok{color:#16744c}.questionnaire-status .btn{margin-top:10px}.result-card{text-align:center}.result-score{font-size:3rem;font-weight:800;color:var(--accent);margin:18px 0}.result-score span{font-size:1.5rem;color:var(--muted)}
@media(min-width:620px){.questionnaire-panel{padding:26px}.questionnaire-intro h1{font-size:2rem}}
.mandatory-question-highlight{border-color:#c26a2d;outline:3px solid #e1a15f;outline-offset:2px;background:#fff8ed;scroll-margin-top:24px}
/* D-age-validation-v1 -- question-1 age check (client side). Reuses the existing
   error red from .questionnaire-status.error (#9f2929), no new colour. Separate
   from .mandatory-question-highlight above: that one means "unanswered", this
   one means "answered, but out of range or not a whole number". */
.question-card.age-invalid input{border-color:#9f2929}
.age-error{color:#9f2929;font-size:.85rem;line-height:1.6;margin:.6rem 0 0}
.age-error p{margin:0 0 4px}
.age-error p:last-child{margin-bottom:0}


/* ED report scaffold */
.ed-report-preview-page{max-width:980px;margin:0 auto}.ed-report-preview-banner{padding:12px 14px;border:1px solid #ead6a0;border-radius:8px;background:#fff8e7;color:#5b4a22}.ed-report{background:#fff;border:1px solid #e5ded4;border-radius:14px;box-shadow:0 3px 16px rgba(20,82,82,.06);overflow:hidden}.ed-report-header{display:flex;justify-content:space-between;gap:18px;padding:24px;border-bottom:1px solid #e8e1d8;background:#f5faf9}.ed-report-brand{font-size:1.7rem;font-weight:850;color:#145252;margin:0}.ed-report-kicker{font-size:.8rem;letter-spacing:.04em;color:#687878;margin:.35rem 0 0}.ed-report-meta{display:grid;gap:8px;margin:0;text-align:right}.ed-report-meta div{display:grid;gap:2px}.ed-report-meta dt,.ed-report-meta dd{margin:0}.ed-report-meta dt{font-size:.74rem;color:#687878}.ed-report-meta dd{font-weight:700;overflow-wrap:anywhere}.ed-report-score-block,.ed-report-prognosis,.ed-report-section,.ed-report-footer{padding:24px}.ed-report-score-block{background:#fff}.ed-report-score{font-size:3.1rem;font-weight:850;color:#145252;margin:.3rem 0}.ed-report-score span{font-size:1.45rem;color:#687878}.ed-report-score-block h1{margin:.1rem 0 1.1rem;color:#145252}.ed-report-score-bars{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.ed-report-score-bar-label{display:flex;justify-content:space-between;gap:6px;font-size:.78rem;color:#687878}.ed-report-score-track{height:8px;background:#e9f0ee;border-radius:999px;margin-top:7px;overflow:hidden}.ed-report-score-track span{display:block;height:100%;background:#145252;border-radius:999px}.ed-report-prognosis{margin:0 24px 24px;border:1px solid #d8e7e2;border-radius:10px;background:#f5faf9}.ed-report-prognosis[data-prognosis="assessment-first"]{border-color:#ead6a0;background:#fff8e7}.ed-report-prognosis h2,.ed-report-section h2,.ed-report-static-block h2{margin:.05rem 0 .7rem;color:#145252}.ed-report-prognosis p{line-height:1.7}.ed-report-prognosis li{margin:.35rem 0}.ed-report-section{border-top:1px solid #eee8e0}.ed-report-fields{display:block}.ed-report-field{margin:0;line-height:1.8}.ed-report-field + .ed-report-field{margin-top:1rem}.ed-report-footer{display:grid;gap:18px;border-top:1px solid #eee8e0;background:#f8f6f2}.ed-report-static-block{padding:16px;border:1px solid #e5ded4;border-radius:10px;background:#fff}.ed-report-static-block dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:0}.ed-report-static-block dl div{min-width:0}.ed-report-static-block dt{font-size:.78rem;color:#687878}.ed-report-static-block dd{margin:.2rem 0 0;overflow-wrap:anywhere}.ed-report-score-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.ed-report-score-main{min-width:0}.ed-report-audio{display:flex;align-items:center;gap:12px;flex:none}.ed-report-audio-play{flex:none;width:68px;height:68px;border-radius:50%;background:#145252;color:#fff;padding:0;display:inline-flex;align-items:center;justify-content:center}.ed-report-audio-play svg{width:26px;height:26px}.ed-report-audio-meta{display:flex;flex-direction:column;gap:2px}.ed-report-audio-label{font-weight:700;color:#145252}.ed-report-audio-duration{font-size:.82rem;color:#687878}.ed-report-divider{border:0;border-top:1px solid #e8e1d8;margin:0}.my-report-detail[hidden]{display:none}.my-report-body{padding:14px 0}.my-report-toggle[aria-expanded="true"]{background:#0e3d3d}.report-placeholder{color:#8a6a28;font-style:italic}.ed-report-crisis{border-color:#ead6a0;background:#fff8e7}
@media(max-width:619px){.shell{padding-left:12px;padding-right:12px}.ed-report-header{display:block;padding:18px}.ed-report-meta{text-align:left;margin-top:16px}.ed-report-score-block,.ed-report-section,.ed-report-footer{padding:18px}.ed-report-prognosis{margin:0 18px 18px;padding:18px}.ed-report-score-bars{grid-template-columns:1fr 1fr;gap:14px 10px}.ed-report-score{font-size:2.6rem}.ed-report-score-header{gap:14px}.ed-report-score-main,.ed-report-audio{flex:1 1 100%}.ed-report-audio{margin-top:4px}.ed-report-static-block dl{grid-template-columns:1fr}.ed-report-field{line-height:1.6}}
@media(min-width:620px){.ed-report-footer{grid-template-columns:repeat(3,minmax(0,1fr))}.ed-report-static-block dl{grid-template-columns:1fr}.ed-report-score-block{padding-bottom:28px}}
/* ED report visual treatment */
.ed-report-score-track .ed-report-score-fill{display:block;height:100%;border-radius:999px}
.ed-report-score-bar.ed-score-low .ed-report-score-fill{background:#c86f65}
.ed-report-score-bar.ed-score-middle .ed-report-score-fill{background:#d2a84f}
.ed-report-score-bar.ed-score-good .ed-report-score-fill{background:#3b946c}
.ed-report-score-bar[data-score-value="1"] .ed-report-score-fill{width:20%}
.ed-report-score-bar[data-score-value="2"] .ed-report-score-fill{width:40%}
.ed-report-score-bar[data-score-value="3"] .ed-report-score-fill{width:60%}
.ed-report-score-bar[data-score-value="4"] .ed-report-score-fill{width:80%}
.ed-report-score-bar[data-score-value="5"] .ed-report-score-fill{width:100%}
.ed-report-fields{max-width:72ch}
.ed-report-field{line-height:1.85}
.ed-report-pull-quote{margin:0 0 16px;padding:14px 18px;border-left:4px solid #145252;background:#f5faf9;color:#145252;font-size:1.2rem;font-weight:750;line-height:1.8}
.ed-report-highlight{border:1px solid #a9d4b5;border-radius:12px;padding:16px 18px;margin:0 0 16px;background:#edf8f1;color:#145252}
.ed-report-highlight p,.ed-report-partner-callout p,.ed-report-tobacco-block p{margin:0;line-height:1.85}
.ed-report-partner-callout{border:2px solid #145252;border-radius:12px;padding:16px 20px;margin:0 0 16px;text-align:center;background:#fff}
.ed-report-self-card{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;border:1px solid #d8e7e2;border-radius:12px;padding:16px;background:#f8fbfa}
.ed-report-self-card + .ed-report-self-card{margin-top:12px}
.ed-report-self-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#145252;color:#fff;font-weight:800}
.ed-report-self-lead{display:block;color:#145252;line-height:1.65}
.ed-report-self-body{margin:.45rem 0 0;line-height:1.85}
.ed-report-tobacco-block{padding:4px 0}
.ed-report-attempt-dots{display:flex;gap:8px;margin:0 0 12px}
.ed-report-attempt-dot{display:block;width:11px;height:11px;border-radius:50%;background:#cfd8d3}
.ed-report-attempt-dot:last-child{background:#3b946c}
.ed-report-vessels{background:#f5f7f4;border-top-color:#d6ddd6}
.ed-report-vessels .ed-report-fields{background:#f5f7f4}
@media(max-width:619px){.ed-report-score-bars{grid-template-columns:1fr}.ed-report-field,.ed-report-self-body,.ed-report-highlight p,.ed-report-partner-callout p,.ed-report-tobacco-block p{line-height:1.9}}
@media(max-width:390px){.ed-report-header,.ed-report-score-block,.ed-report-section,.ed-report-footer{padding:18px 16px}.ed-report-prognosis{margin:0 16px 16px;padding:16px}.ed-report-score-bars{grid-template-columns:1fr}.ed-report-field,.ed-report-self-body,.ed-report-highlight p,.ed-report-partner-callout p,.ed-report-tobacco-block p{line-height:2;max-width:68ch}}
/* D125 Task 2 -- the v4 answer_findings panel (ed_report_render_v4(), src/report.php) emits
   these classes but no rule ever styled them, so no row -- amber included -- read as visually
   distinct from any other; confirmed by grepping every existing stylesheet for
   "ed-report-finding" before writing this block: zero matches. v1/v2/v3 never emit these
   classes, so this is additive only -- nothing here can affect their rendering. */
.ed-report-findings{display:grid;border:1px solid #e5ded4;border-radius:10px;overflow:hidden}
.ed-report-finding-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:10px 14px;background:#fff;border-top:1px solid #eee8e0}
.ed-report-finding-row:first-child{border-top:none}
.ed-report-finding-label{color:#687878;font-size:.86rem}
.ed-report-finding-value{font-weight:700;text-align:right;overflow-wrap:anywhere}
.ed-report-finding-amber{background:#fff8e7;border-top-color:#ead6a0}
.ed-report-finding-amber .ed-report-finding-label,.ed-report-finding-amber .ed-report-finding-value{color:#8a6a28}
.ed-report-finding-legend{margin:10px 2px 0;font-size:.8rem;color:#8a6a28}
@media(max-width:619px){.ed-report-finding-row{flex-direction:column;gap:2px}.ed-report-finding-value{text-align:left}}

/* Checkout (D33/checkout wiring) */
.pay-status{border-radius:10px;padding:14px 16px;margin:0 0 12px;line-height:1.65}.pay-status.warning{background:#fff8e7;border:1px solid #f1dfaa;color:#5b4a22}.pay-status.danger{background:#fdeceb;border:1px solid #eab5b0;color:#9f2929}.pay-status.success{background:#edf8f1;border:1px solid #a9d4b5;color:#145252}.pay-status p{margin:.3rem 0}.pay-helper{margin:.4rem 0 0}.pay-btn[disabled]{opacity:.6;cursor:not-allowed}

/* Report status polling (D34) */
.report-status-preparing,.report-status-slow{border-radius:10px;padding:14px 16px;margin:0 0 12px;line-height:1.65}.report-status-preparing{background:#edf8f1;border:1px solid #a9d4b5;color:#145252}.report-status-slow{background:#fff8e7;border:1px solid #f1dfaa;color:#5b4a22}.report-status-heading{font-weight:700;margin:.3rem 0}.report-status-paid-line{margin:0 0 .3rem;font-weight:700}.report-status-note{margin:.3rem 0}.report-status-dots{display:flex;gap:6px;margin:10px 0 6px}.report-status-dots span{width:8px;height:8px;border-radius:50%;background:#145252;opacity:.3;animation:report-status-pulse 1.2s ease-in-out infinite}.report-status-dots span:nth-child(2){animation-delay:.2s}.report-status-dots span:nth-child(3){animation-delay:.4s}.report-status-bar{height:6px;border-radius:999px;background:#d8e7e2;overflow:hidden;margin-top:6px}.report-status-bar-fill{height:100%;width:40%;background:#145252;border-radius:999px;animation:report-status-bar-move 1.6s ease-in-out infinite}@keyframes report-status-pulse{0%,80%,100%{opacity:.3;transform:scale(1)}40%{opacity:1;transform:scale(1.3)}}@keyframes report-status-bar-move{0%{margin-left:-40%}100%{margin-left:100%}}
.account-block{margin-bottom:18px}.account-block h2{margin:0 0 10px;font-size:1.05rem;color:#145252}.account-block-list{display:flex;flex-direction:column;gap:6px;margin:0}.account-block-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid #eee}.account-block-row:last-child{border-bottom:0}.account-block-row dt{font-weight:650;color:#172929}.account-block-row dd{margin:0;color:#172929}.account-missing{color:#8a938d;font-style:normal}@media print{.account-block{display:none}}
.my-report-cards{display:flex;flex-direction:column;gap:14px;margin:14px 0}.my-report-card{position:relative;background:#fff;border:1px solid #e5ded4;border-radius:10px;padding:18px;box-shadow:0 2px 10px rgba(20,82,82,.04)}.my-report-card-menu{position:absolute;top:10px;right:10px}.my-report-menu-btn{background:transparent;color:#687878;min-height:32px;min-width:32px;padding:0 8px;font-size:1.2rem;line-height:1;border-radius:6px}.my-report-menu-btn:hover{background:#f2efe9}.my-report-menu{position:absolute;right:0;top:36px;background:#fff;border:1px solid #e5ded4;border-radius:8px;box-shadow:0 4px 16px rgba(20,41,41,.14);min-width:180px;z-index:5}.my-report-menu-remove-btn{display:block;width:100%;text-align:left;background:transparent;color:#9f2929;padding:10px 14px;border-radius:0;font-weight:600;min-height:auto}.my-report-menu-remove-btn:hover{background:#fbeeee}.my-report-card-date{margin:0 0 4px;color:#687878;font-size:.86rem}.my-report-card-title{margin:0 0 10px;font-size:1.05rem;color:#172929;padding-right:32px}.my-report-card-score{display:flex;align-items:center;gap:10px;margin-bottom:8px}.my-report-card-score-value{font-size:1.3rem;font-weight:800;color:#145252}.my-report-band-chip{display:inline-block;border-radius:999px;padding:4px 10px;background:#eef5f4;color:#145252;font-size:.86rem}.my-report-band-meter{height:6px;border-radius:999px;background:#e5ded4;overflow:hidden;margin-bottom:14px}.my-report-band-meter-fill{height:100%;background:#145252;border-radius:999px}.my-report-card-action{margin-top:10px}.my-report-card .pay-price-line{margin:0 0 8px}
.btn.danger{background:#9f2929;color:#fff}.btn.danger:hover{background:#7e2020}
.my-report-remove-dialog{border:0;border-radius:12px;padding:24px;max-width:420px;width:calc(100% - 40px);box-shadow:0 12px 40px rgba(20,41,41,.22)}.my-report-remove-dialog::backdrop{background:rgba(20,41,41,.5)}.my-report-remove-dialog-title{margin:0 0 12px;font-size:1.15rem;color:#172929}.my-report-remove-dialog-line{margin:0 0 10px;line-height:1.55}.my-report-remove-dialog-note{margin:0 0 18px}.my-report-remove-dialog-actions{display:flex;justify-content:flex-end;gap:10px}
.my-report-undo-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);display:flex;align-items:center;gap:14px;background:#172929;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:20;max-width:calc(100% - 40px)}.my-report-undo-bar[hidden]{display:none}.my-report-undo-bar .btn{background:#d9b65f;color:#132;min-height:36px}.my-report-remove-error{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#9f2929;color:#fff;padding:12px 16px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.25);z-index:20;max-width:calc(100% - 40px)}
@media (prefers-reduced-motion:no-preference){.my-report-undo-bar,.my-report-remove-error{animation:my-report-bar-in .2s ease-out}}@keyframes my-report-bar-in{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* D156 -- ED result-page styling only. Every rule below is scoped under
   .ed-result (co-occurring with the existing shared .panel/.result-card/
   .pay-widget/.pay-btn/.btn classes), so PME's result page, /my-reports/,
   render_report(), and the questionnaire -- none of which ever carry
   .ed-result -- are unaffected. No rule above this comment is modified. */
.result-card.ed-result{max-width:700px;margin:0 auto;border-radius:14px;padding:18px;text-align:left}
.ed-score-block{text-align:center}
.ed-result .result-score{font-size:44px}
.ed-band-pill{display:inline-block;border-radius:999px;padding:4px 14px;background:#f1e9d8;color:#3b2f1f;font-weight:700;font-size:1rem}
.ed-pattern{background:var(--accent-soft);border-radius:10px;padding:14px 16px;margin:18px 0}
.ed-pattern-intro{margin:0 0 6px;font-size:13px}
.ed-pattern-text{margin:0;font-size:16.5px;font-weight:700;color:var(--accent);line-height:1.85}
.ed-mind-body{border-top:1px solid #e8e1d8;padding-top:14px;margin-top:14px;font-weight:400;font-size:16.5px;line-height:1.85}
.ed-benefits{list-style:none;list-style-type:none;margin:14px 0;padding:0;padding-inline-start:0;display:flex;flex-direction:column;gap:12px}
.ed-benefits li{list-style-type:none;font-size:15.5px;font-weight:600;line-height:1.75;padding-left:24px;padding-inline-start:24px;position:relative;margin:0}
.ed-benefits li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--accent);opacity:.5}
.ed-benefits + p{font-size:15px;line-height:1.85}
.ed-price-group{text-align:center;margin:20px 0}
.ed-price{font-size:34px;font-weight:800;color:var(--accent);margin:0 0 4px}
.ed-price-terms{font-size:13px;margin:0 0 14px}
.ed-payment-methods{font-size:13px;margin:8px 0 0}
.ed-result .pay-widget{display:block;max-width:440px;margin:0 auto}
.ed-result .pay-btn{display:flex;width:100%;min-height:56px;border-radius:10px;font-size:17px;font-weight:700}
.ed-doctor-strip{display:flex;align-items:center;gap:12px;margin:20px 0}
.ed-doctor-meta{min-width:0}
.ed-doctor-name{font-size:15.5px;font-weight:700;margin:0}
.ed-doctor-creds{font-size:12.8px;margin:2px 0 0}
.ed-fineprint{font-size:12.8px;line-height:1.85;margin:10px 0 0}
.ed-retake-link{font-size:13.5px;color:var(--muted);text-decoration:underline;display:inline-block;margin-top:16px}
.ed-result .pay-btn:focus-visible,.ed-retake-link:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media(max-width:340px){.result-card.ed-result{padding:14px}.ed-price{font-size:30px}.ed-result .result-score{font-size:38px}}

/* D169 -- app-page site header & footer (layout()), from approved
   ojasrx-app-chrome-mockup.html. New tokens prefixed --hf- to avoid
   colliding with the existing --accent above (different color, used
   throughout the questionnaire/report/consent UI). */
:root{
  --hf-cream:#F7F2E7; --hf-cream-hi:#FCFAF4;
  --hf-ink:#17322A; --hf-ink-soft:#4A6A5D;
  --hf-green:#0E3A2C; --hf-green-lift:#164536;
  --hf-accent:#4E9B76; --hf-accent-dk:#2E7A57;
  --hf-sand:#E9DCC2;
  --hf-on-dark:#CFE0D6; --hf-on-dark-soft:#8FAEA0;
  --hf-rule-dark:rgba(207,224,214,.16);
}
/* full-bleed breakout: html_response() wraps layout()'s output in
   <main class="shell"> (max-width:880px, above) which we are not
   touching -- this cancels that width/centering so the chrome spans
   the viewport the same way it does on the marketing pages. */
.site-head,.site-foot,.brandband{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}

.site-head{background:var(--hf-cream);border-bottom:1px solid rgba(23,50,42,.10);padding:14px 34px;display:flex;align-items:center;justify-content:space-between;gap:24px;font-family:'Noto Sans Gujarati',system-ui,sans-serif}
.lockup{display:flex;align-items:center;gap:11px;text-decoration:none;border-radius:8px}
.lockup:focus-visible{outline:2px solid var(--hf-accent-dk);outline-offset:3px}
.lockup .mark{flex:0 0 auto;display:block}
.wordmark{font-family:'Source Serif 4',Georgia,serif;font-weight:600;font-size:25px;line-height:1;letter-spacing:-.005em;color:var(--hf-ink)}
.wordmark .rx{color:var(--hf-accent-dk)}
.lockup .stack{display:flex;flex-direction:column;gap:3px}
.clinician{font-size:12px;line-height:1.25;color:var(--hf-ink-soft);font-weight:500}
.head-nav{display:flex;align-items:center;gap:8px}
.head-nav a{text-decoration:none;color:var(--hf-ink-soft);font-size:14.5px;font-weight:500;padding:8px 12px;border-radius:7px}
.head-nav a:hover{color:var(--hf-ink);background:rgba(23,50,42,.05)}
.head-nav a.primary{color:var(--hf-ink);border:1px solid rgba(23,50,42,.22);background:var(--hf-cream-hi)}
.head-nav a.primary:hover{border-color:rgba(23,50,42,.4);background:#fff}
.head-nav a:focus-visible{outline:2px solid var(--hf-accent-dk);outline-offset:2px}

.brandband{height:6px;background:var(--hf-sand)}
.site-foot{background:var(--hf-green);color:var(--hf-on-dark);padding:52px 34px 0;font-family:'Noto Sans Gujarati',system-ui,sans-serif}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.1fr;gap:44px;padding-bottom:38px}
.foot-col h3{margin:0 0 14px;font-size:13.5px;font-weight:600;letter-spacing:.02em;color:#fff;padding-bottom:9px;border-bottom:1px solid var(--hf-rule-dark)}
.foot-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.foot-col a{color:var(--hf-on-dark);text-decoration:none;font-size:14.5px;line-height:1.4}
.foot-col a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.foot-col a:focus-visible{outline:2px solid var(--hf-sand);outline-offset:3px;border-radius:3px}
.foot-brand .lockup{margin-bottom:14px}
.foot-brand .wordmark{color:#fff;font-size:27px}
.foot-brand .wordmark .rx{color:var(--hf-accent)}
.foot-brand p{margin:0;font-size:14.5px;line-height:1.7;color:var(--hf-on-dark);max-width:34ch}
.reach{display:flex;flex-direction:column;gap:4px}
.reach .row{display:flex;align-items:flex-start;gap:11px;text-decoration:none;padding:9px 11px;margin:0 -11px;border-radius:9px}
.reach .row:hover{background:rgba(255,255,255,.07)}
.reach .row:focus-visible{outline:2px solid var(--hf-sand);outline-offset:1px}
.reach .ic{flex:0 0 auto;margin-top:3px;color:var(--hf-on-dark-soft)}
.reach .row:hover .ic{color:var(--hf-sand)}
.reach .txt{display:flex;flex-direction:column;gap:2px}
.reach .k{font-size:12px;color:var(--hf-on-dark-soft);line-height:1.25}
.reach .v{font-size:15px;color:#fff;font-weight:500;letter-spacing:.01em;line-height:1.3}
.reach .row:hover .v{text-decoration:underline;text-underline-offset:3px}
.clinic-strip{display:grid;grid-template-columns:1.7fr 1fr 1fr;background:var(--hf-green-lift);border:1px solid var(--hf-rule-dark);border-radius:10px;overflow:hidden;margin-bottom:34px}
.clinic-strip > div{padding:20px 22px}
.clinic-strip > div + div{border-left:1px solid var(--hf-rule-dark)}
.clinic-strip h4{margin:0 0 11px;font-size:12.5px;font-weight:600;color:var(--hf-on-dark-soft);letter-spacing:.03em}
.dr-name{font-size:16px;font-weight:600;color:#fff;line-height:1.4}
.dr-en{font-family:'Source Serif 4',Georgia,serif;font-size:13.5px;color:var(--hf-on-dark);margin-bottom:8px}
.cred{font-size:13.5px;line-height:1.6;color:var(--hf-on-dark-soft);margin-bottom:12px}
.addr{font-size:14px;line-height:1.7;color:var(--hf-on-dark)}
.addr .en{color:var(--hf-on-dark-soft);font-size:13.5px}
.hours{font-size:14px;line-height:1.75;color:var(--hf-on-dark)}
.hours .day{color:#fff;font-weight:600;font-size:14px}
.hours .shut{color:var(--hf-sand);font-weight:500;margin-top:8px;display:block}
.maplink{display:inline-block;margin-top:2px;border:1px solid var(--hf-rule-dark);border-radius:8px;padding:10px 16px;font-size:14px;color:#fff;text-decoration:none;background:rgba(255,255,255,.05)}
.maplink:hover{background:rgba(255,255,255,.11);border-color:rgba(207,224,214,.34)}
.notices{border-top:1px solid var(--hf-rule-dark);padding:26px 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.notice{border-left:2px solid var(--hf-accent);padding-left:16px;font-size:13.5px;line-height:1.72;color:var(--hf-on-dark-soft)}
.notice strong{display:block;color:var(--hf-on-dark);font-weight:600;margin-bottom:3px;font-size:13.5px}
.ai-line{grid-column:1 / -1;border-left-color:var(--hf-sand)}
.foot-base{border-top:1px solid var(--hf-rule-dark);padding:18px 0 24px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--hf-on-dark-soft)}

@media (max-width:900px){
  .foot-grid{grid-template-columns:1fr 1fr;gap:32px}
  .clinic-strip{grid-template-columns:1fr}
  .clinic-strip > div + div{border-left:0;border-top:1px solid var(--hf-rule-dark)}
  .notices{grid-template-columns:1fr}
}
@media (max-width:620px){
  .site-head{padding:12px 14px}
  .clinician{display:none}
  .foot-grid{grid-template-columns:1fr}
  .site-foot{padding:34px 14px 0}
  .foot-base{flex-direction:column;gap:8px}
}
@media print{
  .site-head,.site-foot,.brandband{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* D175 -- Stage C2 test-user grant note. Same sand palette already used by
   .pay-status.warning and .ed-report-preview-banner (#fff8e7/#f1dfaa/#5b4a22)
   under its own class, not that one, so checkout.js's dynamic .pay-status
   manipulation (hidden/className/innerHTML) can never touch this static note. */
.testgrant-note{background:#fff8e7;border:1px solid #f1dfaa;color:#5b4a22;border-radius:10px;padding:10px 14px;margin:10px 0}
.testgrant-note p{margin:0}
.testgrant-btn{margin-top:4px}
