/* ============================================================================
 * 高企申报材料编制工作台 · 样式（20261017wb）
 * ----------------------------------------------------------------------------
 * 来源：prototype/gaoqi_workbench_v1.html（原型 1:1 迁移）
 * 口径：① 字号保持原型（正文 14 / 表格与表单 13 / 说明 12.5 / 角标 12），不套用系统字阶；
 *      ② 配色映射系统设计令牌（--gd-primary / --c-line / --c-text-*），与全站同色系；
 *      ③ 全部规则限定在 .gqwb 作用域内，避免 .btn/.tb/.card 等通用类名污染系统页面。
 * ========================================================================== */
.gqwb{
  --blue:var(--gd-primary,#2563c4); --blue-d:var(--gd-primary-press,#1b4b9a);
  --line:var(--c-line,#dae3f0); --bg:transparent; --ink:var(--c-text-1,#172033);
  --mut:var(--c-text-3,#556481); --ok:var(--gd-teal,#0d7a4d); --warn:var(--gd-warn,#8a5a00);
  --bad:var(--gd-danger,#b02a2a); --chip:var(--gd-primary-soft,#e8f0fc);
  font-family:var(--font-ui,"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",sans-serif);}
.gqwb, .gqwb *{box-sizing:border-box}
.gqwb{margin:0;background:var(--bg);color:var(--ink);font:14px/1.6 var(--font-ui,"Microsoft YaHei UI","Microsoft YaHei","PingFang SC",sans-serif);line-height:1.6}
.gqwb .wrap{max-width:1320px;margin:0 auto;padding:14px}
.gqwb .topbar{background:linear-gradient(135deg,#1d4fa1,#2f6bd8);color:#fff;border-radius:10px;padding:16px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.gqwb .topbar h1{font-size:19px;margin:0;font-weight:700}
.gqwb .topbar .sub{opacity:.85;font-size:12px}
.gqwb .topbar .sp{flex:1}
.gqwb .pill{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);color:#fff;border-radius:6px;padding:5px 12px;font-size:13px}
.gqwb .btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:6px;padding:6px 14px;cursor:pointer;font-size:13px}
.gqwb .btn.b{background:var(--blue);border-color:var(--blue);color:#fff}
.gqwb .btn.g{background:#16a34a;border-color:#16a34a;color:#fff}
.gqwb .btn.dis{opacity:.45;cursor:not-allowed}
.gqwb .btn:hover{filter:brightness(1.04)}
.gqwb .scope{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 14px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:12.5px}
.gqwb .scope b{color:var(--blue-d)}
.gqwb .chip{display:inline-flex;align-items:center;gap:4px;background:var(--chip);border:1px solid #d5e1f7;color:#33507e;border-radius:20px;padding:2px 10px;font-size:12px}
.gqwb .chip.auto::before{content:"⟳";color:var(--ok)}
.gqwb .chip.edit::before{content:"✎";color:var(--warn)}
.gqwb .chip.up::before{content:"⇪";color:var(--blue)}
.gqwb .tabs{margin-top:10px;background:#fff;border:1px solid var(--line);border-radius:10px 10px 0 0;padding:10px 12px 0;display:flex;flex-wrap:wrap;gap:6px}
.gqwb .tab{padding:6px 13px;border:1px solid var(--line);border-bottom:none;border-radius:7px 7px 0 0;background:#f7f9fd;cursor:pointer;font-size:13px;color:#3c4a5e;white-space:nowrap}
.gqwb .tab.on{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:600}
.gqwb .tab .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#cbd5e1;margin-right:5px;vertical-align:2px}
.gqwb .tab.has .dot{background:var(--ok)}
.gqwb .tab.on .dot{background:#fff}
.gqwb .tab.miss .dot{background:var(--bad)}
.gqwb .actions{margin-left:auto;display:flex;gap:8px;padding-bottom:8px}
.gqwb .card{background:#fff;border:1px solid var(--line);border-top:none;border-radius:0 0 10px 10px;padding:22px 26px;min-height:560px}
.gqwb h2.pt{text-align:center;font-size:19px;margin:8px 0 18px;letter-spacing:1px}
.gqwb .req{color:var(--bad)}
.gqwb .srctag{display:inline-block;font-size:11.5px;border-radius:4px;padding:1px 8px;margin-left:8px;vertical-align:2px}
.gqwb .srctag.auto{background:#e7f6f1;color:var(--ok);border:1px solid #bfe8dc}
.gqwb .srctag.edit{background:#fdf3e3;color:var(--warn);border:1px solid #f3dcae}
.gqwb .srctag.up{background:#e8f0fe;color:var(--blue);border:1px solid #c5d9fa}
.gqwb table.tb{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}
.gqwb .tb th{background:#eef3fa;border:1px solid #c9d6e8;padding:7px 8px;font-weight:600;text-align:center;color:#33507e}
.gqwb .tb td{border:1px solid #d6deea;padding:7px 8px;text-align:center;vertical-align:middle}
.gqwb .tb td.l{text-align:left}
.gqwb .tb tr.ex td{background:#f6f7f9;color:#9aa5b5;text-decoration:line-through}
.gqwb .tb .num{font-variant-numeric:tabular-nums}
.gqwb .grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 34px;margin:8px 0}
.gqwb .fld{display:flex;align-items:center;gap:10px}
.gqwb .fld>label{width:190px;text-align:right;color:#46536a;flex:none;font-size:13px}
.gqwb .fld .v{flex:1;border-bottom:1px dashed #c6cfdd;padding:4px 2px;min-height:22px}
.gqwb .fld input[type=text], .gqwb .fld select, .gqwb .fld textarea{flex:1;border:1px solid var(--line);border-radius:5px;padding:6px 9px;font-size:13px;font-family:inherit}
.gqwb .sect{font-weight:700;margin:20px 0 6px;padding-left:9px;border-left:4px solid var(--blue);font-size:14.5px}
.gqwb .note{font-size:12.5px;color:var(--mut);margin:6px 0}
.gqwb .note.warn{color:var(--warn)}
.gqwb .okico{color:var(--ok)}
.gqwb .badico{color:var(--bad)}
.gqwb .slot{border:1px solid var(--line);border-radius:8px;padding:12px 16px;margin:12px 0}
.gqwb .slot .hd{display:flex;align-items:center;gap:10px;font-weight:600}
.gqwb .slot .hd>.no:not(.st){background:var(--blue);color:#fff;border-radius:50%;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex:none}
.gqwb .slot .ds{font-size:12.5px;color:var(--mut);margin:6px 0 0 32px}
/* 20261020hratt：附件行分两行 —— 第 1 行「附件名 + 已上传文件名 + 操作」，第 2 行「说明：…」。
   红色只属于说明（不是附件名）；附件名加粗、上传文件名灰色、未上传时给「未上传」淡字。 */
.gqwb .slot .hd .attnm{font-weight:700;color:#2b3a52;flex:none}
.gqwb .slot .hd .attnone{font-weight:400;font-size:12.5px;color:var(--mut)}
.gqwb .slot .ahint{font-size:12.5px;color:var(--bad);line-height:1.6;margin:8px 0 0}
.gqwb .slot .ahint b{font-weight:600}
.gqwb .slot .ops{margin-left:auto;display:flex;gap:8px;align-items:center}
.gqwb .st{font-size:12px;border-radius:4px;padding:2px 9px;white-space:nowrap;flex:none}
.gqwb .st.ok{background:#e7f6f1;color:var(--ok)}
.gqwb .st.no{background:#fdeceb;color:var(--bad)}
.gqwb .attbox{margin-top:26px;padding-top:4px;border-top:2px solid var(--line)}
.gqwb .attbox .attline{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--mut)}
.gqwb .slot .sub{margin:8px 0 0 32px}
.gqwb .slot .sub .yr{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px dashed #e3e8f0}
.gqwb .slot .sub .yr .nm{width:210px;color:#46536a;font-size:13px}
.gqwb .slot .sub .yr .yr-ops{margin-left:auto;display:flex;gap:8px;align-items:center}
/* 20261018ui：字段禁用态（上市情况选「否」时后三项只读） */
.gqwb .fld input:disabled,.gqwb .fld select:disabled{background:#f5f7fa;color:#a8abb2;cursor:not-allowed}
/* 20261018holder：股权结构可编辑表格 */
.gqwb .hold-tb{margin-top:8px}
.gqwb .hold-tb th,.gqwb .hold-tb td{padding:5px 6px}
.gqwb .hold-tb input[type=text],.gqwb .hold-tb select{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:5px;padding:5px 8px;font-size:12.5px;font-family:inherit;background:#fff}
.gqwb .hold-tb input.num{text-align:right}
.gqwb .hold-sum{margin:8px 0 0;font-size:12.5px;color:var(--mut)}
.gqwb .slot .sub .yr input[type=text]{flex:1;border:1px solid var(--line);border-radius:5px;padding:4px 8px;font-size:12.5px;font-family:inherit;max-width:280px}
.gqwb .slot .prov{margin:8px 0 0 32px;font-size:12.5px;color:#46536a}
.gqwb .slot .fmt{margin:8px 0 0 32px;font-size:12.5px;color:var(--mut);background:#f7f9fd;border-left:3px solid var(--blue);padding:8px 12px;border-radius:0 6px 6px 0}
.gqwb .slot .fmt b{color:#46536a}
.gqwb .slot .off{background:#f4f5f8;color:var(--mut);border-style:dashed}
.gqwb .mask{position:fixed;inset:0;background:rgba(15,25,40,.45);display:none;align-items:center;justify-content:center;z-index:1500}
.gqwb .mask.on{display:flex}
.gqwb .dlg{background:#fff;border-radius:10px;width:760px;max-height:86vh;overflow:auto;padding:20px 24px}
.gqwb .dlg.wide{width:1180px;max-width:96vw;padding:20px 28px}
/* 20261021wide：研发活动情况表编辑子页再放宽一档（原 760px，标签 190px + 文本框后被压到很窄） */
.gqwb .dlg.xwide{width:1360px;max-width:97vw;padding:22px 30px}
/* 20261024psfull（用户裁定）：上年度高新技术产品（服务）情况表编辑子页放到**几乎满屏**；
 * 页脚「返回/删除/保存」吸底，滚到中段也能随手保存（该页点窗外不会关闭）。 */
.gqwb .dlg.full{width:97vw;max-width:97vw;height:92vh;max-height:92vh;padding:18px 26px}
.gqwb .dlg.full .ft{position:sticky;bottom:0;background:#fff;padding:10px 0 2px;margin-top:12px;border-top:1px solid var(--line);z-index:3}
/* 20261024psfull：AI 面板三段 400 字并排成一行；操作行吸底（回填按钮不再被长文顶到屏幕外）。 */
.gqwb .aicols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}
.gqwb .aicols .fld{margin-top:0}
.gqwb .aibox .aicmd{position:sticky;bottom:0;background:#f7fbff;display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;padding:8px 0 2px;z-index:2}
.gqwb .dlg h3{margin:0 0 12px;font-size:16px}
.gqwb .dlg .ft{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}
.gqwb .psmat{width:100%;border-collapse:collapse;margin:8px 0 4px;font-size:13px}
.gqwb .psmat th{background:#eef3fa;border:1px solid #c9d6e8;padding:7px 8px;color:#33507e;font-weight:600}
.gqwb .psmat td{border:1px solid #d6deea;padding:7px 8px;vertical-align:middle}
.gqwb .psmat td.nm{text-align:left}
.gqwb .psmat td.op{white-space:normal;text-align:center}
.gqwb .psmat tr.ai td{background:#f7fbff}
.gqwb .psmat .tag{display:inline-block;font-size:11px;border-radius:4px;padding:1px 6px;margin-left:6px}
.gqwb .psmat .tag.ai{background:#eaf2ff;color:#2456b3;border:1px solid #c8daf8}
.gqwb .psmat .tag.auto{background:#e7f6f1;color:#0f8f6e;border:1px solid #bfe8dc}
/* 20261024psfile：证明材料已上传时**直接显示文件**（点文件名＝查看/下载），
 * 鼠标移到文件名上才出现 ✕ 删除（隐藏态 pointer-events:none，防误触空白处）。
 * 四个按钮（下载/查看/替换/删除）已按用户裁定取消，替换＝先删再传。
 * 20261024nosave：这套写法**推广为全站统一** `.gqfile`（原 `.psfile` 仅 PS 行可用）——
 *   上传附件页各槽位 / 分件行 / 多件清单 / AI 编制稿附件行 / 查看弹层 一律同款。 */
.gqwb .gqfile{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-width:0;vertical-align:middle}
.gqwb .gqfile>a{display:inline-block;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1a63d8;text-decoration:none}
.gqwb .gqfile>a:hover{text-decoration:underline}
.gqwb .gqfile>.sz{font-style:normal;font-size:12px;color:var(--mut);white-space:nowrap}
.gqwb .gqfile>.del{opacity:0;pointer-events:none;transition:opacity .12s;cursor:pointer;color:#d33;font-size:13px;font-weight:400;line-height:1;padding:0 2px}
.gqwb .gqfile:hover>.del,.gqwb .gqfile:focus-within>.del{opacity:1;pointer-events:auto}
.gqwb .gqfile>.del:hover{font-weight:700}
.gqwb .aibox{border:1px solid #c8daf8;background:#f7fbff;border-radius:8px;padding:12px 14px;margin:8px 0 2px}
.gqwb .aibox .hd{display:flex;align-items:center;gap:10px;font-weight:700;color:#2456b3}
/* 20261021aifld：AI 面板内字段改为「标签在文本框上方」。
 * 根因：.gqwb .fld 是横向 flex（label 定宽 190px 右对齐，textarea flex:1），
 * 面板里字段也带 .fld ⇒ 标签挤在左侧、文本框被压窄（三/四段面板尤其明显）。 */
.gqwb .aibox .fld{display:block}
.gqwb .aibox .fld>label{display:block;width:auto;text-align:left;padding:0;margin:0 0 4px;font-size:12.5px;color:#46536a;line-height:1.5}
.gqwb .aibox .fld>textarea{display:block;width:100%;flex:none;box-sizing:border-box}
.gqwb .aibox .tpl{font-size:12.5px;color:#46536a;background:#fff;border:1px dashed #c8daf8;border-radius:6px;padding:10px 12px;margin:8px 0}
.gqwb .aibox .tpl ol{margin:6px 0 0 18px;padding:0}
.gqwb .aibox .tpl li{margin:2px 0}
/* 20261024aisec：AI 编制区块（一个标题 + 一行工具 + 可折叠编辑器 + 附件行）
 * 目的：同一份说明稿的名称只出现一次，附件不再是独立段落，编制依据默认收起。 */
.gqwb .aisec{border:1px solid var(--line);border-radius:8px;background:#fff;margin:16px 0 4px;overflow:hidden}
.gqwb .aisec-hd{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#f7f9fd;border-bottom:1px solid var(--line)}
.gqwb .aisec-hd .t{font-weight:700;color:#1f2937;font-size:14px}
.gqwb .aisec-hd .ops{margin-left:auto;display:flex;gap:8px}
.gqwb .aisec .aibox{border:none;border-radius:0;background:#fff;margin:0;padding:12px 14px;border-bottom:1px solid var(--line)}
.gqwb .aisec .aibox .aitip{margin:0 0 8px;font-size:12.5px;color:#46536a;line-height:1.6}
.gqwb .aisec .aibox .aitip>summary{cursor:pointer;color:#2456b3;outline:none}
.gqwb .aisec .aibox .aitip>div{margin-top:4px;padding:8px 10px;background:#f7fbff;border:1px dashed #c8daf8;border-radius:6px}
/* 20261024hrsec：一个区块一行附件，行首短标签定宽对齐；
 * 20261024hrsec-3：没有 AI 编制的材料也用它（`.attonly`），标题是该材料的正式名称（可长达整句）。 */
.gqwb .aisec-att{display:grid;grid-template-columns:64px minmax(0,1fr) auto;column-gap:10px;align-items:center;padding:9px 14px;font-size:13px;color:#46536a}
.gqwb .aisec-att + .aisec-att{border-top:1px solid #eef1f6}
.gqwb .aisec-att .k{grid-column:1;grid-row:1;color:var(--mut);white-space:nowrap}
.gqwb .aisec-att .fn{grid-column:2;grid-row:1;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gqwb .aisec-att .fn i{color:var(--mut);font-style:normal}
/* 20261024nosave：AI 编制稿 / 页内附件位那一列现在放的是 .gqfile（原 .fn 文本） */
.gqwb .aisec-att .gqfile{grid-column:2;grid-row:1}
.gqwb .aisec-att .none{grid-column:2;grid-row:1;color:var(--mut)}
.gqwb .aisec-att .ops{grid-column:3;grid-row:1;justify-self:end;display:flex;gap:14px;white-space:nowrap}
.gqwb .aisec.attonly .aisec-hd{align-items:flex-start}
.gqwb .aisec.attonly .aisec-hd .t{flex:1;line-height:1.6;padding-right:10px}
.gqwb .aisec.attonly .aisec-hd .st{flex:none;margin-top:2px}
/* 20261024aisec：创新能力四段——官方填报框下方的字数/自动保存提示行 */
.gqwb .innovbar{display:flex;gap:16px;align-items:center;margin:6px 0 2px;font-size:12.5px;color:var(--mut)}
.gqwb .innovbar b{color:#1f2937}
/* 20261021roster：花名册折叠条 */
.gqwb .rosterbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 8px;font-size:12.5px;color:#46536a}
.gqwb .lvpick{display:flex;gap:8px;flex:1;align-items:center}
.gqwb .lvpick input{flex:1;border:1px solid var(--line);border-radius:6px;height:32px;padding:0 10px;background:#fff;font:13px/1.6 inherit;color:#1f2937;cursor:pointer;text-overflow:ellipsis}
.gqwb .lvpick input:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(47,111,237,.12)}
.gqwb .divider{height:1px;background:var(--line);margin:18px 0}
.gqwb .kbd{background:#f1f4f9;border:1px solid #d5dce8;border-radius:4px;padding:0 6px;font-size:12px}
.gqwb textarea.ta{width:100%;border:1px solid var(--line);border-radius:6px;padding:10px;font:13px/1.7 inherit;min-height:120px;resize:vertical}
.gqwb .subtabs{display:flex;gap:6px;margin:4px 0 14px}
.gqwb .subtab{padding:5px 14px;border:1px solid var(--line);border-radius:6px;background:#f7f9fd;cursor:pointer;font-size:13px}
.gqwb .subtab.on{background:var(--blue);color:#fff;border-color:var(--blue)}
.gqwb .footbar{display:flex;gap:10px;justify-content:center;margin-top:24px}

/* 20261024datacheck：数据校验页签 —— 七源比对表（列多 ⇒ 横向滚动；差异行整行标红） */
.gqwb .dcsum{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 10px;
  background:#f7f9fd;border:1px solid var(--line);border-radius:8px;padding:9px 14px;font-size:12.5px}
.gqwb .dcsum .chip b{color:#1f2937;font-weight:700}
.gqwb .dcsum .chip.badico{color:var(--bad);border-color:#f3c9c9;background:#fdeceb}
.gqwb .dcmiss{border:1px solid #f3c9c9;background:#fdf3f3;border-radius:8px;padding:10px 14px;margin:10px 0}
.gqwb .dcmiss>b{color:var(--bad);font-size:13px}
.gqwb .dcmiss-tb{margin-top:8px;background:#fff}
.gqwb .dcmiss-tb td{font-size:12.5px;color:#46536a}
/* ★ 20261026dcstick2：表头吸顶，**表格不限高**（用户明确：冻结第一行可以，但不能限制显示窗口高度）。
 *   为什么不用 th{position:sticky}：容器 overflow-x:auto 已经是 scrollport，
 *   sticky 只相对它生效；表格不限高 ⇒ 容器永不纵向滚动 ⇒ 表头跟着页面一起滚走（写了等于没写）。
 *   改为「fixed 表头副本」：页面滚过表头时把副本吸在内容区顶部，列宽与横向偏移与实际表头实时同步。
 *   副本由 workbench.js 的 dcStickOn() 生成/更新，.gqwb 类名保证沿用表头配色与字号。 */
.gqwb .dctb-wrap{overflow-x:auto;margin-top:6px;border:1px solid var(--line);border-radius:8px}
.gqwb.dctb-fixhead{position:fixed;z-index:20;display:none;overflow:hidden;background:#eef3fa;
  border-bottom:1px solid #c9d6e8;box-shadow:0 3px 8px rgba(16,42,80,.12)}
.gqwb.dctb-fixhead table.tb{margin:0;table-layout:fixed}
/* 列宽口径：10 列 + 长中文表头 ⇒ 表头允许换行，正文不换行；总宽压到 1280
 *   以内，1440/1600 视口下一屏能看全（更窄的屏幕走 .dctb-wrap 横向滚动）。 */
.gqwb table.dctb{margin:0;min-width:1280px;white-space:nowrap}
.gqwb .dctb th{white-space:normal;line-height:1.35;vertical-align:middle}
.gqwb .dctb th:first-child,.gqwb .dctb td:first-child{text-align:left;white-space:normal;min-width:170px}
.gqwb .dctb td.num{text-align:right;font-variant-numeric:tabular-nums}
.gqwb .dctb td.dcnone{color:#c3cad6}
.gqwb .dctb td.dccl{white-space:normal;min-width:240px;font-size:12.5px;line-height:1.5}
.gqwb .dctb tr.dccat td{background:#eef3fa;color:#33507e;font-weight:700;text-align:left}
.gqwb .dctb tr.dcwarn td{background:#fdeceb}
.gqwb .dctb tr.dcwarn td.dccl{color:var(--bad);font-weight:600}
/* 20261027dcw（用户截图红框）：两列过宽挤占比对区，按比例收窄
 *   · 数据指标名称            实测 170px → 目标 -30% ≈ 119px，取 120
 *   · 高新技术企业优惠情况及明细表 实测 238px → 目标 -50% ≈ 119px，取 120
 *   ★ 特异性要压过上面 `td:first-child{min-width:170px}`（后者 2 类 2 元素，本组 3 类 1 元素）。
 *   ★ 只设 width/min/max，不改 table-layout：auto 布局会把省下的 170px 让给结论列，且总宽缩到 1120
 *     ⇒ 1440 视口下不再横向滚动（原先 min-width:1280 撑出滚动条）。 */
.gqwb .dctb th.dcm,.gqwb .dctb td.dcm{width:120px;min-width:120px;max-width:120px}
.gqwb .dctb th.dca41,.gqwb .dctb td.dca41{width:120px;min-width:120px;max-width:120px;white-space:normal}
.gqwb .dci{font-style:normal;color:var(--blue);cursor:help;margin-left:4px;font-size:12px}
/* 20261024assess：工作台内嵌「高企测评」入口卡 */
.gqwb .asentry{border:1px solid var(--line);border-radius:8px;padding:16px 18px;margin:12px 0;background:#f7f9fd}

/* 20261024autosave：右下角自动保存状态条（不 alert、不打断输入）
   宿主可能是 .gqwb 根节点，也可能是 document.body ⇒ 不套 .gqwb 作用域 */
.astoast{position:fixed;right:22px;bottom:22px;z-index:9999;max-width:440px;
  padding:9px 14px;border-radius:8px;font-size:12.5px;line-height:1.55;white-space:pre-wrap;
  background:#0f766e;color:#fff;box-shadow:0 8px 24px rgba(16,42,80,.22);
  opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease}
.astoast.on{opacity:1;transform:translateY(0)}
.astoast.bad{background:#b02a2a}
/* 20261026astip：橙色＝「必填还没填完」（正常填表过程），红色只留给真失败 */
.astoast.warn{background:#8a5a00}
/* 20261026astip：点击页脚回执「定位」时，缺失那格短暂高亮（长表单里靠肉眼找不现实） */
.gqwb .as-miss{box-shadow:0 0 0 2px rgba(176,42,42,.5);border-radius:4px}
