/* ==========================================================
   Asylonia Community V1
   Clean public square, post-first layout
   ========================================================== */

body.page-community,
body.page-asylonia-community {
    background: #0b0704;
}

.community-page {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    color: #fff3dd;
    background:
        radial-gradient(circle at 84% 0%, rgba(216, 168, 79, 0.16), transparent 32%),
        radial-gradient(circle at 8% 18%, rgba(129, 82, 19, 0.2), transparent 34%),
        linear-gradient(135deg, #080604 0%, #120c07 48%, #070503 100%);
}

.community-bg {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, rgba(255, 216, 132, 0.032) 1px, transparent 1px),
        linear-gradient(180deg, rgba(255, 216, 132, 0.024) 1px, transparent 1px);
    background-size: 54px 54px;
    mask-image: radial-gradient(circle at 50% 0%, black, transparent 78%);
}

.community-page > section {
    position: relative;
    z-index: 1;
}

.community-signal {
    border-bottom: 1px solid rgba(216, 168, 79, 0.2);
    background: rgba(255, 255, 255, 0.035);
    backdrop-filter: blur(12px);
}

.community-signal-inner {
    min-height: 46px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    font-size: 0.9rem;
}

.community-signal-label {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.42);
    color: #f6d78f;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.community-signal-text {
    color: rgba(255, 243, 221, 0.74);
    font-weight: 750;
}

.community-signal a,
.community-soft-link {
    color: #f6d78f;
    font-weight: 900;
    text-decoration: none;
}

.community-signal a:hover,
.community-soft-link:hover {
    color: #fff4d6;
}

.community-hero {
    padding-top: 44px;
    padding-bottom: 24px;
}

.community-hero-shell {
    display: block;
}

.community-hero-copy {
    max-width: 980px;
    padding: 24px;
    border: 1px solid rgba(216, 168, 79, 0.28);
    border-radius: 28px;
    background:
        radial-gradient(circle at 0% 0%, rgba(216, 168, 79, 0.13), transparent 38%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.065), rgba(255, 255, 255, 0.024));
    box-shadow: 0 24px 62px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(14px);
}

.community-hero-copy h1 {
    margin: 0;
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.45rem, 6vw, 5.4rem);
    line-height: 0.96;
    letter-spacing: -0.055em;
}

.community-hero-copy p:not(.eyebrow) {
    max-width: 720px;
    margin: 14px 0 0;
    color: rgba(255, 243, 221, 0.7);
    font-size: clamp(1rem, 2vw, 1.2rem);
    line-height: 1.55;
}

.community-hero-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 20px;
}

.community-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 22px;
    align-items: start;
}

.community-center,
.community-sidebar {
    display: grid;
    gap: 18px;
}

.community-actions {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.community-actions button,
.community-load-more {
    min-height: 46px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.28);
    background: rgba(255, 255, 255, 0.04);
    color: #f6d78f;
    font: inherit;
    font-size: 0.88rem;
    font-weight: 950;
    cursor: pointer;
}

.community-actions button:hover,
.community-load-more:hover {
    color: #1a1005;
    border-color: transparent;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 58%, #a76d18 100%);
}

.community-notices,
.community-composer,
.community-feed,
.community-side-card,
.community-post,
.community-empty-card {
    border: 1px solid rgba(216, 168, 79, 0.22);
    border-radius: 26px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.024)),
        rgba(20, 13, 7, 0.72);
    box-shadow: 0 24px 62px rgba(0, 0, 0, 0.2);
    backdrop-filter: blur(12px);
}

.community-notices,
.community-composer,
.community-feed {
    padding: 20px;
}

.community-section-head,
.community-feed-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.community-section-head.compact {
    display: block;
}

.community-section-head h2,
.community-feed-head h2,
.community-side-card h3 {
    margin: 0;
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    letter-spacing: -0.026em;
}

.community-feed-head span,
.community-list-status,
.community-form-status,
.community-auth-note,
.community-side-card p,
.community-side-card li,
.community-side-card dd {
    color: rgba(255, 243, 221, 0.64);
}

.community-auth-note {
    padding: 16px;
    border-radius: 18px;
    border: 1px dashed rgba(216, 168, 79, 0.34);
    background: rgba(255, 255, 255, 0.035);
    font-weight: 850;
}

.community-form {
    display: grid;
    gap: 14px;
}

.community-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, 0.65fr);
    gap: 14px;
}

.community-form label {
    display: grid;
    gap: 8px;
}

.community-form label span {
    color: #f6d78f;
    font-size: 0.78rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.community-form input,
.community-form select,
.community-form textarea {
    width: 100%;
    border: 1px solid rgba(216, 168, 79, 0.24);
    border-radius: 16px;
    background: rgba(7, 5, 3, 0.62);
    color: #fff7e8;
    font: inherit;
}

.community-form input,
.community-form select {
    min-height: 52px;
    padding: 0 14px;
}

.community-form textarea {
    min-height: 170px;
    resize: vertical;
    padding: 14px;
    line-height: 1.55;
}

.community-form input:focus,
.community-form select:focus,
.community-form textarea:focus {
    outline: 3px solid rgba(216, 168, 79, 0.15);
    border-color: rgba(216, 168, 79, 0.66);
}

.community-form-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.community-form-foot small {
    color: rgba(255, 243, 221, 0.54);
    font-weight: 800;
}

.community-form-status {
    min-height: 22px;
    margin: 0;
    font-weight: 850;
}

.community-form-status.is-error {
    color: #ffb0a4;
}

.community-form-status.is-success {
    color: #a8e6bd;
}

.community-list,
.community-pinned-list {
    display: grid;
    gap: 12px;
}

.community-post {
    padding: 18px;
    transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}

.community-post:hover {
    transform: translateY(-2px);
    border-color: rgba(216, 168, 79, 0.38);
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.24);
}

.community-post-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.community-badge {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.42);
    background: rgba(216, 168, 79, 0.1);
    color: #f6d78f;
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.community-badge.notice {
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 100%);
    border-color: transparent;
    color: #1a1005;
}

