:root{--bg:#ffffff;--bg-alt:#f7f8fa;--bg-card:#ffffff;--bg-card-hover:#f7f8fa;--bg-elevated:#ffffff;--fg:#1a1a1a;--fg-dim:#5a5a5a;--muted:#9a9a9a;--accent:#4d6bfe;--accent2:#4d6bfe;--accent3:#4d6bfe;--gold:#d97706;--glow:transparent;--border:#e8e8e8;--border-hover:#4d6bfe;--hairline:#e8e8e8;--success:#059669;--warning:#d97706;--danger:#dc2626;--radius:8px;--radius-sm:6px;--max-width:1200px;--nav-height:64px;--font-mono:ui-monospace,"SF Mono","JetBrains Mono","Cascadia Mono",Menlo,Consolas,"Liberation Mono",monospace;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--card-hover-shadow:0 2px 8px rgba(0,0,0,0.06);--link-color:#4d6bfe;--nav-active-color:#4d6bfe;--focus-border:#4d6bfe;--focus-ring:0 0 0 3px rgba(77,107,254,0.22);--nav-bg:rgba(255,255,255,0.9);--nav-mobile-bg:rgba(255,255,255,0.98);--nav-hover-bg:#f7f8fa;--input-bg:#ffffff;--scrollbar-track:#f7f8fa;--table-head-bg:#f7f8fa;--footer-shadow:none;--breadcrumb-sep:#b9b9b9;--grid-line:transparent;--blob-1:transparent;--blob-2:transparent;--hero-glow:transparent;--logo-icon-shadow:none;--logo-gradient:linear-gradient(135deg,#4d6bfe,#4d6bfe);--stat-gradient:linear-gradient(135deg,#4d6bfe,#4d6bfe);--gradient:linear-gradient(135deg,#4d6bfe,#4d6bfe);--gradient-2:linear-gradient(135deg,#4d6bfe,#4d6bfe);--gradient-3:linear-gradient(135deg,#4d6bfe,#4d6bfe);--gradient-hover:linear-gradient(135deg,#4d6bfe,#4d6bfe);--badge-bg:#f7f8fa;--badge-color:#4d6bfe;--badge-border:#e8e8e8;--badge-success-bg:#ecfdf5;--badge-success-border:#a7f3d0;--badge-warning-bg:#fffbeb;--badge-warning-border:#fde68a;--badge-danger-bg:#fef2f2;--badge-danger-border:#fecaca;--badge-neutral-bg:#f7f8fa;--badge-neutral-border:#e8e8e8;--progress-done-bg:#ecfdf5;--progress-done-border:#a7f3d0;--progress-current-bg:#eff3ff;--progress-current-color:#4d6bfe;--progress-current-shadow:none;--filter-clear-bg:#fef2f2;--filter-clear-hover-bg:#fecaca;--filter-clear-border:#fecaca;--toggle-bg:#ffffff;--toggle-border:var(--border);--toggle-hover-bg:#f7f8fa;--toggle-icon-color:var(--fg-dim);--code-bg:#f7f8fa;}[data-theme="light"]{--bg:#ffffff;--bg-alt:#f7f8fa;--bg-card:#ffffff;--bg-card-hover:#f7f8fa;--bg-elevated:#ffffff;--fg:#1a1a1a;--fg-dim:#5a5a5a;--muted:#9a9a9a;--accent:#4d6bfe;--accent2:#4d6bfe;--accent3:#4d6bfe;--gold:#d97706;--glow:transparent;--border:#e8e8e8;--border-hover:#4d6bfe;--hairline:#e8e8e8;--success:#059669;--warning:#d97706;--danger:#dc2626;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--card-hover-shadow:0 2px 8px rgba(0,0,0,0.06);--link-color:#4d6bfe;--nav-active-color:#4d6bfe;--focus-border:#4d6bfe;--focus-ring:0 0 0 3px rgba(77,107,254,0.22);--nav-bg:rgba(255,255,255,0.9);--nav-mobile-bg:rgba(255,255,255,0.98);--nav-hover-bg:#f7f8fa;--input-bg:#ffffff;--scrollbar-track:#f7f8fa;--table-head-bg:#f7f8fa;--footer-shadow:none;--breadcrumb-sep:#b9b9b9;--grid-line:transparent;--blob-1:transparent;--blob-2:transparent;--hero-glow:transparent;--logo-icon-shadow:none;--stat-gradient:linear-gradient(135deg,#4d6bfe,#4d6bfe);--badge-bg:#f7f8fa;--badge-color:#4d6bfe;--badge-border:#e8e8e8;--badge-success-bg:#ecfdf5;--badge-success-border:#a7f3d0;--badge-warning-bg:#fffbeb;--badge-warning-border:#fde68a;--badge-danger-bg:#fef2f2;--badge-danger-border:#fecaca;--badge-neutral-bg:#f7f8fa;--badge-neutral-border:#e8e8e8;--progress-done-bg:#ecfdf5;--progress-done-border:#a7f3d0;--progress-current-bg:#eff3ff;--progress-current-color:#4d6bfe;--progress-current-shadow:none;--filter-clear-bg:#fef2f2;--filter-clear-hover-bg:#fecaca;--filter-clear-border:#fecaca;--toggle-bg:#ffffff;--toggle-hover-bg:#f7f8fa;--toggle-icon-color:#5a5a5a;--code-bg:#f7f8fa;}[data-theme="dark"]{--bg:#0f0f0f;--bg-alt:#1a1a1a;--bg-card:#171717;--bg-card-hover:#1f1f1f;--bg-elevated:#1a1a1a;--fg:#ededed;--fg-dim:#b3b3b3;--muted:#8a8a8a;--accent:#7b93ff;--accent2:#7b93ff;--accent3:#7b93ff;--gold:#f59e0b;--glow:transparent;--border:#2a2a2a;--border-hover:#7b93ff;--hairline:#2a2a2a;--success:#34d399;--warning:#f59e0b;--danger:#f87171;--shadow-sm:none;--shadow-md:none;--shadow-lg:none;--card-hover-shadow:0 2px 10px rgba(0,0,0,0.4);--link-color:#7b93ff;--nav-active-color:#7b93ff;--focus-border:#7b93ff;--focus-ring:0 0 0 3px rgba(123,147,255,0.28);--nav-bg:rgba(15,15,15,0.9);--nav-mobile-bg:rgba(15,15,15,0.98);--nav-hover-bg:#1f1f1f;--input-bg:#171717;--scrollbar-track:#1a1a1a;--table-head-bg:#1a1a1a;--footer-shadow:none;--breadcrumb-sep:#555;--grid-line:transparent;--blob-1:transparent;--blob-2:transparent;--hero-glow:transparent;--logo-icon-shadow:none;--stat-gradient:linear-gradient(135deg,#7b93ff,#7b93ff);--badge-bg:#1f1f1f;--badge-color:#7b93ff;--badge-border:#2a2a2a;--badge-success-bg:#0f1f17;--badge-success-border:#14532d;--badge-warning-bg:#1f1806;--badge-warning-border:#713f12;--badge-danger-bg:#1f0f0f;--badge-danger-border:#7f1d1d;--badge-neutral-bg:#1f1f1f;--badge-neutral-border:#2a2a2a;--progress-done-bg:#0f1f17;--progress-done-border:#14532d;--progress-current-bg:#161a2e;--progress-current-color:#7b93ff;--progress-current-shadow:none;--filter-clear-bg:#1f0f0f;--filter-clear-hover-bg:#7f1d1d;--filter-clear-border:#7f1d1d;--toggle-bg:#171717;--toggle-hover-bg:#1f1f1f;--toggle-icon-color:#b3b3b3;--code-bg:#1a1a1a;}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;background:var(--bg);color:var(--fg);line-height:1.65;font-size:15px;min-height:100vh;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}body,.navbar,.nav-links,.card,.filter-bar,.data-table,.sidebar-card,.footer,.badge,.progress-step,.filter-clear,.theme-toggle,.bg-decoration::before,.bg-decoration::after{transition:background-color 0.3s ease,color 0.3s ease,border-color 0.3s ease,box-shadow 0.3s ease;}a{color:var(--link-color);text-decoration:none;transition:color 0.2s ease;}a:hover{color:var(--accent3);}img{max-width:100%;height:auto;}svg{flex-shrink:0;}::selection{background:var(--accent);color:#fff;}::-webkit-scrollbar{width:10px;height:10px;}::-webkit-scrollbar-track{background:var(--scrollbar-track);}::-webkit-scrollbar-thumb{background:rgba(148,178,220,0.24);border-radius:99px;border:2px solid var(--scrollbar-track);}::-webkit-scrollbar-thumb:hover{background:var(--accent);}*:focus-visible{outline:2px solid var(--accent2);outline-offset:2px;border-radius:3px;}.skip-link{position:absolute;top:-60px;left:0;background:var(--accent);color:#fff !important;padding:0.6rem 1.1rem;z-index:9999;border-radius:0 0 var(--radius-sm) 0;font-size:0.85rem;font-weight:700;transition:top 0.2s ease;}.skip-link:focus{top:0;}.screen-reader-text{position:absolute !important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;border:0;padding:0;margin:-1px;}.bg-decoration{display:none;}.main{flex:1;padding-top:var(--nav-height);position:relative;z-index:1;}.navbar.sticky-nav+.main{padding-top:0;}.page-container{max-width:var(--max-width);margin:0 auto;padding:2.75rem 1.5rem 4rem;}.navbar{position:fixed;top:0;left:0;right:0;height:var(--nav-height);background:var(--nav-bg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border);z-index:1000;display:flex;align-items:center;}.navbar::after{content:none;}.nav-container{max-width:var(--max-width);width:100%;margin:0 auto;padding:0 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;}.nav-logo{display:flex;align-items:center;gap:0.6rem;font-size:1.15rem;font-weight:800;color:var(--fg);letter-spacing:-0.02em;flex-shrink:0;}.nav-logo .logo-icon{width:34px;height:34px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:900;color:#fff;}.nav-logo span:not(.logo-icon){color:var(--fg);}.nav-logo .logo-image{vertical-align:middle;border-radius:6px;transition:transform 0.3s ease,box-shadow 0.3s ease;}.nav-logo:hover .logo-image{transform:scale(1.06);box-shadow:0 0 20px var(--glow);}.nav-links{display:flex;align-items:center;gap:0.15rem;list-style:none;margin-left:auto;}.nav-links a{position:relative;display:block;padding:0.5rem 0.85rem;color:var(--fg-dim);font-size:0.85rem;font-weight:500;letter-spacing:0.01em;border-radius:var(--radius-sm);transition:color 0.2s ease,background 0.2s ease;}.nav-links a::after{content:"";position:absolute;left:50%;bottom:2px;width:0;height:2px;border-radius:2px;background:var(--accent);transition:width 0.28s ease,left 0.28s ease;}.nav-links a:hover{color:var(--fg);background:var(--nav-hover-bg);}.nav-links a:hover::after,.nav-links a.active::after{width:60%;left:20%;}.nav-links a.active{color:var(--nav-active-color);background:var(--badge-bg);}.nav-search{position:relative;display:flex;align-items:center;flex:0 1 200px;min-width:0;margin-left:0.75rem;}.nav-search .nav-search-icon{position:absolute;left:0.72rem;width:15px;height:15px;color:var(--muted);pointer-events:none;}.nav-search input[type="search"]{width:100%;padding:0.48rem 0.85rem 0.48rem 2.1rem;background:var(--input-bg);border:1px solid var(--border);border-radius:99px;color:var(--fg);font-size:0.8rem;font-family:inherit;transition:border-color 0.2s ease,box-shadow 0.2s ease;}.nav-search input[type="search"]::placeholder{color:var(--muted);}.nav-search input[type="search"]:focus{outline:none;border-color:var(--focus-border);box-shadow:var(--focus-ring);}.nav-search input[type="search"]::-webkit-search-cancel-button{filter:grayscale(1);}.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:0.55rem;border-radius:var(--radius-sm);}.nav-toggle span{display:block;width:22px;height:2px;background:var(--fg);border-radius:2px;transition:transform 0.3s ease,opacity 0.2s ease;}.nav-toggle span+span{margin-top:5px;}.nav-toggle.open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}.nav-toggle.open span:nth-child(2){opacity:0;}.nav-toggle.open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}.theme-toggle{display:flex;align-items:center;justify-content:center;width:38px;height:38px;margin-left:0.5rem;background:var(--toggle-bg);border:1px solid var(--toggle-border);border-radius:var(--radius-sm);cursor:pointer;color:var(--toggle-icon-color);transition:background 0.25s ease,border-color 0.25s ease,color 0.25s ease,transform 0.25s ease;flex-shrink:0;}.theme-toggle:hover{background:var(--toggle-hover-bg);border-color:var(--accent);color:var(--accent);transform:translateY(-1px);}.theme-toggle svg{width:18px;height:18px;transition:transform 0.4s ease;}.theme-toggle:hover .icon-moon{transform:rotate(-25deg);}.theme-toggle:hover .icon-sun{transform:rotate(25deg);}.theme-toggle .icon-sun{display:none;}.theme-toggle .icon-moon{display:block;}[data-theme="light"] .theme-toggle .icon-sun{display:block;}[data-theme="light"] .theme-toggle .icon-moon{display:none;}.hero{position:relative;text-align:center;padding:5rem 1.5rem 4rem;max-width:940px;margin:0 auto;}.hero::before{content:none;}.hero>*{position:relative;z-index:1;}.hero-tag{display:inline-flex;align-items:center;gap:0.5rem;padding:0.34rem 0.95rem 0.34rem 0.75rem;border-radius:99px;background:var(--badge-bg);border:1px solid var(--badge-border);color:var(--badge-color);font-size:0.74rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;margin-bottom:1.5rem;}.hero-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);}.hero h1{font-size:clamp(2rem,5.2vw,3.5rem);font-weight:900;line-height:1.14;letter-spacing:-0.035em;margin-bottom:1.15rem;color:var(--fg);}.hero h1 .gradient-text{color:var(--accent);}.hero p{font-size:1.05rem;color:var(--fg-dim);max-width:640px;margin:0 auto 2.25rem;line-height:1.8;}.hero p.hero-subtitle{max-width:720px;margin:0 auto 0.85rem;font-size:clamp(0.92rem,2vw,1.08rem);font-weight:500;letter-spacing:0.04em;color:var(--accent);line-height:1.7;}.hero p.hero-subtitle+p{margin-top:0;}.hero-actions{display:flex;gap:0.85rem;justify-content:center;flex-wrap:wrap;}.page-head{position:relative;padding:0.5rem 0 2.25rem;}.page-head h1{font-size:clamp(1.7rem,3.6vw,2.3rem);font-weight:850;line-height:1.2;letter-spacing:-0.03em;color:var(--fg);margin-bottom:0.6rem;}.page-head p{max-width:62ch;font-size:0.95rem;line-height:1.75;color:var(--fg-dim);}.page-head::after{content:"";position:absolute;left:0;bottom:1.35rem;width:44px;height:2px;border-radius:2px;background:var(--accent);}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.78rem 1.65rem;border-radius:8px;font-size:0.875rem;font-weight:600;font-family:inherit;letter-spacing:0.01em;line-height:1.2;cursor:pointer;border:1px solid transparent;transition:transform 0.18s ease,background 0.18s ease,border-color 0.18s ease,color 0.18s ease;}.btn-primary{background:var(--accent);color:#fff;font-weight:600;}.btn-primary:hover{color:#fff;background:var(--accent);filter:brightness(1.06);}.btn-secondary{background:var(--bg-card);color:var(--fg);border-color:var(--border);}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--accent);color:var(--fg);}.btn:active{transform:scale(0.985);}.btn-sm{padding:0.58rem 1rem;font-size:0.8rem;font-weight:650;}.btn-outline{background:transparent;border:1px solid var(--border);color:var(--fg-dim);}.btn-outline:hover{background:var(--badge-bg);border-color:var(--accent);color:var(--accent);}.stats-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin:0 auto 3.5rem;max-width:980px;}.stat-item{position:relative;padding:1.75rem 1rem;text-align:center;background:var(--bg-card);transition:background 0.3s ease;}.stat-item:hover{background:var(--bg-card-hover);}.stat-num{font-family:var(--font-mono);font-size:2.1rem;font-weight:700;line-height:1.1;letter-spacing:-0.02em;font-variant-numeric:tabular-nums;color:var(--accent);}.stat-label{font-size:0.7rem;color:var(--muted);margin-top:0.5rem;text-transform:uppercase;letter-spacing:0.12em;font-weight:600;}.section{margin-bottom:4rem;}.section-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;padding-bottom:0.9rem;border-bottom:1px solid var(--hairline);}.section-title{display:flex;align-items:center;gap:0.7rem;font-size:1.3rem;font-weight:750;letter-spacing:-0.02em;color:var(--fg);}.section-title::before{content:"";width:3px;height:22px;border-radius:2px;background:var(--accent);}.section-link{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.82rem;font-weight:650;color:var(--link-color);white-space:nowrap;transition:gap 0.2s ease,color 0.2s ease;}.section-link::after{content:"\2192";transition:transform 0.2s ease;}.section-link:hover::after{transform:translateX(4px);}.card-grid{display:grid;gap:1.15rem;}.card-grid-2{grid-template-columns:repeat(2,1fr);}.card-grid-3{grid-template-columns:repeat(3,1fr);}.card-grid-4{grid-template-columns:repeat(4,1fr);}.card-grid-auto{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));}.card{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:0.7rem;padding:1.5rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,background 0.2s ease;}.card>*{position:relative;z-index:1;}.card:hover{background:var(--bg-card-hover);border-color:var(--border-hover);box-shadow:var(--card-hover-shadow);}.card:active{transform:scale(0.99);}.card-link{display:block;color:inherit;text-decoration:none;}.card-link:hover{color:inherit;}.card-title{font-size:1.05rem;font-weight:700;line-height:1.4;letter-spacing:-0.015em;color:var(--fg);transition:color 0.2s ease;}.card-link:hover .card-title{color:var(--accent);}.card-subtitle{font-size:0.82rem;color:var(--muted);overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}.card-cover{width:100%;aspect-ratio:16 / 10;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:0.35rem;border:1px solid var(--hairline);transition:transform 0.4s ease;}.card:hover .card-cover{transform:scale(1.015);}.card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem;font-size:0.78rem;color:var(--muted);margin-top:auto;}.card-meta span{display:inline-flex;align-items:center;gap:0.3rem;}.badge{display:inline-flex;align-items:center;gap:0.28rem;padding:0.2rem 0.6rem;border-radius:6px;font-size:0.7rem;font-weight:650;letter-spacing:0.02em;line-height:1.5;white-space:nowrap;background:var(--badge-bg);color:var(--badge-color);border:1px solid var(--badge-border);transition:transform 0.2s ease,background 0.2s ease,border-color 0.2s ease;}.badge-success{background:var(--badge-success-bg);color:var(--success);border-color:var(--badge-success-border);}.badge-warning{background:var(--badge-warning-bg);color:var(--warning);border-color:var(--badge-warning-border);}.badge-danger{background:var(--badge-danger-bg);color:var(--danger);border-color:var(--badge-danger-border);}.badge-neutral{background:var(--badge-neutral-bg);color:var(--muted);border-color:var(--badge-neutral-border);}.badge-lg{padding:0.38rem 0.85rem;font-size:0.78rem;font-weight:700;border-radius:8px;}.badge-stock{font-family:var(--font-mono);font-size:0.72rem;letter-spacing:0.04em;padding:0.18rem 0.5rem;}.badge-tag{padding:0.32rem 0.8rem;border-radius:99px;font-size:0.72rem;font-weight:600;background:var(--badge-bg);color:var(--badge-color);border:1px solid var(--badge-border);text-decoration:none;display:inline-flex;align-items:center;}.badge-tag:hover{background:var(--accent);border-color:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px -6px var(--glow);}.doc-no{font-family:var(--font-mono);font-size:0.74rem;background:var(--code-bg);border:1px solid var(--hairline);padding:0.12rem 0.42rem;border-radius:5px;color:var(--fg-dim);}.status-row{margin-bottom:0.9rem;}.filter-bar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:2rem;box-shadow:var(--shadow-sm);}.filter-row{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap;margin-bottom:0.8rem;}.filter-row:last-child{margin-bottom:0;}.filter-label{font-size:0.7rem;font-weight:700;color:var(--muted);white-space:nowrap;text-transform:uppercase;letter-spacing:0.1em;}.filter-select,.filter-input{background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.58rem 0.8rem;font-size:0.82rem;font-family:inherit;color:var(--fg);cursor:pointer;transition:border-color 0.2s ease,box-shadow 0.2s ease,background 0.2s ease;}.filter-select:hover,.filter-input:hover{border-color:var(--border-hover);}.filter-select:focus,.filter-input:focus{outline:none;border-color:var(--focus-border);box-shadow:var(--focus-ring);}.filter-input{flex:1;min-width:190px;cursor:text;}.filter-input::placeholder{color:var(--muted);}.filter-input-wrap{position:relative;flex:1;min-width:190px;}.filter-input-wrap .filter-input{width:100%;padding-right:2.1rem;}.filter-input-wrap .filter-clear-inline{position:absolute;right:0.55rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;font-size:1.05rem;color:var(--muted);padding:0.2rem;line-height:1;display:none;}.filter-input-wrap .filter-clear-inline.visible{display:block;}.filter-clear{display:inline-flex;align-items:center;gap:0.3rem;margin-left:auto;padding:0.5rem 0.9rem;background:var(--filter-clear-bg);color:var(--danger);border:1px solid var(--filter-clear-border);border-radius:var(--radius-sm);font-size:0.78rem;font-weight:650;font-family:inherit;cursor:pointer;transition:background 0.2s ease,transform 0.2s ease;}.filter-clear:hover{background:var(--filter-clear-hover-bg);transform:translateY(-1px);}.data-table{width:100%;border-collapse:collapse;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);}.data-table table{width:100%;border-collapse:collapse;}.data-table th{text-align:left;padding:0.85rem 1.1rem;font-size:0.68rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);background:var(--table-head-bg);border-bottom:1px solid var(--border);white-space:nowrap;}.data-table td{padding:0.85rem 1.1rem;font-size:0.85rem;color:var(--fg-dim);border-bottom:1px solid var(--hairline);vertical-align:middle;}.data-table tr:last-child td{border-bottom:none;}.data-table tr{transition:background 0.2s ease;}.data-table tr:hover td{background:var(--bg-card-hover);color:var(--fg);}.data-table td a{font-weight:600;}.list-count{margin-bottom:1rem;font-family:var(--font-mono);font-size:0.76rem;letter-spacing:0.07em;color:var(--muted);}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}.data-table:not(table){overflow-x:auto;-webkit-overflow-scrolling:touch;}.data-table>table,.table-scroll>.data-table{min-width:620px;}.search-form{margin-bottom:2rem;}.progress-tracker{display:flex;align-items:stretch;overflow-x:auto;padding-bottom:0.5rem;margin:1.5rem 0;}.progress-step{position:relative;flex-shrink:0;padding:0.6rem 0.9rem;text-align:center;font-size:0.7rem;font-weight:600;color:var(--muted);background:var(--bg-card);border:1px solid var(--border);transition:transform 0.2s ease,box-shadow 0.2s ease,background 0.2s ease,color 0.2s ease;}.progress-step:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}.progress-step:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;}.progress-step+.progress-step{border-left:none;}.progress-step.done{background:var(--progress-done-bg);border-color:var(--progress-done-border);color:var(--success);}.progress-step.current{background:var(--progress-current-bg);border-color:var(--accent);color:var(--progress-current-color);font-weight:750;box-shadow:var(--progress-current-shadow);animation:currentPulse 2.4s ease-in-out infinite;}.progress-step:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);}@keyframes currentPulse{0%,100%{box-shadow:var(--progress-current-shadow);}50%{box-shadow:0 0 26px var(--glow);}}.timeline{list-style:none;}.timeline-item{position:relative;display:flex;gap:1.4rem;padding:1.3rem 0 1.3rem 1.4rem;border-bottom:1px solid var(--hairline);border-left:2px solid transparent;transition:border-color 0.3s ease,padding-left 0.3s ease,background 0.3s ease;}.timeline-item::before{content:"";position:absolute;left:-5px;top:1.75rem;width:8px;height:8px;border-radius:50%;background:var(--bg);border:2px solid var(--border);transition:border-color 0.3s ease,box-shadow 0.3s ease,background 0.3s ease;}.timeline-item:last-child{border-bottom:none;}.timeline-item:hover{border-left-color:var(--accent);padding-left:1.7rem;}.timeline-item:hover::before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 12px var(--accent);}.timeline-date{flex-shrink:0;width:96px;padding-top:0.15rem;font-family:var(--font-mono);font-size:0.76rem;font-variant-numeric:tabular-nums;letter-spacing:0.02em;color:var(--muted);}.timeline-body{flex:1;min-width:0;font-size:0.88rem;color:var(--fg-dim);line-height:1.75;}.timeline-title{font-size:1rem;font-weight:650;line-height:1.45;margin-bottom:0.5rem;color:var(--fg);}.timeline-title a{color:inherit;}.timeline-title a:hover{color:var(--accent);}.timeline-cover{width:100%;max-height:190px;object-fit:cover;border-radius:var(--radius-sm);margin-bottom:0.6rem;border:1px solid var(--hairline);}.timeline-body .card-meta{margin-top:0.55rem;}.timeline>li.comment,.timeline>li.pingback{position:relative;padding:1.3rem 0 1.3rem 1.3rem;border-bottom:1px solid var(--hairline);border-left:2px solid transparent;transition:border-color 0.3s ease;}.timeline>li.comment:hover{border-left-color:var(--accent);}.comment-body{font-size:0.88rem;color:var(--fg-dim);line-height:1.75;}.comment-body p{margin-bottom:0.7rem;}.comment-author{display:flex;align-items:center;gap:0.6rem;font-weight:650;color:var(--fg);margin-bottom:0.3rem;}.comment-author .avatar{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);}.comment-author .says{color:var(--muted);font-weight:400;font-size:0.8rem;}.comment-metadata{font-size:0.74rem;color:var(--muted);margin-bottom:0.6rem;}.comment-metadata a{color:var(--muted);}.comment-metadata a:hover{color:var(--accent);}.comment-body .reply a{display:inline-flex;align-items:center;padding:0.24rem 0.7rem;font-size:0.74rem;font-weight:650;border-radius:99px;background:var(--badge-bg);border:1px solid var(--badge-border);color:var(--badge-color);}.comment-body .reply a:hover{background:var(--accent);border-color:var(--accent);color:#fff;}.timeline .children{list-style:none;margin:1rem 0 0 0.5rem;padding-left:1.1rem;border-left:1px solid var(--border);}.timeline .children>li.comment{padding:1rem 0 1rem 1rem;}.breadcrumb{display:flex;align-items:center;gap:0.5rem;font-size:0.78rem;color:var(--muted);margin-bottom:1.5rem;}.breadcrumb a{color:var(--muted);}.breadcrumb a:hover{color:var(--link-color);}.breadcrumb-sep{color:var(--breadcrumb-sep);}.detail-header{margin-bottom:2.25rem;}.detail-header h1{font-size:clamp(1.6rem,3.4vw,2.15rem);font-weight:850;line-height:1.24;letter-spacing:-0.03em;margin-bottom:0.6rem;color:var(--fg);}.detail-header .detail-sub{font-size:0.95rem;color:var(--muted);margin-bottom:1rem;}.detail-header>.card-cover{max-height:380px;margin-bottom:1.5rem;aspect-ratio:auto;}.detail-meta{display:flex;flex-wrap:wrap;gap:0.5rem;}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:2.5rem;align-items:start;}.detail-sidebar{display:flex;flex-direction:column;gap:1.15rem;min-width:0;}.detail-section{margin-bottom:2.25rem;}.detail-section h2{font-size:1.15rem;font-weight:750;letter-spacing:-0.015em;margin-bottom:1rem;padding-bottom:0.6rem;border-bottom:1px solid var(--hairline);color:var(--fg);}.detail-section h3{font-size:1rem;font-weight:700;margin:1.5rem 0 0.75rem;color:var(--fg);}.detail-section p{color:var(--fg-dim);margin-bottom:1rem;line-height:1.85;}.detail-info-table{width:100%;border-collapse:collapse;}.detail-info-table th,.detail-info-table td{padding:0.55rem 0;font-size:0.84rem;border-bottom:1px solid var(--hairline);vertical-align:top;}.detail-info-table th{width:40%;text-align:left;font-weight:600;color:var(--muted);}.detail-info-table td{color:var(--fg);}.detail-info-table tr:last-child th,.detail-info-table tr:last-child td{border-bottom:none;}.detail-info-table.compact th,.detail-info-table.compact td{padding:0.34rem 0;font-size:0.79rem;}.source-list{font-size:0.82rem;color:var(--muted);padding-left:1.1rem;}.source-list li{margin-bottom:0.4rem;}.source-list a{color:var(--link-color);}.source-list a:hover{color:var(--accent3);}.sidebar-card{position:relative;overflow:hidden;padding:1.35rem 1.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:transform 0.35s cubic-bezier(0.22,0.61,0.36,1),box-shadow 0.35s ease,border-color 0.3s ease;}.sidebar-card::before{content:none;}.sidebar-card:hover{border-color:var(--border-hover);box-shadow:var(--card-hover-shadow);}.sidebar-card h3{display:flex;align-items:center;gap:0.5rem;font-size:0.7rem;font-weight:800;text-transform:uppercase;letter-spacing:0.12em;color:var(--muted);margin-bottom:1rem;}.sidebar-card p{font-size:0.85rem;color:var(--fg-dim);line-height:1.7;}.sidebar-highlight::after{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--accent);}.highlight-stats{display:flex;gap:0.6rem;margin-bottom:1rem;}.highlight-stats.single{justify-content:center;}.highlight-stat{flex:1;min-width:0;padding:0.9rem 0.6rem;text-align:center;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--input-bg);transition:transform 0.3s cubic-bezier(0.22,0.61,0.36,1),border-color 0.25s ease,box-shadow 0.25s ease;}.highlight-stat:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:0 8px 20px -8px var(--glow);}.highlight-num{font-family:var(--font-mono);font-size:1.45rem;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums;background:var(--stat-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;word-break:break-word;}.highlight-label{font-size:0.64rem;font-weight:600;color:var(--muted);margin-top:0.3rem;text-transform:uppercase;letter-spacing:0.08em;}.sidebar-stats{text-align:center;padding:1.7rem 1.25rem;}.stats-highlight{margin-bottom:0.9rem;}.stats-highlight .stats-num{font-family:var(--font-mono);font-size:2.3rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;background:var(--stat-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}.stats-highlight .stats-label{font-size:0.7rem;font-weight:600;color:var(--muted);margin-top:0.45rem;text-transform:uppercase;letter-spacing:0.12em;}.stats-link{display:inline-flex;align-items:center;gap:0.35rem;padding:0.4rem 0.85rem;font-size:0.76rem;font-weight:650;border-radius:99px;color:var(--badge-color);background:var(--badge-bg);border:1px solid var(--badge-border);transition:background 0.25s ease,color 0.25s ease,border-color 0.25s ease,box-shadow 0.25s ease;}.stats-link::after{content:"\2192";transition:transform 0.25s ease;}.stats-link:hover{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 6px 16px -8px var(--glow);}.stats-link:hover::after{transform:translateX(4px);}.sidebar-related .related-list{list-style:none;display:flex;flex-direction:column;gap:0.5rem;}.related-item{display:flex;align-items:center;gap:0.7rem;padding:0.62rem 0.75rem;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);background:var(--input-bg);transition:background 0.25s ease,border-color 0.25s ease,transform 0.25s ease,box-shadow 0.25s ease;}.related-item:hover{border-color:var(--accent);transform:translateX(4px);box-shadow:var(--shadow-sm);}.related-index{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-family:var(--font-mono);font-size:0.68rem;font-weight:700;color:#fff;background:var(--accent);transition:transform 0.25s ease;}.related-item:hover .related-index{transform:scale(1.08);}.related-content-wrap{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.12rem;}.related-title{font-size:0.82rem;color:var(--fg-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color 0.2s ease;}.related-item:hover .related-title{color:var(--fg);font-weight:600;}.related-date{font-family:var(--font-mono);font-size:0.66rem;color:var(--muted);}.sidebar-tags .tag-cloud{display:flex;flex-wrap:wrap;gap:0.4rem;}.sidebar-meta .meta-row{display:flex;align-items:center;gap:0.5rem;padding:0.4rem 0;font-size:0.78rem;color:var(--fg-dim);border-bottom:1px dashed var(--border);}.sidebar-meta .meta-row:last-child{border-bottom:none;}.sidebar-meta .meta-row svg{width:15px;height:15px;color:var(--accent);}.sidebar-share .share-buttons{display:flex;gap:0.55rem;margin-bottom:0.5rem;}.share-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--input-bg);border:1px solid var(--border);color:var(--fg-dim);cursor:pointer;transition:transform 0.25s cubic-bezier(0.22,0.61,0.36,1),background 0.25s ease,border-color 0.25s ease,color 0.25s ease;}.share-btn:hover{transform:translateY(-3px);background:var(--badge-bg);border-color:var(--accent);color:var(--accent);}.share-feedback{display:block;padding:0.32rem;font-size:0.72rem;text-align:center;color:var(--muted);border-radius:var(--radius-sm);transition:all 0.3s ease;}.share-feedback.copied{color:var(--success);font-weight:650;background:var(--badge-success-bg);animation:feedbackPop 0.4s ease;}@keyframes feedbackPop{0%{transform:scale(0.85);opacity:0;}60%{transform:scale(1.04);}100%{transform:scale(1);opacity:1;}}.sidebar-actions .action-buttons{display:flex;flex-direction:column;gap:0.55rem;}.event-date-block{display:flex;align-items:center;gap:0.55rem;padding:0.6rem 0.8rem;margin-bottom:0.9rem;font-family:var(--font-mono);font-size:0.84rem;font-weight:600;color:var(--fg);background:var(--input-bg);border:1px solid var(--border);border-left:3px solid var(--accent2);border-radius:var(--radius-sm);}.event-date-block svg{color:var(--accent2);}.glossary-abbr-block{display:flex;align-items:baseline;gap:0.85rem;padding:0.85rem 1.1rem;background:var(--input-bg);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);}.glossary-abbr-label{font-size:0.7rem;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);}.glossary-abbr{font-family:var(--font-mono);font-size:1.3rem;font-weight:700;letter-spacing:0.04em;color:var(--accent);}.form-group{margin-bottom:1.2rem;}.form-label{display:block;font-size:0.76rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-bottom:0.45rem;}.form-label .required{color:var(--danger);}.form-input,.form-textarea,.form-select{width:100%;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.68rem 0.9rem;font-size:0.88rem;font-family:inherit;color:var(--fg);transition:border-color 0.25s ease,box-shadow 0.25s ease;}.form-input::placeholder,.form-textarea::placeholder{color:var(--muted);}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--focus-border);box-shadow:var(--focus-ring);}.form-textarea{min-height:130px;resize:vertical;line-height:1.7;}.contact-form{display:flex;flex-direction:column;gap:1.1rem;}.contact-form .form-row{display:flex;flex-direction:column;gap:0.35rem;}.contact-form .form-row label{font-size:0.78rem;font-weight:650;color:var(--fg-dim);}.contact-form input[type="text"],.contact-form input[type="email"],.contact-form input[type="tel"],.contact-form textarea{padding:0.7rem 0.95rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--fg);font-size:0.9rem;font-family:inherit;transition:border-color 0.25s ease,box-shadow 0.25s ease;}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--focus-border);box-shadow:var(--focus-ring);}.contact-form textarea{resize:vertical;min-height:130px;line-height:1.7;}.contact-form .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;}.contact-form button[type="submit"]{align-self:flex-start;padding:0.78rem 2rem;border:none;border-radius:10px;background:var(--accent);color:#fff;font-size:0.9rem;font-weight:700;font-family:inherit;cursor:pointer;transition:transform 0.2s ease,box-shadow 0.2s ease,opacity 0.2s ease;box-shadow:0 10px 26px -12px var(--glow);}.contact-form button[type="submit"]:hover{transform:translateY(-2px);box-shadow:0 16px 32px -12px var(--glow);}.contact-form button[type="submit"]:disabled{opacity:0.55;cursor:not-allowed;transform:none;}.contact-feedback{display:none;margin-top:1rem;padding:0.85rem 1.1rem;border-radius:var(--radius-sm);font-size:0.88rem;line-height:1.6;}.contact-feedback.success{display:block;background:var(--badge-success-bg);border:1px solid var(--badge-success-border);color:var(--success);}.contact-feedback.error{display:block;background:var(--badge-danger-bg);border:1px solid var(--badge-danger-border);color:var(--danger);}.comment-respond{margin-top:2.5rem;}.comment-reply-title{font-size:1.15rem;font-weight:750;margin-bottom:1rem;color:var(--fg);}.comment-reply-title small{font-size:0.78rem;font-weight:500;}.comment-form .comment-form-comment,.comment-form .comment-form-author,.comment-form .comment-form-email,.comment-form .comment-form-url{margin-bottom:0.9rem;}.comment-form label{display:block;font-size:0.76rem;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);margin-bottom:0.4rem;}.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{width:100%;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:0.68rem 0.9rem;font-size:0.88rem;font-family:inherit;color:var(--fg);transition:border-color 0.25s ease,box-shadow 0.25s ease;}.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--focus-border);box-shadow:var(--focus-ring);}.comment-form textarea{resize:vertical;min-height:130px;line-height:1.7;}.comment-form .form-submit{margin-bottom:0;}.comment-form .submit{cursor:pointer;font-family:inherit;}.comment-notes,.logged-in-as{font-size:0.78rem;color:var(--muted);margin-bottom:0.9rem;}.pagination{display:flex;justify-content:center;flex-wrap:wrap;gap:0.5rem;margin-top:3rem;}.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 0.6rem;font-family:var(--font-mono);font-size:0.82rem;font-weight:600;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);color:var(--fg-dim);transition:all 0.2s ease;}.pagination .page-numbers:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-1px);}.pagination .page-numbers.current{background:var(--accent);border-color:transparent;color:#fff;font-weight:700;}.pagination .page-numbers.dots{background:none;border-color:transparent;}.pagination .page-numbers:active{transform:scale(0.95);}.footer{position:relative;z-index:1;margin-top:auto;padding:3.5rem 1.5rem 1.75rem;background:var(--bg-alt);border-top:1px solid var(--border);box-shadow:var(--footer-shadow);}.footer::before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:linear-gradient( 90deg,transparent,var(--accent) 25%,var(--accent2) 60%,transparent );opacity:0.55;}.footer-container{max-width:var(--max-width);margin:0 auto;}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2.25rem;margin-bottom:2.5rem;}.footer-brand{display:flex;align-items:center;gap:0.55rem;font-size:1.1rem;font-weight:800;letter-spacing:-0.02em;margin-bottom:0.85rem;color:var(--fg);}.footer-brand .logo-icon{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:0.85rem;font-weight:900;color:#fff;background:var(--accent);border-radius:8px;}.footer-desc{font-size:0.82rem;color:var(--muted);line-height:1.75;margin-bottom:1rem;max-width:34ch;}.footer-col h4{font-size:0.7rem;font-weight:800;text-transform:uppercase;letter-spacing:0.12em;color:var(--muted);margin-bottom:0.9rem;}.footer-col ul{list-style:none;}.footer-col li{margin-bottom:0.5rem;}.footer-col a{display:inline-block;font-size:0.82rem;color:var(--fg-dim);transition:color 0.2s ease,padding-left 0.2s ease;}.footer-col a:hover{color:var(--accent);padding-left:0.3rem;}.footer-social{display:flex;flex-wrap:wrap;gap:0.5rem;margin-top:0.85rem;}.footer-social .social-link{display:inline-flex;align-items:center;padding:0.28rem 0.7rem;font-size:0.72rem;font-weight:600;border-radius:99px;background:var(--badge-neutral-bg);border:1px solid var(--border);color:var(--fg-dim);transition:transform 0.2s ease,border-color 0.2s ease,color 0.2s ease;}.footer-social .social-link:hover{transform:translateY(-2px);border-color:var(--accent);color:var(--accent);}.footer-legal{display:flex;flex-wrap:wrap;align-items:center;gap:0.5rem 0.9rem;font-size:0.75rem;color:var(--muted);}.footer-legal a{color:var(--muted);}.footer-legal a:hover{color:var(--accent);}.footer-legal .legal-sep{color:var(--border);}.footer-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.6rem;padding-top:1.5rem;border-top:1px solid var(--hairline);}.footer-bottom p,.footer-bottom a{font-size:0.75rem;color:var(--muted);}.footer-bottom a:hover{color:var(--accent);}.text-gradient{color:var(--accent);}.text-muted{color:var(--muted);}.text-center{text-align:center;}.mt-1{margin-top:0.5rem;}.mt-2{margin-top:1rem;}.mt-3{margin-top:1.5rem;}.mb-1{margin-bottom:0.5rem;}.mb-2{margin-bottom:1rem;}.mb-3{margin-bottom:1.5rem;}.empty-state{padding:3.5rem 1.5rem;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:var(--radius);background:var(--bg-card);}.entry-content{font-size:0.95rem;}.entry-content p{color:var(--fg-dim);margin-bottom:1.25rem;line-height:1.9;}.entry-content h2,.entry-content h3,.entry-content h4{color:var(--fg);letter-spacing:-0.02em;margin:1.75rem 0 0.85rem;}.entry-content h2{font-size:1.2rem;font-weight:750;}.entry-content h3{font-size:1.05rem;font-weight:700;}.entry-content ul,.entry-content ol{margin-bottom:1.25rem;padding-left:1.35rem;}.entry-content li{color:var(--fg-dim);margin-bottom:0.5rem;line-height:1.8;}.entry-content blockquote{margin:1.5rem 0;padding:0.85rem 1.15rem;border-left:3px solid var(--accent);background:var(--badge-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--fg-dim);}.entry-content code{font-family:var(--font-mono);font-size:0.86em;padding:0.15rem 0.42rem;background:var(--code-bg);border:1px solid var(--hairline);border-radius:5px;}.entry-content pre{margin-bottom:1.5rem;padding:1.15rem;background:var(--input-bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow-x:auto;}.entry-content pre code{background:none;border:none;padding:0;}.entry-content img{border-radius:var(--radius-sm);border:1px solid var(--hairline);}.entry-content a{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--border);}.entry-content a:hover{text-decoration-color:var(--accent);}.entry-content table{width:100%;border-collapse:collapse;margin-bottom:1.5rem;font-size:0.86rem;}.entry-content th,.entry-content td{padding:0.6rem 0.85rem;border:1px solid var(--border);text-align:left;}.entry-content th{background:var(--table-head-bg);color:var(--fg);font-weight:700;}.error-page{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:56vh;padding:4rem 1.5rem;text-align:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-card);}.grid-overlay,.glow-ring{display:none;}.error-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;}.error-content h2{margin:1rem 0 0.5rem;font-size:1.5rem;font-weight:750;letter-spacing:-0.02em;color:var(--fg);}.lost-icon{font-size:1.6rem;opacity:0.75;margin-bottom:0.25rem;}.error-code{display:flex;align-items:center;justify-content:center;gap:0.35rem;font-family:var(--font-mono);font-size:clamp(3.4rem,12vw,6rem);font-weight:700;line-height:1;letter-spacing:-0.04em;}.error-code span{color:var(--accent);}.error-code span:nth-child(2){}.error-content h2{color:var(--fg);}.footer-hint{position:relative;z-index:1;margin-top:1.5rem;font-size:0.75rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted);}.reading-progress{position:fixed;top:0;left:0;height:3px;width:0;background:var(--progress-color,var(--accent));z-index:9999;transition:width 0.1s linear;}.back-to-top{position:fixed;right:2rem;bottom:2rem;z-index:9998;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;border-radius:8px;cursor:pointer;color:#fff;background:var(--accent);box-shadow:0 12px 28px -12px var(--glow);opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity 0.3s ease,visibility 0.3s ease,transform 0.3s ease,box-shadow 0.3s ease;}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0);}.back-to-top:hover{transform:translateY(-3px);box-shadow:0 18px 34px -12px var(--glow);}.back-to-top:active{transform:scale(0.94);}.navbar.sticky-nav{position:sticky;top:0;z-index:1000;}.navbar.solid-nav{backdrop-filter:none !important;-webkit-backdrop-filter:none !important;background:var(--bg-alt) !important;}.detail-grid.sidebar-left{grid-template-columns:320px minmax(0,1fr);}.detail-grid.sidebar-left .detail-main{order:2;}.detail-grid.sidebar-left .detail-sidebar{order:1;}.detail-grid.sidebar-none{grid-template-columns:1fr;}.detail-grid.sidebar-none .detail-sidebar{display:none;}@media (min-width:900px){.detail-sidebar{align-self:start;}}.footer-grid.footer-cols-2{grid-template-columns:repeat(2,1fr);}.footer-grid.footer-cols-3{grid-template-columns:repeat(3,1fr);}.footer-grid.footer-cols-4{grid-template-columns:repeat(4,1fr);}.no-animations *,.no-animations *::before,.no-animations *::after{animation:none !important;transition:none !important;}.alignleft{float:left;margin:0 1.5rem 1rem 0;}.alignright{float:right;margin:0 0 1rem 1.5rem;}.aligncenter{display:block;margin-left:auto;margin-right:auto;}.alignwide{max-width:calc(var(--max-width)+160px);}.alignfull{max-width:100%;}.wp-caption{max-width:100%;}.wp-caption-text{margin-top:0.5rem;font-size:0.78rem;color:var(--muted);}.sticky{display:block;}.bypostauthor{display:block;}.widget{margin-bottom:1.5rem;}.widget-title{font-size:0.7rem;font-weight:800;text-transform:uppercase;letter-spacing:0.12em;color:var(--muted);margin-bottom:0.85rem;}.widget ul{list-style:none;}.widget li{margin-bottom:0.5rem;}@keyframes fadeInUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}.fade-in{animation:fadeInUp 0.6s cubic-bezier(0.22,0.61,0.36,1) forwards;}.fade-in-delay-1{opacity:0;animation:fadeInUp 0.6s cubic-bezier(0.22,0.61,0.36,1) 0.08s forwards;}.fade-in-delay-2{opacity:0;animation:fadeInUp 0.6s cubic-bezier(0.22,0.61,0.36,1) 0.16s forwards;}.fade-in-delay-3{opacity:0;animation:fadeInUp 0.6s cubic-bezier(0.22,0.61,0.36,1) 0.24s forwards;}@media (max-width:1080px){.footer-grid{grid-template-columns:1fr 1fr;}}@media (max-width:960px){.card-grid-4,.card-grid-3{grid-template-columns:repeat(2,1fr);}.detail-grid,.detail-grid.sidebar-left{grid-template-columns:minmax(0,1fr);}.detail-grid.sidebar-left .detail-main{order:1;}.detail-grid.sidebar-left .detail-sidebar{order:2;}}@media (max-width:768px){.navbar{background:var(--nav-mobile-bg);backdrop-filter:none;-webkit-backdrop-filter:none;}.nav-links{display:none;position:fixed;top:var(--nav-height);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:0.85rem;background:var(--nav-mobile-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);max-height:calc(100vh - var(--nav-height));overflow-y:auto;}.nav-links.open{display:flex;}.nav-links a{width:100%;padding:0.8rem 1rem;}.nav-links a::after{display:none;}.nav-toggle{display:block;}.theme-toggle{margin-left:auto;}.nav-search{display:none;}.card-grid-2,.card-grid-3,.card-grid-4,.card-grid-auto{grid-template-columns:1fr;}.hero{padding:3.5rem 1rem 2.5rem;}.stats-bar{grid-template-columns:repeat(2,1fr);}.timeline-item{flex-direction:column;gap:0.4rem;}.timeline-date{width:auto;}.footer-grid,.footer-grid.footer-cols-2,.footer-grid.footer-cols-3,.footer-grid.footer-cols-4{grid-template-columns:1fr;gap:1.75rem;}.back-to-top{right:1rem;bottom:1rem;width:42px;height:42px;}.contact-form .form-grid{grid-template-columns:1fr;}.page-container{padding:2rem 1.1rem 3rem;}}@media (max-width:480px){.hero-actions{flex-direction:column;align-items:stretch;}.btn{width:100%;}.stat-num{font-size:1.7rem;}.highlight-stats{flex-direction:column;}.footer-bottom{justify-content:flex-start;}}.key-points{margin-bottom:2.25rem;padding:1.35rem 1.5rem;background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);}.key-points-title{font-size:0.72rem;font-weight:800;text-transform:uppercase;letter-spacing:0.12em;color:var(--muted);margin-bottom:0.85rem;}.key-points-list{list-style:none;display:grid;gap:0.55rem;}.key-points-list li{position:relative;padding-left:1.35rem;font-size:0.88rem;line-height:1.75;color:var(--fg-dim);}.key-points-list li::before{content:"";position:absolute;left:0;top:0.62em;width:6px;height:6px;border-radius:50%;background:var(--accent);}.method-list{padding-left:1.35rem;counter-reset:none;}.method-list li{margin-bottom:0.6rem;font-size:0.88rem;line-height:1.8;color:var(--fg-dim);}@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;}.fade-in,.fade-in-delay-1,.fade-in-delay-2,.fade-in-delay-3{opacity:1 !important;}}.content-related{margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--border)}.content-related-title{font-size:1.05rem;font-weight:650;color:var(--fg);margin:0 0 .9rem}.content-related-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}.content-related-list li{margin:0}.content-related-list a{display:inline-block;padding:.42rem .85rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input-bg);color:var(--fg-dim);font-size:.84rem;text-decoration:none;transition:background .2s ease,border-color .2s ease,color .2s ease}.content-related-list a:hover{border-color:var(--accent);color:var(--accent)}@media print{.navbar,.footer,.bg-decoration,.back-to-top,.reading-progress,.filter-bar,.theme-toggle,.detail-sidebar,.pagination{display:none !important;}body{background:#fff;color:#000;}.main{padding-top:0;}.card,.sidebar-card,.data-table{box-shadow:none;border-color:#ccc;}}
/* nova-aero:touch-responsive-2026-13 */
/* ---------------------------------------------------------------------
 * 2026-10-13 移动端 / 触控优化
 *
 * 审计发现：主题有 48 处 :hover 规则但没有任何 hover:hover 守卫。触屏设备
 * 点击后 :hover 会「粘住」——按钮保持按下高亮，直到用户点到别处才消失，
 * 在移动端表现为选中态错乱。同时缺少 tap-highlight 抑制与点击区域下限。
 * --------------------------------------------------------------------- */

/* 1) 触屏上彻底关闭 hover 粘滞：仅在真正支持悬停的指针设备上启用 hover 效果 */
@media (hover: none), (pointer: coarse) {
  .card:hover,
  .card-link:hover,
  .btn:hover,
  .social-link:hover,
  .nav-links a:hover,
  .nav-links a::after,
  .footer a:hover,
  .badge:hover,
  .filter-select:hover,
  .filter-input:hover,
  .theme-toggle:hover,
  .nav-toggle:hover,
  .card,
  .btn,
  .social-link,
  .theme-toggle,
  .nav-toggle,
  .back-to-top:hover {
    transform: none !important;
    transition: none !important;
  }
  /* 触摸按下用更明确的反馈替代悬停 */
  .btn:active,
  .card:active,
  .nav-links a:active,
  .theme-toggle:active,
  .nav-toggle:active {
    transform: scale(0.98);
    opacity: 0.85;
  }
}

/* 2) 去掉移动端点击时的灰色高亮方块，交给 :active 反馈 */
a,
button,
input,
select,
textarea,
label,
.card,
.btn,
summary {
  -webkit-tap-highlight-color: transparent;
}

/* 3) 触控目标不小于 44x44（WCAG 2.5.5 / 平台 HIG 建议值），视觉尺寸不变，
      用伪元素撑出可点击区域，避免破坏原有排版。 */
@media (pointer: coarse) {
  .theme-toggle::after,
  .nav-toggle::after,
  .theme-toggle::before,
  .nav-toggle::before {
    content: '';
    position: absolute;
    inset: -8px;
  }
  .theme-toggle,
  .nav-toggle,
  .social-link {
    position: relative;
  }
  .filter-select,
  .filter-input {
    min-height: 44px;
  }
  /* 筛选栏内的标签与控件在窄屏改为纵向堆叠，避免横向挤压 */
  .filter-row {
    flex-wrap: wrap;
  }
}

/* 4) 极窄屏（<=360px）收窄容器留白，标题与统计数字不再溢出 */
@media (max-width: 360px) {
  .page-container {
    padding-left: 14px;
    padding-right: 14px;
  }
  h1 {
    font-size: 1.5rem;
    word-break: break-word;
  }
  .stat-num {
    font-size: 1.4rem;
  }
  /* 卡片网格强制单列，杜绝横向滚动条 */
  .card-grid,
  .card-grid-2,
  .card-grid-3,
  .card-grid-auto {
    grid-template-columns: 1fr !important;
  }
  .timeline-item {
    padding-left: 20px;
  }
  /* 表格类内容允许横向滚动而不是撑破布局 */
  table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
}

/* 5) 320px 超窄屏兜底：iPhone SE 一代宽度 */
@media (max-width: 320px) {
  .nav-container,
  .footer-container {
    padding-left: 12px;
    padding-right: 12px;
  }
  .hero h1 {
    font-size: 1.35rem;
  }
  .btn {
    padding: 10px 16px;
  }
}

/* nova-aero:design-scale-2026-10-13 */
/* ==========================================================================
   NovaAero 设计刻度层 —— 现代 SaaS 数据密度
   2026-10-13

   审计结论：原样式表有 61 种间距、41 种字号、650/750/850 等非标准字重、
   175 处散落hex 色值，层级只能靠"看着差不多"区分。本层给出统一刻度并把
   离群值映射回刻度，不删除任何原有规则，可整块回滚。
   ========================================================================== */

:root {
  /* ---- 间距刻度：4px 基数，8 级 ---- */
  --sp-1: 4px;   --sp-2: 8px;   --sp-3: 12px;  --sp-4: 16px;
  --sp-5: 24px;  --sp-6: 32px;  --sp-7: 48px;  --sp-8: 64px;
  --sp-9: 96px;  --sp-10: 128px;

  /* ---- 字号刻度：7 级，1.200 minor third ---- */
  --fs-xs:   0.75rem;   /* 12px 辅助信息、标签 */
  --fs-sm:   0.875rem;  /* 14px 次要正文、表格 */
  --fs-base: 1rem;      /* 16px 正文基准 */
  --fs-md:   1.125rem;  /* 18px 卡片标题 */
  --fs-lg:   1.375rem;  /* 22px 区块小标题 */
  --fs-xl:   1.75rem;   /* 28px 区块标题 */
  --fs-2xl:  2.5rem;    /* 40px 页面 H1 */

  /* ---- 字重刻度：仅 4 档 ---- */
  --fw-regular: 400;
  --fw-medium:  500;
  --fw-semibold:600;
  --fw-bold:    700;

  /* ---- 行高层级 ---- */
  --lh-tight:  1.25;
  --lh-snug:   1.4;
  --lh-normal: 1.6;
  --lh-relaxed:1.75;

  /* ---- 层级阴影：克制的两档 + 悬浮态 ---- */
  --elev-0: none;
  --elev-1: 0 1px 2px rgba(16,24,40,.04), 0 1px 3px rgba(16,24,40,.06);
  --elev-2: 0 2px 4px rgba(16,24,40,.04), 0 4px 12px rgba(16,24,40,.07);
  --elev-3: 0 8px 24px rgba(16,24,40,.10), 0 2px 6px rgba(16,24,40,.05);

  /* ---- 统一焦点环（键盘可见）---- */
  --focus-width: 2px;
  --focus-offset: 2px;
  --focus-color: var(--accent);

  /* ---- 统一过渡节奏 ---- */
  --dur-fast:   120ms;
  --dur-base:   180ms;
  --dur-slow:   260ms;
  --ease-out: cubic-bezier(.16,1,.3,1);
}

/* ==========================================================================
   1. 字重归一 —— 映射非标准值到刻度
   ========================================================================== */
h1, h2, h3, h4, h5, h6, .card-title, .section-title, .stat-num {
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  line-height: var(--lh-tight);
}
.card-title, .badge, .btn, .nav-links a, .stat-label { font-weight: var(--fw-medium); }
body, p, li, td, .text-muted, .footer-desc { font-weight: var(--fw-regular); }

/* 消灭 650/750/850 这类插值字重（浏览器对可变字重支持不一，视觉不可预测） */
* { font-variation-settings: normal; font-synthesis-weight: none; }

/* ==========================================================================
   2. 字号归一 —— 把离群字号拉到最近刻度档
   ========================================================================== */
.hero h1, .hero .hero-tag + h1 { font-size: var(--fs-2xl); line-height: var(--lh-tight); letter-spacing: -0.03em; }
h1 { font-size: var(--fs-2xl); line-height: var(--lh-tight); }
.section-title, .detail-grid h2, .page-title { font-size: var(--fs-xl); letter-spacing: -0.02em; }
.card-title, h3 { font-size: var(--fs-md); line-height: var(--lh-snug); letter-spacing: -0.01em; }
.stat-num {
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
}
.badge, .filter-label, .meta-tag, .cert-badge {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0;
}
body { font-size: var(--fs-base); line-height: var(--lh-relaxed); }
p, li { font-size: var(--fs-base); line-height: var(--lh-relaxed); }
.text-muted, .stat-label, .footer-desc, .card-meta, small { font-size: var(--fs-sm); line-height: var(--lh-normal); }
table, .data-table { font-size: var(--fs-sm); line-height: var(--lh-normal); }

/* ==========================================================================
   3. 间距节奏 —— 区块之间用统一垂直韵律
   ========================================================================== */
.section { margin-bottom: var(--sp-9); }
.section + .section { margin-top: var(--sp-9); }
.section-header {
  margin-bottom: var(--sp-5);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-4);
}
.section-header .section-title { margin: 0; }
.page-container > * + * { margin-top: var(--sp-8); }
.card-grid, .card-grid-auto { gap: var(--sp-4); }
.timeline > * + * { margin-top: var(--sp-4); }

