/* Community extends the shared Dreamcoded surfaces, typography and controls. */
.community-shell { padding-block:1.5rem var(--section-space); min-height:65vh; }
.community-shell h2 { font-size:1.65rem; letter-spacing:-.025em; line-height:1.2; margin-bottom:1rem; }
.community-shell h3 { font-size:1.25rem; line-height:1.35; letter-spacing:-.015em; }

/* The same quiet, rounded toolbar used by the journal filters. */
.community-nav,.community-admin-nav { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; padding:.65rem; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-1); font-size:.84rem; }
.community-nav { justify-content:space-between; }
.community-nav-group { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem; min-width:0; }
.community-nav a,.community-admin-nav a { display:inline-flex; align-items:center; min-height:2.75rem; padding:.6rem 1rem; border-radius:var(--radius-pill); color:var(--text-secondary); overflow-wrap:anywhere; }
.community-nav a:hover,.community-admin-nav a:hover,.community-nav a[aria-current],.community-admin-nav a[aria-current] { color:var(--color-orange-light); background:var(--accent-soft); }
.community-nav .community-join { border:1px solid var(--line-strong); color:var(--color-cream); }
.community-nav .community-form { margin:0; max-width:none; }
.community-nav button { min-height:2.75rem; padding:.6rem 1rem; background:transparent; color:var(--text-secondary); box-shadow:none; border-color:var(--line); }
.community-nav button:hover { background:var(--accent-soft); color:var(--color-orange-light); box-shadow:none; }

