/* ============================================================
 * 重卡维修助手 服务技术知识中枢 - 品牌视觉 V2
 * 品牌红 #E60020 / 技术蓝 #1668B0 / 深墨黑 #231815 / 科技灰 #F5F5F5
 * 优化：去掉依赖字体的 emoji，改用 SVG/文字图标；更紧凑专业
 * ============================================================ */
:root{
  --red:#E60020; --red-d:#B80019; --blue:#1668B0; --blue-d:#0F4E86;
  --ink:#231815; --gray:#F7F7F7; --gray-2:#EFEFEF; --line:#E8E8E8;
  --green:#2FAE60; --amber:#F59E0B; --red-bg:#FDEBEC; --blue-bg:#EAF2FA;
  --purple:#8B5CF6; --teal:#0EA5A4;
  --r:14px; --r-s:8px; --shadow:0 4px 14px rgba(35,24,21,.06);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;background:#ECECEC;color:var(--ink);
  font-family:"Noto Sans CJK SC","WenQuanYi Micro Hei","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block;color:transparent}
a{color:var(--blue);text-decoration:none}

/* 手机容器 */
#phone{max-width:414px;margin:0 auto;min-height:100vh;background:var(--gray);
  position:relative;box-shadow:0 0 30px rgba(0,0,0,.12);display:flex;flex-direction:column}

