:root{--ink:#15181e;--muted:#5a6270;--faint:#9aa1ac;--bg:#f3f4f6;--surface:#fff;--line:#d5d9e0;--line-strong:#c9ced6;--skeleton:#e6e8ec;--bar:#1b1f27;--bar-chip:#2e3440;--primary:#1d5fc2;--primary-hover:#164a99;--success:#1b7a4a;--danger:#b42318;--warn-bg:#fff4d6;--warn-line:#f0d48a;--warn-ink:#5a3c00;--warn-icon:#8a5b00}*{box-sizing:border-box}body,html{background:var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:24px}a{color:var(--primary)}a:hover{color:var(--primary-hover)}.screen{background:var(--bg);max-width:560px;min-height:100dvh;margin:0 auto}.content,.footer,.screen{flex-direction:column;display:flex}.content{flex-grow:1;gap:10px;padding:12px}.content.centered{text-align:center;justify-content:center;align-items:center;gap:14px}.footer{background:var(--surface);border-top:1px solid var(--line);gap:8px;padding:8px 12px 10px;position:sticky;bottom:0}.title{margin:0;font-size:20px;font-weight:600;line-height:26px}.label,.muted{color:var(--muted)}.label,.small{font-size:13px;line-height:16px}.label{font-weight:600}.btn{height:48px;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:0 16px;font-weight:600;text-decoration:none;display:flex}.btn-lg{height:52px;font-size:17px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-success:hover{color:#fff;filter:brightness(.92)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover{color:var(--ink);background:var(--bg)}.btn-danger{background:var(--surface);border-color:var(--line-strong);color:var(--danger)}.btn-danger:hover{color:var(--danger);background:var(--bg)}.btn:disabled{opacity:.45;cursor:not-allowed;filter:none}.field{text-align:left;flex-direction:column;gap:8px;width:100%;display:flex}.input{width:100%;min-width:0;height:48px;font:inherit;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);border-radius:10px;padding:0 12px;font-size:18px}.input:focus{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}.card-body,.input-row{gap:8px;display:flex}.input-row .input{flex-grow:1}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.card-body{flex-direction:column;padding:12px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.kv{flex-direction:column;gap:2px;min-width:0;display:flex}.kv>:last-child{overflow-wrap:anywhere;font-weight:600}.notice{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink);border-radius:10px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;line-height:20px;display:flex}.notice svg{color:var(--warn-icon);flex-shrink:0}.notice-error{color:#7a1810;background:#fdecea;border-color:#f3b7b0}.notice-error svg{color:var(--danger)}.scan-icon{background:var(--surface);border:2px solid var(--line);width:88px;height:88px;color:var(--primary);border-radius:44px;justify-content:center;align-items:center;display:flex}.scan-icon.danger{color:var(--danger);border-color:#f3b7b0}.divider{width:100%;color:var(--muted);align-items:center;gap:12px;font-size:13px;line-height:16px;display:flex}.divider:after,.divider:before{content:"";background:var(--line);flex-grow:1;height:1px}.spinner{border:5px solid var(--line);border-top-color:var(--primary);border-radius:32px;width:64px;height:64px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(1turn)}}.footer.stats{flex-direction:row;justify-content:space-between;align-items:center}.stats-count{color:var(--ink);font-size:16px}.link-btn{min-height:44px;font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:14px;text-decoration:underline}.product-image{background:var(--skeleton);height:120px;color:var(--muted);justify-content:center;align-items:center;font-size:13px;display:flex}.product-image img{-o-object-fit:contain;object-fit:contain;background:#fff;width:100%;height:100%}.product-title{margin:0;font-size:18px;font-weight:600;line-height:24px}.progress{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.progress>span{background:var(--line);border-radius:3px;height:6px}.progress>span.done{background:var(--primary)}.subbar{flex-direction:column;gap:6px;padding:8px 12px 0;display:flex}.subbar-info{color:var(--muted);justify-content:space-between;gap:12px;font-size:13px;line-height:16px;display:flex}.subbar-info>:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.subbar-info>:last-child{color:var(--ink);white-space:nowrap;font-weight:600}.value-card{background:var(--surface);border:2px solid var(--primary);border-radius:12px;flex-direction:column;gap:0;padding:8px 14px;display:flex}.value-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.value{font-variant-numeric:tabular-nums;font-size:40px;font-weight:600;line-height:48px}.value.empty{color:var(--faint)}.unit{color:var(--muted);font-size:20px;font-weight:600;line-height:28px}.keypad{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.key{border:1px solid var(--line-strong);background:var(--surface);height:44px;color:var(--ink);font:inherit;cursor:pointer;touch-action:manipulation;border-radius:10px;justify-content:center;align-items:center;font-size:20px;font-weight:600;display:flex}.key:active{background:var(--skeleton)}.key.fn{background:var(--bg)}.key.clear{color:var(--danger)}.check-icon{background:var(--success);color:#fff;border-radius:36px;justify-content:center;align-items:center;width:72px;height:72px;display:flex}.summary{text-align:left;width:100%}.summary .kv>:last-child{font-size:18px}.actions{gap:8px;display:flex}.back-btn{flex:0 0 56px;padding:0}.next-btn{flex-grow:1}
