:root{
  --plum:#3C2238;
  --aubergine:#5A3453;
  --ivory:#FBF7F1;
  --parchment:#F4ECE3;
  --rose:#C88794;
  --rose-soft:#F3E4E7;
  --gold:#B59057;
  --gold-soft:#E8DEC9;
  --espresso:#261F23;
  --muted:#6C6066;
  --white:#FFFFFF;
  --hairline:#E7DBCE;
  --plum-08:rgba(60,34,56,.08);
  --plum-14:rgba(60,34,56,.14);
  --radius:16px;
  --radius-sm:12px;
  --shadow-card:0 1px 2px rgba(38,31,35,.04), 0 6px 20px rgba(60,34,56,.06);
  --shadow-pop:0 12px 40px rgba(38,31,35,.18);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:var(--ivory);
  color:var(--espresso);
  font-family:var(--sans);
  font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.shell{max-width:600px;margin:0 auto;padding:36px 22px 72px;min-height:100vh}
.screen{display:none}
.screen.active{display:block}

h1{font-family:var(--serif);font-weight:700;font-size:46px;line-height:1.12;letter-spacing:.005em;margin:0 0 18px;color:var(--plum)}
h2{font-family:var(--serif);font-weight:600;font-size:34px;line-height:1.18;margin:0 0 14px;color:var(--plum)}
h3{font-family:var(--sans);font-weight:600;font-size:17px;letter-spacing:.005em;margin:0 0 10px;color:var(--espresso)}
.lead{font-size:17px;color:var(--espresso);margin:0 0 20px}
.muted{color:var(--muted)}
.small{font-size:14px}
.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}

/* brand */
.brand-full{text-align:center;margin:6px 0 22px;padding:8px 0}
.brand-full.small{margin-bottom:14px}
.logo-full{max-width:320px;width:78%;height:auto;margin:0 auto;display:block}
.brand-name{font-family:var(--serif);font-size:34px;font-weight:700;color:var(--plum);margin:0;letter-spacing:.01em}
.brand-name .tm{font-size:15px;vertical-align:super;color:var(--gold)}
.brand-by{font-family:var(--serif);font-size:19px;font-style:italic;color:var(--rose);margin:2px 0 0}
.supporting-line{text-align:center;color:var(--aubergine);font-size:15px;letter-spacing:.02em;margin:0 0 30px}

/* scope + note cards */
.scope-box{background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:18px 20px;margin:0 0 20px;font-size:15px;color:var(--espresso)}
.scope-box p{margin:0}
.assessment-note{background:var(--rose-soft);border:1px solid #EAD3D9;border-radius:var(--radius);padding:18px 20px;margin:22px 0}
.assessment-note p{margin:0 0 10px}
.facts{margin:0;padding-left:20px;font-size:15px;color:var(--muted)}
.facts li{margin:3px 0}

.check-row{display:flex;gap:13px;align-items:flex-start;margin:18px 0;font-size:15px;cursor:pointer}
.check-row input{margin-top:2px;width:22px;height:22px;flex-shrink:0;accent-color:var(--plum)}

.authority{border-top:1px solid var(--hairline);margin-top:26px;padding-top:18px}
.authority-name{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--plum);margin:0}
.authority-detail{font-size:13.5px;color:var(--muted);letter-spacing:.01em;margin:3px 0 0}
.authority-line{font-size:14px;color:var(--muted);font-style:italic;margin:20px 0}

.profile-details{margin:20px 0;border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:2px 18px;background:var(--parchment)}
.profile-details summary{cursor:pointer;font-weight:600;padding:14px 0;color:var(--aubergine)}

/* buttons */
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:56px;border-radius:var(--radius-sm);
  font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:.01em;border:1.5px solid transparent;cursor:pointer;margin-top:14px;
  transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease}