.community-post h3 {
    margin: 0 0 8px;
    color: #fff7e8;
    font-size: clamp(1.12rem, 2vw, 1.35rem);
    line-height: 1.16;
}

.community-post p {
    margin: 0;
    color: rgba(255, 243, 221, 0.68);
    line-height: 1.58;
}

.community-post-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 14px;
    color: rgba(255, 243, 221, 0.5);
    font-size: 0.84rem;
    font-weight: 800;
}

.community-post-meta button {
    margin-left: auto;
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.28);
    background: transparent;
    color: #f6d78f;
    font: inherit;
    font-size: 0.82rem;
    font-weight: 950;
    cursor: pointer;
}

.community-post-meta button:hover {
    background: rgba(216, 168, 79, 0.12);
}

.community-empty-card {
    padding: 26px;
    text-align: center;
}

.community-empty-card h3 {
    margin: 0 0 8px;
    color: #fff7e8;
}

.community-empty-card p {
    margin: 0;
    color: rgba(255, 243, 221, 0.62);
}

.community-load-more {
    justify-self: center;
    margin-top: 16px;
    min-width: 180px;
}

.community-side-card {
    padding: 18px;
}

.community-side-card dl,
.community-side-card ul {
    margin: 14px 0 0;
    padding: 0;
}

.community-side-card dl {
    display: grid;
    gap: 10px;
}

.community-side-card dl div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid rgba(216, 168, 79, 0.12);
}

.community-side-card dt {
    color: rgba(255, 243, 221, 0.48);
    font-weight: 900;
}

.community-side-card dd {
    margin: 0;
    text-align: right;
    font-weight: 900;
}

.community-side-card a {
    display: block;
    padding: 10px 0;
    border-bottom: 1px solid rgba(216, 168, 79, 0.12);
    color: #f6d78f;
    font-weight: 900;
    text-decoration: none;
}

.community-side-card a:hover {
    color: #fff4d6;
}

.community-side-card ul {
    list-style: none;
    display: grid;
    gap: 9px;
}

.community-side-card li {
    position: relative;
    padding-left: 18px;
    line-height: 1.45;
}

.community-side-card li::before {
    content: "•";
    position: absolute;
    left: 0;
    color: #d8a84f;
}

.community-live-card {
    background:
        radial-gradient(circle at 100% 0%, rgba(216, 168, 79, 0.14), transparent 42%),
        rgba(20, 13, 7, 0.72);
}

.community-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: grid;
    place-items: center;
    padding: 18px;
    background: rgba(0, 0, 0, 0.64);
    backdrop-filter: blur(8px);
}

.community-modal[hidden] {
    display: none;
}

.community-modal-card {
    width: min(100%, 780px);
    max-height: 86vh;
    overflow: auto;
    border: 1px solid rgba(216, 168, 79, 0.3);
    border-radius: 28px;
    background: #120c07;
    box-shadow: 0 32px 90px rgba(0, 0, 0, 0.42);
    padding: 22px;
}

.community-modal-close {
    float: right;
    border: 0;
    background: transparent;
    color: #f6d78f;
    font-size: 1.6rem;
    cursor: pointer;
}

.community-modal-body {
    white-space: pre-wrap;
    color: rgba(255, 243, 221, 0.74);
    line-height: 1.65;
}

@media (max-width: 1080px) {
    .community-layout {
        grid-template-columns: 1fr;
    }

    .community-sidebar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .community-actions,
    .community-form-grid,
    .community-sidebar {
        grid-template-columns: 1fr;
    }

    .community-hero {
        padding-top: 28px;
    }

    .community-hero-copy,
    .community-notices,
    .community-composer,
    .community-feed {
        border-radius: 22px;
        padding: 18px;
    }

    .community-hero-actions .btn,
    .community-hero-actions .community-soft-link,
    .community-actions button,
    .community-form-foot .btn {
        width: 100%;
    }

    .community-form-foot {
        align-items: stretch;
        flex-direction: column;
    }

    .community-post-meta button {
        width: 100%;
        margin-left: 0;
    }
}


/* ==========================================================
   Community Room Hub Upgrade
   ========================================================== */

.community-room-hub .community-hero-copy {
    max-width: 1060px;
}

.community-tabs-section {
    position: relative;
    z-index: 1;
    padding: 0 0 18px;
}

.community-hall-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    padding: 14px;
    border: 1px solid rgba(216, 168, 79, 0.22);
    border-radius: 24px;
    background:
        linear-gradient(145deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.018)),
        rgba(20, 13, 7, 0.58);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
    backdrop-filter: blur(12px);
}

.community-hall-tabs button {
    min-height: 38px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.24);
    background: rgba(255, 255, 255, 0.035);
    color: rgba(255, 243, 221, 0.72);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 950;
    cursor: pointer;
}

.community-hall-tabs button:hover,
.community-hall-tabs button.is-active {
    color: #1a1005;
    border-color: transparent;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 58%, #a76d18 100%);
}

.community-room-card {
    position: relative;
    overflow: hidden;
}

.community-room-card::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: 26px;
    background:
        radial-gradient(circle at 100% 0%, rgba(216, 168, 79, 0.13), transparent 36%),
        radial-gradient(circle at 0% 100%, rgba(110, 72, 199, 0.11), transparent 34%);
}

.community-room-card > * {
    position: relative;
    z-index: 1;
}

.community-room-card .community-post-meta button {
    background: rgba(216, 168, 79, 0.1);
}

.community-room-card .community-post-meta button:hover {
    color: #1a1005;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 100%);
}

.community-modal-card .community-room-header {
    padding: 14px;
    border-radius: 18px;
    background: rgba(216, 168, 79, 0.08);
    border: 1px solid rgba(216, 168, 79, 0.18);
}

@media (max-width: 820px) {
    .community-hall-tabs {
        border-radius: 20px;
        padding: 12px;
    }

    .community-hall-tabs button {
        flex: 1 1 calc(50% - 8px);
    }
}

