:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display",Segoe UI,sans-serif;color:#111827;background:#f5f5f7}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(#fbfbfd,#f1f3f6)}button,input,select{font:inherit}button{cursor:pointer}.app-shell{max-width:760px;margin:auto;padding:18px 16px 96px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.topbar span,.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#6b7280}.topbar h1,.login-card h1,.loading-shell h1{margin:4px 0 0;font-size:30px}.ghost{border:0;background:transparent;color:#4b5563}.screen-card,.login-card{background:rgba(255,255,255,.96);border:1px solid #e8eaf0;box-shadow:0 18px 50px rgba(31,41,55,.08);border-radius:24px;padding:18px}.section-heading{margin-bottom:16px}.section-heading span{font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.1em}.section-heading h2{margin:5px 0;font-size:24px}.muted{color:#6b7280;line-height:1.45}.store-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.store-card,.location-chip,.list-card{border:1px solid #e5e7eb;background:#fff;border-radius:18px;padding:16px;text-align:left}.store-card strong{display:block;font-size:18px}.store-card span,.list-card span,.list-card small{display:block;color:#6b7280;margin-top:5px}.location-group{margin:18px 0}.location-group h3{margin:0 0 8px}.location-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.location-chip{text-align:center;padding:12px 4px}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(760px,100%);display:flex;gap:6px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-top:1px solid #e5e7eb;z-index:20}.bottom-nav button{flex:1;border:0;background:transparent;border-radius:14px;padding:12px 4px;font-size:11px;font-weight:700;color:#6b7280}.bottom-nav button.active{background:#111827;color:#fff}.primary,.secondary,.danger,.scan-button{border:0;border-radius:16px;padding:14px 16px;font-weight:700}.primary{background:#111827;color:#fff}.secondary{background:#eef0f4;color:#111827}.danger{background:#fee2e2;color:#991b1b}.full{width:100%}.scanner-screen{display:grid;gap:12px}.context-card,.count-grid,.compare-card,.meta-card{display:grid;gap:10px;background:#fff;border-radius:20px;padding:14px;border:1px solid #e5e7eb}.context-card{grid-template-columns:repeat(2,1fr)}.context-card span,.count-grid span,.compare-card span{display:block;font-size:11px;color:#6b7280;text-transform:uppercase}.context-card strong,.count-grid strong,.compare-card strong{display:block;margin-top:4px}.camera-card{position:relative;overflow:hidden;border-radius:24px;background:#111827;aspect-ratio:4/3}.camera-card video{width:100%;height:100%;object-fit:cover}.camera-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:#fff}.camera-placeholder[hidden]{display:none}.scan-frame{position:absolute;left:12%;right:12%;top:35%;height:30%;border:3px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 0 0 999px rgba(0,0,0,.28)}.scan-frame span{position:absolute;bottom:-34px;width:100%;text-align:center;color:#fff;font-size:12px}.camera-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#6b7280;font-size:12px}.scan-button{background:#111827;color:white;font-size:18px;min-height:64px}.scan-button.holding{transform:scale(.985);background:#2563eb}.manual-card{display:flex;gap:8px}.manual-card input{flex:1}.manual-card button{border:0;border-radius:12px;padding:0 18px}.action-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.toast{padding:14px;border-radius:16px;background:#dcfce7;color:#166534;font-weight:700}.toast.warning{background:#fef3c7;color:#92400e}.exchange-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch}.exchange-grid article{background:#f8fafc;border-radius:18px;padding:14px}.exchange-arrow{display:grid;place-items:center;font-size:28px}.empty-item{min-height:140px;display:grid;place-items:center;color:#9ca3af}.item-card{display:grid;gap:6px;min-height:140px;margin:10px 0}.compare-card{grid-template-columns:repeat(3,1fr);margin:14px 0}.list-stack{display:grid;gap:10px}.list-card{display:grid;gap:5px;width:100%}.count-grid{grid-template-columns:repeat(3,1fr);margin-bottom:12px}.count-grid div{text-align:center}.count-grid strong{font-size:24px}.stack-form{display:grid;gap:12px}.stack-form label,.login-card label{display:grid;gap:7px;font-weight:600}.stack-form input,.stack-form select,.login-card input,.manual-card input{width:100%;padding:13px 14px;border:1px solid #d1d5db;border-radius:14px;background:#fff}.form-message{min-height:20px;color:#4b5563}.login-shell,.loading-shell{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(420px,100%)}.brand-orb{width:62px;height:62px;border-radius:20px;display:grid;place-items:center;background:#111827;color:#fff;font-size:30px;margin-bottom:16px}.login-card form{display:grid;gap:14px;margin-top:22px}.loading-shell{text-align:center;align-content:center}.cartoon-loader{position:relative;width:120px;height:120px;margin:0 auto 18px}.box-character{position:absolute;inset:18px;border-radius:24px;background:#fff;box-shadow:0 20px 50px rgba(0,0,0,.12);display:grid;place-items:center;font-size:42px;animation:bob 1.8s ease-in-out infinite}.scan-line{position:absolute;left:10px;right:10px;height:4px;border-radius:4px;background:#2563eb;animation:scan 1.5s ease-in-out infinite}.progress{width:min(320px,80vw);height:10px;border-radius:99px;background:#e5e7eb;overflow:hidden;margin:18px auto}.progress span{display:block;height:100%;width:0;background:#111827;transition:width .25s ease}@keyframes bob{50%{transform:translateY(-8px) rotate(-2deg)}}@keyframes scan{0%,100%{top:12px}50%{top:104px}}hr{border:0;border-top:1px solid #e5e7eb;margin:24px 0}@media(max-width:520px){.store-list{grid-template-columns:1fr}.location-grid{grid-template-columns:repeat(4,1fr)}.exchange-grid{grid-template-columns:1fr}.exchange-arrow{transform:rotate(90deg)}.compare-card{grid-template-columns:1fr}.count-grid{grid-template-columns:repeat(2,1fr)}.topbar h1{font-size:24px}.bottom-nav button{font-size:10px}}
