/* 跃界健身 · 深色运动风 */
:root{
  --brand:#C6F432;--brand-d:#9BD41E;--coral:#FF6B4A;--blue:#7FA7FF;--violet:#B79CFF;--danger:#FF5A4E;
  --ink:#F2F4F7;--ink2:#C9CED6;--muted:#8B93A0;--line:rgba(255,255,255,.08);
  --page-bg:#0E1014;--card:#171A20;--card2:#1E222A;--nav-bg:#0E1014;--nav-ink:#F2F4F7;
  --backdrop:#0B0D10;--blob1:rgba(198,244,50,.28);--blob2:rgba(127,167,255,.22);
}
/* ---------- 桌面舞台 ---------- */
.stage{background:radial-gradient(900px 500px at 15% 0%,#161B12,transparent),linear-gradient(160deg,#0D0F13,#12151B)}
.stage::before{opacity:.35}.stage::after{opacity:.3}
.intro h1{font-size:34px;font-weight:800;letter-spacing:1px}
.intro h1 br+*{color:var(--brand)}
.intro .logo .mark{background:var(--brand);box-shadow:0 10px 26px -10px var(--brand)}
.intro .eyebrow{color:#0E1014;background:var(--brand);font-weight:600}
.intro p{color:#9AA2AE}
.intro li{color:#C9CED6}
.intro .jumps a{background:rgba(255,255,255,.04);color:#C9CED6;border-color:rgba(255,255,255,.12)}
.intro .jumps a:hover,.intro .jumps a.on{background:var(--brand);border-color:var(--brand);color:#0E1014}
.device-inner{background:#050608;box-shadow:0 0 0 2px #2a2e36 inset,0 0 0 1px #000,0 40px 90px -20px rgba(198,244,50,.12),0 20px 50px -20px rgba(0,0,0,.8)}
.demo-mark{background:rgba(20,23,28,.8);color:#8B93A0;border-color:rgba(255,255,255,.1)}
.homebar{background:#fff!important}
.screen .statusbar{color:#fff}

/* ---------- 通用 ---------- */
.num{letter-spacing:.2px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;height:38px;padding:0 18px;border-radius:12px;font-size:14.5px;font-weight:700;white-space:nowrap;transition:transform .12s,opacity .2s}
.btn:active{transform:scale(.96)}
.btn[disabled]{opacity:.35;pointer-events:none}
.btn.lime{background:var(--brand);color:#0E1014;box-shadow:0 8px 18px -10px rgba(198,244,50,.8)}
.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.18);color:var(--ink);font-weight:600}
.btn.ok{background:rgba(198,244,50,.12);color:var(--brand);font-weight:600}
.btn.sm{height:30px;padding:0 13px;font-size:13px;border-radius:10px}
.btn.lg{height:46px;padding:0 24px;font-size:16px;border-radius:14px}
.btn.full{width:100%}
.mu{color:#5A616C}
.rt{display:inline-flex;align-items:center;gap:2px;color:#FFC53D;font-size:12.5px;font-weight:700;font-family:"DIN Alternate",Arial,sans-serif}
.rt .ic{fill:#FFC53D;stroke:#FFC53D}
.cav{display:inline-block;width:18px;height:18px;border-radius:50%;overflow:hidden;vertical-align:-4px;margin-right:4px;flex:none}
.cav svg{width:100%;height:100%;display:block}
.cav.lg{width:44px;height:44px;margin:0}
.cav.xl{width:66px;height:66px;margin:0;box-shadow:0 0 0 3px #0E1014,0 0 0 5px var(--brand)}
.cav.me{box-shadow:0 0 0 2px var(--brand)}
.lvd{display:inline-flex;gap:2px}
.lvd i{width:5px;height:10px;border-radius:2px;background:#2E333C;transform:skewX(-14deg)}
.lvd i.on{background:var(--coral)}
.bottom-space{height:96px}
.list-end{text-align:center;font-size:11.5px;color:#5A616C;padding:18px 20px 28px}
.empty{color:var(--muted)}
.empty p{margin:0 0 4px}

.navbar.dk-nav{background:var(--page-bg);color:#fff}
.navbar.dark-cap .capsule{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff}
.navbar .nb-back{color:#fff}
.navbar.cd-nav,.navbar.co-nav{position:absolute;left:0;right:0;top:0;background:transparent;color:#fff}
.navbar.cd-nav .nb-back,.navbar.co-nav .nb-back{background:rgba(0,0,0,.28);backdrop-filter:blur(8px)}
.navbar.gh{background:var(--page-bg);justify-content:flex-start}
.gh-brand{display:flex;align-items:center;gap:8px;padding-left:8px}
.gh-brand b{font-size:17px;letter-spacing:1px;font-style:italic;font-weight:800;color:#fff}

/* Tab 栏 */
.tabbar{background:rgba(14,16,20,.94);border-top:.5px solid rgba(255,255,255,.07)}
.tabbar a{color:#6B7380}
.tabbar a.on{color:var(--brand)}
.tabbar .badge{border-color:#0E1014}
.tabbar a[data-tab="checkin"] .ic{width:26px;height:26px}

/* 浮层 */
.sheet.dk{background:#171A20;color:var(--ink)}
.sheet.dk .sh-close{color:#6B7380}
.sh-title{font-size:17px;font-weight:700;padding:20px 20px 12px}
.sh-foot{padding:14px 18px 6px}
.dialog{background:#1E222A;color:var(--ink)}
.dialog p{color:#9AA2AE}
.dialog .dg-btns{border-top-color:rgba(255,255,255,.08)}
.dialog .dg-btns button+button{border-left-color:rgba(255,255,255,.08)}
.dialog .dg-btns .ok{color:var(--brand)}
.dialog .dg-btns .ok.danger{color:var(--danger)}
.dialog .dg-btns .cancel{color:#9AA2AE}
.ptr{color:#6B7380}
.stl{padding:0 16px 10px;display:grid;gap:10px}
.st-it{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;background:#1E222A;border:1.5px solid transparent;cursor:pointer}
.st-it.on{border-color:var(--brand);background:rgba(198,244,50,.06)}
.st-it div{flex:1;display:grid;gap:3px}
.st-it b{font-size:15px}
.st-it small{font-size:12px;color:var(--muted)}
.st-it span{font-size:12.5px;color:var(--brand);font-weight:600}
.bk-sum{display:flex;gap:12px;margin:0 18px;padding:12px;border-radius:14px;background:#1E222A}
.bs-art{width:78px;height:60px;border-radius:10px;overflow:hidden;flex:none}
.bs-art svg{width:100%;height:100%;display:block}
.bk-sum div:last-child{display:grid;gap:3px;align-content:center}
.bk-sum b{font-size:15.5px}
.bk-sum small{font-size:12.5px;color:var(--muted)}
.bk-rows{margin:12px 18px 0;display:grid;gap:10px}
.bk-rows div{display:flex;gap:14px;font-size:13px;line-height:1.5}
.bk-rows span{color:var(--muted);width:56px;flex:none}
.bk-rows b{font-weight:500;color:var(--ink2)}

/* ---------- 首页 ---------- */
.hm-top{display:flex;align-items:flex-end;justify-content:space-between;padding:8px 18px 14px}
.hm-top small{font-size:13px;color:var(--muted)}
.hm-top h2{margin:2px 0 0;font-size:24px;font-weight:800;letter-spacing:.5px}
.store-sel{display:inline-flex;align-items:center;gap:4px;height:30px;padding:0 10px;border-radius:99px;background:#1E222A;font-size:12.5px;color:var(--ink2)}
.store-sel .ic:first-child{color:var(--brand)}
.wk-card{margin:0 16px;padding:16px;border-radius:20px;display:flex;align-items:center;gap:16px;cursor:pointer;
  background:radial-gradient(140px 120px at 12% 30%,rgba(198,244,50,.16),transparent),linear-gradient(135deg,#1C2129,#15181E);border:1px solid rgba(255,255,255,.06)}
.wk-ring{position:relative;width:104px;height:104px;flex:none}
.wk-ring svg{width:100%;height:100%}
.wk-ring>div{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.wk-ring b{font-size:30px;line-height:1;font-weight:700}
.wk-ring b small{font-size:15px;color:var(--muted)}
.wk-ring span{font-size:11px;color:var(--muted);margin-top:4px}
.wk-stats{flex:1;display:grid;gap:10px}
.wk-stats div{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px dashed rgba(255,255,255,.07);padding-bottom:8px}
.wk-stats div:last-child{border:0;padding:0}
.wk-stats b{font-size:20px;font-weight:700}
.wk-stats small{font-size:12px;color:var(--muted)}
.next{margin:12px 16px 0;padding:14px 14px 14px 16px;border-radius:18px;display:flex;align-items:center;gap:10px;cursor:pointer;background:var(--brand);color:#0E1014;position:relative;overflow:hidden}
.next::after{content:"";position:absolute;right:-30px;top:-40px;width:140px;height:140px;border-radius:50%;border:18px solid rgba(14,16,20,.07)}
.nx-l{flex:1;display:grid;gap:3px;min-width:0}
.nx-tag{justify-self:start;font-size:11.5px;font-weight:700;background:#0E1014;color:var(--brand);border-radius:6px;padding:2px 7px}
.nx-l b{font-size:17px;font-weight:800}
.nx-l small{font-size:12px;opacity:.72;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nx-r{display:grid;justify-items:end;gap:8px;position:relative;z-index:1}
.nx-r em{font-style:normal;font-size:12px;font-weight:700}
.nx-r .btn.lime{background:#0E1014;color:var(--brand);box-shadow:none}
.qk{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:18px 12px 6px}
.qk a{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12.5px;color:var(--ink2);cursor:pointer}
.qk span{width:50px;height:50px;border-radius:16px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 13%,#171A20);border:1px solid color-mix(in srgb,var(--c) 22%,transparent)}
.cardstrip{margin:12px 16px 0;padding:14px 12px 14px 16px;border-radius:16px;background:var(--card);display:flex;align-items:center;gap:12px;cursor:pointer}
.cardstrip>div{flex:1;display:grid;gap:3px}
.cardstrip>i{width:1px;height:28px;background:rgba(255,255,255,.08)}
.cardstrip small{font-size:11.5px;color:var(--muted)}
.cardstrip b{font-size:21px;font-weight:700}
.cardstrip b em{font-size:11.5px;color:var(--muted);font-style:normal;font-weight:400;margin-left:2px}
.cardstrip>.ic{color:#5A616C}
.sec{padding-top:22px}
.sec-h{display:flex;align-items:center;justify-content:space-between;padding:0 18px 12px}
.sec-h h3{margin:0;font-size:18px;font-weight:800}
.sec-h a{font-size:12.5px;color:var(--muted);cursor:pointer;display:flex;align-items:center}
.hscroll{display:flex;gap:12px;overflow-x:auto;padding:0 18px 4px;scrollbar-width:none}
.hscroll::-webkit-scrollbar{display:none}
.rc{flex:none;width:156px;cursor:pointer}
.rc-art{position:relative;height:100px;border-radius:14px;overflow:hidden}
.rc-art svg{width:100%;height:100%;display:block}
.rc-t{position:absolute;left:8px;top:8px;font-size:13px;font-weight:700;background:rgba(14,16,20,.72);backdrop-filter:blur(6px);padding:3px 8px;border-radius:8px;color:var(--brand)}
.rc b{display:block;font-size:14.5px;margin-top:9px}
.rc small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.rc-cap{height:4px;border-radius:2px;background:#232830;margin-top:8px;overflow:hidden}
.rc-cap i{display:block;height:100%;background:var(--brand);border-radius:2px}
.rc em{display:block;font-style:normal;font-size:11.5px;color:var(--brand);margin-top:5px}
.rc em.full{color:var(--coral)}
.none-t{padding:30px 0;color:var(--muted);font-size:13px}
.coaches{gap:10px}
.ch{flex:none;width:104px;padding:14px 8px 12px;border-radius:16px;background:var(--card);text-align:center;cursor:pointer}
.ch-av{width:60px;height:60px;border-radius:50%;overflow:hidden;margin:0 auto 8px}
.ch-av svg{width:100%;height:100%;display:block}
.ch b{display:block;font-size:14px}
.ch small{display:block;font-size:11px;color:var(--muted);margin:3px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ch span{display:inline-flex;align-items:center;gap:2px;font-size:12px;color:#FFC53D;font-weight:700}
.ch span .ic{fill:#FFC53D;stroke:#FFC53D}
.ft{display:flex;align-items:center;justify-content:center;gap:6px;padding:28px 0 22px;font-size:11.5px;color:#4A515C}

/* ---------- 约课 ---------- */
.seg-top{flex:none;display:flex;gap:26px;padding:4px 20px 0;background:var(--page-bg)}
.seg-top a{position:relative;font-size:17px;font-weight:700;color:#6B7380;text-decoration:none;padding:4px 0 10px}
.seg-top a.on{color:#fff;font-size:20px}
.seg-top a.on::after{content:"";position:absolute;left:0;right:0;bottom:4px;height:4px;border-radius:2px;background:var(--brand);transform:skewX(-20deg)}
.days{flex:none;display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:8px 14px 6px;background:var(--page-bg)}
.days button{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 8px;border-radius:14px;color:var(--muted)}
.days button small{font-size:11px}
.days button b{font-size:18px;color:var(--ink);font-weight:700}
.days button.on{background:var(--brand);color:#0E1014}
.days button.on b{color:#0E1014}
.days button i{position:absolute;bottom:3px;width:4px;height:4px;border-radius:50%;background:var(--coral)}
.days.sm{padding:4px 0 12px;gap:4px}
.days.sm button{background:#1E222A}
.days.sm button.on{background:var(--brand)}
.tagbar{flex:none;display:flex;gap:8px;padding:6px 14px 10px;overflow-x:auto;background:var(--page-bg);border-bottom:1px solid rgba(255,255,255,.05);scrollbar-width:none}
.tagbar button{flex:none;height:28px;padding:0 13px;border-radius:99px;font-size:12.5px;background:#1A1D23;color:var(--ink2)}
.tagbar button.on{background:rgba(198,244,50,.14);color:var(--brand);font-weight:600;box-shadow:inset 0 0 0 1px rgba(198,244,50,.4)}
.cl-body{padding:0 14px}
.cl-g{font-size:12px;color:#6B7380;letter-spacing:2px;padding:16px 4px 8px}
.cr{display:flex;align-items:center;gap:10px;padding:10px;border-radius:16px;background:var(--card);margin-bottom:8px;cursor:pointer}
.cr.past{opacity:.45}
.cr-t{width:44px;flex:none;display:grid;gap:1px;text-align:center}
.cr-t b{font-size:16px;font-weight:700}
.cr-t small{font-size:11px;color:var(--muted)}
.cr-art{width:56px;height:56px;border-radius:12px;overflow:hidden;flex:none}
.cr-art svg{width:100%;height:100%;display:block}
.cr-m{flex:1;min-width:0;display:grid;gap:4px}
.cr-m b{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-m small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-meta{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted)}
.capbar{flex:1;height:4px;border-radius:2px;background:#262B33;overflow:hidden;max-width:70px}
.capbar i{display:block;height:100%;background:var(--brand)}
.capbar i.full{background:var(--coral)}
.cr-st{font-size:12px;color:#6B7380;padding-right:4px}
.cr.stop .cr-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cr.stop{opacity:.55}.cr.stop .cr-art{filter:grayscale(1)}.cr.stop .cr-m b{text-decoration:line-through;text-decoration-color:rgba(255,255,255,.35)}
.cr-x{flex:none;font-size:11.5px;font-weight:600;color:#FF8A7A;border:1px solid rgba(255,138,122,.45);background:rgba(255,107,90,.1);border-radius:8px;padding:3px 8px;margin-right:2px}
.cr .btn{flex:none}

/* 课程详情 */
.cd-body{background:var(--page-bg)}
.cd-hero{position:relative;height:300px}
.cd-hero>svg{position:absolute;inset:0;width:100%;height:100%}
.cd-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,16,20,.35) 0,transparent 30%,rgba(14,16,20,.2) 55%,#0E1014 100%)}
.cd-ht{position:absolute;left:18px;right:18px;bottom:14px}
.cd-ht .tg{display:inline-block;font-size:11.5px;font-weight:700;background:var(--brand);color:#0E1014;padding:2px 8px;border-radius:6px;transform:skewX(-8deg)}
.cd-ht h1{margin:8px 0 4px;font-size:27px;font-weight:800;letter-spacing:.5px}
.cd-ht p{margin:0;font-size:13.5px;color:var(--ink2)}
.cd-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:6px 16px 4px}
.cd-facts div{display:grid;justify-items:center;gap:3px;padding:12px 0;border-radius:14px;background:var(--card)}
.cd-facts .ic{color:var(--brand)}
.cd-facts b{font-size:15px}
.cd-facts small{font-size:11px;color:var(--muted)}
.dcard{margin:12px 16px 0;padding:16px;border-radius:18px;background:var(--card)}
.dc-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.dc-h h3{margin:0;font-size:16px;font-weight:700}
.dc-h small{font-size:12px;color:var(--muted)}
.coach-row{display:flex;align-items:center;gap:12px;cursor:pointer}
.coach-row>div:nth-child(2){flex:1;display:grid;gap:3px}
.coach-row b{font-size:15px}
.coach-row small{font-size:12px;color:var(--muted)}
.bikes{padding:4px 0 0}
.stagebar{margin:0 auto 14px;width:70%;text-align:center;font-size:11.5px;color:#0E1014;font-weight:700;padding:6px 0;border-radius:0 0 30px 30px;background:linear-gradient(90deg,#9BD41E,#C6F432,#9BD41E)}
.bgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.bgrid .bk{position:relative;aspect-ratio:1/1.05;border-radius:12px;background:#232830;color:#8B93A0;display:grid;place-items:center;align-content:center;gap:1px;transition:.15s}
.bgrid .bk svg{width:22px;height:22px}
.bgrid .bk span{font-size:11px;font-weight:700}
.bgrid .bk.t{background:#1A1D23;color:#3A404A}
.bgrid .bk.sel{background:var(--brand);color:#0E1014;transform:scale(1.06);box-shadow:0 6px 16px -6px rgba(198,244,50,.7)}
.bgrid .bk.me{background:var(--coral);color:#fff}
.bgrid .bk:disabled{cursor:default}
.blg{display:flex;justify-content:center;gap:16px;margin-top:14px;font-size:11.5px;color:var(--muted)}
.blg span{display:flex;align-items:center;gap:5px}
.blg i{width:12px;height:12px;border-radius:4px}
.blg i.f{background:#232830;box-shadow:inset 0 0 0 1px #3A404A}.blg i.t{background:#1A1D23;box-shadow:inset 0 0 0 1px #262B33}.blg i.s{background:var(--brand)}.blg i.m{background:var(--coral)}
.cd-desc{margin:0;font-size:13.5px;line-height:1.75;color:var(--ink2)}
.cd-kv{display:grid;gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}
.cd-kv div{display:flex;gap:14px;font-size:13px}
.cd-kv span{color:var(--muted);width:60px;flex:none}
.cd-kv b{font-weight:500}
.rules{margin:0;padding:0 0 0 18px;display:grid;gap:8px;font-size:13px;line-height:1.6;color:var(--ink2)}
.rules li::marker{color:var(--brand)}
.bbar{flex:none;position:relative;z-index:10;display:flex;align-items:center;gap:10px;padding:12px 16px calc(12px + var(--safe-b));background:rgba(23,26,32,.96);backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.06)}
.bb-l{flex:1;display:grid;gap:3px;min-width:0}
.bb-l b{font-size:15.5px}
.bb-l small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 私教 */
.pt-body{padding:6px 16px 0}
.pt-pack{padding:16px;border-radius:18px;margin-bottom:12px;cursor:pointer;background:linear-gradient(120deg,#FF6B4A,#FF8F4A);color:#1A0C08;position:relative;overflow:hidden}
.pt-pack::after{content:"";position:absolute;right:-20px;top:-50px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.14)}
.pt-pack>div:first-child{display:grid;gap:3px;position:relative;z-index:1}
.pt-pack small{font-size:12px;font-weight:600;opacity:.75}
.pt-pack b{font-size:30px;font-weight:800}
.pt-pack b em{font-size:14px;font-style:normal;font-weight:600;opacity:.7}
.pt-pack span{font-size:12px;opacity:.75}
.pp-bar{height:6px;border-radius:3px;background:rgba(26,12,8,.18);margin-top:12px;overflow:hidden}
.pp-bar i{display:block;height:100%;border-radius:3px;background:#1A0C08}
.cc{display:flex;gap:12px;align-items:center;padding:12px;border-radius:16px;background:var(--card);margin-bottom:8px;cursor:pointer}
.cc-av{width:58px;height:58px;border-radius:16px;overflow:hidden;flex:none}
.cc-av svg{width:100%;height:100%;display:block}
.cc-m{flex:1;min-width:0;display:grid;gap:4px}
.cc-n{display:flex;align-items:center;gap:8px}
.cc-n b{font-size:15.5px}
.cc-m small{font-size:12px;color:var(--muted)}
.cc-tags{display:flex;flex-wrap:wrap;gap:5px}
.cc-tags i{font-style:normal;font-size:11px;padding:2px 7px;border-radius:6px;background:#232830;color:var(--ink2)}
.cc-tags.lg{margin-bottom:12px}
.cc-tags.lg i{font-size:12px;padding:4px 10px;background:rgba(198,244,50,.1);color:var(--brand)}
.cc-p{text-align:right}
.cc-p b{font-size:17px;color:var(--brand)}
.cc-p small{display:block;font-size:11px;color:var(--muted)}
.co-body{background:var(--page-bg)}
.co-hero{position:relative;padding:calc(var(--sb) + 60px) 20px 22px;text-align:center;background:radial-gradient(260px 200px at 50% 30%,color-mix(in srgb,var(--c) 45%,transparent),transparent),linear-gradient(180deg,color-mix(in srgb,var(--c) 22%,#0E1014),#0E1014)}
.co-av{width:96px;height:96px;border-radius:50%;overflow:hidden;margin:0 auto 12px;box-shadow:0 0 0 4px #0E1014,0 0 0 6px var(--c)}
.co-av svg{width:100%;height:100%;display:block}
.co-hero h1{margin:0;font-size:24px;font-weight:800}
.co-hero p{margin:4px 0 16px;font-size:13px;color:var(--ink2)}
.co-st{display:grid;grid-template-columns:repeat(3,1fr);padding:12px 0;border-radius:16px;background:rgba(23,26,32,.8);backdrop-filter:blur(8px)}
.co-st div{display:grid;gap:2px}
.co-st div+div{border-left:1px solid rgba(255,255,255,.07)}
.co-st b{font-size:19px}
.co-st small{font-size:11.5px;color:var(--muted)}
.certs{display:grid;gap:6px;margin-top:12px}
.certs span{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink2)}
.certs .ic{color:var(--brand)}
.slots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sl{display:grid;gap:1px;padding:8px 0;border-radius:12px;background:#232830;text-align:center}
.sl b{font-size:14.5px}
.sl small{font-size:10.5px;color:var(--brand)}
.sl.bz{background:#1A1D23;color:#4A515C}
.sl.bz small{color:#4A515C}
.sl.me{background:rgba(255,107,74,.16);color:var(--coral)}
.sl.me small{color:var(--coral)}
.sl.on{background:var(--brand);color:#0E1014}
.sl.on small{color:#0E1014}
.rv{padding:12px 0;border-top:1px solid rgba(255,255,255,.06)}
.rv:first-of-type{border:0;padding-top:0}
.rv-h{display:flex;align-items:center;gap:8px;font-size:13px}
.rv-av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#2A2F37;font-size:12px;color:var(--brand);font-weight:700}
.stars{color:#FFC53D;font-size:11px;letter-spacing:1px}
.rv-h small{margin-left:auto;font-size:11.5px;color:var(--muted)}
.rv p{margin:8px 0 0 34px;font-size:13px;line-height:1.65;color:var(--ink2)}

/* ---------- 签到 ---------- */
.ck-body{padding:4px 0 0}
.ck-card{margin:6px 16px 0;padding:18px;border-radius:24px;background:linear-gradient(160deg,#1C2129,#14171C);border:1px solid rgba(255,255,255,.06);text-align:center}
.ck-h{display:flex;align-items:center;gap:10px;text-align:left}
.ck-h>div:nth-child(2){flex:1;display:grid;gap:2px}
.ck-h b{font-size:16px}
.ck-h small{font-size:12px;color:var(--muted)}
.ck-store{font-size:11.5px;color:var(--brand);background:rgba(198,244,50,.1);padding:4px 8px;border-radius:8px}
.ck-qr{position:relative;width:240px;height:240px;margin:22px auto 0}
.qr-box{position:absolute;inset:20px;border-radius:18px;background:#fff;padding:14px}
.qr-box svg{width:100%;height:100%;display:block}
.qr-box.flip{animation:qrf .5s ease}
@keyframes qrf{0%{transform:rotateY(90deg);opacity:.2}100%{transform:none;opacity:1}}
.qr-ring{position:absolute;inset:0;width:100%;height:100%}
#qrProg{transition:stroke-dashoffset 1s linear}
.ck-tip{font-size:12.5px;color:var(--muted);margin:14px 0 14px}
.ck-tip span{color:var(--brand);font-weight:700}
.ck-btns{display:flex;gap:10px;justify-content:center}
.ck-ok{padding:26px 0 6px}
.ok-ring{width:96px;height:96px;border-radius:50%;margin:0 auto 16px;display:grid;place-items:center;background:var(--brand);color:#0E1014;box-shadow:0 0 0 10px rgba(198,244,50,.12),0 0 0 22px rgba(198,244,50,.05);animation:okp .6s cubic-bezier(.3,1.6,.5,1)}
@keyframes okp{from{transform:scale(.3)}to{transform:none}}
.ck-ok h3{margin:0 0 6px;font-size:20px}
.ck-ok p{margin:0;font-size:13px;color:var(--muted)}
.ck-ok p b{color:var(--brand)}
.locker{display:inline-grid;gap:2px;margin-top:18px;padding:12px 26px;border-radius:14px;background:#232830}
.locker span{font-size:11.5px;color:var(--muted)}
.locker b{font-size:28px;color:var(--brand);letter-spacing:2px}
.locker small{font-size:11px;color:var(--muted)}
.tdc{display:flex;align-items:center;gap:12px;padding:10px 0;cursor:pointer}
.tdc+.tdc{border-top:1px solid rgba(255,255,255,.06)}
.tdc>b{font-size:18px;color:var(--brand)}
.tdc div{flex:1;display:grid;gap:2px}
.tdc span{font-size:14.5px;font-weight:600}
.tdc small{font-size:12px;color:var(--muted)}
.tdc em{font-style:normal;font-size:12px;color:var(--coral)}
.ent{position:relative;display:flex;align-items:center;gap:12px;padding:8px 0 8px 18px}
.ent i{position:absolute;left:3px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#2E333C;box-shadow:0 0 0 3px #171A20}
.ent:first-of-type i{background:var(--brand)}
.ent::before{content:"";position:absolute;left:6.5px;top:0;bottom:0;width:1px;background:#262B33}
.ent div{flex:1;display:grid;gap:2px}
.ent b{font-size:13.5px;font-weight:600}
.ent small{font-size:12px;color:var(--muted)}
.ent span{font-size:13px;color:var(--ink2)}

/* ---------- 训练数据 ---------- */
.st-body{padding-top:2px}
.st-hero{margin:4px 16px 0;padding:18px;border-radius:20px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(120deg,#C6F432,#9BD41E);color:#0E1014}
.st-hero div{display:grid;gap:3px}
.st-hero small{font-size:12px;font-weight:600;opacity:.7}
.st-hero b{font-size:36px;font-weight:800;line-height:1.05}
.st-hero b em{font-size:14px;font-style:normal;margin-left:3px}
.st-hero span{font-size:12px;font-weight:600;opacity:.75}
.st-hero .tro{color:#0E1014;opacity:.8;stroke-width:1.6}
.heat{display:flex;gap:6px}
.hm-w{display:grid;grid-template-rows:repeat(7,1fr);gap:4px;font-size:10px;color:#6B7380}
.hm-w span{line-height:17px;height:17px}
.hm-grid{flex:1;display:grid;grid-template-columns:repeat(13,1fr);gap:4px}
.hm-col{display:grid;grid-template-rows:repeat(7,1fr);gap:4px}
.hm-col i,.hm-lg i{display:block;height:17px;border-radius:4px;background:#20242B}
.hm-col i.l1,.hm-lg i.l1{background:#3E5214}
.hm-col i.l2,.hm-lg i.l2{background:#79A01C}
.hm-col i.l3,.hm-lg i.l3{background:#C6F432}
.hm-col i.l-1{background:transparent;box-shadow:inset 0 0 0 1px #20242B}
.hm-lg{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:10px;font-size:11px;color:#6B7380}
.hm-lg i{width:12px;height:12px}
.mini-seg{display:flex;background:#232830;border-radius:9px;padding:2px}
.mini-seg button{font-size:12px;padding:4px 10px;border-radius:7px;color:var(--muted)}
.mini-seg button.on{background:#3A404A;color:#fff;font-weight:600}
.chart{height:220px;margin:0 -4px}
.chart.sm{height:190px;margin-top:6px}
.body3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.body3 div{display:grid;gap:3px;padding:10px 12px;border-radius:12px;background:#1E222A}
.body3 small{font-size:11.5px;color:var(--muted)}
.body3 b{font-size:20px}
.body3 b em{font-size:11px;font-style:normal;color:var(--muted);margin-left:2px}
.body3 span{display:flex;align-items:center;gap:2px;font-size:11.5px;font-weight:600}
.body3 span.dn{color:var(--brand)}
.body3 span.up{color:var(--blue)}
.prs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.prs>div{display:flex;align-items:center;gap:8px;padding:12px 10px;border-radius:14px;background:#1E222A;position:relative}
.prs>div>span{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:rgba(255,197,61,.14);color:#FFC53D;flex:none}
.prs>div>div{display:grid;gap:1px;flex:1;min-width:0}
.prs small{font-size:11px;color:var(--muted)}
.prs b{font-size:18px}
.prs b em{font-size:11px;font-style:normal;margin-left:1px;color:var(--muted)}
.prs i{position:absolute;right:10px;top:9px;font-style:normal;font-size:11px;color:var(--brand);font-weight:700;text-align:right}
.prs i small{display:block;font-weight:400;font-size:10px}
.lg-r{display:flex;align-items:center;gap:12px;padding:10px 0}
.lg-r+.lg-r{border-top:1px solid rgba(255,255,255,.06)}
.lg-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#171A20);flex:none}
.lg-r>div:nth-child(2){flex:1;display:grid;gap:2px}
.lg-r b{font-size:14px}
.lg-r>div small{font-size:11.5px;color:var(--muted)}
.lg-r>span{text-align:right;font-size:17px;font-weight:700}
.lg-r>span small{display:block;font-size:11px;color:var(--muted);font-weight:400}

/* ---------- 我的 ---------- */
.mi-body{padding-bottom:10px}
.mi-top{display:flex;align-items:center;gap:14px;padding:4px 20px 18px}
.mi-top>div:nth-child(2){flex:1}
.mi-top h2{margin:0 0 4px;font-size:22px;font-weight:800}
.mi-top small{font-size:12px;color:var(--muted)}
.lvtag{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#0E1014;background:linear-gradient(90deg,#E6FF7A,#C6F432);padding:4px 10px;border-radius:99px}
.mi-stats{display:grid;grid-template-columns:repeat(4,1fr);margin:0 16px;padding:14px 0;border-radius:18px;background:var(--card)}
.mi-stats a{display:grid;justify-items:center;gap:3px;cursor:pointer}
.mi-stats b{font-size:22px;font-weight:700}
.mi-stats small{font-size:11.5px;color:var(--muted)}
.vip{margin:12px 16px 0;padding:16px;border-radius:18px;display:flex;align-items:center;cursor:pointer;background:linear-gradient(110deg,#20261A,#2B3A12);border:1px solid rgba(198,244,50,.2)}
.vip div{flex:1;display:grid;gap:3px}
.vip b{font-size:15px;color:var(--brand)}
.vip small{font-size:12px;color:var(--ink2)}
.vip span{display:flex;align-items:center;font-size:12.5px;color:var(--brand)}
.dcard.menu{padding:4px 16px}
.mi{display:flex;align-items:center;gap:12px;padding:14px 0;cursor:pointer;font-size:14.5px}
.mi+.mi{border-top:1px solid rgba(255,255,255,.06)}
.mi>.ic:first-child{color:var(--ink2)}
.mi span{flex:1}
.ver{text-align:center;font-size:11.5px;color:#4A515C;padding:22px 0}

/* 会员卡 */
.cd2-body{padding-top:6px}
.vcard{position:relative;margin:4px 16px 0;height:196px;padding:20px;border-radius:22px;overflow:hidden;color:#fff;background:linear-gradient(135deg,#23282F,#111317 60%,#1B2410);box-shadow:0 18px 40px -18px rgba(198,244,50,.35),inset 0 0 0 1px rgba(255,255,255,.08);display:flex;flex-direction:column}
.vcard.frozen{filter:grayscale(.85);opacity:.8}
.vc-bg{position:absolute;inset:0;width:100%;height:100%}
.vc-h{position:relative;display:flex;align-items:center;gap:8px}
.vc-h b{font-size:15px;letter-spacing:3px;font-style:italic}
.vc-h span{margin-left:auto;font-size:10.5px;letter-spacing:2px;color:#0E1014;background:var(--brand);padding:2px 8px;border-radius:4px;font-weight:700}
.vc-n{position:relative;margin-top:22px;font-size:18px;font-weight:700}
.vc-no{position:relative;margin-top:4px;font-size:15px;letter-spacing:3px;color:var(--ink2)}
.vc-f{position:relative;margin-top:auto;display:flex;justify-content:space-between}
.vc-f div{display:grid;gap:2px}
.vc-f div:last-child{text-align:right}
.vc-f small{font-size:10.5px;color:var(--muted)}
.vc-f b{font-size:14px}
.packs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 16px 0}
.pk{padding:14px;border-radius:16px;background:var(--card)}
.pk-h{display:grid;gap:2px}
.pk-h b{font-size:13.5px}
.pk-h small{font-size:10.5px;color:var(--muted)}
.pk-n{margin:10px 0 8px;display:flex;align-items:baseline;gap:4px}
.pk-n b{font-size:30px;font-weight:800;color:var(--brand)}
.pk-n span{font-size:12px;color:var(--muted)}
.pk-bar{height:5px;border-radius:3px;background:#262B33;overflow:hidden}
.pk-bar i{display:block;height:100%;background:var(--brand);border-radius:3px}
.pk-bar.o i{background:var(--coral)}
.pk:nth-child(2) .pk-n b{color:var(--coral)}
.buy{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.buy button{position:relative;display:grid;gap:3px;text-align:left;padding:12px;border-radius:14px;background:#1E222A;border:1px solid rgba(255,255,255,.05)}
.buy button:active{border-color:var(--brand)}
.buy em{position:absolute;right:8px;top:-7px;font-style:normal;font-size:10.5px;font-weight:700;color:#fff;background:var(--coral);padding:1px 6px;border-radius:6px}
.buy b{font-size:13.5px}
.buy span{font-size:19px;color:var(--brand);font-weight:700}
.buy small{font-size:11px;color:var(--muted)}
.hs{display:flex;align-items:center;padding:10px 0}
.hs+.hs{border-top:1px solid rgba(255,255,255,.06)}
.hs div{flex:1;display:grid;gap:2px}
.hs b{font-size:13.5px;font-weight:600}
.hs small{font-size:11.5px;color:var(--muted)}
.hs span{font-size:16px;font-weight:700;color:var(--ink2)}
.hs span.p{color:var(--brand)}
.dcard.frz{display:flex;align-items:center;gap:12px}
.dcard.frz div{flex:1;display:grid;gap:4px}
.dcard.frz b{font-size:14.5px}
.dcard.frz small{font-size:12px;color:var(--muted);line-height:1.5}

/* 我的预约 */
.tabs2{flex:none;display:flex;background:var(--page-bg);border-bottom:1px solid rgba(255,255,255,.06)}
.tabs2 button{flex:1;height:44px;font-size:14px;color:var(--muted);position:relative}
.tabs2 button.on{color:#fff;font-weight:700}
.tabs2 button.on::after{content:"";position:absolute;left:50%;bottom:0;width:22px;height:3px;margin-left:-11px;border-radius:2px;background:var(--brand)}
.bl-body{padding:12px 16px}
.bkc{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--card);margin-bottom:10px;cursor:pointer}
.bkc-t{width:52px;flex:none;display:grid;gap:2px;text-align:center;padding-right:12px;border-right:1px dashed rgba(255,255,255,.1)}
.bkc-t b{font-size:16px;color:var(--brand)}
.bkc.done .bkc-t b{color:var(--ink2)}
.bkc-t small{font-size:12px;color:var(--muted)}
.bkc-m{flex:1;min-width:0;display:grid;gap:3px}
.bkc-m b{font-size:15px}
.bkc-m small{font-size:12px;color:var(--muted)}
.bkc-m em.w{justify-self:start;font-style:normal;font-size:11px;color:var(--coral);background:rgba(255,107,74,.12);padding:1px 6px;border-radius:5px}
.tagd{font-size:12px;color:var(--muted)}

/* ================= 运营后台（Web 视图） ================= */
body.web-mode{background:#0B0D10;color:var(--ink)}
.gad{display:flex;min-height:100vh}
.gad-side{position:sticky;top:0;height:100vh;width:224px;flex:none;background:#101318;border-right:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;padding:20px 14px}
.gs-brand{display:flex;align-items:center;gap:10px;padding:0 8px 24px}
.gs-brand b{display:block;font-size:16px;font-style:italic;letter-spacing:1px}
.gs-brand small{font-size:11.5px;color:var(--muted)}
.gad-side nav{display:grid;gap:2px}
.gad-side nav a{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:10px;font-size:14px;color:var(--ink2);cursor:pointer}
.gad-side nav a:hover{background:rgba(255,255,255,.04)}
.gad-side nav a.on{background:rgba(198,244,50,.1);color:var(--brand);font-weight:600}
.gs-back{margin-top:auto;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:10px;border:1px dashed rgba(255,255,255,.12)}
.gs-back:hover{color:var(--brand);border-color:var(--brand)}
.gad-main{flex:1;min-width:0;padding:22px 28px 30px}
.gad-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.gad-h h1{margin:0;font-size:22px}
.gad-h p{margin:4px 0 0;font-size:12.5px;color:var(--muted)}
.gh-r{display:flex;align-items:center;gap:12px}
.gh-r select{height:34px;border-radius:9px;background:#171A20;border:1px solid rgba(255,255,255,.1);padding:0 10px;color:var(--ink)}
.gbell{position:relative;width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:#171A20;color:var(--ink2)}
.gbell i{position:absolute;right:8px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--coral)}
.gav{width:36px;height:36px;border-radius:50%;overflow:hidden}
.gav svg{width:100%;height:100%;display:block}
.gh-r b{display:block;font-size:13.5px}
.gh-r small{font-size:11.5px;color:var(--muted)}
.gk{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:14px}
.gk-i{padding:16px;border-radius:14px;background:#15181E;border:1px solid rgba(255,255,255,.05);display:grid;gap:6px}
.gk-i:first-child{background:linear-gradient(135deg,#2B3A12,#171D0E);border-color:rgba(198,244,50,.25)}
.gk-i small{font-size:12.5px;color:var(--muted)}
.gk-i b{font-size:26px;font-weight:700}
.gk-i b em{font-size:12.5px;font-style:normal;color:var(--muted);margin-left:3px;font-weight:400}
.gk-i span{display:flex;align-items:center;gap:3px;font-size:12px;color:var(--muted)}
.gk-i span.up{color:var(--brand)}.gk-i span.dn{color:var(--coral)}
.grow{display:grid;grid-template-columns:1.7fr 1fr;gap:14px}
.gcard{padding:18px 20px;border-radius:14px;background:#15181E;border:1px solid rgba(255,255,255,.05);margin-bottom:14px;min-width:0}
.gc-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.gc-h h3{margin:0;font-size:15.5px}
.gc-h small{font-size:12px;color:var(--muted)}
.gc-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.gch{height:280px}
.gl{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.gl i{width:10px;height:10px;border-radius:3px;margin-left:6px}
.gl i.l1,.tt-i.l1{background:#1E222A}
.gl i.l2{background:#3E5214}.gl i.l3{background:#C6F432}
.gbtn{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 14px;border-radius:9px;background:var(--brand);color:#0E1014;font-size:13px;font-weight:700}
.tt{border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden}
.tt-row{display:grid;grid-template-columns:64px repeat(7,1fr)}
.tt-row+.tt-row{border-top:1px solid rgba(255,255,255,.05)}
.tt-head{background:#101318}
.tt-head>div{padding:10px 8px;text-align:center}
.tt-head b{display:block;font-size:13px}
.tt-head small{font-size:11px;color:var(--muted)}
.tt-head .today b{color:var(--brand)}
.tt-l{display:grid;place-items:center;font-size:12.5px;color:var(--muted);border-right:1px solid rgba(255,255,255,.05)}
.tt-c{padding:5px;display:grid;gap:4px;align-content:start;min-height:52px}
.tt-c+.tt-c{border-left:1px solid rgba(255,255,255,.04)}
.tt-i{display:grid;gap:1px;text-align:left;padding:5px 7px;border-radius:7px;cursor:pointer;transition:.15s;border-left:3px solid #3A404A}
.tt-i:hover{filter:brightness(1.25)}
.tt-i b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tt-i small{font-size:10.5px;color:var(--muted)}
.tt-i.l2{background:#232B14;border-left-color:#79A01C}
.tt-i.l3{background:#34420F;border-left-color:#C6F432}
.tt-i.l3 small{color:#C9D98A}
.gseg{display:flex;background:#101318;border-radius:9px;padding:3px;border:1px solid rgba(255,255,255,.06)}
.gseg button{font-size:12.5px;padding:5px 11px;border-radius:7px;color:var(--muted);display:flex;align-items:center;gap:5px}
.gseg button i{font-style:normal;font-size:11px;background:#232830;padding:0 5px;border-radius:5px}
.gseg button.on{background:#232830;color:#fff}
.gseg button.on i{background:var(--brand);color:#0E1014}
.gsearch{display:flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:9px;background:#101318;border:1px solid rgba(255,255,255,.08);color:var(--muted)}
.gsearch input{border:0;outline:0;background:none;width:190px;color:var(--ink);font-size:13px}
.gt{width:100%;border-collapse:collapse;font-size:13px}
.gt th{text-align:left;font-weight:500;color:var(--muted);font-size:12.5px;padding:10px 12px;background:#101318;white-space:nowrap}
.gt th.sortable{cursor:pointer;user-select:none}
.gt th .arr{display:inline-flex;flex-direction:column;gap:2px;margin-left:5px;vertical-align:middle}
.gt th .arr i{width:0;height:0;border:4px solid transparent}
.gt th .arr i:first-child{border-bottom-color:#4A515C;border-top:0}
.gt th .arr i:last-child{border-top-color:#4A515C;border-bottom:0}
.gt th .arr.up i:first-child{border-bottom-color:var(--brand)}
.gt th .arr.down i:last-child{border-top-color:var(--brand)}
.gt td{padding:11px 12px;border-top:1px solid rgba(255,255,255,.05);vertical-align:middle}
.gt tr:hover td{background:rgba(255,255,255,.02)}
.gt td small{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.gt td.warn,.gt td.warn small{color:#FFC53D}
.gt td.mute{color:#5A616C}
.gm{display:flex;align-items:center;gap:10px}
.gm-av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700;color:#0E1014;flex:none}
.gm b{font-size:13.5px}
.gcd{display:inline-block;font-size:12px;padding:2px 9px;border-radius:6px;color:var(--c);background:color-mix(in srgb,var(--c) 13%,transparent)}
.glnk{color:var(--brand);font-size:13px}
.glnk:hover{text-decoration:underline}
.gt .done{font-size:12.5px;color:var(--muted)}
.gt .none{text-align:center;padding:40px;color:var(--muted)}
.gpager{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:14px;font-size:12.5px;color:var(--muted)}
.gpager span:first-child{margin-right:auto}
.gpager button{min-width:30px;height:30px;border-radius:8px;background:#101318;border:1px solid rgba(255,255,255,.08);display:grid;place-items:center;font-size:12.5px}
.gpager button.on{background:var(--brand);color:#0E1014;border-color:var(--brand);font-weight:700}
.gpager button:disabled{opacity:.35;cursor:default}
.gfoot{text-align:center;font-size:12px;color:#4A515C;padding:14px 0 0}
.gmask{position:fixed;inset:0;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:.25s;z-index:50}
.gmask.show{opacity:1;pointer-events:auto}
.gdrawer{position:fixed;right:0;top:0;bottom:0;width:420px;background:#15181E;border-left:1px solid rgba(255,255,255,.08);z-index:51;transform:translateX(100%);transition:transform .3s cubic-bezier(.2,.8,.2,1);overflow-y:auto;padding:22px}
.gdrawer.show{transform:none}
.gd-h{display:flex;align-items:flex-start;justify-content:space-between}
.gd-h small{font-size:12.5px;color:var(--muted)}
.gd-h h3{margin:4px 0 0;font-size:20px}
.gd-h button{color:var(--muted)}
.gd-art{height:150px;border-radius:14px;overflow:hidden;margin:16px 0}
.gd-art svg{width:100%;height:100%;display:block}
.gd-kv{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gd-kv div{padding:10px 12px;border-radius:10px;background:#101318;display:grid;gap:3px}
.gd-kv span{font-size:11.5px;color:var(--muted)}
.gd-kv b{font-size:14.5px}
.gd-l{margin-top:18px}
.gd-lh{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.gd-lh small{font-size:12px;color:var(--muted)}
.gd-m{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.05)}
.gd-m div{flex:1;display:grid;gap:2px}
.gd-m b{font-size:13.5px}
.gd-m small{font-size:11.5px;color:var(--muted)}
.gd-m em{font-style:normal;font-size:12px}
.gd-m em.ok{color:var(--brand)}.gd-m em.ab{color:var(--coral)}
.gtoast{position:fixed;left:50%;top:28px;transform:translate(-50%,-10px);background:#232830;color:#fff;border:1px solid rgba(198,244,50,.3);padding:10px 18px;border-radius:10px;font-size:13.5px;opacity:0;pointer-events:none;transition:.25s;z-index:99}
.gtoast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:1280px){.gk{grid-template-columns:repeat(3,1fr)}.grow{grid-template-columns:1fr}}
@media (max-width:900px){.gad-side{display:none}.gad-main{padding:16px}.tt{overflow-x:auto}.tt-row{min-width:760px}.gcard{overflow-x:auto}}

@media (max-width:600px){
  body:not(.web-mode) .demo-mark{background:rgba(20,23,28,.9);color:#9AA2AE}
}
/* 车位与日期细节 */
.bgrid .bk{background:#2A3038;color:#D5DAE1}
.bgrid .bk.t{background:#14171C;color:#353A43;box-shadow:inset 0 0 0 1px #1E222A}
.days.sm{background:transparent}
/* 运营后台 · 排课管理 / 会员详情 / 营收 */
.gad-side nav a em{margin-left:auto;font-style:normal;font-size:10.5px;color:#5A616C;border:1px solid rgba(255,255,255,.08);padding:0 5px;border-radius:5px}
.gad-mnav{display:none}
.gbtn{text-decoration:none;cursor:pointer;white-space:nowrap}.gbtn.ghost{background:#1E222A;color:var(--ink);border:1px solid rgba(255,255,255,.1);font-weight:600}.gbtn.ghost:hover{border-color:var(--brand)}
.gbtn.danger{background:rgba(255,90,78,.12);color:#FF7B70;border:1px solid rgba(255,90,78,.3)}.gbtn.danger.confirm{background:var(--danger);color:#fff}
.gbtn:disabled{opacity:.4;cursor:default}
.gk.g4{grid-template-columns:repeat(4,1fr)}
.gc-tools select{height:34px;border-radius:9px;background:#101318;border:1px solid rgba(255,255,255,.08);padding:0 8px;color:var(--ink);font-size:13px}
.grev-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:6px}.grev-sum div{padding:8px 12px;border-radius:10px;background:#101318;display:grid;gap:2px}.grev-sum small{font-size:11.5px;color:var(--muted)}.grev-sum b{font-size:16px}
.gcards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.gcards>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 8px;padding:12px;border-radius:10px;background:#101318}
.gcards i{width:10px;height:10px;border-radius:3px}.gcards span{font-size:13px;color:var(--ink2)}.gcards b{font-size:18px}.gcards .gbarw{grid-column:1/-1}
.gbarw{height:6px;border-radius:3px;background:#232830;overflow:hidden;flex:1}.gbarw em{display:block;height:100%;border-radius:3px;background:var(--brand)}
.gtw{overflow-x:auto}
.gt tr.gclk{cursor:pointer}.gt tr.gclk:hover td{background:rgba(198,244,50,.04)}
.gt td b{font-weight:600}.gt tr.cx td{opacity:.45}.gt tr.cx td b{text-decoration:line-through}
.gdays{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:14px}
.gdays button{padding:10px 8px;border-radius:12px;background:#15181E;border:1px solid rgba(255,255,255,.05);display:grid;gap:2px;text-align:center}.gdays b{font-size:14px}.gdays small{font-size:11.5px;color:var(--muted)}
.gdays button.on{background:rgba(198,244,50,.1);border-color:var(--brand)}.gdays button.on b{color:var(--brand)}
.gcap{display:flex;align-items:center;gap:8px}.gcap span{font-size:12.5px;min-width:38px;text-align:right}
.gt td.r,.gt th.r{text-align:right}
.gst{display:inline-block;font-size:11.5px;padding:2px 8px;border-radius:6px;white-space:nowrap;font-weight:500;vertical-align:middle}
.gst.ok{background:rgba(198,244,50,.12);color:var(--brand)}.gst.full{background:rgba(255,107,74,.14);color:#FF8A6E}.gst.on{background:rgba(127,167,255,.15);color:#9DBBFF}.gst.end{background:#232830;color:var(--muted)}.gst.x{background:rgba(255,90,78,.12);color:#FF7B70}
.gd-h h3 .gst{font-size:11px;margin-left:6px}
.gt-empty{padding:40px 0;display:grid;justify-items:center;gap:10px;color:var(--muted);font-size:13px}.gt-empty p{margin:0}
.tt-i.l0{background:#1A1D23;border-left-color:#FF5A4E}.tt-i.cx b{text-decoration:line-through;color:var(--muted)}
.gcapx{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 14px;border-radius:12px;background:#101318;border:1px solid rgba(198,244,50,.15)}
.gcapx b{display:block;font-size:14px}.gcapx small{font-size:11.5px;color:var(--muted)}
.gstep{display:flex;align-items:center;gap:10px}.gstep button{width:32px;height:32px;border-radius:9px;background:#232830;display:grid;place-items:center;color:var(--ink)}.gstep button:disabled{opacity:.3}.gstep b{font-size:18px;min-width:26px;text-align:center}
.gd-no{width:18px;font-size:12px;color:var(--muted);text-align:center}
.gd-m em:not(.ok):not(.ab){color:var(--muted)}
.gd-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}
.gd-none{font-size:12.5px;color:var(--muted);margin:8px 0}
.gd-who{display:flex;align-items:center;gap:12px}.gd-who h3{margin:0 0 2px}.gm-av.lg{width:44px;height:44px;font-size:17px}
.gd-cardx{margin:16px 0 12px;padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--c) 22%,#15181E),#101318);border:1px solid color-mix(in srgb,var(--c) 30%,transparent)}
.gcx-t{display:flex;justify-content:space-between;align-items:center}.gcx-t small{font-size:11.5px;color:var(--muted)}
.gcx-b{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0 10px}.gcx-b b{display:block;font-size:24px}.gcx-b b em{font-style:normal;font-size:13px;color:var(--muted);margin-left:3px;font-weight:400}.gcx-b small{font-size:11.5px;color:var(--muted)}
.gcx-p{display:flex;align-items:center;gap:10px}.gcx-p .gbarw em{background:var(--c)}.gcx-p small{font-size:11.5px;color:var(--ink2);white-space:nowrap}.gcx-p small.warn{color:#FFC53D}.gcx-p small.bad{color:#FF7B70}
.gd-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.grenew{margin-top:10px;padding:12px;border-radius:12px;background:#101318;display:grid;gap:8px}.grenew>b{font-size:13px}.grenew small{font-size:11.5px;color:var(--muted)}
.grenew button{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.1);font-size:13.5px;color:var(--ink)}.grenew button:hover{border-color:var(--brand)}.grenew button em{font-style:normal;color:var(--brand);font-weight:700}
.gwk{display:grid;grid-template-columns:repeat(8,1fr);gap:6px;height:108px;align-items:end;padding-top:6px}
.gwk>div{display:grid;grid-template-rows:1fr auto auto;height:100%;align-items:end;text-align:center;gap:2px}
.gwk em{display:block;min-height:3px;border-radius:4px 4px 0 0;background:linear-gradient(#C6F432,#6E8A14)}.gwk i{font-style:normal;font-size:11px;color:var(--ink2)}.gwk small{font-size:10px;color:#5A616C}
.gd-dt{width:44px;flex:none;font-size:13px;font-weight:600;display:grid}.gd-dt small{font-weight:400}
.gform{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.gform label{display:grid;gap:6px}.gform label.w2{grid-column:1/-1}.gform span{font-size:12px;color:var(--muted)}
.gform select,.gform input{height:38px;border-radius:10px;background:#101318;border:1px solid rgba(255,255,255,.1);padding:0 10px;color:var(--ink);font-size:13.5px;outline:0;width:100%}
.gform select:focus,.gform input:focus{border-color:var(--brand)}
.gform-tip{grid-column:1/-1;margin:0;font-size:12.5px;padding:8px 10px;border-radius:9px}.gform-tip.ok{background:rgba(198,244,50,.08);color:var(--brand)}.gform-tip.bad{background:rgba(255,90,78,.1);color:#FF7B70}
.gform .gd-foot{grid-column:1/-1}
@media (max-width:1280px){.gk.g4{grid-template-columns:repeat(4,1fr)}}
@media (max-width:900px){
  .gad-mnav{display:flex;gap:6px;overflow-x:auto;margin:0 -16px 14px;padding:0 16px}.gad-mnav a{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border-radius:9px;background:#15181E;border:1px solid rgba(255,255,255,.06);color:var(--ink2);font-size:13px;white-space:nowrap;text-decoration:none;flex:none}
  .gad-mnav a.on{background:rgba(198,244,50,.12);border-color:var(--brand);color:var(--brand)}
  .gcards{grid-template-columns:repeat(2,1fr)}.gsch{min-width:760px}
  .gdays{display:flex;overflow-x:auto}.gdays button{flex:0 0 84px}
}
@media (max-width:600px){
  .gad-mnav{margin:0 -12px 12px;padding:0 12px}
  .gk.g4{grid-template-columns:repeat(2,1fr)}.grev-sum{grid-template-columns:repeat(2,1fr)}
  .gc-tools select{flex:1 1 calc(50% - 6px);min-width:0}.gc-tools .gbtn{flex:1 1 100%;justify-content:center}
  .gform{grid-template-columns:1fr}
  .gd-acts .gbtn{flex:1 1 calc(50% - 4px);justify-content:center}
}
/* 运营后台 · 窄屏 */
.gdrawer{max-width:100vw}
@media (max-width:900px){.gcard .gt{min-width:760px}.gt td{white-space:nowrap}.gseg{overflow-x:auto;max-width:100%}.gseg button{white-space:nowrap;flex:none}}
@media (max-width:600px){
  .gad-main{padding:26px 12px 40px}
  .gad-h{flex-direction:column;align-items:stretch;gap:12px}
  .gh-r{gap:10px}.gh-r select{flex:1;min-width:0}
  .gk{grid-template-columns:repeat(2,1fr);gap:10px}.gk-i{padding:13px}.gk-i b{font-size:22px}
  .gcard{padding:14px}
  .gc-tools{width:100%}.gsearch{flex:1 1 100%}.gsearch input{width:100%}
  .gdrawer{padding:18px 14px}
}

/* 场馆停课通知 */
.gy-note{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:14px;margin-bottom:12px;background:rgba(255,107,74,.1);border:1px solid rgba(255,107,74,.28);color:#FF8A6E}
.gy-note>svg{flex:none;margin-top:1px}.gy-note div{flex:1;min-width:0;display:grid;gap:3px}.gy-note b{font-size:14px;color:var(--ink)}.gy-note small{font-size:12.5px;line-height:1.5;color:var(--ink2)}
.gy-note.hm{cursor:pointer;margin:12px 16px 12px}
.bkc.cx{opacity:.8}.bkc em.gx{justify-self:start;display:inline-block;margin-top:4px;font-style:normal;font-size:11.5px;color:#FF8A6E;background:rgba(255,107,74,.12);padding:1px 7px;border-radius:5px}

.mi .bdg{font-style:normal;font-size:11px;font-weight:600;color:#fff;background:#FF6B4A;padding:1px 7px;border-radius:9px}.mi .bdg+svg{margin-left:4px}

/* 后台表格：手机端按卡片显示 */
@media (max-width:640px){
  .gtw{overflow:visible}
  .gcard .gt{min-width:0}
  .gt,.gt tbody{display:block}
  .gt thead{display:none}
  .gt tbody>tr{display:block;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:var(--card2)}
  .gt tbody>tr>td{display:block;border:0;padding:5px 0;text-align:right;white-space:normal;overflow:hidden}
  .gt tbody>tr>td[data-l]::before{content:attr(data-l);float:left;margin-right:12px;color:var(--muted);font-size:12px;font-weight:400}
  .gt tbody>tr>td.c-first{text-align:left;padding:2px 0 8px;margin-bottom:4px;border-bottom:1px dashed var(--line)}
  .gt tbody>tr>td.c-op{text-align:right;padding-top:8px}
  .gt tbody>tr.c-x>td{text-align:center}
  .gt td small{display:inline;margin-left:6px}
  .gt tr:hover td,.gt tr.gclk:hover td{background:none}
  .gt td .gcap{margin-left:auto;max-width:190px}
}
/* 购买：支付方式选择与失败提示 */
.paysheet{padding:0 20px 18px}
.ps-amt{font-size:30px;font-weight:800;text-align:center;margin:4px 0 2px}
.ps-m{text-align:center;color:var(--muted);font-size:12.5px;margin:0 0 14px}
.ps-pm{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:8px}
.ps-opt{display:flex;align-items:center;gap:10px;padding:12px 2px;font-size:14px;cursor:pointer}
.ps-opt+.ps-opt{border-top:1px dashed var(--line)}
.ps-opt input{accent-color:var(--brand);width:17px;height:17px;margin:0}
.ps-err{min-height:18px;margin:0 0 10px;font-size:12.5px;color:#FF7A6B}
.paysheet .btn .spin{display:inline-block;vertical-align:-3px;margin-right:6px}

/* 手机全屏：可读性与触控区（仅 ≤600px，桌面手机框不变） */
@media (max-width:600px){
  .tabbar a,.ptr,.seg-top a,.cl-g,.cr-st,.hm-w,.hm-lg,.ft,.ver,.gfoot,.list-end{color:var(--muted)}
  .cardstrip small,.ch small,.cr-meta,.cd-facts small,.blg,.co-st small,.rv-h small,.locker span,.locker small,.body3 small,.prs small,.lg-r>div small,.mi-stats small,.ver,.ft,.list-end,.pk-h small,.vc-f small,.buy small,.hs small{font-size:12px}
  .btn.sm,.tagbar button,.store-sel,.sec-h a,.mini-seg button,.nb-back,.bbar .btn{position:relative}
  .btn.sm::after,.store-sel::after,.sec-h a::after,.mini-seg button::after,.bbar .btn::after{content:"";position:absolute;inset:-7px 0}
  .sec-h a::after{inset:-13px -4px}.mini-seg button::after{inset:-10px 0}.bbar .btn::after{inset:-4px 0}
  .tagbar button::after{content:"";position:absolute;inset:-6px 0 -10px}
  .nb-back::after{content:"";position:absolute;inset:-5px}
  .seg-top a::before{content:"";position:absolute;inset:0 -6px}
}