/* ==========================================================================
   4. Hero —— 首屏层级与可信度
   ========================================================================== */
.hero {
  padding: var(--sp-10) 0 var(--sp-9);
  text-align: left;
  max-width: 760px;
}
.hero-tag {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-1) var(--sp-3);
  border-radius: 999px;
  background: color-mix(in srgb, var(--accent) 8%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 22%, transparent);
  color: var(--accent);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  letter-spacing: 0.02em;
  margin-bottom: var(--sp-4);
}
.hero h1 { margin-bottom: var(--sp-4); }
.hero p {
  font-size: 1.0625rem;
  line-height: var(--lh-relaxed);
  color: var(--fg-dim);
  max-width: 62ch;
  margin-bottom: var(--sp-6);
}
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.gradient-text {
  background: none;
  -webkit-text-fill-color: currentColor;
  color: var(--accent);
}

/* ==========================================================================
   5. 统计条 —— 数据可信度，数字用等宽避免跳动
   ========================================================================== */
.stats-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  overflow: hidden;
}
.stat-item {
  padding: var(--sp-5) var(--sp-4);
  text-align: center;
  border-right: 1px solid var(--border);
  transition: background var(--dur-base) var(--ease-out);
}
.stat-item:last-child { border-right: none; }
.stat-item:hover { background: var(--bg-card-hover); }
.stat-num {
  display: block;
  margin-bottom: var(--sp-1);
  font-variant-numeric: tabular-nums;
  background: none;
  -webkit-text-fill-color: currentColor;
}
.stat-label {
  color: var(--fg-dim);
  letter-spacing: 0.01em;
}