/* Keep forum titles compact so discussions and forms remain the focus. */
.community-heading { padding-block:1.75rem 1.25rem; }
.community-heading h1 { max-width:40ch; font-size:clamp(1.65rem,2.5vw,2.25rem); line-height:1.2; letter-spacing:-.025em; overflow-wrap:anywhere; }
.community-heading .community-intro { max-width:60ch; margin:.65rem 0 0; color:var(--color-muted); font-size:.95rem; }
.community-layout { display:grid; grid-template-columns:17rem minmax(0,1fr); align-items:start; gap:var(--grid-gap); }
.community-layout>* { min-width:0; }
.community-nav + .community-layout,.community-notice + .community-layout { margin-top:2rem; }
.community-sidebar { padding:1.25rem; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-1); }
.community-categories summary { display:flex; align-items:center; gap:.65rem; list-style:none; font:500 1.05rem/1.5 var(--font-heading); color:var(--color-cream); }
.community-categories summary::marker { content:""; }
.community-categories summary::-webkit-details-marker { display:none; }
.community-disclosure-icon { --icon-size:1rem; color:var(--color-orange-light); transition:transform var(--duration-fast) var(--ease-out); }
.community-categories[open] .community-disclosure-icon { transform:rotate(90deg); }
.community-sidebar nav { display:grid; gap:.25rem; margin-block:.65rem 1.5rem; }
.community-sidebar nav a { min-height:2.75rem; padding:.85rem .75rem; border:1px solid transparent; border-radius:var(--radius-control); font-size:.84rem; transition:background var(--duration-fast) ease,border-color var(--duration-fast) ease; }
.community-sidebar a strong { display:block; font-weight:600; }
.community-sidebar a span { display:block; margin-top:.3rem; font-size:.75rem; line-height:1.6; color:var(--color-muted); }
.community-sidebar a:not([aria-current]):not(:hover):not(:focus-visible) span { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.community-sidebar a[aria-current] { color:var(--color-orange-light); border-color:rgba(242,140,58,.25); background:var(--accent-soft); }
.community-sidebar nav a:hover { background:var(--surface-2); }
.community-sidebar>.small { margin-block:1rem .5rem; font-size:.8rem; }
.community-sidebar>.text-link { font-size:.8rem; }

.community-auth,.community-reading:has(>.community-form),.community-post,.community-review,.community-stats>div { position:relative; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-card); box-shadow:var(--shadow-card),inset 0 1px rgba(255,255,255,.025); }
.community-auth,.community-reading:has(>.community-form) { padding:var(--card-pad); }
.community-auth::before,.community-reading:has(>.community-form)::before { content:""; position:absolute; top:-1px; left:var(--card-pad); width:4.5rem; height:2px; border-radius:var(--radius-pill); background:linear-gradient(90deg,var(--color-orange),var(--color-orange-light),transparent); }
.community-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-bottom:1.5rem; }
.community-section-heading h1,.community-section-heading h2 { margin:0; font-size:1.65rem; letter-spacing:-.025em; line-height:1.2; }
.community-shell .button { white-space:normal; }
.community-section-heading .button { flex-shrink:0; }
.community-topics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--grid-gap); list-style:none; padding:0; margin:0; }
.community-topics>li { min-width:0; }
.community-topic-card { display:flex; flex-direction:column; height:100%; padding:clamp(1.25rem,2vw,2rem); border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-card); box-shadow:var(--shadow-card); transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease,transform var(--duration-fast) var(--ease-out); }
.community-topic-card:hover,.community-topic-card:focus-within { border-color:var(--line-strong); box-shadow:var(--shadow-lift); transform:translateY(-3px); }
.community-topic-main { min-width:0; flex:1; }
.community-topic-labels { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-bottom:1rem; }
.community-topic-category { color:var(--color-orange-light); font-size:.75rem; font-weight:600; }
.community-topic-main h3 { margin:0 0 1rem; font-size:clamp(1.35rem,2vw,1.65rem); line-height:1.2; overflow-wrap:anywhere; text-wrap:pretty; }
.community-topic-main h3 a:hover { color:var(--color-orange-light); }
.community-topic-excerpt { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; overflow-wrap:anywhere; color:var(--text-secondary); font-size:.875rem; line-height:1.75; margin-bottom:1.5rem; }
.community-topic-footer { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem 1rem; align-items:center; border-top:1px solid var(--line); padding-top:1rem; font-size:.75rem; color:var(--color-muted); }
.community-topic-author { display:flex; align-items:center; gap:.5rem; min-width:0; color:var(--text-secondary); }
.community-topic-author>span:last-child { min-width:0; overflow-wrap:anywhere; }
.community-topic-author a:hover { color:var(--color-orange-light); }
.community-author-initial { display:grid; place-items:center; width:1.75rem; height:1.75rem; flex-shrink:0; border:1px solid var(--color-teal-light); border-radius:50%; background:var(--color-teal); color:var(--color-cream); font-family:var(--font-heading); }
.community-reply-count { white-space:nowrap; color:var(--color-cream); }
.community-topic-read { display:inline-flex; justify-content:flex-end; align-items:center; gap:.5rem; min-height:2.75rem; font-weight:600; }
.community-topic-read:hover { color:var(--color-orange-light); }
.community-meta { display:flex; flex-wrap:wrap; gap:.35rem 1rem; align-items:center; font-size:.75rem; color:var(--color-muted); }
.community-meta a:hover { text-decoration:underline; text-underline-offset:.2em; }
.community-tag { display:inline-block; padding:.2rem .6rem; margin:0; border:1px solid rgba(242,140,58,.2); border-radius:var(--radius-pill); background:var(--accent-soft); font-size:.65rem; color:var(--color-orange-light); text-transform:uppercase; letter-spacing:.1em; }
.community-empty { border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-card); box-shadow:var(--shadow-card); padding:var(--card-pad); color:var(--color-muted); }
.community-empty h3 { color:var(--color-cream); font-size:clamp(1.5rem,2.5vw,2rem); margin-bottom:1rem; }
.community-empty p { max-width:45ch; margin-bottom:.5rem; }
.community-pagination { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; padding-top:1.5rem; font-size:.84rem; color:var(--color-muted); }
.community-pagination:not(:has(a)) { display:none; }
.community-pagination a { display:inline-flex; align-items:center; min-height:2.75rem; padding:.6rem 1rem; border:1px solid var(--line); border-radius:var(--radius-control); }
.community-pagination a:hover { background:var(--accent-soft); color:var(--color-orange-light); }

