*{box-sizing:border-box;margin:0;padding:0}
:root{--primary:#002f6c;--primary-light:#005eb8;--accent:#00a3e0;--danger:#d32f2f;--success:#2e7d32;--gray-50:#f8fafc;--gray-100:#f1f5f9;--gray-200:#e2e8f0;--gray-600:#475569;--gray-900:#0f172a;--radius:12px}
body{font-family:system-ui,-apple-system,sans-serif;background:var(--gray-50);min-height:100vh}
.header{background:#fff;color:var(--primary);padding:12px 20px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:100;box-shadow:0 2px 8px rgba(0,47,108,.1);border-bottom:2px solid var(--primary)}
.header .logo-img{height:36px}
.header .sep{width:1px;height:24px;background:var(--gray-200)}
.header .title{font-size:.95rem;font-weight:500;color:var(--gray-600)}
.header .info{margin-left:auto;display:flex;gap:14px;align-items:center}
.header .credit-badge{background:var(--gray-100);padding:5px 12px;border-radius:20px;font-size:.82rem;display:flex;align-items:center;gap:6px;color:var(--primary)}
.header .credit-badge i{font-size:14px}
.header .cart-btn{background:var(--primary);padding:7px 14px;border-radius:8px;cursor:pointer;border:none;color:#fff;font-weight:600;font-size:.85rem;display:flex;align-items:center;gap:6px;transition:background .2s}
.header .cart-btn:hover{background:var(--primary-light)}
#login{display:flex;align-items:center;justify-content:center;min-height:85vh}
.login-box{max-width:380px;width:100%;padding:40px;background:#fff;border-radius:16px;box-shadow:0 4px 24px rgba(0,47,108,.08);text-align:center}
.login-box .brand-logo{height:48px;margin-bottom:20px}
.login-box h2{color:var(--primary);margin-bottom:6px;font-size:1.3rem}
.login-box p{color:var(--gray-600);margin-bottom:24px;font-size:.9rem}
.login-box input{width:100%;padding:14px;margin-bottom:12px;border:1.5px solid var(--gray-200);border-radius:10px;font-size:1.1rem;text-align:center;letter-spacing:2px;transition:border .2s}
.login-box input:focus{outline:none;border-color:var(--primary-light)}
.login-box button{width:100%;padding:14px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-size:1rem;cursor:pointer;font-weight:600;transition:background .2s}
.login-box button:hover{background:var(--primary-light)}
.login-box .greeting{color:var(--primary);font-weight:600;font-size:1.1rem;margin-bottom:8px}
.login-box .sub{color:var(--gray-600);font-size:.88rem;margin-bottom:16px;display:flex;align-items:center;justify-content:center;gap:6px}
.error{color:var(--danger);font-size:.85rem;margin-bottom:8px}
#pin-step{display:none}
#app{display:none}
.tabs{display:flex;gap:0;max-width:1200px;margin:0 auto;padding:14px 20px 0}
.tab{padding:10px 20px;background:var(--gray-100);border:none;border-radius:8px 8px 0 0;cursor:pointer;font-weight:600;color:var(--gray-600);display:flex;align-items:center;gap:6px;font-size:.9rem;transition:all .2s}
.tab.active{background:#fff;color:var(--primary)}
.tab i{font-size:16px}
.offers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;padding:20px;max-width:1200px;margin:0 auto}
.offer-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 6px rgba(0,0,0,.05);transition:transform .2s,box-shadow .2s}
.offer-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,47,108,.1)}
.offer-card img{width:100%;height:160px;object-fit:contain;background:var(--gray-50);padding:12px}
.offer-card .body{padding:12px 14px}
.offer-card .brand{font-size:.72rem;color:var(--gray-600);text-transform:uppercase;letter-spacing:.5px}
.offer-card .name{font-size:.84rem;font-weight:600;margin:4px 0;line-height:1.3;height:2.6em;overflow:hidden;color:var(--gray-900)}
.offer-card .prices{display:flex;align-items:center;gap:8px;margin:8px 0}
.offer-card .original{text-decoration:line-through;color:#999;font-size:.82rem}
.offer-card .offer{color:var(--danger);font-weight:700;font-size:1.05rem}
.offer-card .discount{background:var(--danger);color:#fff;font-size:.68rem;padding:2px 6px;border-radius:4px;font-weight:600}
.offer-card .stock{font-size:.75rem;color:var(--success);margin-bottom:8px;display:flex;align-items:center;gap:4px}
.offer-card .stock i{font-size:12px}
.offer-card .add-btn{width:100%;padding:9px;background:var(--primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;font-size:.85rem;display:flex;align-items:center;justify-content:center;gap:6px;transition:background .2s}
.offer-card .add-btn:hover{background:var(--primary-light)}
.offer-card .add-btn i{font-size:14px}
.cart-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.4);z-index:200}
.cart-panel{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:92vw;background:#fff;z-index:201;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .3s}
.cart-panel.open{transform:translateX(0)}
.cart-panel .cart-header{padding:16px 20px;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;gap:10px}
.cart-panel .cart-header h3{flex:1;font-size:1.05rem;color:var(--primary)}
.cart-panel .cart-header i{font-size:20px;color:var(--primary)}
.cart-panel .close-btn{background:none;border:none;font-size:1.3rem;cursor:pointer;color:var(--gray-600);padding:4px}
.cart-items{flex:1;overflow-y:auto;padding:12px 16px}
.cart-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--gray-100)}
.cart-item .ci-name{flex:1;font-size:.85rem;color:var(--gray-900)}
.cart-item .ci-qty{font-size:.82rem;color:var(--gray-600);background:var(--gray-100);padding:2px 8px;border-radius:4px}
.cart-item .ci-price{font-weight:600;font-size:.9rem;color:var(--primary)}
.cart-item .ci-remove{background:none;border:none;color:var(--danger);cursor:pointer;padding:4px}
.cart-item .ci-remove i{font-size:16px}
.cart-footer{padding:16px 20px;border-top:1px solid var(--gray-200)}
.cart-footer .total{display:flex;justify-content:space-between;font-size:1.1rem;font-weight:700;margin-bottom:14px;color:var(--primary)}
.cart-footer .checkout-btn{width:100%;padding:14px;background:var(--success);color:#fff;border:none;border-radius:10px;font-size:1rem;cursor:pointer;font-weight:600;display:flex;align-items:center;justify-content:center;gap:8px;transition:background .2s}
.cart-footer .checkout-btn:hover{background:#1b5e20}
.cart-footer .checkout-btn i{font-size:18px}
.checkout-modal{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:300;align-items:center;justify-content:center}
.checkout-modal.show{display:flex}
.checkout-box{background:#fff;border-radius:16px;padding:36px;max-width:440px;width:90%;text-align:center}
.checkout-box .check-icon{width:56px;height:56px;background:var(--success);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.checkout-box .check-icon i{font-size:28px;color:#fff}
.checkout-box h2{color:var(--primary);margin-bottom:8px}
.checkout-box .code{font-size:1.8rem;font-weight:700;color:var(--primary);letter-spacing:3px;margin:16px 0;padding:14px;background:var(--gray-100);border-radius:8px;font-family:monospace}
.checkout-box .plant-info{color:var(--gray-600);margin:12px 0;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.95rem}
.checkout-box .plant-info i{font-size:16px;color:var(--primary)}
.checkout-box button{margin-top:20px;padding:12px 28px;background:var(--primary);color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600}
#chat-view{display:none;max-width:1200px;margin:0 auto;background:#fff;border-radius:0 0 var(--radius) var(--radius);flex-direction:column;height:calc(100vh - 120px)}
.messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:8px}
.msg{max-width:80%;padding:10px 14px;border-radius:12px;font-size:.9rem;line-height:1.5}
.msg.user{align-self:flex-end;background:var(--primary);color:#fff}
.msg.bot{align-self:flex-start;background:var(--gray-100);color:var(--gray-900)}
.chat-input{display:flex;gap:8px;padding:14px;border-top:1px solid var(--gray-200)}
.chat-input input{flex:1;padding:11px 14px;border:1.5px solid var(--gray-200);border-radius:8px;font-size:.9rem}
.chat-input input:focus{outline:none;border-color:var(--primary-light)}
.chat-input button{padding:11px 18px;background:var(--primary);color:#fff;border:none;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px}
.chat-input button i{font-size:16px}
.mic-btn{background:var(--gray-100)!important;color:var(--primary)!important}
.checkout-order-line{font-size:.85rem;color:var(--gray-600)}
.mic-btn.recording{background:var(--danger)!important;color:#fff!important;animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}
.chat-products{display:flex;gap:8px;overflow-x:auto;padding:8px 0;max-width:100%;-webkit-overflow-scrolling:touch}
.chat-pcard{min-width:150px;max-width:150px;background:#fff;border:1px solid var(--gray-200);border-radius:8px;overflow:hidden;flex-shrink:0}
.chat-pcard img{width:100%;height:80px;object-fit:contain;background:var(--gray-50);padding:4px}
.chat-pcard .cp-info{padding:6px 8px}
.chat-pcard .cp-name{font-size:.7rem;font-weight:600;line-height:1.2;height:2.4em;overflow:hidden}
.chat-pcard .cp-price{font-size:.8rem;color:var(--danger);font-weight:700;margin:3px 0}
.chat-pcard .cp-stock{font-size:.65rem;color:var(--success);font-weight:400}
.chat-pcard button{width:100%;padding:5px;background:var(--primary);color:#fff;border:none;border-radius:4px;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:3px}
.chat-pcard button i{font-size:11px}
#header-info{display:none}
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--danger);color:#fff;padding:12px 24px;border-radius:8px;font-size:.9rem;z-index:400;display:none;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.replay-btn{margin-top:6px;font-size:.75rem;color:var(--primary);cursor:pointer;opacity:.7}
.ci-qty-wrap{display:flex;align-items:center;gap:4px}
.qty-btn{width:24px;height:24px;border:1px solid var(--gray-200);border-radius:4px;background:#fff;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}
.qty-btn:hover{background:var(--gray-100)}
.ci-qty{font-weight:600;min-width:20px;text-align:center}