.btn:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ivory),0 0 0 4px var(--gold)}
.btn-primary{background:var(--plum);color:#FBF3F6}
.btn-primary:hover{background:var(--aubergine);box-shadow:0 0 0 1px var(--gold) inset}
.btn-primary.is-inactive{background:transparent;border-color:var(--hairline);color:#B4A9A2;cursor:default;box-shadow:none}
.btn-primary.is-busy{opacity:.75;cursor:progress}
.btn-quiet{background:transparent;border-color:var(--plum-14);color:var(--plum);font-weight:600}
.btn-quiet:hover{background:var(--parchment);border-color:var(--plum)}
.btn-outline{background:transparent;border-color:var(--rose);color:var(--plum);font-weight:600;min-height:48px;font-size:15px}
.btn-outline:hover{background:var(--rose-soft);border-color:var(--plum)}
.action-row{display:flex;gap:14px}
.action-row .btn{margin-top:22px}
.action-row .btn-quiet{flex:1}
.action-row .btn-primary{flex:2}

/* assessment */
.assess-header{display:flex;align-items:center;gap:14px;margin-bottom:24px}
.logo-mark{height:32px;width:auto}
.mark-fallback{font-family:var(--serif);font-weight:700;color:var(--plum);font-size:16px;letter-spacing:.06em}
.progress{flex:1;height:8px;background:var(--parchment);border:1px solid var(--hairline);border-radius:99px;overflow:hidden;box-shadow:inset 0 1px 2px rgba(60,34,56,.06)}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--rose) 60%,var(--aubergine));width:0;border-radius:99px;transition:width .4s cubic-bezier(.4,0,.2,1)}
.save-later{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;text-decoration:underline;font-family:inherit}
.section-kicker{font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 8px}
.section-title{font-family:var(--serif);font-size:28px;margin:0 0 10px}
.section-intro{color:var(--muted);font-size:15px;margin:0 0 26px}
/* clustered section: several question cards stacked on one screen */
.section-kicker{display:inline-block;background:var(--gold-soft);color:#7A5B22;border:1px solid #E1D2B0;border-radius:99px;padding:4px 13px}
.section-intro{background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:14px 16px;color:var(--espresso);font-size:15.5px;margin:0 0 22px}
.cluster-body{display:flex;flex-direction:column;gap:22px}
.q-block{border:1px solid var(--hairline);background:var(--white);border-radius:18px;margin:0;padding:20px 20px 6px;box-shadow:var(--shadow-card)}
.q-block + .q-block{margin-top:0}
.q-setup{font-size:14.5px;line-height:1.5;color:var(--aubergine);margin:0 0 10px;font-style:italic}
.q-callback{font-size:14.5px;line-height:1.5;margin:0 0 10px;padding:10px 12px;border-left:3px solid var(--aubergine);background:rgba(90,42,74,.05);border-radius:0 8px 8px 0;color:var(--espresso)}
.q-callback.ack{margin:12px 0 0;border-left-color:var(--gold,#b8860b);background:rgba(184,134,11,.06)}
.q-text{font-family:var(--sans);font-size:19px;font-weight:600;line-height:1.4;padding:0;margin:0 0 6px;color:var(--espresso)}
.q-instruction{font-size:14px;font-weight:600;color:var(--aubergine);margin:0 0 4px}
.q-optional{font-size:14px;color:var(--muted);margin:0 0 12px}
.notice-inline{font-size:14px;color:var(--plum);background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:12px 14px;margin:12px 0 0}
.options{display:flex;flex-direction:column;gap:12px;margin-top:16px}
.opt{display:flex;align-items:center;gap:12px;min-height:56px;padding:14px 18px;border:1.5px solid var(--hairline);
  border-radius:var(--radius-sm);background:var(--white);cursor:pointer;font-size:16px;text-align:left;font-family:inherit;color:var(--espresso);width:100%;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.opt:hover{border-color:var(--rose)}
.opt[aria-pressed="true"],.opt.selected{background:var(--rose-soft);border-color:var(--plum);border-width:2px;color:var(--plum);font-weight:600;box-shadow:0 2px 10px var(--plum-08)}
.opt .tick{margin-left:auto;opacity:0;color:var(--plum);font-weight:700}
.opt.selected .tick{opacity:1}
.saved-note{font-size:14px;color:var(--aubergine);margin-top:16px}

/* reveal */
.processing{text-align:center;padding:56px 0}
.processing-title{font-family:var(--serif);font-size:26px;color:var(--plum);margin:0 0 12px}
.spinner{width:36px;height:36px;border:3px solid var(--gold-soft);border-top-color:var(--gold);border-radius:50%;margin:30px auto 0;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.score-caption{text-align:center;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 6px}
.score-value{font-family:var(--serif);text-align:center;font-size:80px;line-height:1;font-weight:700;letter-spacing:-.01em;margin:0;color:var(--plum)}
.score-value.small{font-size:60px}
.score-class{font-family:var(--serif);text-align:center;font-size:24px;font-weight:600;color:var(--aubergine);margin:14px 0 18px}
.score-copy p,.score-copy{font-size:15.5px;color:var(--espresso);margin:0 0 10px}
.reveal-note{font-size:13px;color:var(--muted);background:var(--parchment);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:14px 16px;margin:20px 0}
.email-card{background:var(--parchment);border:1px solid var(--hairline);border-top:3px solid var(--gold);border-radius:var(--radius);padding:22px;margin-top:10px;box-shadow:var(--shadow-card)}
.email-title{font-family:var(--serif);font-size:23px;font-weight:600;color:var(--plum);margin:0 0 6px}
.field{display:block;margin:16px 0}
.field span{display:block;font-size:14px;font-weight:500;margin-bottom:7px;color:var(--espresso)}
.field input{width:100%;min-height:50px;padding:13px 15px;border:1.5px solid var(--hairline);border-radius:var(--radius-sm);font-size:16px;font-family:inherit;background:var(--white);color:var(--espresso)}
.field input:focus{outline:none;border-color:var(--plum);box-shadow:0 0 0 3px var(--rose-soft)}
.inline-error{color:#9A3D4E;font-size:14px;font-weight:500;margin:12px 0 0}

/* dashboard */
.dash-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}

/* A. overall score ring */
.score-ring-wrap{text-align:center;margin:8px 0 8px}
.score-ring{position:relative;width:180px;height:180px;margin:10px auto 6px}
.score-ring svg{width:180px;height:180px;display:block}
.ring-track{fill:none;stroke:var(--parchment);stroke-width:10}
.ring-fill{fill:none;stroke:var(--rose);stroke-width:10;stroke-linecap:round;transition:stroke-dashoffset .6s ease}
.ring-number{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--serif);font-size:56px;font-weight:700;color:var(--plum)}
@media (prefers-reduced-motion:reduce){.ring-fill{transition:none}}

/* GPS labels */
.free-badge{display:inline-block;background:var(--rose-soft);color:var(--plum);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--blush-line);border-radius:99px;padding:5px 14px;margin:0 auto 18px}
.dash-title{text-align:center;font-size:30px;margin:0 0 6px}
.route-status{text-align:center;font-size:13px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--gold);margin:6px 0 8px}
.map-disclaimer{font-size:13px;color:var(--muted);background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:13px 15px;margin:0 0 18px}
.checkpoint-kicker{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--gold);margin:0 0 6px}
.insight-kicker{font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--rose);margin:0 0 6px}
.pattern-sub{font-size:12.5px;color:var(--rose);margin:0 0 6px}
.next-turn-lead{font-size:15px;color:var(--espresso);margin:0 0 14px}

