/* ============================================================
   古风视觉样式 · 汽车减震器行业永久工作台
   - 宣纸底纹、墨色、印章红、各模块古风色
   - 左侧模块栏 / 看板 / 联动预警 / 响应式（手机+PC）
   ============================================================ */
:root{
  --ink:#2b2118; --ink2:#5a4a32; --paper:#f3e9d2; --paper2:#ead9b8;
  --line:#c9b48a; --seal:#b23a2e; --gold:#9c6b1e;
  --shadow:0 4px 18px rgba(60,40,20,.18);
  --sidebar-w:286px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;}
body{
  font-family:"Noto Serif SC","Songti SC","STKaiti","KaiTi",serif;
  color:var(--ink);
  background:
    radial-gradient(circle at 20% 10%, #f7efda 0%, rgba(247,239,218,0) 40%),
    radial-gradient(circle at 80% 90%, #efe1c0 0%, rgba(239,225,192,0) 45%),
    repeating-linear-gradient(0deg, rgba(180,150,90,.04) 0 2px, transparent 2px 4px),
    var(--paper);
  font-size:15px; line-height:1.6;
}
button,input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink);}
a{color:inherit}
::-webkit-scrollbar{width:9px;height:9px}
::-webkit-scrollbar-thumb{background:#c0a878;border-radius:6px}

/* ===== 顶栏 ===== */
.topbar{
  display:flex;align-items:center;gap:14px;padding:10px 18px;
  background:linear-gradient(180deg,#3a2c1a,#2b2118);
  color:#f3e9d2;border-bottom:3px solid var(--seal);position:sticky;top:0;z-index:50;
  box-shadow:var(--shadow);
}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand .seal{
  width:42px;height:42px;border-radius:8px;background:var(--seal);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:20px;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.25);flex:none;
}
.brand h1{font-size:18px;margin:0;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand small{display:block;font-size:11px;color:#cbb892;letter-spacing:2px}
.topbar .spacer{flex:1}
.searchbox{position:relative}
.searchbox input{
  width:260px;max-width:40vw;padding:8px 12px 8px 34px;border-radius:20px;border:1px solid #6b5836;
  background:#f3e9d2;outline:none;
}
.searchbox:before{content:"🔍";position:absolute;left:11px;top:7px;font-size:14px;opacity:.6}
.topbar .btn{
  background:#5a4326;color:#f3e9d2;border:1px solid #7a5e36;padding:7px 13px;border-radius:18px;cursor:pointer;white-space:nowrap;
}
.topbar .btn:hover{background:#6e5331}
.userbox{display:flex;align-items:center;gap:7px;color:#e9dcbf;font-size:13px}
.userbox .ava{width:30px;height:30px;border-radius:50%;background:var(--gold);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
.hamburger{display:none;background:#5a4326;border:1px solid #7a5e36;color:#f3e9d2;font-size:20px;width:40px;height:38px;border-radius:8px;cursor:pointer}

/* ===== 布局 ===== */
.layout{display:flex;align-items:stretch;min-height:calc(100vh - 64px)}
.sidebar{
  width:var(--sidebar-w);flex:none;background:linear-gradient(180deg,#efe2c4,#e6d4ad);
  border-right:2px solid var(--line);overflow-y:auto;padding-bottom:40px;
}
.sidebar .grp{margin:6px 8px}
.side-mod{
  border:1px solid var(--line);border-radius:8px;margin-bottom:8px;overflow:hidden;background:#f6ecd5;
}
.mod-head{
  display:flex;align-items:center;gap:10px;padding:9px 11px;cursor:pointer;
  background:linear-gradient(180deg, rgba(255,255,255,.4), rgba(0,0,0,.03));
  border-left:6px solid var(--mc,#b23a2e);
}
.mod-head .glyph{
  width:30px;height:30px;border-radius:50%;background:var(--mc,#b23a2e);color:#fff;flex:none;
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.3);
}
.mod-head .t{font-size:13.5px;font-weight:700;line-height:1.25;flex:1}
.mod-head .cnt{font-size:11px;color:var(--ink2);background:#fff;border:1px solid var(--line);border-radius:10px;padding:1px 7px}
.mod-head .arrow{transition:transform .2s;font-size:12px;color:var(--ink2)}
.mod-head.open .arrow{transform:rotate(90deg)}
.mod-body{display:none;padding:4px 6px 8px 14px;border-top:1px dashed var(--line)}
.mod-body.open{display:block}
.sub-title{font-size:12px;color:var(--ink2);margin:6px 4px 3px;font-weight:700}
.tpl-item{
  display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:12.5px;border-radius:6px;cursor:pointer;color:var(--ink);
}
.tpl-item:hover{background:rgba(178,58,46,.12)}
.tpl-item.active{background:var(--mc,#b23a2e);color:#fff;font-weight:700}
.tpl-item .badge{margin-left:auto;font-size:10px;background:#fff;border:1px solid var(--line);border-radius:8px;padding:0 6px;color:var(--ink2)}
.tpl-item.active .badge{background:rgba(255,255,255,.25);color:#fff;border-color:rgba(255,255,255,.4)}
.tpl-item .pin{width:6px;height:6px;border-radius:50%;background:var(--mc,#b23a2e);flex:none}

/* ===== 主区 ===== */
.main{flex:1;min-width:0;padding:16px 20px 60px;overflow:auto}
.crumb{font-size:12px;color:var(--ink2);margin-bottom:4px}
.page-title{display:flex;align-items:center;gap:12px;margin:0 0 4px}
.page-title .tag{width:10px;height:26px;border-radius:3px;background:var(--mc,#b23a2e)}
.page-title h2{font-size:20px;margin:0;letter-spacing:.5px}
.page-title .scene{font-size:12px;color:var(--ink2)}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;padding:10px;background:rgba(255,255,255,.45);border:1px solid var(--line);border-radius:8px}
.toolbar .btn{
  border:1px solid var(--mc,#b23a2e);background:#fff;color:var(--mc,#b23a2e);
  padding:7px 13px;border-radius:18px;cursor:pointer;font-weight:600;display:inline-flex;align-items:center;gap:5px;
}
.toolbar .btn:hover{background:var(--mc,#b23a2e);color:#fff}
.toolbar .btn.solid{background:var(--mc,#b23a2e);color:#fff}
.toolbar .grow{flex:1}
.toolbar input,.toolbar select{padding:6px 10px;border:1px solid var(--line);border-radius:16px;background:#fff;outline:none}
.toolbar .filter-in{width:170px}

/* ===== 表格 ===== */
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fffdf6;max-height:70vh}
table.grid{width:100%;border-collapse:collapse;font-size:13px;min-width:640px}
table.grid thead th{
  position:sticky;top:0;background:linear-gradient(180deg,#e9d8b3,#dec89c);
  color:#3a2c1a;font-weight:700;text-align:left;padding:9px 10px;border-bottom:2px solid var(--line);white-space:nowrap;z-index:2;
}
table.grid tbody td{padding:7px 10px;border-bottom:1px solid #ecdfc0;vertical-align:top;max-width:220px;word-break:break-word}
table.grid tbody tr:nth-child(even){background:#faf3e2}
table.grid tbody tr:hover{background:#f3e6c8}
table.grid td.alert-red{background:#f6c9c2 !important;color:#8a1f15;font-weight:700}
table.grid td.alert-yel{background:#f7ecc0 !important;color:#8a6b12}
.idx{color:var(--ink2);font-size:11px}
.row-ops{white-space:nowrap}
.row-ops button{border:1px solid var(--line);background:#fff;border-radius:6px;padding:3px 8px;cursor:pointer;margin-right:4px;font-size:12px}
.row-ops button:hover{background:var(--mc,#b23a2e);color:#fff;border-color:var(--mc,#b23a2e)}

/* 状态药丸 */
.pill{display:inline-block;padding:1px 9px;border-radius:10px;font-size:11.5px;border:1px solid;font-weight:600}
.pill.red{background:#f6c9c2;color:#8a1f15;border-color:#d99}
.pill.yel{background:#f7ecc0;color:#8a6b12;border-color:#dcb}
.pill.grn{background:#d9ecd0;color:#2f6b2f;border-color:#bcd}
.pill.blu{background:#d6e2f0;color:#23527c;border-color:#bcd}
.pill.gry{background:#ece4d4;color:#6b5836;border-color:#cbb}

/* ===== 弹窗 ===== */
.modal-mask{position:fixed;inset:0;background:rgba(40,28,16,.55);z-index:100;display:none;align-items:flex-start;justify-content:center;padding:30px 12px;overflow:auto}
.modal-mask.open{display:flex}
.modal{background:var(--paper);border:2px solid var(--mc,#b23a2e);border-radius:12px;width:min(880px,96vw);box-shadow:var(--shadow);max-height:90vh;display:flex;flex-direction:column}
.modal .m-head{background:linear-gradient(180deg,#3a2c1a,#2b2118);color:#f3e9d2;padding:12px 18px;border-radius:10px 10px 0 0;display:flex;align-items:center;gap:10px}
.modal .m-head .t{font-size:16px;font-weight:700;flex:1}
.modal .m-head .x{cursor:pointer;font-size:22px;line-height:1}
.modal .m-body{padding:16px 18px;overflow:auto}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px}
.form-grid .full{grid-column:1 / -1}
.fld label{display:block;font-size:12px;color:var(--ink2);margin-bottom:3px;font-weight:600}
.fld input,.fld select,.fld textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:#fffdf6;outline:none}
.fld textarea{resize:vertical;min-height:54px}
.fld.req label:after{content:" *";color:var(--seal)}
.modal .m-foot{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;background:rgba(255,255,255,.4)}

/* 附件缩略 */
.att{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--ink2);border:1px solid var(--line);border-radius:6px;padding:2px 6px;margin:2px}
.att img{max-width:36px;max-height:36px;border-radius:4px}

/* 图片/照片画廊 */
.img-gallery{border:1px dashed var(--line);border-radius:8px;padding:10px;background:#fbf6ea;margin-top:4px}
.img-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.img-head b{font-size:13px;color:var(--ink)}
.img-grid{display:flex;flex-wrap:wrap;gap:8px}
.img-thumb{position:relative;width:120px;border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#fff}
.img-thumb img{display:block;width:100%;height:96px;object-fit:cover}
.img-thumb .img-name{display:block;font-size:10px;color:var(--ink2);padding:2px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.img-thumb .img-del{position:absolute;top:3px;right:3px;width:20px;height:20px;border:none;border-radius:50%;background:rgba(178,58,46,.9);color:#fff;cursor:pointer;font-size:13px;line-height:18px;padding:0}
.img-thumb .img-del:hover{background:#b23a2e}
.img-head [data-img-export]{background:var(--panel);border-color:var(--mc,#b23a2e);color:var(--mc,#b23a2e)}

/* ===== 看板/卡片 ===== */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:8px 0 18px}
.kpi{background:linear-gradient(180deg,#fffdf6,#f3e6c8);border:1px solid var(--line);border-left:5px solid var(--mc,#b23a2e);border-radius:9px;padding:12px 14px;box-shadow:var(--shadow)}
.kpi .v{font-size:26px;font-weight:800;color:var(--mc,#b23a2e)}
.kpi .l{font-size:12px;color:var(--ink2);margin-top:2px}
.kpi .s{font-size:11px;color:#a07b3a}
.panel{background:#fffdf6;border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:16px;box-shadow:var(--shadow)}
.panel h3{margin:0 0 10px;font-size:15px;border-left:4px solid var(--mc,#b23a2e);padding-left:9px}
.alert-list{display:grid;gap:8px}
.alert-item{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border-radius:8px;border:1px solid;font-size:13px}
.alert-item.red{background:#fbe3df;border-color:#e0a59c}
.alert-item.yel{background:#fbf3d4;border-color:#e4d49a}
.alert-item .dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex:none}
.alert-item.red .dot{background:#b23a2e}.alert-item.yel .dot{background:#c9a227}
.alert-item .meta{font-size:11px;color:var(--ink2)}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:980px){.dash-grid{grid-template-columns:1fr}}
.wb-chart{width:100%;height:auto;display:block}
.wb-stat{font-size:12px;color:var(--ink2);margin-top:6px}

/* 联动待办面板 */
.linkfeed{max-height:340px;overflow:auto}
.link-item{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;border-bottom:1px dashed var(--line);font-size:12.5px}
.link-item .lv{font-size:10px;border-radius:8px;padding:1px 6px;color:#fff;flex:none;margin-top:2px}
.lv.red{background:#b23a2e}.lv.yel{background:#c9a227}.lv.info{background:#2C4F8E}
.link-item.done{opacity:.5;text-decoration:line-through}
.link-item .do{margin-left:auto;font-size:11px;color:var(--seal);cursor:pointer;text-decoration:underline;flex:none}

/* 搜索结果 */
.search-res{display:grid;gap:6px;max-height:60vh;overflow:auto}
.sr-item{padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fffdf6;cursor:pointer;font-size:13px}
.sr-item:hover{border-color:var(--mc,#b23a2e);background:#f6ecd0}
.sr-item .tag{font-size:11px;color:#fff;background:var(--mc,#b23a2e);border-radius:6px;padding:0 7px;margin-right:6px}

/* 报表 */
.report{background:#fff;padding:24px;border:1px solid var(--line);border-radius:8px;max-width:900px;margin:0 auto;box-shadow:var(--shadow)}
.report h1{text-align:center;border-bottom:3px double var(--seal);padding-bottom:10px}
.report .sec{margin:16px 0}
.report table{width:100%;border-collapse:collapse;font-size:13px}
.report th,.report td{border:1px solid #c9b48a;padding:6px 8px;text-align:left}
.report th{background:#efe2c4}

/* 遮罩 loading */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#2b2118;color:#f3e9d2;padding:10px 18px;border-radius:20px;z-index:200;opacity:0;transition:opacity .3s;pointer-events:none}
#toast.show{opacity:1}

/* 响应式：手机端侧栏抽屉 */
@media(max-width:900px){
  .hamburger{display:block}
  .sidebar{position:fixed;left:0;top:64px;bottom:0;z-index:60;transform:translateX(-105%);transition:transform .25s;box-shadow:6px 0 24px rgba(0,0,0,.25)}
  .sidebar.open{transform:translateX(0)}
  .searchbox input{width:150px}
  .brand h1{font-size:15px;max-width:42vw}
  .form-grid{grid-template-columns:1fr}
  .topbar .btn .lbl{display:none}
  .scrim{position:fixed;inset:64px 0 0 0;background:rgba(0,0,0,.4);z-index:55;display:none}
  .scrim.open{display:block}
}
.print-only{display:none}
@media print{
  .topbar,.sidebar,.toolbar,.hamburger,.scrim,#toast{display:none !important}
  body{background:#fff}
  .report{box-shadow:none}
}

/* ===== 古风主题切换（每模块专属色保持不变，仅切换整体氛围） ===== */
/* 黛青：青绿水墨古风 */
body[data-theme="daiqing"]{
  --ink:#1f2b28;--ink2:#3c4b46;--paper:#e2e9e3;--paper2:#cfdcd4;
  --line:#9fb3a6;--seal:#2f6f63;--gold:#7a8c5a;
}
body[data-theme="daiqing"] .topbar{background:linear-gradient(180deg,#1f3a36,#162b28);border-bottom-color:var(--seal)}
body[data-theme="daiqing"] .searchbox input{background:#e2e9e3;border-color:#3c5a52}
body[data-theme="daiqing"] .topbar .btn{background:#2f4f49;border-color:#3c635a;color:#e2e9e3}
body[data-theme="daiqing"] .sidebar{background:linear-gradient(180deg,#d4ddd8,#c2d0c9);border-right-color:var(--line)}
body[data-theme="daiqing"] .side-mod{background:#e6ede9}

/* 朱砂：朱红宣纸古风 */
body[data-theme="zhusha"]{
  --ink:#3a1f18;--ink2:#6a3a2c;--paper:#f3e3da;--paper2:#e8cdbd;
  --line:#d7a98f;--seal:#c0392b;--gold:#a85a1e;
}
body[data-theme="zhusha"] .topbar{background:linear-gradient(180deg,#4a201a,#321410);border-bottom-color:var(--seal)}
body[data-theme="zhusha"] .searchbox input{background:#f3e3da;border-color:#7a4a36}
body[data-theme="zhusha"] .topbar .btn{background:#6a2a1e;border-color:#8a3a28;color:#f6e3da}
body[data-theme="zhusha"] .sidebar{background:linear-gradient(180deg,#e8cdbd,#dcb8a3);border-right-color:var(--line)}
body[data-theme="zhusha"] .side-mod{background:#f4ddd0}

/* 墨黑：夜阑古风（深底浅字） */
body[data-theme="mohei"]{
  --ink:#e9ddc7;--ink2:#bdae93;--paper:#23201b;--paper2:#2e2a23;
  --line:#5a4d38;--seal:#c64a37;--gold:#caa24a;
}
body[data-theme="mohei"] .topbar{background:linear-gradient(180deg,#15120e,#0c0a07);border-bottom-color:var(--seal)}
body[data-theme="mohei"] .searchbox input{background:#2e2a23;border-color:#5a4d38;color:#e9ddc7}
body[data-theme="mohei"] .topbar .btn{background:#3a3023;border-color:#5a4d38;color:#e9ddc7}
body[data-theme="mohei"] .sidebar{background:linear-gradient(180deg,#2a261f,#211d17);border-right-color:var(--line)}
body[data-theme="mohei"] .side-mod{background:#332e25}
body[data-theme="mohei"] .userbox{color:#e9ddc7}


/* 同步状态徽标（古风印章风） */
.sync-badge{display:inline-flex;align-items:center;font-size:12px;padding:4px 9px;border-radius:4px;border:1px solid;white-space:nowrap;font-family:"KaiTi","STKaiti",serif}
.sync-badge.local{color:#8a6d3b;background:#f5ecd8;border-color:#d9c79a}
.sync-badge.off{color:#a33;background:#fbe9e9;border-color:#e7b3b3}
.sync-badge.on{color:#fff;background:#7a9a5b;border-color:#5f7d42}

/* 分析工具统一输入面板 */
.an-input{background:var(--panel,#fffdf6);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:14px}
.an-input .an-row{display:flex;align-items:center;gap:10px;margin-top:10px;flex-wrap:wrap}
.an-input label{font-weight:700;color:var(--ink)}
.an-input .tip{color:var(--ink2);font-size:12px}
.an-input textarea{border:1px solid var(--line);border-radius:6px;padding:8px;background:#fffaf0;color:var(--ink);font-family:monospace;font-size:13px}
.an-input input[type="number"]{border:1px solid var(--line);border-radius:4px;padding:4px 6px;background:#fffaf0;color:var(--ink)}
.an-grid-tool{display:flex;gap:8px;align-items:center;margin:8px 0;flex-wrap:wrap}
.an-grid-box{overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fffdf6;max-height:360px}
.an-grid{width:100%;border-collapse:collapse;font-size:13px}
.an-grid thead th{position:sticky;top:0;background:linear-gradient(180deg,#e9d8b3,#dec89c);color:#3a2c1a;font-weight:700;padding:8px 10px;border-bottom:2px solid var(--line);white-space:nowrap;z-index:2}
.an-grid tbody td{padding:4px 6px;border-bottom:1px solid #ecdfc0;min-width:70px}
.an-grid tbody tr:nth-child(even){background:#faf3e2}
.an-grid tbody tr:hover{background:#f3e6c8}
.an-grid .idx{color:var(--ink2);font-size:11px;width:36px;text-align:center}
.an-cell{width:100%;border:1px solid transparent;background:transparent;padding:6px 8px;font-family:monospace;font-size:13px;color:var(--ink);outline:none}
.an-cell:focus{background:#fff;border-color:var(--mc,#b23a2e);border-radius:4px}
.d8-5m1e{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media(max-width:900px){.d8-5m1e{grid-template-columns:1fr}}

/* 审核资料清单 */
.al-group{display:grid;gap:6px}
.al-item{display:flex;align-items:flex-start;gap:8px;font-size:13px;padding:5px 8px;border-radius:6px;cursor:pointer}
.al-item:hover{background:#f3e6c8}
.al-item input[type="checkbox"]{margin-top:3px;flex:none}
.al-item span{line-height:1.5}

/* 岗位化 SOP/SIP 文档生成器 */
.docgen-wrap{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.docgen-form{background:#fffdf6;border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-shadow:var(--shadow);max-height:78vh;overflow:auto}
.docgen-form .form-grid{grid-template-columns:repeat(2,1fr);gap:10px 14px;margin-bottom:10px}
.docgen-form .fld{margin-bottom:10px}
.docgen-preview{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px 16px;box-shadow:var(--shadow);max-height:78vh;overflow:auto}
.docgen-preview h3{margin:0 0 10px;font-size:15px;border-left:4px solid var(--mc,#b23a2e);padding-left:9px}
.doc-page{font-size:13px;line-height:1.8;color:#222;background:#fff;padding:18px}
.doc-title{text-align:center;font-size:20px;font-weight:700;letter-spacing:2px;margin-bottom:14px;padding-bottom:8px;border-bottom:3px double var(--seal)}
.doc-meta{width:100%;border-collapse:collapse;margin-bottom:14px}
.doc-meta td{border:1px solid #b0a080;padding:6px 10px;background:#faf3e2}
.doc-sec{margin:12px 0}
.doc-sec b{font-size:14px;display:block;margin-bottom:5px;color:var(--ink);border-left:4px solid var(--mc,#b23a2e);padding-left:8px}
.doc-p{margin-left:12px;color:#333;white-space:pre-wrap}
.doc-foot{margin-top:24px;font-size:11px;color:#777;text-align:center;border-top:1px solid var(--line);padding-top:10px}
/* PPAP 18 项要素闭环清单 */
.ppap-tip{font-size:12px;color:var(--ink2);background:#f7eed6;border:1px solid #e3d2a6;border-radius:7px;padding:8px 10px;margin-bottom:8px}
.ppap-tbl{width:100%;border-collapse:collapse;font-size:12px;background:#fffdf6;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.ppap-tbl th,.ppap-tbl td{border:1px solid #ecdfc0;padding:6px 8px;text-align:left;vertical-align:top}
.ppap-tbl thead th{background:linear-gradient(180deg,#e9d8b3,#dec89c);color:#3a2c1a;font-weight:700;position:sticky;top:0}
.ppap-tbl select,.ppap-tbl input{font-size:12px;padding:4px 6px;border:1px solid #cdbaaa;border-radius:5px;width:100%;box-sizing:border-box}
.pp-name{font-weight:700;color:var(--ink)}
.pp-content{font-size:11px;color:var(--ink2);margin-top:2px;line-height:1.5}
.pp-dept{color:#7a5a20;font-size:11px;white-space:nowrap}
.ppap-bar{transition:width .3s}
@media(max-width:1100px){.docgen-wrap{grid-template-columns:1fr}}

/* 质量分析结果表格（Minitab 风格汇总） */
.qc-table{width:100%;border-collapse:collapse;font-size:13px;margin:10px 0;background:#fffdf6;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.qc-table th,.qc-table td{padding:7px 10px;border-bottom:1px solid #ecdfc0;text-align:left}
.qc-table thead th{background:linear-gradient(180deg,#e9d8b3,#dec89c);color:#3a2c1a;font-weight:700}
.qc-table tbody tr:nth-child(even){background:#faf3e2}
.qc-table tbody tr:hover{background:#f3e6c8}
.wb-stat.alert-red{background:#fbe3df;color:#8a1f15;padding:8px 12px;border-radius:6px;border:1px solid #e0a59c;margin-top:8px}
body[data-theme="mohei"] .qc-table{background:#2e2a23;color:#e9ddc7}
body[data-theme="mohei"] .qc-table tbody tr:nth-child(even){background:#332e25}
body[data-theme="mohei"] .qc-table tbody tr:hover{background:#3d382e}

/* 实验室 · 合格判定标准与示例图面板 */
.lab-ref{margin-top:14px;border:1px solid var(--line);border-radius:10px;background:#fdf8ec;padding:12px 14px}
.lab-ref-h{font-weight:700;color:#4A7A3C;font-size:14px;margin:10px 0 6px}
.lab-ref-h:first-child{margin-top:0}
.lab-ref-sub{font-weight:400;color:var(--ink2);font-size:12px}
.crit-box{background:#fff;border:1px solid #e6d9bd;border-radius:8px;padding:10px 12px;font-size:13px;line-height:1.8;color:#3a2c1a}
.crit-row{margin-bottom:4px}
.ex-box{background:#fff;border:1px dashed #cbb894;border-radius:8px;padding:8px;text-align:center}
.ex-box svg{max-width:100%;height:auto}
.ex-note{margin-top:10px;font-size:12px;color:#8a6d3b;background:#f7ecd2;border-left:3px solid #d4a94e;padding:8px 10px;border-radius:0 6px 6px 0;line-height:1.7}
body[data-theme="mohei"] .lab-ref{background:#2e2a23}
body[data-theme="mohei"] .crit-box,body[data-theme="mohei"] .ex-box{background:#26221c;color:#e9ddc7;border-color:#4a443a}

/* PPAP · 提交等级说明与部门分工矩阵 */
.ppap-levelinfo{margin:12px 0 4px;border:1px solid var(--line);border-radius:10px;background:#fdf8ec;padding:12px 14px;font-size:13px;line-height:1.8;color:#3a2c1a}
.lv-h{font-weight:700;color:#4A7A3C;font-size:14px;margin-bottom:6px}
.lv-row{margin-bottom:4px}
.lv-note{margin-top:8px;font-size:12px;color:#8a6d3b;background:#f7ecd2;border-left:3px solid #d4a94e;padding:8px 10px;border-radius:0 6px 6px 0}
.lv-badge{display:inline-block;font-size:11px;font-weight:400;padding:1px 8px;border-radius:10px;margin-left:6px;vertical-align:middle}
.lv-s{background:#e3f2e5;color:#2e7d32;border:1px solid #a5d6a7}
.lv-r{background:#eef2f6;color:#607d8b;border:1px solid #b0bec5}
.lv-x{background:#fdf0e0;color:#ef6c00;border:1px solid #ffcc80}
.ppap-dept-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin-top:6px}
.ppap-dept-tbl th,.ppap-dept-tbl td{border:1px solid #d9c9a3;padding:7px 9px;vertical-align:top;text-align:left;line-height:1.6}
.ppap-dept-tbl thead th{background:linear-gradient(180deg,#e9d8b3,#dec89c);color:#3a2c1a;font-weight:700}
.ppap-dept-tbl tbody tr:nth-child(even){background:#faf3e2}
body[data-theme="mohei"] .ppap-levelinfo{background:#2e2a23;color:#e9ddc7}
body[data-theme="mohei"] .ppap-dept-tbl th,body[data-theme="mohei"] .ppap-dept-tbl td{border-color:#4a443a}
body[data-theme="mohei"] .ppap-dept-tbl tbody tr:nth-child(even){background:#332e25}
