:root{
  --bg:#F5F5F7;
  --surface:#ffffff;
  --surface-2:#F5F5F7;
  --border:#E8E8ED;
  --border-strong:#D2D2D7;
  --text:#1D1D1F;
  --text-2:#4a5260;
  --muted:#86868B;
  --accent:#1D1D1F;
  --accent-soft:#F0F0F2;
  --red:#8E2A22;
  --red-soft:#F5E4E1;
  --amber-t:#7A5C10;
  --amber-b:#F2E8C9;
  --green-t:#2E5B1E;
  --green-b:#E4EFD9;
  --on-accent:#ffffff;
  --accent-hover:#2d2d30;
  color-scheme:light;
  --shadow:0 1px 3px rgba(0,0,0,.05);
  --shadow-lg:0 12px 32px rgba(0,0,0,.14);
}
/* ---- 移动端头像菜单（桌面隐藏） ---- */
.m-ava, .m-menu { display: none; }
.m-menu[hidden] { display: none; }
.tabs .tshort { display: none; }

/* ---- 深色模式：默认跟随系统，html[data-theme] 手动覆盖（跟随系统/深/浅三态） ---- */
:root[data-theme="dark"]{
  --bg:#101116; --surface:#191B21; --surface-2:#1D2028;
  --border:#262933; --border-strong:#3A3E4A;
  --text:#E9EBF2; --text-2:#B4BAC8; --muted:#7E8494;
  --accent:#E9EBF2; --accent-soft:#2A2D37; --on-accent:#16181D; --accent-hover:#DFE1E8;
  --red:#F09595; --red-soft:#3A2328;
  --amber-t:#EFC368; --amber-b:#362E1B;
  --green-t:#97C459; --green-b:#1F2B18;
  color-scheme:dark;
  --shadow:0 1px 3px rgba(0,0,0,.5);
  --shadow-lg:0 12px 32px rgba(0,0,0,.7);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#101116; --surface:#191B21; --surface-2:#1D2028;
    --border:#262933; --border-strong:#3A3E4A;
    --text:#E9EBF2; --text-2:#B4BAC8; --muted:#7E8494;
    --accent:#E9EBF2; --accent-soft:#2A2D37; --on-accent:#16181D; --accent-hover:#DFE1E8;
    --red:#F09595; --red-soft:#3A2328;
    --amber-t:#EFC368; --amber-b:#362E1B;
    --green-t:#97C459; --green-b:#1F2B18;
    color-scheme:dark;
    --shadow:0 1px 3px rgba(0,0,0,.5);
    --shadow-lg:0 12px 32px rgba(0,0,0,.7);
  }
}

*{box-sizing:border-box}
[hidden]{display:none !important} /* 防止 display:flex 等样式压过 hidden 属性导致元素藏不住 */
html,body{height:100%}
body{
  margin:0;background:var(--bg);color:var(--text);
  font:14px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
}
h2{margin:0;font-weight:650}
.muted{color:var(--muted);font-size:12px}
/* 品牌圆标：深灰圆底 + 白徽标 */
.bmark{
  width:26px;height:26px;border-radius:50%;flex:none;
  box-shadow:0 1px 3px rgba(0,0,0,.15);
}
.login-brand .bmark{width:36px;height:36px}

/* 全站底纹：右下角深灰化徽标，约 10% 透明度，不拦截点击、不遮挡内容 */
body::after{
  content:"";
  position:fixed;right:-70px;bottom:-60px;width:480px;height:489px;
  background:url("logo-watermark.png") center/contain no-repeat;
  opacity:.1;pointer-events:none;z-index:-1;
}

