/* ============================================================================
 * 晏庭安全工作台 · 全站 UI 固化组件库 v1（yt-uikit.css）
 * ----------------------------------------------------------------------------
 * 【死命令落地】颜色、字号、间距、布局规则全部写死；全站页面/工作台/工具/
 * 弹窗统一引用本文件，禁止页面单独自定义同域样式。
 * 覆盖范围：标准表单控件 / 按钮 / 表格 / 板块标题 / 提示文字 / 弹窗 / 导出聚合面板。
 * 豁免范围：chip 标签输入、分段控件 .seg、色板、range 滑块、画布类组件、
 *          表格语义色单元格（保留内联/语义类优先级）、导航与磁贴。
 * ========================================================================== */

/* ================= 一、页面全局基础 ================= */
/* 【全局美化任务书V1.0】三档层次：L1 页面底 #E6F1FB / L2 容器面 #FFFFFF / L3 弱底 #F7FAFD */
body {
  font-family: "Microsoft YaHei", -apple-system, BlinkMacSystemFont, sans-serif !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  color: #333333 !important;
  background: var(--yt-l1, #E6F1FB) !important;
}
/* 内容容器：最大 1400px 水平居中，左右 16px 不贴边 */
.yt-container { max-width: 1400px !important; margin-left: auto !important; margin-right: auto !important; padding-left: 16px !important; padding-right: 16px !important; background: #FFFFFF !important; }
/* 板块间距 */
.yt-section { margin-bottom: 20px !important; }

/* ================= 二、板块标题栏 ================= */
.yt-sec-title {
  background: #F0F6FF !important;
  color: #1F4E96 !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  padding: 8px 12px !important;
  border-bottom: 1px solid #D8E4F7 !important;
  margin-bottom: 12px !important;
  border-radius: 0 !important;
  line-height: 1.5 !important;
}

/* ================= 三、字段标签 ================= */
label { font-size: 14px !important; color: #333333 !important; }
.fld label, .yt-field label { font-size: 14px !important; color: #333333 !important; white-space: nowrap !important; }
/* 标签与输入框间距 8px（flex 容器 gap） */
.fld, .yt-field { gap: 8px !important; }
/* 必填星号：给 label 加 .yt-req */
.yt-req::after { content: ' *' !important; color: #F53F3F !important; font-weight: 700 !important; }

/* ================= 四、输入控件三态（页面+弹窗通用） ================= */
input[type=text], input[type=number], input[type=date], input[type=email], input[type=tel],
input[type=password], input[type=search], input[type=url], input:not([type]),
select, textarea {
  background: #FFFFFF !important;
  border: 1px solid #DCDFE6 !important;
  border-radius: 4px !important;   /* 4px 小圆角，禁止 8px 及以上 */
  font-size: 14px !important;
  color: #333333 !important;
  padding: 6px 10px !important;
  font-family: inherit !important;
  transition: border-color .12s, box-shadow .12s !important;
}
input[type=text]:hover, input[type=number]:hover, input[type=date]:hover, input[type=email]:hover,
input[type=tel]:hover, input[type=password]:hover, input[type=search]:hover, input[type=url]:hover,
input:not([type]):hover, select:hover, textarea:hover {
  border-color: #71A0E8 !important;
}
input[type=text]:focus, input[type=number]:focus, input[type=date]:focus, input[type=email]:focus,
input[type=tel]:focus, input[type=password]:focus, input[type=search]:focus, input[type=url]:focus,
input:not([type]):focus, select:focus, textarea:focus {
  outline: none !important;
  border-color: #3474D9 !important;
  box-shadow: 0 0 0 2px rgba(52,116,217,0.2) !important;  /* 淡蓝色光晕 */
}
/* 只读/禁用：浅灰底，一眼区分可编辑/只读；禁止渲染白色可输入框 */
input[readonly], textarea[readonly], select[disabled], select[readonly],
input[disabled], textarea[disabled] {
  background: #F5F7FA !important;
  border-color: #E4E7ED !important;
  color: #909399 !important;
  cursor: not-allowed !important;
  box-shadow: none !important;
}
/* chip/标签输入等微型输入豁免（保持既有紧凑形态，仅统一边框圆角） */
.tagadd input { width: 130px !important; height: 26px !important; padding: 2px 8px !important; border-radius: 4px !important; }

/* ================= 五、提示说明文字三色 ================= */
.yt-tip      { font-size: 12px !important; color: #86909C !important; }   /* 普通备注 */
.yt-tip-warn { font-size: 12px !important; color: #FF7D00 !important; }   /* 警告提示 */
.yt-tip-err  { font-size: 12px !important; color: #F53F3F !important; }   /* 校验错误 */

/* ================= 六、表格组件 ================= */
table th {
  background: #F0F6FF !important;
  color: #1F4E96 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  border: 1px solid #E4E7ED !important;
  padding: 8px 10px !important;
}
table td {
  border: 1px solid #E4E7ED !important;
  color: #333333 !important;
  font-size: 14px !important;
}
/* 行 hover：不带 !important，语义色单元格（内联样式/特异类）优先保留 */
table tbody tr:hover > td { background: #F7F8FA; }
/* 只读单元格工具类 */
td.yt-ro, .yt-ro { background: #F5F7FA !important; color: #909399 !important; }

/* ================= 七、按钮组件 ================= */
.btn, button.btn {
  height: 32px !important;
  min-width: 88px !important;
  padding: 0 14px !important;
  border-radius: 4px !important;
  font-size: 14px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap !important;
  transition: background .12s, border-color .12s, color .12s !important;
  border: 1px solid transparent !important;
  font-family: inherit !important;
}
/* 主按钮（确认/正式保存/一键生成/上传） */
.btn.primary, .btn.p, .btn.main-ok, button.btn.primary {
  background: #3474D9 !important;
  color: #FFFFFF !important;
  border-color: #3474D9 !important;
  font-weight: 500 !important;
}
.btn.primary:hover, .btn.p:hover, .btn.main-ok:hover { background: #2964BD !important; border-color: #2964BD !important; color: #FFFFFF !important; }
/* 次要按钮（保存草稿/取消/返回/导出聚合） */
.btn.ghost, .btn.g, .btn:not(.primary):not(.p):not(.danger):not(.main-ok) {
  background: #FFFFFF !important;
  border-color: #DCDFE6 !important;
  color: #333333 !important;
}
.btn.ghost:hover, .btn.g:hover, .btn:not(.primary):not(.p):not(.danger):not(.main-ok):hover { background: #F5F7FA !important; color: #333333 !important; border-color: #DCDFE6 !important; }
/* 危险按钮（删除/清空） */
.btn.danger, .btn.g.danger, .btn.cfirm {
  background: #F53F3F !important;
  color: #FFFFFF !important;
  border-color: #F53F3F !important;
}
.btn.danger:hover, .btn.g.danger:hover { background: #D83636 !important; border-color: #D83636 !important; }
/* 禁用 */
.btn:disabled, .btn[disabled], button.btn:disabled {
  background: #C9D8F0 !important;
  color: #FFFFFF !important;
  border-color: #C9D8F0 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
}
/* 子表格行内小按钮（新增行/编辑/删除）：28px */
.btn.sm, .btn.sm:not(.primary):not(.p) { height: 28px !important; min-width: 0 !important; padding: 0 10px !important; font-size: 13px !important; }
/* 表格区域内【新增条目】按钮不混入底部按钮组（尺寸走 .sm 规范） */

/* —— 按钮布局死规则：底部按钮组单独一行靠右 —— */
.btnrow2, .btn-row, .modal-foot, .dlg-foot {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 12px !important;
}
.btnrow2 .btn { flex: 0 0 auto !important; }
/* 分段控件（特例豁免）：不套 88px 最小宽 */
.seg .btn { min-width: 0 !important; height: 28px !important; padding: 0 10px !important; border-radius: 0 !important; }
/* —— 页级按钮类族谱统一（各工具页既有类名 → 同套三态，禁止再自定义） —— */
.xczf-btn, .edu-btn, .sop-btn, .emgc-btn, .edu-btn.sm, .sop-btn.sm {
  height: 32px !important; min-width: 88px !important; padding: 0 14px !important;
  border-radius: 4px !important; font-size: 14px !important;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  gap: 6px !important; white-space: nowrap !important; border: 1px solid transparent !important; cursor: pointer;
}
.xczf-btn.p, .edu-btn.primary, .sop-btn.p, .emgc-btn.p { background: #3474D9 !important; color: #FFFFFF !important; border-color: #3474D9 !important; }
.xczf-btn.p:hover, .edu-btn.primary:hover, .sop-btn.p:hover, .emgc-btn.p:hover { background: #2964BD !important; border-color: #2964BD !important; }
.xczf-btn.g, .edu-btn.ghost, .sop-btn.g, .emgc-btn.g, .xczf-btn:not(.p):not(.g), .edu-btn:not(.primary):not(.ghost) {
  background: #FFFFFF !important; border-color: #DCDFE6 !important; color: #333333 !important;
}
.xczf-btn.g:hover, .edu-btn.ghost:hover, .sop-btn.g:hover, .emgc-btn.g:hover { background: #F5F7FA !important; }
.xczf-btn:disabled, .edu-btn:disabled, .sop-btn:disabled, .emgc-btn:disabled {
  background: #C9D8F0 !important; color: #FFFFFF !important; border-color: #C9D8F0 !important; cursor: not-allowed !important;
}
.xczf-btn.sm, .edu-btn.sm, .sop-btn.sm, .emgc-btn.sm { height: 28px !important; min-width: 0 !important; padding: 0 10px !important; font-size: 13px !important; }

/* ================= 八、导出打印聚合面板 ================= */
.yt-export { position: relative; display: inline-flex; }
.yt-export > .yt-export-btn { min-width: 88px !important; }
.yt-export-btn.locked { opacity: .55 !important; cursor: not-allowed !important; }
.yt-export-menu {
  position: absolute; right: 0; top: calc(100% + 4px);
  background: #FFFFFF; border: 1px solid #E4E7ED; border-radius: 4px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 240px; z-index: 90;
  display: none; padding: 4px 0;
}
.yt-export.open .yt-export-menu { display: block; }
.yt-export-menu .it { height: 32px; line-height: 32px; padding: 0 12px; font-size: 14px; color: #333333; cursor: pointer; white-space: nowrap; }
.yt-export-menu .it:hover { background: #F0F6FF; color: #1F4E96; }
.yt-export-menu .it.dis, .yt-export-menu .it.dis:hover { color: #C0C4CC; cursor: not-allowed; background: none; }
.yt-export-menu .sep { height: 1px; background: #E4E7ED; margin: 4px 0; }
/* 既有 MODKIT.io 导入/导出下拉：外观统一对齐 §八（交互逻辑保持原实现） */
.mk-io { position: relative; display: inline-flex; }
.mk-io-menu {
  position: absolute; right: 0; top: calc(100% + 4px);
  background: #FFFFFF !important; border: 1px solid #E4E7ED !important; border-radius: 4px !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.12); min-width: 240px; z-index: 90;
  display: none; padding: 4px 0;
}
.mk-io-menu.on { display: block; }
.mk-io-menu .mk-io-it { height: 32px; line-height: 32px; padding: 0 12px; font-size: 14px; color: #333333; cursor: pointer; white-space: nowrap; display: flex; align-items: center; gap: 6px; }
.mk-io-menu .mk-io-it:hover { background: #F0F6FF !important; color: #1F4E96 !important; }
.mk-io-sep { height: 1px; background: #E4E7ED; margin: 4px 0; }

/* ================= 九、弹窗全套 ================= */
/* 遮罩统一半透明黑（内联样式也被 !important 覆盖） */
#bizModal, .contract-ovl, #docxPrevMask, #firmClearMask, .sf-mask, .modal-mask,
.yt-modal-mask, #permModal, .drawer-mask {
  background: rgba(0,0,0,0.5) !important;
}
/* 弹窗主体：白底 6px 圆角（内层表单控件仍 4px） */
#bizModalBox, .contract-box, .yt-modal-box {
  background: #FFFFFF !important;
  border-radius: 6px !important;
  min-width: 480px !important;
  max-width: 90vw !important;
  padding: 16px !important;
}
/* 弹窗标题 */
#bizModalTitle, .yt-modal-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1F4E96 !important;
}
/* 弹窗底部按钮组：居右，次要在前主按钮在后，间距 12px */
#bizModalBox .yt-modal-foot, .yt-modal-foot {
  display: flex !important; justify-content: flex-end !important;
  flex-wrap: wrap !important; gap: 12px !important; margin-top: 16px !important;
}
/* 右上角关闭图标 */
.contract-box .x, .yt-modal-close, #bizModalBox .x {
  color: #86909C !important;
}
.contract-box .x:hover, .yt-modal-close:hover, #bizModalBox .x:hover { color: #333333 !important; }

/* ================= 十、表单紧凑布局工具类 ================= */
.yt-grid3 { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px 16px !important; }
.yt-grid2 { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px 16px !important; }
.yt-full  { grid-column: 1 / -1 !important; }
/* 禁止单个短字段独占整行：表单行容器默认多列 */
.yt-form .fld { min-width: 0; }

/* ============================================================================
 * 【全局美化任务书V1.0】U1 设计变量体系 + U2 弹窗三件套（2026-10-12）
 * 只动皮肤：不改接口/数据结构/路由/交互流程。色值以《全局美化方案_小样V1》为准。
 * ========================================================================== */
:root{
  /* 三档层次：L1 页面底 / L2 容器面 / L3 弱底 */
  --yt-l1:#E6F1FB; --yt-l2:#FFFFFF; --yt-l3:#F7FAFD;
  /* 品牌与语义色（与主应用 :root 同名同值，防止双体系漂移） */
  --yt-brand:#185FA5; --yt-brand-d:#0C447C; --yt-brand-l:#E6F1FB;
  --yt-ink:#1B2733; --yt-ink2:#5A6B7B; --yt-ink3:#8A99A8;
  --yt-line:#D7E0EA; --yt-ok:#0E9F6E; --yt-warn:#B45309; --yt-err:#B91C1C;
  /* 圆角：卡片12 / 弹窗14 / 按钮8 / 导航9 */
  --yt-r-card:12px; --yt-r-modal:14px; --yt-r-btn:8px; --yt-r-nav:9px;
  /* 阴影：卡片 / 弹窗 / 主按钮 */
  --yt-sh-card:0 1px 4px rgba(15,30,54,.06);
  --yt-sh-modal:0 12px 40px rgba(15,30,54,.35);
  --yt-sh-btn:0 2px 8px rgba(24,95,165,.30);
  /* 品牌渐变（顶栏 / 弹窗顶栏） */
  --yt-grad:linear-gradient(135deg,#185FA5 0%,#0C447C 100%);
}

/* ---- U1-b 顶栏：品牌渐变 + 白字 ---- */
.topbar{background:var(--yt-grad) !important;border-bottom:none !important;box-shadow:0 2px 10px rgba(15,30,54,.18) !important}
.topbar .pgtitle{color:#fff !important}
.topbar .user{border-left-color:rgba(255,255,255,.28) !important}
.topbar .user .nm,.topbar .user .rl,.topbar .user .cx{color:#fff !important}
.topbar .user:hover{background:rgba(255,255,255,.14) !important}
.topbar .appver-badge{background:rgba(255,255,255,.16) !important;border-color:rgba(255,255,255,.32) !important;color:#fff !important}
.topbar .btn:not(.p):not(.primary){background:rgba(255,255,255,.14) !important;border:1px solid rgba(255,255,255,.36) !important;color:#fff !important}

/* ---- U1-c 三档层次落地：卡片/面板用 L2 白 + 12px 圆角 + 卡片阴影；表头/次级区用 L3 ---- */
.yt-card,.yt-panel{background:var(--yt-l2) !important;border-radius:var(--yt-r-card) !important;box-shadow:var(--yt-sh-card) !important}
.yt-sec-title{background:var(--yt-l3) !important;color:var(--yt-brand-d) !important;border-bottom:1px solid var(--yt-line) !important}
table thead th,table th{background:var(--yt-l3) !important}
tbody tr:hover,tbody tr.hover{background:var(--yt-l3) !important}

/* ---- U1-d 状态必须有色的语义标签 ---- */
.yt-tag{display:inline-block;font-size:11px;padding:1px 8px;border-radius:10px;line-height:1.7;white-space:nowrap}
.yt-tag.info,.yt-tag.b{background:#E6F1FB;color:#185FA5}
.yt-tag.ok,.yt-tag.g{background:#E7F6F0;color:#0E9F6E}
.yt-tag.warn,.yt-tag.o{background:#FDF2E3;color:#B45309}
.yt-tag.err,.yt-tag.r{background:#FBEAEA;color:#B91C1C}

/* ---- U2 弹窗三件套：①深遮罩 48% ②蓝色顶栏 ③底部按钮右对齐 ---- */
.bl-modal-bg,.sg-modal-ov,.drawer-mask,.sop-modal-bg,.yt-mask{background:rgba(15,30,54,.48) !important}
.bl-modal,.sg-modal,.tp-dlg,.ytai-dlg,.sop-modal,.yt-dlg{
  border-radius:var(--yt-r-modal) !important;
  box-shadow:var(--yt-sh-modal) !important;
  overflow:hidden !important;
}
.bl-modal-hd,.ytai-dlg-hd,.tp-dlg-h,.sg-dlg-h,.sop-modal-hd,.yt-dlg-hd{
  background:var(--yt-grad) !important;color:#fff !important;border-bottom:none !important;
}
.bl-modal-hd *,.ytai-dlg-hd *,.tp-dlg-h *,.sg-dlg-h *,.sop-modal-hd *,.yt-dlg-hd *{color:#fff !important}
.bl-modal-hd button,.ytai-dlg-hd button,.tp-dlg-h button,.sg-dlg-h button,.sop-modal-hd button,.yt-dlg-hd button{
  background:transparent !important;border:1px solid rgba(255,255,255,.45) !important;color:#fff !important;border-radius:var(--yt-r-btn) !important;
}
.bl-modal-ft,.ytai-dlg-ft,.tp-dlg-f,.sg-dlg-f,.sop-modal-ft,.yt-dlg-ft{
  display:flex !important;justify-content:flex-end !important;align-items:center !important;gap:8px !important;
  border-top:1px solid var(--yt-line) !important;background:var(--yt-l3) !important;
}

/* ============================================================
   【任务2】企业信息录入页原型组件（cmp-*）—— 色值统一取自 yt-uikit 变量
   规格：品牌 #185FA5 / 层次 L1 #E6F1FB·L2 #FFFFFF·L3 #F7FAFD
        语义 ok #0E9F6E · warn #B45309 · err #B91C1C · 线 #D7E0EA
        圆角：顶栏条 14 · 卡片 12 · 徽章/chip 20 · 按钮 8
   ============================================================ */
.cmp-topbar{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px 18px;margin:-4px -4px 14px;border-radius:14px;
  background:linear-gradient(135deg,#185FA5 0%,#0C447C 100%);
  box-shadow:0 2px 10px rgba(12,68,124,.18);
}
.cmp-topbar h1{margin:0;font-size:16px;font-weight:700;color:#fff;letter-spacing:.2px}
.cmp-topbar .progress-wrap{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:220px}
.cmp-topbar .progress-wrap>span{font-size:12px;color:#E6F1FB;font-weight:600;white-space:nowrap}
.cmp-topbar .pbar{flex:1;height:8px;min-width:120px;border-radius:20px;background:rgba(255,255,255,.28);overflow:hidden}
.cmp-topbar .pbar>i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,#7FD1AE,#0E9F6E);transition:width .35s ease}
.cmp-layout{display:flex;gap:14px;align-items:flex-start}
.cmp-sidenav{
  width:168px;flex-shrink:0;position:sticky;top:8px;
  background:var(--yt-l2,#fff);border:1px solid var(--yt-line,#D7E0EA);border-radius:12px;
  padding:8px;box-shadow:0 1px 4px rgba(15,30,54,.06);
}
.cmp-sidenav a{
  display:flex;align-items:center;gap:7px;padding:8px 10px;border-radius:8px;
  font-size:12.5px;color:#41525F;text-decoration:none;line-height:1.35;
}
.cmp-sidenav a:hover{background:var(--yt-l3,#F7FAFD);color:var(--yt-brand-d,#0C447C)}
.cmp-sidenav a.on{background:var(--yt-l1,#E6F1FB);color:var(--yt-brand-d,#0C447C);font-weight:600}
.cmp-sidenav .dot{width:8px;height:8px;border-radius:50%;background:#D7E0EA;flex-shrink:0}
.cmp-sidenav .dot.done{background:var(--yt-ok,#0E9F6E)}
.cmp-sidenav .badge{
  font-size:10.5px;padding:1px 6px;border-radius:20px;font-weight:600;line-height:1.6;
}
.cmp-sidenav .badge.warn{background:#FEF3C7;color:var(--yt-warn,#B45309)}
.cmp-sidenav .badge.ok{background:#E7F6F0;color:var(--yt-ok,#0E9F6E)}
.cmp-side-tip{
  margin:8px 4px 2px;padding:8px 9px;border-radius:8px;background:var(--yt-l3,#F7FAFD);
  font-size:11px;color:#6B7A8D;line-height:1.6;
}
.cmp-main{flex:1;min-width:0}
.cmp-card{
  background:var(--yt-l2,#fff);border:1px solid var(--yt-line,#D7E0EA);border-radius:12px;
  box-shadow:0 1px 4px rgba(15,30,54,.06);margin-bottom:12px;overflow:hidden;
}
.cmp-card-head{
  display:flex;align-items:center;gap:9px;padding:11px 14px;cursor:pointer;user-select:none;
  border-bottom:1px solid var(--yt-line,#D7E0EA);
}
.cmp-card-head .bar{width:3px;height:15px;border-radius:2px;background:var(--yt-brand,#185FA5);flex-shrink:0}
.cmp-card-head h2{margin:0;font-size:14px;font-weight:700;color:var(--yt-brand-d,#0C447C)}
.cmp-card-head .badge{font-size:11px;padding:2px 9px;border-radius:20px;font-weight:600}
.cmp-card-head .badge.ok{background:#E7F6F0;color:var(--yt-ok,#0E9F6E)}
.cmp-card-head .badge.warn{background:#FEF3C7;color:var(--yt-warn,#B45309)}
.cmp-card-head .badge.err{background:#FDECEC;color:var(--yt-err,#B91C1C)}
.cmp-card-head .caret{margin-left:auto;color:#9AA8B8;font-size:12px;transition:transform .2s ease}
.cmp-card.collapsed .cmp-card-head{border-bottom:none}
.cmp-card.collapsed .cmp-card-head .caret{transform:rotate(-90deg)}
.cmp-card.collapsed .cmp-card-body{display:none}
.cmp-card-body{padding:13px 14px}
.cmp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
@media(max-width:1080px){.cmp-grid2{grid-template-columns:1fr}}
@media(max-width:900px){.cmp-layout{flex-direction:column}.cmp-sidenav{width:100%;position:static;display:flex;flex-wrap:wrap;gap:4px}.cmp-side-tip{width:100%}}
/* chips 多选 */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:6px 0}
.chip{
  display:inline-flex;align-items:center;gap:4px;padding:5px 13px;border-radius:20px;
  border:1px solid var(--yt-line,#D7E0EA);background:var(--yt-l2,#fff);
  font-size:12.5px;color:#41525F;cursor:pointer;user-select:none;transition:all .15s ease;
}
.chip:hover{border-color:var(--yt-brand,#185FA5);color:var(--yt-brand-d,#0C447C)}
.chip.on{background:var(--yt-l1,#E6F1FB);border-color:var(--yt-brand,#185FA5);color:var(--yt-brand-d,#0C447C);font-weight:600}
.chip.on::before{content:'✓';font-weight:700;color:var(--yt-brand,#185FA5)}
/* 开关行 */
.switch-row{
  display:flex;align-items:center;gap:12px;margin:2px 0 10px;padding:8px 11px;
  background:var(--yt-l3,#F7FAFD);border:1px solid var(--yt-line,#D7E0EA);border-radius:10px;
  font-size:12.5px;color:#41525F;
}
.switch-row .sw{
  margin-left:auto;width:42px;height:22px;border-radius:20px;background:#CBD5E1;
  position:relative;cursor:pointer;flex-shrink:0;transition:background .2s ease;
}
.switch-row .sw>i{
  position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(15,30,54,.25);transition:left .2s ease;
}
.switch-row .sw.on{background:var(--yt-brand,#185FA5)}
.switch-row .sw.on>i{left:22px}
/* 空态 / 子表 / 底栏 */
.cmp-empty{
  padding:14px 14px;border:1px dashed var(--yt-line,#D7E0EA);border-radius:10px;
  background:var(--yt-l3,#F7FAFD);font-size:12px;color:#6B7A8D;line-height:1.7;
}
.cmp-footbar{
  position:sticky;bottom:0;z-index:6;display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  margin-top:4px;padding:11px 14px;border-radius:12px;
  background:rgba(255,255,255,.97);border:1px solid var(--yt-line,#D7E0EA);
  box-shadow:0 -4px 14px rgba(12,68,124,.10);backdrop-filter:blur(4px);
}

/* ============================================================
   【全局美化任务书V1.0 · U3】首页 + 企业信息录入页 + 报告生成入口页
   只动皮肤：不改接口/数据结构/路由/交互流程（铁律2）
   色值/圆角/阴影全部取自本文件 :root 变量（铁律1）
   ============================================================ */

/* ---- U3-a 主应用根变量对齐小样（消灭第四种随意灰） ---- */
:root{
  --ok:#0E9F6E;        /* 语义成功色（原 #00B42A → 小样值） */
  --ok-l:#E7F6F0;      /* 成功浅底 */
  --bg:#E6F1FB;        /* L1 页面底（原 #F3F6FA 为规范外灰） */
  --line:#D7E0EA;      /* 分隔线（小样 §二） */
  --shadow:0 1px 4px rgba(15,30,54,.06);   /* 卡片阴影（小样 §二） */
}

/* ---- U3-b 首页：统计卡 / 容器卡 / 列表条 ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}
.stat{
  background:var(--yt-l2,#fff);border:1px solid var(--yt-line,#D7E0EA);
  border-radius:var(--yt-r-card,12px);box-shadow:var(--yt-sh-card);
  padding:14px 16px;position:relative;overflow:hidden;
}
.stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--yt-brand,#185FA5);opacity:.85}
.stat.s-ok::before{background:var(--yt-ok,#0E9F6E)}
.stat.s-danger::before{background:var(--yt-err,#B91C1C)}
.stat.s-warn::before,.stat.s-red::before{background:var(--yt-warn,#B45309)}
.stat .lbl{font-size:12.5px;color:var(--yt-ink2,#5A6B7B)}
.stat .num{font-size:24px;font-weight:700;margin-top:6px;color:var(--yt-ink,#1B2733);font-variant-numeric:tabular-nums}
.stat.s-brand .num{color:var(--yt-brand,#185FA5)}
.stat.s-ok .num{color:var(--yt-ok,#0E9F6E)}
.stat.s-danger .num,.stat.s-red .num{color:var(--yt-err,#B91C1C)}
.stat.s-warn .num{color:var(--yt-warn,#B45309)}

/* 容器卡：L2 白面 + 12px 圆角 + 卡片阴影；卡头 L3 弱底 + 品牌深字
   【注】主应用运行时会注入 .card{border-radius:var(--radius-lg,14px);border-color:#E6F1FB}，
        与本规范冲突，故本节对 .card 系加 !important 收口（仅皮肤，不动逻辑） */
.card{background:var(--yt-l2,#fff)!important;border:1px solid var(--yt-line,#D7E0EA)!important;border-radius:var(--yt-r-card,12px)!important;box-shadow:var(--yt-sh-card)!important;overflow:hidden}
.card .ch{
  padding:12px 16px!important;background:var(--yt-l3,#F7FAFD)!important;border-bottom:1px solid var(--yt-line,#D7E0EA)!important;
  display:flex;align-items:center;gap:10px;font-weight:600;font-size:14.5px;color:var(--yt-brand-d,#0C447C)!important;
}
.card .ch .sub{font-weight:400!important;color:var(--yt-ink3,#8A99A8)!important;font-size:12px!important;margin-left:6px}
.card .cb{padding:16px!important}

/* 首页列表条：L2 白 + hover 品牌描边 + L3 底 */
.proj-item{
  display:flex;align-items:center;gap:10px;padding:10px 12px;
  border:1px solid var(--yt-line,#D7E0EA);border-radius:10px;margin-bottom:9px;
  background:var(--yt-l2,#fff);transition:background .15s,border-color .15s;
}
.proj-item:hover{background:var(--yt-l3,#F7FAFD);border-color:var(--yt-brand,#185FA5)}
.proj-item .pt{font-weight:600;font-size:13px;color:var(--yt-ink,#1B2733)}
.proj-item .ps{font-size:12px;color:var(--yt-ink3,#8A99A8);margin-top:2px}
.proj-item .link{font-size:12px;color:var(--yt-brand,#185FA5)}

/* 首页当前项目横幅：统一品牌渐变（与顶栏同一支渐变） */
#homeCurFirm{
  border-radius:var(--yt-r-card,12px)!important;
  background:var(--yt-grad)!important;
  box-shadow:0 6px 18px rgba(24,95,165,.18)!important;
}

/* 首页筛选控件：统一 1px 描边 + 8px 圆角 + 34px 高 */
#homeProjBoard select,#homeProjBoard input{
  height:34px;border:1px solid var(--yt-line,#D7E0EA)!important;border-radius:var(--yt-r-btn,8px)!important;
  padding:0 10px;background:#fff;color:var(--yt-ink,#1B2733);font-size:13px;
}
#homeProjBoard select:focus,#homeProjBoard input:focus{
  outline:none;border-color:var(--yt-brand,#185FA5)!important;box-shadow:0 0 0 2px rgba(24,95,165,.16)!important;
}

/* ---- U3-c 报告生成入口页（九宫格）变量化 ---- */
.rpt-tt{color:var(--yt-brand-d,#0C447C)!important}
.rpt-top{border-bottom:1px solid var(--yt-line,#D7E0EA)!important}
.rpt-card{
  background:var(--yt-l2,#fff)!important;border:1px solid var(--yt-line,#D7E0EA)!important;
  border-radius:var(--yt-r-card,12px)!important;box-shadow:var(--yt-sh-card)!important;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.rpt-card:hover{transform:translateY(-5px);box-shadow:0 12px 28px rgba(15,30,54,.16)!important;border-color:var(--yt-brand,#185FA5)!important}
.rpt-card.soon{
  background:var(--yt-l3,#F7FAFD)!important;border-color:var(--yt-line,#D7E0EA)!important;
  color:var(--yt-ink3,#8A99A8)!important;box-shadow:none!important;transform:none!important;cursor:not-allowed;
}
.rpt-ic{background:var(--yt-brand-l,#E6F1FB)!important;color:var(--yt-brand-d,#0C447C)!important;border-radius:11px}
.rpt-card:hover .rpt-ic{background:#D3E6F8!important}
.rpt-card.soon .rpt-ic{background:#EDF1F5!important;color:#A6B0B8!important}
.rpt-nm{color:var(--yt-ink,#1B2733)!important}
.rpt-card.soon .rpt-nm{color:var(--yt-ink3,#8A99A8)!important}
.rpt-tag{font-size:11px;padding:3px 9px;border-radius:20px;white-space:nowrap;line-height:1.6}
.rpt-tag.vip{background:var(--yt-brand-l,#E6F1FB)!important;color:var(--yt-brand-d,#0C447C)!important;border:1px solid #BBD8F0;font-weight:700}
.rpt-tag.pts{background:var(--yt-l3,#F7FAFD)!important;color:var(--yt-ink2,#5A6B7B)!important;border:1px solid var(--yt-line,#D7E0EA)!important}
.rpt-tag.soon{background:#EDF1F5!important;color:var(--yt-ink3,#8A99A8)!important;border:1px solid var(--yt-line,#D7E0EA)!important}

/* ---- U3-d 通用入口瓦片（首页/工具箱/入口页复用同一套） ---- */
.yt-entry{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.yt-entry-card{
  background:var(--yt-l2,#fff);border:1px solid var(--yt-line,#D7E0EA);border-radius:var(--yt-r-card,12px);
  padding:16px;box-shadow:var(--yt-sh-card);cursor:pointer;position:relative;overflow:hidden;
  display:flex;flex-direction:column;min-height:132px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
}
.yt-entry-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(15,30,54,.16);border-color:var(--yt-brand,#185FA5)}
.yt-entry-card .e-ic{
  width:42px;height:42px;border-radius:11px;background:var(--yt-brand-l,#E6F1FB);color:var(--yt-brand-d,#0C447C);
  display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:10px;flex:none;
}
.yt-entry-card .e-nm{font-size:14.5px;font-weight:700;color:var(--yt-ink,#1B2733);line-height:1.5;margin-bottom:5px}
.yt-entry-card .e-ds{font-size:12px;color:var(--yt-ink3,#8A99A8);line-height:1.7;flex:1}
.yt-entry-card.dis{background:var(--yt-l3,#F7FAFD);cursor:not-allowed;transform:none!important;box-shadow:none}
.yt-entry-card.dis .e-ic{background:#EDF1F5;color:#A6B0B8}
.yt-entry-card.dis .e-nm{color:var(--yt-ink3,#8A99A8)}

/* ============================================================
   【全局美化任务书V1.0 · U4】其余页面逐页过（列表页→表单页→详情页）
   铁律3：全站一致性 > 单页漂亮 —— 按钮/标签/表格/表单控件全站一套样式
   铁律4：状态必须有色（成功绿 / 警示橙 / 危险红）
   ============================================================ */

/* ---- U4-a 按钮：圆角统一 8px（小样 §二），主按钮回归品牌蓝 ---- */
.btn,button.btn,.xczf-btn,.edu-btn,.sop-btn,.emgc-btn,.ytb-btn,.tk-btn,.rc-btn,.lq-btn,.sg-btn,.tp-btn,.bl-btn,.ps-btn{border-radius:var(--yt-r-btn,8px)!important}
.btn.primary,.btn.p,.btn.main-ok,button.btn.primary,
.xczf-btn.p,.edu-btn.primary,.sop-btn.p,.emgc-btn.p,.ytb-btn.p,.tk-btn.p,.rc-btn.p,.lq-btn.p,.sg-btn.p,.tp-btn.p,.bl-btn.p,.ps-btn.p{background:var(--yt-brand,#185FA5)!important;border-color:var(--yt-brand,#185FA5)!important}
.btn.primary:hover,.btn.p:hover,.btn.main-ok:hover{background:var(--yt-brand-d,#0C447C)!important;border-color:var(--yt-brand-d,#0C447C)!important}
.btn.ghost,.btn.g{color:var(--yt-brand,#185FA5)!important;border-color:#BBD8F0!important}
.btn.ghost:hover,.btn.g:hover{background:var(--yt-l3,#F7FAFD)!important;color:var(--yt-brand-d,#0C447C)!important}
.btn.danger,.btn.g.danger,.btn.cfirm{background:var(--yt-err,#B91C1C)!important;border-color:var(--yt-err,#B91C1C)!important}
.btn:disabled,.btn[disabled]{background:#C9D8F0!important;border-color:#C9D8F0!important}

/* ---- U4-b 页签条（浅色场景统一；深色场景 .be-tab 保持原样） ---- */
.rtb,.yt-tab,.mk-tab,.edu-tab,.thtab,.ps-tab,.sg-tab,.tp-tab{
  padding:8px 16px!important;border:1px solid var(--yt-line,#D7E0EA)!important;border-radius:var(--yt-r-nav,9px)!important;
  background:var(--yt-l2,#fff)!important;color:var(--yt-ink2,#5A6B7B)!important;font-size:13.5px;cursor:pointer;transition:.15s;
}
.rtb:hover,.yt-tab:hover,.mk-tab:hover,.edu-tab:hover{background:var(--yt-l3,#F7FAFD)!important;color:var(--yt-brand-d,#0C447C)!important}
.rtb.on,.yt-tab.on,.mk-tab.on,.edu-tab.on,.thtab.on,.ps-tab.on,.sg-tab.on,.tp-tab.on{
  background:var(--yt-grad)!important;color:#fff!important;border-color:transparent!important;
  box-shadow:0 4px 12px rgba(24,95,165,.28)!important;
}

/* ---- U4-c 状态标签：语义色（铁律4，禁止全灰） ---- */
.tag.ok,.tag.g,.badge.ok,.pill.ok,.status.ok,.tag.success,
.tag.warn,.tag.o,.badge.warn,.pill.warn,.status.warn,.tag.warning,
.tag.err,.tag.r,.tag.danger,.badge.err,.pill.err,.status.err{
  display:inline-block;font-size:11px!important;padding:2px 9px!important;border-radius:10px!important;
  line-height:1.7!important;white-space:nowrap;font-weight:600;
}
.tag.ok,.tag.g,.badge.ok,.pill.ok,.status.ok,.tag.success{background:#E7F6F0!important;color:var(--yt-ok,#0E9F6E)!important}
.tag.warn,.tag.o,.badge.warn,.pill.warn,.status.warn,.tag.warning{background:#FDF2E3!important;color:var(--yt-warn,#B45309)!important}
.tag.err,.tag.r,.tag.danger,.badge.err,.pill.err,.status.err{background:#FBEAEA!important;color:var(--yt-err,#B91C1C)!important}
.tag.info,.tag.b,.badge.info,.pill.info,.status.info{background:var(--yt-brand-l,#E6F1FB)!important;color:var(--yt-brand-d,#0C447C)!important;
  display:inline-block;font-size:11px!important;padding:2px 9px!important;border-radius:10px!important;line-height:1.7!important}

/* ---- U4-d 提示条 / 空态：L3 弱底 + 品牌左条 ---- */
.hint,.yt-hint,.sf-hint{
  background:var(--yt-l3,#F7FAFD)!important;border-left:3px solid var(--yt-brand,#185FA5)!important;
  border-radius:8px!important;padding:10px 12px!important;color:var(--yt-ink2,#5A6B7B)!important;font-size:12.5px!important;line-height:1.8;
}
.empty,.bempty,.ytc-empty,.ytb-empty,.sg-empty,.tsg-empty,.edu-empty,.tp-empty,.ph-empty{
  background:var(--yt-l3,#F7FAFD)!important;border:1px dashed var(--yt-line,#D7E0EA)!important;
  border-radius:10px!important;padding:18px!important;color:var(--yt-ink3,#8A99A8)!important;font-size:12.5px;text-align:center;
}
.muted{color:var(--yt-ink3,#8A99A8)!important}

/* ---- U4-e 板块标题：品牌深字 + L3 底 + 左条 ---- */
.sf-sec-title,.yt-sec-title{
  background:var(--yt-l3,#F7FAFD)!important;color:var(--yt-brand-d,#0C447C)!important;
  border-left:3px solid var(--yt-brand,#185FA5)!important;border-radius:8px!important;
  padding:8px 12px!important;font-weight:700!important;
}

/* ---- U4-f 表格：L3 表头 + 品牌深字 + hover 弱底 ---- */
table thead th,table th{
  background:var(--yt-l3,#F7FAFD)!important;color:var(--yt-brand-d,#0C447C)!important;
  border:1px solid var(--yt-line,#D7E0EA)!important;font-weight:700!important;
}
table td{border:1px solid var(--yt-line,#D7E0EA)!important;color:var(--yt-ink,#1B2733)!important}
tbody tr:hover>td{background:var(--yt-l3,#F7FAFD)!important}

/* ---- U4-g 滚动条统一品牌灰蓝 ---- */
::-webkit-scrollbar-thumb{background:#C2D6EC!important;border-radius:6px!important}
