:root{--terminal-bg:#0a0e1a;--terminal-surface:#111827;--terminal-card:#1a2035;--terminal-border:#1e293b;--terminal-text:#f1f5f9;--terminal-muted:#64748b;--terminal-primary:#6366f1;--terminal-primary-hover:#818cf8;--terminal-success:#10b981;--terminal-danger:#ef4444}.terminal-setup{background:var(--terminal-bg);box-sizing:border-box;justify-content:center;align-items:center;min-height:100dvh;padding:24px 16px;display:flex;position:relative;overflow:hidden}.terminal-setup:before{content:"";pointer-events:none;background:radial-gradient(circle,#6366f114 0%,#0000 70%);width:600px;height:600px;position:absolute;top:20%;left:50%;transform:translate(-50%)}.pairing-card{background:var(--terminal-surface);border:1px solid var(--terminal-border);text-align:center;border-radius:24px;width:100%;max-width:520px;padding:32px 24px;position:relative;box-shadow:0 25px 80px #00000080}.pairing-code-container{justify-content:center;gap:8px;margin:24px 0;display:flex}.pairing-digit{color:#fff;background:var(--terminal-card);border:2px solid var(--terminal-border);font-variant-numeric:tabular-nums;border-radius:14px;justify-content:center;align-items:center;width:52px;height:68px;font-size:30px;font-weight:900;transition:border-color .3s,transform .3s;display:flex}.pairing-digit:nth-child(odd){animation:2s ease-in-out infinite digitPulse}.pairing-digit:nth-child(2n){animation:2s ease-in-out .5s infinite digitPulse}@keyframes digitPulse{0%,to{border-color:var(--terminal-border);transform:scale(1)}50%{border-color:var(--terminal-primary);transform:scale(1.03)}}.pairing-status{border-radius:12px;justify-content:center;align-items:center;gap:10px;margin-top:24px;padding:12px 20px;font-size:14px;font-weight:600;display:flex}.pairing-status.pending{color:var(--terminal-primary-hover);background:#6366f11a;border:1px solid #6366f133}.pairing-status.success{color:var(--terminal-success);background:#10b9811a;border:1px solid #10b98133}.pairing-spinner{border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-12px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.terminal-app{background:var(--terminal-bg);height:100dvh;color:var(--terminal-text);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex;overflow:hidden}.terminal-header{background:var(--terminal-surface);border-bottom:1px solid var(--terminal-border);padding:10px 14px;padding-top:max(10px, env(safe-area-inset-top));flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.terminal-body{flex-direction:column;flex:1;display:flex;overflow:hidden}@media (min-width:768px){.terminal-body{flex-direction:row}}.terminal-search{background:var(--terminal-surface);border-bottom:1px solid var(--terminal-border);flex-shrink:0;padding:10px 12px}.terminal-search-input{border:1px solid var(--terminal-border);background:var(--terminal-bg);width:100%;color:var(--terminal-text);box-sizing:border-box;border-radius:12px;outline:none;min-height:44px;padding:10px 16px 10px 40px;font-size:14px;transition:border-color .15s}.terminal-search-input:focus{border-color:var(--terminal-primary)}.terminal-search-input::placeholder{color:var(--terminal-muted)}.terminal-categories{scrollbar-width:none;border-bottom:1px solid var(--terminal-border);background:var(--terminal-surface);flex-shrink:0;gap:8px;padding:10px 12px;display:flex;overflow-x:auto}.terminal-categories::-webkit-scrollbar{display:none}.terminal-category-btn{border:1px solid var(--terminal-border);min-height:44px;color:var(--terminal-muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:10px;flex-shrink:0;padding:8px 16px;font-size:13px;font-weight:600;transition:all .15s}.terminal-category-btn.active{background:var(--terminal-primary);border-color:var(--terminal-primary);color:#fff}.terminal-category-btn:hover:not(.active){border-color:var(--terminal-muted);color:var(--terminal-text)}.terminal-products{scrollbar-width:thin;scrollbar-color:var(--terminal-border) transparent;padding:12px;padding-bottom:calc(80px + env(safe-area-inset-bottom,0px));flex:1;overflow-y:auto}@media (min-width:768px){.terminal-products{padding-bottom:12px}}.terminal-product-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (min-width:480px) and (max-width:767px){.terminal-product-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:768px){.terminal-product-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.terminal-product-card{background:var(--terminal-card);border:1px solid var(--terminal-border);cursor:pointer;text-align:center;border-radius:16px;flex-direction:column;align-items:center;min-height:100px;padding:12px 8px;transition:all .15s;display:flex}@media (min-width:768px){.terminal-product-card{min-height:160px;padding:12px}}.terminal-product-card:hover{border-color:var(--terminal-primary);transform:translateY(-2px);box-shadow:0 8px 24px #6366f126}.terminal-product-card:active{transform:scale(.96)}.terminal-product-image{object-fit:cover;background:var(--terminal-bg);border-radius:10px;flex-shrink:0;width:64px;height:64px;margin-bottom:8px}@media (min-width:768px){.terminal-product-image{width:80px;height:80px}}.terminal-product-name{color:var(--terminal-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:4px;font-size:12px;font-weight:700;display:-webkit-box;overflow:hidden}@media (min-width:768px){.terminal-product-name{font-size:13px}}.terminal-product-price{color:var(--terminal-primary-hover);font-size:14px;font-weight:900}.terminal-cart{display:none}@media (min-width:768px){.terminal-cart{background:var(--terminal-surface);border-left:1px solid var(--terminal-border);flex-direction:column;flex-shrink:0;width:450px;display:flex}}.terminal-cart-header{border-bottom:1px solid var(--terminal-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.terminal-cart-items{scrollbar-width:thin;scrollbar-color:var(--terminal-border) transparent;flex:1;padding:10px;overflow-y:auto}.terminal-cart-item{border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;margin-bottom:4px;padding:10px;transition:all .15s;display:flex}.terminal-cart-item:hover{background:var(--terminal-card);border-color:var(--terminal-border)}.terminal-cart-footer{border-top:1px solid var(--terminal-border);background:var(--terminal-card);flex-shrink:0;padding:14px 16px}.cart-sheet-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000a6;animation:.2s fadeIn;position:fixed;inset:0}.cart-sheet{z-index:501;background:var(--terminal-surface);border-top:1px solid var(--terminal-border);max-height:92dvh;padding-bottom:env(safe-area-inset-bottom,0px);border-radius:24px 24px 0 0;flex-direction:column;animation:.28s cubic-bezier(.32,.72,0,1) slideUp;display:flex;position:fixed;bottom:0;left:0;right:0}.cart-sheet-handle{background:#334155;border-radius:4px;flex-shrink:0;width:40px;height:4px;margin:12px auto 4px}.cart-sheet-header{border-bottom:1px solid var(--terminal-border);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 18px 14px;display:flex}.cart-sheet-items{-webkit-overflow-scrolling:touch;flex:1;padding:10px;overflow-y:auto}.cart-sheet-footer{border-top:1px solid var(--terminal-border);background:var(--terminal-card);flex-shrink:0;padding:14px 16px}.floating-cart-btn{bottom:12px;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));z-index:400;background:var(--terminal-primary);color:#fff;cursor:pointer;border:none;border-radius:18px;justify-content:space-between;align-items:center;min-height:56px;padding:14px 20px;font-size:16px;font-weight:900;transition:transform .15s,box-shadow .15s;animation:.3s cubic-bezier(.32,.72,0,1) slideUp;display:flex;position:fixed;box-shadow:0 8px 30px #6366f173}.floating-cart-btn:active{transform:scale(.97)}@media (min-width:768px){.floating-cart-btn{display:none}.cart-sheet-overlay,.cart-sheet{display:none!important}}.terminal-charge-btn{color:#fff;cursor:pointer;border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:56px;padding:16px;font-size:17px;font-weight:900;transition:all .2s;display:flex}.terminal-charge-btn.ready{background:var(--terminal-primary);box-shadow:0 8px 30px #6366f159}.terminal-charge-btn.ready:hover{background:var(--terminal-primary-hover);transform:translateY(-1px)}.terminal-charge-btn.ready:active{transform:scale(.98)}.terminal-charge-btn.disabled{background:var(--terminal-border);color:var(--terminal-muted);cursor:not-allowed;box-shadow:none}.terminal-qty-controls{background:var(--terminal-bg);border:1px solid var(--terminal-border);border-radius:10px;flex-shrink:0;align-items:center;gap:4px;padding:2px;display:flex}.terminal-qty-btn{width:32px;height:32px;color:var(--terminal-text);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:background .15s;display:flex}.terminal-qty-btn:hover{background:var(--terminal-border)}.terminal-qty-value{text-align:center;font-variant-numeric:tabular-nums;width:28px;font-size:14px;font-weight:800}.terminal-payment-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px;display:grid}.terminal-payment-btn{border:1px solid var(--terminal-border);color:var(--terminal-muted);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:48px;padding:12px 8px;font-size:13px;font-weight:700;transition:all .15s;display:flex}.terminal-payment-btn.active{color:var(--terminal-primary-hover);background:#6366f11a;border-color:#6366f180}.terminal-payment-btn:hover:not(.active){border-color:var(--terminal-muted);color:var(--terminal-text)}.terminal-success-overlay{z-index:100;background:#0a0e1af2;justify-content:center;align-items:center;padding:24px;animation:.3s fadeIn;display:flex;position:fixed;inset:0}.terminal-success-card{text-align:center;width:100%;max-width:380px;padding:40px 32px;animation:.3s scaleIn}.terminal-empty{opacity:.4;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;min-height:120px;display:flex}