/* ==========================================================================
   Flovico 训练营 · 官网样式系统  (Phase 1 静态稿)
   配色：活力橙红 + 藏蓝 + 荣誉金   |   移动优先
   ========================================================================== */

/* ---------- 1. 设计令牌 ---------- */
:root{
  --brand:#FF4E1A;          /* 主色 · 活力橙红 */
  --brand-d:#DD3B08;
  --brand-soft:#FFF0E9;
  --navy:#0E2244;           /* 藏蓝 */
  --navy-2:#17325F;
  --navy-3:#24406F;
  --navy-soft:#EDF1F8;
  --gold:#F5A524;           /* 荣誉金 */
  --gold-soft:#FFF6E3;
  --green:#12B76A;          /* 达标绿 */
  --green-soft:#E7F8F0;
  --ink:#0E2244;
  --ink-2:#57647C;
  --ink-3:#93A0B4;
  --line:#E5EAF3;
  --bg:#F4F6FA;
  --card:#FFFFFF;

  --r-s:10px; --r-m:14px; --r-l:20px; --r-xl:28px;
  --sh-1:0 2px 8px rgba(14,34,68,.06);
  --sh-2:0 8px 26px rgba(14,34,68,.10);
  --sh-3:0 18px 48px rgba(14,34,68,.16);
  --nav-h:56px;
  --maxw:1160px;
}

/* ---------- 2. 基础 ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.65 "PingFang SC","Microsoft YaHei","Hiragino Sans GB",
       system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  padding-bottom:64px;               /* 让位给移动端底部 tab */
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
input,select{font:inherit;color:inherit}
svg{display:block}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

.wrap{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 16px}
.ico{width:1em;height:1em;fill:currentColor}