/* ---------- 登录页 ---------- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-box{
  width:340px;background:var(--surface);border:1px solid var(--border);border-radius:14px;
  padding:26px 26px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;
}
.login-brand{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:700;justify-content:center;margin-bottom:6px}
.login-tabs{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px}
.ltab{flex:1;border:none;background:transparent;padding:6px 0;border-radius:7px;font-size:13px;color:var(--text-2);cursor:pointer;font-family:inherit}
.ltab.on{background:var(--surface);box-shadow:var(--shadow);color:var(--text);font-weight:600}
.lin{
  height:38px;border:1px solid var(--border);border-radius:8px;padding:0 12px;
  font:inherit;background:var(--surface-2);outline:none;color:var(--text);
}
.lin:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}
.lerr{font-size:12px;color:var(--red);background:var(--red-soft);border-radius:6px;padding:6px 10px}
.lnote{font-size:11.5px;color:var(--muted);text-align:center;margin-top:2px}
.wide{width:100%;justify-content:center}

/* ---------- 顶栏 ---------- */
.topbar{
  height:56px;display:flex;align-items:center;gap:16px;
  padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border);
  position:sticky;top:0;z-index:30;
}
.brand{display:flex;align-items:center;gap:9px;font-size:15px;font-weight:700;white-space:nowrap}
.tabs{display:flex;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:3px}
.tab{border:none;background:transparent;padding:6px 16px;border-radius:7px;font-size:13px;color:var(--text-2);cursor:pointer;font-family:inherit}
.tab:hover{color:var(--text)}
.tab.on{background:var(--surface);box-shadow:var(--shadow);color:var(--text);font-weight:600}
.me{margin-left:auto;display:flex;align-items:center;gap:10px}
.invite{font-size:11px;color:var(--accent);background:var(--accent-soft);border:1px dashed var(--border-strong);border-radius:5px;padding:2px 8px}

.btn{
  height:32px;padding:0 14px;border-radius:8px;border:1px solid var(--border);
  background:var(--surface);color:var(--text-2);font-size:13px;cursor:pointer;
  display:inline-flex;align-items:center;gap:6px;font-family:inherit;text-decoration:none;
}
.btn:hover{border-color:var(--border-strong);color:var(--text)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-hover);color:var(--on-accent)}
.btn.small{height:28px;padding:0 10px;font-size:12px}

/* ---------- 视图 ---------- */
.view{padding:28px 32px 90px;max-width:1080px;margin:0 auto}
.vhead{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:24px}
.vhead h2{font-size:28px;font-weight:700;letter-spacing:-.5px;line-height:1.25;color:var(--text)}
.vhead .pgsub{font-size:14px;color:var(--muted);margin-top:4px}
.empty{
  background:var(--surface);border:1px dashed var(--border-strong);border-radius:12px;
  padding:52px 20px;text-align:center;color:var(--muted);line-height:2.1;font-size:13px;
}

/* ---------- 表格 ---------- */
.twrap{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:auto;box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;min-width:880px}
th{
  position:sticky;top:0;background:var(--surface-2);text-align:left;
  font-size:12.5px;color:var(--text-2);font-weight:650;
  padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;
}
td{border-bottom:1px solid var(--border);padding:7px 10px;vertical-align:top}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--surface-2)}
.c-cat{width:150px}
.c-seq{width:52px;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:14px}
.c-vid{width:230px}
.c-del{width:44px}
td input,td textarea{
  width:100%;border:1px solid transparent;border-radius:6px;background:transparent;
  padding:6px 8px;font:inherit;color:var(--text);outline:none;resize:none;line-height:1.65;
}
td input::placeholder,td textarea::placeholder{color:var(--muted)}
td input:focus,td textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}

/* 视频单元格 */
.chips{display:flex;flex-direction:column;gap:5px}
.vchip{
  display:inline-flex;align-items:center;gap:6px;font-size:12px;
  background:var(--surface-2);color:var(--text);border:0.5px solid var(--border);
  border-radius:6px;padding:3px 8px;cursor:pointer;max-width:100%;
}
.vchip:hover{background:var(--surface-2)}
.vchip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vchip i{font-style:normal;opacity:.6;cursor:pointer;padding:0 2px;flex:none}
.vchip i:hover{opacity:1;color:var(--red)}
.vbtns{display:flex;gap:6px;margin-top:6px}
.mini{
  font-size:11.5px;padding:2px 9px;border-radius:5px;
  border:1px dashed var(--border-strong);background:transparent;
  color:var(--muted);cursor:pointer;font-family:inherit;
}
.mini:hover{border-color:var(--accent);color:var(--accent)}
.del{
  width:24px;height:24px;border-radius:6px;border:none;background:transparent;
  color:var(--muted);font-size:16px;cursor:pointer;line-height:1;margin-top:4px;
}
.del:hover{background:var(--red-soft);color:var(--red)}

