.hub-hero{padding:2rem 0 1.25rem}.hub-hero h1{margin:.4rem 0;font-size:clamp(1.8rem,4vw,2.8rem)}.hub-hero p{color:var(--text-muted);max-width:680px}.hub-toolbar{display:flex;gap:.75rem;margin:1rem 0 1.5rem}.hub-toolbar input{flex:1;min-width:0;padding:.8rem 1rem;border:1px solid var(--border-card);border-radius:8px;background:var(--bg-card);color:var(--text-main)}.hub-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.hub-card{display:flex;flex-direction:column;min-height:230px;border:1px solid var(--border-card);border-radius:8px;overflow:hidden;background:var(--bg-card);color:inherit;text-decoration:none}.hub-card-image{aspect-ratio:16/9;background:rgba(99,102,241,.08);overflow:hidden}.hub-card-image img{width:100%;height:100%;object-fit:cover}.hub-card-body{display:flex;flex:1;flex-direction:column;padding:1.1rem}.hub-card-meta{display:flex;flex-wrap:wrap;gap:.45rem;color:var(--text-muted);font-size:.73rem}.hub-card h2{margin:.65rem 0 .45rem;font-size:1.08rem}.hub-card p{margin:0;color:var(--text-muted);font-size:.86rem;line-height:1.55}.hub-card-footer{margin-top:auto;padding-top:1rem;color:#818cf8;font-size:.8rem;font-weight:700}.hub-priority{padding:.2rem .5rem;border-radius:5px;background:rgba(239,68,68,.12);color:#f87171}.hub-empty{padding:4rem 1rem;text-align:center;border:1px dashed var(--border-card);border-radius:8px;color:var(--text-muted)}.hub-detail{max-width:900px;margin:auto}.hub-detail-cover{width:100%;max-height:520px;object-fit:cover;border-radius:8px}.hub-detail-meta{display:flex;flex-wrap:wrap;gap:.75rem;color:var(--text-muted);font-size:.82rem}.hub-detail-body{font-size:1rem;line-height:1.8}.hub-download{display:inline-flex;margin-top:1rem}.search-group{margin-bottom:2rem}.search-result{display:block;padding:1rem 0;border-bottom:1px solid var(--border-card);color:inherit;text-decoration:none}.search-result strong{display:block;margin-bottom:.25rem}.search-result span{color:var(--text-muted);font-size:.82rem}@media(max-width:900px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.hub-grid{grid-template-columns:1fr}.hub-toolbar{flex-direction:column}.hub-toolbar .btn-action{width:100%}}
