.cc-v2-community {
    padding-block: clamp(42px, 6vw, 82px);
}

.cc-v2-community__hero {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 28px;
    padding: clamp(28px, 5vw, 52px);
    border: 1px solid var(--cc-border);
    border-radius: clamp(18px, 3vw, 28px);
    background:
        radial-gradient(circle at 90% 10%, color-mix(in srgb, var(--cc-primary) 18%, transparent), transparent 36%),
        var(--cc-surface);
    box-shadow: var(--cc-shadow-sm);
}

.cc-v2-community__hero h1 {
    max-width: 720px;
    margin: 8px 0 0;
    font-family: var(--font-display);
    font-size: clamp(34px, 5vw, 58px);
    line-height: 1.08;
    letter-spacing: -0.045em;
}

.cc-v2-community__hero p {
    max-width: 700px;
    margin: 14px 0 0;
    color: var(--cc-text-secondary);
}

.cc-v2-community__layout {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 20px;
    margin-top: 24px;
}

.cc-v2-board-panel,
.cc-v2-topic-panel {
    border: 1px solid var(--cc-border);
    border-radius: var(--cc-radius-lg);
    background: var(--cc-surface);
    box-shadow: var(--cc-shadow-sm);
}

.cc-v2-board-panel {
    align-self: start;
    overflow: hidden;
}

.cc-v2-board-panel__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 18px;
    border-bottom: 1px solid var(--cc-border);
}

.cc-v2-board-panel__header span {
    color: var(--cc-text-muted);
    font-size: 12px;
}

.cc-v2-board-panel nav {
    padding: 8px;
}

.cc-v2-board-panel nav a {
    display: flex;
    min-height: 40px;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 8px 10px 8px calc(10px + var(--cc-board-depth, 0) * 12px);
    border-radius: 9px;
    color: var(--cc-text-secondary);
    font-size: 14px;
}

.cc-v2-board-panel nav a:hover,
.cc-v2-board-panel nav a.is-active {
    background: var(--cc-primary-soft);
    color: var(--cc-primary);
}

.cc-v2-board-panel nav small {
    color: var(--cc-text-muted);
}

.cc-v2-topic-panel {
    min-width: 0;
    overflow: hidden;
}

.cc-v2-topic-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--cc-border);
}

.cc-v2-topic-sorts {
    display: flex;
    gap: 4px;
}

.cc-v2-topic-sorts a {
    padding: 7px 11px;
    border-radius: 8px;
    color: var(--cc-text-secondary);
    font-size: 13px;
    font-weight: 700;
}

.cc-v2-topic-sorts a:hover,
.cc-v2-topic-sorts a.is-active {
    background: var(--cc-primary-soft);
    color: var(--cc-primary);
}

.cc-v2-community-search {
    display: flex;
    overflow: hidden;
    border: 1px solid var(--cc-border);
    border-radius: 9px;
    background: var(--cc-bg);
}

.cc-v2-community-search input {
    width: 150px;
    padding: 7px 9px;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 13px;
}

.cc-v2-community-search button {
    padding-inline: 12px;
    border: 0;
    background: var(--cc-primary);
    color: #fff;
    cursor: pointer;
    font-size: 12px;
    font-weight: 800;
}

.cc-v2-topic + .cc-v2-topic {
    border-top: 1px solid var(--cc-border);
}

.cc-v2-topic {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) auto;
    gap: 14px;
    padding: 20px;
    transition: background 160ms ease;
}

.cc-v2-topic:hover {
    background: var(--cc-surface-muted);
}

.cc-v2-topic.is-pinned {
    box-shadow: inset 3px 0 var(--cc-primary);
}

.cc-v2-topic__avatar img {
    display: block;
    width: 44px;
    height: 44px;
    border-radius: 50%;
}

