/* M4D.2: Community-scoped foundation. Reuses the site's Metronic/Moment theme. */
.community-page {
    --community-font: "Noto Sans KR", Inter, sans-serif;
    --community-text: var(--foreground);
    --community-secondary: #536176;
    --community-surface: var(--card, #fff);
    --community-neutral: #f5f7f8;
    --community-border: #d5dde3;
    --community-control-border: #85919e;
    --community-brand: var(--moment-green, #176b55);
    --community-brand-hover: var(--moment-green-dark, #0e3e34);
    --community-brand-soft: var(--moment-mint, #edf8f4);
    --community-question-bg: #eaf2ff;
    --community-question-border: #bdd1ee;
    --community-question-text: #182d47;
    --community-question-label: #285b95;
    --community-answer-bg: #e8f5ee;
    --community-answer-border: #badbc7;
    --community-answer-text: #193c30;
    --community-danger: #b42318;
    --community-danger-bg: #fff4f2;
    --community-success-bg: #edf8f4;
    --community-warning: #8a4b0f;
    --community-warning-bg: #fff8eb;
    --community-thread-line: #b7d3c9;
    --community-focus: var(--moment-green, #176b55);
    --community-focus-shadow: 0 0 0 2px color-mix(in srgb, var(--community-focus) 18%, transparent);
    --community-menu-shadow: 0 6px 18px rgb(20 55 46 / 14%);
    --community-text-xs: 12px;
    --community-text-sm: 13px;
    --community-text-body: 15px;
    --community-text-editor: 16px;
    --community-text-title: 18px;
    --community-text-section: 20px;
    --community-line-body: 1.8;
    --community-line-ui: 1.6;
    --community-space-1: 4px;
    --community-space-2: 8px;
    --community-space-3: 12px;
    --community-space-4: 16px;
    --community-space-5: 20px;
    --community-space-6: 24px;
    --community-space-8: 32px;
    --community-space-10: 40px;
    --community-radius-sm: 8px;
    --community-radius: 14px;
    --community-radius-composer: 22px;
    --community-width: 1080px;
    --community-reading-width: 76ch;
    --community-composer-width: 700px;
    --community-touch: 44px;
    --community-collapsed-height: 46px;
    --community-editor-min: 88px;
    --community-editor-max: 200px;
    --community-scroll-offset: 110px;
    max-width: var(--community-width);
    min-width: 0;
    margin: 0 auto;
    padding: var(--community-space-6) 0 48px;
    color: var(--community-text);
    font-family: var(--community-font);
    font-size: var(--community-text-body);
    line-height: var(--community-line-body);
    overflow-wrap: anywhere;
}
.dark .community-page {
    --community-secondary: #bac4d3;
    --community-neutral: #202a31;
    --community-border: #52616b;
    --community-control-border: #8496a3;
    --community-brand: #91d4bc;
    --community-brand-hover: #b7e6d6;
    --community-brand-soft: #1b332b;
    --community-question-bg: #172737;
    --community-question-border: #405875;
    --community-question-text: #e0eafb;
    --community-question-label: #adcbf4;
    --community-answer-bg: #1b3028;
    --community-answer-border: #456b59;
    --community-answer-text: #e1f2e9;
    --community-danger: #ffb4ab;
    --community-danger-bg: #3e2424;
    --community-success-bg: #1b332b;
    --community-warning: #f3ca90;
    --community-warning-bg: #362c1c;
    --community-thread-line: #5b8271;
    --community-focus: #91d4bc;
}
.community-page :is(h1,h2,h3,p,article,section,form) { min-width: 0; }
.community-page > h1,.community-page .community-form-heading { margin-bottom: var(--community-space-5); font-size: clamp(24px,3vw,32px); line-height: 1.45; font-weight: 700; letter-spacing: -.03em; }
.community-page :is(a,button,input,select,textarea,summary):focus-visible { outline: 2px solid var(--community-focus); outline-offset: 3px; border-radius: var(--community-radius-sm); }
.community-page :is(button,input,select,textarea):disabled,.community-page [aria-disabled="true"] { opacity: .65; cursor: not-allowed; }
.community-page :is(a,button,summary) { -webkit-tap-highlight-color: transparent; }
.community-page :is(.kt-btn,.community-pagination a) { min-height: var(--community-touch); height: auto; padding: 10px 16px; font-size: var(--community-text-sm); font-weight: 600; line-height: var(--community-line-ui); white-space: normal; text-align: center; border-radius: var(--community-radius-sm); }
.community-page .kt-btn-primary { background: var(--moment-green); color: #fff; border-color: var(--moment-green); }
.community-page .kt-btn-primary:hover:not(:disabled) { background: var(--moment-green-dark); border-color: var(--moment-green-dark); }
.community-page .kt-btn-outline { border-color: var(--community-border); color: var(--community-text); background: var(--community-surface); }
.community-page .kt-btn-outline:hover { background: var(--community-neutral); }
.community-page :is(button,summary,.kt-btn):active:not(:disabled) { filter: brightness(.96); }

/* Catalog/feed primitives: page-specific navigation and copy remain unchanged. */
.community-page .community-hero { padding: var(--community-space-8); margin-bottom: var(--community-space-6); border: 1px solid var(--community-answer-border); border-radius: var(--community-radius); background: linear-gradient(135deg,var(--community-surface),var(--community-brand-soft)); }
.community-page .community-eyebrow { font-size: var(--community-text-xs); font-weight: 700; letter-spacing: .04em; color: var(--community-brand); }
.community-page .community-hero h1 { font-size: clamp(24px,3vw,32px); font-weight: 700; line-height: 1.45; letter-spacing: -.03em; margin: var(--community-space-3) 0; }
.community-page .community-hero > p { max-width: var(--community-reading-width); font-size: var(--community-text-body); line-height: var(--community-line-body); color: var(--community-secondary); }
.community-page .community-section-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--community-space-2); margin: var(--community-space-6) 0 var(--community-space-4); }
.community-page .community-section-heading :is(h1,h2) { font-size: var(--community-text-section); font-weight: 700; line-height: 1.5; }
.community-page .community-section-heading > span { font-size: var(--community-text-sm); color: var(--community-secondary); }
.community-page .community-catalog { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--community-space-5); }
.community-page .community-card { padding: var(--community-space-6); border: 1px solid var(--community-border); border-radius: var(--community-radius); background: var(--community-surface); min-width: 0; }
.community-page .community-card-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--community-brand-soft); color: var(--community-brand); margin-bottom: var(--community-space-4); }
.community-page .community-card h3 { font-size: var(--community-text-section); line-height: 1.5; font-weight: 700; }
.community-page .community-card p { margin: var(--community-space-3) 0 var(--community-space-4); color: var(--community-secondary); font-size: var(--community-text-body); }
.community-page .community-card .community-card-activity { margin: 0 0 var(--community-space-3); font-size: var(--community-text-sm); }
.community-page .community-text-link { display: inline-flex; align-items: center; min-height: var(--community-touch); color: var(--community-brand); font-size: var(--community-text-sm); font-weight: 600; line-height: var(--community-line-ui); }
.community-page :is(.community-text-link,.community-question-card h3 a,.community-card h3 a,.community-owner-actions a):hover { text-decoration: underline; }
.community-page :is(.community-trust-note,.community-muted) { margin-top: var(--community-space-5); font-size: var(--community-text-sm); line-height: var(--community-line-body); color: var(--community-secondary); }
.community-page .community-notice { margin: var(--community-space-4) 0; padding: var(--community-space-3) var(--community-space-4); border-radius: var(--community-radius-sm); background: var(--community-brand-soft); color: var(--community-brand); font-size: var(--community-text-sm); }
.community-page .community-notice a { text-decoration: underline; font-weight: 600; }
.community-page .community-empty { padding: var(--community-space-6); border: 1px dashed var(--community-border); border-radius: var(--community-radius); background: var(--community-neutral); font-size: var(--community-text-body); color: var(--community-secondary); }
.community-page .community-empty h3 { color: var(--community-text); font-size: var(--community-text-editor); font-weight: 600; margin-bottom: var(--community-space-1); }
.community-page .community-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: var(--community-space-2); font-size: var(--community-text-sm); color: var(--community-secondary); margin-bottom: var(--community-space-4); }
.community-page .community-breadcrumb a { color: var(--community-brand); }
.community-page .community-rules { margin: var(--community-space-4) 0; border: 1px solid var(--community-border); border-radius: var(--community-radius); padding: var(--community-space-3) var(--community-space-4); font-size: var(--community-text-sm); background: var(--community-surface); }
.community-page .community-rules summary { cursor: pointer; font-weight: 600; min-height: var(--community-touch); align-content: center; }
.community-page .community-rules p { margin: var(--community-space-3) 0 0; }
.community-page .community-feed { border: 1px solid var(--community-border); border-radius: var(--community-radius); background: var(--community-surface); }
.community-page .community-question-card { padding: var(--community-space-5) var(--community-space-6); border-bottom: 1px solid var(--community-border); }
.community-page .community-question-card:last-child { border-bottom: 0; }
.community-page .community-question-card h3 { font-size: var(--community-text-title); line-height: 1.6; font-weight: 600; letter-spacing: -.02em; }
.community-page .community-preview { font-size: var(--community-text-body); color: var(--community-secondary); margin: var(--community-space-2) 0 var(--community-space-3); white-space: pre-line; }
.community-page :is(.community-card-footer,.community-contribution-meta) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--community-space-2) var(--community-space-3); color: var(--community-secondary); font-size: var(--community-text-sm); line-height: var(--community-line-ui); }
.community-page .community-author { display: inline-flex; align-items: center; gap: var(--community-space-2); max-width: 100%; min-width: 0; color: var(--community-text); font-size: var(--community-text-sm); font-weight: 600; }
.community-page .community-author img { border-radius: 50%; flex: 0 0 28px; }
.community-page .community-author > span { min-width: 0; overflow-wrap: anywhere; }
.community-page .community-counts { display: flex; flex-wrap: wrap; gap: var(--community-space-3); margin-left: auto; }
.community-page .community-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: var(--community-space-3); margin-top: var(--community-space-5); }
.community-page .community-pagination span { font-size: var(--community-text-sm); color: var(--community-secondary); }
.community-page .community-pagination a { display: inline-flex; align-items: center; border: 1px solid var(--community-border); color: var(--community-brand); background: var(--community-surface); }
.community-page .community-pagination a:hover { background: var(--community-neutral); }

