/* ============================================================================
   Wellness Genomics Assessment — module-scoped stylesheet
   Extracted verbatim from the supplied wellness-assessment_11.html template's
   <style> block (design/behaviour unchanged). Loaded only on
   /WellnessAssessment/Index via a page-scoped <link>, the same pattern used
   by wwwroot/css/brainprogrma.css for the BIOHACKYOUR_BRAIN module — this
   file is not referenced from _Layout.cshtml and does not affect any other
   page on the site.
   ============================================================================ */
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;background:#f0f9f7;color:#1a2332;min-height:100vh}
/* Sitewide floating action widget (call / WhatsApp / offer / free
   consultation, rendered by _Layout.cshtml as .sticky-container) is hidden
   ONLY on this page -- same pattern as PackgeBooking/Index.cshtml. Placed in
   this page-scoped stylesheet (loaded only on /WellnessAssessment/Index, see
   file header above), not in _Layout.cshtml or the shared style.css, so
   every other page keeps showing it untouched. !important guards against
   the several duplicate .sticky-container rules already in style.css. */
.sticky-container{display:none !important}
/* Single source of truth for the gap below the teal page header (.header).
   Fluid via clamp() so mobile gets a small gap and desktop a larger one
   without separate hard-coded breakpoint values (16px floor, 40px ceiling,
   scaling at 4vw in between). Applied once, as margin-bottom on .header
   itself, so the same gap appears whether the very next element is
   #progressWrap (visible) or .main (progressWrap hidden) -- no double
   spacing, no per-element magic numbers. */