/* ==========================================================================
   6. 卡片 —— 统一边框、悬浮反馈、层级
   ========================================================================== */
.card, .sidebar-card, .data-table {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  box-shadow: var(--elev-1);
  transition: box-shadow var(--dur-base) var(--ease-out),
              border-color var(--dur-base) var(--ease-out),
              transform var(--dur-base) var(--ease-out);
}
.card:hover, .card-link:hover .card, .card:hover .card {
  box-shadow: var(--elev-2);
  border-color: var(--border-hover);
  transform: translateY(-2px);
}
.card-title {
  margin-bottom: var(--sp-2);
  color: var(--fg);
  transition: color var(--dur-fast) var(--ease-out);
}
.card:hover .card-title { color: var(--accent); }
.card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
  color: var(--fg-dim);
}

/* 卡片网格：统一为稳定的列宽节奏 */
.card-grid-3 { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.card-grid-auto { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }

/* ==========================================================================
   7. 徽章 —— 统一圆角与字重
   ========================================================================== */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px var(--sp-2);
  border-radius: var(--radius-sm);
  border: 1px solid var(--badge-border, var(--border));
  background: var(--badge-bg, var(--bg-alt));
  color: var(--badge-color, var(--fg-dim));
  line-height: 1.5;
  white-space: nowrap;
}