/* C+D. strongest / priority cards */
.pattern-grid{display:grid;grid-template-columns:1fr;gap:14px}
@media (min-width:560px){.pattern-grid{grid-template-columns:1fr 1fr}}
.pattern-card{border-radius:18px;padding:18px 20px;border:1px solid var(--hairline);box-shadow:var(--shadow-card)}
.pattern-card.strongest{background:var(--parchment);border-left:3px solid var(--gold)}
.pattern-card.priority{background:var(--rose-soft);border-left:3px solid var(--rose)}
.pattern-kicker{font-size:12px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;margin:0 0 6px;color:var(--gold)}
.pattern-card.priority .pattern-kicker{color:var(--rose)}
.pattern-cat{font-family:var(--serif);font-size:22px;font-weight:600;color:var(--plum);margin:0 0 8px}
.pattern-note{font-size:14.5px;color:var(--espresso);margin:0}

/* F. insights */
.insight-list{display:flex;flex-direction:column;gap:12px;margin-top:12px}
.insight-card{background:var(--card);border:1px solid var(--hairline);border-radius:18px;padding:16px 18px;box-shadow:var(--shadow-card)}
.insight-title{font-family:var(--serif);font-size:18px;font-weight:600;color:var(--plum);margin:0 0 6px}
.insight-body{font-size:15px;color:var(--espresso);margin:0}

