/* 酱香深蓝侧边栏主题
 * 背景：nav-side.jpg（深蓝底 + 底部金色高粱/曲块线稿）
 * 图片底部锚定，纯色顶边与底色 #041b3e 自然衔接，任意高度无接缝。
 * 文字/图标配色与图中金色（#f3ae46）协调。
 */

aside.app-header {
  background: url("/assets/nav-side.jpg") bottom center / 100% auto no-repeat;
  background-color: #041b3e;
  border-right: 1px solid rgba(243, 174, 70, .28);
  box-shadow: 7px 0 26px rgba(3, 17, 40, .45);
  color: #d6e0f2;
}

/* 顶部品牌区：使用导航稿的 logo+书法字（透明羽化图），隐藏原文字 logo */
aside.app-header .app-header__brand {
  display: block; height: 96px; margin: 2px 0 10px;
  background: url("/assets/nav-brand.png") left center / contain no-repeat;
}
aside.app-header .app-header__brand .brand-mark,
aside.app-header .app-header__brand > span:last-child { display: none; }

/* 顶栏：模板风格面包屑 */
.app-topbar>div:first-child { display: flex; align-items: baseline; gap: 10px; }
.app-topbar>div:first-child span {
  color: #748197; font-size: .78rem; font-weight: 600; letter-spacing: .02em;
}
.app-topbar>div:first-child span::after { content: "›"; margin-left: 10px; color: #b6c0cf; }
.app-topbar>div:first-child strong { font-size: .95rem; color: #17233b; }

/* 窄屏折叠栏（≤1050px）：恢复圆形 logo 标，隐藏横幅图 */
@media (max-width: 1050px) {
  aside.app-header .app-header__brand {
    display: flex; align-items: center; justify-content: center;
    height: auto; margin: 0 0 8px; background: none;
  }
  aside.app-header .app-header__brand .brand-mark { display: grid; }
}

/* 菜单：分组标题用金色，项为雾蓝，悬停/选中带金色高光 */
aside.app-header .position-nav p { color: #d3a861; }
aside.app-header .position-nav a { color: #c3d1e9; }
aside.app-header .position-nav a:hover {
  color: #ffffff;
  background: rgba(255, 255, 255, .09);
}
aside.app-header .position-nav a.is-active {
  color: #ffd98f;
  background: linear-gradient(90deg, rgba(243, 174, 70, .20), rgba(243, 174, 70, .06));
  box-shadow: inset 3px 0 #f3ae46;
}

/* 底部身份区 */
aside.app-header .app-header__operator { border-top: 1px solid rgba(255, 255, 255, .12); }
aside.app-header .position-identity,
aside.app-header .text-button { text-shadow: 0 1px 4px rgba(3, 17, 40, .85); }
aside.app-header .position-identity b { color: #eef3ff; }
aside.app-header .position-identity small { color: #93a3c4; }
aside.app-header .position-avatar {
  background: linear-gradient(145deg, #f0b352, #b57917);
  box-shadow: 0 7px 16px rgba(243, 174, 70, .30);
}
aside.app-header .text-button { color: #a9b8d8; }
aside.app-header .text-button:hover { color: #ffd98f; }

/* ===== 3D 蓝金图标（矢量图素材） =====
 * 侧边栏菜单：隐藏原线性 SVG，用 ::before 挂 3D 图标 */
aside.app-header .position-nav a svg,
aside.app-header .text-button svg { display: none; }
aside.app-header .position-nav a::before,
aside.app-header .text-button::before {
  content: ""; flex: 0 0 auto;
  width: 26px; height: 26px;
  background: center / contain no-repeat;
  filter: drop-shadow(0 2px 3px rgba(3, 17, 40, .55));
}
aside.app-header .position-nav a[href="/workbench"]::before { background-image: url("/assets/icons/nav-dashboard.png"); }
aside.app-header .position-nav a[href="/workbench#task-list"]::before { background-image: url("/assets/icons/nav-tasks.png"); }
aside.app-header .position-nav a[href="/quality"]::before { background-image: url("/assets/icons/nav-quality.png"); }
aside.app-header .position-nav a[href="/dashboard"]::before { background-image: url("/assets/icons/nav-screen.png"); }
aside.app-header .text-button::before { background-image: url("/assets/icons/nav-exit.png"); }
aside.app-header .position-nav a.is-active::before {
  filter: drop-shadow(0 0 6px rgba(243, 174, 70, .75));
}

/* 统计卡：图标位换成 3D 图标，去掉原色块底 */
.position-summary__icon {
  font-size: 0 !important;
  width: 54px; height: 54px;
  background: transparent center / contain no-repeat !important;
  filter: drop-shadow(0 3px 5px rgba(23, 35, 59, .25));
}
.position-summary__card--total .position-summary__icon { background-image: url("/assets/icons/stat-total.png") !important; }
.position-summary__card--complete .position-summary__icon { background-image: url("/assets/icons/stat-complete.png") !important; }
.position-summary__card--active .position-summary__icon { background-image: url("/assets/icons/stat-active.png") !important; }
.position-summary__card--pending .position-summary__icon { background-image: url("/assets/icons/stat-pending.png") !important; }

/* 品质验证页：等待态/单卡态下栅格只剩一列时，取消双列布局，
   让唯一表单卡撑满内容区，避免右半空白造成的错乱感 */
.quality-collaboration-grid:has(> :only-child) { grid-template-columns: minmax(0, 1fr); }

/* 平板竖屏（681–900px）：原主题只在 ≤680px 才把表单行改为单列，
   导致 iPad 竖屏横向溢出。补齐该区间 */
@media (max-width: 900px) {
  .quality-form-card .ratio-strip { grid-template-columns: 1fr 1fr; }
  .quality-form-card .appearance-score-row { grid-template-columns: 1fr; }
  .quality-form-card .capture-fallbacks { grid-template-columns: 1fr; }
  .quality-form-card, .quality-form-card form, .quality-form-card fieldset { min-width: 0; }
}

/* 901–1150px 区间双卡片过窄（每张不足 400px），右侧外观检验卡内容拥挤，
   提前收为单列，让两张卡片都撑满内容区 */
@media (min-width: 901px) and (max-width: 1150px) {
  .quality-collaboration-grid { grid-template-columns: minmax(0, 1fr); }
}

/* 去掉页面主标题下的说明文字行（岗位工作台 + 管理员生产运营总览） */
.workbench-heading h1 + p { display: none; }
.admin-console__page-heading > div:first-child > span { display: none !important; }
/* 去掉管理员顶栏搜索框旁的圆形刷新按钮 */
.admin-console__refresh { display: none !important; }

/* ===== 管理员控制台侧边栏：与岗位侧边栏统一的深蓝金主题 ===== */
.admin-console__sidebar {
  background: url("/assets/nav-side.jpg") bottom center / 100% auto no-repeat;
  background-color: #041b3e;
  border-right: 1px solid rgba(243, 174, 70, .28);
  box-shadow: 7px 0 26px rgba(3, 17, 40, .45);
}
/* 品牌区：换成导航稿书法字 logo */
.admin-console__brand {
  display: block; height: 76px; padding: 0; margin-bottom: 14px;
  background: url("/assets/nav-brand.png") left center / contain no-repeat;
}
.admin-console__brand img,
.admin-console__brand > span { display: none; }
/* 菜单文字配色 */
.admin-console__nav p { color: #d3a861; }
.admin-console__nav a { color: #c3d1e9; }
.admin-console__nav a:hover { color: #fff; background: rgba(255, 255, 255, .09); }
.admin-console__nav a.is-active {
  color: #ffd98f;
  background: linear-gradient(90deg, rgba(243, 174, 70, .20), rgba(243, 174, 70, .06));
  box-shadow: inset 3px 0 #f3ae46;
}
/* 3D 蓝金图标替换线性 SVG */
.admin-console__nav a svg,
.admin-console__sidebar-footer button svg { display: none; }
.admin-console__nav a::before,
.admin-console__sidebar-footer button::before {
  content: ""; flex: 0 0 auto; width: 26px; height: 26px;
  background: center / contain no-repeat;
  filter: drop-shadow(0 2px 3px rgba(3, 17, 40, .55));
}
.admin-console__nav a[href="#overview"]::before { background-image: url("/assets/icons/nav-dashboard.png"); }
.admin-console__nav a[href="#positions"]::before { background-image: url("/assets/icons/nav-progress.png"); }
.admin-console__nav a[href="#tasks"]::before { background-image: url("/assets/icons/nav-tasks.png"); }
.admin-console__nav a[href="/task-management"]::before { background-image: url("/assets/icons/nav-control.png"); }
.admin-console__nav a[href="/dashboard"]::before { background-image: url("/assets/icons/nav-screen.png"); }
.admin-console__nav a[href="/admin/badges"]::before { background-image: url("/assets/icons/nav-badge.png"); }
.admin-console__nav a[href="/quality-dictionaries"]::before { background-image: url("/assets/icons/nav-quality.png"); }
.admin-console__sidebar-footer button::before { background-image: url("/assets/icons/nav-exit.png"); }
.admin-console__nav a.is-active::before { filter: drop-shadow(0 0 6px rgba(243, 174, 70, .75)); }
/* 底部状态与身份区 */
.admin-console__sidebar-footer { border-top: 1px solid rgba(255, 255, 255, .12); }
.admin-console__sidebar-footer > span,
.admin-console__sidebar-footer > small,
.admin-console__sidebar-footer button { text-shadow: 0 1px 4px rgba(3, 17, 40, .9); }
.admin-console__sidebar-footer > span { color: #7fd6a8; }
.admin-console__sidebar-footer > small { color: #93a3c4; }
.admin-console__sidebar-footer button { color: #a9b8d8; display: flex; align-items: center; gap: 13px; }
.admin-console__sidebar-footer button:hover { color: #ffd98f; }
/* 管理员顶栏身份区：白底顶栏上改为深色文字 + 白底描边用户图标（与岗位顶栏图标组一致） */
.admin-console__identity b { color: #1c2b45; }
.admin-console__identity small { color: #748197; }
.admin-console__identity > span {
  font-size: 0; width: 40px; height: 40px;
  border: 1.5px solid #dbe2ee; border-radius: 50%;
  box-shadow: 0 2px 6px rgba(23, 35, 59, .06);
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b4c66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>") center / 20px no-repeat;
}
/* 窄屏折叠（≤1050px）：品牌区回退为圆形 logo 图 */
@media (max-width: 1050px) {
  .admin-console__brand { display: flex; justify-content: center; height: auto; margin-bottom: 8px; background: none; }
  .admin-console__brand img { display: block; width: 48px; height: 48px; }
}

/* ===== 各岗位顶栏右侧：换成「状态 + 消息铃 + 帮助 + 用户」白底描边图标组 ===== */
.app-topbar__status { gap: 12px; }
.app-topbar__status .local-live { color: #1f9d63; font-size: .78rem; }
.app-topbar__status .local-live i { width: 9px; height: 9px; }
/* 消息铃（借 local-live 的伪元素插入在文字后） */
.app-topbar__status .local-live::after {
  content: ""; width: 36px; height: 36px; margin-left: 10px;
  border: 1.5px solid #dbe2ee; border-radius: 50%; background-color: #fff;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b4c66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M15 17h5l-1.4-1.4a2 2 0 0 1-.6-1.4V11a6 6 0 0 0-4-5.7V5a2 2 0 1 0-4 0v.3A6 6 0 0 0 6 11v3.2a2 2 0 0 1-.6 1.4L4 17h5m6 0v1a3 3 0 1 1-6 0v-1m6 0H9'/></svg>") center / 19px no-repeat;
  box-shadow: 0 2px 6px rgba(23, 35, 59, .06);
}
/* 帮助问号（原环境标签改造：隐藏文字，换成图标） */
.app-topbar__status .phase-tag {
  display: block; font-size: 0; padding: 0; width: 36px; height: 36px;
  border: 1.5px solid #dbe2ee; border-radius: 50%; background-color: #fff;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b4c66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M9.2 9a2.9 2.9 0 0 1 5.6 1c0 1.9-2.8 2.4-2.8 4'/><path d='M12 17.5h.01'/></svg>") center / 19px no-repeat;
  box-shadow: 0 2px 6px rgba(23, 35, 59, .06);
}
/* 用户（原岗位序号圆球改造） */
.app-topbar__status .position-avatar {
  font-size: 0; width: 36px; height: 36px; box-shadow: 0 2px 6px rgba(23, 35, 59, .06);
  border: 1.5px solid #dbe2ee;
  background: #fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233b4c66' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'><path d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/><circle cx='12' cy='7' r='4'/></svg>") center / 19px no-repeat;
}

/* ===== 工作台饱满度：字号上调 + 统计卡数字贴近标题 ===== */
/* 统计卡：中文字体再放大，数字与标题拉开距离（参考稿效果） */
/* 所有岗位：去掉统计卡底部彩色修饰条（原主题 ::after 渐变线） */
.position-summary__card::after { content: none !important; display: none !important; }
.position-summary__card { grid-template-columns: 68px minmax(0, 1fr); gap: 22px; min-height: 136px; padding: 22px 26px; }
.position-summary__icon { width: 64px; height: 64px; }
.position-summary__card > div { grid-template-columns: auto auto 1fr; align-items: baseline; gap: 10px 56px; }
.position-summary__card > div > span { font-size: 1.15rem; white-space: nowrap; }
.position-summary__card strong { grid-row: 1; grid-column: 2; font-size: 2.35rem; }
.position-summary__card small { grid-column: 1 / -1; font-size: .88rem; }
/* 工单信息条：日期卡并入为第 4 个单元格 */
.current-work-order-banner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.current-work-order-banner > div { padding: 22px 26px; gap: 10px; }
.current-work-order-banner span { font-size: .95rem; }
.current-work-order-banner strong { font-size: 1.25rem; }
.current-work-order-banner .workbench-date {
  min-width: 0; padding: 22px 26px; border: 0; border-radius: 0;
  box-shadow: none; justify-items: start; background: #fff;
}
.current-work-order-banner .workbench-date span { font-size: .95rem; letter-spacing: normal; color: var(--muted, #748197); }
.current-work-order-banner .workbench-date strong { font-size: 1.25rem; font-weight: 700; }
.current-work-order-banner .workbench-date small { display: none; }
/* 任务列表 */
.task-ledger__heading h2 { font-size: 1.15rem; }
.task-ledger__heading span { font-size: .66rem; }
.task-ledger__heading .ledger-rule { font-size: .68rem; }
.task-row__number { width: 42px; height: 42px; font-size: .9rem; }
.task-row__code { font-size: .68rem; }
.task-row__body h3 { font-size: 1rem; }
.task-row__body small { font-size: .72rem; }
.task-row__next-callout { font-size: .66rem; }
.status-seal { font-size: .78rem; min-width: 82px; min-height: 36px; }
.task-action { font-size: .78rem; min-height: 44px; }
/* 窄屏回退紧凑值，防止平板/手机溢出 */
@media (max-width: 900px) {
  .position-summary__card { grid-template-columns: 52px minmax(0, 1fr); min-height: 110px; padding: 16px; gap: 14px; }
  .position-summary__icon { width: 48px; height: 48px; }
  .position-summary__card > div { gap: 6px 14px; }
  .position-summary__card > div > span { font-size: .86rem; }
  .position-summary__card strong { font-size: 1.8rem; }
  .position-summary__card small { font-size: .68rem; }
  .task-row__body h3 { font-size: .88rem; }
  .current-work-order-banner > div { padding: 16px 18px; }
  .current-work-order-banner span { font-size: .85rem; }
  .current-work-order-banner strong { font-size: 1.05rem; }
  /* 四格信息条在平板竖屏改 2×2 */
  .current-work-order-banner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .current-work-order-banner .workbench-date { padding: 16px 18px; }
  .current-work-order-banner .workbench-date span { font-size: .85rem; }
  .current-work-order-banner .workbench-date strong { font-size: 1.05rem; }
}
@media (max-width: 720px) {
  .current-work-order-banner { grid-template-columns: minmax(0, 1fr); }
}

/* ===== 管理员·岗位进度：技术路线图式步骤条 ===== */
/* 三岗位卡片改为整行排列：左侧岗位概要，右侧全过程步骤条
 * 2026-09-13 一屏适配：压缩摘要列与内边距，任务分组两栏并排（宽屏），整体高度减半 */
.admin-position-monitor__grid { grid-template-columns: 1fr !important; }
.admin-position-monitor__grid > article {
  display: grid; grid-template-columns: 205px minmax(0, 1fr);
  column-gap: 22px; align-items: center;
  border-right: 0; border-bottom: 1px solid #edf0f4; padding: 8px 18px;
}
.admin-position-monitor__grid > article:last-child { border-bottom: 0; }
.admin-position-monitor__grid article > header,
.admin-position-monitor__grid .admin-position-monitor__progress,
.admin-position-monitor__grid .admin-position-monitor__meta,
.admin-position-monitor__grid article > dl,
.admin-position-monitor__grid article > a { grid-column: 1; }
.admin-position-monitor__grid article > header { grid-template-columns: 30px minmax(0, 1fr); gap: 9px; }
.admin-position-monitor__grid article > header > span { font-size: 1.2rem; }
.admin-position-monitor__grid article > header p { min-height: 2.1em; margin: 3px 0 0; }
.admin-position-monitor__grid .admin-position-monitor__progress { margin-top: 5px; }
.admin-position-monitor__grid .admin-position-monitor__meta { margin-top: 8px; }
.admin-position-monitor__grid .admin-position-monitor__meta strong { font-size: 1.05rem; }
.admin-position-monitor__grid article > dl { min-height: 0; gap: 4px; margin: 8px 0 6px; padding-top: 8px; }
.admin-position-monitor__grid article > a { min-height: 34px; }
.position-roadmap { grid-column: 2; grid-row: 1 / 6; min-width: 0; align-self: center; }

/* 任务分组卡两栏并排（宽屏）：每组占一半宽，高度立减一半
 * 注意加 .admin-position-monitor 前缀提高优先级——progress-roadmap.js 运行时注入的
 * style 在本文件之后，同优先级会覆盖掉这里的 row */
.admin-position-monitor .position-roadmap__groups { flex-direction: row; gap: 8px; }
.admin-position-monitor .position-roadmap__group { flex: 1 1 0; min-width: 0; padding: 6px 12px; }
.admin-position-monitor .position-roadmap__group-head { margin: 0 0 4px; }

/* 步骤轨道（紧凑版：28px 圆点、小一号字，保证一屏三岗位全览） */
.position-roadmap__track {
  display: flex; align-items: flex-start;
  list-style: none; margin: 0; padding: 1px 0 0;
}
.position-roadmap__track > li {
  position: relative; flex: 1 1 0; min-width: 68px;
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  text-align: center;
  padding: 6px 3px 5px; border-radius: 10px; border: 1px solid transparent;
  transition: background .4s ease, border-color .4s ease;
}
/* 任务链底色：未开始=白色；当前步=白→绿过渡；已完成=渐变浅绿（随任务推动逐步染绿） */
.position-roadmap__track > li.is-todo {
  background: #ffffff; border-color: #e6ebf3;
}
.position-roadmap__track > li.is-current {
  background: linear-gradient(135deg, #ffffff, #e3f7ec); border-color: #b9e4cc;
}
.position-roadmap__track > li.is-done {
  background: linear-gradient(135deg, #e3f7ec, #f0fbf4); border-color: #bce5cf;
}
/* 节点间连线：左半段 ::before / 右半段 ::after */
.position-roadmap__track > li::before,
.position-roadmap__track > li::after {
  content: ""; position: absolute; top: 19px; height: 3px; width: 50%;
  background: #dfe5ee; z-index: 0;
}
.position-roadmap__track > li::before { left: 0; }
.position-roadmap__track > li::after { right: 0; }
.position-roadmap__track > li:first-child::before,
.position-roadmap__track > li:last-child::after { display: none; }
/* 已完成路径染绿：已完成步的两侧、当前步的来路 */
.position-roadmap__track > li.is-done::before,
.position-roadmap__track > li.is-done::after,
.position-roadmap__track > li.is-current::before { background: #34b78a; }

/* 圆点：未开始灰 / 已完成绿勾 / 当前金色脉冲（紧凑版 28px） */
.position-roadmap__dot {
  position: relative; z-index: 1;
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-style: normal; font-size: .74rem; font-weight: 700;
  background: #eef1f6; color: #9aa5b5; border: 2px solid #dfe5ee;
}
.position-roadmap__track > li.is-done .position-roadmap__dot {
  background: #16a578; border-color: #16a578; color: #fff; font-size: .82rem;
}
.position-roadmap__track > li.is-current .position-roadmap__dot {
  background: #d4a92c; border-color: #d4a92c; color: #fff;
  box-shadow: 0 0 0 5px rgba(212, 169, 44, .18);
  animation: roadmapPulse 1.6s ease-out infinite;
}
@keyframes roadmapPulse {
  0% { box-shadow: 0 0 0 3px rgba(212, 169, 44, .35); }
  70% { box-shadow: 0 0 0 9px rgba(212, 169, 44, 0); }
  100% { box-shadow: 0 0 0 3px rgba(212, 169, 44, 0); }
}

/* 步骤标题（最多两行，悬浮可见完整名称与状态；紧凑版字号） */
.position-roadmap__title {
  max-width: 128px; font-size: .85rem; font-weight: 600; line-height: 1.25; color: #8a94a8;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.position-roadmap__track > li.is-done .position-roadmap__title { color: #16a578; }
.position-roadmap__track > li.is-current .position-roadmap__title { color: #b4871f; font-weight: 700; }

.position-roadmap__all-done {
  align-self: center; margin-left: 14px; padding: 5px 14px; border-radius: 999px;
  background: #e7f8f1; color: #16a578; font-size: .88rem; font-weight: 700; white-space: nowrap;
}
.position-roadmap__empty { margin: 0; color: #a1aab8; font-size: .9rem; }

/* 平板（≤1100px）：仍保持「左摘要 + 右路线 + 分组并排」，
 * 摘要列收窄、dl 单行省略（防竖排增高）、节点最小宽收窄 */
@media (max-width: 1100px) {
  .admin-position-monitor__grid > article { grid-template-columns: 168px minmax(0, 1fr); column-gap: 12px; padding: 6px 12px; }
  .admin-position-monitor__grid article > header { grid-template-columns: 26px minmax(0, 1fr); gap: 7px; }
  .admin-position-monitor__grid article > header p { min-height: 0; -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical; overflow: hidden; }
  .admin-position-monitor__grid article > dl { gap: 3px; margin: 6px 0 4px; padding-top: 6px; }
  .admin-position-monitor__grid article > dl div { grid-template-columns: 46px minmax(0, 1fr); gap: 5px; }
  .admin-position-monitor__grid article > dl dd { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .admin-position-monitor__grid article > a { min-height: 30px; }
  .position-roadmap { overflow-x: auto; padding-bottom: 3px; }
  .position-roadmap__track { min-width: max-content; }
  .position-roadmap__track > li { min-width: 62px; }
  .position-roadmap__title { max-width: 104px; font-size: .8rem; }
  .admin-position-monitor .position-roadmap__group { flex: 1 1 0; }
  /* 品质检验记录表（quality-records.js 注入）：窄屏表格横向滚动，避免撑破页面 */
  #daqu-quality-records-panel .dqr-body { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #daqu-quality-records-panel .dqr-table { min-width: max-content; }
}

/* 手机（≤720px）：上下堆叠兜底 */
@media (max-width: 720px) {
  .admin-position-monitor__grid > article { grid-template-columns: 1fr; row-gap: 8px; }
  .admin-position-monitor__grid article > header,
  .admin-position-monitor__grid .admin-position-monitor__progress,
  .admin-position-monitor__grid .admin-position-monitor__meta,
  .admin-position-monitor__grid article > dl,
  .admin-position-monitor__grid article > a,
  .position-roadmap { grid-column: 1 / -1; grid-row: auto; }
}

/* ===== 管理员·岗位任务完成度柱状图：渐变柱 + 细字重标签 ===== */
.admin-chart__grid { stroke: #dde5f0; stroke-width: 1.2; stroke-dasharray: 3 6; }
.admin-chart__bar {
  filter: drop-shadow(0 2px 4px rgba(43, 116, 232, .18));
}
.admin-chart__value {
  fill: #0a397d; font-size: 14px; font-weight: 600;
  paint-order: stroke; stroke: #fff; stroke-width: 4px; stroke-linejoin: round;
}
.admin-chart__label { fill: #48536b; font-size: 12.5px; font-weight: 500; }

/* ===== 人工输入样品码：自绘下拉选择器（替代原生 datalist，兼容平板浏览器） ===== */
.entity-scan-field__manual-form { overflow: visible !important; position: relative; }
.mcp-list {
  position: absolute; top: 100%; left: 0; right: 0; margin-top: 6px;
  max-height: 300px; overflow-y: auto; -webkit-overflow-scrolling: touch;
  background: #fff; border: 1.5px solid #dbe2ee; border-radius: 12px;
  box-shadow: 0 12px 32px rgba(15, 35, 70, .18); z-index: 1200;
}
.mcp-item {
  display: block; width: 100%; padding: 13px 16px; border: 0; background: none;
  text-align: left; font-size: 15px; font-weight: 600; color: #1c2b45;
  border-bottom: 1px solid #f0f2f7; cursor: pointer; letter-spacing: .02em;
}
.mcp-item:last-of-type { border-bottom: 0; }
.mcp-item:hover, .mcp-item:active { background: #eaf2ff; color: #155fc5; }
.mcp-empty, .mcp-more { padding: 12px 16px; font-size: 12.5px; color: #8a94a8; text-align: center; }
@media (max-width: 900px) {
  .mcp-list { max-height: 260px; }
  .mcp-item { padding: 14px 16px; font-size: 16px; }
}

/* ===== 组长审核横幅（work-order-sync.js） ===== */
.wos-banner {
  position: fixed;
  top: 64px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 14px 22px;
  border-radius: 14px;
  background: linear-gradient(135deg, #0a2a56 0%, #0f3d75 60%, #144e92 100%);
  border: 1px solid rgba(226, 183, 102, 0.65);
  box-shadow: 0 10px 32px rgba(4, 22, 48, 0.45), 0 0 0 4px rgba(226, 183, 102, 0.12);
  color: #f3e7cf;
  max-width: min(92vw, 760px);
}
.wos-banner__text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.wos-banner__text strong {
  font-size: 17px;
  letter-spacing: 0.04em;
  color: #f7d491;
}
.wos-banner__text span {
  font-size: 13px;
  color: rgba(243, 231, 207, 0.82);
}
.wos-banner__button {
  flex-shrink: 0;
  padding: 10px 20px;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: #08203f;
  background: linear-gradient(135deg, #f2c96d 0%, #e2b766 55%, #d3a24e 100%);
  box-shadow: 0 4px 14px rgba(226, 183, 102, 0.4);
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.wos-banner__button:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 18px rgba(226, 183, 102, 0.55);
}
.wos-banner__button:active {
  transform: translateY(0);
}
.wos-banner__error {
  font-size: 13px;
  color: #ffb3b3;
}
@media (max-width: 720px) {
  .wos-banner {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    gap: 10px;
    top: 56px;
  }
}

/* 品质验证页右侧卡片防溢出（全宽度生效）：
   1fr 轨道默认 minmax(auto,1fr)，输入框固有最小宽度会把“100.0%”合计框挤出卡片。
   改用 minmax(0,1fr) 允许收缩，并清零输入框最小宽度 */
.quality-form-card .ratio-strip { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
.quality-form-card .ratio-strip input { min-width: 0; width: 100%; box-sizing: border-box; }
.quality-form-card .ratio-strip b { min-width: 64px; box-sizing: border-box; }
/* 外观评分行：右侧“评分 / N”输入框限制在列宽内，防止探出卡片右缘 */
.quality-form-card .appearance-score-row { grid-template-columns: minmax(0, 1fr) 112px; }
.quality-form-card .appearance-score-row > label { min-width: 0; }
.quality-form-card .appearance-score-row > label input { width: 100%; min-width: 0; box-sizing: border-box; }
.quality-form-card .appearance-score-row textarea { min-width: 0; width: 100%; box-sizing: border-box; }

/* ===== 响应式适配（电脑 ↔ 各尺寸平板），2026-09-08 =====
 * 问题1：管理员总览页在 >1200px 视口下横向溢出（1366 溢出 569px、1920 溢出 20px）。
 *   根因：workspace 是单列 grid，隐式列轨道 auto 按内容 max-content 撑宽；
 *   qg-kpis/qg-grid 用裸 1fr（=minmax(auto,1fr)），卡片 min-content 把整页顶宽。
 * 修复：轨道全部改 minmax(0,…)，允许收缩到容器内。
 */
.admin-console__workspace { grid-template-columns: minmax(0, 1fr); }
.qu-gallery { min-width: 0; }
.qu-gallery .qg-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.qu-gallery .qg-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr) minmax(0, 1.32fr); }
.qu-gallery .qg-card { min-width: 0; }
/* 曲块展区：1201–1500px 视口（内容区约 950–1250px）三张图卡太挤，收为 2+1 布局 */
@media (min-width: 1201px) and (max-width: 1500px) {
  .qu-gallery .qg-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
/* 曲块展区：KPI 值字号随宽度微调，避免窄列内换行溢出 */
@media (max-width: 1500px) {
  .qu-gallery .qg-kpi .qg-kpi-value { font-size: 22px; }
}

/* 问题2：岗位工作台统计卡在 901–1550px 视口下大数字被挤出卡片裁切。
 *   根因：v9 主题给卡片内层设了 56px 列间距，窄卡内容不下 → 数字列溢出被 overflow 裁掉。
 * 修复：该区间改用紧凑间距与稍小图标/字号（>1550px 保留原宽间距设计，≤900px 沿用原紧凑规则）。
 */
@media (min-width: 901px) and (max-width: 1550px) {
  .position-summary__card { grid-template-columns: 56px minmax(0, 1fr); gap: 16px; min-height: 120px; padding: 18px 20px; }
  .position-summary__icon { width: 52px; height: 52px; }
  .position-summary__card > div { grid-template-columns: auto auto minmax(0, 1fr); gap: 6px 14px; }
  .position-summary__card > div > span { font-size: 1rem; }
  .position-summary__card strong { font-size: 1.9rem; }
  .position-summary__card small { font-size: .8rem; }
}

/* 问题3：触控目标——平板下侧边栏折叠为纯图标，增大点击区域与顶栏图标按钮 */
@media (max-width: 1050px) {
  aside.app-header .position-nav a { min-height: 48px; }
  aside.app-header .text-button { min-height: 48px; }
}
/* 平板通用：主要操作按钮最小触控高度 44px */
@media (pointer: coarse) {
  .task-action, .primary-button, button[type="submit"] { min-height: 44px; }
}