/* ==========================================================================
   8. 按钮 —— 统一高度、内边距与过渡
   ========================================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-2);
  min-height: 40px;
  padding: 0 var(--sp-5);
  border-radius: var(--radius-sm);
  font-size: var(--fs-base);
  font-weight: var(--fw-medium);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background var(--dur-base) var(--ease-out),
              border-color var(--dur-base) var(--ease-out),
              color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out);
}
.btn-primary {
  background: var(--accent);
  color: #fff;
  box-shadow: var(--elev-1);
}
.btn-primary:hover { filter: brightness(1.06); box-shadow: var(--elev-2); }
.btn-secondary {
  background: var(--bg-card);
  color: var(--fg);
  border-color: var(--border);
}
.btn-secondary:hover { border-color: var(--border-hover); background: var(--bg-card-hover); }

/* ==========================================================================
   9. 表单 —— 输入高度与聚焦态统一
   ========================================================================== */
.filter-input, .filter-select, input[type="text"], input[type="email"],
input[type="search"], input[type="url"], textarea, select {
  min-height: 40px;
  padding: 0 var(--sp-3);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--bg-card);
  color: var(--fg);
  font-size: var(--fs-base);
  font-family: inherit;
  transition: border-color var(--dur-fast) var(--ease-out),
              box-shadow var(--dur-fast) var(--ease-out);
}
textarea { padding: var(--sp-3); min-height: 120px; line-height: var(--lh-normal); }
::placeholder { color: var(--fg-dim); opacity: 0.75; }

