/* ============================================================
   管理经营学习台 · 设计系统
   浅色 / 深色双主题 · 移动端优先 · 桌面端增强
   ============================================================ */
:root{
  --bg:#f3f5fa;
  --card:#ffffff;
  --card2:#f7f9fd;
  --ink:#182030;
  --ink2:#55617a;
  --ink3:#8b94a9;
  --line:#e6eaf2;
  --line2:#edf0f7;
  --brand:#3b5bdb;
  --brand2:#7048e8;
  --brand-soft:#edf0fd;
  --brand-grad:linear-gradient(135deg,#3b5bdb,#6a48e0);
  --green:#0ca678;
  --green-soft:#e3f7ef;
  --amber:#e8890c;
  --amber-soft:#fdf1de;
  --red:#e5484d;
  --red-soft:#fdecec;
  --purple:#7c5cff;
  --purple-soft:#f1ecff;
  --shadow-sm:0 1px 2px rgba(24,32,56,.04),0 2px 8px -2px rgba(24,32,56,.06);
  --shadow:0 1px 3px rgba(24,32,56,.05),0 12px 32px -10px rgba(24,32,56,.13);
  --shadow-lg:0 2px 8px rgba(24,32,56,.08),0 24px 56px -14px rgba(24,32,56,.2);
  --hero-grad:linear-gradient(133deg,#3b5bdb 0%,#4a4fdc 42%,#6a48e0 78%,#7048e8 100%);
  --ease:cubic-bezier(.2,.7,.3,1);
  --tabbar-bg:rgba(255,255,255,.86);
  --topbar-bg:rgba(255,255,255,.82);
  --mask:rgba(16,22,35,.45);
  --tint-warm:linear-gradient(120deg,#f6f3ff,#ffffff);
  --tint-cool:linear-gradient(120deg,#f4efff,#ffffff);
  --r:18px; --r-sm:12px; --r-xs:9px; --r-md:14px; --r-lg:20px;
  --safe-b:env(safe-area-inset-bottom,0px);
}
[data-theme="dark"]{
  --bg:#0d1120;
  --card:#161d33;
  --card2:#1a2238;
  --ink:#e9edf6;
  --ink2:#a3aec6;
  --ink3:#6b7590;
  --line:#242e4a;
  --line2:#1f2942;
  --brand:#7b93f7;
  --brand2:#a68fff;
  --brand-soft:#1e2848;
  --brand-grad:linear-gradient(135deg,#4658c8,#6f4bd6);
  --green:#2ec99e;
  --green-soft:#12352c;
  --amber:#f5b04e;
  --amber-soft:#3a2c14;
  --red:#ff6b70;
  --red-soft:#3d1d22;
  --purple:#a68fff;
  --purple-soft:#241f45;
  --shadow-sm:0 1px 2px rgba(0,0,0,.28),0 2px 8px -2px rgba(0,0,0,.3);
  --shadow:0 1px 3px rgba(0,0,0,.32),0 12px 32px -10px rgba(0,0,0,.5);
  --shadow-lg:0 2px 8px rgba(0,0,0,.38),0 24px 56px -14px rgba(0,0,0,.6);
  --tabbar-bg:rgba(15,20,36,.88);
  --topbar-bg:rgba(15,20,36,.82);
  --mask:rgba(4,7,15,.6);
  --tint-warm:linear-gradient(120deg,#221f38,#161d33);
  --tint-cool:linear-gradient(120deg,#211d3d,#161d33);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--ink);
  font:15px/1.65 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  padding-bottom:calc(74px + var(--safe-b));
  overscroll-behavior-y:none;
  transition:background .3s,color .3s;
}
/* 页面顶部淡雅光晕，增加空间层次 */
body::before{content:"";position:fixed;top:-180px;left:50%;transform:translateX(-50%);
  width:min(920px,140vw);height:380px;pointer-events:none;z-index:0;
  background:radial-gradient(50% 50% at 50% 50%,rgba(99,102,241,.10),rgba(99,102,241,0) 70%)}
[data-theme="dark"] body::before{background:radial-gradient(50% 50% at 50% 50%,rgba(122,140,255,.08),rgba(122,140,255,0) 70%)}
.wrap{position:relative;z-index:1}
a{color:var(--brand);text-decoration:none}
img{max-width:100%;display:block}
button,input,textarea,select{font-family:inherit;font-size:15px;color:inherit}
button{cursor:pointer}
::-webkit-scrollbar{width:0;height:0}

/* 内联图标基类 */
.ic{width:1em;height:1em;flex:none;vertical-align:-.15em}
.ic.fill{fill:currentColor;stroke:none}

/* ---------- 顶栏 ---------- */
.topbar{
  position:sticky;top:0;z-index:40;background:var(--topbar-bg);
  -webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);padding:11px 16px 10px;
}
.topbar .row{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:880px;margin:0 auto}
.brandrow{display:flex;align-items:center;gap:10px;min-width:0}
.logo{width:37px;height:37px;border-radius:12px;background:var(--brand-grad);color:#fff;
  display:flex;align-items:center;justify-content:center;flex:none;
  box-shadow:0 4px 14px -3px rgba(59,91,219,.5),inset 0 1px 0 rgba(255,255,255,.25)}
.logo .ic{width:20px;height:20px}
.topbar h1{margin:0;font-size:18px;font-weight:800;letter-spacing:.2px;line-height:1.25}
.topbar .sub{color:var(--ink3);font-size:12px;margin-top:1px}
.topright{display:flex;align-items:center;gap:9px;flex:none}
.topright .sub{max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#3b5bdb,#7048e8);
  color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex:none}
.iconbtn{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--card);
  color:var(--ink2);display:flex;align-items:center;justify-content:center;padding:0;transition:.18s}
.iconbtn:hover{border-color:var(--brand);color:var(--brand)}
.iconbtn:active{transform:scale(.92)}
.iconbtn .ic{width:17px;height:17px}

/* ---------- 容器 ---------- */
.wrap{padding:14px 14px 24px;max-width:880px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:15px;margin-bottom:12px}
.card.tight{padding:12px}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.card-h h3{margin:0;font-size:15.5px;font-weight:800}
.muted{color:var(--ink3);font-size:12.5px}
.mini{font-size:12px;color:var(--ink3)}

/* ---------- 按钮 ---------- */
.btn{
  border:0;border-radius:var(--r-sm);padding:11px 15px;background:var(--brand-grad);color:#fff;
  font-weight:600;font-size:14px;display:inline-flex;align-items:center;gap:6px;
  justify-content:center;transition:transform .18s var(--ease),box-shadow .18s,filter .18s;line-height:1.2;
  box-shadow:0 4px 16px -5px rgba(59,91,219,.55);
}
.btn .ic{width:15px;height:15px}
.btn:hover{filter:brightness(1.05)}
.btn:active{transform:scale(.96);filter:brightness(.97)}
.btn.ghost{background:var(--brand-soft);color:var(--brand);box-shadow:none}
.btn.gray{background:var(--card2);color:var(--ink2);box-shadow:none;border:1px solid var(--line)}
.btn.line{background:var(--card);border:1px solid var(--line);color:var(--ink2);box-shadow:none}
.btn.block{width:100%}
.btn.sm{padding:8px 12px;font-size:13px;border-radius:var(--r-xs)}
.btn.sm .ic{width:14px;height:14px}
.btn.danger{background:var(--red-soft);color:var(--red);box-shadow:none}
.btn.disabled{opacity:.5;pointer-events:none}

/* ---------- 打卡主卡 ---------- */
.hero{
  position:relative;overflow:hidden;color:#fff;border-radius:22px;padding:19px 18px;
  background:var(--hero-grad);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 16px 40px -12px rgba(72,72,190,.55);
  margin-bottom:14px;
  cursor:pointer;transition:transform .15s var(--ease),box-shadow .25s;
}
.hero:active{transform:scale(.985)}
.hero::before{content:"";position:absolute;right:-46px;top:-56px;width:190px;height:190px;border-radius:50%;
  background:rgba(255,255,255,.13);pointer-events:none}
.hero::after{content:"";position:absolute;left:-34px;bottom:-64px;width:150px;height:150px;border-radius:50%;
  background:rgba(255,255,255,.08);pointer-events:none}
.hero>*{position:relative;z-index:1}
.hero .date{font-size:12.5px;opacity:.85;display:flex;align-items:center;gap:5px;letter-spacing:.3px}
.hero .date .ic{width:13px;height:13px}
.hero .hello{font-size:21px;font-weight:800;margin:5px 0 13px;letter-spacing:.2px}
.hero .nums{display:flex;gap:0;margin-bottom:15px}
.hero .nums div{font-size:11.5px;opacity:.92;flex:1;min-width:0}
.hero .nums div+div{border-left:1px solid rgba(255,255,255,.28);padding-left:12px}
.hero .nums b{display:block;font-size:23px;font-weight:800;line-height:1.25;font-variant-numeric:tabular-nums;letter-spacing:.2px}
.hero .btn{background:#fff;color:var(--brand);width:100%;padding:13px;font-size:15px;box-shadow:0 6px 18px -6px rgba(10,15,40,.4);font-weight:700;letter-spacing:.3px;transition:transform .18s var(--ease),box-shadow .18s}
.hero .btn:hover{transform:translateY(-1px);box-shadow:0 9px 24px -6px rgba(10,15,40,.45)}
.hero .btn.done{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.45);box-shadow:none}
.streak{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,.2);
  padding:3px 10px;border-radius:20px;font-size:12px;font-weight:700}
.streak .ic{width:12px;height:12px}

/* ---------- 统计条 ---------- */
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px}
.statgrid .s{position:relative;background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-sm);
  padding:12px 6px 11px;text-align:center;transition:.18s;-webkit-tap-highlight-color:transparent;overflow:hidden}
.statgrid .s::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:44px;height:3px;border-radius:0 0 4px 4px;background:var(--brand-grad);opacity:.85}
.statgrid .s b{display:block;font-size:22px;font-weight:800;line-height:1.3;
  background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  font-variant-numeric:tabular-nums;letter-spacing:.2px}
.statgrid .s span{font-size:11px;color:var(--ink3);letter-spacing:.3px}
/* 可点击统计卡（首页学习数据 → 点击进入对应页） */
.statgrid .s[data-act]{cursor:pointer}
.statgrid .s[data-act]:hover{border-color:var(--brand)}
.statgrid .s[data-act]:active{transform:scale(.96)}
.statgrid .s[data-act]::after{content:"";position:absolute;top:9px;right:9px;width:5px;height:5px;
  border-top:1.5px solid var(--brand);border-right:1.5px solid var(--brand);transform:rotate(45deg);opacity:.6}

/* ---------- 今日知识点 / 案例卡 ---------- */
.kcard{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);
  overflow:hidden;margin-bottom:14px;transition:box-shadow .25s}
.kcard .hd{background:var(--tint-warm);padding:14px 15px 13px;border-bottom:1px solid var(--line)}
.kcard .hd.cool{background:var(--tint-cool)}
.kcard .tag{display:inline-flex;align-items:center;gap:4px;font-size:11px;background:var(--brand-soft);color:var(--brand);
  padding:3px 10px;border-radius:20px;font-weight:700;letter-spacing:.3px}
.kcard .tag.cool{background:var(--purple-soft);color:var(--purple)}
.kcard h2{margin:9px 0 7px;font-size:17px;font-weight:800;line-height:1.45;letter-spacing:.2px}
.kcard .bd{padding:13px 15px}
.kcard ul{margin:0;padding-left:19px}
.kcard li{margin-bottom:7px;color:var(--ink2);font-size:13.5px}
.kcard li b{color:var(--ink)}
.quote{position:relative;background:var(--card2);border-left:3px solid var(--brand);padding:10px 13px;
  border-radius:0 var(--r-xs) var(--r-xs) 0;font-size:13.5px;color:var(--ink2);margin-bottom:10px;line-height:1.7}
.quote.cool{border-left-color:var(--purple)}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding:0 15px 15px}

/* ---------- 列表项 ---------- */
.item{background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-sm);
  padding:13px;margin-bottom:10px;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s,border-color .18s}