/* ---------- 训练记录 ---------- */
.logs{display:flex;flex-direction:column;gap:14px}
.logcard{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.loghead{display:flex;align-items:center;gap:12px}
.logdate{border:1px solid var(--border);border-radius:7px;padding:5px 10px;font:inherit;background:var(--surface-2);color:var(--text);outline:none}
.logdate:focus{border-color:var(--accent);background:var(--surface)}
.loghead .del{margin-left:auto;margin-top:0}
.logsec{margin-top:12px}
.logsec label{display:block;font-size:11.5px;font-weight:700;color:var(--muted);margin-bottom:5px}
.logsec textarea{
  width:100%;border:1px solid var(--border);border-radius:8px;padding:9px 12px;
  font:inherit;line-height:1.75;background:var(--surface-2);color:var(--text);outline:none;resize:none;
}
.logsec textarea::placeholder{color:var(--muted)}
.logsec textarea:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}
.logsec .chips{flex-direction:row;flex-wrap:wrap}

/* ---------- 播放弹窗 ---------- */
.modal{position:fixed;inset:0;background:rgba(15,20,28,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}
.modal[hidden]{display:none}
.mbox{background:var(--surface);border-radius:14px;width:min(880px,100%);max-height:92vh;overflow:auto;box-shadow:var(--shadow-lg)}
.mhead{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:14px}
.mclose{width:28px;height:28px;border-radius:7px;border:none;background:transparent;font-size:18px;color:var(--muted);cursor:pointer;line-height:1}
.mclose:hover{background:var(--surface-2);color:var(--text)}
#modalBody video,#modalBody iframe{display:block;width:100%;aspect-ratio:16/9;background:#000;border:none}
.msub{padding:10px 16px;font-size:12px;color:var(--muted);word-break:break-all}
.msub a{color:var(--text)}
.mlink{padding:48px 16px;text-align:center;color:var(--muted);display:flex;flex-direction:column;gap:16px;align-items:center;font-size:13.5px}

/* ---------- 上传进度 ---------- */
.upbox{
  position:fixed;left:50%;bottom:76px;transform:translateX(-50%);
  background:#1b1f24;color:#fff;padding:12px 16px;border-radius:10px;
  width:min(340px,82vw);z-index:98;box-shadow:var(--shadow-lg);
}
.uptext{font-size:12px;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.uptrack{height:6px;background:rgba(255,255,255,.18);border-radius:4px;overflow:hidden}
.upfill{height:100%;width:0;background:var(--accent);border-radius:4px;transition:width .15s}

/* ---------- 其他 ---------- */
.toast{
  position:fixed;bottom:26px;left:50%;transform:translateX(-50%) translateY(14px);
  background:#1b1f24;color:#fff;padding:9px 18px;border-radius:8px;font-size:13px;
  opacity:0;pointer-events:none;transition:.22s;z-index:99;box-shadow:var(--shadow-lg);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.saving{font-size:11px;color:var(--muted);margin-left:4px}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:6px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--muted);background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}

/* ---------- 分类标签：单元格标签 / 表头筛选 / 选择弹窗 ---------- */
.thfilter{cursor:pointer}
.thfilter:hover{color:var(--text)}
.funnel{color:var(--accent);font-size:11px;font-weight:700;margin-left:4px}
.fhint{color:var(--muted);font-size:11px;margin-left:4px}
.catchip{
  display:inline-flex;align-items:center;padding:3px 11px;border-radius:13px;
  background:var(--surface-2);color:var(--text);border:0.5px solid var(--border);
  font-size:12.5px;cursor:pointer;
}
.catchip:hover{background:var(--accent-soft)}
.catchip.empty{background:var(--surface-2);color:var(--muted);border:1px dashed var(--border-strong)}
.pk-wrap{padding:6px 16px 18px}
.pk-label{font-size:12px;color:var(--muted);margin:10px 0 10px}
.pk-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.pk-chip{
  display:inline-flex;align-items:center;padding:8px 20px;border-radius:18px;
  border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);
  font-size:14px;cursor:pointer;
}
.pk-chip:hover{border-color:var(--border-strong);color:var(--text)}
.pk-chip.on{background:var(--text);border-color:var(--text);color:var(--on-accent)}
.pk-input{
  width:100%;height:40px;border:1px solid var(--border);border-radius:8px;
  padding:0 12px;font-size:16px;background:var(--surface-2);outline:none;box-sizing:border-box;
}
.pk-input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}
.pk-btns{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.pk-btns .btn[disabled]{opacity:.45;cursor:not-allowed}
.openfields{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px}
.openfield{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-2, var(--text-2))}
.openfield input{accent-color:var(--accent);width:15px;height:15px}