/* G. conversion card */
.convert-card{background:var(--plum);color:#F7EDEF;border-radius:22px;padding:26px 22px;margin:28px 0 8px;text-align:center;box-shadow:var(--shadow-pop)}
.convert-heading{font-family:var(--serif);font-size:26px;font-weight:600;color:#FBF3F6;margin:0 0 12px;line-height:1.2}
.convert-body{font-size:15.5px;color:#E9D9DE;margin:0 0 18px}
.convert-card .btn-primary{background:var(--rose);color:var(--plum)}
.convert-card .btn-primary:hover{background:#D89AA5;box-shadow:0 0 0 1px var(--gold) inset}
.convert-review-title{font-size:13px;font-weight:600;color:#FBF3F6;text-align:left;margin:0 0 8px}
.convert-review{text-align:left;margin:0 0 18px;padding-left:20px;color:#E9D9DE;font-size:14.5px}
.convert-review li{margin:5px 0}
.convert-review li::marker{color:var(--gold)}
.convert-sub{font-size:14px;color:#E9D9DE;margin:10px 0 0}
.convert-card .notice-inline{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#FBF3F6}
.date-completed{font-size:13px;color:var(--muted);margin:0}
.dash-section{border-top:1px solid var(--hairline);padding-top:24px;margin-top:26px}
.cat-list{list-style:none;margin:14px 0 0;padding:0}
.cat-row{display:flex;align-items:center;gap:14px;padding:11px 0}
.cat-name{flex:1 1 40%;min-width:0;font-size:15px;color:var(--espresso)}
.cat-bar{flex:1 1 40%;min-width:80px;height:8px;background:var(--parchment);border:1px solid var(--hairline);border-radius:99px;overflow:hidden}
.cat-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--aubergine),var(--rose));border-radius:99px}
.cat-score{flex:0 0 auto;width:34px;text-align:right;font-family:var(--serif);font-weight:700;font-size:18px;color:var(--plum)}
@media (max-width:480px){
  .cat-row{flex-wrap:wrap;gap:8px 12px}
  .cat-name{flex:1 1 100%}
  .cat-bar{flex:1 1 auto}
}
.focus-item{background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--rose);border-radius:var(--radius-sm);padding:16px 18px;margin:12px 0}
.focus-label{font-size:12px;color:var(--gold);text-transform:uppercase;letter-spacing:.12em;font-weight:600;margin:0 0 5px}
.focus-name{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--plum);margin:0}
.pattern-heading{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--plum);margin:0 0 10px}
.pattern-body p{margin:0 0 10px;font-size:15.5px}
.provider-card{background:var(--white);border:1px solid var(--gold-soft);border-top:3px solid var(--gold);border-radius:var(--radius);padding:20px;margin:20px 0;box-shadow:var(--shadow-card)}
.provider-card h3{font-family:var(--serif);font-size:21px;color:var(--plum);margin:0 0 8px}
.provider-card ul{margin:10px 0;padding-left:20px}
.provider-card li{margin:5px 0}
.provider-card .intro{font-weight:600;margin:14px 0 4px;color:var(--espresso)}
.actions-list{margin:14px 0;padding-left:24px}
.actions-list li{margin:11px 0;font-size:15.5px}
.actions-list li::marker{color:var(--gold);font-weight:700}
.provider-question{background:var(--rose-soft);border-left:3px solid var(--plum);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:12px 0;padding:16px 18px;font-family:var(--serif);font-size:19px;font-style:italic;color:var(--plum)}

/* next step */
.build-surge-hold{background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:18px 20px;margin:20px 0}
.build-surge-hold p{margin:0;font-size:15.5px}
.reassess-note{font-size:14px;color:var(--muted);text-align:center;margin-top:20px}

/* exit */
.exit-card{background:var(--parchment);border:1px solid var(--hairline);border-top:3px solid var(--rose);border-radius:var(--radius);padding:26px;margin-top:22px;box-shadow:var(--shadow-card)}
.exit-card h2{margin-top:0}
.exit-card p{font-size:15.5px;margin:0 0 12px}
.exit-buttons .btn{margin-top:12px}

/* pregnancy question */
.preg-q{margin:18px 0}
.preg-q .q-text{font-size:17px;margin-bottom:10px}

/* safety notice */
.safety-link{position:fixed;top:0;right:0;background:var(--plum);color:var(--white);font-size:12.5px;letter-spacing:.03em;padding:7px 14px;
  border-bottom-left-radius:12px;text-decoration:none;z-index:20}
.safety-link:hover{background:var(--aubergine)}
.safety-link:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ivory),0 0 0 4px var(--gold)}
.safety-overlay{position:fixed;inset:0;background:rgba(38,31,35,.55);display:none;align-items:center;justify-content:center;padding:22px;z-index:30}
.safety-overlay.is-open{display:flex}
.safety-dialog{background:var(--white);border:1px solid var(--gold-soft);border-radius:var(--radius);padding:28px;max-width:440px;box-shadow:var(--shadow-pop)}
.safety-dialog h2{font-family:var(--serif);font-size:28px;color:var(--plum);margin-top:0;margin-bottom:12px}
.safety-dialog p{font-size:15.5px;color:var(--espresso);margin:0 0 8px}
.safety-dialog .btn{margin-top:18px}