/* ---------- 3. 顶部导航 ---------- */
.topbar{
  position:sticky;top:0;z-index:60;height:var(--nav-h);
  background:linear-gradient(180deg,#0E2244,#12294F);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.topbar .wrap{height:100%;display:flex;align-items:center;gap:14px}

.logo{display:flex;align-items:center;gap:9px;color:#fff;font-weight:800;letter-spacing:.2px}
.logo-mark{
  width:32px;height:32px;border-radius:9px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--brand),#FF8A3D);
  display:grid;place-items:center;color:#fff;font-size:17px;
  box-shadow:0 4px 12px rgba(255,78,26,.45)
}
.logo-txt{font-size:16px;line-height:1.1}
.logo-txt small{display:block;font-size:10px;font-weight:500;color:#93A6C6;letter-spacing:1.6px}

.nav{display:none;margin-left:auto;gap:2px}
.nav a{
  padding:8px 14px;border-radius:999px;color:#C7D3E6;font-size:14.5px;font-weight:600;
  transition:.18s
}
.nav a:hover{color:#fff;background:rgba(255,255,255,.08)}
.nav a.on{color:#fff;background:var(--brand)}

.nav-cta{display:none;margin-left:10px}
.burger{
  margin-left:auto;width:38px;height:38px;border-radius:10px;color:#fff;
  display:grid;place-items:center;background:rgba(255,255,255,.09);font-size:19px
}
.drawer{
  position:fixed;inset:var(--nav-h) 0 auto 0;z-index:55;background:#12294F;
  border-bottom:1px solid rgba(255,255,255,.1);
  box-shadow:var(--sh-3);padding:10px 16px 18px;display:none
}
.drawer.open{display:block}
.drawer a{
  display:flex;align-items:center;justify-content:space-between;
  padding:13px 4px;color:#D6E0F0;font-weight:600;border-bottom:1px solid rgba(255,255,255,.07)
}
.drawer a:last-child{border:0}
.drawer a.on{color:var(--brand)}
.drawer a::after{content:"›";color:#5B7099;font-size:20px;line-height:1}

/* ---------- 4. 按钮 ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:12px 20px;border-radius:999px;font-weight:700;font-size:15px;
  transition:.18s;white-space:nowrap
}
.btn-p{background:linear-gradient(135deg,var(--brand),#FF7A2F);color:#fff;
  box-shadow:0 8px 20px rgba(255,78,26,.35)}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 10px 26px rgba(255,78,26,.45)}
.btn-g{border:1.5px solid rgba(255,255,255,.28);color:#fff;background:rgba(255,255,255,.06)}
.btn-g:hover{background:rgba(255,255,255,.14)}
.btn-o{border:1.5px solid var(--line);color:var(--ink);background:#fff}
.btn-o:hover{border-color:var(--brand);color:var(--brand)}
.btn-sm{padding:8px 15px;font-size:14px}

/* ---------- 5. Hero ---------- */
.hero{
  position:relative;overflow:hidden;color:#fff;
  background:
    radial-gradient(900px 420px at 82% -10%,rgba(255,78,26,.42),transparent 62%),
    radial-gradient(700px 380px at 8% 110%,rgba(37,99,235,.30),transparent 60%),
    linear-gradient(160deg,#0B1C38,#12305F 60%,#0E2244);
  padding:38px 0 46px
}
.hero::after{                        /* 跑道斜纹 */
  content:"";position:absolute;right:-90px;top:-40px;width:340px;height:520px;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.055) 0 12px,transparent 12px 34px);
  transform:rotate(-8deg);pointer-events:none
}
.hero-in{position:relative;z-index:2}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
  font-size:12.5px;font-weight:700;letter-spacing:.6px;color:#FFD9C7
}
.eyebrow i{width:6px;height:6px;border-radius:50%;background:var(--brand);
  box-shadow:0 0 0 4px rgba(255,78,26,.28)}
.hero h1{
  margin:16px 0 12px;font-size:clamp(28px,7.4vw,50px);line-height:1.16;
  font-weight:900;letter-spacing:-.5px
}
.hero h1 em{font-style:normal;color:#FF7A3D}
/* 描述行的最大宽度：太小会在句子中间硬折行（620px 一行只放得下 41 个汉字，
   正好把「每一点」和「进步都看得见」拆到两行），放到 800px 就不会了。 */
.hero p{color:#B9C8E2;font-size:15px;max-width:800px}
.hero-act{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}

/* 数据条 */
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  margin-top:30px;background:rgba(255,255,255,.14);
  border-radius:var(--r-m);overflow:hidden;border:1px solid rgba(255,255,255,.14)}
.stat{background:rgba(9,22,44,.55);padding:14px 16px}
.stat b{display:block;font-size:24px;font-weight:900;color:#fff;line-height:1.1}
.stat b span{font-size:13px;font-weight:700;color:#FF9A63;margin-left:3px}
.stat i{font-style:normal;font-size:12.5px;color:#93A6C6}

/* ---------- 5b. 内页页头 ---------- */
.pagehead{position:relative;overflow:hidden;color:#fff;
  background:radial-gradient(700px 320px at 86% -30%,rgba(255,78,26,.4),transparent 62%),
             linear-gradient(140deg,#0C1E3C,#153565 70%,#0E2244);
  padding:20px 0 24px}
.pagehead::after{content:"";position:absolute;right:-70px;top:-50px;width:260px;height:400px;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 11px,transparent 11px 32px);
  transform:rotate(-8deg);pointer-events:none}
.pagehead .wrap{position:relative;z-index:2}
.crumb{display:flex;align-items:center;gap:5px;font-size:12px;color:#8FA3C2;margin-bottom:9px}
.crumb svg{width:12px;height:12px;color:#5B7099}
.pagehead h1{font-size:clamp(21px,5.6vw,29px);font-weight:900;letter-spacing:-.3px;
  display:flex;align-items:center;gap:10px}
.pagehead h1 .n{font-size:13px;font-weight:800;padding:3px 10px;border-radius:999px;
  background:rgba(255,78,26,.92);color:#fff}
.pagehead p{color:#B9C8E2;font-size:13.5px;margin-top:8px;max-width:640px}
.pagehead .quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.pagehead .quick a{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);
  font-size:13px;font-weight:700;color:#D6E0F0}
.pagehead .quick a svg{width:14px;height:14px}
.pagehead .quick a:hover{background:rgba(255,255,255,.2)}

/* ---------- 6. 区块 ---------- */
.sec{padding:34px 0}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:18px}
.sec-h h2{font-size:20px;font-weight:900;letter-spacing:-.2px;display:flex;align-items:center;gap:9px}
.sec-h h2::before{content:"";width:4px;height:19px;border-radius:3px;
  background:linear-gradient(180deg,var(--brand),#FF9A3D)}
.sec-h p{font-size:13px;color:var(--ink-3);margin-top:3px}
.more{font-size:13.5px;font-weight:700;color:var(--brand);display:inline-flex;align-items:center;gap:3px}
.more::after{content:"›";font-size:16px}

/* ---------- 7. 学员卡片 ---------- */
.grid-p{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pcard{
  background:var(--card);border-radius:var(--r-m);box-shadow:var(--sh-1);
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  border:1px solid var(--line);transition:.2s
}
.pcard:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:#FFCFBB}
.pcard-top{
  position:relative;padding:14px 12px 12px;text-align:center;
  background:linear-gradient(165deg,#F7F9FD,#E9EFFA)
}
.pcard-top.hot{background:linear-gradient(165deg,#FFF6EF,#FFE7DA)}
.rank{
  position:absolute;top:9px;left:9px;min-width:24px;height:24px;padding:0 6px;
  border-radius:8px;display:grid;place-items:center;font-size:12.5px;font-weight:900;
  background:var(--navy);color:#fff
}
.rank.g1{background:linear-gradient(135deg,#FFC53D,#F59E0B);color:#3A2600}
.rank.g2{background:linear-gradient(135deg,#D5DCE8,#AEB9CC);color:#2A3444}
.rank.g3{background:linear-gradient(135deg,#E8A87C,#C87B45);color:#3A2000}
.rank.g4{background:linear-gradient(135deg,#9DB2D4,#6D82A8);color:#14213A}
.medal-n{
  position:absolute;top:9px;right:9px;display:flex;align-items:center;gap:3px;
  padding:3px 8px 3px 6px;border-radius:999px;background:#fff;border:1px solid var(--line);
  font-size:12px;font-weight:800;color:var(--gold);box-shadow:var(--sh-1)
}
.medal-n svg{width:13px;height:13px}
.ava{
  width:66px;height:66px;border-radius:50%;margin:0 auto 9px;overflow:hidden;
  background:linear-gradient(135deg,var(--navy-2),var(--navy-3));
  display:grid;place-items:center;color:#fff;font-size:24px;font-weight:800;
  border:3px solid #fff;box-shadow:0 4px 14px rgba(14,34,68,.18)
}
.ava.sm{width:42px;height:42px;font-size:16px;border-width:2px;margin:0}
.ava.lg{width:96px;height:96px;font-size:36px;border-width:4px}
.pcard-top .nm{font-size:15.5px;font-weight:800;letter-spacing:.2px}
.pcard-top .sub{font-size:11.5px;color:var(--ink-3);margin-top:2px}
.pcard-body{padding:11px 12px 13px;flex:1;display:flex;flex-direction:column;gap:8px}
.pb{display:flex;align-items:baseline;justify-content:space-between;
  background:var(--brand-soft);border-radius:var(--r-s);padding:8px 11px}
.pb i{font-style:normal;font-size:11.5px;color:#B4552B;font-weight:700}
.pb b{font-size:18px;font-weight:900;color:var(--brand);line-height:1}
.pb b span{font-size:11px;font-weight:700;color:#C97A4E;margin-left:2px}
.chips{display:flex;flex-wrap:wrap;gap:4px}
.chip-m{
  display:inline-flex;align-items:center;gap:3px;padding:3px 8px;border-radius:999px;
  font-size:11px;font-weight:700;background:var(--gold-soft);color:#9A6205;
  border:1px solid #FBE3B4
}
.chip-m svg{width:11px;height:11px}
.chip-m.more{background:var(--navy-soft);color:var(--ink-2);border-color:var(--line)}

/* ---------- 8. 通用卡片 / 徽标 ---------- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  box-shadow:var(--sh-1);padding:16px}
.tag{display:inline-block;padding:3px 9px;border-radius:6px;font-size:11.5px;font-weight:800;
  background:var(--brand-soft);color:var(--brand-d)}
.tag.navy{background:var(--navy-soft);color:var(--navy-2)}
.tag.gold{background:var(--gold-soft);color:#9A6205}
.tag.green{background:var(--green-soft);color:#0A7F4B}

/* 名单条 */
.rank-list{display:flex;flex-direction:column;gap:9px}
.rank-row{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-m);padding:10px 12px;box-shadow:var(--sh-1)}
.rank-row .no{width:22px;text-align:center;font-weight:900;font-size:14px;color:var(--ink-3);flex:0 0 auto}
.rank-row .no.hi{color:var(--brand)}
.rank-row .info{flex:1;min-width:0}
.rank-row .info b{display:block;font-size:14.5px;font-weight:800}
.rank-row .info i{font-style:normal;font-size:12px;color:var(--ink-3)}
.rank-row .val{text-align:right;flex:0 0 auto}
.rank-row .val b{display:block;font-size:16px;font-weight:900;color:var(--brand);line-height:1.2}
.rank-row .val i{font-style:normal;font-size:11px;color:var(--ink-3)}
.up{color:var(--green)!important}

/* 文章行 */
.art-row{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-m);padding:12px;box-shadow:var(--sh-1);transition:.18s}
.art-row:hover{border-color:#FFCFBB;transform:translateX(2px)}
.art-thumb{width:60px;height:60px;border-radius:11px;flex:0 0 auto;display:grid;place-items:center;
  font-size:23px;background:linear-gradient(150deg,var(--navy-soft),#DFE8F7);color:var(--navy-2)}
.art-thumb.b{background:linear-gradient(150deg,var(--brand-soft),#FFE0D1);color:var(--brand)}
.art-body{flex:1;min-width:0}
.art-body h3{font-size:14.8px;font-weight:800;line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.art-body .mt{display:flex;align-items:center;gap:9px;margin-top:6px;font-size:12px;color:var(--ink-3)}

/* ---------- 9. 筛选器 ---------- */
.filters{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.search{position:relative}
.search input{
  width:100%;height:46px;border-radius:12px;border:1px solid var(--line);background:#fff;
  padding:0 14px 0 42px;font-size:15px;box-shadow:var(--sh-1)
}
.search input::placeholder{color:var(--ink-3)}
.search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);
  width:17px;height:17px;color:var(--ink-3)}
.scroller{display:flex;gap:8px;overflow-x:auto;padding-bottom:3px;
  scrollbar-width:none;-webkit-overflow-scrolling:touch}
.scroller::-webkit-scrollbar{display:none}
.fchip{
  flex:0 0 auto;padding:8px 15px;border-radius:999px;background:#fff;border:1px solid var(--line);
  font-size:13.5px;font-weight:700;color:var(--ink-2);white-space:nowrap;transition:.16s
}
.fchip.on{background:var(--navy);border-color:var(--navy);color:#fff}
.fchip.on.brand{background:var(--brand);border-color:var(--brand)}
.frow{display:flex;align-items:center;gap:8px}
.frow > label{font-size:12.5px;color:var(--ink-3);font-weight:700;flex:0 0 auto}

/* 学员库 · 字母查看条（A–Z） */
.filters .scroller{align-items:center;flex:1 1 auto;min-width:0}
.flab{font-size:12.5px;color:var(--ink-3);font-weight:700;flex:0 0 auto;margin-right:2px}
.flet{min-width:40px;padding:8px 0;text-align:center}

.list-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:4px 0 14px;font-size:12.5px;color:var(--ink-3)}
.list-meta b{color:var(--brand);font-size:16px;font-weight:900}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:12px;color:var(--ink-3)}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}

/* ---------- 10. 学员详情 ---------- */
.pf-hero{
  position:relative;color:#fff;overflow:hidden;
  background:
    radial-gradient(620px 340px at 88% -20%,rgba(255,78,26,.46),transparent 60%),
    linear-gradient(150deg,#0C1E3C,#153565 65%,#0E2244);
  padding:26px 0 30px
}
.pf-hero::after{content:"";position:absolute;left:-60px;bottom:-70px;width:300px;height:300px;
  background:repeating-linear-gradient(115deg,rgba(255,255,255,.05) 0 10px,transparent 10px 30px);
  transform:rotate(-10deg);pointer-events:none}
.pf-top{display:flex;align-items:center;gap:15px;position:relative;z-index:2}
.pf-id{flex:1;min-width:0}
.pf-id h1{font-size:23px;font-weight:900;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pf-id h1 .v{font-size:11.5px;font-weight:800;padding:3px 9px;border-radius:999px;
  background:rgba(255,78,26,.9);color:#fff;letter-spacing:.4px}
.pf-meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:13px;color:#B9C8E2}
.pf-meta span{display:inline-flex;align-items:center;gap:5px}
.pf-meta svg{width:14px;height:14px;color:#7D93B8}
.pf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px;position:relative;z-index:2}
.pf-stat{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);
  border-radius:var(--r-m);padding:11px 8px;text-align:center;backdrop-filter:blur(4px)}
.pf-stat b{display:block;font-size:21px;font-weight:900;line-height:1.1}
.pf-stat b.g{color:#FFC53D}
.pf-stat i{font-style:normal;font-size:11.5px;color:#A8BADA}

/* 荣誉横幅 */
.honor-band{display:flex;gap:10px;overflow-x:auto;margin:0 0 0;padding:14px 0;
  scrollbar-width:none}
.honor-band::-webkit-scrollbar{display:none}
.honor-band .hb{
  flex:0 0 auto;display:flex;align-items:center;gap:9px;padding:10px 15px;border-radius:var(--r-m);
  background:linear-gradient(135deg,#FFF8E8,#FFEFD2);border:1px solid #F7DEA8;
  box-shadow:var(--sh-1)
}
.hb svg{width:22px;height:22px;color:var(--gold)}
.hb b{display:block;font-size:13.5px;font-weight:800;color:#7A4E05}
.hb i{font-style:normal;font-size:11.5px;color:#A98136}

/* 成绩档案 */
.rec-group{margin-bottom:14px;border:1px solid var(--line);border-radius:var(--r-m);
  background:#fff;overflow:hidden;box-shadow:var(--sh-1)}
.rec-h{display:flex;align-items:center;gap:9px;padding:13px 15px;
  background:linear-gradient(180deg,#FAFBFE,#F4F7FC);border-bottom:1px solid var(--line)}
.rec-h .dot{width:8px;height:8px;border-radius:50%;background:var(--brand);flex:0 0 auto}
.rec-h b{font-size:15px;font-weight:800;flex:1}
.rec-h small{font-size:11.5px;color:var(--ink-3);font-weight:700}
.rec-body{padding:4px 0}
.rec-row{display:flex;align-items:center;gap:12px;padding:11px 15px;border-bottom:1px solid #F1F4F9}
.rec-row:last-child{border:0}
.rec-row .k{flex:1;min-width:0}
.rec-row .k b{font-size:14px;font-weight:700;display:block}
.rec-row .k i{font-style:normal;font-size:11.5px;color:var(--ink-3);display:block;margin-top:2px}
.rec-row .v{text-align:right;flex:0 0 auto;min-width:96px}
.rec-row .v b{font-size:17px;font-weight:900;line-height:1.15;
  font-variant-numeric:tabular-nums}
.rec-row .v b span{font-size:11.5px;font-weight:700;color:var(--ink-3);margin-left:2px}
.rec-row .v i{font-style:normal;display:block;font-size:11px;color:var(--ink-3)}
.lv{display:inline-block;padding:2px 7px;border-radius:5px;font-size:10.5px;font-weight:800;
  margin-left:6px;vertical-align:1px}
.lv.yx{background:var(--gold-soft);color:#9A6205}
.lv.lh{background:var(--green-soft);color:#0A7F4B}
.lv.jg{background:var(--navy-soft);color:var(--navy-2)}
.rec-note{padding:9px 15px 12px;font-size:11.5px;color:var(--ink-3);
  background:#FAFBFE;border-top:1px dashed var(--line)}

/* 成长曲线 */
.chart-box{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);
  padding:16px 14px 10px;box-shadow:var(--sh-1)}
.chart-box svg{width:100%;height:auto;overflow:visible}
.chart-legend{display:flex;align-items:center;justify-content:space-between;
  margin-top:8px;font-size:11.5px;color:var(--ink-3)}
.chart-legend .lg{display:flex;align-items:center;gap:5px}
.chart-legend .dot{width:8px;height:8px;border-radius:50%;background:var(--brand)}

/* 勋章墙 */
/* ---------- 11.2 勋章（图片本身就是 20×35 px，原比例显示，绝不放大） ---------- */
/* 注意：全局 reset 里 img{display:block}，所以这里必须显式改回 inline-block，否则勋章会竖着叠 */
.mchip{height:35px;width:auto;display:inline-block;vertical-align:middle;margin:0 1px}
.mchips{display:block;line-height:0;margin-top:6px;white-space:nowrap;overflow-x:auto;overflow-y:hidden}
.mchips.left{margin-top:4px}

/* 详情页 / 首页——勋章条：图 + 名称 */
.medal-strip{display:flex;flex-wrap:wrap;gap:8px}
.ms-item{position:relative;display:inline-flex;align-items:center;gap:6px;background:#fff;
  border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 8px;box-shadow:var(--sh-1)}
.ms-item img{height:35px;width:auto;display:block}
.ms-item svg{width:20px;height:20px;color:var(--gold)}
.ms-item b{font-size:12.5px;font-weight:800;white-space:nowrap}
.ms-item .pin{position:absolute;top:-6px;right:-4px;font-size:9px;font-weight:800;color:var(--brand-d);
  background:var(--brand-soft);border-radius:4px;padding:1px 4px}

/* 首页——荣誉勋章墙 */
.medal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.ms-card{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-m);padding:10px 12px;box-shadow:var(--sh-1)}
.ms-card.on{border-color:#FBE3B4;background:linear-gradient(160deg,#FFFDF7,#FFF6E4)}
.ms-card img{height:35px;width:auto;display:block;flex:0 0 auto}
.ms-card > svg{width:22px;height:22px;color:var(--gold);flex:0 0 auto}
.ms-b{min-width:0;flex:1}
.ms-b b{font-size:13.5px;font-weight:800;display:block;line-height:1.3}
.ms-b i{font-style:normal;font-size:11px;color:var(--ink-3);display:block;margin-top:1px}
.ms-n{display:inline-block;margin-top:5px;font-size:11px;font-weight:800;color:#9A6205;
  background:var(--gold-soft);border-radius:999px;padding:2px 8px}
.ms-card:not(.on) .ms-n{color:var(--ink-3);background:var(--navy-soft)}

/* 时间线 */
.tl{position:relative;padding-left:26px}
.tl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;
  background:linear-gradient(180deg,var(--brand),#FFD469,transparent)}
.tl-item{position:relative;padding-bottom:16px}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:-24px;top:5px;width:14px;height:14px;
  border-radius:50%;background:#fff;border:3px solid var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.tl-item .d{font-size:11.5px;color:var(--ink-3);font-weight:700}
.tl-item h4{font-size:14.5px;font-weight:800;margin:3px 0 2px}
.tl-item p{font-size:13px;color:var(--ink-2)}

/* 相册 */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ph{aspect-ratio:1;border-radius:var(--r-s);background:linear-gradient(150deg,#E8EDF6,#D6DFEE);
  display:grid;place-items:center;color:#A9B6CC;font-size:22px;overflow:hidden;position:relative}
.ph.tall{grid-row:span 2;aspect-ratio:auto}
.ph .cap{position:absolute;left:0;right:0;bottom:0;padding:5px 7px;font-size:10.5px;color:#fff;
  background:linear-gradient(transparent,rgba(9,22,44,.72));text-align:left}

/* ---------- 11. 文章页 ---------- */
.art-hero{background:#fff;border-bottom:1px solid var(--line);padding:22px 0 24px}
.art-hero h1{font-size:clamp(22px,5.6vw,32px);font-weight:900;line-height:1.32;letter-spacing:-.3px}
.art-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;font-size:13px;color:var(--ink-3)}
.prose{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:20px 17px;
  box-shadow:var(--sh-1);margin:18px 0}
.prose p{font-size:15.5px;line-height:1.85;margin:0 0 15px;color:#26344C}
.prose h2{font-size:18px;font-weight:900;margin:24px 0 11px;padding-left:11px;position:relative}
.prose h2::before{content:"";position:absolute;left:0;top:3px;bottom:3px;width:4px;border-radius:3px;
  background:linear-gradient(180deg,var(--brand),#FF9A3D)}
.prose ul{margin:0 0 15px}
.prose li{position:relative;padding-left:19px;margin-bottom:8px;font-size:15px;line-height:1.8;color:#26344C}
.prose li::before{content:"";position:absolute;left:5px;top:11px;width:6px;height:6px;border-radius:50%;
  background:var(--brand)}
.prose blockquote{margin:0 0 15px;padding:13px 15px;border-radius:var(--r-m);
  background:var(--brand-soft);border-left:4px solid var(--brand);font-size:15px;color:#8A3D18;font-weight:600}
.prose img{border-radius:var(--r-m);margin:0 0 15px}
.fig-cap{font-size:12.5px;color:var(--ink-3);text-align:center;margin:-8px 0 16px}
.pager{display:flex;gap:10px;margin-bottom:18px}
.pager a{flex:1;background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:12px 14px;
  box-shadow:var(--sh-1);transition:.18s}
.pager a:hover{border-color:#FFCFBB}
.pager a i{font-style:normal;font-size:11.5px;color:var(--ink-3);display:block}
.pager a b{font-size:13.5px;font-weight:800;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden;margin-top:3px}

/* ---------- 12. 页脚 ---------- */
.foot{background:#0B1B35;color:#8FA3C2;margin-top:34px;padding:28px 0 26px;font-size:13px}
.foot-logo{display:flex;align-items:center;gap:9px;color:#fff;font-weight:800;margin-bottom:12px}
.foot-grid{display:grid;gap:20px}
.foot h4{font-size:13px;font-weight:800;color:#fff;margin-bottom:10px;letter-spacing:.4px}
.foot li{margin-bottom:7px}
.foot a:hover{color:var(--brand)}
.foot-bot{border-top:1px solid rgba(255,255,255,.09);margin-top:22px;padding-top:16px;
  display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;font-size:12px;color:#6B7F9E}
.demo-tip{font-size:11.5px;color:#6B7F9E;background:rgba(255,255,255,.05);border-radius:8px;
  padding:8px 11px;margin-top:12px;border:1px dashed rgba(255,255,255,.14)}

/* ---------- 13. 移动端底部 tab ---------- */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:70;height:62px;
  background:rgba(255,255,255,.97);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);
  padding-bottom:env(safe-area-inset-bottom)
}
.tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  color:#94A1B6;font-size:10.5px;font-weight:700}
.tabbar a svg{width:21px;height:21px}
.tabbar a.on{color:var(--brand)}

/* ---------- 13b. 课程入口 / 关于我们 ---------- */
.prog{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-l);padding:16px;box-shadow:var(--sh-1);transition:.2s;position:relative}
.prog:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:#FFCFBB}
.prog-ic{width:52px;height:52px;border-radius:14px;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--brand),#FF8A3D);color:#fff;
  box-shadow:0 6px 16px rgba(255,78,26,.32)}
.prog-ic svg{width:26px;height:26px}
.prog-b{flex:1;min-width:0}
.prog-b h3{font-size:16.5px;font-weight:900;margin:7px 0 4px;line-height:1.3}
.prog-b p{font-size:13.5px;color:var(--ink-2)}
.prog-meta{font-size:12px;color:var(--ink-3);margin-top:7px}
.prog-go{flex:0 0 auto;color:var(--ink-3)}
.prog.accent{background:linear-gradient(135deg,#0E2244,#17325F);border-color:#17325F}
.prog.accent h3{color:#fff}
.prog.accent p{color:#B9C8E2}
.prog.accent .prog-meta{color:#8FA3C2}
.prog.accent .prog-go{color:#7D93B8}
.prog.accent .tag{background:rgba(255,78,26,.92);color:#fff}
.prog.accent .prog-ic{background:linear-gradient(135deg,#FFC53D,#F59E0B);
  box-shadow:0 6px 16px rgba(245,165,36,.4)}
@media(min-width:720px){.prog-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}}

.pt{display:flex;gap:13px;padding:15px 0;border-bottom:1px solid var(--line)}
.pt:last-child{border:0;padding-bottom:0}
.pt:first-child{padding-top:0}
.pt .pn{width:30px;height:30px;border-radius:9px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--brand-soft);color:var(--brand-d);font-weight:900;font-size:14px}
.pt b{font-size:15px;font-weight:800;display:block}
.pt p{font-size:13.5px;color:var(--ink-2);margin-top:4px;line-height:1.7}

.coach{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.coach:last-child{border:0;padding-bottom:0}
.coach .cn{width:46px;height:46px;border-radius:50%;flex:0 0 auto;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--navy-2),var(--navy-3));color:#fff;font-weight:800;font-size:15px}
.coach .cd{flex:1;min-width:0}
.coach b{font-size:15px;font-weight:800}
.coach .r{font-size:11.5px;font-weight:800;color:var(--brand-d);background:var(--brand-soft);
  padding:2px 8px;border-radius:999px;margin-left:7px}
.coach p{font-size:12.5px;color:var(--ink-3);margin-top:4px}
.fontnote{font-size:11.5px;color:var(--ink-3);background:#FAFBFE;border:1px dashed var(--line);
  border-radius:10px;padding:9px 12px;margin-top:14px;line-height:1.7}
.stat em{display:block;font-style:normal;font-size:10.5px;color:#6B84A8;margin-top:1px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- 14. 桌面端 ---------- */
@media(min-width:720px){
  body{padding-bottom:0}
  .wrap{padding:0 24px}
  .grid-p{grid-template-columns:repeat(3,1fr);gap:16px}
  .stats{grid-template-columns:repeat(4,1fr)}
  .filters{flex-direction:row;align-items:center;gap:12px}
  .search{flex:0 0 260px}
  .sec{padding:44px 0}
  .pf-stats{max-width:620px}
  .medal-grid{grid-template-columns:repeat(4,1fr)}
  .gallery{grid-template-columns:repeat(4,1fr)}
  .prose{padding:30px 34px}
  .foot-grid{grid-template-columns:1.4fr 1fr 1fr}
  .tabbar{display:none}
  .burger{display:none}
  .nav{display:flex}
  .nav-cta{display:inline-flex}
}
@media(min-width:1000px){
  .grid-p{grid-template-columns:repeat(4,1fr)}
  .rec-row{padding:12px 18px}
  .two-col{display:grid;grid-template-columns:1.55fr 1fr;gap:24px;align-items:start}
  .sticky-side{position:sticky;top:76px}
}

/* ---------- 15. 小工具 ---------- */
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mt20{margin-top:20px}
.mb0{margin-bottom:0}.gap{display:flex;flex-direction:column;gap:12px}
.center{text-align:center}
.muted{color:var(--ink-3)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.banner{
  margin:0 0 16px;padding:14px 16px;border-radius:var(--r-m);color:#fff;
  background:linear-gradient(120deg,var(--brand),#FF8A3D);
  display:flex;align-items:center;gap:12px;box-shadow:0 10px 24px rgba(255,78,26,.28)
}
.banner .bi{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.2);
  display:grid;place-items:center;flex:0 0 auto}
.banner .bi svg{width:21px;height:21px;color:#fff}
.banner b{display:block;font-size:15px;font-weight:900}
.banner i{font-style:normal;font-size:12.5px;color:#FFE3D6}
.banner .btn{margin-left:auto;flex:0 0 auto;background:#fff;color:var(--brand-d);
  box-shadow:none;padding:9px 15px;font-size:13.5px}
@media(max-width:520px){.banner{flex-wrap:wrap}.banner .btn{margin-left:0;width:100%}}

/* ==========================================================================
   16. 追光少年 v2 —— 首页加密度 / 大课计划 / 私教课程 / 约课系统
   ========================================================================== */
.hide{display:none!important}

/* ---------- 16.1 抽屉项（图标 + 文字） ---------- */
.drawer a{justify-content:flex-start;gap:11px}
.drawer a::after{margin-left:auto}
.drawer a svg{width:18px;height:18px;color:#5B7099;flex:0 0 auto}
.drawer a.on svg{color:var(--brand)}

/* ---------- 16.2 Hero 信任信号 ---------- */
.hero-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}
.hero-badges span{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:999px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);
  font-size:12.5px;font-weight:700;color:#D6E0F0}
.hero-badges svg{width:13px;height:13px;color:#FF9A63}
.coachline{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:18px;
  padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
.coachline > b{font-size:12.5px;font-weight:800;color:#FFD9C7;letter-spacing:.4px}
.coachline .cl-avs{display:flex;gap:7px;flex-wrap:wrap}
.coachline .cl-avs span{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:#C7D3E6;
  background:rgba(255,255,255,.08);border-radius:999px;padding:3px 11px 3px 3px}
.coachline .cl-avs i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--navy-3),#2E4C82);color:#fff;font-size:11px;font-weight:800;font-style:normal}

/* ---------- 16.3 四大入口卡 ---------- */
.entry-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.entry{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:14px 13px;
  box-shadow:var(--sh-1);display:flex;flex-direction:column;gap:5px;transition:.18s;position:relative;overflow:hidden}
.entry::before{content:"";position:absolute;right:-26px;top:-26px;width:78px;height:78px;border-radius:50%;
  background:var(--brand-soft);opacity:.85}
.entry:hover{transform:translateY(-2px);box-shadow:var(--sh-2);border-color:#FFCFBB}
.entry-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:linear-gradient(135deg,var(--brand),#FF8A3D);color:#fff;position:relative;z-index:1;
  box-shadow:0 5px 13px rgba(255,78,26,.3)}
.entry-ic svg{width:20px;height:20px}
.entry-t{font-size:15px;font-weight:900;line-height:1.3;margin-top:3px;position:relative;z-index:1}
.entry-s{font-size:12px;color:var(--ink-2);line-height:1.55;position:relative;z-index:1;flex:1}
.entry-tag{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;font-weight:800;color:var(--brand);
  margin-top:5px;position:relative;z-index:1}
.entry-tag svg{width:12px;height:12px}

/* ---------- 16.4 须知卡（大课 / 私教共用） ---------- */
.notice-card{background:#fff;border:1px solid var(--line);border-left:4px solid var(--gold);
  border-radius:var(--r-m);box-shadow:var(--sh-1);padding:16px;overflow:hidden}
.notice-card.hard{border-left-color:var(--brand);
  background:linear-gradient(180deg,#FFF9F5,#fff)}
.nc-h{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px dashed var(--line)}
.nc-h svg{width:20px;height:20px;color:var(--gold);flex:0 0 auto}
.notice-card.hard .nc-h svg{color:var(--brand)}
.nc-h b{font-size:16px;font-weight:900}
.nc-pill{margin-left:auto;font-size:11.5px;font-weight:800;padding:3px 10px;border-radius:999px;
  background:var(--navy);color:#fff}
.nc-body{padding-top:4px}
.nc-row{padding:11px 0;border-bottom:1px solid #F1F4F9;font-size:13.5px;color:var(--ink-2);line-height:1.72}
.nc-row:last-child{border:0}
.nc-row b{display:block;font-size:14.5px;font-weight:800;color:var(--ink);margin-bottom:3px}
.nc-foot{margin-top:10px;padding-top:11px;border-top:1px dashed var(--line);
  font-size:12.5px;color:var(--ink-3);font-weight:600}
.nc-grid{padding-top:6px}
.nc-item{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid #F1F4F9}
.nc-item:last-child{border:0;padding-bottom:0}
.nc-n{width:26px;height:26px;border-radius:8px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--brand);color:#fff;font-size:13px;font-weight:900}
.nc-item b{font-size:14.5px;font-weight:800;display:block;margin-bottom:4px}
.nc-item p{font-size:13.5px;color:var(--ink-2);line-height:1.72}

/* ---------- 16.5 场地时间 ---------- */
.venue-grid{display:grid;gap:12px}
.venue{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:15px;box-shadow:var(--sh-1)}
.venue-h{display:flex;align-items:center;gap:10px;padding-bottom:12px;margin-bottom:4px;
  border-bottom:1px solid var(--line)}
.venue-ic{width:36px;height:36px;border-radius:11px;flex:0 0 auto;display:grid;place-items:center;
  background:var(--navy-soft);color:var(--navy-2)}
.venue-ic svg{width:19px;height:19px}
.venue-h b{font-size:15px;font-weight:900;display:block}
.venue-h i{font-style:normal;font-size:12px;color:var(--ink-3)}
.venue-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;
  border-bottom:1px solid #F1F4F9;font-size:13.5px}
.venue-row:last-of-type{border:0}
.venue-row span{color:var(--ink-2)}
.venue-row b{font-weight:800;font-variant-numeric:tabular-nums;color:var(--navy-2)}
.venue-note{display:flex;gap:7px;align-items:flex-start;margin-top:8px;padding:9px 11px;border-radius:10px;
  background:var(--gold-soft);font-size:12.5px;color:#8A6205;line-height:1.6}
.venue-note svg{width:14px;height:14px;flex:0 0 auto;margin-top:3px;color:var(--gold)}

/* ---------- 16.6 大课课表 ---------- */
.sch-tabs{margin-bottom:16px}
.sch-month{margin-bottom:16px}
.sch-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;padding:13px 15px;border-radius:var(--r-m);
  background:linear-gradient(135deg,#0E2244,#1B3D74);color:#fff;margin-bottom:11px}
.sch-h b{font-size:17px;font-weight:900;letter-spacing:.5px}
.sch-h span{font-size:13px;color:#9FB6D8;font-weight:700}
.sch-h i{font-style:normal;font-size:12px;color:#7D93B8;width:100%;margin-top:2px}
.sch-item{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);box-shadow:var(--sh-1);
  overflow:hidden;margin-bottom:10px}
.sch-meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:11px 14px;
  background:linear-gradient(180deg,#FAFBFE,#F2F6FC);border-bottom:1px solid var(--line)}
.sch-w{font-size:11.5px;font-weight:900;color:#fff;background:var(--navy);padding:2px 9px;border-radius:6px;
  font-variant-numeric:tabular-nums}
.sch-day{font-size:12.5px;font-weight:800;color:var(--brand-d);background:var(--brand-soft);
  padding:2px 9px;border-radius:6px}
.sch-d{font-size:13px;font-weight:800;color:var(--ink)}
.sch-place{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink-3)}
.sch-place svg{width:13px;height:13px}
.sch-tag{margin-left:auto;font-size:11.5px;font-weight:800;color:#9A6205;background:var(--gold-soft);
  border:1px solid #FBE3B4;padding:2px 9px;border-radius:999px}
.sch-g{display:grid;grid-template-columns:auto auto 1fr;gap:9px;padding:12px 14px;
  border-bottom:1px solid #F1F4F9;align-items:start}
.sch-g:last-child{border:0}
.sch-age{font-size:11.5px;font-weight:900;color:var(--navy-2);background:var(--navy-soft);
  padding:2px 8px;border-radius:6px;white-space:nowrap}
.sch-time{font-size:12px;font-weight:800;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.sch-gb{font-size:13.5px;color:var(--ink-2);line-height:1.72}
.sch-gb b{color:var(--ink);font-weight:900}
.sch-stop{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:13px 15px;border-radius:var(--r-m);
  background:#F4F6FA;border:1px dashed #C9D4E6;margin-bottom:10px}
.sch-stop svg{width:17px;height:17px;color:#93A0B4;flex:0 0 auto}
.sch-stop b{font-size:13px;font-weight:900;color:var(--ink-2)}
.sch-stop span{font-size:13px;font-weight:800;color:var(--navy-2)}
.sch-stop i{font-style:normal;font-size:12.5px;color:var(--ink-3)}

/* ---------- 16.7 私教课程 · 免费特权卡 ---------- */
.priv{border-radius:var(--r-l);overflow:hidden;border:1px solid #17325F;
  background:linear-gradient(150deg,#0C1E3C,#173B72 70%,#0E2244);color:#fff;
  box-shadow:var(--sh-2);display:grid}
.priv-l{padding:20px 18px;background:radial-gradient(420px 260px at 100% 0,rgba(255,78,26,.36),transparent 62%)}
.priv-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:800;color:#FFD9C7;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);padding:4px 11px;border-radius:999px}
.priv-badge svg{width:13px;height:13px;color:var(--gold)}
.priv-l h3{font-size:19px;font-weight:900;margin:13px 0 10px;line-height:1.35}
.priv-price{display:flex;align-items:baseline;gap:10px;margin-bottom:13px}
.priv-price b{font-size:44px;font-weight:900;color:#FF7A3D;line-height:1}
.priv-price i{font-style:normal;font-size:13px;color:#B9C8E2}
.priv-tags{display:flex;flex-wrap:wrap;gap:7px}
.priv-tags span{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#D6E0F0;
  background:rgba(255,255,255,.09);border-radius:999px;padding:4px 11px}
.priv-tags svg{width:12px;height:12px;color:#4ADE80}
.priv-r{padding:16px 18px 18px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:10px}
.priv-row{font-size:13.5px;color:#B9C8E2;line-height:1.8}
.priv-row b{color:#fff;font-weight:800}
.priv-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:4px}
.priv-flow span{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:10px;
  padding:9px 8px;text-align:center;font-size:12.5px;font-weight:800;color:#E6EDF8}
.priv-flow small{display:block;font-size:10.5px;font-weight:600;color:#8FA3C2;margin-top:3px;line-height:1.5}

/* ---------- 16.8 套餐卡 ---------- */
.pkg-group{margin-bottom:18px}
.pkg-h{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin-bottom:12px}
.pkg-h b{font-size:17px;font-weight:900;display:flex;align-items:center;gap:8px}
.pkg-h b::before{content:"";width:4px;height:17px;border-radius:3px;
  background:linear-gradient(180deg,var(--brand),#FF9A3D)}
.pkg-h span{font-size:12.5px;color:var(--ink-3)}
.pkg-grid{display:grid;gap:12px}
.pkg{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden;
  box-shadow:var(--sh-1);display:flex;flex-direction:column}
.pkg.mid{border-color:#FBE3B4}
.pkg.hot{border-color:#FFCFBB;box-shadow:var(--sh-2)}
.pkg-top{padding:14px 15px 12px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#FAFBFE,#F2F6FC)}
.pkg.mid .pkg-top{background:linear-gradient(180deg,#FFFBF0,#FFF6E3)}
.pkg.hot .pkg-top{background:linear-gradient(180deg,#FFF7F3,#FFEDE4)}
.pkg-top h3{font-size:16.5px;font-weight:900;line-height:1.35}
.pkg-price{display:flex;align-items:baseline;gap:5px;margin-top:7px}
.pkg-price b{font-size:27px;font-weight:900;color:var(--brand);line-height:1;letter-spacing:-.5px}
.pkg-price span{font-size:12.5px;font-weight:700;color:var(--ink-3)}
.pkg-tags{display:flex;flex-wrap:wrap;gap:6px;padding:11px 15px 0}
.pkg-tags span{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;
  color:var(--navy-2);background:var(--navy-soft);border-radius:7px;padding:4px 9px}
.pkg-tags svg{width:12px;height:12px}
.pkg-body{padding:11px 15px 15px;display:flex;flex-direction:column;gap:9px;flex:1}
.pkg-body p{font-size:13px;color:var(--ink-2);line-height:1.75}
.pkg-body .k{display:block;font-size:11.5px;font-weight:900;letter-spacing:.4px;margin-bottom:3px}
.pkg-body .k.bad{color:#C2410C}
.pkg-body .k.good{color:var(--brand-d)}
.pkg-body .k.out{color:#0A7F4B}
.pkg-list{display:flex;flex-direction:column;gap:6px;margin-top:2px}
.pkg-list li{position:relative;padding-left:16px;font-size:13px;color:var(--ink-2);line-height:1.7}
.pkg-list li::before{content:"";position:absolute;left:3px;top:9px;width:5px;height:5px;border-radius:50%;
  background:var(--brand)}

/* ---------- 16.9 CTA 条 ---------- */
.cta-band{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px;
  border-radius:var(--r-l);background:linear-gradient(120deg,#FF4E1A,#FF8A3D);color:#fff;
  box-shadow:0 12px 28px rgba(255,78,26,.26)}
.cta-band b{display:block;font-size:16px;font-weight:900}
.cta-band i{font-style:normal;font-size:13px;color:#FFE3D6}
.cta-band > div{flex:1;min-width:210px}
.cta-band .btn{background:#fff;color:var(--brand-d);box-shadow:none}
@media(max-width:520px){.cta-band .btn{width:100%}}

/* ---------- 16.10 约课系统 ---------- */
.yk-intro{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:15px;
  box-shadow:var(--sh-1)}
.yk-intro-t{display:flex;gap:11px;align-items:flex-start}
.yk-intro-t > svg{width:22px;height:22px;color:var(--brand);flex:0 0 auto;margin-top:2px}
.yk-intro-t b{font-size:14.5px;font-weight:800;line-height:1.6;display:block}
.yk-intro-t i{font-style:normal;font-size:12px;color:var(--ink-3)}
.yk-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;padding-top:12px;
  border-top:1px dashed var(--line);font-size:12.5px;color:var(--ink-2)}
.yk-legend span{display:inline-flex;align-items:center;gap:6px}
.lgd{width:11px;height:11px;border-radius:4px;display:inline-block}
.lgd.free{background:var(--green)}
.lgd.full{background:#C9D4E6}
.yk-alert{display:flex;gap:11px;align-items:flex-start;margin-top:12px;padding:14px 15px;
  border-radius:var(--r-m);background:var(--brand-soft);border:1px solid #FFD5C2}
.yk-alert svg{width:19px;height:19px;color:var(--brand);flex:0 0 auto;margin-top:2px}
.yk-alert b{font-weight:900;color:#B4552B}
.yk-alert div{font-size:13.5px;color:#8A3D18;line-height:1.75}
.yk-board{display:grid;gap:11px}
.yk-day{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:13px 14px;
  box-shadow:var(--sh-1)}
.yk-day-h{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.yk-day-h b{font-size:15.5px;font-weight:900}
.yk-kind{font-size:11px;font-weight:800;padding:2px 8px;border-radius:999px;
  background:var(--navy-soft);color:var(--navy-2)}
.yk-kind.we{background:var(--green-soft);color:#0A7F4B}
.yk-kind.dk{background:var(--brand-soft);color:var(--brand-d)}
.yk-day-h i{font-style:normal;margin-left:auto;font-size:11.5px;color:var(--ink-3)}
.yk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:7px}
.yk-slot{border:1px solid var(--line);border-radius:10px;padding:8px 6px;text-align:center;
  background:#fff;display:flex;flex-direction:column;gap:2px;transition:.16s}
.yk-slot b{font-size:12.5px;font-weight:900;font-variant-numeric:tabular-nums;line-height:1.2}
.yk-slot span{font-size:10.5px;font-weight:700;color:var(--ink-3)}
.yk-slot em{font-style:normal;font-size:10px;color:var(--ink-3)}
.yk-slot.free{background:var(--green-soft);border-color:#A7E8C8}
.yk-slot.free b{color:#0A7F4B}
.yk-slot.free span{color:#0A7F4B}
.yk-slot.free em{color:#3E8E68}
.yk-slot.full{background:#F5F7FB}
.yk-slot.full b,.yk-slot.full span{color:#8A97AB}
.yk-slot:hover{border-color:var(--brand);transform:translateY(-1px);box-shadow:var(--sh-1)}
.yk-slot.full:hover{border-color:#FFCFBB}

.yk-form-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:16px;
  box-shadow:var(--sh-1)}
.yk-form{display:grid;gap:12px}
.fk{display:flex;flex-direction:column;gap:5px}
.fk label{font-size:13px;font-weight:800;color:var(--ink-2)}
.fk label i{font-style:normal;color:var(--brand)}
.fk input,.fk select,.fk textarea{
  width:100%;border:1px solid var(--line);border-radius:10px;background:#FBFCFE;
  padding:11px 13px;font-size:15px;transition:.16s}
.fk input:focus,.fk select:focus,.fk textarea:focus{
  outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px var(--brand-soft)}
.fk textarea{resize:vertical;line-height:1.65}
.yk-submit{display:flex;flex-direction:column;gap:9px;margin-top:4px}
.yk-priv{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-3)}
.yk-priv svg{width:13px;height:13px}
.yk-done{text-align:center;padding:12px 4px 4px}
.yk-done-ic{display:inline-grid;place-items:center;width:56px;height:56px;border-radius:50%;
  background:var(--green-soft);color:var(--green);margin-bottom:12px}
.yk-done-ic svg{width:30px;height:30px}
.yk-done h3{font-size:18px;font-weight:900;margin-bottom:7px}
.yk-done p{font-size:13.5px;color:var(--ink-2);line-height:1.75}
.yk-done .fontnote{text-align:left;margin-bottom:13px}

/* ---------- 16.11 常见问题 ---------- */
.faq{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);margin-bottom:9px;
  box-shadow:var(--sh-1);overflow:hidden}
.faq summary{display:flex;align-items:center;gap:10px;padding:14px 15px;cursor:pointer;
  font-size:14.5px;font-weight:800;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--brand)}
.faq-i{margin-left:auto;flex:0 0 auto;color:var(--ink-3);transition:.2s}
.faq-i svg{width:17px;height:17px}
.faq[open] .faq-i{transform:rotate(45deg);color:var(--brand)}
.faq-a{padding:0 15px 15px;font-size:13.5px;color:var(--ink-2);line-height:1.8;
  border-top:1px dashed var(--line);padding-top:12px}

/* ---------- 16.12 首页 · 大课速览 ---------- */
.pv-row{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-m);padding:12px 13px;box-shadow:var(--sh-1);margin-bottom:9px;transition:.18s}
.pv-row:hover{border-color:#FFCFBB;transform:translateX(2px)}
.pv-day{flex:0 0 auto;text-align:center;min-width:62px;padding-right:12px;border-right:1px solid var(--line)}
.pv-day b{display:block;font-size:14px;font-weight:900;color:var(--brand-d)}
.pv-day i{font-style:normal;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.pv-b{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.pv-g{display:flex;gap:7px;align-items:baseline;font-size:13px}
.pv-g em{font-style:normal;font-size:10.5px;font-weight:800;color:var(--navy-2);background:var(--navy-soft);
  padding:1px 6px;border-radius:5px;white-space:nowrap;flex:0 0 auto}
.pv-g b{font-weight:800;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-place{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--ink-3)}
.pv-place svg{width:12px;height:12px}
.pv-go{flex:0 0 auto;color:var(--ink-3)}
.pv-go svg{width:16px;height:16px}

/* ---------- 16.13 首页 · 教练团队 ---------- */
.coach-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.coach-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-m);padding:14px 12px;
  text-align:center;box-shadow:var(--sh-1)}
.cc-av{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;margin:0 auto 9px;
  background:linear-gradient(135deg,var(--navy-2),var(--navy-3));color:#fff;font-size:20px;font-weight:800;
  border:3px solid #fff;box-shadow:0 4px 13px rgba(14,34,68,.18)}
.coach-card b{font-size:15px;font-weight:900;display:block}
.cc-r{display:inline-block;font-size:11px;font-weight:800;color:var(--brand-d);background:var(--brand-soft);
  padding:2px 8px;border-radius:999px;margin-top:4px}
.coach-card p{font-size:11.5px;color:var(--ink-3);margin-top:7px;line-height:1.6}

/* ---------- 16.14 首页 · 训练实拍条 ---------- */
.shot-strip{display:flex;gap:9px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}
.shot-strip::-webkit-scrollbar{display:none}
.shot{flex:0 0 auto;width:132px;height:98px;border-radius:var(--r-s);overflow:hidden;position:relative;
  background:linear-gradient(150deg,#E8EDF6,#CFDAEB);display:grid;place-items:center;color:#A9B6CC}
.shot svg{width:24px;height:24px}
.shot .cap{position:absolute;left:0;right:0;bottom:0;padding:5px 8px;font-size:10.5px;color:#fff;
  background:linear-gradient(transparent,rgba(9,22,44,.75));text-align:left}

/* ---------- 16.15 响应式 ---------- */
@media(min-width:720px){
  .entry-grid{grid-template-columns:repeat(4,1fr);gap:14px}
  .venue-grid{grid-template-columns:1fr 1fr;gap:14px}
  .yk-board{grid-template-columns:repeat(2,1fr)}
  .coach-grid{grid-template-columns:repeat(3,1fr)}
  .shot{width:168px;height:122px}
  .yk-form{grid-template-columns:1fr 1fr;gap:14px}
  .fk-wide{grid-column:1/-1}
  .yk-submit{flex-direction:row;align-items:center;gap:14px}
  .pkg-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
}
@media(min-width:1000px){
  .priv{grid-template-columns:1fr 1.05fr}
  .priv-r{border-top:0;border-left:1px solid rgba(255,255,255,.12)}
  .coach-grid{grid-template-columns:repeat(5,1fr)}
  .yk-board{grid-template-columns:repeat(2,1fr)}
  .sch-g{grid-template-columns:70px 64px 1fr;gap:14px}
}

/* ==========================================================================
   Phase 2 新增：学员状态标签 / 约课「群内接龙」态
   ========================================================================== */
.st-tag{display:inline-block;font-size:11px;font-weight:800;border-radius:6px;padding:1px 6px;line-height:1.6;white-space:nowrap}
.st-zai {background:#E7F8F0;color:#0A7F4B}
.st-biye{background:#EDF1F8;color:#42557A}
.st-tui {background:#FFF3E0;color:#A8621B}
.st-kai {background:#FDECEC;color:#C0392B}
.pf-stat b.st{font-size:16px;letter-spacing:.5px}

.lgd.relay{background:var(--navy-2)}
.yk-slot.relay{background:#EEF3FF;border-color:#BFD3F5}
.yk-slot.relay b{color:#17325F}
.yk-slot.relay span{color:#3C5B94}
.yk-slot.relay em{color:#5B77AA}
.yk-slot.relay:hover{border-color:var(--navy-2)}

.priv-flow-note{margin-top:9px;display:flex;gap:7px;align-items:flex-start;font-size:12.5px;
  line-height:1.65;color:#B9C9E4;background:rgba(255,255,255,.06);
  border:1px dashed rgba(255,255,255,.18);border-radius:10px;padding:9px 11px}
.priv-flow-note svg{flex:0 0 auto;width:14px;height:14px;margin-top:2px;color:var(--gold)}
.notice-bar{background:linear-gradient(90deg,var(--navy),var(--navy-2));color:#E8EFFA;font-size:13px;
  padding:8px 16px;display:flex;align-items:center;gap:8px;justify-content:center;line-height:1.5;text-align:center}
.notice-bar .ico{width:15px;height:15px;flex:0 0 auto;color:var(--gold)}
.notice-bar a{color:var(--gold);text-decoration:underline}

/* ==========================================================================
   17. 追光少年 v3 —— 单项分（国标指标库）/ 头像 / 训练实拍真图 / 页脚两栏
   ========================================================================== */

/* 头像换成真实照片时：撑满圆框、不变形 */
.ava{position:relative;z-index:0}
.ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}

/* 训练实拍：有真图就用图，铺满整块 */
.shot.pic{background:#0E2244}
.shot.pic img{width:100%;height:100%;object-fit:cover;display:block}
.shot.pic::after{content:"";position:absolute;left:0;right:0;bottom:0;height:44%;
  background:linear-gradient(180deg,rgba(14,34,68,0),rgba(14,34,68,.78))}
.shot.pic{cursor:zoom-in}
.shot.pic .cap{z-index:2}
.shot.pic:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* ---------- 图片灯箱（训练实拍点击看大图） ---------- */
.lb{
  position:fixed;inset:0;z-index:9999;display:none;
  background:rgba(8,16,32,.92);
  padding:24px;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent
}
.lb.on{display:flex}
.lb-in{margin:0;max-width:min(94vw,1000px);max-height:88vh;display:flex;flex-direction:column;
  align-items:center;gap:12px}
.lb-in img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:10px;
  background:#0B1C38;box-shadow:0 24px 60px rgba(0,0,0,.5)}
.lb-cap{font-size:13.5px;color:#D6E0F0;text-align:center;line-height:1.5}
.lb-x{
  position:absolute;top:14px;right:14px;width:42px;height:42px;border:0;border-radius:50%;
  background:rgba(255,255,255,.16);color:#fff;cursor:pointer;display:grid;place-items:center;
  transition:.16s
}
.lb-x:hover{background:rgba(255,255,255,.3)}
.lb-x svg{width:20px;height:20px}
@media(max-width:600px){
  .lb{padding:14px}
  .lb-x{top:10px;right:10px;width:38px;height:38px}
  .lb-in img{max-height:74vh}
}

/* ---------- 成绩档案：紧凑网格 ---------- */
.rec-list{display:grid;gap:8px}
.rec-item{
  display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:3px 10px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  padding:9px 12px;box-shadow:var(--sh-1)
}
.rec-item .rc-n{font-size:13.5px;font-weight:800;min-width:0;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.rec-item .rc-v{font-size:15.5px;font-weight:900;line-height:1.1;font-variant-numeric:tabular-nums;
  white-space:nowrap}
.rec-item .rc-v em{font-style:normal;font-size:11px;font-weight:700;color:var(--ink-3);margin-left:2px}
.rec-item .rc-s{display:flex;align-items:center;gap:5px;flex:0 0 auto}
.rec-item .rc-m{grid-column:1/-1;font-size:11px;color:var(--ink-3);line-height:1.5}

/* 单项分徽标 + 等级色（红=优秀 / 蓝=良好 / 绿=及格 / 灰红=未达标） */
.sb{font-style:normal;font-weight:900;font-size:14px;line-height:1;padding:4px 8px;
  border-radius:8px;background:#F1F4F9;color:#33415C;white-space:nowrap}
.sb span{font-size:10px;margin-left:1px;font-weight:800}
.sb.low{font-size:11.5px;background:#F4F6FA;color:#93A0B4}
.sb.lv-yx{background:#FFF0E9;color:#D9480F}
.sb.lv-lh{background:#E8F3FF;color:#1D6FB8}
.sb.lv-jg{background:#E7F8F0;color:#0E8A5F}
.sb.lv-bj{background:#FDECEC;color:#C0392B}
.lvt{font-style:normal;font-size:10.5px;font-weight:800;padding:2px 6px;border-radius:999px;
  background:#F1F4F9;color:#5B6980;white-space:nowrap}
.lvt.lv-yx{background:#FFF0E9;color:#D9480F}
.lvt.lv-lh{background:#E8F3FF;color:#1D6FB8}
.lvt.lv-jg{background:#E7F8F0;color:#0E8A5F}
.lvt.lv-bj{background:#FDECEC;color:#C0392B}
/* 成绩档案副标里的年级小签 */
.std-g{display:inline-block;margin-left:7px;font-size:11px;font-weight:800;color:var(--brand-d);
  background:var(--brand-soft);padding:1px 8px;border-radius:999px}

/* 学员卡片上的成绩块：成绩 + 单项分并排 */
.pb-r{display:flex;align-items:baseline;gap:7px}
.pb .sb{font-size:11.5px;padding:3px 6px}
.pb .sb span{font-size:9.5px}

/* 离营状态：不再用「开除」的红色，改中性灰蓝 */
.st-kai{background:#EEF1F6;color:#5B6980}

/* 页脚快速导航：两栏 */
.foot-nav2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.foot-nav2 li{margin-bottom:7px}

/* ---------- 成绩档案 · 非国标项目小签 ---------- */
.lvt.none{background:#F4F6FA;color:#93A0B4;cursor:help}

/* ---------- 荣誉之星卡片：卡片中部上下滚动展示荣誉 ---------- */
/* 2026-10-02：滚动条前面那个「荣誉墙」小标签已去掉（卡片本来就窄，白占宽度） */
.hb2{display:flex;align-items:center;gap:8px;background:var(--brand-soft);
  border-radius:var(--r-s);padding:8px 11px}
.roll{flex:1;min-width:0;height:20px;overflow:hidden;position:relative}
.roll-in{display:flex;flex-direction:column;animation:rollY 8s linear infinite}
.roll.hold .roll-in{animation:none}
.roll-in > span{height:20px;line-height:20px;font-size:12.5px;font-weight:800;color:#8A4A1E;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@keyframes rollY{0%,18%{transform:translateY(0)}100%{transform:translateY(-50%)}}
.pcard:hover .roll-in{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.roll-in{animation:none}}

/* ---------- 学员详情 · 分块白卡（2026-10-02 版式重做） ----------
   一个主题一张白卡：标题挪进卡内（橙竖条 + 卡内细分割线），卡与卡之间留灰底间隔。
   以前是「灰底上飘一个大标题 + 下面各自一张白卡」，标题和内容的关系要猜，几块连在一起就糊成一片。 */
.pblk{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  box-shadow:var(--sh-1);padding:15px 15px 16px;margin-top:16px}
.pblk-h{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap;
  padding-bottom:11px;margin-bottom:13px;border-bottom:1px solid var(--line)}
.pblk-h h2{font-size:17px;font-weight:900;letter-spacing:-.2px;line-height:1.2;
  display:flex;align-items:center;gap:8px}
.pblk-h h2::before{content:"";flex:0 0 auto;width:4px;height:17px;border-radius:3px;
  background:linear-gradient(180deg,var(--brand),#FF9A3D)}
.pblk-h p{font-size:12.5px;color:var(--ink-3);margin-top:3px}
.pblk-note{font-size:12.5px;color:var(--ink-3);display:inline-flex;align-items:center;
  flex-wrap:wrap;padding-bottom:1px}
.pblk-empty{text-align:center;color:var(--ink-3);font-size:13.5px;padding:14px 0 4px}
/* 白卡里的条目改成扁平淡底条纹，不再卡里套卡 */
.pblk .rec-item{background:#F7F9FD;border-color:#EDF1F7;box-shadow:none}
.pblk .ms-item{background:#FFF8F2;border-color:#FBE3D5;box-shadow:none}
.pblk .art-row{background:#F7F9FD;border-color:#EDF1F7;box-shadow:none}
.pblk .art-row:hover{background:#F1F5FB;border-color:#FFCFBB}

/* ---------- 学员详情 · 荣誉墙通栏两列 ---------- */
.honor-full{column-count:2;column-gap:34px;padding-left:0}
.honor-full::before{display:none}
.honor-full .tl-item{padding:0 0 15px 20px;break-inside:avoid;page-break-inside:avoid}
.honor-full .tl-item::before{left:0;top:4px;width:12px;height:12px}
.honor-full .tl-item:last-child{padding-bottom:0}
@media(max-width:640px){
  .honor-full{column-count:1}
}

@media(min-width:640px){
  .rec-list{grid-template-columns:1fr 1fr}
}
@media(min-width:720px){
  .foot-grid{grid-template-columns:1.25fr 1.25fr 1.1fr}
}

/* ==========================================================================
   抢课（grab.php）—— 到点开放、限额发号
   名次由服务端锁定，界面重点：倒计时、剩余名额、我抢到了第几号。
   ========================================================================== */
.gb-lead{font-size:14px;color:var(--ink-2);background:var(--card);border:1px solid var(--line);
  border-left:4px solid var(--brand);border-radius:var(--r-s);padding:13px 15px;margin:0 0 16px}
.gb-relay{font-size:12.5px;color:var(--ink-3);margin:16px 0 0;text-align:center}
.gb-wrap{display:grid;gap:16px}
.gb-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  box-shadow:var(--sh-1);padding:16px}
.gb-h{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-bottom:12px;border-bottom:1px solid var(--line)}
.gb-h h2{font-size:18px;font-weight:900;letter-spacing:-.2px}
.gb-h p{font-size:13px;color:var(--ink-2);margin-top:4px}
.gb-pill{flex:0 0 auto;font-size:12px;font-weight:800;padding:4px 11px;border-radius:20px;
  background:#F1F4F9;color:#7A8699;border:1px solid var(--line);white-space:nowrap}
.gb-pill.open{background:var(--green-soft);color:#0A7F4B;border-color:#BFE7D5}
.gb-pill.closed{background:#FAFBFC;color:var(--ink-3)}
.gb-note{font-size:12.5px;color:var(--ink-3);margin-top:9px}
.gb-meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--ink-2);margin-top:10px}
.gb-meta .ico{display:inline;vertical-align:-2px;margin-right:4px}
.gb-meta b{color:var(--ink)}
.gb-cd{margin-top:12px;background:#0E2244;border-radius:var(--r-s);padding:11px 14px;
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.gb-cd i{font-style:normal;font-size:12.5px;color:#9FB2D2}
.gb-cd b{font-size:20px;font-weight:900;color:#fff;letter-spacing:1px;
  font-variant-numeric:tabular-nums}
.gb-cd.go{background:linear-gradient(90deg,#12B76A,#0E9E5A)}
.gb-cd.go b{font-size:16px}
.gb-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.gb-stats>div{background:#F7F9FD;border:1px solid #EDF1F7;border-radius:var(--r-s);
  padding:9px 10px;text-align:center}
.gb-stats i{display:block;font-style:normal;font-size:11.5px;color:var(--ink-3)}
.gb-stats b{display:block;font-size:19px;font-weight:900;color:var(--navy);margin-top:2px;
  font-variant-numeric:tabular-nums}
.gb-stats b span{font-size:11.5px;font-weight:600;color:var(--ink-3);margin-left:2px}
.gb-stats>div.zero b{color:var(--ink-3);font-size:15px}
.gb-stats>div.zero{background:#FAFBFC}
.gb-over{margin-top:8px;font-size:12.5px;color:var(--gold);font-weight:700;text-align:right}
.gb-form{margin-top:14px;display:grid;gap:9px}
.gb-f{display:grid;gap:5px}
.gb-f label{font-size:12.5px;font-weight:700;color:var(--ink-2)}
.gb-f input{width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:var(--r-s);
  background:#fff;font-size:14.5px}
.gb-f input:focus{border-color:var(--brand);outline:none}
.gb-act{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:2px}
.gb-btn{min-width:132px;justify-content:center}
.gb-btn[disabled]{opacity:.5;cursor:not-allowed}
.gb-priv{font-size:11.5px;color:var(--ink-3)}
.gb-res{margin-top:12px;border-radius:var(--r-s);padding:13px 14px;font-size:13.5px;
  background:#FAFBFC;border:1px solid var(--line)}
.gb-res.ok{background:var(--green-soft);border-color:#BFE7D5}
.gb-res.wait{background:var(--gold-soft);border-color:#F5DFAE}
.gb-res.info{background:#EEF3FF;border-color:#D3DEFB}
.gb-res.bad{background:#FFF1F0;border-color:#FBD5D0}
.gb-res.err{background:#FFF1F0;border-color:#FBD5D0;color:#B3271A;font-weight:600}
.gb-r-h{display:flex;align-items:center;gap:7px;font-weight:900;color:var(--navy);font-size:15px}
.gb-r-no{margin-top:9px;display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.gb-r-no span{font-size:12.5px;color:var(--ink-2)}
.gb-r-no b{font-size:30px;font-weight:900;color:var(--brand);line-height:1;
  font-variant-numeric:tabular-nums}
.gb-r-no i{font-style:normal;font-size:13px;font-weight:700;color:var(--ink-2)}
.gb-r-meta{margin-top:8px;display:flex;align-items:baseline;gap:7px;font-size:12.5px;color:var(--ink-2)}
.gb-r-meta b{font-weight:900;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:.3px}
.gb-res p{margin-top:9px;font-size:12.5px;color:var(--ink-2)}
.gb-listwrap{margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}
.gb-listwrap h3{font-size:13px;font-weight:800;color:var(--ink-2);margin-bottom:9px}
.gb-list-empty{font-size:12.5px;color:var(--ink-3)}
.gb-list-in{display:grid;gap:5px;max-height:250px;overflow:auto}
.gb-n{display:flex;align-items:center;gap:9px;font-size:13px;padding:4px 11px 4px 5px;
  background:#F7F9FD;border:1px solid #EDF1F7;border-radius:9px;color:var(--ink-2)}
.gb-n>b{flex:0 0 auto;min-width:28px;height:22px;padding:0 4px;display:inline-flex;
  align-items:center;justify-content:center;background:#0E2244;color:#fff;border-radius:6px;
  font-size:12px;font-weight:900;font-variant-numeric:tabular-nums}
.gb-nk{font-weight:800;color:var(--ink)}
.gb-n em{font-style:normal;font-size:11px;font-weight:800;color:var(--gold)}
.gb-nt{margin-left:auto;font-style:normal;font-size:11.5px;color:var(--ink-3);font-weight:700;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.gb-n.wait{background:var(--gold-soft);border-color:#F5DFAE}
.gb-n.wait>b{background:var(--gold)}
.gb-n.forced{background:#FFF7F2;border-color:#FFDCCB}
.gb-n.forced>b{background:var(--brand)}
.gb-n.forced .gb-nt{color:var(--brand)}
.gb-querybox{margin-top:16px;padding-top:12px;border-top:1px dashed var(--line)}
.gb-querybox>b{font-size:13px;font-weight:800;color:var(--ink-2)}
.gb-qr{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.gb-qkid{flex:1 1 170px;min-width:150px;padding:10px 12px;border:1.5px solid var(--line);
  border-radius:var(--r-s);font-size:14.5px;background:#fff}
.gb-qout{margin-top:9px;font-size:13px;font-weight:700;color:var(--ink-2)}
.gb-qout.ok{color:#0A7F4B}
.gb-qout.err{color:#B3271A}
.pad{padding:22px}
@media(min-width:760px){
  .gb-form{grid-template-columns:1fr 1fr}
  .gb-f.wide,.gb-act{grid-column:1/-1}
}

/* ==========================================================================
   页脚信息块（SEO）——每页底部一段服务端渲染的真实介绍 + 栏目链接
   百度不执行 JS，这一段是给它抓的兜底；后台「SEO 设置」可以关掉。
   ========================================================================== */
.seo-foot{background:#fff;border-top:1px solid var(--line);padding:26px 0 22px}
.seo-foot h2{font-size:14.5px;font-weight:900;color:var(--navy);margin-bottom:9px}
.seo-foot p{font-size:12.5px;color:var(--ink-2);line-height:1.85;max-width:900px}
.seo-foot-l{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.seo-foot-l a{font-size:12.5px;color:var(--ink-2);padding:4px 11px;border:1px solid var(--line);
  border-radius:20px;background:#F7F9FD}
.seo-foot-l a:hover{border-color:#FFCFBB;color:var(--brand)}
.seo-foot-c{margin-top:11px;font-size:11.5px;color:var(--ink-3)}
.foot-icp{margin-top:10px;font-size:11.5px;color:#8C9BB3;text-align:center}
.foot-icp a{color:#8C9BB3}
.foot-icp a:hover{color:#fff}

/* ==========================================================================
   往期集训回顾 —— 视频卡片（封面 + 点击就地展开 B 站播放器）
   ========================================================================== */
.rv-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:760px){.rv-grid{grid-template-columns:1fr 1fr}}
.rv-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);
  overflow:hidden;box-shadow:var(--sh-1);transition:box-shadow .2s,transform .2s}
.rv-card:hover{box-shadow:var(--sh-2);transform:translateY(-2px)}
.rv-frame{position:relative;width:100%;padding-top:56.25%;background:#0B0F18}
.rv-frame iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0;display:block}
.rv-cover{position:absolute;top:0;left:0;width:100%;height:100%;padding:0;display:block;
  cursor:pointer;background:#0B0F18;overflow:hidden}
.rv-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.rv-cover:hover img{transform:scale(1.04)}
.rv-cover .rv-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:58px;height:58px;border-radius:50%;background:rgba(255,78,26,.94);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 24px rgba(0,0,0,.34);transition:background .2s,transform .2s}
.rv-cover:hover .rv-play{background:var(--brand-d);transform:translate(-50%,-50%) scale(1.07)}
.rv-cover .rv-play svg{width:24px;height:24px;margin-left:3px}
.rv-cover .rv-dur{position:absolute;right:9px;bottom:9px;background:rgba(0,0,0,.74);color:#fff;
  font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px;letter-spacing:.3px}
.rv-meta{padding:13px 15px 15px}
.rv-meta .rv-tag{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.4px;
  color:var(--brand);background:var(--brand-soft);padding:2px 9px;border-radius:20px;margin-bottom:8px}
.rv-meta h3{font-size:15px;font-weight:800;line-height:1.5;color:var(--navy);letter-spacing:-.1px}
