/* Integration components; approved LP typography, colors and fixed flow gutter remain. */
.symbol-library{position:absolute;width:0;height:0;overflow:hidden}
body{background:var(--note)}
.scanner-head{max-width:34rem;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;font:600 .8125rem/1.3 var(--ui)}
.scanner-head a{display:flex;min-height:44px;align-items:center}
.scanner-head img{display:block;width:132px;height:44px;object-fit:contain}
.flow{padding-left:20px;padding-right:20px;max-width:30rem;overflow-wrap:anywhere}
main.flow{border-radius:var(--r-l);box-shadow:var(--shadow);min-height:300px}
.flow h1{font-size:1.5rem;line-height:1.2;margin:0 0 10px;font-weight:500}
.flow .rows{display:block}
.flow .rows li{min-width:0;gap:10px}
.flow .rows li>div{min-width:0}
.flow .rows .dots{gap:4px}
.flow .rows .dots i{width:14px;height:14px}
.flow .field-err select{border-color:var(--error);background:var(--error-bg)}
/* Native iOS selects can ignore min-height; retain a full-size touch target. */
.flow select{height:54px}
.flow input[type=checkbox]{min-width:24px}
.flow .ack{min-height:44px;align-items:center}
.flow .ack label{padding:8px 0}
.flow .ack a{display:inline-flex;align-items:center;min-height:44px}
.flow .help a{display:inline-flex;align-items:center;min-height:44px}
.flow .cta:disabled{opacity:.65;cursor:wait}
.flow .quiet{padding:8px 0;min-width:44px}
.flow .row{gap:8px 18px}
.flow .opts{margin-bottom:16px}
.flow .opts label{min-height:56px}
.flow .notice{font-family:var(--ui)}
.recovery{background:transparent;padding-top:16px;padding-bottom:8px;display:flex;flex-wrap:wrap;gap:4px 20px}
.recovery p{flex-basis:100%;border:2px solid var(--error);padding:12px;border-radius:var(--r-m);color:var(--error)}
.scanner-foot{max-width:30rem;margin:auto;padding:10px 20px calc(24px + env(safe-area-inset-bottom));font:400 .8125rem/1.5 var(--ui);color:var(--soft)}
.scanner-foot p{margin:0 0 12px}
.preview-note{max-width:30rem;margin:0 auto 12px;padding:12px 20px;font:600 .875rem/1.5 var(--ui);color:var(--night);border:2px dashed var(--rule);border-radius:var(--r-m)}
[hidden]{display:none!important}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.flow .ack{flex-wrap:wrap}
.flow .ack label{flex:1;min-width:0}
.flow .ack .errmsg{flex-basis:100%}
.flow .errsum h2{font:600 1rem/1.4 var(--ui);color:var(--error)}
.places-credit { font-family: var(--ui); font-style: normal; font-weight: 400; font-size:.8125rem; letter-spacing: normal; white-space: nowrap; color:#5e5e5e; }
.flow .practice-results-panel{margin-top:18px;padding:16px;background:var(--note);border:1px solid var(--rule);border-radius:var(--r-l);box-shadow:0 12px 28px -20px rgba(10,42,102,.65)}
.flow .practice-results-heading{margin:0;font-size:1.25rem}
.flow .result-guidance{font:400 .9375rem/1.5 var(--ui);color:var(--soft);margin-bottom:10px}
.flow .practice-results-panel .opts{display:grid;gap:10px;margin:0;background:transparent;box-shadow:none;overflow:visible}
.flow .practice-results-panel .opts li,.flow .practice-results-panel .opts li+li{border:0}
.flow .practice-option{position:relative;padding:12px 50px 12px 14px;min-height:72px;border:1px solid var(--rule);border-radius:var(--r-m);box-shadow:0 5px 14px -11px rgba(10,42,102,.8)}
.flow .practice-option:hover{background:#fff;border-color:#aabbd5;box-shadow:0 8px 18px -12px rgba(10,42,102,.9)}
.flow .practice-option:active{transform:scale(.99)}
.flow .practice-arrow{position:absolute;right:12px;top:50%;display:grid;place-items:center;width:30px;height:30px;transform:translateY(-50%);border-radius:50%;background:var(--note-2);font:600 1.5rem/1 var(--ui);color:var(--night);font-style:normal}
.flow .practice-results-panel .places-credit{margin:12px 2px 0}
.flow .manual-fallback{margin-top:18px;padding-top:14px;border-top:1px solid var(--rule);font-family:var(--ui)}
.flow .manual-fallback .manual-label{margin:0;color:var(--soft);font-size:.9375rem}
.flow .manual-fallback .quiet{margin-top:2px;font-weight:600}

/* Guided chat: every step is an assistant message, earlier choices replay as a conversation,
   and the visitor answers by tapping or typing in one field. */
.chat-head{position:relative;z-index:1;display:flex;align-items:center;gap:12px;max-width:30rem;margin:0 auto;padding:14px 20px;background:#fff;border-radius:var(--r-l) var(--r-l) 0 0;border-bottom:1px solid var(--rule);font-family:var(--ui)}
.chat-ava{position:relative;flex:none;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--dg),0 0 16px rgba(16,143,255,.45)}
/* The header cycles the four AIs being asked; the assistant's own messages carry the Doctor Genius bulb. */
.chat-ava .mlogo{position:absolute;left:50%;top:50%;width:24px;height:24px;margin:-12px;opacity:0;animation:scan-fade 10s ease-in-out infinite}
.chat-ava .mlogo:first-child{opacity:1}
.chat-ava .mlogo:nth-child(2){animation-delay:2.5s}
.chat-ava .mlogo:nth-child(3){animation-delay:5s}
.chat-ava .mlogo:nth-child(4){animation-delay:7.5s}
@media (prefers-reduced-motion:reduce){.chat-ava{grid-template-columns:repeat(2,13px);gap:3px;place-content:center}.chat-ava .mlogo,.chat-ava .mlogo:first-child{position:static;width:13px;height:13px;margin:0;opacity:1}}
.chat-head p{margin:0;min-width:0}
.chat-head b{display:block;font-size:.9375rem;line-height:1.3}
.chat-head p span{display:block;font-size:.8125rem;line-height:1.35;color:var(--soft)}
main.flow{border-radius:0 0 var(--r-l) var(--r-l);padding-top:18px}
.flow .msg{display:flex;gap:10px;align-items:flex-start;margin:0 0 14px}
.flow .msg.you{justify-content:flex-end}
.flow .msg-ava{flex:none;width:34px;height:34px;padding:5px;border-radius:50%;background:#fff;box-shadow:0 0 0 1.5px var(--dg)}
.flow .say{flex:1;min-width:0;background:var(--note);border-radius:6px 20px 20px 20px;padding:14px 16px}
.flow .say h1{font-size:1.3125rem;margin:0 0 6px}
.flow .say p{margin:0 0 6px}
.flow .say>:last-child{margin-bottom:0}
.flow .log{margin:0 0 4px}
.flow .log .msg{margin-bottom:8px}
.flow .log .say.past{flex:none;max-width:86%;margin:0 0 0 44px;padding:9px 14px;font:400 .9375rem/1.4 var(--ui);color:var(--soft)}
.flow .log .bubble{justify-self:auto;max-width:86%;margin:0;padding:9px 14px;border-radius:20px 20px 6px 20px;background:var(--night);color:#fff;font:600 .9375rem/1.35 var(--ui)}
.flow .chips{display:flex;flex-wrap:wrap;gap:10px;margin:2px 0 10px}
.flow .chip-btn{min-height:48px;padding:0 18px;border-radius:var(--pill);border:1.5px solid var(--night);background:#fff;color:var(--night);font:600 1rem var(--ui);cursor:pointer;transition:background .15s,color .15s,transform .1s}
.flow .chip-btn:hover,.flow .chip-btn[aria-pressed=true]{background:var(--night);color:#fff}
.flow .chip-btn:active{transform:scale(.97)}
.flow .chip-btn:focus-visible{outline:3px solid var(--dg);outline-offset:2px}
.flow .chip-btn:disabled{opacity:.6;cursor:wait}
.flow input[type=search],.flow input[name=code]{min-height:58px;border-radius:20px;border-color:var(--rule);box-shadow:0 10px 24px -18px rgba(10,42,102,.6)}
.flow.enter>.msg.bot{animation:chat-in .4s ease-out both}
.flow.enter>.msg.bot~*{animation:chat-in .4s ease-out .22s both}
@keyframes chat-in{from{opacity:0;transform:translateY(8px)}}

/* Processing: the ring holds one dot per check and fills from real job progress.
   The motion is decorative; it never implies a percentage or a timer. */
.scan-stage{position:relative;width:132px;height:132px;margin:18px auto 6px}
.scan-glow{position:absolute;inset:14px;border-radius:50%;background:conic-gradient(from 0deg,#108fff,#9ad0ff,#0a2a66,#6aa8ff,#108fff);filter:blur(16px);opacity:.42;animation:scan-spin 7s linear infinite}
.scan-ring{position:absolute;inset:0;animation:scan-spin 24s linear infinite}
.scan-ring i{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:#9aa7bd;opacity:.4;animation:scan-comet 1.8s ease-in-out infinite}
.scan-ring i.on{background:var(--night);opacity:1;animation:none}
.scan-ring i:nth-child(1){transform:rotate(0deg) translateY(-60px);animation-delay:0s}
.scan-ring i:nth-child(2){transform:rotate(30deg) translateY(-60px);animation-delay:.15s}
.scan-ring i:nth-child(3){transform:rotate(60deg) translateY(-60px);animation-delay:.3s}
.scan-ring i:nth-child(4){transform:rotate(90deg) translateY(-60px);animation-delay:.45s}
.scan-ring i:nth-child(5){transform:rotate(120deg) translateY(-60px);animation-delay:.6s}
.scan-ring i:nth-child(6){transform:rotate(150deg) translateY(-60px);animation-delay:.75s}
.scan-ring i:nth-child(7){transform:rotate(180deg) translateY(-60px);animation-delay:.9s}
.scan-ring i:nth-child(8){transform:rotate(210deg) translateY(-60px);animation-delay:1.05s}
.scan-ring i:nth-child(9){transform:rotate(240deg) translateY(-60px);animation-delay:1.2s}
.scan-ring i:nth-child(10){transform:rotate(270deg) translateY(-60px);animation-delay:1.35s}
.scan-ring i:nth-child(11){transform:rotate(300deg) translateY(-60px);animation-delay:1.5s}
.scan-ring i:nth-child(12){transform:rotate(330deg) translateY(-60px);animation-delay:1.65s}
.scan-core{position:absolute;inset:26px;border-radius:50%;background:#fff;box-shadow:var(--shadow);animation:scan-breathe 3.2s ease-in-out infinite}
.scan-core .mlogo{position:absolute;left:50%;top:50%;width:38px;height:38px;margin:-19px;opacity:0;animation:scan-fade 8s ease-in-out infinite}
.scan-core .mlogo:first-child{opacity:1}
.scan-core .mlogo:nth-child(2){animation-delay:2s}
.scan-core .mlogo:nth-child(3){animation-delay:4s}
.scan-core .mlogo:nth-child(4){animation-delay:6s}
.scan-stage.held .scan-glow,.scan-stage.held .scan-ring,.scan-stage.held .scan-ring i,.scan-stage.held .scan-core,.scan-stage.held .mlogo{animation:none}
.scan-stage.held .scan-glow{opacity:.15}
.scan-count{text-align:center;font:600 .9375rem/1.4 var(--ui);color:var(--night);margin:0 0 4px}
@keyframes scan-spin{to{transform:rotate(360deg)}}
@keyframes scan-comet{0%,100%{opacity:.25}35%{opacity:1;background:var(--dg)}}
@keyframes scan-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes scan-fade{0%{opacity:0;transform:scale(.82)}5%,22%{opacity:1;transform:scale(1)}27%,100%{opacity:0;transform:scale(1.1)}}
.jobs li{gap:10px}
.jobs b{margin-right:auto}
.jobs .pips{display:inline-flex;gap:4px}
.jobs .pips i{width:8px;height:8px;border-radius:50%;border:1.5px solid #9aa7bd;background:#fff}
.jobs .pips i.on{background:var(--night);border-color:var(--night)}
.jobs span{min-width:7.5em}
.jobs .orb{display:none;min-width:0;grid-template-columns:repeat(3,4px);gap:2px}
.jobs .active .orb{display:inline-grid}
.jobs .orb i{width:4px;height:4px;border-radius:50%;background:var(--dg);opacity:.2;animation:orb-ripple 1.5s ease-in-out infinite}
.jobs .orb i:nth-child(5){animation-delay:-.18s}
.jobs .orb i:nth-child(2n){animation-delay:.25s}
.jobs .orb i:nth-child(1),.jobs .orb i:nth-child(3),.jobs .orb i:nth-child(7),.jobs .orb i:nth-child(9){animation-delay:.5s}
.jobs .active span{color:transparent;background:linear-gradient(90deg,var(--soft) 35%,var(--dg) 50%,var(--soft) 65%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;animation:scan-shimmer 2.2s linear infinite}
.jobs .done span{color:var(--ink)}
@keyframes orb-ripple{0%,100%{opacity:.2;transform:scale(.8)}40%{opacity:1;transform:scale(1.15)}}
@keyframes scan-shimmer{from{background-position:100% 0}to{background-position:-50% 0}}
@media (max-width:22.49rem){.jobs b{margin-right:0}.jobs span{min-width:0}}

/* Report answers: grouped by patient question, one card per model. */
.flow h2#answers{margin-top:26px}
.flow .qblock{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.flow h2#answers+.qblock{border-top:0;padding-top:4px;margin-top:8px}
.flow .qnum{font:700 .75rem/1.3 var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--night);margin:0 0 8px}
.flow .qblock .bubble{display:block;width:fit-content;max-width:92%;margin:0 0 14px auto}
.flow .evidence{margin:10px 0;padding:0 16px;box-shadow:none;border:1px solid var(--rule);border-radius:var(--r-m);transition:border-color .2s,box-shadow .2s}
.flow .evidence[open]{border-color:#aabbd5;box-shadow:0 12px 28px -22px rgba(10,42,102,.7)}
.flow .evidence summary{line-height:1.4;padding:10px 0;min-height:56px;gap:10px}
.flow .evidence .who{display:inline-flex;align-items:center;gap:10px;margin-right:auto}
.flow .evidence .who .mlogo{width:24px;height:24px}
.flow .chip{flex:none;font:700 .75rem/1 var(--ui);padding:7px 11px;border-radius:var(--pill);background:var(--note-2);color:var(--night)}
.flow .chip.on{background:var(--mark);color:var(--ink)}
.flow .chip.unk{background:#fff;border:1.5px dashed #9aa7bd;color:var(--soft)}
.flow .facts{list-style:none;margin:0 0 4px;padding:12px 14px;background:var(--note);border-radius:var(--r-s);font:400 .875rem/1.45 var(--ui);color:var(--soft)}
.flow .facts li{display:flex;gap:10px;align-items:flex-start;margin:0}
.flow .facts li+li{margin-top:8px}
.flow .facts i{flex:none;width:12px;height:12px;margin-top:4px;border-radius:50%;border:2px solid #9aa7bd;background:#fff}
.flow .facts i.on{background:var(--mark);border-color:var(--ink)}
.flow .facts i.unk{border-style:dashed}
.flow .answer{overflow-wrap:anywhere;font-size:1rem;line-height:1.6;color:var(--ink)}
.flow .answer p{margin:0 0 12px}
.flow .answer h4{font:700 1rem/1.35 var(--ui);margin:16px 0 6px}
.flow .answer ol,.flow .answer ul{margin:0 0 12px;padding-left:0;list-style:none}
.flow .answer ol>li{position:relative;margin:0 0 10px;padding:12px 14px 12px 50px;border:1px solid var(--rule);border-radius:var(--r-s);counter-increment:none}
.flow .answer ol>li::before{content:attr(value);position:absolute;left:12px;top:12px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--night);color:#fff;font:700 .8125rem/1 var(--ui)}
.flow .answer .item-head{font-family:var(--ui);font-weight:600;line-height:1.4}
.flow .answer ul>li .item-head{font-family:inherit;font-weight:400}
.flow .answer li p{margin:4px 0 0;font-size:.9375rem;line-height:1.55;color:var(--soft)}
.flow .answer ul>li{position:relative;margin:0 0 6px;padding-left:18px}
.flow .answer ul>li::before{content:"";position:absolute;left:3px;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--dg)}
.flow .answer li ul{margin:8px 0 0;font-size:.9375rem;color:var(--soft)}
.flow .answer a,.flow .sources a{color:var(--night);text-underline-offset:3px}
.flow .answer strong{font-weight:600}
.flow .answer .hl{color:var(--ink)}
.flow .sources-title{font:700 .75rem/1.3 var(--ui);letter-spacing:.06em;text-transform:uppercase;color:var(--soft);margin:6px 0 0;padding-bottom:6px}
.flow .sources{list-style:none;padding-left:0;font:400 .875rem/1.4 var(--ui)}
.flow .sources li{margin:0;padding:4px 0;border-top:1px solid var(--rule)}
.flow .sources a{display:block;padding:12px 0;overflow-wrap:anywhere}
.flow .sources span{display:block;margin-top:-10px;padding-bottom:8px;font-size:.8125rem;color:var(--soft)}

.flow .bubble.ask{display:block;width:fit-content;max-width:94%;margin:14px 0 14px auto;font-size:1.125rem}
.flow .evidence .who-text{display:flex;flex-direction:column;min-width:0}
.flow .evidence .who-text b{font-weight:700}
.flow .evidence .who-text small{font:400 .8125rem/1.35 var(--ui);color:var(--soft)}
.flow .evidence .who .mlogo{width:28px;height:28px}

/* After the answers: the one next step. */
.flow .booking{margin:26px -4px 14px;padding:24px 22px 20px;border-radius:var(--r-l);background:var(--night);color:var(--on-night);box-shadow:var(--shadow-lift)}
.flow .booking h2{color:#fff;font-size:1.4375rem;line-height:1.22;margin:0 0 10px;overflow-wrap:anywhere}
.flow .booking p{font:400 1rem/1.55 var(--ui);color:var(--on-night);margin:0}
.flow .booking .cta{margin-top:18px;text-align:center}
.flow .booking .meta{margin-top:12px;font-size:.8125rem;color:var(--on-night);opacity:.85}

/* "Save my report as PDF" prints this page: logo, summary and every answer. */
@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .skip,.recovery,.preview-note,.chat-head,.flow .log,.flow .msg-ava,.flow .booking,.flow .cta,.flow .quiet,.flow .row,.flow .help,summary::after{display:none!important}
  body{background:#fff}
  .scanner-head,.flow,.scanner-foot{max-width:none}
  main.flow{box-shadow:none;padding-top:0}
  .flow .rows{max-width:none}
  .flow .evidence,.flow .evidence[open]{box-shadow:none;break-inside:auto}
  .flow .evidence summary,.flow .facts,.flow .answer ol>li,.flow .rows li,.flow .qnum,.flow .bubble{break-inside:avoid;break-after:avoid}
  .flow .answer ol>li,.flow .rows li{break-after:auto}
  .flow .answer a,.flow .sources a{text-decoration:none}
  .flow .sources a{padding:4px 0}
  .flow .sources span{margin-top:0}
}