/* Room activity placeholder inside room modal */
.community-room-activity {
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr);
    gap: 16px;
    margin: 18px 0 2px;
    padding: 16px;
    border-radius: 22px;
    border: 1px solid rgba(216, 168, 79, 0.26);
    background:
        radial-gradient(circle at 0% 0%, rgba(216, 168, 79, 0.16), transparent 38%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02));
    box-shadow: 0 18px 46px rgba(0, 0, 0, 0.18);
}

.community-activity-visual {
    position: relative;
    min-height: 150px;
    border-radius: 18px;
    overflow: hidden;
    border: 1px solid rgba(216, 168, 79, 0.24);
    background: rgba(0, 0, 0, 0.28);
}

.community-activity-visual::before,
.community-activity-visual::after,
.community-activity-visual span::before,
.community-activity-visual span::after {
    content: "";
    position: absolute;
}

.community-activity-chess {
    background-color: rgba(24, 16, 10, 0.9);
    background-image:
        linear-gradient(45deg, rgba(246, 215, 143, 0.82) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(246, 215, 143, 0.82) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(246, 215, 143, 0.82) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(246, 215, 143, 0.82) 75%);
    background-size: 38px 38px;
    background-position: 0 0, 0 19px, 19px -19px, -19px 0;
}

.community-activity-chess span::before {
    left: 50%;
    top: 50%;
    width: 46px;
    height: 46px;
    transform: translate(-50%, -50%);
    border-radius: 999px;
    background: rgba(7, 5, 3, 0.82);
    box-shadow: 0 0 0 10px rgba(7, 5, 3, 0.28), 0 14px 28px rgba(0,0,0,.3);
}

.community-activity-chess span::after {
    left: 50%;
    top: 50%;
    transform: translate(-50%, -58%);
    color: #f6d78f;
    content: "♞";
    font-size: 42px;
    line-height: 1;
}

.community-activity-go {
    background-color: #b98942;
    background-image:
        linear-gradient(rgba(40, 24, 10, .42) 1px, transparent 1px),
        linear-gradient(90deg, rgba(40, 24, 10, .42) 1px, transparent 1px),
        radial-gradient(circle at 29% 29%, rgba(10,10,10,.92) 0 8px, transparent 9px),
        radial-gradient(circle at 68% 44%, rgba(255,255,255,.86) 0 8px, transparent 9px),
        radial-gradient(circle at 44% 68%, rgba(10,10,10,.92) 0 8px, transparent 9px);
    background-size: 18px 18px, 18px 18px, 100% 100%, 100% 100%, 100% 100%;
}

.community-activity-tournament,
.community-activity-club,
.community-activity-ai,
.community-activity-broadcast,
.community-activity-sponsor,
.community-activity-player,
.community-activity-honor,
.community-activity-arrival {
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle at 50% 38%, rgba(246, 215, 143, .24), transparent 42%),
        linear-gradient(145deg, rgba(7, 5, 3, .84), rgba(37, 23, 12, .86));
}

.community-activity-tournament span::after { content: "🏆"; }
.community-activity-club span::after { content: "🏛"; }
.community-activity-ai span::after { content: "AI"; }
.community-activity-broadcast span::after { content: "🎥"; }
.community-activity-sponsor span::after { content: "🤝"; }
.community-activity-player span::after { content: "🏠"; }
.community-activity-honor span::after { content: "✦"; }
.community-activity-arrival span::after { content: "⌂"; }

.community-activity-tournament span::after,
.community-activity-club span::after,
.community-activity-ai span::after,
.community-activity-broadcast span::after,
.community-activity-sponsor span::after,
.community-activity-player span::after,
.community-activity-honor span::after,
.community-activity-arrival span::after {
    position: static;
    color: #f6d78f;
    font-size: 2.7rem;
    font-weight: 950;
    text-shadow: 0 12px 26px rgba(0,0,0,.34);
}

.community-activity-body h3 {
    margin: 2px 0 8px;
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    letter-spacing: -0.028em;
}

.community-activity-body p {
    margin: 0;
    color: rgba(255, 243, 221, 0.7);
    line-height: 1.5;
}

.community-activity-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin: 12px 0;
}

.community-activity-tags span {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 0 9px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.28);
    background: rgba(216, 168, 79, 0.1);
    color: #f6d78f;
    font-size: 0.72rem;
    font-weight: 900;
}

.community-activity-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 9px;
}

.community-activity-actions button {
    min-height: 36px;
    padding: 0 13px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.28);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(246, 215, 143, 0.72);
    font: inherit;
    font-size: 0.78rem;
    font-weight: 950;
    cursor: not-allowed;
}

.community-activity-body small {
    display: block;
    color: rgba(255, 243, 221, 0.54);
    font-size: 0.78rem;
    line-height: 1.4;
}

.community-activity-body small strong {
    color: #f6d78f;
}

@media (max-width: 760px) {
    .community-room-activity {
        grid-template-columns: 1fr;
    }

    .community-activity-visual {
        min-height: 128px;
    }

    .community-activity-actions button {
        width: 100%;
    }
}


/* ==========================================================
   Chess Board Skeleton / Seat Layer
   ========================================================== */

.community-game-live {
    margin: 14px 0 0;
    padding: 13px;
    border-radius: 18px;
    border: 1px solid rgba(216, 168, 79, 0.22);
    background: rgba(0, 0, 0, 0.18);
}

.community-game-state {
    display: grid;
    gap: 5px;
    padding: 12px;
    border-radius: 14px;
    background: rgba(7, 5, 3, 0.42);
    border: 1px solid rgba(216, 168, 79, 0.16);
}

.community-game-state strong {
    color: #fff7e8;
    font-weight: 950;
}

.community-game-state span {
    color: rgba(255, 243, 221, 0.68);
    font-size: 0.84rem;
    line-height: 1.35;
}

.community-game-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0 7px;
}