/* ==========================================================================
   10. 焦点环 —— 全站统一，键盘用户必须看得见
   ========================================================================== */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
  border-radius: var(--radius-sm);
}
:where(a, button, input, select, textarea, summary, [tabindex]):focus:not(:focus-visible) {
  outline: none;
}
/* 旧样式里零散的 focus 规则统一交给 focus-visible，避免鼠标点击出现外框 */
.card-link:focus-visible, .badge:focus-visible, .social-link:focus-visible {
  outline: var(--focus-width) solid var(--focus-color);
  outline-offset: var(--focus-offset);
}

/* ==========================================================================
   11. 链接 —— 下划线策略，兼顾可读性与克制
   ========================================================================== */
.main a:not(.btn):not(.card-link):not(.nav-links a):not(.social-link):not(.breadcrumb a) {
  text-decoration: none;
  border-bottom: 1px solid color-mix(in srgb, currentColor 28%, transparent);
  transition: border-color var(--dur-fast) var(--ease-out);
}
.main a:not(.btn):not(.card-link):not(.nav-links a):not(.social-link):hover {
  border-bottom-color: currentColor;
}

/* ==========================================================================
   12. 导航 —— 高度与分隔
   ========================================================================== */
.navbar { border-bottom: 1px solid var(--border); }
.nav-container { max-width: var(--max-width); }
.nav-links a {
  font-size: var(--fs-base);
  font-weight: var(--fw-medium);
  color: var(--fg-dim);
  transition: color var(--dur-fast) var(--ease-out);
}
.nav-links a:hover, .nav-links a.current-menu-item > a { color: var(--fg); }

