/* ==========================================================================
   mod-business.css —— 会员与卡种（mbs-） + 教练管理（cch-）
   宣纸底 / 墨色骨架 / 朱砂点睛 / 鎏金细节 / 段位色编码
   ========================================================================== */

/* ==========================================================================
   一、会员与卡种
   ========================================================================== */

/* ---------------- 卡种套餐 ---------------- */
.mbs-pkgs{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;
}
.mbs-pkg{
  padding:13px 14px 12px;overflow:hidden;
  display:flex;flex-direction:column;gap:2px;
  transition:box-shadow .16s,transform .16s,border-color .16s;
}
.mbs-pkg::before{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:var(--pkg-c,var(--ink-3));opacity:.85;
}
.mbs-pkg:hover{box-shadow:var(--sh-2);transform:translateY(-1px);border-color:var(--line-2)}
.mbs-pkg[data-tone="ink"]{--pkg-c:var(--ink-2);--pkg-tint:#EAE3D5}
.mbs-pkg[data-tone="cinnabar"]{--pkg-c:var(--cinnabar);--pkg-tint:var(--cinnabar-l)}
.mbs-pkg[data-tone="gold"]{--pkg-c:var(--gold-d);--pkg-tint:var(--gold-l)}
.mbs-pkg[data-tone="indigo"]{--pkg-c:var(--indigo);--pkg-tint:var(--indigo-l)}
.mbs-pkg[data-tone="jade"]{--pkg-c:var(--jade);--pkg-tint:var(--jade-l)}

.mbs-pkg-top{display:flex;align-items:center;gap:6px;margin-bottom:7px}
.mbs-pkg-type{
  background:var(--pkg-tint);color:var(--pkg-c);
  border:1px solid color-mix(in srgb,var(--pkg-c) 28%,#fff);
}
.mbs-pkg-tag{margin-left:auto}
.mbs-pkg-name{font-family:var(--f-serif);font-size:15.5px;letter-spacing:.04em;color:var(--ink)}
.mbs-pkg-desc{font-size:11.5px;color:var(--ink-4);line-height:1.6;margin-top:4px;min-height:36px}
.mbs-pkg-price{margin-top:8px;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.mbs-pkg-amt{font-size:23px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.mbs-pkg-unit{font-size:11px;color:var(--ink-4)}
.mbs-pkg-meta{
  margin-top:6px;padding-top:7px;border-top:1px dashed var(--line);
  display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--ink-4);
}
.mbs-pkg-btn{margin-top:10px;color:var(--pkg-c,var(--ink-3));border-color:color-mix(in srgb,var(--pkg-c,var(--line-2)) 34%,#fff)}
.mbs-pkg-btn:hover{background:var(--pkg-tint,#FBF8F2);border-color:var(--pkg-c,var(--ink-4));color:var(--pkg-c,var(--ink))}

/* ---------------- 续费提醒 ---------------- */
.mbs-rem-list{overflow:hidden}
.mbs-rem{
  display:flex;align-items:center;gap:14px;padding:11px 14px;
  border-bottom:1px solid var(--paper-2);border-left:3px solid var(--rem-c,var(--gold));
  transition:background .14s;
}
.mbs-rem:last-child{border-bottom:0}
.mbs-rem:hover{background:var(--card-2)}
.mbs-rem.is-out{--rem-c:var(--cinnabar);background:linear-gradient(90deg,rgba(193,56,44,.05),transparent 42%)}
.mbs-rem.is-near{--rem-c:#D08A3A}
.mbs-rem.is-warn{--rem-c:var(--gold)}
.mbs-rem-l{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0}
.mbs-rem-who{min-width:0}
.mbs-rem-name{display:flex;align-items:center;gap:6px;font-size:13px}
.mbs-rem-g{font-size:11.5px;color:var(--ink-4);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbs-rem-mid{flex:0 0 132px}
.mbs-rem-n{display:flex;align-items:baseline;gap:5px}
.mbs-rem-n b.num{font-size:19px;font-weight:700;color:var(--rem-c,var(--ink-2))}
.mbs-rem-script{
  flex:1;min-width:0;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--r-s);padding:7px 10px;display:flex;flex-direction:column;gap:2px;
}
.mbs-rem-q{font-family:var(--f-serif);font-size:12.5px;line-height:1.65;color:var(--ink-2)}
.mbs-rem-act{display:flex;gap:6px;flex:0 0 auto}
.mbs-rem-act .btn{padding:0 10px}

/* ---------------- 会员台账 ---------------- */
.mbs-tbl-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-m);background:var(--card)}
.mbs-tbl{min-width:900px}
.mbs-tbl thead th{position:sticky;top:0;z-index:2}
.mbs-stu{display:flex;align-items:center;gap:8px}
.mbs-stu-name{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3}
.mbs-stu-code{font-size:10.5px;color:var(--ink-5);line-height:1.3}
.mbs-cls{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.mbs-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;box-shadow:inset 0 0 0 1px rgba(26,22,19,.18)}
.mbs-pkgname{font-size:12.5px;line-height:1.3}
.mbs-bal{min-width:96px}
.mbs-bal-n{display:flex;align-items:baseline;gap:2px}
.mbs-bal-n b.num{font-size:14.5px;font-weight:700;color:var(--ink-2)}
.mbs-bal .bar{margin-top:4px}
.mbs-bal .bar > i{background:var(--bc,var(--ink-3))}
.mbs-bal.is-low .bar > i{background:linear-gradient(90deg,#D4463A,#A82B21)}
.mbs-bal.is-low .mbs-bal-n b.num{color:var(--cinnabar)}
.mbs-belt-white{--bc:#BFB29A}
.mbs-belt-yellow{--bc:var(--belt-yellow)}
.mbs-belt-green{--bc:var(--belt-green)}
.mbs-belt-blue{--bc:var(--belt-blue)}
.mbs-belt-purple{--bc:var(--belt-purple)}
.mbs-belt-brown{--bc:var(--belt-brown)}
.mbs-belt-black{--bc:#4A4038}
.mbs-date{font-family:var(--f-num);font-size:12px;line-height:1.35}
.mbs-ops{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end}
.mbs-phone{width:26px;height:26px;color:var(--ink-4)}
.mbs-phone:hover{color:var(--cinnabar);background:var(--cinnabar-l)}
.mbs-list-note{font-size:11.5px;color:var(--ink-4);margin-top:9px;text-align:right}

/* ---------------- 会员卡片视图 ---------------- */
.mbs-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mbs-mcard{padding:13px 14px;display:flex;flex-direction:column;gap:9px}
.mbs-mcard-top{display:flex;align-items:center;gap:11px}
.mbs-mcard-who{min-width:0}
.mbs-mcard-name{font-family:var(--f-serif);font-size:15px;font-weight:700;letter-spacing:.03em}
.mbs-mcard-sub{display:flex;align-items:center;gap:6px;margin-top:3px;flex-wrap:wrap}
.mbs-mcard-mid{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3)}
.mbs-mcard-exp{display:inline-flex;align-items:center;gap:4px;color:var(--ink-4)}
.mbs-mcard-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:9px;border-top:1px dashed var(--line)}

/* ---------------- 弹窗内的摘要 ---------------- */
.mbs-sum{
  margin-top:14px;padding:10px 12px;background:var(--paper);border:1px solid var(--line);
  border-left:3px solid var(--gold);border-radius:var(--r-s);
  font-size:12.5px;color:var(--ink-2);line-height:1.65;
}
.mbs-sum b{font-family:var(--f-serif);font-size:14px;color:var(--ink)}
.mbs-now{
  display:flex;flex-direction:column;gap:5px;padding:10px 12px;margin-bottom:12px;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);
}
.mbs-now-n{display:flex;align-items:center;gap:8px}
.mbs-now-n b.num{font-size:22px;font-weight:700;color:var(--cinnabar)}
.mbs-tip{
  display:flex;align-items:flex-start;gap:7px;padding:9px 11px;margin-bottom:12px;
  background:var(--gold-l);border:1px solid var(--gold-b);border-radius:var(--r-s);
  font-size:12px;color:var(--gold-d);line-height:1.6;
}
.mbs-tip > span:first-child{display:inline-flex;color:var(--gold-d);flex:0 0 auto;margin-top:1px}

/* ==========================================================================
   二、教练管理
   ========================================================================== */

/* ---------------- 卡片墙 ---------------- */
.cch-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.cch-card{
  padding:14px 15px 12px;display:flex;flex-direction:column;gap:9px;position:relative;overflow:hidden;
  transition:box-shadow .16s,transform .16s,border-color .16s;
}
.cch-card::before{
  content:"";position:absolute;inset:0 0 auto 0;height:2px;
  background:linear-gradient(90deg,var(--gold),rgba(199,154,69,0) 72%);
}
.cch-card:hover{box-shadow:var(--sh-2);transform:translateY(-1px);border-color:var(--line-2)}
.cch-top{display:flex;align-items:center;gap:12px}
.cch-id{min-width:0}
.cch-name{display:flex;align-items:baseline;gap:6px}
.cch-name b{font-family:var(--f-serif);font-size:16.5px;font-weight:700;letter-spacing:.04em}
.cch-no{font-size:10.5px;color:var(--ink-5);letter-spacing:.06em}
.cch-sub{display:flex;align-items:center;gap:7px;margin-top:3px;flex-wrap:wrap}
.cch-rank{font-size:11.5px;color:var(--ink-3)}
.cch-style{
  display:inline-flex;align-items:center;gap:6px;align-self:flex-start;
  font-size:12px;color:var(--ink-2);background:var(--card-2);
  border:1px solid var(--line);border-radius:var(--r-s);padding:3px 9px;
}
.cch-style > span:first-child{display:inline-flex;color:var(--gold-d)}
.cch-rows{display:flex;flex-direction:column;gap:6px}
.cch-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12px}
.cch-row-k{display:inline-flex;align-items:center;gap:6px;color:var(--ink-4);flex:0 0 auto}
.cch-row-k > span:first-child{display:inline-flex}
.cch-row-v{color:var(--ink-2);text-align:right}
.cch-star{display:inline-flex;align-items:center;gap:4px;color:var(--gold-d)}
.cch-star > span:first-child{display:inline-flex}
.cch-star .num{font-weight:700;font-size:13px;color:var(--ink-2)}
.cch-cls{padding-top:8px;border-top:1px dashed var(--line)}
.cch-cls-l{font-size:11px;color:var(--ink-4);letter-spacing:.04em}
.cch-cls-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.cch-cl{
  display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--ink-2);
  background:var(--card-2);border:1px solid var(--line);border-radius:var(--r-xs);padding:2px 7px;
}
.cch-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px;box-shadow:inset 0 0 0 1px rgba(26,22,19,.18)}
.cch-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px}
.cch-mini{display:flex;gap:12px;font-size:11.5px;color:var(--ink-3);flex-wrap:wrap}
.cch-mini b{font-family:var(--f-num);font-size:13.5px;color:var(--ink-2)}

/* ---------------- 数据卡 ---------------- */
.cch-stats{gap:12px}
.cch-stat{padding:12px 14px}
.cch-stat-h{display:flex;align-items:center;gap:9px;padding-bottom:10px;border-bottom:1px solid var(--paper-2)}
.cch-stat-name{font-family:var(--f-serif);font-size:14px;font-weight:700;letter-spacing:.03em;line-height:1.3}
.cch-stat-tag{margin-left:auto;font-size:10.5px;color:var(--ink-4);border:1px solid var(--line-2);border-radius:3px;padding:1px 6px}
.cch-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--paper-2);margin-top:10px;border:1px solid var(--paper-2)}
.cch-metric{background:var(--card);padding:8px 10px}
.cch-metric-k{font-size:11px;color:var(--ink-4)}
.cch-metric-v{display:flex;align-items:baseline;gap:2px;margin-top:2px}
.cch-metric-v .num{font-size:17px;font-weight:700;color:var(--ink-2);line-height:1.2}
.cch-metric-v small{font-size:11px;color:var(--ink-4)}
.cch-metric-v.is-warn .num{color:var(--cinnabar)}
.cch-metric-v.is-gold .num{color:var(--gold-d)}

/* ---------------- 师资总览 ---------------- */
.cch-ov{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.cch-donut{flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.cch-legend{display:flex;flex-direction:column;gap:7px;flex:1;min-width:170px}
.cch-lg{display:flex;align-items:center;gap:7px;font-size:12px}
.cch-lg > i{width:9px;height:9px;border-radius:2px;flex:0 0 9px;box-shadow:inset 0 0 0 1px rgba(26,22,19,.16)}
.cch-lg-n{flex:1;color:var(--ink-2)}
.cch-lg .num{font-size:13px;color:var(--ink)}
.cch-ov-note{
  margin-top:12px;padding:8px 11px;background:var(--paper);border:1px solid var(--line);
  border-left:3px solid var(--gold);border-radius:var(--r-s);
  font-size:12px;color:var(--ink-3);line-height:1.65;
}

/* ---------------- 详情抽屉 ---------------- */
.cch-dhead{display:flex;align-items:center;gap:14px}
.cch-dhead-t{min-width:0}
.cch-dhead-n{display:flex;align-items:baseline;gap:7px}
.cch-dhead-n b{font-family:var(--f-serif);font-size:19px;font-weight:700;letter-spacing:.05em}
.cch-dhead-s{display:flex;align-items:center;gap:9px;margin-top:4px;flex-wrap:wrap}
.cch-d-sec{margin-bottom:20px}
.cch-d-h{
  display:flex;align-items:center;gap:8px;font-family:var(--f-serif);font-size:14px;
  letter-spacing:.05em;color:var(--ink);margin-bottom:10px;
}
.cch-cls-list{display:flex;flex-direction:column;gap:8px}
.cch-cls-row{
  display:flex;align-items:center;gap:10px;padding:9px 11px;cursor:pointer;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-s);
  transition:border-color .14s,background .14s;
}
.cch-cls-row:hover{border-color:var(--gold);background:var(--card-2)}
.cch-cls-name{flex:1;min-width:0}
.cch-cls-name > div:first-child{font-size:13px;font-weight:600}
.cch-cls-meta{display:flex;align-items:center;gap:8px;color:var(--ink-4)}
.cch-sched{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.cch-sched-row{
  display:flex;align-items:center;gap:12px;padding:8px 12px;
  border-bottom:1px solid var(--paper-2);
}
.cch-sched-row:last-child{border-bottom:0}
.cch-sched-row:hover{background:var(--card-2)}
.cch-sched-d{flex:0 0 76px}
.cch-sched-d b{font-size:12.5px;display:block;line-height:1.3}
.cch-sched-t{flex:0 0 118px}
.cch-sched-t .num{font-size:12px;color:var(--ink-2)}
.cch-sched-t .t-xs{display:block}
.cch-sched-c{flex:1;display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);min-width:0}
.cch-roster{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);overflow:hidden}
.cch-roster-row{display:flex;align-items:center;gap:11px;padding:8px 12px;border-bottom:1px solid var(--paper-2)}
.cch-roster-row:last-child{border-bottom:0}
.cch-roster-row:hover{background:var(--card-2)}
.cch-roster-n{flex:1;min-width:0;display:flex;align-items:center;gap:7px;font-size:12.5px}
.cch-roster-b{flex:0 0 78px;display:flex;align-items:baseline;gap:2px}
.cch-roster-b .num{font-size:14px;font-weight:700;color:var(--ink-2)}
.cch-roster-r{flex:0 0 96px}
.cch-roster-r .mini-bar{margin-top:3px}
.cch-load{background:var(--card);border:1px solid var(--line);border-radius:var(--r-m);padding:12px 14px}
.cch-load-n{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.cch-load-n .num{font-size:25px;font-weight:700;color:var(--ink)}
.cch-load-bar{margin-top:9px}
.cch-load-bar.is-over > i{background:linear-gradient(90deg,#D4463A,#A82B21)}
.cch-load > .t-xs{margin-top:8px;display:block;line-height:1.65}

/* ==========================================================================
   三、窄屏适配（≤980px 不横向溢出）
   ========================================================================== */
@media (max-width:1180px){
  .mbs-pkgs{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cch-wall{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mbs-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:980px){
  .mbs-pkgs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cch-wall{grid-template-columns:1fr}
  .mbs-cards{grid-template-columns:1fr}
  .cch-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mbs-rem{flex-wrap:wrap;gap:10px}
  .mbs-rem-l{flex:1 1 220px}
  .mbs-rem-mid{flex:0 0 120px}
  .mbs-rem-script{flex:1 1 100%;order:3}
  .mbs-rem-act{flex:1 1 100%;order:4;justify-content:flex-end}
  .cch-sched-row{flex-wrap:wrap}
  .cch-sched-t{flex:0 0 108px}
  .cch-sched-c{flex:1 1 100%;order:3}
  .cch-roster-row{flex-wrap:wrap}
  .cch-roster-r{flex:0 0 100%}
  .cch-foot{flex-wrap:wrap}
}
@media (max-width:640px){
  .mbs-pkgs{grid-template-columns:1fr}
  .mbs-rem-mid{flex:1 1 100%;order:3;display:flex;align-items:baseline;gap:12px}
  .cch-stat-grid{grid-template-columns:1fr}
}