:root{--wa-header-gap:clamp(16px,4vw,40px)}
.header{background:linear-gradient(135deg,#00897b,#00695c);color:white;padding:18px 28px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 12px rgba(0,105,92,.35);margin-bottom:var(--wa-header-gap)}
.logo-text{font-size:18px;font-weight:800;letter-spacing:-.3px}
.logo-sub{font-size:12px;opacity:.75;font-weight:400;display:block;margin-top:1px}
.step-label{font-size:12px;background:rgba(255,255,255,.2);padding:4px 12px;border-radius:20px}
.progress-wrap{background:white;padding:10px 28px 12px;border-bottom:1px solid #d0eeea}
.progress-bar{height:5px;background:#d0eeea;border-radius:3px;overflow:hidden}
.progress-fill{height:100%;background:#00897b;border-radius:3px;transition:width .4s ease}
.progress-info{display:flex;justify-content:space-between;margin-top:5px;font-size:11px;color:#78909c}
.main{max-width:700px;margin:0 auto;padding:28px 16px 60px}
.card{background:white;border-radius:16px;padding:28px 28px 24px;box-shadow:0 2px 18px rgba(0,0,0,.07);margin-bottom:18px}
.screen{display:none}.screen.active{display:block;animation:fadeUp .3s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
/* Welcome */
.welcome-center{text-align:center;padding:8px 0 20px}
.welcome-icon{font-size:56px;margin-bottom:14px;display:block}
.welcome-title{font-size:26px;font-weight:800;color:#00695c;margin-bottom:4px}
.welcome-tagline{font-size:14px;color:#00897b;font-weight:600;margin-bottom:18px}
.welcome-body{text-align:left;font-size:14px;color:#546e7a;line-height:1.75;margin-bottom:16px}
.info-box{background:#e8f5e9;border-left:4px solid #43a047;border-radius:0 8px 8px 0;padding:10px 14px;font-size:13px;color:#2e7d32;margin-bottom:20px;line-height:1.6}
.timer-row{display:flex;gap:16px;justify-content:center;margin-bottom:22px}
.timer-item{text-align:center;padding:12px 18px;background:#f0f9f7;border-radius:10px;border:1px solid #d0eeea}
.timer-num{font-size:20px;font-weight:800;color:#00897b}
.timer-lbl{font-size:11px;color:#78909c;margin-top:2px}
/* Section headers */
.section-title{font-size:20px;font-weight:800;color:#00695c;margin-bottom:5px}
.section-badge{display:inline-flex;align-items:center;gap:6px;background:#e0f2f1;color:#00695c;font-size:12px;font-weight:700;padding:4px 12px;border-radius:20px;margin-bottom:12px}
.section-desc{font-size:13px;color:#78909c;margin-bottom:22px;line-height:1.65}
/* Form inputs */
.form-group{margin-bottom:18px}
.form-label{display:block;font-size:13px;font-weight:700;color:#37474f;margin-bottom:7px;letter-spacing:.2px}
.form-input{width:100%;padding:11px 15px;border:2px solid #d0eeea;border-radius:10px;font-size:14px;color:#1a2332;transition:border-color .2s;background:white;font-family:inherit}
.form-input:focus{outline:none;border-color:#00897b}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:480px){.form-row{grid-template-columns:1fr}}
/* Radio options -- .radio-opt (the <label>) is a flex row so the radio
   input and its .radio-lbl text stay on one line at every width; .radio-lbl
   is flex:1 so it fills the remaining row width and wraps normally (no
   forced single-line white-space:nowrap). .radio-lbl is deliberately NOT
   display:flex/inline-flex: the nested .ar span below is display:block by
   design (see .ar), so it drops to its own line under the English text
   without affecting the radio's position -- making .radio-lbl a flex
   container would fight that and pull the Arabic back onto the same line.
   align-items:flex-start (not center) + the radio's small margin-top:1px is
   the same pairing already used successfully by .chk-opt below: with
   center, the radio was vertically centered against the FULL two-line
   block (English + the block-level Arabic line under it), which visibly
   pulled it down away from "Never" -- flex-start pins it to the top so it
   lines up with the English line every time, whether or not Arabic/wrapped
   text adds extra lines underneath. */
.radio-group{display:flex;flex-direction:column;gap:8px}
.radio-opt{display:flex;align-items:flex-start;padding:11px 15px;border:2px solid #d0eeea;border-radius:10px;cursor:pointer;transition:all .15s;gap:10px;user-select:none}
.radio-opt:hover{border-color:#80cbc4;background:#f5fdfc}
.radio-opt.sel{border-color:#00897b;background:#e0f2f1}
.radio-opt input[type=radio]{accent-color:#00897b;width:16px;height:16px;flex-shrink:0;margin:1px 0 0}
.radio-lbl{font-size:13px;color:#37474f;flex:1;line-height:1.4}
.ar{font-size:0.81em;color:#607d8b;direction:rtl;text-align:right;margin-top:3px;line-height:1.55;font-family:'Segoe UI',Tahoma,Geneva,sans-serif;display:block;font-style:normal}
.ar-sm{font-size:0.78em;color:#78909c;direction:rtl;text-align:right;margin-top:2px;line-height:1.5;font-family:'Segoe UI',Tahoma,Geneva,sans-serif;display:block}
.radio-score{font-size:11px;color:#b0bec5;font-weight:600;margin-left:auto}
.rec-why{font-size:12.5px;color:rgba(255,255,255,.9);margin-top:10px;line-height:1.65;border-top:1px solid rgba(255,255,255,.2);padding-top:10px}
.office-email-box{background:#f0f9f7;border:2px solid #b2dfdb;border-radius:14px;padding:22px 24px;margin-top:22px}
.office-email-title{font-size:15px;font-weight:800;color:#00695c;margin-bottom:4px}
.office-email-desc{font-size:12.5px;color:#78909c;margin-bottom:16px;line-height:1.6}
.email-send-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.email-send-row .form-group{flex:1;min-width:220px;margin-bottom:0}
.btn-send{background:#00897b;color:white;padding:12px 20px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;border:none;white-space:nowrap;transition:all .18s;font-family:inherit}
.btn-send:hover{background:#00796b;transform:translateY(-1px)}
.btn-docx{background:white;color:#00695c;border:2px solid #00897b;padding:11px 18px;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .18s;font-family:inherit}
.btn-docx:hover{background:#e0f2f1}
.send-success{display:none;background:#e8f5e9;color:#2e7d32;font-size:13px;font-weight:600;padding:10px 14px;border-radius:8px;margin-top:10px}
/* Checkbox options */
.chk-opt{display:flex;align-items:flex-start;padding:12px 15px;border:2px solid #d0eeea;border-radius:10px;cursor:pointer;transition:all .15s;gap:10px;margin-bottom:7px;user-select:none}
.chk-opt:hover{border-color:#80cbc4;background:#f5fdfc}
.chk-opt.sel{border-color:#00897b;background:#e0f2f1}
.chk-opt.disabled-chk{opacity:.45;cursor:not-allowed}
.chk-opt input[type=checkbox]{accent-color:#00897b;width:16px;height:16px;flex-shrink:0;margin-top:1px}
.chk-lbl{font-size:13px;color:#37474f;line-height:1.5}
.goal-counter{display:inline-flex;align-items:center;gap:6px;background:#e0f2f1;color:#00695c;font-size:12px;font-weight:700;padding:6px 14px;border-radius:20px;margin-bottom:14px;transition:all .2s}
.goal-counter.full{background:#fff3e0;color:#e65100}
/* Question blocks */
.q-block{margin-bottom:24px}
.q-num{display:inline-block;background:#e0f2f1;color:#00695c;font-size:11px;font-weight:800;padding:2px 8px;border-radius:12px;margin-bottom:6px;letter-spacing:.3px}
.q-text{font-size:14px;font-weight:700;color:#1a2332;margin-bottom:10px;line-height:1.55}
.q-divider{border:none;border-top:1px dashed #d0eeea;margin:22px 0}
.q-section-head{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#00897b;margin-bottom:14px;padding-top:4px}
/* Conditions grid */
.cond-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
@media(max-width:480px){.cond-grid{grid-template-columns:1fr}}
.cond-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border:2px solid #d0eeea;border-radius:8px;cursor:pointer;transition:all .15s;user-select:none;font-size:13px;color:#37474f}
.cond-item:hover{border-color:#80cbc4;background:#f5fdfc}
.cond-item.sel{border-color:#00897b;background:#e0f2f1}
.cond-item input[type=checkbox]{accent-color:#00897b;width:15px;height:15px;flex-shrink:0}
/* Sub-questions */
.sub-q{margin-top:14px;padding:14px 16px;background:#f8f9fa;border-radius:10px;border-left:3px solid #00897b;display:none}
.sub-q.show{display:block}
.sub-q-label{font-size:12px;font-weight:700;color:#546e7a;margin-bottom:8px}
/* Cancer type grid */
.cancer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
@media(max-width:460px){.cancer-grid{grid-template-columns:repeat(2,1fr)}}
.cancer-item{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #d0eeea;border-radius:7px;cursor:pointer;font-size:12px;color:#37474f;transition:all .15s;user-select:none}
.cancer-item:hover{border-color:#00897b;background:#f0f9f7}
.cancer-item.sel{border-color:#00897b;background:#e0f2f1;color:#00695c;font-weight:600}
.cancer-item input{accent-color:#00897b;width:13px;height:13px;flex-shrink:0}
/* Buttons */
.btn{padding:12px 26px;border-radius:11px;font-size:14px;font-weight:700;cursor:pointer;border:none;transition:all .18s;font-family:inherit}
.btn-primary{background:#00897b;color:white}
.btn-primary:hover{background:#00796b;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,137,123,.35)}
.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}
.btn-secondary{background:white;color:#00897b;border:2px solid #00897b}
.btn-secondary:hover{background:#e0f2f1}
.btn-lg{padding:14px 32px;font-size:15px;width:100%}
.btn-row{display:flex;gap:10px;justify-content:space-between;margin-top:22px;align-items:center}
.err{color:#e53935;font-size:12px;margin-top:6px;display:none;font-weight:600}
.err.show{display:block}
/* Results */
.result-hero{text-align:center;padding:8px 0 22px;border-bottom:2px solid #e0f2f1;margin-bottom:22px}
.result-icon{font-size:44px;margin-bottom:10px}
.result-title{font-size:22px;font-weight:800;color:#00695c;margin-bottom:6px}
.result-sub{font-size:13px;color:#78909c}
.concern-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border-radius:20px;font-size:12px;font-weight:700}
.c-low{background:#e8f5e9;color:#2e7d32}
.c-moderate{background:#fff3e0;color:#e65100}
.c-high{background:#ffebee;color:#c62828}
.score-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.score-name{font-size:13px;font-weight:700;color:#37474f}
.score-val{font-size:12px;color:#78909c}
.score-bar{height:7px;background:#eceff1;border-radius:4px;overflow:hidden;margin-bottom:6px}
.score-fill{height:100%;border-radius:4px;transition:width .7s ease .2s}
.s-low{background:linear-gradient(90deg,#66bb6a,#43a047)}
.s-moderate{background:linear-gradient(90deg,#ffa726,#f57c00)}
.s-high{background:linear-gradient(90deg,#ef5350,#c62828)}
.cat-result{background:#f8f9fa;border-radius:12px;padding:18px;margin-bottom:14px}
.cat-result-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:8px}
.cat-name{font-size:14px;font-weight:800;color:#1a2332}
.rec-block{margin-top:18px}
.rec-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:#78909c;margin-bottom:8px}
.rec-primary-card{background:#00897b;border-radius:12px;padding:18px;margin-bottom:10px}
.rec-primary-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:rgba(255,255,255,.75);margin-bottom:8px}
.rec-tests{display:flex;flex-wrap:wrap;gap:6px}
.test-pill-w{display:inline-block;background:rgba(255,255,255,.22);color:white;padding:5px 13px;border-radius:20px;font-size:12px;font-weight:700}
.test-pill-g{display:inline-block;background:white;color:#00695c;padding:5px 13px;border-radius:20px;font-size:12px;font-weight:700}
.rec-additional-card{background:#f0f9f7;border:1.5px solid #b2dfdb;border-radius:12px;padding:16px}
.rec-additional-label{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#00897b;margin-bottom:8px}
.test-pill-add{display:inline-block;background:white;color:#00695c;border:1.5px solid #b2dfdb;padding:5px 13px;border-radius:20px;font-size:12px;font-weight:600;margin:3px}
.na-note{font-size:13px;color:#90a4ae;font-style:italic;padding:6px 0}
.divider-line{border:none;border-top:1.5px solid #e0f2f1;margin:20px 0}
.disclaimer{background:#fffde7;border:1px solid #ffe082;border-radius:10px;padding:14px 16px;font-size:12px;color:#6d4c41;line-height:1.7;margin-top:20px}
.goals-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.goal-tag{background:#e0f2f1;color:#00695c;padding:4px 11px;border-radius:20px;font-size:12px;font-weight:600}
.demo-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}
.demo-item{background:#f8f9fa;border-radius:8px;padding:8px 12px}
.demo-key{font-size:11px;color:#90a4ae;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.demo-val{font-size:13px;font-weight:700;color:#1a2332;margin-top:1px}
.combo-indicator{background:#e8f5e9;border-radius:10px;padding:12px 16px;margin-bottom:18px;font-size:13px;color:#2e7d32;display:flex;align-items:flex-start;gap:8px}
/* ══════════════════════════════════════════════════════════════
   PRINT / PDF OUTPUT — compact one-page A4 report, Lifenity teal & gold.
   The printed report is a condensed summary (patient info, goals,
   assessment results table, recommended tests, disclaimer) built by
   buildPrintSummary() in wellness-assessment.js into #printSummaryBody
   from the same server-authoritative result object the on-screen results
   page uses — no scoring/recommendation logic lives here or there, this
   file only controls how that data is laid out for A4 print/Save-as-PDF.

   ISOLATION STRATEGY: #wellnessPrintReport (declared in Index.cshtml) is a
   sibling of #wellnessAssessmentRoot, not nested inside it — and is not
   nested inside _Layout.cshtml's header/nav/footer either, since those
   are siblings of @@RenderBody() too. On screen it is always display:none.
   Under @@media print, "body *{visibility:hidden}" blanks literally
   everything on the page first — the site's #topbar/#header/#navmenu,
   the sticky call/WhatsApp/offer buttons, #footer and all its Quick
   Links/Popular Packages/Contact Us content, the enquiry modal, and the
   entire interactive #wellnessAssessmentRoot — then the ID-selector rule
   right after it (which always wins on specificity over "body *"
   regardless of source order) makes only #wellnessPrintReport and its
   contents visible again. This means the print output can never leak any
   part of the surrounding website, no matter what _Layout.cshtml renders
   around this view or what other markup/scripts inject into <body>.
   ══════════════════════════════════════════════════════════════ */
#wellnessPrintReport{display:none}
@media print{
  /* Bottom margin is larger than the other three sides to leave clearance
     for the fixed-position footer bar below (~16mm tall) so normal-flow
     report content can never run under it. */
  @page{ size:A4 portrait; margin:10mm 10mm 24mm; }

  body * { visibility:hidden !important; }
  #wellnessPrintReport, #wellnessPrintReport * { visibility:visible !important; }
  #wellnessPrintReport{
    display:block !important;
    position:absolute; top:0; left:0; width:100%;
    background:#fff; margin:0; padding:0;
    font-family:'Poppins','Segoe UI',Arial,sans-serif;font-size:12px;color:#1B2430;
  }
  html,body{background:#fff!important;margin:0!important;padding:0!important;height:auto!important}

  .ar,.ar-sm{font-family:'Cairo',sans-serif!important;direction:rtl}

  /* ── Branded header: logo, title, tagline — centered and compact so
     more of the page is left for report content ── */
  #print-header{text-align:center;border-bottom:2px solid #0F7A6E;padding-bottom:10px;margin-bottom:12px}
  #print-header img{height:36px;width:auto;display:inline-block;margin-bottom:6px}
  #print-header .ph-title{font-size:18px;font-weight:800;letter-spacing:.6px;color:#0B4F4A;text-transform:uppercase;font-family:'Poppins',sans-serif}
  #print-header .ph-title .ar{font-size:.6em;letter-spacing:0;text-transform:none;margin-top:2px;font-weight:700;color:#0B4F4A}
  #print-header .ph-tagline{font-size:11px;font-weight:600;color:#0F7A6E;margin-top:4px}
  #print-header .ph-tagline .ar{font-size:.85em;color:#7c8b92;font-weight:400;margin-top:1px}
  #print-header .ph-date{font-size:9.5px;color:#8a97a0;margin-top:6px}

  /* ── Compact print summary body ── */
  .rpt-h2{font-size:13px;font-weight:800;color:#0B4F4A;text-transform:uppercase;letter-spacing:.4px;
    margin:12px 0 6px;padding-bottom:3px;border-bottom:1px solid #E2E8E7;display:flex;justify-content:space-between;align-items:baseline}
  .rpt-h2 .ar-sm{display:inline;font-size:.72em;color:#7c8b92;font-weight:600;margin-top:0}

  .pinfo-row{display:grid;grid-template-columns:1.3fr .8fr .85fr 1fr 1.35fr;gap:7px;align-items:stretch}
  .pinfo-item{background:#FCFBF9;border:1px solid #E2E8E7;border-radius:6px;padding:6px 9px;min-width:0}
  .pinfo-key{font-size:8.5px;color:#7c8b92;font-weight:700;text-transform:uppercase;letter-spacing:.2px}
  .pinfo-val{font-size:11.5px;font-weight:700;color:#1B2430;margin-top:2px;word-break:break-word;line-height:1.3}

  .goals-row{display:flex;flex-wrap:wrap;gap:6px}
  .g-pill{background:#fff;border:1.2px solid #0F7A6E;color:#0B4F4A;font-size:11px;font-weight:700;padding:4px 12px;border-radius:14px}

  table.rpt-table{width:100%;border-collapse:collapse;margin-top:3px}
  table.rpt-table th{background:#0B4F4A;color:#fff;font-size:10px;text-transform:uppercase;letter-spacing:.3px;text-align:left;padding:6px 10px}
  table.rpt-table th.c{text-align:center}
  table.rpt-table td{font-size:12px;padding:6px 10px;border-bottom:1px solid #E2E8E7}
  table.rpt-table td.c{text-align:center}
  table.rpt-table tr:nth-child(even) td{background:#FCFBF9}
  .concern-badge{display:inline-block;padding:3px 11px;border-radius:10px;font-size:10.5px;font-weight:800}
  .cb-low{background:#E4F5EE;color:#1E8E5A}
  .cb-moderate{background:#FFF3DE;color:#B8860B}
  .cb-high{background:#FCE7E7;color:#C0392B}

  .rec-sub{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:#546e7a;margin:8px 0 5px}
  .rec-sub .ar-sm{display:inline;font-size:.85em;color:#90a4ae;font-weight:600;margin-left:6px}
  .rec-row{display:flex;flex-wrap:wrap;gap:6px}
  .t-primary{background:#0B4F4A;color:#fff;font-size:11.5px;font-weight:700;padding:5px 14px;border-radius:14px}
  .t-additional{background:#fff;border:1.3px solid #E8D9B5;color:#8A6D2F;font-size:11.5px;font-weight:700;padding:5px 14px;border-radius:14px}

  /* ── Disclaimer (dedicated element inside #wellnessPrintReport, not the
     on-screen .disclaimer, which lives inside the now-hidden
     #wellnessAssessmentRoot) ── */
  .wpr-disclaimer{background:#FBF6ED;border:1px solid #EEE0BE;color:#6B5A2E;
    border-radius:7px;padding:9px 12px;font-size:10px;line-height:1.55;margin-top:12px}

  /* Prevent rows/cards from splitting awkwardly across a page break */
  .pinfo-item,.wpr-disclaimer,table.rpt-table tr{break-inside:avoid;page-break-inside:avoid}

  /* ── Footer — strong Lifenity teal branding, high-contrast white text,
     larger type so the contact details are clearly readable ── */
  #print-footer{
    position:fixed;bottom:0;left:0;right:0;
    background:linear-gradient(135deg,#0F7A6E,#0B4F4A);color:#fff;
    padding:9px 10mm 10px;text-align:center;
  }
  #print-footer .pf-addr{font-size:11px;font-weight:600;line-height:1.45;opacity:.96}
  #print-footer .pf-phone{font-size:15px;font-weight:800;letter-spacing:.3px;margin-top:4px}
  #print-footer .pf-phone .pf-sep{opacity:.6;font-weight:400;margin:0 6px}
}
