:root{--maroon: #4a0d0d;--maroon-2: #6b1a1a;--gold: #c9a24b;--cream: #f7ecd9;--ink: #241010;--good: #1f7a3d;--warn: #b7791f;--bad: #b3261e;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--cream);color:var(--ink);font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-tap-highlight-color:transparent}body{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}code{background:#0001;padding:1px 5px;border-radius:4px}h1,h2{margin:0}.muted{color:#6a5a52;font-size:.9rem}.center-text{text-align:center}.error{color:var(--bad);min-height:1.3em;margin:0;font-size:.9rem}main{max-width:480px;margin:0 auto;padding:16px}main.center{min-height:100svh;display:grid;place-items:center}.card{background:#fff;border-radius:18px;padding:22px;box-shadow:0 6px 24px #4a0d0d22;display:grid;gap:14px;width:100%;max-width:420px}.card .logo{width:72px;height:72px;border-radius:16px;justify-self:center}.card h1{text-align:center;color:var(--maroon)}.card .muted{text-align:center;margin:0}label{display:grid;gap:6px;font-weight:600;font-size:.9rem}input:not(.cell){font:inherit;padding:12px 14px;border:1.5px solid #d8c7ae;border-radius:12px;background:#fffdf8}input:focus{outline:3px solid #c9a24b66;border-color:var(--gold)}button{font:inherit;cursor:pointer;border:0;border-radius:12px;padding:13px 18px;font-weight:600}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--maroon);color:#fff;width:100%}.primary:active:not(:disabled){background:var(--maroon-2)}.ghost{background:transparent;color:var(--maroon);padding:8px 12px}.top{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;background:var(--maroon);color:#fff}.top .muted{color:#e8cfa0;font-size:.75rem}.top .ghost{color:var(--gold)}.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--maroon);padding:0 12px 12px;gap:8px}.tabs button{background:#ffffff14;color:#f0dcc0;border-radius:10px;padding:10px}.tabs button.on{background:var(--gold);color:var(--maroon)}[hidden]{display:none!important}.viewfinder{position:relative;border-radius:20px;overflow:hidden;background:#000;aspect-ratio:1;isolation:isolate;-webkit-mask-image:-webkit-radial-gradient(white,black)}.viewfinder video{width:100%;height:100%;object-fit:cover}.reticle{position:absolute;top:14%;right:14%;bottom:14%;left:14%;border:3px solid var(--gold);border-radius:20px;box-shadow:0 0 0 100vmax #00000073;pointer-events:none}.scan-actions{display:grid;gap:10px;margin-top:18px;max-width:320px;margin-left:auto;margin-right:auto}.action-btn{background:#fff;border:1.5px solid #d8c7ae;color:var(--maroon);padding:12px 16px;border-radius:12px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 8px #4a0d0d11;transition:background .15s,border-color .15s}.action-btn:active{background:#efe3cc}.seg{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:nowrap}.seg i{font-style:normal;color:#9a8a7a;font-weight:700}.seg .fixed{background:#efe3cc;color:var(--maroon);font-weight:700;padding:12px 8px;border-radius:10px;font-size:.95rem}.seg .group{display:flex;gap:4px}.cell{width:2.35rem;height:3.2rem;text-align:center;font:700 1.35rem/1 inherit;text-transform:uppercase;border:2px solid #d8c7ae;border-radius:10px;background:#fffdf8;padding:0}.cell:focus{border-color:var(--maroon);outline:3px solid #c9a24b66}.cell[data-kind=digit]{background:#fff7e6}.cell.shake{animation:shake .3s;border-color:var(--bad)}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.hint{margin:0;text-align:center;font-size:.8rem;color:#6a5a52}.hint.bad{color:var(--bad);font-weight:600}@media (max-width: 380px){.cell{width:2rem;height:2.8rem}.seg .fixed{padding:10px 6px;font-size:.8rem}}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;display:grid;align-items:end;z-index:10}.sheet[hidden]{display:none!important}.panel{background:var(--cream);border-radius:24px 24px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));max-width:480px;width:100%;margin:0 auto;display:grid;gap:14px;max-height:92svh;overflow:auto;animation:up .2s ease-out}@keyframes up{0%{transform:translateY(40px);opacity:0}}.badge{text-align:center;font-weight:700;letter-spacing:.04em;padding:12px;border-radius:14px;color:#fff}.badge.good{background:var(--good)}.badge.warn{background:var(--warn)}.badge.bad{background:var(--bad)}.profile{display:grid;justify-items:center;gap:10px}.profile img,.noimg{width:150px;height:180px;object-fit:cover;border-radius:14px;border:3px solid var(--maroon);background:#e9dcc4}.noimg{display:grid;place-items:center;color:#8a7a6a}.profile h2{color:var(--maroon);text-align:center}dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;width:100%}dt{color:#6a5a52;font-size:.85rem}dd{margin:0;font-weight:600;word-break:break-word}