/* Community actions share the site's left-aligned Bootstrap icon treatment. */
.community-nav a,.community-admin-nav a,.community-pagination a,.community-post>footer>a { gap:.5rem; }
.community-nav .button-icon,.community-admin-nav .button-icon,.community-pagination .button-icon,.community-topic-read .button-icon,.community-post>footer .button-icon,.community-shell summary .button-icon { --icon-size:1rem; }
.community-topic-read .button-icon { color:var(--color-orange-light); }
.community-shell summary:has(.button-icon) { display:flex; align-items:center; gap:.5rem; list-style:none; }
.community-shell summary:has(.button-icon)::-webkit-details-marker { display:none; }
.community-shell summary:has(.button-icon)::marker { content:""; }

/* Reading and forms retain generous spacing without enlarging topic headings. */
.community-reading { max-width:52rem; }
.community-reading>section { margin-top:2.5rem; }
.community-reading>p,.community-auth>p { color:var(--text-secondary); }
.community-reading>p a,.community-reading>section>p a,.community-notice a,.community-form .small a { text-decoration:underline; text-underline-offset:.2em; }
.community-form { display:grid; gap:1.25rem; max-width:48rem; margin-block:1.5rem; }
.community-form:last-child { margin-bottom:0; }
.community-form>.button { justify-self:start; }
.community-form>p { margin-bottom:0; }
.community-field { display:grid; gap:.5rem; font-size:.875rem; font-weight:550; min-width:0; }
.community-field input,.community-field select,.community-field textarea { width:100%; min-width:0; border:1px solid var(--line-strong); border-radius:var(--radius-control); background:var(--color-bg-deep); color:var(--color-text); padding:.85rem 1rem; font:400 1rem/1.5 var(--font-body); transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease; }
.community-field textarea { resize:vertical; }
.community-field .small { font-weight:400; }
.community-field input:focus,.community-field textarea:focus,.community-field select:focus { border-color:var(--color-orange-light); outline:2px solid var(--color-orange-light); outline-offset:3px; box-shadow:0 0 0 5px var(--accent-soft); }
.community-auth { max-width:36rem; }
.community-contact { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.community-notice { padding:1rem 1.25rem; border:1px solid var(--line); border-left:3px solid var(--color-orange-light); border-radius:var(--radius-control); background:var(--color-bg-alt); margin-block:1.5rem; }
.community-actions { display:flex; align-items:center; flex-wrap:wrap; gap:1rem; }
.community-post { padding:var(--card-pad); margin-top:1.5rem; scroll-margin-top:6rem; }
.community-post>header { display:flex; gap:.85rem; align-items:center; margin-bottom:1.5rem; }
.community-avatar { position:relative; overflow:hidden; display:inline-grid; place-items:center; width:2.75rem; height:2.75rem; flex-shrink:0; border:1px solid var(--color-teal-light); border-radius:var(--radius-control); color:var(--color-cream); background:var(--color-teal); font-family:var(--font-heading); }
.community-avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.community-shell .community-post-author { font:600 .95rem/1.4 var(--font-body); margin:0 0 .3rem; }
.community-post>footer { display:flex; align-items:flex-start; flex-wrap:wrap; gap:.5rem 1rem; font-size:.8rem; color:var(--color-muted); margin-top:1.5rem; border-top:1px solid var(--line); padding-top:.75rem; }
.community-post>footer>details { width:100%; }
.community-post>footer>a { display:inline-flex; align-items:center; min-height:2.75rem; }
.community-post>footer>a:hover { color:var(--color-orange-light); text-decoration:underline; }
.community-prose { overflow-wrap:anywhere; color:var(--text-secondary); line-height:1.8; }
.community-prose p { margin-bottom:1.1rem; }
.community-prose>:last-child { margin-bottom:0; }
.community-prose h2,.community-prose h3,.community-prose h4 { margin:1.8rem 0 1rem; color:var(--color-cream); }
.community-prose pre,.community-audit pre { white-space:pre-wrap; overflow-wrap:anywhere; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--color-bg-deep); padding:1rem; font-size:.85rem; }
.community-prose code { background:var(--color-bg-deep); color:var(--color-cream); font-size:.9em; }
.community-prose em { font-style:italic; color:inherit; }
.community-prose blockquote,.community-review blockquote { border-left:2px solid var(--color-orange); margin:1.5rem 0; padding-left:1rem; color:var(--color-muted); }
.community-rules { padding-left:1.5rem; margin-top:2rem; }
.community-rules li { padding:0 0 1.25rem .6rem; color:var(--text-secondary); }
.community-rules li::marker { color:var(--color-orange-light); font-family:var(--font-heading); }
.community-rules strong { color:var(--color-cream); }
.community-reply { padding-top:1rem; }
.community-profile-heading { display:flex; align-items:center; gap:1rem; padding:1.5rem; margin-bottom:2rem; border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-1); }
.community-profile-heading p { margin:0; }
.community-activity { padding-block:1.5rem; border-top:1px solid var(--line); }
.community-activity h3 { margin-bottom:.75rem; }
.community-activity p { margin-bottom:.5rem; overflow-wrap:anywhere; }

