.community-hub { max-width: 1200px; margin: 2rem auto; padding: 1rem; color: #f5f3ff; }
.community-hub [hidden] { display: none !important; }
.hub-card { padding: 1.4rem; margin-bottom: 1rem; border: 1px solid #6d5a8d; border-radius: 1rem; background: rgba(24, 14, 49, .94); }
.hub-card h1 { font-size: 2rem; font-weight: 700; }
.hub-card h2 { font-size: 1.35rem; color: #fde047; margin-bottom: .8rem; font-weight: 700; }
.hub-card h3 { font-weight: 700; margin: 1rem 0 .5rem; }
.hub-card p { margin: .6rem 0; line-height: 1.6; }
.hub-eyebrow { color: #c4b5fd; text-transform: uppercase; letter-spacing: .12em; }
.hub-links { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.hub-card a { color: #fde047; text-decoration: underline; }
.hub-layout { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr); gap: 1rem; }
.hub-card label { display: block; margin: .8rem 0; }
.hub-card input:not([type=checkbox]):not([type=hidden]), .hub-card textarea, .hub-card select { display: block; width: 100%; color: #fff; background: #110c21; border: 1px solid #a78bfa; padding: .65rem; margin-top: .3rem; border-radius: .4rem; }
.hub-card .hub-check { display: flex; gap: .7rem; align-items: center; }
.hub-card button, .hub-button { padding: .5rem .8rem; margin: .2rem; border-radius: .4rem; border: 1px solid #a78bfa; color: #fff; background: #47306c; cursor: pointer; }
.hub-card button:disabled { opacity: .5; cursor: not-allowed; }
.hub-card button:focus-visible, .hub-card a:focus-visible, .hub-card input:focus-visible, .hub-card textarea:focus-visible { outline: 3px solid #fde047; outline-offset: 3px; }
.hub-notice { padding: 1rem; margin: 1rem 0; border-radius: .5rem; background: #2b2441; border-left: 4px solid #fde047; }
.hub-notice[data-error="1"] { border-color: #fb7185; }
.hub-messages { min-height: 160px; max-height: 500px; overflow-y: auto; margin: 1rem 0; }
.hub-item { padding: .8rem 0; border-bottom: 1px solid #55436e; overflow-wrap: anywhere; }
.hub-item p { white-space: pre-wrap; }
.hub-item small { color: #c4b5fd; }
.hub-media { margin-top: 1rem; border-top: 1px solid #55436e; padding-top: 1rem; }
.hub-admin-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
@media (max-width: 760px) { .hub-layout, .hub-admin-grid { grid-template-columns: 1fr; } }