/* 解决情况状态标签 */
.stchip{display:inline-flex;align-items:center;padding:3px 11px;border-radius:13px;font-size:12px;cursor:pointer;border:1px solid transparent;white-space:nowrap}
.st-未解决{background:var(--red-soft);color:var(--red);border-color:transparent}
.st-待定{background:var(--amber-b);color:var(--amber-t);border-color:transparent}
.st-已解决{background:var(--green-b);color:var(--green-t);border-color:var(--green-b)}
.ghd{display:flex;align-items:center;gap:8px;margin:14px 0 8px;font-size:13px;font-weight:650}
.ghd .n{font-size:11px;color:var(--muted);font-weight:400}
.openchip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:13px;font-size:12px;cursor:pointer;border:1px dashed var(--border-strong);color:var(--muted);white-space:nowrap}
.openchip.on{background:var(--green-b);color:var(--green-t);border:1px solid var(--green-b)}
/* 解决情况单元格：状态/开放/讨论三胶囊统一宽度竖排居中 */
.stcell{display:flex;flex-direction:column;align-items:center;gap:8px}
.stcell .rst{margin-left:0;width:72px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;border-radius:12px}
.stcell .openchip{width:72px;height:24px;padding:0;justify-content:center;font-size:11.5px;border-radius:12px}
.stcell .disc-link{margin-left:0;width:72px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:11.5px;text-decoration:none;background:var(--surface);border:0.5px solid var(--border);border-radius:12px}
.stcell .disc-link:hover{background:var(--surface-2)}