/* Account settings: a compact identity card alongside grouped account controls. */
.community-account { display:grid; grid-template-columns:18rem minmax(0,1fr); align-items:start; gap:var(--grid-gap); max-width:70rem; }
.community-account>* { min-width:0; }
.community-account-identity,.community-account-settings { border:1px solid var(--line); border-radius:var(--radius-card); background:var(--surface-card); box-shadow:var(--shadow-card); }
.community-account-identity { padding:1.5rem; }
.community-account-person { display:flex; flex-wrap:wrap; align-items:center; gap:1rem; }
.community-account-person .community-avatar { width:4rem; height:4rem; font-size:1.6rem; }
.community-account-person>div { min-width:0; }
.community-account-person h2 { font-size:1.25rem; overflow-wrap:anywhere; margin:0 0 .3rem; }
.community-account-person p { margin:0; font-size:.8rem; color:var(--color-muted); }
.community-account-details { display:grid; gap:.75rem; padding-block:1.25rem; margin:1.25rem 0; border-block:1px solid var(--line); font-size:.8rem; }
.community-account-details>div { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.35rem .75rem; }
.community-account-details dt { color:var(--color-muted); }
.community-account-details dd { margin:0; color:var(--color-cream); }
.community-account-status { text-transform:capitalize; }
.community-account-identity>.button { width:100%; }
.community-account-avatar-help { margin-top:1.25rem; }
.community-account-avatar-help p { margin:0 0 .4rem; font-size:.8rem; color:var(--color-muted); }
.community-account-avatar-help .text-link { font-size:.8rem; }
.community-account-section { padding:clamp(1.25rem,2.5vw,2rem); }
.community-account-section+.community-account-section { border-top:1px solid var(--line); }
.community-account-section h2 { display:flex; align-items:center; gap:.65rem; font-size:1.25rem; margin-bottom:1rem; }
.community-account-section h2>.icon { color:var(--color-orange-light); }
.community-account-section>p,.community-account-session-action>p { max-width:60ch; font-size:.875rem; color:var(--text-secondary); margin-bottom:.75rem; }
.community-account-section .community-form { margin-top:1.25rem; }
.community-account-email { display:flex; flex-wrap:wrap; align-items:center; gap:.6rem 1rem; margin-bottom:1rem; }
.community-account-email p { min-width:0; overflow-wrap:anywhere; margin:0; color:var(--color-cream); }
.community-account-badge { display:inline-flex; align-items:center; gap:.4rem; padding:.25rem .65rem; border:1px solid var(--line-strong); border-radius:var(--radius-pill); background:var(--color-teal); color:var(--color-cream); font-size:.75rem; }
.community-account-badge .icon { --icon-size:.875rem; }
.community-account-session-action { border-top:1px solid var(--line); padding-top:1.25rem; margin-top:1.25rem; }
.community-account-leave { background:rgba(242,140,58,.025); border-radius:0 0 var(--radius-card) var(--radius-card); }
.community-shell .community-button-secondary,.community-shell .community-button-danger { box-shadow:none; background:transparent; border-color:var(--line-strong); color:var(--color-cream); }
.community-shell .community-button-secondary:hover { background:var(--surface-2); border-color:var(--color-muted); }
.community-shell .community-button-danger { border-color:rgba(242,140,58,.4); color:var(--color-orange-light); }
.community-shell .community-button-danger:hover { background:var(--accent-soft); border-color:var(--color-orange-light); }
@media(max-width:800px) { .community-account { grid-template-columns:1fr; } }

