/* ============================================================
   海吧洗车 HiWash — Style A: 高端质感 · 轻快干净
   Mobile-first WAP · 480px max
   主色：白+浅灰+深灰 · 强调色：活力橙
   ============================================================ */

/* ---------- Design Tokens ---------- */
:root {
    --c-primary: #FF6A00;
    --c-primary-dark: #E85D00;
    --c-primary-light: #FFF3E0;
    --c-primary-50: #FFF8F0;
    --c-primary-gradient: linear-gradient(135deg, #FF8C00 0%, #FF6A00 50%, #E85D00 100%);
    --c-primary-rgb: 255,106,0;

    --c-accent: #FF8C00;
    --c-accent-light: #FFE8CC;

    --c-success: #4CAF50;
    --c-success-light: #E8F5E9;
    --c-warning: #FF9800;
    --c-warning-light: #FFF3E0;
    --c-danger: #F44336;
    --c-danger-light: #FFEBEE;
    --c-info: #1677FF;
    --c-info-light: #E8F0FE;

    --c-text: #222222;
    --c-text-2: #555555;
    --c-text-3: #999999;
    --c-text-4: #CCCCCC;

    --c-bg: #F7F7F7;
    --c-surface: #FFFFFF;
    --c-line: #F0F0F0;
    --c-line-dark: #E5E5E5;

    --r: 14px;
    --r-lg: 20px;
    --r-full: 999px;

    --shadow-xs: 0 1px 3px rgba(0,0,0,.03);
    --shadow: 0 1px 6px rgba(0,0,0,.03);
    --shadow-lg: 0 8px 30px rgba(0,0,0,.08);
    --shadow-card: 0 1px 6px rgba(0,0,0,.03);
    --shadow-orange: 0 4px 16px rgba(255,106,0,.2);

    --nav-h: 80px;
    --topbar-h: 48px;

    --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

/* ---------- Reset ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:14px;-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--c-bg);color:var(--c-text);line-height:1.6;max-width:480px;margin:0 auto;min-height:100vh;position:relative;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--c-info);text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit}

/* ---------- SVG Icon Base ---------- */
.icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;flex-shrink:0}
.icon svg{width:100%;height:100%;fill:currentColor}
.icon-lg{width:28px;height:28px}
.icon-xl{width:36px;height:36px}
.icon-avatar{width:48px;height:48px;border-radius:50%;background:var(--c-primary-light);color:var(--c-primary);padding:10px}

/* ---------- Topbar ---------- */
.top-bar{position:sticky;top:0;z-index:100;background:var(--c-surface);height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--c-line)}
.top-bar.transparent{background:transparent;border:none;color:#fff}
.top-bar-title{font-size:17px;font-weight:600;color:var(--c-text);letter-spacing:.2px}
.top-bar.transparent .top-bar-title{color:#fff}
.top-bar-back{display:flex;align-items:center;justify-content:center;width:32px;height:32px;color:var(--c-text-2)}
.top-bar.transparent .top-bar-back{color:#fff}
.top-bar-action{font-size:13px;font-weight:600;color:var(--c-primary)}

/* ---------- Bottom Nav (5-Tab) ---------- */
.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:var(--nav-h);background:var(--c-surface);display:flex;align-items:flex-end;padding:0 0 env(safe-area-inset-bottom,20px);border-top:1px solid var(--c-line);z-index:100}
.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--c-text-4);font-size:10px;font-weight:500;padding:6px 4px;position:relative;transition:color .2s;text-decoration:none}
.nav-item .icon{width:22px;height:22px}
.nav-item .icon svg{fill:#C0C0C0}
.nav-item.active{color:var(--c-primary);font-weight:700}
.nav-item.active .icon svg{fill:var(--c-primary)}

.nav-item.scan-btn{flex:1.2;position:relative}
.nav-scan-circle{width:56px;height:56px;border-radius:50%;background:var(--c-primary-gradient);display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(255,106,0,.4),0 2px 8px rgba(255,106,0,.2);color:#fff !important;margin-top:-28px;position:relative}
.nav-scan-circle::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:2px solid rgba(255,106,0,.15)}
.nav-scan-circle .icon{width:26px;height:26px;color:#fff !important}
.nav-scan-circle .icon svg,.nav-scan-circle svg{fill:#fff !important}
.nav-item.scan-btn span:last-child{margin-top:3px;color:var(--c-primary);font-weight:600;font-size:10px}
@keyframes scan-pulse{0%,100%{box-shadow:0 6px 20px rgba(255,106,0,.4)}50%{box-shadow:0 6px 24px rgba(255,106,0,.55)}}

/* ---------- Page Container ---------- */
.page-body{padding:12px 16px calc(var(--nav-h) + 16px)}
.page-body-nn{padding:12px 16px 24px}

/* ---------- Card ---------- */
.card{background:var(--c-surface);border-radius:var(--r);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-card)}
.card-title{font-size:15px;font-weight:700;color:var(--c-text);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 22px;border-radius:var(--r);font-size:14px;font-weight:600;border:none;cursor:pointer;transition:all .2s}
.btn:active{transform:scale(.97);opacity:.9}
.btn-primary{background:var(--c-primary-gradient);color:#fff;box-shadow:var(--shadow-orange)}
.btn-green{background:linear-gradient(135deg,#43A047,#66BB6A);color:#fff}
.btn-orange{background:var(--c-primary-gradient);color:#fff;box-shadow:var(--shadow-orange)}
.btn-red{background:linear-gradient(135deg,#E53935,#EF5350);color:#fff}
.btn-outline{background:transparent;border:1.5px solid var(--c-primary);color:var(--c-primary)}
.btn-ghost{background:transparent;color:var(--c-primary);padding:6px 12px}
.btn-block{width:100%;display:flex}
.btn-sm{padding:7px 14px;font-size:12px;border-radius:8px}
.btn-primary-sm{padding:6px 16px;font-size:12px;border-radius:20px;background:var(--c-primary-gradient);color:#fff;border:none;font-weight:600;box-shadow:0 2px 8px rgba(255,106,0,.2)}
.btn-outline-sm{padding:6px 16px;font-size:12px;border-radius:20px;background:transparent;color:var(--c-primary);border:1.5px solid var(--c-primary);font-weight:600}
.btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--r)}
.btn-white{background:#fff;color:var(--c-primary);font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.btn-pill{border-radius:var(--r-full);padding:8px 18px;font-size:12px;font-weight:600}
.btn-wechat{background:var(--c-primary-gradient);color:#fff;box-shadow:0 6px 24px rgba(255,106,0,.3)}

/* ---------- Form ---------- */
.form-group{margin-bottom:16px}
.form-label{display:block;font-size:13px;font-weight:600;color:var(--c-text-2);margin-bottom:6px}
.form-input{width:100%;padding:12px 14px;border:1.5px solid var(--c-line-dark);border-radius:var(--r);font-size:14px;color:var(--c-text);background:var(--c-surface);outline:none;transition:all .2s}
.form-input:focus{border-color:var(--c-primary);box-shadow:0 0 0 3px var(--c-primary-light)}
.form-input::placeholder{color:var(--c-text-4)}
select.form-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23999'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}

/* ---------- Stats Grid ---------- */
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
.stats-grid-3{grid-template-columns:repeat(3,1fr)}
.stat-box{background:var(--c-surface);border-radius:var(--r);padding:14px;text-align:center;box-shadow:var(--shadow-card)}
.stat-val{font-size:24px;font-weight:800;color:var(--c-primary);line-height:1.2}
.stat-val.green{color:var(--c-success)}
.stat-val.orange{color:var(--c-primary)}
.stat-lbl{font-size:11px;color:var(--c-text-3);margin-top:4px}

/* ---------- List Item ---------- */
.ls-item{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--c-line)}
.ls-item:last-child{border-bottom:none}
.ls-ico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.ls-ico.blue{background:var(--c-info)}
.ls-ico.green{background:var(--c-success)}
.ls-ico.orange{background:var(--c-primary)}
.ls-ico.red{background:var(--c-danger)}
.ls-ico.gray{background:var(--c-text-3)}
.ls-ico.light-blue{background:var(--c-info-light);color:var(--c-info)}
.ls-ico.light-green{background:var(--c-success-light);color:var(--c-success)}
.ls-ico.light-orange{background:var(--c-primary-light);color:var(--c-primary)}
.ls-body{flex:1;min-width:0}
.ls-title{font-size:14px;font-weight:600;color:var(--c-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-desc{font-size:12px;color:var(--c-text-3);margin-top:2px}
.ls-extra{text-align:right;flex-shrink:0}
.ls-amount{font-size:16px;font-weight:700;color:var(--c-text)}
.ls-sub{font-size:11px;color:var(--c-text-3);margin-top:2px}
.ls-arrow{color:var(--c-text-4);font-size:14px}

/* Simple list (no icons) */
.simple-list .ls-item{padding:15px 16px}
.simple-list .ls-item:last-child{border-bottom:none}

/* ---------- Badge ---------- */
.badge{display:inline-block;padding:3px 10px;border-radius:var(--r-full);font-size:11px;font-weight:600;line-height:1.5}
.badge-blue{background:var(--c-info-light);color:var(--c-info)}
.badge-green{background:var(--c-success-light);color:var(--c-success)}
.badge-orange{background:var(--c-primary-light);color:var(--c-primary)}
.badge-red{background:var(--c-danger-light);color:var(--c-danger)}
.badge-gray{background:#F5F5F5;color:var(--c-text-3)}
.badge-shared{background:var(--c-primary-gradient);color:#fff;padding:2px 7px;border-radius:4px;font-size:9px;font-weight:600}

/* ---------- Status Dot ---------- */
.dot{width:8px;height:8px;border-radius:50%;display:inline-block}
.dot-green{background:var(--c-success)}
.dot-orange{background:var(--c-primary)}
.dot-red{background:var(--c-danger)}
.dot-gray{background:var(--c-text-3)}

/* ============================================================
   INDEX / PORTAL PAGE
   ============================================================ */
.index-page{min-height:100vh;background:linear-gradient(170deg,#FF9A3C 0%,#FF6A00 45%,#E85D00 100%);display:flex;flex-direction:column;align-items:center;padding:0 24px}
.idx-logo{margin-top:80px;width:72px;height:72px;border-radius:20px;background:rgba(255,255,255,.15);display:flex;align-items:center;justify-content:center;margin-bottom:20px;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15)}
.idx-logo svg{width:40px;height:40px;fill:#fff}
.idx-title{color:#fff;font-size:28px;font-weight:800;letter-spacing:1px;margin-bottom:6px;text-align:center}
.idx-sub{color:rgba(255,255,255,.8);font-size:15px;margin-bottom:6px;text-align:center}
.idx-desc{color:rgba(255,255,255,.45);font-size:13px;text-align:center;margin-bottom:44px}
.idx-cards{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}
.idx-card{display:flex;align-items:center;gap:16px;background:rgba(255,255,255,.97);border-radius:var(--r);padding:18px 20px;color:var(--c-text);transition:transform .15s;box-shadow:var(--shadow)}
.idx-card:active{transform:scale(.98)}
.idx-card-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}
.idx-card-icon.c-orange{background:var(--c-primary-gradient)}
.idx-card-icon.c-green{background:linear-gradient(135deg,#43A047,#66BB6A)}
.idx-card-icon.c-purple{background:linear-gradient(135deg,#7B1FA2,#AB47BC)}
.idx-card-icon svg{width:24px;height:24px;fill:#fff}
.idx-card h3{font-size:16px;font-weight:700;margin-bottom:2px}
.idx-card p{font-size:12px;color:var(--c-text-3)}
.idx-footer{margin-top:auto;padding:32px 0 20px;color:rgba(255,255,255,.3);font-size:11px}

/* ============================================================
   LOGIN PAGE
   ============================================================ */
.login-page{min-height:100vh;display:flex;flex-direction:column;background:#FAFAFA}
.login-hd{padding:60px 24px 28px;text-align:center}
.login-icon{width:88px;height:88px;border-radius:24px;display:flex;align-items:center;justify-content:center;margin:0 auto 24px;box-shadow:0 4px 20px rgba(0,0,0,.06)}
.login-icon.c-orange{background:var(--c-primary-light);color:var(--c-primary)}
.login-icon.c-white{background:#fff;color:var(--c-primary)}
.login-icon svg{width:44px;height:44px;fill:currentColor}
.login-icon .logo-text{font-size:40px;font-weight:900;font-family:Arial;color:var(--c-primary)}
.login-title{font-size:28px;font-weight:800;color:var(--c-text);margin-bottom:8px;letter-spacing:2px}
.login-sub{font-size:14px;color:var(--c-text-3);letter-spacing:1px}
.login-form{padding:20px 24px;flex:1}
.login-selling{margin:0 24px 0;padding:20px 24px;background:var(--c-surface);border-radius:var(--r);box-shadow:var(--shadow-card);text-align:left}
.login-selling-count{text-align:center;font-size:15px;font-weight:600;color:var(--c-text);margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--c-line)}
.login-selling-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:var(--c-text-2);line-height:2.2}
.login-selling-dot{width:5px;height:5px;border-radius:50%;background:var(--c-primary);flex-shrink:0;margin-top:11px}
.login-btn-area{padding:48px 36px 0}
.login-footer{padding:16px 24px;text-align:center;font-size:13px;color:var(--c-text-3)}
.login-footer a{color:var(--c-primary);font-weight:600}
.login-agreement{position:absolute;bottom:50px;left:0;right:0;text-align:center;font-size:11px;color:var(--c-text-4)}
.login-agreement a{color:var(--c-primary)}

/* ============================================================
   USER HOME
   ============================================================ */
.home-title-bar{background:var(--c-surface);padding:10px 18px 12px;display:flex;align-items:center}
.home-title-bar .brand{font-size:18px;font-weight:800;color:var(--c-text);flex:1}
.home-title-bar .location{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--c-text-3)}
.home-title-bar .location svg{width:12px;height:12px;fill:var(--c-text-4)}

.home-video{margin:12px 16px 0;border-radius:var(--r);overflow:hidden;box-shadow:0 2px 16px rgba(0,0,0,.06)}
.home-video-inner{height:200px;background:linear-gradient(180deg,#171720,#22223a);position:relative;display:flex;align-items:center;justify-content:center}
.home-video-play{width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.15)}
.home-video-play svg{width:20px;height:20px;fill:rgba(255,255,255,.85);margin-left:3px}
.home-video-label{position:absolute;top:12px;left:14px;font-size:11px;color:rgba(255,255,255,.4)}
.home-video-bar{position:absolute;bottom:12px;left:14px;right:14px;height:2px;background:rgba(255,255,255,.08);border-radius:1px}
.home-video-bar .fill{height:100%;background:var(--c-primary);border-radius:1px;width:35%}

.home-ad{margin:10px 16px 0;background:linear-gradient(135deg,#FFF5EB,#FFE8D0);border-radius:12px;padding:12px 14px;display:flex;align-items:center;gap:10px}
.home-ad .ad-text{flex:1;font-size:12px;font-weight:700;color:#E65100}

.home-coupon{margin:10px 16px 0;background:var(--c-surface);border-radius:var(--r);padding:16px;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-card)}
.coupon-icon{width:50px;height:50px;background:var(--c-primary-gradient);border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:var(--shadow-orange);color:#fff;font-size:11px;font-weight:900;text-align:center;line-height:1.15}
.coupon-body{flex:1}
.coupon-title{font-size:16px;font-weight:800;color:var(--c-text)}
.coupon-desc{font-size:11px;color:var(--c-text-3);margin-top:3px}
.coupon-btn{background:var(--c-primary-gradient);color:#fff;padding:9px 18px;border-radius:22px;font-size:13px;font-weight:700;box-shadow:var(--shadow-orange);border:none;cursor:pointer}

.home-shared{margin:12px 16px 0;background:var(--c-surface);border-radius:var(--r);padding:16px;box-shadow:var(--shadow-card)}
.shared-title{text-align:center;font-size:14px;font-weight:700;color:var(--c-text);margin-bottom:10px}
.shared-title b{color:var(--c-primary)}
.shared-body{display:flex;align-items:center;gap:10px;background:var(--c-bg);border-radius:10px;padding:12px}
.shared-store-tag{background:var(--c-primary-gradient);color:#fff;padding:5px 10px;border-radius:8px;font-size:11px;font-weight:700;white-space:nowrap;flex-shrink:0}
.shared-desc{flex:1;font-size:12px;color:var(--c-text-2);line-height:1.6}
.shared-desc b{color:var(--c-text)}
.shared-desc .num{font-size:18px;color:var(--c-primary);font-weight:800}
.shared-guarantee{background:var(--c-success);color:#fff;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:700;flex-shrink:0}

/* Store list */
.store-section{margin:18px 16px 0}
.store-section-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.store-section-hd h3{font-size:15px;font-weight:700;color:var(--c-text)}
.store-section-hd .more{font-size:12px;color:var(--c-primary)}

.store-card{display:block;background:var(--c-surface);border-radius:var(--r);padding:14px;margin-bottom:10px;color:var(--c-text);box-shadow:var(--shadow-card);transition:transform .15s}
.store-card:active{transform:scale(.99)}
.sc-row{display:flex;gap:12px}
.sc-photo{width:110px;height:82px;border-radius:10px;background:var(--c-line);flex-shrink:0;object-fit:cover}
.sc-photo-placeholder{display:flex;align-items:center;justify-content:center;background:var(--c-primary-light)}
.sc-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.sc-name{font-size:14px;font-weight:700;color:var(--c-primary);display:flex;align-items:center;gap:6px}
.sc-types{display:flex;flex-wrap:wrap;gap:4px}
.sc-type-tag{font-size:10px;padding:1px 6px;border-radius:3px;background:#F0F7FF;color:#3B82F6;font-weight:600;border:1px solid #DBEAFE}
.sc-addr{font-size:11px;color:var(--c-text-3);line-height:1.5}
.sc-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:2px}
.sc-left{display:flex;align-items:center;gap:10px}
.sc-nav-btn{background:var(--c-primary-gradient);color:#fff;padding:4px 14px;border-radius:18px;font-size:11px;font-weight:600;box-shadow:0 2px 8px rgba(255,106,0,.2);display:inline-flex;align-items:center;gap:4px;border:none;cursor:pointer}
.sc-nav-btn svg{width:10px;height:10px;fill:#fff}
.sc-dist{font-size:11px;color:var(--c-text-4)}
.sc-price{font-size:14px;font-weight:800;color:var(--c-primary)}

/* ============================================================
   PROFILE / MY PAGE (Dashboard style)
   ============================================================ */
.profile-hd{background:var(--c-surface);padding:50px 20px 18px}
.profile-hd-orange{background:linear-gradient(150deg,#FF9A3C,#FF6A00);padding:50px 20px 22px;color:#fff;position:relative;overflow:hidden}
.profile-hd-orange::before{content:'';position:absolute;right:-30px;top:-10px;width:130px;height:130px;border-radius:50%;background:rgba(255,255,255,.05)}
.profile-user{display:flex;align-items:center;gap:14px}
.profile-avatar{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;flex-shrink:0}
.profile-avatar.gray{background:var(--c-bg);color:var(--c-text-2)}
.profile-avatar.orange{background:var(--c-primary-gradient);color:#fff;box-shadow:var(--shadow-orange)}
.profile-avatar.glass{background:rgba(255,255,255,.15);color:#fff;border:1.5px solid rgba(255,255,255,.2)}
.profile-name{font-size:18px;font-weight:700}
.profile-phone{font-size:12px;opacity:.6;margin-top:3px}
.profile-arrow{opacity:.35;font-size:16px}

.profile-data{margin-top:16px;background:var(--c-primary-gradient);border-radius:16px;padding:18px 12px;color:#fff;position:relative;overflow:hidden}
.profile-data::before{content:'';position:absolute;right:-15px;top:-15px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.06)}
.profile-data-row{display:flex;justify-content:space-around;text-align:center;position:relative}
.profile-data-item .val{font-size:22px;font-weight:800;margin-top:3px}
.profile-data-item .lbl{font-size:10px;opacity:.75}
.profile-data-sep{width:1px;background:rgba(255,255,255,.1)}

.profile-data-inline{margin-top:20px;padding:16px 0;border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);display:flex;justify-content:space-around;text-align:center}
.profile-data-inline .val{font-size:22px;font-weight:800;color:var(--c-primary)}
.profile-data-inline .lbl{font-size:10px;color:var(--c-text-4);margin-top:3px}

/* Store balance card */
.store-bal-card{background:var(--c-surface);border-radius:var(--r);padding:16px;margin-bottom:10px;box-shadow:var(--shadow-card)}
.store-bal-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.store-bal-name{font-size:14px;font-weight:700;color:var(--c-text)}
.store-bal-recharge{color:var(--c-primary);font-size:12px;font-weight:600}
.store-bal-data{display:flex;gap:14px;font-size:12px;color:var(--c-text-3)}
.store-bal-data b{color:var(--c-text);font-size:15px}
.store-bal-share{font-size:11px;color:var(--c-info);margin-top:8px}

/* Gift section */
.gift-section{background:var(--c-surface);border-radius:var(--r);padding:16px;margin-bottom:10px;box-shadow:var(--shadow-card)}
.gift-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.gift-hd b{font-size:13px;color:var(--c-text)}
.gift-hd a{color:var(--c-info);font-size:11px}
.gift-grid{display:flex;gap:8px}
.gift-thumb{width:55px;height:42px;background:var(--c-bg);border-radius:8px}
.gift-pending{font-size:11px;color:var(--c-primary);margin-top:6px;font-weight:600}

/* Menu list */
.menu-list{background:var(--c-surface);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-card)}
.menu-item{display:flex;justify-content:space-between;padding:15px 16px;border-bottom:1px solid var(--c-line);font-size:13px;color:var(--c-text);text-decoration:none}
.menu-item:last-child{border-bottom:none}
.menu-item .arrow{color:var(--c-text-4)}
.menu-item .count{color:var(--c-primary);font-weight:700}

/* CTA banner */
.cta-banner{margin-top:10px;background:linear-gradient(135deg,#FFF8F0,#FFF2E5);border-radius:var(--r);padding:16px;display:flex;justify-content:space-between;align-items:center;border:1px solid #FFF0E0}
.cta-banner .cta-title{font-size:14px;font-weight:700;color:#E65100}
.cta-banner .cta-sub{font-size:11px;color:var(--c-accent);margin-top:3px}
.cta-banner .cta-arrow{font-size:16px;color:var(--c-primary)}

/* ============================================================
   SCAN PAGE
   ============================================================ */
.scan-page{min-height:100vh;background:var(--c-text);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#fff}
.scan-frame{width:240px;height:240px;border:2px solid rgba(255,255,255,.3);border-radius:16px;position:relative;margin-bottom:24px}
.scan-frame::before{content:'';position:absolute;top:10%;left:0;right:0;height:2px;background:var(--c-primary);animation:scan-line 2s linear infinite}
@keyframes scan-line{0%{top:10%}100%{top:90%}}
.scan-hint{font-size:14px;opacity:.7}

/* ============================================================
   DEVICE & MODE SELECTION
   ============================================================ */
.dev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.dev-card{background:var(--c-surface);border:2px solid var(--c-line);border-radius:var(--r);padding:16px 8px;text-align:center;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-xs)}
.dev-card.selected{border-color:var(--c-primary);background:var(--c-primary-50);box-shadow:0 0 0 3px var(--c-primary-light)}
.dev-card.disabled{opacity:.35;cursor:not-allowed}
.dev-card .icon{margin:0 auto 8px}
.dev-name{font-size:13px;font-weight:600}
.dev-status{font-size:11px;color:var(--c-text-3);margin-top:3px}

.mode-card{background:var(--c-surface);border:2px solid var(--c-line);border-radius:var(--r);padding:16px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-xs)}
.mode-card.selected{border-color:var(--c-primary);background:var(--c-primary-50);box-shadow:0 0 0 3px var(--c-primary-light)}
.mode-info h4{font-size:15px;font-weight:700;margin-bottom:3px}
.mode-info p{font-size:12px;color:var(--c-text-3)}
.mode-price{font-size:22px;font-weight:800;color:var(--c-primary)}
.mode-price span{font-size:12px;font-weight:400}

.legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.legend-item{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--c-text-3)}

/* ============================================================
   WASH PROGRESS PAGE
   ============================================================ */
.wash-page{min-height:100vh;background:linear-gradient(180deg,#1a1a2e 0%,#222240 50%,#2d2d50 100%);color:#fff;padding:20px;text-align:center}
.wash-ring{width:180px;height:180px;border-radius:50%;border:6px solid rgba(255,255,255,.1);display:flex;flex-direction:column;align-items:center;justify-content:center;margin:40px auto;position:relative}
.wash-ring::before{content:'';position:absolute;inset:-6px;border-radius:50%;border:6px solid transparent;border-top-color:var(--c-primary);animation:spin 1.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.wash-time{font-size:48px;font-weight:800;line-height:1}
.wash-time-lbl{font-size:13px;opacity:.7;margin-top:6px}
.wash-mode-name{font-size:20px;font-weight:700;margin-bottom:8px}
.wash-status-text{font-size:14px;opacity:.7}
.wash-info{background:rgba(255,255,255,.06);border-radius:var(--r);padding:16px 18px;margin-top:28px;text-align:left}
.wash-info-row{display:flex;justify-content:space-between;padding:8px 0;font-size:13px;border-bottom:1px solid rgba(255,255,255,.06)}
.wash-info-row:last-child{border:none}

/* Wash controls */
.wash-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:20px}
.wash-ctrl-btn{padding:12px 20px;border-radius:var(--r);font-size:13px;font-weight:600;border:1.5px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;transition:all .2s}
.wash-ctrl-btn.active{border-color:var(--c-primary);background:rgba(255,106,0,.15);color:var(--c-primary)}
.wash-ctrl-btn.pause{border-color:var(--c-warning);color:var(--c-warning)}
.wash-ctrl-btn.stop{background:var(--c-primary-gradient);border-color:transparent;color:#fff;box-shadow:var(--shadow-orange)}

/* Wash done */
.wash-done{text-align:center;padding-top:50px}
.wash-done-icon{width:80px;height:80px;border-radius:50%;background:rgba(76,175,80,.15);display:flex;align-items:center;justify-content:center;margin:0 auto 24px}
.wash-done-icon svg{width:40px;height:40px;fill:var(--c-success)}
.wash-done h2{font-size:24px;margin-bottom:8px}

/* ============================================================
   WALLET / RECHARGE
   ============================================================ */
.wallet-hd{background:var(--c-primary-gradient);padding:28px 20px;border-radius:0 0 var(--r-lg) var(--r-lg);color:#fff;text-align:center;margin-bottom:14px;position:relative;overflow:hidden}
.wallet-hd::before{content:'';position:absolute;top:-30px;right:-30px;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,.06)}
.wallet-bal{font-size:40px;font-weight:800;margin:12px 0 6px;position:relative;z-index:1}
.wallet-lbl{font-size:13px;opacity:.85;position:relative;z-index:1}
.rch-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.rch-opt{background:var(--c-surface);border:2px solid var(--c-line);border-radius:var(--r);padding:16px 6px;text-align:center;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-xs)}
.rch-opt.selected{border-color:var(--c-primary);background:var(--c-primary-50);box-shadow:0 0 0 3px var(--c-primary-light)}
.rch-amt{font-size:22px;font-weight:800;color:var(--c-text)}
.rch-gift{font-size:11px;color:var(--c-primary);font-weight:600;margin-top:4px}

/* ============================================================
   ORDER LIST
   ============================================================ */
.order-card{background:var(--c-surface);border-radius:var(--r);padding:16px;margin-bottom:10px;box-shadow:var(--shadow-card)}
.order-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--c-line)}
.order-no{font-size:11px;color:var(--c-text-3);font-family:monospace}
.order-bd{display:flex;justify-content:space-between;align-items:center}
.order-info h4{font-size:14px;font-weight:600;margin-bottom:3px}
.order-info p{font-size:12px;color:var(--c-text-3)}
.order-amt{font-size:18px;font-weight:800;color:var(--c-text)}

/* ============================================================
   STORE DETAIL PAGE
   ============================================================ */
.detail-hd{position:relative;height:200px;background:var(--c-line);overflow:hidden}
.detail-hd img{width:100%;height:100%;object-fit:cover}
.detail-hd-overlay{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,rgba(0,0,0,.6));color:#fff}
.detail-name{font-size:18px;font-weight:800}
.detail-addr{font-size:12px;opacity:.8;margin-top:4px}

.detail-body{padding:12px 16px calc(var(--nav-h) + 16px)}

.detail-video{margin-bottom:12px;position:relative;height:120px;background:#1a1a2e;border-radius:var(--r);display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.detail-video-play{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.15)}
.detail-video-play svg{width:16px;height:16px;fill:rgba(255,255,255,.8);margin-left:2px}
.detail-video-label{color:rgba(255,255,255,.6);font-size:10px;margin-top:8px}
.detail-video-bar{position:absolute;bottom:4px;left:8px;right:8px;display:flex;justify-content:space-between;font-size:8px;color:rgba(255,255,255,.35)}

.detail-recharge{background:var(--c-primary-gradient);color:#fff;border-radius:var(--r);padding:16px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between}
.detail-recharge h3{font-size:16px;font-weight:700}
.detail-recharge p{font-size:12px;opacity:.8;margin-top:2px}
.detail-recharge-btn{background:#fff;color:var(--c-primary);padding:8px 20px;border-radius:var(--r-full);font-size:13px;font-weight:700;border:none;cursor:pointer}

/* Bay cards */
.bay-card{background:var(--c-surface);border-radius:var(--r);padding:14px;margin-bottom:8px;box-shadow:var(--shadow-card);display:flex;align-items:center;justify-content:space-between}
.bay-info h4{font-size:14px;font-weight:600;margin-bottom:2px}
.bay-info p{font-size:12px;color:var(--c-text-3)}
.bay-status{padding:6px 14px;border-radius:var(--r-full);font-size:12px;font-weight:600}
.bay-status.free{background:var(--c-success-light);color:var(--c-success)}
.bay-status.busy{background:var(--c-danger-light);color:var(--c-danger)}

/* ============================================================
   DASHBOARD HEADERS (Store/Admin)
   ============================================================ */
.dash-hd{padding:20px 16px;border-radius:0 0 var(--r-lg) var(--r-lg);color:#fff;margin-bottom:14px}
.dash-hd.store{background:var(--c-primary-gradient)}
.dash-hd.admin{background:linear-gradient(135deg,#6A1B9A,#AB47BC)}
.dash-welcome{font-size:18px;font-weight:700;margin-bottom:4px}
.dash-date{font-size:12px;opacity:.75}

/* ============================================================
   CHART (CSS BAR)
   ============================================================ */
.chart-bars{display:flex;align-items:flex-end;gap:4px;height:100px;padding:8px 0}
.chart-bar{flex:1;background:var(--c-primary-light);border-radius:4px 4px 0 0;min-height:3px;position:relative}
.chart-bar .bar-fill{position:absolute;bottom:0;left:0;right:0;background:var(--c-primary);border-radius:4px 4px 0 0}
.chart-labels{display:flex;gap:4px}
.chart-labels span{flex:1;text-align:center;font-size:9px;color:var(--c-text-3)}

/* ============================================================
   MODAL
   ============================================================ */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:200;display:flex;align-items:flex-end;justify-content:center}
.modal-overlay.hidden{display:none}
.modal-body{background:var(--c-surface);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-width:480px;max-height:80vh;overflow-y:auto;padding:24px 20px 32px;animation:slideUp .25s ease}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.modal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.modal-title{font-size:17px;font-weight:700}
.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:var(--c-bg);border-radius:var(--r-full);cursor:pointer;color:var(--c-text-3)}

/* ============================================================
   TOAST / LOADING / FLASH
   ============================================================ */
.toast{position:fixed;top:56px;left:50%;transform:translateX(-50%);background:var(--c-text);color:#fff;padding:10px 24px;border-radius:var(--r-full);font-size:13px;z-index:300;box-shadow:var(--shadow-lg);max-width:90%;text-align:center;transition:opacity .25s}
.toast.hidden{opacity:0;pointer-events:none}
.toast.success{background:var(--c-success)}
.toast.error{background:var(--c-danger)}
.loading-overlay{position:fixed;inset:0;background:rgba(255,255,255,.85);z-index:250;display:flex;align-items:center;justify-content:center}
.loading-overlay.hidden{display:none}
.loading-spinner{width:40px;height:40px;border:3px solid var(--c-line);border-top-color:var(--c-primary);border-radius:50%;animation:spin .7s linear infinite}
.flash-messages{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:300;width:90%;max-width:400px}
.flash-msg{padding:12px 16px;border-radius:var(--r);margin-bottom:6px;font-size:13px;animation:fadeDown .25s ease}
@keyframes fadeDown{from{transform:translateY(-12px);opacity:0}to{transform:translateY(0);opacity:1}}
.flash-error{background:var(--c-danger-light);color:var(--c-danger)}
.flash-success{background:var(--c-success-light);color:var(--c-success)}

/* ============================================================
   PAGINATION / FILTER / EMPTY / TABLE
   ============================================================ */
.pagination{display:flex;justify-content:center;gap:6px;padding:16px 0}
.pagination a,.pagination span{padding:8px 16px;border-radius:var(--r);font-size:13px;background:var(--c-surface);color:var(--c-text-2);border:1px solid var(--c-line);box-shadow:var(--shadow-xs)}
.pagination span.current{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.filter-bar{display:flex;gap:8px;padding:10px 0;overflow-x:auto;-webkit-overflow-scrolling:touch}
.filter-btn{white-space:nowrap;padding:7px 16px;border-radius:var(--r-full);border:1.5px solid var(--c-line);background:var(--c-surface);font-size:12px;color:var(--c-text-2);cursor:pointer;transition:all .2s}
.filter-btn.active{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.empty{text-align:center;padding:48px 20px;color:var(--c-text-3)}
.empty .icon{width:56px;height:56px;margin:0 auto 14px;color:var(--c-line-dark)}
.empty p{font-size:13px}
.action-group{display:flex;gap:6px;flex-wrap:wrap}

.info-panel{background:var(--c-primary-50);border:1px solid var(--c-primary-light);border-radius:var(--r);padding:14px 16px;margin-bottom:12px}
.info-panel .card-title{color:var(--c-primary)}
.step-row{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;color:var(--c-text-2)}
.step-num{width:22px;height:22px;border-radius:50%;background:var(--c-primary);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.tip-list{list-style:none}
.tip-list li{font-size:12px;color:var(--c-text-2);padding:4px 0;display:flex;align-items:flex-start;gap:6px}
.tip-list li::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--c-primary);margin-top:7px;flex-shrink:0}

/* Quick Actions grid */
.qa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.qa-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 6px;background:var(--c-surface);border-radius:var(--r);font-size:11px;font-weight:600;color:var(--c-text-2);box-shadow:var(--shadow-card);transition:transform .15s;text-decoration:none}
.qa-item:active{transform:scale(.96)}
.qa-item .icon{width:26px;height:26px;color:var(--c-primary)}
.qa-item .icon.green{color:var(--c-success)}
.qa-item .icon.orange{color:var(--c-primary)}

/* Vehicle page */
.vehicle-empty{text-align:center;padding:60px 20px}
.vehicle-empty-icon{width:80px;height:80px;margin:0 auto 20px;color:var(--c-line-dark);opacity:.5}
.vehicle-empty-icon svg{width:100%;height:100%;fill:currentColor}
.vehicle-empty p{font-size:14px;color:var(--c-text-3);margin-bottom:24px}
.vehicle-card{background:var(--c-surface);border-radius:var(--r);padding:16px;margin-bottom:12px;box-shadow:var(--shadow-card);display:flex;align-items:center;gap:14px}
.vehicle-card.default{border-left:3px solid var(--c-primary)}
.vehicle-icon{width:48px;height:48px;border-radius:14px;background:var(--c-primary-light);color:var(--c-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.vehicle-icon .icon{width:26px;height:26px}
.vehicle-info{flex:1;min-width:0}
.vehicle-plate{font-size:18px;font-weight:800;color:var(--c-text);letter-spacing:1px}
.vehicle-desc{font-size:12px;color:var(--c-text-3);margin-top:2px}
.vehicle-default-tag{display:inline-block;padding:2px 8px;border-radius:var(--r-full);font-size:10px;font-weight:600;background:var(--c-primary-light);color:var(--c-primary);margin-top:4px}
.vehicle-actions{display:flex;gap:8px;flex-shrink:0}
.add-vehicle-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:var(--c-primary-gradient);color:#fff;border:none;border-radius:var(--r);font-size:15px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-orange);transition:transform .15s}
.add-vehicle-btn:active{transform:scale(.98)}

/* Redeem code */
.redeem-header{text-align:center;padding:32px 20px 24px}
.redeem-header h2{font-size:20px;font-weight:800;color:var(--c-text);margin-bottom:6px}
.redeem-header p{font-size:13px;color:var(--c-text-3)}
.redeem-input-wrap{display:flex;gap:10px;margin-bottom:20px}
.redeem-input-wrap .form-input{flex:1;font-size:16px;letter-spacing:2px;text-align:center;font-weight:700;text-transform:uppercase}
.redeem-input-wrap .btn{flex-shrink:0;padding:12px 24px}
.redeem-history{margin-top:8px}

/* Float recharge button */
.float-recharge{position:fixed;right:16px;bottom:calc(var(--nav-h) + 20px);width:56px;height:56px;border-radius:50%;background:var(--c-primary-gradient);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:var(--shadow-orange);z-index:50;font-size:9px;font-weight:600;gap:2px;text-decoration:none}
.float-recharge .icon{width:22px;height:22px}

/* Section header */
.section-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:0 2px}
.section-title{font-size:16px;font-weight:700;color:var(--c-text);display:flex;align-items:center;gap:6px}
.section-more{font-size:12px;color:var(--c-text-3);display:flex;align-items:center;gap:2px}

/* Wash tips */
.wash-tips{background:rgba(255,255,255,.06);border-radius:var(--r);padding:14px 16px;margin-top:16px;text-align:left}
.wash-tips-title{font-size:12px;font-weight:700;margin-bottom:8px;opacity:.9}
.wash-tips li{font-size:12px;opacity:.75;padding:3px 0;list-style:none}
.wash-tips li::before{content:"·";margin-right:6px;opacity:.5}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(min-width:480px){body{box-shadow:0 0 60px rgba(0,0,0,.06)}}

/* ============================================================
   STYLE A ENFORCEMENT — 全局统一覆盖
   确保所有页面遵循 Style A 设计规范
   ============================================================ */

/* 所有仪表盘/页头统一橙色渐变（覆盖蓝色/紫色/绿色） */
.dash-hd,.dash-hd.store,.dash-hd.admin,.page-hd,.wallet-hd,.income-hd{background:var(--c-primary-gradient)!important}

/* 统一圆角 14px */
.card,.store-card,.bay-card,.mode-card,.rch-opt,.gift-card,.order-card,.coupon-card,.complaint-card,
.vehicle-card,.income-item,.post-card,.partner-card{border-radius:var(--r)!important}

/* 所有主要按钮统一橙色渐变 */
.btn-primary,.btn-main,.btn-submit,.btn-action{background:var(--c-primary-gradient)!important;color:#fff!important;box-shadow:0 4px 16px rgba(255,106,0,.25)!important}

/* 数据统计卡片统一橙色 */
.stat-card,.data-card,.summary-card{border-left-color:var(--c-primary)!important}

/* 图表柱状条统一橙色 */
.chart-bar .bar-fill,.progress-fill{background:var(--c-primary)!important}

/* 标签/徽章 */
.badge-primary,.tag-primary{background:var(--c-primary)!important;color:#fff!important}

/* 管理端页头 */
.admin-header,.store-header{background:var(--c-primary-gradient)!important}

/* 收入页头部覆盖（原绿色/红色渐变） */
[style*="linear-gradient"][style*="#FF7043"],
[style*="linear-gradient"][style*="#E64A19"],
[style*="linear-gradient"][style*="#43A047"],
[style*="linear-gradient"][style*="#2E7D32"],
[style*="linear-gradient"][style*="#7B1FA2"],
[style*="linear-gradient"][style*="#4A148C"],
[style*="linear-gradient"][style*="#1565C0"],
[style*="linear-gradient"][style*="#0D47A1"]{background:var(--c-primary-gradient)!important}

/* 入口页背景覆盖 */
.index-page,.login-page{background:#FAFAFA!important}
.index-page .login-box{border-radius:var(--r)!important}
