:root{--jade-50: #EAF5EE;--jade-100: #C5E1CF;--jade-400: #5DB88C;--jade-500: #3BA776;--jade-600: #2B8050;--jade-700: #1E6B3D;--amber-50: #FFF8EB;--amber-300: #F5A623;--amber-400: #E0900A;--red: #E74C3C;--blue: #5B9BD5;--purple: #9B59B6;--bg: #F8F9F5;--card: #FFFFFF;--divider: #F0F0ED;--ink: #1A1A1A;--text: #555555;--muted: #999999}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}.h5-loading{text-align:center;padding:120px 20px;color:var(--muted)}.h5-loading-spinner{width:40px;height:40px;border:3px solid var(--divider);border-top:3px solid var(--jade-500);border-radius:50%;animation:h5-spin .8s linear infinite;margin:0 auto 16px}@keyframes h5-spin{to{transform:rotate(360deg)}}.h5-error{text-align:center;padding:80px 20px;color:var(--red)}.h5-error-icon-wrap{font-size:48px;margin-bottom:16px}.h5-page{max-width:480px;margin:0 auto;background:var(--bg);min-height:100vh}.h5-hero{background:linear-gradient(135deg,var(--jade-500),var(--jade-700));color:#fff;padding:40px 24px 32px;position:relative;overflow:hidden}.h5-hero-deco{position:absolute;border-radius:50%;pointer-events:none}.h5-hero-deco-1{top:-40px;right:-30px;width:120px;height:120px;background:#ffffff0f}.h5-hero-deco-2{bottom:-20px;left:-20px;width:80px;height:80px;background:#ffffff0a}.h5-hero-title{font-size:22px;margin-bottom:8px;position:relative;z-index:1}.h5-hero-desc{opacity:.85;font-size:14px;margin-bottom:0;position:relative;z-index:1}.h5-hero-location{opacity:.75;font-size:13px;margin-top:10px;position:relative;z-index:1}.h5-items{padding:16px}.h5-item-card{display:flex;align-items:center;padding:16px;background:var(--card);border-radius:18px;margin-bottom:12px;box-shadow:0 2px 8px #3ba7760a,0 0 0 1px #3ba7760a}.h5-item-info{flex:1;margin-right:16px}.h5-item-name{font-size:15px;font-weight:600;color:var(--ink)}.h5-item-bottom{display:flex;gap:12px;margin-top:6px;align-items:center}.h5-item-price{font-size:16px;font-weight:700;color:var(--red)}.h5-item-stock{font-size:12px;color:var(--jade-500);font-weight:500}.h5-item-stock.low{color:var(--amber-300);font-weight:600}.h5-item-stock.out{color:var(--red);font-weight:600}.h5-qty-control{display:flex;align-items:center;gap:14px;flex-shrink:0}.h5-qty-btn{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease;border:none;font-size:18px;font-weight:700}.h5-qty-btn.minus{background:var(--divider);color:var(--text)}.h5-qty-btn.plus{background:var(--jade-500);color:#fff;box-shadow:0 2px 8px #3ba7764d}.h5-qty-btn:disabled{opacity:.4;cursor:not-allowed}.h5-qty-num{width:28px;text-align:center;font-weight:700;font-size:16px;color:var(--ink)}.h5-form{padding:0 16px}.h5-form-card{background:var(--card);border-radius:18px;padding:0 16px}.h5-form-item{display:flex;align-items:center;padding:14px 0;border-bottom:1px solid var(--divider)}.h5-form-item:last-child{border-bottom:none}.h5-form-label{width:64px;font-size:14px;font-weight:600;color:var(--ink);flex-shrink:0}.h5-form-input{flex:1;border:none;outline:none;font-size:14px;color:var(--ink);background:transparent}.h5-form-input::placeholder{color:var(--muted)}.h5-bottom-bar{position:fixed;bottom:0;left:0;right:0;background:var(--card);padding:14px 16px;box-shadow:0 -4px 16px #0000000f;display:flex;align-items:center;justify-content:space-between;z-index:100}.h5-total{display:flex;align-items:baseline;gap:6px}.h5-total-label{font-size:14px;color:var(--text)}.h5-total-amount{font-size:24px;color:var(--red);font-weight:700}.h5-total-qty{font-size:12px;color:var(--muted)}.h5-submit-btn{padding:14px 48px;border-radius:48px;border:none;background:var(--jade-500);color:#fff;font-size:16px;font-weight:600;cursor:pointer;box-shadow:0 4px 12px #3ba7764d;transition:all .15s ease}.h5-submit-btn:hover{background:var(--jade-600);transform:translateY(-1px)}.h5-submit-btn:active{transform:translateY(1px)}.h5-submit-btn:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}