/* ==========================================================================
   13. 表格 —— 表头与斑马纹，数据站的可扫读性
   ========================================================================== */
.data-table, table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
}
.data-table th, table th {
  background: var(--table-head-bg, var(--bg-alt));
  font-weight: var(--fw-semibold);
  font-size: var(--fs-sm);
  color: var(--fg-dim);
  text-align: left;
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--border);
}
.data-table td, table td {
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--hairline, var(--border));
}
.data-table tbody tr, table tbody tr { transition: background var(--dur-fast) var(--ease-out); }
.data-table tbody tr:hover, table tbody tr:hover { background: var(--bg-card-hover); }
.data-table tbody tr:last-child td, table tbody tr:last-child td { border-bottom: none; }

/* ==========================================================================
   14. 时间线 —— 事件流的节点与连接线
   ========================================================================== */
.timeline { position: relative; padding-left: var(--sp-5); }
.timeline-item { position: relative; padding-left: var(--sp-4); }
.timeline-item::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);
}
.timeline-item:not(:last-child)::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 1.4em;
  bottom: -0.6em;
  width: 1px;
  background: var(--border);
}

/* ==========================================================================
   15. 面包屑与页脚
   ========================================================================== */
.breadcrumb {
  font-size: var(--fs-sm);
  color: var(--fg-dim);
  padding: var(--sp-4) 0 0;
}
.breadcrumb a { color: var(--fg-dim); transition: color var(--dur-fast) var(--ease-out); }
.breadcrumb a:hover { color: var(--accent); }
.footer { border-top: 1px solid var(--border); margin-top: var(--sp-10); }
.footer-col h4 {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.04em;
  color: var(--fg-dim);
  margin-bottom: var(--sp-3);
}
.footer a { font-size: var(--fs-sm); color: var(--fg-dim); transition: color var(--dur-fast) var(--ease-out); }
.footer a:hover { color: var(--accent); }

/* ==========================================================================
   16. 滚动条 —— 与整体调性一致
   ========================================================================== */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--scrollbar-track, var(--bg-alt)); }
::-webkit-scrollbar-thumb { background: var(--border-hover); border-radius: 999px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: var(--fg-dim); background-clip: content-box; }

/* ==========================================================================
   17. 暗色适配 —— 新 token 在暗色下的取值
   ========================================================================== */