/* Reading surfaces and shared forms. */
.community-page .community-question-detail { padding: var(--community-space-5); border: 1px solid var(--community-question-border); border-radius: var(--community-radius); background: var(--community-question-bg); color: var(--community-question-text); scroll-margin-top: var(--community-scroll-offset); }
.community-page .community-question-detail h1 { font-size: clamp(24px,3vw,30px); font-weight: 700; line-height: 1.5; margin: var(--community-space-3) 0 var(--community-space-4); letter-spacing: -.03em; }
.community-page .community-body { white-space: pre-wrap; overflow-wrap: anywhere; font-size: var(--community-text-body); line-height: var(--community-line-body); margin: var(--community-space-4) 0 0; }
.community-page :is(.community-question-detail,.community-contribution) > .community-body { max-width: var(--community-reading-width); }
.community-page .community-tombstone { color: var(--community-secondary); font-style: normal; }
.community-page .community-discussion-section { margin: var(--community-space-6) 0; scroll-margin-top: var(--community-scroll-offset); }
.community-page .community-contribution { padding: var(--community-space-5); border: 1px solid var(--community-border); border-radius: var(--community-radius); background: var(--community-surface); margin: var(--community-space-3) 0; scroll-margin-top: var(--community-scroll-offset); }
.community-page .community-contribution .community-text-link { margin-top: var(--community-space-2); }
.community-page .community-contribution.ct-formal-answer { background: var(--community-answer-bg); border-color: var(--community-answer-border); color: var(--community-answer-text); }
.community-page .community-comment { padding: var(--community-space-4); border-left: 1px solid var(--community-thread-line); background: var(--community-surface); margin: var(--community-space-3) 0; border-radius: 0 var(--community-radius-sm) var(--community-radius-sm) 0; }
.community-page .community-comment .community-body { margin-top: var(--community-space-2); }
.community-page .community-form { padding: var(--community-space-5); border: 1px solid var(--community-border); border-radius: var(--community-radius); background: var(--community-surface); }
.community-page .community-form label { display: block; font-size: var(--community-text-sm); font-weight: 600; margin: var(--community-space-4) 0 var(--community-space-2); }
.community-page .community-form label span { font-size: var(--community-text-sm); font-weight: 400; color: var(--community-secondary); }
.community-page .community-form :where(input:not([type=hidden]):not([type=checkbox]),textarea,select) { display: block; width: 100%; max-width: 100%; min-width: 0; box-sizing: border-box; min-height: var(--community-touch); font-family: inherit; font-size: var(--community-text-editor); line-height: var(--community-line-ui); padding: 10px 12px; border: 1px solid var(--community-control-border); border-radius: var(--community-radius-sm); background: var(--community-surface); color: var(--community-text); }
.community-page .community-form textarea { resize: vertical; min-height: var(--community-editor-min); }
.community-page .community-form :is(input,textarea,select)[aria-invalid=true],.community-page .community-form .input-validation-error { border-color: var(--community-danger); }
.community-page .community-form-actions { display: flex; flex-wrap: wrap; gap: var(--community-space-2); margin-top: var(--community-space-4); }
.community-page :is(.community-validation,.community-field-error,.community-form-error,.ct-error) { color: var(--community-danger); font-size: var(--community-text-sm); line-height: var(--community-line-body); overflow-wrap: anywhere; }
.community-page :is(.community-validation,.community-form-error).validation-summary-valid { display: none; }
.community-page :is(.community-validation,.community-form-error) ul { padding-left: var(--community-space-5); list-style: disc; }
.community-page .community-delete-confirm { display: flex; gap: var(--community-space-2); align-items: flex-start; min-height: var(--community-touch); }
.community-page .community-delete-confirm input { margin-top: 5px; flex: none; }
.community-page .community-owner-actions { display: flex; flex-wrap: wrap; gap: var(--community-space-3); margin-top: var(--community-space-2); font-size: var(--community-text-sm); color: var(--community-brand); }
.community-page .community-owner-actions a { display: inline-flex; align-items: center; min-height: var(--community-touch); }
.community-page .community-composer { margin-top: var(--community-space-4); }

