:root{--ground:#f3f5f7;--surface:#fff;--surface-2:#f6f8f9;--ink:#18212c;--ink-soft:#465366;--ink-faint:#6b778c;--line:#dde2e8;--accent:#14655a;--accent-2:#1d8a7a;--accent-ink:#fff;--accent-soft:#e2f0ec;--good:#276b44;--warn:#8a5c0f;--crit:#a33636;--good-bg:#e6f2ea;--warn-bg:#f7efdc;--crit-bg:#f8e7e7;--focus:#2f7ae5;--shadow:0 1px 2px #1018280d, 0 4px 16px #1018280f;--radius:14px;--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#10141a;--surface:#182029;--surface-2:#141a22;--ink:#e6eaf0;--ink-soft:#a9b3c2;--ink-faint:#8792a4;--line:#2d3642;--accent:#4fb3a4;--accent-2:#6fd0c0;--accent-ink:#0b1c19;--accent-soft:#1b302d;--good:#7cc497;--warn:#d9a852;--crit:#e59090;--good-bg:#1b2b21;--warn-bg:#2d2617;--crit-bg:#2f1d1d;--focus:#7fb0ff;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--ground:#10141a;--surface:#182029;--surface-2:#141a22;--ink:#e6eaf0;--ink-soft:#a9b3c2;--ink-faint:#8792a4;--line:#2d3642;--accent:#4fb3a4;--accent-2:#6fd0c0;--accent-ink:#0b1c19;--accent-soft:#1b302d;--good:#7cc497;--warn:#d9a852;--crit:#e59090;--good-bg:#1b2b21;--warn-bg:#2d2617;--crit-bg:#2f1d1d;--focus:#7fb0ff;--shadow:0 1px 2px #0000004d, 0 6px 20px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:IBM Plex Sans,Segoe UI,system-ui,sans-serif;font-size:15.5px;line-height:1.6}a{color:var(--accent)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:6px}p{max-width:70ch}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-faint)}.small{font-size:13.5px}.mono{font-family:IBM Plex Mono,monospace}.shell{max-width:980px;margin:0 auto;padding:22px 20px 140px}header.app{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.brand{align-items:center;gap:10px;display:flex}.logo{background:linear-gradient(135deg, var(--accent), var(--accent-2));width:34px;height:34px;color:var(--accent-ink);box-shadow:var(--shadow);border-radius:10px;place-items:center;font-family:IBM Plex Serif,Georgia,serif;font-size:19px;font-weight:600;display:grid}.brand h1{letter-spacing:-.01em;margin:0;font-family:IBM Plex Serif,Georgia,serif;font-size:22px;font-weight:600}.brand .tag{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-soft);background:var(--accent-soft);border-radius:99px;padding:1px 8px;font-family:IBM Plex Mono,monospace;font-size:11px}.ai-chip{white-space:nowrap;color:var(--ink-soft);background:var(--surface);border:1px solid var(--line);border-radius:99px;align-items:center;gap:6px;padding:3px 10px;font-size:12.5px;display:inline-flex}.ai-chip .dot{background:var(--good);width:8px;height:8px;box-shadow:0 0 0 3px var(--good-bg);border-radius:50%}.ai-chip.off .dot{background:var(--ink-faint);box-shadow:none}.stepper{margin:6px 0 26px;position:relative}.stepper ol{z-index:1;grid-template-columns:repeat(5,1fr);margin:0;padding:0;list-style:none;display:grid;position:relative}.stepper .rail,.stepper .fill{border-radius:3px;height:3px;position:absolute;top:19px;left:10%}.stepper .rail{background:var(--line);right:10%}.stepper .fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));transition:width .7s var(--ease)}.stepper li{justify-content:center;display:flex}.stepper button{cursor:pointer;font:inherit;color:var(--ink-faint);background:0 0;border:none;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:0 4px;display:flex}.stepper button:disabled{cursor:default}.node{background:var(--surface);border:2px solid var(--line);width:40px;height:40px;color:var(--ink-faint);transition:all .35s var(--ease);border-radius:50%;place-items:center;font-family:IBM Plex Mono,monospace;font-weight:500;display:grid;position:relative}.node svg{width:18px;height:18px}.stepper .done .node{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);animation:pop .38s var(--ease)}.stepper .current .node{border-color:var(--accent);color:var(--accent);background:var(--surface);box-shadow:0 0 0 6px var(--accent-soft)}.stepper .current .node:after{content:"";border:2px solid var(--accent);opacity:0;animation:ring 2.4s var(--ease) infinite;border-radius:50%;position:absolute;inset:-8px}.stepper .label{text-align:center;white-space:nowrap;font-size:13px;font-weight:500}.stepper .current .label{color:var(--ink);font-weight:600}.stepper .done .label{color:var(--ink-soft)}.stepper button:not(:disabled):hover .node{transform:translateY(-2px)}@media (width<=620px){.stepper .label{display:none}.stepper .current .label{display:block;position:absolute;top:48px}.stepper{margin-bottom:38px}.node{width:34px;height:34px}.stepper .rail,.stepper .fill{top:16px}}.step-head{margin:0 0 18px}.step-head .eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:12px}.step-head h2{letter-spacing:-.01em;text-wrap:balance;margin:4px 0 6px;font-family:IBM Plex Serif,Georgia,serif;font-size:clamp(24px,4vw,30px);font-weight:600;line-height:1.2}.step-head p{color:var(--ink-soft);margin:0;font-size:16px}.step-view{animation:step-in .42s var(--ease) both}.step-view.back{animation-name:step-in-back}h3{margin:0 0 8px;font-size:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin:14px 0;padding:20px 22px}.card.flat{box-shadow:none}.card.tight{padding:14px 16px}.card-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.card-head .num{background:var(--accent-soft);width:28px;height:28px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-family:IBM Plex Mono,monospace;font-size:13px;font-weight:600;display:grid}.card-head h3{margin:0}.card-head .count{margin-left:auto}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row.between{justify-content:space-between}.stack>*+*{margin-top:12px}.grid2{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.btn{border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font:inherit;cursor:pointer;transition:transform .16s var(--ease), box-shadow .16s var(--ease), background .16s;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px #14655a40}.btn:active:not(:disabled){transform:translateY(0)}.btn.secondary{color:var(--accent);background:0 0}.btn.ghost{color:var(--ink-soft);border-color:var(--line);background:0 0;font-weight:500}.btn.lg{padding:13px 22px;font-size:16px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn svg{width:18px;height:18px}button.link{color:var(--accent);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration:underline}input[type=text],input[type=search],input[type=url],input[type=number],textarea,select{width:100%;font:inherit;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;transition:border-color .16s,box-shadow .16s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);outline:none}textarea{resize:vertical;min-height:96px;line-height:1.5}label.field{display:block}label.field>.lbl{margin-bottom:6px;font-size:14px;font-weight:600;display:block}.help{color:var(--ink-faint);margin:6px 0 0;font-size:13px}.search{position:relative}.search svg{width:20px;height:20px;color:var(--ink-faint);position:absolute;top:50%;left:14px;transform:translateY(-50%)}.search input{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;padding:14px 16px 14px 44px;font-size:17px}.switch{cursor:pointer;align-items:flex-start;gap:12px;display:flex}.switch input{opacity:0;width:1px;height:1px;position:absolute}.switch .track{background:var(--line);border-radius:99px;flex:none;width:44px;height:26px;margin-top:2px;transition:background .2s;position:relative}.switch .track:after{content:"";width:20px;height:20px;transition:transform .24s var(--ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch input:checked+.track{background:var(--accent)}.switch input:checked+.track:after{transform:translate(18px)}.switch input:focus-visible+.track{outline:2px solid var(--focus);outline-offset:2px}.drop{border:2px dashed var(--line);text-align:center;background:var(--surface);cursor:pointer;transition:border-color .2s, background .2s, transform .25s var(--ease);border-radius:18px;padding:42px 20px;display:block;position:relative}.drop:hover{border-color:var(--accent)}.drop.over{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}.drop input{opacity:0;width:1px;height:1px;position:absolute}.drop .icon{background:var(--accent-soft);width:58px;height:58px;color:var(--accent);transition:transform .3s var(--ease);border-radius:16px;place-items:center;margin:0 auto 12px;display:grid}.drop:hover .icon,.drop.over .icon{transform:translateY(-4px)}.drop .icon svg{width:28px;height:28px}.drop .title{font-size:17px;font-weight:600}.loaded{align-items:flex-start;gap:16px;display:flex}.check-anim{background:var(--good-bg);width:44px;height:44px;color:var(--good);animation:pop .45s var(--ease);border-radius:50%;flex:none;place-items:center;display:grid}.check-anim svg{width:24px;height:24px}.check-anim path{stroke-dasharray:30;stroke-dashoffset:30px;animation:draw .5s .18s var(--ease) forwards}.chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--line);border-radius:99px;align-items:baseline;gap:6px;padding:3px 11px;font-size:13px;display:inline-flex}.chip b{font-weight:600}.pill{white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:2px 9px;font-family:IBM Plex Mono,monospace;font-size:11.5px;font-weight:500;display:inline-flex}.pill.pass{background:var(--good-bg);color:var(--good)}.pill.fail{background:var(--crit-bg);color:var(--crit)}.pill.warn{background:var(--warn-bg);color:var(--warn)}.pill.na,.pill.info{background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.pill.acknowledged,.pill.neutral{background:var(--accent-soft);color:var(--accent)}.tier{white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:2px 10px;font-family:IBM Plex Mono,monospace;font-size:11.5px;display:inline-flex}.tier.A{background:var(--good-bg);color:var(--good)}.tier.B{background:var(--warn-bg);color:var(--warn)}.tier.C{background:var(--crit-bg);color:var(--crit)}.tier.base{background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.list{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);margin-top:12px;overflow:hidden}.item{border:none;border-top:1px solid var(--line);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;transition:background .16s;display:flex}.list>.item:first-child{border-top:none}.item:hover{background:var(--surface-2)}.item .go{color:var(--ink-faint);transition:transform .2s var(--ease), color .2s}.item:hover .go{color:var(--accent);transform:translate(3px)}.item.selected{background:var(--accent-soft)}.timeline{margin:4px 0 0;padding:0;list-style:none}.timeline li{color:var(--ink-faint);grid-template-columns:26px 1fr;gap:10px;padding:6px 0;font-size:14.5px;display:grid;position:relative}.timeline li:before{content:"";background:var(--line);width:2px;position:absolute;top:28px;bottom:-6px;left:12px}.timeline li:last-child:before{display:none}.timeline .dot{border:2px solid var(--line);background:var(--surface);z-index:1;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:relative}.timeline .dot svg{width:14px;height:14px}.timeline .done{color:var(--ink-soft)}.timeline .done .dot{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);animation:pop .35s var(--ease)}.timeline .active{color:var(--ink);font-weight:500}.timeline .active .dot{border-color:var(--accent)}.timeline .active .dot:after{content:"";background:var(--accent);border-radius:50%;width:10px;height:10px;animation:1.2s ease-in-out infinite breathe}.timeline .detail{color:var(--ink-faint);font-size:13px;font-weight:400;display:block}.elapsed{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:13px}.progress-bar{background:var(--surface-2);border-radius:4px;height:4px;margin-top:12px;overflow:hidden}.progress-bar span{background:linear-gradient(90deg, transparent, var(--accent), transparent);width:40%;height:100%;animation:1.6s ease-in-out infinite slide;display:block}.score{align-items:center;gap:18px;display:flex}.ring{flex:none;width:128px;height:128px;position:relative}.ring svg{transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:11px}.ring .bg{stroke:var(--surface-2)}.ring .fg{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1.1s var(--ease)}.ring.low .fg{stroke:var(--crit)}.ring.mid .fg{stroke:var(--warn)}.ring .val{text-align:center;place-items:center;display:grid;position:absolute;inset:0}.ring .val b{font-variant-numeric:tabular-nums;font-family:IBM Plex Serif,Georgia,serif;font-size:34px;line-height:1}.ring .val span{color:var(--ink-faint);font-size:12px}.ring.sm{width:96px;height:96px}.ring.sm .val b{font-size:26px}.score .text h3{margin:0 0 4px;font-size:18px}.compare{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;display:grid}.compare .arrow{color:var(--accent);animation:nudge 1.8s var(--ease) infinite}.compare .arrow svg{width:28px;height:28px}@media (width<=640px){.compare{grid-template-columns:1fr}.compare .arrow{justify-self:center;animation:none;transform:rotate(90deg)}}.cats{flex-direction:column;gap:10px;display:flex}.cat{grid-template-columns:200px 1fr 70px;align-items:center;gap:12px;font-size:14px;display:grid}@media (width<=560px){.cat{grid-template-columns:1fr 64px}.cat .track{order:3;grid-column:1/-1}}.track{background:var(--surface-2);border-radius:99px;height:10px;position:relative;overflow:hidden}.track>span{transition:width .9s var(--ease);border-radius:99px;position:absolute;inset:0 auto 0 0}.track .before{background:var(--line)}.track .after{background:var(--accent)}.cat .val{color:var(--ink-soft);text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:12.5px}.results{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.results details{border-top:1px solid var(--line)}.results details:first-child{border-top:none}.results summary{cursor:pointer;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 16px;list-style:none;transition:background .16s;display:grid}.results summary::-webkit-details-marker{display:none}.results summary:hover{background:var(--surface-2)}.results summary .chev{color:var(--ink-faint);transition:transform .22s var(--ease)}.results details[open] summary .chev{transform:rotate(90deg)}.results .measured{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:12.5px}.results .body{animation:fade-up .26s var(--ease);padding:0 16px 14px;font-size:14px}blockquote{border-left:3px solid var(--line);color:var(--ink-soft);background:var(--surface-2);border-radius:0 8px 8px 0;margin:8px 0;padding:6px 12px;font-size:13.5px}blockquote.src{border-left-color:var(--accent)}details.more>summary{cursor:pointer;color:var(--accent);align-items:center;gap:6px;margin:12px 0 6px;font-size:14px;font-weight:500;list-style:none;display:inline-flex}details.more>summary::-webkit-details-marker{display:none}details.more>summary svg{width:16px;height:16px;transition:transform .22s var(--ease)}details.more[open]>summary svg{transform:rotate(90deg)}.fix{border-top:1px solid var(--line);cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px 12px;padding:12px 0;display:grid}.fix:first-of-type{border-top:none}.fix input[type=checkbox]{width:19px;height:19px;accent-color:var(--accent);margin-top:4px}.diff{gap:4px;margin-top:8px;font-size:13.5px;display:grid}.diff .b{background:var(--crit-bg);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--crit) 50%, transparent);text-decoration-color:color-mix(in srgb, var(--crit) 50%, transparent);border-radius:8px;padding:5px 9px}.diff .a{background:var(--good-bg);border-radius:8px;padding:5px 9px}.tag{color:var(--accent);background:var(--accent-soft);white-space:nowrap;border-radius:5px;padding:1px 7px;font-family:IBM Plex Mono,monospace;font-size:11px}.field-block{border-top:1px solid var(--line);margin-top:16px;padding-top:16px}.field-block:first-child{border-top:none;margin-top:0;padding-top:0}.counter{color:var(--ink-soft);font-family:IBM Plex Mono,monospace;font-size:12px}.counter.over{color:var(--crit)}.counter.ok{color:var(--good)}ul.plain{margin:6px 0;padding:0;list-style:none}ul.plain li{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;padding:9px 0;display:flex}ul.plain li:last-child{border-bottom:none}.notice{border:1px solid var(--line);border-left:4px solid var(--accent);background:var(--surface);animation:fade-up .3s var(--ease);border-radius:10px;align-items:flex-start;gap:10px;margin:12px 0;padding:12px 14px;font-size:14px;display:flex}.notice svg{width:18px;height:18px;color:var(--accent);flex:none;margin-top:2px}.notice.warn{border-left-color:var(--warn)}.notice.warn svg{color:var(--warn)}.notice.crit{border-left-color:var(--crit)}.notice.crit svg{color:var(--crit)}.downloads{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;display:grid}.dl{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;color:inherit;transition:transform .18s var(--ease), border-color .18s, box-shadow .18s;border-radius:12px;align-items:center;gap:12px;padding:14px 16px;display:flex}.dl:hover{border-color:var(--accent);box-shadow:var(--shadow);transform:translateY(-2px)}.dl .ic{background:var(--accent-soft);width:40px;height:40px;color:var(--accent);border-radius:10px;flex:none;place-items:center;display:grid}.dl .ic svg{width:22px;height:22px}.dl.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.dl.primary .ic{color:var(--accent-ink);background:#ffffff2e}.dl .t{font-weight:600}.dl .d{opacity:.8;font-size:12.5px}.action-bar{z-index:20;background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);animation:bar-in .4s var(--ease);position:fixed;bottom:0;left:0;right:0}.action-bar .inner{align-items:center;gap:12px;max-width:980px;margin:0 auto;padding:12px 20px;display:flex}.action-bar .hint{color:var(--ink-soft);flex:1;min-width:0;font-size:13.5px}.action-bar .hint b{color:var(--ink)}@media (width<=560px){.action-bar .hint{display:none}.action-bar .inner .btn.primary-action{flex:1}.action-bar .back-label,.brand .tag,.ai-chip .extra{display:none}}.btn{white-space:nowrap}.spinner{border:2px solid color-mix(in srgb, currentColor 30%, transparent);vertical-align:-3px;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}footer.app{border-top:1px solid var(--line);color:var(--ink-faint);margin-top:44px;padding-top:14px;font-size:12.5px}.stagger>*{animation:fade-up .42s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms)}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes step-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes step-in-back{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes ring{0%{opacity:.55;transform:scale(.85)}70%,to{opacity:0;transform:scale(1.35)}}@keyframes draw{to{stroke-dashoffset:0}}@keyframes breathe{0%,to{opacity:.7;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@keyframes slide{0%{transform:translate(-100%)}to{transform:translate(260%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes nudge{0%,to{transform:translate(0)}50%{transform:translate(5px)}}@keyframes bar-in{0%{transform:translateY(100%)}to{transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}}.icon-btn{border:1px solid var(--line);background:var(--surface);width:32px;height:32px;color:var(--ink-soft);cursor:pointer;border-radius:50%;place-items:center;transition:border-color .16s,color .16s;display:inline-grid}.icon-btn:hover{border-color:var(--accent);color:var(--ink)}button.ai-chip{cursor:pointer;font:inherit;transition:border-color .16s, transform .16s var(--ease);font-size:12.5px}button.ai-chip:hover{border-color:var(--accent);transform:translateY(-1px)}.modal-backdrop{z-index:50;background:#0a101873;place-items:center;padding:16px;animation:.2s both fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--line);width:min(640px,100%);max-height:calc(100vh - 32px);animation:modal-in .32s var(--ease) both;border-radius:18px;padding:22px 24px;overflow:auto;box-shadow:0 20px 60px #00000040}.modal:focus{outline:none}.modal h2{margin:0;font-family:IBM Plex Serif,Georgia,serif;font-size:22px}.pcards{gap:10px;margin-top:12px;display:grid}.pcard{text-align:left;width:100%;font:inherit;color:inherit;background:var(--surface);border:1.5px solid var(--line);cursor:pointer;transition:border-color .18s, background .18s, transform .18s var(--ease);border-radius:12px;grid-template-columns:22px 1fr;align-items:start;gap:12px;padding:12px 14px;display:grid}.pcard:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.pcard.on{border-color:var(--accent);background:var(--accent-soft)}.pcard:disabled{cursor:not-allowed;opacity:.6}.pcard .radio{border:2px solid var(--line);border-radius:50%;place-items:center;width:20px;height:20px;margin-top:2px;transition:border-color .18s;display:grid}.pcard.on .radio{border-color:var(--accent)}.pcard.on .radio:after{content:"";background:var(--accent);width:10px;height:10px;animation:pop .3s var(--ease);border-radius:50%}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}.acquire{grid-template-columns:120px 1fr;align-items:start;gap:20px;display:grid}@media (width<=560px){.acquire{grid-template-columns:1fr}.acquire .scan{justify-self:center}}.scan svg{overflow:visible}.scan .page{fill:var(--surface-2);stroke:var(--line);stroke-width:2px}.scan .fold{fill:var(--line)}.scan .line{fill:var(--line);transform-box:fill-box;transform-origin:0}.scan .tick{fill:none;stroke:var(--good);stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:14;stroke-dashoffset:14px}.scan .beam{fill:var(--accent);opacity:0}.scan .lens{opacity:0}.scan .lens circle{fill:color-mix(in srgb, var(--accent) 12%, transparent);stroke:var(--accent);stroke-width:3px}.scan .lens path{stroke:var(--accent);stroke-width:4px;stroke-linecap:round}.scan .badge{opacity:0;transform-box:fill-box;transform-origin:50%}.scan .badge circle{fill:var(--accent)}.scan .badge path{fill:none;stroke:#fff;stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.scan .badge-lock{display:none}.scan-locate .lens,.scan-alt .lens{opacity:1;animation:2.6s ease-in-out infinite lens-roam}.scan-locate .line,.scan-alt .line{opacity:.55}.scan-alt .page{stroke-dasharray:6 4;animation:1.2s linear infinite dash-move}@keyframes dash-move{to{stroke-dashoffset:-20px}}.scan-fetch .line{animation:line-fill 1.4s var(--ease) infinite;animation-delay:var(--d)}.scan-extract .line,.scan-verify .line,.scan-store .line,.scan-done .line{fill:color-mix(in srgb, var(--accent) 45%, var(--line))}.scan-extract .beam{animation:1.8s ease-in-out infinite beam-sweep}.scan-verify .tick,.scan-store .tick,.scan-done .tick{animation:draw .4s var(--ease) forwards;animation-delay:var(--d)}.scan-done .badge,.scan-blocked .badge,.scan-error .badge{opacity:1;animation:pop .45s var(--ease)}.scan-blocked .badge circle,.scan-error .badge circle{fill:var(--warn)}.scan-blocked .badge-ok,.scan-error .badge-ok{display:none}.scan-blocked .badge-lock,.scan-error .badge-lock{display:block}.scan-blocked .line,.scan-error .line{opacity:.45}@keyframes lens-roam{0%{transform:translate(40px,50px)}25%{transform:translate(78px,62px)}50%{transform:translate(52px,92px)}75%{transform:translate(34px,70px)}to{transform:translate(40px,50px)}}@keyframes line-fill{0%{fill:var(--line);transform:scaleX(.15)}60%,to{fill:color-mix(in srgb, var(--accent) 35%, var(--line));transform:scaleX(1)}}@keyframes beam-sweep{0%{opacity:0;transform:translateY(0)}15%{opacity:.28}85%{opacity:.28}to{opacity:0;transform:translateY(78px)}}.timeline .subs{margin:6px 0 2px;padding:0;list-style:none}.timeline .subs li{color:var(--ink-soft);animation:fade-up .28s var(--ease) both;align-items:center;gap:8px;padding:2px 0;font-size:13px;font-weight:400;display:flex}.timeline .subs li:before{display:none}.timeline .subs .st{flex:none;place-items:center;width:16px;height:16px;display:grid}.timeline .subs .st .spinner{width:12px;height:12px;color:var(--accent);border-width:2px}.timeline .subs .ok{color:var(--good)}.timeline .subs .fail{color:var(--crit)}.timeline .failed .dot{background:var(--warn);border-color:var(--warn);color:#fff}.acquire-title{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.howto{grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0;display:grid}@media (width<=640px){.howto{grid-template-columns:1fr}}.howto .s{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:14px}.howto .s .n{color:var(--accent);font-family:IBM Plex Mono,monospace;font-size:12px}kbd{background:var(--surface);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:0 5px;font-family:IBM Plex Mono,monospace;font-size:12px}.paste-zone{border:2px dashed var(--accent);background:var(--accent-soft);transition:transform .2s var(--ease), box-shadow .2s;border-radius:14px;padding:4px;display:block}.paste-zone.over,.paste-zone:focus-within{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 15%, transparent);transform:scale(1.005)}.paste-zone textarea{min-height:120px;box-shadow:none;background:0 0;border:none}.paste-zone textarea:focus{box-shadow:none}