@media (max-width:520px){
  .shell{padding:26px 18px 60px}
  h1{font-size:36px}
  h2{font-size:29px}
  .section-title{font-size:26px}
  .q-text{font-size:20px}
  .score-value{font-size:66px}
  .score-value.small{font-size:52px}
  .logo-full{width:86%}
  body{font-size:16px}
}
@media (min-width:600px){
  .shell{padding-top:52px}
  h1{font-size:50px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ============================================================
   GPS results dashboard — command-center layout (Screen 4 only)
   ============================================================ */

/* Let the dashboard breathe into a wider canvas on large screens.
   Other screens stay in the narrow 600px reading column. */
@supports selector(:has(*)){
  @media (min-width:900px){
    .shell:has(#screen-dashboard.active){max-width:1080px}
  }
}

.dash-subtitle{color:var(--muted);font-size:15px;margin:0 0 16px;max-width:60ch}
.dash-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:0 0 6px}

/* subtle sticky navigator */
.dash-nav{display:flex;gap:8px;overflow-x:auto;padding:9px 2px;margin:0 0 20px;
  border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);
  position:sticky;top:0;background:rgba(251,247,241,.94);backdrop-filter:blur(6px);z-index:6;-webkit-overflow-scrolling:touch}
.dash-nav a{flex:0 0 auto;font-size:12.5px;font-weight:600;color:var(--aubergine);text-decoration:none;
  padding:6px 13px;border:1px solid var(--hairline);border-radius:99px;background:var(--white);white-space:nowrap;transition:border-color .16s,color .16s}
.dash-nav a:hover{border-color:var(--rose);color:var(--plum)}
.dash-nav a:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ivory),0 0 0 4px var(--gold)}
.dash-nav::-webkit-scrollbar{height:0}

/* summary grid: score instrument + summary cards */
.route-summary{border-top:none;padding-top:4px;margin-top:8px}
.summary-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media (min-width:820px){.summary-grid{grid-template-columns:1.3fr 1fr;align-items:start}}
.score-panel{background:var(--white);border:1px solid var(--hairline);border-top:3px solid var(--gold);
  border-radius:20px;padding:24px 22px 20px;box-shadow:var(--shadow-card);text-align:center}
.summary-cards{display:grid;gap:14px}
/* Sacred Gentleness — quiet, no sharp accent */
.loss-ack{margin:14px 0 4px;padding:16px 18px;border-radius:12px;background:rgba(90,42,74,.05);border:1px solid rgba(90,42,74,.14);line-height:1.65;color:var(--espresso)}
.loss-ack p{margin:0 0 12px}
.loss-ack p:last-child{margin-bottom:0}
.loss-ack .loss-ack-note{margin-top:14px;font-size:.86em;line-height:1.5;color:var(--muted);font-style:italic;opacity:.9}

/* ============ Build → Surge → Hold Map ============ */
.bsh-section{background:linear-gradient(180deg,var(--parchment) 0%,var(--ivory) 100%);border:1px solid var(--hairline);border-radius:var(--radius);padding:22px 20px}
.bsh-section > h3{font-family:var(--serif);font-weight:600;color:var(--plum);margin:.1em 0 .2em}
/* the connected route */
.bsh-route{display:flex;align-items:flex-start;justify-content:center;gap:0;margin:18px 0 20px;flex-wrap:nowrap}
.bsh-phase{display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto;width:84px;text-align:center;opacity:.55;transition:opacity .2s}
.bsh-phase.is-active{opacity:1}
.bsh-phase.is-quiet{opacity:.7}
/* every phase shares ONE neutral treatment; only the single selected phase gets
   the premium gold accent. No per-phase status colors, no traffic light. */
