/* ============================================================
   管理经营学习台 · 设计系统
   浅色 / 深色双主题 · 移动端优先 · 桌面端增强
   ============================================================ */
:root{
  --bg:#f4f5f7;
  --card:#ffffff;
  --card2:#f7f8fa;
  --ink:#151b26;
  --ink2:#586074;
  --ink3:#8b92a3;
  --line:#e7e9ee;
  --line2:#eef0f4;
  --hair:rgba(17,24,39,.07);
  --hair2:rgba(17,24,39,.13);
  --brand:#3b5bdb;
  --brand2:#7048e8;
  --brand-soft:#edf0fd;
  --brand-grad:#2b49cd;
  --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(17,24,39,.04),0 2px 8px -2px rgba(17,24,39,.05);
  --shadow-card:0 1px 1px rgba(17,24,39,.03),0 10px 28px -16px rgba(17,24,39,.18);
  --shadow:0 1px 3px rgba(17,24,39,.05),0 12px 32px -10px rgba(17,24,39,.13);
  --shadow-lg:0 2px 8px rgba(24,32,56,.08),0 24px 56px -14px rgba(24,32,56,.2);
  --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;
  --hair:rgba(255,255,255,.07);
  --hair2:rgba(255,255,255,.14);
  --brand:#7b93f7;
  --brand2:#a68fff;
  --brand-soft:#1e2848;
  --brand-grad:#4d63d6;
  --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-card:0 1px 1px rgba(0,0,0,.3),0 12px 30px -16px rgba(0,0,0,.62);
  --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:#F8CBA1;color:#2A1B10;
  display:flex;align-items:center;justify-content:center;flex:none;
  box-shadow:0 6px 16px -8px rgba(184,110,52,.45),inset 0 1px 0 rgba(255,255,255,.5)}
.logo .ic,.logo .mark{width:21px;height:21px}
.topbar h1{margin:0;font-size:17px;font-weight:700;letter-spacing:.01em;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.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:var(--brand);
  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;letter-spacing:.02em;
  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}

/* ---------- 今日打卡卡（深蓝底：半透明分层叠加，顶部高光 + 底部压暗） ---------- */
.today{
  background:#E5ECFB;color:#15213A;border-radius:22px;
  padding:18px 18px 16px;margin-bottom:16px;
  border:1px solid rgba(30,58,138,.09);
  box-shadow:0 1px 1px rgba(17,24,39,.03),0 16px 32px -24px rgba(30,58,138,.5);
}
[data-theme="dark"] .today{background:#1E2947;color:#E7ECF9;border-color:#2C3A5E;
  box-shadow:0 16px 32px -24px rgba(0,0,0,.85)}