/* Shared state vocabulary; workflows set the state, CSS only presents it. */
.community-page :is(.ct-navigation-status,.community-status) { margin: var(--community-space-3) 0; padding: var(--community-space-3); border-radius: var(--community-radius-sm); font-size: var(--community-text-sm); color: var(--community-brand); background: var(--community-success-bg); }
.community-page .ct-navigation-status { color: var(--community-danger); background: var(--community-danger-bg); }
.community-page .community-status[data-state=error] { color: var(--community-danger); background: var(--community-danger-bg); }
.community-page .community-status[data-state=conflict] { color: var(--community-warning); background: var(--community-warning-bg); }
.community-page .community-status[data-state=loading] { color: var(--community-secondary); background: var(--community-neutral); }
.community-page [aria-busy=true] { cursor: progress; }
@media(max-width:640px) {
    .community-page { padding: var(--community-space-4) 0 var(--community-space-8); }
    .community-page :is(.community-hero,.community-card,.community-question-card,.community-question-detail,.community-contribution,.community-form,.community-empty) { padding: var(--community-space-4); }
    .community-page .community-catalog { grid-template-columns: 1fr; }
    .community-page .community-counts { margin-left: 0; width: 100%; }
    .community-page .community-section-heading { margin-top: var(--community-space-5); }
}
@media(prefers-reduced-motion:reduce) {
    .community-page *, .community-page *::before, .community-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}