[data-theme="dark"] {
  --elev-1: 0 1px 2px rgba(0,0,0,.30), 0 1px 3px rgba(0,0,0,.24);
  --elev-2: 0 2px 4px rgba(0,0,0,.28), 0 4px 12px rgba(0,0,0,.30);
  --elev-3: 0 8px 24px rgba(0,0,0,.36), 0 2px 6px rgba(0,0,0,.28);
}

/* ==========================================================================
   18. 响应式 —— 刻度在小屏整体下调，保持比例
   ========================================================================== */
@media (max-width: 1080px) {
  .hero { padding: var(--sp-9) 0 var(--sp-8); }
  .section, .section + .section { margin-bottom: var(--sp-8); margin-top: var(--sp-8); }
}
@media (max-width: 768px) {
  .hero { padding: var(--sp-8) 0 var(--sp-7); }
  .hero h1, h1 { font-size: 1.875rem; }
  .section-title, .detail-grid h2, .page-title { font-size: 1.375rem; }
  .stat-num { font-size: 1.5rem; }
  .section, .section + .section { margin-bottom: var(--sp-7); margin-top: var(--sp-7); }
  .page-container > * + * { margin-top: var(--sp-7); }
  .card-grid, .card-grid-3, .card-grid-auto { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
  .stats-bar { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); }
  .stat-item { padding: var(--sp-4) var(--sp-3); }
  .stat-item:nth-child(n) { border-right: 1px solid var(--border); }
  .btn { min-height: 44px; }
  .timeline { padding-left: var(--sp-4); }
}
@media (max-width: 480px) {
  .hero h1, h1 { font-size: 1.625rem; }
  .hero p { font-size: var(--fs-base); }
  .card-grid, .card-grid-3, .card-grid-auto { grid-template-columns: 1fr; }
  .stats-bar { grid-template-columns: repeat(2, 1fr); }
  .hero-actions { flex-direction: column; align-items: stretch; }
  .hero-actions .btn { width: 100%; }
  .section-header { flex-direction: column; align-items: flex-start; gap: var(--sp-2); }
}

/* ==========================================================================
   19. 无障碍 —— 尊重减弱动效偏好
   ========================================================================== */
@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;
  }
  .card:hover { transform: none; }
}

/* ==========================================================================
   20. 打印 —— 数据站打印友好
   ========================================================================== */
@media print {
  .navbar, .footer, .back-to-top, .reading-progress, .bg-decoration,
  .filter-bar, .theme-toggle, .nav-toggle, .sidebar-actions { display: none !important; }
  body { background: #fff; color: #000; }
  .card, .data-table, table { box-shadow: none !important; border-color: #ccc !important; }
  a { text-decoration: underline; }
}

/* nova-aero:design-scale-fixups-2026-10-13 */
/* ==========================================================================
   补漏与兼容兜底（2026-10-13）
   ========================================================================== */

/* 1) 语义标题档位：原先 --fs-lg 定义但未落地，区块小标题仍散落各处 */
.sidebar-card h3, .detail-sidebar h3, .related h3, .filter-bar h3,
.footer-col h4 + p, .cert-stage-title, .glossary-item h3 {
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  letter-spacing: -0.01em;
  line-height: var(--lh-snug);
}

/* 2) color-mix() 兼容兜底
      color-mix 需要 Chrome 111+ / Safari 16.2+ / Firefox 113+。
      先给静态可接受值，再让支持 color-mix 的浏览器用更好的混合结果覆盖。 */
.hero-tag {
  background: rgba(77,107,254,.10);
  border-color: rgba(77,107,254,.24);
}
@supports (background: color-mix(in srgb, red 10%, transparent)) {
  .hero-tag {
    background: color-mix(in srgb, var(--accent) 8%, transparent);
    border-color: color-mix(in srgb, var(--accent) 22%, transparent);
  }
}
.timeline-item::before {
  box-shadow: 0 0 0 3px rgba(77,107,254,.16);
}
@supports (background: color-mix(in srgb, red 10%, transparent)) {
  .timeline-item::before {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent);
  }
}
/* 链接下划线的颜色混合兜底 */
.main a:not(.btn):not(.card-link):not(.nav-links a):not(.social-link):not(.breadcrumb a) {
  border-bottom-color: rgba(128,138,158,.40);
}
@supports (background: color-mix(in srgb, red 10%, transparent)) {
  .main a:not(.btn):not(.card-link):not(.nav-links a):not(.social-link) {
    border-bottom-color: color-mix(in srgb, currentColor 28%, transparent);
  }
}

/* ==========================================================================
   首屏与区块布局优化（均衡型信息架构）
   ========================================================================== */

/* 3) Hero 与统计条之间需要明确的呼吸区 */
.hero + .stats-bar { margin-top: var(--sp-8); }

/* 4) 统计条数字的排版细节：千分位与等宽对齐 */
.stat-num {
  letter-spacing: -0.03em;
  line-height: 1.1;
}

/* 5) 区块标题栏：左标题 + 右链接，基线对齐而非垂直居中，
      小标题在有大字号时视觉更稳 */
.section-header {
  align-items: baseline;
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--border);
}
.section-header .section-link {
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--fg-dim);
  white-space: nowrap;
  transition: color var(--dur-fast) var(--ease-out);
}
.section-header .section-link:hover { color: var(--accent); }

/* 6) 卡片网格内的标题截断：保证多行卡片高度不参差 */
.card-title {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
/* 单行标题卡片不被截断成半个字 */
.card-title:only-child { -webkit-line-clamp: unset; }

/* 7) 网格内卡片等高：父列 stretch + 子项撑满 */
.card-grid > *, .card-grid-auto > * { height: 100%; }
.card { display: flex; flex-direction: column; }
.card > a, .card-link { display: flex; flex-direction: column; flex: 1; }
.card-meta { margin-top: auto; }

/* 8) 首屏三区块（精选机型 / 取证进度 / 最新动态）视觉权重对齐：
      卡片高度差过大时用 align-items: start 保持自然节奏 */
.card-grid { align-items: stretch; }

/* 9) 时间线：事件流是这个站点的核心内容之一，强化可扫读性 */
.timeline-item {
  padding: var(--sp-4) var(--sp-4) var(--sp-4) var(--sp-4);
  border-radius: var(--radius-sm);
  transition: background var(--dur-base) var(--ease-out);
}
.timeline-item:hover { background: var(--bg-card-hover); }
.timeline-item::before { top: calc(var(--sp-4) + 0.55em); }
.timeline-item:not(:last-child)::after { top: calc(var(--sp-4) + 1.4em); }

/* 10) 空态：筛选无结果时不要塌陷，留出明确区域 */
.no-results, .empty-state {
  padding: var(--sp-8) var(--sp-4);
  text-align: center;
  color: var(--fg-dim);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
}

/* 11) 筛选栏：数据站高频操作区，需要更强的工具感和粘性 */
.filter-bar {
  padding: var(--sp-4);
  gap: var(--sp-4);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg-card);
  box-shadow: var(--elev-1);
}
.filter-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3); }
.filter-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--fg-dim);
  white-space: nowrap;
}

/* 12) 面包屑 + H1 的层级关系：H1 前留白收紧，避免顶部散 */
.breadcrumb { margin-bottom: var(--sp-2); }

/* 13) 归档页 Hero（archive-*.php 内联样式覆盖了这块的排版） */
.page-container > .hero {
  padding: var(--sp-7) 0 var(--sp-6);
  max-width: none;
}

/* 14) 滚动进入动画：避免与新过渡叠加导致的抖动 */
.fade-in, .fade-in-delay-1, .fade-in-delay-2, .fade-in-delay-3 {
  animation-duration: var(--dur-slow);
  animation-timing-function: var(--ease-out);
}

@media (max-width: 768px) {
  .section-header { flex-direction: row; align-items: baseline; }
  .filter-bar { padding: var(--sp-3); }
  .timeline-item { padding: var(--sp-3); }
}

/* nova-aero:detail-layer-2026-10-13 */
/* ==========================================================================
   详情页设计层 —— 2026-10-13
   把 detail-* / entry-content / sidebar-* / highlight-* 的离群值归一到刻度，
   并补齐原样式缺失的排版能力（正文行长、标题锚点、表格滚动、FAQ 呈现）。
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. 详情页头：H1 字阶 + 副标题 + 元信息徽章
   -------------------------------------------------------------------------- */
.detail-header { margin-bottom: var(--sp-8); }
.detail-header h1 {
  font-size: clamp(1.75rem, 2.6vw, 2.25rem);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  letter-spacing: -0.03em;
  color: var(--fg);
  margin-bottom: var(--sp-3);
  text-wrap: balance;
}
.detail-header .detail-sub {
  font-size: var(--fs-md);
  font-weight: var(--fw-regular);
  color: var(--fg-dim);
  line-height: var(--lh-normal);
  max-width: 60ch;
  margin-bottom: var(--sp-4);
}
.detail-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.detail-meta .badge {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  padding: 3px var(--sp-2);
}
/* 封面色块图：统一比例与圆角 */
.detail-header > .card-cover {
  width: 100%;
  max-height: 420px;
  object-fit: cover;
  aspect-ratio: 21 / 9;
  border-radius: var(--radius);
  border: 1px solid var(--border);
  margin-bottom: var(--sp-5);
}

/* --------------------------------------------------------------------------
   2. 主内容区块：标题层级与垂直韵律
   -------------------------------------------------------------------------- */
.detail-main { min-width: 0; }
.detail-section { margin-bottom: var(--sp-8); }
.detail-section > h2 {
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  letter-spacing: -0.015em;
  line-height: var(--lh-snug);
  color: var(--fg);
  margin-bottom: var(--sp-4);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--border);
  /* 标题可被锚点定位，且给固定滚动偏移避免被吸顶导航遮住 */
  scroll-margin-top: calc(var(--nav-height) + var(--sp-5));
}
.detail-section > h3 {
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  line-height: var(--lh-snug);
  color: var(--fg);
  margin: var(--sp-6) 0 var(--sp-3);
}

/* --------------------------------------------------------------------------
   3. 正文排版：行长上限 + 中文阅读节奏
      这是「像大厂」最关键的一条 —— 正文行长失控是业余感的主要来源。
   -------------------------------------------------------------------------- */