.community-game-controls button {
    min-height: 34px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.32);
    background: rgba(216, 168, 79, 0.11);
    color: #f6d78f;
    font: inherit;
    font-size: 0.76rem;
    font-weight: 950;
    cursor: pointer;
}

.community-game-controls button:hover:not(:disabled) {
    color: #1a1005;
    border-color: transparent;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 100%);
}

.community-game-controls button:disabled {
    cursor: not-allowed;
    opacity: 0.58;
}

.community-game-note {
    display: block;
    color: rgba(255, 243, 221, 0.5);
    font-size: 0.74rem;
    line-height: 1.35;
}

@media (max-width: 760px) {
    .community-game-controls button {
        width: 100%;
    }
}

/* ==========================================================
   Community Chess Board V2
   ========================================================== */
.community-game-summary {
    display: grid;
    gap: 5px;
    padding: 12px;
    border-radius: 16px;
    background: rgba(0, 0, 0, 0.20);
    border: 1px solid rgba(216, 168, 79, 0.16);
}

.community-game-summary strong {
    color: #fff7e8;
}

.community-game-summary span,
.community-game-status,
.community-game-empty {
    color: rgba(255, 243, 221, 0.66);
    font-size: 0.84rem;
    font-weight: 760;
}

.community-game-board-wrap {
    display: grid;
    grid-template-columns: minmax(260px, 360px) minmax(180px, 1fr);
    gap: 14px;
    margin-top: 12px;
    align-items: start;
}

.community-chess-board {
    width: min(100%, 360px);
    aspect-ratio: 1 / 1;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    border-radius: 16px;
    overflow: hidden;
    border: 1px solid rgba(216, 168, 79, 0.34);
    box-shadow: 0 20px 48px rgba(0, 0, 0, 0.26);
    background: #20150b;
}

.community-chess-square {
    position: relative;
    border: 0;
    display: grid;
    place-items: center;
    padding: 0;
    cursor: pointer;
    font: inherit;
    transition: filter .12s ease, outline .12s ease, transform .12s ease;
}

.community-chess-square:disabled {
    cursor: default;
}

.community-chess-square.is-light {
    background: #d7b875;
}

.community-chess-square.is-dark {
    background: #5a3720;
}

.community-chess-square:hover:not(:disabled) {
    filter: brightness(1.10);
}

.community-chess-square.is-selected {
    outline: 3px solid #ffe39a;
    outline-offset: -3px;
    filter: brightness(1.16);
}

.community-chess-piece {
    font-size: clamp(1.35rem, 3.2vw, 2.15rem);
    line-height: 1;
    text-shadow: 0 7px 12px rgba(0,0,0,.34);
    pointer-events: none;
}

.community-chess-square.is-white .community-chess-piece {
    color: #fff3d2;
}

.community-chess-square.is-black .community-chess-piece {
    color: #101010;
    text-shadow: 0 1px 0 rgba(255,255,255,.28), 0 8px 14px rgba(0,0,0,.3);
}

.community-chess-square small {
    position: absolute;
    left: 4px;
    bottom: 3px;
    color: rgba(7, 5, 3, 0.46);
    font-size: 0.52rem;
    font-weight: 900;
    pointer-events: none;
}

.community-chess-square.is-dark small {
    color: rgba(255, 243, 221, 0.45);
}

.community-game-history {
    min-height: 120px;
    max-height: 360px;
    overflow: auto;
    padding: 12px;
    border-radius: 16px;
    background: rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(216, 168, 79, 0.16);
}

.community-game-history > strong {
    display: block;
    color: #f6d78f;
    margin-bottom: 9px;
    font-size: 0.86rem;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.community-game-moves {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 6px;
}

.community-game-moves li {
    display: flex;
    align-items: center;
    gap: 7px;
    min-height: 28px;
    padding: 5px 8px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.035);
    color: rgba(255, 243, 221, 0.74);
    font-size: 0.82rem;
}

.community-game-moves span {
    color: rgba(255, 243, 221, 0.42);
    min-width: 28px;
}

.community-game-moves strong {
    color: #fff7e8;
}

.community-game-moves em {
    margin-left: auto;
    color: rgba(246, 215, 143, 0.64);
    font-style: normal;
    font-size: 0.72rem;
    text-transform: uppercase;
}

.community-game-status {
    min-height: 20px;
    margin: 10px 0 0;
}

@media (max-width: 760px) {
    .community-game-board-wrap {
        grid-template-columns: 1fr;
    }

    .community-chess-board {
        width: 100%;
    }
}

/* Full board entry link inside Community Room modal */
.community-game-enter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    min-height: 34px;
    margin-top: 10px;
    padding: 0 14px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.48);
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 72%, #a76d18 100%);
    color: #1a1005;
    font-size: 0.82rem;
    font-weight: 950;
    text-decoration: none;
}

.community-game-enter:hover {
    color: #1a1005;
    filter: brightness(1.06);
}

/* ==========================================================
   Community Live Watch Room V5
   Fixed board + scroll-only chat + one-line input
   ========================================================== */
.community-modal-card.is-live-room-modal {
    position: relative;
    width: min(100%, 980px);
    height: min(90vh, 860px);
    max-height: 90vh;
    overflow: hidden;
    padding: 14px;
    display: flex;
    flex-direction: column;
}

.community-modal-card.is-live-room-modal .community-modal-close {
    position: absolute;
    top: 10px;
    right: 12px;
    z-index: 4;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.22);
    background: rgba(7, 5, 3, 0.72);
    line-height: 1;
}

.community-modal-card.is-live-room-modal [data-community-modal-content] {
    height: 100%;
    min-height: 0;
}

.community-live-room-v5 {
    height: 100%;
    min-height: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 12px;
}

.clr-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: end;
    padding: 2px 44px 0 2px;
}

.clr-header h2 {
    margin: 0;
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.55rem, 3vw, 2.55rem);
    line-height: 0.95;
    letter-spacing: -0.04em;
}

.clr-header-status,
.clr-live-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 7px;
}