.cc-v2-topic__labels {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cc-v2-topic__labels span,
.cc-v2-topic__labels a {
    padding: 2px 7px;
    border-radius: 999px;
    background: var(--cc-primary-soft);
    color: var(--cc-primary);
    font-size: 11px;
    font-weight: 800;
}

.cc-v2-topic h2 {
    margin: 7px 0 5px;
    font-size: 18px;
    line-height: 1.35;
}

.cc-v2-topic h2 a:hover {
    color: var(--cc-primary);
}

.cc-v2-topic__main > p {
    display: -webkit-box;
    margin: 0;
    overflow: hidden;
    color: var(--cc-text-secondary);
    font-size: 13px;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.cc-v2-topic__byline {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 8px;
    color: var(--cc-text-muted);
    font-size: 12px;
}

.cc-v2-topic__stats {
    display: flex;
    align-items: center;
    gap: 16px;
    color: var(--cc-text-muted);
    font-size: 11px;
    text-align: center;
}

.cc-v2-topic__stats span {
    display: grid;
}

.cc-v2-topic__stats strong {
    color: var(--cc-text-secondary);
    font-size: 14px;
}

.cc-v2-topic-panel .navigation.pagination {
    padding: 0 18px 18px;
}

.cc-v2-community-single { padding-block:clamp(28px,5vw,64px); }
.cc-v2-community-single.cc-post-font-enabled .cc-v2-community-post__content { font-family:var(--cc-post-font-family); }
.cc-v2-community-single__crumbs { align-items:center; color:var(--cc-text-muted); display:flex; flex-wrap:wrap; font-size:12px; gap:8px; margin-bottom:16px; }
.cc-v2-community-single__crumbs a { color:var(--cc-text-secondary); }
.cc-v2-community-single__layout { display:grid; gap:20px; grid-template-columns:minmax(0,1fr) 250px; }
.cc-v2-community-single__main { min-width:0; }
.cc-v2-community-post,.cc-v2-community-replies,.cc-v2-community-author,.cc-v2-community-denied { background:var(--cc-surface); border:1px solid var(--cc-border); border-radius:20px; box-shadow:var(--cc-shadow-sm); }
.cc-v2-community-post { padding:clamp(22px,4vw,42px); }
.cc-v2-community-post__badges { display:flex; flex-wrap:wrap; gap:7px; }
.cc-v2-community-post__badges span { background:var(--cc-primary-soft); border-radius:999px; color:var(--cc-primary); font-size:11px; font-weight:800; padding:3px 8px; }
.cc-v2-community-post h1 { font-family:var(--font-display); font-size:clamp(28px,4vw,44px); letter-spacing:-.035em; line-height:1.18; margin:10px 0 16px; }
.cc-v2-community-post__meta { align-items:center; color:var(--cc-text-muted); display:flex; flex-wrap:wrap; font-size:12px; gap:12px; }
.cc-v2-community-post__meta > a { align-items:center; color:var(--cc-text-secondary); display:flex; gap:7px; }
.cc-v2-community-post__meta img { border-radius:50%; height:32px; width:32px; }
.cc-v2-community-post__content { border-top:1px solid var(--cc-border); color:var(--cc-text); font-size:16px; line-height:1.9; margin-top:22px; overflow-wrap:anywhere; padding-top:26px; }
.cc-v2-community-post__content img { border-radius:12px; height:auto; max-width:100%; }
.cc-v2-community-post__content pre { max-width:100%; overflow:auto; }
.cc-v2-community-post__tags { display:flex; flex-wrap:wrap; gap:7px; margin-top:24px; }
.cc-v2-community-post__tags a { background:var(--cc-surface-muted); border-radius:8px; color:var(--cc-text-secondary); font-size:12px; padding:5px 9px; }
.cc-v2-community-post__actions { align-items:center; border-top:1px solid var(--cc-border); display:flex; flex-wrap:wrap; gap:8px; margin-top:24px; padding-top:20px; }
.cc-v2-community-post__actions a,
.cc-v2-community-post__actions button { background:var(--cc-surface); border:1px solid var(--cc-border); border-radius:10px; color:var(--cc-text-secondary); cursor:pointer; font:inherit; font-size:13px; font-weight:700; padding:9px 12px; }
.cc-v2-community-post__actions button:hover,
.cc-v2-community-post__actions button.is-active { background:var(--cc-primary-soft); border-color:var(--cc-primary); color:var(--cc-primary); }
.cc-v2-community-post__actions button:disabled { cursor:wait; opacity:.58; }
.cc-v2-community-post__actions strong { font:inherit; }
.cc-v2-community-post__actions a.is-primary { background:var(--cc-primary); border-color:var(--cc-primary); color:#fff; margin-left:auto; }
.cc-v2-community-replies { margin-top:18px; overflow:hidden; }
.cc-v2-community-replies > header { align-items:end; border-bottom:1px solid var(--cc-border); display:flex; justify-content:space-between; padding:18px 22px; }
.cc-v2-community-replies > header span { color:var(--cc-primary); font-size:11px; font-weight:800; }
.cc-v2-community-replies > header h2 { font-size:20px; margin:3px 0 0; }
.cc-v2-community-replies > header > a { color:var(--cc-primary); font-size:13px; font-weight:700; }
.cc-v2-community-replies > div > article { display:grid; gap:12px; grid-template-columns:36px minmax(0,1fr); padding:18px 22px; }
.cc-v2-community-replies > div > article + article { border-top:1px solid var(--cc-border); }
.cc-v2-community-replies article img { border-radius:50%; height:36px; width:36px; }
.cc-v2-community-replies article header { align-items:center; display:flex; gap:9px; }
.cc-v2-community-replies article header time { color:var(--cc-text-muted); font-size:11px; }
.cc-v2-community-replies article article,.cc-v2-community-replies article p { color:var(--cc-text-secondary); font-size:14px; line-height:1.7; margin:7px 0 0; }
.cc-v2-community-replies__empty { color:var(--cc-text-muted); margin:0; padding:28px 22px; }
.cc-v2-community-author { align-self:start; padding:24px; position:sticky; text-align:center; top:88px; }
.cc-v2-community-author img { border:3px solid var(--cc-primary-soft); border-radius:50%; height:72px; width:72px; }
.cc-v2-community-author h2 { font-size:19px; margin:10px 0 5px; }
.cc-v2-community-author p { color:var(--cc-text-muted); font-size:12px; line-height:1.65; }
.cc-v2-community-author .cc-button { justify-content:center; margin-top:9px; width:100%; }
.cc-v2-community-single__nav { display:grid; gap:12px; grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:18px; }
.cc-v2-community-single__nav a { background:var(--cc-surface); border:1px solid var(--cc-border); border-radius:14px; display:grid; padding:15px 17px; }
.cc-v2-community-single__nav a:last-child { text-align:right; }
.cc-v2-community-single__nav small { color:var(--cc-text-muted); }
.cc-v2-community-single__nav span { color:var(--cc-text); font-size:13px; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cc-v2-community-denied { margin:auto; max-width:680px; padding:clamp(28px,5vw,54px); text-align:center; }
.cc-v2-community-denied > span { color:var(--cc-primary); font-size:12px; font-weight:800; }
.cc-v2-community-denied h1 { font-size:30px; margin:8px 0; }
.cc-v2-community-denied p { color:var(--cc-text-muted); margin-bottom:22px; }
.cc-v2-community-denied .cc-button { justify-content:center; }

@media (max-width: 920px) {
    .cc-v2-community__layout {
        grid-template-columns: 1fr;
    }

    .cc-v2-board-panel nav {
        display: flex;
        gap: 6px;
        overflow-x: auto;
    }

    .cc-v2-board-panel nav a {
        flex: 0 0 auto;
        padding-inline: 12px;
    }

    .cc-v2-community-single__layout { grid-template-columns:1fr; }
    .cc-v2-community-author { position:static; }
}

@media (max-width: 640px) {
    .cc-v2-community__hero,
    .cc-v2-topic-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .cc-v2-community-search input {
        width: 100%;
        flex: 1;
    }

    .cc-v2-topic {
        grid-template-columns: 36px minmax(0, 1fr);
        padding: 16px;
    }

    .cc-v2-topic__avatar img {
        width: 36px;
        height: 36px;
    }

    .cc-v2-topic__stats {
        display: none;
    }

    .cc-v2-community-post { border-radius:16px; }
    .cc-v2-community-post__actions a.is-primary { margin-left:0; width:100%; text-align:center; }
    .cc-v2-community-replies > header { align-items:flex-start; flex-direction:column; gap:8px; }
    .cc-v2-community-single__nav { grid-template-columns:1fr; }
    .cc-v2-community-single__nav a:last-child { text-align:left; }
}
