/* ========== 周周拓客 · 设计系统 ========== */
:root{
  --brand:#EA580C;
  --brand-dark:#C2410C;
  --brand-light:#FFEDD5;
  --brand-bg:#FFF7ED;
  --purple:#7C3AED;
  --purple-bg:#EDE9FE;
  --green:#059669;
  --green-bg:#D1FAE5;
  --amber:#B45309;
  --amber-bg:#FEF3C7;
  --blue:#2563EB;
  --blue-bg:#DBEAFE;
  --ink:#111827;
  --ink2:#374151;
  --gray:#6B7280;
  --gray2:#9CA3AF;
  --line:#E5E7EB;
  --bg:#F5F6F8;
  --card:#FFFFFF;
  --r-s:10px; --r-m:14px; --r-l:18px;
  --sd:0 1px 2px rgba(17,24,39,.04), 0 4px 16px rgba(17,24,39,.06);
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:"PingFang SC","Noto Sans SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  background:#EEF0F4;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow:hidden;
}
img{display:block;max-width:100%}
button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}

/* ========== 舞台 ========== */
.stage{display:flex;align-items:center;justify-content:center;gap:48px;height:100vh;padding:24px}
.stage-aside{width:300px;flex-shrink:0;align-self:center;max-height:90vh;overflow-y:auto;padding-right:4px}
.stage-aside::-webkit-scrollbar{width:0}
.aside-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.aside-logo{width:46px;height:46px;border-radius:14px;background:linear-gradient(135deg,#F97316,#EA580C);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;box-shadow:0 6px 16px rgba(234,88,12,.3)}
.aside-name{font-size:19px;font-weight:700;letter-spacing:-.3px}
.aside-sub{font-size:12px;color:var(--gray2);margin-top:2px}
.aside-hint{font-size:12.5px;color:var(--gray);line-height:1.7;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:18px}
.aside-block{margin-bottom:18px}
.aside-title{font-size:11px;font-weight:700;color:var(--gray2);letter-spacing:1px;margin-bottom:8px}
.aside-roles{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.aside-role{background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 10px;text-align:left;transition:.18s}
.aside-role .ar-i{font-size:16px}
.aside-role .ar-t{font-size:12.5px;font-weight:600;margin-top:3px}
.aside-role .ar-d{font-size:10.5px;color:var(--gray2);margin-top:1px}
.aside-role:hover{border-color:var(--brand);transform:translateY(-1px)}
.aside-role.on{background:var(--brand);border-color:var(--brand);color:#fff}
.aside-role.on .ar-d{color:#FFE4CC}
.aside-screens{display:flex;flex-direction:column;gap:5px}
.aside-screen{text-align:left;font-size:12.5px;color:var(--gray);padding:7px 11px;border-radius:9px;transition:.15s;display:flex;align-items:center;gap:8px}
.aside-screen:hover{background:#fff;color:var(--ink)}
.aside-screen.on{background:var(--brand-light);color:var(--brand-dark);font-weight:600}
.aside-screen i{width:16px;text-align:center;font-style:normal}
.aside-foot{font-size:11px;color:var(--gray2);border-top:1px dashed var(--line);padding-top:12px}

/* ========== 手机 ========== */
.phone-wrap{display:flex;flex-direction:column;align-items:center;gap:14px}
.phone{
  position:relative;width:390px;height:844px;background:#0B0B0F;border-radius:54px;
  padding:11px;box-shadow:0 40px 80px -20px rgba(17,24,39,.35), 0 0 0 2px #23242A inset;
  flex-shrink:0;
}
.phone-notch{position:absolute;top:11px;left:50%;transform:translateX(-50%);width:126px;height:32px;background:#0B0B0F;border-radius:0 0 20px 20px;z-index:30}
.phone-screen{position:relative;width:100%;height:100%;background:var(--bg);border-radius:44px;overflow:hidden;display:flex;flex-direction:column}
.phone-caption{font-size:12.5px;color:var(--gray);background:#fff;border:1px solid var(--line);padding:6px 16px;border-radius:20px}

/* 状态栏 */
.statusbar{height:50px;flex-shrink:0;display:flex;align-items:flex-end;justify-content:space-between;padding:0 30px 6px;font-size:14px;font-weight:600;color:var(--ink);position:relative;z-index:20;background:transparent;transition:color .25s}
.statusbar.light{color:#fff}
.sb-right{display:flex;align-items:center;gap:5px}
.sb-sig,.sb-wifi,.sb-bat{display:block;background:currentColor}
.sb-sig{width:17px;height:11px;clip-path:polygon(0 70%,20% 70%,20% 100%,0 100%,25% 45%,45% 45%,45% 100%,25% 100%,50% 22%,70% 22%,70% 100%,50% 100%,75% 0,95% 0,95% 100%,75% 100%)}
.sb-wifi{width:16px;height:11px;clip-path:polygon(50% 100%,20% 62%,80% 62%);opacity:.95;border-radius:2px}
.sb-bat{width:24px;height:12px;border-radius:3px;position:relative;background:none;border:1.5px solid currentColor;opacity:.9}
.sb-bat::after{content:"";position:absolute;left:1.5px;top:1.5px;bottom:1.5px;width:70%;background:currentColor;border-radius:1.5px}

/* 内容区 */
.app-root{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;position:relative}
.app-root::-webkit-scrollbar{width:0}
.tabbar-holder{flex-shrink:0}
.home-indicator{position:absolute;bottom:7px;left:50%;transform:translateX(-50%);width:134px;height:5px;border-radius:3px;background:rgba(17,24,39,.28);z-index:25;pointer-events:none}

/* ========== 通用页面元素 ========== */
.page{animation:pin .28s cubic-bezier(.22,.9,.3,1);padding-bottom:14px}
@keyframes pin{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.page.fade{animation:pfd .3s ease}
@keyframes pfd{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}

.navbar{display:flex;align-items:center;gap:10px;padding:2px 16px 12px;position:sticky;top:0;background:var(--bg);z-index:15}
.navbar.on-white{background:#fff}
.nav-back{width:32px;height:32px;border-radius:50%;background:rgba(17,24,39,.06);display:flex;align-items:center;justify-content:center;font-size:19px;color:var(--ink2);flex-shrink:0}
.nav-title{font-size:17px;font-weight:600}
.nav-spacer{flex:1}
.nav-act{position:relative;min-width:32px;height:32px;padding:0 8px;box-sizing:border-box;border-radius:999px;background:rgba(17,24,39,.06);display:flex;align-items:center;justify-content:center;font-size:15px;white-space:nowrap;flex:0 0 auto}
.badge{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#EF4444;color:#fff;font-size:10px;font-weight:700;line-height:17px;text-align:center;box-shadow:0 0 0 2px #fff}

.hd{padding:2px 20px 10px}
.hd-greet{font-size:23px;font-weight:700;letter-spacing:-.5px}
.hd-sub{font-size:12.5px;color:var(--gray2);margin-top:3px}

.wrap{padding:0 18px}
.sec{margin-top:18px}
.sec-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:0 2px}
.sec-t{font-size:15.5px;font-weight:650;letter-spacing:-.2px}
.sec-m{font-size:12px;color:var(--gray2)}

.card{background:var(--card);border-radius:var(--r-m);box-shadow:var(--sd);padding:14px}
.card.tight{padding:12px}
.row{display:flex;align-items:center;gap:11px}
.col{display:flex;flex-direction:column}
.grow{flex:1;min-width:0}
.muted{color:var(--gray2)}
.tiny{font-size:11px}
.sm{font-size:12.5px}
.md{font-size:13.5px}
.bold{font-weight:650}
.ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:3px 9px;border-radius:20px;background:var(--brand-light);color:var(--brand-dark);white-space:nowrap}
.chip.green{background:var(--green-bg);color:#065F46}
.chip.amber{background:var(--amber-bg);color:#92400E}
.chip.blue{background:var(--blue-bg);color:#1D4ED8}
.chip.purple{background:var(--purple-bg);color:var(--purple)}
.chip.gray{background:#F3F4F6;color:var(--gray)}
.op-cat{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;padding:7px 14px;border-radius:22px;background:#fff;color:#9A3412;border:1.5px solid #FED7AA;cursor:pointer;line-height:1;white-space:nowrap;transition:background .12s,border-color .12s,box-shadow .12s}
.op-cat.on{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 3px 10px -3px rgba(234,88,12,.5)}
.op-cat.on::before{content:'✓';font-weight:800;margin-right:1px}
.op-cat.custom{background:#FFF7ED}
.op-cat.custom.on{background:var(--brand-dark);border-color:var(--brand-dark)}
.op-cat .op-x{font-size:15px;line-height:1;opacity:.85;margin-left:1px}

.btn{display:flex;align-items:center;justify-content:center;gap:7px;height:48px;border-radius:13px;background:var(--brand);color:#fff;font-size:15.5px;font-weight:600;transition:.15s;width:100%;box-shadow:0 3px 10px rgba(234,88,12,.25),inset 0 1px 0 rgba(255,255,255,.22)}
.btn:active{transform:scale(.975) translateY(1px);background:var(--brand-dark);box-shadow:0 1px 4px rgba(234,88,12,.25)}
.btn.ghost{background:#fff;color:var(--ink2);border:1px solid var(--line)}
.btn.sm{height:34px;font-size:12.5px;border-radius:9px;width:auto;padding:0 14px}
.btn.mini{height:28px;font-size:11.5px;border-radius:8px;width:auto;padding:0 11px;font-weight:600}
.btn.block{margin-top:16px}
.btn.disabled{background:#E5E7EB;color:#9CA3AF;pointer-events:none}

.avatar{width:42px;height:42px;border-radius:50%;background:var(--brand-light);color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;flex-shrink:0;position:relative;overflow:hidden}
.avatar.lg{width:54px;height:54px;font-size:22px}
.avatar.sm{width:34px;height:34px;font-size:14px}
.avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
/* v1.0.6：中点更换头像入口（整块可点） */
.me-avatar{cursor:pointer;transition:transform .12s ease}
.me-avatar:active{transform:scale(.94)}
.avatar-badge{position:absolute;right:-1px;bottom:-1px;width:18px;height:18px;border-radius:50%;background:#fff;color:#374151;display:flex;align-items:center;justify-content:center;font-size:10px;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.25);border:1px solid #E5E7EB}
.icobox{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0}

.stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.stat2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat4{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat{background:#fff;border-radius:var(--r-m);padding:13px 10px;text-align:center;box-shadow:var(--sd)}
.stat-v{font-size:21px;font-weight:750;letter-spacing:-.6px}
.stat-l{font-size:11px;color:var(--gray2);margin-top:3px}
.stat-d{font-size:10.5px;margin-top:3px;font-weight:600}

.list{display:flex;flex-direction:column;gap:9px}
.li{background:#fff;border-radius:var(--r-m);padding:12px 13px;box-shadow:var(--sd);display:flex;align-items:center;gap:11px;transition:.15s}
.li:active{transform:scale(.99);background:#FAFAFB}
.arrow{color:#D1D5DB;font-size:19px;flex-shrink:0}
/* 更新提示红点（四端「我的 → 关于」出现新版本时） */
.up-dot{position:absolute;top:-3px;right:-6px;width:9px;height:9px;border-radius:50%;background:#EA580C;box-shadow:0 0 0 2px #fff}

.hero{border-radius:var(--r-l);padding:18px;color:#fff;background:linear-gradient(135deg,#F97316 0%,#EA580C 55%,#C2410C 100%);box-shadow:0 10px 24px -8px rgba(234,88,12,.5);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-30px;top:-40px;width:150px;height:150px;border-radius:50%;background:rgba(255,255,255,.09)}
.hero::before{content:"";position:absolute;right:20px;bottom:-60px;width:110px;height:110px;border-radius:50%;background:rgba(255,255,255,.07)}
.hero *{position:relative;z-index:1}

.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gitem{background:#fff;border-radius:var(--r-m);padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:7px;box-shadow:var(--sd);transition:.15s}
.gitem:active{transform:scale(.96)}
.gitem .icobox{width:38px;height:38px;border-radius:50%;font-size:18px}
.gitem span{font-size:11px;color:var(--ink2);font-weight:500}

.seg{display:flex;background:#EDEEF1;border-radius:11px;padding:3px;gap:2px}
.seg button{flex:1;height:34px;border-radius:9px;font-size:13px;color:var(--gray);font-weight:600;transition:.18s}
.seg button.on{background:#fff;color:var(--brand);box-shadow:0 1px 4px rgba(17,24,39,.1)}

.bar{height:7px;border-radius:5px;background:#F0F1F4;overflow:hidden}
.bar i{display:block;height:100%;border-radius:5px;background:var(--brand);transition:width .6s cubic-bezier(.2,.8,.3,1)}

.field{background:#fff;border-radius:12px;padding:12px 14px;box-shadow:var(--sd)}
.field label{display:block;font-size:11.5px;color:var(--gray2);margin-bottom:5px}
.field input,.field textarea,.field select{width:100%;border:none;outline:none;font-size:14.5px;color:var(--ink);font-family:inherit;background:transparent;resize:none;height:32px;line-height:32px}
.field input::placeholder,.field textarea::placeholder{color:#C3C7CE}

.uploader{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.up-cell{aspect-ratio:1;border-radius:11px;background:#F1F2F5;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;font-size:26px}
.up-cell.thumb{background:linear-gradient(160deg,#FFF7ED,#FFEDD5);border:1px solid #FDE3C8}
.up-cell .del{position:absolute;right:4px;top:4px;width:19px;height:19px;border-radius:50%;background:rgba(17,24,39,.55);color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center}
.up-add{aspect-ratio:1;border-radius:11px;border:1.5px dashed #CDD1D8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--gray2);background:#FCFCFD}
.up-add b{font-size:24px;font-weight:300;line-height:1}
.up-add span{font-size:10.5px}

.switch{width:46px;height:27px;border-radius:16px;background:#DDE0E5;position:relative;transition:.22s;flex-shrink:0}
.switch.on{background:var(--brand)}
.switch i{position:absolute;top:2.5px;left:2.5px;width:22px;height:22px;border-radius:50%;background:#fff;transition:.22s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch.on i{left:21.5px}

.radio{width:21px;height:21px;border-radius:50%;border:1.5px solid #D3D7DD;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:.15s}
.radio.on{border-color:var(--brand);background:var(--brand);color:#fff;font-size:11px}

.opt{background:#fff;border:1.5px solid transparent;border-radius:var(--r-m);padding:13px;display:flex;align-items:center;gap:11px;box-shadow:var(--sd);transition:.15s}
.opt.on{border-color:var(--brand);background:var(--brand-bg)}

.empty{text-align:center;padding:50px 20px;color:var(--gray2)}
.empty b{display:block;font-size:34px;margin-bottom:10px;font-weight:400}

/* 底部 Tab */
.tabbar{display:flex;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-top:1px solid rgba(17,24,39,.06);padding:7px 6px 20px}
.tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 0;color:var(--gray2);transition:.15s}
.tab .ti{font-size:20px;line-height:1;filter:grayscale(1) opacity(.55);transition:.15s}
.tab span{font-size:10px;font-weight:600}
.tab.on{color:var(--brand)}
.tab.on .ti{filter:none;transform:translateY(-1px)}
.tab:active{transform:scale(.94)}

/* 聊天输入栏：与底部菜单留出呼吸间隙 + 顶部轻微阴影分离（#315 被挡住） */
.im-bar{flex-shrink:0;display:flex;gap:8px;padding:9px 12px 14px;background:#fff;border-top:1px solid #e5e7eb;align-items:center;box-shadow:0 -4px 12px rgba(17,24,39,.05)}
.im-bar input{flex:1;border:1px solid #e5e7eb;border-radius:999px;padding:8px 12px;font-size:13px;min-width:0}

/* AI 代回复：机构自主补充知识条目（#318） */
.im-custom-item{border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px;background:#fff;position:relative}
.im-custom-item input{width:100%;border:1px solid #e5e7eb;border-radius:8px;padding:7px 9px;font-size:13px;margin-bottom:7px;box-sizing:border-box}
.im-custom-item textarea{width:100%;border:1px solid #e5e7eb;border-radius:8px;padding:7px 9px;font-size:13px;min-height:54px;box-sizing:border-box;resize:vertical}
.im-custom-del{position:absolute;top:10px;right:10px;font-size:12px;color:#EF4444;cursor:pointer}
.im-custom-presets{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.im-custom-presets span{font-size:12px;padding:5px 10px;border-radius:999px;background:var(--brand-bg);color:var(--brand);cursor:pointer}

/* 家长端广告轮播（v11045：左右轮换 + 右上角 × 关闭） */
.ad-carousel{margin:12px;border-radius:12px;overflow:hidden;background:#EA580C;position:relative}
.ad-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:none}
.ad-track::-webkit-scrollbar{display:none}
.ad-slide{flex:0 0 100%;scroll-snap-align:start;position:relative;color:#fff;box-sizing:border-box;padding:18px 16px;min-height:92px;display:flex;flex-direction:column;justify-content:center}
.ad-slide .ad-badge{position:absolute;top:8px;right:36px;background:rgba(0,0,0,.30);font-size:10px;padding:2px 7px;border-radius:6px;letter-spacing:1px}
.ad-slide .ad-x{position:absolute;top:6px;right:8px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.30);color:#fff;font-size:15px;line-height:22px;text-align:center;cursor:pointer;z-index:2}
.ad-slide .ad-title{font-size:15px;font-weight:700;line-height:1.35;margin-right:34px}
.ad-slide .ad-sub{font-size:11.5px;opacity:.92;margin-top:5px;margin-right:34px}
.ad-dots{display:flex;justify-content:center;gap:6px;margin:6px 0 8px}
.ad-dots i{width:6px;height:6px;border-radius:50%;background:#D1D5DB;display:inline-block;cursor:pointer;transition:all .2s}
.ad-dots i.on{background:#EA580C;width:16px;border-radius:3px}

/* 登录 */
.login{min-height:100%;display:flex;flex-direction:column;background:#fff}
.login-top{background:linear-gradient(150deg,#FB923C 0%,#EA580C 50%,#C2410C 100%);padding:26px 26px 44px;color:#fff;border-radius:0 0 30px 30px;position:relative;overflow:hidden}
.login-top::after{content:"";position:absolute;right:-50px;top:-50px;width:190px;height:190px;border-radius:50%;background:rgba(255,255,255,.1)}
.login-logo{width:62px;height:62px;border-radius:20px;background:#fff;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.15);position:relative;z-index:1}
.login-name{font-size:26px;font-weight:750;margin-top:16px;letter-spacing:-.5px;position:relative;z-index:1}
.login-slogan{font-size:13px;color:#FFE9D6;margin-top:6px;position:relative;z-index:1}
.login-body{flex:1;padding:22px 24px 28px;display:flex;flex-direction:column;gap:14px}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.role{border:1.5px solid var(--line);border-radius:var(--r-m);padding:12px 10px;text-align:left;transition:.18s;background:#fff}
.role .ri{font-size:20px}
.role .rt{font-size:14px;font-weight:650;margin-top:6px}
.role .rd{font-size:11px;color:var(--gray2);margin-top:2px}
.role.on{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 8px 18px -6px rgba(234,88,12,.5)}
.role.on .rd{color:#FFE4CC}
/* 登录/注册互切链接：给足 44px 点击热区并与上方按钮留出间距，避免粘连导致点不到 */
.login-links{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;padding:0 2px;min-height:44px}
.login-links span{cursor:pointer;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;min-height:44px;padding:0 12px;margin-left:-12px;color:var(--brand);font-weight:600}
.login-links span:active{opacity:.55}
.divider{display:flex;align-items:center;gap:12px;color:#C9CDD4;font-size:11.5px}
.divider::before,.divider::after{content:"";flex:1;height:1px;background:var(--line)}
.wx-btn{display:flex;align-items:center;justify-content:center;gap:8px;height:46px;border-radius:13px;border:1px solid var(--line);font-size:14px;color:var(--ink2);font-weight:500;background:#fff}
.wx-dot{width:19px;height:19px;border-radius:50%;background:#07C160;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px}
.auth-method{display:flex;background:#F1F3F6;border-radius:12px;padding:4px;gap:4px}
.auth-method .am{flex:1;border:none;background:transparent;border-radius:9px;height:38px;font-size:13.5px;color:var(--gray2);font-family:inherit}
.auth-method .am.on{background:#fff;color:var(--brand);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.auth-avatar{width:56px;height:56px;border-radius:50%;background:var(--brand-bg);border:1px dashed var(--brand);display:flex;align-items:center;justify-content:center;color:var(--brand);font-size:22px;overflow:hidden;flex:0 0 auto}
.auth-avatar img{width:100%;height:100%;object-fit:cover}
.auth-avatar.sm{width:44px;height:44px;font-size:18px}
.wx-bind{display:flex;align-items:center;gap:12px;background:#F0FDF4;border:1px solid #BBF7D0;border-radius:14px;padding:12px 14px}
.code-row{display:flex;align-items:center;gap:10px}
.code-row input{width:auto;flex:1;min-width:0}
.code-btn{flex:0 0 auto;border:none;background:var(--brand);color:#fff;border-radius:9px;height:36px;padding:0 14px;font-size:13px;font-family:inherit;white-space:nowrap}
.code-btn:disabled{background:#F1A98A;opacity:.85}

/* 密码框「眼睛」（v1.10.14）：默认闭眼=密码隐藏，点后睁眼=明文 */
.field.pwd{position:relative}
.field.pwd input{padding-right:42px}
.pwd-eye{position:absolute;right:6px;width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:#9CA3AF;padding:0;cursor:pointer;border-radius:9px;line-height:0;-webkit-tap-highlight-color:transparent}
.field.pwd .pwd-eye{bottom:7px}
.pwd-eye:active{background:#F3F4F6}
.pwd-eye.on{color:#EA580C}
.pwd-eye .eye-on{display:none}
.pwd-eye.on .eye-off{display:none}
.pwd-eye.on .eye-on{display:block}
.keyrow{position:relative;display:flex;align-items:center;width:100%}
.keyrow .pwd-eye{top:50%;transform:translateY(-50%)}

/* Toast / Sheet */
.toast{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.9);background:rgba(17,24,39,.88);color:#fff;font-size:13.5px;padding:11px 20px;border-radius:12px;opacity:0;pointer-events:none;transition:.22s;z-index:999;max-width:70vw;text-align:center;backdrop-filter:blur(8px)}
.toast.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.sheet-mask{position:fixed;inset:0;background:rgba(17,24,39,.45);opacity:0;pointer-events:none;transition:.24s;z-index:900;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(2px)}
.sheet-mask.show{opacity:1;pointer-events:auto}
.sheet{width:390px;max-width:100%;background:#fff;border-radius:22px 22px 0 0;padding:20px 20px 30px;transform:translateY(100%);transition:.28s cubic-bezier(.22,.9,.3,1);max-height:70vh;overflow-y:auto}
.sheet-mask.show .sheet{transform:none}
.sheet-h{font-size:16.5px;font-weight:650;margin-bottom:4px}
.sheet-d{font-size:12.5px;color:var(--gray2);margin-bottom:16px;line-height:1.6}

/* 权限架构 */
.perm{border-radius:var(--r-m);padding:13px 14px;margin-bottom:10px}
.perm-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.perm-n{font-size:14px;font-weight:700}
.perm-tags{display:flex;flex-wrap:wrap;gap:5px}
.perm-tag{font-size:10.5px;background:rgba(255,255,255,.7);padding:3px 8px;border-radius:6px;color:var(--ink2)}

/* 空态引导（无数据时显示，引导用户自己录入） */
.empty-box{background:var(--card);border:1px dashed #DDE1E7;border-radius:var(--r-m);padding:30px 20px;text-align:center}
.empty-box .eb-i{font-size:34px;line-height:1;opacity:.85}
.empty-box .eb-t{font-size:14.5px;font-weight:650;color:var(--ink2);margin-top:12px}
.empty-box .eb-d{font-size:12px;color:var(--gray2);margin-top:6px;line-height:1.7;max-width:250px;margin-left:auto;margin-right:auto}
.empty-box .btn{display:inline-flex;width:auto;padding:0 20px}

/* 密码强度 */
.pwd-bar{display:flex;gap:6px;margin:8px 2px 2px}
.pwd-bar i{flex:1;height:5px;border-radius:3px;background:#E5E7EB;transition:.2s}
.pwd-bar i.on.l1{background:#DC2626}
.pwd-bar i.on.l2{background:#F59E0B}
.pwd-bar i.on.l3{background:#16A34A}
.pwd-hint{font-size:11.5px;color:var(--gray2);margin:4px 2px 2px;min-height:14px}

/* 二维码 / 海报 */
.qr-row{display:flex;gap:12px;margin-top:12px}
.qr-thumb{flex:1;aspect-ratio:1/1;border:1px dashed #DDE1E7;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#FAFBFC}
.qr-thumb img{width:100%;height:100%;object-fit:contain}
.qr-thumb span{font-size:12px;color:var(--gray2);text-align:center;line-height:1.5}
.qr-up-row{display:flex;gap:12px;margin-top:8px}
.qr-up{flex:1;border:1px dashed var(--brand);color:var(--brand);border-radius:10px;padding:14px 8px;text-align:center;font-size:13px;cursor:pointer;background:var(--brand-bg)}
.qr-up input{display:none}
.qr-prev{display:flex;gap:12px;margin-top:12px}
.qr-prev .qr-thumb{flex:1}

/* 响应式：手机上全屏 */
@media (max-width:1080px){ .stage-aside{display:none} .stage{gap:0} }
@media (max-width:900px){
  body{overflow:auto;background:var(--bg)}
  .stage{padding:0;height:100dvh;display:block}
  .phone-wrap{gap:0;height:100%}
  .phone{width:100%;height:100dvh;border-radius:0;padding:0;box-shadow:none}
  .phone-notch{display:none}
  .phone-screen{border-radius:0}
  .statusbar{display:none}
  /* v1.10.26：顶部安全区统一由 app.js applySafeArea 实测写入的 --sat 驱动（安卓 APK 全面屏保底 36px）。
     双声明保证：支持 var() 的内核用第二行；不支持时退回 12px；—sat 已由 JS 保证 ≥12，绝不会是 0。 */
  .app-root{padding-top:12px;padding-top:var(--sat,12px)}
  .navbar,.hd{padding-top:10px}
  .home-indicator{display:none}
  .tabbar{padding-bottom:calc(10px + var(--sab, env(safe-area-inset-bottom, 6px)))}
  .phone-caption{display:none}
  .sheet{width:100%}
}

/* ---------- 下拉刷新 ---------- */
#ptr{position:absolute;top:0;left:50%;transform:translate(-50%,0);display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--gray2);z-index:50;opacity:0;pointer-events:none;white-space:nowrap;transition:opacity .15s}
#ptr .ptr-ar{display:inline-block;font-size:14px;transition:transform .15s}
#ptr.spin .ptr-ar{animation:ptr-rot .6s linear infinite}
@keyframes ptr-rot{to{transform:rotate(360deg)}}

/* 下拉刷新时的居中加载提示 */
.ptr-loading{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:8px;color:var(--gray2);font-size:13px;z-index:50;background:rgba(255,255,255,.92);padding:14px 22px;border-radius:14px;box-shadow:0 2px 16px rgba(0,0,0,.1);pointer-events:none}
.ptr-spin-ic{display:inline-block;width:16px;height:16px;border:2px solid #E5E7EB;border-top-color:var(--brand);border-radius:50%;animation:ptr-rot .6s linear infinite}

/* ---------- 机构端 · 工作台快捷栏 / 支出分类胶囊 / 经营看板 7 日图 ---------- */
/* v1.9.19：快捷栏 4 列网格（原本 flex 一行 6 个，加「活动比赛 / 记成长」后需换行且保持矩形整齐） */
.quickbar{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 6px;background:var(--brand-bg);border-radius:var(--r-m);padding:11px 8px}
.qb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:12px;font-weight:600;color:var(--brand-dark);background:transparent;border:none;font-family:inherit;cursor:pointer;padding:1px 0}
.qb span{font-size:18px;line-height:1}
.qb:active{opacity:.6}

.cat-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.cat-pill{font-size:13px;font-weight:600;padding:8px 14px;border-radius:20px;background:#F3F4F6;color:var(--ink2);border:1px solid transparent;transition:.15s;cursor:pointer}
.cat-pill.on{background:var(--brand-bg);color:var(--brand-dark);border-color:var(--brand)}
.cat-pill:active{transform:scale(.96)}
.cat-pill{position:relative}
.cat-pill input{position:absolute;opacity:0;width:0;height:0}
/* v11058 学员统计 · 批量消课（原来只有模式开关、没有可勾选的控件与确认入口，等于点不动） */
.batch-bar{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;background:#FFF7ED;border:1px solid #FDE3C8;border-radius:12px}
.bb-t{font-size:13px;font-weight:700;color:#9A3412}
.bb-t b{color:var(--brand);font-size:15px}
.bb-s{font-size:11px;color:#B45309;margin-top:2px}
.bb-time{width:84px;flex:none;border:1px solid #FDBA74;background:#fff;border-radius:9px;padding:7px 6px;font-size:12px;text-align:center;outline:none;color:#7C2D12}
.bb-go{background:var(--brand);color:#fff;border-radius:9px;font-weight:700;flex:none}
.li.pick{position:relative}
.li.pick.on{background:var(--brand-bg);box-shadow:inset 0 0 0 1.5px #FDBA74}
.pick-box{width:20px;height:20px;border-radius:50%;border:1.5px solid #D5D9E0;background:#fff;flex:none;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;margin-top:2px}
.pick-box.on{background:var(--brand);border-color:var(--brand)}
.batchbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px -12px rgba(0,0,0,.25)}
.sched-day{margin-top:12px}
.sched-d{font-size:12px;font-weight:700;color:var(--gray2);margin-bottom:6px}
.sched-rows{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.sched-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.sched-row:last-child{border-bottom:none}
.sched-t{font-size:14px;font-weight:700;color:var(--brand);min-width:46px;text-align:center}
.sched-x{width:24px;height:24px;border-radius:50%;background:#F3F4F6;color:var(--gray);display:flex;align-items:center;justify-content:center;font-size:15px;cursor:pointer}
.sched-x:active{background:#E5E7EB}
.sched-edit{width:24px;height:24px;border-radius:50%;background:#FFF7ED;color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:13px;cursor:pointer}
.sched-edit:active{background:#FFEDD5}
/* 每周课表 · 班次管理 */
.sched-day-card{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.sched-day-h{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line);background:#F8FAFC}
.sched-d{font-size:13px;font-weight:700;color:var(--ink)}
.sched-rest{padding:12px;text-align:center;font-size:12.5px;color:var(--gray2)}
.switch{width:42px;height:24px;border-radius:20px;background:#E5E7EB;position:relative;cursor:pointer;transition:.2s;flex:0 0 auto}
.switch span{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:.2s}
.switch.on{background:var(--green)}
.switch.on span{left:20px}
.shift-card{padding:10px 12px;border-bottom:1px solid var(--line)}
.shift-card:last-child{border-bottom:none}
.shift-h{display:flex;align-items:flex-start;gap:8px}
.shift-stus{margin-top:8px;display:flex;flex-direction:column;gap:6px}
.shift-stu{display:flex;align-items:center;gap:6px;padding:6px 8px;background:#F8FAFC;border-radius:9px}
.shift-stu.leave{opacity:.55}
.ss-name{font-size:13.5px;font-weight:600;color:var(--ink)}
.ss-acts{margin-left:auto;display:flex;gap:4px}
.mini-act{font-size:11.5px;font-weight:600;padding:4px 9px;border-radius:14px;background:#fff;border:1px solid var(--line);color:var(--ink2);cursor:pointer;white-space:nowrap}
.mini-act:active{background:#F3F4F6}
.shift-ops{display:flex;gap:8px;margin-top:10px}
.shift-ops .btn.mini{flex:1}
.bcheck{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;flex-shrink:0;transition:.15s}
.bcheck.on{background:var(--brand);border-color:var(--brand)}

.chart7{display:flex;align-items:flex-end;gap:8px;height:120px;padding-top:6px}
.c7-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%}
.c7-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:3px}
.c7-inc{width:9px;background:var(--green);border-radius:3px 3px 0 0;min-height:2px;transition:height .5s}
.c7-exp{width:9px;background:var(--brand);border-radius:3px 3px 0 0;min-height:2px;transition:height .5s}
.c7-d{font-size:10px;color:var(--gray2)}

.stat.click{cursor:pointer}
.stat.click:active{transform:scale(.98);background:#FAFAFB}

/* ---------- 家长端 · 搜索机构认领 ---------- */
.org-card{width:100%;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #ECECEF;border-radius:12px;padding:13px 14px;margin-bottom:10px;cursor:pointer;text-align:left}
.org-card:active{background:#FAFAFB}
.oc-i{width:38px;height:38px;border-radius:10px;background:#FFF1E6;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.oc-n{font-size:15px;font-weight:700;color:#1A1D21}
.oc-s{font-size:12px;color:#8A8F98;margin-top:2px}

/* ---------- 家长端 · 上课记录时间线 ---------- */
.timeline{display:flex;flex-direction:column}
.tl{display:flex;align-items:flex-start;gap:12px;padding:13px 0;position:relative}
.tl:not(:last-child){border-bottom:1px solid #F1F2F4}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--green);margin-top:6px;flex:0 0 auto;box-shadow:0 0 0 3px rgba(5,150,105,.13)}
.tl-dot.free{background:var(--amber);box-shadow:0 0 0 3px rgba(180,83,9,.13)}

/* ========== PC 后台（电脑宽屏管理台） ========== */
.stage.pc-hidden{display:none}
.pc-root{position:fixed;inset:0;z-index:500;background:#F5F6F8;display:none;flex-direction:row}
.pc-root.on{display:flex}
.pc-side{width:236px;flex-shrink:0;background:linear-gradient(180deg,#1F2937,#0F172A);color:#E5E7EB;display:flex;flex-direction:column;padding:22px 14px}
.pc-brand{display:flex;align-items:center;gap:11px;padding:0 6px 18px;border-bottom:1px solid rgba(255,255,255,.08)}
.pc-logo{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#F97316,#EA580C);color:#fff;display:flex;align-items:center;justify-content:center;font-size:21px;font-weight:700}
.pc-bn{font-size:15px;font-weight:700}
.pc-bs{font-size:11px;color:#94A3B8;margin-top:2px}
.pc-navs{display:flex;flex-direction:column;gap:5px;margin-top:18px}
.pc-nav{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:11px;color:#CBD5E1;font-size:14px;font-weight:550;transition:.15s;text-align:left}
.pc-nav span{font-size:17px}
.pc-nav:hover{background:rgba(255,255,255,.06);color:#fff}
.pc-nav.on{background:var(--brand);color:#fff;box-shadow:0 6px 16px -6px rgba(234,88,12,.6)}
.pc-side-foot{margin-top:auto;padding:14px 10px 4px;border-top:1px solid rgba(255,255,255,.08)}
.pc-user{font-size:13.5px;font-weight:600;color:#fff}
.pc-role{font-size:11px;color:#94A3B8;margin-top:2px}
.pc-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.pc-top{height:62px;flex-shrink:0;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:14px}
.pc-title{font-size:17px;font-weight:700}
.pc-top-spacer{flex:1}
.pc-back{height:36px;padding:0 16px;border-radius:10px;background:#F3F4F6;color:var(--ink2);font-size:13px;font-weight:600;transition:.15s}
.pc-back:hover{background:#E5E7EB}
.pc-content{flex:1;overflow-y:auto;padding:26px 32px}
.pc-content::-webkit-scrollbar{width:8px}
.pc-content::-webkit-scrollbar-thumb{background:#D5D9E0;border-radius:4px}

.pc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px}
.pc-kpi{background:#fff;border-radius:14px;padding:18px 20px;box-shadow:var(--sd)}
.pc-kpi-v{font-size:27px;font-weight:750;letter-spacing:-.8px}
.pc-kpi-l{font-size:13px;color:var(--gray2);margin-top:5px;font-weight:550}
.pc-kpi-s{font-size:11px;color:var(--gray);margin-top:3px}

.pc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pc-donut-wrap{display:flex;align-items:center;gap:20px}
.pc-donut{width:130px;height:130px;flex-shrink:0}
.pc-legend{flex:1;display:flex;flex-direction:column;gap:9px}
.pc-legend-row{display:flex;align-items:center;gap:8px;font-size:13px}
.pc-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.pc-legend-pct{color:var(--gray2);font-size:12px;min-width:38px;text-align:right}

.pc-rank{display:flex;flex-direction:column;gap:13px}
.pc-rank-row{display:flex;align-items:center;gap:12px}
.pc-rank-name{font-size:13px;font-weight:600;min-width:120px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-rank-bar{flex:1;height:9px;border-radius:6px;background:#F0F1F4;overflow:hidden}
.pc-rank-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,#F97316,#EA580C);transition:width .6s cubic-bezier(.2,.8,.3,1)}
.pc-rank-val{font-size:13px;font-weight:700;min-width:84px;text-align:right}

.pc-api-list{display:flex;flex-direction:column;gap:11px}
.pc-api-row{display:flex;align-items:center;gap:11px}
.pc-api-ic{width:36px;height:36px;border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}

.pc-perm-row{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.pc-perm{border:1.5px solid var(--line);border-radius:12px;padding:13px}
.pc-perm-h{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.pc-perm-ic{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.pc-perm-tags{display:flex;flex-wrap:wrap;gap:5px}
.pc-tag{font-size:10.5px;background:#F3F4F6;color:var(--gray);padding:3px 8px;border-radius:7px}

.pc-mini{display:flex;flex-direction:column;gap:11px}
.pc-mini-row{display:flex;align-items:center;justify-content:space-between;font-size:13.5px;color:var(--ink2)}
.pc-mini-row b{font-size:16px;font-weight:700;color:var(--ink)}

.pc-table{display:flex;flex-direction:column}
.pc-tr{display:grid;grid-template-columns:64px 90px 1fr 92px 90px;align-items:center;gap:8px;padding:10px 4px;border-bottom:1px solid #F1F2F4;font-size:13px}
.pc-tr-h{color:var(--gray2);font-size:11.5px;font-weight:600;border-bottom:1px solid var(--line)}
.pc-ta-r{text-align:right;font-weight:700}
.pc-ta-note{color:var(--ink2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-ta-type{font-size:11px;font-weight:700;padding:2px 8px;border-radius:7px;width:fit-content}
.pc-ta-type.income{background:var(--green-bg);color:#065F46}
.pc-ta-type.expense{background:#FEF2F2;color:#B91C1C}

.pc-fab{position:fixed;left:18px;bottom:18px;z-index:600;display:flex;align-items:center;gap:6px;padding:11px 16px;border-radius:24px;background:linear-gradient(135deg,#7C3AED,#5B21B6);color:#fff;font-size:13.5px;font-weight:600;box-shadow:0 8px 22px rgba(124,58,237,.4);transition:.15s}
.pc-fab:hover{transform:translateY(-1px);box-shadow:0 12px 28px rgba(124,58,237,.5)}
.oc-code{display:inline-block;font-size:11px;font-weight:700;color:#7C3AED;background:#F3E8FF;padding:1px 7px;border-radius:6px;margin-left:6px;letter-spacing:.5px;vertical-align:middle}
.pc-orgcode{display:inline-block;font-size:11px;font-weight:700;color:#7C3AED;background:#F3E8FF;padding:1px 8px;border-radius:6px;margin-left:8px;letter-spacing:.5px}

/* 多科目单价设置 */
.subj-price-row{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #F0F0F0}
.subj-price-row:last-child{border-bottom:none}
.subj-name{flex:1.2;padding:9px 12px;border:1.5px solid #E5E7EB;border-radius:10px;font-size:14px;background:#FAFAFA;outline:none;transition:border-color .15s}
.subj-name:focus{border-color:var(--brand);background:#fff}
.subj-price-wrap{display:flex;align-items:center;gap:2px;background:#FFF7ED;border:1.5px solid #FDBA74;border-radius:10px;padding:6px 10px}
.subj-yen{color:#EA580C;font-weight:700;font-size:14px}
.subj-price{border:none;background:transparent;width:65px;text-align:center;font-size:15px;font-weight:600;color:#C2410C;outline:none}
.subj-del{min-width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px;color:#EF4444}
.subj-del:hover:not(:disabled){background:#FEE2E2}

/* ===== 新手引导系统 ===== */
/* 遮罩不吃点击：guide 是「提示卡」不是「强制弹窗」。
   之前 pointer-events 默认可点，整屏被盖住 → 页面所有按钮都点不动（用户反馈「按钮点不动」的根因）。
   现在只有卡片本身可点，页面其余部分照常可用；卡片上移，不压住底部总菜单。 */
.guide-mask{position:fixed;inset:0;background:rgba(17,24,39,.55);z-index:2000;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;padding:0 14px calc(68px + var(--sab,0px));box-sizing:border-box}
.guide-card{background:#fff;width:100%;max-width:460px;box-sizing:border-box;border-radius:22px;padding:26px 22px 20px;pointer-events:auto;box-shadow:0 12px 40px rgba(0,0,0,.22);animation:guideUp .26s ease}
@keyframes guideUp{from{transform:translateY(48px);opacity:.5}to{transform:translateY(0);opacity:1}}
.guide-dots{display:flex;gap:6px;justify-content:center;margin-bottom:16px}
.guide-dots .dot{width:7px;height:7px;border-radius:50%;background:#E5E7EB;transition:.2s}
.guide-dots .dot.on{background:var(--brand,#EA580C);width:20px;border-radius:4px}
.guide-ico{font-size:42px;text-align:center;margin-bottom:6px}
.guide-title{font-size:19px;font-weight:700;text-align:center;margin-bottom:10px;color:#18191C}
.guide-body{font-size:14.5px;line-height:1.75;color:#4B5563;margin-bottom:22px}
.guide-body b{color:#18191C}
.guide-body .hl{color:var(--brand,#EA580C);font-weight:700}
.guide-body .num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--brand,#EA580C);color:#fff;font-size:12px;font-weight:700;margin-right:6px}
.guide-nav{display:flex;align-items:center;justify-content:space-between}
.guide-skip{background:none;border:none;color:#9CA3AF;font-size:14px;padding:8px 4px}
.guide-btns{display:flex;gap:10px}
.guide-prev,.guide-next{border:none;border-radius:11px;padding:11px 22px;font-size:15px;font-weight:600;cursor:pointer}
.guide-prev{background:#F3F4F6;color:#4B5563}
.guide-next{background:var(--brand,#EA580C);color:#fff}

/* ========== 书法诊断 · 聊天式 ========== */
.cg-entrybar{display:flex;gap:7px;overflow-x:auto;padding:9px 14px;border-bottom:1px solid var(--line);background:#fff;flex-shrink:0}
.cg-entrybar::-webkit-scrollbar{display:none}
.cg-entry{flex-shrink:0;font-size:12.5px;font-weight:600;color:var(--ink2);background:#F3F4F6;border-radius:18px;padding:6px 14px;white-space:nowrap}
.cg-entry.cg-entry-on{background:var(--brand-light,#FFEDD5);color:var(--brand,#EA580C)}
.cg-kefu-btn{font-size:13px;font-weight:600;color:#fff;background:#07C160;padding:5px 14px;border-radius:16px;cursor:pointer;white-space:nowrap;flex-shrink:0;box-shadow:0 1px 4px rgba(7,193,96,.3)}
.cg-kefu-btn:active{opacity:.85}

.cg-msglist{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px 8px;display:flex;flex-direction:column;gap:14px;background:var(--bg,#F5F6F8)}
.cg-msglist::-webkit-scrollbar{width:0}
.cg-empty{margin:auto;text-align:center;color:var(--gray2)}
.cg-row{display:flex;gap:9px;align-items:flex-end;max-width:100%}
.cg-row-user{flex-direction:row-reverse}
.cg-ava{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.cg-ava-user{background:var(--brand,#EA580C);color:#fff}
.cg-ava-ai{background:#FFEDD5;color:#C2410C}
.cg-bubble{max-width:74%;padding:10px 13px;border-radius:15px;font-size:13.5px;line-height:1.72;word-break:break-word;white-space:pre-wrap}
.cg-bubble-user{background:var(--brand,#EA580C);color:#fff;border-bottom-right-radius:5px}
.cg-bubble-ai{background:#fff;color:var(--ink,#18191C);border-bottom-left-radius:5px;box-shadow:var(--sd,0 1px 3px rgba(17,24,39,.08))}
.cg-think{color:var(--gray2);font-style:italic}
.cg-acts{display:flex;flex-wrap:wrap;gap:14px;row-gap:6px;margin-top:8px;padding-top:8px;border-top:1px dashed #EEF0F3}
.cg-act{font-size:12px;font-weight:600;color:var(--brand,#EA580C)}

.cg-dialectbar{padding:9px 14px;background:#fff;border-bottom:1px solid var(--line);flex-shrink:0;box-shadow:0 1px 4px rgba(17,24,39,.04)}
.cg-dialectbar::-webkit-scrollbar{display:none}
.cg-dialect-track{display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
.cg-dialect-track::-webkit-scrollbar{display:none}
.cg-dchip{display:inline-block;flex:0 0 auto;font-size:13px;font-weight:600;color:#555;background:linear-gradient(145deg,#ffffff,#e6e6e8);border:1px solid #d4d4d8;border-radius:18px;padding:8px 18px;margin-right:10px;white-space:nowrap;cursor:pointer;box-shadow:2px 3px 7px rgba(0,0,0,.12),-2px -2px 5px rgba(255,255,255,.95),inset 0 1px 0 rgba(255,255,255,.8)}
.cg-dchip.on{background:linear-gradient(145deg,#8b5cf6,#7C3AED);color:#fff;border-color:#7C3AED;box-shadow:inset 2px 3px 6px rgba(0,0,0,.22)}
.cg-dchip:active{transform:translateY(1px)}

/* 评分卡（诊断结果结构化展示，自动识别硬/软笔） */
.cg-scorecard{background:linear-gradient(180deg,#FFF7ED,#FFFDFA);border:1px solid #FED7AA;border-radius:14px;padding:12px 13px;margin:2px 0 4px}
.cg-sc-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.cg-sc-badge{font-size:12px;font-weight:700;color:#fff;padding:4px 10px;border-radius:20px}
.cg-sc-badge-hard{background:linear-gradient(145deg,#FB923C,#EA580C)}
.cg-sc-badge-soft{background:linear-gradient(145deg,#F59E0B,#D97706)}
.cg-sc-total{display:flex;align-items:baseline;gap:3px}
.cg-sc-total b{font-size:26px;font-weight:800;line-height:1}
.cg-sc-total span{font-size:12px;color:var(--gray2)}
.cg-sc-total em{margin-left:6px;font-style:normal;font-size:12px;font-weight:700;color:#fff;background:#16A34A;border-radius:10px;padding:2px 8px}
.cg-sc-dim{margin:7px 0}
.cg-sc-dim-h{display:flex;justify-content:space-between;font-size:12.5px;color:#444;margin-bottom:3px}
.cg-sc-dim-h b{color:#222}
.cg-sc-bar{height:7px;border-radius:6px;background:#F1F2F4;overflow:hidden}
.cg-sc-bar i{display:block;height:100%;border-radius:6px;transition:width .4s ease}
.cg-sc-std{margin-top:11px;padding-top:9px;border-top:1px dashed #FED7AA}
.cg-sc-std-t{font-size:11.5px;font-weight:700;color:#9A3412;margin-bottom:6px}
.cg-sc-std-row{display:flex;flex-wrap:wrap;gap:6px}
.cg-sc-std-i{font-size:11px;color:#7C2D12;background:#FFEDD5;border-radius:8px;padding:2px 8px}
.cg-sc-std-i b{color:#C2410C}

.cg-input-area{flex-shrink:0;background:#f7f7f7;border-top:1px solid var(--line,#E5E7EB);box-shadow:0 -2px 8px rgba(0,0,0,.05)}
/* 拍照/相册显眼大按钮条（用户反馈：藏在+号里找不到） */
.cg-quick-upload{display:flex;gap:10px;padding:10px 14px 2px;background:#f7f7f7}
.cg-up-btn{flex:1;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:14.5px;font-weight:700;color:#6D28D9;background:linear-gradient(145deg,#ffffff,#EDE9FE);border:1px solid #DDD6FE;box-shadow:0 3px 8px rgba(124,58,237,.15),inset 0 1px 0 rgba(255,255,255,.9)}
.cg-up-btn:active{transform:translateY(1px);box-shadow:0 1px 3px rgba(124,58,237,.2)}
.cg-up-btn.pri{color:#fff;background:linear-gradient(145deg,#8b5cf6,#7C3AED);border-color:#7C3AED;box-shadow:0 4px 12px rgba(124,58,237,.35),inset 0 1px 0 rgba(255,255,255,.25)}
.cg-input-bar{display:flex;align-items:center;gap:8px;padding:9px 12px}
.cg-plus-btn{width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#fff,#e8e8e8);border:1px solid #d8d8d8;box-shadow:2px 2px 6px rgba(0,0,0,.12),-1px -1px 4px rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;position:relative}
.cg-plus-btn.on{background:linear-gradient(145deg,#e8e8e8,#fff);box-shadow:inset 2px 2px 6px rgba(0,0,0,.15)}
.cg-plus-btn.on .cg-plus-cross{transform:rotate(45deg)}
.cg-plus-cross{position:relative;width:18px;height:18px;transition:.18s}
.cg-plus-cross::before,.cg-plus-cross::after{content:'';position:absolute;background:#7C3AED;border-radius:2px}
.cg-plus-cross::before{left:8px;top:0;width:2px;height:18px}
.cg-plus-cross::after{top:8px;left:0;height:2px;width:18px}

.cg-voice-btn{width:38px;height:38px;border-radius:50%;background:#F3F0FF;border:1px solid #D9CFFB;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0;cursor:pointer;transition:.15s}
.cg-voice-btn:active{background:#E7E0FF}
.cg-voice-btn.recording{width:90px;border-radius:19px;background:linear-gradient(145deg,#ff5c8a,#ff3b6b);border-color:#ff3b6b;color:#fff;font-size:12.5px;font-weight:600;box-shadow:0 3px 10px rgba(255,59,107,.35)}
.cg-voice-emoji{font-style:normal}

.cg-text-input-box{flex:1;height:46px;background:#fff;border:1px solid #ececec;border-radius:23px;box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.03);display:flex;align-items:center;padding:0 14px}
.cg-text-input{flex:1;min-width:0;border:none;background:transparent;font-size:15px;color:#333;outline:none}
.cg-send-btn{flex-shrink:0;height:46px;border-radius:23px;padding:0 20px;background:linear-gradient(145deg,#8b5cf6,#7C3AED);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 3px 10px rgba(124,58,237,.3)}
.cg-send-btn:active{opacity:.85}

.cg-plus-panel{display:flex;gap:32px;padding:18px 24px 22px;background:#f0f0f0;border-top:1px solid #e0e0e0;animation:cgSlideUp .18s ease-out}
@keyframes cgSlideUp{from{transform:translateY(12px);opacity:.4}to{transform:translateY(0);opacity:1}}
.cg-plus-item{display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer}
.cg-plus-icon{width:60px;height:60px;border-radius:18px;background:linear-gradient(145deg,#fff,#ededed);box-shadow:2px 2px 8px rgba(0,0,0,.1),-1px -1px 5px rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;font-size:30px}
.cg-plus-item:active .cg-plus-icon{box-shadow:inset 2px 2px 6px rgba(0,0,0,.15)}
.cg-plus-label{font-size:12px;color:#666}

.cg-record-tip{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:200;background:rgba(17,24,39,.82);color:#fff;border-radius:18px;padding:22px 28px;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:14px;font-weight:600}
.cg-record-wave{display:flex;gap:5px;align-items:center;height:22px}
.cg-record-wave span{display:inline-block;width:5px;height:14px;background:#7C3AED;border-radius:3px;animation:cgWave 1s infinite}
.cg-record-wave span:nth-child(2){animation-delay:.15s;height:20px}
.cg-record-wave span:nth-child(3){animation-delay:.3s}
@keyframes cgWave{0%,100%{transform:scaleY(.6)}50%{transform:scaleY(1)}}

.cg-mask{position:fixed;inset:0;background:rgba(17,24,39,.5);display:flex;align-items:center;justify-content:center;z-index:50;padding:0 30px}
.cg-sheet{width:100%;max-width:320px;background:#fff;border-radius:18px;padding:20px 18px;text-align:center}
.cg-sheet-t{font-size:16px;font-weight:700;margin-bottom:10px}
.cg-sheet-btn{height:44px;border-radius:12px;background:var(--brand,#EA580C);color:#fff;font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;margin-top:14px;cursor:pointer}
.cg-sheet-btn.ghost{background:#F3F4F6;color:var(--ink2)}
.cg-sheet-row{display:flex;gap:10px}
.cg-sheet-row .cg-sheet-btn{margin-top:16px;flex:1}
.cg-kefu-phone{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;background:#FFF7ED;border-radius:12px;padding:12px 14px;text-decoration:none;color:inherit}
.cg-kefu-phone b{font-size:15px;color:#C2410C}
.cg-zitie-input{width:100%;height:42px;border:1px solid var(--line,#E5E7EB);border-radius:10px;padding:0 12px;font-size:14px;margin-top:14px;outline:none;box-sizing:border-box}

/* 书法诊断底部外露工具按钮（相册/拍照） */
.cg-tool-btn{width:38px;height:38px;border-radius:50%;background:#fff;border:1px solid #E5E7EB;box-shadow:0 2px 6px rgba(0,0,0,.08);display:flex;align-items:center;justify-content:center;flex-shrink:0;cursor:pointer;transition:.15s}
.cg-tool-btn:active{background:#F3F4F6;transform:translateY(1px)}
.cg-plus-hint{padding:2px 6px;border-radius:10px}
.cg-plus-hint:active{background:#F3F4F6}

/* 练字宠物：生肖选择网格 */
.cg-zgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cg-zitem{background:#fff;border:1px solid #EEF2F7;border-radius:12px;padding:12px 4px;text-align:center;cursor:pointer;transition:.15s}
.cg-zitem:active{background:#F8FAFC;transform:scale(.97)}
.cg-zemoji{font-size:30px;line-height:1}
.cg-zname{font-size:12px;margin-top:6px;color:var(--ink2)}

/* 控笔训练视频页（对齐小程序 training） */
.cg-video-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px}
.cg-video-card{background:#fff;border-radius:12px;padding:18px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;transition:.15s}
.cg-video-card:active{background:#F8FAFC;transform:scale(.97)}
.cg-video-ico{font-size:30px;color:#DC2626}
.cg-video-name{margin-top:8px;font-weight:600;font-size:14px}
.cg-video-box{background:#000;border-radius:12px;overflow:hidden;max-width:90vw}
.cg-video-box video{width:100%;display:block;max-height:62vh;object-fit:contain;background:#000}
.cg-video-bar{display:flex;gap:10px;align-items:center;justify-content:center;padding:10px 12px;background:#111827}
.cg-video-bar .cg-video-btn{flex:1;text-align:center;padding:9px 0;border-radius:9px;background:#1F2937;color:#F9FAFB;font-size:13px;font-weight:600}
.cg-video-bar .cg-video-btn:active{background:#374151}
.cg-video-bar .cg-video-btn.pri{background:var(--brand);color:#fff}
.cg-video-close{color:#fff;text-align:center;padding:10px;font-size:14px;cursor:pointer}

/* 输入栏 ➕ 更多按钮（仿微信，对齐小程序）——基础凸起样式见上方 555 行；此处只补品牌色选中态 */
.cg-plus-btn.on{background:linear-gradient(145deg,#8b5cf6,#7C3AED);border-color:#7C3AED;box-shadow:inset 2px 2px 5px rgba(0,0,0,.2)}
.cg-plus-btn.on .cg-plus-cross:before,.cg-plus-btn.on .cg-plus-cross:after{background:#fff}

/* 笔画网格（对齐小程序 60 张示范图） */
.cg-stroke-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}
.cg-stroke-card{background:#fff;border-radius:12px;padding:10px;box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;transition:.15s}
.cg-stroke-card:active{background:#F8FAFC;transform:scale(.98)}
.cg-stroke-img{width:100%;height:90px;object-fit:contain;background:#FAFAF9;border-radius:8px;display:block}
.cg-stroke-name{font-weight:700;font-size:14px;margin-top:8px}
.cg-stroke-desc{font-size:11px;color:var(--ink2);line-height:1.6;margin-top:3px}
.cg-stroke-big{max-width:86vw;max-height:78vh;border-radius:12px;background:#fff;padding:8px;box-shadow:0 10px 30px rgba(0,0,0,.3)}

/* 成长中心 Tab + 评分轨迹（对齐小程序） */
.cg-tabs{display:flex;gap:8px;padding:12px 16px 0}
.cg-tab{flex:1;text-align:center;padding:9px 0;font-size:14px;font-weight:600;color:var(--ink2);background:#F1F5F9;border-radius:10px 10px 0 0;cursor:pointer}
.cg-tab.on{background:var(--brand);color:#fff}
.cg-score-row{display:flex;align-items:center;gap:10px;padding:8px 4px}
.cg-score-date{width:46px;font-size:12px;color:var(--ink2);flex-shrink:0}
.cg-score-bar-bg{flex:1;height:14px;background:#EEF2F6;border-radius:7px;overflow:hidden}
.cg-score-bar{height:100%;border-radius:7px;transition:width .4s}
.cg-score-num{width:46px;text-align:right;font-size:13px;font-weight:700;flex-shrink:0}

/* 附近机构真实地图 */
.nearby-map-wrap{position:relative;border-radius:var(--r-m);overflow:hidden;background:#F4F5F7}
.nearby-map{height:220px;width:100%;border-radius:var(--r-m)}
.nearby-loc-btn{position:absolute;right:10px;bottom:36px;width:38px;height:38px;border-radius:50%;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.15);display:flex;align-items:center;justify-content:center;color:var(--brand);z-index:10}
.nearby-loc-btn:active{background:#FFF7ED;transform:scale(.95)}
.nearby-loc-btn svg{width:20px;height:20px}
.nearby-map-tip{position:absolute;left:10px;bottom:8px;font-size:10px;color:#9CA3AF;background:rgba(255,255,255,.85);padding:3px 7px;border-radius:10px;pointer-events:none}

/* ========== 内容工具箱 V2 · AI 带教 ========== */
.gen-out{font-size:13px}
.rowline{display:flex;align-items:center;justify-content:space-between}
.arrowlink{font-size:11px;color:var(--brand);font-weight:600}
.sec{margin-bottom:14px}
.sec-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding:0 2px}
.sec-t{font-size:14px;font-weight:700;color:var(--ink)}
.sec-m{font-size:12px;color:var(--gray2)}
.tiny{font-size:11px;color:var(--gray2);line-height:1.5}
.md{font-size:13px}
.card{background:#fff;border-radius:14px;padding:13px;margin-bottom:11px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.btn{border:none;border-radius:10px;padding:11px 0;width:100%;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit;box-shadow:0 2px 6px rgba(0,0,0,.10),inset 0 1px 0 rgba(255,255,255,.18)}
.btn.block{width:100%}
.btn.ghost{background:#F3F4F6;color:var(--ink2);box-shadow:0 1px 3px rgba(0,0,0,.06),inset 0 1px 0 rgba(255,255,255,.8)}
.btn:active{transform:translateY(1px)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tool{background:linear-gradient(145deg,#ffffff,#f4f4f6);border:1px solid #e6e6ea;border-radius:14px;padding:13px;position:relative;cursor:pointer;box-shadow:3px 4px 9px rgba(17,24,39,.09),-2px -2px 6px rgba(255,255,255,.95),inset 0 1px 0 rgba(255,255,255,.85);transition:.15s}
.tool:active{transform:translateY(1px);box-shadow:inset 2px 2px 6px rgba(0,0,0,.1)}
.tool .ic{font-size:20px}
.tool .tt{font-size:13.5px;font-weight:700;color:var(--ink);margin-top:6px}
.tool .dd{font-size:10.5px;color:var(--gray2);margin-top:3px;line-height:1.4}
.tag-new{position:absolute;top:9px;right:9px;background:var(--brand);color:#fff;font-size:9px;font-weight:700;padding:2px 7px;border-radius:999px}
.chip{display:inline-flex;align-items:center;padding:2.5px 9px;border-radius:999px;font-size:10.5px;font-weight:600}
/* 热点条目 */
.hotitem{display:flex;align-items:center;gap:10px;padding:11px 10px;margin-bottom:8px;background:linear-gradient(145deg,#ffffff,#f4f4f6);border:1px solid #e6e6ea;border-radius:12px;cursor:pointer;box-shadow:2px 3px 8px rgba(17,24,39,.08),-2px -2px 5px rgba(255,255,255,.95),inset 0 1px 0 rgba(255,255,255,.85);transition:.15s}
.hotitem:active{transform:translateY(1px);box-shadow:inset 2px 2px 6px rgba(0,0,0,.1)}
.hotitem:last-child{border-bottom:none}
.rank{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.hotmain{flex:1;min-width:0}
.hotword{font-size:13.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 三问 / 可编辑栏 */
.qlabel{font-size:12.5px;font-weight:700;color:#374151;margin:13px 0 7px}
.qlabel .q{color:var(--brand);margin-right:5px}
.fchip{display:inline-flex;align-items:center;padding:8px 16px;border-radius:999px;font-size:13px;color:#4B5563;background:#fff;border:1px solid #D1D5DB;margin:0 8px 8px 0;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.fchip.on{background:var(--brand);color:#fff;border-color:var(--brand);font-weight:700}
.inputbox{background:#F8F9FB;border:1.5px solid #E5E7EB;border-radius:12px;padding:12px 14px;font-size:14px;color:#374151;line-height:1.6;min-height:56px;box-shadow:inset 0 1px 3px rgba(0,0,0,.04)}
.inputbox:focus-within{border-color:var(--brand);background:#fff}
.inputbox:empty::before{content:attr(placeholder);color:#9CA3AF}
.inputbox .ph{color:#B91C1C}
.inputbox .hint{color:#9CA3AF;font-size:10.5px;display:block;margin-top:2px}
/* 效果预测条 */
.look{background:#F0FDF4;border:1px dashed #86EFAC;border-radius:10px;padding:8px 10px;margin-top:7px;font-size:11px;color:#166534;line-height:1.6}
.look b{color:#15803D}
/* 步骤卡 */
.step{display:flex;gap:10px;margin-bottom:11px}
.stepno{width:22px;height:22px;border-radius:50%;background:#FFEDD5;color:var(--brand);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.stept{font-size:13px;font-weight:700;color:var(--ink)}
.stepd{font-size:11.5px;color:var(--gray2);line-height:1.6;margin-top:2px}
/* 朋友圈仿真 */
.moments{background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.mm-head{background:#EDEFF3;padding:14px 13px 10px;display:flex;gap:10px}
.mm-avatar{width:40px;height:40px;border-radius:7px;background:linear-gradient(135deg,#FDBA74,#EA580C);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.mm-name{font-size:13.5px;font-weight:700;color:#1D4ED8}
.mm-text{font-size:12.5px;color:#111;line-height:1.7;margin-top:4px}
.mm-grid{display:flex;gap:4px;margin-top:7px}
.mm-img{width:52px;height:52px;border-radius:4px;background:#D1D5DB;display:flex;align-items:center;justify-content:center;font-size:16px}
.mm-time{font-size:10.5px;color:#9CA3AF;margin-top:7px}
.mm-tag{color:#576B95}
/* 海报模板 */
.poster-tpl{border-radius:14px;overflow:hidden;position:relative;box-shadow:0 1px 3px rgba(0,0,0,.06);cursor:pointer;border:2px solid transparent}
.poster-tpl.on{border-color:var(--brand)}
.pt-edit{position:absolute;right:6px;background:rgba(234,88,12,.92);color:#fff;font-size:9px;padding:2px 7px;border-radius:999px;font-weight:700}
/* 对话气泡 */
.bub{max-width:78%;padding:9px 12px;border-radius:12px;font-size:12px;line-height:1.65}
.bub.p{background:#F3F4F6;color:#111;border-top-left-radius:3px}
.bub.o{background:#FDCB9A;color:#431407;border-top-right-radius:3px;margin-left:auto}
.bub-row{display:flex;margin-bottom:9px;align-items:flex-start;gap:8px}
.why{font-size:10px;color:var(--gray2);line-height:1.5;margin-top:3px}
.why b{color:#C2410C}

/* 智囊 AI 回复操作条 */
.miniact{display:inline-flex;align-items:center;padding:4px 11px;border-radius:999px;font-size:11px;color:#7C3AED;background:#F5F3FF;border:1px solid #E9E1FB;cursor:pointer}
.miniact:active{background:#EDE9FE}

/* 机构端工作台：未入驻提示横幅 */
.settle-banner{display:flex;gap:12px;align-items:flex-start;background:linear-gradient(135deg,#FFF7ED,#FFEDD5);border:1.5px solid #FDBA74;border-radius:16px;padding:14px 15px;margin-bottom:14px}
.settle-banner .sb-ic{font-size:20px;line-height:1.2;flex-shrink:0;margin-top:1px}
.settle-banner .sb-bd{flex:1;min-width:0}
.settle-banner .sb-t{font-size:13.5px;font-weight:700;color:#9A3412;line-height:1.4}
.settle-banner .sb-d{font-size:11.5px;line-height:1.62;color:#7C2D12;margin-top:4px}
.settle-banner .sb-d b{color:#C2410C}
.settle-banner .sb-btn{margin-top:10px;display:inline-block;background:#EA580C;color:#fff;font-size:13px;font-weight:600;padding:8px 16px;border:none;border-radius:10px;cursor:pointer}
.settle-banner.info{background:linear-gradient(135deg,#EFF6FF,#DBEAFE);border-color:#93C5FD}
.settle-banner.info .sb-t{color:#1E40AF}
.settle-banner.info .sb-d{color:#1E3A8A}
.settle-banner.warn{background:linear-gradient(135deg,#FEF2F2,#FEE2E2);border-color:#FCA5A5}
.settle-banner.warn .sb-t{color:#B91C1C}
.settle-banner.warn .sb-d{color:#7F1D1D}
.settle-banner.warn .sb-btn{background:#DC2626}

/* 入驻 CTA 立体感强化（体验版横幅按钮） */
.settle-banner .sb-btn{
  margin-top:12px;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  background:linear-gradient(135deg,#EA580C,#F97316);color:#fff;font-size:13.5px;font-weight:800;
  padding:11px 18px;border:none;border-radius:12px;cursor:pointer;
  box-shadow:0 6px 16px rgba(234,88,12,.42),inset 0 1px 0 rgba(255,255,255,.35);
  transition:transform .12s ease,box-shadow .12s ease;
}
.settle-banner .sb-btn:active{transform:translateY(2px);box-shadow:0 3px 8px rgba(234,88,12,.40),inset 0 1px 0 rgba(255,255,255,.30)}
.settle-banner.info .sb-btn{background:linear-gradient(135deg,#2563EB,#3B82F6);box-shadow:0 6px 16px rgba(37,99,235,.38),inset 0 1px 0 rgba(255,255,255,.30)}
.settle-banner.warn .sb-btn{background:linear-gradient(135deg,#DC2626,#EF4444);box-shadow:0 6px 16px rgba(220,38,38,.40),inset 0 1px 0 rgba(255,255,255,.30)}

/* 机构端「我的套餐 / 入驻引导」屏 */
.ent-upgrade{padding:2px 0}
.ent-upgrade .locktitle{font-size:13px;font-weight:700;color:var(--ink2);margin:18px 0 9px}
.ent-upgrade .lcard{display:flex;align-items:flex-start;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;margin-bottom:9px;background:#fff}
.ent-upgrade .lcard .ic{font-size:19px;line-height:1.2;flex-shrink:0}
.ent-upgrade .lcard .tx{flex:1;min-width:0}
.ent-upgrade .lcard .tx .t{font-size:14px;font-weight:600;color:var(--ink)}
.ent-upgrade .lcard .tx .d{font-size:12px;color:var(--gray2);margin-top:2px;line-height:1.5}
.ent-upgrade .lcard .lk{font-size:12px;font-weight:700;color:#059669;flex-shrink:0;white-space:nowrap}
.ent-upgrade .lcard.dim{background:#F8FAFC}
.ent-upgrade .lcard.dim .lk{color:#9AA3AF}
.ent-upgrade .cmp{margin-top:18px;border-top:1px dashed var(--line);padding-top:14px}
.ent-upgrade .cmpt{font-size:13px;font-weight:700;color:var(--ink2);margin-bottom:11px}
.ent-upgrade .tiers{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.ent-upgrade .tier{position:relative;flex:1;min-width:120px;border:1.5px solid var(--line);border-radius:14px;padding:13px 12px;background:#fff}
.ent-upgrade .tier.cur{border-color:var(--brand);box-shadow:0 4px 12px rgba(234,88,12,.18)}
.ent-upgrade .tier.rec{border-color:#F59E0B}
.ent-upgrade .tier .badge{position:absolute;top:-9px;left:12px;background:var(--brand);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}
.ent-upgrade .tier .nm{font-size:15px;font-weight:800;color:var(--ink)}
.ent-upgrade .tier .pr{font-size:18px;font-weight:800;color:var(--brand);margin-top:4px}
.ent-upgrade .tier .pr small{font-size:11px;font-weight:600;color:var(--gray2)}
.ent-upgrade .tier .ft{font-size:11.5px;color:var(--gray2);margin-top:6px;line-height:1.6}
/* 主 CTA：申请入驻（立体橙 + 阴影，醒目） */
.ent-upgrade .cta{display:block;width:100%;margin-top:16px;background:linear-gradient(135deg,#EA580C,#F97316);
  color:#fff;font-size:15px;font-weight:800;border:none;border-radius:14px;padding:14px 18px;cursor:pointer;
  box-shadow:0 8px 20px rgba(234,88,12,.45),inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .12s ease,box-shadow .12s ease;letter-spacing:.5px}
.ent-upgrade .cta:active{transform:translateY(2px);box-shadow:0 4px 10px rgba(234,88,12,.42),inset 0 1px 0 rgba(255,255,255,.35)}
.ent-upgrade .cta small{display:block;font-size:11.5px;font-weight:600;opacity:.92;margin-top:3px}
.ent-upgrade .trial{margin-top:12px;text-align:center;font-size:11.5px;color:var(--gray2);line-height:1.6}

/* 平台端：入驻审核区块 */
.settle-audit{background:#F8FAFC;border:1px solid var(--line);border-radius:14px;padding:13px 14px;margin-bottom:14px}
.settle-audit .lab{font-size:12px;color:var(--gray2);font-weight:600;margin-bottom:8px}
.settle-audit .audit-actions{margin-top:10px}
.settle-audit .audit-actions .btn{margin-top:6px}
.audit-ok{margin-top:8px;font-size:13px;color:#059669;font-weight:600}
.st-badge{display:inline-block;font-size:12.5px;font-weight:600;padding:3px 10px;border-radius:999px}
.st-badge.ok{background:#DCFCE7;color:#15803D}
.st-badge.amber{background:#FEF3C7;color:#B45309}
.st-badge.red{background:#FEE2E2;color:#B91C1C}
.st-badge.gray{background:#F1F5F9;color:#64748B}

/* ============ 机构端「我的套餐」屏 · v2 ============
 * 目标：立体（多层阴影 + 内高光 + 图标芯片）、字号收敛、可点元素明确
 * 命名空间 .ent2 —— 与旧的 .ent-upgrade 完全隔离，不影响其它屏
 */
.ent2{padding:2px 0}

/* 小标题：橙色竖条 + 12px 粗体 + 右侧灰字提示 */
.ent2 .sechead{display:flex;align-items:center;gap:7px;margin:17px 0 9px}
.ent2 .sechead .bar{width:3px;height:13px;border-radius:2px;background:linear-gradient(180deg,#FB923C,#EA580C);flex-shrink:0;box-shadow:0 1px 3px rgba(234,88,12,.35)}
.ent2 .sechead .tt{font-size:12px;font-weight:800;color:#4B5563;letter-spacing:.02em}
.ent2 .sechead .hint{margin-left:auto;font-size:10px;color:#9AA3AF}

/* 能力行：白卡 + 立体图标芯片 + 右侧圆形引导 */
.ent2 .featrow{display:flex;align-items:center;gap:11px;padding:10px 12px;margin-bottom:8px;background:#fff;
  border:1px solid #EEF1F5;border-radius:14px;
  box-shadow:0 2px 6px rgba(17,24,39,.05),inset 0 1px 0 rgba(255,255,255,.9);
  cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
.ent2 .featrow:active{transform:translateY(1px);background:#FDFDFE;box-shadow:0 1px 3px rgba(17,24,39,.08)}
.ent2 .fico{width:36px;height:36px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center;
  color:#EA580C;background:linear-gradient(150deg,#FFF7ED,#FFE6CC);border:1px solid #FED7AA;
  box-shadow:0 3px 8px rgba(234,88,12,.14),inset 0 1px 0 rgba(255,255,255,.95)}
.ent2 .ftx{flex:1;min-width:0}
.ent2 .ftx .ft{font-size:13px;font-weight:700;color:#18191C;line-height:1.25}
.ent2 .ftx .fd{font-size:10.5px;color:#8A9099;margin-top:2px;line-height:1.45}
.ent2 .fgo{width:22px;height:22px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:800;line-height:1;color:#EA580C;background:#FFF1E4;border:1px solid #FDD9B5;
  box-shadow:0 1px 3px rgba(234,88,12,.14),inset 0 1px 0 rgba(255,255,255,.9)}
.ent2 .flock{font-size:9.5px;font-weight:700;color:#98A1AC;background:#F3F5F8;border:1px solid #E4E8EE;
  border-radius:999px;padding:2px 8px;flex-shrink:0;white-space:nowrap}
.ent2 .flock.ok{color:#047857;background:#ECFDF5;border-color:#A7F3D0}

/* 不可点（未包含）状态 */
.ent2 .featrow.off{cursor:default;background:#FAFBFC}
.ent2 .featrow.off:active{transform:none;box-shadow:0 2px 6px rgba(17,24,39,.05)}
.ent2 .featrow.off .fico{color:#A3AAB4;background:linear-gradient(150deg,#F8FAFC,#EEF1F5);border-color:#E4E8EE;
  box-shadow:inset 0 1px 0 #fff}
.ent2 .featrow.off .ftx .ft{color:#6B7280}

/* 正式版卡：淡橙渐变 + 描边 + 外投影 + 左上「推荐」缎带 */
.ent2 .plancard{position:relative;margin-top:12px;border-radius:16px;padding:14px 14px 12px;
  background:linear-gradient(160deg,#FFF9F4,#FFEEDF);border:1.5px solid #FDBA74;
  box-shadow:0 8px 20px rgba(234,88,12,.14),inset 0 1px 0 rgba(255,255,255,.9)}
.ent2 .pribbon{position:absolute;top:-9px;left:14px;font-size:9.5px;font-weight:800;color:#fff;letter-spacing:.08em;
  padding:3px 9px;border-radius:999px;background:linear-gradient(135deg,#FB923C,#EA580C);
  box-shadow:0 3px 8px rgba(234,88,12,.35)}
.ent2 .prow{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.ent2 .pnm{font-size:13.5px;font-weight:800;color:#7C2D12}
.ent2 .pdesc{font-size:10px;color:#A16207;margin-top:2px}
.ent2 .pprice{font-size:21px;font-weight:800;color:#EA580C;line-height:1;letter-spacing:-.5px}
.ent2 .pprice small{font-size:10px;font-weight:700;color:#A16207;margin-left:1px}
.ent2 .pgrid{display:grid;grid-template-columns:1fr 1fr;gap:5px 8px;margin-top:11px;padding-top:10px;border-top:1px dashed #FDBA74}
.ent2 .pfi{display:flex;align-items:center;gap:5px;font-size:10.5px;color:#7C2D12;line-height:1.4}
.ent2 .pfi i{font-style:normal;font-size:9px;font-weight:800;color:#fff;width:13px;height:13px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;background:linear-gradient(135deg,#FB923C,#EA580C);
  box-shadow:0 1px 3px rgba(234,88,12,.3)}
.ent2 .pfoot{margin-top:10px;font-size:10px;color:#A16207;text-align:center}
.ent2 .note-row{margin-top:7px;text-align:center;font-size:10.5px;color:var(--gray2)}
.ent2 .etfoot{margin-top:11px;text-align:center;font-size:10px;color:var(--gray2);line-height:1.6}

/* ============ 平台后台「机构档位配置」屏 · v2 ============
 * 目标：与机构端「我的套餐」(.ent2) 同一套设计语言 ——
 *   立体白卡（多层阴影 + 内高光 + 描边）、36px 图标芯片、圆角控件、iOS 开关、字号收敛
 * 命名空间 .ent3 —— 与旧的 .cfg / .fld / .segs 裸结构完全隔离（那些类从来没写过样式）
 */
.ent3{padding:2px 0}

/* 小标题：橙色竖条 + 12px 粗体 + 右侧灰字（与 .ent2 同款，.ent3 独立声明） */
.ent3 .sechead{display:flex;align-items:center;gap:7px;margin:14px 0 8px}
.ent3 .sechead:first-child{margin-top:0}
.ent3 .sechead .bar{width:3px;height:13px;border-radius:2px;background:linear-gradient(180deg,#FB923C,#EA580C);flex-shrink:0;box-shadow:0 1px 3px rgba(234,88,12,.35)}
.ent3 .sechead .tt{font-size:12px;font-weight:800;color:#4B5563;letter-spacing:.02em}
.ent3 .sechead .hint{margin-left:auto;font-size:10px;color:#9AA3AF}

/* 分组立体卡 */
.ent3 .gcard{background:#fff;border:1px solid #EEF1F5;border-radius:15px;padding:12px 13px 11px;
  box-shadow:0 3px 10px rgba(17,24,39,.055),inset 0 1px 0 rgba(255,255,255,.95);margin-bottom:10px}

/* 状态胶囊：渐变底 + 描边 + 微投影（增值旧 .st-badge 的平面感） */
.ent3 .st-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:800;
  padding:4px 11px;border-radius:999px;border:1px solid transparent;
  box-shadow:0 2px 6px rgba(17,24,39,.08),inset 0 1px 0 rgba(255,255,255,.7)}
.ent3 .st-badge.ok{background:linear-gradient(150deg,#DCFCE7,#BBF7D0);color:#15803D;border-color:#86EFAC}
.ent3 .st-badge.amber{background:linear-gradient(150deg,#FEF3C7,#FDE68A);color:#B45309;border-color:#FCD34D}
.ent3 .st-badge.red{background:linear-gradient(150deg,#FEE2E2,#FECACA);color:#B91C1C;border-color:#FCA5A5}
.ent3 .st-badge.gray{background:linear-gradient(150deg,#F1F5F9,#E7EBF0);color:#64748B;border-color:#D8DEE6}

/* 体验期进度：凹槽 + 橙色渐变填充 */
.ent3 .tprog{margin-top:10px}
.ent3 .tprog .tptx{display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:#8A9099;margin-bottom:5px}
.ent3 .tprog .tptx b{color:#EA580C;font-size:11.5px}
.ent3 .tprog .tpbar{height:7px;border-radius:999px;background:#F1F5F9;overflow:hidden;
  box-shadow:inset 0 1px 3px rgba(17,24,39,.14)}
.ent3 .tprog .tpfill{height:100%;border-radius:999px;background:linear-gradient(90deg,#FB923C,#EA580C);
  box-shadow:0 1px 4px rgba(234,88,12,.4)}

/* 提示条（体验中 / 已到期 / 无抽成说明）：立体淡色条 */
.ent3 .tip{display:flex;gap:9px;align-items:flex-start;padding:10px 11px;border-radius:13px;font-size:11.5px;line-height:1.62;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 2px 6px rgba(17,24,39,.05);margin-top:9px}
.ent3 .tip .tic{flex-shrink:0;margin-top:1px}
.ent3 .tip.warn{background:linear-gradient(150deg,#FFF7ED,#FFEDD5);border:1px solid #FDBA74;color:#9A3412}
.ent3 .tip.over{background:linear-gradient(150deg,#FEF2F2,#FEE2E2);border:1px solid #FCA5A5;color:#B91C1C}
.ent3 .tip.ok{background:linear-gradient(150deg,#ECFDF5,#D1FAE5);border:1px solid #A7F3D0;color:#065F46}
.ent3 .tip.info{background:linear-gradient(150deg,#F8FAFC,#F1F5F9);border:1px solid #E2E8F0;color:#475569}

/* 档位可选卡（保留 .seg / data-plan 供 JS 读取，外观完全重做） */
.ent3 .segs{display:flex;flex-direction:column;gap:8px}
.ent3 .segs .seg{position:relative;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:13px;
  background:#fff;border:1.5px solid #EAEDF1;box-shadow:0 2px 6px rgba(17,24,39,.05),inset 0 1px 0 rgba(255,255,255,.9);
  cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}
.ent3 .segs .seg .scur{position:absolute;top:-8px;right:12px;font-size:9px;font-weight:800;color:#fff;letter-spacing:.06em;
  padding:2px 8px;border-radius:999px;background:linear-gradient(135deg,#94A3B8,#64748B);
  box-shadow:0 2px 6px rgba(100,116,139,.3);white-space:nowrap}
.ent3 .segs .seg.on .scur{background:linear-gradient(135deg,#FB923C,#EA580C);box-shadow:0 2px 6px rgba(234,88,12,.35)}
.ent3 .segs .seg:active{transform:translateY(1px)}
.ent3 .segs .seg .sic{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;
  color:#A3AAB4;background:linear-gradient(150deg,#F8FAFC,#EEF1F5);border:1px solid #E4E8EE;box-shadow:inset 0 1px 0 #fff}
.ent3 .segs .seg .stx{flex:1;min-width:0}
.ent3 .segs .seg .stx b{display:block;font-size:13px;font-weight:800;color:#4B5563;line-height:1.2}
.ent3 .segs .seg .stx small{display:block;font-size:10px;color:#9AA3AF;margin-top:2px}
.ent3 .segs .seg .sv{font-size:15px;font-weight:800;color:#6B7280;letter-spacing:-.3px;flex-shrink:0}
.ent3 .segs .seg .sck{width:20px;height:20px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#fff;background:linear-gradient(135deg,#FB923C,#EA580C);
  box-shadow:0 2px 6px rgba(234,88,12,.35);opacity:0;transform:scale(.7);transition:.14s}
.ent3 .segs .seg.on{border-color:#FDBA74;background:linear-gradient(150deg,#FFF9F4,#FFEEDF);
  box-shadow:0 6px 16px rgba(234,88,12,.16),inset 0 1px 0 rgba(255,255,255,.9)}
.ent3 .segs .seg.on .sic{color:#EA580C;background:linear-gradient(150deg,#FFF7ED,#FFE6CC);border-color:#FED7AA;
  box-shadow:0 2px 6px rgba(234,88,12,.14),inset 0 1px 0 #fff}
.ent3 .segs .seg.on .stx b{color:#7C2D12}
.ent3 .segs .seg.on .stx small{color:#A16207}
.ent3 .segs .seg.on .sv{color:#EA580C}
.ent3 .segs .seg.on .sck{opacity:1;transform:scale(1)}

/* 输入容器：凹槽感（内阴影）+ 前置图标 */
.ent3 .ipt{display:flex;align-items:center;gap:9px;background:linear-gradient(170deg,#fff,#FAFBFC);
  border:1px solid #EAEDF1;border-radius:13px;padding:1px 12px;
  box-shadow:inset 0 2px 4px rgba(17,24,39,.05),0 2px 6px rgba(17,24,39,.04)}
.ent3 .ipt .uic{color:#B7BEC7;flex-shrink:0;display:flex}
.ent3 .ipt input{flex:1;min-width:0;border:none;background:transparent;padding:11px 0;font-size:12.5px;color:#18191C;outline:none}
.ent3 .ipt input::placeholder{color:#B7BEC7}

/* 功能开关行：整行可点 + iOS 立体开关 */
.ent3 .toggles{display:flex;flex-direction:column;gap:7px}
.ent3 .toggles .tg{display:flex;align-items:center;gap:10px;padding:9px 11px;border-radius:13px;
  background:linear-gradient(170deg,#fff,#FCFDFE);border:1px solid #EEF1F5;
  box-shadow:0 2px 6px rgba(17,24,39,.045),inset 0 1px 0 rgba(255,255,255,.95);
  cursor:pointer;position:relative;transition:transform .12s ease,box-shadow .12s ease}
.ent3 .toggles .tg:active{transform:translateY(1px);box-shadow:0 1px 3px rgba(17,24,39,.08)}
.ent3 .toggles .tg input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;margin:0}
.ent3 .toggles .tg .tico{width:30px;height:30px;flex-shrink:0;border-radius:9px;display:flex;align-items:center;justify-content:center;
  color:#A3AAB4;background:linear-gradient(150deg,#F8FAFC,#EEF1F5);border:1px solid #E4E8EE;
  box-shadow:inset 0 1px 0 #fff;transition:.15s}
.ent3 .toggles .tg .ttx{flex:1;min-width:0}
.ent3 .toggles .tg .ttx b{display:block;font-size:12.5px;font-weight:700;color:#6B7280;line-height:1.2;transition:.15s}
.ent3 .toggles .tg .ttx small{display:block;font-size:9.5px;color:#A9B0B8;margin-top:2px;line-height:1.4}
.ent3 .toggles .tg .sw{position:relative;width:38px;height:22px;flex-shrink:0;border-radius:999px;
  background:#DDE2E8;border:1px solid #CFD6DE;box-shadow:inset 0 2px 4px rgba(17,24,39,.12);transition:.18s}
.ent3 .toggles .tg .sw::after{content:'';position:absolute;top:1.5px;left:1.5px;width:16px;height:16px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(17,24,39,.3),inset 0 -1px 0 rgba(0,0,0,.05);transition:.18s}
.ent3 .toggles .tg input:checked ~ .sw{background:linear-gradient(135deg,#34D399,#059669);border-color:#059669;
  box-shadow:0 2px 8px rgba(5,150,105,.32),inset 0 1px 0 rgba(255,255,255,.3)}
.ent3 .toggles .tg input:checked ~ .sw::after{left:19px}
.ent3 .toggles .tg input:checked ~ .tico{color:#047857;background:linear-gradient(150deg,#ECFDF5,#D1FAE5);border-color:#A7F3D0}
.ent3 .toggles .tg input:checked ~ .ttx b{color:#18191C}

/* 月配额：三格数字输入（凹槽数字） */
.ent3 .qgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.ent3 .qgrid .qcell{background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EAEDF1;border-radius:13px;
  padding:9px 8px 8px;text-align:center;box-shadow:0 2px 6px rgba(17,24,39,.05),inset 0 1px 0 rgba(255,255,255,.95)}
.ent3 .qgrid .qcell .ql{font-size:10px;font-weight:800;color:#8A9099;letter-spacing:.02em}
.ent3 .qgrid .qcell input{width:100%;margin-top:6px;border:none;border-radius:9px;padding:8px 0;text-align:center;
  font-size:15px;font-weight:800;color:#18191C;background:#F4F6F8;outline:none;
  box-shadow:inset 0 2px 4px rgba(17,24,39,.08);transition:.15s}
.ent3 .qgrid .qcell input:focus{background:#FFF7ED;color:#EA580C;
  box-shadow:inset 0 2px 4px rgba(234,88,12,.12),0 0 0 2px rgba(234,88,12,.18)}
.ent3 .qgrid .qcell .qu{font-size:9.5px;color:#B7BEC7;margin-top:4px}

/* 按钮：立体（渐变 + 多层投影 + 内高光 + 按下下沉） */
.ent3 .abtn{display:flex;width:100%;align-items:center;justify-content:center;gap:7px;
  border:none;border-radius:14px;padding:13px 16px;font-size:13.5px;font-weight:800;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,#F97316,#EA580C);
  box-shadow:0 8px 20px rgba(234,88,12,.36),inset 0 1px 0 rgba(255,255,255,.42);transition:.13s}
.ent3 .abtn:active{transform:translateY(2px);box-shadow:0 3px 9px rgba(234,88,12,.32),inset 0 1px 0 rgba(255,255,255,.35)}
.ent3 .abtn.green{background:linear-gradient(135deg,#10B981,#059669);box-shadow:0 8px 20px rgba(5,150,105,.34),inset 0 1px 0 rgba(255,255,255,.4)}
.ent3 .abtn.green:active{box-shadow:0 3px 9px rgba(5,150,105,.3),inset 0 1px 0 rgba(255,255,255,.35)}
.ent3 .abtn.sub{background:linear-gradient(170deg,#fff,#F7F9FB);color:#475569;border:1px solid #E4E8EE;
  box-shadow:0 3px 9px rgba(17,24,39,.07),inset 0 1px 0 #fff;font-weight:700;font-size:12.5px;padding:11px 14px}
.ent3 .abtn.sub:active{box-shadow:0 1px 4px rgba(17,24,39,.1),inset 0 1px 0 #fff}
.ent3 .abtn.sub.warn{color:#B45309}
.ent3 .abtn.sub.danger{color:#B91C1C}
.ent3 .abtn[disabled]{opacity:.6;cursor:default;transform:none}
.ent3 .abtns{margin-top:9px}
.ent3 .abtns .abtn + .ipt,.ent3 .abtns .abtn + .abtn{margin-top:8px}

/* 页脚说明：小字灰 */
.ent3 .fnote{font-size:10px;color:#9AA3AF;line-height:1.65;margin-top:9px;text-align:center}

/* ============ v1.9.19 消课抽屉（周一~周日折叠，点开就地展开，一屏装下 7 天） ============ */
.cd-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.cd-row{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:14px;
  background:linear-gradient(170deg,#fff,#FBFCFD);border:1px solid #EEF1F5;
  box-shadow:0 2px 7px rgba(17,24,39,.05),inset 0 1px 0 rgba(255,255,255,.95);
  cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}
.cd-row:active{transform:translateY(1px);box-shadow:0 1px 4px rgba(17,24,39,.08)}
.cd-row.open{border-color:#FDBA74;background:linear-gradient(150deg,#FFF9F4,#FFEEDF);
  box-shadow:0 7px 18px rgba(234,88,12,.14),inset 0 1px 0 rgba(255,255,255,.9)}
.cd-row.off{opacity:.62}
.cd-dc{width:44px;flex-shrink:0;text-align:center}
.cd-dc b{display:block;font-size:12.5px;font-weight:800;color:#18191C}
.cd-dc i{display:block;font-size:9.5px;font-style:normal;color:#9AA3AF;margin-top:2px}
.cd-row.open .cd-dc b{color:#C2410C}
.cd-mid{flex:1;min-width:0}
.cd-t{font-size:12.5px;font-weight:700;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cd-s{font-size:10px;color:#9AA3AF;margin-top:2px}
.cd-bars{display:flex;flex-direction:column;gap:2px;flex-shrink:0}
.cd-bars i{display:block;width:14px;height:3px;border-radius:2px;background:#E5E9EE}
.cd-bars i.on{background:linear-gradient(90deg,#FB923C,#EA580C);box-shadow:0 1px 2px rgba(234,88,12,.3)}
.cd-arrow{flex-shrink:0;font-size:16px;font-weight:700;color:#C7CDD4;transition:transform .18s ease}
.cd-row.open .cd-arrow{transform:rotate(90deg);color:#EA580C}
.cd-drawer{margin:-4px 0 2px;padding:10px 11px 11px;border-radius:0 0 14px 14px;
  border:1px dashed #FDBA74;border-top:none;background:linear-gradient(180deg,#FFFBF7,#FFF7ED)}
.cd-dh{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.cd-dt{font-size:11.5px;font-weight:800;color:#C2410C}

/* ============ v1.9.19 学生成长（课次图片对比 + 分数曲线 + 满分制） ============ */
.gr-caps{display:flex;gap:7px;overflow-x:auto;padding:2px 0 9px;-webkit-overflow-scrolling:touch}
.gr-caps::-webkit-scrollbar{display:none}
.gr-cap{flex-shrink:0;padding:7px 13px;border-radius:999px;font-size:11.5px;font-weight:700;color:#6B7280;
  background:#fff;border:1px solid #E8ECF1;box-shadow:0 2px 6px rgba(17,24,39,.05);cursor:pointer;transition:.13s}
.gr-cap.on{color:#fff;background:linear-gradient(135deg,#F97316,#EA580C);border-color:#EA580C;
  box-shadow:0 5px 14px rgba(234,88,12,.32),inset 0 1px 0 rgba(255,255,255,.35)}
.gr-cap:active{transform:translateY(1px)}
.gr-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.gr-stat{background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;border-radius:13px;
  padding:9px 5px;text-align:center;box-shadow:0 2px 7px rgba(17,24,39,.05),inset 0 1px 0 #fff}
.gr-stat b{display:block;font-size:16px;font-weight:800;color:#EA580C;letter-spacing:-.4px}
.gr-stat span{display:block;font-size:9.5px;color:#9AA3AF;margin-top:2px}
.gr-cmp{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:2px 0}
.gr-cmp::-webkit-scrollbar{display:none}
.gr-cell{flex-shrink:0;width:84px;text-align:center}
.gr-img{width:84px;height:84px;border-radius:12px;background:linear-gradient(180deg,#fff,#FAFBFC);
  border:1px solid #E8ECF1;display:flex;align-items:center;justify-content:center;
  box-shadow:0 3px 10px rgba(17,24,39,.07),inset 0 1px 0 #fff;overflow:hidden;position:relative}
.gr-img img{width:100%;height:100%;object-fit:cover}
.gr-cell.last .gr-img{border-color:#FDBA74;box-shadow:0 5px 16px rgba(234,88,12,.2),inset 0 0 0 1.5px #FDBA74}
.gr-tag{font-size:9.5px;font-weight:800;color:#EA580C;margin-top:5px}
.gr-score{font-size:11px;font-weight:700;color:#374151;margin-top:2px}
.gr-arrow{flex-shrink:0;color:#EA580C;font-weight:800;font-size:15px}
.gr-tl{position:relative;padding-left:16px}
.gr-tl::before{content:'';position:absolute;left:4px;top:6px;bottom:6px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,#FDBA74,#FFEDD5)}
.gr-tl-i{position:relative;padding:0 0 12px}
.gr-tl-i::before{content:'';position:absolute;left:-16px;top:4px;width:10px;height:10px;border-radius:50%;
  background:linear-gradient(135deg,#FB923C,#EA580C);box-shadow:0 0 0 3px #FFF7ED}
.gr-chartwrap{background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;border-radius:14px;
  padding:11px 10px 7px;box-shadow:0 3px 10px rgba(17,24,39,.05),inset 0 1px 0 #fff}
.gr-chartwrap svg{display:block;width:100%;height:auto}
.gr-sub{font-size:11px;font-weight:800;color:#C2410C;margin:0 0 6px}
.gr-tagline{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:800;color:#047857;
  background:linear-gradient(150deg,#ECFDF5,#D1FAE5);border:1px solid #A7F3D0;border-radius:8px;padding:3px 8px}
.gr-miss{font-size:9.5px;font-weight:800;color:#B45309;background:#FEF3C7;border:1px solid #FCD34D;
  border-radius:8px;padding:3px 8px}

/* ============ v1.0.0 多科目成长评价（分项 1-5 星 / 能力画像） ============ */
/* 科目分组（录入屏按分类折叠展示） */
.gr-catgrp{margin-bottom:8px}
.gr-catgrp-t{font-size:10px;font-weight:800;color:#B45309;margin:0 0 4px;padding-left:2px;
  display:flex;align-items:center;gap:5px}
.gr-catgrp-t::before{content:'';width:3px;height:10px;border-radius:2px;background:#FDBA74}
/* 分项打星行 */
.gr-dims{background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;border-radius:14px;padding:3px 12px}
.gr-dim{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #F3F5F8}
.gr-dim:last-child{border-bottom:none}
.gr-dim-n{flex:1;min-width:0;font-size:12.5px;font-weight:700;color:#374151;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gr-dim-s{display:flex;gap:2px;flex-shrink:0}
.gr-star{font-size:19px;line-height:1;color:#E5E7EB;cursor:pointer;transition:color .12s,transform .12s}
.gr-star.on{color:#F59E0B}
.gr-star:active{transform:scale(.86)}
.gr-dim-v{flex-shrink:0;width:38px;text-align:right;font-size:10px;font-weight:800;color:#9AA3AF}
.gr-dim-v::after{content:''}
/* 自动综合分条 */
.gr-dimsum{display:flex;align-items:center;gap:8px;margin-top:9px;padding:9px 12px;border-radius:12px;
  background:linear-gradient(135deg,#FFF7ED,#FFEDD5);border:1px solid #FED7AA}
.gr-dimsum b{font-size:15px;font-weight:800;color:#EA580C;letter-spacing:-.3px}
.gr-dimsum span{font-size:10.5px;color:#C2410C;margin-left:auto;opacity:.86}
/* 能力画像（机构端详情 + 家长端成长共用） */
.gr-prof{background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;border-radius:14px;padding:11px 13px}
.gr-prof-i{display:flex;align-items:center;gap:9px;padding:5px 0}
.gr-prof-n{flex-shrink:0;width:76px;font-size:11.5px;font-weight:700;color:#374151;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gr-prof-bar{flex:1;height:7px;border-radius:99px;background:#EEF1F5;overflow:hidden;min-width:40px}
.gr-prof-bar i{display:block;height:100%;border-radius:99px;
  background:linear-gradient(90deg,#FB923C,#EA580C);transition:width .3s ease}
.gr-prof-s{flex-shrink:0;width:66px;text-align:right;font-size:10.5px;font-weight:800;color:#C2410C}
.gr-prof-s .up{color:#059669;margin-left:3px}
.gr-prof-s .dn{color:#DC2626;margin-left:3px}
/* 家长端时间线里的分项星级 */
.pg-tl-dims{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.pg-tl-dims span{font-size:10px;font-weight:700;color:#6B7280;background:#F8FAFC;
  border:1px solid #E5E7EB;border-radius:7px;padding:2px 7px}
.pg-tl-dims b{color:#EA580C;font-weight:800}
/* 评价维度自主编辑：录入屏入口条 */
.gr-editbar{margin:2px 0 12px;padding:10px 12px;border-radius:13px;
  background:linear-gradient(150deg,#FFFBF7,#FFF7ED);border:1px dashed #FDBA74}
.gr-editbar-t{font-size:11px;font-weight:700;color:#9A3412;line-height:1.6;margin-bottom:8px}
/* 编辑面板里的维度行 */
.gr-ed-row{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.gr-ed-i{flex-shrink:0;width:20px;height:20px;border-radius:50%;background:#FFEDD5;color:#C2410C;
  font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.gr-ed-row .ipt{flex:1;min-width:0;padding:9px 11px;font-size:13px;border-radius:10px;
  border:1px solid #EAEDF1;background:#fff}
.gr-ed-x{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:none;background:#FEF2F2;color:#B91C1C;
  font-size:17px;font-weight:700;line-height:1;cursor:pointer}
.gr-ed-x:active{transform:scale(.9)}
.gr-ed-empty{font-size:12px;color:#9AA3AF;padding:12px 0;text-align:center}
/* 家长端：老师调整过评价维度时的提示条 */
.pg-shift{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:11px 12px;border-radius:13px;
  background:linear-gradient(150deg,#EFF6FF,#F8FBFF);border:1px solid #BFDBFE}
.pg-shift-ic{flex-shrink:0;width:26px;height:26px;border-radius:9px;background:#DBEAFE;color:#1D4ED8;
  font-size:14px;display:flex;align-items:center;justify-content:center}
.pg-shift-t{font-size:12.5px;font-weight:800;color:#1E40AF;margin-bottom:3px}
.pg-shift-d{font-size:11.5px;color:#475569;line-height:1.7}

/* ============ v1.9.19 比赛活动（分类 / 链接 / 贴图 / 获奖展示） ============ */
.ev-card{background:linear-gradient(170deg,#fff,#FCFDFE);border:1px solid #EEF1F5;border-radius:15px;
  padding:12px 13px;box-shadow:0 3px 10px rgba(17,24,39,.055),inset 0 1px 0 #fff;margin-bottom:9px;cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease}
.ev-card:active{transform:translateY(1px);box-shadow:0 1px 5px rgba(17,24,39,.09)}
.ev-top{display:flex;align-items:center;gap:7px;margin-bottom:7px}
.ev-cat{font-size:9.5px;font-weight:800;padding:3px 8px;border-radius:999px;flex-shrink:0}
.ev-cat.c-match{background:linear-gradient(150deg,#FFE4E6,#FECDD3);color:#BE123C}
.ev-cat.c-exhibition{background:linear-gradient(150deg,#EDE9FE,#DDD6FE);color:#6D28D9}
.ev-cat.c-openclass{background:linear-gradient(150deg,#DBEAFE,#BFDBFE);color:#1D4ED8}
.ev-cat.c-grade{background:linear-gradient(150deg,#FEF3C7,#FDE68A);color:#B45309}
.ev-t{font-size:13.5px;font-weight:800;color:#18191C;line-height:1.35}
.ev-d{font-size:11px;color:#6B7280;line-height:1.6;margin-top:5px}
.ev-metas{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ev-meta{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#6B7280;
  background:#F4F6F8;border:1px solid #EAEDF1;border-radius:8px;padding:3px 8px}
.ev-marks{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.ev-mark{font-size:9.5px;font-weight:800;color:#C2410C;background:linear-gradient(150deg,#FFF7ED,#FFEDD5);
  border:1px solid #FDE3C8;border-radius:8px;padding:3px 8px}
.ev-award{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px dashed #EEF1F5}
.ev-award:last-child{border-bottom:none}
.ev-rank{flex-shrink:0;font-size:9.5px;font-weight:800;color:#fff;border-radius:7px;padding:3px 7px;
  background:linear-gradient(135deg,#FDBA74,#EA580C);box-shadow:0 2px 6px rgba(234,88,12,.3)}
.ev-rank.r1{background:linear-gradient(135deg,#FBBF24,#D97706);box-shadow:0 2px 6px rgba(217,119,6,.32)}
.ev-rank.r2{background:linear-gradient(135deg,#D1D5DB,#9CA3AF)}
.ev-rank.r3{background:linear-gradient(135deg,#FDBA74,#EA580C)}
.ev-photo{width:52px;height:52px;border-radius:10px;flex-shrink:0;background:#F4F6F8;border:1px solid #EAEDF1;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.ev-photo img{width:100%;height:100%;object-fit:cover}
.ev-mine{font-size:9px;font-weight:800;color:#fff;background:linear-gradient(135deg,#34D399,#059669);
  border-radius:6px;padding:2px 6px;margin-left:5px}

/* ============ v1.9.19 家长端首页按钮矩阵（能点的做凸起，不直拉） ============ */
.hm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.hm-cell{display:flex;flex-direction:column;align-items:center;gap:5px;padding:11px 4px 9px;border-radius:15px;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;
  box-shadow:0 3px 10px rgba(17,24,39,.06),inset 0 1px 0 #fff;cursor:pointer;position:relative;
  transition:transform .12s ease,box-shadow .12s ease}
.hm-cell:active{transform:translateY(2px);box-shadow:0 1px 4px rgba(17,24,39,.1),inset 0 1px 0 #fff}
.hm-ic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:18px;color:#fff;box-shadow:0 4px 11px rgba(17,24,39,.16),inset 0 1px 0 rgba(255,255,255,.4)}
.hm-t{font-size:10.5px;font-weight:700;color:#4B5563;text-align:center;line-height:1.25}
.hm-badge{position:absolute;top:7px;right:9px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;
  background:linear-gradient(135deg,#F87171,#DC2626);color:#fff;font-size:9px;font-weight:800;
  display:flex;align-items:center;justify-content:center;box-shadow:0 2px 5px rgba(220,38,38,.4)}

/* ============ v1.9.19 多机构课时条（一个家长连多家机构） ============ */
.mo-list{display:flex;flex-direction:column;gap:8px}
.mo-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;
  box-shadow:0 3px 10px rgba(17,24,39,.055),inset 0 1px 0 #fff;cursor:pointer}
.mo-row.warn{border-color:#FCA5A5;background:linear-gradient(170deg,#fff,#FEF2F2)}
.mo-ic{width:34px;height:34px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-size:15px;color:#fff;background:linear-gradient(135deg,#F97316,#EA580C);
  box-shadow:0 3px 9px rgba(234,88,12,.3),inset 0 1px 0 rgba(255,255,255,.35)}
.mo-mid{flex:1;min-width:0}
.mo-n{font-size:12.5px;font-weight:800;color:#18191C}
.mo-s{font-size:10px;color:#9AA3AF;margin-top:2px}
.mo-v{text-align:right;flex-shrink:0}
.mo-v b{display:block;font-size:15px;font-weight:800;color:#EA580C;letter-spacing:-.4px}
.mo-v span{display:block;font-size:9.5px;color:#9AA3AF;margin-top:1px}
.mo-row.warn .mo-v b{color:#DC2626}

/* ============ v1.9.19 机构端 · 引流获客界面立体化（照 .ent3 语言，只换皮不改结构/动作） ============ */
.tr-head{margin:12px 12px 0;border-radius:16px;padding:14px 15px;position:relative;overflow:hidden;
  background:linear-gradient(135deg,#FFF9F4,#FFEEDF);border:1px solid #FDE3C8;
  box-shadow:0 8px 20px rgba(234,88,12,.1),inset 0 1px 0 rgba(255,255,255,.9)}
.tr-head::after{content:'';position:absolute;right:-28px;top:-34px;width:110px;height:110px;border-radius:50%;
  background:radial-gradient(circle,rgba(251,146,60,.28),rgba(251,146,60,0) 70%)}
.tr-head-t{font-size:16px;font-weight:800;color:#7C2D12;letter-spacing:-.3px;position:relative}
.tr-head-d{font-size:11.5px;color:#A16207;line-height:1.6;margin-top:5px;position:relative}
.tr-head-metas{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap;position:relative}
.tr-pill{font-size:10px;font-weight:800;color:#C2410C;background:#fff;border:1px solid #FDE3C8;
  border-radius:999px;padding:4px 10px;box-shadow:0 2px 6px rgba(234,88,12,.1),inset 0 1px 0 #fff}
.tr-nav{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 9px;border-radius:14px;
  cursor:pointer;user-select:none;-webkit-user-select:none;background:linear-gradient(170deg,#fff,#FAFBFC);
  border:1px solid #EEF1F5;box-shadow:0 3px 9px rgba(17,24,39,.06),inset 0 1px 0 #fff;transition:.14s}
.tr-nav:active{transform:translateY(1px);box-shadow:0 1px 4px rgba(17,24,39,.09)}
.tr-nav .tr-ic{font-size:18px;line-height:1;filter:grayscale(.15)}
.tr-nav .tr-t{font-size:10px;font-weight:700;color:#6B7280;white-space:nowrap;line-height:1.2}
.tr-nav.on{background:linear-gradient(135deg,#F97316,#EA580C);border-color:#EA580C;
  box-shadow:0 7px 18px rgba(234,88,12,.34),inset 0 1px 0 rgba(255,255,255,.36)}
.tr-nav.on .tr-t{color:#fff}
.tr-nav.on .tr-ic{filter:none}
.tr-card{position:relative;padding:14px 13px 13px}
.tr-card .tr-cic{width:38px;height:38px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  font-size:19px;background:linear-gradient(150deg,#FFF7ED,#FFE6CC);border:1px solid #FED7AA;
  box-shadow:0 3px 9px rgba(234,88,12,.14),inset 0 1px 0 #fff}
.tr-card .tr-ct{font-size:14px;font-weight:800;color:#18191C;margin-top:8px}
.tr-card .tr-cd{font-size:11px;color:#9AA3AF;margin-top:3px;line-height:1.45}
.tr-card .tr-go{position:absolute;right:11px;bottom:11px;width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#EA580C;
  background:linear-gradient(150deg,#FFF7ED,#FFEDD5);border:1px solid #FDBA74;
  box-shadow:0 2px 6px rgba(234,88,12,.16)}
.tr-card.hot{border-color:#FDBA74;background:linear-gradient(150deg,#FFFBF7,#FFF3E6);
  box-shadow:0 6px 16px rgba(234,88,12,.16),inset 0 1px 0 rgba(255,255,255,.9)}
.tr-hot{position:absolute;top:9px;right:9px;background:linear-gradient(135deg,#F97316,#EA580C);color:#fff;
  font-size:9px;font-weight:800;padding:3px 8px;border-radius:999px;box-shadow:0 3px 8px rgba(234,88,12,.32)}
.tr-more{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tr-mcell{display:flex;flex-direction:column;align-items:center;gap:5px;padding:11px 2px 9px;border-radius:13px;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;
  box-shadow:0 3px 9px rgba(17,24,39,.055),inset 0 1px 0 #fff;cursor:pointer;transition:.12s}
.tr-mcell:active{transform:translateY(2px);box-shadow:0 1px 4px rgba(17,24,39,.09)}
.tr-mcell .tr-mic{width:30px;height:30px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:15px;background:linear-gradient(150deg,#F8FAFC,#EEF1F5);border:1px solid #E4E8EE;box-shadow:inset 0 1px 0 #fff}
.tr-mcell .tr-mt{font-size:9.5px;font-weight:700;color:#4B5563;text-align:center;line-height:1.2}


/* ============================================================
   v1.9.19 家长端：首页按钮矩阵 + 多机构课时 + 成长 + 比赛活动 + 账单
   命名空间 pm-（家长矩阵）/ pg-（成长）/ pe-（比赛活动）/ pb-（账单）
   与机构端 .ent3 同一套立体语言：渐变底 + 描边 + 内高光 + 外投影 + 按下下沉
   ============================================================ */

/* ---------- 孩子卡（支持多孩子切换） ---------- */
.pm-kidcard{display:flex;align-items:center;gap:11px;padding:12px 13px;border-radius:16px;
  background:linear-gradient(150deg,#FFF7ED,#FFEDD5);border:1px solid #FDE3C8;
  box-shadow:0 6px 16px rgba(234,88,12,.14),inset 0 1px 0 rgba(255,255,255,.9)}
.pm-kid-av{width:42px;height:42px;flex-shrink:0;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:18px;font-weight:800;color:#fff;background:linear-gradient(150deg,#F97316,#EA580C);
  box-shadow:0 5px 13px rgba(234,88,12,.35),inset 0 1px 0 rgba(255,255,255,.4)}
.pm-kid-n{font-size:15.5px;font-weight:800;color:#7C2D12;letter-spacing:-.3px}
.pm-kid-s{font-size:10.5px;color:#9A3412;margin-top:3px}
.pm-kid-chips{display:flex;gap:7px;overflow-x:auto;padding:9px 0 0}
.pm-kid-chips::-webkit-scrollbar{display:none}
.pm-kid-chip{flex-shrink:0;padding:6px 12px;border-radius:999px;font-size:11px;font-weight:700;color:#6B7280;
  background:#fff;border:1.5px solid #EAEDF1;box-shadow:0 2px 6px rgba(17,24,39,.055);cursor:pointer}
.pm-kid-chip.on{color:#fff;background:linear-gradient(135deg,#F97316,#EA580C);border-color:#EA580C;
  box-shadow:0 4px 11px rgba(234,88,12,.34)}

/* ---------- 多机构课时条 ---------- */
.pg-orgs{display:flex;flex-direction:column;gap:9px}
.pg-org{padding:12px 13px;border-radius:16px;background:linear-gradient(170deg,#fff,#FAFBFC);
  border:1px solid #EEF1F5;box-shadow:0 4px 12px rgba(17,24,39,.06),inset 0 1px 0 #fff;cursor:pointer;
  transition:transform .12s ease,box-shadow .12s ease}
.pg-org:active{transform:translateY(2px);box-shadow:0 1px 5px rgba(17,24,39,.1)}
.pg-org.warn{border-color:#FCA5A5;background:linear-gradient(170deg,#fff,#FEF2F2)}
.pg-org.miss{border-color:#FCD34D;background:linear-gradient(170deg,#fff,#FFFBEB)}
.pg-org-h{display:flex;align-items:center;gap:10px}
.pg-org-ic{width:34px;height:34px;flex-shrink:0;border-radius:11px;display:flex;align-items:center;justify-content:center;
  font-size:15px;font-weight:800;color:#fff;background:linear-gradient(150deg,#F97316,#EA580C);
  box-shadow:0 4px 10px rgba(234,88,12,.3),inset 0 1px 0 rgba(255,255,255,.35)}
.pg-org-n{font-size:13px;font-weight:800;color:#18191C;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pg-org-s{font-size:10px;color:#9AA3AF;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pg-org-tag{flex-shrink:0;font-size:9.5px;font-weight:800;padding:3px 8px;border-radius:8px;
  color:#C2410C;background:#FFEDD5;border:1px solid #FDBA74}
.pg-org-tag.gray{color:#6B7280;background:#F3F4F6;border-color:#E5E7EB}
.pg-org-tag.red{color:#B91C1C;background:#FEE2E2;border-color:#FCA5A5}
.pg-org-b{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.pg-org-k{padding:8px 10px;border-radius:11px;background:#F8FAFC;border:1px solid #EEF1F5}
.pg-org-k b{display:block;font-size:15px;font-weight:800;color:#EA580C;letter-spacing:-.4px}
.pg-org-k span{display:block;font-size:9.5px;color:#9AA3AF;margin-top:1px}
.pg-org.warn .pg-org-k b{color:#DC2626}
.pg-org-bar{height:7px;border-radius:999px;background:#EEF1F5;overflow:hidden;margin-top:9px;
  box-shadow:inset 0 1px 2px rgba(17,24,39,.08)}
.pg-org-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#F97316,#EA580C);
  box-shadow:0 0 6px rgba(234,88,12,.4)}
.pg-org-bar.low i{background:linear-gradient(90deg,#F87171,#DC2626);box-shadow:0 0 6px rgba(220,38,38,.4)}
.pg-addrow{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:2px}
.pg-addbtn{padding:11px 8px;border-radius:13px;font-size:11.5px;font-weight:800;text-align:center;cursor:pointer;
  color:#C2410C;background:linear-gradient(170deg,#fff,#FFF7ED);border:1.5px dashed #FDBA74;
  transition:transform .12s ease}
.pg-addbtn:active{transform:translateY(2px)}

/* ---------- 待办双卡 ---------- */
.pm-todos{display:flex;flex-direction:column;gap:8px}
.pm-todo{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:14px;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;
  box-shadow:0 4px 12px rgba(17,24,39,.06),inset 0 1px 0 #fff}
.pm-todo.hot{background:linear-gradient(150deg,#FFF7ED,#FFEDD5);border-color:#FDBA74;
  box-shadow:0 5px 14px rgba(234,88,12,.16),inset 0 1px 0 rgba(255,255,255,.9)}
.pm-todo-ic{width:32px;height:32px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:15px;background:linear-gradient(150deg,#F8FAFC,#EEF1F5);border:1px solid #E4E8EE;box-shadow:inset 0 1px 0 #fff}
.pm-todo.hot .pm-todo-ic{background:linear-gradient(150deg,#FFEDD5,#FED7AA);border-color:#FDBA74}
.pm-todo-t{font-size:12.5px;font-weight:800;color:#18191C}
.pm-todo.hot .pm-todo-t{color:#9A3412}
.pm-todo-d{font-size:10px;color:#9AA3AF;margin-top:2px;line-height:1.5}
.pm-todo.hot .pm-todo-d{color:#C2410C}
.pm-todo-btn{flex-shrink:0;font-size:11px;font-weight:800;padding:7px 12px;border-radius:10px;cursor:pointer;
  color:#fff;background:linear-gradient(135deg,#F97316,#EA580C);
  box-shadow:0 4px 11px rgba(234,88,12,.34),inset 0 1px 0 rgba(255,255,255,.3)}
.pm-todo-btn:active{transform:translateY(2px);box-shadow:0 1px 4px rgba(234,88,12,.3)}
.pm-todo-btn.ghost{color:#4B5563;background:linear-gradient(170deg,#fff,#F8FAFC);border:1.5px solid #E4E8EE;
  box-shadow:0 3px 8px rgba(17,24,39,.06)}

/* ---------- 12 格按钮矩阵 ---------- */
.pm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.pm-cell{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;
  padding:12px 3px 10px;border-radius:14px;cursor:pointer;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;
  box-shadow:0 4px 11px rgba(17,24,39,.06),inset 0 1px 0 #fff;
  transition:transform .12s ease,box-shadow .12s ease}
.pm-cell:active{transform:translateY(2px);box-shadow:0 1px 4px rgba(17,24,39,.1)}
.pm-ic{width:38px;height:38px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  font-size:18px;background:linear-gradient(150deg,#F8FAFC,#EEF1F5);border:1px solid #E4E8EE;
  box-shadow:0 3px 8px rgba(17,24,39,.07),inset 0 1px 0 #fff}
.pm-t{font-size:10px;font-weight:700;color:#4B5563;text-align:center;line-height:1.25}
.pm-cell.hot{background:linear-gradient(160deg,#FFF7ED,#FFEDD5);border-color:#FDBA74;
  box-shadow:0 5px 14px rgba(234,88,12,.16),inset 0 1px 0 rgba(255,255,255,.9)}
.pm-cell.hot .pm-ic{background:linear-gradient(150deg,#FFEDD5,#FED7AA);border-color:#FDBA74}
.pm-cell.hot .pm-t{color:#9A3412}
.pm-badge{position:absolute;top:6px;right:6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;
  font-size:9.5px;font-weight:800;color:#fff;background:linear-gradient(135deg,#F87171,#DC2626);
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 2px 6px rgba(220,38,38,.35),inset 0 1px 0 rgba(255,255,255,.3)}

/* ---------- 展开更多（通知 / 课表下沉） ---------- */
.pm-more{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:12px;
  padding:11px;border-radius:13px;font-size:11.5px;font-weight:800;color:#6B7280;cursor:pointer;
  background:linear-gradient(170deg,#fff,#F8FAFC);border:1px dashed #DDE2E9}
.pm-more:active{transform:translateY(2px)}

/* ---------- 家长端头卡（成长 / 账单 / 比赛活动共用） ---------- */
.pg-hero{position:relative;overflow:hidden;border-radius:18px;padding:15px 16px;color:#fff;
  background:linear-gradient(135deg,#F97316,#EA580C);
  box-shadow:0 10px 24px rgba(234,88,12,.32),inset 0 1px 0 rgba(255,255,255,.32)}
.pg-hero::before{content:'';position:absolute;width:150px;height:150px;border-radius:50%;top:-70px;right:-45px;
  background:radial-gradient(circle,rgba(255,255,255,.34),transparent 68%)}
.pg-hero::after{content:'';position:absolute;width:100px;height:100px;border-radius:50%;bottom:-58px;left:-28px;
  background:radial-gradient(circle,rgba(255,255,255,.2),transparent 70%)}
.pg-hero.green{background:linear-gradient(135deg,#10B981,#059669);box-shadow:0 10px 24px rgba(5,150,105,.3),inset 0 1px 0 rgba(255,255,255,.3)}
.pg-hero.blue{background:linear-gradient(135deg,#3B82F6,#2563EB);box-shadow:0 10px 24px rgba(37,99,235,.3),inset 0 1px 0 rgba(255,255,255,.3)}
.pg-hero-k{position:relative;font-size:10.5px;opacity:.94;font-weight:600}
.pg-hero-v{position:relative;font-size:27px;font-weight:800;letter-spacing:-.9px;margin-top:2px;line-height:1.1}
.pg-hero-v small{font-size:13px;font-weight:700;opacity:.9;margin-left:3px}
.pg-hero-d{position:relative;font-size:10.5px;opacity:.95;margin-top:7px;line-height:1.65}
.pg-hero-tags{position:relative;display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.pg-hero-tags span{padding:4px 9px;border-radius:9px;font-size:9.5px;font-weight:800;
  background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.3)}
.pg-h4{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:11px}
.pg-h4c{padding:10px 11px;border-radius:13px;background:rgba(255,255,255,.17);
  border:1px solid rgba(255,255,255,.26)}
.pg-h4c b{display:block;font-size:17px;font-weight:800;letter-spacing:-.4px}
.pg-h4c span{display:block;font-size:9.5px;opacity:.9;margin-top:2px}

/* ---------- 成长页专用 ---------- */
.pg-sec{padding:13px;border-radius:16px;background:linear-gradient(170deg,#fff,#FAFBFC);
  border:1px solid #EEF1F5;box-shadow:0 4px 12px rgba(17,24,39,.06),inset 0 1px 0 #fff;margin-top:11px}
.pg-sched{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:12px;background:#F8FAFC;
  border:1px solid #EEF1F5;margin-top:7px}
.pg-sched-d{width:34px;height:34px;flex-shrink:0;border-radius:11px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;color:#fff;background:linear-gradient(150deg,#F97316,#EA580C);
  box-shadow:0 3px 8px rgba(234,88,12,.28)}
.pg-sched-d b{font-size:11px;font-weight:800;line-height:1.1}
.pg-sched-d span{font-size:8.5px;opacity:.92;line-height:1.1}
.pg-sched-n{font-size:12px;font-weight:800;color:#18191C}
.pg-sched-s{font-size:10px;color:#9AA3AF;margin-top:2px}
/* v11061 #1 首页本周课表机构子菜单切换 */
.pg-schtab{flex-shrink:0;padding:7px 13px;border-radius:999px;font-size:12px;font-weight:700;color:#6B7280;
  background:#F5F6F8;border:1px solid #E8EBEF;cursor:pointer;white-space:nowrap}
.pg-schtab.on{color:#fff;background:linear-gradient(150deg,#F97316,#EA580C);border-color:#EA580C;
  box-shadow:0 3px 10px rgba(234,88,12,.3)}
.pg-tl{position:relative;padding-left:16px;margin-top:8px}
.pg-tl::before{content:'';position:absolute;left:4px;top:6px;bottom:6px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,#FED7AA,#EA580C,#FED7AA)}
.pg-tl-i{position:relative;padding:0 0 11px}
.pg-tl-i::before{content:'';position:absolute;left:-16px;top:4px;width:10px;height:10px;border-radius:50%;
  background:#fff;border:2.5px solid #EA580C;box-shadow:0 0 0 2px rgba(234,88,12,.14)}
.pg-tl-i.gray::before{border-color:#9AA3AF;box-shadow:0 0 0 2px rgba(154,163,175,.14)}
.pg-tl-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pg-tl-h b{font-size:12.5px;color:#18191C}
.pg-tl-x{font-size:11.5px;color:#6B7280;line-height:1.6;margin-top:4px}
.pg-tl-m{font-size:10px;color:#9AA3AF;margin-top:4px}
.pg-tl-imgs{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}
.pg-tl-imgs img{width:56px;height:56px;border-radius:9px;object-fit:cover;border:1px solid #EAEDF1}
.pg-note{padding:10px 12px;border-radius:12px;background:#FFFBEB;border:1px solid #FDE68A;
  font-size:11px;color:#92400E;line-height:1.65;margin-top:11px}
.pg-empty{padding:22px 16px;text-align:center;border-radius:16px;background:linear-gradient(170deg,#fff,#FAFBFC);
  border:1px dashed #DDE2E9}
.pg-empty .e{font-size:30px;line-height:1}
.pg-empty .t{font-size:13px;font-weight:800;color:#4B5563;margin-top:9px}
.pg-empty .d{font-size:11px;color:#9AA3AF;margin-top:5px;line-height:1.6}

/* ---------- 比赛活动 ---------- */
.pe-caps{display:flex;gap:7px;overflow-x:auto;padding:2px 0 10px}
.pe-caps::-webkit-scrollbar{display:none}
.pe-cap{flex-shrink:0;padding:7px 13px;border-radius:999px;font-size:11.5px;font-weight:700;color:#6B7280;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1.5px solid #EAEDF1;
  box-shadow:0 2px 6px rgba(17,24,39,.055);cursor:pointer;transition:.12s}
.pe-cap.on{color:#fff;background:linear-gradient(135deg,#F97316,#EA580C);border-color:#EA580C;
  box-shadow:0 4px 11px rgba(234,88,12,.34)}
.pe-cap:active{transform:translateY(1px)}
.pe-card{position:relative;padding:13px;border-radius:16px;margin-bottom:10px;cursor:pointer;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;
  box-shadow:0 4px 13px rgba(17,24,39,.065),inset 0 1px 0 #fff;
  transition:transform .12s ease,box-shadow .12s ease}
.pe-card:active{transform:translateY(2px);box-shadow:0 1px 5px rgba(17,24,39,.1)}
.pe-card.soon{border-color:#FDBA74;background:linear-gradient(160deg,#FFF7ED,#FFFBF5)}
.pe-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pe-cat{font-size:9.5px;font-weight:800;padding:3px 8px;border-radius:8px;
  color:#C2410C;background:#FFEDD5;border:1px solid #FDBA74}
/* 分类键必须与机构端 .ev-cat.c-* 完全对齐（match/exhibition/openclass/grade），
 * 否则机构发的「展览」「考级」在家长端拿不到样式、只能吃默认橙底 → 看起来都像比赛 */
.pe-cat.match{color:#BE123C;background:#FFE4E6;border-color:#FECDD3}
.pe-cat.exhibition{color:#6D28D9;background:#EDE9FE;border-color:#DDD6FE}
.pe-cat.openclass{color:#1D4ED8;background:#DBEAFE;border-color:#BFDBFE}
.pe-cat.grade{color:#B45309;background:#FEF3C7;border-color:#FDE68A}
.pe-state{font-size:9.5px;font-weight:800;padding:3px 8px;border-radius:8px;
  color:#fff;background:linear-gradient(135deg,#F97316,#EA580C);box-shadow:0 2px 6px rgba(234,88,12,.3)}
.pe-state.done{background:linear-gradient(135deg,#34D399,#059669);box-shadow:0 2px 6px rgba(5,150,105,.3)}
.pe-title{font-size:14px;font-weight:800;color:#18191C;margin-top:8px;line-height:1.4}
.pe-req{font-size:11px;color:#6B7280;line-height:1.65;margin-top:5px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pe-metas{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.pe-meta{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;color:#4B5563;
  padding:4px 8px;border-radius:9px;background:#F8FAFC;border:1px solid #EEF1F5}
.pe-marks{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.pe-mark{font-size:9.5px;font-weight:800;padding:3px 8px;border-radius:8px;
  color:#6D28D9;background:#EDE9FE;border:1px solid #C4B5FD}
.pe-mark.pic{color:#047857;background:#D1FAE5;border-color:#6EE7B7}
.pe-awards{margin-top:10px;padding:10px 11px;border-radius:12px;
  background:linear-gradient(150deg,#FFFBEB,#FEF3C7);border:1px solid #FDE68A}
.pe-awards-h{font-size:11px;font-weight:800;color:#92400E;display:flex;align-items:center;gap:5px}
.pe-award{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px dashed #FCD34D}
.pe-award:first-of-type{border-top:none;padding-top:0}
.pe-award img{width:38px;height:38px;border-radius:10px;object-fit:cover;border:1px solid #FCD34D;flex-shrink:0}
.pe-award .ph{width:38px;height:38px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  font-size:14px;background:#FEF3C7;border:1px dashed #FCD34D}
.pe-award .an{font-size:11.5px;font-weight:800;color:#78350F}
.pe-award .at{font-size:10px;color:#92400E;margin-top:2px;line-height:1.5}
.pe-award .rk{flex-shrink:0;font-size:9.5px;font-weight:800;padding:3px 7px;border-radius:7px;
  color:#fff;background:linear-gradient(135deg,#FBBF24,#D97706)}
.pe-award .rk.first{background:linear-gradient(135deg,#F87171,#DC2626)}
.pe-award .rk.third{background:linear-gradient(135deg,#A8A29E,#78716C)}
.pe-mine{font-size:9px;font-weight:800;padding:2px 6px;border-radius:6px;color:#fff;
  background:linear-gradient(135deg,#F97316,#EA580C);margin-left:5px}
.pe-link{display:flex;align-items:center;justify-content:center;gap:5px;margin-top:11px;padding:10px;
  border-radius:12px;font-size:11.5px;font-weight:800;color:#1D4ED8;cursor:pointer;
  background:linear-gradient(170deg,#fff,#EFF6FF);border:1.5px solid #BFDBFE}
.pe-link:active{transform:translateY(2px)}
.pe-origin{padding:11px 12px;border-radius:13px;background:#F8FAFC;border:1px solid #EEF1F5;
  font-size:10.5px;color:#6B7280;line-height:1.65;margin-top:10px}

/* ---------- 账单 ---------- */
.pb-four{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}
.pb-cell{padding:11px 12px;border-radius:14px;background:linear-gradient(170deg,#fff,#FAFBFC);
  border:1px solid #EEF1F5;box-shadow:0 4px 11px rgba(17,24,39,.06),inset 0 1px 0 #fff}
.pb-cell b{display:block;font-size:18px;font-weight:800;letter-spacing:-.5px;color:#18191C}
.pb-cell span{display:block;font-size:9.5px;color:#9AA3AF;margin-top:3px}
.pb-cell.g b{color:#059669}
.pb-cell.o b{color:#C2410C}
.pb-cell.b b{color:#EA580C}
.pb-acts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:11px}
.pb-act{padding:12px 8px;border-radius:13px;font-size:12px;font-weight:800;text-align:center;cursor:pointer;
  color:#fff;background:linear-gradient(135deg,#F97316,#EA580C);
  box-shadow:0 6px 15px rgba(234,88,12,.32),inset 0 1px 0 rgba(255,255,255,.3);transition:.12s}
.pb-act:active{transform:translateY(2px);box-shadow:0 2px 6px rgba(234,88,12,.3)}
.pb-act.sub{color:#4B5563;background:linear-gradient(170deg,#fff,#F8FAFC);border:1.5px solid #E4E8EE;
  box-shadow:0 3px 9px rgba(17,24,39,.06)}
.pb-log{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;margin-top:8px;
  background:linear-gradient(170deg,#fff,#FAFBFC);border:1px solid #EEF1F5;
  box-shadow:0 3px 9px rgba(17,24,39,.055),inset 0 1px 0 #fff}
.pb-log-ic{width:32px;height:32px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-size:14px;background:linear-gradient(150deg,#F8FAFC,#EEF1F5);border:1px solid #E4E8EE}
.pb-log-t{font-size:12px;font-weight:700;color:#18191C}
.pb-log-d{font-size:10px;color:#9AA3AF;margin-top:2px}
.pb-log-a{font-size:14px;font-weight:800;letter-spacing:-.4px;color:#059669}
.pb-log-a.out{color:#C2410C}
.pb-none{padding:18px 14px;text-align:center;font-size:11px;color:#9AA3AF;
  border-radius:13px;background:#F8FAFC;border:1px dashed #DDE2E9;margin-top:9px;line-height:1.7}
.pb-note{font-size:10px;color:#9AA3AF;line-height:1.65;text-align:center;margin-top:11px}

/* ===== 折叠抽屉（「我的」页同类板块收起，点标题展开；机构端+家长端）v11053 ===== */
.fold-h{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;padding:5px 2px;border-radius:9px}
.fold-h:active{opacity:.6}
.fold-r{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0}
.fold-r .sec-m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fold-chev{display:inline-block;font-size:16px;line-height:1;color:var(--gray2);transition:transform .18s ease;transform:rotate(0deg)}
.fold-chev.open{transform:rotate(90deg)}
.fold-b{margin-top:4px}

/* #352 账单子标签栏 + 消课明细「加载更多」（v11054） */
.pb-tabs{display:flex;gap:6px;background:#F3F4F6;border-radius:12px;padding:4px;margin-top:12px}
.pb-tab{flex:1;text-align:center;padding:8px 2px;border-radius:9px;font-size:13px;color:var(--gray2);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.pb-tab.on{background:#fff;color:var(--brand);font-weight:700;box-shadow:0 1px 4px rgba(17,24,39,.1)}
.pb-tab:active{opacity:.6}
.pb-more{text-align:center;padding:12px;margin-top:8px;color:var(--brand);font-size:13px;font-weight:600;background:var(--brand-bg);border-radius:10px;cursor:pointer;user-select:none}
.pb-more:active{opacity:.6}

/* #352 消课明细按月份分组（v11055） */
.pg-mh{display:flex;align-items:center;justify-content:space-between;margin:14px 2px 4px;padding:0 2px}
.pg-mh-t{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:.3px}
.pg-mh-n{font-size:11px;color:var(--gray2);background:#F3F4F6;padding:2px 9px;border-radius:20px}

/* #353 去续费按机构分流（v11055）：全部机构汇总页的机构续费列表 */
.pb-orgs{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pb-orgs-t{font-size:12px;color:var(--gray2);padding:10px 14px 6px;font-weight:600}
.pb-org{display:flex;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--line);cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent}
.pb-org:active{background:#F9FAFB}
.pb-org-ic{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:15px;border:1px solid #FDBA74;flex:0 0 auto}
.pb-org-t{font-size:14px;font-weight:600;color:var(--ink)}
.pb-org-d{font-size:12px;color:var(--gray2);margin-top:2px}
.pb-org-a{margin-left:auto;color:var(--brand);font-size:13px;font-weight:700;flex:0 0 auto}
/* ===== v1.0.14 家长端「分期明细」只读块（课时包报名期）===== */
.pb-packs{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.pb-pack{padding:10px 14px;border-top:1px solid var(--line)}
.pb-pack:first-child{border-top:none}
.pb-pack .pg-org-tag{font-size:9.5px;font-weight:800;padding:2px 7px;border-radius:7px;border:1px solid transparent;flex:0 0 auto}
.pb-pack .pg-org-tag.green{color:#15803D;background:#DCFCE7;border-color:#BBF7D0}
.pb-pack .pg-org-tag.gray{color:#6B7280;background:#F3F4F6;border-color:#E5E7EB}

/* ===== v1.0.7 全局图片查看器（签到表照片等点击放大）===== */
.img-viewer-mask{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:1500;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-tap-highlight-color:transparent}
.img-viewer-img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in;will-change:transform;user-select:none;-webkit-user-select:none}
.img-viewer-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;color:#fff;font-size:12px;z-index:2;pointer-events:none}
.img-viewer-tip{opacity:.85;background:rgba(0,0,0,.35);padding:5px 12px;border-radius:999px;max-width:78%;line-height:1.4}
.img-viewer-x{pointer-events:auto;width:34px;height:34px;border-radius:50%;border:none;background:rgba(255,255,255,.18);color:#fff;font-size:20px;line-height:34px;cursor:pointer;flex:0 0 auto}