/* M4D.4: discovery-only refinements; question detail and thread styles are unchanged. */
.community-discovery .community-hero { padding: var(--community-space-6); margin-bottom: var(--community-space-5); }
.community-discovery .community-hero h1 { margin: 8px 0; font-size: clamp(24px, 2.4vw, 30px); }
.community-discovery .community-hero > p { margin: 8px 0 0; }
.community-discovery .community-hero .community-notice { margin-top: 12px; padding: 10px 12px; }
.community-discovery .community-catalog { grid-template-columns: 1fr; }
.community-discovery .community-discovery-card { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; column-gap: 16px; padding: 24px; align-items: start; }
.community-discovery-card .community-card-icon { grid-column: 1; grid-row: 1 / 4; margin: 0; }
.community-discovery-card h3, .community-discovery-card > p { grid-column: 2; }
.community-discovery .community-discovery-card > p { margin: 8px 0 0; }
.community-discovery-card > .community-text-link { grid-column: 3; grid-row: 1 / 4; align-self: center; display: inline-flex; align-items: center; min-height: 44px; gap: 8px; }
.community-card-link-name { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.community-discovery .community-question-card { padding: 16px 20px; border-left: 3px solid var(--community-question-border); }
.community-discovery .community-question-card:first-child { border-radius: 12px 12px 0 0; }
.community-discovery .community-question-card:last-child { border-radius: 0 0 12px 12px; }
.community-discovery .community-question-card:only-child { border-radius: 12px; }
.community-discovery .community-question-card:hover, .community-discovery .community-question-card:focus-within { background: color-mix(in srgb, var(--community-question-bg) 35%, var(--community-surface)); }
.community-discovery .community-question-card h3 a { display: inline-flex; align-items: center; min-height: 44px; color: var(--community-question-text); font-weight: 700; }
.community-discovery .community-preview { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin: 4px 0 12px; }
.community-discovery .community-card-footer { gap: 8px 12px; }
.community-discovery .community-counts { gap: 12px; }
.community-discovery .community-empty { padding: 24px; }
.community-discovery .community-section-heading { margin: 20px 0 12px; }
.community-discovery .community-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
.community-discovery .community-feed-status:empty { display: none; }
.community-discovery .community-feed-status { color: var(--community-secondary); margin-top: 12px; }
.community-discovery .community-feed-error { padding: 12px 16px; margin-top: 12px; border: 1px solid var(--community-border); border-radius: var(--community-radius-sm); background: var(--community-danger-bg); }
.community-discovery .community-feed-error[hidden] { display: none; }
.community-discovery .community-feed-error a { display: inline-flex; align-items: center; min-height: 44px; color: var(--community-brand); text-decoration: underline; }
.community-discovery [aria-busy="true"] .community-pagination { opacity: .65; }
@media (max-width: 640px) {
 .community-discovery .community-hero { padding: 16px; }
 .community-discovery .community-discovery-card { grid-template-columns: 40px minmax(0,1fr); gap: 8px 12px; padding: 16px; }
 .community-discovery-card > .community-text-link { grid-column: 2; grid-row: auto; justify-self: start; }
 .community-discovery .community-discovery-card h3 { font-size: 18px; }
 .community-discovery .community-question-card { padding: 12px 16px; }
 .community-discovery .community-counts { flex-basis: 100%; margin-left: 0; }
 .community-discovery .community-empty { padding: 20px 16px; }
}

.community-discovery #questions-heading { scroll-margin-top: var(--community-scroll-offset); }
.community-discovery #questions-heading:focus { outline: 2px solid var(--community-focus); outline-offset: 4px; border-radius: 4px; }
