:root{--bg: #f5f5f5;--surface: #ffffff;--text: #1a1a1a;--text-muted: #666666;--primary: #2563eb;--primary-hover: #1d4ed8;--success: #16a34a;--error: #dc2626;--border: #e5e5e5}.app{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}.header{background:var(--surface);padding:1rem 2rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.header h1{font-size:1.5rem;font-weight:600}.shop-badge{background:var(--bg);padding:.5rem 1rem;border-radius:2rem;font-size:.875rem}.main{flex:1;padding:2rem;max-width:600px;margin:0 auto;width:100%}.shop-selector{text-align:center}.shop-selector h2{margin-bottom:.5rem}.subtitle{color:var(--text-muted);margin-bottom:2rem}.pwa-install{background:var(--surface);border-radius:1rem;padding:1.5rem;display:flex;gap:1.5rem;align-items:center;text-align:left;margin-bottom:2rem}.pwa-qr canvas{display:block;border-radius:.5rem}.pwa-info h3{margin:0 0 .5rem;font-size:1.125rem}.pwa-info p{color:var(--text-muted);margin:0 0 .25rem;font-size:.875rem}.pwa-info a{color:var(--primary);font-family:monospace;font-size:.875rem}.install-steps{margin:1rem 0 0 1.25rem;padding:0;font-size:.875rem;color:var(--text-muted)}.install-steps li{margin-bottom:.25rem}.shop-selector .divider{height:1px;background:var(--border);margin:1.5rem 0}.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.shop-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.5rem 1rem;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:.5rem;transition:transform .1s,box-shadow .1s}.shop-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.shop-card .flag{font-size:2.5rem}.shop-card .name{font-weight:600}.shop-card .currency{color:var(--text-muted);font-size:.875rem}.shop-card .product{font-size:.75rem;color:var(--text-muted);margin-top:.5rem}.checkout{background:var(--surface);border-radius:1rem;padding:2rem}.checkout h2{margin-bottom:1.5rem}.order-summary{margin-bottom:2rem}.product-row{display:flex;justify-content:space-between;padding:1rem 0;font-size:1.125rem}.divider{height:1px;background:var(--border);margin:1rem 0}.summary-row{display:flex;justify-content:space-between;padding:.5rem 0;color:var(--text-muted)}.summary-row.total{font-weight:600;font-size:1.25rem;color:var(--text);padding-top:1rem;border-top:2px solid var(--border);margin-top:.5rem}.payment-info{text-align:center;color:var(--text-muted);margin-bottom:1.5rem}.pay-button{width:100%;padding:1rem;background:var(--primary);color:#fff;border:none;border-radius:.5rem;font-size:1.125rem;font-weight:600;cursor:pointer;transition:background .1s}.pay-button:hover{background:var(--primary-hover)}.back-button{width:100%;padding:.75rem;background:transparent;border:none;color:var(--text-muted);cursor:pointer;margin-top:1rem}.back-button:hover{color:var(--text)}.qr-display{background:var(--surface);border-radius:1rem;padding:2rem;text-align:center}.qr-display h2{margin-bottom:.5rem}.qr-display .instruction{color:var(--text-muted);margin-bottom:2rem}.qr-container{display:inline-block;padding:1rem;background:#fff;border-radius:1rem;box-shadow:0 4px 20px #0000001a}.qr-container canvas{display:block}.payment-details{margin-top:1.5rem}.payment-details .amount{font-size:2rem;font-weight:600}.payment-details .token-id{color:var(--text-muted);font-family:monospace;margin-top:.5rem}.waiting{margin-top:1.5rem;color:var(--text-muted);animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-bar{display:flex;align-items:center;gap:.75rem;padding:1rem 1.5rem;border-radius:.5rem;margin-bottom:1.5rem;background:var(--bg)}.status-indicator{width:12px;height:12px;border-radius:50%;background:var(--text-muted)}.status-progress .status-indicator{background:var(--primary);animation:pulse 1.5s infinite}.status-complete .status-indicator{background:var(--success)}.status-error .status-indicator{background:var(--error)}.complete{background:var(--surface);border-radius:1rem;padding:3rem 2rem;text-align:center}.complete h2{color:var(--success);margin-bottom:1rem}.complete button{margin-top:2rem;padding:.75rem 2rem;background:var(--primary);color:#fff;border:none;border-radius:.5rem;cursor:pointer}.error{background:#fef2f2;border:1px solid #fecaca;border-radius:.5rem;padding:1.5rem;text-align:center;margin-top:1rem}.error p{color:var(--error);margin-bottom:1rem}.error button{padding:.5rem 1rem;background:var(--error);color:#fff;border:none;border-radius:.25rem;cursor:pointer}.footer{padding:1rem;text-align:center;color:var(--text-muted);font-size:.875rem;border-top:1px solid var(--border)}
