/* ============================================================
 * 无障碍增强层 · 样式部分 (zaka-a11y.css)
 * 只加不减：不改布局、不改结构，只补焦点可见性/对比度/动效/高对比模式
 * 关闭方式：给 <html> 去掉对应类（za11y-focus / za11y-contrast / za11y-motion / za11y-touch）
 * ============================================================ */

/* ---------- 1. 键盘焦点必须看得见（WCAG 2.4.7 / 2.4.11） ---------- */
html.za11y-focus :is(a, button, input, select, textarea, summary, [tabindex], [role="button"]):focus-visible,
html.za11y-focus :is(.ant-btn, .ant-menu-item, .ant-tabs-tab, .ant-pagination-item, .ant-dropdown-menu-item):focus-visible {
  outline: 3px solid #1A3BB8 !important;
  outline-offset: 2px !important;
}
/* 深色底 / 深色弹层里换成亮色焦点环，保证反差 */
html.za11y-focus .ant-modal :is(button, input, [tabindex]):focus-visible,
html.za11y-focus .ant-drawer :is(button, input, [tabindex]):focus-visible,
html.za11y-focus .ant-dropdown :is(a, button, [tabindex]):focus-visible {
  outline: 3px solid #6E8BFF !important;
  outline-offset: 2px !important;
}
/* 鼠标点击不画环，只有键盘操作才画（保持原视觉） */
html.za11y-focus :is(a, button, input, select, textarea, [tabindex]):focus:not(:focus-visible) {
  outline: none !important;
}

/* ---------- 2. 「跳到主内容」链接（键盘/读屏用户第一站） ---------- */
.zaka-skip-link {
  position: fixed;
  top: -100px;
  left: 12px;
  z-index: 2147483000;
  padding: 10px 16px;
  background: #1A3BB8;
  color: #fff !important;
  font-size: 14px;
  line-height: 1.4;
  border-radius: 6px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .28);
  text-decoration: none !important;
  transition: top .15s ease-out;
}
.zaka-skip-link:focus,
.zaka-skip-link:focus-visible {
  top: 8px;
  outline: 3px solid #fff !important;
  outline-offset: -5px;
}

/* ---------- 3. 屏幕阅读器专用文本（视觉上不可见，读屏可读） ---------- */
.zaka-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ---------- 4. 尊重「减少动态效果」系统设置 ---------- */
@media (prefers-reduced-motion: reduce) {
  html.za11y-motion *,
  html.za11y-motion *::before,
  html.za11y-motion *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- 5. 色彩对比度 ---------- */
/* 5.1 主按钮：品牌蓝 #4F6EF7 上的白字只有 4.28:1，压深一档到 5.1:1 */
html.za11y-contrast .ant-btn-primary:not(:disabled) {
  background-color: #4361E8 !important;
  border-color: #4361E8 !important;
}
html.za11y-contrast .ant-btn-primary:not(:disabled):hover {
  background-color: #3A55D6 !important;
  border-color: #3A55D6 !important;
}
html.za11y-contrast .ant-btn-primary:not(:disabled):active {
  background-color: #334CC4 !important;
  border-color: #334CC4 !important;
}
/* 5.2 主要链接 / 文字按钮同色系，压深以达标 */
html.za11y-contrast .ant-btn-link:not(:disabled),
html.za11y-contrast a.ant-typography:not(.ant-typography-secondary) {
  color: #2B49C8 !important;
}
/* 5.3 由脚本逐个测出、动态打标的低对比文本（保留原色相，只压深亮度） */
html.za11y-contrast [data-za11y-contrast] {
  /* 值由脚本写入内联样式，这里只做兜底 */
  color: #3D3D3D;
}

/* ---------- 6. 触屏：点击目标不小于 44×44（WCAG 2.5.5） ---------- */
@media (pointer: coarse) {
  html.za11y-touch .ant-btn:not(.ant-btn-sm) {
    min-height: 44px;
  }
  html.za11y-touch .ant-btn.ant-btn-icon-only {
    min-width: 44px;
  }
  html.za11y-touch .ant-switch {
    min-height: 32px;
  }
}

/* ---------- 7. 强制色彩 / 高对比度模式（Windows 高对比、浏览器强制配色）---------- */
@media (forced-colors: active) {
  html.za11y-focus :is(a, button, [tabindex], [role="button"]):focus-visible {
    outline: 3px solid Highlight !important;
  }
  .ant-card,
  .ant-modal-content,
  .ant-drawer-content,
  .ant-table,
  .ant-input,
  .ant-input-affix-wrapper,
  .ant-select-selector,
  .ant-dropdown-menu,
  .ant-tooltip-inner,
  .zaka-skip-link {
    border: 1px solid CanvasText !important;
    forced-color-adjust: auto;
  }
  .ant-tag,
  .ant-badge-count {
    border: 1px solid CanvasText !important;
  }
  /* 选中态/状态色在强制配色下会丢，用系统色补回来 */
  .ant-menu-item-selected,
  .ant-table-row-selected > td {
    outline: 2px solid Highlight !important;
    outline-offset: -2px;
  }
}
@media (prefers-contrast: more) {
  html.za11y-contrast .ant-card,
  html.za11y-contrast .ant-input,
  html.za11y-contrast .ant-select-selector,
  html.za11y-contrast .ant-table {
    border-color: #595959 !important;
  }
  html.za11y-contrast .ant-btn-default {
    border-color: #595959 !important;
    color: #262626 !important;
  }
}

/* ---------- 8. 键盘可达的「可点卡片」 ---------- */
html.za11y-focus [data-za11y="kbd-clickable"]:focus-visible {
  outline: 3px solid #1A3BB8 !important;
  outline-offset: 2px !important;
  border-radius: 6px;
}