.item:hover{box-shadow:var(--shadow);transform:translateY(-1px);border-color:#d8dff0}
.item:active{transform:scale(.985)}
.item .t{font-weight:700;font-size:15px;line-height:1.45;display:flex;align-items:center;gap:5px}
.item .t .ic{width:15px;height:15px;color:var(--amber)}
.item .d{color:var(--ink2);font-size:13px;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.item .meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
.item .meta .ic{width:12px;height:12px;margin-right:2px;vertical-align:-2px}
.chip{display:inline-flex;align-items:center;font-size:11px;background:var(--card2);color:var(--ink2);
  padding:2.5px 9px;border-radius:20px;border:1px solid var(--line2);font-weight:500}
.chip.b{background:var(--brand-soft);color:var(--brand);border-color:transparent}
.chip.g{background:var(--green-soft);color:var(--green);border-color:transparent}
.chip.o{background:var(--amber-soft);color:var(--amber);border-color:transparent}
.chip.p{background:var(--purple-soft);color:var(--purple);border-color:transparent}

/* ---------- 表单 ---------- */
.field{margin-bottom:12px}
.field label{display:block;font-size:12.5px;color:var(--ink2);margin-bottom:6px;font-weight:600}
.field input,.field textarea,.field select{
  width:100%;border:1px solid var(--line);border-radius:var(--r-xs);padding:11px 12px;background:var(--card2);
  outline:none;transition:border-color .18s,background .18s,box-shadow .18s;
}
.field input:focus,.field textarea:focus,.field select:focus{
  border-color:var(--brand);background:var(--card);box-shadow:0 0 0 3px var(--brand-soft)}
.field textarea{min-height:110px;resize:vertical;line-height:1.65}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{border:1px solid var(--line);background:var(--card);border-radius:20px;padding:7px 13px;
  font-size:13px;color:var(--ink2);transition:.16s}
.seg button:active{transform:scale(.95)}
.seg button.on{background:var(--brand-grad);border-color:transparent;color:#fff;font-weight:600;
  box-shadow:0 3px 10px -3px rgba(59,91,219,.5)}
.filebox{border:1.5px dashed var(--line);border-radius:var(--r-sm);padding:14px;text-align:center;
  color:var(--ink3);font-size:13px;background:var(--card2)}

/* ---------- 搜索 ---------- */
.searchbar{position:relative;margin-bottom:10px}
.searchbar .ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink3);
  display:flex;align-items:center}
.searchbar .ico .ic{width:15px;height:15px}
.searchbar input{width:100%;border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 12px 11px 36px;
  background:var(--card);outline:none;transition:border-color .18s,box-shadow .18s}
.searchbar input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px;margin-bottom:4px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.filters button{white-space:nowrap;border:1px solid var(--line);background:var(--card);border-radius:20px;
  padding:6.5px 13px;font-size:13px;color:var(--ink2);transition:.16s}
.filters button:active{transform:scale(.95)}

