.download-page { background:#f8fafc; min-height:60vh; color:#475569; }
.download-container { width:min(1440px,calc(100% - 32px)); margin-inline:auto; }
.download-breadcrumb { display:flex; align-items:center; gap:10px; min-width:0; color:#9ca3af; font-size:.875rem; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.download-breadcrumb a { color:inherit; text-decoration:none; }
.download-breadcrumb a:hover { color:#2563eb; }
.download-breadcrumb span:last-child { overflow:hidden; text-overflow:ellipsis; }
.download-hero { background:#fff; padding:108px 0 38px; text-align:center; }
.download-hero .download-breadcrumb { justify-content:flex-start; margin-bottom:18px; }
.download-hero h1 { color:#071b5f; font-size:clamp(2.3rem,5vw,3.7rem); font-weight:900; letter-spacing:-.035em; line-height:1.15; margin:0 0 18px; }
.download-hero p { max-width:720px; margin:auto; color:#6b7280; font-size:clamp(1rem,1.5vw,1.25rem); line-height:1.7; font-weight:500; }
.download-section { padding:34px 0 75px; }
.download-search { margin:0 0 30px; padding:20px; background:#fff; border:1px solid #e5e7eb; border-radius:18px; }
.download-search label { display:block; margin-bottom:10px; color:#071b5f; font-size:.95rem; font-weight:800; }
.download-search-controls { display:flex; align-items:center; gap:10px; }
.download-search input { flex:1; min-width:0; height:44px; padding:0 14px; border:1px solid #cbd5e1; border-radius:9px; color:#071b5f; background:#fff; }
.download-search input:focus { outline:2px solid #93c5fd; border-color:#2563eb; }
.download-search button { height:44px; padding:0 18px; border:0; border-radius:9px; background:#071b5f; color:#fff; font-weight:800; cursor:pointer; }
.download-search button:hover { background:#1d4ed8; }
.download-search a { color:#2563eb; font-size:.85rem; font-weight:700; white-space:nowrap; }
.download-search p { margin:9px 0 0; color:#b45309; font-size:.85rem; }
.download-section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin-bottom:28px; padding-bottom:18px; border-bottom:1px solid #e5e7eb; }
.download-kicker, .download-type { display:inline-block; color:#2563eb; font-size:.76rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.download-section-heading h2 { margin:7px 0 0; color:#071b5f; font-weight:900; font-size:clamp(1.45rem,2.5vw,2rem); }
.download-total { color:#6b7280; font-size:.86rem; font-weight:700; white-space:nowrap; }
.download-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.download-card { display:flex; flex-direction:column; min-width:0; min-height:240px; padding:18px; background:#fff; border:1px solid #eef0f4; border-radius:18px; box-shadow:0 7px 20px rgba(14,38,108,.05); transition:transform .25s,box-shadow .25s; }
.download-card:hover { transform:translateY(-4px); box-shadow:0 16px 38px rgba(14,38,108,.12); }
.download-card-top { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:10px; }
.download-file-icon { display:inline-flex; justify-content:center; align-items:center; width:56px; height:56px; flex:none; border-radius:16px; background:#eff6ff; color:#2563eb; font-size:1.8rem; font-weight:800; }
.download-access { padding:5px 8px; border-radius:8px; font-size:.68rem; font-weight:800; white-space:nowrap; }
.download-access.is-free { background:#ecfdf5; color:#047857; }
.download-access.is-code { background:#fff7ed; color:#c2410c; }
.download-card h3 { margin:0 0 8px; color:#071b5f; font-size:1.05rem; line-height:1.4; font-weight:900; display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden; }
.download-card h3 a { color:inherit; text-decoration:none; }
.download-card h3 a:hover { color:#2563eb; }
.download-card-summary { margin:0 0 12px; color:#6b7280; line-height:1.55; font-size:.82rem; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; line-clamp:2; overflow:hidden; }
.download-card-meta { display:flex; flex-wrap:wrap; gap:6px 12px; margin-top:auto; padding:11px 0; border-top:1px solid #f0f1f4; color:#9ca3af; font-size:.72rem; font-weight:700; }
.download-card-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.download-card-actions a { color:#2563eb; font-size:.78rem; font-weight:800; text-decoration:none; }
.download-card-actions a:hover { text-decoration:underline; }
.download-card-actions button, .download-file-panel button { border:0; border-radius:9px; padding:8px 12px; background:#071b5f; color:#fff; font-size:.78rem; font-weight:800; cursor:pointer; transition:background .2s,transform .2s; }
.download-card-actions button:hover, .download-file-panel button:hover { background:#1d4ed8; transform:translateY(-2px); }
.download-empty { border:1px solid #eef0f4; border-radius:24px; padding:60px 24px; background:#fff; text-align:center; }
.download-empty>span { display:block; color:#2563eb; font-size:3rem; font-weight:800; }
.download-empty h2 { color:#071b5f; font-weight:900; font-size:1.5rem; margin:8px 0; }
.download-empty p { margin:0; }
.download-detail-page { padding:108px 0 96px; }
.download-detail-heading { max-width:940px; padding:18px 0 22px; margin-bottom:32px; border-bottom:1px solid #e5e7eb; }
.download-detail-heading h1 { margin:12px 0 22px; color:#071b5f; font-size:clamp(2rem,4vw,3.3rem); line-height:1.2; letter-spacing:-.025em; font-weight:900; }
.download-detail-meta { display:flex; flex-wrap:wrap; gap:10px 23px; color:#6b7280; font-size:.88rem; font-weight:600; }
.download-detail-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(280px,1fr); gap:38px; align-items:start; }
.download-article, .download-side-card { background:#fff; border:1px solid #eef0f4; border-radius:24px; box-shadow:0 6px 22px rgba(14,38,108,.05); }
.download-article { min-width:0; padding:clamp(22px,3vw,38px); }
.download-lead { margin-bottom:20px; color:#1f2937; font-size:1.1rem; font-weight:800; line-height:1.75; }
.download-description { color:#374151; font-size:1.05rem; line-height:1.85; overflow-wrap:anywhere; }
.download-description h1,.download-description h2,.download-description h3,.download-description h4 { color:#071b5f; font-weight:800; line-height:1.35; margin:28px 0 14px; }
.download-description h2 { font-size:1.6rem; }.download-description h3 { font-size:1.3rem; }
.download-description p { margin:0 0 20px; }.download-description ul { list-style:disc; padding-left:25px; margin:0 0 20px; }.download-description ol { list-style:decimal; padding-left:25px; margin:0 0 20px; }
.download-description img { display:block; max-width:100%; height:auto; margin:22px auto; border-radius:12px; }
.download-description iframe,.download-description video { display:block; width:100%; max-width:100%; aspect-ratio:16/9; margin:22px auto; border-radius:12px; }
.download-description table { display:block; max-width:100%; overflow-x:auto; }.download-description a { color:#2563eb; text-decoration:underline; }
.download-file-panel { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:18px; padding:22px; margin-top:32px; border:1px solid #dbeafe; border-radius:18px; background:#eff6ff; }
.download-article>.download-file-panel:first-child { margin-top:0; margin-bottom:30px; }
.download-file-panel>div { display:flex; align-items:center; gap:15px; min-width:0; }
.download-file-panel h2 { margin:0 0 4px; color:#071b5f; font-size:1.1rem; font-weight:900; }.download-file-panel p { margin:0; color:#6b7280; font-size:.85rem; overflow-wrap:anywhere; }
.download-file-panel .download-file-icon { background:#fff; }
.download-sidebar>.download-file-panel { display:block; margin:0; padding:22px; background:#eff6ff; box-shadow:0 6px 22px rgba(14,38,108,.05); }
.download-sidebar>.download-file-panel>div { margin-bottom:18px; }
.download-sidebar>.download-file-panel button { width:100%; min-height:43px; font-size:.88rem; }
.download-checksum { margin:18px 0 0; color:#9ca3af; font-size:.75rem; overflow-wrap:anywhere; }.download-checksum code { color:#6b7280; }
.download-sidebar { display:grid; gap:24px; position:sticky; top:108px; }
.download-side-card { padding:26px; }.download-side-card h2 { margin:0 0 18px; color:#071b5f; font-size:1.12rem; font-weight:900; text-transform:uppercase; }
.download-side-card dl { margin:0; }.download-side-card dl>div { display:flex; justify-content:space-between; gap:16px; padding:12px 0; border-top:1px solid #eef0f4; font-size:.87rem; }.download-side-card dt { color:#9ca3af; }.download-side-card dd { margin:0; color:#374151; font-weight:700; text-align:right; }
.download-related-list a { display:flex; gap:12px; align-items:center; padding:13px 0; border-top:1px solid #eef0f4; text-decoration:none; }.download-related-icon { display:grid; place-items:center; flex:none; width:43px; height:43px; background:#eff6ff; color:#2563eb; border-radius:11px; font-size:1.3rem; font-weight:800; }.download-related-list strong { display:block; color:#071b5f; font-size:.88rem; line-height:1.4; }.download-related-list a:hover strong { color:#2563eb; }.download-related-list small { display:block; color:#9ca3af; margin-top:4px; font-size:.75rem; }
@media(max-width:1199px) { .download-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:1023px) { .download-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.download-detail-layout { grid-template-columns:1fr; }.download-sidebar { position:static; grid-template-columns:repeat(2,minmax(0,1fr)); }.download-detail-page { padding-top:100px; padding-bottom:64px; }.download-hero { padding-top:98px; } }
@media(max-width:640px) { .download-container { width:calc(100% - 28px); }.download-hero { padding:92px 0 34px; }.download-section { padding:28px 0 58px; }.download-section-heading { align-items:start; }.download-grid { grid-template-columns:1fr; gap:16px; }.download-card { min-height:0; padding:22px; }.download-detail-page { background:#fff; padding:92px 0 56px; }.download-detail-heading { padding-top:24px; margin-bottom:18px; }.download-article,.download-side-card { padding:18px 0; border:0; border-radius:0; box-shadow:none; }.download-sidebar { grid-template-columns:1fr; gap:8px; }.download-file-panel { padding:17px; }.download-file-panel button { width:100%; }.download-card-meta { gap:8px 12px; } }
@media(max-width:640px) { .download-search-controls { flex-wrap:wrap; }.download-search input { flex-basis:100%; }.download-search button { flex:1; } }