.today-hd{display:flex;align-items:center;justify-content:space-between;gap:10px}
.today-date{font-size:11.5px;color:#5C6C8E;letter-spacing:.1em;font-variant-numeric:tabular-nums}
[data-theme="dark"] .today-date{color:#93A1C2}
.today-streak{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;
  background:rgba(30,58,138,.08);color:#27407F;padding:3px 9px;border-radius:20px;
  white-space:nowrap;letter-spacing:.02em}
[data-theme="dark"] .today-streak{background:rgba(255,255,255,.08);color:#C9D6F2}
.today-streak .ic{width:11px;height:11px;color:#E08A2B}
[data-theme="dark"] .today-streak .ic{color:#F5B04E}
.today-title{font-size:20px;font-weight:700;margin:12px 0 4px;letter-spacing:.02em;line-height:1.3;color:#15213A}
[data-theme="dark"] .today-title{color:#EDF1FA}
.today-sub{font-size:12.5px;color:#5A6A8C;line-height:1.55;letter-spacing:.01em}
[data-theme="dark"] .today-sub{color:#A6B2CC}
.today-meta{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:11px;
  font-size:11px;color:#6B7A9C;font-variant-numeric:tabular-nums;letter-spacing:.02em}
[data-theme="dark"] .today-meta{color:#8E9BB8}
.today-meta b{font-weight:600;color:#22345C}
[data-theme="dark"] .today-meta b{color:#DCE5F7}
.today-meta i{width:1px;height:9px;background:rgba(21,33,58,.16);flex:none}
[data-theme="dark"] .today-meta i{background:rgba(255,255,255,.18)}

/* 主行动做成「动作卡」：图标方块 + 主副文案 + 箭头，替代通栏白按钮 */
.action-card{display:flex;align-items:center;gap:11px;width:100%;margin-top:15px;
  padding:10px 12px;background:#fff;border:1px solid rgba(30,58,138,.09);border-radius:15px;
  text-align:left;cursor:pointer;
  box-shadow:0 2px 8px -4px rgba(30,58,138,.22);
  transition:transform .16s var(--ease),box-shadow .16s}
.action-card:hover{box-shadow:0 8px 20px -8px rgba(30,58,138,.3)}
.action-card:active{transform:scale(.985)}
.action-card .ac-ic{width:34px;height:34px;border-radius:10px;background:#eef2ff;color:#1e3a8a;
  display:flex;align-items:center;justify-content:center;flex:none}
.action-card .ac-ic .ic{width:17px;height:17px}
.action-card .ac-main{flex:1;min-width:0;display:block}
.action-card .ac-main b{display:block;font-size:14px;font-weight:600;color:#121a2e;letter-spacing:.01em;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.action-card .ac-main em{display:block;font-style:normal;font-size:11px;color:#7b87a3;margin-top:2px;letter-spacing:.01em}
.action-card .ac-go{width:15px;height:15px;color:#a3adc4;flex:none}
[data-theme="dark"] .action-card{background:#e9edf6;box-shadow:none}
[data-theme="dark"] .action-card .ac-ic{background:#dde5fa;color:#1c3470}
[data-theme="dark"] .action-card .ac-main b{color:#101a33}
[data-theme="dark"] .action-card .ac-main em{color:#5f6c88}
[data-theme="dark"] .action-card .ac-go{color:#8d99b3}
.action-card.done{background:#D7E3F8;border-color:rgba(30,58,138,.12);box-shadow:none}
.action-card.done .ac-ic{background:#fff;color:#2B49CD}
.action-card.done .ac-main b{color:#1B2C55}
.action-card.done .ac-main em{color:#5C6C8E}
.action-card.done .ac-go{color:#8FA1C4}
[data-theme="dark"] .action-card.done{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14)}
[data-theme="dark"] .action-card.done .ac-ic{background:rgba(255,255,255,.14);color:#DCE5F7}
[data-theme="dark"] .action-card.done .ac-main b{color:#EDF1FA}
[data-theme="dark"] .action-card.done .ac-main em{color:#A6B2CC}
[data-theme="dark"] .action-card.done .ac-go{color:rgba(255,255,255,.5)}

/* 轻量图标按钮（刷新等），做成一张小卡片 */
.iconbtn-card{width:32px;height:32px;border-radius:10px;border:1px solid var(--hair);
  background:var(--card);color:var(--ink2);display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:var(--shadow-sm);padding:0;
  transition:transform .16s var(--ease),border-color .16s}
.iconbtn-card:hover{border-color:var(--hair2)}
.iconbtn-card:active{transform:scale(.94)}
.iconbtn-card .ic{width:15px;height:15px}

/* ---------- 学习数据（四张数据小卡，发丝线 + 柔光） ---------- */
.ledger{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;background:none;
  border:0;box-shadow:none;margin-bottom:16px;overflow:visible}
.ledger .s{padding:13px 6px 11px;text-align:center;cursor:pointer;
  background:var(--card);border:1px solid var(--hair);border-radius:15px;box-shadow:var(--shadow-sm);
  transition:transform .16s var(--ease),border-color .16s,box-shadow .16s}
.ledger .s:hover{box-shadow:var(--shadow-card);border-color:var(--hair2)}
.ledger .s:active{transform:scale(.97)}
.ledger .s b{display:block;font-size:21px;font-weight:700;line-height:1.25;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.ledger .s span{display:block;font-size:10.5px;color:var(--ink3);margin-top:3px;letter-spacing:.1em}

/* ---------- 金句（留白引用，轻卡片） ---------- */
.quote-line{padding:14px 16px 13px;border:1px solid var(--hair);border-radius:15px;
  background:var(--card);box-shadow:var(--shadow-sm);margin:0 2px 16px}
.quote-line p{margin:0 0 6px;font-size:13.5px;line-height:1.8;color:var(--ink);letter-spacing:.01em}
.quote-line span{font-size:11px;color:var(--ink3);letter-spacing:.06em}

/* ---------- 首页布局：移动端单栏（列容器摊平，按 order 排序）/ 桌面双栏 ---------- */
.home-cols{display:flex;flex-direction:column}
.home-col{display:contents}

/* ---------- 统计条 ---------- */
.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(--hair);border-radius:18px;box-shadow:var(--shadow-card);
  overflow:hidden;margin-bottom:16px;transition:box-shadow .25s}
.kcard .hd{background:var(--tint-warm);padding:15px 16px 14px;border-bottom:1px solid var(--hair)}
.kcard .hd.cool{background:var(--tint-cool)}
.kcard .tag{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;background:transparent;
  color:var(--ink2);border:1px solid var(--hair2);padding:2.5px 9px;border-radius:20px;
  font-weight:600;letter-spacing:.08em}
.kcard .tag.cool{background:transparent;color:var(--purple);border-color:var(--hair2)}
.kcard h2{margin:10px 0 0;font-size:18px;font-weight:700;line-height:1.5;letter-spacing:.01em}
.kcard .bd{padding:14px 16px}
.kcard ul{margin:0;padding-left:18px}
.kcard li{margin-bottom:8px;color:var(--ink2);font-size:13.5px;line-height:1.75}
.kcard li b{color:var(--ink);font-weight:600}
.quote{position:relative;background:var(--card2);border:1px solid var(--hair);
  padding:12px 14px;border-radius:13px;font-size:13.5px;color:var(--ink2);margin-bottom:11px;line-height:1.8}
.quote.cool{border-color:var(--hair)}
.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}
.cont-row .btn.sm{background:var(--card2);border:1px solid var(--hair);color:var(--ink2);
  box-shadow:none;font-weight:600;padding:6px 10px;border-radius:9px;letter-spacing:.02em}

/* ---------- 新用户三步引导 ---------- */
.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;gap:10px;
  margin:22px 2px 12px;padding-bottom:9px;border-bottom:1px solid var(--hair);scroll-margin-top:14px}
.section-title h3{margin:0;font-size:13px;font-weight:700;color:var(--ink2);
  letter-spacing:.16em;line-height:1.2}
.section-title .mini{font-size:11px;color:var(--ink3);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.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(6px)}to{opacity:1;transform:none}}
#view{animation:fadeUp .28s var(--ease) both}
@media (prefers-reduced-motion:reduce){#view{animation:none}}

/* ---------- 桌面端增强 ---------- */
@media (min-width:760px){
  .wrap{padding:22px 22px 36px}
  .topbar{padding:13px 24px 12px}
  .topbar h1{font-size:19px}
  /* 今日卡横版：信息在左，按钮在右 */
  .today{display:grid;grid-template-columns:minmax(0,1fr) 258px;align-items:center;gap:20px;padding:20px 22px}
  .today-info{min-width:0}
  .action-card{margin-top:0}
  .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}
}

/* ---------- 首页：≥1024px 桌面双栏（主栏学习主线 / 侧栏数据杂项） ---------- */
@media (min-width:1024px){
  .wrap{max-width:1080px}
  .home-cols{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(310px,1fr);
    gap:0 26px;align-items:start}
  .home-col{display:flex;flex-direction:column;min-width:0}
  .home-col.main{grid-column:1}
  .home-col.side{grid-column:2}
  .home-col.side .home-lsec{margin-top:0}
  .ledger .s b{font-size:21px}
}
/* 移动端单栏：按 DOM 序重排，保证「打卡 → 数据 → 继续/引导 → 金句 → 知识点」的阅读顺序 */
@media (max-width:1023px){
  /* order 必须把所有首页块都列全：没列到的默认 0，会被顶到最前面
     （经验汇总就吃过这个亏，DOM 里在打卡后面，视觉上却跑到了页头） */
  .home-today{order:1}
  .exp-strip-card{order:2}
  .home-dash{order:3}
  .home-lsec{order:4}
  .home-ledger{order:5}
  .home-cont{order:6}
  .home-guide{order:7}
  .home-quote{order:8}
  .home-ksec{order:9}
  .home-kcard{order:10}
  .home-rsec{order:11}
  .home-reading{order:12}
  .home-drills{order:13}
  .home-feed{order:14}
}

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

@media (max-width:420px){
  .topright .sub{display:none}
  /* 小屏防挤：今日卡与数据卡收紧一档 */
  .today{padding:15px 15px 15px}
  .today-title{font-size:18px}
  .ledger{gap:7px}
  .ledger .s{padding:11px 4px 9px;border-radius:13px}
  .ledger .s b{font-size:18px}
  .ledger .s span{font-size:9.5px;letter-spacing:.06em}
  .ledger .s span{font-size:10.5px}
}

/* ---------- 减少动态效果 ---------- */
@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(--hair);border-radius:16px;background:var(--card);
  padding:13px 14px;margin-bottom:11px;cursor:pointer;box-shadow:var(--shadow-sm);
  transition:border-color .18s,box-shadow .18s,transform .18s var(--ease)}
.feed-card:hover{box-shadow:var(--shadow-card);border-color:var(--hair2)}
.feed-card:active{transform:scale(.994)}
/* 来源标签：中性底 + 色点，比整块实色更克制 */
.feed-src{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:600;
  border-radius:7px;padding:3px 8px;flex:none;letter-spacing:.06em;
  background:var(--card2);color:var(--ink2);border:1px solid var(--hair)}
.feed-src::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--dot,var(--ink3));flex:none}
/* 工厂 10 大类来源色点 */
.feed-src.s-site{--dot:#2563eb}        /* 生产现场 */
.feed-src.s-qc{--dot:#0d9488}          /* 质量管理 */
.feed-src.s-food{--dot:#dc2626}        /* 食品安全 */
.feed-src.s-equip{--dot:#7c3aed}       /* 设备管理 */
.feed-src.s-plan{--dot:#ea580c}        /* 排产交付 */
.feed-src.s-supply{--dot:#0891b2}      /* 供应链 */
.feed-src.s-cost{--dot:#b45309}        /* 成本利润 */
.feed-src.s-hr{--dot:#db2777}          /* 班组人才 */
.feed-src.s-lean{--dot:#65a30d}        /* 精益改善 */
.feed-src.s-boss{--dot:#1e293b}        /* 经营决策 */
.feed-card .ft{font-size:15.5px;font-weight:700;margin:9px 0 6px;line-height:1.55;letter-spacing:.01em}
.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:7px;font-size:13px;
  font-weight:600;color:var(--ink2);padding:12px;background:var(--card);
  border:1px solid var(--hair);border-radius:14px;box-shadow:var(--shadow-sm);cursor:pointer;
  margin-bottom:11px;letter-spacing:.02em;
  transition:border-color .18s,background .18s,transform .16s var(--ease)}
.feed-more:hover{border-color:var(--hair2);background:var(--card2)}
.feed-more:active{transform:scale(.99)}
.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%}
}

/* ---------- 数据看板（首页内联 + 全量弹层） ---------- */
.dbwrap{background:var(--card);border:1px solid var(--hair);border-radius:18px;
  box-shadow:var(--shadow-card);padding:16px 16px 12px;margin-bottom:16px}
.dbwrap-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.db-wrap-l{min-width:0}
.db-eyebrow{font-size:10.5px;letter-spacing:.16em;color:var(--ink3);font-weight:600}
.db-hero{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:7px}
.db-hero b{font-size:32px;font-weight:700;line-height:1;letter-spacing:-.02em;
  color:var(--ink);font-variant-numeric:tabular-nums}
.db-hero>span{font-size:11.5px;color:var(--ink3)}
.db-delta{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:600;
  padding:2.5px 8px;border-radius:20px;border:1px solid var(--hair);
  background:var(--card2);color:var(--ink2);white-space:nowrap}
.db-delta.up{color:#0b6b52;background:rgba(11,122,90,.08);border-color:rgba(11,122,90,.16)}
.db-delta.down{color:#96550f;background:rgba(168,98,15,.08);border-color:rgba(168,98,15,.18)}
.db-delta.solo{margin-top:7px}
[data-theme="dark"] .db-delta.up{color:#59d3ab;background:rgba(89,211,171,.12);border-color:rgba(89,211,171,.2)}
[data-theme="dark"] .db-delta.down{color:#f0b46a;background:rgba(240,180,106,.12);border-color:rgba(240,180,106,.2)}
.db-sub{font-size:11px;color:var(--ink3);margin-top:7px;font-variant-numeric:tabular-nums}

/* 30 天柱状图：发丝网格 + 均值虚线 + 今天高亮 */
.db-chart{width:100%;height:auto;display:block;margin:12px 0 2px;overflow:visible}
.db-grid{stroke:var(--hair);stroke-width:1;shape-rendering:crispEdges}
.db-ax{font-size:8px;fill:var(--ink3);font-variant-numeric:tabular-nums}
.db-bar{fill:#CBD8F6}
[data-theme="dark"] .db-bar{fill:rgba(150,175,248,.45)}
.db-bar.zero{fill:#EAEEF6}
[data-theme="dark"] .db-bar.zero{fill:rgba(233,237,246,.08)}
.db-bar.now{fill:var(--brand)}
.db-avg{stroke:var(--hair2);stroke-width:1;stroke-dasharray:3 3}
.db-avg-t{font-size:8px;fill:var(--ink3)}

/* 三格 KPI */
.db-kpis{display:grid;grid-template-columns:repeat(3,1fr);margin-top:12px;
  border-top:1px solid var(--hair);padding-top:12px}
.db-kpis>div{padding-left:12px;position:relative}
.db-kpis>div::before{content:"";display:block;width:18px;height:2px;border-radius:2px;
  background:#A9BEF4;margin-bottom:8px}
.db-kpis>div:nth-child(2)::before{background:#F3C48E}
.db-kpis>div:nth-child(3)::before{background:#96D8BE}
[data-theme="dark"] .db-kpis>div::before{background:#7E97E0}
[data-theme="dark"] .db-kpis>div:nth-child(2)::before{background:#C99A63}
[data-theme="dark"] .db-kpis>div:nth-child(3)::before{background:#6FAF96}
.db-kpis>div:first-child{padding-left:0}
.db-kpis>div+div{border-left:1px solid var(--hair)}
.db-kpis b{display:block;font-size:19px;font-weight:700;line-height:1.1;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.db-kpis span{display:block;font-size:10px;color:var(--ink3);margin-top:4px;letter-spacing:.1em}

/* 模块活跃度 */
.db-mods-hd{display:flex;align-items:center;justify-content:space-between;
  margin:16px 0 6px;font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--ink3)}
.db-mods-hd span:last-child{font-weight:400;letter-spacing:.04em;opacity:.8}
.db-mods-empty{font-size:11.5px;color:var(--ink3);padding:4px 0 2px}
.db-bar-row{display:flex;align-items:center;gap:10px;padding:6px 0}
.db-bar-row .l{width:74px;flex:none;font-size:11.5px;color:var(--ink2);display:flex;align-items:center;gap:6px}
.db-bar-row .l::before{content:"";width:6px;height:6px;border-radius:50%;flex:none;background:var(--c,#9AA3B5)}
.db-bar-row .t{flex:1;height:6px;border-radius:3px;background:var(--line2);overflow:hidden}
.db-bar-row .t i{display:block;height:100%;border-radius:3px;background:var(--c,#9AA3B5);opacity:.85}
.db-bar-row.c-quiz{--c:#8FA9F0}
.db-bar-row.c-scene{--c:#B49CF2}
.db-bar-row.c-ask{--c:#6FCFAA}
.db-bar-row.c-rv{--c:#F0B878}
.db-bar-row.c-bench{--c:#F09CB0}
[data-theme="dark"] .db-bar-row.c-quiz{--c:#8BA4E8}
[data-theme="dark"] .db-bar-row.c-scene{--c:#A995E6}
[data-theme="dark"] .db-bar-row.c-ask{--c:#63C29E}
[data-theme="dark"] .db-bar-row.c-rv{--c:#DDA76A}
[data-theme="dark"] .db-bar-row.c-bench{--c:#DB8FA3}
.db-bar-row b{width:46px;flex:none;text-align:right;font-size:12px;font-weight:600;color:var(--ink);
  font-variant-numeric:tabular-nums}
.db-bar-row b em{font-style:normal;font-size:9.5px;color:var(--ink3);margin-left:2px}

/* 看板按钮 */
.db-all{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:14px;
  padding:9px;border:0;border-radius:12px;background:var(--card2);color:var(--ink2);
  font-size:12px;font-weight:600;letter-spacing:.02em;cursor:pointer;
  transition:background .16s,color .16s}
.db-all:hover{background:var(--line2);color:var(--ink)}
.db-all .ic{width:13px;height:13px}

/* 空态 */
.dbwrap-empty .db-empty-box{margin-top:14px;border:1px dashed var(--hair2);border-radius:14px;
  padding:22px 16px;text-align:center;background:var(--card2)}
.dbwrap-empty .db-empty-box .ic{width:22px;height:22px;color:var(--ink3);opacity:.75}
.dbwrap-empty .db-empty-box p{margin:8px 0 0;font-size:12px;color:var(--ink2);line-height:1.6}
.dbwrap-empty .db-empty-box span{display:block;font-size:10.5px;color:var(--ink3);margin-top:4px}
.dbwrap-empty .db-all{margin-top:12px}

/* 骨架 */
.dbwrap-load{min-height:132px;display:flex;flex-direction:column;gap:12px;justify-content:center}
.db-skel{display:block;height:13px;width:70%;border-radius:7px;
  background:linear-gradient(90deg,var(--line2),var(--line),var(--line2));
  background-size:200% 100%;animation:skshift 1.2s infinite}
.db-skel.short{width:38%;height:10px}
@keyframes skshift{to{background-position:-200% 0}}

/* ---------- 看板弹层 ---------- */
.dbs-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}
.db-sec{display:flex;align-items:baseline;justify-content:space-between;gap:8px;
  margin:20px 0 9px;padding-bottom:7px;border-bottom:1px solid var(--hair);
  font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--ink3)}
.db-sec em{font-style:normal;font-size:10px;letter-spacing:.04em;opacity:.8}
.db-panel{background:var(--card);border:1px solid var(--hair);border-radius:14px;padding:12px}
.db-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.db-st{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--hair);
  border-radius:14px;padding:14px 12px 11px}
.db-st::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--tone,#E7EAF2)}
.db-st.t-blue{--tone:#A9BEF4}
.db-st.t-violet{--tone:#C3B0F5}
.db-st.t-green{--tone:#96D8BE}
.db-st.t-amber{--tone:#F3C48E}
.db-st.t-rose{--tone:#F2B3C2}
[data-theme="dark"] .db-st.t-blue{--tone:#6F86C9}
[data-theme="dark"] .db-st.t-violet{--tone:#8B78C2}
[data-theme="dark"] .db-st.t-green{--tone:#5D9E86}
[data-theme="dark"] .db-st.t-amber{--tone:#B98B57}
[data-theme="dark"] .db-st.t-rose{--tone:#B87F8D}
.db-st b{display:block;font-size:22px;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.15}
.db-st b em{font-style:normal;font-size:10px;font-weight:400;color:var(--ink3);margin-left:3px}
.db-st span{display:block;font-size:10.5px;color:var(--ink3);margin-top:5px;letter-spacing:.08em}
.db-st i{display:block;font-style:normal;font-size:10px;color:var(--ink3);opacity:.72;margin-top:3px}

/* 热力图 */
.db-heats{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
.db-heat{aspect-ratio:1;border-radius:4px;background:var(--line2);display:block}
.db-heat.l1{background:#E6ECFB}
.db-heat.l2{background:#C8D7F8}
.db-heat.l3{background:#9CB6F2}
.db-heat.l4{background:#5F7FE8}
[data-theme="dark"] .db-heat.l1{background:rgba(123,147,247,.22)}
[data-theme="dark"] .db-heat.l2{background:rgba(123,147,247,.42)}
[data-theme="dark"] .db-heat.l3{background:rgba(123,147,247,.66)}
[data-theme="dark"] .db-heat.l4{background:#6E8CF0}
.db-heat-lg{grid-column:1/-1;display:flex;align-items:center;justify-content:flex-end;gap:4px;
  margin-top:4px;font-size:9px;color:var(--ink3)}
.db-heat-lg i{width:8px;height:8px;border-radius:2px;display:block;background:var(--line2)}
.db-heat-lg i.l1{background:#E6ECFB}
.db-heat-lg i.l2{background:#C8D7F8}
.db-heat-lg i.l3{background:#9CB6F2}
.db-heat-lg i.l4{background:#5F7FE8}
[data-theme="dark"] .db-heat-lg i.l1{background:rgba(123,147,247,.22)}
[data-theme="dark"] .db-heat-lg i.l2{background:rgba(123,147,247,.42)}
[data-theme="dark"] .db-heat-lg i.l3{background:rgba(123,147,247,.66)}
[data-theme="dark"] .db-heat-lg i.l4{background:#6E8CF0}

/* 动态 */
.db-feed{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--hair)}
.db-feed:last-child{border-bottom:0;padding-bottom:2px}
.db-feed-dot{width:6px;height:6px;border-radius:50%;margin-top:6px;flex:none;background:var(--ink3)}
.db-feed-dot.quiz{background:#3b5bdb}
.db-feed-dot.scene{background:#7048e8}
.db-feed-dot.ask{background:#0ca678}
.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:12.5px;color:var(--ink);line-height:1.5}
.db-feed-m{font-size:10.5px;color:var(--ink3);margin-top:2px}
.db-empty{text-align:center;padding:26px 10px;color:var(--ink3);font-size:12.5px}
.db-foot{text-align:center;margin-top:16px;font-size:11px;color:var(--ink3)}
.db-actions{display:flex;justify-content:center;margin-top:10px}
.db-loading{text-align:center;padding:42px 0;color:var(--ink2);font-size:13.5px}
.db-loading svg{width:30px;height:30px;margin-bottom:8px;color:var(--ink3)}

/* ---------- 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)}
/* 搜索跳转定位到的命中页：高亮边框 + 主题色底，scroll-margin 防被顶栏挡住 */
.ppt-slide.ppt-cur{border:2px solid var(--brand);border-radius:var(--r-sm);
  background:var(--brand-soft);scroll-margin-top:16px}
.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)}
/* 全文搜索：输入框 + 结果摘要 + 命中页卡片（点击直达该页） */
.ppt-search{margin-bottom:10px}
.ppt-search input{width:100%;box-sizing:border-box;border:1px solid var(--line);
  border-radius:var(--r-sm);padding:9px 12px;font-size:14px;font-family:inherit;
  background:var(--card2);color:var(--ink);-webkit-appearance:none;appearance:none}
.ppt-search input:focus{outline:none;border-color:var(--brand)}
.ppt-res-h{font-size:12px;color:var(--ink2);padding:2px 2px 10px;font-weight:700}
.ppt-res-p{padding:8px 10px;margin:6px 0;border:1px solid var(--line2);
  border-radius:var(--r-sm);background:var(--card2);cursor:pointer}
.ppt-res-p:active{opacity:.65}
.ppt-res-ph{font-size:12px;font-weight:800;color:var(--brand);margin-bottom:2px}
.ppt-res-pb{font-size:12.5px;line-height:1.6;color:var(--ink)}
.ppt-res-pb mark,.ppt-slide-b mark{background:#ffe58a;color:#182030;
  padding:0 1px;border-radius:2px}
[data-theme="dark"] .ppt-res-pb mark,[data-theme="dark"] .ppt-slide-b mark{
  background:#8a6d1f;color:#fff}

/* ---------- 问答专区（科技风 · 跟随深浅主题） ---------- */
/* 用变量驱动两套配色：浅色下是「浅蓝玻璃 + 网格」，深色下是「深空舱」。
   早先这里写死深色，结果右上角的主题按钮点了没反应，用户以为坏了。 */
.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}


/* ---------- 骨架屏：替代「加载中…」转圈，让等待期间页面有结构 ---------- */
.sk-wrap{padding:2px 0}
.sk{background:linear-gradient(90deg,var(--line2) 25%,var(--line) 37%,var(--line2) 63%);
    background-size:400% 100%;animation:sk-shine 1.4s ease infinite;border-radius:12px}
@keyframes sk-shine{0%{background-position:100% 50%}100%{background-position:0 50%}}
@media (prefers-reduced-motion:reduce){.sk{animation:none;background:var(--line2)}}


/* ---------- 搜索：关键词高亮与历史 ---------- */
mark{background:rgba(255,205,60,.45);color:inherit;border-radius:3px;padding:0 1px}
[data-theme="dark"] mark{background:rgba(255,205,60,.28)}
.khint{display:flex;gap:6px;flex-wrap:wrap;margin:-2px 2px 10px}
.kchip{border:1px solid var(--line);background:var(--card);color:var(--ink2);
       font-size:12px;padding:5px 11px;border-radius:14px;transition:all .18s}
.kchip:active{transform:scale(.96);background:var(--brand-soft);color:var(--brand)}


/* ============================================================
   离线提示条：断网时置顶公示「看的是缓存」，别把旧数据当新的
   ============================================================ */
#offline-banner{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:center;gap:7px;
  height:32px;padding:0 14px;
  background:var(--amber-soft);color:var(--amber);
  font-size:12.5px;font-weight:700;letter-spacing:.2px;
  border-bottom:1px solid rgba(232,137,12,.22);
  transform:translateY(-100%);transition:transform .28s var(--ease);
  pointer-events:none;
}
#offline-banner.on{transform:translateY(0)}
#offline-banner .ob-dot{width:7px;height:7px;border-radius:50%;background:var(--amber);flex:none;
  animation:ob-blink 1.6s ease infinite}
@keyframes ob-blink{50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){#offline-banner{transition:none}#offline-banner .ob-dot{animation:none}}

/* ============================================================
   PWA 安装引导：Android 安装卡片 / iOS 三步图文
   ============================================================ */
.pwa-card{
  position:fixed;left:12px;right:12px;bottom:calc(84px + var(--safe-b));z-index:70;
  display:flex;align-items:center;gap:12px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow);padding:13px 14px;
  transform:translateY(140%);transition:transform .34s var(--ease);
}
.pwa-card.in{transform:translateY(0)}
.pwa-card-b{flex:1;min-width:0}
.pwa-card-t{font-size:14px;font-weight:800;color:var(--ink)}
.pwa-card-d{font-size:11.5px;color:var(--ink2);margin-top:2px;line-height:1.5}
.pwa-card-a{display:flex;gap:8px;flex:none}

.pwa-ios{
  position:fixed;inset:0;z-index:85;display:flex;align-items:flex-end;justify-content:center;
  background:var(--mask);opacity:0;transition:opacity .25s var(--ease);
}
.pwa-ios.in{opacity:1}
.pwa-ios-card{
  width:100%;max-width:460px;margin:0 10px calc(12px + var(--safe-b));
  background:var(--card);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);
  padding:20px 20px calc(14px + var(--safe-b));
  transform:translateY(24px);transition:transform .28s var(--ease);
}
.pwa-ios.in .pwa-ios-card{transform:translateY(0)}
.pwa-ios-t{font-size:16px;font-weight:800;margin-bottom:12px}
.pwa-ios-steps{margin:0;padding:0;list-style:none;counter-reset:ios}
.pwa-ios-steps li{
  counter-increment:ios;position:relative;padding:9px 0 9px 34px;
  font-size:13.5px;color:var(--ink2);line-height:1.6;border-bottom:1px solid var(--line2);
}
.pwa-ios-steps li:last-child{border-bottom:0}
.pwa-ios-steps li::before{
  content:counter(ios);position:absolute;left:0;top:9px;
  width:22px;height:22px;border-radius:50%;background:var(--brand-soft);color:var(--brand);
  font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;
}
.pwa-ios-steps b{color:var(--ink)}
.pwa-ios-ic{width:15px;height:15px;display:inline-block;vertical-align:-2.5px;color:var(--brand)}
.pwa-ios-a{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
@media (prefers-reduced-motion:reduce){.pwa-card,.pwa-ios,.pwa-ios-card{transition:none}}

/* ============================================================
   学习周报：周一开周，本周 vs 上周
   ============================================================ */
.wk-range{font-size:12px;color:var(--ink3);font-weight:600;margin:-4px 2px 12px}
.wk-cmp{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 2px 12px}
.wk-cmp-chip{
  display:inline-flex;align-items:center;gap:5px;
  background:var(--card);border:1px solid var(--line);border-radius:14px;
  padding:6px 11px;font-size:12px;color:var(--ink2);font-weight:600;
}
.wk-cmp-chip b{font-size:13px;color:var(--ink)}
.wk-cmp-chip i{font-style:normal;font-weight:800}
.wk-cmp-chip .up{color:var(--brand)}
.wk-cmp-chip .down{color:var(--ink3)}
.wk-cols{display:flex;align-items:flex-end;gap:6px;height:104px;padding:4px 2px 0}
.wk-col{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px;min-width:0}
.wk-col i{display:block;width:100%;max-width:26px;min-height:2px;border-radius:6px 6px 3px 3px;
  background:var(--brand-grad);opacity:.9}
.wk-col.zero i{background:var(--line);opacity:1}
.wk-col u{text-decoration:none;font-size:9.5px;color:var(--ink3);font-weight:700}
.wk-col b{font-size:9px;color:var(--ink3);font-weight:600}
.wk-trend{display:flex;gap:5px;flex-wrap:wrap}
.wk-trend-i{
  flex:1;min-width:38px;background:var(--card2);border:1px solid var(--line2);
  border-radius:var(--r-xs);padding:6px 4px;text-align:center;
}
.wk-trend-i b{display:block;font-size:13px;font-weight:800;color:var(--brand)}
.wk-trend-i span{display:block;font-size:9px;color:var(--ink3);margin-top:1px}
.wk-quote{
  background:var(--tint-warm);border:1px solid var(--line);
  border-radius:var(--r-md);padding:13px 14px;font-size:13px;line-height:1.75;color:var(--ink2);
}
.wk-quote .wk-quote-t{font-size:12px;font-weight:800;color:var(--ink);margin-bottom:6px;
  display:flex;align-items:center;gap:6px}
.wk-quote p{margin:0 0 4px}
.wk-quote p:last-child{margin-bottom:0}
.wk-foot{display:flex;gap:8px;margin-top:14px}

/* ---- 问答：评价条 & 现场经验卡 ---- */
.ask-rate{display:flex;align-items:center;gap:8px;margin:10px 2px 2px;flex-wrap:wrap}
.ask-rate-t{font-size:12px;color:var(--a-ink3)}
.ask-rate-b{border:1px solid var(--a-line);background:transparent;color:var(--a-ink2);
  font-size:12px;padding:5px 12px;border-radius:999px;cursor:pointer;transition:.15s}
.ask-rate-b:hover{border-color:var(--a-line-hi)}
.ask-rate-b.on{background:var(--a-glow);border-color:transparent;color:#fff;font-weight:700}
.ask-rate-tip{font-size:11.5px;color:var(--a-ink3)}
.ask-case .d{line-height:1.55}
.ask-case .t{font-weight:800}

/* ---- 经验汇总 ---- */
.exp-thumbs{display:flex;gap:6px;margin-top:9px;align-items:center}
.exp-thumbs img{width:58px;height:58px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.exp-more{font-size:11px;color:var(--ink3);padding-left:2px}
.exp-answer p{margin:0 0 10px;line-height:1.78;font-size:14px}
.exp-imgs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:12px}
.exp-imgs img{width:100%;border-radius:12px;border:1px solid var(--line);display:block}
.exp-files{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.exp-file{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--line);
  border-radius:12px;color:var(--ink);text-decoration:none;font-size:13px;word-break:break-all}
.exp-file svg{width:18px;height:18px;flex:none;color:var(--brand)}
.tabbar button{font-size:10px;padding:5px 0 4px}

/* ---- 首页：经验汇总横向滚动条 ---- */
.btn.xs{padding:5px 10px;font-size:11.5px;border-radius:999px}
.exp-strip-card{margin-bottom:12px}
.exp-strip-hd{display:flex;align-items:center;gap:8px;margin:0 2px 8px}
.exp-strip-hd b{font-size:14px;font-weight:800}
.exp-strip-hd .mini{flex:1;color:var(--ink3)}
.exp-strip{display:flex;gap:9px;overflow-x:auto;scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;padding:2px 2px 6px;scrollbar-width:none}
.exp-strip::-webkit-scrollbar{display:none}
.exp-chip{flex:0 0 76%;max-width:420px;scroll-snap-align:start;background:var(--card);
  border:1px solid var(--line);border-radius:14px;padding:11px 12px;box-shadow:var(--shadow-sm)}
.exp-chip .t{font-size:13.5px;font-weight:800;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.exp-chip .d{font-size:12px;color:var(--ink3);margin-top:5px;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.exp-chip .meta{margin-top:8px;display:flex;gap:6px;align-items:center}
.exp-chip.empty{opacity:.65}
.exp-chip.seen{opacity:.72}

/* ---- 记一条经验：语音 / 拍照 / 文件识别 ---- */
.ex-lab{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ex-lab label{margin:0}
.ex-mic{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);
  background:var(--card);color:var(--ink2);font-size:12px;padding:4px 10px;border-radius:999px;
  cursor:pointer;transition:.15s}
.ex-mic svg{width:14px;height:14px}
.ex-mic.on{background:#e8473f;border-color:#e8473f;color:#fff;animation:micPulse 1.2s infinite}
@keyframes micPulse{0%,100%{box-shadow:0 0 0 0 rgba(232,71,63,.35)}50%{box-shadow:0 0 0 6px rgba(232,71,63,0)}}
.ex-tools{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}
.ex-tool{display:flex;align-items:center;justify-content:center;gap:5px;padding:11px 4px;
  border:1px dashed var(--line);border-radius:12px;background:var(--card2);color:var(--ink2);
  font-size:12.5px;cursor:pointer;transition:.15s}
.ex-tool:hover{border-color:var(--brand);color:var(--brand)}
.ex-tool svg{width:17px;height:17px}
.ex-hint{font-size:11.5px;color:var(--ink3);min-height:16px;margin-bottom:2px}
.ex-hint.warn{color:#c0392b}
.ex-thumbs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ex-thumb{position:relative;aspect-ratio:1/1;border-radius:11px;overflow:hidden;border:1px solid var(--line)}
.ex-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ex-x{position:absolute;top:2px;right:2px;width:19px;height:19px;border-radius:50%;border:0;
  background:rgba(0,0,0,.55);color:#fff;font-size:13px;line-height:1;cursor:pointer;padding:0}
.ex-filelist{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ex-fileitem{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--ink2);
  background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:7px 9px}
.ex-fileitem span{flex:1;word-break:break-all}
.ex-fileitem svg{width:15px;height:15px;flex:none;color:var(--brand)}
.ex-fileitem .ex-x{position:static;background:transparent;color:var(--ink3);width:18px;height:18px}
.ex-cat-tip{font-size:11.5px;color:var(--ink3);margin-top:5px}
.ex-ocr{position:absolute;left:2px;bottom:2px;width:20px;height:20px;border-radius:6px;border:0;
  background:rgba(30,58,138,.78);color:#fff;font-size:11px;line-height:1;cursor:pointer;padding:0}
.ex-ocr:hover{background:var(--brand)}

/* ---- 复习横幅（首页） ---- */
.rv-banner{display:flex;align-items:center;gap:9px;margin:0 0 12px;padding:12px 14px;
  border-radius:14px;background:linear-gradient(90deg,rgba(232,71,63,.08),rgba(232,71,63,.02));
  border:1px solid rgba(232,71,63,.22);cursor:pointer;transition:.15s}
.rv-banner:active{transform:scale(.99)}
.rv-banner .rv-ic{width:26px;height:26px;border-radius:9px;background:#e8473f;color:#fff;
  display:flex;align-items:center;justify-content:center;flex:none}
.rv-banner .rv-ic svg{width:15px;height:15px}
.rv-banner .rv-t{flex:1;font-size:13.5px;color:var(--ink)}
.rv-banner .rv-t b{color:#e8473f;font-size:16px;padding:0 2px}
.rv-banner .rv-go{font-size:12px;color:#e8473f;font-weight:700}

/* ---- 经验：按设备速查 ---- */
.eq-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.eq-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;
  padding:13px 14px;border:1px solid var(--line);border-radius:14px;background:var(--card);
  box-shadow:var(--shadow-sm);cursor:pointer;text-align:left;transition:.15s}
.eq-card:active{transform:scale(.98)}
.eq-card b{font-size:13.5px;font-weight:800;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.eq-card span{font-size:11.5px;color:var(--ink3)}

/* ---- 提问页：输入框吸顶，答案在下面滚 ---- */
.ask-topbar{position:sticky;top:0;z-index:20;padding:8px 0 9px;margin:-6px 0 8px;
  background:linear-gradient(180deg,var(--bg) 76%,rgba(255,255,255,0))}
html[data-theme="dark"] .ask-topbar{background:linear-gradient(180deg,var(--bg) 76%,rgba(0,0,0,0))}
.ask-topbar .ask-inline{margin:0}
.ask-card.ask-free{border-color:rgba(232,71,63,.28)}
.ask-card.ask-free .ask-ai-mark{background:#e8473f}
.ask-free-tip{margin:10px 0 2px;padding:10px 12px;border-radius:11px;
  background:rgba(232,71,63,.06);color:var(--ink2);font-size:12px;line-height:1.7}
.eq-card.dev{border-left:3px solid #e8473f}

/* ---- 设备经验：按系统分类的小标题 ---- */
.sec-title{display:flex;align-items:center;gap:8px;margin:16px 2px 8px;
  font-size:12.5px;font-weight:800;color:var(--ink2);letter-spacing:.3px}
.sec-title::before{content:"";width:3px;height:13px;border-radius:2px;background:#e8473f}
.sec-title span{margin-left:auto;font-size:11px;font-weight:500;color:var(--ink3)}

/* 说明书条目的手册编号（卡片标题前的小号角标，和纸质手册对照用） */
.dev-no{display:inline-block;margin-right:3px;padding:0 4px;border-radius:4px;
  background:var(--brand-soft);color:var(--brand);font-size:11px;font-weight:800;
  line-height:16px;vertical-align:1px}

/* ---- 经验页：设备知识独立模块（不跟分类按钮挤一排） ---- */
.exp-mod{display:flex;align-items:center;gap:11px;width:100%;margin:12px 0 6px;
  padding:12px 14px;border:1px solid var(--line);border-radius:14px;
  background:var(--card,#fff);text-align:left;cursor:pointer;
  box-shadow:0 1px 2px rgba(20,30,60,.04);transition:transform .12s}
.exp-mod:active{transform:scale(.985)}
.exp-mod-ic{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;
  background:rgba(232,71,63,.10);color:#e8473f}
.exp-mod-ic svg{width:19px;height:19px}
.exp-mod-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.exp-mod-tx b{font-size:14px;font-weight:700;color:var(--ink)}
.exp-mod-tx i{font-style:normal;font-size:11px;line-height:1.4;color:var(--ink3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.exp-mod-num{flex:none;font-size:17px;font-weight:800;color:#e8473f;font-variant-numeric:tabular-nums}
.exp-mod-num i{font-style:normal;font-size:10px;font-weight:500;color:var(--ink3);margin-left:1px}
.exp-mod-go{flex:none;color:var(--ink3);font-size:19px;line-height:1;margin-left:-2px}

/* 二级页返回条：只有「返回」和一个次要跳转，不再用一排筛选按钮 */
.exp-topbar2{display:flex;align-items:center;justify-content:space-between;
  gap:8px;margin:4px 2px 10px}

/* 「全部」里设备经验只露 5 条，剩下的收进设备模块 */
.exp-more-dev{display:block;width:100%;margin:2px 0 14px;padding:12px;
  border:1px dashed var(--line);border-radius:12px;background:transparent;
  color:var(--ink2);font-size:12.5px;text-align:center;cursor:pointer}
.exp-more-dev:active{background:var(--brand-soft);color:var(--brand)}

/* 打卡卡里的「顺手记」：一行输入 + 一个按钮，不打断打卡流程。
   打卡卡本身浅色是淡蓝底、深色是深蓝底，两套都要给，别只写白色系。 */
.today-quick{display:flex;gap:8px;margin-top:10px}
.today-quick input{flex:1;min-width:0;height:38px;padding:0 12px;border-radius:10px;
  border:1px solid rgba(30,58,138,.18);background:rgba(255,255,255,.88);color:#15213A;
  font-size:12.5px;outline:none}
.today-quick input::placeholder{color:rgba(21,33,58,.45)}
.today-quick input:focus{background:#fff;border-color:rgba(59,91,219,.55)}
.today-quick button{flex:none;height:38px;padding:0 16px;border-radius:10px;border:0;
  background:#15213A;color:#fff;font-size:12.5px;font-weight:800;cursor:pointer}
.today-quick button:active{transform:scale(.97)}
[data-theme="dark"] .today-quick input{background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.20);color:#E7ECF9}
[data-theme="dark"] .today-quick input::placeholder{color:rgba(231,236,249,.55)}
[data-theme="dark"] .today-quick input:focus{background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.38)}
[data-theme="dark"] .today-quick button{background:#fff;color:#15213A}

/* 问答页「存成经验」按钮 */
.ask-rate-b.save{margin-left:auto;border-color:var(--brand);color:var(--brand);font-weight:700}
.ask-rate-b.save:active{background:var(--brand-soft)}

/* ---- 问答：设备问题的「可能原因 + 处理步骤」 ---- */
.ai-block{margin:2px 0 12px;padding:12px 13px;border-radius:12px;
  background:var(--card-soft,rgba(20,30,60,.03));border:1px solid var(--line)}
.ai-block-h{display:flex;align-items:center;gap:7px;margin-bottom:8px;
  font-size:12.5px;font-weight:800;color:var(--ink)}
.ai-dot{width:7px;height:7px;border-radius:50%;flex:none}
.ai-dot.warn{background:#e8a33f}
.ai-dot.ok{background:#2fa36b}
.ai-cause,.ai-steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:7px}
.ai-cause li,.ai-steps li{font-size:12.5px;line-height:1.65;color:var(--ink2)}
.ai-steps li{font-weight:500;color:var(--ink)}
.ai-steps li::marker{font-weight:800;color:var(--brand)}
.ask-rate-b.fix{border-color:#e8a33f;color:#b4741f;font-weight:700}
.ask-rate-b.fix:active{background:rgba(232,163,63,.12)}

/* 设备问答第三块：判定标准 */
.ai-dot.info{background:#4a7bd0}
.ai-judge{font-size:12.5px;line-height:1.7;color:var(--ink2)}

/* 信息不足时反问：跟「判定标准」区分开，用虚线弱化，别让人以为是结论 */
.ai-block.ask-more{background:transparent;border-style:dashed}
.ai-block.ask-more .ai-judge{color:var(--ink3)}
.ai-dot{position:relative}

/* 设备问答的机型 / 手册编号标签：一眼看出「认的哪台机、依据哪条」。
   编号用等宽字，师傅对着纸质手册翻页码时好找。 */
.ask-ai-chip.dev{color:#2f56d6;background:rgba(74,107,245,.10);
  border-color:rgba(74,107,245,.26);font-weight:700}
.ask-ai-chip.ref{color:#0a7a4a;background:rgba(47,163,107,.10);
  border-color:rgba(47,163,107,.26);font-weight:700;letter-spacing:.3px}
.ask-ai-chip.warn{color:#b4741f;background:rgba(232,163,63,.12);
  border-color:rgba(232,163,63,.30);font-weight:700}
[data-theme="dark"] .ask-ai-chip.dev{color:#a9c0ff;background:rgba(91,124,250,.18);
  border-color:rgba(91,124,250,.38)}
[data-theme="dark"] .ask-ai-chip.ref{color:#7fdcb0;background:rgba(47,163,107,.16);
  border-color:rgba(47,163,107,.36)}
[data-theme="dark"] .ask-ai-chip.warn{color:#f0c07a;background:rgba(232,163,63,.16);
  border-color:rgba(232,163,63,.36)}