/* ---------- 继续上次学习 ---------- */
.cont-row{display:flex;align-items:center;gap:11px;padding:9px 2px;cursor:pointer;border-radius:10px;transition:background .15s}
.cont-row:active{background:var(--brand-soft)}
.cont-row+.cont-row{border-top:1px solid var(--line)}
.cont-ic{width:38px;height:38px;flex:none;border-radius:10px;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center}
.cont-ic svg{width:19px;height:19px}
.cont-row .t{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---------- 新用户三步引导 ---------- */
.guide-row{display:flex;align-items:flex-start;gap:10px;padding:7px 2px;font-size:13.5px;color:var(--ink2);line-height:1.6}
.guide-row b{flex:none;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;
  font-size:12px;display:flex;align-items:center;justify-content:center;margin-top:1px}

/* ---------- 知识点分类导览 ---------- */
.catnav{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.catnav-c{flex:none;min-width:104px;border:1px solid var(--line);background:var(--card);border-radius:14px;
  padding:10px 12px;text-align:left;transition:.16s;cursor:pointer}
.catnav-c:active{transform:scale(.96)}
.catnav-c.on{border-color:var(--brand);background:var(--brand-soft)}
.catnav-c b{display:block;font-size:13.5px;color:var(--ink);font-weight:600}
.catnav-c span{display:block;font-size:11.5px;color:var(--ink3);margin-top:3px}
.catnav-c.on b{color:var(--brand)}
.filters button.on{background:var(--brand-grad);color:#fff;border-color:transparent;font-weight:600;
  box-shadow:0 3px 10px -3px rgba(59,91,219,.5)}

/* ---------- 书籍 ---------- */
.bookrow{display:flex;gap:11px;align-items:flex-start}
.cover{width:58px;height:80px;border-radius:9px;flex:0 0 58px;object-fit:cover;
  background:linear-gradient(135deg,#dfe6f5,#c9d4f0);display:flex;align-items:center;justify-content:center;
  color:#6a7ba8;font-size:11px;text-align:center;padding:4px;overflow:hidden;font-weight:600}
[data-theme="dark"] .cover{background:linear-gradient(135deg,#232d4d,#1a2238);color:#7f8db3}
.cover.lg{width:80px;height:112px;flex:0 0 80px;font-size:12px}
.progress{height:6px;border-radius:6px;background:var(--line2);overflow:hidden;margin-top:7px}
.progress i{display:block;height:100%;background:var(--brand-grad);border-radius:6px;transition:width .4s}

/* ---------- 日历热力 ---------- */
.heat{display:grid;grid-template-columns:repeat(15,1fr);gap:4px}
.heat i{aspect-ratio:1;border-radius:4px;background:var(--line2);display:block}
.heat i.l1{background:#d6e0ff}
.heat i.l2{background:#93aaff}
.heat i.l3{background:#5b7cfa}
.heat i.l4{background:#2f54eb}
[data-theme="dark"] .heat i.l1{background:#23305c}
[data-theme="dark"] .heat i.l2{background:#31478f}
[data-theme="dark"] .heat i.l3{background:#465cc0}
[data-theme="dark"] .heat i.l4{background:#6b86f5}
.heat i.today{outline:2px solid var(--amber);outline-offset:1px}

/* ---------- 弹层 ---------- */
.mask{position:fixed;inset:0;background:var(--mask);z-index:80;display:flex;align-items:flex-end;justify-content:center;animation:fade .2s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.sheet{background:var(--card);width:100%;max-width:640px;border-radius:24px 24px 0 0;max-height:92vh;overflow-y:auto;
  padding:8px 16px calc(20px + var(--safe-b));animation:up .28s cubic-bezier(.2,.8,.25,1);box-shadow:var(--shadow-lg)}
.sheet::before{content:"";display:block;width:38px;height:4px;border-radius:4px;background:var(--line);margin:0 auto 10px}
@keyframes up{from{transform:translateY(34px);opacity:.5}to{transform:translateY(0);opacity:1}}
.sheet .sh{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.sheet h3{margin:0;font-size:17px;font-weight:800}
.close{background:var(--card2);border:1px solid var(--line);border-radius:50%;width:32px;height:32px;
  color:var(--ink2);line-height:1;display:flex;align-items:center;justify-content:center;padding:0}
.close .ic{width:14px;height:14px}

/* ---------- 底部导航 ---------- */
.tabbar{
  position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--tabbar-bg);
  -webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);
  border-top:1px solid var(--line);display:flex;
  padding:4px 6px calc(4px + var(--safe-b));
  box-shadow:0 -1px 0 rgba(0,0,0,.02),0 -8px 24px -18px rgba(0,0,0,.18);
}
.tabbar button{flex:1;border:0;background:none;color:var(--ink3);font-size:10.5px;font-weight:600;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  position:relative;transition:color .2s var(--ease);min-height:52px;padding:5px 0 4px;
  border-radius:14px;-webkit-user-select:none;user-select:none}
.tabbar button .ic{width:22px;height:22px;transition:transform .22s var(--ease);flex:none}
/* 选中态：图标下沉到一枚实心圆角胶囊里，只用一处指示，不再叠加圆点+横条 */
.tabbar button.on{color:var(--brand);font-weight:800}
.tabbar button.on .ic{transform:translateY(-1px)}
.tabbar button.on>*{position:relative;z-index:1}
.tabbar button.on::before{content:"";position:absolute;top:2px;left:50%;transform:translateX(-50%);
  width:46px;height:30px;border-radius:12px;background:var(--brand-soft);z-index:0;
  transition:background .2s var(--ease)}
.tabbar button:active{background:var(--card2)}
.tabbar button:active .ic{transform:scale(.86)}
/* 顶部极细高亮条，替代原来的底部横条 */
.tabbar button.on::after{content:"";position:absolute;top:-4px;left:50%;transform:translateX(-50%);
  width:18px;height:3px;border-radius:0 0 3px 3px;background:var(--brand-grad);z-index:1}
[data-theme="dark"] .tabbar button.on::before{background:#232c4d}

/* ---------- Toast ---------- */
#toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:99;display:flex;flex-direction:column;gap:8px;align-items:center;width:max-content;max-width:86vw}
.toast{background:rgba(20,26,42,.92);color:#fff;padding:10px 17px;border-radius:22px;font-size:13.5px;
  animation:up .22s;box-shadow:0 10px 30px -8px rgba(0,0,0,.4);max-width:86vw}

/* ---------- 详情展开 ---------- */
.detail{margin-top:10px;border-top:1px dashed var(--line);padding-top:10px;animation:fade .25s}
.detail h4{margin:10px 0 5px;font-size:13px;color:var(--brand);font-weight:700}
.detail.cool h4{color:var(--purple)}
.detail p{margin:0 0 6px;color:var(--ink2);font-size:13.5px}
.empty{text-align:center;color:var(--ink3);padding:36px 10px;font-size:13.5px}
.empty .big{display:block;margin-bottom:10px;opacity:.5}
.empty .big .ic{width:46px;height:46px}
.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brand);
  animation:rot .8s linear infinite;margin:0 auto 12px}
@keyframes rot{to{transform:rotate(360deg)}}

.section-title{display:flex;align-items:center;justify-content:space-between;margin:20px 2px 10px;scroll-margin-top:14px}
.section-title h3{margin:0;font-size:16px;font-weight:800;position:relative;padding-left:11px;letter-spacing:.3px}
.section-title h3::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);
  width:4px;height:15px;border-radius:3px;background:var(--brand-grad)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.quick{background:var(--card);border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow-sm);
  padding:13px 10px;text-align:center;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s,border-color .18s}
.quick:hover{box-shadow:var(--shadow);transform:translateY(-1px);border-color:#d8dff0}
.quick:active{transform:scale(.96)}
.quick .icwrap{width:42px;height:42px;margin:0 auto 7px;border-radius:14px;background:var(--brand-soft);
  color:var(--brand);display:flex;align-items:center;justify-content:center;transition:transform .2s var(--ease)}
.quick:hover .icwrap{transform:scale(1.06)}
.quick:nth-child(2) .icwrap{background:var(--green-soft);color:var(--green)}
.quick:nth-child(3) .icwrap{background:var(--amber-soft);color:var(--amber)}
.quick:nth-child(4) .icwrap{background:var(--purple-soft);color:var(--purple)}
.quick .icwrap .ic{width:21px;height:21px}
.quick .t{font-size:13px;font-weight:700}
.quick .s{font-size:11px;color:var(--ink3);margin-top:2px}
.md{white-space:pre-wrap;font-size:13.5px;line-height:1.8;background:var(--card2);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:12px;max-height:52vh;overflow:auto}
.kw{display:inline-block;background:var(--brand-soft);color:var(--brand);border-radius:7px;
  padding:2.5px 8px;margin:0 5px 5px 0;font-size:12px;font-weight:600}

/* ---------- 书籍阅读器 ---------- */
.reader-frame{width:100%;height:62vh;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card2)}
.reader-img{width:100%;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--card2)}
.reader-note{font-size:13px;color:var(--ink2);line-height:1.7}

/* ---------- 入场动效 ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
#view>*{animation:fadeUp .32s cubic-bezier(.2,.7,.3,1) both}
#view>*:nth-child(2){animation-delay:.03s}
#view>*:nth-child(3){animation-delay:.06s}
#view>*:nth-child(4){animation-delay:.09s}
#view>*:nth-child(5){animation-delay:.12s}
#view>*:nth-child(6){animation-delay:.15s}
#view>*:nth-child(n+7){animation-delay:.17s}

/* ---------- 桌面端增强 ---------- */
@media (min-width:760px){
  .wrap{padding:22px 22px 36px}
  .topbar{padding:13px 24px 12px}
  .topbar h1{font-size:20px}
  .hero{padding:26px 26px;border-radius:26px}
  .hero .hello{font-size:25px}
  .hero .nums b{font-size:26px}
  .card,.kcard,.item{border-radius:20px}
  .grid2{grid-template-columns:repeat(4,1fr)}
  .statgrid .s b{font-size:24px}
  .statgrid .s{padding:14px 6px 13px}
  .quick{padding:16px 10px}
  .quick .t{font-size:13.5px}
  .sheet{border-radius:24px;margin-bottom:24px;max-height:86vh}
  .mask{align-items:center}
  .item{padding:15px 17px}
  #toast{bottom:110px}
}

/* ---------- 手机输入框字号（防 iOS 自动放大） ---------- */
@media (max-width:768px){
  input,textarea,select{font-size:16px}
}

@media (max-width:420px){
  .topright .sub{display:none}
}

/* ---------- 减少动态效果 ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}

/* ---------- 书籍完整版 ---------- */
.dg-quote{background:var(--card2);border-left:3px solid var(--brand);padding:9px 12px;border-radius:0 var(--r-xs) var(--r-xs) 0;
  margin:8px 0;font-size:13.5px;line-height:1.75;color:var(--ink2)}
.dg-ch{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px;margin-bottom:8px;background:var(--card)}
.dg-ch h5{margin:0 0 4px;font-size:14px;font-weight:800}
.dg-ch p{margin:0;font-size:13px;line-height:1.75;color:var(--ink2)}
.dg-prac{list-style:none;padding:0;margin:0}
.dg-prac li{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px dashed var(--line);
  border-radius:var(--r-xs);margin-bottom:6px;font-size:13px;line-height:1.65;color:var(--ink2)}
.dg-prac li .ic{flex:none;margin-top:2px;color:var(--green)}
.cache-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--card2);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:10px 12px;margin-top:12px;font-size:12.5px;color:var(--ink2)}
.cache-bar .btn{margin-left:auto}

/* ---------- 全文级完整版（目录 + 逐章精读）---------- */
.sheet{scroll-behavior:smooth}
.dg-badge{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,var(--brand),#8b5cf6);color:#fff;font-size:11px;font-weight:800;padding:3px 9px;border-radius:99px;letter-spacing:.5px}
.dg-toc{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card2);padding:12px 14px}
.dg-toc-g{margin-bottom:10px}
.dg-toc-g:last-child{margin-bottom:0}
.dg-toc-gh{font-size:13px;font-weight:800;color:var(--ink);margin-bottom:6px}
.dg-toc-ch{display:flex;flex-wrap:wrap;gap:6px}
.dg-toc-ch a{display:inline-block;font-size:12.5px;color:var(--brand);background:var(--card);border:1px solid var(--line);border-radius:99px;padding:4px 11px;text-decoration:none;line-height:1.5;transition:border-color .15s}
.dg-toc-ch a:hover,.dg-toc-ch a:active{border-color:var(--brand)}
.dg-toc-ch a.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.dg-sec{scroll-margin-top:12px;padding:14px 0 4px;border-bottom:1px dashed var(--line)}
.dg-sec:last-child{border-bottom:none}
.dg-sec h4{margin:0 0 8px;font-size:15px;font-weight:800;display:flex;align-items:baseline;gap:8px}
.dg-sec h4 .no{font-size:11px;font-weight:800;color:var(--brand);background:var(--card2);border-radius:6px;padding:2px 7px;flex:none}
.dg-para{margin:0 0 9px;font-size:14px;line-height:1.95;color:var(--ink2);text-align:justify}
.dg-para:last-child{margin-bottom:0}
.dg-mini-note{font-size:12px;color:var(--ink3);background:var(--card2);border-radius:var(--r-xs);padding:8px 11px;line-height:1.7}

/* 本章核心知识点 */
.dg-pts{margin:0 0 12px;background:var(--card2);border-radius:var(--r-xs);padding:11px 13px 12px}
.dg-pts-h{font-size:11.5px;font-weight:800;color:var(--brand);letter-spacing:.3px;margin-bottom:7px}
.dg-pts-l{margin:0;padding-left:19px;color:var(--ink2);font-size:13.5px;line-height:1.9}
.dg-pts-l .dg-pt{margin-bottom:5px;text-align:justify}
.dg-pts-l .dg-pt:last-child{margin-bottom:0}
.dg-pts-l .dg-pt b{color:var(--ink);font-weight:800}

/* 工厂落地动作 */
.dg-apply{margin:0 0 12px;border-radius:var(--r-xs);padding:11px 13px;
  background:linear-gradient(180deg,rgba(255,153,0,.09),rgba(255,153,0,.04));
  border:1px solid rgba(255,153,0,.22)}
.dg-apply-h{font-size:11.5px;font-weight:800;color:#b96a00;letter-spacing:.3px;margin-bottom:6px}
.dg-apply p{margin:0;font-size:13.5px;line-height:1.9;color:var(--ink2);text-align:justify}

/* ---------- 首页每日管理运营资讯 ---------- */
.feed-card{position:relative;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);padding:12px 13px;margin-bottom:10px;cursor:pointer;transition:border-color .18s,box-shadow .18s}
.feed-card:hover{box-shadow:var(--shadow-sm);border-color:#d8dff0}
.feed-card:active{border-color:var(--brand)}
.feed-src{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:800;border-radius:20px;padding:2.5px 10px;flex:none;letter-spacing:.3px}
/* 工厂 10 大类来源标签 */
.feed-src.s-site{background:#2563eb}        /* 生产现场 */
.feed-src.s-qc{background:#0d9488}          /* 质量管理 */
.feed-src.s-food{background:#dc2626}        /* 食品安全 */
.feed-src.s-equip{background:#7c3aed}       /* 设备管理 */
.feed-src.s-plan{background:#ea580c}        /* 排产交付 */
.feed-src.s-supply{background:#0891b2}      /* 供应链 */
.feed-src.s-cost{background:#b45309}        /* 成本利润 */
.feed-src.s-hr{background:#db2777}          /* 班组人才 */
.feed-src.s-lean{background:#65a30d}        /* 精益改善 */
.feed-src.s-boss{background:#1e293b}        /* 经营决策 */
.feed-card .ft{font-size:15px;font-weight:800;margin:8px 0 5px;line-height:1.5;letter-spacing:.2px}
.feed-card .fs{font-size:12.5px;color:var(--ink2);line-height:1.7;margin:0}
.feed-card .fa{font-size:11px;color:var(--ink3);margin-top:5px}
.feed-points{margin:9px 0 0;padding:0;list-style:none;border-top:1px dashed var(--line);padding-top:9px;display:none}
.feed-card.open .feed-points{display:block}
.feed-points li{position:relative;padding-left:16px;font-size:13px;line-height:1.85;color:var(--ink2);margin-bottom:5px}
.feed-points li:before{content:"";position:absolute;left:2px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.feed-more{display:flex;align-items:center;justify-content:center;gap:6px;font-size:12.5px;color:var(--brand);padding:9px;border:1px dashed var(--line);border-radius:var(--r-sm);cursor:pointer;margin-bottom:10px;transition:border-color .18s,background .18s}
.feed-more:hover{border-color:var(--brand);background:var(--brand-soft)}
.feed-more:active{border-color:var(--brand)}
.feed-sub{margin:-4px 2px 9px;font-size:11.5px;color:var(--ink3)}
.feed-fav{position:absolute;top:4px;right:4px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;background:transparent;color:var(--ink3);cursor:pointer;border-radius:10px;padding:0;z-index:2;transition:color .18s,transform .18s var(--ease)}
.feed-fav:active{background:var(--bg2, #f3f4f6);transform:scale(.9)}
.feed-fav.on{color:#f5a623}

/* ---------- 管理学习：速冻面点工厂岗位 ---------- */
.frole-grid{display:flex;flex-direction:column;gap:10px}
.frole{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:12px 13px;cursor:pointer;
  transition:transform .18s var(--ease),box-shadow .18s,border-color .18s;
  --tone-bg:var(--brand-soft);--tone-fg:var(--brand)}
.frole:hover{box-shadow:var(--shadow);transform:translateY(-1px);border-color:#d8dff0}
.frole:active{transform:scale(.985)}
.frole .icwrap{width:44px;height:44px;flex:none;border-radius:14px;background:var(--tone-bg);color:var(--tone-fg);
  display:flex;align-items:center;justify-content:center}
.frole .icwrap .ic{width:22px;height:22px}
.frole .fr-b{flex:1;min-width:0}
.frole .t{font-size:14.5px;font-weight:800;display:flex;align-items:center;gap:7px;letter-spacing:.2px}
.frole .s{font-size:11.5px;color:var(--ink3);margin-top:3px;line-height:1.55}
.frole .go{color:var(--ink3);display:flex;flex:none;transition:transform .18s var(--ease),color .18s}
.frole .go .ic{width:16px;height:16px}
.frole:hover .go{transform:translateX(2px);color:var(--brand)}
.tone-green{--tone-bg:#e3f7ef;--tone-fg:#0ca678}
.tone-blue{--tone-bg:#edf0fd;--tone-fg:#3b5bdb}
.tone-amber{--tone-bg:#fdf1de;--tone-fg:#e8890c}
.tone-purple{--tone-bg:#f1ecff;--tone-fg:#7c5cff}
.tone-rose{--tone-bg:#ffeef2;--tone-fg:#e5497d}
.tone-indigo{--tone-bg:#eceaff;--tone-fg:#5b52d6}
.tone-cyan{--tone-bg:#e2f6fa;--tone-fg:#0e9fb5}
.tone-slate{--tone-bg:#eef1f6;--tone-fg:#5b6b85}
[data-theme="dark"] .tone-green{--tone-bg:#12352c;--tone-fg:#2ec99e}
[data-theme="dark"] .tone-blue{--tone-bg:#1e2848;--tone-fg:#7b93f7}
[data-theme="dark"] .tone-amber{--tone-bg:#3a2c14;--tone-fg:#f5b04e}
[data-theme="dark"] .tone-purple{--tone-bg:#241f45;--tone-fg:#a68fff}
[data-theme="dark"] .tone-rose{--tone-bg:#3a1f28;--tone-fg:#f5789f}
[data-theme="dark"] .tone-indigo{--tone-bg:#262452;--tone-fg:#8f88f0}
[data-theme="dark"] .tone-cyan{--tone-bg:#10333a;--tone-fg:#35c2d6}
[data-theme="dark"] .tone-slate{--tone-bg:#222a3d;--tone-fg:#8b9bb5}
.feed-card{position:relative}

/* ---------- 管理学习：知识体系分组 ---------- */
.fr-tracks{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.ftrack-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;
  padding:4px 9px;border-radius:999px;background:var(--tone-bg);color:var(--tone-fg);border:1px solid transparent}
.frole .fr-tags{margin-top:5px;font-size:10.5px;font-weight:700;color:var(--tone-fg);opacity:.85}
.ftrack{margin-bottom:14px;padding-top:2px}
.ftrack-hd{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;margin-bottom:8px;
  border-radius:14px;background:var(--tone-bg);border-left:3px solid var(--tone-fg)}
.ftrack-ic{width:26px;height:26px;flex:none;border-radius:9px;background:var(--card);
  color:var(--tone-fg);display:flex;align-items:center;justify-content:center}
.ftrack-ic .ic{width:15px;height:15px}
.ftrack-b{flex:1;min-width:0}
.ftrack-b .t{font-size:13.5px;font-weight:800;color:var(--tone-fg);display:flex;align-items:center;gap:6px}
.ftrack-b .s{font-size:11px;color:var(--ink3);margin-top:2px;line-height:1.5}
.ftrack-b .chip{background:rgba(255,255,255,.7);color:var(--tone-fg);border-color:transparent}
[data-theme="dark"] .ftrack-b .chip{background:rgba(255,255,255,.08)}
.ftrack .item{margin-bottom:8px}
.ftrack-tag{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;
  padding:3px 9px;border-radius:999px;background:var(--tone-bg);color:var(--tone-fg);margin:0 0 8px}
.ftrack-tag .ic{width:12px;height:12px}

/* ---------- 弹出层滚动锁定：打开 sheet 时背景页不动 ---------- */
/* 背景页滚动锁定：不用 overflow:hidden（会把滚动位置钳为 0），改为事件拦截 */
html.sheet-locked,html.sheet-locked body{touch-action:none;overscroll-behavior:none}
html.sheet-locked body .wrap,
html.sheet-locked body .tabbar{pointer-events:none}
.mask{overscroll-behavior:contain}
.mask .sheet{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}

/* ---------- 管理学习：难度筛选 ---------- */
.lv-tabs{display:flex;gap:6px;margin-bottom:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.lv-tabs::-webkit-scrollbar{display:none}
.lvbtn{flex:none;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--card);
  font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer;min-height:34px;
  transition:transform .16s var(--ease),background .16s,color .16s,border-color .16s}
.lvbtn:hover{border-color:var(--brand);color:var(--brand)}
.lvbtn:active{transform:scale(.96)}
.lvbtn.on{background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 3px 10px rgba(59,91,219,.22)}
.chip.lv-基础{background:#e3f7ef;color:#0ca678}
.chip.lv-进阶{background:#fdf1de;color:#e8890c}
.chip.lv-高级{background:#f1ecff;color:#7c5cff}
[data-theme="dark"] .chip.lv-基础{background:#12352c;color:#2ec99e}
[data-theme="dark"] .chip.lv-进阶{background:#3a2c14;color:#f5b04e}
[data-theme="dark"] .chip.lv-高级{background:#241f45;color:#a68fff}

/* ---------- 管理学习：高级题实战案例 ---------- */
.fcase{margin-top:14px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg-2,#f8fafc)}
.fcase-hd{display:flex;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:800;color:#fff;background:linear-gradient(135deg,#7c5cff,#5b8cff)}
.fcase-hd .ico{display:inline-flex}
.fcase-hd svg{width:15px;height:15px}
.fcase-row{display:flex;gap:10px;padding:11px 14px;border-top:1px solid var(--line)}
.fcase-row:first-of-type{border-top:0}
.fcase-tag{flex:none;align-self:flex-start;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;background:#eef2ff;color:#4f6ef7}
.fcase-tag.bad{background:#fee2e2;color:#dc2626}
.fcase-tag.good{background:#dcfce7;color:#16a34a}
.fcase-row p{margin:0;font-size:13.5px;line-height:1.65;color:var(--text-2)}
[data-theme="dark"] .fcase{background:#141a24}
[data-theme="dark"] .fcase-tag{background:#1e2a4a;color:#8fa8ff}
[data-theme="dark"] .fcase-tag.bad{background:#3a1d1d;color:#f87171}
[data-theme="dark"] .fcase-tag.good{background:#14301f;color:#4ade80}

/* ---------- 首页：今日知识点关联岗位题库 ---------- */
.krel{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px}
/* 知识点现场案例四段 */
.kcase{margin-top:14px;border:1px solid #d9efec;background:#f2fbf9;border-radius:10px;padding:11px 12px}
.kcase-hd{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:#0d9488;margin-bottom:8px}
.kcase-hd svg{width:14px;height:14px}
.kcase-row{display:flex;gap:9px;font-size:13px;line-height:1.75;padding:3px 0}
.kcase-row b{flex:none;width:34px;color:#0d9488;font-weight:800}
.kcase-row span{color:var(--text-2);flex:1}
.krel-hd{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:var(--text-3);margin-bottom:9px;letter-spacing:.02em}
.krel-hd svg{width:14px;height:14px}
.krel-row{display:flex;gap:8px;flex-wrap:wrap}
.krel-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:44px;padding:8px 13px;border-radius:12px;border:1px solid var(--line);background:var(--card);cursor:pointer;text-align:left;transition:transform .12s,border-color .12s}
.krel-btn:active{transform:scale(.97)}
.krel-btn .n{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:800;color:var(--text)}
.krel-btn .n svg{width:14px;height:14px}
.krel-btn .c{font-size:11px;color:var(--text-3)}
.krel-btn.tone-green{border-color:#b7e4cd;background:#f0fbf6}
.krel-btn.tone-blue{border-color:#bcd0f7;background:#f0f5ff}
.krel-btn.tone-amber{border-color:#f5d9a8;background:#fff8ec}
.krel-btn.tone-purple{border-color:#d8cbfb;background:#f6f2ff}
.krel-btn.tone-rose{border-color:#f7c3d0;background:#fff1f4}
.krel-btn.tone-slate{border-color:#cbd5e1;background:#f4f7fa}
.krel-btn.tone-teal{border-color:#a8e0d8;background:#effaf8}
.krel-btn.tone-orange{border-color:#f8cfa8;background:#fff5ec}
[data-theme="dark"] .krel-btn{background:#161d29}
[data-theme="dark"] .krel-btn.tone-green{border-color:#1d4d3a;background:#10251d}
[data-theme="dark"] .krel-btn.tone-blue{border-color:#1e3a6b;background:#101a2c}
[data-theme="dark"] .krel-btn.tone-amber{border-color:#5a4118;background:#241c0e}
[data-theme="dark"] .krel-btn.tone-purple{border-color:#3d3080;background:#1b1633}
[data-theme="dark"] .krel-btn.tone-rose{border-color:#5e2340;background:#26121c}
[data-theme="dark"] .krel-btn.tone-slate{border-color:#2c3a4d;background:#161d29}
[data-theme="dark"] .krel-btn.tone-teal{border-color:#14544a;background:#0e2320}
[data-theme="dark"] .krel-btn.tone-orange{border-color:#5e3a17;background:#241708}

/* ---------- 管理学习统一入口：按问题找 ---------- */
/* Hero：紧凑横幅 + 数字条 */
.mg-hero{position:relative;overflow:hidden;border-radius:var(--r-lg);
  background:linear-gradient(140deg,#4c6ef5 0%,#7048e8 52%,#5b52d6 100%);
  padding:17px 16px 15px;margin-bottom:12px;color:#fff;
  box-shadow:0 14px 32px -14px rgba(76,110,245,.6)}
.mg-hero::before{content:"";position:absolute;right:-38px;top:-44px;width:132px;height:132px;
  border-radius:50%;background:rgba(255,255,255,.09)}
.mg-hero::after{content:"";position:absolute;right:26px;bottom:-52px;width:88px;height:88px;
  border-radius:50%;background:rgba(255,255,255,.07)}
.mg-hero>*{position:relative;z-index:1}
.mg-hero .hd{display:flex;align-items:center;gap:8px;margin-bottom:7px}
.mg-hero .hd .ic{width:17px;height:17px;flex:none}
.mg-hero h3{margin:0;font-size:16.5px;font-weight:800;letter-spacing:.3px;line-height:1.35}
.mg-hero p{margin:0;font-size:12.5px;line-height:1.7;opacity:.9}
.mg-hero .mg-tot{display:flex;gap:6px;margin-top:13px;padding-top:12px;
  border-top:1px solid rgba(255,255,255,.2)}
.mg-hero .mg-tot div{flex:1;min-width:0;text-align:center;opacity:.95}
.mg-hero .mg-tot b{display:block;font-size:18px;font-weight:800;letter-spacing:.4px;
  font-variant-numeric:tabular-nums}
.mg-hero .mg-tot span{display:block;font-size:10px;opacity:.78;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* 分区标题：左侧色条 */
.mg-sec{font-size:13.5px;font-weight:800;color:var(--ink);margin:19px 0 11px;
  display:flex;align-items:center;gap:7px;line-height:1.4}
.mg-sec::before{content:"";width:3px;height:14px;border-radius:2px;
  background:var(--brand-grad);flex:none}
.mg-sec .ic{width:15px;height:15px;color:var(--brand);flex:none}
.mg-sec .mini{font-size:11px;font-weight:600;color:var(--ink3);margin-left:auto}

/* 场景卡：单列大字，避免文字被裁 */
.mg-grid{display:flex;flex-direction:column;gap:9px}
.mg-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
  padding:13px 14px 13px 15px;cursor:pointer;position:relative;overflow:hidden;
  display:flex;gap:11px;align-items:flex-start;
  box-shadow:var(--shadow-sm);
  transition:transform .18s var(--ease),box-shadow .18s,border-color .18s}
.mg-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--tone-fg);opacity:.85}
.mg-card:hover{box-shadow:var(--shadow);border-color:#d8dff0}
.mg-card:active{transform:scale(.988)}
.mg-card .mg-ic{width:38px;height:38px;border-radius:12px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--tone-bg);color:var(--tone-fg);margin-top:1px}
.mg-card .mg-ic .ic{width:19px;height:19px}
.mg-card .bd{flex:1;min-width:0}
.mg-card .t{font-size:14.5px;font-weight:800;line-height:1.4;letter-spacing:.2px;
  display:flex;align-items:center;gap:6px}
.mg-card .t .go{margin-left:auto;width:15px;height:15px;color:var(--ink3);flex:none}
.mg-card .s{font-size:12.5px;color:var(--ink2);line-height:1.65;margin-top:4px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mg-card .mg-n{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.mg-card .mg-n span{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:7px;
  background:var(--tone-bg);color:var(--tone-fg);white-space:nowrap}

/* 在线测试卡：紧凑横向，视觉权重低于场景 */
.mg-quiz{display:flex;align-items:center;gap:11px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);
  padding:12px 13px;margin-bottom:4px;box-shadow:var(--shadow-sm);
  cursor:pointer;transition:transform .16s var(--ease),box-shadow .16s}
.mg-quiz:hover{box-shadow:var(--shadow)}
.mg-quiz:active{transform:scale(.99)}
.mg-quiz .ic-box{width:36px;height:36px;border-radius:11px;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--brand-soft);color:var(--brand)}
.mg-quiz .ic-box .ic{width:18px;height:18px}
.mg-quiz .bd{flex:1;min-width:0}
.mg-quiz .t{font-size:14px;font-weight:800;display:flex;align-items:center;gap:6px}
.mg-quiz .d{font-size:12px;color:var(--ink2);line-height:1.6;margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mg-quiz .btn{flex:none;padding:9px 14px;font-size:12.5px;border-radius:20px}

/* 岗位 chip 行 */
.mg-roles{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.mg-roles button{display:flex;align-items:center;gap:6px;text-align:left;
  font-size:12.5px;font-weight:700;min-height:44px;padding:0 11px;
  border-radius:12px;border:1px solid var(--line);background:var(--card);
  color:var(--ink);box-shadow:var(--shadow-sm);
  transition:transform .14s var(--ease),border-color .14s}
.mg-roles button:active{transform:scale(.97)}
.mg-roles button .ic{width:15px;height:15px;flex:none;color:var(--tone-fg)}
.mg-roles button .txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}
.mg-roles button .num{flex:none;font-size:10.5px;font-weight:800;padding:1px 6px;border-radius:8px;
  background:var(--tone-bg);color:var(--tone-fg);font-variant-numeric:tabular-nums}

/* 底部兜底入口 */
.mg-fallback{background:var(--card2);border:1px dashed var(--line);
  border-radius:var(--r-md);padding:14px}
.mg-fallback .ft{font-size:13px;font-weight:800;color:var(--ink)}
.mg-fallback .fd{font-size:12px;color:var(--ink2);line-height:1.65;margin:5px 0 11px}

/* 场景详情面板 */
.mg-detail-hd{border-radius:var(--r-md);padding:15px 14px;margin-bottom:11px;
  background:var(--tone-bg);border:1px solid var(--line);position:relative;overflow:hidden}
.mg-detail-hd .t{font-size:16.5px;font-weight:800;color:var(--tone-fg);display:flex;
  align-items:center;gap:8px;line-height:1.35}
.mg-detail-hd .t .ic{width:20px;height:20px;flex:none}
.mg-detail-hd .sym{font-size:12.5px;color:var(--ink2);line-height:1.7;margin-top:10px;
  padding-top:9px;border-top:1px dashed var(--line)}
.mg-detail-hd .sym b{display:inline-block;font-size:10px;font-weight:800;color:var(--tone-fg);
  background:var(--card);border:1px solid var(--line);border-radius:6px;padding:1px 6px;
  margin:0 7px 4px 0;vertical-align:1px}
.mg-detail-hd .dpri{font-size:12.5px;color:var(--ink2);line-height:1.75;margin-top:8px;
  padding:10px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line)}
.mg-detail-hd .dpri b{display:inline-block;font-size:10px;font-weight:800;color:#fff;
  background:var(--tone-fg);border-radius:6px;padding:1px 6px;margin:0 7px 5px 0;vertical-align:1px}
.mg-goal{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.mg-goal button{font-size:12px;font-weight:700;min-height:44px;padding:0 14px;border-radius:22px;
  border:1px solid var(--line);background:var(--card);color:var(--ink2);
  display:inline-flex;align-items:center;gap:5px;box-shadow:var(--shadow-sm);
  transition:transform .14s var(--ease)}
.mg-goal button:active{transform:scale(.96)}
.mg-goal button.pri{background:var(--tone-bg);border-color:transparent;color:var(--tone-fg)}
.mg-goal button .ic{width:14px;height:14px}
.mg-note{font-size:12px;color:var(--ink3);line-height:1.6;padding:0 2px;margin:0 0 4px}
.mg-sec-in{display:flex;align-items:center;gap:7px;margin:19px 0 9px}
.mg-sec-in h4{margin:0;font-size:13.5px;font-weight:800;display:flex;align-items:center;gap:6px}
.mg-sec-in h4 .ic{width:15px;height:15px;color:var(--brand)}
.mg-sec-in .mini{margin-left:auto;font-size:11px;font-weight:600;color:var(--ink3);
  background:var(--card2);padding:2px 8px;border-radius:8px}
.mg-more{width:100%;margin-top:8px}
.mg-tagline{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.mg-tagline span{font-size:10px;font-weight:700;padding:2px 7px;border-radius:7px;
  background:var(--tone-bg);color:var(--tone-fg)}
[data-theme="dark"] .mg-hero{box-shadow:none;border:1px solid #2c3560}
[data-theme="dark"] .mg-fallback{background:#1b2138}
[data-theme="dark"] .mg-card::before{opacity:1}

/* ---------- 在线测试 / 问答模块 ---------- */
.qz-hero{background:var(--brand-grad);color:#fff;border-radius:var(--r-lg);padding:16px 16px 18px;
  box-shadow:var(--shadow)}
.qz-hero-t{font-size:16px;font-weight:800;line-height:1.5}
.qz-hero-d{font-size:12.5px;line-height:1.7;opacity:.9;margin-top:6px}
.qz-fld{margin-top:14px}
.qz-fld label{display:block;font-size:12.5px;font-weight:700;color:var(--ink2);margin-bottom:7px}
.qz-sel{width:100%;font-size:16px;min-height:44px;padding:10px 12px;border-radius:var(--r-sm);
  border:1px solid var(--line);background:var(--card);color:var(--ink)}
.qz-bar{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;
  font-weight:700;color:var(--ink2)}
#qz-timer{font-variant-numeric:tabular-nums;color:var(--brand)}
.qz-prog{height:6px;border-radius:3px;background:var(--line2);margin-top:7px;overflow:hidden}
.qz-prog i{display:block;height:100%;border-radius:3px;background:var(--brand-grad);transition:width .25s var(--ease)}
.qz-tagrow{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}
.qz-stem{font-size:16px;font-weight:700;line-height:1.7;margin-top:10px;white-space:pre-wrap;color:var(--ink)}
.qz-opts{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.qz-opt{display:flex;align-items:flex-start;gap:9px;width:100%;text-align:left;font-size:15px;
  line-height:1.6;min-height:48px;padding:12px 13px;border-radius:var(--r-sm);
  border:1.5px solid var(--line);background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm);
  transition:transform .12s var(--ease)}
.qz-opt:active{transform:scale(.985)}
.qz-k{flex:0 0 22px;width:22px;height:22px;border-radius:7px;background:var(--card2);color:var(--ink2);
  font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.qz-opt.on{border-color:var(--brand);background:var(--brand-soft)}
.qz-opt.on .qz-k{background:var(--brand);color:#fff}
.qz-opt.right{border-color:var(--green);background:var(--green-soft)}
.qz-opt.right .qz-k{background:var(--green);color:#fff}
.qz-opt.wrong{border-color:var(--red);background:var(--red-soft)}
.qz-opt.wrong .qz-k{background:var(--red);color:#fff}
.qz-exp{margin-top:12px;padding:12px 13px;border-radius:var(--r-sm);background:var(--card2);
  border:1px solid var(--line);font-size:13.5px;line-height:1.7}
.qz-exp-t{font-weight:800;margin-bottom:6px}
.qz-exp-t.ok{color:var(--green)}
.qz-exp-t.no{color:var(--red)}
.qz-exp-b{color:var(--ink2);margin-top:4px}
.qz-exp-b b{color:var(--ink)}
.qz-nav{display:flex;gap:8px;margin-top:14px}
.qz-dots{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}
.qz-dots i{width:7px;height:7px;border-radius:4px;background:var(--line)}
.qz-dots i.cur{background:var(--brand);transform:scale(1.3)}
.qz-res{display:flex;align-items:center;gap:16px;padding:6px 0 2px}
.qz-ring{width:104px;height:104px;flex:0 0 104px}
.qz-ring-t{font-size:19px;font-weight:800;fill:var(--ink)}
.qz-res-t{font-size:15px;line-height:1.7}
.qz-res-t b{font-size:26px;font-weight:800}
.qz-note{font-size:13px;line-height:1.7;color:var(--ink2);margin-top:12px;padding:11px 13px;
  border-radius:var(--r-sm);background:var(--brand-soft);color:var(--brand)}
.qz-witem{border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);
  padding:11px 12px;margin-top:8px;box-shadow:var(--shadow-sm)}
.qz-witem .t{font-size:13.5px;font-weight:700;line-height:1.6}
.qz-wline{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
@media (max-width:420px){
  .qz-ring{width:88px;height:88px;flex:0 0 88px}
  .qz-res-t b{font-size:22px}
}
.mg-quiz{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:15px 15px 16px;box-shadow:var(--shadow-sm);margin-bottom:4px}
.mg-quiz .t{font-size:15.5px;font-weight:800;display:flex;align-items:center;gap:6px}
.mg-quiz .t .ic{width:16px;height:16px;color:var(--brand)}
.mg-quiz .d{font-size:13px;color:var(--ink2);line-height:1.65;margin:6px 0 12px}

/* ==================== 演练室（drills.js）：每日三问 / 场景演练 / 工具箱 ==================== */
.dr-ask{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:14px 14px 12px;box-shadow:var(--shadow-sm);margin-bottom:4px}
.dr-ask-k{font-size:12px;font-weight:700;color:var(--brand);margin-bottom:10px;
  padding:5px 9px;background:var(--brand-soft);border-radius:8px;display:inline-block}
.dr-q{padding:12px 0;border-top:1px dashed var(--line)}
.dr-q:first-child{border-top:none;padding-top:2px}
.dr-q-h{font-size:14.5px;font-weight:700;line-height:1.65;display:flex;gap:8px;align-items:flex-start}
.dr-q-n{flex:none;width:21px;height:21px;border-radius:50%;background:var(--brand);color:#fff;
  font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-top:2px}
.dr-in{width:100%;margin-top:10px;padding:10px 11px;border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:16px;font-family:inherit;line-height:1.6;background:var(--bg);color:var(--ink);resize:vertical}
.dr-in:focus{outline:none;border-color:var(--brand);background:var(--card)}
.dr-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.dr-opts{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.dr-opt{display:flex;align-items:flex-start;gap:9px;width:100%;text-align:left;padding:12px 13px;
  min-height:46px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);
  font-size:14.5px;line-height:1.6;color:var(--ink);cursor:pointer;font-family:inherit;
  transition:border-color .15s,transform .1s}
.dr-opt:hover{border-color:var(--brand)}
.dr-opt:active{transform:scale(.985)}
.dr-opt:disabled{cursor:default;opacity:.75}
.dr-opt:disabled:hover{border-color:var(--line)}
.dr-opt.right{border-color:var(--green);background:color-mix(in srgb,var(--green) 9%,var(--card))}
.dr-opt.wrong{border-color:var(--red);background:color-mix(in srgb,var(--red) 8%,var(--card))}
.dr-opt.dim{opacity:.5}
.dr-k{flex:none;width:22px;height:22px;border-radius:6px;background:var(--brand-soft);color:var(--brand);
  font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-top:1px}
.dr-fb{margin-top:11px;padding:12px 13px;border-radius:var(--r-sm);
  background:var(--bg);border:1px solid var(--line)}
.dr-fb.ok{border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.dr-fb-h{font-size:13px;font-weight:800;color:var(--brand);margin-bottom:7px;display:flex;align-items:center;gap:6px}
.dr-fb-h::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--brand)}
.dr-fb.ok .dr-fb-h{color:var(--green)}
.dr-fb.ok .dr-fb-h::before{background:var(--green)}
.dr-fb-b{font-size:12.5px;color:var(--ink2);line-height:1.6}
.dr-fb-a{font-size:14px;line-height:1.7;margin-top:4px}
.dr-fb-l{margin:6px 0 0;padding-left:18px}
.dr-fb-l li{font-size:13.5px;line-height:1.65;color:var(--ink2);margin-bottom:4px}
/* 场景列表 */
.dr-scene{display:flex;align-items:center;gap:12px;padding:13px;margin-bottom:9px;
  border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);cursor:pointer;
  box-shadow:var(--shadow-sm);transition:border-color .15s,transform .1s}
.dr-scene:hover{border-color:var(--brand)}
.dr-scene:active{transform:scale(.99)}
.dr-scene-ic{flex:none;width:42px;height:42px;border-radius:12px;background:var(--brand-soft);
  color:var(--brand);display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800}
.dr-scene-t{font-size:15px;font-weight:800;line-height:1.4}
.dr-scene-d{font-size:12.5px;color:var(--ink2);line-height:1.6;margin:4px 0 7px}
.dr-scene-go{flex:none;color:var(--ink3)}
.dr-scene-go .ic{width:18px;height:18px}
.dr-scene-bg{font-size:13px;line-height:1.75;color:var(--ink2);padding:12px 13px;
  background:var(--bg);border-left:3px solid var(--brand);border-radius:0 var(--r-sm) var(--r-sm) 0;margin-bottom:12px}
.dr-bar{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:700;color:var(--ink2)}
.dr-res{text-align:center;padding:14px 0 10px}
.dr-res-n{font-size:44px;font-weight:800;line-height:1;color:var(--brand)}
.dr-res-n span{font-size:19px;color:var(--ink3);font-weight:700}
.dr-res-l{font-size:13.5px;line-height:1.7;color:var(--ink2);margin-top:10px}
.dr-revs{margin-top:8px}
.dr-rev{padding:11px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);margin-bottom:8px}
.dr-rev-h{font-size:12.5px;font-weight:800;color:var(--ink2)}
.dr-rev-b{font-size:13.5px;line-height:1.6;margin-top:5px}
.dr-rev-f{font-size:12.5px;line-height:1.65;color:var(--ink2);margin-top:6px;padding-top:6px;border-top:1px dashed var(--line)}
/* 工具箱 */
.dr-tool{display:flex;align-items:center;gap:12px;padding:13px;margin-bottom:9px;
  border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);cursor:pointer;
  box-shadow:var(--shadow-sm);transition:border-color .15s,transform .1s}
.dr-tool:hover{border-color:var(--brand)}
.dr-tool:active{transform:scale(.99)}
.dr-tool-ic{flex:none;width:40px;height:40px;border-radius:12px;background:var(--brand-soft);
  color:var(--brand);display:flex;align-items:center;justify-content:center}
.dr-tool-ic .ic{width:20px;height:20px}
.dr-tool-t{font-size:15px;font-weight:800}
.dr-tool-d{font-size:12.5px;color:var(--ink2);line-height:1.6;margin-top:3px}
.dr-tool-hd{font-size:16px;font-weight:800;margin-bottom:12px;display:flex;flex-direction:column;gap:3px}
.dr-tool-hd .mini{font-weight:500}
.dr-prev{white-space:pre-wrap;font-size:13.5px;line-height:1.75;padding:13px;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);max-height:46vh;overflow:auto}

/* ============ 第二期：标杆对标库 + 翻车案例复盘 ============ */
.bn-hd{margin-bottom:10px}
.bn-intro{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;margin-bottom:12px;
  border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:var(--r-sm);
  background:var(--brand-soft);font-size:12.5px;line-height:1.65;color:var(--ink2)}
.bn-intro.warn{border-color:color-mix(in srgb,var(--red) 35%,var(--line));
  background:color-mix(in srgb,var(--red) 7%,var(--card))}
.bn-intro .ic{flex:none;width:18px;height:18px;color:var(--brand);margin-top:1px}
.bn-intro.warn .ic{color:var(--red)}
.bn-search{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);
  border-radius:var(--r-lg);background:var(--card)}
.bn-search .ic{flex:none;width:17px;height:17px;color:var(--ink3)}
.bn-q{flex:1;min-width:0;border:none;background:none;font-size:16px;color:var(--ink);outline:none}
.bn-q::placeholder{color:var(--ink3)}
.bn-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.bn-chip{flex:none;min-height:34px;padding:6px 13px;border:1px solid var(--line);border-radius:999px;
  background:var(--card);font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer;
  transition:border-color .15s,color .15s,background .15s}
.bn-chip:hover{border-color:var(--brand)}
.bn-chip.on{border-color:var(--brand);background:var(--brand);color:#fff}
.bn-favbtn{flex:none;display:inline-flex;align-items:center;gap:5px;min-height:34px;margin-left:auto;
  padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);
  font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.bn-favbtn .ic{width:14px;height:14px}
.bn-favbtn.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}
.bn-count{font-size:12px;color:var(--ink3);margin:2px 2px 9px}
.bn-empty{padding:26px 10px;text-align:center;font-size:13px;color:var(--ink3)}
.bn-item{display:flex;align-items:flex-start;gap:11px;padding:13px;margin-bottom:9px;
  border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);cursor:pointer;
  box-shadow:var(--shadow-sm);transition:border-color .15s,transform .1s}
.bn-item:hover{border-color:var(--brand)}
.bn-item:active{transform:scale(.99)}
.bn-item-ic{flex:none;width:40px;height:40px;border-radius:12px;background:var(--brand-soft);
  color:var(--brand);display:flex;align-items:center;justify-content:center}
.bn-item-ic.warn{background:color-mix(in srgb,var(--red) 9%,var(--card));color:var(--red)}
.bn-item-ic .ic{width:19px;height:19px}
.bn-item-t{font-size:14.5px;font-weight:800;line-height:1.45;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.bn-item-m{font-size:12.5px;font-weight:700;color:var(--brand);margin-top:3px;line-height:1.5}
.bn-item-d{font-size:12.5px;color:var(--ink2);line-height:1.6;margin-top:4px}
.bn-tag{flex:none;font-size:10.5px;font-weight:700;color:var(--brand);background:var(--brand-soft);
  border-radius:6px;padding:2px 7px;line-height:1.5}
.bn-tag.warn{color:var(--red);background:color-mix(in srgb,var(--red) 9%,var(--card))}
.bn-tag.lg{font-size:11.5px;padding:3px 9px}
.bn-star{flex:none;width:38px;height:38px;display:flex;align-items:center;justify-content:center;
  border:none;border-radius:10px;background:none;color:var(--ink3);cursor:pointer}
.bn-star .ic{width:17px;height:17px}
.bn-star:hover{background:var(--brand-soft)}
.bn-star.on{color:var(--brand)}
.bn-star.on .ic{fill:currentColor}
.bn-go{flex:none;color:var(--ink3);align-self:center}
.bn-go .ic{width:18px;height:18px}
/* 详情 */
.bn-back{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--ink2);
  cursor:pointer;margin-bottom:12px;padding:6px 10px;margin-left:-10px;border-radius:var(--r-xs)}
.bn-back:hover{background:var(--brand-soft);color:var(--brand)}
.bn-back .ic{width:15px;height:15px;transform:rotate(180deg)}
.bn-dt-hd{margin-bottom:14px}
.bn-dt-name{font-size:19px;font-weight:800;line-height:1.4}
.bn-dt-name.warn{color:var(--red)}
.bn-dt-move{font-size:14px;font-weight:700;color:var(--brand);margin:6px 0 8px}
.bn-dt-sec{padding:13px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);margin-bottom:10px}
.bn-dt-sec.lesson{border-color:color-mix(in srgb,var(--green) 40%,var(--line));
  background:color-mix(in srgb,var(--green) 7%,var(--card))}
.bn-dt-sec.cost{border-color:color-mix(in srgb,var(--red) 35%,var(--line));
  background:color-mix(in srgb,var(--red) 7%,var(--card))}
.bn-dt-st{font-size:12.5px;font-weight:800;color:var(--ink2);margin-bottom:7px;display:flex;align-items:center;gap:6px}
.bn-dt-st .ic{width:15px;height:15px;color:var(--brand)}
.bn-dt-sec.lesson .bn-dt-st .ic{color:var(--green)}
.bn-dt-sec.cost .bn-dt-st .ic{color:var(--red)}
.bn-dt-b{font-size:14px;line-height:1.8}
.bn-dt-tags{font-size:12px;color:var(--ink3);margin:2px 2px 12px}
.bn-dt-act{display:flex;gap:8px;flex-wrap:wrap}
.bn-dt-act .btn{display:inline-flex;align-items:center;gap:5px}
.bn-dt-act .btn .ic{width:14px;height:14px}
/* 根因链 */
.bn-steps{display:flex;flex-direction:column;gap:0}
.bn-step{display:flex;gap:10px;align-items:flex-start;position:relative;padding-bottom:12px}
.bn-step:last-child{padding-bottom:0}
.bn-step::before{content:"";position:absolute;left:10px;top:22px;bottom:0;width:2px;background:var(--line)}
.bn-step:last-child::before{display:none}
.bn-step-n{flex:none;width:21px;height:21px;border-radius:50%;background:var(--red);color:#fff;
  font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center;margin-top:1px}
.bn-step-b{font-size:13.5px;line-height:1.7;flex:1;min-width:0}
.bn-step-tag{display:inline-block;font-size:10.5px;font-weight:700;color:#fff;background:var(--ink3);
  border-radius:5px;padding:1px 6px;margin-left:7px;vertical-align:1px}
.bn-step-tag.end{background:var(--red)}
@media (max-width:768px){
  .bn-item{padding:12px}
  .bn-star{width:44px;height:44px}
}

/* ==================== 第三期「用了没」闭环 ==================== */
/* 面板通用 */
.act-intro{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;margin-bottom:12px;
  border:1px solid color-mix(in srgb,var(--brand) 30%,var(--line));border-radius:var(--r-sm);
  background:var(--brand-soft);font-size:12.5px;line-height:1.65;color:var(--ink2)}
.act-intro .ic{flex:none;width:18px;height:18px;color:var(--brand);margin-top:1px}
.act-tabs{display:flex;gap:8px;margin-bottom:12px}
.act-tab{flex:1;padding:9px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);
  font-size:13px;font-weight:700;color:var(--ink2);cursor:pointer;min-height:44px}
.act-tab.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.act-tab .n{font-size:11px;font-weight:800;color:var(--red)}
.act-empty{padding:34px 16px;text-align:center;color:var(--ink3);font-size:13px;line-height:1.7}
.act-empty .ic{width:34px;height:34px;margin-bottom:10px}
.act-st{flex:none;font-size:10.5px;font-weight:700;border-radius:6px;padding:2px 7px;line-height:1.5}
.act-st.b{color:var(--brand);background:var(--brand-soft)}
.act-st.o{color:var(--amber);background:var(--amber-soft)}
.act-st.g{color:var(--green);background:var(--green-soft)}
.act-st.p{color:var(--purple);background:var(--purple-soft)}
.act-st.s{color:var(--ink2);background:var(--card2)}
.act-st.lg{font-size:11.5px;padding:3px 9px}
.act-back{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--ink2);
  cursor:pointer;margin-bottom:12px;padding:6px 10px;margin-left:-10px;border-radius:var(--r-xs)}
.act-back:hover{background:var(--brand-soft);color:var(--brand)}
.act-back .ic{width:15px;height:15px;transform:rotate(180deg)}
.act-ta{width:100%;border:1px solid var(--line);border-radius:var(--r-xs);background:var(--card);
  padding:9px 11px;font-size:16px;line-height:1.6;font-family:inherit;resize:vertical;color:var(--ink)}
.act-ta:focus{outline:none;border-color:var(--brand)}
/* 落地回访卡片 */
.act-rv{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);padding:13px;margin-bottom:10px}
.act-rv-t{font-size:14.5px;font-weight:800;line-height:1.45;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.act-rv-due{font-size:11.5px;color:var(--ink2);margin-top:5px}
.act-rv-due.over{color:var(--red);font-weight:700}
.act-rv-act{margin-top:9px;padding:9px 11px;border-radius:var(--r-xs);background:var(--card2);
  font-size:12.5px;color:var(--ink2);line-height:1.65}
.act-rv-opts{display:flex;gap:8px;margin-top:11px}
.act-opt{flex:1;min-height:44px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);
  font-size:12.5px;font-weight:700;color:var(--ink2);cursor:pointer}
.act-opt:active{transform:scale(.98)}
.act-opt.g{border-color:color-mix(in srgb,var(--green) 45%,var(--line));color:var(--green);background:var(--green-soft)}
.act-opt.o{border-color:color-mix(in srgb,var(--amber) 45%,var(--line));color:var(--amber);background:var(--amber-soft)}
.act-opt.s{border-color:var(--line);color:var(--ink2)}
.act-rv-f{margin-top:10px;padding:11px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card2)}
.act-rv-f-t{font-size:12.5px;font-weight:700;color:var(--ink2);margin-bottom:8px}
.act-rv-f-a{display:flex;gap:8px;margin-top:9px}
.act-rv-f-a .btn{flex:1}
.act-ck{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:12.5px;color:var(--ink2)}
.act-ck input{width:17px;height:17px;accent-color:var(--brand)}
/* 改善台账 */
.act-fbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.act-chips{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto}
.act-chip{border:1px solid var(--line);border-radius:999px;background:var(--card);padding:6px 12px;
  font-size:12px;font-weight:700;color:var(--ink2);cursor:pointer;min-height:34px}
.act-chip.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.act-imp{border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);padding:13px;margin-bottom:10px;cursor:pointer}
.act-imp:hover{border-color:var(--brand)}
.act-imp:active{transform:scale(.99)}
.act-imp-t{font-size:14.5px;font-weight:800;line-height:1.45;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.act-imp-due{font-size:11.5px;color:var(--ink2);margin-top:5px}
.act-imp-due.over{color:var(--red);font-weight:700}
.act-imp-d{font-size:12.5px;color:var(--ink2);line-height:1.65;margin-top:7px}
.act-imp-d.ok{color:var(--green)}
.act-imp-dt-t{font-size:18px;font-weight:800;line-height:1.4;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}
.act-fld{margin-bottom:12px}
.act-fld label{display:block;font-size:12px;font-weight:700;color:var(--ink2);margin-bottom:6px}
.act-dt-b{font-size:14px;line-height:1.8;padding:10px 12px;border:1px solid var(--line2);border-radius:var(--r-xs);background:var(--card2)}
.act-dt-b.ok{color:var(--green);background:var(--green-soft);border-color:transparent}
.act-logs{display:flex;flex-direction:column}
.act-log{display:flex;gap:10px;align-items:flex-start;position:relative;padding-bottom:11px;font-size:13px;line-height:1.6}
.act-log:last-child{padding-bottom:0}
.act-log::before{content:"";position:absolute;left:4px;top:15px;bottom:0;width:1.5px;background:var(--line)}
.act-log:last-child::before{display:none}
.act-log::after{content:"";position:absolute;left:1px;top:6px;width:7px;height:7px;border-radius:50%;background:var(--brand)}
.act-log-ts{flex:none;width:82px;font-size:11px;color:var(--ink3);padding-left:14px}
.act-log span:last-child{flex:1;min-width:0}
.act-dt-act{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.act-dt-act .btn{display:inline-flex;align-items:center;gap:5px}
.act-dt-act .btn .ic{width:14px;height:14px}
.act-frm-hd{font-size:16px;font-weight:800;margin-bottom:14px}
/* 周报 */
.act-wk-nav{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.act-wk-nav .btn .ic{width:13px;height:13px}
.act-wk-nav .btn:first-child .ic{transform:rotate(180deg)}
.act-wk-range{flex:1;text-align:center;font-size:13px;font-weight:800}
.act-wk-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.act-wk-st{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);padding:10px 8px;text-align:center}
.act-wk-st b{display:block;font-size:19px;color:var(--brand)}
.act-wk-st span{font-size:11px;color:var(--ink2)}
.act-wk-pt{white-space:pre-wrap;font-size:13px;line-height:1.85;padding:13px;border:1px solid var(--line);
  border-radius:var(--r-sm);background:var(--card2);margin-bottom:12px;font-family:inherit}
@media (max-width:768px){
  .act-rv-opts{flex-wrap:wrap}
  .act-opt{min-width:calc(50% - 4px)}
  .act-chips{margin-left:0;width:100%}
}

/* ---------- 第四期：数据中心 ---------- */
.db-loading { text-align: center; padding: 42px 0; color: var(--ink2); font-size: 14px; }
.db-loading svg { width: 34px; height: 34px; margin-bottom: 8px; color: var(--brand); }
.db-bar-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; }
.db-sec { font-size: 12.5px; font-weight: 700; color: var(--ink2); margin: 16px 2px 8px; letter-spacing: .5px; }
.db-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.db-st { background: var(--surface, #fff); border: 1px solid var(--line, #e9ecf5); border-radius: var(--r-md, 14px); padding: 10px 8px; text-align: center; }
.db-st b { display: block; font-size: 19px; line-height: 1.2; color: var(--ink, #1a1f36); }
.db-st b.over { color: #e03131; }
.db-st span { display: block; margin-top: 3px; font-size: 11px; color: var(--ink2); }
.db-st span i { font-style: normal; opacity: .75; }
.db-panel { background: var(--surface, #fff); border: 1px solid var(--line, #e9ecf5); border-radius: var(--r-md, 14px); padding: 12px; }
.db-chart { width: 100%; height: 108px; display: block; }
.db-chart-area { fill: rgba(59, 91, 219, .12); }
.db-chart-line { fill: none; stroke: var(--brand); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.db-chart text { font-size: 8px; fill: var(--ink2); }
.db-heats { display: grid; grid-template-columns: repeat(10, 1fr); gap: 4px; }
.db-heat { aspect-ratio: 1; border-radius: 5px; background: var(--line, #edf0f7); position: relative; }
.db-heat i { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-style: normal; font-size: 8px; color: transparent; }
.db-heat.l1 { background: #dbe4ff; }
.db-heat.l2 { background: #91a7ff; }
.db-heat.l3 { background: #5c7cfa; }
.db-heat.l4 { background: #3b5bdb; }
.db-bar { display: flex; align-items: center; gap: 8px; padding: 5px 0; }
.db-bar-l { width: 62px; font-size: 12px; color: var(--ink2); flex: none; }
.db-bar-t { flex: 1; height: 9px; border-radius: 5px; background: var(--line, #edf0f7); overflow: hidden; }
.db-bar-t i { display: block; height: 100%; border-radius: 5px; background: var(--brand-grad, linear-gradient(135deg, #3b5bdb, #6a48e0)); }
.db-bar-v { width: 26px; text-align: right; font-size: 12.5px; font-weight: 700; color: var(--ink); flex: none; }
.db-feed { display: flex; gap: 9px; align-items: flex-start; padding: 7px 0; border-bottom: 1px dashed var(--line, #edf0f7); }
.db-feed:last-child { border-bottom: none; }
.db-feed-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 5px; flex: none; background: #adb5bd; }
.db-feed-dot.quiz { background: #3b5bdb; }
.db-feed-dot.scene { background: #7048e8; }
.db-feed-dot.ask { background: #0ca678; }
.db-feed-dot.imp { background: #e8590c; }
.db-feed-dot.rv-ok { background: #2f9e44; }
.db-feed-dot.rv-no { background: #e03131; }
.db-feed-dot.rv { background: #f08c00; }
.db-feed-dot.note, .db-feed-dot.ins { background: #1098ad; }
.db-feed-t { font-size: 13px; color: var(--ink); line-height: 1.45; }
.db-feed-m { font-size: 11px; color: var(--ink2); margin-top: 1px; }
.db-empty { text-align: center; padding: 26px 10px; color: var(--ink2); font-size: 13px; }
.db-foot { text-align: center; margin-top: 14px; }

@media (max-width: 768px) {
  .db-stats { grid-template-columns: repeat(2, 1fr); }
  .db-heats { grid-template-columns: repeat(6, 1fr); }
  .db-bar-l { width: 56px; }
}

/* ---------- PPT 资料学习 ---------- */
.ppt-bar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
/* 上传按钮：透明 file input 覆盖整个按钮，点击即命中原生控件（移动端可靠） */
.ppt-upload-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}
.ppt-file{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}
.ppt-item{border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px;margin-bottom:10px}
.ppt-t{font-size:13.5px;font-weight:700;line-height:1.45;word-break:break-all}
.ppt-t .mini{font-weight:600;margin-left:2px}
.ppt-d{font-size:11.5px;color:var(--ink2);margin-top:3px;line-height:1.5}
.ppt-op{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.ppt-op .btn{flex:none;min-height:38px}
.ppt-slide{border-top:1px solid var(--line2);padding:10px 2px}
.ppt-slide-h{font-size:12.5px;font-weight:800;color:var(--brand);margin-bottom:4px}
.ppt-slide-b{font-size:13px;line-height:1.75;color:var(--ink)}
.ppt-bar textarea,.ppt-item textarea{border:1px solid var(--line);border-radius:var(--r-sm);
  padding:9px 11px;font-size:16px;font-family:inherit;background:var(--card2)}

/* ---------- 问答专区（科技风 · 跟随深浅主题） ---------- */
/* 用变量驱动两套配色：浅色下是「浅蓝玻璃 + 网格」，深色下是「深空舱」。
   早先这里写死深色，结果右上角的主题按钮点了没反应，用户以为坏了。 */
.ask-stage{
  /* 浅色（默认） */
  --a-line:rgba(74,98,200,.16);
  --a-line-hi:rgba(74,98,200,.46);
  --a-ink:#182030; --a-ink2:#55617a; --a-ink3:#8b94a9;
  --a-glass:rgba(255,255,255,.78);
  --a-glass2:rgba(255,255,255,.55);
  --a-chip:rgba(74,98,200,.08);
  --a-glow:rgba(91,124,250,.20);
  --a-grid:rgba(74,98,200,.055);
  --a-cardbg:linear-gradient(160deg,rgba(255,255,255,.96),rgba(246,249,255,.94));
  --a-cardshadow:0 12px 32px -14px rgba(40,60,140,.28);
  position:relative; margin:-14px -14px -24px; padding:16px 14px 34px;
  min-height:calc(100dvh - 118px);
  background:
    radial-gradient(120% 58% at 50% -12%, rgba(91,124,250,.22), transparent 62%),
    radial-gradient(76% 46% at 102% 6%, rgba(139,92,246,.13), transparent 60%),
    linear-gradient(180deg,#f7f9ff 0%,#eff3fc 58%,#e9eefb 100%);
  color:var(--a-ink);
  overflow:hidden;
}
[data-theme="dark"] .ask-stage{
  --a-line:rgba(126,152,255,.20);
  --a-line-hi:rgba(126,152,255,.55);
  --a-ink:#e8ecf8; --a-ink2:#9aa8c8; --a-ink3:#6b7899;
  --a-glass:rgba(255,255,255,.055);
  --a-glass2:rgba(255,255,255,.028);
  --a-chip:rgba(255,255,255,.04);
  --a-glow:rgba(91,124,250,.28);
  --a-grid:rgba(126,152,255,.055);
  --a-cardbg:linear-gradient(160deg,rgba(24,32,64,.96),rgba(10,15,32,.98));
  --a-cardshadow:0 14px 40px rgba(3,7,18,.7);
  background:
    radial-gradient(120% 60% at 50% -10%, rgba(91,124,250,.28), transparent 62%),
    radial-gradient(80% 50% at 100% 8%, rgba(139,92,246,.16), transparent 60%),
    linear-gradient(180deg,#0a1024 0%,#070b18 46%,#060912 100%);
}
/* 网格底纹 */
.ask-stage::before{
  content:''; position:absolute; inset:0; pointer-events:none; opacity:.55;
  background-image:
    linear-gradient(var(--a-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--a-grid) 1px, transparent 1px);
  background-size:34px 34px;
  mask-image:radial-gradient(120% 70% at 50% 0%, #000 30%, transparent 78%);
  -webkit-mask-image:radial-gradient(120% 70% at 50% 0%, #000 30%, transparent 78%);
}
.ask-stage > *{position:relative;z-index:1}

/* ---- 顶部 ---- */
.ask-hero{padding:6px 2px 16px}
.ask-ai-badge{
  display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 11px 0 9px;
  border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.5px;
  color:#3b5bdb;background:linear-gradient(90deg,rgba(91,124,250,.14),rgba(139,92,246,.12));
  border:1px solid rgba(91,124,250,.32);
  box-shadow:0 0 16px rgba(91,124,250,.14), inset 0 1px 0 rgba(255,255,255,.7);
  margin-bottom:12px;
}
[data-theme="dark"] .ask-ai-badge{
  color:#cfe0ff;background:linear-gradient(90deg,rgba(91,124,250,.28),rgba(139,92,246,.24));
  border-color:rgba(126,152,255,.42);
  box-shadow:0 0 18px rgba(91,124,250,.28), inset 0 1px 0 rgba(255,255,255,.12);
}
.ask-ai-badge .dot{width:6px;height:6px;border-radius:50%;background:#06b6d4;
  box-shadow:0 0 0 0 rgba(6,182,212,.7);animation:aiPulse 2s infinite}
@keyframes aiPulse{
  0%{box-shadow:0 0 0 0 rgba(6,182,212,.6)}
  70%{box-shadow:0 0 0 7px rgba(6,182,212,0)}
  100%{box-shadow:0 0 0 0 rgba(6,182,212,0)}
}
.ask-hero-t{font-size:23px;font-weight:800;letter-spacing:-.4px;line-height:1.35;color:var(--a-ink)}
.ask-hero-t em{
  font-style:normal;
  background:linear-gradient(92deg,#2f6bff,#7048e8 55%,#06a6c4);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.ask-hero-s{font-size:12.5px;color:var(--a-ink2);margin-top:8px;line-height:1.6}
.ask-dots{display:inline-flex;gap:4px;margin-left:6px;vertical-align:middle}
.ask-dots i{width:5px;height:5px;border-radius:50%;background:#06b6d4;opacity:.35;
  animation:dotBlink 1.2s infinite}
.ask-dots i:nth-child(2){animation-delay:.18s}
.ask-dots i:nth-child(3){animation-delay:.36s}
@keyframes dotBlink{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}

/* ---- 输入区 ---- */
.ask-box{position:relative;border-radius:18px;padding:14px 15px 11px;
  background:var(--a-glass); border:1px solid var(--a-line);
  box-shadow:0 8px 26px -16px rgba(40,60,140,.30), inset 0 1px 0 rgba(255,255,255,.6);
  transition:border-color .18s var(--ease), box-shadow .18s var(--ease);
  overflow:hidden;
}
[data-theme="dark"] .ask-box{
  background:linear-gradient(160deg,rgba(255,255,255,.065),rgba(255,255,255,.028));
  box-shadow:0 8px 28px rgba(4,8,20,.55), inset 0 1px 0 rgba(255,255,255,.07);
}
.ask-box:focus-within{border-color:var(--a-line-hi);
  box-shadow:0 0 0 3.5px var(--a-glow), 0 8px 30px -14px rgba(40,60,140,.36)}
.ask-scan{position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(105,168,255,.95),rgba(139,92,246,.95),transparent);
  opacity:0;transition:opacity .2s}
.ask-box:focus-within .ask-scan{opacity:1;animation:scanX 2.4s linear infinite}
@keyframes scanX{0%{transform:translateX(-60%)}100%{transform:translateX(60%)}}
.ask-box textarea{display:block;width:100%;border:0;background:none;outline:none;resize:none;
  font-family:inherit;font-size:16px;line-height:1.7;color:var(--a-ink);
  min-height:92px;max-height:240px;overflow-y:auto;padding:0}
.ask-box textarea::placeholder{color:var(--a-ink3)}
.ask-box-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:11px;padding-top:10px;border-top:1px solid var(--a-line)}
.ask-hint{font-size:10.5px;color:var(--a-ink3);letter-spacing:.2px}
.ask-hint kbd{display:inline-block;padding:1px 5px;border-radius:5px;font-family:inherit;
  font-size:10px;color:var(--a-ink2);background:var(--a-chip);
  border:1px solid var(--a-line);box-shadow:0 1px 0 rgba(0,0,0,.06)}
.ask-go{min-height:40px;padding:0 24px;border-radius:12px;font-weight:800;letter-spacing:.5px;
  background:linear-gradient(96deg,#4a6bf5,#7048e8 60%,#8b5cf6);
  border:0;color:#fff;box-shadow:0 6px 20px rgba(74,107,245,.38)}
.ask-go:active{transform:translateY(1px)}

/* ---- 数据带 ---- */
.ask-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}
.ask-stat{padding:12px 8px 10px;border-radius:13px;text-align:center;
  background:var(--a-glass);border:1px solid var(--a-line)}
.ask-stat b{display:block;font-size:19px;font-weight:900;letter-spacing:-.5px;
  background:linear-gradient(96deg,#3b6bff,#06a6c4);
  -webkit-background-clip:text;background-clip:text;color:transparent;line-height:1.2}
.ask-stat span{display:block;font-size:10px;color:var(--a-ink3);letter-spacing:1px;margin-top:3px}

/* ---- 示例问题 ---- */
.ask-egs{margin-top:20px}
.ask-egs-t{font-size:11px;font-weight:800;color:var(--a-ink3);letter-spacing:1.2px;margin-bottom:10px}
.ask-egs-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.ask-eg{text-align:left;border:1px solid var(--a-line);border-radius:13px;
  background:var(--a-glass2);padding:10px 12px;font-family:inherit;
  font-size:12.5px;line-height:1.5;color:var(--a-ink2);
  transition:background .15s,border-color .15s,box-shadow .15s}
.ask-eg:active{background:rgba(91,124,250,.12);border-color:var(--a-line-hi);
  box-shadow:0 0 20px var(--a-glow)}

.ask-note{display:flex;gap:9px;align-items:flex-start;margin-top:20px;padding:12px 13px;
  border-radius:13px;background:var(--a-glass2);border:1px solid var(--a-line);
  font-size:11.5px;line-height:1.65;color:var(--a-ink3)}
.ask-note-ic{flex:none;display:flex;color:#2f8fd8}
.ask-note-ic .ic{width:15px;height:15px}

/* ---- 加载：雷达扫描 ---- */
.ask-loading{display:flex;flex-direction:column;align-items:center;gap:14px;padding:44px 0 26px}
.ask-radar{position:relative;width:72px;height:72px}
.ask-radar span{position:absolute;inset:0;border-radius:50%;
  border:1px solid rgba(74,107,245,.5);opacity:0;animation:radar 2.2s ease-out infinite}
.ask-radar span:nth-child(2){animation-delay:.7s}
.ask-radar span:nth-child(3){animation-delay:1.4s}
@keyframes radar{0%{transform:scale(.35);opacity:.9}100%{transform:scale(1);opacity:0}}
.ask-radar::after{content:'';position:absolute;left:50%;top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;
  border-radius:50%;background:#06b6d4;box-shadow:0 0 16px rgba(6,182,212,.75)}
.ask-loading-t{font-size:13.5px;font-weight:700;color:var(--a-ink);letter-spacing:.4px}
.ask-loading-s{font-size:11px;color:var(--a-ink3);letter-spacing:.6px}

/* ---- 问题回显 / 追问栏 ---- */
.ask-echo{display:flex;gap:7px;align-items:flex-start;margin:2px 2px 12px;
  font-size:12px;line-height:1.55;color:var(--a-ink3)}
.ask-echo b{flex:none;color:#3b6bff;font-weight:800}
[data-theme="dark"] .ask-echo b{color:#7ea6ff}
.ask-echo span{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.ask-inline{display:flex;gap:8px;align-items:flex-end;border-radius:14px;
  background:var(--a-glass);border:1px solid var(--a-line);
  padding:8px 9px 8px 13px;transition:border-color .16s,box-shadow .16s}
.ask-inline:focus-within{border-color:var(--a-line-hi);box-shadow:0 0 24px var(--a-glow)}
.ask-inline textarea{flex:1;min-width:0;border:0;background:none;outline:none;resize:none;
  font-family:inherit;font-size:16px;line-height:1.6;color:var(--a-ink);
  min-height:26px;max-height:150px;padding:5px 0;overflow-y:auto}
.ask-inline textarea::placeholder{color:var(--a-ink3)}
.ask-inline .ask-go{flex:none;min-height:36px;padding:0 16px;border-radius:10px;font-weight:700}

/* ---- AI 答案卡 ---- */
.ask-card{position:relative;border-radius:18px;overflow:hidden;margin-bottom:16px}
.ask-ai{padding:16px 17px 15px;background:var(--a-cardbg);
  border:1px solid var(--a-line);box-shadow:var(--a-cardshadow)}
.ask-ai::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;
  background:linear-gradient(180deg,#4a6bf5,#8b5cf6 50%,#06b6d4)}
.ask-ai::after{content:'';position:absolute;left:-40%;top:-60%;width:80%;height:120%;
  background:radial-gradient(closest-side,var(--a-glow),transparent);pointer-events:none}
.ask-ai-top{display:flex;align-items:center;gap:8px;margin-bottom:11px}
.ask-ai-mark{display:inline-flex;align-items:center;justify-content:center;
  width:26px;height:20px;border-radius:6px;font-size:10px;font-weight:900;letter-spacing:.5px;
  color:#fff;background:linear-gradient(96deg,#4a6bf5,#06b6d4);
  box-shadow:0 0 14px rgba(74,107,245,.4)}
.ask-ai-model{font-size:10.5px;color:var(--a-ink3);letter-spacing:.3px}
.ask-ai-live{margin-left:auto;width:6px;height:6px;border-radius:50%;background:#10b981;
  box-shadow:0 0 10px rgba(16,185,129,.8)}
.ask-ai-body{font-size:14.5px;line-height:1.88;color:var(--a-ink);letter-spacing:.15px;
  margin-bottom:12px;min-height:22px;white-space:pre-wrap}
.ask-ai-body::after{content:'▌';color:#06b6d4;animation:caret 1s steps(1) infinite;margin-left:1px}
.ask-ai-body[data-typed="1"]::after{content:'';animation:none}
@keyframes caret{0%,49%{opacity:1}50%,100%{opacity:0}}
.ask-ai-src{display:flex;gap:7px;align-items:flex-start;font-size:11.5px;line-height:1.55;
  color:var(--a-ink2);padding:9px 11px;border-radius:10px;
  background:var(--a-chip);border:1px solid var(--a-line);margin-bottom:10px}
.ask-ai-src b{flex:none;color:#3b6bff;font-weight:800;letter-spacing:.5px}
[data-theme="dark"] .ask-ai-src b{color:#69a8ff}
.ask-ai-facts{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:11px}
.ask-ai-chip{font-size:10px;color:var(--a-ink3);padding:3px 8px;border-radius:999px;
  background:var(--a-chip);border:1px solid var(--a-line)}

/* 按钮在深浅两套里都要压住全局 .btn.ghost 的白底 */
.ask-card .ask-open{width:100%;justify-content:center;
  background:rgba(74,107,245,.10)!important;border:1px solid var(--a-line-hi)!important;
  color:#2f56d6!important;box-shadow:none}
[data-theme="dark"] .ask-card .ask-open{
  background:rgba(91,124,250,.18)!important;color:#c2d4ff!important}
.ask-card .ask-open:active{background:rgba(74,107,245,.20)!important}

/* 检索兜底卡（无 AI 时） */
.ask-card:not(.ask-ai){background:var(--a-glass);border:1px solid var(--a-line);padding:15px 16px}
.ask-tag{display:inline-block;font-size:9.5px;font-weight:800;letter-spacing:.8px;color:#0a7ea4;
  background:rgba(6,182,212,.10);border:1px solid rgba(6,182,212,.22);
  border-radius:5px;padding:3px 7px;margin-bottom:9px}
[data-theme="dark"] .ask-tag{color:#8fd8ff;background:rgba(34,211,238,.12);
  border-color:rgba(34,211,238,.25)}
.ask-t{font-size:16.5px;font-weight:800;line-height:1.45;margin:0 0 7px;color:var(--a-ink)}
.ask-s{font-size:13px;line-height:1.7;color:var(--a-ink2);margin:0 0 10px}
.ask-ul{margin:0 0 12px;padding:0;list-style:none}
.ask-ul li{position:relative;font-size:13px;line-height:1.8;color:var(--a-ink);padding-left:15px;margin-bottom:5px}
.ask-ul li::before{content:'';position:absolute;left:2px;top:10px;width:5px;height:5px;
  border-radius:50%;background:rgba(74,107,245,.55)}
.ask-facts{display:flex;flex-direction:column;gap:8px;padding:11px 12px;border-radius:11px;
  background:var(--a-chip);margin-bottom:12px}
.ask-fact{display:flex;gap:8px;font-size:12px;line-height:1.65;color:var(--a-ink2)}
.ask-fact b{flex:none;color:#3b6bff;font-weight:800}
[data-theme="dark"] .ask-fact b{color:#69a8ff}

/* ---- 提示条 ---- */
.ask-warn{display:flex;gap:9px;align-items:flex-start;padding:11px 13px;margin-bottom:14px;
  border-radius:12px;background:rgba(232,137,12,.09);border:1px solid rgba(232,137,12,.28);
  font-size:12px;line-height:1.6;color:#8a5a08}
[data-theme="dark"] .ask-warn{background:rgba(245,158,11,.10);
  border-color:rgba(245,158,11,.32);color:#e8c98d}
.ask-warn .ic{flex:none;width:15px;height:15px;color:#e8890c;margin-top:1px}

/* ---- 分区标题 ---- */
.ask-sec{display:flex;align-items:center;justify-content:space-between;margin:22px 2px 11px}
.ask-sec-t{font-size:12.5px;font-weight:800;color:var(--a-ink2);letter-spacing:.5px}
.ask-sec-n{font-size:11px;color:var(--a-ink3)}

/* ---- 相关知识点（覆盖全局 item 样式） ---- */
.ask-stage .item{background:var(--a-glass);border:1px solid var(--a-line);
  border-radius:13px;color:var(--a-ink);box-shadow:none}
.ask-stage .item .t{color:var(--a-ink)}
.ask-stage .item .d{color:var(--a-ink2)}
.ask-stage .item .meta .chip{background:var(--a-chip);color:var(--a-ink2);
  border:1px solid var(--a-line)}
.ask-stage .item .meta .chip.b{background:rgba(74,107,245,.12);color:#2f56d6}
[data-theme="dark"] .ask-stage .item .meta .chip.b{background:rgba(91,124,250,.22);color:#c5d6ff}
.ask-stage .item:active{background:rgba(74,107,245,.08)}

/* ---- 空态 / 页脚 ---- */
.ask-empty{display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:38px 20px 24px;color:var(--a-ink3)}
.ask-empty .ic{width:32px;height:32px;opacity:.5;margin-bottom:12px;color:#3b6bff}
.ask-empty-t{font-size:13.5px;font-weight:700;color:var(--a-ink2);line-height:1.6}
.ask-empty-s{font-size:11.5px;margin-top:7px;line-height:1.6;color:var(--a-ink3)}
.ask-foot{text-align:center;font-size:11px;color:var(--a-ink3);padding:22px 0 8px}

@media (max-width:768px){
  .ask-stage{margin:-14px -14px -24px}
  .ask-hero-t{font-size:21px}
}
@media (max-width:360px){
  .ask-egs-grid{grid-template-columns:1fr}
}
@media (min-width:769px){
  .ask-stage{margin:-22px -22px -36px;padding:24px 22px 40px;border-radius:18px}
}

/* ---- 顶栏 / 底栏跟随主题（不再写死深色） ---- */
body.ask-mode .topbar{
  background:color-mix(in srgb, var(--bg) 82%, transparent);
  border-bottom-color:var(--line);
}
body.ask-mode .topbar .logo{box-shadow:0 4px 16px -2px rgba(74,107,245,.45),inset 0 1px 0 rgba(255,255,255,.25)}
body.ask-mode .tabbar{background:color-mix(in srgb, var(--bg) 88%, transparent);border-top-color:var(--line)}
body.ask-mode .tabbar button.on::before{
  background:color-mix(in srgb, var(--brand) 12%, transparent);
  box-shadow:0 0 16px color-mix(in srgb, var(--brand) 22%, transparent),
             inset 0 0 0 1px color-mix(in srgb, var(--brand) 22%, transparent)}
[data-theme="dark"] body.ask-mode .topbar{background:rgba(8,12,26,.82);border-bottom-color:rgba(126,152,255,.16)}
[data-theme="dark"] body.ask-mode .tabbar{background:rgba(8,12,26,.9);border-top-color:rgba(126,152,255,.14)}
[data-theme="dark"] body.ask-mode .tabbar button{color:#6b7899}
[data-theme="dark"] body.ask-mode .tabbar button.on{color:#7ea6ff}
