/* Shared community styles (forum, account, product reviews). Loaded only on
   community/product pages via the `needs_community_css` flag, so marketing pages
   keep zero extra requests. Reuses each theme's .container/.btn/.card/.breadcrumbs
   and stays visually neutral so it blends into all 5 themes. */
.page.narrow{max-width:720px;margin:0 auto}

/* Forum board list */
.board-list{display:flex;flex-direction:column;gap:12px;margin-top:18px}
.board-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:var(--bg,var(--paper,#fff));color:inherit;transition:box-shadow .15s,transform .15s}
.board-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.07);transform:translateY(-1px);text-decoration:none}
.board-card h2{margin:0 0 4px;font-size:1.1rem}
.board-card p{margin:0;color:var(--muted,var(--mut,#6b7280));font-size:.9rem}
.board-count{flex:none;min-width:44px;text-align:center;padding:6px 12px;border-radius:20px;background:var(--surface-2,#f7f9fb);font-weight:700;font-size:.9rem}

/* Board head + thread list */
.board-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:8px 0 6px}
.board-head h1{margin:0}
.thread-list{display:flex;flex-direction:column;margin-top:14px;border-top:1px solid var(--line,#e5e7eb)}
.thread-row{display:flex;align-items:center;gap:14px;padding:14px 6px;border-bottom:1px solid var(--line,#e5e7eb);color:inherit}
.thread-row:hover{background:var(--surface-2,#f7f9fb);text-decoration:none}
.thread-avatar,.post-avatar,.nav-avatar{border-radius:50%;flex:none}
.thread-main{display:flex;flex-direction:column;flex:1;min-width:0}
.thread-title{font-weight:600}
.thread-meta{color:var(--muted,var(--mut,#6b7280));font-size:.82rem}
.thread-stats{flex:none;color:var(--muted,var(--mut,#6b7280));font-size:.85rem}
.thread-pin{flex:none}

/* Thread + posts */
.forum-thread h1{margin-bottom:16px}
.post{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line,#e5e7eb)}
.post-side{flex:none;width:96px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}
.post-author{font-size:.82rem;font-weight:600;word-break:break-word}
.post-body{flex:1;min-width:0}
.post-meta{color:var(--muted,var(--mut,#6b7280));font-size:.8rem;margin:0 0 8px}
.post-images{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.post-images img,.review-images img{max-width:180px;max-height:180px;border-radius:8px;border:1px solid var(--line,#e5e7eb);object-fit:cover}
.reply-list{margin-top:20px}
.reply-list h2{font-size:1.15rem}

/* Forms (reply / post / auth) */
.reply-form,.post-form,.auth-card form{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.reply-form label,.post-form label,.auth-card label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.92rem}
.reply-form input,.reply-form textarea,.post-form input,.post-form textarea,.auth-card input{padding:10px 12px;border:1px solid var(--line,#e5e7eb);border-radius:8px;font:inherit}
.file-field input{font-weight:400}
.reply-form-wrap,.post-form{margin-top:24px}

/* Auth card + avatar picker */
.auth-card{max-width:460px;margin:16px auto;padding:28px;border:1px solid var(--line,#e5e7eb);border-radius:14px;background:var(--bg,var(--paper,#fff))}
.auth-card h1{margin:0 0 18px;font-size:1.5rem}
.auth-alt,.auth-help{margin-top:14px;font-size:.9rem;color:var(--muted,var(--mut,#6b7280))}
.form-error,.field-error{color:#b91c1c;font-size:.85rem;font-weight:600}
.avatar-picker{border:none;padding:0;margin:0}
.avatar-picker legend{font-weight:600;font-size:.92rem;margin-bottom:8px}
.avatar-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.avatar-option{display:block;cursor:pointer}
.avatar-option input{position:absolute;opacity:0}
.avatar-option img{width:100%;height:auto;border-radius:12px;border:3px solid transparent;transition:border-color .12s}
.avatar-option input:checked+img{border-color:var(--accent,#4f46e5)}
.avatar-option input:focus-visible+img{outline:2px solid var(--accent,#4f46e5);outline-offset:2px}

/* Account nav bits */
.nav-account{display:inline-flex;align-items:center;gap:8px}
.nav-user{font-weight:600;font-size:.9rem}
.nav-logout{display:inline}
.nav-logout button{background:none;border:none;color:inherit;cursor:pointer;font:inherit;text-decoration:underline;padding:0}

/* Product reviews */
.product-reviews{margin-top:8px}
.reviews-summary{display:flex;align-items:center;gap:12px;margin:8px 0 18px}
.reviews-avg{font-size:1.6rem;font-weight:700}
.reviews-count{color:var(--muted,var(--mut,#6b7280))}
.review-list{display:flex;flex-direction:column;gap:18px}
.review{padding:16px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:var(--bg,var(--paper,#fff))}
.review-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.review-author{font-size:.95rem}
.review-date{color:var(--muted,var(--mut,#6b7280));font-size:.82rem;margin-left:auto}
.review-title{margin:8px 0 4px;font-size:1.05rem}
.review-body{margin:4px 0 0}
.review-rating-sr{position:absolute;left:-9999px}
/* CSS-only star rating: gold stars up to --rating (1-5), grey remainder */
.stars{--rating:0;display:inline-block;position:relative;font-size:1rem;line-height:1;color:#d1d5db;letter-spacing:2px}
.stars::before{content:"★★★★★";position:absolute;top:0;left:0;width:calc(var(--rating)/5*100%);overflow:hidden;color:#f59e0b;letter-spacing:2px}

@media (max-width:640px){
  .avatar-grid{grid-template-columns:repeat(4,1fr)}
  .post-side{width:64px}
  .post-images img,.review-images img{max-width:120px;max-height:120px}
}
@media (prefers-reduced-motion:reduce){.board-card{transition:none}.avatar-option img{transition:none}}