/* Member and moderation screens use the same controls and surface scale. */
.community-admin-content { max-width:60rem; padding-top:2rem; }
.community-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:0 0 3rem; }
.community-stats>div { padding:1.5rem; }
.community-stats dt { text-transform:capitalize; color:var(--color-muted); font-size:.875rem; }
.community-stats dd { font:500 2.5rem var(--font-heading); color:var(--color-cream); margin:.5rem 0 0; }
.community-audit { list-style:none; padding:0; }
.community-audit li { border-top:1px solid var(--line); padding:1rem 0; font-size:.85rem; overflow-wrap:anywhere; }
.community-audit li p { margin:.5rem 0; }
.community-review { padding:var(--card-pad); margin-bottom:1.5rem; }
.community-review blockquote { overflow-wrap:anywhere; }
.community-users { list-style:none; padding:0; }
.community-users li { border-top:1px solid var(--line); padding:1rem 0; }
.community-users a { display:block; overflow-wrap:anywhere; }
.community-users span { display:block; color:var(--color-muted); font-size:.85rem; }
.community-details { display:grid; grid-template-columns:10rem minmax(0,1fr); gap:.75rem; }
.community-details dt { color:var(--color-muted); }
.community-details dd { margin:0; overflow-wrap:anywhere; }
.community-tools { margin-top:1.5rem; }
.community-shell summary { cursor:pointer; min-height:2.75rem; padding-block:.5rem; }
.community-shell summary:focus-visible { outline:2px solid var(--color-orange-light); outline-offset:3px; }

/* Keep the shared header within the community tablet viewport. */
@media(min-width:761px) and (max-width:1024px) {
  body:has(.community-shell) .header-inner { gap:1rem; }
  body:has(.community-shell) #navigation { gap:.75rem; font-size:.8rem; }
}
@media(max-width:1024px) {
  .community-layout { grid-template-columns:14rem minmax(0,1fr); }
  .community-topics { grid-template-columns:1fr; }
  .community-section-heading { align-items:flex-start; flex-wrap:wrap; }
}
@media(max-width:767px) {
  .community-shell { padding-top:1rem; }
  .community-nav { border-radius:var(--radius-card); }
  .community-nav a,.community-nav button { padding-inline:.8rem; font-size:.8rem; }
  .community-nav-account { width:100%; border-top:1px solid var(--line); padding-top:.5rem; }
  .community-layout { grid-template-columns:1fr; gap:1.25rem; }
  .community-sidebar { padding:.75rem 1.25rem; }
  .community-sidebar:has(details:not([open]))>.small,.community-sidebar:has(details:not([open]))>.text-link { display:none; }
  .community-sidebar nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .community-sidebar nav>a:first-child { grid-column:1/-1; }
  .community-sidebar nav a { padding:.75rem; }
  .community-stats { grid-template-columns:repeat(2,1fr); }
  .community-stats>div { padding:1.15rem; }
  .community-details { grid-template-columns:1fr; gap:.25rem; }
  .community-details dd { margin-bottom:.75rem; }
  .community-form>.button { width:100%; }
  .community-nav .button { width:auto; }
  .community-prose { font-size:.95rem; }
}
@media(prefers-reduced-motion:reduce) {
  .community-shell * { scroll-behavior:auto; transition:none!important; }
}
