/* ============================================================
   环球触达 CRM v2.0 · static/css/style.css
   三层组织（架构决策 2）：令牌层（mockup :root 原样搬入）
   → 组件层（mockup §6.2 组件清单逐一落类名）
   → 响应式层（桌面页 768px 降级单列；快录页移动优先 390px）
   纪律：颜色只允许引用变量；无渐变无阴影（唯一例外：抽屉）；
   圆角 ≤3px；行高 ≤1.4；列表行 ≤34px；左对齐一切。
   ============================================================ */

/* ---------- 1. 令牌层（UI-mockup-v2.html :root 原样） ---------- */
:root{
  --bg:#E9E8E3; --app:#FBFBFA; --panel:#FCFCFB;
  --hair:#E4E2DB; --hair2:#F0EEE8;
  --text:#1C1B18; --muted:#6E6C66; --faint:#9B9992;
  --red:#B03024; --red-bg:#F9EDEA;
  --amber:#96660E; --amber-bg:#F8F1DF;
  --green:#3F6C1E; --green-bg:#EEF3E7;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Courier New",monospace;
}

/* ---------- 2. 基础 ---------- */
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;
  background:var(--app);color:var(--text);font-size:13px;line-height:1.4;
  -webkit-font-smoothing:antialiased;padding-bottom:48px}
body.quick{background:var(--app)}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
a{color:var(--text);text-decoration:none}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
/* 字号阶梯 L1-L7（PRD §6.1） */
.t-L1{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:-.5px;line-height:1}
.t-L2{font-family:var(--mono);font-size:20px;font-weight:600;letter-spacing:-.3px}
.t-L3{font-size:15px;font-weight:700}
.t-L4{font-size:13px}
.t-L5{font-size:11px}
.t-L6{font-size:10px}
.c-red{color:var(--red)}.c-amber{color:var(--amber)}.c-green{color:var(--green)}
.c-muted{color:var(--muted)}.c-faint{color:var(--faint)}

