/**
 * 无障碍增强样式
 * 焦点可见性 + prefers-reduced-motion 全覆盖
 */

/* ========================================
   焦点可见性（符合 WCAG 2.1 AA）
   ======================================== */

/* 所有可交互元素的焦点样式 */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible {
    outline: 2px solid var(--husir-focus-ring, var(--dm-accent, #ff6b6b));
    outline-offset: 3px;
    border-radius: 4px;
}

/* 移除默认焦点样式（仅在支持 :focus-visible 时） */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
select:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible) {
    outline: none;
}

/* 特定组件焦点样式 */
.abshow-btn:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: 2px;
    box-shadow: 0 0 0 4px var(--husir-focus-ring, var(--dm-accent, #ff6b6b));
}

.abshow-credential-card:focus-visible {
    outline: 3px solid var(--husir-focus-ring, var(--dm-accent, #ff6b6b));
    outline-offset: 4px;
    transform: translateY(-2px);
}

/* 轮播控制按钮焦点 */
.abshow-story-carousel__toggle:focus-visible,
.abshow-history-summary__item:focus-visible {
    outline: 2px solid var(--husir-focus-ring, var(--dm-accent, #ff6b6b));
    outline-offset: 3px;
}

/* 弹窗关闭按钮焦点 */
.abshow-credential-modal__close:focus-visible,
.abshow-image-viewer__close:focus-visible {
    outline: 2px solid #ffffff;
    outline-offset: -4px;
}

/* 触控区域最小尺寸保证（WCAG 2.5.5 AAA） */
button,
a,
input[type="button"],
input[type="submit"],
[role="button"] {
    min-width: 44px;
    min-height: 44px;
}

/* ========================================
   减少动画（prefers-reduced-motion）
   ======================================== */

@media (prefers-reduced-motion: reduce) {
    /* 全局禁用动画 */
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    /* 特定组件降级 */
    .abshow-reveal {
        opacity: 1 !important;
        transform: none !important;
    }

    .abshow-story-carousel__track {
        transition: none !important;
    }

    .abshow-credential-modal,
    .abshow-image-viewer {
        animation: none !important;
    }

    /* 数字动画降级为即时显示 */
    [data-count] {
        animation: none !important;
    }

    /* Swiper 轮播降级 */
    .swiper-slide {
        transition: none !important;
    }
}

/* ========================================
   高对比度模式支持（Windows）
   ======================================== */

@media (prefers-contrast: high) {
    .abshow-btn {
        border: 2px solid currentColor;
    }

    .abshow-credential-card {
        border: 2px solid var(--dm-border, #000000);
    }

    a {
        text-decoration: underline;
    }
}

/* ========================================
   屏幕阅读器优化
   ======================================== */

/* 跳过导航链接（键盘用户） */
.skip-to-content {
    position: fixed;
    top: 0;
    left: 0;
    background: var(--husir-orange, var(--dm-accent, #c63f00));
    color: var(--husir-on-orange, var(--dm-on-accent, #ffffff));
    padding: 12px 20px;
    text-decoration: none;
    font-weight: 600;
    z-index: 10300;
    border-radius: 0 0 8px 0;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-120%);
    transition: opacity .18s ease, transform .18s ease;
}

.skip-to-content:focus-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
    outline: 2px solid #ffffff;
    outline-offset: -4px;
}

/* 隐藏装饰性内容但保留布局 */
[aria-hidden="true"] {
    speak: never;
}

/* live region 样式 */
[aria-live="polite"],
[aria-live="assertive"] {
    position: relative;
}

/* ========================================
   键盘导航增强
   ======================================== */

/* 模态框 focus trap 视觉提示 */
.abshow-credential-modal[aria-modal="true"]:focus-within {
    box-shadow: 0 0 0 3px var(--husir-focus-ring, var(--dm-accent, #ff6b6b));
}

/* Tab 顺序视觉反馈 */
body.user-is-tabbing *:focus {
    outline: 2px dashed var(--husir-focus-ring, var(--dm-accent, #ff6b6b));
    outline-offset: 3px;
}

/* ========================================
   色盲友好调整
   ======================================== */

/* 成功/错误状态不仅靠颜色区分 */
.status-success::before {
    content: "✓ ";
}

.status-error::before {
    content: "✗ ";
}

/* ========================================
   文字大小适配
   ======================================== */

/* 支持浏览器字体缩放（200% WCAG AA） */
@media (min-resolution: 192dpi) {
    body {
        font-size: 16px;
    }
}
