/* ============================================================
   数学游戏教学平台 · 前端公共样式  v2.2（Apple 式设计系统）
   蓝系学习主题（对齐游戏内页总册）· 浅色 · 令牌驱动（改值不改名）
   P0 令牌+基础组件 / P1 导航+反馈+动效 / v2.2 橙系→蓝系
   ============================================================ */
:root{
  /* ── 中性冷调基底（对齐游戏总册 --bg/--ink/--mut/--line）── */
  --bg:#F2F5FB; --card:#FFFFFF; --ink:#1F2A44; --sub:#7B8499; --faint:#A6AEC0;
  --line:#E2E8F2; --line2:#EEF2F8;
  /* ── 品牌天蓝阶（对齐游戏总册 --acc:#0EA5E9，sky 系）── */
  --brand:#0EA5E9; --brand-2:#38BDF8; --brand-deep:#0369A1; --brand-soft:#E0F2FE;
  --brand-50:#F0F9FF; --brand-100:#E0F2FE; --brand-200:#BAE6FD; --brand-300:#7DD3FC; --brand-400:#38BDF8; --brand-600:#0284C7;
  /* ── 星星/成就金（对齐游戏总册 --gold:#F59E0B）── */
  --gold:#F59E0B; --gold-deep:#B45309; --gold-soft:#FFFBEB;
  /* ── 语义色（红=错 绿=对，视觉对齐游戏总册 opt.no/opt.ok；仅作答反馈）── */
  --ok:#E11D48; --ok-deep:#BE123C; --ok-soft:#FEF0F3;
  --bad:#16A34A; --bad-deep:#15803D; --bad-soft:#ECFDF3;
  /* ── 功能色 ── */
  --blue:#1D4ED8; --blue-soft:#EEF4FF; --purple:#6366F1; --teal:#17856B;
  /* ── 圆角（苹果连续曲线近似）── */
  --radius:18px; --radius-s:12px; --radius-xs:8px; --radius-full:999px;
  /* ── 阴影：三层（静止 / 抬升 / 弹层），冷调黑 ── */
  --shadow:0 1px 2px rgba(15,23,42,.05),0 3px 10px rgba(15,23,42,.06);
  --shadow-lift:0 4px 12px rgba(15,23,42,.08),0 14px 32px rgba(15,23,42,.10);
  --shadow-modal:0 0 0 1px rgba(15,23,42,.04),0 24px 64px rgba(15,23,42,.18);
  /* ── 字体阶梯 ── */
  --fs-caption:11px; --fs-footnote:12px; --fs-sub:13px; --fs-body:15px; --fs-headline:17px; --fs-title:20px; --fs-display:28px;
  /* ── 间距 4pt 网格 ── */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px; --sp-8:32px; --sp-10:40px;
  /* ── 动效 ── */
  --ease-spring:cubic-bezier(.34,1.56,.64,1); --ease-out:cubic-bezier(.21,1.02,.73,1); --ease-std:cubic-bezier(.4,0,.2,1);
  --dur-micro:150ms; --dur-base:220ms; --dur-panel:260ms; --dur-modal:300ms;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:var(--brand-deep);text-decoration:none}
a:hover{text-decoration:underline}
button{font-family:inherit}
:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(14,165,233,.3)}