.bsh-dot{width:26px;height:26px;border-radius:50%;background:var(--ivory);border:2px solid var(--hairline);box-shadow:inset 0 0 0 3px var(--white)}
.bsh-phase-label{font:600 13px/1 var(--sans);letter-spacing:.04em;color:var(--muted)}
.bsh-phase.is-selected{opacity:1}
.bsh-phase.is-selected .bsh-phase-label{color:var(--plum)}
.bsh-phase.is-selected .bsh-dot{background:var(--parchment);border-color:var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.bsh-connector{flex:1 1 auto;height:2px;min-width:22px;margin-top:12px;background:var(--hairline);border-radius:2px;align-self:flex-start}
/* MIXED: all phases equal neutral emphasis (none selected). */
.bsh-route.is-mixed .bsh-phase{opacity:.9}
/* MORE_SIGNALS_NEEDED: nothing broken — softly muted, dashed outline. */
.bsh-route.is-quiet .bsh-phase{opacity:.6}
.bsh-route.is-quiet .bsh-dot{border-style:dashed}
.bsh-pattern-label{font-family:var(--serif);font-size:1.15rem;font-weight:600;color:var(--plum);margin:0 0 .25em}
.bsh-pattern-summary{margin:0;color:var(--espresso)}
.bsh-block{margin-top:18px}
.bsh-block .dash-kicker{margin-bottom:8px}
.bsh-list{list-style:none;margin:0;padding:0}
.bsh-list li{position:relative;padding:8px 0 8px 18px;border-bottom:1px solid var(--plum-08);color:var(--espresso);line-height:1.5}
.bsh-list li:last-child{border-bottom:none}
.bsh-list li::before{content:"";position:absolute;left:0;top:15px;width:6px;height:6px;border-radius:50%;background:var(--gold)}
/* Watch / Record / Ask rows in the single consolidated Next Turn list */
.bsh-step-kind{display:inline-block;min-width:64px;font:600 11px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-right:8px}
.bsh-step-text{color:var(--espresso)}
.actions-list.bsh-steps{list-style:none;margin:0;padding:0}
.actions-list.bsh-steps li{padding:8px 0;border-bottom:1px solid var(--plum-08)}
.actions-list.bsh-steps li:last-child{border-bottom:none}
/* Map Clarity chip — in-palette, never a percentage, never green/red */
.bsh-clarity{display:flex;align-items:baseline;gap:10px;margin-top:16px;flex-wrap:wrap}
.bsh-clarity-chip{display:inline-block;padding:4px 12px;border-radius:999px;font:600 12px/1.4 var(--sans);letter-spacing:.02em;background:var(--parchment);color:var(--plum);border:1px solid var(--hairline)}
.bsh-clarity-chip.clarity-clearer_route{background:var(--gold-soft);color:var(--plum);border-color:var(--gold)}
.bsh-clarity-chip.clarity-developing_route{background:var(--rose-soft);color:var(--plum);border-color:var(--rose)}
.bsh-clarity-chip.clarity-more_signals_needed{background:var(--parchment);color:var(--muted)}
.bsh-clarity-reason{color:var(--muted);font-size:.95em}
@media (max-width:420px){
  .bsh-phase{width:64px}
  .bsh-phase-label{font-size:12px}
  .bsh-nextturn .bsh-step-kind{min-width:0;display:block;margin-bottom:2px}
}

/* ============ Save My Fertility Map (Stage 3B) ============ */
.save-map-card{background:linear-gradient(180deg,var(--rose-soft) 0%,var(--ivory) 100%);border:1px solid var(--rose);border-radius:var(--radius)}
.save-map-card h3{font-family:var(--serif);color:var(--plum);margin:.1em 0 .3em}
.returning-link-wrap{margin-top:14px;text-align:center}
.returning-link{font:500 14px/1.4 var(--sans);color:var(--aubergine);text-decoration:underline;text-underline-offset:3px}
.returning-link:hover{color:var(--plum)}
/* dialog */
.save-overlay{position:fixed;inset:0;background:rgba(38,31,35,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:60}
.save-overlay[hidden]{display:none}
.save-dialog{position:relative;background:var(--ivory);border-radius:var(--radius);max-width:440px;width:100%;padding:28px 24px;box-shadow:var(--shadow-pop);max-height:90vh;overflow:auto}
.save-dialog-close{position:absolute;top:10px;right:12px;background:none;border:0;font-size:26px;line-height:1;color:var(--muted);cursor:pointer;padding:6px}
.save-dialog-close:hover{color:var(--plum)}
.save-step-title{font-family:var(--serif);font-weight:600;color:var(--plum);font-size:1.5rem;margin:0 0 .3em}
.save-step p{color:var(--espresso);margin:0 0 14px}
.save-label{display:block;font:600 13px/1.4 var(--sans);color:var(--plum);margin-bottom:6px}
.save-input{width:100%;padding:12px 14px;border:1px solid var(--hairline);border-radius:var(--radius-sm);font:400 16px/1.4 var(--sans);background:var(--white);color:var(--espresso)}
.save-input:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:var(--gold)}
.save-otp-input{letter-spacing:.4em;text-align:center;font-weight:600}
.save-error{color:#8a2b2b;font-size:.9em;margin:6px 0 0}
.save-privacy{font-size:.85em;color:var(--muted);margin:12px 0 16px}
.save-account-row{margin-top:18px;padding-top:14px;border-top:1px solid var(--hairline);display:flex;gap:18px;justify-content:center}
.btn-link{background:none;border:0;color:var(--aubergine);font:500 14px/1 var(--sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px}
.btn-link:hover{color:var(--plum)}
.btn-link-danger{color:#8a2b2b}
.btn-danger{background:#8a2b2b;color:#fff}
.btn-danger:hover{background:#761f1f}
.save-live{margin-top:14px;font-size:.9em;color:var(--muted);min-height:1.2em}
/* Saved Map Settings — visually secondary; below and subordinate to the booking CTA. */
.saved-map-settings{background:transparent;border:1px dashed var(--hairline);border-radius:var(--radius);padding:14px 18px}
.saved-map-settings .dash-kicker{margin:0 0 8px}
.saved-map-settings .save-account-row{margin-top:0;padding-top:0;border-top:none;justify-content:flex-start}
@media (max-width:420px){ .save-dialog{padding:22px 16px} .save-account-row{flex-direction:column;gap:10px;align-items:center} }
/* What This Does Not Mean */
.not-mean-list{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:8px}
.not-mean-list li{position:relative;padding:10px 12px 10px 34px;border-radius:10px;background:rgba(60,140,90,.07);line-height:1.5;color:var(--espresso)}
.not-mean-list li::before{content:"✓";position:absolute;left:12px;top:10px;color:#3c8c5a;font-weight:700}
/* Route Conditions, visually secondary + compact */
.route-conditions-compact{opacity:.96}
.route-conditions-compact .cat-list{gap:6px}
.route-conditions-compact h3{font-size:17px}

/* score instrument */
.score-ring .ring-waypoints{fill:none;stroke:var(--gold-soft);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:.6 15.72;opacity:.85}
.score-ring .ring-marker{fill:var(--gold);stroke:var(--white);stroke-width:2.5;transition:cx .6s ease,cy .6s ease}
@media (prefers-reduced-motion:reduce){.score-ring .ring-marker{transition:none}}
.ring-unit{position:absolute;left:50%;bottom:40px;transform:translateX(-50%);font-size:12px;letter-spacing:.06em;color:var(--muted)}
.score-derived{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:700;margin:12px 0 0}
.route-status{display:inline-block;background:var(--gold-soft);color:#7A5B22;border:1px solid #E1D2B0;
  border-radius:99px;padding:5px 15px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin:8px 0 10px}
.score-panel .map-disclaimer{text-align:left;margin-top:16px}
.score-panel .score-class{margin:6px 0 12px}

/* summary + focus-pair cards */
.pattern-card.focuspair{background:var(--white);border-left:3px solid var(--plum)}
.pattern-card.focuspair .pattern-kicker{color:var(--plum)}
.pattern-card .pattern-sub{margin:0 0 8px}
.pattern-card.strongest .pattern-sub{color:#7A5B22}
.pattern-card.priority .pattern-sub{color:#9A3D4E}

/* status chips on Route Conditions */
.cond-chip{display:inline-block;font-size:11px;font-weight:700;letter-spacing:.03em;padding:3px 11px;border-radius:99px;border:1px solid transparent;white-space:nowrap}
.chip-supported{background:var(--gold-soft);color:#7A5B22;border-color:#E1D2B0}
.chip-mixed{background:var(--parchment);color:var(--aubergine);border-color:var(--hairline)}
.chip-attention{background:var(--rose-soft);color:#9A3D4E;border-color:#EAD3D9}
.chip-priority{background:#F1D8DD;color:#8E2F41;border-color:#E1B4BE}
.cond-legend{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0}
.cat-row .cond-chip{flex:0 0 auto}
.cat-row.is-clearest .cat-bar span{background:linear-gradient(90deg,var(--gold),#CDA765)}
.cat-row.is-roadblock .cat-bar span{background:linear-gradient(90deg,#B85C6E,var(--rose))}
.cat-row.is-clearest .cat-name,.cat-row.is-roadblock .cat-name{font-weight:600;color:var(--plum)}
.cat-note{flex:1 1 100%;order:6;font-size:13px;color:var(--muted);margin-top:2px;line-height:1.4}

/* focus route-pair */
.route-pair{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;margin:6px 0 10px}
.route-node{flex:1 1 200px;background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--rose);
  border-radius:var(--radius-sm);padding:14px 16px;font-family:var(--serif);font-size:19px;font-weight:600;color:var(--plum);display:flex;align-items:center}
.route-connector{flex:0 0 auto;align-self:center;color:var(--gold);font-weight:700;font-size:22px}
.focus-why{font-size:15px;color:var(--espresso);margin:0 0 6px}
.next-turn-headline{font-family:var(--serif);font-size:22px;line-height:1.25;color:var(--plum);margin:0 0 10px}

/* wider desktop rhythm for the lower sections */
@media (min-width:900px){
  .dash-title{font-size:34px}
  .score-panel{padding:28px 26px 24px}
}

/* keep everything single-column and legible on phones */
@media (max-width:560px){
  .dash-nav{position:static;backdrop-filter:none}
  .summary-grid{grid-template-columns:1fr}
  .route-node{flex:1 1 100%}
  .route-connector{transform:rotate(90deg);align-self:center}
}
@media (max-width:480px){
  .cat-row .cond-chip{flex:1 1 100%;order:5;text-align:center}
  .ring-unit{bottom:36px}
}

/* route strip: a map path with six checkpoints across the categories */
.route-strip{position:relative;display:flex;justify-content:space-between;align-items:flex-start;gap:6px;margin:16px 2px 22px;padding-top:6px}
.route-strip-line{position:absolute;top:12px;left:6%;right:6%;height:2px;background:repeating-linear-gradient(90deg,var(--gold) 0,var(--gold) 6px,transparent 6px,transparent 12px);opacity:.6}
.route-waypoint{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;flex:1 1 0;min-width:0}
.route-pin{width:14px;height:14px;border-radius:50%;border:2px solid var(--white);box-shadow:0 0 0 1px var(--hairline)}
.route-pin.chip-supported{background:var(--gold)}
.route-pin.chip-mixed{background:var(--aubergine)}
.route-pin.chip-attention{background:var(--rose)}
.route-pin.chip-priority{background:#B85C6E}
.route-pin.is-clearest{box-shadow:0 0 0 3px var(--gold-soft)}
.route-pin.is-roadblock{box-shadow:0 0 0 3px var(--rose-soft)}
.route-pin-label{font-size:10.5px;letter-spacing:.02em;color:var(--muted);text-align:center;line-height:1.15;max-width:60px;overflow:hidden;text-overflow:ellipsis}

/* eligibility + required email gate */
.eligibility-block{background:var(--parchment);border:1px solid var(--hairline);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:16px 18px;margin:20px 0}
.eligibility-block .elig-q{font-size:17px;margin:0 0 12px}
.eligibility-block .options{flex-direction:row;gap:10px}
.eligibility-block .opt{min-height:48px;justify-content:center}
.elig-note{margin:12px 0 0}
.noneus-message{background:var(--rose-soft);border:1px solid #EAD3D9;border-radius:var(--radius);padding:20px 22px;margin:18px 0}
.noneus-message .email-title{margin-bottom:8px}
.email-form-heading{font-family:var(--serif);font-size:20px;font-weight:600;color:var(--plum);margin:18px 0 6px}
.consent-disclosure{font-size:13.5px;color:var(--espresso);background:var(--parchment);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:12px 14px;margin:16px 0 8px}
.privacy-reassurance{font-size:13px;color:var(--aubergine);font-weight:600;margin:0 0 6px}
@media (prefers-reduced-motion:reduce){.route-pin{transition:none}}