.clr-header-status span,
.clr-live-actions span,
.clr-live-actions button,
.clr-enter-board {
    min-height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.26);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(255, 243, 221, 0.74);
    font: inherit;
    font-size: 0.76rem;
    font-weight: 950;
    text-decoration: none;
}

.clr-live-actions button,
.clr-enter-board {
    cursor: pointer;
    color: #1a1005;
    border-color: transparent;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 68%, #a76d18 100%);
}

.clr-live-actions button:hover,
.clr-enter-board:hover {
    color: #1a1005;
    filter: brightness(1.05);
}

.clr-live-board-panel {
    min-height: 0;
    padding: 12px;
    border: 1px solid rgba(216, 168, 79, 0.24);
    border-radius: 22px;
    background:
        radial-gradient(circle at 0% 0%, rgba(216, 168, 79, 0.13), transparent 38%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.018));
}

.clr-board-top {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.clr-board-top strong {
    display: block;
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.2rem, 2.2vw, 1.8rem);
    line-height: 1;
    letter-spacing: -0.03em;
}

.clr-board-top p,
.clr-board-status,
.clr-muted,
.clr-chat-empty,
.clr-chat-auth {
    margin: 4px 0 0;
    color: rgba(255, 243, 221, 0.62);
    font-size: 0.82rem;
    line-height: 1.35;
}

.clr-board-body {
    display: grid;
    grid-template-columns: minmax(190px, 280px) minmax(0, 1fr);
    gap: 12px;
    align-items: stretch;
}

.clr-board-preview {
    min-height: 190px;
    display: grid;
    place-items: center;
}

.clr-mini-board {
    width: min(100%, 280px);
    aspect-ratio: 1 / 1;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    grid-template-rows: repeat(8, 1fr);
    border: 1px solid rgba(216, 168, 79, 0.38);
    border-radius: 16px;
    overflow: hidden;
    background: #241506;
    box-shadow: 0 18px 42px rgba(0,0,0,.26);
}

.clr-mini-square {
    position: relative;
    display: grid;
    place-items: center;
    user-select: none;
}

