/* article.css —— 由 blog/bbr.html 抽取（保持静态站原样式） */
/* ===== 全局样式（与前几篇保持一致） ===== */
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif; line-height: 1.7; color: #1a1a2e; background: #f8fafc; }
        .container { max-width: 96%; margin: 0 auto; padding: 0 24px; }
        a { color: #2563eb; text-decoration: none; }
        a:hover { color: #1d4ed8; }
        img { max-width: 100%; height: auto; display: block; }
        .site-header { background: #0b1120; padding: 16px 0; position: sticky; top: 0; z-index: 100; border-bottom: 1px solid #1e293b; }
        .site-header .container { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
        .logo img { height: 38px; width: auto; }
        .site-nav ul { display: flex; list-style: none; gap: 28px; }
        .site-nav ul li a { color: #94a3b8; font-size: 14px; font-weight: 500; transition: color .2s; }
        .site-nav ul li a:hover { color: #fff; }
        .site-nav ul li a.active { color: #60a5fa; border-bottom: 2px solid #60a5fa; padding-bottom: 4px; }
        .header-actions { display: flex; align-items: center; gap: 12px; }
        .btn-download { background: #2563eb; color: #fff; padding: 8px 22px; border-radius: 6px; font-size: 14px; font-weight: 600; transition: background .2s; display: inline-flex; align-items: center; gap: 6px; }
        .btn-download:hover { background: #1d4ed8; color: #fff; }
        .mobile-toggle { display: none; background: none; border: none; color: #94a3b8; font-size: 24px; cursor: pointer; }
        .mobile-panel { display: none; flex-basis: 100%; padding-top: 16px; border-top: 1px solid #1e293b; }
        .mobile-panel.open { display: block; }
        .mobile-panel ul { list-style: none; }
        .mobile-panel ul li a { display: block; padding: 10px 0; color: #94a3b8; border-bottom: 1px solid #1e293b; }
        .mobile-panel ul li a:hover { color: #fff; }
        .mobile-panel .btn-download { display: inline-block; margin-top: 12px; }
        .article-header { background: #0b1120; padding: 40px 0 48px; border-bottom: 1px solid #1e293b; }
        .article-header .breadcrumb { color: #94a3b8; font-size: 14px; margin-bottom: 16px; }
        .article-header .breadcrumb a { color: #94a3b8; }
        .article-header .breadcrumb a:hover { color: #60a5fa; }
        .article-header .breadcrumb .sep { margin: 0 8px; color: #475569; }
        .article-header h1 { color: #fff; font-size: 38px; font-weight: 800; line-height: 1.3; max-width: 820px; }
        .article-header .article-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; margin-top: 16px; color: #94a3b8; font-size: 14px; }
        .article-header .article-meta .author { display: flex; align-items: center; gap: 8px; }
        .article-header .article-meta .tag { display: inline-block; background: #dbeafe; color: #1d4ed8; font-size: 12px; font-weight: 600; padding: 2px 14px; border-radius: 12px; }
        .article-body { padding: 48px 0 60px; }
        .article-body .container { max-width: 820px; margin: 0 auto; }
        .article-body .featured-image { border-radius: 12px; overflow: hidden; margin-bottom: 32px; background: #e2e8f0; }
        .article-body .featured-image img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
        .article-body .content { font-size: 17px; color: #1e293b; }
        .article-body .content h2 { font-size: 26px; font-weight: 700; color: #0b1120; margin: 36px 0 16px; padding-bottom: 8px; border-bottom: 2px solid #e2e8f0; }
        .article-body .content h3 { font-size: 20px; font-weight: 600; color: #0b1120; margin: 28px 0 12px; }
        .article-body .content p { margin-bottom: 18px; }
        .article-body .content ul, .article-body .content ol { margin: 0 0 18px 24px; }
        .article-body .content li { margin-bottom: 6px; }
        .article-body .content blockquote { border-left: 4px solid #2563eb; padding: 14px 24px; margin: 24px 0; background: #f1f5f9; border-radius: 0 8px 8px 0; color: #334155; font-style: italic; }
        .article-body .content .info-box a { color: #1d4ed8; }
        .info-box { background: #dbeafe; border: 1px solid #93c5fd; padding: 16px 20px; border-radius: 8px; margin: 20px 0; color: #1e3a5f; }
        .article-body .content .info-box strong { color: #1d4ed8; }
        .article-body .content .data-table { width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 15px; }
        .article-body .content .data-table th { background: #0b1120; color: #fff; padding: 10px 16px; text-align: left; }
        .article-body .content .data-table td { padding: 10px 16px; border-bottom: 1px solid #e2e8f0; }
        .article-body .content .data-table tr:nth-child(even) { background: #f8fafc; }
        .article-footer { margin-top: 40px; padding-top: 28px; border-top: 1px solid #e2e8f0; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
        .article-footer .tags { display: flex; flex-wrap: wrap; gap: 8px; }
        .article-footer .tags a { background: #f1f5f9; color: #475569; padding: 4px 16px; border-radius: 16px; font-size: 13px; transition: background .2s; }
        .article-footer .tags a:hover { background: #e2e8f0; color: #0b1120; }
        .article-footer .share { display: flex; gap: 10px; }
        .article-footer .share a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: #f1f5f9; color: #475569; transition: all .2s; font-size: 16px; }
        .article-footer .share a:hover { background: #2563eb; color: #fff; }
        .related-section { background: #fff; padding: 48px 0 56px; border-top: 1px solid #e2e8f0; }
        .related-section h2 { font-size: 24px; font-weight: 700; color: #0b1120; margin-bottom: 28px; text-align: center; }
        .related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; max-width: 1100px; margin: 0 auto; }
        .related-card { background: #f8fafc; border-radius: 10px; overflow: hidden; border: 1px solid #e2e8f0; transition: box-shadow .3s; }
        .related-card:hover { box-shadow: 0 6px 24px rgba(0, 0, 0, 0.06); }
        .related-card .thumb { height: 140px; background: #e2e8f0; overflow: hidden; }
        .related-card .thumb img { width: 100%; height: 140px; object-fit: cover; }
        .related-card .info { padding: 16px 20px 20px; }
        .related-card .info h3 { font-size: 16px; font-weight: 600; color: #0b1120; margin-bottom: 6px; }
        .related-card .info h3 a { color: #0b1120; }
        .related-card .info h3 a:hover { color: #2563eb; }
        .related-card .info p { font-size: 13px; color: #64748b; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; }
        .related-card .info .date { font-size: 12px; color: #64748b; margin-top: 8px; }
        .footer { background: #0b1120; padding: 40px 0 24px; border-top: 1px solid #1e293b; }
        .footer .container { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; }
        .footer .footer-heading { color: #fff; font-size: 14px; font-weight: 600; margin-bottom: 12px; }
        .footer p { color: #94a3b8; font-size: 14px; }
        .footer ul { list-style: none; }
        .footer ul li { padding: 4px 0; }
        .footer ul li a { color: #94a3b8; font-size: 14px; }
        .footer ul li a:hover { color: #fff; }
        .footer-bottom { grid-column: 1 / -1; border-top: 1px solid #1e293b; padding-top: 20px; text-align: center; color: #94a3b8; font-size: 13px; }
        .scroll-top { position: fixed; bottom: 30px; right: 30px; background: #2563eb; color: #fff; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 20px; cursor: pointer; transition: background .2s; z-index: 99; border: none; }
        .scroll-top:hover { background: #1d4ed8; }
        @media (max-width: 1024px) { .related-grid { grid-template-columns: repeat(2, 1fr); } .footer .container { grid-template-columns: 1fr 1fr; } }
        @media (max-width: 768px) { .site-nav { display: none; } .mobile-toggle { display: block; } .article-header h1 { font-size: 26px; } .article-body .content { font-size: 16px; } .related-grid { grid-template-columns: 1fr; } .footer .container { grid-template-columns: 1fr; gap: 24px; } .container { max-width: 100%; padding: 0 16px; } .article-footer { flex-direction: column; align-items: flex-start; } }
        @media (max-width: 480px) { .article-header h1 { font-size: 22px; } .article-body .content h2 { font-size: 22px; } .article-body .content h3 { font-size: 18px; } }
        /* ===== 标准化修复：跳转链接 / 屏幕阅读器文本 / 页脚可读性 ===== */
        .skip-link { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
        .skip-link:focus { position: fixed; left: 16px; top: 12px; width: auto; height: auto; margin: 0; padding: 10px 18px; overflow: visible; clip: auto; z-index: 1000; background: #2563eb; color: #fff; border-radius: 6px; }
        .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
        .footer-bottom a { color: #60a5fa; text-decoration: underline; }
        .tags .tag-item { background: #f1f5f9; color: #475569; padding: 4px 16px; border-radius: 16px; font-size: 13px; }

        /* ===== 标准化修复覆盖层：WCAG 对比度 / 链接区分 / 焦点可见 / 触控目标 / 图标占位 ===== */
        .footer p { color: #94a3b8; }
        .footer-bottom { color: #94a3b8; }
        .footer-bottom a { color: #60a5fa; text-decoration: underline; }
        .page-header .breadcrumb, .article-header .breadcrumb, .hero-download .breadcrumb { color: #94a3b8; }
        .page-header .breadcrumb a, .article-header .breadcrumb a, .hero-download .breadcrumb a { color: #60a5fa; text-decoration: underline; }
        .article-body a, .article-body p a, .article-body li a, .info-box a, .policy-content a, .block a,
        .note-box a, .contact-card .detail a, .download-card .desc a { text-decoration: underline; }
        a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 3px solid #2563eb; outline-offset: 2px; box-shadow: 0 0 0 5px #fff; }
        .mobile-toggle { min-width: 44px; min-height: 44px; }
        .fas, .far, .fab { display: inline-block; width: 1.1em; text-align: center; }
        .table-scroll { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
        .table-scroll > table { margin: 0; }
