:root{--bg: #0f1226;--panel: #191d3a;--panel2: #21264a;--accent: #6c8cff;--accent2: #37e6b0;--text: #eef0ff;--muted: #9aa0c9;--err: #ff6b6b}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overscroll-behavior:none}.app{display:flex;flex-direction:column;min-height:100%}main{flex:1;padding-bottom:72px}.pad{padding:14px 16px}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top));background:var(--panel);position:sticky;top:0;z-index:5}.brand{font-weight:800;letter-spacing:.5px;font-size:20px;color:var(--accent2)}.right{display:flex;gap:14px}.link{color:var(--accent);cursor:pointer}.link.small{font-size:13px;color:var(--muted)}.section-title{margin:16px 0 8px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.auth{max-width:420px;margin:0 auto;padding:40px 24px;text-align:center}.logo{font-size:46px;font-weight:900;color:var(--accent2)}.tagline{color:var(--muted);margin:6px 0 30px}.auth form{display:flex;flex-direction:column;gap:12px}input{width:100%;padding:14px;border-radius:12px;border:1px solid var(--panel2);background:var(--panel);color:var(--text);font-size:16px}button{border:none;border-radius:12px;padding:14px;font-size:16px;font-weight:700;background:var(--accent);color:#fff;cursor:pointer}button:disabled{opacity:.6}.switch{margin-top:18px;color:var(--muted)}.err{color:var(--err);font-size:14px;margin:8px 0}.msg{color:var(--accent2);margin-top:10px}.card-row{display:flex;align-items:center;gap:12px;padding:10px;background:var(--panel);border-radius:14px;margin-bottom:10px;cursor:pointer}.card-row img{width:46px;height:64px;object-fit:cover;border-radius:6px;background:var(--panel2)}.card-row .noimg{width:46px;height:64px;border-radius:6px;background:var(--panel2);display:grid;place-items:center;color:var(--muted)}.card-meta{flex:1;min-width:0}.card-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-sub{color:var(--muted);font-size:12px;margin-top:2px}.tag{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:999px;background:var(--panel2);font-size:11px;color:var(--accent2)}.hold-price{text-align:right;font-weight:700;color:var(--accent2)}.hold-price small{display:block;color:var(--muted);font-weight:400}.scanner{display:flex;flex-direction:column;align-items:center;padding:14px}.camera-wrap{position:relative;width:100%;max-width:460px;aspect-ratio:3/4;background:#000;border-radius:18px;overflow:hidden}.camera-wrap video{width:100%;height:100%;object-fit:cover}.frame-guide{position:absolute;top:12%;right:14%;bottom:12%;left:14%;border:2px dashed rgba(255,255,255,.6);border-radius:12px;pointer-events:none}.shutter{margin-top:18px;width:100%;max-width:460px;background:var(--accent2);color:#05231a}.hint{color:var(--muted);font-size:13px;text-align:center}.detail .hero{width:100%;max-width:320px;display:block;margin:10px auto;border-radius:12px}.detail h2{margin:6px 0 2px}.price-box{background:var(--panel);border-radius:14px;padding:16px;margin:16px 0;text-align:center}.price-label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}.price{font-size:28px;font-weight:800;color:var(--accent2)}.price.muted{font-size:16px;color:var(--muted)}.price small{font-size:13px;color:var(--muted);font-weight:400}.primary{width:100%;background:var(--accent)}.wallet{background:linear-gradient(135deg,var(--accent),#8a6cff);border-radius:18px;padding:20px;margin-bottom:16px}.wallet-label{opacity:.85;font-size:13px}.wallet-value{font-size:38px;font-weight:900}.wallet-sub{opacity:.85;font-size:13px}.search{display:flex;gap:8px;margin-bottom:6px}.search input{flex:1}.search button{padding:0 18px}.empty{text-align:center;padding:30px 10px}.muted{color:var(--muted)}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--panel);border-top:1px solid var(--panel2);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;background:none;border-radius:0;color:var(--muted);font-size:22px;padding:8px;display:flex;flex-direction:column;align-items:center;gap:2px}.tabbar button span{font-size:11px}.tabbar button.active{color:var(--accent2)}