.clr-mini-square.is-light { background: #d8b66a; }
.clr-mini-square.is-dark { background: #6a401e; }

.clr-mini-square span {
    color: transparent;
    font-size: clamp(1rem, 3.1vw, 2rem);
    line-height: 1;
    pointer-events: none;
}

.clr-mini-square.is-white span {
    color: #fffaf0;
    -webkit-text-stroke: 0.7px rgba(72, 43, 12, 0.58);
    text-shadow: 0 1px 0 rgba(72, 43, 12, 0.55), 0 8px 14px rgba(0,0,0,.32);
}

.clr-mini-square.is-black span {
    color: #17100a;
    -webkit-text-stroke: 0.5px rgba(255, 242, 204, 0.18);
    text-shadow: 0 1px 0 rgba(255, 242, 204, 0.2), 0 8px 14px rgba(0,0,0,.25);
}

.clr-mini-square small {
    position: absolute;
    left: 3px;
    bottom: 2px;
    color: rgba(0, 0, 0, 0.44);
    font-size: 0.43rem;
    font-weight: 950;
    pointer-events: none;
}

.clr-mini-square.is-dark small {
    color: rgba(255, 239, 197, 0.46);
}

.clr-board-empty {
    width: 100%;
    min-height: 190px;
    display: grid;
    place-items: center;
    border: 1px dashed rgba(216, 168, 79, 0.3);
    border-radius: 16px;
    color: rgba(255, 243, 221, 0.62);
    background: rgba(0,0,0,.18);
    font-weight: 900;
}

.clr-board-side {
    min-width: 0;
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 10px;
}

.clr-player-row,
.clr-recent {
    padding: 10px 12px;
    border: 1px solid rgba(216, 168, 79, 0.18);
    border-radius: 16px;
    background: rgba(0,0,0,.18);
}

.clr-player-row span,
.clr-recent > span {
    display: block;
    margin-bottom: 4px;
    color: #f6d78f;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.clr-player-row strong {
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
    line-height: 1;
}

.clr-recent {
    min-height: 0;
    overflow: auto;
}

.clr-recent-moves {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 5px;
}

.clr-recent-moves li {
    display: flex;
    gap: 6px;
    align-items: center;
    color: rgba(255, 243, 221, 0.7);
    font-size: 0.78rem;
}

.clr-recent-moves span {
    color: rgba(255, 243, 221, 0.42);
    min-width: 24px;
}

.clr-recent-moves strong { color: #fff7e8; }
.clr-recent-moves em {
    margin-left: auto;
    color: #f6d78f;
    font-style: normal;
    font-size: 0.68rem;
    font-weight: 950;
    text-transform: uppercase;
}

.clr-live-actions {
    justify-content: flex-start;
    margin-top: 10px;
}

.clr-board-status {
    min-height: 18px;
}

.clr-chat-panel {
    min-height: 0;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    border: 1px solid rgba(216, 168, 79, 0.2);
    border-radius: 22px;
    background: rgba(0,0,0,.18);
    overflow: hidden;
}

.clr-chat-head {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(216, 168, 79, 0.14);
}

.clr-chat-head h3 {
    margin: 0;
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.15rem;
}

.clr-chat-head span {
    color: rgba(255, 243, 221, 0.48);
    font-size: 0.78rem;
    font-weight: 900;
}

.clr-chat-messages {
    min-height: 0;
    overflow-y: auto;
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.clr-chat-message {
    padding: 10px 12px;
    border-radius: 16px;
    border: 1px solid rgba(216, 168, 79, 0.13);
    background: rgba(255,255,255,.035);
}

.clr-chat-message div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: baseline;
}

.clr-chat-message strong {
    color: #fff7e8;
    font-size: 0.86rem;
}

.clr-chat-message span {
    color: rgba(255, 243, 221, 0.42);
    font-size: 0.74rem;
    font-weight: 800;
}

.clr-chat-message p {
    margin: 4px 0 0;
    color: rgba(255, 243, 221, 0.74);
    line-height: 1.4;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

.clr-chat-empty,
.clr-chat-auth {
    padding: 12px 14px;
}

.clr-chat-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    align-items: center;
    padding-top: 2px;
}

.clr-chat-form input {
    width: 100%;
    min-height: 44px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.24);
    background: rgba(7, 5, 3, 0.62);
    color: #fff7e8;
    padding: 0 16px;
    font: inherit;
}

.clr-chat-form input:focus {
    outline: 3px solid rgba(216, 168, 79, 0.15);
    border-color: rgba(216, 168, 79, 0.64);
}

.clr-chat-form button {
    min-height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 68%, #a76d18 100%);
    color: #1a1005;
    font: inherit;
    font-weight: 950;
    cursor: pointer;
}

.clr-chat-form button:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.clr-chat-status {
    grid-column: 1 / -1;
    min-height: 16px;
    margin: -3px 0 0;
    color: rgba(255, 243, 221, 0.52);
    font-size: 0.74rem;
    font-weight: 850;
}

@media (max-width: 840px) {
    .community-modal-card.is-live-room-modal {
        width: min(100%, 680px);
        height: 92vh;
        max-height: 92vh;
        padding: 12px;
        border-radius: 22px;
    }

    .community-live-room-v5 {
        grid-template-rows: auto auto minmax(0, 1fr) auto;
        gap: 10px;
    }

    .clr-header {
        grid-template-columns: 1fr;
        padding-right: 38px;
    }

    .clr-header-status {
        justify-content: flex-start;
    }

    .clr-board-body {
        grid-template-columns: minmax(160px, 220px) minmax(0, 1fr);
    }

    .clr-board-preview,
    .clr-board-empty {
        min-height: 160px;
    }

    .clr-player-row,
    .clr-recent {
        padding: 8px 10px;
    }
}

@media (max-width: 620px) {
    .community-modal {
        padding: 8px;
    }

    .community-modal-card.is-live-room-modal {
        height: 94vh;
        max-height: 94vh;
    }

    .clr-board-body {
        grid-template-columns: 1fr;
    }

    .clr-board-preview {
        min-height: 180px;
    }

    .clr-mini-board {
        width: min(100%, 260px);
    }

    .clr-board-side {
        grid-template-rows: auto auto auto;
    }

    .clr-recent {
        max-height: 92px;
    }

    .clr-chat-form {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .clr-chat-form button {
        width: 100%;
    }
}


/* ==========================================================
   Live Watch Room V6 polish
   Compact header, board-first status, quieter chat heading
   ========================================================== */
.community-modal-card.is-live-room-modal {
    width: min(100%, 1000px);
}

.community-live-room-v5 {
    grid-template-rows: auto auto minmax(0, 1fr) auto;
    gap: 10px;
}

.clr-header.clr-header-compact {
    display: block;
    min-height: 0;
    padding: 0 44px 0 2px;
}

.clr-header.clr-header-compact .eyebrow {
    margin: 0;
    color: rgba(246, 215, 143, 0.78);
    font-size: 0.7rem;
    letter-spacing: 0.12em;
}

.clr-board-top {
    align-items: center;
    margin-bottom: 8px;
}

.clr-board-title-wrap {
    min-width: 0;
}

.clr-board-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
}

.clr-board-badges {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 6px;
}

.clr-board-badges span {
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 9px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.24);
    background: rgba(255, 255, 255, 0.035);
    color: rgba(255, 243, 221, 0.72);
    font-size: 0.7rem;
    font-weight: 950;
}

.clr-board-status:empty,
.clr-live-actions:empty {
    display: none;
}

.clr-chat-head {
    min-height: 34px;
    padding: 7px 12px;
}

.clr-chat-head h3 {
    color: rgba(255, 247, 232, 0.86);
    font-family: inherit;
    font-size: 0.92rem;
    font-weight: 650;
    letter-spacing: 0.01em;
}

.clr-chat-head span {
    font-size: 0.72rem;
    color: rgba(255, 243, 221, 0.42);
}

.clr-chat-status:empty {
    display: none;
}

@media (max-width: 620px) {
    .clr-board-title-row {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .clr-enter-board {
        min-height: 34px;
        padding: 0 12px;
    }
}

/* ==========================================================
   Chess Practice Room Grid / Fixed Official Rooms
   ========================================================== */
.community-practice-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.community-practice-room-card {
    position: relative;
    overflow: hidden;
    display: grid;
    gap: 13px;
    min-height: 320px;
    padding: 18px;
    border: 1px solid rgba(216, 168, 79, 0.24);
    border-radius: 26px;
    background:
        radial-gradient(circle at 100% 0%, rgba(216, 168, 79, 0.14), transparent 36%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.062), rgba(255, 255, 255, 0.022)),
        rgba(20, 13, 7, 0.78);
    box-shadow: 0 24px 62px rgba(0, 0, 0, 0.22);
    backdrop-filter: blur(12px);
}

.community-practice-room-card::after {
    content: "♞";
    position: absolute;
    right: 18px;
    top: 48px;
    color: rgba(246, 215, 143, 0.08);
    font-size: 6rem;
    line-height: 1;
    pointer-events: none;
}

.community-practice-room-card > * {
    position: relative;
    z-index: 1;
}

.community-practice-card-top,
.community-practice-meta,
.community-practice-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.community-practice-status,
.community-practice-kind {
    min-height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 10px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.28);
    background: rgba(255, 255, 255, 0.04);
    color: rgba(255, 243, 221, 0.72);
    font-size: 0.72rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.community-practice-status.open {
    color: #a8e6bd;
    border-color: rgba(168, 230, 189, 0.34);
    background: rgba(168, 230, 189, 0.08);
}

.community-practice-status.waiting {
    color: #f6d78f;
    border-color: rgba(216, 168, 79, 0.42);
    background: rgba(216, 168, 79, 0.12);
}

.community-practice-status.live {
    color: #1a1005;
    border-color: transparent;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 72%, #a76d18 100%);
}

.community-practice-status.finished {
    color: rgba(255, 243, 221, 0.7);
    border-color: rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.045);
}

