@font-face{font-family:Barlow;src:url(/fonts/barlow-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Barlow;src:url(/fonts/barlow-500.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Barlow;src:url(/fonts/barlow-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Barlow;src:url(/fonts/barlow-700.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Barlow Condensed;src:url(/fonts/barlow-condensed-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Barlow Condensed;src:url(/fonts/barlow-condensed-700.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-500.woff2) format("woff2");font-weight:500;font-display:swap}:root{--paper: #F4F2ED;--paper-2: #ECE9E2;--card: #FFFFFF;--ink: #17181B;--ink-2: #3B3E45;--muted: #6E717A;--faint: #A3A5AB;--line: #E3DFD6;--line-2: #D5D0C5;--char: #1A1B1F;--char-2: #24262B;--char-3: #33363D;--char-line: #34373E;--red: #D7261E;--red-2: #EF3B2C;--red-ink: #A91A13;--red-soft: #FCE9E6;--amber: #F2A900;--amber-ink: #8A5A00;--amber-soft: #FFF3D6;--green: #1C8A50;--green-ink: #12673A;--green-soft: #E2F4EA;--orange: #E06A10;--orange-soft: #FDEBDD;--blue: #2463C9;--blue-soft: #E5EEFB;--grey-soft: #EEEDE9;--display: "Barlow Condensed", "Barlow", system-ui, sans-serif;--body: "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, Consolas, monospace;--r-sm: 8px;--r: 14px;--r-lg: 20px;--sh-1: 0 1px 2px rgba(23, 24, 27, .06), 0 1px 1px rgba(23, 24, 27, .04);--sh-2: 0 6px 18px -6px rgba(23, 24, 27, .18), 0 2px 4px rgba(23, 24, 27, .05);--sh-3: 0 24px 60px -18px rgba(23, 24, 27, .38), 0 6px 14px rgba(23, 24, 27, .08);--spring: cubic-bezier(.34, 1.56, .64, 1);--ease: cubic-bezier(.2, .8, .2, 1);--safe-b: env(safe-area-inset-bottom, 0px);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none;padding:0}a{color:inherit}h1,h2,h3,h4{margin:0;font-family:var(--display);font-weight:700;letter-spacing:.01em;line-height:1.1}p{margin:0}.mono{font-family:var(--mono);font-weight:500;letter-spacing:-.01em}.muted{color:var(--muted)}.num{font-variant-numeric:tabular-nums}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2.5px solid var(--blue);outline-offset:2px;border-radius:6px}::selection{background:#f9c9c2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 18px;border-radius:12px;font-weight:600;font-size:15px;letter-spacing:.01em;white-space:nowrap;transition:transform .18s var(--spring),background .15s,box-shadow .15s,opacity .15s;user-select:none}.btn:active:not(:disabled){transform:scale(.96)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn svg{flex:none}.btn-red{background:var(--red);color:#fff;box-shadow:0 6px 16px -6px #d7261eb3,inset 0 1px #ffffff2e}.btn-red:hover:not(:disabled){background:var(--red-2)}.btn-dark{background:var(--char);color:#fff}.btn-dark:hover:not(:disabled){background:var(--char-3)}.btn-ghost{background:var(--card);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line-2)}.btn-ghost:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--ink-2)}.btn-soft{background:var(--paper-2);color:var(--ink)}.btn-soft:hover:not(:disabled){background:var(--line)}.btn-sm{height:34px;padding:0 12px;font-size:13.5px;border-radius:10px;gap:6px}.btn-lg{height:54px;padding:0 22px;font-size:16.5px;border-radius:15px}.btn-block{width:100%}.icon-btn{width:40px;height:40px;border-radius:12px;display:inline-grid;place-items:center;transition:background .15s,transform .18s var(--spring)}.icon-btn:hover{background:#7f7f7f1f}.icon-btn:active{transform:scale(.9)}.chip{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 9px;border-radius:99px;font-size:12.5px;font-weight:600;white-space:nowrap;letter-spacing:.01em}.chip svg{width:13px;height:13px}.chip-ok{background:var(--green-soft);color:var(--green-ink)}.chip-due{background:var(--amber-soft);color:var(--amber-ink)}.chip-over,.chip-critical{background:var(--red-soft);color:var(--red-ink)}.chip-major{background:var(--orange-soft);color:#a2470a}.chip-minor{background:#eef0f4;color:#49505e}.chip-new,.chip-grey{background:var(--grey-soft);color:var(--ink-2)}.chip-blue{background:var(--blue-soft);color:#1b4c9c}.chip-dark{background:var(--char);color:#fff}.dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh-1),inset 0 0 0 1px #17181b0a}.hazard{background:repeating-linear-gradient(-45deg,var(--amber) 0 10px,var(--char) 10px 20px)}.eyebrow{font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:12px;color:var(--muted)}.field{display:grid;gap:6px}.field>span{font-size:13px;font-weight:600;color:var(--ink-2)}.input,.select,.textarea{width:100%;height:46px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line-2);background:var(--card);outline:none;transition:border-color .15s,box-shadow .15s;font-size:15.5px}.textarea{height:auto;min-height:84px;padding:12px 14px;resize:vertical;line-height:1.4}.input:focus,.select:focus,.textarea:focus{border-color:var(--ink);box-shadow:0 0 0 4px #17181b14}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%2317181B' stroke-width='2'%3E%3Cpath d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}.toasts{position:fixed;z-index:90;left:50%;transform:translate(-50%);bottom:calc(24px + var(--safe-b));display:grid;gap:8px;width:min(440px,calc(100vw - 32px));pointer-events:none}.toasts.top{bottom:auto;top:calc(12px + env(safe-area-inset-top,0px))}.toasts.top .toast{animation-name:toastInTop}@keyframes toastInTop{0%{opacity:0;transform:translateY(-16px) scale(.96)}}.toast{pointer-events:auto;display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--char);color:#fff;box-shadow:var(--sh-3);animation:toastIn .45s var(--spring) both;font-weight:500;font-size:14.5px}.toast .ti{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:none}.toast.out{animation:toastOut .3s var(--ease) both}@keyframes toastIn{0%{opacity:0;transform:translateY(16px) scale(.96)}}@keyframes toastOut{to{opacity:0;transform:translateY(8px) scale(.98)}}.scrim{position:fixed;inset:0;z-index:70;background:#0f101380;backdrop-filter:blur(3px);animation:fade .25s both}.sheet{position:fixed;z-index:71;left:0;right:0;bottom:0;max-height:92dvh;overflow:auto;background:var(--paper);border-radius:22px 22px 0 0;padding:10px 18px calc(22px + var(--safe-b));animation:sheetUp .42s var(--ease) both;box-shadow:var(--sh-3)}.sheet:before{content:"";display:block;width:42px;height:5px;border-radius:9px;background:var(--line-2);margin:0 auto 12px}.modal{position:fixed;z-index:71;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100vw - 32px));max-height:88dvh;overflow:auto;background:var(--paper);border-radius:22px;padding:24px;animation:modalIn .35s var(--spring) both;box-shadow:var(--sh-3)}.in-frame .sheet,.in-frame .scrim{position:absolute}@keyframes fade{0%{opacity:0}}@keyframes sheetUp{0%{transform:translateY(100%)}}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-46%) scale(.96)}}.spin{width:20px;height:20px;border-radius:50%;border:2.5px solid currentColor;border-right-color:transparent;animation:rot .8s linear infinite;display:inline-block}@keyframes rot{to{transform:rotate(360deg)}}.skel{background:linear-gradient(90deg,var(--paper-2) 0%,#F8F7F3 50%,var(--paper-2) 100%);background-size:200% 100%;animation:shimmer 1.3s infinite linear;border-radius:10px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.rise{animation:rise .5s var(--ease) both}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.pop{animation:pop .5s var(--spring) both}@keyframes pop{0%{opacity:0;transform:scale(.85)}}.empty{display:grid;justify-items:center;text-align:center;gap:8px;padding:36px 20px;color:var(--muted)}.empty .ei{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;background:var(--paper-2);color:var(--ink-2);margin-bottom:4px}.empty b{color:var(--ink);font-size:16px}.credit{font-size:12px;color:var(--muted);text-decoration:none;display:inline-flex;gap:5px;align-items:center}.credit:hover{color:var(--ink)}.credit b{font-weight:600}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.m-app{min-height:100dvh;max-width:560px;margin:0 auto;background:var(--paper);position:relative}@media(min-width:561px){.m-app{box-shadow:0 0 0 1px var(--line),var(--sh-3)}}.m-body{padding:16px 16px calc(112px + var(--safe-b));display:grid;gap:18px}.m-body.flush{padding-top:0}.m-top{position:relative;background:var(--char);color:#fff;padding:14px 16px 20px;overflow:hidden;background-image:radial-gradient(120% 90% at 100% 0%,rgba(215,38,30,.42) 0%,transparent 55%),radial-gradient(80% 70% at 0% 100%,rgba(242,169,0,.14) 0%,transparent 60%)}.m-top:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:repeating-linear-gradient(-45deg,var(--amber) 0 8px,var(--char) 8px 16px);opacity:.9}.m-bar{display:flex;align-items:center;gap:10px;min-height:40px}.m-brand{display:flex;align-items:center;gap:9px;font-family:var(--display);font-weight:700;font-size:20px;letter-spacing:.02em}.m-brand small{display:block;font-family:var(--body);font-weight:500;font-size:11.5px;color:#a9acb3;letter-spacing:0;margin-top:-2px}.m-hello{margin-top:18px}.m-hello h1{font-size:30px}.m-hello p{color:#b9bcc3;margin-top:2px}.m-run{margin-top:16px;display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;padding:14px;border-radius:16px;background:#ffffff0f;box-shadow:inset 0 0 0 1px #ffffff14}.m-run b{font-family:var(--display);font-size:34px;line-height:1}.m-run .k{display:flex;gap:14px;margin-top:6px;font-size:13px;color:#c9cbd0;flex-wrap:wrap}.m-run .k span{display:inline-flex;align-items:center;gap:5px}.scan-cta{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border-radius:18px;background:var(--red);color:#fff;text-align:left;box-shadow:0 14px 30px -12px #d7261ebf,inset 0 1px #fff3;transition:transform .2s var(--spring);position:relative;overflow:hidden}.scan-cta:active{transform:scale(.97)}.scan-cta .si{width:52px;height:52px;border-radius:14px;background:#ffffff29;display:grid;place-items:center;flex:none}.scan-cta b{font-family:var(--display);font-size:22px;display:block;line-height:1.05}.scan-cta span{font-size:13.5px;opacity:.88}.scan-cta:after{content:"";position:absolute;top:0;bottom:0;width:60px;left:-80px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.28),transparent);transform:skew(-20deg);animation:sheen 3.6s 1.2s infinite}@keyframes sheen{0%{left:-80px}30%,to{left:110%}}.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.sec-h h2{font-size:21px}.sec-h a,.sec-h button{font-size:13.5px;font-weight:600;color:var(--red-ink);text-decoration:none}.list{display:grid;background:var(--card);border-radius:var(--r);box-shadow:var(--sh-1),inset 0 0 0 1px #17181b0a;overflow:hidden}.arow{display:grid;grid-template-columns:48px 1fr auto;gap:12px;align-items:center;padding:12px 14px;text-align:left;width:100%;transition:background .15s;position:relative}.arow+.arow{border-top:1px solid var(--line)}.arow:hover{background:#fbfaf7}.arow:active{background:var(--paper-2)}.arow .gl{width:48px;height:48px;border-radius:13px;background:var(--paper);display:grid;place-items:center}.arow .t{min-width:0}.arow .t b{display:block;font-size:15.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arow .t .mono{font-size:12.5px;color:var(--ink-2)}.arow .t small{display:block;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qa{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.qa button{display:grid;justify-items:start;gap:10px;padding:14px 12px;border-radius:16px;background:var(--card);box-shadow:var(--sh-1),inset 0 0 0 1px #17181b0a;text-align:left;font-weight:600;font-size:14px;line-height:1.2;transition:transform .2s var(--spring)}.qa button:active{transform:scale(.95)}.qa .qi{width:36px;height:36px;border-radius:11px;display:grid;place-items:center}.dcard{display:grid;gap:8px;padding:14px 14px 14px 18px;border-radius:var(--r);background:var(--card);box-shadow:var(--sh-1),inset 0 0 0 1px #17181b0a;position:relative;overflow:hidden;text-align:left;width:100%}.dcard:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--sev, var(--line-2))}.dcard b{font-size:15.5px;line-height:1.25}.dcard .meta{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;font-size:12.5px;color:var(--muted)}.m-tabs{position:fixed;z-index:40;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:560px;height:calc(72px + var(--safe-b));padding-bottom:var(--safe-b);display:grid;grid-template-columns:repeat(5,1fr);align-items:center;background:#ffffffdb;backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);border-top:1px solid var(--line)}.m-tabs button{display:grid;justify-items:center;gap:3px;font-size:11.5px;font-weight:600;color:var(--muted);padding:8px 0;position:relative}.m-tabs button.on{color:var(--ink)}.m-tabs button.on:before{content:"";position:absolute;top:-1px;width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--red)}.m-tabs .fab{width:62px;height:62px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;margin:-30px auto 0;box-shadow:0 10px 24px -8px #d7261ecc,0 0 0 5px var(--paper);transition:transform .2s var(--spring);position:relative}.m-tabs .fab:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--red);opacity:0;animation:ring 2.6s 1s infinite}@keyframes ring{0%{transform:scale(.9);opacity:.6}to{transform:scale(1.35);opacity:0}}.m-tabs .fab:active{transform:scale(.92)}.badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:18px;height:18px;border-radius:9px;padding:0 5px;background:var(--red);color:#fff;font-size:11px;display:grid;place-items:center;font-weight:700;box-shadow:0 0 0 2px #fff}.m-sub{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:6px;padding:10px;min-height:60px;background:#f4f2ede0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid transparent}.m-sub.dark{background:#1a1b1feb;color:#fff}.m-sub h1{font-size:21px;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-sub .sub2{font-size:12.5px;color:var(--muted);font-family:var(--body);font-weight:500;display:block;margin-top:1px}.hero{display:grid;gap:14px;padding:18px;border-radius:var(--r-lg);background:var(--card);box-shadow:var(--sh-2);position:relative;overflow:hidden}.hero .top{display:grid;grid-template-columns:76px 1fr;gap:14px;align-items:center}.hero .gl{width:76px;height:76px;border-radius:20px;display:grid;place-items:center;background:linear-gradient(160deg,#FFF 0%,var(--paper-2) 100%);box-shadow:inset 0 0 0 1px var(--line)}.hero .code{font-size:13px;color:var(--ink-2);display:inline-flex;align-items:center;gap:6px}.hero h1{font-size:26px;margin:2px 0 6px}.hero .where{display:flex;gap:6px;align-items:flex-start;font-size:14px;color:var(--ink-2)}.hero .qrmini{position:absolute;right:14px;top:14px;padding:5px;border-radius:10px;background:#fff;box-shadow:inset 0 0 0 1px var(--line);transition:transform .2s var(--spring)}.hero .qrmini:active{transform:scale(.92)}.kv{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border-radius:12px;overflow:hidden}.kv div{background:var(--card);padding:10px 12px}.kv small{display:block;font-size:11.5px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.06em}.kv span{font-weight:600;font-size:14.5px}.timeline{display:grid;gap:0}.tl{display:grid;grid-template-columns:22px 1fr auto;gap:10px;padding:10px 0;position:relative;align-items:start}.tl:before{content:"";position:absolute;left:10px;top:26px;bottom:-10px;width:2px;background:var(--line)}.tl:last-child:before{display:none}.tl .d{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;color:#fff;margin-top:1px;position:relative;z-index:1}.tl b{font-size:14.5px;display:block}.tl small{color:var(--muted);font-size:12.5px}.sticky-cta{position:fixed;z-index:35;left:50%;transform:translate(-50%);bottom:0;width:100%;max-width:560px;padding:12px 16px calc(14px + var(--safe-b));background:linear-gradient(180deg,rgba(244,242,237,0) 0%,var(--paper) 30%);display:flex;gap:10px}.prog{height:6px;border-radius:6px;background:var(--paper-2);overflow:hidden}.prog i{display:block;height:100%;background:linear-gradient(90deg,var(--red),var(--amber));border-radius:6px;transition:width .5s var(--ease)}.sect{font-family:var(--display);font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:6px 2px -6px;display:flex;align-items:center;gap:8px}.sect:after{content:"";flex:1;height:1px;background:var(--line-2)}.q{padding:14px;border-radius:var(--r);background:var(--card);box-shadow:var(--sh-1),inset 0 0 0 1px #17181b0a;display:grid;gap:12px;transition:box-shadow .25s;scroll-margin-top:130px}.q.done{box-shadow:var(--sh-1),inset 0 0 0 1.5px var(--green-soft)}.q.bad{box-shadow:0 8px 20px -12px #d7261e80,inset 0 0 0 1.5px #f2b8b2}.q.missing{animation:shake .45s;box-shadow:inset 0 0 0 2px var(--amber)}@keyframes shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.q .lbl{display:flex;gap:10px;align-items:flex-start}.q .lbl b{font-size:15.5px;line-height:1.3;font-weight:600;flex:1}.q .lbl .n{font-family:var(--mono);font-size:11.5px;color:var(--faint);margin-top:3px}.q .hint{font-size:12.5px;color:var(--muted);margin-top:-6px}.seg{display:grid;grid-template-columns:1fr 1fr .7fr;gap:8px}.seg button{height:48px;border-radius:12px;font-weight:700;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--line-2);color:var(--ink-2);transition:transform .2s var(--spring),background .15s,color .15s,box-shadow .15s}.seg button:active{transform:scale(.94)}.seg button.pass.on{background:var(--green);color:#fff;box-shadow:0 6px 14px -6px #1c8a50b3}.seg button.fail.on{background:var(--red);color:#fff;box-shadow:0 6px 14px -6px #d7261eb3}.seg button.na.on{background:var(--ink-2);color:#fff;box-shadow:none}.numrow{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.numrow .input{height:52px;font-size:22px;font-weight:700;font-family:var(--display);letter-spacing:.02em}.numrow .unit{font-weight:700;color:var(--muted);min-width:40px}.range{position:relative;height:26px}.range .tr{position:absolute;left:0;right:0;top:10px;height:6px;border-radius:6px;background:var(--red-soft)}.range .ok{position:absolute;top:10px;height:6px;background:var(--green);opacity:.75;border-radius:6px}.range .mk{position:absolute;top:3px;width:4px;height:20px;border-radius:3px;background:var(--ink);transform:translate(-2px);transition:left .35s var(--spring);box-shadow:0 0 0 2px #fff}.range .lo,.range .hi{position:absolute;top:18px;font-size:11px;color:var(--muted);font-weight:600}.defbox{display:grid;gap:10px;padding:12px;border-radius:12px;background:#fff6f4;box-shadow:inset 0 0 0 1px #f6cfc9;animation:rise .35s var(--ease) both}.defbox .ttl{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--red-ink);font-size:13.5px}.sevpick{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.sevpick button{height:38px;border-radius:10px;font-weight:700;font-size:13.5px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line-2)}.sevpick button.on.minor{background:#49505e;color:#fff;box-shadow:none}.sevpick button.on.major{background:var(--orange);color:#fff;box-shadow:none}.sevpick button.on.critical{background:var(--red);color:#fff;box-shadow:none}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumbs img,.thumbs .add{width:72px;height:72px;border-radius:12px;object-fit:cover;flex:none}.thumbs .add{display:grid;place-items:center;align-content:center;gap:2px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line-2);border:0;font-size:11px;font-weight:600;color:var(--ink-2);cursor:pointer}.thumbs .add.need{box-shadow:inset 0 0 0 2px var(--red);color:var(--red-ink)}.thumbs .ph{position:relative;animation:pop .4s var(--spring) both}.thumbs .ph button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;background:var(--char);color:#fff;display:grid;place-items:center}.sig{position:relative;height:170px;border-radius:14px;background:#fff;box-shadow:inset 0 0 0 1.5px var(--line-2);touch-action:none;overflow:hidden}.sig canvas{width:100%;height:100%;display:block;cursor:crosshair}.sig .base{position:absolute;left:18px;right:18px;bottom:38px;border-bottom:1.5px dashed var(--line-2);pointer-events:none}.sig .x{position:absolute;left:16px;bottom:42px;font-family:var(--display);font-size:22px;color:var(--faint);pointer-events:none}.sig .ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--faint);font-weight:500;pointer-events:none;transition:opacity .2s}.sig .clr{position:absolute;right:8px;top:8px}.outcome{display:flex;gap:12px;align-items:center;padding:14px;border-radius:var(--r);color:#fff}.outcome .oi{width:46px;height:46px;border-radius:13px;background:#ffffff2e;display:grid;place-items:center;flex:none}.outcome b{font-family:var(--display);font-size:22px;display:block;line-height:1.1}.done-wrap{min-height:100dvh;background:var(--char);color:#fff;display:grid;align-content:start;justify-items:center;text-align:center;padding:34px 20px calc(30px + var(--safe-b));gap:16px;position:relative;overflow:hidden;background-image:radial-gradient(70% 45% at 50% 22%,rgba(215,38,30,.38) 0%,transparent 70%)}.disc-in{animation:discIn .9s var(--spring) both;filter:drop-shadow(0 18px 30px rgba(0,0,0,.45))}@keyframes discIn{0%{transform:rotate(-200deg) scale(.3);opacity:0}}.punch{animation:punch .5s 1s var(--spring) both;transform-box:fill-box;transform-origin:center}@keyframes punch{0%{transform:scale(2.2);opacity:0}}.spark{position:absolute;width:8px;height:8px;border-radius:2px;top:150px;left:50%;animation:spark 1.3s .75s var(--ease) both}@keyframes spark{0%{transform:translate(0) rotate(0);opacity:1}to{transform:translate(var(--dx),var(--dy)) rotate(540deg);opacity:0}}.done-wrap h1{font-size:34px}.done-wrap .sub{color:#b8bbc2;max-width:340px}.done-actions{display:grid;gap:10px;width:100%;max-width:380px;margin-top:6px}.livebox{display:flex;gap:10px;align-items:center;text-align:left;padding:12px 14px;border-radius:14px;background:#ffffff12;box-shadow:inset 0 0 0 1px #ffffff1a;font-size:13.5px;color:#d6d8dc;width:100%;max-width:380px}.scan{position:fixed;inset:0;z-index:60;background:#000;color:#fff;display:grid;grid-template-rows:auto 1fr auto;max-width:560px;margin:0 auto}.scan video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scan .shade{position:absolute;inset:0;pointer-events:none}.scan .top{position:relative;z-index:2;display:flex;align-items:center;gap:8px;padding:12px;background:linear-gradient(180deg,rgba(0,0,0,.65),transparent)}.scan .mid{position:relative;z-index:2;display:grid;place-items:center}.vf{width:min(68vw,270px);aspect-ratio:1;position:relative;border-radius:22px;box-shadow:0 0 0 100vmax #00000085;transition:box-shadow .3s}.vf i{position:absolute;width:38px;height:38px;border:4.5px solid #fff;transition:border-color .2s,transform .3s var(--spring)}.vf i:nth-child(1){left:-2px;top:-2px;border-right:0;border-bottom:0;border-radius:20px 0 0}.vf i:nth-child(2){right:-2px;top:-2px;border-left:0;border-bottom:0;border-radius:0 20px 0 0}.vf i:nth-child(3){left:-2px;bottom:-2px;border-right:0;border-top:0;border-radius:0 0 0 20px}.vf i:nth-child(4){right:-2px;bottom:-2px;border-left:0;border-top:0;border-radius:0 0 20px}.vf .line{position:absolute;left:10%;right:10%;height:2px;background:linear-gradient(90deg,transparent,var(--red-2),transparent);box-shadow:0 0 14px 2px #ef3b2cb3;animation:scanline 2.2s ease-in-out infinite}@keyframes scanline{0%,to{top:12%}50%{top:86%}}.vf.hit i{border-color:#3be08a;transform:scale(.92)}.vf.hit .line{display:none}.scan .bot{position:relative;z-index:2;padding:16px 16px calc(22px + var(--safe-b));display:grid;gap:12px;background:linear-gradient(0deg,rgba(0,0,0,.8),transparent);text-align:center}.scan .msg{font-size:15px;font-weight:600;text-shadow:0 1px 6px rgba(0,0,0,.6)}.scan .btn-glass{background:#ffffff24;color:#fff;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.scan .nocam{position:relative;z-index:2;margin:0 16px;padding:18px;border-radius:18px;background:#1f2025;display:grid;gap:10px;text-align:left}.kindpick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.kindpick button{display:grid;justify-items:center;gap:4px;padding:10px 6px;border-radius:14px;background:var(--card);box-shadow:inset 0 0 0 1.5px var(--line);font-size:12.5px;font-weight:600;transition:transform .2s var(--spring),box-shadow .15s}.kindpick button.on{box-shadow:inset 0 0 0 2.5px var(--red),0 8px 18px -10px #d7261e99}.kindpick button:active{transform:scale(.95)}.tagcard{display:grid;justify-items:center;gap:10px;padding:22px 18px;border-radius:22px;background:#fff;box-shadow:var(--sh-3);position:relative;overflow:hidden}.tagcard:before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:repeating-linear-gradient(-45deg,var(--red) 0 10px,#fff 10px 20px)}.segtabs{display:flex;gap:4px;padding:4px;border-radius:12px;background:var(--paper-2)}.segtabs button{flex:1;height:36px;border-radius:9px;font-weight:600;font-size:13.5px;color:var(--muted);transition:background .15s,color .15s}.segtabs button.on{background:#fff;color:var(--ink);box-shadow:var(--sh-1)}.toggle{width:50px;height:30px;border-radius:15px;background:var(--line-2);position:relative;transition:background .2s;flex:none}.toggle:after{content:"";position:absolute;left:3px;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:var(--sh-1);transition:transform .25s var(--spring)}.toggle.on{background:var(--green)}.toggle.on:after{transform:translate(20px)}.setrow{display:flex;gap:12px;align-items:center;padding:14px;text-align:left;width:100%}.setrow+.setrow{border-top:1px solid var(--line)}.offline-banner{display:flex;gap:10px;align-items:center;padding:10px 14px;background:var(--amber);color:var(--char);font-weight:600;font-size:13.5px}.in-frame .m-top{padding-top:40px}.in-frame .m-sub{padding-top:34px}.in-frame .scan .top{padding-top:38px}.in-frame .done-wrap{padding-top:54px}@media(max-width:340px){.m-hello h1{font-size:25px}.m-run{gap:12px;padding:12px}.m-run b{font-size:28px}.scan-cta{padding:14px;gap:12px}.scan-cta .si{width:42px;height:42px}.scan-cta b{font-size:19px}.scan-cta span{font-size:12.5px}.qa button{font-size:13px;padding:12px 10px}.m-body{padding-left:12px;padding-right:12px}.seg button{font-size:14px}.hero h1{font-size:22px}}