/* 汇总页 */
.hello{font-size:16px;font-weight:650;margin-bottom:2px}
.hello-sub{font-size:12px;color:var(--muted);margin-bottom:16px}
.hcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-bottom:16px}
.hcard{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.hcard .k{font-size:11px;color:var(--muted)}
.hcard .v{font-size:30px;font-weight:700;letter-spacing:-.5px;margin-top:4px;color:var(--text)}
.hcard .v small{font-size:13px;font-weight:400;color:var(--muted);margin-left:4px}
.htag{display:inline-block;padding:2px 10px;border-radius:6px;background:var(--surface-2);border:0.5px solid var(--border);color:var(--text);font-size:12px;flex:none}
.panel{background:var(--surface);border:0.5px solid var(--border);border-radius:16px;padding:22px 24px;box-shadow:0 1px 3px rgba(0,0,0,.04);margin-bottom:20px}
.mtitle{font-size:20px;font-weight:600;letter-spacing:-.3px;color:var(--text);margin:0 0 14px}
.hcard .v small{font-size:11px;color:var(--muted);font-weight:500}
.hlink{color:var(--text);cursor:pointer;font-size:12px;text-decoration:underline;white-space:nowrap}
.hrow{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid var(--border);font-size:12.5px;flex-wrap:wrap}
.hrow:last-child{border-bottom:none}
.hrow .d{color:var(--muted);font-size:11px;width:42px;flex:none}
.hrow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* 媒体区（嵌入记录卡片） */
.mediabox{background:var(--surface-2);border-radius:8px;padding:8px 10px;margin-top:6px}
.mediathumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.imgwrap{position:relative;display:inline-block}
.rimg{width:56px;height:42px;border-radius:7px;object-fit:cover;border:0.5px solid var(--accent-soft);cursor:zoom-in;display:block}
.rimg:hover{border-color:var(--muted)}
.thumbimg{width:52px;height:40px;object-fit:cover;border-radius:5px;border:1px solid var(--border);cursor:zoom-in;display:block}
.imgwrap .x{
  position:absolute;top:-5px;right:-5px;width:15px;height:15px;border-radius:50%;
  background:var(--surface);border:1px solid var(--border);color:var(--red);
  font-size:10px;line-height:13px;text-align:center;cursor:pointer;font-style:normal;
}
.imgwrap .x:hover{background:var(--red-soft)}
.imgwrap .dl{
  position:absolute;bottom:-5px;right:-5px;width:15px;height:15px;border-radius:50%;
  background:var(--surface);border:1px solid var(--border);color:var(--text);
  font-size:9px;line-height:13px;text-align:center;cursor:pointer;font-style:normal;text-decoration:none;
}
.vbtns{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;align-items:center}
.disc-link{margin-left:auto;color:var(--text);cursor:pointer;font-size:12px;text-decoration:underline}
.disc-link:hover{color:var(--text)}

/* 一起讨论 */
.dvcard{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px;cursor:pointer}
.dvcard:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}
.cmt{padding:7px 10px;border-radius:8px;background:var(--surface-2);margin-bottom:6px;font-size:12.5px}
.cmt .who{font-weight:600;color:var(--text);margin-right:8px}
.cmt.reply{margin-left:30px;background:var(--surface-2)}
.cmt .rd{color:var(--muted);font-size:11px;margin-right:8px}
.cmt .act{color:var(--muted);font-size:11px;margin-left:10px;cursor:pointer}
.cmt .act:hover{color:var(--accent)}
.cinput{width:100%;border:1px solid var(--border);border-radius:8px;padding:8px 11px;font-size:13px;font-family:inherit;box-sizing:border-box;outline:none;background:var(--surface-2)}
.cinput:focus{border-color:var(--accent);background:var(--surface)}
.cmtbox{margin-top:10px}
.cmtbox .row2{display:flex;gap:8px;justify-content:flex-end;margin-top:8px;align-items:center}

/* 回收站 */
.trrow{display:flex;align-items:center;gap:10px;padding:10px 4px;border-bottom:1px solid var(--border);font-size:12.5px;flex-wrap:wrap}
.trrow:last-child{border-bottom:none}
.trrow .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trrow .when{color:var(--muted);font-size:11px}
.trrow .when.soon{color:var(--red)}

