/* digi-app · ui/scan.css
   SCAN (digiAPP_Build 8x.9, piece 3a): her live pass, as big as the screen allows, black on white in every look (scanners
   read dark on light), her level beside her name, the ring counting down to the next code; his discount on top when
   her phone sees her in his zone. */
.pg-scan .pg-body{display:flex;flex-direction:column;gap:14px}
.sc-spots{display:flex;flex-direction:column;gap:8px}
.sc-spot{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border-radius:20px;border:2px solid var(--g-line);background:var(--g-card);color:var(--g-ink);font:inherit;text-align:left;cursor:pointer}
.sc-spot.on{border-color:var(--lv);box-shadow:0 0 0 2px var(--lv)}
.sc-spot .sq{width:52px;height:52px;flex:none}
/* her chest reward here today (piece 4) */
.sc-spot.ch.gold{background:linear-gradient(135deg,#fff7cc,#fde68a);color:#14123d}.sc-spot.ch.silver{background:linear-gradient(135deg,#f8fafc,#e2e8f0);color:#14123d}
.sc-spot.ch small{font-weight:900;color:#7a5400;opacity:1}.sc-spot.ch.silver small{color:#475569}.sc-spot.ch em{color:#14123d}
.sc-spot span{flex:1;min-width:0;display:flex;flex-direction:column}
.sc-spot small{font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--g-sub)}
.sc-spot b{font-size:19px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-spot em{flex:none;font-style:normal;font-size:22px;font-weight:900;color:var(--lv)}
.sc-card{position:relative;padding:18px 18px 16px;border-radius:28px;background:#fff;color:#14123d;box-shadow:0 12px 40px rgba(0,0,0,.28)}
.sc-who{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.sc-lv{padding:6px 12px;border-radius:10px;color:#fff;font-size:15px;font-weight:900;letter-spacing:.06em}
.sc-who b{font-size:19px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc-code{display:grid;place-items:center;aspect-ratio:1;width:100%}
.sc-qr{width:100%;height:auto;display:block}
.sc-wait{margin:0;padding:20px;text-align:center;font-size:16px;font-weight:700;color:#5b5b66}
.sc-ring{position:absolute;right:14px;top:12px;width:44px;height:44px}
.sc-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.sc-ring circle{fill:none;stroke:#e6e6ec;stroke-width:3.5}
.sc-ring .sc-arc{stroke:var(--lv);stroke-dasharray:97.4;stroke-dashoffset:0;stroke-linecap:round;transition:stroke-dashoffset .25s linear}
.sc-ring span{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:900;color:#14123d}
.sc-how{margin:0;font-size:16px;line-height:1.45;color:var(--g-sub)}
.sc-how b{color:var(--g-ink)}
.sc-none .btn{margin-top:14px}

/* HEARD (piece 3b): +2 · Visit confirmed at Poco Loco! */
.sc-yes{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:22px;background:#16a34a;color:#fff;box-shadow:0 10px 30px rgba(22,163,74,.45);transform:translateY(-12px) scale(.96);opacity:0;transition:transform .35s cubic-bezier(.2,1.4,.4,1),opacity .2s}
.sc-yes.in{transform:none;opacity:1}
.sc-pts{flex:none;font-size:40px;font-weight:900;line-height:1}
.sc-yes span{display:flex;flex-direction:column;gap:2px}
.sc-yes span b{font-size:19px;font-weight:900}
.sc-yes small{font-size:14.5px;font-weight:700;opacity:.9}
@media (prefers-reduced-motion:reduce){.sc-yes{transition:none}}

/* BEFORE HER TICKET (3c): Let's make this visit count! */
.sc-first{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:22px;background:var(--g-card);border:2px solid var(--lv)}
.sc-first b{font-size:20px;font-weight:900;color:var(--g-ink)}
.sc-first span{font-size:15px;font-weight:600;color:var(--g-sub);line-height:1.4}
.sc-first .btn{margin-top:8px}
.sc-yes.hold{background:#0ea5e9;box-shadow:0 10px 30px rgba(14,165,233,.4)}
/* LOCATION, the first time */
.sc-ask p{font-size:16px;line-height:1.45}
.sc-two{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.sc-s{font-size:14px;opacity:.7;margin-top:10px}

/* THANK JAKE (Nov 11, 2026; One Scan step 2): under her +2, one tap */
.sc-yes{flex-wrap:wrap}
.sc-thx{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;padding:12px 16px;border:0;border-radius:16px;background:#fff;color:#16161d;font:inherit;font-size:17px;font-weight:900;cursor:pointer}
.sc-thx small{font-size:13px;font-weight:800;padding:3px 8px;border-radius:999px;background:#16a34a;color:#fff}
.sc-thx:disabled{opacity:.6}
.sc-thxd{flex-basis:100%;margin:10px 0 0;font-size:15px;font-weight:800;text-align:center}
.sc-tot{flex-basis:100%;margin:8px 0 0;font-size:15px;font-weight:800;text-align:center}
/* 1b: asked once */
.sc-ask{flex-basis:100%;display:flex;flex-direction:column;gap:4px;margin-top:10px;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.16)}
.sc-ask b{font-size:16px;font-weight:900}.sc-ask small{font-size:13.5px;font-weight:600;opacity:.95}
.sc-ask span{display:flex;gap:8px;margin-top:6px}
.sc-ask button{flex:1;padding:10px;border:0;border-radius:12px;background:#fff;color:#16161d;font:inherit;font-size:15px;font-weight:900;cursor:pointer}
.sc-ask button[data-tn]{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7)}