/* ---------- 表单 ---------- */
input,select,textarea{font:13px/1.4 inherit;border:1px solid var(--hair);border-radius:3px;
  padding:5px 8px;width:100%;background:#fff;color:var(--text)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--muted)}
input[type=tel]{font-family:var(--mono)}
label{font-size:11px;color:var(--muted);display:block;margin:6px 0 2px}
.frow{display:flex;gap:6px;flex-wrap:wrap;align-items:flex-end}
.frow>*{flex:1;min-width:110px}
.frow .fix{flex:0 0 auto;min-width:0}
.err-t{color:var(--red);font-size:11px;margin-top:2px}

/* ---------- 按钮 ---------- */
.btn{border:1px solid var(--hair);background:var(--panel);padding:4px 10px;border-radius:3px;
  font-size:12px;white-space:nowrap;display:inline-block}
.btn.pri{background:var(--text);border-color:var(--text);color:#fff}
.btn.danger{background:var(--red);border-color:var(--red);color:#fff}
.btn.sm{padding:2px 7px;font-size:11px;border-radius:2px}
.btn:hover{border-color:var(--muted)}

/* ---------- 顶栏 / 页头 ---------- */
.topbar{display:flex;align-items:baseline;gap:18px;padding:9px 16px;border-bottom:1px solid var(--hair);
  background:var(--panel);position:sticky;top:0;z-index:9}
.topbar .brand{font-weight:700;font-size:13px;white-space:nowrap}
.topbar .brand span{font-family:var(--mono);font-size:11px;color:var(--faint);font-weight:400;margin-left:6px}
.topbar nav{display:flex;gap:14px;font-size:13px;color:var(--muted);overflow-x:auto}
.topbar nav a{white-space:nowrap}
.topbar nav .on{color:var(--text);font-weight:600;border-bottom:2px solid var(--text);padding-bottom:1px}
.topbar .user{margin-left:auto;font-size:11px;color:var(--faint);white-space:nowrap}
.pagehead{display:flex;align-items:baseline;gap:12px;padding:10px 16px 8px;flex-wrap:wrap}
.pagehead h1{font-size:15px;font-weight:600}
.pagehead .sub{font-size:11px;color:var(--faint)}
.pagehead .sp{flex:1}
.gsearch{font-size:12px;color:var(--muted);border:1px solid var(--hair);border-radius:3px;
  padding:3px 8px;background:var(--panel);width:200px}
.wrap{max-width:1180px;margin:0 auto}
.px{padding-left:16px;padding-right:16px}

/* ---------- 区头 .sec / 列表行 .lrow ---------- */
.sec{display:flex;align-items:baseline;gap:8px;padding:6px 14px;border-bottom:1px solid var(--hair);
  font-size:11px;color:var(--faint);font-weight:500;letter-spacing:.04em}
.sec b{color:var(--text);font-weight:600}
.sec .r{margin-left:auto;font-weight:400;color:var(--faint);letter-spacing:0}
.lrow{display:flex;gap:10px;padding:7px 14px;border-bottom:1px solid var(--hair2);
  align-items:baseline;min-height:31px;font-size:13px}
.lrow:last-child{border-bottom:none}
.lrow:hover{background:var(--panel)}
.lrow .mark{width:14px;flex:none;text-align:center;font-size:10px}
.lrow .mark.red{color:var(--red)}
.lrow .mark.amb{color:var(--amber)}
.lrow .mark.gry{color:var(--faint)}
.lrow .code{font-family:var(--mono);font-size:12px;color:var(--faint);flex:none}
.lrow .nm{font-weight:600;flex:none}
.lrow .nm a:hover{text-decoration:underline}
.lrow .tags{font-size:11px;color:var(--faint);flex:none}
.lrow .tags b{color:var(--red);font-weight:600}
.lrow .act{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.lrow .act b{color:var(--text);font-weight:500}
.lrow .rt{margin-left:auto;font-size:11px;color:var(--faint);white-space:nowrap;text-align:right;flex:none}
.lrow .rt .d{font-family:var(--mono)}
.lrow .rt b{font-weight:500}

/* ---------- 今日台：逾期通栏红条 ---------- */
.ovd{display:flex;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);background:#FDFBF9}
.ovd-l{width:128px;flex:none;background:var(--red-bg);border-right:1px solid var(--hair);padding:10px 14px}
.ovd-l .num{font-family:var(--mono);font-size:30px;font-weight:700;color:var(--red);line-height:1;letter-spacing:-.5px}
.ovd-l .lbl{font-size:11px;color:var(--red);font-weight:600;margin-top:4px}
.ovd-l .hint{font-size:10px;color:#C48A84;margin-top:2px}
.ovd-rows{flex:1;min-width:0}
.ovd-rows .lrow{padding-top:6px;padding-bottom:6px}

/* ---------- 紧凑统计条 ---------- */
.statline{display:flex;border-bottom:1px solid var(--hair);background:var(--panel);flex-wrap:wrap}
.stat{flex:1;display:flex;align-items:baseline;gap:8px;padding:8px 16px;border-right:1px solid var(--hair);min-width:150px}
.stat:last-child{border-right:none}
.stat .v{font-family:var(--mono);font-size:20px;font-weight:600;letter-spacing:-.3px}
.stat .v small{font-size:11px;color:var(--faint);font-weight:400}
.stat.warm .v{color:var(--amber)}
.stat.gap .v{color:var(--muted)}
.stat .l{font-size:11px;color:var(--muted)}
.stat .h{font-size:10px;color:var(--faint);margin-left:auto;text-align:right}

/* ---------- 主体双列 / 右栏 ---------- */
.main{display:grid;grid-template-columns:minmax(0,1fr) 264px}
.rail{border-left:1px solid var(--hair);background:var(--panel)}
.rail .blk{padding:8px 14px 10px;border-bottom:1px solid var(--hair2)}
.rail .blk:last-child{border-bottom:none}
.rail h3{font-size:11px;font-weight:600;margin-bottom:6px}
.rail h3 span{color:var(--faint);font-weight:400;margin-left:6px}
.dist{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--muted);margin-bottom:4px}
.dist .dn{width:96px;flex:none}
.dist .dbar{flex:1;height:5px;background:var(--hair2);border-radius:1px;overflow:hidden;align-self:center}
.dist .dbar i{display:block;height:100%;background:#8A8880}
.dist .v{font-family:var(--mono);width:24px;text-align:right;color:var(--text)}
.three{font-size:12px;color:var(--muted);line-height:1.8}
.three b{color:var(--text);font-weight:600}
.kv{font-size:11px;color:var(--muted);line-height:1.7}
.kv b{color:var(--text)}

/* ---------- 高亮提示线（黄=下一步/查重 红=缺口 绿=回执） ---------- */
.warnline{background:var(--amber-bg);border-left:2px solid var(--amber);padding:7px 12px;
  font-size:12.5px;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap}
.warnline .lbl{font-size:10px;font-weight:600;color:var(--amber);letter-spacing:.06em;flex:none}
.warnline .rt{margin-left:auto;font-size:11px;color:var(--amber);white-space:nowrap}
.warnline.over{background:var(--red-bg);border-left-color:var(--red)}
.warnline.over .lbl,.warnline.over .rt{color:var(--red)}
.warnline.okline{background:var(--green-bg);border-left-color:var(--green)}
.warnline.okline .lbl,.warnline.okline .rt{color:var(--green)}
/* flash 回执 */
.flashes{padding:6px 16px}
.flash{border-left:2px solid var(--hair);background:var(--panel);padding:6px 10px;font-size:12px;margin-bottom:4px}
.flash.ok{border-left-color:var(--green);background:var(--green-bg);color:var(--green)}
.flash.warn{border-left-color:var(--amber);background:var(--amber-bg);color:var(--amber)}
.flash.err{border-left-color:var(--red);background:var(--red-bg);color:var(--red)}
.flash .mono{font-weight:700}

/* ---------- 表格（无竖线 · 行高≤34px · 行 hover） ---------- */
.tblwrap{overflow-x:auto}
table.tbl{width:100%;border-collapse:collapse;font-size:12px}
.tbl th{font-size:11px;color:var(--faint);font-weight:500;text-align:left;
  padding:5px 10px;border-bottom:1px solid var(--hair);white-space:nowrap;letter-spacing:.04em}
.tbl td{padding:5px 10px;border-bottom:1px solid var(--hair2);vertical-align:top;line-height:1.4}
.tbl tr:hover td{background:var(--panel)}
.tbl .mono{font-size:11.5px}
.tbl .nm{font-weight:600}
/* 紧急度左色条列 */
td.barcol{width:4px;padding:0;border-bottom:1px solid var(--hair2)}
td.barcol i{display:block;width:3px;height:100%;min-height:24px}
.bar.red i{background:var(--red)}
.bar.amber i{background:var(--amber)}
.bar.gray i{background:var(--hair)}
.bar.green i{background:var(--green)}

/* 文字截断（长名撑不破行，title 放全文） */
.ell{display:inline-block;vertical-align:bottom;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ell.w160{max-width:160px}
.ell.w120{max-width:120px}

/* ---------- 文字标签（不做彩色胶囊，灰度+字重） ---------- */
.tag{font-size:10px;color:var(--faint)}
.tag b{color:var(--red);font-weight:600}
.tag .blue{color:#2E5E8C}

/* ---------- 卡片（非对称，hairline 分区，不用卡片栅格堆层级） ---------- */
.card{border-bottom:1px solid var(--hair);padding:8px 14px}
.card .ct{font-size:13px;font-weight:600;margin-bottom:4px}
.card .cb{font-size:12px;color:var(--muted)}

/* ---------- 详情页 ---------- */
.crumb{padding:8px 16px 0;font-family:var(--mono);font-size:11px;color:var(--faint);display:flex;gap:10px;align-items:baseline}
.crumb a:hover{text-decoration:underline}
.custhead{padding:4px 16px 10px;border-bottom:1px solid var(--hair)}
.custhead h2{font-size:15px;font-weight:700;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.custhead h2 .code{font-family:var(--mono);color:var(--faint);font-weight:400;font-size:13px}
.custhead .tags{font-size:11px;color:var(--muted);font-weight:400}
.custhead .tags b{color:var(--red);font-weight:600}
.custhead .hact{margin-left:auto;display:flex;gap:6px}
.custhead .meta{font-size:11px;color:var(--muted);margin-top:3px;display:flex;gap:14px;flex-wrap:wrap;font-weight:400}
.custhead .meta .m{font-family:var(--mono)}
.custhead .meta .intro b{color:var(--text);font-weight:500}
.dgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px}

/* 四闸门：一行四段刻度 */
.gates{display:flex;gap:0;border-bottom:1px solid var(--hair2);font-size:11px;flex-wrap:wrap}
.gate{flex:1;min-width:120px;padding:6px 12px;border-right:1px solid var(--hair2)}
.gate:last-child{border-right:none}
.gate .gn{color:var(--faint)}
.gate .gs{margin-top:2px;font-size:12px}
.gate .gs.ok{color:var(--green);font-weight:500}
.gate .gs.stuck{color:var(--red);font-weight:600}
.gate .gs.idle{color:var(--faint)}
.gate .gs .m{font-family:var(--mono)}
.gscale{display:flex;height:4px;gap:1px;margin:0 14px 8px}
.gscale i{flex:1;border-radius:1px;background:var(--hair2)}
.gscale i.done{background:var(--green)}
.gscale i.stuck{background:var(--red);opacity:.75}

/* 阶段条（分套 C0-C4 / R0-R4 / S0-S6） */
.stagebar{display:flex;gap:2px;padding:6px 14px 2px;align-items:center;font-size:10px;color:var(--faint)}
.stagebar i{width:26px;height:8px;border-radius:1px;background:var(--hair2);display:inline-block}
.stagebar i.cur{background:var(--text)}
.stagebar .cur-lbl{margin-left:8px;font-weight:600;color:var(--text);font-size:11px}

/* 五问：一行行内勾选 */
.fives{display:flex;align-items:baseline;gap:10px;padding:7px 14px;border-bottom:1px solid var(--hair2);
  font-size:12px;flex-wrap:wrap}
.fives .up{width:56px;font-size:10px;color:var(--faint);letter-spacing:.04em}
.fives .up b{color:var(--text)}
.fives .q{font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.fives .q b{color:var(--text);font-weight:500}
.fives .q.ok::before{content:"✓ ";color:var(--green);font-weight:700}
.fives .q.no::before{content:"○ ";color:var(--faint)}
.fives .ask{border:0;border-bottom:1px solid var(--hair);background:none;font-size:10px;color:var(--muted);padding:0 0 1px}
.fives .ask:hover{color:var(--amber);border-color:var(--amber)}
.fives .note{margin-left:auto;font-size:11px;color:var(--amber)}

/* 时间线（终端日志风） */
.log{font-family:var(--mono);font-size:11.5px}
.log .li{display:flex;gap:10px;padding:6px 14px;border-bottom:1px solid var(--hair2);align-items:baseline}
.log .li:last-child{border-bottom:none}
.log .li:hover{background:var(--panel)}
.log .ts{color:var(--faint);flex:none;width:88px}
.log .src{flex:none;width:44px;font-size:10px;text-align:center;border-radius:2px;background:var(--hair2);color:var(--muted)}
.log .src.q{background:#E0E8F0;color:#2E5E8C}
.log .txt{flex:1;color:var(--text);line-height:1.45;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif;min-width:0}
.log .txt .raw{color:var(--faint);display:block}
.log .ops{flex:none;display:flex;gap:4px}
.log .ops a,.log .ops button{font-size:10px;color:var(--faint);border-bottom:1px dotted var(--faint)}
.log .ops a:hover,.log .ops button:hover{color:var(--red)}
/* 记一条常驻输入行（≤3 步） */
.addlog{display:flex;gap:6px;padding:6px 14px;border-bottom:1px solid var(--hair2);align-items:center}
.addlog input[type=text]{flex:1}
.addlog details{flex:0 0 auto;font-size:11px;color:var(--faint);position:relative}
.addlog details summary{cursor:pointer;list-style:none;color:var(--faint)}
.addlog details[open] .dpanel{position:absolute;right:0;top:22px;background:#fff;border:1px solid var(--hair);
  border-radius:3px;padding:8px;width:220px;z-index:5;box-shadow:none}
.addlog details .dpanel label{margin:4px 0 2px}

/* 联系人行 + 一键复制 */
.crow{display:flex;gap:10px;padding:6px 14px;border-bottom:1px solid var(--hair2);font-size:12px;align-items:baseline;flex-wrap:wrap}
.crow:last-child{border-bottom:none}
.crow .cn{font-weight:600;flex:none}
.crow .cd2{font-size:11px;color:var(--muted);min-width:0}
.crow .cd2 .m{font-family:var(--mono)}
.crow .copy{flex:none;font-size:10px;border:1px solid var(--hair);border-radius:2px;padding:1px 6px;color:var(--muted)}
.crow .copy:hover{color:var(--text);border-color:var(--muted)}
.ckv{display:flex;align-items:baseline;gap:8px;font-size:11px;color:var(--muted);padding:4px 0}
.ckv .k{width:88px;flex:none}
.ckv .v{font-family:var(--mono);color:var(--red);font-weight:600}
.ckv .vt{flex:1}

/* ---------- 抽屉（全站唯一允许阴影处）---------- */
.drawer-toggle{display:none}
.drawer{position:fixed;inset:0;pointer-events:none;z-index:30}
.drawer .mask{position:absolute;inset:0;background:rgba(28,27,24,.28);opacity:0;transition:opacity .12s}
.drawer .panel{position:absolute;top:0;right:-680px;width:680px;max-width:92vw;height:100%;
  background:var(--app);border-left:1px solid var(--hair);overflow-y:auto;padding:14px 18px 24px;
  box-shadow:-12px 0 24px rgba(0,0,0,.10);transition:right .15s}
/* v2.1 修复：用 + 紧邻兄弟（:checked 开关只控制紧随其后的那个抽屉；
   原 ~ 通配会让一个抽屉打开时连带点亮其后所有抽屉并叠层，关闭失灵） */
.drawer-toggle:checked + .drawer{pointer-events:auto}
.drawer-toggle:checked + .drawer .mask{opacity:1}
.drawer-toggle:checked + .drawer .panel{right:0}
.drawer .panel h3{font-size:13px;font-weight:600;margin-bottom:8px}
.drawer .close{float:right;font-size:12px;color:var(--faint);border:1px solid var(--hair);border-radius:3px;padding:2px 8px}

/* ---------- 空态（写明下一步动作，禁止空白） ---------- */
.empty{color:var(--faint);padding:12px 14px;font-size:12px}

/* ---------- 市场板展会卡 ---------- */
.evgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:0;border-top:1px solid var(--hair)}
.evcard{border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);padding:10px 14px}
.evcard .nm{font-size:13px;font-weight:600}
.evcard .nm a:hover{text-decoration:underline}
.evcard .meta{font-size:11px;color:var(--muted);margin-top:2px}
.evcard .nums{font-size:11px;color:var(--muted);margin-top:4px}
.evcard .nums b{font-family:var(--mono);font-size:13px;color:var(--text)}
.evcard .cd{font-family:var(--mono);font-size:11px;float:right}
.evcard .cd.over{color:var(--red);font-weight:700}
.evcard .cd.ok{color:var(--green)}

/* ---------- 登录页 ---------- */
.loginbox{max-width:340px;margin:56px auto;border:1px solid var(--hair);background:var(--app);padding:20px}
.loginbox h1{font-size:15px;font-weight:700;margin-bottom:2px}
.loginbox .sub{font-size:11px;color:var(--faint);margin-bottom:14px}
.loginbox .brand-v{font-family:var(--mono);font-size:11px;color:var(--faint)}
.loginbox input{margin-bottom:8px}
.loginbox .btn{width:100%;padding:7px 0;text-align:center;margin-top:6px}
.loginbox .err{background:var(--red-bg);border-left:2px solid var(--red);color:var(--red);
  font-size:12px;padding:6px 10px;margin-bottom:8px}

/* ---------- 设置页 ---------- */
.setgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.mapline{display:flex;gap:8px;font-size:11px;color:var(--muted);padding:3px 0;border-bottom:1px solid var(--hair2)}
.mapline .m{font-family:var(--mono);width:64px;flex:none;color:var(--text)}

/* ============================================================
   移动快录页 /events/:id/quick —— 移动优先（390px 基准）
   ============================================================ */
.qwrap{max-width:520px;margin:0 auto;min-height:100vh;display:flex;flex-direction:column}
.p-head{padding:10px 14px 8px;border-bottom:1px solid var(--hair)}
.p-head .ev{font-size:15px;font-weight:600;display:flex;gap:8px;align-items:baseline}
.p-head .ev .st{font-size:10px;color:var(--green);font-weight:500}
.p-head .meta{font-size:11px;color:var(--muted);margin-top:2px}
.p-head .meta .m{font-family:var(--mono)}
.p-head .back{font-size:11px;color:var(--faint)}
.cd{display:flex;align-items:baseline;gap:10px;padding:6px 14px;border-bottom:1px solid var(--hair);background:var(--red-bg)}
.cd .t{font-family:var(--mono);font-size:13px;font-weight:700;color:var(--red)}
.cd .s{font-size:11px;color:var(--red)}
.cd .r{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--red)}
.p-list{flex:1;padding-bottom:150px}
.p-list .lt{display:flex;justify-content:space-between;padding:6px 14px 4px;font-size:10px;color:var(--faint);letter-spacing:.04em}
.lead{display:flex;gap:8px;padding:7px 14px;border-bottom:1px solid var(--hair2);align-items:baseline;min-height:30px}
.lead .g{font-family:var(--mono);font-weight:700;width:12px;flex:none;font-size:13px}
.lead .g.A{color:var(--red)}
.lead .g.B{color:var(--amber)}
.lead .g.C{color:var(--faint)}
.lead .bd{min-width:0;flex:1}
.lead .nm{font-size:13px;font-weight:600}
.lead .nm .tags{font-size:10.5px;color:var(--faint);font-weight:400;margin-left:4px}
.lead .ph{font-family:var(--mono);font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lead .t{margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--faint);flex:none}
.lead a{display:contents}
/* 底部 52px 大按钮 */
.quickbtn{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:520px;height:52px;
  background:var(--text);color:#fff;font-size:15px;font-weight:600;text-align:center;line-height:52px;
  border:none;border-radius:0;z-index:20}
.quickbtn:hover{opacity:.92}
/* 表单聚焦/展开时隐藏 fixed 大按钮，防 iOS 键盘遮挡 */
body.form-open .quickbtn{display:none}
/* 聊天式常驻录入条 */
.composer{position:fixed;left:0;right:0;bottom:0;max-width:520px;margin:0 auto;background:#F2F1EC;
  border-top:1px solid var(--hair);padding:8px 12px 20px;z-index:21;display:none}
body.form-open .composer{display:block}
.composer .cl{font-size:10px;color:var(--faint);margin-bottom:6px;display:flex;justify-content:space-between;gap:8px}
.composer .cl b{color:var(--text);font-weight:600;letter-spacing:.04em}
.composer input{margin-bottom:0}
.composer .frow{display:flex;gap:6px;margin-top:6px;align-items:center}
.composer .frow input{width:auto;flex:1;font-size:12px;padding:7px 8px}
.composer .frow select{width:auto;flex:none;font-size:11px;padding:7px 6px}
.composer .go{flex:none;background:var(--text);color:#fff;border-radius:3px;padding:8px 16px;
  font-size:13px;font-weight:600;border:none}
.composer .cancel{flex:none;font-size:11px;color:var(--faint);padding:6px 4px}

/* ---------- 响应式层 ---------- */
@media (max-width:900px){
  .main,.dgrid{grid-template-columns:1fr}
  .rail{border-left:none;border-top:1px solid var(--hair)}
  .setgrid{grid-template-columns:1fr}
}
@media (max-width:768px){
  .topbar{gap:10px;padding:8px 10px}
  .topbar .user{display:none}
  .pagehead{padding:8px 10px}
  .gsearch{width:130px}
  .px,.sec,.lrow,.card,.log .li,.fives,.crow{padding-left:10px;padding-right:10px}
  .ovd{flex-direction:column}
  .ovd-l{width:100%;border-right:none;border-bottom:1px solid var(--hair);display:flex;align-items:baseline;gap:10px}
  .ovd-l .num{font-size:22px}
  .stat{min-width:0;padding:6px 10px}
  .stat .h{display:none}
  .lrow .tags{display:none}
  .lrow{flex-wrap:wrap}
  .lrow .act{flex-basis:100%;white-space:normal}
  .custhead .hact{margin-left:0;flex-basis:100%}
  .evgrid{grid-template-columns:1fr}
  .drawer .panel{width:100vw;max-width:100vw}
}