.community-practice-room-card h3 {
    margin: 0;
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.45rem, 3vw, 2.2rem);
    line-height: 0.98;
    letter-spacing: -0.035em;
}

.community-practice-excerpt {
    min-height: 48px;
    margin: 0;
    color: rgba(255, 243, 221, 0.64);
    line-height: 1.48;
}

.community-practice-match {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.community-practice-match div {
    min-width: 0;
    padding: 12px;
    border-radius: 16px;
    border: 1px solid rgba(216, 168, 79, 0.16);
    background: rgba(0, 0, 0, 0.18);
}

.community-practice-match span {
    display: block;
    margin-bottom: 4px;
    color: #f6d78f;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.community-practice-match strong {
    display: block;
    overflow: hidden;
    color: #fff7e8;
    font-size: 0.98rem;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.community-practice-meta {
    color: rgba(255, 243, 221, 0.52);
    font-size: 0.78rem;
    font-weight: 850;
}

.community-practice-meta span {
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    padding: 0 8px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.16);
}

.community-practice-actions {
    margin-top: auto;
}

.community-practice-btn {
    min-height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 13px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.3);
    background: rgba(255, 255, 255, 0.04);
    color: #f6d78f;
    font: inherit;
    font-size: 0.78rem;
    font-weight: 950;
    text-decoration: none;
    cursor: pointer;
}

.community-practice-btn.primary,
.community-practice-btn:hover:not(:disabled) {
    color: #1a1005;
    border-color: transparent;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 68%, #a76d18 100%);
}

.community-practice-btn:disabled {
    cursor: not-allowed;
    opacity: 0.58;
}

.community-practice-hint {
    margin: -2px 0 0;
    color: rgba(255, 243, 221, 0.48);
    font-size: 0.78rem;
    font-weight: 850;
}

@media (max-width: 980px) {
    .community-practice-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .community-practice-room-card {
        min-height: 0;
        border-radius: 22px;
        padding: 16px;
    }

    .community-practice-match {
        grid-template-columns: 1fr;
    }

    .community-practice-btn {
        width: 100%;
    }
}

/* ==========================================================
   Patch 2: Cleaner practice grid cards
   Shorter room descriptions and tighter launch layout.
   ========================================================== */
.community-practice-room-card {
    min-height: 270px;
    gap: 11px;
}

.community-practice-excerpt {
    min-height: 0;
    max-width: 92%;
    color: rgba(255, 243, 221, 0.58);
    font-size: 0.9rem;
    line-height: 1.38;
}

.community-practice-room-card h3 {
    font-size: clamp(1.35rem, 2.6vw, 2rem);
}

.community-practice-meta span {
    min-height: 22px;
    font-size: 0.74rem;
}

.community-practice-match div {
    padding: 10px;
}

.community-practice-btn {
    min-height: 34px;
}

/* ==========================================================
   Mind Sports Hall launch layout polish
   Hide the general community sidebar on fixed official halls
   so practice room grids feel like a real arena lobby.
   ========================================================== */
.community-page.is-mind-sports-hall .community-layout {
    grid-template-columns: minmax(0, 1fr);
}

.community-page.is-mind-sports-hall .community-sidebar {
    display: none;
}

.community-page.is-chess-practice-hall .community-center {
    max-width: 1180px;
    width: 100%;
    margin: 0 auto;
}

.community-page.is-chess-practice-hall .community-feed-head {
    align-items: center;
}

