.app-shell{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(12px + var(--safe-bottom))}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 12px;background:#eef3eaeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(200,212,196,.7)}.brand{font-size:1.15rem;font-weight:700;letter-spacing:.02em;color:var(--brand)}.nav{display:flex;gap:6px}.nav a{padding:8px 14px;border-radius:999px;color:var(--muted);font-size:.92rem;font-weight:600}.nav a.active{background:var(--brand);color:#fff}.app-main{flex:1;padding:16px}.edit-form-card{scroll-margin-top:72px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid rgba(200,212,196,.55);padding:16px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field label{font-size:.85rem;color:var(--muted);font-weight:600}.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fbfcf9;color:var(--ink);outline:none}.field input:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #1a5c3a1f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:14px;padding:14px 18px;font-weight:700;transition:transform .12s ease,opacity .12s ease}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;width:100%}.btn-accent{background:var(--accent);color:#fff;width:100%}.btn-ghost{background:var(--brand-soft);color:var(--brand)}.btn-danger{background:#fdecea;color:var(--danger)}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.btn-row .btn{flex:1;min-width:120px}.product-actions{display:flex;flex-wrap:nowrap;gap:6px;margin-top:8px;width:100%}.product-actions .btn{flex:1 1 0;min-width:0;width:auto;padding:8px 6px;font-size:.82rem;white-space:nowrap}.price-xl{font-size:2.6rem;font-weight:800;color:var(--accent);letter-spacing:-.02em;line-height:1.1}.muted{color:var(--muted);font-size:.9rem}.error-text{color:var(--danger);font-size:.9rem;margin:8px 0}.success-text{color:var(--ok);font-size:.9rem;margin:8px 0}.recent-list{max-height:none}.list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:#f7faf5;border:1px solid transparent;text-align:left;width:100%}.list-item:active,.list-item.active{border-color:var(--brand);background:var(--brand-soft)}.list-item .name{font-weight:600;font-size:.98rem}.list-item .meta{font-size:.8rem;color:var(--muted);margin-top:2px}.list-item .price{font-weight:800;color:var(--accent);white-space:nowrap}.section-title{font-size:.85rem;font-weight:700;color:var(--muted);margin:18px 0 10px;text-transform:none;letter-spacing:.04em}.scanner-wrap{border-radius:16px;overflow:hidden;background:#111;min-height:260px;width:100%;position:relative}.quagga-wrap{min-height:280px}.quagga-viewport{width:100%;min-height:280px;max-height:48vh;overflow:hidden;background:#000;position:relative}.quagga-viewport video{width:100%!important;max-height:48vh;object-fit:cover!important;display:block;transform:translateZ(0)}.quagga-viewport canvas{display:none!important}.android-lite .quagga-viewport{min-height:220px;max-height:38vh}.android-lite .quagga-viewport video{max-height:38vh}.scanner-guide-band.only-border{pointer-events:none;position:absolute;left:4%;right:4%;top:32%;bottom:32%;border:2px solid rgba(255,255,255,.9);border-radius:10px;box-sizing:border-box}.scanner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.scanner-close{width:auto!important;padding:8px 12px!important}.scanner-hint{margin-top:0}.manual-barcode{margin-top:14px}.manual-barcode label{display:block;font-size:.85rem;color:var(--muted);font-weight:600;margin-bottom:6px}.manual-row{display:flex;gap:8px}.manual-row input{flex:1;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fbfcf9;min-width:0}.manual-btn{width:auto!important;padding:12px 16px!important;white-space:nowrap}.scanner-status{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;text-align:center;color:#f2f5f0;background:#000000b8;font-size:.95rem}.scanner-status.error{color:#ffd7d2}.scanner-confirm{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 12px;border-radius:10px;background:#1a5c3ae6;color:#fff;font-size:.88rem;text-align:center;font-weight:600}.overlay-panel{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#1018128c;display:flex;align-items:flex-end;justify-content:center;padding:16px;padding-bottom:calc(16px + var(--safe-bottom))}.overlay-sheet{width:min(480px,100%);max-height:90dvh;overflow:auto;background:var(--surface);border-radius:20px;padding:18px;box-shadow:0 16px 40px #00000040;animation:slideUp .22s ease}@keyframes slideUp{0%{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}.result-hero{text-align:center;padding:8px 0 4px}.result-hero .pname{font-size:1.15rem;font-weight:700;margin:8px 0 4px}.badge{display:inline-block;padding:4px 10px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:.75rem;font-weight:700}.badge.warn{background:#fff3e8;color:var(--accent)}.empty{text-align:center;padding:28px 12px;color:var(--muted)}.toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.toolbar .btn{width:auto;padding:10px 14px;font-size:.9rem}.inactive-tag{font-size:.75rem;color:var(--danger);margin-left:6px}:root{--bg: #eef3ea;--bg-deep: #dce6d6;--surface: #ffffff;--ink: #1c2a1f;--muted: #5c6b5f;--brand: #1a5c3a;--brand-soft: #e3f0e8;--accent: #c45c26;--danger: #b42318;--ok: #1a5c3a;--line: #c8d4c4;--shadow: 0 8px 24px rgba(28, 42, 31, .08);--radius: 16px;--font: "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--safe-bottom: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(ellipse 120% 80% at 10% -10%,#f7fbf4 0%,transparent 55%),radial-gradient(ellipse 90% 60% at 100% 0%,#e8f0e2 0%,transparent 50%),linear-gradient(180deg,var(--bg) 0%,var(--bg-deep) 100%);background-attachment:fixed;-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}
