.decoder{position:relative}.plate{background:var(--plate);color:#fff;border-radius:var(--r-lg);cursor:text;transition:box-shadow .24s var(--ease-out);padding:clamp(14px,3.5vw,26px) clamp(12px,3vw,24px) clamp(14px,3vw,22px);position:relative;box-shadow:inset 0 1px #ffffff0f,0 24px 48px -24px #0c0d0f8c,0 4px 12px -4px #0c0d0f4d}.decoder:has(.vin-input:focus) .plate{box-shadow:0 1px 0 #ffffff0f inset, 0 0 0 3px var(--on-yellow), 0 28px 56px -24px #0c0d0f99}.plate-top{color:#a9acb3;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.8125rem;display:flex}.plate-top label{color:#e4e5e8;font-weight:600}.plate-count{font-family:var(--font-mono);color:#a9acb3;transition:color .2s var(--ease-out);font-size:.8125rem}.plate-count.is-full{color:var(--yellow)}.slots,.slot-labels{grid-template-columns:repeat(3,1fr) .35fr repeat(5,1fr) .35fr 1fr .35fr 1fr .35fr 1fr .35fr repeat(6,1fr);column-gap:clamp(1px,.5vw,5px);display:grid}.slot{height:clamp(44px,12vw,68px);font-family:var(--font-mono);border-bottom:2px solid var(--plate-line);transition:border-color .18s var(--ease-out);place-items:center;font-size:clamp(1.05rem,5.2vw,2rem);font-weight:700;display:grid;position:relative}.slot.is-filled{border-color:#54575f}.slot.is-filled span{animation:stamp .26s var(--ease-out)}.slot.is-caret:after{content:"";background:var(--yellow);border-radius:2px;height:3px;animation:1s step-end infinite blink;position:absolute;bottom:-2px;left:14%;right:14%}.slot.is-fixed span{color:var(--yellow)}.slot:before{content:attr(data-ghost);color:#33353b;transition:opacity .16s var(--ease-out);position:absolute}.slot.is-filled:before{opacity:0}.decoder:not(:has(.vin-input:focus)) .slot.is-caret:after{opacity:.45;animation:none}@keyframes stamp{0%{opacity:0;filter:blur(3px);transform:translateY(-6px)scale(1.18)}to{opacity:1;filter:none;transform:none}}@keyframes blink{50%{opacity:0}}.slot-labels{margin-top:8px}.slot-labels span{font-family:var(--font-mono);letter-spacing:.02em;text-align:center;color:#8e929b;white-space:nowrap;transition:color .24s var(--ease-out);font-size:.6875rem;font-weight:700;overflow:hidden}.slot-labels span.is-done{color:var(--yellow)}.slot-labels .l-wmi{grid-column:1/4}.slot-labels .l-vds{grid-column:5/10}.slot-labels .l-chk{grid-column:11/12}.slot-labels .l-yr{grid-column:13/14}.slot-labels .l-pl{grid-column:15/16}.slot-labels .l-ser{grid-column:17/23}.vin-input{opacity:.001;color:#0000;caret-color:#0000;letter-spacing:.5em;text-transform:uppercase;cursor:text;background:0 0;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.readout{border-radius:var(--r-md);background:#0c0d0f33;border:1px solid #0c0d0f33;grid-template-columns:1fr 1fr;gap:1px;margin:14px 0 0;padding:0;display:grid;overflow:hidden}.readout div{background:var(--yellow);min-width:0;padding:10px 12px}.readout dt{color:var(--on-yellow-2);font-size:.75rem;font-weight:600}.readout dd{white-space:nowrap;text-overflow:ellipsis;transition:opacity .26s var(--ease-out), filter .26s var(--ease-out), transform .26s var(--ease-out);margin:2px 0 0;font-size:1rem;font-weight:700;line-height:1.3;overflow:hidden}.readout dd.is-empty{color:var(--on-yellow-2)}.readout dd.is-swap{opacity:0;filter:blur(4px);transition-duration:0s;transform:translateY(3px)}.readout dd i{vertical-align:-2px}.hint{min-height:1.5em;color:var(--on-yellow-2);margin-top:10px;font-size:.9375rem;font-weight:500}.hint.is-warn{color:#6b1a00;font-weight:600}.actions{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.btn{white-space:nowrap;min-height:52px;transition:transform .12s var(--ease-out), background-color .16s var(--ease-out), box-shadow .16s var(--ease-out), opacity .16s;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.decoder .btn:active{transform:scale(.97)}.btn-primary{background:var(--on-yellow);color:#fff;flex:100%;min-height:58px;font-size:1.0625rem;box-shadow:0 10px 24px -12px #0c0d0fb3}.btn-primary[aria-disabled=true]{box-shadow:none;background:#2e3036}.btn-primary kbd{font-family:var(--font-mono);background:#ffffff24;border-radius:5px;padding:2px 6px;font-size:.75rem;display:none}.btn-ghost{color:var(--on-yellow);background:#0c0d0f14;flex:1 1 0;padding:0 14px}.btn-ghost:active{background:#0c0d0f29}.btn-ghost[hidden]{display:none}@media (pointer:fine){.btn-primary kbd{display:inline}}@media (width>=560px){.btn-primary,.btn-ghost{flex:none}}@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:#26282d;box-shadow:0 14px 30px -12px #0c0d0fbf}.btn-ghost:hover{background:#0c0d0f24}}.recent{scrollbar-width:none;gap:8px;margin-top:14px;display:flex;overflow-x:auto}.recent::-webkit-scrollbar{display:none}.recent[hidden]{display:none}.recent-label{color:var(--on-yellow-2);white-space:nowrap;align-self:center;font-size:.8125rem;font-weight:600}.chip{color:var(--on-yellow);transition:background-color .16s var(--ease-out), transform .12s var(--ease-out);border:1.5px solid #0c0d0f4d;border-radius:999px;flex:none;padding:7px 12px;font-size:.8125rem;font-weight:700}.chip:active{background:#0c0d0f1a;transform:scale(.96)}.sticker{color:#0c0d0f;background:#fff;border-radius:6px;padding:clamp(18px,4vw,30px);position:relative;transform:rotate(-1.2deg);box-shadow:0 1px 2px #0c0d0f14,0 28px 56px -28px #0c0d0f59}[data-theme=dark] .sticker{box-shadow:0 28px 56px -24px #000c}.sticker:before{content:"";background:#ffd000cc;border-radius:2px;width:110px;height:26px;margin-left:-55px;position:absolute;top:-12px;left:50%;transform:rotate(2deg)}.sticker-head{border-bottom:3px solid #0c0d0f;justify-content:space-between;align-items:flex-end;gap:12px;padding-bottom:12px;display:flex}.sticker-head h3,.sticker-head h2{font-family:var(--font-display);text-transform:uppercase;font-size:clamp(1.9rem,7vw,2.6rem);font-weight:900;line-height:.9}.sticker-head p{color:#3f4248;text-align:right;flex:none;font-size:.8125rem}.sticker-vin{font-family:var(--font-mono);letter-spacing:.06em;border-bottom:1px solid #0c0d0f;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 0;font-size:clamp(.95rem,4vw,1.15rem);font-weight:700;display:flex}.sticker-vin small{font-family:var(--font-body);letter-spacing:0;color:#067647;align-items:center;gap:4px;font-weight:600;display:inline-flex}.sticker-vin small.is-bad{color:#b42318}.sticker-body{gap:0 28px;display:grid}@media (width>=520px){.sticker-body{grid-template-columns:1fr 1fr}}.sticker-body h4{letter-spacing:.04em;text-transform:uppercase;color:#3f4248;margin:16px 0 4px;font-size:.75rem;font-weight:700}.sticker-body dl{margin:0}.sticker-body dl div{border-bottom:1px dotted #b9bcc3;justify-content:space-between;gap:12px;padding:7px 0;font-size:.9375rem;display:flex}.sticker-body dt{color:#3f4248}.sticker-body dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:700}.sticker-foot{color:#3f4248;align-items:center;gap:6px;margin-top:16px;font-size:.8125rem;display:flex}.report-issue{border-top:1px solid var(--line);margin:20px 4px 0}.report-issue[hidden]{display:none}.report-issue summary{cursor:pointer;color:var(--ink-2);align-items:center;gap:8px;padding:16px 0;font-weight:700;list-style:none;display:flex}.report-issue summary::-webkit-details-marker{display:none}.report-issue form{gap:14px;padding-bottom:8px;display:grid}.report-issue form[hidden]{display:none}.report-issue label{gap:6px;font-size:.875rem;font-weight:700;display:grid}.report-issue small{color:var(--ink-3);font-weight:500}.report-issue :is(select,textarea,input){border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);width:100%;min-height:46px;color:var(--ink);font:500 1rem/1.4 var(--font-body);padding:10px 12px}.report-issue textarea{resize:vertical}.report-issue .report-hp{width:1px;height:1px;position:absolute;left:-9999px}.report-privacy{color:var(--ink-3);font-size:.8125rem}.report-privacy a{color:var(--ink-2)}.report-issue button[type=submit]{background:var(--ink);min-height:48px;color:var(--bg);border-radius:999px;justify-self:start;padding:0 22px;font-weight:700}.report-issue button[type=submit]:disabled{opacity:.5}.report-status{color:var(--ok,var(--ink));padding-bottom:12px;font-weight:700}.report-status:empty{display:none}.report-status.is-error{color:var(--bad)}.sheet-extra:empty{display:none}.recalls{border-top:1px solid var(--line);margin:20px 4px 0}.recalls summary{cursor:pointer;font:800 1.15rem/1 var(--font-display);text-transform:uppercase;align-items:center;gap:10px;padding:16px 0;list-style:none;display:flex}.recalls summary::-webkit-details-marker{display:none}.recalls summary:after{content:"+";font:400 1.3rem/1 var(--font-body);color:var(--ink-3);margin-left:auto}.recalls[open] summary:after{content:"−"}.recall-count{font:700 .75rem/1 var(--font-body);background:var(--yellow);color:var(--on-yellow);border-radius:999px;padding:4px 8px}.recall-count:empty{display:none}.recall{border-top:1px solid var(--line);padding:12px 0}.recall h4{margin:0 0 4px;font-size:.9rem}.recall p,.recall-note{color:var(--ink-2);margin-top:6px;font-size:.84rem}.recall-note{padding-bottom:12px}.recalls .retry{color:var(--ink);margin-top:10px;font-weight:700;text-decoration:underline}.sheet-actions #recallBtn{grid-column:1/-1}.sheet-actions .btn{min-width:0;padding-inline:10px}.sheet-actions .btn.btn-soft[data-save-report].is-saved,.sheet-actions .btn.btn-soft[data-save-report].is-saved:hover{background:var(--bad);border-color:var(--bad);color:#fff}.save-report-icon{align-items:center;line-height:0;display:inline-flex}.save-report-icon i:last-child,[data-save-report].is-saved .save-report-icon i:first-child{display:none}[data-save-report].is-saved .save-report-icon i:last-child{display:inline-flex}.save-nudge{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--sunken);grid-template-columns:auto 1fr;align-items:start;gap:12px 14px;margin:18px 4px 0;padding:16px 44px 16px 16px;display:grid;position:relative}.save-nudge[hidden]{display:none}.save-nudge-icon{background:var(--yellow);width:36px;height:36px;color:var(--on-yellow);border-radius:999px;place-items:center;font-size:1.1rem;display:grid}.save-nudge-text p{color:var(--ink-2);font-size:.875rem}.save-nudge-text .save-nudge-title{color:var(--ink);margin-bottom:2px;font-size:.9375rem;font-weight:700}.save-nudge-google{border:1px solid var(--line);background:var(--bg);min-height:44px;color:var(--ink);border-radius:999px;grid-column:1/-1;justify-self:start;align-items:center;gap:8px;padding:0 18px;font-weight:700;display:inline-flex}.save-nudge-google:disabled{opacity:.6}.save-nudge-close{width:32px;height:32px;color:var(--ink-3);border-radius:999px;place-items:center;display:grid;position:absolute;top:8px;right:8px}@media (hover:hover) and (pointer:fine){.save-nudge-google:hover{background:var(--line)}.save-nudge-close:hover{color:var(--ink)}}dialog.sheet{width:100%;max-width:none;height:100%;max-height:none;color:var(--ink);background:0 0;border:0;margin:0;padding:0;overflow:hidden}dialog.sheet::backdrop{background:0 0}.sheet-scrim{opacity:0;transition:opacity .4s var(--ease-drawer);background:#0c0d0f8c;position:fixed;inset:0}.sheet-panel{background:var(--bg);max-height:92dvh;transition:transform .46s var(--ease-drawer);border-radius:24px 24px 0 0;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0;overflow:hidden;transform:translateY(100%);box-shadow:0 -20px 60px -20px #0c0d0f80}dialog.sheet.is-open .sheet-scrim{opacity:1}dialog.sheet.is-open .sheet-panel{transform:translateY(var(--drag,0px))}dialog.sheet.is-dragging .sheet-panel{transition:none}@media (width>=760px){.sheet-panel{border-radius:24px;width:640px;max-height:calc(100dvh - 48px);margin-left:-320px;bottom:24px;left:50%;right:auto;transform:translateY(calc(100% + 24px))}}.sheet-head{touch-action:none;flex:none;justify-content:space-between;align-items:center;gap:12px;padding:18px 16px 10px 24px;display:flex;position:relative}.sheet-grab{cursor:grab;place-items:center;padding:8px 0;display:grid;position:absolute;top:0;left:0;right:0}.sheet-grab span{background:var(--line);border-radius:99px;width:40px;height:5px}.sheet-kicker{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:.75rem;font-weight:700}.sheet-title:focus{outline:none}.badge{align-items:center;gap:4px;font-size:.8125rem;font-weight:600;display:inline-flex}.badge.ok{color:var(--ok)}.badge.bad{color:var(--bad)}.sheet-close{background:var(--sunken);width:40px;height:40px;transition:transform .12s var(--ease-out);border-radius:999px;flex:none;place-items:center;font-size:1.1rem;display:grid;position:relative}.sheet-close:active{transform:scale(.94)}.sheet-scroll{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:22px clamp(16px,4vw,28px) 24px;overflow:hidden auto}.sheet-sticker{margin-top:6px;transform:none}.sheet-sticker .sticker-vin span{-webkit-user-select:text;user-select:text}.sheet-sticker .sticker-head h2{overflow-wrap:anywhere;min-width:0}.sheet-body>p{color:#3f4248;padding:16px 0 4px}.sheet-actions{padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.sheet-actions .btn{min-height:50px;padding:0 12px;font-size:.9375rem}.sheet-actions .btn-solid{background:var(--yellow);color:var(--on-yellow);grid-column:1/-1}.sheet-actions .btn-soft{background:var(--sunken);color:var(--ink)}@media (hover:hover) and (pointer:fine){.sheet-actions .btn-soft:hover{background:var(--line)}.sheet-actions .btn-solid:hover{background:var(--yellow-2)}}.skel{background:linear-gradient(90deg, var(--sunken) 0%, var(--line) 50%, var(--sunken) 100%);background-size:200% 100%;border-radius:6px;height:14px;animation:1.2s linear infinite shimmer}.skel-row{border-bottom:1px solid var(--line);justify-content:space-between;padding:14px 0;display:flex}@keyframes shimmer{to{background-position:-200% 0}}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));z-index:80;opacity:0;pointer-events:none;background:var(--ink);color:var(--bg);transition:transform .3s var(--ease-out), opacity .3s var(--ease-out);border-radius:999px;padding:12px 18px;font-size:.9375rem;font-weight:600;position:fixed;transform:translate(-50%,20px)}.toast.is-on{opacity:1;transform:translate(-50%)}.sheet-extra{margin:28px 4px 0}.extra-heading{font:800 1.15rem/1 var(--font-display);text-transform:uppercase;padding-bottom:6px}.report-detail{border-top:1px solid var(--line)}.report-detail summary{cursor:pointer;justify-content:space-between;align-items:center;padding:14px 0;font-size:.9rem;font-weight:700;list-style:none;display:flex}.report-detail summary::-webkit-details-marker{display:none}.report-detail summary:after{content:"+";color:var(--ink-3);font-size:1.1rem;font-weight:400}.report-detail[open] summary:after{content:"−"}.report-detail dl{margin:0;padding-bottom:12px}.report-detail dl div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:8px 0;font-size:.9rem;display:flex}.report-detail dt{color:var(--ink-2)}.report-detail dd{text-align:right;overflow-wrap:anywhere;margin:0;font-weight:600}dialog.scanner{color:#fff;background:#000;border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0}.scanner video{object-fit:cover;width:100%;height:100%}.scan-frame{border:3px solid var(--yellow);border-radius:14px;height:18%;position:absolute;top:38%;left:8%;right:8%;box-shadow:0 0 0 100vmax #0000008c}.scan-frame:after{content:"";background:var(--yellow);height:2px;animation:1.8s ease-in-out infinite alternate scanline;position:absolute;top:50%;left:6%;right:6%}@keyframes scanline{0%{transform:translateY(-300%)}to{transform:translateY(300%)}}.scan-top{padding:calc(16px + env(safe-area-inset-top,0px)) 16px 16px;justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.scan-top p{font-weight:600}.scan-top .icon-btn{color:#fff;background:#ffffff24}.scan-help{left:16px;right:16px;bottom:calc(28px + env(safe-area-inset-bottom,0px));text-align:center;color:#e4e5e8;font-size:.9375rem;position:absolute}