.community-practice-match strong {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.community-practice-room-card h3 {
    overflow-wrap: anywhere;
}

.community-list-status:not(:empty) {
    padding: 8px 0;
}

@media (min-width: 1180px) {
    .community-page.is-chess-practice-hall .community-practice-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .community-page.is-chess-practice-hall .community-center {
        max-width: none;
    }
}

/* ==========================================================
   Live Watch Room Sponsor Placeholder
   ========================================================== */
.clr-board-body {
    grid-template-columns: minmax(190px, 280px) minmax(190px, 280px) minmax(0, 1fr);
}

.clr-sponsor-panel {
    min-height: 190px;
    display: grid;
    place-content: center;
    gap: 8px;
    text-align: center;
    padding: 16px;
    border-radius: 16px;
    border: 1px dashed rgba(216, 168, 79, 0.34);
    background:
        radial-gradient(circle at 50% 0%, rgba(216, 168, 79, 0.12), transparent 48%),
        rgba(0, 0, 0, 0.18);
}

.clr-sponsor-panel span {
    color: #f6d78f;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.12em;
}

.clr-sponsor-panel strong {
    color: #fff7e8;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.25rem;
    line-height: 1.05;
}

.clr-sponsor-panel p {
    margin: 0;
    color: rgba(255, 243, 221, 0.52);
    font-size: 0.78rem;
    font-weight: 850;
}

.community-practice-actions .community-practice-btn[disabled] {
    display: none;
}

@media (max-width: 840px) {
    .clr-board-body {
        grid-template-columns: 1fr;
    }

    .clr-sponsor-panel {
        min-height: 120px;
    }
}

/* ==========================================================
   Patch 12: Practice rating display in room grid
   ========================================================== */
.community-practice-match em {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 20px;
    margin-top: 7px;
    padding: 0 8px;
    border-radius: 999px;
    border: 1px solid rgba(216, 168, 79, 0.22);
    background: rgba(216, 168, 79, 0.08);
    color: rgba(246, 215, 143, 0.86);
    font-size: 0.68rem;
    font-style: normal;
    font-weight: 950;
}

/* ==========================================================
   Patch 13: Chess launch QA lobby polish
   ========================================================== */
.community-page.is-mind-sports-hall .community-actions,
.community-page.is-mind-sports-hall .community-composer {
    display: none !important;
}

.community-practice-room-card.is-your-table {
    border-color: rgba(255, 216, 132, 0.72);
    box-shadow: 0 0 0 3px rgba(216, 168, 79, 0.12), 0 26px 68px rgba(0, 0, 0, 0.28);
}

.community-practice-room-card.is-your-table::before {
    content: "Your table";
    position: absolute;
    right: 16px;
    top: 16px;
    z-index: 2;
    min-height: 24px;
    display: inline-flex;
    align-items: center;
    padding: 0 9px;
    border-radius: 999px;
    background: linear-gradient(180deg, #ffd884 0%, #d39d3a 72%, #a76d18 100%);
    color: #1a1005;
    font-size: 0.68rem;
    font-weight: 950;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.community-practice-room-card.is-locked-by-active-table {
    opacity: 0.82;
}

.community-practice-room-card.is-locked-by-active-table .community-practice-btn:disabled {
    opacity: 0.42;
}

.community-practice-btn.is-return {
    color: #1a1005;
    border-color: transparent;
    background: linear-gradient(180deg, #ffe2a0 0%, #d9a33e 68%, #a76d18 100%);
}

.community-page.is-chess-practice-hall .community-feed {
    margin-bottom: 28px;
}

/* ==========================================================
   Patch 14: Chess launch final lobby polish
   Immersive official hall mode, compact guide, live lobby refresh.
   ========================================================== */
body.asylonia-mind-sports-mode .site-footer {
    display: none;
}

body.asylonia-mind-sports-mode .community-page {
    min-height: calc(100vh - 72px);
    min-height: calc(100dvh - 72px);
    padding-bottom: 58px;
}

.community-page.is-mind-sports-hall .community-feed {
    overflow: visible;
}

.community-mind-sports-guide {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin: 0 0 16px;
}

.community-mind-sports-guide div {
    min-height: 68px;
    padding: 12px 13px;
    border-radius: 18px;
    border: 1px solid rgba(216, 168, 79, 0.18);
    background:
        radial-gradient(circle at 100% 0%, rgba(216, 168, 79, 0.10), transparent 48%),
        rgba(255, 255, 255, 0.032);
}

.community-mind-sports-guide strong {
    display: block;
    margin-bottom: 5px;
    color: #f6d78f;
    font-size: 0.7rem;
    font-weight: 950;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.community-mind-sports-guide span {
    display: block;
    color: rgba(255, 243, 221, 0.62);
    font-size: 0.78rem;
    font-weight: 760;
    line-height: 1.32;
}

.community-practice-hint {
    min-height: 0;
    margin: 2px 0 0;
    color: rgba(255, 243, 221, 0.44);
    font-size: 0.72rem;
    font-weight: 850;
    line-height: 1.28;
}

.community-practice-room-card.is-locked-by-active-table .community-practice-hint {
    max-width: 240px;
}

.community-practice-room-card.is-your-table .community-practice-hint {
    color: rgba(246, 215, 143, 0.74);
}

.community-page.is-chess-practice-hall .community-feed {
    border-color: rgba(216, 168, 79, 0.28);
    background:
        radial-gradient(circle at 50% 0%, rgba(216, 168, 79, 0.085), transparent 42%),
        linear-gradient(145deg, rgba(255, 255, 255, 0.052), rgba(255, 255, 255, 0.018)),
        rgba(20, 13, 7, 0.72);
}

.community-page.is-chess-practice-hall .community-list-status:not(:empty) {
    padding: 0 0 10px;
    color: rgba(255, 243, 221, 0.48);
    font-size: 0.82rem;
    font-weight: 850;
}

@media (max-width: 900px) {
    .community-mind-sports-guide {
        grid-template-columns: 1fr;
    }

    .community-mind-sports-guide div {
        min-height: 0;
    }
}

@media (max-width: 620px) {
    body.asylonia-mind-sports-mode .community-page {
        padding-bottom: 32px;
    }

    .community-mind-sports-guide {
        margin-bottom: 12px;
    }
}

/* ==========================================================
   Go Practice Hall MVP foundation
   ========================================================== */
.community-go-practice-grid .community-go-room-card {
    min-height: 250px;
}

.community-go-room-card::after {
    content: none;
}

.community-go-room-card::before {
    content: "";
    position: absolute;
    right: 18px;
    top: 74px;
    width: 84px;
    height: 84px;
    opacity: 0.12;
    border-radius: 18px;
    background:
        linear-gradient(rgba(246, 215, 143, 0.9) 1px, transparent 1px),
        linear-gradient(90deg, rgba(246, 215, 143, 0.9) 1px, transparent 1px);
    background-size: 12px 12px;
}

.community-go-board-preview {
    position: relative;
    width: min(100%, 210px);
    aspect-ratio: 1 / 1;
    min-height: 0;
    margin: 12px 0 10px;
    border-radius: 16px;
    border: 1px solid rgba(216, 168, 79, 0.2);
    overflow: hidden;
    background-color: rgba(185, 137, 66, 0.55);
    background-image:
        linear-gradient(rgba(40, 24, 10, .52) 1px, transparent 1px),
        linear-gradient(90deg, rgba(40, 24, 10, .52) 1px, transparent 1px);
    background-size: 18px 18px;
    box-shadow: inset 0 0 0 999px rgba(0,0,0,.08);
}

.community-go-board-preview .stone {
    position: absolute;
    width: 18px;
    height: 18px;
    border-radius: 999px;
    box-shadow: 0 8px 16px rgba(0,0,0,.26);
}

.community-go-board-preview .stone.black {
    left: 24%;
    top: 34%;
    background: #12100d;
}

.community-go-board-preview .stone.black.second {
    left: 54%;
    top: 58%;
}

.community-go-board-preview .stone.white {
    left: 66%;
    top: 30%;
    background: #fff8e8;
    box-shadow: inset 0 -3px 5px rgba(0,0,0,.12), 0 8px 16px rgba(0,0,0,.22);
}

.community-go-practice-grid .community-practice-status.open {
    color: #1f1508;
    border-color: transparent;
    background: linear-gradient(180deg, #f3c970 0%, #d79d3c 100%);
}
