.communities-page { background: var(--paper); }
.communities-page .communities-main { width: min(calc(100% - 80px), 1290px); margin-inline: auto; padding: 72px 0 90px; }
.communities-page :is(h1,h2,h3,p) { margin-bottom: 0; }
.communities-page :is(h1,h2) { max-width: none; }
.communities-page :is(a,button,input,select,summary):focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
.communities-page :is(a,button,summary) { touch-action: manipulation; }
.communities-preview { margin-bottom: 18px; width: fit-content; max-width: 100%; color: var(--muted); font-size: 12px; }
.communities-preview summary { display: flex; align-items: center; gap: 8px; min-height: 32px; cursor: pointer; list-style: none; }
.communities-preview summary::-webkit-details-marker { display: none; }
.communities-preview p { max-width: 560px; padding: 8px 0; font-size: 13px; line-height: 1.6; }
.communities-discovery-page .communities-heading { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 18px 24px; }
.communities-discovery-page .communities-heading-copy { flex: 1 1 420px; min-width: 0; }
.communities-discovery-page .communities-heading h1 { margin: 0; font-size: clamp(32px, 3.3vw, 42px); line-height: 1.12; letter-spacing: -.028em; overflow-wrap: anywhere; }
.communities-discovery-page .communities-start-invitation { margin-top: 10px; color: var(--ink); font-size: 16px; font-weight: 650; line-height: 1.5; }
.communities-discovery-page .communities-start-review { margin-top: 3px; color: var(--muted); font-size: 14px; line-height: 1.5; }
.communities-discovery-page .communities-discovery-actions { display: flex; flex: 0 1 auto; align-items: center; flex-wrap: wrap; gap: 10px 22px; max-width: 100%; margin-top: 4px; }
.communities-discovery-page .communities-start-action { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; max-width: 100%; border: 1px solid var(--spark-hover); border-radius: 5px; padding: 10px 18px; background: transparent; color: var(--spark-hover); font: 650 14px/1.45 var(--font-ui); text-decoration: none; text-align: center; overflow-wrap: anywhere; }
.communities-discovery-page .communities-start-action svg { flex: 0 0 auto; }
.communities-discovery-page .communities-start-action:hover { background: var(--mist); color: var(--ink); border-color: var(--ink); }
.communities-discovery-page .communities-heading + .communities-section-nav { margin-top: 22px; margin-bottom: 0; }
.communities-text-link { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; color: var(--spark-hover); font-size: 14px; font-weight: 650; text-decoration: underline; text-underline-offset: 4px; }
.communities-text-link:hover { color: var(--ink); }
.communities-tools { position: relative; }
.communities-tools > summary { display: flex; align-items: center; gap: 6px; min-height: 44px; cursor: pointer; list-style: none; font-size: 13px; color: var(--muted); }
.communities-tools > summary::-webkit-details-marker { display: none; }
.communities-tools-links { position: absolute; z-index: 10; right: 0; top: calc(100% + 6px); display: grid; width: 240px; max-width: calc(100vw - 40px); border: 1px solid var(--line); border-radius: 6px; padding: 8px; background: var(--paper); box-shadow: 0 12px 30px rgb(42 33 28 / 10%); }
.communities-tools-links a { display: flex; align-items: center; min-height: 44px; padding: 10px 12px; font-size: 14px; }
.communities-tools-links a:hover { background: var(--mist); }
.communities-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 22px; }
.communities-search { display: flex; flex-direction: row-reverse; align-items: center; min-height: 54px; border: 1px solid var(--line-strong); border-radius: 5px; background: var(--paper); }
.communities-search input { flex: 1; min-width: 0; width: 100%; border: 0; padding: 14px 14px 14px 0; background: transparent; color: var(--ink); font-size: 16px; }
.communities-search input::placeholder { color: var(--muted); opacity: 1; }
.communities-search button { display: grid; place-items: center; flex: 0 0 48px; align-self: stretch; border: 0; border-radius: 4px; padding: 8px; background: transparent; color: var(--muted); cursor: pointer; }
.communities-search button:hover { background: var(--mist); color: var(--ink); }
.communities-filters select { width: 100%; min-width: 0; min-height: 54px; border: 1px solid var(--line-strong); border-radius: 5px; padding: 12px 16px; color: var(--ink); background-color: var(--paper); font-size: 14px; font-weight: 550; }
/* Discovery stays compact independently of detail, workspace and dialog layouts. */
.communities-discovery-page .communities-main { width: min(calc(100% - 96px), 1290px); padding-top: 48px; }
.communities-grid { display: grid; gap: 0; margin-top: 32px; }
.communities-card { display: grid; grid-template-columns: minmax(240px, 32.5%) minmax(0, 1fr); align-items: center; gap: 32px; padding: 0 0 20px; border-bottom: 1px solid var(--line); }
.communities-card + .communities-card { padding-top: 20px; }
.communities-card-media { position: relative; min-width: 0; }
.communities-card-cover-link { display: block; overflow: hidden; border-radius: 5px; }
.communities-cover { display: block; width: 100%; height: auto; aspect-ratio: 1.95; object-fit: cover; }
.communities-card .communities-cover { aspect-ratio: 2.25; object-position: 50% 35%; }
.communities-membership-badge { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; gap: 6px; max-width: calc(100% - 16px); min-height: 26px; padding: 4px 10px; border-radius: 5px; background: var(--paper); color: var(--success, #196647); font: 650 12px/1.3 var(--font-ui); pointer-events: none; }
.communities-membership-badge svg { flex: 0 0 auto; }
.communities-card-copy { min-width: 0; }
.communities-eyebrow { display: block; color: var(--spark-hover); font-size: 11px; font-weight: 700; letter-spacing: .075em; line-height: 1.5; text-transform: uppercase; }
.communities-card h2 { margin: 0; font-size: clamp(28px, 3vw, 36px); line-height: 1.15; letter-spacing: -.025em; overflow-wrap: anywhere; }
.communities-card h2 a:hover { color: var(--spark-hover); }
.communities-card-summary { margin-top: 6px; color: var(--muted); font-size: 16px; line-height: 1.5; overflow-wrap: anywhere; }
.communities-card-footer { display: flex; align-items: center; gap: 24px; margin-top: 18px; }
.communities-card-people { display: grid; flex: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 16px; min-width: 0; }
.communities-manager { display: flex; align-items: center; gap: 7px; min-width: 0; }
.communities-manager p { margin: 0; min-width: 0; font-size: 13px; color: var(--muted); line-height: 1.45; overflow-wrap: anywhere; }
.communities-manager strong { color: var(--ink); font-weight: 650; }
.communities-card-people > .communities-manager { justify-self: end; }
.communities-card-people > .communities-manager:only-child { grid-column: 2; }
.communities-discovery-page .communities-members { display: flex; align-items: center; gap: 8px; min-width: 0; }
.communities-discovery-page .communities-member-previews { display: flex; align-items: center; flex: 0 0 auto; }
.communities-discovery-page .communities-member-avatar { position: relative; display: grid; place-items: center; flex: 0 0 20px; width: 20px; height: 20px; overflow: hidden; border: 1px solid var(--paper); border-radius: 50%; background: var(--soft-neutral, var(--mist)); color: var(--ink); font: 600 9px/1 var(--font-ui); }
.communities-discovery-page .communities-member-avatar + .communities-member-avatar { margin-left: -4px; }
.communities-discovery-page .communities-member-photo { position: absolute; inset: 0; border-radius: inherit; }
.communities-discovery-page .communities-member-count { min-width: 0; font-size: 13px; font-weight: 400; line-height: 1.45; color: var(--muted); overflow-wrap: anywhere; }
.communities-card-action { flex: 0 0 auto; justify-content: flex-start; text-align: left; }
.communities-discovery-utilities { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 24px; margin-top: 20px; }
.communities-discovery-utilities .communities-preview { margin: 0; }
@media (min-width: 1101px) {
  .communities-card-copy { display: flex; flex-direction: column; align-self: stretch; padding-block: 10px; }
  .communities-card-footer { margin-top: auto; padding-top: 18px; }
  .communities-card-people > .communities-manager { justify-self: start; }
}
.communities-page .communities-apply { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 48px; padding: 12px 20px; border-radius: 6px; font-size: 15px; font-weight: 650; text-align: center; line-height: 1.45; }
.communities-card-example { margin-top: 8px; font-size: 12px; color: var(--muted); }
.communities-empty { margin-top: 40px; padding: 50px 20px; text-align: center; background: var(--mist); border-radius: 5px; }
.communities-empty h2 { font-size: 30px; line-height: 1.2; }
.communities-empty p { margin-top: 12px; color: var(--muted); }
.communities-empty a { margin-top: 16px; }
.communities-page .communities-detail { max-width: 1200px; padding-top: 28px; }
.communities-breadcrumb { margin-bottom: 26px; font-size: 13px; color: var(--muted); }
.communities-breadcrumb a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; }
.communities-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 4px; }
.communities-detail-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: center; gap: 44px; }
.communities-detail-cover { overflow: hidden; border-radius: 5px; }
.communities-detail-cover .communities-cover { aspect-ratio: 1.85; }
.communities-detail-intro { min-width: 0; }
.communities-detail-intro h1 { margin: 7px 0 0; font-size: clamp(34px, 3.5vw, 50px); line-height: 1.1; letter-spacing: -.028em; overflow-wrap: anywhere; }
.communities-detail-summary { margin-top: 14px; color: var(--muted); font-size: 18px; line-height: 1.6; }
.communities-location, .communities-language-line { display: flex; align-items: flex-start; gap: 10px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.communities-location { margin-top: 20px; }
.communities-language-line { margin-top: 10px; }
.communities-location svg, .communities-language-line svg { flex: 0 0 auto; margin-top: 2px; color: var(--spark-hover); }
.communities-detail-manager { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.communities-detail-manager p { color: var(--muted); font-size: 14px; }
.communities-detail-manager strong { color: var(--ink); font-weight: 650; }
.communities-detail-intro > .communities-apply { width: 100%; margin-top: 22px; }
.communities-detail-content { margin-top: 40px; }
.communities-detail-content section { padding-top: 24px; border-top: 1px solid var(--line); }
.communities-detail-content section + section { margin-top: 28px; }
.communities-detail-content h2 { margin-top: 0; font-size: 30px; line-height: 1.2; letter-spacing: -.02em; }
.communities-about p { max-width: 900px; margin-top: 14px; font-size: 15px; line-height: 1.8; color: var(--muted); white-space: pre-line; overflow-wrap: anywhere; }
.communities-about details { margin-top: 8px; }
.communities-about summary { display: flex; align-items: center; gap: 8px; min-height: 44px; width: fit-content; list-style: none; color: var(--spark-hover); font-size: 14px; font-weight: 650; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.communities-about summary::-webkit-details-marker { display: none; }
.communities-read-less { display: none; }
.communities-about details[open] .communities-read-more { display: none; }
.communities-about details[open] .communities-read-less { display: inline; }
.communities-about details[open] summary svg { transform: rotate(180deg); }
.communities-about:has(details[open]) .communities-about-excerpt { display: none; }
.communities-events-note { display: flex; align-items: center; gap: 14px; margin-top: 18px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.communities-events-note svg { color: var(--spark-hover); flex: 0 0 auto; }
.communities-event-list { display: grid; padding: 0; margin: 16px 0 0; list-style: none; }
.communities-event-list li { display: flex; gap: 14px; align-items: center; padding: 14px 0; }
.communities-event-list li > svg { flex: 0 0 auto; color: var(--spark-hover); }
.communities-event-list a { flex: 1; display: grid; gap: 4px; font-size: 15px; }
.communities-event-list time { color: var(--muted); font-size: 13px; }
@media (max-width: 1100px) {
  .communities-page .communities-main { width: min(calc(100% - 56px), 1290px); }
  .communities-card { gap: 24px; }
  .communities-card-footer { flex-wrap: wrap; gap: 0; margin-top: 12px; }
  .communities-card-people { flex-basis: 100%; }
  .communities-card h2 { font-size: 28px; }
  .communities-card-summary { font-size: 15px; }
  .communities-detail-hero { gap: 28px; }
}
@media (max-width: 700px) {
  .communities-page .communities-main { width: calc(100% - 40px); padding-top: 30px; padding-bottom: 44px; }
  .communities-discovery-page .communities-heading { display: block; }
  .communities-discovery-page .communities-heading h1 { font-size: clamp(27px, 7.2vw, 29px); }
  .communities-discovery-page .communities-start-invitation { margin-top: 8px; font-size: 14px; }
  .communities-discovery-page .communities-start-review { font-size: 12px; }
  .communities-discovery-page .communities-discovery-actions { position: relative; width: 100%; justify-content: flex-start; gap: 8px 18px; margin-top: 13px; }
  .communities-discovery-page .communities-start-action { gap: 8px; padding-inline: 12px; font-size: 13px; }
  .communities-discovery-page .communities-tools { position: static; }
  .communities-discovery-page .communities-heading + .communities-section-nav { margin-top: 14px; }
  .communities-filters { grid-template-columns: minmax(0, 1.35fr) minmax(0, .9fr); gap: 12px; margin-top: 18px; }
  .communities-search, .communities-filters select { min-height: 46px; }
  .communities-search input { font-size: 16px; padding-block: 10px; }
  .communities-filters select { font-size: 13px; }
  .communities-search button { flex-basis: 40px; }
  .communities-filters select { padding-inline: 10px; }
  .communities-grid { margin-top: 24px; }
  .communities-card { display: block; padding-bottom: 10px; }
  .communities-card + .communities-card { padding-top: 16px; }
  .communities-card .communities-cover { aspect-ratio: 3.25; }
  .communities-card h2 { margin-top: 8px; font-size: 24px; line-height: 1.15; }
  .communities-card-summary { margin-top: 3px; font-size: 14px; line-height: 1.45; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; }
  .communities-card-footer { display: block; margin-top: 8px; }
  .communities-card-people { gap: 12px; min-height: 28px; }
  .communities-manager p { font-size: 12px; }
  .communities-card-action { font-size: 14px; }
  .communities-page .communities-detail { padding-top: 12px; }
  .communities-breadcrumb { margin-bottom: 16px; }
  .communities-detail-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .communities-detail-intro h1 { font-size: 36px; }
  .communities-detail-summary { font-size: 17px; margin-top: 12px; }
  .communities-detail-content { margin-top: 30px; }
  .communities-detail-content h2 { font-size: 28px; }
  .communities-location { margin-top: 16px; }
  .communities-preview { margin-bottom: 12px; }
}
@media (max-width: 360px) {
  .communities-discovery-page .communities-discovery-actions { column-gap: 4px; }
  .communities-discovery-page .communities-start-action { gap: 6px; padding-inline: 8px; }
  .communities-discovery-page .communities-tools > summary { font-size: 12px; }
  .communities-search button { flex-basis: 32px; }
  .communities-filters { gap: 8px; }
  .communities-filters select { padding-inline: 6px; }
  .communities-card h2 { font-size: 22px; }
  .communities-card-people { gap: 8px; }
}
@media (prefers-reduced-motion: reduce) { .communities-page *, .communities-page *::before, .communities-page *::after { scroll-behavior: auto; transition: none; } }
/* Approved community discovery and joining presentation. Personal state stays server-derived. */
.communities-page .communities-main { width: min(calc(100% - 48px), 1180px); padding-top: 52px; }
.communities-section-nav { display: flex; align-items: center; gap: 26px; margin-bottom: 34px; border-bottom: 1px solid var(--line); }
.communities-section-nav a { display: inline-flex; align-items: center; min-height: 48px; padding-block: 9px 13px; border-bottom: 2px solid transparent; color: var(--muted); font: 500 13px/1.5 var(--font-ui); }
.communities-section-nav a[aria-current="page"] { color: var(--ink); font-weight: 650; border-bottom-color: var(--spark-hover); }
.communities-filters { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); width: min(100%, 750px); margin-top: 26px; gap: 18px; }
.communities-grid { margin-top: 34px; }
.communities-card { grid-template-columns: minmax(280px, 35%) minmax(0, 1fr); align-items: center; gap: 34px; padding-bottom: 27px; }
.communities-card + .communities-card { padding-top: 27px; }
.communities-card .communities-cover { aspect-ratio: 2.2; }
.communities-card-copy { display: flex; flex-direction: column; align-self: center; padding-block: 0; }
.communities-card h2 { margin-top: 9px; font-size: 32px; }
.communities-card-summary { margin-top: 10px; font-size: 14px; line-height: 1.7; }
.communities-card-footer { display: flex; flex-direction: column; align-items: stretch; margin-top: 20px; padding-top: 0; gap: 15px; }
.communities-card-people { width: 100%; flex: auto; }
.communities-card-people > .communities-manager { justify-self: end; }
.communities-card .communities-card-action { align-self: flex-end; min-width: 190px; min-height: 46px; padding: 11px 18px; border-radius: 5px; background: var(--spark-hover); color: var(--paper); text-decoration: none; text-align: center; justify-content: center; font-size: 14px; }
.communities-card .communities-card-action:hover { background: var(--ink); color: var(--paper); }
.communities-detail-page .communities-section-nav { margin-bottom: 20px; }
.communities-page .communities-detail { max-width: 1180px; }
.communities-detail-hero { grid-template-columns: minmax(0, 1.27fr) minmax(300px, .9fr); gap: 49px; }
.communities-detail-cover .communities-cover { aspect-ratio: 1.64; }
.communities-detail-intro h1 { font-size: 45px; }
.communities-detail-summary { margin-top: 12px; font-size: 17px; }
.communities-detail-manager { margin-top: 20px; }
.communities-detail-intro > .communities-members { display: flex; align-items: center; gap: 9px; margin-top: 18px; }
.communities-detail-intro .communities-member-previews { display: flex; }
.communities-detail-intro .communities-member-avatar { position: relative; display: grid; place-items: center; width: 22px; height: 22px; overflow: hidden; border: 1px solid var(--paper); border-radius: 50%; background: var(--mist); font: 600 10px/1 var(--font-ui); }
.communities-detail-intro .communities-member-avatar + .communities-member-avatar { margin-left: -4px; }
.communities-detail-intro .communities-member-photo { position: absolute; inset: 0; border-radius: inherit; }
.communities-detail-intro .communities-member-count { color: var(--muted); font-size: 13px; overflow-wrap: anywhere; }
.communities-detail-intro > .communities-apply { width: auto; margin-top: 24px; }
.communities-gathering-readiness, .communities-booking-note { margin-top: 14px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.communities-detail-content { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(260px, .8fr); gap: 65px; margin-top: 40px; padding-top: 30px; border-top: 1px solid var(--line); }
.communities-detail-content > div, .communities-joining-note { min-width: 0; }
.communities-detail-content section { border-top: 0; padding-top: 0; }
.communities-detail-content h2 { font-size: 29px; }
.communities-joining-note { border-left: 1px solid var(--line); padding-left: 30px; }
.communities-joining-note h2 { font-size: 25px; }
.communities-joining-note p { margin-top: 16px; color: var(--muted); font-size: 14px; line-height: 1.85; overflow-wrap: anywhere; }
@media (min-width: 1101px) {
  .communities-card { grid-template-columns: minmax(280px, .9fr) minmax(0, 1.25fr) 190px; gap: 0 34px; }
  .communities-card-media { grid-column: 1; grid-row: 1 / 5; }
  .communities-card-copy, .communities-card-footer, .communities-card-people { display: contents; }
  .communities-card-copy > .communities-eyebrow { grid-column: 2; grid-row: 1; align-self: end; }
  .communities-card h2 { grid-column: 2; grid-row: 2; align-self: center; margin-top: 8px; }
  .communities-card-summary { grid-column: 2; grid-row: 3; align-self: start; margin-top: 10px; }
  .communities-card-people > .communities-members { grid-column: 2; grid-row: 4; align-self: start; margin-top: 18px; }
  .communities-card-people > .communities-manager, .communities-card-people > .communities-manager:only-child { grid-column: 3; grid-row: 2; justify-self: start; }
  .communities-card .communities-card-action { grid-column: 3; grid-row: 3 / 5; align-self: start; margin-top: 13px; }
  .communities-card-example { grid-column: 2; }
}
@media (max-width: 850px) {
  .communities-card { grid-template-columns: minmax(230px, 1fr) minmax(0, 1fr); gap: 25px; }
  .communities-detail-hero { gap: 28px; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); }
  .communities-detail-content { gap: 28px; grid-template-columns: minmax(0, 1.4fr) minmax(220px, .8fr); }
}
@media (max-width: 700px) {
  .communities-page .communities-main { width: calc(100% - 40px); padding-top: 16px; padding-bottom: 44px; }
  .communities-section-nav { margin-bottom: 21px; gap: 26px; }
  .communities-section-nav a { min-height: 43px; font-size: 13px; }
  .communities-filters { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); margin-top: 19px; gap: 11px; }
  .communities-grid { margin-top: 23px; }
  .communities-card { display: block; padding-bottom: 23px; }
  .communities-card + .communities-card { padding-top: 23px; }
  .communities-card .communities-cover { aspect-ratio: 3; }
  .communities-card-copy { display: block; }
  .communities-card .communities-eyebrow { margin-top: 12px; font-size: 10px; }
  .communities-card h2 { margin-top: 7px; font-size: 28px; }
  .communities-card-summary { display: block; margin-top: 9px; font-size: 14px; line-height: 1.65; -webkit-line-clamp: unset; }
  .communities-card-footer { display: flex; gap: 13px; margin-top: 16px; }
  .communities-card-people { min-height: 30px; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; }
  .communities-card .communities-card-action { align-self: stretch; min-width: 0; width: 100%; min-height: 45px; }
  .communities-detail-hero { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .communities-detail-intro h1 { font-size: 36px; }
  .communities-detail-content { grid-template-columns: minmax(0, 1fr); gap: 27px; margin-top: 30px; padding-top: 25px; }
  .communities-joining-note { border-left: 0; border-top: 1px solid var(--line); padding: 24px 0 0; }
  .communities-joining-note h2 { font-size: 26px; }
}
@media (max-width: 360px) { .communities-card h2 { font-size: 27px; } .communities-card-people { gap: 8px; } }

/* Shared Communities joining dialog. Append to the gated Communities stylesheet. */
.cj-action { gap: 10px; }
.cj-action svg { flex-shrink: 0; }
.cj-dialog { position: fixed; width: min(560px, calc(100vw - 40px)); max-height: calc(var(--cj-viewport-height, 100dvh) - 48px); margin: auto; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: var(--ink); box-shadow: 0 22px 90px rgb(34 25 20 / 24%); }
.cj-dialog:not([open]) { display: none; }
.cj-dialog::backdrop { background: rgb(35 29 25 / 65%); }
.cj-scroll { max-height: calc(var(--cj-viewport-height, 100dvh) - 48px); overflow-y: auto; overscroll-behavior: contain; padding: 38px 38px 24px; }
.cj-close { position: absolute; z-index: 2; top: 7px; right: 7px; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; background: var(--paper); color: var(--ink); border-radius: 50%; cursor: pointer; }
.cj-close:hover { background: var(--mist); }
.cj-community { display: flex; align-items: center; gap: 18px; padding-right: 8px; }
.cj-community > img { width: 116px; height: 70px; flex-shrink: 0; object-fit: cover; border-radius: 5px; }
.cj-community > div { display: grid; gap: 5px; min-width: 0; }
.cj-community strong { font: 700 19px/1.3 var(--font-ui); overflow-wrap: anywhere; }
.cj-community span { color: var(--muted); font: 400 14px/1.5 var(--font-ui); }
.cj-dialog h2 { margin: 24px 0 18px; font: 700 40px/1.12 var(--font-display); letter-spacing: -.035em; overflow-wrap: anywhere; }
.cj-reviewer { margin: -3px 0 19px; color: var(--muted); font: 400 14px/1.6 var(--font-ui); }
.cj-profile { border-block: 1px solid var(--line); margin-bottom: 22px; }
.cj-profile > summary { display: flex; align-items: center; gap: 14px; min-height: 84px; padding-block: 16px; cursor: pointer; list-style: none; }
.cj-profile > summary::-webkit-details-marker { display: none; }
.cj-avatar { display: grid; place-items: center; width: 48px; height: 48px; flex: 0 0 48px; overflow: hidden; border-radius: 50%; background: #eaded2; color: var(--ink); font: 650 24px/1 var(--font-ui); }
.cj-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.cj-profile-name { display: grid; gap: 4px; min-width: 0; }
.cj-profile-name strong { font: 700 15px/1.35 var(--font-ui); overflow-wrap: anywhere; }
.cj-profile-name > span { font: 400 13px/1.45 var(--font-ui); color: var(--muted); }
.cj-profile-preview { display: flex; align-items: center; min-height: 44px; max-width: 38%; margin-left: auto; color: var(--spark-hover); font: 650 13px/1.5 var(--font-ui); text-decoration: underline; text-underline-offset: 4px; }
.cj-profile-body { padding-bottom: 17px; }
.cj-profile-body p { margin: 0 0 8px; color: var(--muted); font: 400 14px/1.6 var(--font-ui); white-space: pre-line; overflow-wrap: anywhere; }
.cj-profile-body p:last-child { margin-bottom: 0; }
.cj-live { margin: 12px 0; color: var(--muted); font: 400 13px/1.5 var(--font-ui); }
.cj-live:empty { display: none; }
.cj-error { margin-block: 16px; border-left: 2px solid var(--danger, #8d3328); padding: 10px 13px; background: var(--mist); font: 400 14px/1.55 var(--font-ui); }
.cj-error p { margin: 0; }
.cj-answer { margin-top: 18px; }
.cj-answer > label { display: block; margin-bottom: 12px; font: 650 16px/1.55 var(--font-ui); overflow-wrap: anywhere; }
.cj-answer textarea { display: block; width: 100%; min-height: 104px; max-height: 300px; padding: 13px 15px; border: 1px solid var(--line); border-radius: 5px; background: var(--paper); color: var(--ink); font: 400 16px/1.55 var(--font-ui); resize: vertical; }
.cj-answer textarea[aria-invalid="true"] { border-color: var(--danger, #8d3328); }
.cj-help { margin: 8px 0 0; color: var(--muted); font: 400 13px/1.5 var(--font-ui); }
.cj-field-error { margin: 8px 0 0; color: var(--danger, #8d3328); font: 500 13px/1.55 var(--font-ui); }
.cj-shared { display: flex; align-items: flex-start; gap: 12px; margin: 23px 0 20px; border-top: 1px solid var(--line); padding-top: 19px; color: var(--muted); font: 400 13px/1.65 var(--font-ui); }
.cj-shared svg { flex: 0 0 auto; margin-top: 1px; }
.cj-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cj-text-button, .cj-text-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 5px 0; border: 0; background: transparent; color: var(--spark-hover); font: 650 13px/1.5 var(--font-ui); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.cj-form-actions > .cj-text-button { margin-inline: 20px; }
.cj-dialog .cj-submit { min-width: 240px; min-height: 50px; max-width: 100%; padding: 12px 20px; font-size: 16px; line-height: 1.45; text-align: center; }
.cj-dialog button:disabled, .cj-dialog textarea:disabled, .cj-dialog input:disabled { cursor: default; opacity: .6; }
.cj-booking-note { margin: 14px 0 17px; color: var(--muted); font: 400 12px/1.55 var(--font-ui); }
.cj-feedback { margin: 16px 0; border-left: 2px solid var(--spark-hover); padding: 3px 0 3px 14px; font: 400 14px/1.6 var(--font-ui); }
.cj-feedback strong { font-weight: 650; }
.cj-feedback p { margin: 6px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.cj-prerequisites { margin-block: 18px; border: 1px solid var(--line); border-radius: 5px; padding: 15px; background: var(--mist); }
.cj-prerequisites > p { margin: 0 0 9px; font: 400 14px/1.6 var(--font-ui); }
.cj-prerequisites > p > span { display: block; margin-top: 4px; }
.cj-profile-recovery > summary { padding-block: 9px; color: var(--spark-hover); font: 650 13px/1.5 var(--font-ui); cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.cj-profile-recovery fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }
.cj-profile-recovery .cj-answer textarea { min-height: 80px; }
.cj-language-choices { display: flex; flex-wrap: wrap; gap: 9px 18px; margin-top: 15px !important; }
.cj-language-choices legend { margin-bottom: 10px; font: 650 13px/1.6 var(--font-ui); }
.cj-language-choices label { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; font: 400 14px/1.5 var(--font-ui); }
.cj-language-choices input { width: 18px; height: 18px; accent-color: var(--spark-hover); }
.cj-save-profile { margin-top: 12px; font-size: 13px; }
.cj-outcome { margin-block: 22px 14px; font: 400 15px/1.65 var(--font-ui); }
.cj-outcome > svg { color: var(--success, #196647); }
.cj-outcome > p { margin: 10px 0; }
.cj-application-details { margin-block: 18px; }
.cj-application-details summary { min-height: 36px; font-weight: 650; color: var(--spark-hover); cursor: pointer; }
.cj-application-details p { margin: 9px 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.cj-outcome-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 22px; margin-top: 20px; }
.cj-outcome-actions > a { font-size: 14px; }
.cj-dialog button:focus-visible, .cj-dialog a:focus-visible, .cj-dialog summary:focus-visible, .cj-dialog textarea:focus-visible, .cj-dialog input:focus-visible { outline: 3px solid var(--spark-hover); outline-offset: 4px; }
@media (max-width: 650px) {
  .cj-dialog { width: 100%; max-width: 100%; max-height: calc(var(--cj-viewport-height, 100dvh) - 16px); inset: var(--cj-viewport-top, 0px) 0 calc(100% - var(--cj-viewport-height, 100dvh) - var(--cj-viewport-top, 0px)); margin: auto auto 0; border-radius: 16px 16px 0 0; }
  .cj-scroll { max-height: calc(var(--cj-viewport-height, 100dvh) - 16px); padding: 36px 23px calc(20px + env(safe-area-inset-bottom)); }
  .cj-community { gap: 13px; padding-right: 10px; }
  .cj-community > img { width: 90px; height: 60px; }
  .cj-community strong { font-size: 17px; }
  .cj-community span { font-size: 13px; }
  .cj-dialog h2 { margin: 24px 0 17px; font-size: 35px; line-height: 1.15; }
  .cj-profile > summary { gap: 10px; }
  .cj-profile-preview { max-width: 36%; font-size: 12px; }
  .cj-profile-name strong { font-size: 14px; }
  .cj-profile-name > span { font-size: 12px; }
  .cj-avatar { width: 44px; height: 44px; flex-basis: 44px; }
  .cj-answer textarea { min-height: 104px; }
  .cj-form-actions { flex-direction: column-reverse; gap: 8px; }
  .cj-dialog .cj-submit { width: 100%; min-width: 0; min-height: 50px; }
  .cj-form-actions > .cj-text-button { margin: 0; }
  .cj-booking-note { margin-top: 9px; }
  .cj-outcome-actions { align-items: stretch; flex-direction: column; gap: 5px; }
  .cj-outcome-actions > a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { .cj-dialog, .cj-dialog * { scroll-behavior: auto !important; } }

.cj-dialog .cj-draft-saved{font-size:12px;line-height:1.6;color:var(--muted);margin-top:8px}

.cj-joining-requirements{margin-block:18px;color:var(--muted)}.cj-joining-requirements h3{font:600 14px/1.5 var(--font-ui);color:var(--ink);margin-bottom:8px}.cj-joining-requirements ul{display:flex;flex-wrap:wrap;gap:7px 16px;padding:0;list-style:none}.cj-joining-requirements li{display:flex;align-items:center;gap:6px;font:400 13px/1.55 var(--font-ui);min-width:0;overflow-wrap:anywhere}.cj-joining-requirements li:before{content:"·";color:var(--spark-hover);font-weight:700}

/* Paid membership disclosures; existing free communities have none of these classes. */
.cm-price-notice,.cm-inclusions{color:var(--ink-soft);font-family:var(--font-ui);font-size:15px;line-height:1.5;min-width:0}
.cm-price-notice .cm-secondary{color:var(--muted);font-size:14px;line-height:1.5;margin:6px 0 12px}
.cm-notice{align-items:flex-start;background:var(--warm);border-radius:var(--radius-s,6px);display:flex;gap:12px;margin:12px 0;padding:16px}
.cm-notice>svg{color:var(--spark-hover);flex:0 0 20px;margin-top:1px}
.cm-notice strong{color:var(--ink);display:block;font-size:14px;line-height:1.4;margin-bottom:3px}
.cm-notice>div>div{font-size:14px;line-height:1.5}
.cm-notice-positive{background:#eaf4ee}
.cm-notice-positive>svg{color:var(--success,#2f6b54)}
.cm-price-notice{border-top:1px solid var(--line);margin:18px 0 0;padding-top:16px}
.cm-label,.cm-price-notice .cm-label{font-size:14px;margin:0 0 4px}
.cm-price,.cm-price-notice .cm-price{color:var(--ink);font-family:var(--font-display);font-size:28px;font-weight:600;letter-spacing:0;line-height:1.2;margin:0 0 8px}
.cm-public-action{margin:16px 0 12px}
.cm-price-notice-compact{border:0;margin:0;padding:0}
.cm-price-notice-compact .cm-price,.cm-price-notice .cm-price{font-family:var(--font-ui);font-size:15px;font-weight:600}
.cm-price-notice-compact .cm-label,.cm-price-notice-compact .cm-notice,.cm-price-notice-compact .cm-open-terms{display:none}
.cm-inclusions{margin:18px 0}
.cm-inclusions h3{color:var(--ink);font-family:var(--font-ui);font-size:15px;font-weight:600;line-height:1.4;margin:0 0 10px}
.cm-inclusions ul{display:grid;gap:8px;list-style:none;margin:0;padding:0}
.cm-inclusions li{align-items:flex-start;display:flex;gap:10px;min-width:0;overflow-wrap:anywhere}
.cm-inclusions li svg{background:#eaf4ee;border-radius:50%;color:#25523d;flex:0 0 24px;height:24px;margin-top:0;padding:3px;width:24px}
.cm-booking-note{align-items:flex-start;display:flex;font-size:13px;gap:10px;margin:18px 0}
.cm-booking-note svg{flex:0 0 18px;margin-top:1px}
.cm-terms{border-block:1px solid var(--line);font:14px/1.5 var(--font-ui);margin:18px 0;padding:12px 0;scroll-margin-top:96px}.cm-terms summary,.cm-terms a{color:var(--spark-hover);cursor:pointer;font-weight:600;text-decoration:underline;text-underline-offset:4px}.cm-terms p,.communities-page .cm-terms p{color:var(--ink-soft);margin:10px 0}.cm-terms summary:focus-visible{outline:2px solid var(--spark-hover);outline-offset:4px}
@media(max-width:599px){.cm-price-notice{font-size:14px}.cm-price,.cm-price-notice .cm-price{font-size:26px}.cm-public-action>.button{width:100%}.cm-notice{gap:10px;padding:13px}}

.cm-price-notice .cm-compact-payment-note{color:var(--muted);font-size:13px;line-height:1.5;margin:8px 0}.cm-compact-payment-note strong{color:var(--ink);font-weight:600}

/* Signed-out joining keeps registration primary and existing-member access nearby.
 * These rules never change authenticated community, roster or billing layouts. */
.communities-detail-page--guest .communities-main { padding-top: 24px; }
.communities-detail-page--guest .communities-section-nav { display: none; }
.communities-detail-page--guest .communities-detail-hero { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 36px; }
.communities-detail-page--guest .communities-detail-intro h1 { font-size: 38px; line-height: 1.12; }
.communities-detail-page--guest .communities-detail-summary { font-size: 16px; line-height: 1.55; }
.communities-detail-people { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 18px; margin-top: 18px; }
.communities-detail-people .communities-detail-manager { margin-top: 0; }
.communities-detail-people .communities-members { display: flex; align-items: center; gap: 9px; min-width: 0; }
.communities-join-entry { margin-top: 22px; min-width: 0; }
.communities-join-entry-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 20px; }
.communities-join-entry-actions > .communities-apply { flex: 1 1 230px; margin: 0; min-height: 52px; }
.communities-page .communities-join-entry-signin { display: flex; flex: 0 1 150px; align-items: center; flex-wrap: wrap; column-gap: 4px; margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5; }
.communities-join-entry-signin a { display: inline-flex; align-items: center; min-height: 44px; color: var(--spark-hover); font-weight: 650; text-decoration: underline; text-underline-offset: 4px; }
.communities-join-entry-signin a:hover { color: var(--ink); }
.communities-page .communities-join-entry-help { margin-top: 10px; color: var(--muted); font-size: 13px; line-height: 1.55; overflow-wrap: anywhere; }
.cm-public-action > .communities-join-entry { margin-top: 0; }
@media (max-width: 850px) and (min-width: 701px) {
  .communities-detail-page--guest .communities-detail-hero { gap: 26px; }
  .communities-detail-page--guest .communities-detail-intro h1 { font-size: 32px; }
}
@media (max-width: 700px) {
  .communities-detail-page--guest .communities-main { padding-top: 16px; }
  .communities-detail-page--guest .communities-breadcrumb { display: none; }
  .communities-detail-page--guest .communities-detail-hero { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .communities-detail-page--guest .communities-detail-cover .communities-cover { aspect-ratio: 2.2; }
  .communities-detail-page--guest .communities-detail-intro h1 { font-size: 28px; line-height: 1.12; }
  .communities-detail-page--guest .communities-detail-summary { margin-top: 10px; font-size: 15px; line-height: 1.55; }
  .communities-detail-page--guest .communities-location { margin-top: 16px; }
  .communities-detail-page--guest .communities-language-line { margin-top: 8px; }
  .communities-detail-people { margin-top: 16px; }
  .communities-join-entry { margin-top: 20px; }
  .communities-join-entry-actions { flex-direction: column; align-items: stretch; gap: 8px; }
  .communities-join-entry-actions > .communities-apply { flex: auto; width: 100%; }
  .communities-page .communities-join-entry-signin { flex: auto; justify-content: center; min-height: 44px; }
  .communities-page .communities-join-entry-help { margin-top: 4px; text-align: center; }
}