.entry-content {
  font-size: var(--fs-base);
  color: var(--fg-dim);
  line-height: var(--lh-relaxed);
}
.entry-content > * { max-width: 68ch; }
.entry-content p { margin-bottom: var(--sp-4); line-height: var(--lh-relaxed); }
.entry-content h2 {
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  letter-spacing: -0.02em;
  color: var(--fg);
  margin: var(--sp-8) 0 var(--sp-4);
  scroll-margin-top: calc(var(--nav-height) + var(--sp-5));
}
.entry-content h3 {
  font-size: var(--fs-lg);
  font-weight: var(--fw-semibold);
  color: var(--fg);
  margin: var(--sp-7) 0 var(--sp-3);
  scroll-margin-top: calc(var(--nav-height) + var(--sp-5));
}
.entry-content h4 {
  font-size: var(--fs-md);
  font-weight: var(--fw-semibold);
  color: var(--fg);
  margin: var(--sp-6) 0 var(--sp-2);
}
.entry-content ul, .entry-content ol {
  max-width: 68ch;
  margin: 0 0 var(--sp-4);
  padding-left: var(--sp-5);
}
.entry-content li { margin-bottom: var(--sp-2); line-height: var(--lh-relaxed); }
.entry-content li::marker { color: var(--accent); }
/* 中文正文里 em/strong 用强调色而非加粗，扫读时层级更轻 */
.entry-content strong { font-weight: var(--fw-semibold); color: var(--fg); }
.entry-content a {
  color: var(--link-color);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color var(--dur-fast) var(--ease-out);
}
.entry-content a:hover { color: var(--accent); }
/* 引用块：数据站常用作「口径说明」，需要有明确的视觉容器 */
.entry-content blockquote {
  max-width: 68ch;
  margin: var(--sp-5) 0;
  padding: var(--sp-4) var(--sp-5);
  border-left: 3px solid var(--accent);
  background: var(--bg-alt);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--fg-dim);
}
.entry-content blockquote p:last-child { margin-bottom: 0; }
/* 行内代码与代码块 */
.entry-content code {
  font-family: var(--font-mono);
  font-size: 0.9em;
  padding: 2px 6px;
  border-radius: 4px;
  background: var(--code-bg);
  color: var(--fg);
}
.entry-content pre {
  max-width: 100%;
  margin: var(--sp-5) 0;
  padding: var(--sp-4);
  border-radius: var(--radius-sm);
  background: var(--code-bg);
  overflow-x: auto;
  border: 1px solid var(--border);
}
.entry-content pre code { padding: 0; background: none; }
/* 图片：统一圆角与题注间距 */
.entry-content img { border-radius: var(--radius-sm); max-width: 100%; height: auto; }
.entry-content figure { margin: var(--sp-5) 0; max-width: 68ch; }
.entry-content figcaption { font-size: var(--fs-sm); color: var(--fg-dim); margin-top: var(--sp-2); }
/* 表格嵌在正文里：允许横向滚动而不是撑破布局 */
.entry-content table { display: block; overflow-x: auto; white-space: nowrap; }
.entry-content hr { border: 0; border-top: 1px solid var(--border); margin: var(--sp-7) 0; }

/* --------------------------------------------------------------------------
   4. 参数表：数据站的核心呈现，从「裸表格」升级为可扫读的结构
   -------------------------------------------------------------------------- */
.detail-info-table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-card);
  font-size: var(--fs-sm);
}
.detail-info-table th,
.detail-info-table td {
  padding: var(--sp-3) var(--sp-4);
  border-bottom: 1px solid var(--hairline, var(--border));
  vertical-align: top;
  text-align: left;
  line-height: var(--lh-normal);
}
.detail-info-table th {
  width: 38%;
  font-weight: var(--fw-medium);
  color: var(--fg-dim);
  background: var(--bg-alt);
  white-space: nowrap;
}
.detail-info-table td { color: var(--fg); }
.detail-info-table tr:last-child th,
.detail-info-table tr:last-child td { border-bottom: none; }
.detail-info-table tbody tr,
.detail-info-table tr { transition: background var(--dur-fast) var(--ease-out); }
.detail-info-table tr:hover { background: var(--bg-card-hover); }
/* compact 变体用于侧栏，去掉外框只留分隔线 */
.detail-info-table.compact { border: none; border-radius: 0; background: none; margin-top: var(--sp-3); }
.detail-info-table.compact th { background: none; padding-left: 0; }
.detail-info-table.compact td { padding-right: 0; }

/* --------------------------------------------------------------------------
   5. 关键指标卡：数据可信度的视觉锚点
   -------------------------------------------------------------------------- */
.sidebar-highlight { border-color: color-mix(in srgb, var(--accent) 26%, var(--border)); }
.sidebar-highlight .sidebar-card-title,
.sidebar-highlight h3 { color: var(--accent); }
.highlight-stats {
  display: flex;
  gap: var(--sp-2);
  margin-bottom: var(--sp-2);
}
.highlight-stat {
  flex: 1;
  min-width: 0;
  padding: var(--sp-3) var(--sp-2);
  text-align: center;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--bg-alt);
  transition: border-color var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out);
}
.highlight-stat:hover {
  border-color: var(--accent);
  box-shadow: var(--elev-2);
}
.highlight-num {
  font-family: var(--font-sans);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--fg);
  font-variant-numeric: tabular-nums;
}
.highlight-label {
  font-size: var(--fs-xs);
  color: var(--fg-dim);
  margin-top: var(--sp-1);
  line-height: 1.4;
}

/* --------------------------------------------------------------------------
   6. 侧栏卡片：标题字重与间距统一
      原样式是 0.7rem/800/uppercase —— 大写+超小+超粗，是「业余感」三件套，
      中文语境下 uppercase 也没有意义。改为语义化中文小标题。
   -------------------------------------------------------------------------- */
.sidebar-card { padding: var(--sp-5); }
.sidebar-card h3 {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  text-transform: none;
  letter-spacing: 0;
  color: var(--fg);
  margin-bottom: var(--sp-3);
}
.detail-sidebar { gap: var(--sp-4); }
.sidebar-card:hover { box-shadow: var(--elev-1); }

/* 侧栏内的标签云 */
.sidebar-tags .badge,
.sidebar-card .badge {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  padding: 3px var(--sp-2);
}
/* 侧栏统计数字对齐 */
.sidebar-stats .stat-num { font-size: var(--fs-lg); }

/* --------------------------------------------------------------------------
   7. 数据来源 / 溯源区
   -------------------------------------------------------------------------- */
.source-list {
  font-size: var(--fs-sm);
  color: var(--fg-dim);
  padding-left: 0;
  list-style: none;
  margin: 0;
}
.source-list li {
  padding: var(--sp-3) 0 var(--sp-3) var(--sp-5);
  border-bottom: 1px solid var(--hairline, var(--border));
  position: relative;
  line-height: var(--lh-normal);
}
.source-list li:last-child { border-bottom: none; }
/* 外链标识：数据站的可溯源性靠它建立信任 */
.source-list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: calc(var(--sp-3) + 0.5em);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--accent);
  opacity: 0.6;
}
.source-list a {
  color: var(--link-color);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color var(--dur-fast) var(--ease-out),
              border-color var(--dur-fast) var(--ease-out);
}
.source-list a:hover { color: var(--accent); border-bottom-color: currentColor; }

/* --------------------------------------------------------------------------
   8. FAQ：原模板有 FAQPage Schema 但无对应视觉样式
   -------------------------------------------------------------------------- */
.faq, .faq-list, .faq-items { display: block; }
.faq-item, .faq details {
  padding: var(--sp-4) var(--sp-5);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: var(--bg-card);
  margin-bottom: var(--sp-2);
  transition: border-color var(--dur-base) var(--ease-out);
}
.faq-item:last-child { margin-bottom: 0; }
.faq-item > summary, .faq details > summary,
.faq-item h3, .faq details h3 {
  font-size: var(--fs-base);
  font-weight: var(--fw-semibold);
  color: var(--fg);
  cursor: pointer;
  margin: 0;
}
.faq-item > p, .faq details > p { margin-top: var(--sp-3); color: var(--fg-dim); }

/* --------------------------------------------------------------------------
   9. 术语 / 政策 详情页专属
   -------------------------------------------------------------------------- */
.glossary-abbr-block {
  padding: var(--sp-5);
  border-radius: var(--radius);
  border: 1px solid var(--border);
  background: var(--bg-card);
  margin-bottom: var(--sp-5);
}
.glossary-abbr-label {
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--fg-dim);
  display: block;
  margin-bottom: var(--sp-2);
}
.glossary-abbr { font-weight: var(--fw-semibold); color: var(--accent); }
.glossary-item { padding: var(--sp-4) 0; border-bottom: 1px solid var(--hairline, var(--border)); }
.glossary-item:last-child { border-bottom: none; }

/* --------------------------------------------------------------------------
   10. 侧栏分享 / 操作按钮区
   -------------------------------------------------------------------------- */
.sidebar-share .social-link,
.sidebar-actions .btn {
  min-height: 36px;
  font-size: var(--fs-sm);
}
/* 分享按钮成组时用轻量分隔 */
.sidebar-share {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}
.sidebar-actions { display: flex; flex-direction: column; gap: var(--sp-2); }
.sidebar-actions .btn { width: 100%; justify-content: flex-start; }

/* --------------------------------------------------------------------------
   11. 网格细节：长内容下侧栏跟随、窄屏降级
   -------------------------------------------------------------------------- */
.detail-grid { gap: var(--sp-7); }
.detail-grid h2 { font-size: var(--fs-lg); }
/* 首屏之上不再重复 h1 尺寸 */
.detail-header h1 + .detail-sub + .detail-meta { margin-bottom: 0; }

/* --------------------------------------------------------------------------
   12. 响应式
   -------------------------------------------------------------------------- */
@media (max-width: 1080px) {
  .detail-grid { gap: var(--sp-6); }
  .detail-section { margin-bottom: var(--sp-7); }
}
@media (max-width: 768px) {
  .detail-header { margin-bottom: var(--sp-6); }
  .detail-header h1 { font-size: 1.5rem; }
  .detail-header .detail-sub { font-size: var(--fs-base); }
  .detail-header > .card-cover { max-height: 260px; aspect-ratio: 16 / 9; }
  .detail-section { margin-bottom: var(--sp-6); }
  .detail-section > h2 { font-size: var(--fs-md); }
  .entry-content h2 { font-size: var(--fs-lg); margin-top: var(--sp-6); }
  .entry-content h3 { font-size: var(--fs-md); }
  .entry-content > * { max-width: 100%; }
  .entry-content p { line-height: var(--lh-normal); }
  /* 参数表在窄屏改双列堆叠，避免横向滚动 */
  .detail-info-table th { width: 45%; }
  .detail-info-table th,
  .detail-info-table td { padding: var(--sp-2) var(--sp-3); font-size: var(--fs-xs); }
  .highlight-num { font-size: var(--fs-lg); }
  .source-list li { padding-left: var(--sp-4); }
}
@media (max-width: 480px) {
  .detail-header h1 { font-size: 1.375rem; }
  /* 参数表彻底转纵向：标签在上、值在下 */
  .detail-info-table thead { display: none; }
  .detail-info-table tr {
    display: block;
    padding: var(--sp-2) 0;
    border-bottom: 1px solid var(--hairline, var(--border));
  }
  .detail-info-table th,
  .detail-info-table td {
    display: block;
    width: 100%;
    border: none;
    padding: 0;
  }
  .detail-info-table th {
    background: none;
    color: var(--fg-dim);
    font-size: var(--fs-xs);
    margin-bottom: 2px;
  }
  .highlight-stats { flex-direction: column; }
  .highlight-stat { display: flex; align-items: baseline; justify-content: space-between; text-align: left; }
  .highlight-label { margin-top: 0; }
  .entry-content table { white-space: normal; }
}

/* --------------------------------------------------------------------------
   13. 打印：详情页常被打印成 PDF 存档
   -------------------------------------------------------------------------- */
@media print {
  .detail-sidebar, .sidebar-actions, .sidebar-share, .source-list li::before { display: none !important; }
  .detail-grid { display: block; }
  .detail-header h1 { font-size: 1.5rem; }
  .detail-info-table th { background: none; }
  .detail-section { page-break-inside: avoid; }
}
