/* Scanner flow components in the LP's visual system. Loaded by the scanner flow, not by the LP.
   Depends on the tokens in lp.css. */
.flow{font-family:var(--font);font-size:1.0625rem;line-height:1.6;background:#fff;color:var(--ink);padding:22px 20px 26px;max-width:30rem;margin:0 auto}  /* fixed padding: the flow is a narrow column at every viewport, so the page gutter must not apply */
.flow h2{font-size:1.5rem;line-height:1.2;font-weight:500;margin-bottom:6px}
.flow .prog{font-size:.875rem;color:var(--soft);margin-bottom:4px}
.flow .ctx-line{font-size:.9375rem;color:var(--soft);margin-bottom:6px}
.flow p{margin-bottom:10px}
.flow .help{color:var(--soft);font-size:.9375rem}

.flow label,.flow legend{display:block;font:600 .9375rem var(--ui);margin:16px 0 6px;padding:0}
.flow .hint{display:block;font-weight:400;color:var(--soft);font-size:.90625rem}
.flow input[type=text],.flow input[type=email],.flow input[type=search],.flow input[type=url],.flow select{width:100%;min-height:54px;border:1.5px solid #9aa7bd;border-radius:var(--r-m);padding:0 16px;font:400 1.0625rem var(--ui);color:var(--ink);background:#fff}
.flow input:focus-visible,.flow select:focus-visible{outline:3px solid var(--dg);outline-offset:2px}
.flow fieldset{border:0;margin:0;padding:0}
.flow .field-err input{border-color:var(--error);background:var(--error-bg)}
.flow .errmsg{color:var(--error);font-size:.9375rem;font-weight:600;margin-top:6px}
.flow .errmsg::before{content:"Error: "}
.flow .errsum{border:2px solid var(--error);border-radius:var(--r-m);padding:12px 14px;margin:12px 0 4px;background:var(--error-bg)}
.flow .errsum h3{font-size:1rem;color:var(--error);margin-bottom:4px}
.flow .errsum ul{margin:0;padding-left:20px}
.flow .errsum a{display:inline-block;padding:10px 0;color:var(--error)}
.flow .ack{display:flex;gap:10px;align-items:flex-start;font-size:.9375rem;margin:18px 0 20px;color:var(--soft)}
.flow .ack input{width:24px;height:24px;flex:none;margin:1px 0 0;accent-color:var(--ink)}
.flow .ack label{margin:0;font-weight:400;font-size:.9375rem}
.flow .cta{width:100%;margin-top:18px}
.flow .quiet{display:inline-flex;align-items:center;min-height:44px;background:none;border:0;padding:0;font:inherit;font-size:.96875rem;color:var(--night);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.flow .quiet[disabled]{color:var(--soft);text-decoration:none;cursor:default}
.flow .row{display:flex;flex-wrap:wrap;gap:4px 22px;margin-top:10px}

/* practice results and service choices */
.opts{list-style:none;margin:12px 0 0;padding:0;border-radius:var(--r-l);background:#fff;box-shadow:var(--shadow);overflow:hidden}
.opts li+li{border-top:1px solid var(--rule)}
.opts button,.opts label{display:block;width:100%;min-height:56px;padding:9px 12px;margin:0;text-align:left;background:#fff;border:0;font:inherit;color:var(--ink);cursor:pointer}
.opts button:hover,.opts label:hover{background:var(--note)}
.opts button:focus-visible{outline:3px solid var(--dg);outline-offset:-3px}
.opts b{display:block;font-weight:600}
.opts span{display:block;font-size:.875rem;color:var(--soft);overflow-wrap:anywhere}
.opts .other{background:var(--note);font-weight:600}
.opts label{display:flex;align-items:center;gap:12px;font-weight:600;font-size:1rem}
.opts input[type=radio]{width:22px;height:22px;flex:none;margin:0;accent-color:var(--ink)}
.nomatch{font-size:.9375rem;margin-top:10px}

/* fixed questions */
.fixedq{margin:12px 0 0;padding-left:24px}
.fixedq li{font-style:italic;font-size:1.0625rem;line-height:1.35;margin-bottom:12px}

/* verification */
.sentto{font-weight:600;overflow-wrap:anywhere}
.notice{background:var(--note);border-radius:var(--r-m);padding:12px 16px;margin:14px 0;font-size:.9375rem}
.notice.warn{background:var(--error-bg);color:var(--error)}
.notice b{display:block;font-weight:600}

/* processing: real per-model status from the job. No percentage, no timer-driven progress. */
.jobs{list-style:none;margin:14px 0;padding:4px 18px;border-radius:var(--r-l);background:var(--note)}
.jobs li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:13px 0;font-family:var(--ui)}
.jobs li+li{border-top:1px solid var(--rule)}
.jobs b{font-weight:600;display:inline-flex;align-items:center;white-space:nowrap}
.jobs span{font-size:.9375rem;color:var(--soft);text-align:right}
.jobs .done span::before{content:"\2713\00a0";color:var(--ink);font-weight:700}

.flow .rows{box-shadow:none;background:var(--note);padding:4px 16px}
.flow .prog,.flow .help,.flow .ctx-line,.flow .hint,.flow .errmsg,.flow .quiet{font-family:var(--ui)}
.flow .opts li+li{border-top:1px solid var(--rule)}
/* smallest phones: status drops under the model name so it never wraps to three lines */
@media (max-width:22.49rem){
  .jobs li{flex-direction:column;align-items:flex-start;gap:2px}
  .jobs span{text-align:left}
}
