:root{--bg-primary: #0c0c1d;--bg-secondary: #141428;--bg-card: #1c1c36;--bg-hover: #242445;--brand: #00d4aa;--brand-bright: #00f5c4;--brand-dim: #00a88a;--brand-glow: rgba(0, 212, 170, .15);--accent-warn: #f59e0b;--accent-danger: #ef4444;--text-primary: #eeeef0;--text-secondary: #8888a0;--text-dim: #555570;--success: #4ade80;--error: #ef4444;--radius: 12px;--radius-sm: 8px;--border: rgba(255, 255, 255, .06);--border-light: rgba(255, 255, 255, .12)}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);-webkit-user-select:none;user-select:none;touch-action:manipulation}#app{display:flex;flex-direction:column;height:100dvh}.app-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--bg-secondary);z-index:10}.logo{font-size:1.4rem;font-weight:800;background:linear-gradient(135deg,#00d4aa,#00f5c4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.icon-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:var(--radius-sm);transition:background .2s}.icon-btn:hover{background:#ffffff1a}.view{display:none;flex:1;overflow-y:auto}.view.active{display:flex;flex-direction:column}.btn-secondary{background:var(--bg-card);color:var(--text-primary);border:1px solid var(--border-light);padding:14px 24px;border-radius:var(--radius);font-size:1rem;cursor:pointer;margin:16px;transition:background .2s}.btn-secondary:hover{background:var(--bg-hover)}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:100}.loading-overlay.hidden{display:none}.spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.2);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}.empty-state{text-align:center;color:var(--text-secondary);padding:48px 16px}.header-right{display:flex;align-items:center;gap:4px}.account-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:8px;border-radius:var(--radius-sm);transition:background .2s}.account-btn:hover{background:#ffffff1a}.account-menu{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--text-secondary)}.account-menu .user-email{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-menu .btn-signout{background:none;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary);padding:4px 10px;border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;transition:background .2s}.account-menu .btn-signout:hover{background:#ffffff1a}.login-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;flex:1;gap:24px}.login-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:32px 24px;width:100%;max-width:380px}.login-card h2{font-size:1.3rem;margin-bottom:4px}.login-card .login-subtitle{color:var(--text-secondary);font-size:.9rem;margin-bottom:24px}.login-tabs{display:flex;gap:0;margin-bottom:20px;border-bottom:1px solid var(--border-light)}.login-tab{flex:1;background:none;border:none;color:var(--text-secondary);padding:10px;font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.login-tab.active{color:var(--text-primary);border-bottom-color:var(--brand)}.login-form{display:flex;flex-direction:column;gap:12px}.login-form input{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:12px 14px;color:var(--text-primary);font-size:.95rem;outline:none;transition:border-color .2s}.login-form input:focus{border-color:var(--brand)}.login-form input::placeholder{color:var(--text-secondary);opacity:.6}.btn-primary{background:var(--brand);color:#fff;border:none;padding:12px 24px;border-radius:var(--radius-sm);font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s;box-shadow:0 0 20px var(--brand-glow)}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.login-divider{display:flex;align-items:center;gap:12px;margin:4px 0;color:var(--text-secondary);font-size:.8rem}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border-light)}.btn-google{display:flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:#333;border:none;padding:10px 24px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s;width:100%}.btn-google:hover{background:#f0f0f0}.login-error{color:var(--accent-danger);font-size:.85rem;min-height:20px}.upgrade-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;gap:16px;flex:1}.upgrade-container h2{font-size:1.3rem}.upgrade-container .upgrade-reason{color:var(--text-secondary);font-size:.95rem;max-width:320px}.upgrade-tiers{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap;justify-content:center}.upgrade-tier-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius);padding:20px;width:160px;text-align:center;cursor:pointer;transition:border-color .2s,transform .2s}.upgrade-tier-card:hover{border-color:var(--brand);transform:translateY(-2px)}.upgrade-tier-card.popular{border-color:var(--brand);position:relative}.upgrade-tier-card .tier-name{font-weight:700;font-size:1rem;margin-bottom:4px}.upgrade-tier-card .tier-price{color:var(--brand);font-size:1.2rem;font-weight:700}.upgrade-tier-card .tier-period{color:var(--text-secondary);font-size:.8rem}.tier-badge{display:inline-block;background:linear-gradient(135deg,#00d4aa,#00f5c4);color:var(--bg-primary);font-size:.65rem;font-weight:700;text-transform:uppercase;padding:2px 8px;border-radius:4px;margin-bottom:8px}.scan-limit-bar{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-secondary);font-size:.8rem;color:var(--text-secondary)}.scan-limit-bar .limit-fill{flex:1;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden}.scan-limit-bar .limit-fill-inner{height:100%;background:var(--brand);border-radius:2px;transition:width .3s}.scan-limit-bar .limit-fill-inner.warning{background:var(--accent-warn)}.scan-limit-bar .limit-fill-inner.full{background:var(--accent-danger)}.scan-limit-bar .limit-upgrade-btn{background:none;border:1px solid rgba(255,255,255,.2);color:var(--brand);padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:600;cursor:pointer;transition:background .2s}.scan-limit-bar .limit-upgrade-btn:hover{background:#ffffff1a}.app-disclaimer{padding:12px 16px;font-size:.65rem;color:var(--text-secondary);opacity:.5;text-align:center;line-height:1.4}.camera-container{position:relative;flex:1;overflow:hidden;background:#000}#camera-feed{width:100%;height:100%;object-fit:cover}.scan-overlay{display:none}.controls{display:flex;justify-content:center;align-items:center;padding:16px 24px;background:var(--bg-secondary);gap:24px}.controls-spacer{width:48px}.flash-btn{width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:#ffffff14;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.flash-btn.hidden{display:none}.flash-btn.flash-on{background:#f8d03033;border-color:#f8d030;color:#f8d030}.flash-btn:active{transform:scale(.9)}.capture-btn{width:72px;height:72px;border-radius:50%;border:4px solid var(--brand);background:transparent;cursor:pointer;position:relative;transition:transform .1s}.capture-btn:active{transform:scale(.92)}.capture-ring{display:block;width:56px;height:56px;border-radius:50%;background:var(--brand);margin:4px auto;transition:background .2s}.capture-btn:hover .capture-ring{background:var(--brand-bright)}.mode-bar{display:flex;align-items:center;justify-content:center;gap:12px;padding:6px 16px;background:var(--bg-secondary)}.mode-toggle{display:flex;background:var(--bg-card);border-radius:999px;padding:2px}.mode-btn{padding:5px 16px;border:none;background:none;color:var(--text-secondary);font-size:.75rem;font-weight:600;border-radius:999px;cursor:pointer;transition:all .2s}.mode-btn.mode-active{background:var(--brand);color:#fff}.hint{text-align:center;font-size:.75rem;color:var(--text-secondary);margin:0}.card-result{padding:16px;display:flex;flex-direction:column;gap:12px}.no-results{text-align:center;padding:48px 16px}.no-results p{color:var(--text-secondary)}.confirm-prompt{text-align:center;font-size:.9rem;color:var(--text-secondary);padding:4px 0 8px}.candidate-list{display:flex;flex-direction:column;gap:10px}.candidate-card{display:flex;gap:12px;padding:12px;background:var(--bg-secondary);border:2px solid var(--border, rgba(255,255,255,.08));border-radius:var(--radius);cursor:pointer;transition:border-color .15s,transform .1s;align-items:center}.candidate-card:hover,.candidate-card:active{border-color:var(--brand);transform:scale(.98)}.candidate-card-img img{width:72px;border-radius:6px}.candidate-card-info{flex:1;display:flex;flex-direction:column;gap:2px}.candidate-card-name{font-size:1rem;font-weight:700}.candidate-card-set{font-size:.8rem;color:var(--text-secondary)}.candidate-card-rarity{font-size:.7rem;color:var(--text-secondary)}.candidate-card-price{font-size:1.1rem;font-weight:700;color:var(--success);min-width:60px;text-align:right}.auto-confirmed{display:flex;flex-direction:column;gap:10px;padding:12px}.auto-top{background:var(--bg-secondary);border-radius:var(--radius);padding:12px}.auto-card-row{display:flex;align-items:center;gap:12px}.auto-card-img{width:60px;border-radius:6px}.auto-card-info{flex:1;display:flex;flex-direction:column;gap:2px}.auto-card-name{font-size:1.1rem;font-weight:700;margin:0}.auto-card-set{font-size:.8rem;color:var(--text-secondary);margin:0}.auto-price{font-size:1.6rem;font-weight:800;color:var(--success);min-width:70px;text-align:right}.alt-section{padding-top:8px}.alt-section .candidate-list{margin-top:6px}.confirmed-card{display:flex;flex-direction:column;gap:12px;padding:16px}.card-image{text-align:center}.card-image img{max-width:220px;border-radius:var(--radius);box-shadow:0 8px 32px #0006}.card-info{text-align:center}.card-name{font-size:1.5rem;font-weight:700}.card-set{color:var(--text-secondary);margin-top:4px}.card-rarity{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:999px;font-size:.75rem;background:#ffffff1a;color:var(--text-secondary)}.card-lang-badge{display:inline-block;margin-top:6px;margin-left:6px;padding:3px 10px;border-radius:999px;font-size:.75rem;font-weight:600;background:#ff3c3c26;color:#ff6060;border:1px solid rgba(255,60,60,.3)}.price-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;color:var(--text-secondary);font-size:.9rem}.spinner-sm{width:20px;height:20px;border:3px solid rgba(255,255,255,.15);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.confidence-badges{display:flex;gap:6px;margin-top:4px;flex-wrap:wrap}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:.65rem;font-weight:600}.badge-high{background:#3feca326;color:var(--success);border:1px solid rgba(63,236,163,.3)}.badge-med{background:#d2992226;color:#d29922;border:1px solid rgba(210,153,34,.3)}.badge-low{background:#f8514926;color:#f85149;border:1px solid rgba(248,81,73,.3)}.price-display{background:var(--bg-secondary);border-radius:var(--radius);padding:14px}.variant-prices{display:flex;flex-direction:column;gap:6px;margin-top:8px}.variant-row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#ffffff08;border-radius:var(--radius-sm)}.variant-badge{font-size:.75rem;font-weight:600;padding:3px 10px;border-radius:999px}.variant-normal{background:#a0a0a026;color:#b8b8b8}.variant-holo{background:#ffd7001f;color:gold}.variant-reverse{background:#64b4ff1f;color:#64b4ff}.variant-first{background:#00d4aa1f;color:var(--brand)}.variant-graded{background:#3feca31f;color:var(--success)}.variant-graded-10{background:#f0c04026;color:#f0c040}.variant-price{font-size:1.1rem;font-weight:700;color:var(--text-primary)}.verify-price{color:var(--success)}.no-price{text-align:center;color:var(--text-secondary);padding:12px 0;font-size:.85rem}.graded-prices{margin-top:4px;padding-bottom:12px;border-bottom:1px solid var(--border)}.price-graded{font-weight:700;color:var(--text-primary)}.price-psa10{color:#f0c040}.price-section{margin-top:8px}.price-section-secondary{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);opacity:.7}.price-section-label{display:block;font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.price-row{display:flex;justify-content:space-between;padding:5px 0;font-size:.85rem}.price-row+.price-row{border-top:1px solid rgba(255,255,255,.04)}.price-source,.price-confidence{font-size:.7rem;color:var(--text-secondary);text-align:center;margin-top:8px}.price-error{font-size:.8rem;color:#f85149;text-align:center;margin-top:8px}.tcgplayer-link{display:block;text-align:center;padding:10px;color:var(--brand);text-decoration:none;font-size:.85rem;font-weight:600;border:1px solid rgba(0,212,170,.3);border-radius:var(--radius-sm);transition:background .2s}.tcgplayer-link:hover{background:#00d4aa1a}.ocr-debug{text-align:center;font-size:.65rem;color:var(--text-secondary);opacity:.5;padding-top:4px}.price-actions{display:flex;gap:8px;padding:8px 0}.btn-verify,.btn-jp{flex:1;padding:12px;background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:8px}.btn-verify:hover,.btn-jp:hover{border-color:var(--brand);color:var(--brand)}.btn-verify:disabled,.btn-jp:disabled{opacity:.7;cursor:default}.btn-jp{border-color:#ff3c3c4d;color:#ff6060}.btn-jp:hover{border-color:#ff6060!important;color:#ff6060!important}.verify-results{background:var(--bg-secondary);border-radius:var(--radius);padding:14px}.verify-results .variant-row{background:#3feca30d}.sold-section{padding:12px 0}.sold-input-row{display:flex;align-items:center;gap:8px}.sold-label{font-size:.85rem;color:var(--text-secondary);white-space:nowrap}.sold-input-wrap{display:flex;align-items:center;flex:1;background:var(--bg-card);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm);padding:0 10px}.sold-dollar{color:var(--success);font-weight:700;font-size:1.1rem}.sold-input{background:none;border:none;color:var(--text-primary);font-size:1.1rem;font-weight:600;padding:10px 6px;width:100%;outline:none}.sold-input.error{border-color:#f85149}.btn-sold{background:var(--success);color:var(--bg-primary);border:none;padding:10px 16px;border-radius:var(--radius-sm);font-weight:700;font-size:.85rem;cursor:pointer;white-space:nowrap;transition:opacity .2s}.btn-sold:disabled{opacity:.7;cursor:default}.btn-sold-done{background:#3feca333;color:var(--success)}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px;margin-bottom:16px}.stat-box{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:12px;text-align:center}.stat-label{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.3rem;font-weight:700;margin-top:2px}.stat-green{color:var(--success)}.history-cards{display:flex;flex-direction:column;gap:8px;padding:0 16px}.history-card{display:flex;align-items:center;gap:12px;padding:10px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.history-card img{width:44px;border-radius:4px}.history-info{flex:1;display:flex;flex-direction:column;gap:1px;font-size:.8rem}.history-price-col{text-align:right;display:flex;flex-direction:column;gap:2px}.history-price{color:var(--success);font-weight:700;font-size:.9rem}.history-sold{color:#f0c040;font-weight:700;font-size:.9rem}.history-market{color:var(--text-secondary);font-size:.7rem;text-decoration:line-through;opacity:.6}.history-card-placeholder{width:44px;height:62px;background:var(--bg-card);border-radius:4px}.history-card time{font-size:.65rem;color:var(--text-secondary)}.batch-results{padding:12px}.batch-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:var(--bg-secondary);border-radius:var(--radius);margin-bottom:12px;font-size:.85rem}.batch-count{color:var(--text-secondary)}.batch-value{font-weight:700;color:var(--success);font-size:1.1rem}.batch-time{font-size:.7rem;color:var(--text-secondary)}.batch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.batch-card{background:var(--bg-secondary);border-radius:var(--radius-sm);overflow:hidden;display:flex;flex-direction:column}.batch-card-unknown{align-items:center;justify-content:center;min-height:120px;opacity:.5}.batch-card-img-placeholder{font-size:2rem;color:var(--text-secondary)}.batch-card-img{width:100%;aspect-ratio:63/88;object-fit:cover}.batch-card-details{padding:6px 8px;display:flex;flex-direction:column;gap:1px}.batch-card-name{font-size:.7rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-card-set{font-size:.6rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-card-price{font-size:.8rem;font-weight:700;color:var(--success)}.batch-card-label{font-size:.75rem;color:var(--text-secondary)}.btn-not-listed{display:block;margin:16px auto 0;padding:10px 20px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .2s}.btn-not-listed:hover{border-color:var(--brand);color:var(--text-primary)}.btn-not-listed-done{border-color:var(--success);color:var(--success);cursor:default}.not-listed-status{text-align:center;font-size:.8rem;color:var(--success);margin-top:8px;min-height:20px}