/* 顶部品牌栏 */
.brandbar{background:linear-gradient(135deg,var(--red) 0%,var(--red-d) 100%);
  color:#fff;padding:12px 16px;display:flex;align-items:center;gap:10px}
.brandbar .logo{background:#fff;border-radius:6px;padding:5px 10px;display:flex;align-items:center}
.brandbar .logo img{height:22px;display:block}
.brandbar .tt{line-height:1.25}
.brandbar .tt b{font-size:17px;letter-spacing:.5px}
.brandbar .tt span{display:block;font-size:10px;opacity:.9;letter-spacing:.3px}
.slogan{background:#fff;padding:8px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:center;align-items:center}
.slogan img{height:18px;opacity:.9}

/* 页面区 */
.page{display:none;flex:1;overflow-y:auto;padding-bottom:calc(80px + env(safe-area-inset-bottom))}
.page.active{display:block}
.pad{padding:14px 16px}

/* 搜索 */
.searchwrap{padding:12px 16px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.search{display:flex;gap:8px;align-items:center;position:relative}
.search input{flex:1;border:1px solid var(--line);border-radius:22px;padding:10px 16px;font-size:14px;background:var(--gray);outline:none;transition:.15s;height:42px;margin:0}
.search input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px var(--blue-bg)}
.btn{background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;border:none;border-radius:22px;padding:10px 20px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:0 2px 8px rgba(230,0,32,.25);transition:.15s;height:42px;margin:0}
.btn.blue{background:linear-gradient(135deg,var(--blue),var(--blue-d));box-shadow:0 2px 8px rgba(22,104,176,.25)}
.btn.ghost{background:#fff;color:var(--blue);border:1px solid var(--blue)}
.btn.block{width:100%;border-radius:var(--r-s);padding:12px;height:auto}
.btn:active{transform:translateY(1px);opacity:.92}
.btn.search-icon{width:42px;min-width:42px;height:42px;border-radius:50%;padding:0;display:flex;align-items:center;justify-content:center}
.btn.search-icon svg{width:22px;height:22px}

/* 快捷入口 */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px 16px;background:#fff}
.quick .q{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:12px 6px;text-align:center;cursor:pointer;transition:.15s}
.quick .q:active{transform:scale(.97);background:var(--gray)}
.quick .q .ic{width:42px;height:42px;margin:0 auto 8px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}
.quick .q .ic svg{width:22px;height:22px;fill:currentColor}
.quick .q span{font-size:12px;color:#444;font-weight:500}
.ic.red{background:linear-gradient(135deg,var(--red),var(--red-d))}
.ic.blue{background:linear-gradient(135deg,var(--blue),var(--blue-d))}
.ic.green{background:linear-gradient(135deg,var(--green),#228B4A)}
.ic.amber{background:linear-gradient(135deg,var(--amber),#D97706);color:#fff}

/* 区块标题 */
.sec{display:flex;justify-content:space-between;align-items:center;margin:18px 16px 10px}
.sec h3{margin:0;font-size:15px;font-weight:700}
.sec h3::before{content:"";display:inline-block;width:4px;height:14px;background:var(--red);border-radius:2px;margin-right:6px;vertical-align:-2px}
.sec a{font-size:12px;color:var(--blue);font-weight:500}

/* 卡片 */
.card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);padding:14px;margin:0 16px 12px}
/* 案例卡：淡阴影立体化 */
.card.case{box-shadow:0 5px 14px rgba(30,12,8,.06),0 1px 3px rgba(30,12,8,.04)}
.case{cursor:pointer;transition:.15s}
.case:active{transform:scale(.99)}
.case .t{font-size:15px;font-weight:700;line-height:1.4;margin-bottom:6px;color:var(--ink)}
.case .s{font-size:12.5px;color:#666;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:10px;font-size:11px;color:#999}
.tag{display:inline-block;vertical-align:middle;background:var(--blue-bg);color:var(--blue);border-radius:4px;padding:3px 7px;font-size:11px;line-height:1.5;margin:1px 5px 1px 0}
.tag.red{background:var(--red-bg);color:var(--red)}
.tag.green{background:#E8F7EE;color:var(--green)}
.tag.amber{background:#FFF6E0;color:#B8860B}
.qscore{font-weight:700;color:var(--red)}
.author{display:flex;align-items:center;gap:6px;font-size:12px;color:#555;margin-top:10px}
.avatar{width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600}
.avatar.red{background:var(--red)}
.stat{display:flex;justify-content:flex-end;gap:14px;font-size:11.5px;color:#888;margin-top:10px}
.stat svg{width:12px;height:12px;vertical-align:-2px;margin-right:2px;fill:currentColor}
/* 案例卡底部统计：线条式图标 */
.case .stat{color:#9AA1AC;font-variant-numeric:tabular-nums}
.case .stat svg{fill:none;stroke:currentColor;stroke-width:1.9;width:13px;height:13px;vertical-align:-2px;margin-right:3px}
.case .stat span{display:flex;align-items:center}
/* 首页区块整体上移（精品案例更贴近顶部内容） */
#page-home .sec{margin-top:12px;padding-top:12px}

/* 榜单 */
.rank{display:flex;align-items:center;gap:12px;padding:13px 16px;background:#fff;border-radius:var(--r);margin:0 16px 10px;box-shadow:var(--shadow)}
.rank .no{width:28px;height:28px;border-radius:50%;background:var(--gray-2);color:#888;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px}
.rank:nth-child(1) .no{background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff}
.rank:nth-child(2) .no{background:linear-gradient(135deg,var(--amber),#D97706);color:#fff}
.rank:nth-child(3) .no{background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff}
.rank .info{flex:1}
.rank .info b{font-size:14px}
.rank .info span{display:block;font-size:11.5px;color:#888;margin-top:2px}
.rank .pts{text-align:right;font-size:13px;color:var(--red);font-weight:800}
.rank .pts span{display:block;color:#999;font-weight:400;font-size:11px}

/* 详情 */
.detail-hero{background:linear-gradient(135deg,var(--blue) 0%,var(--blue-d) 100%);color:#fff;padding:18px 16px}
.detail-hero h2{margin:0 0 10px;font-size:18px;line-height:1.45}
.detail-hero .m{font-size:12px;opacity:.9;line-height:1.7}
/* 详情头部标签：flex + gap，保证多标签换行时行距充足 */
.d-tags{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.d-tags .tag{margin:0}
.kv{display:flex;font-size:13px;padding:9px 0;border-bottom:1px dashed var(--line)}
.kv b{width:48px;color:#888;font-weight:400;flex-shrink:0}
.step{display:flex;gap:10px;padding:12px 0;border-bottom:1px dashed var(--line)}
.step:last-child{border-bottom:none}
.step .n{width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}
.step .c b{font-size:13.5px;display:block;margin-bottom:3px}
.step .c p{margin:0;font-size:13px;color:#555;line-height:1.6}
.warn{background:#FFF9E5;border-left:4px solid var(--amber);border-radius:var(--r-s);padding:11px 13px;font-size:12.5px;color:#7a5c00;line-height:1.6}
.src{background:var(--blue-bg);border-radius:var(--r-s);padding:10px 12px;font-size:12px;color:var(--blue-d);margin-top:10px}
.actionbar{position:sticky;bottom:calc(60px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line);display:flex;padding:10px 16px;gap:10px;z-index:8;border-radius:16px 16px 0 0}
.actionbar .btn{flex:1}
.actionbar .icon-btn{width:52px;border:1px solid var(--line);border-radius:var(--r-s);background:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}
.actionbar .icon-btn.on{color:var(--red);border-color:var(--red);background:var(--red-bg)}
/* 案例详情底部操作条 V2：阅读/点赞/收藏 小号线条图标，右对齐，置底静态不悬浮 */
.actionbar.ab2{position:static;justify-content:flex-end;gap:26px;padding:10px 16px;
  margin:14px 16px 0;border-radius:14px;background:#fff;
  box-shadow:0 3px 10px rgba(35,24,21,.05);border:1px solid #F0EDE6}
.ab-stat,.ab-act{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:#9AA1AC;
  font-variant-numeric:tabular-nums;line-height:1}
.ab-stat svg,.ab-act svg{width:15px;height:15px}
.ab-act{border:none;background:none;padding:3px 0;cursor:pointer;transition:.15s}
.ab-act:active{opacity:.65}
.ab-act.on{color:var(--red)}
/* 案例详情页底部：点赞/收藏操作条下方加大留白（避免贴住底部导航） */
#page-detail{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
/* 案例长文本断行（句号/分号/编号处换行） */
.tl{font-size:13.5px;color:#555;line-height:1.72}
.card > .tl{margin-top:9px}
.tl + .tl{margin-top:6px}
.step .c > .tl:first-child{margin-top:3px}
.kv span .tl{font-size:13px}
.kv span .tl:first-child{margin-top:0}
.warn .tl{font-size:12.5px;color:#7a5c00}
.warn .tl + .tl{margin-top:4px}

/* 故障码结果 */
.fc{border-left:4px solid var(--red)}
.fc .code{font-family:ui-monospace,Menlo,monospace;font-weight:800;color:var(--red);font-size:16px}
.fc .row{font-size:12.5px;color:#555;margin-top:7px;line-height:1.6}
.fc .row b{color:var(--ink)}
.lvl{font-size:10px;border-radius:4px;padding:2px 7px;margin-left:8px;font-weight:700}
.lvl.s{background:var(--red-bg);color:var(--red)}
.lvl.n{background:var(--blue-bg);color:var(--blue)}

/* 底部导航 */
.tabbar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:414px;
  background:#fff;border-top:2px dashed rgba(35,36,42,.18);display:flex;z-index:10;padding-bottom:0}
.tabbar .t{flex:1;text-align:center;padding:8px 0 5px;color:#A8AFB9;font-size:12px;cursor:pointer;transition:.15s;position:relative}
.tabbar .t .i{width:20px;height:20px;display:block;margin:0 auto 2px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.tabbar .t.on{color:var(--red);font-weight:600}
.tabbar .t.on::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);width:22px;height:2px;background:var(--red);border-radius:0 0 2px 2px}
/* tabbar：吐槽 tab 用吐槽墙同款手绘贴纸图标，其余图标保持端正 */
.tabbar .t.on .i{stroke-width:2.2}
/* 吐槽贴纸图标：黄贴纸气泡 + 手绘五官，略微歪一点更像随手贴的小贴纸 */
.tabbar .t[data-p="toast"] .i{width:23px;height:23px;margin-bottom:2px}
.tabbar .t .stk{transform:rotate(-3deg);filter:drop-shadow(1.5px 2px 0 rgba(35,36,42,.15))}
.tabbar .t.on .stk{transform:rotate(-3deg) scale(1.06)}

/* 投稿 */
.upload{border:2px dashed var(--line);border-radius:var(--r);padding:28px;text-align:center;color:#888;font-size:13px;background:#fff;cursor:pointer;transition:.15s}
.upload:hover{border-color:var(--blue);background:var(--blue-bg)}
.upload .big{width:44px;height:44px;margin:0 auto 10px;background:var(--blue-bg);color:var(--blue);border-radius:50%;display:flex;align-items:center;justify-content:center}
.upload .big svg{width:22px;height:22px;fill:currentColor}
.field{margin-bottom:14px}
.field label{display:block;font-size:13px;color:#666;margin-bottom:6px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px;font-size:14px;background:#fff;outline:none;font-family:inherit;transition:.15s}
.field input:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-bg)}
.field textarea{min-height:90px;resize:vertical}
.ai-box{background:linear-gradient(135deg,#F6F9FF,#EAF2FA);border:1px solid #D3E4F5;border-radius:var(--r);padding:14px;margin-top:6px}
.ai-box h4{margin:0 0 10px;font-size:13.5px;color:var(--blue-d);display:flex;align-items:center;gap:6px}
.bar{height:8px;background:#fff;border-radius:4px;overflow:hidden;margin:4px 0 10px;box-shadow:inset 0 1px 2px rgba(0,0,0,.05)}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--red));border-radius:4px}
.dim{display:flex;justify-content:space-between;font-size:12px;color:#555}

/* ===== “我的”页 V3：个人全信息头卡 + 4 格统计 + 分组线条菜单 ===== */
.me-hero{position:relative;overflow:hidden;color:#fff;padding:22px 16px 48px;display:flex;align-items:flex-start;gap:13px;
  background:linear-gradient(140deg,#A80D1B 0%,#E60020 62%,#D4001B 100%)}
.me-hero::after{content:'';position:absolute;top:-90px;right:-70px;width:250px;height:250px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,190,170,.22),transparent 65%);pointer-events:none}
.me-cam-wrap{position:relative;width:70px;height:70px;flex-shrink:0;cursor:pointer;z-index:1}
.me-avatar{width:70px;height:70px;border-radius:50%;background:rgba(255,255,255,.22);border:2px solid rgba(255,255,255,.55);
  display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:600;color:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.22)}
.me-avatar img{width:100%;height:100%;object-fit:cover}
.me-cam{position:absolute;right:0;bottom:0;width:26px;height:26px;border-radius:50%;background:#fff;color:#C20E1D;
  font-style:normal;font-size:12px;display:flex;align-items:center;justify-content:center;
  border:2px solid #D4001B;box-shadow:0 2px 6px rgba(0,0,0,.25)}
.me-main{flex:1;min-width:0;position:relative;z-index:1;padding-top:2px}
/* 第1行：姓名 + 角色（管理员/技师等 pill）+ 专家标 */
.me-name-row{display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap;row-gap:4px}
.me-name-row b{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.me-role{font-size:11px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.3);border-radius:12px;
  padding:2px 9px;color:#fff;white-space:nowrap;letter-spacing:.3px}
/* 第2行：人员编号（左）+ 电话（右） */
.me-pnrow{display:flex;align-items:center;margin-top:12px;font-size:14px;color:rgba(255,255,255,.96);min-width:0;font-weight:500}
.me-pnrow .me-pn{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.me-pnrow .me-phone{flex-shrink:0;margin-left:14px;padding-left:14px;border-left:1px solid rgba(255,255,255,.32);
  font-variant-numeric:tabular-nums;white-space:nowrap}
/* 第3行：公司名（明亮黄金，红底醒目） */
.me-orgrow{margin-top:10px;font-size:15px;font-weight:800;letter-spacing:.4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  color:#F2C75B;
  filter:drop-shadow(0 1px 2px rgba(72,0,6,.35))}
.me-edit{position:relative;z-index:1;flex-shrink:0;font-size:12px;color:#fff;background:rgba(0,0,0,.16);
  border:1px solid rgba(255,255,255,.38);border-radius:18px;padding:6px 12px;cursor:pointer}
.me-edit:active{background:rgba(255,255,255,.25)}
/* 数据统计：大幅上浮骑跨红卡下沿 + 悬浮图层（阴影收敛为小面积柔和投影） */
#page-me .grid4{position:relative;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);background:#fff;padding:17px 0;margin:-26px 16px 0;
  border-radius:16px;border:1px solid rgba(238,228,214,.95);
  box-shadow:
    0 6px 14px rgba(35,20,14,.10),
    0 2px 5px rgba(35,20,14,.06),
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -1px 0 rgba(0,0,0,.02)}
#page-me .grid4 div{text-align:center;position:relative}
#page-me .grid4 div+div::before{content:'';position:absolute;left:0;top:22%;height:56%;width:1px;background:#F1E9DC}
#page-me .grid4 b{font-size:21px;color:var(--red);display:block;font-family:'Smiley Sans'}
#page-me .grid4 span{font-size:11.5px;color:#8A93A0;letter-spacing:.5px}
/* 分组菜单：大行距 + 线条图标 */
.menu-g{margin-top:18px}
.menu-g-t{font-size:12px;color:#9AA1AC;padding:0 20px 8px;letter-spacing:1.5px}
.menu{background:#fff;border-radius:14px;margin:0 16px 4px;overflow:hidden;border:1px solid #EDF0F4;box-shadow:0 2px 10px rgba(35,24,21,.03)}
.menu .mi{display:flex;align-items:center;gap:12px;padding:15px 16px;border-bottom:1px solid #F2F3F5;cursor:pointer;transition:.15s}
.menu .mi:last-child{border-bottom:none}
.menu .mi:active{background:#FAFAFB}
.menu .mi-icon{width:32px;height:32px;flex-shrink:0;border-radius:9px;background:#FFF0F0;color:#D4001B;
  display:flex;align-items:center;justify-content:center}
.menu .mi-icon svg{width:17px;height:17px}
.menu .mi .mi-t{flex:1;min-width:0;font-size:14.5px;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu .mi>span:last-child{color:#C0C6CF;font-size:13px}
.progress{height:8px;background:#F0F1F3;border-radius:4px;overflow:hidden;margin-top:6px}
.progress i{display:block;height:100%;background:linear-gradient(90deg,#FF4A5E,var(--red));border-radius:4px}

.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%);background:rgba(35,24,21,.9);color:#fff;
  padding:10px 18px;border-radius:24px;font-size:13px;z-index:10001;opacity:0;transition:opacity .25s;pointer-events:none;max-width:80%;text-align:center}
.toast.show{opacity:1}
.back{display:inline-flex;align-items:center;gap:4px;color:#fff;font-size:13px;cursor:pointer;margin-bottom:8px;opacity:.95}
.empty{text-align:center;color:#bbb;padding:40px 0;font-size:13px}
.pill{display:inline-block;background:#fff;border:1px solid var(--line);border-radius:20px;padding:6px 14px;font-size:12.5px;margin:0 8px 8px 0;cursor:pointer;transition:.15s}
.pill.on{background:var(--red);color:#fff;border-color:var(--red)}

.skeleton{height:12px;background:linear-gradient(90deg,var(--gray-2) 25%,#fff 50%,var(--gray-2) 75%);background-size:200% 100%;border-radius:6px;animation:shimmer 1.2s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ===== 拍照/图片识别相关样式 ===== */

/* + 号按钮 */
.add-btn{width:42px;min-width:42px;height:42px;border-radius:50%;border:none;
  background:linear-gradient(135deg,var(--blue),var(--blue-d));color:#fff;
  font-size:26px;font-weight:300;cursor:pointer;display:flex;align-items:center;
  justify-content:center;line-height:1;padding:0;margin:0;
  box-shadow:0 2px 6px rgba(22,104,176,.3);transition:.15s}
.add-btn:active{transform:scale(.94);opacity:.85}

/* 搜索栏中的图片缩略图 */
.search-img-thumb{position:absolute;left:8px;top:50%;transform:translateY(-50%);
  width:32px;height:32px;border-radius:6px;overflow:hidden;border:2px solid var(--blue);
  background:#fff;z-index:3;cursor:pointer}
.search-img-thumb img{width:100%;height:100%;object-fit:cover}
.search-img-thumb .thumb-x{position:absolute;top:-4px;right:-4px;width:16px;height:16px;
  background:var(--red);color:#fff;border-radius:50%;font-size:10px;line-height:16px;
  text-align:center;cursor:pointer;font-weight:700}

/* 底部弹出菜单 */
.scan-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99;
  display:flex;align-items:flex-end;justify-content:center}
.scan-sheet{width:100%;max-width:414px;background:#fff;border-radius:16px 16px 0 0;
  padding:16px 16px 24px;animation:slideUp .25s ease}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.scan-sheet-title{text-align:center;font-size:14px;color:#999;margin-bottom:16px}
.scan-option{display:flex;align-items:center;gap:14px;padding:14px 12px;
  border-radius:12px;margin-bottom:8px;cursor:pointer;transition:.15s;
  background:var(--gray)}
.scan-option:active{background:var(--blue-bg)}
.scan-option .icon{width:44px;height:44px;border-radius:12px;display:flex;
  align-items:center;justify-content:center;font-size:22px}
.scan-option .icon svg{width:23px;height:23px}
.scan-option .icon.cam{background:#E8F0FE;color:var(--blue)}
.scan-option .icon.gal{background:#E8F7EE;color:var(--green)}
.scan-option .label b{display:block;font-size:15px;color:var(--ink)}
.scan-option .label span{font-size:12px;color:#888}
.scan-cancel{text-align:center;padding:14px;color:#888;font-size:15px;cursor:pointer;
  margin-top:8px;border-radius:12px;background:var(--gray)}
.scan-cancel:active{background:var(--gray-2)}

/* 扫描预览 */
.scan-preview{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;
  border-bottom:1px solid var(--line)}
.scan-preview img{width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.scan-preview .info b{display:block;font-size:14px;color:var(--ink)}
.scan-preview .info span{font-size:12px;color:#888}
.scan-progress{text-align:center;padding:24px}
.spinner{width:32px;height:32px;border:3px solid var(--gray-2);border-top-color:var(--blue);
  border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 12px}
@keyframes spin{to{transform:rotate(360deg)}}

/* ===== 故障码卡片样式 ===== */
.fc-card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);margin:0 16px 12px;overflow:hidden}
.fc-wrap{display:block}
.fc-card.show-en .fc-en{display:block}
.fc-header{padding:14px 16px;border-bottom:1px solid var(--gray-2);background:linear-gradient(135deg,#FAFBFC,#fff)}
.fc-spn{font-size:12px;color:var(--blue);font-weight:700;font-family:ui-monospace,Menlo,monospace;margin-bottom:4px}
.fc-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.4}
.fc-en{display:none;font-size:12px;color:#888;margin-top:4px;font-style:italic}
.fc-meta{font-size:11px;color:#999;margin-top:6px;line-height:1.5}
.fc-body{padding:12px 16px 16px}
.fc-row{margin-bottom:10px;font-size:13px;line-height:1.65}
.fc-row b{display:block;color:var(--ink);margin-bottom:3px;font-size:13px}
.fc-row span{color:#555}
.fc-section{background:var(--blue-bg);border-radius:10px;padding:12px;margin-bottom:10px}
.fc-section-title{font-size:13px;font-weight:700;color:var(--blue-d);margin-bottom:8px}
.fc-step{display:flex;gap:10px;margin-bottom:8px}
.fc-step:last-child{margin-bottom:0}
.fc-step-num{width:22px;min-width:22px;height:22px;background:var(--blue);color:#fff;
  border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;
  justify-content:center}
.fc-step-content{font-size:12.5px;line-height:1.55}
.fc-step-content b{display:block;color:var(--ink);font-size:13px;margin-bottom:2px}
.fc-step-content span{color:#555}

/* ===== 图片预览 ===== */
.img-preview-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:9999;
  display:flex;align-items:center;justify-content:center;
  animation:fadeI .2s}
.img-preview-inner{position:relative;max-width:95vw;max-height:95vh;
  display:flex;align-items:center;justify-content:center}
.img-preview-content{max-width:95vw;max-height:95vh;object-fit:contain;
  border-radius:4px;box-shadow:0 8px 40px rgba(0,0,0,.5);
  touch-action:pinch-zoom;user-select:none;-webkit-user-select:none}
.img-preview-close{position:absolute;top:-40px;right:0;width:36px;height:36px;
  background:rgba(255,255,255,.15);color:#fff;border-radius:50%;
  font-size:20px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;z-index:1}
.img-preview-close:active{background:rgba(255,255,255,.3)}

/* ===== V3 快捷投稿：录音+AI生成 ===== */
.record-section{text-align:center;padding:20px 16px;background:#fff;margin:12px 16px;border-radius:var(--r);box-shadow:var(--shadow)}
.record-btn{width:80px;height:80px;border-radius:50%;border:none;background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;font-size:32px;cursor:pointer;box-shadow:0 4px 20px rgba(230,0,32,.35);transition:.2s;display:flex;align-items:center;justify-content:center;margin:0 auto}
.record-btn:active{transform:scale(.93)}
.record-btn.recording{animation:pulse 1.2s ease-in-out infinite;background:linear-gradient(135deg,#e74c3c,#c0392b)}
.record-btn svg{width:36px;height:36px;fill:#fff}
.record-status{margin-top:12px;font-size:13px;color:#888}
.record-status .timer{font-size:24px;font-weight:700;color:var(--red);font-family:ui-monospace,Menlo,monospace}
.record-status .hint{display:block;margin-top:4px}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(230,0,32,.4)}50%{box-shadow:0 0 0 20px rgba(230,0,32,0)}}

.voice-text-box{background:var(--gray);border-radius:var(--r);padding:14px;margin-top:14px;font-size:13px;line-height:1.7;color:#555;min-height:60px;text-align:left}
.voice-text-box:empty::after{content:'点击录音按钮开始口述…';color:#bbb}
.voice-actions{display:flex;gap:8px;margin-top:10px;justify-content:center}

/* 图片网格 */
.img-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.img-grid .img-cell{aspect-ratio:1;border-radius:var(--r-s);overflow:hidden;position:relative;background:var(--gray-2);border:1px solid var(--line)}
.img-grid .img-cell img{width:100%;height:100%;object-fit:cover}
.img-grid .img-cell .del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.55);color:#fff;font-size:12px;line-height:22px;text-align:center;cursor:pointer}
.img-grid .img-add{aspect-ratio:1;border:2px dashed var(--line);border-radius:var(--r-s);display:flex;align-items:center;justify-content:center;font-size:32px;color:#bbb;cursor:pointer;transition:.15s}
.img-grid .img-add:active{background:var(--blue-bg);border-color:var(--blue)}

/* AI 草稿预览 */
.draft-preview{background:linear-gradient(135deg,#F6F9FF,#EAF2FA);border:1px solid #D3E4F5;border-radius:var(--r);padding:16px;margin:12px 16px}
.draft-preview h4{font-size:15px;color:var(--blue-d);margin:0 0 10px;display:flex;align-items:center;gap:8px}
.draft-field{margin-bottom:10px}
.draft-field label{font-size:12px;color:#888;display:block;margin-bottom:3px}
.draft-field input,.draft-field textarea{width:100%;border:1px solid #D3E4F5;border-radius:6px;padding:8px 10px;font-size:13px;background:#fff;outline:none;font-family:inherit}
.draft-field textarea{min-height:70px;resize:vertical}
/* 必填项标记与校验失败态（2026-10-20）：车型/车辆背景为强制必填，
   失败时红框 + 浅红底，避免长表单里用户找不到是哪一项没过 */
.draft-field label .req{color:#E60020;font-style:normal;font-weight:700;font-size:12px}
.draft-field input.draft-invalid,.draft-field textarea.draft-invalid{border-color:#E60020;background:#FFF5F6;box-shadow:0 0 0 2px rgba(230,0,32,.08)}
.draft-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.draft-tags .dtag{background:var(--blue-bg);color:var(--blue);border-radius:12px;padding:3px 10px;font-size:12px;display:flex;align-items:center;gap:4px}
.draft-tags .dtag .x{cursor:pointer;font-weight:700;opacity:.6}
.draft-tags .dtag .x:hover{opacity:1}

/* 案例审核 */
.review-card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);margin:0 0 12px;padding:14px}
.review-card .rc-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}
.review-card .rc-title{font-size:15px;font-weight:700;color:var(--ink);flex:1;line-height:1.4}
.review-card .rc-meta{font-size:11px;color:#999;margin-top:4px}
.review-card .rc-body{font-size:13px;color:#555;line-height:1.6;margin-top:8px}
.review-card .rc-body b{color:var(--ink);font-size:12px;display:block;margin-bottom:2px}
.review-card .rc-actions{display:flex;gap:8px;margin-top:12px}
.review-card .rc-actions .btn{flex:1;text-align:center}
.review-status{display:inline-block;font-size:11px;padding:3px 8px;border-radius:10px;font-weight:600}
.review-status.pending{background:#FFF6E0;color:#B8860B}
.review-status.published{background:#E8F7EE;color:var(--green)}
.review-status.rejected{background:var(--red-bg);color:var(--red)}

/* TR 报告 */
.tr-card{background:#fff;border-radius:var(--r);box-shadow:var(--shadow);margin:0 16px 12px;padding:14px;cursor:pointer;transition:.15s}
.tr-card:active{transform:scale(.99)}
.tr-card .tr-spn{font-family:ui-monospace,Menlo,monospace;font-size:13px;color:var(--blue);font-weight:700;margin-bottom:4px}
.tr-card .tr-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.4}
.tr-card .tr-summary{font-size:12px;color:#666;margin-top:6px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tr-card .tr-meta{font-size:11px;color:#999;margin-top:8px}
.tr-risk{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;font-weight:600;margin-left:6px}
.tr-risk.high{background:var(--red-bg);color:var(--red)}
.tr-risk.mid{background:#FFF6E0;color:#B8860B}
.tr-risk.low{background:#E8F7EE;color:var(--green)}

.tr-detail-hero{background:linear-gradient(135deg,#1a1a2e,#16213e);color:#fff;padding:20px 16px}
.tr-detail-hero h2{margin:0 0 6px;font-size:18px;line-height:1.4}
.tr-detail-hero .m{font-size:12px;opacity:.8}
.tr-section{background:#fff;border-radius:var(--r);padding:14px;margin:12px 16px;box-shadow:var(--shadow)}
.tr-section h4{font-size:14px;font-weight:700;margin:0 0 8px;color:var(--ink)}
.tr-section .compare-table{width:100%;font-size:12px;border-collapse:collapse}
.tr-section .compare-table th,.tr-section .compare-table td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
.tr-section .compare-table th{background:var(--gray);font-weight:600;font-size:11px}
.tr-part-list{display:flex;flex-wrap:wrap;gap:6px}
.tr-part-list span{background:var(--gray-2);border-radius:12px;padding:4px 10px;font-size:12px;color:#555}

/* 录音波形动画 */
.waveform{display:flex;align-items:center;justify-content:center;gap:3px;height:40px;margin:10px 0}
.waveform .bar{width:3px;background:var(--red);border-radius:2px;animation:wave 0.8s ease-in-out infinite;box-shadow:none;height:auto}
.waveform .bar:nth-child(1){animation-delay:0s;height:20px}
.waveform .bar:nth-child(2){animation-delay:0.1s;height:30px}
.waveform .bar:nth-child(3){animation-delay:0.2s;height:25px}
.waveform .bar:nth-child(4){animation-delay:0.3s;height:35px}
.waveform .bar:nth-child(5){animation-delay:0.4s;height:28px}
.waveform .bar:nth-child(6){animation-delay:0.5s;height:32px}
.waveform .bar:nth-child(7){animation-delay:0.6s;height:22px}
@keyframes wave{0%,100%{transform:scaleY(1)}50%{transform:scaleY(0.4)}}

/* 图片画廊（案例详情） */
.img-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px 16px;background:#fff}
.img-gallery .img-item{border-radius:8px;overflow:hidden;cursor:pointer;position:relative;aspect-ratio:1;background:var(--gray-2)}
.img-gallery .img-item img{width:100%;height:100%;object-fit:cover}
.img-gallery .img-item span{position:absolute;bottom:0;left:0;right:0;background:rgba(0,0,0,.5);color:#fff;font-size:10px;padding:4px 6px;text-align:center}

/* 图片查看器 */
.img-viewer{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:10000;display:none;align-items:center;justify-content:center;flex-direction:column}
.img-viewer .img-viewer-inner{max-width:95vw;max-height:90vh;position:relative;display:flex;flex-direction:column;align-items:center}
.img-viewer .img-viewer-inner img{max-width:95vw;max-height:78vh;object-fit:contain;border-radius:4px}
.img-viewer .img-viewer-close{position:absolute;top:-40px;right:0;width:36px;height:36px;background:rgba(255,255,255,.15);color:#fff;border-radius:50%;font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.img-viewer .img-viewer-title{color:#fff;font-size:13px;margin-top:10px;text-align:center}
.img-viewer .img-viewer-nav{display:flex;gap:16px;align-items:center;margin-top:10px}
.img-viewer .img-viewer-nav button{background:rgba(255,255,255,.15);color:#fff;border:none;border-radius:20px;padding:8px 16px;font-size:13px;cursor:pointer}
.img-viewer .img-viewer-nav span{color:#999;font-size:12px}

/* ===== V4 审核编辑弹层 ===== */
.review-edit-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:flex-end;justify-content:center}
.review-edit-sheet{width:100%;max-width:414px;max-height:88vh;overflow-y:auto;background:#fff;border-radius:16px 16px 0 0;padding:18px 16px 28px;animation:slideUp .25s ease}
.review-edit-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:14px;display:flex;align-items:center;gap:6px}
.review-edit-actions{display:flex;gap:10px;margin-top:16px}
.review-edit-actions .btn{flex:1}
.need-auth.pill.dim{opacity:.5;pointer-events:none;background:var(--gray-2);color:#bbb;border-color:var(--line)}

/* ===== V4 专家标签 ===== */
.expert-badge{display:inline-block;background:linear-gradient(135deg,#D4A017,#B8860B);color:#fff;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;vertical-align:middle}

/* ============================================================
 * V5 首页改版：高端大气的深色科技 Hero + 大画面内容
 * 标题字体：得意黑（Smiley Sans，OFL 开源免费商用）
 * 正文：现代系统字体栈（苹方/鸿蒙/小米/雅黑），零加载
 * ============================================================ */
@font-face{
  font-family:'Smiley Sans';
  src:url('fonts/smiley-sans.woff2') format('woff2');
  font-weight:normal;font-style:normal;font-display:swap;
}
/* 品牌黑金标题：思源宋体 Black（Source Han Serif SC，SIL OFL 开源免费商用）
   已本地子集化（仅品牌用字），woff2 约 14KB，加载零负担 */
@font-face{
  font-family:'SerifSC Black';
  src:url('fonts/serif-black.woff2') format('woff2');
  font-weight:900;font-display:swap;
}
/* 英文衬线：Cinzel（SIL OFL 开源免费商用，罗马铭文气质） */
@font-face{
  font-family:'Cinzel';
  src:url('fonts/cinzel-700.woff2') format('woff2');
  font-weight:700;font-display:swap;
}
html,body{font-family:"MiSans","HarmonyOS Sans SC","PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif}

/* ---- Hero 大画面（红灰主题 + 黑金品牌徽章） ---- */
.hero{position:relative;overflow:hidden;
  background:linear-gradient(160deg,#232325 0%,#57101F 46%,#D4001B 100%);
  color:#fff;padding:12px 16px 20px}
.hero::before{content:'';position:absolute;top:-150px;right:-110px;width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,110,90,.34),transparent 68%)}
.hero::after{content:'';position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse at 72% 14%,#000 22%,transparent 72%);
  mask-image:radial-gradient(ellipse at 72% 14%,#000 22%,transparent 72%);pointer-events:none}

.hero-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
/* 品牌文字：鎏金衬线字直接落在红灰 Hero 上（无黑底） */
.hero-brand{display:flex;align-items:center;min-width:0;max-width:250px}
.hero-tt b{font-family:'SerifSC Black','Smiley Sans',serif;font-size:20px;font-weight:900;letter-spacing:2px;display:block;line-height:1.2;
  background:linear-gradient(179deg,#FFF6DA 0%,#F2D995 28%,#D2A65E 56%,#B1823A 80%,#E4C68C 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 1.5px 2px rgba(90,0,10,.35))}
.hero-tt span{font-family:'Cinzel','Times New Roman',serif;font-weight:700;font-size:8px;letter-spacing:2.6px;
  color:rgba(255,224,168,.96);text-transform:uppercase;display:block;margin-top:4px;
  max-width:215px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  text-shadow:0 1px 2px rgba(90,0,10,.3)}
.hero-user{min-width:76px;display:flex;justify-content:flex-end}
.hero-user .hu-login{font-size:12px;color:#fff;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:6px 13px;cursor:pointer}
.hero-user .hu-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#FF5B5C,#C20E1D);color:#fff;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(180,10,30,.4);cursor:pointer;overflow:hidden}
.hero-user .hu-avatar img{width:100%;height:100%;object-fit:cover}

.hero-main{position:relative;z-index:2;padding:24px 2px 20px}
.hero-greet{font-size:13px;opacity:.9;letter-spacing:.5px}
.hero-title{font-family:'Smiley Sans';font-size:28px;letter-spacing:1.5px;margin:7px 0 18px;color:#fff;text-shadow:0 3px 20px rgba(0,0,0,.3)}
/* 搜索组件：白色长椭圆条，右端回缩进红色按钮之下不外露；
   金色正圆相机左移，骑出长条上下边沿 */
.hero-search{position:relative;display:flex;align-items:center;height:42px;background:#fff;border-radius:21px;
  padding:0 0 0 14px;box-shadow:0 10px 26px rgba(110,0,14,.22)}
.hero-search .hs-pill{flex:1;min-width:0;display:flex;align-items:center;position:relative}
.hero-search .hs-pill .hs-ic{width:16px;height:16px;flex-shrink:0;color:#B99055}
.hero-search input{flex:1;border:none;outline:none;background:transparent;font-size:14px;height:34px;margin:0;padding:0 110px 0 8px;color:var(--ink);min-width:0}
.hero-search input::placeholder{color:#9AA3B2}
/* 正圆相机：50px 小一圈，高出搜索条上下沿，与收窄后的红按钮紧挨 */
.hero-search .hs-scan{position:absolute;right:60px;top:50%;transform:translateY(-50%);width:50px;height:50px;
  padding:0;border:none;border-radius:50%;z-index:2;flex-shrink:0;
  background:radial-gradient(circle at 32% 26%,#F9E8B8,#DFB46A 52%,#B98A3E);
  border:2.5px solid #fff;box-shadow:0 5px 13px rgba(140,85,18,.45);
  display:flex;align-items:center;justify-content:center;cursor:pointer}
.hero-search .hs-scan svg{width:23px;height:23px;color:#5C3C0B}
.hero-search .hs-scan:active{transform:translateY(-50%) scale(.93)}
/* 搜索按钮：红色渐变，高度与白条一致，宽度收窄，仍叠在长条右端 */
.hero-search .hs-go{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1;flex-shrink:0;
  border:none;border-radius:21px;background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;
  font-size:14.5px;font-weight:700;letter-spacing:1px;padding:0 14px;height:42px;cursor:pointer;
  box-shadow:0 5px 14px rgba(200,10,35,.4)}
.hero-search .hs-go:active{transform:translateY(-50%) scale(.97)}
.hero-tip{font-size:11px;opacity:.62;margin-top:11px;letter-spacing:.5px}

.hero-stats{position:relative;z-index:2;display:flex;background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:12px 8px;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 8px 28px rgba(0,0,0,.18)}
.hero-stats .hs{flex:1;text-align:center;position:relative}
.hero-stats .hs+.hs::before{content:'';position:absolute;left:0;top:20%;height:60%;width:1px;background:rgba(255,255,255,.16)}
.hero-stats .hs b{font-family:'Smiley Sans';font-size:22px;display:block;letter-spacing:1px;color:#fff}
.hero-stats .hs span{font-size:10.5px;opacity:.75;letter-spacing:2px;display:block;margin-top:2px}

/* ---- 快捷功能（5 宫格悬浮卡） ---- */
.quick{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;padding:0 14px;margin-top:-2px;background:var(--gray)}
.quick .q{background:#fff;border:1px solid #EDF0F4;border-radius:15px;padding:14px 3px 11px;text-align:center;cursor:pointer;transition:.15s;box-shadow:0 5px 16px rgba(120,16,32,.06);margin-top:-24px}
.quick .q:active{transform:scale(.95)}
.quick .q .ic{width:42px;height:42px;margin:0 auto 8px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 5px 12px rgba(0,0,0,.14)}
.quick .q .ic svg{width:21px;height:21px;fill:currentColor}
.quick .q span{font-size:11.5px;color:#3A3A40;font-weight:600;letter-spacing:.5px}
.ic.purple{background:linear-gradient(135deg,#6F6F76,#34343A)}

/* ---- 首页区块 ---- */
.sec{padding:20px 16px 12px;display:flex;align-items:center;justify-content:space-between}
.sec h3{font-family:'Smiley Sans';font-size:17px;letter-spacing:.5px;margin:0;color:var(--ink)}
.sec a{font-size:12px;color:var(--red)}

/* ===== V5 电路图库：按车型分组 + 双列网格卡片 ===== */
.ct-group{margin-bottom:8px}
.ct-gtitle{font-family:'Smiley Sans';font-size:15px;letter-spacing:.5px;padding:16px 16px 10px;display:flex;align-items:center;gap:8px;color:var(--ink)}
.ct-gtitle span{font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:11px;color:#9AA0AA;background:#F0F1F3;border-radius:10px;padding:1px 8px}
.ct-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:0 16px 8px}
.ct-card{background:#fff;border:1px solid #EDF0F4;border-radius:12px;overflow:hidden;box-shadow:0 3px 12px rgba(35,24,21,.05);cursor:pointer;transition:.15s}
.ct-card:active{transform:scale(.97)}
.ct-thumb{position:relative;background:#F5F6F8;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ct-thumb img{width:100%;height:100%;object-fit:cover}
.ct-page{position:absolute;right:6px;bottom:6px;background:rgba(0,0,0,.55);color:#fff;font-size:10px;padding:2px 8px;border-radius:10px;letter-spacing:.5px}
.ct-pdf{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#B8860B;font-weight:700;font-size:14px;background:#FFF9EC}
.ct-info{padding:8px 10px 10px}
.ct-title{font-size:12px;color:#333;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:36px}
.ct-tags{display:flex;align-items:center;justify-content:space-between;margin-top:6px}
.ct-mtag{font-size:10px;background:#FFF6E0;color:#B8860B;border-radius:4px;padding:1px 6px}
.ct-time{font-size:10px;color:#B4BAC4}

/* ===== V5 弹层 & 注册问题 ===== */
.mask{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:999;display:flex;align-items:center;justify-content:center;padding:24px}
.mask-card{background:#fff;border-radius:16px;padding:22px 18px;width:100%;max-width:340px;box-shadow:0 12px 40px rgba(0,0,0,.25);animation:slideUp .2s ease}
.mask-icon{font-size:34px;text-align:center;margin-bottom:10px}
.mask-title{font-size:16px;font-weight:700;color:var(--ink);margin-bottom:8px}
.mask-txt{font-size:13px;color:#666;line-height:1.7}
.mask .field input{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;outline:none;font-family:inherit}
.mask .field input:focus{border-color:var(--blue)}
.mask .field label{font-size:12px;color:#888;margin-bottom:5px;display:block}
@keyframes slideUp{from{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}

/* 注册问题后台卡片 */
.ri-card{background:#fff;border:1px solid #EDF0F4;border-radius:14px;padding:14px;margin-bottom:10px;box-shadow:0 3px 10px rgba(35,24,21,.04)}
.ri-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ri-name{font-size:15px;font-weight:700}
.ri-st{font-size:11px;border-radius:5px;padding:2px 8px}
.ri-st.pending{background:#FFF6E0;color:#B8860B}
.ri-st.approved{background:#EAF7EF;color:#1B7A3E}
.ri-st.rejected{background:#FDECEC;color:#C00017}
.ri-info{font-size:12px;color:#666;line-height:1.8}
.ri-info b{color:var(--ink);font-weight:600}
.ri-actions{display:flex;gap:8px;margin-top:12px}
.ri-actions .btn{flex:1;padding:9px;font-size:12.5px;height:auto;border-radius:10px}
.ri-note{font-size:11px;color:#999;margin-top:8px;line-height:1.6;background:#F7F8FA;padding:7px 10px;border-radius:8px}

/* ===== V5 资料中心 ===== */
.data-hero{position:relative;overflow:hidden;background:linear-gradient(160deg,#232325 0%,#57101F 46%,#D4001B 100%);color:#fff;padding:14px 16px 16px}
.data-hero::before{content:'';position:absolute;top:-90px;right:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(255,110,90,.35),transparent 65%)}
.data-hero::after{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:24px 24px;-webkit-mask-image:radial-gradient(ellipse at 80% 20%,#000 25%,transparent 70%);mask-image:radial-gradient(ellipse at 80% 20%,#000 25%,transparent 70%)}
.dh-top{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}
.dh-brand{display:flex;align-items:center;gap:9px}
.dh-logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#FF5B26,#E60020);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(230,0,32,.45)}
.dh-logo svg{width:19px;height:19px}
.dh-tt b{font-family:'Smiley Sans';font-size:16px;letter-spacing:1px;display:block;line-height:1.2}
.dh-tt span{display:block;font-size:8px;opacity:.6;letter-spacing:1.5px;margin-top:1px}
.dh-search{display:flex;align-items:center;background:#fff;border-radius:24px;padding:5px 5px 5px 14px;box-shadow:0 10px 28px rgba(0,0,0,.25);position:relative;z-index:2;margin-top:12px}
.dh-search .ds-ic{width:18px;height:18px;flex-shrink:0}
.dh-search input{flex:1;border:none;outline:none;background:transparent;font-size:13.5px;height:34px;margin:0;padding:0 8px;color:var(--ink)}
.dh-search .ds-go{border:none;border-radius:18px;background:linear-gradient(135deg,var(--red),var(--red-d));color:#fff;font-size:13px;font-weight:600;padding:0 16px;height:34px;cursor:pointer}

/* 内容入口：一行 4 个图标 */
.data-panel{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin:12px 16px;padding:16px 2px 12px;
  background:#fff;border:1px solid #EDF0F4;border-radius:16px;box-shadow:0 8px 26px rgba(35,24,21,.10)}
.dp-btn{display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer;padding:0 2px;min-width:0;border-right:1px solid #F3F4F6}
.dp-btn:last-child{border-right:none}
.dp-btn:active{transform:scale(.94)}
.dp-ic{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 5px 12px rgba(0,0,0,.12)}
.dp-ic svg{width:22px;height:22px}
.dp-name{font-size:12px;font-weight:600;color:#2B2B30;letter-spacing:.3px}
.dp-num{font-size:10px;color:#9AA1AC;margin-top:-3px}
.data-cats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px 14px 2px}
.dc-card{background:#fff;border:1px solid #EDF0F4;border-radius:14px;padding:14px 2px 12px;cursor:pointer;transition:.15s;box-shadow:0 3px 12px rgba(35,24,21,.05);display:flex;flex-direction:column;align-items:center;text-align:center}
.dc-card:active{transform:scale(.95)}
.dc-ic{width:44px;height:44px;border-radius:14px;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 12px rgba(0,0,0,.14)}
.dc-ic svg{width:22px;height:22px}
.dc-t{margin-top:8px;min-height:17px}
.dc-t b{font-size:12.5px;display:block;color:var(--ink);letter-spacing:.3px}
.dc-t span{display:none}
.dc-n{margin-top:3px;font-size:10px;color:#9AA0AA;font-family:inherit;letter-spacing:0}
.dc-more{opacity:.85}
.dc-more .dc-n{color:#D97706}

/* 收藏电路图横滑 */
.fav-scroll{display:flex;gap:10px;overflow-x:auto;padding:2px 16px 10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.fav-scroll::-webkit-scrollbar{display:none}
.fav-card{width:128px;flex-shrink:0;background:#fff;border:1px solid #EDF0F4;border-radius:12px;overflow:hidden;cursor:pointer;box-shadow:0 3px 10px rgba(35,24,21,.05)}
.fav-card:active{transform:scale(.97)}
.fav-thumb{position:relative;background:#F5F6F8;aspect-ratio:16/11}
.fav-thumb img{width:100%;height:100%;object-fit:cover}
/* 收藏标：细线条淡色，替代大红心 */
.fav-thumb .heart{position:absolute;top:5px;right:5px;width:22px;height:22px;background:rgba(20,22,26,.28);border:1px solid rgba(255,255,255,.35);border-radius:50%;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.fav-thumb .heart svg{width:12px;height:12px;color:rgba(255,255,255,.9);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.fav-title{font-size:11px;color:#333;padding:7px 9px 8px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ===== V6 电路图查看器：沉浸式看图 ===== */
/* 查看页整屏变黑，隐藏底部导航，控件透明悬浮在图上方 */
#page-circuit-view.active{display:flex;flex-direction:column;height:100vh;height:100dvh;padding-bottom:0;overflow:hidden;background:#0A0B0E}
#page-circuit-view.active #circuit-view-body{flex:1;min-height:0;display:flex}
body.in-cv .tabbar{display:none}
.cv-stage{position:relative;flex:1;min-height:0;background:#0A0B0E;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}
.cv-stage img{max-width:100%;max-height:100%;object-fit:contain;will-change:transform;-webkit-user-drag:none;user-drag:none}
.cv-hint{position:absolute;bottom:calc(68px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:rgba(0,0,0,.58);color:#fff;font-size:11px;padding:4px 14px;border-radius:16px;opacity:0;transition:opacity .35s;white-space:nowrap;pointer-events:none;z-index:6}
/* 顶部悬浮：返回 + 标题 + 收藏 */
.cv-float{position:absolute;top:calc(10px + env(safe-area-inset-top));left:10px;right:10px;display:flex;align-items:center;gap:6px;z-index:7;pointer-events:none}
.cv-ibtn{pointer-events:auto;width:38px;height:38px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(12,14,18,.44);border:1px solid rgba(255,255,255,.14);border-radius:50%;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.18)}
.cv-ibtn:active{background:rgba(255,255,255,.22)}
.cv-ibtn svg{width:20px;height:20px}
/* 底部收藏钮：半透明悬浮圆 + 线条心（收藏后实心红），替代顶部大红心 */
.cv-fav2{position:absolute;bottom:calc(12px + env(safe-area-inset-bottom));right:12px;z-index:8;
  width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#fff;background:rgba(12,14,18,.44);border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.cv-fav2:active{background:rgba(255,255,255,.24)}
.cv-fav2 svg{width:21px;height:21px}
.cv-fav2.on{color:#FF3B4E}
.cv-ftitle{pointer-events:auto;flex:1;min-width:0;color:#fff;font-size:12.5px;font-weight:600;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:rgba(12,14,18,.34);padding:8px 14px;border-radius:999px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer}
/* 底部悬浮翻页条：透明胶囊 + 线条图标，不遮图、可穿透空隙拖图 */
.cv-fbar{position:absolute;bottom:calc(12px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:2px;padding:3px 6px;border-radius:999px;background:rgba(12,14,18,.44);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 2px 10px rgba(0,0,0,.18);pointer-events:none}
.cv-fbtn{pointer-events:auto;width:38px;height:34px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.95);cursor:pointer;border-radius:999px}
.cv-fbtn:active{background:rgba(255,255,255,.24)}
.cv-fbtn svg{width:20px;height:20px}
.cv-fpg{font-size:12px;color:rgba(255,255,255,.88);min-width:56px;text-align:center;font-variant-numeric:tabular-nums;padding:0 6px}

/* ===== 线条风格图标按钮（电路图库 / 搜索页通用） ===== */
.cu-search-btn{width:38px;height:38px;min-width:38px;border-radius:50%;border:1.5px solid #E1E4E9;
  background:#fff;color:#7A8494;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin:0}
.cu-search-btn:active{background:#F3F4F6}
.cu-search-btn svg{width:19px;height:19px}
.cu-up{width:32px;height:32px;min-width:32px;border-radius:50%;border:1.5px solid #E1E4E9;
  background:#fff;color:#C20E1D;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin:0}
.cu-up:active{background:#FDF1F1}
.cu-up svg{width:17px;height:17px}

/* ===== AI 故障搜索页 ===== */
.as-head{display:flex;align-items:center;gap:2px;background:#fff;padding:5px 6px;border-bottom:1px solid #F0F1F3}
.as-back{width:30px;height:30px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#3A3A40;cursor:pointer;border-radius:50%}
.as-back:active{background:#F3F4F6}
.as-back svg{width:20px;height:20px}
.as-head b{font-size:15px;font-weight:600;color:#2B2B30;letter-spacing:.3px;font-family:'PingFang SC','Microsoft YaHei',sans-serif}
.as-head .as-count{font-size:12px;color:#9AA1AC;padding-right:10px}
.as-cam{width:40px;height:40px;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:#6B7280;
  cursor:pointer;border-radius:50%;border:1.5px solid #E1E4E9;background:#fff;padding:0}
.as-cam:active{background:#F3F4F6}
.as-cam svg{width:19px;height:19px}
.as-searchwrap{padding:8px 16px 10px;border-bottom:1px solid #F0F1F3;background:#fff}
#page-aisearch .search{gap:8px}
#page-aisearch .search input{flex:1;border:1px solid #E4E6EB;border-radius:20px;padding:9px 14px;
  height:40px;font-size:14px;background:#fff;color:#2B2B30;outline:none;transition:.15s;margin:0}
#page-aisearch .search input::placeholder{color:#A9B0BB}
#page-aisearch .search input:focus{border-color:var(--red);background:#fff;box-shadow:none}
#page-aisearch .cu-search-btn{width:40px;height:40px;min-width:40px;
  background:linear-gradient(135deg,#E60020,#B50E1D);border:none;color:#fff;
  box-shadow:0 3px 8px rgba(200,10,35,.35)}
#page-aisearch .cu-search-btn:active{background:#C20E1D;opacity:.92}
#page-aisearch .cu-search-btn svg{width:20px;height:20px}
.as-empty{text-align:center;color:#A9B0BB;padding:56px 20px;font-size:13px;line-height:2.1}

/* ===== 案例列表页（案例集） ===== */
#page-cases .as-head{border-bottom:none}                       /* 去掉搜索框上方的灰线 */
#page-cases .search{gap:10px;align-items:center}
#page-cases .search input{flex:1;height:46px;border:1.5px solid #E2E5EB;border-radius:23px;padding:0 16px;
  font-size:14.5px;background:#fff;color:#2B2B30;outline:none;transition:.15s;margin:0;box-sizing:border-box}
#page-cases .search input::placeholder{color:#A9B0BB}
#page-cases .search input:focus{border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(230,0,32,.07)}
#page-cases .cu-search-btn{width:46px;height:46px;min-width:46px;border-radius:50%;box-sizing:border-box;
  background:#fff;border:2px solid var(--red);color:var(--red);
  box-shadow:0 2px 8px rgba(230,0,32,.12);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin:0}
#page-cases .cu-search-btn:active{background:#FFF0EE;opacity:.9}
#page-cases .cu-search-btn svg{width:21px;height:21px;stroke-width:2}
.cs-searchwrap{padding:8px 16px 10px;border-bottom:1px solid #F0F1F3}
.cs-sorts{margin-top:10px}
/* 案例卡扩宽 + 阴影立体 */
#page-cases .pad{padding:10px 12px}
#page-cases .card.case{margin-left:12px;margin-right:12px;
  box-shadow:0 5px 14px rgba(30,12,8,.06),0 1px 3px rgba(30,12,8,.04)}
/* 案例标签只排一行 */
.card.case .meta{flex-wrap:nowrap;overflow:hidden;white-space:nowrap}
.card.case .meta .tag{flex-shrink:0;white-space:nowrap}

/* 搜索结果系统标签 chips：紧凑、不抢戏 */
.sys-chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px 6px}
.sys-chip{font-size:11.5px;color:#4A5568;background:#fff;border:1px solid #E1E4E9;border-radius:12px;padding:4px 10px;cursor:pointer;transition:.15s;line-height:1.4}
.sys-chip:active{transform:scale(.95)}
.sys-chip.on{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.sys-glabel{font-size:11px;color:#9AA1AC;padding:6px 2px 0 0;letter-spacing:.5px}
/* ===== V5 电路图列表：单行列表（图小标题长，一屏多行） ===== */
.ct-grid{display:block;padding:0 14px 8px}
.ct-row{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid #EDF0F4;border-radius:12px;padding:8px 10px;margin-bottom:9px;cursor:pointer;transition:.15s;box-shadow:0 2px 8px rgba(35,24,21,.04)}
.ct-row:active{transform:scale(.985);background:#FAFAFB}
.ct-row-thumb{position:relative;width:52px;height:52px;flex-shrink:0;border-radius:8px;overflow:hidden;background:#F5F6F8}
.ct-row-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ct-row-thumb .ct-pdf{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:#B8860B;font-size:10px;font-weight:700;background:#FFF9EC}
.ct-row-thumb .ct-page{position:absolute;right:3px;bottom:3px;background:rgba(0,0,0,.55);color:#fff;font-size:9px;padding:1px 5px;border-radius:7px}
.ct-row-info{flex:1;min-width:0}
.ct-row .ct-title{font-size:13px;color:#2B2B30;line-height:1.5;display:block;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:0;padding:0}
.ct-row-meta{display:flex;align-items:center;gap:6px;margin-top:5px}
.ct-row-meta .ct-mtag{font-size:10px;background:#FFF6E0;color:#B8860B;border-radius:4px;padding:1px 6px}
.ct-row-meta .ct-time{font-size:10px;color:#B4BAC4}
.ct-row-go{font-size:20px;color:#C8CCD4;flex-shrink:0;font-weight:300}

/* ===== 投稿页 V2：传统投稿 / 快捷投稿 上下双卡紧凑布局 ===== */
.qs-head{display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:linear-gradient(135deg,#A80D1B 0%,#E60020 60%,#D4001B 100%);color:#fff;
  padding:12px 16px}
.qs-head b{font-size:16px;letter-spacing:.5px}
.qs-head span{font-size:11px;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sub-card{background:#fff;border-radius:14px;margin:12px 16px 4px;padding:14px 14px 12px;
  box-shadow:0 4px 16px rgba(35,24,21,.06);border:1px solid #F0EDE6}
.sub-card .sub-h{display:flex;align-items:center;gap:10px}
.sub-ic{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.sub-ic.doc{background:#FFF1EF;color:#E60020}
.sub-ic.bolt{background:#EAF6EF;color:#1E9E5A}
.sub-ic svg{width:20px;height:20px}
.sub-t{flex:1;min-width:0}
.sub-t b{font-size:15px;display:block;line-height:1.3}
.sub-t span{font-size:11px;color:#9AA1AC;display:block;margin-top:2px;line-height:1.5}
.sub-go{flex-shrink:0;border:none;border-radius:16px;padding:7px 14px;font-size:12.5px;font-weight:600;cursor:pointer;
  background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;box-shadow:0 2px 8px rgba(200,10,35,.3)}
.sub-go:active{transform:scale(.96)}
.sub-fmts{display:flex;align-items:center;gap:6px;margin-top:11px;flex-wrap:wrap}
.sub-fmts i{font-style:normal;font-size:10.5px;font-weight:700;color:#6B7280;background:#F3F5F7;
  border-radius:6px;padding:3px 8px;letter-spacing:.3px}
.sub-fmts span{font-size:10.5px;color:#B4BAC4;margin-left:auto}
.sub-panel{margin-top:12px;padding-top:12px;border-top:1px dashed #EEE7D8}
.sub-panel .field{margin-bottom:9px}
.sub-panel .field input,.sub-panel .field textarea{width:100%;box-sizing:border-box}

/* 快捷卡录音区：横向（左圆钮 + 右状态/波形/文本） */
.qk-rec{display:flex;gap:12px;align-items:flex-start;margin-top:12px}
.qk-rec .record-btn{width:62px;height:62px;margin:0;flex-shrink:0;box-shadow:0 4px 16px rgba(230,0,32,.3)}
.qk-rec .record-btn svg{width:28px;height:28px}
.qk-r-main{flex:1;min-width:0}
.qk-r-main .record-status{margin-top:2px;font-size:12px;text-align:left;min-height:32px}
.qk-r-main .record-status .timer{font-size:19px}
.qk-r-main .record-status .hint{display:block;margin-top:3px;color:#9AA1AC;line-height:1.5}
.qk-r-main .waveform{margin:2px 0 6px;height:26px}
.qk-r-main .waveform .bar{height:auto}
.qk-r-main .voice-text-box{margin-top:0;min-height:52px;padding:10px 12px;font-size:12.5px;border-radius:10px}
.qk-rec + .voice-actions{margin-top:12px}
.qk-media{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.qk-add{display:inline-flex;align-items:center;gap:6px;border:1px solid #E4E6EB;background:#FAFBFC;
  border-radius:10px;padding:8px 12px;font-size:12.5px;color:#3A3A40;cursor:pointer;transition:.15s}
.qk-add:active{background:#F1F3F5}
.qk-add svg{width:17px;height:17px;color:#E60020}
.qk-tip{font-size:10.5px;color:#B4BAC4;margin-left:2px}
/* 视频素材网格 */
.vid-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.vid-grid .vid-cell{aspect-ratio:1;border-radius:10px;overflow:hidden;position:relative;
  background:#101114;border:1px solid var(--line)}
.vid-grid video{width:100%;height:100%;object-fit:cover}
.vid-grid .vid-cell .vc-ic{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;
  justify-content:center;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.55))}
.vid-grid .vid-cell .vc-ic svg{width:34px;height:34px;opacity:.92}
.vid-grid .vid-cell .vc-ic i{font-style:normal;font-size:9.5px;margin-top:4px;max-width:90%;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vid-grid .vid-cell .del{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;
  background:rgba(0,0,0,.55);color:#fff;font-size:11px;line-height:20px;text-align:center;cursor:pointer}

/* ===== 案例审核 V2：列表卡 + 全屏审核工作台（原稿/AI稿） ===== */
.review-card .rc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.review-card .rc-title{font-size:15px;font-weight:700;color:#2B2B30;flex:1;line-height:1.45}
.review-card .rc-meta{font-size:11.5px;color:#8A93A0;margin-top:7px;display:flex;flex-wrap:wrap;align-items:center;gap:5px;line-height:1.7}
.review-card .rc-phen{font-size:13px;color:#555;line-height:1.65;margin-top:9px;background:#F8F9FB;border-radius:10px;padding:9px 11px}
.review-card .rc-raw{font-size:11px;color:#8A6D3B;margin-top:8px;background:#FFFBF0;border:1px solid #F3E7C8;border-radius:8px;padding:5px 9px;display:inline-block}
.rv-src{display:inline-flex;align-items:center;font-size:10.5px;color:#6B7280;background:#F1F3F5;border-radius:6px;padding:2px 7px;font-weight:600}
.rv-src.doc{color:#1668B0;background:#EAF2FA}
.rv-src.voice{color:#1E9E5A;background:#EAF6EF}
.rv-tag-ai{display:inline-flex;font-size:10.5px;color:#1668B0;background:#EAF2FA;border-radius:6px;padding:2px 7px;font-weight:600}
.rv-tag-ai.rv-lv{margin-right:4px}
.rv-lv.lv1{color:#8A5A00;background:#FCEFCB}
.rv-lv.lv2{color:#1668B0;background:#EAF2FA}
.rv-lv.lv3{color:#1E7A3C;background:#E7F4EC}
.rv-lv.lv4{color:#B71C1C;background:#FBE9E7}
.rv-tag-rl{display:inline-flex;font-size:10.5px;color:#fff;background:linear-gradient(135deg,#E60020,#B71C1C);border-radius:6px;padding:2px 7px;font-weight:700;margin-left:2px}
.review-card .rc-actions{display:flex;gap:7px;margin-top:13px}
.review-card .rc-actions .btn{flex:1;text-align:center;height:38px;font-size:13px;display:flex;align-items:center;justify-content:center;padding:0 4px;white-space:nowrap}
.review-card .rc-actions .rv-open{color:#1668B0;border-color:#1668B0;background:#fff}

/* 全屏审核工作台 */
.rw-mask{position:fixed;inset:0;background:#F3F4F6;z-index:60;display:flex}
.rw-sheet{flex:1;display:flex;flex-direction:column;background:#F3F4F6;max-width:414px;margin:0 auto;width:100%;overflow-y:auto}
.rw-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:6px;background:#fff;border-bottom:1px solid #F0F1F3;padding:8px 8px}
.rw-back{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#3A3A40;cursor:pointer;border-radius:50%}
.rw-back:active{background:#F3F4F6}
.rw-back svg{width:21px;height:21px}
.rw-hc{flex:1;min-width:0}
.rw-hc b{font-size:14.5px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rw-hc span{font-size:11px;color:#9AA1AC;display:block;margin-top:2px}
.rw-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#8A93A0;cursor:pointer;font-size:15px}
.rw-tabs{position:sticky;top:48px;z-index:5;display:flex;background:#fff;border-bottom:1px solid #F0F1F3;padding:0 14px}
.rw-tabs span{flex:1;text-align:center;padding:11px 0;font-size:13.5px;color:#6B7280;cursor:pointer;position:relative}
.rw-tabs span.on{color:var(--red);font-weight:700}
.rw-tabs span.on::after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:26px;height:2.5px;border-radius:3px;background:var(--red)}
.rw-body{flex:1;padding:12px 14px 90px}
.rw-note{font-size:12px;color:#6B7280;background:#fff;border:1px solid #F0EDE6;border-radius:10px;padding:8px 12px;line-height:1.6;margin-bottom:10px}
.rw-rawtext{font-size:13px;color:#3A3A40;line-height:1.9;background:#fff;border-radius:12px;padding:14px;white-space:pre-wrap;word-break:break-word;border:1px solid #F0EDE6;box-shadow:0 2px 8px rgba(35,24,21,.04)}
.rw-empty{font-size:13px;color:#8A93A0;background:#fff;border-radius:12px;padding:22px 16px;text-align:center;line-height:1.8}
.rw-file{margin-top:10px;font-size:12.5px;color:#1668B0;background:#EAF2FA;border-radius:10px;padding:9px 12px}
.rw-file a{color:#1668B0;text-decoration:underline}
.rw-imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}
.rw-imgs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid #E7EAEF}
.rw-form{background:#fff;border-radius:12px;padding:14px;border:1px solid #F0EDE6;box-shadow:0 2px 8px rgba(35,24,21,.04)}
.rw-form .field{margin-bottom:11px}
.rw-form .field label{font-size:11.5px;color:#8A93A0;margin-bottom:4px;display:block}
.rw-form input,.rw-form textarea{width:100%;box-sizing:border-box;border:1px solid #E4E6EB;border-radius:10px;padding:9px 11px;font-size:13.5px;background:#FAFBFC;color:#2B2B30;outline:none}
.rw-form input:focus,.rw-form textarea:focus{border-color:var(--red);background:#fff}
.rw-form textarea{resize:vertical;min-height:52px;line-height:1.6}
.rw-foot{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;background:#fff;border-top:1px solid #F0F1F3;box-shadow:0 -4px 16px rgba(35,24,21,.05)}
/* 人工复核分 */
.rw-foot .rw-hs{display:flex;align-items:center;gap:8px;flex:1 1 100%;margin-bottom:2px}
.rw-foot .rw-hs i{font-style:normal;font-size:12px;color:#8A93A0}
.rw-foot .rw-hs input{width:64px;border:1px solid #E4E6EB;border-radius:8px;padding:7px 8px;font-size:13px;text-align:center;outline:none;background:#FAFBFC}
.rw-foot .rw-hs input:focus{border-color:#1668B0}
.rw-btn{flex:1;border:none;border-radius:22px;height:42px;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:5px;transition:.15s}
.rw-btn:active{transform:scale(.97)}
.rw-btn.ai{background:#fff;border:1px solid #1668B0;color:#1668B0}
.rw-btn.ai svg{width:16px;height:16px}
.rw-btn.rj{background:#fff;border:1px solid var(--red);color:var(--red)}
.rw-btn.ok{background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;box-shadow:0 3px 10px rgba(200,10,35,.3)}
/* AI 初审评分卡 V2.0 */
.arv{background:#fff;border-radius:12px;border:1px solid #F0EDE6;box-shadow:0 2px 8px rgba(35,24,21,.04);margin:0 14px 12px;overflow:hidden}
.arv-head{display:flex;align-items:center;gap:8px;padding:11px 13px;background:linear-gradient(135deg,#FBF7EE,#FFF);cursor:pointer;user-select:none}
.arv-head span{font-size:13.5px;font-weight:700;color:#3A3A40}
.arv-head .v2{font-style:normal;font-size:9px;color:#B8860B;background:#F5E6C8;border-radius:5px;padding:1px 5px;margin-left:2px;font-weight:600;vertical-align:2px}
.arv-total{margin-left:auto;display:inline-flex;align-items:baseline;gap:4px;font-size:22px;font-weight:800;color:#3A3A40}
.arv-total em{font-style:normal;font-size:11px;font-weight:700}
.arv-total.lv1{color:#B8860B}.arv-total.lv2{color:#1668B0}.arv-total.lv3{color:#1E7A3C}.arv-total.lv4{color:#B71C1C}
.arv-toggle{text-decoration:none;font-size:10px;color:#B0A898;font-style:normal}
.arv-body{padding:0 13px 13px}
.arv-recl{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.arv-rec{font-size:10.5px;border-radius:6px;padding:2px 8px;font-weight:700}
.arv-rec.ok{color:#1E7A3C;background:#E7F4EC}
.arv-rec.limit{color:#B8860B;background:#FCEFCB}
.arv-rec.bad{color:#B71C1C;background:#FBE9E7}
.arv-rec-txt{font-size:11.5px;color:#B71C1C}
.arv-type,.arv-verdict{font-size:11px;color:#8A93A0;background:#F4F5F7;border-radius:6px;padding:2px 8px}
.arv-red{border:1px solid #F5C6CB;background:#FEF0F0;border-radius:9px;padding:8px 10px;margin-bottom:10px}
.arv-red-i{display:flex;gap:8px;font-size:12px;line-height:1.6;color:#8A1F1F}
.arv-red-i b{white-space:nowrap}
.arv-dims{margin:4px 0 8px}
.arv-dim{margin-bottom:8px}
.arv-dim-h{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:4px}
.arv-dim-h span{color:#555;flex:1}
.arv-dim-h b{font-size:15px;color:#2B2B30}
.arv-cfd{font-style:normal;font-size:9.5px;color:#1E7A3C;background:#E7F4EC;border-radius:5px;padding:1px 5px}
.arv-cfd.mid{color:#B8860B;background:#FCEFCB}
.arv-cfd.red{color:#B71C1C;background:#FBE9E7}
.arv-dim .bar{height:6px;background:#F1F2F4;border-radius:3px}
.arv-dim .bar i{display:block;height:100%;border-radius:3px}
.arv-sub{border:1px dashed #E4E0D4;border-radius:9px;margin-bottom:8px;background:#FDFCF9}
.arv-sub summary{cursor:pointer;font-size:12px;color:#7A6A45;padding:7px 10px;list-style:none}
.arv-sub summary::-webkit-details-marker{display:none}
.arv-sub summary:before{content:'▸ '}
.arv-sub[open] summary:before{content:'▾ '}
.arv-sub-r{display:flex;gap:6px;padding:4px 10px;font-size:11.5px;line-height:1.6;border-top:1px solid #F3F0E8}
.arv-sub-r b{min-width:62px;color:#3A3A40}
.arv-sub-s{min-width:52px;color:#B8860B;font-weight:700}
.arv-sub-r em{font-style:normal;color:#9A9486;flex:1}
.arv-bd,.arv-hi,.arv-is{margin-bottom:8px;font-size:12px}
.arv-bd>span,.arv-hi>div,.arv-is>div{color:#555;line-height:1.7}
.arv-bd b,.arv-hi b,.arv-is b{display:block;font-size:11.5px;color:#8A93A0;margin-bottom:3px}
.arv-bd-r{display:flex;gap:6px;align-items:center;font-size:11.5px;line-height:1.7;color:#555}
.arv-bd-r i{font-style:normal;font-weight:800;color:#1E7A3C;min-width:26px}
.arv-bd-r.d i{color:#B71C1C}
.arv-bd-r em{font-style:normal;color:#9A9486;flex:1}
.arv-hi div,.arv-is div{color:#555}
.arv-hs{margin-top:8px;font-size:12px;color:#1668B0;background:#EAF2FA;border-radius:8px;padding:7px 10px}
.arv-shadow{margin-top:8px;font-size:10.5px;color:#B0A898;line-height:1.6;border-top:1px dashed #EDE8DD;padding-top:7px}
/* 草稿区类型选择与 AI 提示 */
.draft-field select{width:100%;box-sizing:border-box;border:1px solid #E4E6EB;border-radius:10px;padding:9px 11px;font-size:13.5px;background:#FAFBFC;color:#2B2B30;outline:none}
.draft-ai-note{font-size:11.5px;color:#8A6D1F;background:#FFF8EC;border:1px solid #F0DCB0;border-radius:8px;padding:8px 10px;margin-bottom:10px;line-height:1.6}

/* ===== 用户管理（角色分配） ===== */
#page-users .searchwrap{position:static}
#page-users .search input{flex:1;border:1px solid #E4E6EB;border-radius:20px;padding:8px 14px;height:38px;font-size:13.5px;background:#fff;color:#2B2B30;outline:none}
.user-card{background:#fff;border-radius:14px;margin:0 16px 10px;padding:13px 14px;display:flex;flex-wrap:wrap;align-items:center;box-shadow:0 3px 12px rgba(35,24,21,.05);border:1px solid #F0EDE6}
.uc-l{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.uc-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#A80D1B,#E60020);color:#fff;font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.uc-info{min-width:0}
.uc-name{font-size:14.5px;font-weight:600;color:#2B2B30;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uc-sub{font-size:11px;color:#9AA1AC;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uc-badge{font-size:9.5px;color:#fff;background:#6B7280;border-radius:5px;padding:1px 6px;margin-left:4px;vertical-align:1px}
.uc-badge.ad{background:linear-gradient(135deg,#B8860B,#8A6A1E)}
.uc-r{flex-shrink:0;margin-left:8px}
.uc-role{font-size:11px;font-weight:700;border-radius:12px;padding:3px 10px;background:#F1F3F5;color:#6B7280}
.uc-role.rv{background:#EAF2FA;color:#1668B0}
.uc-role.ex{background:#EAF6EF;color:#1E9E5A}
.uc-role.ad{background:#FDF1EC;color:#C2561D}
.uc-roles{display:flex;gap:6px;width:100%;margin-top:10px;padding-top:10px;border-top:1px dashed #F1ECE2}
.uc-chip{flex:1;text-align:center;font-size:11.5px;color:#7A8494;background:#fff;border:1px solid #E1E4E9;border-radius:15px;padding:5px 0;cursor:pointer;transition:.15s}
.uc-chip:active{transform:scale(.96)}
.uc-chip.on{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
#page-users .search{display:flex;align-items:center}

/* ===== 人员底册（专家/技师台账） ===== */
#page-roster .searchwrap{position:static}
#page-roster .search input{flex:1;border:1px solid #E4E6EB;border-radius:20px;padding:8px 14px;height:38px;font-size:13.5px;background:#fff;color:#2B2B30;outline:none}
.roster-add{width:34px;height:34px;border-radius:50%;border:1.5px solid #E1E4E9;background:#fff;color:var(--red);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin-right:6px}
.roster-add:active{background:#FDF1F1}
.roster-add svg{width:18px;height:18px}
.roster-card{background:#fff;border-radius:14px;margin:0 16px 10px;padding:13px 14px;display:flex;align-items:flex-start;box-shadow:0 3px 12px rgba(35,24,21,.05);border:1px solid #F0EDE6}
.rs-l{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0}
.rs-av{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#A80D1B,#E60020);color:#fff;font-size:17px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.rs-info{min-width:0;flex:1}
.rs-name{font-size:14.5px;font-weight:700;color:#2B2B30;display:flex;align-items:center;gap:6px}
.rs-badge{font-size:9.5px;font-weight:700;color:#1E9E5A;background:#EAF6EF;border-radius:6px;padding:2px 7px}
.rs-phone{font-size:11.5px;color:#9AA1AC;margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-station{font-size:12px;color:#6B7280;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px;align-items:center}
.rs-tag{font-size:10px;color:#6B7280;background:#F1F3F5;border-radius:5px;padding:2px 7px;font-weight:600}
.rs-tag.no{color:#1668B0;background:#EAF2FA}
.rs-tag.sp{color:#1E9E5A;background:#EAF6EF}
.rs-tag.seal{color:#8A6D3B;background:#FFF6E0}
.rs-tag.region{color:#7A8494}
.rs-lv{font-size:10px;font-weight:700;border-radius:6px;padding:2px 8px}
.rs-lv.s{background:#F1F3F5;color:#6B7280}
.rs-lv.m{background:#FFF6E0;color:#B8860B}
.rs-lv.h{background:#FDEBD0;color:#C2561D}
.rs-lv.x{background:#EAF2FA;color:#1668B0}
.rs-ops{display:flex;gap:6px;flex-shrink:0;margin-left:6px}
.rs-op{width:30px;height:30px;border-radius:50%;border:1px solid #E4E6EB;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.rs-op svg{width:15px;height:15px}
.rs-op.edit{color:#1668B0}
.rs-op.del{color:var(--red)}
.rs-op:active{transform:scale(.92)}
.roster-more{text-align:center;color:#1668B0;font-size:12.5px;padding:10px 0 22px;cursor:pointer}

/* 底册新增/编辑弹层 */
.roster-mask{position:fixed;inset:0;background:rgba(20,22,28,.46);z-index:80;display:flex;align-items:flex-end;justify-content:center}
.roster-sheet{width:100%;max-width:414px;background:#fff;border-radius:18px 18px 0 0;max-height:88vh;display:flex;flex-direction:column;animation:rsUp .22s ease}
@keyframes rsUp{from{transform:translateY(40px);opacity:.6}to{transform:translateY(0);opacity:1}}
.rs-sheet-h{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px}
.rs-sheet-h b{font-size:16px}
.rs-close{width:30px;height:30px;display:flex;align-items:center;justify-content:center;color:#8A93A0;cursor:pointer}
.rs-sheet-b{flex:1;overflow-y:auto;padding:2px 18px 6px}
.rs-sheet-b .field label{font-size:11.5px;color:#8A93A0;margin-bottom:5px;display:block}
.rs-sheet-b .field input,.rs-sheet-b .field textarea,.rs-sheet-b .field select{width:100%;box-sizing:border-box;border:1px solid #E4E6EB;border-radius:10px;padding:9px 11px;font-size:13.5px;background:#FAFBFC;color:#2B2B30;outline:none}
.rs-sheet-b .field input:focus,.rs-sheet-b .field textarea:focus,.rs-sheet-b .field select:focus{border-color:var(--red);background:#fff}
.rs-sheet-b .field input:disabled{background:#F1F3F5;color:#9AA1AC}
.rs-sheet-b .field textarea{resize:vertical;line-height:1.6}
.rs-hint{font-size:11px;color:#B4BAC4;line-height:1.7;margin-top:12px;background:#F8F9FB;border-radius:9px;padding:9px 11px}
.rs-sheet-f{display:flex;gap:10px;padding:12px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid #F0F1F3}
.rs-btn{flex:1;border:none;border-radius:22px;height:44px;font-size:14px;font-weight:600;cursor:pointer}
.rs-btn.gray{background:#F1F3F5;color:#6B7280}
.rs-btn.red{background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;box-shadow:0 3px 10px rgba(200,10,35,.3)}
.rs-btn:active{transform:scale(.97)}


/* 快捷投稿：纯文字输入（浏览器录音体验差，已去掉录音） */
.qk-text{width:100%;box-sizing:border-box;margin-top:14px;border:1px solid #E4E6EB;border-radius:12px;
  padding:12px 13px;font-size:13.5px;line-height:1.8;color:#2B2B30;background:#FAFBFC;outline:none;resize:vertical;
  font-family:inherit}
.qk-text:focus{border-color:var(--red);background:#fff}
.qk-text::placeholder{color:#A9B0BB}
.qk-text + .voice-actions{margin-top:10px}

/* ===== 底册维度筛选标签（区域 / 维修方向 / 技术等级） ===== */
#roster-filters{background:#fff;border-bottom:1px solid #F0F1F3;padding:8px 0 10px}
.rf-row{display:flex;align-items:flex-start;padding:4px 14px}
.rf-name{flex-shrink:0;width:52px;font-size:11px;color:#9AA1AC;line-height:26px;letter-spacing:.5px}
.rf-chips{display:flex;flex-wrap:wrap;gap:7px;flex:1;min-width:0}
.rf-chip{display:inline-flex;align-items:center;font-size:11.5px;color:#4A5568;background:#F4F5F7;
  border:1px solid #EEF0F3;border-radius:15px;padding:4px 11px;cursor:pointer;transition:.15s;white-space:nowrap}
.rf-chip i{font-style:normal;font-size:10px;color:#9AA1AC;margin-left:4px;font-variant-numeric:tabular-nums}
.rf-chip:active{transform:scale(.95)}
.rf-chip.on{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.rf-chip.on i{color:rgba(255,255,255,.85)}
.rf-chip.more{color:#1668B0;background:#EAF2FA;border-color:#D3E4F5}

/* ===== 底册新增菜单 & Excel 导入预览 ===== */
.imp-opt{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid #F2F3F5;cursor:pointer;border-radius:10px}
.imp-opt:last-of-type{border-bottom:none}
.imp-opt:active{background:#FAFAFB}
.imp-ic{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.imp-ic svg{width:21px;height:21px}
.imp-tx{flex:1;min-width:0}
.imp-tx b{font-size:14.5px;display:block}
.imp-tx span{font-size:11.5px;color:#9AA1AC;display:block;margin-top:3px;line-height:1.55}
.imp-go{color:#C8CCD4;font-size:19px}
.imp-sum{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.imp-sum div{font-size:12.5px;border-radius:8px;padding:6px 11px}
.imp-ok{background:#EAF6EF;color:#1E9E5A}
.imp-ok b{font-size:16px}
.imp-mid{background:#FFF6E0;color:#B8860B}
.imp-bad{background:#FFF0EE;color:#E60020}
.imp-mid b,.imp-bad b{font-size:16px}
.imp-note{font-size:11.5px;color:#9AA1AC;margin:8px 0 4px;line-height:1.7}
.imp-tpl{color:#1668B0;text-decoration:underline;cursor:pointer}
.imp-sec{background:#F8F9FB;border-radius:10px;padding:9px 11px;margin-top:8px}
.imp-sec b{font-size:12px;color:#4A5568;display:block;margin-bottom:5px}
.imp-err{font-size:11.5px;color:#C0392B;line-height:1.8}
.imp-skip{font-size:11.5px;color:#8A6D3B;line-height:1.8}
.imp-more{font-size:11px;color:#9AA1AC;margin-top:3px}

/* ===== 底册页搜索栏精修：去灰线 / 粗搜索框 / 红线条放大镜 ===== */
#page-roster .as-head{border-bottom:none}
#page-roster .searchwrap{border-bottom:none;padding:6px 16px 12px;background:#fff}
#page-roster .search{height:46px;background:#fff;border:1.5px solid #DCE1E8;border-radius:23px;
  padding:0 4px 0 0;display:flex;align-items:center;gap:6px;box-shadow:0 1px 0 #fff, 0 2px 8px rgba(35,24,21,.04)}
#page-roster .search input{flex:1;border:none;background:transparent;height:100%;font-size:14px;
  padding:0 4px 0 16px;color:#2B2B30;outline:none;margin:0}
#page-roster .search input::placeholder{color:#9AA3B2}
#page-roster .search .cu-search-btn{width:40px;height:40px;min-width:40px;border-radius:50%;
  border:1.5px solid rgba(230,0,32,.5);background:#fff;color:#E60020;margin:0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.15s}
#page-roster .search .cu-search-btn:active{background:#FFF0EE}
#page-roster .search .cu-search-btn svg{width:19px;height:19px}

/* ===== 底册 v4：搜索框与放大镜分离 —— 搜索框在左、放大镜在右，视觉拆开 ===== */
#page-roster .searchwrap{border-bottom:none;padding:10px 16px 10px;background:#fff}
#page-roster .search{height:auto;display:flex;align-items:center;gap:10px;background:transparent;border:none;box-shadow:none;padding:0;border-radius:0}
#page-roster .search > #roster-q{flex:1;height:46px;border:1.5px solid #E2E5EB;background:#fff;border-radius:23px;padding:0 18px;font-size:14.5px;color:#2B2B30;outline:none;margin:0;transition:.15s}
#page-roster .search > #roster-q::placeholder{color:#9AA3B2}
#page-roster .search > #roster-q:focus{border-color:var(--red);background:#fff;box-shadow:0 0 0 3px rgba(230,0,32,.08)}
#page-roster .search > .cu-search-btn{flex:0 0 auto;width:46px;height:46px;min-width:46px;border-radius:50%;background:#fff;color:var(--red);border:2px solid var(--red);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;box-shadow:0 2px 8px rgba(230,0,32,.12)}
#page-roster .search > .cu-search-btn:active{background:#FFF0EE;transform:scale(.97)}
#page-roster .search > .cu-search-btn svg{width:20px;height:20px;stroke-width:2.4}
#roster-filters{background:#fff;border-bottom:none;padding:2px 0 8px;margin-top:-2px}
.rf-row{padding:3px 14px}
#roster-count{padding:8px 18px 0}
.roster-card{margin:0 16px 8px}
.roster-more{padding:6px 0 16px}
#page-roster .pad{padding-top:6px}

/* ===== 折叠置顶筛选条（滚动后吸顶） ===== */
#rf-mini{position:fixed;top:0;left:0;right:0;z-index:45;max-width:414px;margin:0 auto;
  background:linear-gradient(180deg,#FAF5E8 0%,#F4ECD8 100%);border-bottom:1px solid #D9C99B;
  box-shadow:0 8px 20px rgba(35,24,21,.18);padding:12px 14px 13px}
#rf-mini.on{display:block !important}
.rfm-row{display:flex;gap:8px;align-items:center}
.rfm-cell{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;background:#fff;
  border:1px solid #E2E5EB;border-radius:14px;padding:8px 8px;cursor:pointer;font-size:12.5px;color:#4A5568}
.rfm-cell.on{border-color:rgba(230,0,32,.6);color:var(--red);font-weight:600}
.rfm-cell b{font-weight:600;max-width:62px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rfm-cell span{color:#9AA1AC;font-weight:400;font-size:11px;display:flex;align-items:center}
.rfm-cell svg{width:13px;height:13px;color:#8A93A0}
.rfm-tip{font-size:11.5px;color:#A16207;font-weight:600;margin-top:9px;text-align:center;letter-spacing:.5px}

/* 折叠条下拉选择面板 */
.rf-picker-mask{position:fixed;inset:0;background:rgba(20,22,28,.42);z-index:90;display:flex;align-items:flex-end;justify-content:center}
.rf-picker-sheet{width:100%;max-width:414px;background:#fff;border-radius:18px 18px 0 0;max-height:66vh;display:flex;flex-direction:column;animation:rsUp .2s ease}
.rf-pk-h{display:flex;align-items:center;justify-content:space-between;padding:15px 18px 9px}
.rf-pk-h b{font-size:15px}
.rf-pk-h span{cursor:pointer;color:#9AA1AC;font-size:12px;padding:4px 6px}
.rf-pk-list{overflow-y:auto;padding:0 14px 14px}
.rf-pk-opt{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-bottom:1px solid #F3F1EA;cursor:pointer;font-size:13.5px;color:#3A3A40;border-radius:9px}
.rf-pk-opt:active{background:#F8F6F1}
.rf-pk-opt .n{color:#B4BAC4;font-size:11.5px}
.rf-pk-opt.on{color:var(--red);font-weight:700}

/* ===== 权限表（角色-权限勾选） ===== */
#page-perms{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
.perm-tabs{display:flex;gap:8px;overflow-x:auto;padding:12px 16px 6px;background:#fff;white-space:nowrap;-webkit-overflow-scrolling:touch}
.perm-tab{flex:0 0 auto;font-size:12.5px;color:#4A5568;background:#F4F5F7;border:1px solid #E7E9EE;border-radius:999px;padding:7px 14px;cursor:pointer;transition:.15s}
.perm-tab.on{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.perm-group{background:#fff;border-radius:14px;margin:0 16px 10px;padding:6px 14px;box-shadow:0 2px 8px rgba(35,24,21,.05);border:1px solid #F0EDE6}
.perm-gt{font-size:12px;color:#8A93A0;padding:9px 2px 3px;font-weight:600;letter-spacing:.4px}
.perm-row{display:flex;align-items:center;justify-content:space-between;padding:10px 2px;border-bottom:1px solid #F6F3ED;font-size:13.5px;color:#2B2B30}
.perm-row:last-child{border-bottom:none}
.perm-chk{position:relative;width:46px;height:26px;flex:0 0 auto}
.perm-chk input{opacity:0;width:0;height:0}
.perm-sl{position:absolute;inset:0;background:#E1E4E9;border-radius:999px;cursor:pointer;transition:.2s}
.perm-sl::before{content:'';position:absolute;left:3px;top:3px;width:20px;height:20px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.perm-chk input:checked + .perm-sl{background:var(--red)}
.perm-chk input:checked + .perm-sl::before{transform:translateX(20px)}
.perm-foot{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:414px;padding:10px 0 calc(10px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid #F0F1F3;z-index:20}
.perm-desc{font-size:11px;color:#9AA1AC;padding:4px 18px 6px;line-height:1.6}

/* ===== 注册协议勾选与弹层 ===== */
.agree-row{display:flex;align-items:flex-start;gap:8px;margin-top:14px;cursor:pointer;font-size:12.5px;color:#666;line-height:1.65;position:relative}
.agree-row input{position:absolute;opacity:0;pointer-events:none}
.agree-mark{flex:0 0 auto;width:18px;height:18px;border:1.5px solid #C9CDD4;border-radius:5px;margin-top:1px;background:#fff;display:flex;align-items:center;justify-content:center;color:#fff;transition:.15s}
.agree-row input:checked + .agree-mark{background:var(--red);border-color:var(--red)}
.agree-mark svg{width:11px;height:11px;opacity:0;transition:.15s}
.agree-row input:checked + .agree-mark svg{opacity:1}
.agree-txt a{color:var(--blue);text-decoration:none}
.agree-mask{position:fixed;inset:0;z-index:120;background:rgba(20,22,28,.46);display:none;align-items:center;justify-content:center;padding:22px 16px}
.agree-sheet{width:100%;max-width:380px;max-height:86vh;background:#fff;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;animation:rsUp .18s ease}
.agree-h{display:flex;justify-content:space-between;align-items:center;padding:15px 18px 10px;border-bottom:1px solid #F0F1F3}
.agree-h b{font-size:15px;color:#2B2B30}
.agree-h span{cursor:pointer;color:#9AA1AC;font-size:13px;padding:4px}
.agree-body{overflow-y:auto;padding:14px 18px 18px;font-size:12.5px;color:#444;line-height:1.85;-webkit-overflow-scrolling:touch}
.agree-body h4{margin:13px 0 4px;font-size:13px;color:#2B2B30}
.agree-body p{margin:5px 0}
.agree-f{padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid #F0F1F3}
.agree-f .btn{width:100%;padding:12px;font-size:14px}

/* ===== 使用说明（guide） ===== */
#page-guide{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
#page-guide .pad{padding:12px 16px 16px}
.guide-sec{margin-bottom:14px}
.guide-h3{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#2B2B30;margin:6px 2px 8px}
.guide-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;font-size:12px;font-weight:700}
.guide-card{background:#fff;border-radius:14px;padding:13px 14px;box-shadow:0 3px 12px rgba(35,24,21,.05);border:1px solid #F0EDE6}
.guide-card.guide-intro{display:flex;gap:12px;align-items:flex-start}
.guide-card.guide-intro .guide-emoji{font-size:38px;line-height:1}
.guide-card .guide-text{font-size:13px;color:#3A3A40;line-height:1.78}
.guide-tip{display:inline-block;margin-top:6px;font-size:11.5px;color:#1668B0;background:#EAF2FA;padding:2px 8px;border-radius:6px}
.guide-step{display:flex;align-items:center;gap:9px;padding:6px 0;font-size:13px;color:#3A3A40;line-height:1.5}
.guide-step b{font-weight:600}
.guide-step i{font-style:normal;color:#9AA1AC;font-size:11.5px}
.guide-step .badge{display:inline-flex;align-items:center;justify-content:center;height:22px;min-width:22px;padding:0 8px;font-size:11px;font-weight:700;border-radius:11px}
.guide-step .badge.os{background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff}
.guide-step .badge.num{background:#F4F5F7;color:#4A5568;border:1px solid #E7E9EE}
.guide-divider{height:1px;background:#F0EDE6;margin:4px 0}
.guide-callout{margin-top:8px;font-size:12.5px;color:#1668B0;background:#EAF2FA;border-radius:10px;padding:8px 10px;line-height:1.6}
.guide-feat-list{display:flex;flex-direction:column;gap:9px}
.guide-feat{display:flex;align-items:center;gap:11px;padding:13px 14px;background:#fff;border-radius:14px;border:1px solid #F0EDE6;box-shadow:0 3px 12px rgba(35,24,21,.05);cursor:pointer;transition:transform .12s ease, box-shadow .12s ease}
.guide-feat:active{transform:scale(.99);box-shadow:0 1px 4px rgba(35,24,21,.08)}
.guide-feat-ic{width:42px;height:42px;flex:0 0 auto;border-radius:12px;background:linear-gradient(135deg,#FFF6F2,#FFE8E2);display:flex;align-items:center;justify-content:center;font-size:24px;line-height:1}
.guide-feat-body{flex:1;min-width:0}
.guide-feat-name{font-size:14.5px;font-weight:700;color:#2B2B30;margin-bottom:3px}
.guide-feat-desc{font-size:12px;color:#5F6470;line-height:1.6;white-space:pre-wrap}
.guide-feat-loc{font-size:11.5px;color:#1668B0;margin-top:5px;line-height:1.5}
.guide-feat-go{font-size:24px;color:#C7CBD2;flex:0 0 auto}
.guide-faq{border-bottom:1px solid #F0EDE6;padding:10px 0}
.guide-faq:last-child{border-bottom:none}
.guide-faq summary{font-size:13.5px;color:#2B2B30;font-weight:600;cursor:pointer;list-style:none;position:relative;padding-right:18px}
.guide-faq summary::-webkit-details-marker{display:none}
.guide-faq summary::after{content:'＋';position:absolute;right:0;color:#9AA1AC;font-weight:400;font-size:16px;line-height:1}
.guide-faq[open] summary::after{content:'－'}
.guide-faq-body{margin-top:8px;font-size:12.5px;color:#5F6470;line-height:1.75}
.guide-foot-card{text-align:center}
.guide-foot-card .guide-foot-tip{font-size:11.5px;color:#9AA1AC;margin-top:4px}

/* ===== 建议反馈 ===== */
.fb-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.fb-chip{font-size:12px;color:#4A5568;background:#F4F5F7;border:1px solid #E7E9EE;border-radius:999px;padding:5px 11px;cursor:pointer;transition:.15s}
.fb-chip.on{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}
.fb-item{background:#fff;border-radius:13px;margin:0 16px 9px;padding:12px 13px;border:1px solid #F0EDE6;box-shadow:0 2px 8px rgba(35,24,21,.04)}
.fb-item.mine{margin:0 0 9px}
.fb-top{display:flex;align-items:center;gap:8px}
.fb-top b{font-size:13.5px;color:#2B2B30}
.fb-st{font-size:10.5px;border-radius:999px;padding:2px 8px;font-weight:600}
.fb-st.pending{color:#B45309;background:#FEF3C7}
.fb-st.done{color:#1E7A46;background:#E4F5EA}
.fb-time{margin-left:auto;font-size:11px;color:#9AA1AC}
.fb-body{margin-top:8px;font-size:13px;color:#3A3A40;line-height:1.7;white-space:pre-wrap;word-break:break-all}
.fb-people{font-size:11.5px;color:#1668B0;margin-top:7px}
.fb-reply{margin-top:8px;background:#EAF2FA;border-radius:9px;padding:8px 10px;font-size:12.5px;color:#14456E;line-height:1.6;display:flex;flex-direction:column;gap:2px}
.fb-reply .fb-time{font-size:10.5px}
.fb-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.fb-mask{position:fixed;inset:0;z-index:120;background:rgba(20,22,28,.46);display:flex;align-items:center;justify-content:center;padding:20px 16px}
.fb-sheet{width:100%;max-width:360px;background:#fff;border-radius:14px;padding:14px}
.fb-sheet-h{display:flex;justify-content:space-between;align-items:center;font-size:15px;margin-bottom:10px}
.fb-sheet-h span{cursor:pointer;color:#9AA1AC;padding:4px}
.fb-sheet textarea{width:100%;box-sizing:border-box;border:1px solid #E4E6EB;border-radius:10px;padding:10px;font-size:13.5px;outline:none;font-family:inherit;color:#2B2B30;resize:none}
.fb-sheet-f{display:flex;justify-content:flex-end;gap:8px;margin-top:10px}
.fb-sheet-f .btn{padding:9px 12px;font-size:13px}

/* ===== 吐槽墙 & 吐槽审核 ===== */
#page-toast{padding-bottom:calc(80px + env(safe-area-inset-bottom))}
/* 顶部合成卡：红色卡 = 标题左上 + 输入框 + 右下发布 */
.note-pub.toast-combo{background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;border-color:#1A1B20}
.th-tape{position:absolute;width:78px;height:20px;background:rgba(255,222,130,.85);border:1px solid rgba(35,36,42,.13);border-radius:2px;box-shadow:0 1px 3px rgba(0,0,0,.09);z-index:2}
.toast-combo{position:relative;margin:16px 12px 4px;padding:12px 12px 8px;transform:rotate(-.4deg);color:#fff}
.toast-combo::before{display:none}
.toast-combo .th-tape.t1{left:50%;transform:translateX(-50%) rotate(-5deg)}
.tc-tt{display:inline-block;font-size:17.5px;font-weight:800;letter-spacing:1px;color:#fff;position:relative;padding-bottom:6px;margin:0 0 8px 2px}
.tc-tt::after{content:'';position:absolute;left:1px;bottom:0;width:100%;height:4px;background:linear-gradient(90deg,#fff 55%,transparent 0) repeat-x;background-size:10px 2px;opacity:.85;border-radius:2px}
.toast-combo #toast-pub-login{padding:4px 0 8px}
.toast-combo #toast-pub-login > div{font-size:12.5px;color:rgba(255,255,255,.92)}
.toast-combo #toast-pub-form textarea{font-size:13.5px;padding:10px 12px 40px;background:#FFF2A6;border:2px solid rgba(255,255,255,.95);border-radius:12px 90px 12px 90px/90px 12px 12px 90px}
.toast-combo #toast-pub-form textarea::placeholder{color:#A89F8D;opacity:1}
.toast-combo .ta-send{bottom:8px;right:9px}
.toast-combo .toast-mine-link{color:rgba(255,255,255,.85);margin-top:2px}
#page-toast{background:radial-gradient(rgba(35,36,42,.05) 1px,transparent 1.3px);background-size:15px 15px}
#page-toast .pad{background:transparent;padding-bottom:22px}
#toast-pub-form textarea{width:100%;box-sizing:border-box;border:1px solid #E4E6EB;border-radius:12px;padding:10px 12px;font-size:14px;outline:none;color:#2B2B30;font-family:inherit;resize:none;background:#FAFBFC}
#toast-pub-form textarea:focus{border-color:var(--red)}
.toast-pub-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.toast-tip{font-size:11px;color:#B4BAC4;line-height:1.5}
.toast-item{background:#fff;border-radius:13px;margin:0 16px 9px;padding:11px 13px;border:1px solid #F0EDE6;box-shadow:0 2px 8px rgba(35,24,21,.04)}
.toast-item.mine{margin:0 0 9px}
.toast-head{display:flex;align-items:center;gap:7px}
.toast-av{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,#FF5B5C,#C20E1D);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.toast-head b{font-size:13px;color:#2B2B30}
.toast-role{font-size:10.5px;color:#1668B0;background:#EAF2FA;border-radius:999px;padding:1px 7px}
.toast-time{margin-left:auto;font-size:10.5px;color:#9AA1AC}
.toast-content{margin-top:7px;font-size:13.5px;color:#3A3A40;line-height:1.7;white-space:pre-wrap;word-break:break-all}
.toast-st{font-size:10px;border-radius:999px;padding:2px 8px;font-weight:600}
.toast-st.pending,.toast-st.amber{color:#B45309;background:#FEF3C7}
.toast-st.done,.toast-st.green{color:#1E7A46;background:#E4F5EA}
.toast-st.gray{color:#6B7280;background:#EEF0F3}
.toast-st.warn{color:#B91C1C;background:#FEE2E2}
.toast-reason{margin-top:7px;font-size:12px;color:#B45309;background:#FEF3C7;border-radius:8px;padding:7px 9px;line-height:1.6}
.toast-reason.warn{color:#B91C1C;background:#FEE2E2}
.toast-people{font-size:11px;color:#9AA1AC;margin-top:6px}
.toast-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:9px}
.toast-mine-link{margin-top:4px;font-size:12px;color:#1668B0;text-align:right;cursor:pointer}

/* ===== 内容安全词库 ===== */
.cs-words{display:flex;flex-wrap:wrap;gap:7px}
.cs-word{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#B45309;background:#FEF3C7;border:1px solid #F3DEB3;border-radius:999px;padding:4px 9px}
.cs-word i{font-style:normal;cursor:pointer;color:#C2410C;font-weight:700;padding:0 2px}
.cs-word i:active{opacity:.6}

/* ===== 注册问题：身份证照片上传 ===== */
.idbox-row{display:flex;gap:10px}
.idbox{position:relative;flex:1;min-width:0;aspect-ratio:1.586/1;background:#FAFBFC;border:1.5px dashed #C9CDD4;border-radius:11px;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s}
.idbox:active{border-color:var(--red);background:#FFF7F5}
.idbox img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.idbox-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px;text-align:center}
.idbox-empty svg{width:26px;height:26px;color:#B4BAC4}
.idbox-empty span{font-size:12px;color:#4A5568;font-weight:600}
.idbox-empty i{font-style:normal;font-size:10.5px;color:#9AA1AC}
.idbox-del{position:absolute;top:4px;right:4px;z-index:2;width:20px;height:20px;border-radius:50%;background:rgba(20,22,28,.62);color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:400}
.idbox-tip{font-size:11px;color:#9AA1AC;margin-top:7px;line-height:1.5}
.ri-ids{margin-top:9px}
.ri-ids-t{font-size:11.5px;color:#8A93A0}
.ri-ids-row{display:flex;gap:8px;margin-top:6px}
.ri-ids-row img{width:96px;height:60px;object-fit:cover;border-radius:8px;border:1px solid #E7E9EE;cursor:zoom-in;background:#F4F5F7}
.ri-ids-miss{display:inline-flex;align-items:center;justify-content:center;height:60px;padding:0 10px;font-size:11px;color:#9AA1AC;background:#F4F5F7;border-radius:8px;border:1px dashed #D8DCE2}

/* ===== 登录/注册 双 tab ===== */
.auth-tabs{display:flex;background:#F4F5F7;border:1px solid #E7E9EE;border-radius:999px;padding:4px;margin-bottom:20px}
.auth-tab{flex:1;text-align:center;font-size:14px;color:#667080;padding:9px 0;border-radius:999px;cursor:pointer;transition:.18s}
.auth-tab.on{background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;font-weight:700;box-shadow:0 3px 8px rgba(200,10,35,.28)}

/* ===== 吐槽墙 · 贴纸墙风格（sketchy notes wall） ===== */
.toast-wall{columns:2;column-gap:12px;padding:18px 10px 10px;margin:0 4px;background:transparent}
.toast-wall .empty{column-span:all;text-align:center;padding:28px}
.toast-item.note{position:relative;display:inline-block;width:100%;margin:0 0 16px;padding:15px 12px 14px;background:#FFFDF6;border:2px solid #23242A;box-shadow:3px 4px 0 rgba(35,36,42,.16);border-radius:255px 15px 225px 15px/15px 225px 15px 255px;transform:rotate(-1.8deg);box-sizing:border-box;break-inside:avoid}
.toast-item.note::before{content:'';position:absolute;top:-11px;left:50%;width:78px;height:20px;transform:translateX(-50%) rotate(-5deg);background:rgba(255,222,130,.82);border:1px solid rgba(35,36,42,.13);box-shadow:0 1px 3px rgba(0,0,0,.09);border-radius:2px;z-index:2}
.toast-item.note::after{position:absolute;left:9px;bottom:3px;font-size:13px;filter:grayscale(1);opacity:.42;transform:rotate(-8deg);pointer-events:none}
.toast-item.note.v0{background:#FFF6A9;transform:rotate(-2.1deg)}
.toast-item.note.v0::after{content:'✏️'}
.toast-item.note.v1{background:#FFE4E9;transform:rotate(1.7deg);border-radius:15px 255px 15px 225px/225px 15px 255px 15px}
.toast-item.note.v1::before{background:rgba(255,160,175,.55);transform:translateX(-50%) rotate(4deg)}
.toast-item.note.v1::after{content:'☕'}
.toast-item.note.v2{background:#E1F0FF;transform:rotate(-1.1deg);border-radius:125px 12px 185px 18px/18px 185px 12px 125px}
.toast-item.note.v2::before{background:rgba(170,205,255,.6);width:64px;transform:translateX(-50%) rotate(-7deg)}
.toast-item.note.v2::after{content:'⚡'}
.toast-item.note.v3{background:#E4F6E6;transform:rotate(2.3deg);border-radius:18px 185px 14px 225px/225px 14px 185px 18px}
.toast-item.note.v3::before{left:26%;background:rgba(180,230,180,.6);transform:translateX(-50%) rotate(6deg)}
.toast-item.note.v3::after{content:'☁️'}
.toast-item.note.v4{background:#FFFDF6;transform:rotate(-1.5deg);border-radius:14px 225px 16px 255px/255px 16px 225px 14px}
.toast-item.note.v4::before{left:30%;width:88px;background:rgba(255,235,180,.66)}
.toast-item.note.v4::after{content:'♪'}
.toast-item.note.v5{background:#F3EAFE;transform:rotate(1.2deg);border-radius:225px 15px 255px 15px/15px 255px 15px 225px}
.toast-item.note.v5::before{background:rgba(215,180,255,.55);width:70px;transform:translateX(-50%) rotate(-3deg)}
.toast-item.note.v5::after{content:'✂️'}
.toast-item.note.wide{column-span:all;width:100%}
.toast-item.note .toast-head{flex-wrap:wrap;row-gap:2px}
.toast-item.note .toast-av{width:26px;height:26px;border-radius:12px 4px 10px 5px/5px 10px 4px 12px;background:#fff;border:2px solid #23242A;color:#23242A;font-weight:800}
.toast-item.note .toast-head b{font-size:13px;color:#17181C}
.toast-item.note .toast-role{color:#17181C;background:#fff;border:1.5px solid #23242A;border-radius:999px 6px 999px 6px/6px 999px 6px 999px;padding:1px 7px;font-weight:600}
.toast-item.note .toast-time{font-size:10px;color:#6E7480}
.toast-item.note .toast-content{font-size:13.5px;color:#23242A;line-height:1.75;word-break:break-word}
.toast-item.note.wide .toast-content{font-size:14.5px}
/* 发布卡也贴纸化 */
.note-pub{position:relative;background:#FFF9DC;border:2px solid #23242A;border-radius:16px 255px 14px 225px/15px 225px 14px 255px;box-shadow:3px 4px 0 rgba(35,36,42,.16);transform:rotate(-.5deg)}
.note-pub::before{content:'';position:absolute;top:-11px;left:38px;width:74px;height:20px;transform:rotate(-6deg);background:rgba(255,222,130,.85);border:1px solid rgba(35,36,42,.13);border-radius:2px}
#toast-pub-form textarea{border:2px solid #23242A;border-radius:12px 90px 12px 90px/90px 12px 12px 90px;background:#FFFDF6;padding-bottom:38px}
.ta-wrap{position:relative}
.ta-send{position:absolute;right:8px;bottom:8px;background:linear-gradient(135deg,#E60020,#B50E1D);border:none;color:#fff;padding:8px 15px;font-size:13px;border-radius:999px;box-shadow:0 2px 6px rgba(200,10,35,.35);cursor:pointer}
.note-pub .toast-pub-bar{margin-top:7px}
.note-pub .toast-tip{display:block}
/* 区块标题手绘虚线下划 */
#page-toast .sec h3{position:relative}
#page-toast .sec h3::after{content:'';position:absolute;left:10px;bottom:-5px;width:96px;height:4px;background:linear-gradient(90deg,#23242A 55%,transparent 0) repeat-x;background-size:11px 2px;opacity:.45;border-radius:2px}
/* ===== 吐槽进度章（橡皮章风格） ===== */
.stamp{position:absolute;bottom:9px;right:7px;z-index:3;transform:rotate(-12deg);font-size:11.5px;font-weight:800;letter-spacing:1px;padding:3px 7px;border:2px solid currentColor;border-radius:6px 2px 6px 2px/2px 6px 2px 6px;box-shadow:inset 0 0 0 1px currentColor;background:rgba(255,255,255,.14);mix-blend-mode:multiply;opacity:.84;pointer-events:none;white-space:nowrap}
.stamp.st-red{color:#C21807}
.stamp.st-blue{color:#1565C0}
.stamp.st-green{color:#1E7A46}
.toast-item.note.wide .stamp{font-size:13.5px;padding:5px 10px;bottom:12px;right:14px;border-radius:8px 3px 8px 3px/3px 8px 3px 8px}
/* 留言章：管理员输入文字以橡皮章形式盖在贴纸上（进度章上方，反向倾斜更像随手盖的） */
.stamp2{display:inline-block;font-family:'Smiley Sans',sans-serif;font-size:14px;font-weight:700;letter-spacing:1.5px;padding:3px 10px;border:2px solid currentColor;border-radius:2px 6px 2px 6px/6px 2px 6px 2px;box-shadow:inset 0 0 0 1px currentColor;background:rgba(255,255,255,.14);mix-blend-mode:multiply;opacity:.86;transform:rotate(7deg);white-space:nowrap;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;vertical-align:middle;pointer-events:none}
.toast-item.note .stamp2{position:absolute;bottom:46px;right:7px;z-index:3}
.toast-item.note.wide .stamp2{bottom:48px;right:14px;font-size:16px;padding:4px 12px}
.stamp2.st-red{color:#C21807}
.stamp2.st-blue{color:#1565C0}
.stamp2.st-green{color:#1E7A46}
/* 管理端留言章颜色选择点 */
.rc-dot{width:24px;height:24px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1.5px #C9CBD1;cursor:pointer;display:inline-block;transition:.15s}
.rc-dot.red{background:#C21807}.rc-dot.blue{background:#1565C0}.rc-dot.green{background:#1E7A46}
.rc-dot.on{box-shadow:0 0 0 2.5px #23242A;transform:scale(1.12)}
/* 管理端进度戳操作 */
.tm-progress{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:9px;padding-top:9px;border-top:1px dashed #E4E6EB}
.tm-pl{font-size:11px;color:#8A93A0}
.tm-plat{font-size:10px;color:#B4BAC4;margin-left:auto}
.pbtn{font-size:11.5px;padding:4px 11px;border-radius:999px;border:1.5px solid currentColor;background:#fff;cursor:pointer;font-weight:600;opacity:.72;transition:.15s}
.pbtn.on{opacity:1;color:#fff !important;box-shadow:0 2px 5px rgba(0,0,0,.14)}
.pb-red{color:#C21807}.pb-blue{color:#1565C0}.pb-green{color:#1E7A46}.pb-clear{color:#6B7280}
.pb-red.on{background:#C21807;border-color:#C21807}
.pb-blue.on{background:#1565C0;border-color:#1565C0}
.pb-green.on{background:#1E7A46;border-color:#1E7A46}
/* 管理端手写留言 */
.pbtn.pb-ink{color:#8A5A00;border-color:#C9A227}
.tm-reply{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}
.tm-reply-cur{font-size:12px;color:#8A5A00;background:#FFF9DB;border-radius:8px;padding:3px 9px;font-family:'Smiley Sans',sans-serif;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 贴纸上的手写批注（审核组留言） */
.tc-reply{display:block;margin-top:9px;font-family:'Smiley Sans',sans-serif;font-size:13.5px;color:#8A5A00;line-height:1.55;transform:rotate(-1.2deg);background:linear-gradient(transparent 58%,rgba(255,222,89,.6) 58%);padding:0 2px}
.tc-reply-tag{color:#B45309;margin-right:5px;font-size:11.5px}
.toast-item.note.wide .tc-reply{font-size:15px}
/* 吐槽审核页筛选 pill：缩小防折行 */
#page-toast-mgmt .pill{padding:5px 11px;font-size:11.5px;margin:0 5px 6px 0;white-space:nowrap}
/* 我的吐槽 · 撤回操作 */
.mine-ops{display:flex;align-items:center;gap:8px;margin-top:8px;justify-content:flex-end}
.wd-btn{font-size:11.5px;padding:4px 12px;border-radius:999px;border:1.5px solid #C9CDD4;background:#fff;color:#6B7280;cursor:pointer;font-weight:600;transition:.15s}
.wd-btn.armed{border-color:#C21807;color:#C21807;background:#FEF2F2;font-weight:700}
.wd-tip{font-size:10.5px;color:#B4BAC4}

/* ========== 吐槽动态通知：导航角标 / 点亮 / 我的吐槽增强 ========== */
.toast-st.blue{color:#1565C0;background:#E7F0FB}
.toast-st.green{font-weight:800}
/* me 菜单「我发布的吐槽」右侧红点 */
.mi-badge{display:none;align-items:center;justify-content:center;min-width:17px;height:17px;border-radius:999px;background:#FF3B6B;color:#fff;font-size:10px;font-weight:700;padding:0 4px;margin-left:auto;margin-right:2px;box-sizing:border-box}
/* tabbar 吐槽贴纸右上角角标 */
@keyframes tbBadgePop{0%{transform:scale(.3)}100%{transform:scale(1)}}
/* 有动态时吐槽贴纸点亮为红色（描边/五官变红 + 轻呼吸 + 右上小红点），不显示数字 */
.tabbar .t.toast-news{color:var(--red)}
.tabbar .t.toast-news .stk{stroke:var(--red);stroke-width:2.2;animation:tNewsPulse 1.6s ease-in-out infinite}
.tabbar .t.toast-news .stk circle{fill:var(--red)}
.tabbar .t.toast-news .stk path[fill="#FFE15A"]{fill:#FFE3E0}
@keyframes tNewsPulse{0%,100%{transform:rotate(-3deg) scale(1);filter:drop-shadow(1.5px 2px 0 rgba(230,0,32,.25))}50%{transform:rotate(-3deg) scale(1.07);filter:drop-shadow(1.5px 3px 0 rgba(230,0,32,.4))}}
/* mine 卡片：新动态高亮 */
.toast-item.mine.is-new{background:#FFF4F7;animation:mineFlash 2.2s ease}
@keyframes mineFlash{0%{background:#FFE3EA}55%{background:#FFF0F4}100%{background:#FFF7F9}}
.toast-new-tag{display:inline-block;font-size:10px;font-weight:700;color:#fff;background:linear-gradient(135deg,#FF4D6D,#FF7A5C);border-radius:999px;padding:2px 9px;margin-bottom:7px;box-shadow:0 1px 3px rgba(255,77,109,.4);transform:rotate(-2deg);animation:tagIn .5s cubic-bezier(.2,1.6,.4,1)}
@keyframes tagIn{0%{transform:scale(.5) rotate(-10deg);opacity:0}100%{transform:scale(1) rotate(-2deg);opacity:1}}
/* me 页「我发布的吐槽」面板：贴纸墙点阵底 */
/* 「我发布的吐槽」已改为独立页：列表项左右留白（原先依赖 .me-my-toast-wrap 作用域） */
#me-my-toast-list .toast-item.mine{margin:0 10px 9px}

/* 头像角标（我的页头卡：工作台待办总数） */
.me-avatar-badge{position:absolute;top:-4px;right:-6px;min-width:22px;height:22px;border-radius:999px;background:#FF3B6B;color:#fff;font-size:11.5px;font-weight:800;display:none;align-items:center;justify-content:center;padding:0 5px;box-sizing:border-box;border:2px solid #fff;box-shadow:0 2px 5px rgba(0,0,0,.25);z-index:4;animation:tbBadgePop .35s cubic-bezier(.2,1.8,.4,1)}

/* 底部导航「我的」未读数量角标 */
.tabbar .t .tab-badge{position:absolute;top:2px;left:50%;margin-left:12px;height:16px;min-width:16px;padding:0 5px;border-radius:8px;background:#FF3B6B;color:#fff;font-size:10px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;border:1.5px solid #fff;z-index:5;animation:tbBadgePop .3s cubic-bezier(.2,1.8,.4,1);white-space:nowrap;line-height:1;font-style:normal}

/* ========== 底册注册进度仪表台 ========== */
#roster-reg-dash{margin:10px 16px 2px;background:#fff;border:1px solid #F0EDE6;border-radius:18px;padding:11px 13px 10px;box-shadow:0 2px 6px rgba(0,0,0,.03)}
.reg-dash-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.reg-dash-h b{font-size:14px;color:#23242A}
.reg-dash-sub{font-size:11px;color:#9AA1AC}
.reg-cards{display:flex;gap:8px}
.reg-card{flex:1;text-align:center;border-radius:14px;padding:9px 4px 8px;cursor:pointer;transition:.15s}
.reg-card b{font-size:20px;font-weight:800;display:block;line-height:1.2;font-variant-numeric:tabular-nums}
.reg-card span{font-size:11px;color:#6B7280}
.reg-all{background:#F1F3F6}.reg-all b{color:#23242A}
.reg-yes{background:#E7F5EC}.reg-yes b{color:#1E7A46}
.reg-no{background:#FEF0EC}.reg-no b{color:#C2410C}
.reg-card:active{transform:scale(.95)}
.reg-bar{display:flex;align-items:center;gap:8px;margin-top:10px}
.reg-bar i{flex:1;display:block;height:7px;border-radius:99px;background:#EDEEF2;overflow:hidden;position:relative}
.reg-bar i::after{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);border-radius:99px;background:linear-gradient(90deg,#4CC77E,#1E7A46);transition:width .35s ease}
.reg-bar em{font-style:normal;font-size:10.5px;color:#8A93A0;white-space:nowrap}
/* 明细弹层 */
.regd-sheet{max-height:82vh;display:flex;flex-direction:column}
.regd-list{flex:1;overflow-y:auto;min-height:0;padding:4px 0 10px;-webkit-overflow-scrolling:touch}
.regd-row{display:flex;align-items:center;gap:11px;padding:9px 14px;border-bottom:1px solid #F2F3F5}
.regd-av{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#3A4454,#23242A);color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}
.regd-info{flex:1;min-width:0}
.regd-name{font-size:14px;font-weight:700;color:#23242A;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.regd-tag{font-size:9.5px;font-weight:700;border-radius:999px;padding:1.5px 7px}
.regd-tag.yes{color:#1E7A46;background:#E4F5EA}
.regd-tag.no{color:#A16207;background:#FEF3C7}
.regd-sub{font-size:11.5px;color:#8A93A0;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.regd-more{text-align:center;color:#1668B0;font-size:12px;padding:12px 0 6px;cursor:pointer}

/* 底册列表行：注册状态小徽章 */
.rs-reg-tag{font-size:9px;font-weight:700;border-radius:999px;padding:1px 6px;margin-left:2px;vertical-align:1px}
.rs-reg-tag.yes{color:#1E7A46;background:#E4F5EA}
.rs-reg-tag.no{color:#A16207;background:#FEF3C7}

/* ========== 案例数据汇总（案例审核页顶部） ========== */
.case-dash{padding:8px 16px 0}
.cd-card{background:#fff;border:1.5px dashed #E4E6EB;border-radius:18px;padding:12px 13px 11px;box-shadow:0 2px 6px rgba(0,0,0,.03)}
.cd-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}
.cd-head b{font-size:14px;color:#23242A}
.cd-head a{font-size:11.5px;color:#1668B0;cursor:pointer}
.cd-grid4{display:flex;gap:7px;margin-bottom:10px}
.cd-c{flex:1;text-align:center;border-radius:12px;padding:7px 2px 6px;background:#F1F3F6}
.cd-c b{font-size:17px;font-weight:800;display:block;line-height:1.25;color:#23242A}
.cd-c span{font-size:10px;color:#8A93A0}
.cd-c.warn{background:#FEF3C7}.cd-c.warn b{color:#B45309}
.cd-c.ok{background:#E7F5EC}.cd-c.ok b{color:#1E7A46}
.cd-c.no{background:#FEE2E2}.cd-c.no b{color:#B91C1C}
.cd-sec{margin-bottom:9px}
.cd-t{font-size:12.5px;font-weight:700;color:#4A5568;margin-bottom:6px}
.cd-t i{font-weight:400;font-size:10.5px;color:#9AA1AC;font-style:normal}
.cd-m{display:flex;align-items:center;gap:8px;padding:2.5px 0}
.cd-mt{flex-shrink:0;width:58px;font-size:11px;color:#6B7280;font-variant-numeric:tabular-nums}
.cd-mbar{flex:1;height:6px;border-radius:99px;background:#EEF0F3;overflow:hidden;display:block}
.cd-mbar em{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#3FA0E0,#1668B0)}
.cd-m b{width:46px;text-align:right;font-size:11px;color:#1668B0;font-variant-numeric:tabular-nums}
.cd-cols{display:flex;gap:12px}
.cd-cols .cd-sec{flex:1;min-width:0}
.cd-r{display:flex;align-items:center;gap:6px;padding:2.5px 0}
.cd-rk{width:14px;height:14px;border-radius:4px;background:#EDEEF2;color:#6B7280;font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cd-r:nth-child(1) .cd-rk{background:linear-gradient(135deg,#F6C453,#E8A020);color:#7A4E00}
.cd-rn{width:56px;font-size:11px;color:#3A3A40;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}
.cd-rbar{flex:1;height:6px;border-radius:99px;background:#EEF0F3;overflow:hidden;display:block}
.cd-rbar em{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#2FAE60,#1E7A46)}
.cd-r b{width:22px;text-align:right;font-size:11px;color:#1E7A46;font-variant-numeric:tabular-nums}
.cd-empty{font-size:11.5px;color:#B4BAC4;padding:6px 0;text-align:center}

/* ========== 底册维度筛选行：圆角卡片化 + 列表加宽 ========== */
#page-roster #roster-filters{padding:8px 16px 0}
#page-roster .rf-row{display:flex;align-items:flex-start;gap:7px;background:#fff;border:1px solid #F1EDE3;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.03);padding:8px 11px;margin:0 0 7px}
#page-roster .rf-name{width:auto;min-width:40px;line-height:24px}
#page-roster .rf-chips{gap:6px}
#page-roster .rf-chip{font-size:11px;padding:2px 9px}
#page-roster .rf-chip i{font-size:9.5px}
#page-roster .pad{padding:6px 12px}
#page-roster .roster-card{margin-left:0;margin-right:0;padding:12px 13px}

/* ========== 底册页顶部布局统一（v2）：仪表台 → 维度大卡 → 搜索 ========== */
#page-roster #roster-reg-dash{margin:10px 16px 0}
#page-roster #roster-filters{background:#fff;border:1px solid #F0EDE6;border-radius:18px;padding:2px 13px;box-shadow:0 2px 6px rgba(0,0,0,.03);margin:10px 16px 0}
#page-roster .rf-row{background:transparent;border:none;border-bottom:1px solid #F2F3F5;border-radius:0;box-shadow:none;padding:8px 0;margin:0}
#page-roster .rf-row:last-child{border-bottom:none;padding-bottom:7px}
#page-roster .rf-row:first-child{padding-top:7px}
#page-roster .searchwrap{position:static;background:transparent;border-bottom:none;padding:10px 16px 2px}

/* ========== 底册顶部 v3：注册卡(无进度条) + 搜索与维度同卡 ========== */
#page-roster #roster-reg-dash{margin:10px 16px 0;padding-bottom:11px}
.rf-card{background:#fff;border:1px solid #F0EDE6;border-radius:18px;padding:12px 13px 2px;box-shadow:0 2px 6px rgba(0,0,0,.03);margin:10px 16px 0}
#page-roster #roster-filters{background:transparent;border:none;border-radius:0;box-shadow:none;padding:0;margin:0}
#page-roster .rf-search{margin:0 0 8px}
#page-roster .rf-search input{background:#F3F4F6}

/* ========== 底册标签加粗 / 注册卡更饱满（v4） ========== */
#page-roster #roster-reg-dash{border:1px solid #F0EDE6;padding-bottom:20px}
#page-roster .reg-cards{margin-top:2px}
#page-roster .rf-chip{font-size:11.5px;font-weight:600;padding:2.5px 10px}
#page-roster .rf-chip i{font-size:10px}
#page-roster .rf-chip.on{font-weight:700}
#page-roster .rf-name{font-weight:600;color:#7A828E}

/* ========== 底册 v5：人员卡与顶部卡视觉统一 ========== */
#page-roster .pad{padding:8px 16px}
#page-roster .roster-card{border:1px solid #F0EDE6}
#page-roster .roster-more{margin:0 16px}

/* ========== 底册 v6：标签更高更粗（不增宽）、虚线全部清除 ========== */
#page-roster .rf-row{padding:12px 0 10px}
#page-roster .rf-chip{font-size:12px;font-weight:700;line-height:1.45;padding:7px 10px;border-radius:11px}
#page-roster .rf-chip i{font-size:10.5px;margin-left:5px}
#page-roster .rf-chip.more{padding:7px 12px}
#page-roster .rf-name{line-height:32px}

/* ========== 底册 v7：人员卡行距 / 注册三卡居中 / 维度行紧凑 ========== */
#page-roster #roster-reg-dash{padding:16px 13px 18px}
#page-roster .reg-cards{margin:0}
#page-roster .reg-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:13px 4px 12px}
#page-roster .reg-card b{margin-bottom:3px}
#page-roster .roster-card{padding:14px 14px}
#page-roster .rs-phone{margin-top:5px;line-height:1.5}
#page-roster .rs-station{margin-top:5px;line-height:1.5}
#page-roster .rs-tags{margin-top:9px}
#page-roster .rf-row{gap:6px}
#page-roster .rf-name{min-width:24px;flex-shrink:0;margin-right:6px}

/* ========== 底册操作区：笔+桶一行，电话单独一行 ========== */
#page-roster .rs-ops{flex-direction:column;align-items:flex-end;margin-left:8px}
#page-roster .rs-ops-top{display:flex;gap:6px}
#page-roster .rs-op.call{color:#1E9E5A;text-decoration:none;margin-top:6px}
#page-roster .rs-op.call:active{transform:scale(.92)}

/* ========== 吐槽审核 v2：撤下移姓名栏右侧 + 进度/盖章按钮加高加粗 ========== */
#page-toast-mgmt .toast-head .tm-withd{margin-left:auto;display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;color:#B91C1C;background:#FEF2F2;border:1px solid #F3B8B8;border-radius:999px;padding:3px 9px;cursor:pointer;white-space:nowrap}
#page-toast-mgmt .toast-head .tm-withd:active{transform:scale(.94)}
#page-toast-mgmt .tm-progress{gap:8px;row-gap:9px}
#page-toast-mgmt .tm-progress .pbtn{padding:8px 13px;font-size:12.5px;font-weight:700}
#page-toast-mgmt .tm-reply .pbtn{padding:8px 14px;font-size:12.5px;font-weight:800}
#page-toast-mgmt .tm-pl{font-size:11.5px;align-self:center}

/* ========== 吐槽审核 v3：行内留言盖章 + 进度标签收小 + 撤下加高 ========== */
#page-toast-mgmt .tm-progress .pbtn{padding:5px 12px;font-size:11.5px;font-weight:700}
#page-toast-mgmt .tm-reply{display:none}
#page-toast-mgmt .toast-head .tm-withd{padding:7px 11px;font-size:11.5px;font-weight:800}
.tm-ed{position:relative;margin-top:10px}
.tm-ed-inp{width:100%;box-sizing:border-box;height:42px;border:1.5px solid #E3DFD2;border-radius:14px 44px 14px 44px/44px 14px 44px 14px;padding:0 74px 0 13px;font-size:13.5px;font-family:'Smiley Sans',sans-serif;background:#FFFDF4;color:#3A3A40;outline:none;transition:border-color .15s}
.tm-ed-inp:focus{border-color:#C9A227}
.tm-ed-inp::placeholder{color:#BFB596}
.tm-ed-go{position:absolute;right:5px;top:5px;bottom:5px;border:none;background:linear-gradient(135deg,#C9A227,#A87E16);color:#fff;font-size:12.5px;font-weight:800;font-family:inherit;border-radius:10px 36px 10px 36px/36px 10px 36px 10px;padding:0 15px;cursor:pointer;box-shadow:0 2px 5px rgba(168,126,22,.25)}
.tm-ed-go:active{transform:scale(.95)}
.tm-ed-meta{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap;min-height:22px}
.tm-ed-dots{display:inline-flex;align-items:center;gap:6px}
.tm-ed-dots .rc-dot{width:19px;height:19px}
.tm-ed-hint{font-size:10.5px;color:#A9A190}
.tm-ed-cur{font-size:11.5px;color:#8A5A00;background:#FFF9DB;border-radius:8px;padding:2px 10px;font-family:'Smiley Sans',sans-serif}
.tm-ed-clr{margin-left:auto;font-size:11px;font-weight:700;color:#B91C1C;border:1px solid #F3C6C6;background:#fff;border-radius:999px;padding:3px 11px;cursor:pointer}

/* ========== 吐槽审核 v4：卡片加宽（去掉与 .pad 叠加的 16px 左右 margin） ========== */
#page-toast-mgmt .toast-item.mgmt{margin:0 0 10px}

/* ===== TR 报告投稿 ===== */
.sub-ic.tr{background:linear-gradient(135deg,#2E7D32,#5FB563);color:#fff}
.tr-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.tr-chips i{font-style:normal;font-size:11px;font-weight:700;color:#2E7D32;background:#E8F5E9;border-radius:8px;padding:4px 9px}
.tr-mod{padding:14px 14px 8px}
.tr-mod-h{font-size:13.5px;font-weight:800;color:#2B3A67;padding:0 2px 8px}
.tr-frow{display:flex;align-items:flex-start;gap:8px;padding:5px 0;border-bottom:1px solid #F0EDE6}
.tr-frow:last-child{border-bottom:none}
.tr-frow label{width:96px;flex-shrink:0;font-size:12px;color:#7A8090;padding-top:8px}
.tr-frow input,.tr-frow textarea{flex:1;min-width:0;border:1px solid #E5E0D4;border-radius:8px;padding:7px 9px;font-size:13px;background:#FBFAF7;color:#333;font-family:inherit}
.tr-frow input:focus,.tr-frow textarea:focus{outline:none;border-color:#2B3A67;background:#fff}

/* ===== TR 投稿页：卡片加宽 + 文档横排列表 ===== */
#page-tr-submit .pad{padding:12px 5px}
#page-tr-submit .sub-card{margin-left:5px;margin-right:5px;border-radius:16px}
#tr-doc-list{display:none;margin-top:12px}
.tr-doc-item{display:flex;align-items:center;gap:10px;background:#FBFAF7;border:1px solid #EFEBE2;border-radius:12px;padding:8px 10px;margin-bottom:8px}
.tr-doc-item:last-child{margin-bottom:0}
.tr-doc-th{width:46px;height:46px;flex-shrink:0;border-radius:10px;overflow:hidden;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:900;letter-spacing:.3px}
.tr-doc-th img{width:100%;height:100%;object-fit:cover}
.tr-doc-th.pdf{background:#FEF0F0;color:#DC2626}
.tr-doc-th.word{background:#EAF2FD;color:#2B7DE9}
.tr-doc-th.ppt{background:#FFF3E4;color:#F57C00}
.tr-doc-th.excel{background:#E7F5EA;color:#1E9E5A}
.tr-doc-th.img{background:#F5EFE3;color:#9A7B3F}
.tr-doc-th.txt{background:#F2F3F5;color:#6B7280}
.tr-doc-info{flex:1;min-width:0}
.tr-doc-info b{display:block;font-size:13px;color:#333;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-doc-info span{font-size:10.5px;color:#A6ACB6}
.tr-doc-item .del{width:28px;height:28px;flex-shrink:0;border-radius:50%;background:rgba(0,0,0,.05);color:#B8BEC9;font-size:15px;font-weight:700;line-height:26px;text-align:center;cursor:pointer}
.tr-doc-item .del:active{background:rgba(0,0,0,.12)}
.ai-chip{display:inline-block;background:#fff;color:#1E5DBE;font-size:10px;font-weight:900;padding:1px 6px;border-radius:6px;margin-right:6px;letter-spacing:.5px;vertical-align:1px}

/* 快捷投稿卡：清空收窄 + 三按钮字号缩小 */
#page-quick-submit .voice-actions .btn{font-size:12px;height:36px;padding:0 8px;white-space:nowrap}
#page-quick-submit .voice-actions .qk-small{min-width:0;box-shadow:none}
#page-quick-submit .voice-actions .btn.ghost{box-shadow:none}
#page-quick-submit .voice-actions .btn.blue{box-shadow:0 2px 8px rgba(22,104,176,.25)}

/* ===== TR 投稿：提交联系人 + 核对弹窗 ===== */
.tr-contact-card{padding:14px 14px 12px}
.tr-cf-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid #F0EDE6}
.tr-cf-row:last-of-type{border-bottom:none}
.tr-cf-row label{width:56px;flex-shrink:0;font-size:13px;color:#5B6270;font-weight:600}
.tr-cf-row label i{color:#E60020;font-style:normal}
.tr-cf-row input{flex:1;min-width:0;border:1px solid #E5E0D4;border-radius:9px;padding:9px 11px;font-size:14px;background:#FBFAF7;color:#333;font-family:inherit}
.tr-cf-row input:focus{outline:none;border-color:#2B3A67;background:#fff}
.tr-cf-mask{position:fixed;inset:0;background:rgba(15,17,24,.5);display:flex;align-items:center;justify-content:center;z-index:999;padding:24px}
.tr-cf-dialog{width:100%;max-width:340px;background:#fff;border-radius:18px;padding:22px 20px 16px;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.tr-cf-title{font-size:16px;font-weight:800;color:#2B3A67;text-align:center;margin-bottom:14px}
.tr-cf-line{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid #F3F0E9}
.tr-cf-line span{width:64px;flex-shrink:0;font-size:12px;color:#9AA1AC;padding-top:2px}
.tr-cf-line b{flex:1;font-size:13.5px;color:#333;font-weight:600;line-height:1.5;word-break:break-all}
.tr-cf-note{font-size:11px;color:#B0A68F;text-align:center;margin:12px 0 2px;line-height:1.6}
.tr-cf-ops{display:flex;gap:8px;margin-top:10px}

/* ===== 站内消息中心 (#page-messages) ===== */
#page-messages .as-head{background:#fff;border-bottom:1px solid #F3F0E9;position:sticky;top:0;z-index:2}
.msg-card{
  background:#fff;border-radius:var(--r);box-shadow:var(--shadow);
  margin:10px 0;padding:14px 16px;position:relative;
  border-left:3px solid transparent;transition:border-color .2s;
}
.msg-card.msg-card-new{border-left-color:var(--red)}
.msg-card-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.msg-card-tag{
  display:inline-block;font-size:11px;color:#fff;padding:3px 8px;border-radius:9px;
  font-weight:600;letter-spacing:.5px;flex-shrink:0;
}
.msg-card-time{font-size:11px;color:#9AA1AC;flex:1;text-align:right}
.msg-new-dot{
  width:8px;height:8px;border-radius:50%;background:var(--red);
  box-shadow:0 0 0 3px rgba(230,0,32,.15);flex-shrink:0;
}
.msg-card-title{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:6px;line-height:1.4}
.msg-card-body{
  font-size:13.5px;color:#555;line-height:1.65;white-space:pre-wrap;
  word-break:break-word;
}
.msg-card-action{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}
.msg-btn{
  font-size:13px;color:#555;background:#F5F4EF;border:none;
  padding:8px 16px;border-radius:var(--r);cursor:pointer;font-family:inherit;
  transition:background .2s;
}
.msg-btn:active{background:#E8E6DF}
.msg-btn-primary{
  color:#fff;background:var(--red);
  box-shadow:0 2px 8px rgba(230,0,32,.25);
}
.msg-btn-primary:active{background:var(--red-d)}
.tr-cf-ops .btn{height:42px}

/* ===== 吐槽多轮对话 · 2026-09-09 三改：混合布局（≤1条直排 / ≥2条聚合大卡）+ 淡化虚线不抢正文 ===== */
.t-thread{margin-top:8px;padding-top:6px;border-top:1px dashed rgba(0,0,0,.06)}
/* ---- 聚合大卡（回复 ≥2 条时整卡收纳，标题行弱化）---- */
.t-panel{border:1.5px dashed rgba(35,36,42,.18);background:rgba(255,255,255,.42);border-radius:12px 5px 12px 5px/5px 12px 5px 12px;padding:8px 10px 4px;transform:rotate(.4deg);box-sizing:border-box}
.t-panel-h{font-size:9px;color:#A9A9B0;letter-spacing:.6px;margin-bottom:5px;display:flex;align-items:center;gap:5px}
.t-panel-h::before{content:'';width:5px;height:5px;border-radius:50%;background:#CFCFD6;flex:none}
/* ---- 对话行：全部淡虚线、低饱和，作者靠左 / 总部靠右 / 系统居中 ---- */
.t-thread .tb{display:flex;flex-direction:column;margin-bottom:6px}
.t-thread .tb:last-child{margin-bottom:2px}
.t-thread .tb .tb-meta{font-size:9.5px;color:#B9B9C0;margin-bottom:2px;display:flex;align-items:center;gap:4px;line-height:1.4}
.tb-user .tb-bub,.tb-user .tb-meta{align-self:flex-start}
.tb-admin .tb-bub,.tb-admin .tb-meta{align-self:flex-end}
.tb-sys .tb-bub,.tb-sys .tb-meta{align-self:center}
.tb-bub{position:relative;font-size:11.5px;line-height:1.55;padding:5px 10px;border-radius:8px;word-break:break-word;text-align:left;box-sizing:border-box;background:transparent}
/* 作者：淡灰虚线（正文最轻） */
.tb-user .tb-bub{max-width:94%;color:#73737A;border:1px dashed rgba(35,36,42,.15);transform:rotate(-.4deg)}
/* 总部：淡金虚线 + 细字（比正文浅一个层级） */
.tb-admin .tb-bub{max-width:94%;color:#8A6D24;border:1px dashed rgba(198,165,70,.38);transform:rotate(.4deg)}
/* 系统：无边框居中弱提示 */
.tb-sys .tb-bub{color:#A9A9AF;font-size:10.5px;text-align:center;max-width:100%;padding:1px 4px}
.tb-admin .tb-meta{flex-direction:row-reverse}
/* 总部徽章：极淡金底 */
.tb-flag{font-style:normal;font-size:9px;background:rgba(236,208,120,.3);color:#8A6D24;border:1px solid rgba(210,178,90,.3);border-radius:4px;padding:0 5px;font-weight:700;letter-spacing:.3px}
/* 作者追答输入条 */
.tcm-zone{margin-top:9px}
.t-pending{font-size:11px;color:#B45309;background:#FEF6E3;border:1px dashed #E8C48B;border-radius:8px;padding:5px 8px;margin-bottom:6px;line-height:1.6}
.t-pending .tp-prev{display:inline-block;background:#fff;border-radius:5px;padding:1px 6px;margin:2px 3px 0 0;color:#7A5A1E;color:#6B3415;border:1px solid #E7C9A8}
.tcm-bar{display:flex;gap:6px;align-items:center;margin-top:6px}
.tcm-bar input{flex:1;border:1px solid #E4E6EB;border-radius:16px;padding:6px 12px;font-size:12px;outline:none;background:#fff}
.tcm-bar input:focus{border-color:#1668B0}
.tcm-bar button{border:none;background:linear-gradient(135deg,#1668B0,#0E4F8A);color:#fff;border-radius:16px;padding:6px 13px;font-size:12px;font-weight:600;white-space:nowrap}
/* 管理端待审追答复核 */
.tm-pr{background:#FFF7E6;border:1px solid #F0D9A8;border-radius:10px;padding:8px 10px;margin-top:9px}
.tm-pr-t{font-size:11px;color:#B45309;font-weight:700;margin-bottom:6px}
.tm-pr-item{border-top:1px dashed #EAD9B8;padding:6px 0}
.tm-pr-item:first-of-type{border-top:none}
.tm-pr-c{font-size:10.5px;color:#9AA1AC}
.tm-pr-txt{font-size:12.5px;color:#4A3A12;margin:2px 0 5px;line-height:1.5;word-break:break-word}
.tm-pr-ops{display:flex;gap:6px}
.tm-pr-ops button{border:none;font-size:11.5px;border-radius:12px;padding:4px 10px;background:#2FAE60;color:#fff;font-weight:600}
.tm-pr-ops button.rj{background:#fff;color:#C2410C;border:1px solid #E8B56B}
/* 总部回复框 */
.tm-respond{margin-top:8px}
.tm-respond textarea{width:100%;box-sizing:border-box;border:1px solid #E4E6EB;border-radius:10px;padding:7px 10px;font-size:12px;resize:none;outline:none;font-family:inherit}
.tm-respond textarea:focus{border-color:#1668B0}
.tm-respond button{margin-top:5px;border:none;background:linear-gradient(135deg,#D4A017,#B8860B);color:#fff;border-radius:14px;padding:6px 15px;font-size:12px;font-weight:600}
/* 吐槽贴纸卡片：底部 padding 加大，给 stamp 章让出安全区，避免与对话气泡重叠产生"拉长"错觉 */
.toast-item.note{padding-bottom:18px}
.toast-item.note.wide{padding-bottom:20px}
.toast-item.mgmt.has-pr{border:1px solid #F0C36B}
/* ===== 案例原稿留存（2026-09-09：详情页底部回看 AI 排版前的原始投稿） ===== */
.raw-card{margin-top:12px;border:1.5px dashed rgba(35,36,42,.26);background:#FAFAF7;border-radius:12px;padding:11px 12px 10px}
.raw-card .raw-tt{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:14px;font-weight:700;color:#2b2b30}
.raw-card .raw-tt .raw-sub{font-size:10px;color:#9AA1AC;font-weight:400;white-space:nowrap}
.raw-tags{margin-top:7px;display:flex;flex-wrap:wrap;gap:5px}
.raw-tag{font-size:10.5px;line-height:1.7;padding:1px 7px;border-radius:5px;background:#fff;border:1px solid rgba(35,36,42,.2);color:#5b5b62}
.raw-tag.voice{background:#FAEEDA;border-color:#EFD9A8;color:#854F0B}
.raw-tag.doc{background:#E1F5EE;border-color:#A5DCC9;color:#0F6E56}
.raw-tag.note{background:#F1EFE8;border-style:dashed;border-color:#D3D1C7;color:#6e6d67}
.raw-body{margin-top:8px;font-size:12.5px;line-height:1.7;color:#4a4a50;white-space:pre-wrap;word-break:break-word;position:relative}
.raw-body.collapsed{max-height:126px;overflow:hidden}
.raw-body.collapsed::after{content:'';position:absolute;left:0;right:0;bottom:0;height:46px;background:linear-gradient(180deg,rgba(250,250,247,0),#FAFAF7)}
.raw-more{text-align:center;font-size:12px;color:#1668B0;font-weight:600;padding:5px 0 1px;cursor:pointer}
.raw-file{margin-top:8px;border-top:1px dashed rgba(35,36,42,.16);padding-top:7px;font-size:12px;color:#6b6b72;display:flex;align-items:flex-start;gap:5px;word-break:break-all}
.raw-file a{color:#1668B0;text-decoration:none;font-weight:600}
.raw-none{margin-top:8px;font-size:11.5px;color:#9a9aa1;line-height:1.65;background:rgba(35,36,42,.035);border:1px dashed rgba(35,36,42,.14);border-radius:8px;padding:6px 9px}
/* ===== 已发布案例管理（2026-09-09：审核工作区 已发布管理 tab + 再编辑/下架/删除） ===== */
#rv-tabs2{display:flex;gap:6px;padding:10px 16px 0}
#rv-tabs2 span{font-size:12.5px;padding:5px 14px;border-radius:16px;background:#fff;border:1px solid #E2E4E8;color:#7A828E;cursor:pointer;font-weight:600}
#rv-tabs2 span.on{background:#1668B0;border-color:#1668B0;color:#fff}
.rv-m-bar{display:flex;align-items:center;gap:6px;padding:10px 16px 0;flex-wrap:wrap}
.rv-m-cnt{font-size:11.5px;color:#9AA1AC;margin-right:2px}
.rv-m-bar .pill{font-size:11.5px;padding:4px 11px;border-radius:14px;background:#fff;border:1px solid #E2E4E8;color:#7A828E;cursor:pointer}
.rv-m-bar .pill.on{background:#1668B0;border-color:#1668B0;color:#fff}
.review-status.down{background:#F1EFE8;color:#5F5E5A}
.review-status.pub{background:#E8F7EE;color:#1E7A3C}
.rv-tag-img{font-size:10.5px;background:#E1F5EE;border:1px solid #A5DCC9;color:#0F6E56;border-radius:5px;padding:1px 6px}
.rw-st{font-style:normal;font-size:10px;border-radius:5px;padding:1px 6px;font-weight:600}
.rw-st.pub{background:#E8F7EE;color:#1E7A3C}
.rw-st.down{background:#F1EFE8;color:#5F5E5A}
.rw-st.rj{background:#FCEBEB;color:#A32D2D}
.rw-st.pend{background:#FFF6E0;color:#B8860B}
.rw-btn.del{background:#fff;color:#A32D2D;border:1px solid #F0B8B8}
/* 工作台图片插入工具条 */
.rw-imgbar{margin-top:9px;background:#F6F9F5;border:1px dashed #C3D9C4;border-radius:10px;padding:7px 9px}
.rw-imgbar-t{font-size:11px;color:#3B6D11;margin-bottom:6px;line-height:1.5}
.rw-imgbar-s{display:flex;gap:7px;flex-wrap:wrap}
.rw-imgit{width:58px;text-align:center;cursor:pointer}
.rw-imgit img{width:56px;height:40px;object-fit:cover;border:1.5px solid #C0DD97;border-radius:6px;background:#fff;display:block}
.rw-imgit i{font-style:normal;font-size:10px;color:#3B6D11;display:block;margin-top:2px}
/* 技师端图文混排 */
.tl-img{display:inline-block;vertical-align:middle;margin:2px 4px;cursor:pointer}
.tl-img img{max-width:72%;max-height:300px;border:1px solid rgba(0,0,0,.12);border-radius:8px;background:#F6F6F6;vertical-align:middle}
.raw-body .tl-img img{max-width:82%;max-height:280px}
/* ===== 吐槽管理 · 编辑/删除工具行（2026-09-09） ===== */
.tm-tools{display:flex;gap:6px;margin:4px 0 2px}
.tm-tools button{border:1px solid #E2E4E8;background:#F4F4F5;color:#5F6470;font-size:11px;border-radius:12px;padding:3px 10px;cursor:pointer;font-weight:600}
.tm-tools button.del{color:#A32D2D;border-color:#F0C4C4;background:#FFF7F7}
/* ===== 对话气泡管理（2026-09-09：管理端可编辑/删除单条对话） ===== */
.tb-meta-m{flex-direction:row !important}
.tb-ops{display:inline-flex;gap:2px;margin-left:4px;vertical-align:middle;flex:none}
.tb-ops button{width:16px;height:16px;font-size:9px;line-height:1;border:1px solid #D8DCE2;background:#fff;color:#8A909C;border-radius:50%;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center}
.tb-ops button:active{opacity:.55}
.tb-ops button.del{color:#C0504D;border-color:#EAC9C7}
.tb-ed{display:inline-block;font-size:9px;color:#A98A2B;border:1px solid #E6D5A2;background:#FDF8E7;border-radius:4px;padding:0 3px;margin-left:4px;vertical-align:middle;line-height:1.5}
/* ===== 吐槽审核页 · 贴纸手账皮肤（2026-09-09：对齐公开墙便签卡哇伊风，作用域仅审核页） ===== */
#page-toast-mgmt .toast-item.mgmt{position:relative;background:#FFFDF6;border:2px solid #23242A;border-radius:255px 15px 225px 15px/15px 225px 15px 255px;box-shadow:3px 4px 0 rgba(35,36,42,.14);padding:13px 13px 11px;transform:rotate(-.35deg)}
#page-toast-mgmt .toast-item.mgmt:nth-child(even){transform:rotate(.4deg)}
#page-toast-mgmt .toast-item.mgmt::before{content:'';position:absolute;top:-10px;left:50%;width:76px;height:19px;transform:translateX(-50%) rotate(-4deg);background:rgba(255,222,130,.8);border:1px solid rgba(35,36,42,.12);border-radius:2px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
#page-toast-mgmt .toast-item.mgmt.sk-pending{background:#FFF6C9}
#page-toast-mgmt .toast-item.mgmt.sk-rejected{background:#EFEDE6;transform:rotate(-.25deg)}
#page-toast-mgmt .toast-item.mgmt.sk-withdrawn{background:#F2F0EB;opacity:.82}
#page-toast-mgmt .toast-item.mgmt.has-pr{border-color:#8C6B0E;box-shadow:3px 4px 0 rgba(140,107,14,.22)}
#page-toast-mgmt .toast-head{flex-wrap:wrap;row-gap:4px;padding-right:2px}
#page-toast-mgmt .toast-av{width:28px;height:28px;border-radius:12px 4px 11px 5px/5px 11px 4px 12px;background:#fff;border:2px solid #23242A;color:#23242A;font-weight:800;font-size:13px;display:inline-flex;align-items:center;justify-content:center;flex:none}
#page-toast-mgmt .toast-head b{font-size:13.5px;color:#17181C}
#page-toast-mgmt .toast-role{color:#17181C;background:#fff;border:1.5px solid #23242A;border-radius:999px 6px 999px 6px/6px 999px 6px 999px;padding:1px 7px;font-weight:600;font-size:10.5px}
#page-toast-mgmt .toast-st{font-family:'Smiley Sans',sans-serif;border:1.8px solid currentColor;border-radius:4px 8px 4px 8px/8px 4px 8px 4px;box-shadow:inset 0 0 0 1px currentColor;background:rgba(255,255,255,.3);padding:1px 7px;transform:rotate(-2deg);font-weight:800;letter-spacing:.5px}
#page-toast-mgmt .toast-st.pending,#page-toast-mgmt .toast-st.amber{color:#B45309;background:rgba(254,243,199,.55)}
#page-toast-mgmt .toast-st.done,#page-toast-mgmt .toast-st.green{color:#1E7A46}
#page-toast-mgmt .toast-st.gray{color:#6B7280}
#page-toast-mgmt .toast-st.blue{color:#1565C0}
#page-toast-mgmt .toast-st.warn{color:#B91C1C;background:rgba(254,226,226,.55);transform:rotate(1.6deg)}
#page-toast-mgmt .toast-people{font-size:11px;color:#6E7480;margin-top:5px;padding-left:1px}
#page-toast-mgmt .toast-content{margin-top:7px;font-size:13.5px;color:#23242A;line-height:1.75;word-break:break-word;white-space:pre-wrap}
#page-toast-mgmt .toast-reason{background:#FDE9E3;border:1.5px dashed #D85A30;color:#7A3410;font-size:12px;margin-top:8px;padding:6px 9px;border-radius:8px 3px 9px 4px/4px 9px 3px 8px;line-height:1.55}
/* 卡片工具行（编辑/删除吐槽）贴纸化 */
#page-toast-mgmt .tm-tools{margin:7px 0 1px;display:flex;gap:6px}
#page-toast-mgmt .tm-tools button{background:#fff;border:1.5px solid #23242A;color:#23242A;font-size:11px;font-weight:700;border-radius:999px 5px 999px 5px/5px 999px 5px 999px;padding:3px 11px;transform:rotate(-.6deg)}
#page-toast-mgmt .tm-tools button:active{transform:scale(.94)}
#page-toast-mgmt .tm-tools button.del{color:#B3261E;border-color:#B3261E;background:#FFF7F6;transform:rotate(.6deg)}
/* 底部审核动作：贴纸大按钮，主次分明、触控更大 */
#page-toast-mgmt .toast-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:10px;flex-wrap:wrap}
#page-toast-mgmt .tm-btn{font-family:'Smiley Sans',sans-serif;font-weight:800;font-size:13px;border-radius:10px 3px 10px 3px/3px 10px 3px 10px;padding:8px 16px;cursor:pointer;border:2px solid #23242A;box-shadow:2px 2px 0 rgba(35,36,42,.18)}
#page-toast-mgmt .tm-btn:active{transform:translate(1px,1px) scale(.98);box-shadow:none}
#page-toast-mgmt .tm-btn.ok{background:#DFF3E2;color:#1E5B32}
#page-toast-mgmt .tm-btn.rj{background:#fff;color:#B3261E;border-color:#B3261E}
#page-toast-mgmt .tm-btn.rst{background:#E7F0FB;color:#185FA5}
/* 撤下按钮：红戳感 */
#page-toast-mgmt .toast-head .tm-withd{font-family:'Smiley Sans',sans-serif;margin-left:auto;font-size:11px;font-weight:800;color:#B3261E;background:#fff;border:1.5px solid #B3261E;border-radius:3px 8px 3px 8px/8px 3px 8px 3px;padding:3px 9px;transform:rotate(1.5deg)}
/* 对话区：回贴纸暖色气泡（淡彩不抢戏）+ 大触控编辑删除钮 */
#page-toast-mgmt .t-panel{background:rgba(255,253,246,.62);border:1.5px dashed #B9A877;border-radius:14px 4px 14px 4px/4px 14px 4px 14px;padding:8px 10px 6px;margin-top:9px}
#page-toast-mgmt .t-panel-h{font-size:10.5px;color:#8A7340;font-weight:700;letter-spacing:.4px;margin-bottom:4px}
#page-toast-mgmt .t-thread{background:rgba(255,253,246,.45);border:1px dashed #D8CEB2;border-radius:12px 3px 12px 3px/3px 12px 3px 12px;padding:8px 9px 5px;margin-top:8px}
#page-toast-mgmt .tb-user .tb-bub{background:#FFF1DC;border:1.5px dashed #D98E4A;color:#6B3A12;border-radius:14px 5px 10px 4px/4px 10px 5px 14px}
#page-toast-mgmt .tb-admin .tb-bub{background:#FFF8CF;border:1.5px dashed #C9A227;color:#6B5300;border-radius:5px 14px 4px 10px/10px 4px 14px 5px}
#page-toast-mgmt .tb-sys .tb-bub{background:#F4F2EC;border:1px dashed #B9B3A6;color:#7A7568;border-radius:8px;font-size:11px}
#page-toast-mgmt .tb-bub{font-size:12.5px;line-height:1.6;padding:7px 11px;word-break:break-word;text-align:left}
#page-toast-mgmt .tb-flag{background:linear-gradient(135deg,#D4A017,#B8860B);border-radius:4px;padding:1px 5px;font-weight:800}
/* 单条气泡编辑/删除：26px 圆钮，触控友好 */
#page-toast-mgmt .tb-meta-m{flex-direction:row !important}
#page-toast-mgmt .tb-ops{display:inline-flex;gap:6px;margin-left:6px;vertical-align:middle;flex:none}
#page-toast-mgmt .tb-ops button{width:27px;height:27px;font-size:13px;line-height:1;border:1.5px solid #23242A;background:#FFFDF6;color:#3A3A40;border-radius:50%;cursor:pointer;padding:0;display:inline-flex;align-items:center;justify-content:center;box-shadow:1px 1px 0 rgba(35,36,42,.14);font-family:'Smiley Sans',sans-serif;font-weight:800}
#page-toast-mgmt .tb-ops button:active{transform:scale(.9)}
#page-toast-mgmt .tb-ops button.del{color:#B3261E;border-color:#B3261E;background:#FFF4F2}
#page-toast-mgmt .tb-ops button:hover{border-width:2px}
#page-toast-mgmt .tb-ed{font-size:9px;color:#8A6D1C;border:1px solid #C9A227;background:#FFF9DB;border-radius:5px 2px 5px 2px/2px 5px 2px 5px;padding:0 4px;margin-left:5px}
/* 待审追答复核条：琥珀纸片 */
#page-toast-mgmt .tm-pr{background:#FFF4D6;border:1.5px dashed #D9A63E;border-radius:12px 4px 12px 4px/4px 12px 4px 12px;padding:8px 10px;margin-top:9px}
#page-toast-mgmt .tm-pr-t{font-size:11px;color:#7A5200;font-weight:800}
#page-toast-mgmt .tm-pr-txt{font-size:12.5px;color:#4A3808}
#page-toast-mgmt .tm-pr-ops button{background:#2FAE60;color:#fff;border-radius:8px 3px 8px 3px/3px 8px 3px 8px;padding:5px 12px;font-weight:800;border:1.5px solid #1E7A3C;box-shadow:1.5px 1.5px 0 rgba(30,122,60,.2)}
#page-toast-mgmt .tm-pr-ops button.rj{background:#fff;color:#B3261E;border-color:#D9706A}
/* 总部回复框：奶油便签输入 */
#page-toast-mgmt .tm-respond textarea{background:#FFFEF5;border:1.5px dashed #C9A227;border-radius:12px 3px 12px 3px/3px 12px 3px 12px;font-size:12.5px;padding:8px 10px}
#page-toast-mgmt .tm-respond button{background:linear-gradient(135deg,#E8B84B,#C9A227);color:#3A2F00;border:1.5px solid #8C6B0E;border-radius:8px 3px 8px 3px/3px 8px 3px 8px;padding:7px 16px;font-size:12.5px;font-weight:800;box-shadow:1.5px 1.5px 0 rgba(140,107,14,.2)}
/* 进度章 + 留言盖章：印章按钮排 */
#page-toast-mgmt .tm-progress{background:rgba(255,253,246,.55);border-top:1.5px dashed #D8CEB2;border-radius:0 0 12px 3px/0 0 3px 12px;margin-top:9px;padding:8px 2px 2px;gap:6px;row-gap:7px}
#page-toast-mgmt .tm-pl{font-family:'Smiley Sans',sans-serif;font-size:12px;color:#7A5200;font-weight:800}
#page-toast-mgmt .tm-progress .pbtn{font-family:'Smiley Sans',sans-serif;border:1.5px solid currentColor;background:rgba(255,255,255,.5);border-radius:6px 2px 6px 2px/2px 6px 2px 6px;padding:4px 10px;font-size:11.5px;font-weight:800;box-shadow:1px 1px 0 rgba(0,0,0,.08)}
#page-toast-mgmt .tm-progress .pbtn.on{box-shadow:inset 0 0 0 1.5px currentColor}
#page-toast-mgmt .tm-progress .pbtn.pb-clear{color:#8A8880}
#page-toast-mgmt .tm-progress .tm-plat{font-size:10.5px;color:#9A8B60}
#page-toast-mgmt .tm-ed{border-top:1.5px dashed #D8CEB2;padding-top:8px;margin-top:2px}
#page-toast-mgmt .tm-ed-inp{background:#FFFDF4;border:1.5px solid #C9A227}
#page-toast-mgmt .tm-ed-go{background:linear-gradient(135deg,#E8B84B,#C9A227);color:#3A2F00}
#page-toast-mgmt .tm-ed-hint{color:#A99A6E}
#page-toast-mgmt .tm-ed-clr{color:#B3261E;border-color:#E0A9A4}
/* 折叠/展开与计数、状态筛选不更动结构只强化手账点缀 */
#page-toast-mgmt .pill{border:1.5px solid #D8CEB2;background:#FFFDF6;color:#6B5D2A;font-weight:700}
#page-toast-mgmt .pill.on{background:#23242A;border-color:#23242A;color:#FFF6C9}

/* ============================================================
 * 我的案例 + 投稿评价反馈（2026-09-10）
 * 投稿人自查：状态 / 评分 / 亮点 / 缺点 / 改进建议（仅本人可见）
 * ============================================================ */
/* 「我的案例」已改为独立页（原 .me-my-case-wrap 展开面板样式移除） */
#me-my-case-list .mc-item{background:#fff;border:1px solid #E6ECF3;border-radius:12px;padding:12px 13px;margin:0 0 10px;box-shadow:0 2px 8px rgba(22,104,176,.05);cursor:pointer;transition:.15s}
#me-my-case-list .mc-item:active{transform:scale(.99);background:#FAFCFF}
.mc-top{display:flex;align-items:center;gap:7px;margin-bottom:7px}
.mc-st{font-size:10.5px;border-radius:999px;padding:2px 9px;font-weight:700;flex-shrink:0}
.mc-st.green{color:#1E7A46;background:#E4F5EA}
.mc-st.amber{color:#B45309;background:#FEF3C7}
.mc-st.gray{color:#6B7280;background:#EFF1F4}
.mc-date{font-size:11px;color:#9AA1AC}
.mc-score{margin-left:auto;display:inline-flex;align-items:baseline;gap:3px;background:linear-gradient(135deg,#FFF4E8,#FFE9CF);border:1px solid #F2D9B0;border-radius:9px;padding:2px 8px;flex-shrink:0}
.mc-score b{font-size:15px;color:#C2410C;line-height:1;font-weight:800}
.mc-score i{font-size:10px;color:#B45309;font-weight:700;font-style:normal}
.mc-score em{font-size:9px;color:#B08A5A;font-style:normal}
.mc-title{font-size:14px;font-weight:700;color:#231815;line-height:1.45;margin-bottom:4px}
.mc-meta{font-size:11.5px;color:#7A828E;margin-bottom:5px}
.mc-sum{font-size:11.5px;color:#5B6470;background:#F7F9FC;border-radius:8px;padding:6px 9px;line-height:1.55}
.mc-sum.mc-locked{color:#98A0AC;background:#F5F6F8}
.mc-sum.mc-retry{color:#B45309;background:#FFF7ED;border:1px solid #FDE9CF}
.mc-go{text-align:right;font-size:12px;color:#1668B0;font-weight:600;margin-top:7px}

/* 投稿评价详情弹层 */
.cf-mask{position:fixed;inset:0;background:rgba(20,22,28,.46);z-index:120;display:flex;align-items:flex-end;justify-content:center}
.cf-sheet{width:100%;max-width:414px;max-height:88vh;background:#F5F7FA;border-radius:18px 18px 0 0;display:flex;flex-direction:column;overflow:hidden;animation:cfUp .22s ease}
@keyframes cfUp{from{transform:translateY(30px);opacity:.4}to{transform:none;opacity:1}}
.cf-head{display:flex;align-items:flex-start;gap:8px;background:#fff;padding:13px 15px;border-bottom:1px solid #EEF1F5}
.cf-hc{flex:1;min-width:0}
.cf-hc b{font-size:15px;color:#231815;display:block;line-height:1.4;margin-bottom:5px}
.cf-hc span{font-size:11.5px;color:#8A93A0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cf-st{font-style:normal;font-size:10.5px;border-radius:999px;padding:2px 9px;font-weight:700}
.cf-st.green{color:#1E7A46;background:#E4F5EA}
.cf-st.amber{color:#B45309;background:#FEF3C7}
.cf-st.gray{color:#6B7280;background:#EFF1F4}
.cf-close{font-size:17px;color:#B6BCC6;padding:2px 4px;cursor:pointer;flex-shrink:0}
.cf-body{flex:1;overflow-y:auto;padding:14px 15px calc(24px + env(safe-area-inset-bottom))}
.cf-score{display:flex;align-items:center;gap:10px;border-radius:14px;padding:16px 18px;margin-bottom:14px;color:#fff;box-shadow:0 6px 16px rgba(35,24,21,.12)}
.cf-score b{font-size:34px;line-height:1;font-weight:800;letter-spacing:-1px}
.cf-score i{font-size:15px;font-weight:700;font-style:normal;padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.24)}
.cf-score em{margin-left:auto;font-size:11px;font-style:normal;opacity:.9}
.cf-score.lv1{background:linear-gradient(135deg,#E60020,#B80019)}
.cf-score.lv2{background:linear-gradient(135deg,#1668B0,#0F4E86)}
.cf-score.lv3{background:linear-gradient(135deg,#2FAE60,#1E7A46)}
.cf-score.lv4{background:linear-gradient(135deg,#8A93A0,#6B7280)}
.cf-score.lv4 em{max-width:54%;text-align:right;line-height:1.4;font-size:10.5px}
.cf-sec{background:#fff;border:1px solid #E9EEF4;border-radius:12px;padding:12px 13px;margin-bottom:12px}
.cf-h{font-size:13px;font-weight:700;color:#231815;margin-bottom:8px}
.cf-sec ul{list-style:none;margin:0;padding:0}
.cf-sec li{position:relative;font-size:12.5px;color:#3F4650;line-height:1.65;padding-left:14px;margin-bottom:5px}
.cf-sec li:last-child{margin-bottom:0}
.cf-sec li:before{content:'';position:absolute;left:2px;top:8px;width:5px;height:5px;border-radius:50%;background:#C7CFDA}
.cf-sec li b{color:#231815}
.cf-sec li i{font-style:normal;font-weight:700;color:#C2410C;margin-right:4px}
.cf-sec li span{color:#6B7280}
.cf-sec.good{border-color:#CFEBD9;background:#F7FCF9}
.cf-sec.good li:before{background:#2FAE60}
.cf-sec.warn{border-color:#F5E0BE;background:#FFFCF5}
.cf-sec.warn li:before{background:#F59E0B}
.cf-sec.bad{border-color:#F3D6D4;background:#FFF8F8}
.cf-sec.bad li:before{background:#E60020}
.cf-dim{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.cf-dim:last-child{margin-bottom:0}
.cf-dim-n{font-size:12px;color:#3F4650;width:96px;flex-shrink:0}
.cf-dim-b{flex:1;height:7px;border-radius:999px;background:#EEF2F6;overflow:hidden}
.cf-dim-b i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#1668B0,#2E9BE0)}
.cf-dim-v{font-size:12px;color:#1668B0;font-weight:700;width:46px;text-align:right;flex-shrink:0}
.cf-dim-v em{font-style:normal;font-size:10px;color:#9AA1AC;font-weight:400}
.cf-cmt{font-size:12.5px;color:#3F4650;line-height:1.7;background:#F7F9FC;border-left:3px solid #1668B0;border-radius:0 8px 8px 0;padding:9px 11px;white-space:pre-wrap}
/* 投稿详情弹层底部：发布稿 / 原稿（2026-09-14 新增，补作者回看自己稿件正文的入口） */
.cf-more{margin-top:2px}
.cfd-load{font-size:12px;color:#9AA1AC;text-align:center;padding:10px 0}
.cfd-none{font-size:11.5px;color:#9a9aa1;line-height:1.65;background:rgba(35,36,42,.035);border:1px dashed rgba(35,36,42,.14);border-radius:8px;padding:7px 9px}
.cfd-sub{margin-left:6px;font-size:10px;color:#9AA1AC;font-weight:400}
.cfd-meta{font-size:11px;color:#8A93A0;margin:-4px 0 9px}
.cfd-b{margin-bottom:9px}
.cfd-b:last-child{margin-bottom:0}
.cfd-b>b{display:block;font-size:12px;color:#231815;margin-bottom:3px}
.cfd-b>span{font-size:12.5px;color:#3F4650;line-height:1.7}
.cfd-step{margin-bottom:6px;font-size:12.5px;color:#3F4650;line-height:1.7}
.cfd-step:last-child{margin-bottom:0}
.cfd-step i{display:block;font-style:normal;font-weight:700;color:#231815}
.cfd-warn{margin:2px 0 9px;font-size:12px;color:#8a5a00;background:#FFF8E8;border:1px solid #F3E0B8;border-radius:8px;padding:7px 9px;line-height:1.6}
.cfd-foot{margin-top:10px;border-top:1px dashed rgba(35,36,42,.16);padding-top:8px}
.cfd-foot span{font-size:12.5px;color:#1668B0;font-weight:600;cursor:pointer}
.cf-verdict{font-size:12.5px;font-weight:700;color:#8A5A00;background:#FFF7E6;border:1px dashed #F0D9A8;border-radius:10px;padding:10px 12px;margin-bottom:12px}
.cf-empty{font-size:12.5px;color:#7A828E;background:#fff;border:1px dashed #DDE3EA;border-radius:10px;padding:14px;line-height:1.7;text-align:center;margin-bottom:12px}
.cf-tip{font-size:11.5px;color:#8A93A0;text-align:center;line-height:1.6;margin-top:2px}
.cf-pending{background:#fff;border:1px dashed #DDE3EA;border-radius:14px;padding:26px 20px;text-align:center}
.cf-pending-ic{font-size:30px;margin-bottom:8px}
.cf-rej{background:#FFF8F1;border:1px solid #FBD9B5;border-left:3px solid #E88B2E;border-radius:12px;padding:12px 14px;margin-bottom:12px}
.cf-rej b{display:block;font-size:13px;color:#B45309;margin-bottom:5px}
.cf-rej p{font-size:12px;color:#7A5A33;line-height:1.72;margin:0}
.cf-rej p b{display:inline;font-size:12px;color:#B45309;margin:0}
.cf-sec.cf-sec-key{background:#FFFBF5;border:1px solid #FBE7CC}
.cf-pending b{font-size:15px;color:#231815;display:block;margin-bottom:8px}
.cf-pending p{font-size:12.5px;color:#7A828E;line-height:1.75;margin:0}

/* ============================================================
 * TR 报告 v2.0（5 模块 / 47 字段，对齐《APP TR报告投稿模板 v2.0》）
 * 新增：附件 A/B/C/D 分类选择层 · 故障车辆明细子表 · 诉求多选
 *       · 提交前自检框 · 标准模板标 · 列表版本标
 * ============================================================ */

/* ---- 照片分类提示条 ---- */
.tr-att-hint{font-size:11px;color:#7A8090;line-height:1.75;background:#F7F5F0;border:1px solid #EFEBE2;border-radius:10px;padding:8px 10px;margin-top:10px}
.tr-att-hint b{color:#2B3A67;font-weight:800}
.tr-att-hint:before{margin-right:2px}

/* ---- 附件：分类下拉（嵌在文档项右侧信息区） ---- */
.tr-doc-kind{margin-top:5px;max-width:100%;border:1px solid #E5E0D4;border-radius:8px;padding:4px 6px;font-size:11px;color:#5B6270;background:#fff;font-family:inherit;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#A6ACB6 50%),linear-gradient(135deg,#A6ACB6 50%,transparent 50%);background-position:calc(100% - 12px) 50%,calc(100% - 8px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;padding-right:22px}
.tr-doc-kind:focus{outline:none;border-color:#2B3A67}

/* ---- 分类选择层（底部弹出） ---- */
.tr-kd-mask{position:fixed;inset:0;background:rgba(15,17,24,.5);z-index:1000;display:flex;align-items:flex-end;justify-content:center;animation:trKdFade .16s ease}
@keyframes trKdFade{from{opacity:0}to{opacity:1}}
.tr-kd-sheet{width:100%;max-width:414px;background:#fff;border-radius:20px 20px 0 0;padding:8px 14px calc(14px + env(safe-area-inset-bottom));animation:trKdUp .22s cubic-bezier(.2,.8,.3,1);box-shadow:0 -8px 30px rgba(0,0,0,.2)}
@keyframes trKdUp{from{transform:translateY(40px);opacity:.6}to{transform:translateY(0);opacity:1}}
.tr-kd-h{font-size:14px;font-weight:800;color:#231815;text-align:center;padding:14px 0 10px}
.tr-kd-i{display:flex;align-items:center;gap:10px;padding:13px 12px;border-radius:12px;background:#FBFAF7;border:1px solid #EFEBE2;margin-bottom:8px;cursor:pointer;transition:.12s}
.tr-kd-i:active{transform:scale(.985);background:#F4F1EA}
.tr-kd-i b{width:26px;height:26px;flex-shrink:0;border-radius:8px;background:#2B3A67;color:#fff;font-size:12.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
.tr-kd-i span{flex:1;font-size:13px;color:#3F4650;line-height:1.4}
.tr-kd-c{text-align:center;font-size:14px;color:#7A8090;font-weight:600;padding:13px 0 4px;cursor:pointer}
.tr-kd-c:active{color:#231815}

/* ---- 故障车辆明细子表 ---- */
#tr-detail-list{margin-top:2px}
.tr-detail-empty{font-size:11.5px;color:#9AA1AC;line-height:1.7;background:#FBFAF7;border:1px dashed #E5E0D4;border-radius:10px;padding:11px 12px;text-align:center}
.tr-detail-row{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid #F0EDE6}
.tr-detail-row:last-child{border-bottom:none}
.tr-detail-n{width:22px;height:22px;flex-shrink:0;border-radius:50%;background:#EAF2FA;color:#1668B0;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center}
.tr-dv-vin{flex:1;min-width:0;border:1px solid #E5E0D4;border-radius:8px;padding:8px 9px;font-size:12.5px;background:#FBFAF7;color:#333;font-family:ui-monospace,Menlo,monospace;letter-spacing:.2px}
.tr-dv-date{width:108px;flex-shrink:0;border:1px solid #E5E0D4;border-radius:8px;padding:8px 6px;font-size:11.5px;background:#FBFAF7;color:#5B6270;font-family:inherit}
.tr-dv-vin:focus,.tr-dv-date:focus{outline:none;border-color:#2B3A67;background:#fff}
.tr-dv-del{width:26px;height:26px;flex-shrink:0;border-radius:50%;background:rgba(0,0,0,.05);color:#B8BEC9;font-size:14px;font-weight:700;line-height:25px;text-align:center;cursor:pointer}
.tr-dv-del:active{background:rgba(0,0,0,.12)}

/* ---- 服务站诉求：多选 + 其他说明 ---- */
.tr-dem-wrap{flex:1;min-width:0}
.tr-dem{display:flex;flex-wrap:wrap;gap:6px}
.tr-dem-i{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#3F4650;background:#FBFAF7;border:1px solid #E5E0D4;border-radius:999px;padding:6px 11px 6px 8px;cursor:pointer;line-height:1;transition:.12s}
.tr-dem-i:active{background:#F4F1EA}
.tr-dem-i input{width:14px;height:14px;margin:0;accent-color:#1668B0;flex-shrink:0}
.tr-dem-i:has(input:checked){background:#EAF2FA;border-color:#1668B0;color:#0F4E86;font-weight:700}
.tr-dem-oth{width:100%;margin-top:7px;border:1px solid #E5E0D4;border-radius:8px;padding:8px 9px;font-size:12.5px;background:#FBFAF7;color:#333;font-family:inherit}
.tr-dem-oth:focus{outline:none;border-color:#2B3A67;background:#fff}

/* ---- 下拉（值域字段） ---- */
.tr-sel{flex:1;min-width:0;border:1px solid #E5E0D4;border-radius:8px;padding:8px 9px;font-size:13px;background:#FBFAF7;color:#333;font-family:inherit;-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#A6ACB6 50%),linear-gradient(135deg,#A6ACB6 50%,transparent 50%);background-position:calc(100% - 15px) 50%,calc(100% - 11px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;padding-right:26px}
.tr-sel:focus{outline:none;border-color:#2B3A67;background-color:#fff}

/* ---- 「现场抄录」标记 ---- */
.tr-manual{font-style:normal;display:inline-block;font-size:9.5px;font-weight:800;color:#B45309;background:#FFF6E0;border:1px solid #F0D9A8;border-radius:6px;padding:1px 5px;margin-left:4px;vertical-align:1px;letter-spacing:.2px}

/* ---- 标准模板标 ---- */
.tr-spec-bar{font-size:11.5px;color:#5B6270;line-height:1.75;background:#F2F7FD;border:1px solid #D9E7F7;border-radius:12px}
.tr-spec-bar i{font-style:normal;color:#B45309;font-weight:800;background:#FFF6E0;border-radius:5px;padding:1px 5px}

/* ---- 提交前自检框 ---- */
.tr-check-box{border:1px solid #E5E0D4;transition:.15s}
.tr-check-box.ok{border-color:#CFEBD9;background:#F7FCF9}
.tr-check-box.warn{border-color:#F5E0BE;background:#FFFCF5}
.tr-check-box.bad{border-color:#F3D6D4;background:#FFF8F8}
.tr-check-h{font-size:13px;font-weight:800;color:#231815;line-height:1.5}
.tr-check-ul{list-style:none;margin:9px 0 0;padding:0}
.tr-check-ul li{position:relative;font-size:12px;line-height:1.7;color:#3F4650;padding-left:13px;margin-bottom:6px}
.tr-check-ul li:last-child{margin-bottom:0}
.tr-check-ul li:before{content:'';position:absolute;left:1px;top:7px;width:5px;height:5px;border-radius:50%}
.tr-check-ul li.b:before{background:#E60020}
.tr-check-ul li.w:before{background:#F59E0B}
.tr-check-ul li b{display:inline-block;font-size:9.5px;font-weight:900;border-radius:5px;padding:1px 5px;margin-right:5px;vertical-align:1px;letter-spacing:.3px}
.tr-check-ul li.b b{background:#FDEBEC;color:#C0392B}
.tr-check-ul li.w b{background:#FFF6E0;color:#B45309}
.tr-check-note{font-size:10.5px;color:#9AA1AC;line-height:1.65;margin-top:10px;padding-top:9px;border-top:1px dashed #E5E0D4}

/* ---- 提交核对弹窗：自检清单 ---- */
.tr-cf-dialog{max-height:82vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.tr-cf-issues{background:#FFFCF5;border:1px solid #F5E0BE;border-radius:12px;padding:11px 12px;margin-bottom:10px}
.tr-cf-issues>b{display:block;font-size:12.5px;font-weight:800;color:#B45309;margin-bottom:7px}
.tr-cf-issues ul{list-style:none;margin:0;padding:0;max-height:150px;overflow-y:auto}
.tr-cf-issues li{position:relative;font-size:11.5px;line-height:1.65;color:#3F4650;padding-left:12px;margin-bottom:5px}
.tr-cf-issues li:last-child{margin-bottom:0}
.tr-cf-issues li:before{content:'';position:absolute;left:1px;top:6px;width:5px;height:5px;border-radius:50%}
.tr-cf-issues li.b:before{background:#E60020}
.tr-cf-issues li.w:before{background:#F59E0B}
.tr-cf-issues li b{font-size:9.5px;font-weight:900;color:#B45309;background:#FFF6E0;border-radius:5px;padding:1px 5px;margin-right:4px}
.tr-cf-warn{font-size:10.5px;color:#9AA1AC;line-height:1.6;margin-top:8px;padding-top:8px;border-top:1px dashed #F0D9A8}
.tr-cf-ok2{background:#F7FCF9;border:1px solid #CFEBD9;border-radius:12px;padding:11px 12px;margin-bottom:10px;font-size:12.5px;font-weight:700;color:#1E7A47;text-align:center}

/* ---- TR 列表卡：模板版本标 ---- */
.tr-card .tr-spn{display:flex;align-items:center;gap:6px}
.tr-spec{font-style:normal;font-size:9.5px;font-weight:800;color:#7A8090;background:#F2F3F5;border:1px solid #E5E0D4;border-radius:6px;padding:1px 6px;letter-spacing:.2px;margin-left:auto;font-family:inherit}

/* ---- 窄屏（≤360px）明细行收窄 ---- */
@media (max-width:360px){
  .tr-dv-date{width:96px;font-size:11px}
  .tr-detail-row{gap:5px}
}


/* ========== 添加到手机桌面引导（2026-09-11） ========== */
.ins-sub{font-size:12.5px;color:#7A8598;text-align:center;margin:-8px 0 13px;line-height:1.6}
.ins-sub2{font-size:13px;color:#4A5568;margin:0 0 10px;line-height:1.6}
.ins-ok{background:#EAF7F0;border:1px solid #BFE6D2;color:#137A4E;border-radius:10px;padding:11px 13px;font-size:13px;line-height:1.66;margin-bottom:12px}
.ins-warn{background:#FFF7ED;border:1px solid #FBD9B5;border-left:3px solid #E88B2E;color:#B45309;border-radius:10px;padding:11px 13px;font-size:12.8px;line-height:1.7;margin-bottom:11px}
.ins-tip{font-size:11.5px;color:#98A0AC;line-height:1.68;margin-top:11px}
.ins-steps{display:flex;flex-direction:column;gap:9px}
.ins-step{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:#2C3542;line-height:1.6}
.ins-n{flex:0 0 auto;width:20px;height:20px;border-radius:50%;background:#EAF1FB;color:#1B4C8C;font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center;margin-top:1px}
.ins-go{width:100%;margin-top:13px;padding:12px;border:0;border-radius:11px;background:linear-gradient(135deg,#E60020,#C8102E);color:#fff;font-size:14.5px;font-weight:700;font-family:inherit;cursor:pointer}
.ins-go:active{opacity:.86}
.ins-close{width:100%;margin-top:14px;padding:11px;border:1px solid #E3E8EF;border-radius:11px;background:#F7F9FC;color:#4A5568;font-size:13.5px;font-weight:600;font-family:inherit;cursor:pointer}
.ins-close:active{background:#EDF1F6}
.ins-hot{font-style:normal;font-size:10.5px;font-weight:700;color:#fff;background:#E60020;border-radius:999px;padding:2px 8px}

/* ========== 电路图翻页增强（2026-09-11） ==========
 * 原翻页条贴 bottom:12px，安卓 Chrome 底部工具栏会盖住 → 点不到；
 * 且未放大时单指左右滑无任何反应 → 用户反馈「电路图没办法翻页」。 */
.cv-fbar{bottom:calc(24px + env(safe-area-inset-bottom)) !important;z-index:9 !important;padding:4px 8px !important}
.cv-fbtn{width:46px;height:42px}
.cv-fbtn svg{width:24px;height:24px}
.cv-fpg{pointer-events:auto;cursor:pointer;min-width:64px;padding:6px 10px;border-radius:999px}
.cv-fpg:active{background:rgba(255,255,255,.22)}
.cv-hint{bottom:calc(84px + env(safe-area-inset-bottom)) !important}

/* 缩略图跳页（点页码打开） */
.cv-pager{position:absolute;inset:0;z-index:20;background:rgba(6,8,12,.86);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-end}
.cv-pager-in{width:100%;max-height:82%;background:#12151A;border-top-left-radius:16px;border-top-right-radius:16px;display:flex;flex-direction:column;overflow:hidden}
.cv-pager-h{display:flex;align-items:center;gap:6px;padding:14px 16px 10px;color:#E4EDF8;font-size:13px;border-bottom:1px solid rgba(255,255,255,.08)}
.cv-pager-h b{font-weight:700}
.cv-pager-x{margin-left:auto;color:#9AA7B8;font-size:16px;padding:2px 10px;cursor:pointer}
.cv-pager-grid{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 14px calc(22px + env(safe-area-inset-bottom))}
.cv-th{position:relative;border-radius:8px;overflow:hidden;background:#1B2028;border:2px solid transparent;cursor:pointer}
.cv-th.on{border-color:#E60020}
.cv-th img{display:block;width:100%;height:74px;object-fit:cover;background:#0A0B0E}
.cv-th i{position:absolute;right:4px;bottom:4px;font-style:normal;font-size:10.5px;font-weight:700;color:#fff;background:rgba(0,0,0,.62);border-radius:999px;padding:1px 7px}

/* ========== 吐槽进度章「必须附说明」（2026-09-11） ========== */
.tm-appr{margin-top:11px;background:#FFFBF5;border:1px solid #FBE7CC;border-radius:11px;padding:12px 13px}
.tm-appr-t{font-size:12.5px;color:#B45309;line-height:1.6;margin-bottom:9px}
.tm-appr-pb{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:9px}
.tm-appr-note{width:100%;box-sizing:border-box;border:1px solid #E3E8EF;border-radius:9px;padding:9px 11px;font-size:12.8px;font-family:inherit;color:#1B2330;background:#fff;resize:vertical;line-height:1.6;outline:none}
.tm-appr-note:focus{border-color:#C7DBF5;box-shadow:0 0 0 3px rgba(27,76,140,.08)}
.tm-appr-ops{display:flex;gap:8px;margin-top:10px}
.tm-pnote{margin-top:7px;font-size:12.2px;color:#5B6470;background:#F7F9FC;border-radius:8px;padding:6px 9px;line-height:1.6}
.toast-pnote{margin-top:8px;font-size:12.2px;color:#3F5B48;background:#F1F8F3;border-left:3px solid #BFE6D2;border-radius:0 8px 8px 0;padding:7px 10px;line-height:1.62}

/* ===== 首页公告栏（我的 → 通知管理 发布） =====
   2026-09-12 一改：由「红底圆角图标块 + 单行标题轮播 + 点击弹层」改为
   「纯线条喇叭 +「公告」小标 + 正文直接铺开」，多条垂直堆叠一次看全。
   2026-09-12 二改：改为**定高滚动区**（原为随内容无限拉长）。
   · max-height 185px = 一个案例目录卡的高度（无头 Chromium 实测 .card.case = 185px，
     390px 手机宽；脚本 scripts/measure_nx.js 可复现）。内容少时按内容自然收缩
     （不折叠、不出滚动条），内容多时**区内滚动**，不把首页往下撑。
   · 空态**不再 display:none**，保留 76px（≈ 一张公告卡）位置 —— 有无公告布局都不跳动。
   · margin/padding 拆成 13+3（上）、14+2（左右）：给卡片阴影留缓冲（overflow:auto 会把
     溢出的 box-shadow 裁掉），视觉上仍是上 16px、左右 16px，跟案例卡左右对齐。
   · 上边距 16px：与顶部红 Hero 之间留呼吸位（原为 0，白条紧贴红底）。
   2026-10-10 三改：max-height 185px → 240px。185px 只够装「一条多行公告」或
   「两条单行公告」；两条并存时后一条会被压缩（实测内容 258px 对容器 185px，超出
   73px，公告底部两行被裁掉）。240px 可完整容纳一条 5 行公告（实测约 174px）并留出
   充足余量，以应对不同机型的折行与字体差异。 */
#home-notice{margin:13px 14px 0;padding:3px 2px 6px;max-height:240px;
  overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;scrollbar-color:#DFE4EA transparent}
#home-notice::-webkit-scrollbar{width:4px}
#home-notice::-webkit-scrollbar-track{background:transparent}
#home-notice::-webkit-scrollbar-thumb{background:#DFE4EA;border-radius:2px}
#home-notice:empty{min-height:76px}
.nx-card{position:relative;background:#fff;border:1px solid #EDEFF3;border-radius:12px;
  padding:11px 13px 12px;margin-bottom:9px;overflow:hidden;
  box-shadow:0 2px 10px rgba(20,30,50,.045)}
.nx-card:last-child{margin-bottom:0}
.nx-card.is-pin{border-color:#F5DDE1;
  background:linear-gradient(135deg,#FFF8F9 0%,#FFFFFF 54%,#FFFFFF 100%)}
.nx-card.is-pin::before{content:'';position:absolute;left:0;top:12px;bottom:12px;width:3px;
  border-radius:0 3px 3px 0;background:linear-gradient(180deg,#FF5B5C,#D4001B)}
.nx-card.is-imp:not(.is-pin){border-color:#F7E4C4;
  background:linear-gradient(135deg,#FFFBF3 0%,#FFFFFF 54%,#FFFFFF 100%)}
.nx-hd{display:flex;align-items:center;gap:7px;margin-bottom:7px}
.nx-mega{width:16px;height:16px;flex:none;color:var(--red)}
.nx-lb{font-size:11px;font-weight:600;color:var(--red);letter-spacing:.4px;flex:none;
  border:1px solid #F3CBD0;background:#FFF7F8;border-radius:5px;padding:1.5px 6px;line-height:1.45}
.nx-tag{display:inline-block;font-size:10px;padding:2px 6px;border-radius:6px;font-weight:600;line-height:1.45;letter-spacing:.2px}
.nx-tag.pin{background:linear-gradient(135deg,#FF5B5C,#D4001B);color:#fff;box-shadow:0 1px 4px rgba(180,10,30,.28)}
.nx-tag.imp{background:#FEF3C7;color:#B45309}
.nx-time{font-size:11px;color:#9AA1AC;margin-left:auto;flex:none;padding-left:8px}
.nx-body{font-size:13px;color:#39404A;line-height:1.72;white-space:pre-wrap;word-break:break-word}
/* 公告首行钩子句：由 app_api.js 的 _nxBody() 包裹，加粗 + 品牌蓝，让首句一眼抓住注意力。
   用蓝色而非红色：卡片本身带粉底 + 红色「公告/置顶」标签，红色首句会与周边红色元素同色相、
   反而"融"进去；品牌蓝形成冷暖对比，在公告卡里更跳。 */
.nx-lead{font-weight:800;color:var(--blue);letter-spacing:.2px}
/* 首行 ↔ 正文的间距：替代原本的空行（高度等于整行 22.36px），按需求收紧到 6px。
   高度写死便于精确微调，且不随正文行距变化。 */
.nx-gap{display:block;height:6px}

/* ===== 公告轮播（多条公告时：单条位置轮播 + 5s 自动切换） ===== */
.nx-carousel{position:relative}
.nx-viewport{overflow:hidden;border-radius:12px}
.nx-track{display:flex;transition:transform .45s cubic-bezier(.22,.61,.36,1);align-items:stretch}
/* 轮播态下卡片由 track 负责位移，故去掉自身下间距（避免切换时错位） */
.nx-track .nx-card{flex:0 0 100%;margin-bottom:0;opacity:.35;transition:opacity .45s}
.nx-track .nx-card.on{opacity:1}
/* 等高：卡片高度不一时以最高者为基准，避免切换时下方控件行上下跳动 */
.nx-track .nx-card{display:flex;flex-direction:column}
.nx-ctl{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 2px 0}
.nx-dots{display:flex;align-items:center;gap:6px;min-height:16px}
.nx-dot{width:6px;height:6px;border-radius:50%;background:#D6DBE2;cursor:pointer;transition:all .25s;flex:none}
.nx-dot.on{width:16px;border-radius:3px;background:linear-gradient(90deg,#FF5B5C,#D4001B)}
.nx-nav{display:flex;align-items:center;gap:6px}
.nx-btn{width:26px;height:26px;padding:0;border:1px solid #EDEFF3;background:#fff;border-radius:8px;
  display:flex;align-items:center;justify-content:center;cursor:pointer;color:#8A93A0;
  transition:all .2s;flex:none;-webkit-tap-highlight-color:transparent}
.nx-btn svg{width:13px;height:13px}
.nx-btn:active{background:#FFF5F6;border-color:#F3CBD0;color:var(--red)}

/* 首页“查看全部” */
.home-more{text-align:center;font-size:12.5px;color:var(--blue);font-weight:500;padding:4px 0 8px;cursor:pointer}

/* ===== 通知管理（我的 → 通知管理） ===== */
.nm-add{font-size:12.5px;font-weight:600;color:#fff;background:var(--red);border-radius:16px;padding:5px 12px;cursor:pointer;flex:none}
.nm-tip{font-size:11.5px;color:#8A6D24;background:#FFFBEB;border:1px solid #FDE68A;border-radius:10px;padding:9px 11px;line-height:1.65;margin-bottom:14px}
.nm-sub{font-size:13px;font-weight:700;color:var(--ink);margin:6px 0 10px;display:flex;align-items:center}
.nm-item.off{opacity:.62}
.nm-i-top{display:flex;align-items:center;gap:6px;margin-bottom:7px;flex-wrap:wrap}
.nm-st{font-size:10.5px;padding:1.5px 7px;border-radius:5px;font-weight:600}
.nm-st.on{background:#E7F6ED;color:#1F8A4C}
.nm-st.off{background:#F1F2F4;color:#7A828E}
.nm-time{font-size:11px;color:#9AA1AC;margin-left:auto}
.nm-i-t{font-size:14px;font-weight:600;color:var(--ink);line-height:1.5}
.nm-i-c{font-size:12.5px;color:#5B6470;line-height:1.65;margin-top:4px;white-space:pre-wrap}
.nm-i-m{font-size:11.5px;color:#9AA1AC;margin-top:6px}
.nm-acts{display:flex;gap:8px;margin-top:11px;padding-top:10px;border-top:1px solid #F2F3F5}
.nm-a{flex:1;font-size:12.5px;font-family:inherit;color:#3A4454;background:#F5F6F8;border:1px solid #E8EAEE;border-radius:9px;padding:7px 0;cursor:pointer}
.nm-a.del{color:var(--red);background:#FEF2F3;border-color:#FADDE0}

/* 通知发布 / 编辑弹层表单 */
.nm-card .field{margin-bottom:10px}
.nm-card textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13.5px;font-family:inherit;color:#1B2330;outline:none;resize:vertical;line-height:1.6}
.nm-card textarea:focus{border-color:var(--blue)}
.nm-card select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:10px;padding:9px 11px;font-size:13.5px;font-family:inherit;color:#1B2330;background:#fff;outline:none}
.nm-row{display:flex;gap:16px;margin:2px 0 12px}
.nm-chk{display:flex;align-items:center;gap:6px;font-size:13px;color:#3A4454}
.nm-chk input{width:16px;height:16px;accent-color:var(--red)}
.nm-btns{display:flex;gap:10px;margin-top:6px}
.nm-btns .btn{flex:1;margin:0}

/* ========== 数据看板（工作台 → 数据看板，2026-09-14） ========== */
.db-tip{font-size:12px;line-height:1.6;color:#8a8a8a;background:var(--gray);border-radius:var(--r-s);padding:9px 11px;margin-bottom:12px}
.db-range{display:flex;gap:8px;margin-bottom:14px}
.db-rg{font-size:12.5px;font-weight:normal;color:#666;background:#fff;border:1px solid var(--line);border-radius:20px;padding:5px 14px;cursor:pointer}
.db-rg.on{color:#fff;background:var(--red);border-color:var(--red)}
.db-g-t{font-size:13.5px;font-weight:bold;color:var(--ink);margin:16px 0 9px;display:flex;align-items:baseline;gap:6px}
.db-g-t em{font-size:11.5px;font-weight:normal;font-style:normal;color:#aaa}
.db-cards{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.db-card{background:#fff;border-radius:var(--r);padding:11px 12px 10px;box-shadow:var(--shadow);border-left:3px solid var(--line)}
.dbc-blue{border-left-color:var(--blue)}
.dbc-green{border-left-color:var(--green)}
.dbc-amber{border-left-color:var(--amber)}
.dbc-red{border-left-color:var(--red)}
.dbc-purple{border-left-color:var(--purple)}
.dbc-teal{border-left-color:var(--teal)}
.db-c-h{font-size:12px;color:#888;margin-bottom:5px}
.db-c-n{font-size:24px;font-weight:bold;color:var(--ink);line-height:1.1}
.db-c-n i{font-size:12px;font-weight:normal;font-style:normal;color:#999;margin-left:2px}
.db-c-s{font-size:11.5px;color:#999;margin-top:3px}
.db-c-d{margin-top:6px}
.db-dt{font-size:11px;padding:1px 6px;border-radius:4px;display:inline-block}
.db-dt.up{color:#B80019;background:#FDEBEC}
.db-dt.dn{color:#0F7A42;background:#E8F7EF}
.db-dt.flat{color:#999;background:var(--gray)}
.db-chart{background:#fff;border-radius:var(--r);padding:12px;box-shadow:var(--shadow)}
.db-legend{display:flex;align-items:center;font-size:11.5px;color:#888;margin-bottom:10px}
.db-legend i{width:8px;height:8px;border-radius:2px;display:inline-block;margin:0 3px 0 8px}
.db-legend i.s-f{background:var(--blue)}
.db-legend i.s-c{background:var(--green)}
.db-legend i.s-k{background:var(--amber)}
.db-legend i.s-d{background:var(--purple)}
.db-legend i.s-t{background:var(--teal)}
.db-bars{display:flex;align-items:flex-end;gap:3px;height:120px}
.db-col{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;cursor:pointer;min-width:0}
.db-bar{width:100%;max-width:16px;display:flex;flex-direction:column;justify-content:flex-end;border-radius:3px;overflow:hidden;background:var(--gray-2);min-height:2px}
.db-seg{display:block;width:100%}
.db-seg.s-f{background:var(--blue)}
.db-seg.s-c{background:var(--green)}
.db-seg.s-k{background:var(--amber)}
.db-seg.s-d{background:var(--purple)}
.db-seg.s-t{background:var(--teal)}
.db-x{font-size:10px;color:#aaa;margin-top:5px;white-space:nowrap;height:13px}
.db-table{background:#fff;border-radius:var(--r);padding:4px 12px;box-shadow:var(--shadow)}
.db-tr{display:grid;grid-template-columns:1.05fr .9fr .9fr .9fr .9fr .85fr .85fr;align-items:center;padding:7px 0;border-bottom:1px solid var(--gray-2);font-size:12.5px;color:#555}
.db-tr:last-child{border-bottom:none}
.db-tr b{font-weight:normal;color:var(--ink)}
.db-tr span{text-align:right}
.db-tr .hl{color:var(--red);font-weight:bold}
.db-th{color:#999;font-size:11.5px;padding:8px 0}
.db-th b{color:#999}
.db-stock{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.db-sk{background:#fff;border-radius:var(--r-s);padding:11px 6px;text-align:center;box-shadow:var(--shadow)}
.db-sk b{display:block;font-size:17px;color:var(--ink);line-height:1.2}
.db-sk span{font-size:11.5px;color:#999}
.tr-cf-ops .btn{height:42px}

/* ========== 维修标准库 ========== */
.std-card{background:#fff;border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.05);cursor:pointer;transition:transform .12s}
.std-card:active{transform:scale(.99)}
.std-card.is-off{opacity:.62}
.std-head{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px}
.std-title{flex:1;font-size:14.5px;font-weight:700;color:#222;line-height:1.45}
.std-tag{flex:0 0 auto;font-size:10.5px;padding:2px 7px;border-radius:6px;font-weight:600;white-space:nowrap}
.std-tag.on{background:#E8F7EE;color:#1E9E52}
.std-tag.off{background:#F2F2F2;color:#999}
.std-tag.car{background:#EDF3FF;color:#3A6BD6}
.std-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:11px;color:#8A8A8A;margin-bottom:8px}
.std-meta>span{background:#F6F4F0;padding:2px 7px;border-radius:5px}
.std-meta .std-code{background:#FDECEE;color:#B50E1D;font-weight:700;font-family:ui-monospace,Menlo,monospace}
.std-meta .std-id{background:#F2F2F2;color:#777}
.std-sum{font-size:12.5px;color:#666;line-height:1.65;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.std-pts{border-top:1px solid #F0EDE6;padding-top:8px;margin-bottom:8px}
.std-pt{font-size:12px;color:#555;line-height:1.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.std-foot{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#AAA;border-top:1px solid #F0EDE6;padding-top:8px}
.std-go{color:var(--red);font-weight:600}

/* 详情页内嵌图文版 */
.std-embed-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid #F0EDE6;position:sticky;top:0;z-index:5}
.std-embed-head b{font-size:14px;color:#222;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.std-frame{width:100%;height:calc(100vh - 48px);border:0;display:block;background:#F6F4F0}

/* 详情页结构化兜底渲染 */
.std-crit{background:#FDECEE;border-left:3px solid var(--red);border-radius:0 10px 10px 0;padding:10px 12px;margin-bottom:8px;font-size:13px;color:#5A1017;line-height:1.6;display:flex;gap:8px}
.std-crit b{flex:0 0 16px;height:16px;line-height:16px;text-align:center;background:var(--red);color:#fff;border-radius:50%;font-size:10px;margin-top:3px}
.std-step{display:flex;gap:9px;font-size:12.5px;color:#555;line-height:1.75;padding:5px 0}
.std-step .n{flex:0 0 18px;height:18px;line-height:18px;text-align:center;background:#F6F4F0;color:#999;border-radius:50%;font-size:10.5px;font-weight:700;margin-top:2px}
.std-flowitem{display:flex;gap:10px;margin-bottom:12px}
.std-flowitem .d{flex:0 0 22px}
.std-flowitem .d span{display:block;width:22px;height:22px;line-height:22px;text-align:center;background:linear-gradient(135deg,#E60020,#B50E1D);color:#fff;border-radius:50%;font-size:11px;font-weight:700}
.std-flowitem .c{flex:1;font-size:13px;color:#333;line-height:1.6;padding-top:1px}
.std-flowitem .c b{display:block;font-size:13.5px;color:#222;margin-bottom:3px}
.std-desc{font-size:12.5px;color:#666;line-height:1.7}

/* ---------- 维修标准：自动图文排版 ---------- */
.std-fig{margin:0 0 12px;background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.std-fig img{width:100%;display:block;cursor:zoom-in;background:#F6F4F0}
.std-fig figcaption{font-size:11.5px;color:#888;line-height:1.6;padding:8px 12px;border-top:1px solid #F0EDE6}
.std-fig.cover{margin-bottom:14px}
.std-figs{display:flex;flex-direction:column;gap:10px}
.std-figs.step-figs{margin:10px 0 4px 31px}
.std-figs.step-figs .std-fig{margin-bottom:0}
.std-tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.std-tool{font-size:12px;color:#5A4A2E;background:#FDF6E7;border:1px solid #F5E4C3;padding:4px 10px;border-radius:14px}
.std-branches{margin-top:9px;display:flex;flex-direction:column;gap:5px}
.std-branch{display:flex;align-items:flex-start;gap:7px;font-size:12px;padding:6px 10px;border-radius:8px;line-height:1.5}
.std-branch .cond{flex:1 1 auto;min-width:0;color:#444;word-break:break-word;white-space:normal}
.std-branch .arrow{color:#BBB;flex:0 0 auto;line-height:1.5}
.std-branch .res{flex:0 1 auto;min-width:0;font-weight:700;word-break:break-word;white-space:normal}
.std-branch.replace{background:#FDECEE;border-left:3px solid var(--red)}
.std-branch.replace .res{color:var(--red)}
.std-branch.ok{background:#E8F7EE;border-left:3px solid #1E9E52}
.std-branch.ok .res{color:#1E9E52}
.std-parts{display:flex;flex-direction:column;gap:1px;background:#F0EDE6;border-radius:11px;overflow:hidden;margin-bottom:12px}
.std-part{background:#fff;padding:10px 13px;display:flex;gap:10px;align-items:baseline}
.std-part b{flex:0 0 auto;font-size:13px;color:#222;min-width:86px}
.std-part span{flex:1;font-size:12.5px;color:#777;line-height:1.65}
.std-note{display:flex;flex-direction:column;gap:3px;padding:10px 13px;border-radius:10px;margin-bottom:8px;font-size:12.5px;line-height:1.7}
.std-note b{font-size:12.5px}
.std-note span{color:#555}
.std-note.info{background:#F0F7FF;border-left:3px solid #3A6BD6}
.std-note.info b{color:#2C55A8}
.std-note.warn{background:#FFF7E6;border-left:3px solid #F59E0B}
.std-note.warn b{color:#B26A00}
/* 表格型注意事项：标题 + 原表 */
.std-note.tbl{background:#FFF9F0;border-left:3px solid var(--red);padding:10px 12px}
.std-note.tbl .ntbl-title{font-size:12.5px;font-weight:700;color:#B23B2E;margin-bottom:2px}
.std-note.tbl .std-tblwrap{margin:6px 0 0}
.std-source{font-size:11.5px;color:#AAA;padding:14px 0 4px;border-top:1px solid #F0EDE6;margin-top:14px;line-height:1.6}

/* ===== 维修标准：工具配图网格 ===== */
.std-toolgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;padding:4px 0 8px}
.std-toolcard{margin:0;background:#FDFCF9;border:1px solid #F0EDE6;border-radius:10px;padding:8px 6px 6px;text-align:center}
.std-toolcard img{max-width:100%;height:56px;object-fit:contain;display:block;margin:0 auto 6px;cursor:zoom-in;border-radius:4px}
.std-toolcard figcaption{font-size:11.5px;color:#5A4A2E;line-height:1.45;word-break:break-all}

/* 步骤流：正文行与编号圆点对齐 */
.std-flowitem .c .std-desc{font-size:13.5px;color:#333;line-height:1.75;margin:2px 0}
.std-flowitem .n.dot{background:#C9BFA8;color:#fff}

/* 维修标准：原文内嵌表格 */
/* 2026-09-18 修复：列多/表头长时表格被压扁、右侧列不可见。改为内容驱动宽度 + 横向滚动 */
.std-tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:8px 0 4px;border-radius:8px;border:1px solid #EDE9E0}
.std-tbl{border-collapse:collapse;width:auto;min-width:100%;table-layout:auto;font-size:12.5px;background:#fff}
.std-tbl th,.std-tbl td{border:1px solid #EDE9E0;padding:7px 9px;line-height:1.6;text-align:left;vertical-align:top;word-break:break-word;white-space:normal}
.std-tbl th{background:#FDF8EC;color:#5A4A2E;font-weight:600;white-space:normal;word-break:keep-all}
.std-tbl tr:nth-child(even) td{background:#FCFBF8}

/* ============================================================
 * 节日氛围（2026-09-25 新增）
 * 由 assets/festive.js 在首页 hero 上挂 fx-on 类与 CSS 变量驱动。
 * 变量：--fx-bg 背景渐变 / --fx-glow 光晕 / --fx-accent 主题色
 * 原则：只在 hero 内做氛围，不改变搜索框与下方内容的结构与可用性。
 * ============================================================ */

/* ---------- ① hero 换肤 ---------- */
.hero.fx-on{background:var(--fx-bg)}
.hero.fx-on::before{background:radial-gradient(circle,var(--fx-glow),transparent 68%)}

/* 主题纹理（data-fx 由 JS 写入） */
.hero.fx-on[data-fx="star"]::after{
  background-image:radial-gradient(circle,rgba(255,255,255,.55) .9px,transparent 1.3px),
                   radial-gradient(circle,rgba(255,255,255,.32) .9px,transparent 1.3px);
  background-size:34px 34px,59px 59px;background-position:0 0,15px 19px;
  -webkit-mask-image:none;mask-image:none;opacity:.55}
.hero.fx-on[data-fx="grid"]::after{
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:26px 26px;opacity:1;
  -webkit-mask-image:radial-gradient(ellipse at 72% 14%,#000 22%,transparent 72%);
  mask-image:radial-gradient(ellipse at 72% 14%,#000 22%,transparent 72%)}
.hero.fx-on[data-fx="cloud"]::after{
  background-image:radial-gradient(ellipse 60px 26px at 20% 30%,rgba(255,255,255,.16),transparent 70%),
                   radial-gradient(ellipse 90px 34px at 78% 62%,rgba(255,255,255,.12),transparent 72%),
                   radial-gradient(ellipse 44px 20px at 48% 84%,rgba(255,255,255,.10),transparent 74%);
  background-size:100% 100%;opacity:1;
  -webkit-mask-image:none;mask-image:none}
.hero.fx-on[data-fx="wave"]::after{
  background-image:repeating-radial-gradient(circle at 50% 130%,rgba(255,255,255,.10) 0 1.5px,transparent 2px 26px);
  background-size:100% 100%;opacity:.9;
  -webkit-mask-image:none;mask-image:none}
/* 清明 / 冬至：不用斜条纹（用户明确说不要「斜条条」），改成「雨雾」底 ——
   顶部一层微亮 + 整体薄雾，真正的下雨交给飘落层的雨滴（fxRain） */
.hero.fx-on[data-fx="rain"]::after{
  background-image:radial-gradient(ellipse 130% 62% at 50% -12%,rgba(255,255,255,.11),transparent 64%),
                   linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0) 58%);
  background-size:100% 100%;opacity:1;
  -webkit-mask-image:none;mask-image:none}
.hero.fx-on[data-fx="dot"]::after{
  background-image:radial-gradient(circle at 30% 40%,rgba(255,255,255,.16) 0 12px,transparent 13px),
                   radial-gradient(circle at 76% 72%,rgba(255,255,255,.12) 0 18px,transparent 19px);
  background-size:100% 100%;opacity:1;
  -webkit-mask-image:none;mask-image:none}

/* ---------- ② 固定装饰（节日图形） ---------- */
.hero.fx-on .fx-deco{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.hero.fx-on .fx-deco i{position:absolute;display:block;color:var(--fx-accent)}
.hero.fx-on .fx-deco i svg{filter:drop-shadow(0 5px 16px rgba(0,0,0,.28))}
/* 主图形：右侧中部（标题右方、搜索框上方的空档） */
.hero.fx-on .fx-d0{top:58px;right:12px;width:84px;height:84px;opacity:.95}
/* 次图形：右下角小号 */
.hero.fx-on .fx-d1{right:18px;bottom:8px;width:46px;height:46px;opacity:.42}
/* 三号：左下角弱水印 */
.hero.fx-on .fx-d2{left:-26px;bottom:-20px;width:104px;height:104px;opacity:.13}

/* ---------- ③ 飘落动效 ---------- */
.hero.fx-on .fx-fall{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.hero.fx-on .fx-fall i{position:absolute;top:-26px;width:15px;height:15px;display:block;
  color:var(--fx-accent);animation-name:fxFall;animation-timing-function:linear;animation-iteration-count:infinite}
.hero.fx-on .fx-fall i:nth-child(3n){width:11px;height:11px}
.hero.fx-on .fx-fall i:nth-child(4n){width:20px;height:20px}
@keyframes fxFall{
  0%{transform:translate3d(0,-26px,0) rotate(0deg);opacity:0}
  12%{opacity:1}
  88%{opacity:1}
  100%{transform:translate3d(14px,250px,0) rotate(var(--fx-spin,180deg));opacity:0}
}

/* ---------- ④ 文案位：问候语后缀 ---------- */
.fx-greet-ic{display:inline-block;width:14px;height:14px;margin-left:6px;vertical-align:-2px;
  color:var(--fx-accent);opacity:.95}

/* ---------- ④b 节日标语：顶替「故障诊断，一查即达」这一行 ----------
   2026-09-25 调整：节日期间原主标题隐藏，节日标语直接落在它原来那一行
   （同样的 margin、字号按视口自适应并锁死单行），所以整块高度不增反略降，
   顶部不额外占屏。hero-tip 那句「支持 SPN.FMI…」保持原文案不动。 */
.hero.fx-on .hero-title{display:none}
/* ⚠️ width:fit-content 是必须的：flex 默认撑满整行，标语会横穿到右侧把鞭炮
   压在底下（探针量出来 430px 屏上标语 rect 宽 378px，与鞭炮整段重叠）。
   收成「内容宽」之后，标语的右边界就是最后一个字的右边，鞭炮才让得开。 */
.hero.fx-on .fx-line{display:flex;align-items:center;gap:9px;margin:7px 0 18px;
  font-size:clamp(17px,5.6vw,23px);font-weight:800;letter-spacing:2px;line-height:1.25;
  color:var(--fx-accent);white-space:nowrap;
  width:fit-content;max-width:100%;
  text-shadow:0 0 16px rgba(255,224,150,.55),0 3px 15px rgba(0,0,0,.45);
  animation:fxLineIn .55s cubic-bezier(.2,.8,.3,1) both}
.fx-line-ic{width:1.05em;height:1.05em;flex:0 0 1.05em;display:block;
  color:var(--fx-accent);filter:drop-shadow(0 0 9px rgba(255,220,140,.65))}
.fx-line-tx{min-width:0}
@keyframes fxLineIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

/* ---------- ④c 顶部悬挂灯笼（春节 / 元宵 / 小年 / 元旦） ---------- */
.hero.fx-on .fx-hang{position:absolute;top:0;left:0;right:0;height:132px;
  pointer-events:none;z-index:1;overflow:hidden}
.hero.fx-on .fx-hang-i{position:absolute;top:0;display:flex;flex-direction:column;align-items:center;
  width:var(--sz,28px);color:var(--fx-accent);transform-origin:50% 0;
  animation:fxSway var(--sw-t,4.4s) ease-in-out var(--sw-d,0s) infinite}
.hero.fx-on .fx-hang-i>.fx-str{display:block;width:1.5px;height:var(--str,12px);border-radius:1px;
  background:linear-gradient(180deg,rgba(255,226,150,.18),rgba(255,212,116,.92))}
.hero.fx-on .fx-hang-i>svg{width:100%;height:auto;display:block;
  filter:drop-shadow(0 5px 13px rgba(0,0,0,.36)) drop-shadow(0 0 11px rgba(255,176,84,.5))}
@keyframes fxSway{0%,100%{transform:rotate(-4.2deg)}50%{transform:rotate(4.2deg)}}

/* ---------- ④d 右侧挂鞭炮：左右两列，从下往上逐节炸开 ----------
   形态：主绳 → 顶部横绳 → 左右两列炮仗并排挂，最下面垂引信。
   每节的引爆时刻由 JS 打上 CSS 变量 --d（秒），这里只管「它自己那一下」：
   爆闪 → 炸开 → 消散（animation-fill-mode:both，只播一次，炸没了就不回来）。
   整串的循环 —— 炸到最顶上之后稍歇、再重挂一串新的接着燃 —— 由
   festive.js 的 _runBang() 定时重建完成。
   （纯 CSS 循环做不到「等很久 → 炸一下 → 之后一直空着 → 整串扫完才复活」
     这种非对称时序：keyframes 百分比固定、delay 只能整体平移，稳态下必然
     退化成「只剩一节可见」或「炸完立刻长回来」。）
   位置避开右上角头像（x≥331）与标语行，底部停在搜索框之上。 */
/* ⚠️ 位置是「算」出来的，别随手改（改完务必跑 check_festive_local.py 的
   「鞭炮不压按钮 / 搜索框 / 标语 / 日历」四条 —— 那是用 getBoundingClientRect 量的）：
   · **top:0** —— 容器顶边 = hero 顶边，主绳从这儿垂下来（用户：绳子长一些，从顶部挂下来）。
     绳子上半段（y 0~57）走的是「最右那只灯笼的右沿」与「登录/注册 按钮左沿」之间的缝，
     所以主绳画在**整条鞭顶端中轴**上、并且整条鞭从顶到底往右漂（drift）—— 上半段贴缝、
     下半段甩到标语右沿之外，两边都让开。
   · 高 139 = 绳 58 + 编辫段 47 + 引信星芒 31 ≈136 → 底边落在 y≈136，搜索框在 146 才起。
   · 水平：日历 right:0 宽 74（430px 下左沿 348），鞭炮 right:76 宽 53 → 右沿 346，恒隔 2px。
     左侧贴着标语右沿（430px 下 289）；标语右边缘随字号走 → 见 .fx-line 的 width:fit-content，
     以及 ≤380px 那只把标语压到 18px 的规则。
   · z-index 只能是 1：.hero-top 是 z-index:2，压到 2 就会盖住「登录 / 注册」。
     日历 .fx-cal 也是 1 —— 且日历在鞭炮之前 append（见 festive.js），所以鞭炮在前。 */
.hero.fx-on .fx-bang{position:absolute;top:0;right:76px;width:53px;height:139px;
  pointer-events:none;z-index:1}
.hero.fx-on .fx-bang.fx-bk-in{animation:fxBangIn .22s ease-out both}
@keyframes fxBangIn{from{opacity:0}to{opacity:1}}
/* 一整串带暖光晕（春节/元旦/元宵/小年的 hero 本身就是红底，纯红炮身会糊进背景，
   实测「红色炮身 + 红色碎片」在红底上整个看不见；靠一圈暖光 + 金色描边把串托出来）。 */
.hero.fx-on .fx-bk-svg{width:100%;height:100%;display:block;overflow:visible;
  filter:drop-shadow(0 0 5px rgba(255,206,120,.62)) drop-shadow(0 2px 5px rgba(30,0,3,.5))}

/* 炮仗本体：一根「3D 小圆柱」—— 红筒身（横向渐变）+ 暖金俯视顶面 + 底部金箍。
   ⚠️ 三件套缺一不可：
     · 只画筒身            → 红底上一个红方块，看不见；
     · 只有顶面 + 金箍     → 变成「金边小盒子」，也不像圆柱；
     · 三件叠起来          → 明暗 + 受光面 + 底缘投影，才立得住。
   渐变定义在 festive.js 的 <defs> 里（fxBkBody / fxBkCap / fxBkRim）。 */
.hero.fx-on .fx-bk-body{fill:url(#fxBkBody)}
.hero.fx-on .fx-bk-cap{fill:url(#fxBkCap)}
.hero.fx-on .fx-bk-rim{fill:url(#fxBkRim)}
.hero.fx-on .fx-bk-rope{stroke:rgba(255,232,178,.9);stroke-width:1.5;fill:none;stroke-linecap:round}
.hero.fx-on .fx-bk-knot{fill:#FFD98E;stroke:rgba(255,244,205,.9);stroke-width:.4}
/* 串芯：一挂鞭中间穿的那根线，画在炮仗下面，只从缝里露一点虚线 */
.hero.fx-on .fx-bk-thread{stroke:rgba(255,226,160,.6);stroke-width:.9;fill:none;
  stroke-linecap:round;stroke-dasharray:2.4 2.1}

/* 引信在烧（虚线滚动）+ 焰头脉动 */
.hero.fx-on .fx-bk-fuse{stroke:#C79A55;stroke-width:1.5;fill:none;stroke-linecap:round;
  stroke-dasharray:4 3;animation:fxFuse .45s linear infinite}
@keyframes fxFuse{to{stroke-dashoffset:-7}}
.hero.fx-on .fx-bk-tip{fill:#FFEBA6;transform-box:fill-box;transform-origin:center;
  animation:fxTip .5s ease-in-out infinite alternate;
  filter:drop-shadow(0 0 4px #FFC24A) drop-shadow(0 0 11px rgba(255,168,60,.8))}
@keyframes fxTip{0%{opacity:.6;transform:scale(.78)}100%{opacity:1;transform:scale(1.36)}}

/* 逐节爆：爆闪一下 → 炸开变大 → 消失（延迟 = --d，最底下那层最先炸） */
.hero.fx-on .fx-bk-g{transform-box:fill-box;transform-origin:center;
  animation:fxBlast .36s cubic-bezier(.28,.06,.36,1) both;
  animation-delay:calc(var(--d,0) * 1s)}
@keyframes fxBlast{
  0%{opacity:1;transform:none;filter:none}
  14%{opacity:1;transform:scale(1.17,.9);
      filter:brightness(3.8) drop-shadow(0 0 9px #FFF2B0)}
  40%{opacity:.92;transform:scale(1.24,1.08);filter:brightness(1.6)}
  100%{opacity:0;transform:scale(1.52,1.34) translateY(-1.5px);filter:brightness(1)}
}
/* 炸开的碎片：红纸屑 + 黄火花，从节心向外扩散后淡掉 */
.hero.fx-on .fx-bk-deb{transform-box:fill-box;transform-origin:center;
  animation:fxDebris .5s cubic-bezier(.16,.72,.4,1) both;
  animation-delay:calc(var(--d,0) * 1s + .06s)}
@keyframes fxDebris{
  0%{opacity:0;transform:scale(.3)}
  12%{opacity:1;transform:scale(.72)}
  58%{opacity:.95;transform:scale(2.35)}
  100%{opacity:0;transform:scale(3.5)}
}
/* 碎片配色：不用纯红（红底上消失），橙红 + 亮金，都带一点辉光 */
.hero.fx-on .fx-bk-d0{fill:#FF7A3C;filter:drop-shadow(0 0 2px rgba(255,140,60,.9))}
.hero.fx-on .fx-bk-d1{fill:#FFD24A;filter:drop-shadow(0 0 3px rgba(255,200,80,.95))}

/* 底端那团「爆开的星芒」（用户参考图里最抢眼的一笔）：
   两层多角星 + 一枚亮芯，从引信口「炸」出来 —— 由小变大、边转边散，最后化开。
   这不是「各炸各的小片」，是一整团黄白爆闪，所以单独给一套 keyframes。 */
.hero.fx-on .fx-bk-burst{transform-box:fill-box;transform-origin:center;
  animation:fxBurst .66s cubic-bezier(.14,.7,.36,1) both;
  animation-delay:calc(var(--d,0) * 1s + .12s)}
@keyframes fxBurst{
  0%{opacity:0;transform:scale(.14) rotate(-20deg)}
  15%{opacity:1;transform:scale(.7) rotate(0deg);
      filter:brightness(1.7)}
  52%{opacity:.96;transform:scale(1.04) rotate(4deg);filter:brightness(1.1)}
  100%{opacity:0;transform:scale(1.52) rotate(12deg);filter:brightness(1)}
}
.hero.fx-on .fx-bk-bst-a{fill:#FFC93C;
  filter:drop-shadow(0 0 5px rgba(255,200,80,.95))}
.hero.fx-on .fx-bk-bst-b{fill:#FFF3C4;
  filter:drop-shadow(0 0 4px rgba(255,238,180,.9))}
.hero.fx-on .fx-bk-bst-c{fill:#FFFCF0}

/* ---------- ④e 中秋：月亮更大更亮 ----------
   亮度只靠「图形自带外晕 + svg 的 drop-shadow」实现，
   不要再用 .hero-main::before 加一层柔光 —— 那层 z-index 在 fx-deco 之上，
   会把月亮糊掉（试过，反而更暗更脏）。 */
.hero.fx-on .fx-deco i[data-art="moon"]{opacity:1}
.hero.fx-on .fx-deco i[data-art="moon"]>svg{
  filter:drop-shadow(0 0 9px rgba(255,246,205,.95)) drop-shadow(0 0 28px rgba(255,214,118,.72))
         drop-shadow(0 6px 18px rgba(0,0,0,.3))}
.hero.fx-on[data-theme="midautumn"]{--moon-size:104px}
.hero.fx-on[data-theme="midautumn"] .fx-d0{top:50px;right:14px;
  width:var(--moon-size);height:var(--moon-size)}

/* 悬挂彩灯类节日：主图形挪到左下角做水印，避免和灯笼 / 鞭炮撞在一起 */
.hero.fx-on[data-theme="spring"] .fx-d0,
.hero.fx-on[data-theme="lantern"] .fx-d0,
.hero.fx-on[data-theme="xiaonian"] .fx-d0,
.hero.fx-on[data-theme="newyear"] .fx-d0{
  top:auto;right:auto;left:-20px;bottom:-18px;width:104px;height:104px;opacity:.11}

/* ---------- ④f 清明：下雨（雨滴细长、直线下落、快而密） ----------
   飘落层的每个节点都带 data-art，可单独给雨滴换动画：
   横向只飘一点点（像有风），不做旋转 —— 旋转的雨滴不像雨。 */
.hero.fx-on .fx-fall i[data-art="drop"]{
  width:6px;height:17px;opacity:.6;
  animation-name:fxRain;animation-timing-function:linear}
.hero.fx-on .fx-fall i[data-art="drop"]:nth-child(2n){width:5px;height:14px}
.hero.fx-on .fx-fall i[data-art="drop"]:nth-child(3n){width:7px;height:21px}
.hero.fx-on .fx-fall i[data-art="drop"]>svg{
  filter:drop-shadow(0 2px 5px rgba(0,0,0,.22))}
/* 雨丝拖尾：雨滴上方一根渐隐细线，让它看起来是「在下雨」而不是「飘雨点」 */
.hero.fx-on .fx-fall i[data-art="drop"]::before{content:'';position:absolute;
  left:50%;bottom:78%;margin-left:-.5px;width:1px;height:15px;border-radius:1px;
  background:linear-gradient(180deg,rgba(215,237,222,0),rgba(215,237,222,.8))}
@keyframes fxRain{
  0%{transform:translate3d(0,-30px,0);opacity:0}
  14%{opacity:.85}
  86%{opacity:.85}
  100%{transform:translate3d(-13px,265px,0);opacity:0}
}

/* ---------- ④g 年份背景艺术字（元旦 / 新年） ----------
   需求：数字要大、要有艺术感、只用系统自带字体（不引第三方字库）、
   与背景融为一体、可被其它文字元素压盖、不占版面。
   实现：绝对定位在 hero 中部，超大字号 + 极低不透明度 + 一点点描边感；
   z-index:1 与装饰同层，hero-main（z-index:2）的标题 / 标语 / 搜索框天然盖住它。 */
.hero.fx-on .fx-year{position:absolute;left:50%;top:50px;transform:translateX(-50%);
  z-index:1;pointer-events:none;user-select:none;white-space:nowrap;
  font-family:Georgia,'Times New Roman',Times,serif;   /* 系统自带，跨端都在 */
  font-weight:700;line-height:1;letter-spacing:.06em;
  font-size:clamp(62px,21vw,94px);
  color:var(--fx-accent);opacity:.15;
  text-shadow:0 0 34px rgba(255,226,150,.5)}
/* 极窄屏再压一点，避免横穿到搜索框右侧的按钮上 */
@media (max-width:340px){.hero.fx-on .fx-year{font-size:60px;letter-spacing:.02em}}

/* ---------- ④h 春节：右侧「年份 + 初一…十五」背景板 ----------
   3 列 × 5 行、列优先排（初一→初五第一列…），只显示农历日名，
   当天那格点亮；十五（元宵）常亮金色。整块是背景，允许被灯笼 / 鞭炮压盖。 */
/* 宽度从 92 收到 74：右侧要并排放鞭炮（x 278~314），日历右贴边只占 74px，
   两列间距略紧一点，字号跟着收到 9.5px（「初一」两个字约 19px，放得下）。 */
.hero.fx-on .fx-cal{position:absolute;z-index:1;right:0;top:46px;width:74px;
  pointer-events:none;user-select:none;text-align:center;opacity:.66}
.hero.fx-on .fx-cal-y{font-family:Georgia,'Times New Roman',Times,serif;
  font-weight:700;font-size:21px;letter-spacing:.05em;line-height:1;
  color:var(--fx-accent);
  text-shadow:0 0 14px rgba(255,206,110,.62),0 2px 8px rgba(0,0,0,.45)}
.hero.fx-on .fx-cal-g{margin-top:6px;display:grid;
  grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(5,1fr);
  grid-auto-flow:column;gap:3px 1px}
.hero.fx-on .fx-cal-d{position:relative;font-size:9.5px;line-height:1.15;letter-spacing:0;
  color:rgba(255,238,200,.74);text-shadow:0 1px 5px rgba(0,0,0,.55)}
.hero.fx-on .fx-cal-d.last{color:#FFD98A;opacity:.9}
.hero.fx-on .fx-cal-d.on{color:#FFF8E2;font-weight:800;
  text-shadow:0 0 10px rgba(255,206,110,.95),0 1px 4px rgba(0,0,0,.65)}
.hero.fx-on .fx-cal-d.on::after{content:'';position:absolute;left:50%;bottom:-2.5px;
  transform:translateX(-50%);width:15px;height:1.5px;border-radius:1px;
  background:var(--fx-accent);box-shadow:0 0 8px rgba(255,206,110,.9)}
/* 窄屏（≤380px）：爆竹改成斜挂之后，左边界吃的是**标语右沿** ——
   360px 下标语按 clamp 会到 20.2px、右沿顶到 252，把标语压到 18px 右沿就退到 227 一带，
   斜下来的炮仗下端（约 244）才塞得进去。鞭炮尺寸这一档**不用缩**。
   （≤380 而不是 ≤340：360 这种常见宽度就已经不够了，实测出来的。） */
@media (max-width:380px){
  .hero.fx-on .fx-line{font-size:18px;letter-spacing:1.2px}}
/* 极窄屏（≤344px）：日历收一点、标语再收一档、鞭炮整串等比缩一档。
   （容器变窄 → SVG 按 preserveAspectRatio 等比缩，图形不用改。）
   这一段三条边界同时收紧，实测出来的取值：
     · 顶边：`top:11px` —— 整串缩到 42/57≈0.74 倍后，右列**斜上去的那只角**
       会跑到 y≈42（高于按钮下沿 47）而横插进按钮，把起挂点压到 11px 就落到 49。
     · 左边：标语压到 16px（≤380 那档是 18px）后右沿退到 199 一带，炮仗下端落在 220+。
     · 右边：日历（宽 66）左沿 274，炮仗右沿 242。 */
@media (max-width:344px){
  .hero.fx-on .fx-line{font-size:16px;letter-spacing:.8px}
  .hero.fx-on .fx-cal{width:66px;top:44px}
  .hero.fx-on .fx-cal-d{font-size:9px}
  .hero.fx-on .fx-bang{top:11px;right:78px;width:42px;height:110px}}

/* ---------- ④i 国庆：国旗按 3:2 摆，别被方形框压变形 ---------- */
.hero.fx-on[data-theme="national"] .fx-d0{width:100px;height:67px;top:54px;right:12px;
  border-radius:2px;overflow:hidden;
  box-shadow:0 6px 20px rgba(0,0,0,.34),0 0 0 1px rgba(255,255,255,.3)}
.hero.fx-on[data-theme="national"] .fx-deco i[data-art="natflag"] svg{filter:none}

/* ---------- ④j 底部 tabbar 节日点缀 ----------
   5 个 tab 图标右上角各挂一枚节日小徽章；非激活半透明，激活（点哪个）
   的那个点亮、放大、加光晕 —— 就是「点了哪个，哪个图标跟着变」。
   节日色走 --fx-accent（由 JS 同时写到 .tabbar 上）。 */
.tabbar.fx-tb::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;
  pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--fx-accent) 16%,var(--fx-accent) 84%,transparent);
  opacity:.5}
.tabbar.fx-tb .t .fx-tb-ic{position:absolute;top:5px;left:50%;margin-left:-19px;
  width:11px;height:11px;pointer-events:none;color:var(--fx-accent);opacity:.38;
  transition:opacity .18s,transform .18s;
  filter:drop-shadow(0 1px 3px rgba(0,0,0,.4))}
.tabbar.fx-tb .t .fx-tb-ic svg{width:11px;height:11px;display:block}
.tabbar.fx-tb .t.on .fx-tb-ic{opacity:1;transform:scale(1.24);
  filter:drop-shadow(0 0 6px rgba(255,214,120,.95))}
.tabbar.fx-tb .t.on::before{background:var(--fx-accent)}
/* 国庆的国旗徽章是 3:2，微调一下让它视觉上不偏小 */
.tabbar.fx-tb[data-theme="national"] .t .fx-tb-ic{width:13px;height:11px}
.tabbar.fx-tb[data-theme="national"] .t .fx-tb-ic svg{width:13px;height:9px}
@media (prefers-reduced-motion:reduce){
  .tabbar.fx-tb .t .fx-tb-ic{transition:none}
}

/* ---------- ⑤ 预览浮标（固定在底部 tabbar 之上） ---------- */
.fx-peek{position:fixed;left:50%;transform:translateX(-50%);
  bottom:calc(76px + env(safe-area-inset-bottom));z-index:90;
  display:flex;align-items:center;gap:10px;padding:7px 8px 7px 16px;border-radius:22px;
  background:rgba(22,22,26,.88);color:#fff;font-size:12.5px;letter-spacing:.4px;
  box-shadow:0 10px 28px rgba(0,0,0,.34);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.fx-peek b{background:var(--red);border-radius:15px;padding:4px 12px;font-size:12px;
  font-weight:600;cursor:pointer;white-space:nowrap}
.fx-peek b:active{transform:scale(.96)}

/* 降低动效偏好：不跑飘落 / 灯笼摆动 / 鞭炮燃放（JS 侧已跳过飘落，这里再兜一层） */
@media (prefers-reduced-motion:reduce){
  .hero.fx-on .fx-fall{display:none}
  .hero.fx-on .fx-hang-i,.hero.fx-on .fx-bk-g,.hero.fx-on .fx-bk-tip,
  .hero.fx-on .fx-bk-fuse,.hero.fx-on .fx-bang,.fx-line{animation:none}
  /* 鞭炮：不做动效时只留一串完整的静态鞭炮（碎片要藏好，否则会糊成一片） */
  .hero.fx-on .fx-bk-deb{display:none}
}

/* ============================================================
 * ⑥ 「我的 → 节日氛围」管理页
 * ============================================================ */
#page-festive{padding:0 0 10px}

/* 状态卡 */
.fg-hero{position:relative;overflow:hidden;margin:12px 14px 0;border-radius:16px;
  padding:20px 18px 18px;color:#fff;box-shadow:0 8px 22px rgba(20,20,30,.16);
  background:linear-gradient(160deg,#2B2B30 0%,#3C3C44 60%,#55555F 100%)}
.fg-hero.on{background:var(--fg-bg)}
.fg-hero-deco{position:absolute;right:-14px;top:-10px;width:104px;height:104px;
  color:var(--fg-accent);opacity:.9;pointer-events:none}
.fg-hero-deco svg{filter:drop-shadow(0 5px 16px rgba(0,0,0,.3))}
.fg-hero-t{position:relative;font-size:21px;font-weight:800;letter-spacing:1.4px;
  text-shadow:0 2px 10px rgba(0,0,0,.28)}
.fg-hero-s{position:relative;font-size:12.5px;opacity:.92;margin-top:5px;letter-spacing:.8px}
.fg-hero-m{position:relative;font-size:11.5px;opacity:.7;margin-top:10px;letter-spacing:.4px}

/* 本机开关行 */
.fg-note{margin:8px 18px 0;font-size:11.5px;color:#9AA1AC;line-height:1.6}
/* 「我的」菜单上的今日节日角标（区别于未读角标 .mi-badge，这个是常显的浅色小标） */
.fg-mi-badge{display:inline-block;font-size:10.5px;line-height:1;padding:3px 7px;border-radius:9px;
  background:#FDEBEC;color:var(--red);font-weight:600;margin-left:auto;margin-right:4px;white-space:nowrap}
.fg-mi-badge:empty{display:none}
.fg-hint{font-size:11.5px;color:#9AA1AC;font-weight:400;margin-left:8px}
.fg-empty{padding:26px 16px;text-align:center;color:#9AA1AC;font-size:13px}

/* 开关 */
.fg-sw{position:relative;width:44px;height:25px;border-radius:13px;background:#D9DDE3;
  flex:0 0 44px;transition:background .18s;display:inline-block}
.fg-sw::after{content:'';position:absolute;top:2.5px;left:2.5px;width:20px;height:20px;
  border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:left .18s}
.fg-sw.on{background:var(--red)}
.fg-sw.on::after{left:21.5px}

/* 接下来的节日列表 */
.fg-list{margin:8px 14px 0;background:#fff;border-radius:14px;overflow:hidden;
  box-shadow:0 3px 12px rgba(35,24,21,.05)}
.fg-li{display:flex;align-items:center;gap:11px;padding:12px 14px;border-bottom:1px solid #F2F2F4;cursor:pointer}
.fg-li:last-child{border-bottom:none}
.fg-li:active{background:#FAFAFB}
.fg-li-ic{width:38px;height:38px;flex:0 0 38px;border-radius:11px;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.fg-li-ic svg{width:20px;height:20px}
.fg-li-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.fg-li-main b{font-size:14px;color:var(--ink);font-weight:600}
.fg-li-main i{font-style:normal;font-size:11.5px;color:#9AA1AC}
.fg-li-go{font-size:12px;color:#B9BFC9;white-space:nowrap}
.fg-li.now{background:#FFFBF6}
.fg-li.now .fg-li-main b{color:var(--red)}
.fg-li.now .fg-li-main b::after{content:' · 进行中';font-size:11px;color:var(--red);opacity:.75}

/* 主题网格 */
.fg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:8px 14px 0}
.fg-card{position:relative;overflow:hidden;border-radius:13px;padding:13px 6px 11px;
  text-align:center;cursor:pointer;background:var(--fg-bg);color:#fff;
  box-shadow:0 4px 12px rgba(20,20,30,.13);border:1.5px solid transparent;transition:.15s}
.fg-card:active{transform:scale(.96)}
.fg-card.on{border-color:#fff;box-shadow:0 0 0 2px var(--red)}
.fg-card-ic{display:block;width:24px;height:24px;margin:0 auto 6px;color:var(--fg-accent)}
.fg-card-ic svg{width:24px;height:24px;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
.fg-card-n{display:block;font-size:12px;letter-spacing:.4px;text-shadow:0 1px 5px rgba(0,0,0,.3)}

/* 管理员设置面板 */
.fg-panel{margin:8px 14px 0;background:#fff;border-radius:14px;padding:6px 14px 12px;
  box-shadow:0 3px 12px rgba(35,24,21,.05)}
.fg-row{display:flex;align-items:center;justify-content:space-between;padding:13px 0 9px;
  font-size:14px;color:var(--ink);font-weight:600}
.fg-row-sub{font-size:11.5px;color:#9AA1AC;line-height:1.6;padding-bottom:8px}
.fg-chips{display:flex;flex-wrap:wrap;gap:7px;padding:2px 0 8px}
.fg-chip{font-size:12px;padding:5px 11px;border-radius:15px;background:#F2F3F5;color:#5A6069;
  cursor:pointer;border:1px solid transparent;white-space:nowrap}
.fg-chip.on{background:var(--red-bg);color:var(--red);border-color:var(--red);font-weight:600}
.fg-tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.fg-tbl table{border-collapse:collapse;width:100%;font-size:12.5px}
.fg-tbl th{background:#FAF7F2;color:#7A6A52;font-weight:600;font-size:11.5px;
  padding:7px 8px;text-align:left;border-bottom:1px solid #EFEAE2;white-space:nowrap}
.fg-tbl td{padding:6px 8px;border-bottom:1px solid #F4F1EC;color:var(--ink);white-space:nowrap}
.fg-tbl tr:last-child td{border-bottom:none}
.fg-mono{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;color:#8A8F98}
.fg-inp{width:52px;height:28px;border:1px solid #E3E5E9;border-radius:7px;text-align:center;
  font-size:13px;color:var(--ink);background:#FCFCFD;padding:0 4px;
  font-family:inherit;-webkit-appearance:none;appearance:none}
.fg-inp:focus{outline:none;border-color:var(--red);background:#fff}

/* ===== AI 问诊（2026-10-20 新增）=====
   场景：故障码 / 案例 / 维修标准三类全无命中时，AI 逐轮追问最多 3 个问题再给结论。
   规格：正文 13px、气泡最大宽 86%、选项按钮高 ≥34px，360px 窄屏不溢出。 */
.qa-wrap{margin:0 16px 18px}
.qa-entry{background:linear-gradient(135deg,#FFF8F9 0%,#FFFFFF 60%);border:1px solid #F3CBD0;
  border-radius:12px;padding:14px 15px;box-shadow:0 2px 10px rgba(230,0,32,.05)}
.qa-entry-h{font-size:13.5px;font-weight:800;color:#1F2430;display:flex;align-items:center;
  gap:7px;margin-bottom:6px}
.qa-entry-p{font-size:12.5px;color:#5B6675;line-height:1.7;margin-bottom:12px}
/* 有方案时的「是否解决」确认条：中性色，不抢结果区的注意力 */
.qa-ask{background:#F8FAFC;border-color:#E2E8F0}
/* 用户点了「已解决」后的致谢态 */
.qa-thanks{background:#F1F8F3;border-color:#BFE6D2}
.qa-btn{border:none;border-radius:9px;padding:10px 16px;font-size:13px;font-weight:700;
  font-family:inherit;cursor:pointer;line-height:1.3}
.qa-btn-main{background:linear-gradient(135deg,#E60020,#B80019);color:#fff;
  box-shadow:0 3px 10px rgba(230,0,32,.2)}
.qa-btn-main:disabled{opacity:.55;box-shadow:none;cursor:default}
.qa-btn-ghost{background:#fff;border:1px solid #E2E7ED;color:#5B6675;margin-left:8px}

.qa-thread{display:flex;flex-direction:column;gap:9px;margin-bottom:11px}
.qa-row{display:flex}
.qa-row.me{justify-content:flex-end}
.qa-bub{max-width:86%;font-size:13px;line-height:1.65;padding:9px 12px;border-radius:12px;
  word-break:break-word}
.qa-bub.ai{background:#fff;border:1px solid #EDEFF3;color:#2E3440;border-top-left-radius:4px;
  box-shadow:0 2px 8px rgba(20,30,50,.04)}
.qa-bub.me{background:linear-gradient(135deg,#E60020,#C4001C);color:#fff;border-top-right-radius:4px}
.qa-tip{font-size:11px;color:#9AA1AC;line-height:1.55;margin-top:4px}

.qa-opts{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}
.qa-chip{border:1px solid #D8E2EE;background:#F6FAFF;color:#1668B0;border-radius:16px;
  padding:8px 13px;font-size:12.5px;font-family:inherit;cursor:pointer;line-height:1.3;
  min-height:34px;display:inline-flex;align-items:center}
.qa-chip:active{background:#E8F2FC}

.qa-inputbar{display:flex;gap:8px;align-items:center}
.qa-inputbar input{flex:1;min-width:0;border:1px solid #E4E6EB;border-radius:10px;
  padding:10px 12px;font-size:13px;font-family:inherit;outline:none;background:#fff}
.qa-inputbar input:focus{border-color:#C7DBF5;box-shadow:0 0 0 3px rgba(27,76,140,.08)}

.qa-progress{font-size:11px;color:#9AA1AC;margin-bottom:8px}
.qa-err{background:#FFF3F4;border:1px solid #F5C9D2;border-radius:9px;padding:9px 11px;
  font-size:12.5px;color:#C0132F;line-height:1.6;margin-bottom:9px}

.qa-result{background:#fff;border:1px solid #EDEFF3;border-radius:12px;padding:14px 15px;
  box-shadow:0 2px 10px rgba(20,30,50,.05)}
.qa-res-h{font-size:13.5px;font-weight:800;color:#1F2430;display:flex;align-items:center;
  gap:7px;flex-wrap:wrap;margin-bottom:10px}
.qa-badge{font-size:10.5px;font-weight:700;padding:2px 7px;border-radius:6px;
  background:#FEF3C7;color:#B45309}
.qa-badge.low{background:#FDE8EC;color:#C0132F}
.qa-sec{font-size:12.8px;color:#39404A;line-height:1.78;margin-bottom:9px}
.qa-sec b{color:#1F2430}
.qa-diff{border-left:3px solid #E60020;padding-left:10px;margin:9px 0}
.qa-diff .c{font-size:13px;font-weight:700;color:#1F2430;line-height:1.5}
.qa-diff .m{font-size:12px;color:#5B6675;line-height:1.62;margin-top:3px}
.qa-safety{background:#FFF8E8;border:1px solid #F7E4C4;border-radius:8px;padding:9px 11px;
  font-size:12px;color:#8A4B08;line-height:1.65;margin:10px 0}
.qa-disc{font-size:11px;color:#9AA1AC;line-height:1.6;margin-top:10px;padding-top:9px;
  border-top:1px dashed #EDEFF3}
/* 基线缺失警示：动力总成没问到就下结论，必须让用户一眼看到可信度受限（2026-10-20） */
.qa-baseline-warn{background:#FFF4E5;border-left:3px solid #E6A23C;border-radius:6px;
  padding:9px 11px;font-size:12px;color:#8A4B08;line-height:1.7;margin:10px 0 4px}
.qa-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px;align-items:center}

/* ===== S2：故障码匹配类型徽标与折叠列表（2026-10-21）=====
   搜「647」会一次返回同 SPN 的多个 FMI，全部展开时用户要滚动很久，
   因此只展开第一条，其余收成一行，点开再看。 */
.fc-badge{display:inline-block;font-size:10px;font-weight:700;padding:1px 6px;border-radius:4px;
  margin-left:6px;vertical-align:middle;line-height:1.6}
.fc-badge.exact{background:#E8F6EC;color:#0A7B47}
.fc-badge.same{background:#EEF2F8;color:#4A5568}
.fc-badge.rel{background:#F3F4F6;color:#8A929E}

.fc-card.is-collapsed{background:#FCFCFD}
.fc-card.is-collapsed .fc-header{display:flex;align-items:center;gap:8px;padding:9px 11px;cursor:pointer}
.fc-card.is-collapsed .fc-spn{flex:0 0 auto;white-space:nowrap;margin:0;font-size:12px}
.fc-card.is-collapsed .fc-title{flex:1 1 auto;margin:0;font-size:13px;line-height:1.4;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fc-card.is-collapsed .fc-en,
.fc-card.is-collapsed .fc-meta,
.fc-card.is-collapsed .fc-body{display:none}

.fc-expand-tip{font-size:11px;color:#B4BBC6;margin-left:auto;white-space:nowrap;cursor:pointer;font-weight:400;flex:0 0 auto}
.fc-related-tip{margin:10px 16px 0;padding:9px 11px;background:#F8F9FB;border-radius:8px;
  font-size:11.5px;color:#8A929E;text-align:center;line-height:1.6}

/* ===== C6：恢复缩放后的 iOS 聚焦防护（2026-10-21）=====
   页面已允许双指缩放，Safari 随之启用「输入框字号 <16px 时聚焦自动放大」的行为。
   若不管，用户每点一次输入框整页就跳一下，比不能缩放更难受。
   这里只对窄屏生效：桌面浏览器不会自动放大，保持原字号可避免把密集表格撑开。 */
@media (max-width: 640px) {
  input, textarea, select { font-size: 16px !important; }
  /* 52px 宽的小输入（如扭矩数值）在 16px 下仍能放下 3 位数，但要把内边距收一点 */
  .fg-inp { padding: 0 2px; }
  /* 搜索类控件保持原高度，避免 16px 把顶部导航顶高 */
  .search input, .hero-search input, .dh-search input, .tcm-bar input { line-height: 1.2; }
}

/* ===== C7：案例广场分页提示（2026-10-21）===== */
.case-more{padding:14px 16px 26px;text-align:center;font-size:11.5px;color:#B4BBC6;line-height:1.6}

/* 案例卡片作者行：单位名过长时原来会把姓名挤成两行（"吴万/广"）。
   姓名与徽章不收缩，单位名占剩余空间并省略。 */
.author .au-name{flex:0 0 auto;white-space:nowrap}
.author .expert-badge{flex:0 0 auto}
.author .au-org{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== S3：平台筛选 chip（2026-10-21）=====
   39 个平台横向滑动，按分类分组。选中态用品牌红，与"全部平台"同一视觉层级。 */
.plat-bar{display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;
  padding:8px 14px 6px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.plat-bar::-webkit-scrollbar{display:none}
.plat-pill{flex:0 0 auto;font-size:11.5px;line-height:1;padding:6px 11px;border-radius:14px;
  background:#F2F4F7;color:#5B6675;border:1px solid transparent;white-space:nowrap;cursor:pointer;
  transition:.15s}
.plat-pill.on{background:#FDECEE;color:var(--red);border-color:#F7C9CF;font-weight:700}
.plat-sep{flex:0 0 auto;width:1px;height:14px;background:#E4E6EB;margin:0 2px}
/* 结果里"其他平台"的提示标签 */
.fc-badge.other{background:#FFF4E5;color:#B26A00}

/* ===== S3：平台无数据 / 全为其他平台的提示（2026-10-21）=====
   空列表最容易被误解成「我的车没这个问题」，必须用明确文案兜住。 */
.plat-empty{margin:16px;padding:22px 18px;background:#F8F9FB;border-radius:12px;
  text-align:center;font-size:12.5px;color:#5B6675;line-height:1.9}
.plat-warn{margin:10px 14px 4px;padding:10px 12px;background:#FFF4E5;border:1px solid #F7E4C4;
  border-radius:9px;font-size:11.5px;color:#8A5A00;line-height:1.7}

/* ===== 搜索质量（S6）：零结果 / 没解决清单 + CSV 导出 ===== */
.sq-table{background:#fff;border-radius:var(--r);padding:4px 12px;box-shadow:var(--shadow)}
.sq-tr{display:grid;grid-template-columns:.5fr 1.7fr .6fr 1fr;align-items:center;gap:6px;
  padding:8px 0;border-bottom:1px solid var(--gray-2);font-size:12.5px;color:#555}
.sq-tr:last-child{border-bottom:none}
.sq-tr b{font-weight:normal;color:#aaa}
.sq-tr.sq-th{font-size:11.5px;color:#9AA1AC}
.sq-tr.sq-th b{color:#9AA1AC}
.sq-q{color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sq-tr span:not(.sq-q){text-align:right}
.sq-d{font-size:11.5px;color:#9AA1AC}
.sq-export{display:inline-block;margin:10px 0 18px;padding:6px 14px;border-radius:16px;
  background:#fff;border:1px solid var(--blue);color:var(--blue);font-size:12.5px}
.db-sk-link{display:flex;align-items:center;justify-content:space-between;background:#fff;
  border-radius:var(--r-s);padding:12px 14px;box-shadow:var(--shadow);font-size:13px;color:var(--ink)}
.db-sk-link i{font-style:normal;color:#bbb}

/* ===== C2：离线 / 新版本提示条 ===== */
.net-bar{position:fixed;left:0;right:0;top:0;z-index:9000;display:none;
  padding:8px 14px;font-size:12.5px;text-align:center;color:#fff;background:#5B6472;
  box-shadow:0 2px 8px rgba(0,0,0,.12)}
.net-bar.show{display:block}
.net-bar.update{background:var(--red)}
.net-bar.update b{text-decoration:underline;margin-left:4px}