/* ── 顶栏：天蓝毛玻璃 ── */
.topbar{position:sticky;top:0;z-index:60;background:linear-gradient(120deg,rgba(14,165,233,.94),rgba(56,189,248,.9));-webkit-backdrop-filter:saturate(1.5) blur(18px);backdrop-filter:saturate(1.5) blur(18px);color:#fff;padding:10px 16px;min-height:44px;display:flex;align-items:center;gap:10px;box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 2px 10px rgba(2,80,120,.08)}
.topbar .logo{font-weight:800;font-size:19.2px;letter-spacing:.3px}
.topbar .logo small{font-weight:400;opacity:.85;font-size:13.2px;margin-left:6px}
.topbar .sp{flex:1}
.topbar a{color:#fff;opacity:.94}
.topbar a:hover{opacity:1;text-decoration:none}
.topbar .me{font-size:15.6px;background:rgba(255,255,255,.18);border-radius:99px;padding:2px 12px}

/* ── 布局 ── */
.wrap{max-width:1100px;margin:0 auto;padding:20px 20px 64px}
.wrap.wide{max-width:1280px}
.grid{display:grid;gap:16px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:16px}
.cols-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}
.card h3{margin:0 0 10px;font-size:19.2px;display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.card h3 .sub{font-weight:400;font-size:14.4px;color:var(--sub)}
.card + .card{margin-top:16px}
.card.pad0{padding:0}
.muted{color:var(--sub);font-size:15.6px}
.big{font-size:31.2px;font-weight:800;line-height:1.2}
.num{font-variant-numeric:tabular-nums}
.center{text-align:center}
.right{text-align:right}
.rowline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.rowline.gap6{gap:6px}
.col{display:flex;flex-direction:column;gap:6px}
.grow{flex:1}
.spacer{flex:1}

/* ── 标签 pill ── */
.tag{display:inline-block;background:var(--brand-soft);color:var(--brand-deep);border-radius:99px;padding:2px 11px;font-size:14.4px;margin-right:6px;white-space:nowrap}
.tag.gray{background:#EEF1F6;color:#7B8499}
.tag.green{background:var(--bad-soft);color:var(--bad-deep)}
.tag.red{background:var(--ok-soft);color:var(--ok-deep)}
.tag.blue{background:var(--blue-soft);color:#2257C4}
.tag.purple{background:#F4EBF8;color:#7A3B95}
.tag.dim{background:transparent;border:1px dashed var(--line);color:var(--sub)}
.pill{display:inline-block;background:#EEF1F6;border-radius:99px;padding:0 10px;font-size:14.4px}

/* ── 按钮 ── */
.btn{background:var(--brand);color:#fff;border:none;border-radius:var(--radius-s);padding:8px 18px;font-size:17.4px;cursor:pointer;font-weight:600;min-height:36px;transition:transform var(--dur-micro) var(--ease-out),filter .15s,box-shadow .15s}
.btn:hover{filter:brightness(1.05)}
.btn:active{transform:scale(.97);filter:brightness(.96)}
.btn.ghost{background:#fff;color:var(--brand-deep);border:1.5px solid var(--brand)}
.btn.sm{padding:4px 12px;font-size:15px;border-radius:10px;min-height:30px}
.btn.min{padding:2px 9px;font-size:14.4px;border-radius:8px}
.btn.danger{background:#fff;color:var(--ok-deep);border:1.5px solid #EFC9C4}
.btn.danger.solid{background:var(--ok-deep);color:#fff;border:none}
.btn.gray{background:#64748B;color:#fff}
.btn.ok{background:var(--bad);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed}

/* ── 表单 ── */
input,select,textarea{width:100%;border:1.5px solid var(--line);border-radius:var(--radius-s);padding:9px 12px;font-size:16.8px;font-family:inherit;background:#fff;color:var(--ink);transition:border-color var(--dur-micro) var(--ease-std),box-shadow var(--dur-micro) var(--ease-std)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(14,165,233,.16)}
textarea{min-height:64px;resize:vertical}
label{font-size:15px;color:var(--sub);display:block;margin:10px 0 3px;font-weight:600}
label:first-child{margin-top:0}
.field .hint{font-size:13.8px;color:var(--sub);margin-top:2px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.form-grid .full{grid-column:1/-1}
.chk{display:inline-flex;align-items:center;gap:5px;font-size:15.6px;cursor:pointer;user-select:none}
.chk input{width:auto}
.switch{position:relative;width:40px;height:22px;flex:none}
.switch input{opacity:0;width:0;height:0}
.switch i{position:absolute;inset:0;background:#D8D0C2;border-radius:99px;transition:.2s}
.switch i:before{content:'';position:absolute;width:16px;height:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}
.switch input:checked + i{background:var(--brand)}
.switch input:checked + i:before{transform:translateX(18px)}
.switch input:focus-visible + i{box-shadow:0 0 0 3px rgba(14,165,233,.3)}

/* ── 分段控件式页面 Tab 导航 ── */
.tabbar{display:flex;gap:4px;flex-wrap:wrap;background:#EEF2F8;border-radius:var(--radius-s);padding:4px;box-shadow:inset 0 1px 2px rgba(15,23,42,.05);margin-bottom:16px;position:sticky;top:52px;z-index:40}
.tabbar .tab{border:none;background:transparent;padding:8px 14px;border-radius:10px;font-size:16.2px;color:var(--sub);cursor:pointer;font-weight:600;white-space:nowrap;transition:background var(--dur-micro) var(--ease-std),color var(--dur-micro) var(--ease-std)}
.tabbar .tab:hover{color:var(--ink)}
.tabbar .tab.on{background:#fff;color:var(--brand-deep);font-weight:700;box-shadow:0 1px 3px rgba(15,23,42,.08),0 4px 12px rgba(15,23,42,.06)}
.tabbar .tab .cnt{background:var(--line);color:var(--sub);border-radius:99px;padding:0 7px;font-size:13.2px;margin-left:4px}
.tabbar .tab.on .cnt{background:var(--brand-soft);color:var(--brand-deep)}

/* ── 学情报表二级 Tab（2026-09-11）── */
.subtabbar{display:flex;gap:4px;flex-wrap:wrap;background:#F5F8FC;border:1px solid var(--line2);border-radius:var(--radius-s);padding:4px;margin:10px 0}
.subtab{border:none;background:transparent;padding:7px 12px;border-radius:9px;font-size:15.6px;color:var(--sub);cursor:pointer;font-weight:600;white-space:nowrap;transition:background .15s,color .15s}
.subtab:hover{color:var(--ink);background:#EDF3FA}
.subtab.on{background:#fff;color:var(--brand-deep);font-weight:700;box-shadow:0 1px 3px rgba(15,23,42,.10)}
.panel{display:none}
.panel.on{display:block;animation:fadeUp var(--dur-panel) var(--ease-out)}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ── 表格 ── */
table{width:100%;border-collapse:collapse;font-size:15.6px}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
th{color:var(--sub);font-weight:600;font-size:14.4px;white-space:nowrap}
tr:last-child td{border-bottom:none}
table tr:hover td{background:#F0F4FA}
.trow{display:flex;gap:8px;align-items:center;padding:8px 2px;border-bottom:1px dashed var(--line2);font-size:16.2px}
.trow:last-child{border-bottom:none}
.table-wrap{overflow-x:auto}

/* ── 目录树/章节目录 ── */
.btree{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow:auto;padding-right:4px}
.bunit{background:var(--brand-soft);border-radius:var(--radius-s);padding:8px 12px;cursor:pointer;transition:.12s}
.bunit:hover{background:#DCF0FE}
.bunit.on{background:var(--brand);color:#fff}
.bunit .u{font-weight:700;font-size:16.2px;display:flex;align-items:center;gap:6px}
.bunit .u small{font-weight:400;opacity:.8}
.bunit .meta{font-size:13.8px;opacity:.75;margin-top:1px}
.levels{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.lvchip{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:5px 12px;font-size:15.6px;cursor:pointer}
.lvchip.on{border-color:var(--brand);background:var(--brand-soft);font-weight:700;color:var(--brand-deep)}

/* ── 弹层（遮罩毛玻璃 + 白卡；≤480px 转底部 sheet）── */
.mask{position:fixed;inset:0;background:rgba(15,23,42,.36);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeIn var(--dur-modal) var(--ease-std)}
/* ⚠ 选择器必须双写：`modal()` 生成的是 .box > .head/.body（父子），
   而 characters/student 两处用的是 <div class="box cmodal"><div class="box head">（同类）。
   原版只写了 `.mask .box.head`（要求同一元素同时有 box+head），对标准弹层**从未生效** →
   .body 拿不到 overflow:auto，弹层内容超长时无法滚动（2026-09-16 修）。 */
.mask .box{background:#fff;border-radius:20px;box-shadow:var(--shadow-modal);width:min(680px,96vw);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;animation:popIn var(--dur-modal) var(--ease-spring)}
.mask .box.head,.mask .box .head{background:#fff;border-bottom:1px solid var(--line2);padding:14px 20px;font-weight:700;font-size:18px;display:flex;justify-content:space-between;align-items:center;border-radius:20px 20px 0 0;flex:none}
.mask .box.head .x,.mask .box .head .x{cursor:pointer;opacity:.55;font-size:21.6px;line-height:1;padding:2px 6px}
/* flex:1 1 auto + min-height:0 是"子项可滚动"的关键：默认 min-height:auto 会撑开、阻止收缩 */
.mask .box.body,.mask .box .body{padding:14px 20px;overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.mask .box.foot,.mask .box .foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line2);flex:none}
.mask.wide .box{width:min(920px,98vw)}
.mask.small .box{width:min(420px,96vw)}
.mask.tall .box{max-height:94vh}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}

/* ── toast：顶部横幅 ── */
#toasts{position:fixed;top:56px;left:50%;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}
.toast{background:rgba(31,42,68,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#fff;border-radius:12px;padding:10px 18px;font-size:16.2px;box-shadow:0 6px 20px rgba(0,0,0,.18);animation:toastIn var(--dur-panel) var(--ease-out);max-width:min(420px,90vw);pointer-events:auto}
.toast.ok{background:rgba(3,105,161,.95)}
.toast.err{background:rgba(190,18,60,.95)}
@keyframes toastIn{from{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:none}}

/* ── 状态块 ── */
.note{background:var(--brand-100);border-left:4px solid var(--brand);padding:9px 12px;border-radius:10px;font-size:15.6px;color:var(--brand-deep);margin-top:8px}
.note.blue{background:var(--blue-soft);border-color:var(--blue);color:#274E8F}
.note.red{background:var(--ok-soft);border-color:var(--ok-deep);color:#7F2B22}
.empty{text-align:center;color:var(--sub);padding:22px 8px;font-size:15.6px}
.progress{height:6px;border-radius:99px;background:#F0E9DD;overflow:hidden;flex:1;min-width:60px}
.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-300));border-radius:99px;transition:width var(--dur-base) var(--ease-out)}
.lvbar{height:8px;border-radius:99px;background:var(--line);overflow:hidden}
.lvbar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-300));border-radius:99px;transition:width var(--dur-base) var(--ease-out)}
.steps{display:flex;gap:6px;align-items:center;font-size:15px;color:var(--sub)}
.steps b{background:var(--brand-soft);color:var(--brand-deep);width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.steps .arr{opacity:.4}

/* ── 题目卡片/选项 ── */
.qitem{border:1.5px solid var(--line);border-radius:var(--radius-s);padding:11px 14px;margin-top:8px;background:#fff}
.qitem .qhead{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.qitem .qtext{font-weight:600;font-size:16.8px;flex:1}
.opts{display:flex;flex-direction:column;gap:5px;margin-top:8px}
.optline{font-size:15.6px;display:flex;gap:6px;align-items:flex-start}
.optline .okmark{color:var(--bad);font-weight:800;flex:none}
.optline .badmark{color:var(--ok)}
.whytext{background:var(--brand-50);border-radius:8px;padding:6px 10px;font-size:15px;color:#475569;margin-top:6px}

/* ── 杂项 ── */
.hide{display:none}
.spin{color:var(--sub);text-align:center;padding:20px}
.stars{color:var(--gold);letter-spacing:2px;font-size:18px}
.kv{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--line);font-size:16.2px;gap:12px}
.kv:last-child{border-bottom:none}
.listline{display:flex;align-items:center;gap:10px;padding:8px 4px;border-bottom:1px dashed var(--line2);font-size:16.2px}
.listline:last-child{border-bottom:none}
.avatar-big{font-size:52.8px;line-height:1;text-align:center}
.avatar-mini{font-size:21.6px;line-height:1;display:inline-block}
.bar-row{display:flex;align-items:center;gap:10px;margin:6px 0;font-size:15px}
.bar-row .bar{flex:1}
.bar-row .bar i{background:linear-gradient(90deg,var(--purple),var(--brand))}
.codebox{background:#2D2A26;color:#E8E2D6;border-radius:10px;padding:10px 12px;font-size:14.4px;font-family:Consolas,Menlo,monospace;overflow:auto;white-space:pre-wrap;max-height:220px}
.lanaddr{background:linear-gradient(120deg,var(--brand-100),var(--brand-200));border:1.5px dashed var(--brand);border-radius:var(--radius-s);padding:10px 14px;font-size:19.2px;font-weight:800;color:var(--brand-deep);text-align:center}
.dl-link{font-size:15px;color:var(--blue);cursor:pointer}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.badge-cell{border:1.5px solid var(--line);border-radius:16px;padding:12px;text-align:center}
.badge-cell .ico{font-size:31.2px}
.badge-cell .nm{font-weight:700;font-size:15.6px;margin:4px 0 2px}
.badge-cell .ds{font-size:13.8px;color:var(--sub);min-height:30px}
.growth{font-size:15px;color:var(--brand-deep);background:var(--brand-soft);border-radius:10px;padding:5px 12px;display:inline-block}
.hr{border:none;border-top:1px solid var(--line);margin:10px 0}

@media (max-width:720px){
  body{font-size:17.4px}.wrap{padding:10px 10px 60px}
  .form-grid{grid-template-columns:1fr}
  .topbar .me{display:none}
  .tabbar{overflow-x:auto;flex-wrap:nowrap;top:44px}
}
/* 移动端：弹层转底部 sheet */
@media (max-width:480px){
  .mask{align-items:flex-end;padding:0}
  .mask .box{width:100vw;max-height:92vh;border-radius:20px 20px 0 0}
  .mask .box::before{content:'';display:block;width:36px;height:4px;border-radius:99px;background:var(--line);margin:8px auto 0;flex:none}
}
/* ═══ 8 寸平板 / 触屏适配（2026-09-11，与全局字号 ×1.2 配套） ═══
   8 寸平板（如华为 MatePad 8.4"）逻辑视口 ≈960×600（1920×1200@2x）～1280×800：
   **不会命中** 720/480 断点（仍走桌面布局），故单列一段——
   ① 栅格/卡片收窄防挤爆 ② 触控目标 ≥44px ③ 小字兜底 ④ 弹层更宽、左右留安全边 */
@media (max-width:1100px){
  .wrap{padding:16px 14px 56px}
  .cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
  .cols-4{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
  .grid,.cols{gap:12px}
  .mask .box{width:min(780px,96vw)}
}
@media (max-width:1024px){
  .wrap{max-width:100%}
  .stats3{gap:6px}
  .stats3 .stat{padding:8px 4px}
  .taskcard{padding:12px 14px}
}
/* 触屏设备（含平板/手机）：指尖友好 + 小字兜底 */
@media (pointer:coarse){
  button,input,select,textarea,.btn,.tabbar a,.tabbar button{min-height:44px}
  .btn.sm{min-height:38px;padding:8px 14px}
  .tag,.pill{padding:6px 12px}
  input[type=checkbox],input[type=radio]{width:22px;height:22px;min-height:22px}
  .muted,.tag,.pill,.kv{font-size:max(13.2px,1em)}
}
@media (max-width:820px){
  .cols,.cols-4{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .card{padding:14px}
  .topbar .me{display:none}
}
/* 实时看板：投屏大字 */
body.t5big #liveFeed .rowline{font-size:22.8px;padding:9px 6px}
body.t5big #liveFeed .tag{font-size:18px}
body.t5big #liveFeed .muted{font-size:18px}
body.t5big #liveFeed .stars{font-size:24px}

/* ═══ 庆祝动效（v2.1：星弹跳 / 徽章脉冲 / 节点与数字庆祝） ═══ */
@keyframes starPop{0%{opacity:0;transform:scale(.2) rotate(-22deg)}55%{opacity:1;transform:scale(1.35) rotate(9deg)}78%{transform:scale(.9) rotate(-4deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes glowPulse{0%{opacity:0;transform:scale(.55)}45%{opacity:.9;transform:scale(1.25)}100%{opacity:.45;transform:scale(1)}}
@keyframes nodeIn{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@keyframes badgePop{0%{opacity:0;transform:scale(.3)}55%{opacity:1;transform:scale(1.22)}75%{transform:scale(.92)}100%{opacity:1;transform:scale(1)}}
@keyframes badgePulse{0%{box-shadow:0 0 0 0 rgba(14,165,233,.55)}70%{box-shadow:0 0 0 11px rgba(14,165,233,0)}100%{box-shadow:0 0 0 0 rgba(14,165,233,0)}}
@keyframes numPop{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@keyframes softPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
@keyframes popOnce{0%{opacity:0;transform:scale(.75)}60%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
/* 数字/卡片脉冲提示（教师端 T0 新徽章等） */
.pulse-num{display:inline-block;transform-origin:center;animation:softPulse 1.5s var(--ease-std) infinite}
/* 通用单次弹入（徽章墙、卡片入场） */
.bounce-in{animation:popOnce .45s var(--ease-spring) backwards}
/* 数字更新弹跳 */
.num-pop{display:inline-block;animation:numPop .5s var(--ease-spring)}
/* 徽章解锁：弹入 + 光环脉冲两圈 */
.badge-i.just{animation:badgePop .6s var(--ease-spring) backwards,badgePulse 1s ease-out .4s 2}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}

/* === 图标系统 v2.3: Apple style linear SVG, mask-image, color follows currentColor === */
.icon{display:inline-block;width:1em;height:1em;background:currentColor;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;vertical-align:-2px;flex-shrink:0}
.icon-sm{width:.85em;height:.85em}
.icon-lg{width:1.3em;height:1.3em}
.icon-xl{width:1.6em;height:1.6em}
.icon-home{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M3%209l9-7%209%207v11a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z"%2F%3E%3Cpolyline%20points%3D"9%2022%209%2012%2015%2012%2015%2022"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M3%209l9-7%209%207v11a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2z"%2F%3E%3Cpolyline%20points%3D"9%2022%209%2012%2015%2012%2015%2022"%2F%3E%3C%2Fsvg%3E")}
.icon-map{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D"1%206%201%2022%208%2018%2016%2022%2023%2018%2023%202%2016%206%208%202%201%206"%2F%3E%3Cline%20x1%3D"8"%20y1%3D"2"%20x2%3D"8"%20y2%3D"18"%2F%3E%3Cline%20x1%3D"16"%20y1%3D"6"%20x2%3D"16"%20y2%3D"22"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D"1%206%201%2022%208%2018%2016%2022%2023%2018%2023%202%2016%206%208%202%201%206"%2F%3E%3Cline%20x1%3D"8"%20y1%3D"2"%20x2%3D"8"%20y2%3D"18"%2F%3E%3Cline%20x1%3D"16"%20y1%3D"6"%20x2%3D"16"%20y2%3D"22"%2F%3E%3C%2Fsvg%3E")}
.icon-book{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20"%2F%3E%3Cpath%20d%3D"M6.5%202H20v20H6.5A2.5%202.5%200%200%201%204%2019.5v-15A2.5%202.5%200%200%201%206.5%202z"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M4%2019.5A2.5%202.5%200%200%201%206.5%2017H20"%2F%3E%3Cpath%20d%3D"M6.5%202H20v20H6.5A2.5%202.5%200%200%201%204%2019.5v-15A2.5%202.5%200%200%201%206.5%202z"%2F%3E%3C%2Fsvg%3E")}
.icon-trophy{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M6%209H4.5a2.5%202.5%200%200%201%200-5H6"%2F%3E%3Cpath%20d%3D"M18%209h1.5a2.5%202.5%200%200%200%200-5H18"%2F%3E%3Cpath%20d%3D"M4%2022h16"%2F%3E%3Cpath%20d%3D"M10%2014.66V17c0%20.55-.47.98-.97%201.21C7.85%2018.75%207%2020.24%207%2022"%2F%3E%3Cpath%20d%3D"M14%2014.66V17c0%20.55.47.98.97%201.21C16.15%2018.75%2017%2020.24%2017%2022"%2F%3E%3Cpath%20d%3D"M18%202H6v7a6%206%200%200%200%2012%200V2Z"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M6%209H4.5a2.5%202.5%200%200%201%200-5H6"%2F%3E%3Cpath%20d%3D"M18%209h1.5a2.5%202.5%200%200%200%200-5H18"%2F%3E%3Cpath%20d%3D"M4%2022h16"%2F%3E%3Cpath%20d%3D"M10%2014.66V17c0%20.55-.47.98-.97%201.21C7.85%2018.75%207%2020.24%207%2022"%2F%3E%3Cpath%20d%3D"M14%2014.66V17c0%20.55.47.98.97%201.21C16.15%2018.75%2017%2020.24%2017%2022"%2F%3E%3Cpath%20d%3D"M18%202H6v7a6%206%200%200%200%2012%200V2Z"%2F%3E%3C%2Fsvg%3E")}
.icon-chart{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"18"%20y1%3D"20"%20x2%3D"18"%20y2%3D"10"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"20"%20x2%3D"12"%20y2%3D"4"%2F%3E%3Cline%20x1%3D"6"%20y1%3D"20"%20x2%3D"6"%20y2%3D"14"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"18"%20y1%3D"20"%20x2%3D"18"%20y2%3D"10"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"20"%20x2%3D"12"%20y2%3D"4"%2F%3E%3Cline%20x1%3D"6"%20y1%3D"20"%20x2%3D"6"%20y2%3D"14"%2F%3E%3C%2Fsvg%3E")}
.icon-bell{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M6%208a6%206%200%200%201%2012%200c0%207%203%209%203%209H3s3-2%203-9"%2F%3E%3Cpath%20d%3D"M10.3%2021a1.94%201.94%200%200%200%203.4%200"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M6%208a6%206%200%200%201%2012%200c0%207%203%209%203%209H3s3-2%203-9"%2F%3E%3Cpath%20d%3D"M10.3%2021a1.94%201.94%200%200%200%203.4%200"%2F%3E%3C%2Fsvg%3E")}
.icon-users{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2"%2F%3E%3Ccircle%20cx%3D"9"%20cy%3D"7"%20r%3D"4"%2F%3E%3Cpath%20d%3D"M22%2021v-2a4%204%200%200%200-3-3.87"%2F%3E%3Cpath%20d%3D"M16%203.13a4%204%200%200%201%200%207.75"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2"%2F%3E%3Ccircle%20cx%3D"9"%20cy%3D"7"%20r%3D"4"%2F%3E%3Cpath%20d%3D"M22%2021v-2a4%204%200%200%200-3-3.87"%2F%3E%3Cpath%20d%3D"M16%203.13a4%204%200%200%201%200%207.75"%2F%3E%3C%2Fsvg%3E")}
.icon-clipboard{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2"%2F%3E%3Crect%20x%3D"8"%20y%3D"2"%20width%3D"8"%20height%3D"4"%20rx%3D"1"%20ry%3D"1"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2"%2F%3E%3Crect%20x%3D"8"%20y%3D"2"%20width%3D"8"%20height%3D"4"%20rx%3D"1"%20ry%3D"1"%2F%3E%3C%2Fsvg%3E")}
.icon-eye{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M1%2012s4-8%2011-8%2011%208%2011%208-4%208-11%208-11-8-11-8z"%2F%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"3"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M1%2012s4-8%2011-8%2011%208%2011%208-4%208-11%208-11-8-11-8z"%2F%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"3"%2F%3E%3C%2Fsvg%3E")}
.icon-award{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"8"%20r%3D"7"%2F%3E%3Cpolyline%20points%3D"8.21%2013.89%207%2023%2012%2020%2017%2023%2015.79%2013.88"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"8"%20r%3D"7"%2F%3E%3Cpolyline%20points%3D"8.21%2013.89%207%2023%2012%2020%2017%2023%2015.79%2013.88"%2F%3E%3C%2Fsvg%3E")}
.icon-dashboard{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D"3"%20y%3D"3"%20width%3D"7"%20height%3D"9"%2F%3E%3Crect%20x%3D"14"%20y%3D"3"%20width%3D"7"%20height%3D"5"%2F%3E%3Crect%20x%3D"14"%20y%3D"12"%20width%3D"7"%20height%3D"9"%2F%3E%3Crect%20x%3D"3"%20y%3D"16"%20width%3D"7"%20height%3D"5"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D"3"%20y%3D"3"%20width%3D"7"%20height%3D"9"%2F%3E%3Crect%20x%3D"14"%20y%3D"3"%20width%3D"7"%20height%3D"5"%2F%3E%3Crect%20x%3D"14"%20y%3D"12"%20width%3D"7"%20height%3D"9"%2F%3E%3Crect%20x%3D"3"%20y%3D"16"%20width%3D"7"%20height%3D"5"%2F%3E%3C%2Fsvg%3E")}
.icon-search{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"11"%20cy%3D"11"%20r%3D"8"%2F%3E%3Cline%20x1%3D"21"%20y1%3D"21"%20x2%3D"16.65"%20y2%3D"16.65"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"11"%20cy%3D"11"%20r%3D"8"%2F%3E%3Cline%20x1%3D"21"%20y1%3D"21"%20x2%3D"16.65"%20y2%3D"16.65"%2F%3E%3C%2Fsvg%3E")}
.icon-settings{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"3"%2F%3E%3Cpath%20d%3D"M19.4%2015a1.65%201.65%200%200%200%20.33%201.82l.06.06a2%202%200%200%201%200%202.83%202%202%200%200%201-2.83%200l-.06-.06a1.65%201.65%200%200%200-1.82-.33%201.65%201.65%200%200%200-1%201.51V21a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-.09A1.65%201.65%200%200%200%209%2019.4a1.65%201.65%200%200%200-1.82.33l-.06.06a2%202%200%200%201-2.83%200%202%202%200%200%201%200-2.83l.06-.06a1.65%201.65%200%200%200%20.33-1.82%201.65%201.65%200%200%200-1.51-1H3a2%202%200%200%201-2-2%202%202%200%200%201%202-2h.09A1.65%201.65%200%200%200%204.6%209a1.65%201.65%200%200%200-.33-1.82l-.06-.06a2%202%200%200%201%200-2.83%202%202%200%200%201%202.83%200l.06.06a1.65%201.65%200%200%200%201.82.33H9a1.65%201.65%200%200%200%201-1.51V3a2%202%200%200%201%202-2%202%202%200%200%201%202%202v.09a1.65%201.65%200%200%200%201%201.51%201.65%201.65%200%200%200%201.82-.33l.06-.06a2%202%200%200%201%202.83%200%202%202%200%200%201%200%202.83l-.06.06a1.65%201.65%200%200%200-.33%201.82V9a1.65%201.65%200%200%200%201.51%201H21a2%202%200%200%201%202%202%202%202%200%200%201-2%202h-.09a1.65%201.65%200%200%200-1.51%201z"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"3"%2F%3E%3Cpath%20d%3D"M19.4%2015a1.65%201.65%200%200%200%20.33%201.82l.06.06a2%202%200%200%201%200%202.83%202%202%200%200%201-2.83%200l-.06-.06a1.65%201.65%200%200%200-1.82-.33%201.65%201.65%200%200%200-1%201.51V21a2%202%200%200%201-2%202%202%202%200%200%201-2-2v-.09A1.65%201.65%200%200%200%209%2019.4a1.65%201.65%200%200%200-1.82.33l-.06.06a2%202%200%200%201-2.83%200%202%202%200%200%201%200-2.83l.06-.06a1.65%201.65%200%200%200%20.33-1.82%201.65%201.65%200%200%200-1.51-1H3a2%202%200%200%201-2-2%202%202%200%200%201%202-2h.09A1.65%201.65%200%200%200%204.6%209a1.65%201.65%200%200%200-.33-1.82l-.06-.06a2%202%200%200%201%200-2.83%202%202%200%200%201%202.83%200l.06.06a1.65%201.65%200%200%200%201.82.33H9a1.65%201.65%200%200%200%201-1.51V3a2%202%200%200%201%202-2%202%202%200%200%201%202%202v.09a1.65%201.65%200%200%200%201%201.51%201.65%201.65%200%200%200%201.82-.33l.06-.06a2%202%200%200%201%202.83%200%202%202%200%200%201%200%202.83l-.06.06a1.65%201.65%200%200%200-.33%201.82V9a1.65%201.65%200%200%200%201.51%201H21a2%202%200%200%201%202%202%202%202%200%200%201-2%202h-.09a1.65%201.65%200%200%200-1.51%201z"%2F%3E%3C%2Fsvg%3E")}
.icon-logout{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4"%2F%3E%3Cpolyline%20points%3D"16%2017%2021%2012%2016%207"%2F%3E%3Cline%20x1%3D"21"%20y1%3D"12"%20x2%3D"9"%20y2%3D"12"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4"%2F%3E%3Cpolyline%20points%3D"16%2017%2021%2012%2016%207"%2F%3E%3Cline%20x1%3D"21"%20y1%3D"12"%20x2%3D"9"%20y2%3D"12"%2F%3E%3C%2Fsvg%3E")}
.icon-back{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"19"%20y1%3D"12"%20x2%3D"5"%20y2%3D"12"%2F%3E%3Cpolyline%20points%3D"12%2019%205%2012%2012%205"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"19"%20y1%3D"12"%20x2%3D"5"%20y2%3D"12"%2F%3E%3Cpolyline%20points%3D"12%2019%205%2012%2012%205"%2F%3E%3C%2Fsvg%3E")}
.icon-plus{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"12"%20y1%3D"5"%20x2%3D"12"%20y2%3D"19"%2F%3E%3Cline%20x1%3D"5"%20y1%3D"12"%20x2%3D"19"%20y2%3D"12"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"12"%20y1%3D"5"%20x2%3D"12"%20y2%3D"19"%2F%3E%3Cline%20x1%3D"5"%20y1%3D"12"%20x2%3D"19"%20y2%3D"12"%2F%3E%3C%2Fsvg%3E")}
.icon-edit{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M11%204H4a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2v-7"%2F%3E%3Cpath%20d%3D"M18.5%202.5a2.121%202.121%200%200%201%203%203L12%2015l-4%201%201-4%209.5-9.5z"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M11%204H4a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h14a2%202%200%200%200%202-2v-7"%2F%3E%3Cpath%20d%3D"M18.5%202.5a2.121%202.121%200%200%201%203%203L12%2015l-4%201%201-4%209.5-9.5z"%2F%3E%3C%2Fsvg%3E")}
.icon-trash{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"3%206%205%206%2021%206"%2F%3E%3Cpath%20d%3D"M19%206v14a2%202%200%200%201-2%202H7a2%202%200%200%201-2-2V6m3%200V4a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"3%206%205%206%2021%206"%2F%3E%3Cpath%20d%3D"M19%206v14a2%202%200%200%201-2%202H7a2%202%200%200%201-2-2V6m3%200V4a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2"%2F%3E%3C%2Fsvg%3E")}
.icon-check{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"20%206%209%2017%204%2012"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"20%206%209%2017%204%2012"%2F%3E%3C%2Fsvg%3E")}
.icon-warning{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M10.29%203.86L1.82%2018a2%202%200%200%200%201.71%203h16.94a2%202%200%200%200%201.71-3L13.71%203.86a2%202%200%200%200-3.42%200z"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"9"%20x2%3D"12"%20y2%3D"13"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"17"%20x2%3D"12.01"%20y2%3D"17"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M10.29%203.86L1.82%2018a2%202%200%200%200%201.71%203h16.94a2%202%200%200%200%201.71-3L13.71%203.86a2%202%200%200%200-3.42%200z"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"9"%20x2%3D"12"%20y2%3D"13"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"17"%20x2%3D"12.01"%20y2%3D"17"%2F%3E%3C%2Fsvg%3E")}
.icon-star{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D"12%202%2015.09%208.26%2022%209.27%2017%2014.14%2018.18%2021.02%2012%2017.77%205.82%2021.02%207%2014.14%202%209.27%208.91%208.26%2012%202"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D"12%202%2015.09%208.26%2022%209.27%2017%2014.14%2018.18%2021.02%2012%2017.77%205.82%2021.02%207%2014.14%202%209.27%208.91%208.26%2012%202"%2F%3E%3C%2Fsvg%3E")}
.icon-fire{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M8.5%2014.5A2.5%202.5%200%200%200%2011%2012c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054%202-6%20.5%202.5%202%204.9%204%206.5%202%201.6%203%203.5%203%205.5a7%207%200%201%201-14%200c0-1.153.433-2.294%201-3a2.5%202.5%200%200%200%202.5%202.5z"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M8.5%2014.5A2.5%202.5%200%200%200%2011%2012c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054%202-6%20.5%202.5%202%204.9%204%206.5%202%201.6%203%203.5%203%205.5a7%207%200%201%201-14%200c0-1.153.433-2.294%201-3a2.5%202.5%200%200%200%202.5%202.5z"%2F%3E%3C%2Fsvg%3E")}
.icon-clock{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"10"%2F%3E%3Cpolyline%20points%3D"12%206%2012%2012%2016%2014"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"10"%2F%3E%3Cpolyline%20points%3D"12%206%2012%2012%2016%2014"%2F%3E%3C%2Fsvg%3E")}
.icon-calendar{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D"3"%20y%3D"4"%20width%3D"18"%20height%3D"18"%20rx%3D"2"%20ry%3D"2"%2F%3E%3Cline%20x1%3D"16"%20y1%3D"2"%20x2%3D"16"%20y2%3D"6"%2F%3E%3Cline%20x1%3D"8"%20y1%3D"2"%20x2%3D"8"%20y2%3D"6"%2F%3E%3Cline%20x1%3D"3"%20y1%3D"10"%20x2%3D"21"%20y2%3D"10"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D"3"%20y%3D"4"%20width%3D"18"%20height%3D"18"%20rx%3D"2"%20ry%3D"2"%2F%3E%3Cline%20x1%3D"16"%20y1%3D"2"%20x2%3D"16"%20y2%3D"6"%2F%3E%3Cline%20x1%3D"8"%20y1%3D"2"%20x2%3D"8"%20y2%3D"6"%2F%3E%3Cline%20x1%3D"3"%20y1%3D"10"%20x2%3D"21"%20y2%3D"10"%2F%3E%3C%2Fsvg%3E")}
.icon-download{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4"%2F%3E%3Cpolyline%20points%3D"7%2010%2012%2015%2017%2010"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"15"%20x2%3D"12"%20y2%3D"3"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4"%2F%3E%3Cpolyline%20points%3D"7%2010%2012%2015%2017%2010"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"15"%20x2%3D"12"%20y2%3D"3"%2F%3E%3C%2Fsvg%3E")}
.icon-upload{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4"%2F%3E%3Cpolyline%20points%3D"17%208%2012%203%207%208"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"3"%20x2%3D"12"%20y2%3D"15"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4"%2F%3E%3Cpolyline%20points%3D"17%208%2012%203%207%208"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"3"%20x2%3D"12"%20y2%3D"15"%2F%3E%3C%2Fsvg%3E")}
.icon-filter{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D"22%203%202%203%2010%2012.46%2010%2019%2014%2021%2014%2012.46%2022%203"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolygon%20points%3D"22%203%202%203%2010%2012.46%2010%2019%2014%2021%2014%2012.46%2022%203"%2F%3E%3C%2Fsvg%3E")}
.icon-chevron-down{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"6%209%2012%2015%2018%209"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"6%209%2012%2015%2018%209"%2F%3E%3C%2Fsvg%3E")}
.icon-chevron-right{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"9%2018%2015%2012%209%206"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"9%2018%2015%2012%209%206"%2F%3E%3C%2Fsvg%3E")}
.icon-x{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"18"%20y1%3D"6"%20x2%3D"6"%20y2%3D"18"%2F%3E%3Cline%20x1%3D"6"%20y1%3D"6"%20x2%3D"18"%20y2%3D"18"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"18"%20y1%3D"6"%20x2%3D"6"%20y2%3D"18"%2F%3E%3Cline%20x1%3D"6"%20y1%3D"6"%20x2%3D"18"%20y2%3D"18"%2F%3E%3C%2Fsvg%3E")}
.icon-info{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"10"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"16"%20x2%3D"12"%20y2%3D"12"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"8"%20x2%3D"12.01"%20y2%3D"8"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D"12"%20cy%3D"12"%20r%3D"10"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"16"%20x2%3D"12"%20y2%3D"12"%2F%3E%3Cline%20x1%3D"12"%20y1%3D"8"%20x2%3D"12.01"%20y2%3D"8"%2F%3E%3C%2Fsvg%3E")}
.icon-user{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M20%2021v-2a4%204%200%200%200-4-4H8a4%204%200%200%200-4%204v2"%2F%3E%3Ccircle%20cx%3D"12"%20cy%3D"7"%20r%3D"4"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M20%2021v-2a4%204%200%200%200-4-4H8a4%204%200%200%200-4%204v2"%2F%3E%3Ccircle%20cx%3D"12"%20cy%3D"7"%20r%3D"4"%2F%3E%3C%2Fsvg%3E")}
.icon-lock{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D"3"%20y%3D"11"%20width%3D"18"%20height%3D"11"%20rx%3D"2"%20ry%3D"2"%2F%3E%3Cpath%20d%3D"M7%2011V7a5%205%200%200%201%2010%200v4"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D"3"%20y%3D"11"%20width%3D"18"%20height%3D"11"%20rx%3D"2"%20ry%3D"2"%2F%3E%3Cpath%20d%3D"M7%2011V7a5%205%200%200%201%2010%200v4"%2F%3E%3C%2Fsvg%3E")}
.icon-refresh{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"23%204%2023%2010%2017%2010"%2F%3E%3Cpolyline%20points%3D"1%2020%201%2014%207%2014"%2F%3E%3Cpath%20d%3D"M3.51%209a9%209%200%200%201%2014.85-3.36L23%2010M1%2014l4.64%204.36A9%209%200%200%200%2020.49%2015"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D"23%204%2023%2010%2017%2010"%2F%3E%3Cpolyline%20points%3D"1%2020%201%2014%207%2014"%2F%3E%3Cpath%20d%3D"M3.51%209a9%209%200%200%201%2014.85-3.36L23%2010M1%2014l4.64%204.36A9%209%200%200%200%2020.49%2015"%2F%3E%3C%2Fsvg%3E")}
.icon-save{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M19%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h11l5%205v11a2%202%200%200%201-2%202z"%2F%3E%3Cpolyline%20points%3D"17%2021%2017%2013%207%2013%207%2021"%2F%3E%3Cpolyline%20points%3D"7%203%207%208%2015%208"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M19%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h11l5%205v11a2%202%200%200%201-2%202z"%2F%3E%3Cpolyline%20points%3D"17%2021%2017%2013%207%2013%207%2021"%2F%3E%3Cpolyline%20points%3D"7%203%207%208%2015%208"%2F%3E%3C%2Fsvg%3E")}
.icon-pin{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"12"%20y1%3D"17"%20x2%3D"12"%20y2%3D"22"%2F%3E%3Cpath%20d%3D"M5%2017h14v-1.76a2%202%200%200%200-1.11-1.79l-1.78-.9A2%202%200%200%201%2015%2010.76V6h1a2%202%200%200%200%200-4H8a2%202%200%200%200%200%204h1v4.76a2%202%200%200%201-1.11%201.79l-1.78.9A2%202%200%200%200%205%2015.24Z"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"12"%20y1%3D"17"%20x2%3D"12"%20y2%3D"22"%2F%3E%3Cpath%20d%3D"M5%2017h14v-1.76a2%202%200%200%200-1.11-1.79l-1.78-.9A2%202%200%200%201%2015%2010.76V6h1a2%202%200%200%200%200-4H8a2%202%200%200%200%200%204h1v4.76a2%202%200%200%201-1.11%201.79l-1.78.9A2%202%200%200%200%205%2015.24Z"%2F%3E%3C%2Fsvg%3E")}
.icon-tag{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M20.59%2013.41l-7.17%207.17a2%202%200%200%201-2.83%200L2%2012V2h10l8.59%208.59a2%202%200%200%201%200%202.82z"%2F%3E%3Cline%20x1%3D"7"%20y1%3D"7"%20x2%3D"7.01"%20y2%3D"7"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M20.59%2013.41l-7.17%207.17a2%202%200%200%201-2.83%200L2%2012V2h10l8.59%208.59a2%202%200%200%201%200%202.82z"%2F%3E%3Cline%20x1%3D"7"%20y1%3D"7"%20x2%3D"7.01"%20y2%3D"7"%2F%3E%3C%2Fsvg%3E")}
.icon-lightbulb{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M9%2018h6"%2F%3E%3Cpath%20d%3D"M10%2022h4"%2F%3E%3Cpath%20d%3D"M15.09%2014c.18-.98.65-1.74%201.41-2.5A4.65%204.65%200%200%200%2018%208%206%206%200%200%200%206%208c0%201%20.23%202.23%201.5%203.5A4.61%204.61%200%200%201%208.91%2014"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M9%2018h6"%2F%3E%3Cpath%20d%3D"M10%2022h4"%2F%3E%3Cpath%20d%3D"M15.09%2014c.18-.98.65-1.74%201.41-2.5A4.65%204.65%200%200%200%2018%208%206%206%200%200%200%206%208c0%201%20.23%202.23%201.5%203.5A4.61%204.61%200%200%201%208.91%2014"%2F%3E%3C%2Fsvg%3E")}
.icon-brain{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M9.5%202A2.5%202.5%200%200%201%2012%204.5v15a2.5%202.5%200%200%201-4.96.44%202.5%202.5%200%200%201-2.96-3.08%203%203%200%200%201-.34-5.58%202.5%202.5%200%200%201%201.32-4.24%202.5%202.5%200%200%201%201.98-3A2.5%202.5%200%200%201%209.5%202Z"%2F%3E%3Cpath%20d%3D"M14.5%202A2.5%202.5%200%200%200%2012%204.5v15a2.5%202.5%200%200%200%204.96.44%202.5%202.5%200%200%200%202.96-3.08%203%203%200%200%200%20.34-5.58%202.5%202.5%200%200%200-1.32-4.24%202.5%202.5%200%200%200-1.98-3A2.5%202.5%200%200%200%2014.5%202Z"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D"M9.5%202A2.5%202.5%200%200%201%2012%204.5v15a2.5%202.5%200%200%201-4.96.44%202.5%202.5%200%200%201-2.96-3.08%203%203%200%200%201-.34-5.58%202.5%202.5%200%200%201%201.32-4.24%202.5%202.5%200%200%201%201.98-3A2.5%202.5%200%200%201%209.5%202Z"%2F%3E%3Cpath%20d%3D"M14.5%202A2.5%202.5%200%200%200%2012%204.5v15a2.5%202.5%200%200%200%204.96.44%202.5%202.5%200%200%200%202.96-3.08%203%203%200%200%200%20.34-5.58%202.5%202.5%200%200%200-1.32-4.24%202.5%202.5%200%200%200-1.98-3A2.5%202.5%200%200%200%2014.5%202Z"%2F%3E%3C%2Fsvg%3E")}
.icon-gamepad{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"6"%20y1%3D"11"%20x2%3D"10"%20y2%3D"11"%2F%3E%3Cline%20x1%3D"8"%20y1%3D"9"%20x2%3D"8"%20y2%3D"13"%2F%3E%3Cline%20x1%3D"15"%20y1%3D"12"%20x2%3D"15.01"%20y2%3D"12"%2F%3E%3Cline%20x1%3D"18"%20y1%3D"10"%20x2%3D"18.01"%20y2%3D"10"%2F%3E%3Crect%20x%3D"2"%20y%3D"6"%20width%3D"20"%20height%3D"12"%20rx%3D"2"%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27black%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cline%20x1%3D"6"%20y1%3D"11"%20x2%3D"10"%20y2%3D"11"%2F%3E%3Cline%20x1%3D"8"%20y1%3D"9"%20x2%3D"8"%20y2%3D"13"%2F%3E%3Cline%20x1%3D"15"%20y1%3D"12"%20x2%3D"15.01"%20y2%3D"12"%2F%3E%3Cline%20x1%3D"18"%20y1%3D"10"%20x2%3D"18.01"%20y2%3D"10"%2F%3E%3Crect%20x%3D"2"%20y%3D"6"%20width%3D"20"%20height%3D"12"%20rx%3D"2"%2F%3E%3C%2Fsvg%3E")}

/* ═══ 题内图片显示规范 v1 · 2026-09-16 ═══
   公式图：高度绑定所在容器字号（不写绝对值），宽度按自身比例
   几何图：块级居中，宽度收敛到可读区间，高度按比例、不超一屏
   依据：见 HANDOFF/09-题内图片显示规范与修复SOP.md                          */
.formula-img{
  height:1.05em !important;
  width:auto !important;
  vertical-align:middle !important;
  max-width:100%;
}
.fig-img{
  display:block;
  margin:12px auto;
  width:auto;
  height:auto;
  min-width:min(100%,200px);
  max-width:min(100%,320px);
  max-height:min(46vh,380px);
}