/* 图片灯箱 */
.lbox{position:fixed;inset:0;background:rgba(15,20,28,.72);display:flex;align-items:center;justify-content:center;z-index:60;padding:20px}
.lbox-in{background:var(--surface);border-radius:12px;padding:12px;max-width:min(860px,94vw)}
.lbox-in img{display:block;max-width:100%;max-height:70vh;border-radius:8px;background:#000}
.lbox-bar{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:10px}

/* ---------- 卡片式记录（问题记录 / 一些感觉） ---------- */
.rcard{
  background:var(--surface);border:0.5px solid var(--border,var(--accent-soft));border-radius:12px;
  padding:14px 16px 10px;margin-bottom:12px;box-shadow:0 1px 2px rgba(16,24,40,.04);
  transition:box-shadow .15s;
}
.rcard:hover{box-shadow:0 3px 10px rgba(16,24,40,.08)}
.rhead{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.rcat{
  padding:3px 12px;border-radius:7px;font-size:12px;font-weight:600;cursor:pointer;
  background:var(--surface-2);color:var(--text);border:0.5px solid var(--border);font-family:inherit;
}
.rcat:hover{background:var(--accent-soft)}
.rst{
  margin-left:auto;padding:3px 12px;border-radius:14px;font-size:11.5px;font-weight:500;
  cursor:pointer;border:none;font-family:inherit;
}
.st1{background:var(--red-soft);color:var(--red)}
.st2{background:var(--amber-b);color:var(--amber-t)}
.st3{background:var(--green-b);color:var(--green-t)}
.rdel{border:none;background:none;color:var(--muted);font-size:15px;cursor:pointer;padding:2px 4px;font-family:inherit}
.rdel:hover{color:var(--red)}
.rtext{
  width:100%;border:1px solid transparent;border-radius:8px;background:transparent;
  padding:6px 9px;font-size:14px;line-height:1.65;color:var(--text);
  resize:none;outline:none;font-family:inherit;box-sizing:border-box;overflow:hidden;display:block;
}
.rtext:hover{background:var(--surface-2)}
.rtext:focus{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.rsol{background:var(--surface-2);border:0.5px solid var(--border);border-radius:9px;padding:8px 10px 4px;margin-top:8px}
.rsol .lb{font-size:10.5px;color:var(--muted);font-weight:700;margin-bottom:2px;letter-spacing:.05em}
.rsol .rtext{font-size:13px;color:var(--text-2,var(--text-2))}
.rmedia{margin-top:10px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.radd{
  display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:7px;
  border:none;background:none;color:var(--muted);font-size:11.5px;cursor:pointer;font-family:inherit;
}
.radd:hover{background:var(--accent-soft);color:var(--text-2,var(--text-2))}
.rvid{
  display:inline-flex;align-items:center;gap:5px;padding:5px 11px;border-radius:8px;
  background:var(--surface-2);color:var(--text);font-size:12px;cursor:pointer;border:none;font-family:inherit;
}
.rvid:hover{background:var(--accent-soft)}
.rvid span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rvid .ri-x,.rvid .ri-e{font-style:normal;opacity:.5;cursor:pointer;font-size:10px;margin-left:2px}
.rvid .ri-x:hover{color:var(--red);opacity:1}
.rvid .ri-e:hover{opacity:1}
.rfoot{margin-top:8px;padding-top:8px;border-top:0.5px solid var(--border);display:flex;align-items:center}
.rdisc{margin-left:auto;font-size:11.5px;color:var(--text);cursor:pointer}
.rdisc:hover{text-decoration:underline}

/* 顶部筛选栏（分类 + 解决情况，多选合并） */
.fbar2{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.fgroup{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.flb{font-size:11px;color:var(--muted);font-weight:700;width:58px;flex:none}
.fb-chip{
  display:inline-flex;align-items:center;gap:5px;padding:4px 14px;border-radius:15px;
  border:1px solid var(--border);background:var(--surface-2);color:var(--text-2,var(--text-2));
  font-size:12px;cursor:pointer;
}
.fb-chip:hover{border-color:var(--border-strong);color:var(--text)}
.fb-chip em{font-style:normal;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.fb-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.fb-chip.on em{color:rgba(255,255,255,.7)}

/* 描述字段带标签框 */
.rfieldbox{border:1px solid var(--border);border-radius:9px;padding:7px 10px 4px;margin-top:6px;background:var(--surface)}
.rfieldbox .lb{font-size:10.5px;color:var(--muted);font-weight:700;margin-bottom:2px;letter-spacing:.05em}
.rfieldbox .rtext{font-size:13.5px}

/* 记录表格（问题记录 / 一些感觉） */
.atable{width:100%;border-collapse:collapse;table-layout:fixed;min-width:820px}
.atable th{
  text-align:left;font-size:12px;color:var(--muted);font-weight:600;
  padding:12px 14px;border-bottom:0.5px solid var(--border);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis;
}
.atable td{padding:14px;vertical-align:top;border-bottom:0.5px solid var(--border);overflow:hidden}
.atable tbody tr:last-child td{border-bottom:none}
.atable tbody tr:hover td{background:var(--surface-2)}
.atable .c-end{display:flex;flex-direction:column;align-items:center;gap:8px;width:auto}
.atable .c-end .rdel{margin:0}
.atable td.c-center,.atable th.center{text-align:center}

/* 列宽拖拽手柄 + 列拖拽换序 */
.colth{position:relative;user-select:none}
.colth-drag{cursor:grab}
.colth-drag:active{cursor:grabbing}
.colth.drag-over{box-shadow:inset 2px 0 0 var(--accent)}
.colgrip{position:absolute;right:-2px;top:0;bottom:0;width:9px;cursor:col-resize;z-index:3}
.colgrip::after{content:'';display:block;width:2px;height:14px;background:var(--border-strong);border-radius:1px;margin:16px auto 0}
.colgrip:hover::after{background:var(--accent)}

/* 标签完整显示，不折叠 */
.rcat,.rst,.stchip,.fb-chip,.catchip,.rvid{white-space:nowrap}
.rvid span{max-width:none;overflow:visible;text-overflow:clip}

/* ---------- 移动端适配（≤720px 生效，桌面不受影响） ---------- */
@media(max-width:720px){
  /* 禁止整页横向滑动（右滑 bug 根治 + 兜底） */
  html,body{overflow-x:hidden}

  .fb-chip{padding:6px 14px;font-size:13.5px}
  .fb-chip em{font-size:11px}
  .flb{width:100%}
  .rfieldbox .rtext{font-size:16px}

  .rtext{font-size:16px}
  .rcard{padding:12px 12px 8px}
  .pk-chip{padding:11px 22px;font-size:15px}
  .pk-btns .btn{flex:1;justify-content:center;height:42px;font-size:15px}
  .thumbimg{width:64px;height:48px}

  /* 顶栏：允许换行，标签页占满一行可横滑 */
  .topbar{flex-wrap:wrap;height:auto;padding:8px 12px;row-gap:8px}
  .brand{font-size:14px}
  .tabs{order:5;width:100%;overflow-x:auto}
  .tab{flex:1 0 auto;padding:8px 10px;white-space:nowrap}
  .me{gap:8px}

  /* 页面留白收紧 */
  .view{padding:14px 12px 90px}

  /* 输入类字号≥16px，防 iOS 聚焦自动放大（含弹窗内全部控件） */
  td input,td textarea,.logsec textarea,.logdate,.lin{font-size:16px}
  #modal input,#modal textarea,#modal select,.q-box,.pk-input,.cinput{font-size:16px !important}

  /* 表格 → 卡片堆叠 */
  .twrap{background:transparent;border:none;box-shadow:none;overflow:visible}
  /* .atable 的 min-width:820px 优先级高于 table{min-width:0}，必须同权重覆盖（整页横移的根因） */
  .atable{min-width:0}
  .atable col{width:auto !important}
  thead{display:none}
  table,tbody,tr,td{display:block;width:100%}
  tbody tr{
    position:relative;background:var(--surface);border:1px solid var(--border);
    border-radius:12px;margin-bottom:12px;padding:10px 36px 10px 12px;box-shadow:var(--shadow);
  }
  tbody tr:hover td{background:transparent}
  td{border-bottom:none;padding:7px 0}
  /* 解决情况三胶囊：卡片内改为左对齐横排，节省纵向空间 */
  .stcell{flex-direction:row;justify-content:flex-start;flex-wrap:wrap;gap:8px}
  td::before{
    content:attr(data-label);display:block;
    font-size:11px;color:var(--muted);font-weight:700;margin-bottom:3px;
  }
  td input,td textarea{background:var(--surface-2);border:1px solid var(--border)}
  td.c-end{position:absolute;top:8px;right:8px;width:auto;padding:0;display:block}
  td.c-end::before{display:none}
  td.c-end .rdel{margin:0}
  td.c-seq{width:auto;text-align:left;padding:2px 0 0}
  td.c-seq::before{display:inline;margin-right:6px}
  td.c-cat{width:auto}

  /* 触控目标加大 */
  .mini{padding:6px 12px;font-size:13px}
  .del{width:32px;height:32px;font-size:18px}
  .vchip{padding:6px 10px;font-size:13px}
  .vchip span{white-space:normal}
  .vbtns{gap:8px}
  .btn{height:38px;padding:0 16px}
  .btn.small{height:34px}

  /* 顶栏图标化：文字按钮隐藏，头像 + 弹出菜单 */
  .me{margin-left:auto;gap:7px}
  #meName,#meAdmin,.me .btn[data-act="logout"]{display:none}
  #qBtn{width:32px;height:32px;padding:0;justify-content:center}
  #qBtn .btn-txt{display:none}
  #themeBtn{width:32px;height:32px;padding:0;justify-content:center}
  .m-ava{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#2B5CA8;color:#fff;font-size:13px;font-weight:500;border:none;flex-shrink:0}
  .m-menu{display:block;position:fixed;top:54px;right:10px;z-index:90;width:186px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:6px;box-shadow:var(--shadow-lg)}
  .m-menu[hidden]{display:none}
  .m-who{padding:8px 10px;border-bottom:1px solid var(--border);margin-bottom:4px}
  .m-who b{display:block;font-size:13.5px;font-weight:500;color:var(--text)}
  .m-who i{font-style:normal;font-size:11px;color:var(--muted)}
  .m-mi{padding:9px 10px;border-radius:8px;font-size:13.5px;color:var(--text);cursor:pointer}
  .m-mi:active{background:var(--surface-2)}
  .m-mi.red{color:var(--red)}
  .tabs .tfull{display:none}
  .tabs .tshort{display:inline}
  .tab{padding:8px 12px}

  /* 播放弹窗全屏化 */
  .modal{padding:0}
  .mbox{width:100%;height:100%;max-height:none;border-radius:0;display:flex;flex-direction:column}
  .mhead{position:sticky;top:0;background:var(--surface);z-index:2}
  #modalBody{flex:1;display:flex;flex-direction:column;justify-content:center}
  #modalBody video{max-height:60vh}
  .upbox{bottom:40px}
}

/* ---- 飞书扫码登录 ---- */
.fs-div { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; margin: 12px 0 8px; }
.fs-div::before, .fs-div::after { content: ''; flex: 1; height: 1px; background: rgba(128,128,128,.25); }

/* ---- 登录页改版：欢迎语式 + 图标输入框 ---- */
.li-wrap { position: relative; margin-bottom: 10px; }
.li-ico { position: absolute; left: 13px; top: 12px; pointer-events: none; }
.login-box .li-ipt {
  width: 100%; box-sizing: border-box; background: var(--surface); color: inherit;
  border: 0.5px solid var(--border-strong); border-radius: 10px;
  padding: 11px 14px 11px 38px; font-size: 14px; outline: none; margin: 0;
  transition: border-color .15s, box-shadow .15s;
}
.login-box .li-ipt:focus { border-color: var(--text); box-shadow: 0 0 0 3px rgba(0,0,0,.06); }
.login-box .li-ipt::placeholder { color: var(--muted); }
/* 飞书按钮：白底描边蓝字 */
.fs-btn { background: #fff; border: 0.5px solid var(--border-strong); color: #3370ff; font-weight: 500; }
.fs-btn:hover { background: var(--surface-2); }

/* ---- 全局搜索 ---- */
.q-box { width: 100%; box-sizing: border-box; height: 40px; border: 1px solid var(--border-strong); border-radius: 10px; padding: 0 14px; font: inherit; font-size: 16px; background: var(--surface); color: var(--text); outline: none; margin-bottom: 6px; }
.q-box:focus { border-color: var(--text); }
.q-group { font-size: 11.5px; color: var(--muted); font-weight: 700; margin: 12px 0 4px; }
.q-item { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 9px; cursor: pointer; }
.q-item:hover { background: var(--surface-2); }
.q-item .qt { flex: 1; min-width: 0; font-size: 13.5px; color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-item .qd { font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.q-item mark { background: var(--amber-b); color: var(--amber-t); padding: 0 1px; border-radius: 3px; }
.q-badge { font-size: 11px; padding: 2px 8px; border-radius: 5px; background: var(--accent-soft); color: var(--text-2); flex-shrink: 0; }
@keyframes qflash { 0%, 60% { box-shadow: 0 0 0 3px var(--amber-b); } 100% { box-shadow: none; } }
.q-flash { animation: qflash 1.6s ease; }
