/* Member/login system polish. Scoped to member/admin chrome to avoid page-logic changes. */
@media all {
    body.bluecg-page {
        isolation: isolate;
    }

    body.bluecg-page .bluecg-webgl-layer {
        position: fixed;
        inset: 0;
        z-index: 0;
        width: 100vw;
        height: 100vh;
        pointer-events: none;
        opacity: .24;
        mix-blend-mode: screen;
    }

    body.bluecg-login-page .bluecg-webgl-layer {
        opacity: .3;
    }

    body.bluecg-member-page .bluecg-webgl-layer {
        opacity: .22;
    }

    body.bluecg-admin-page .bluecg-webgl-layer {
        opacity: .1;
    }

    body.bluecg-page > main {
        position: relative;
        z-index: 1;
    }

    body.bluecg-admin-page .bluecg-admin-topbar,
    body.bluecg-member-page .bluecg-member-topbar {
        position: sticky;
        top: .75rem;
        z-index: 30;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: .65rem;
        align-items: center;
        margin: .75rem 0 1.1rem;
        padding: .5rem;
        border: 1px solid rgba(52, 128, 122, .18);
        border-radius: 18px;
        background: linear-gradient(180deg, rgba(255, 255, 253, .94), rgba(249, 244, 234, .86));
        box-shadow: 0 .8rem 2.2rem rgba(35, 28, 20, .1);
        backdrop-filter: blur(16px);
    }

    body.bluecg-admin-page .bluecg-admin-nav,
    body.bluecg-member-page .bluecg-member-nav {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
        gap: .42rem;
        min-width: 0;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        box-shadow: none;
        justify-content: stretch;
    }

    body.bluecg-admin-page .bluecg-admin-nav a,
    body.bluecg-member-page .bluecg-member-nav a {
        min-height: 2.68rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: .62rem .9rem;
        border: 1px solid rgba(96, 77, 55, .08);
        border-radius: 12px;
        background:
            linear-gradient(180deg, rgba(255, 255, 255, .92), rgba(252, 247, 238, .76));
        color: #50483e;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .72),
            0 .35rem .9rem rgba(42, 32, 21, .045);
        font-size: .92rem;
        font-weight: 900;
        line-height: 1.18;
        text-align: center;
        text-decoration: none;
        white-space: nowrap;
        transition: border-color .16s ease, box-shadow .16s ease, color .16s ease, background .16s ease, transform .16s ease;
    }

    body.bluecg-admin-page .bluecg-admin-nav a:hover,
    body.bluecg-admin-page .bluecg-admin-nav a:focus-visible,
    body.bluecg-member-page .bluecg-member-nav a:hover,
    body.bluecg-member-page .bluecg-member-nav a:focus-visible {
        border-color: rgba(36, 120, 117, .3);
        background: linear-gradient(180deg, rgba(255, 255, 255, .96), rgba(237, 251, 248, .9));
        color: #1f6f69;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .86),
            0 .55rem 1.2rem rgba(36, 120, 117, .08);
        outline: none;
        transform: translateY(-1px);
    }

    body.bluecg-admin-page .bluecg-admin-nav a.active,
    body.bluecg-member-page .bluecg-member-nav a.active {
        border-color: rgba(44, 162, 158, .42);
        background:
            linear-gradient(180deg, rgba(247, 255, 253, .98), rgba(232, 250, 248, .9));
        color: #05766f;
        box-shadow:
            inset 0 0 0 1px rgba(44, 162, 158, .12),
            0 .48rem 1.15rem rgba(44, 162, 158, .14);
    }

    body.bluecg-admin-page .bluecg-admin-userbar,
    body.bluecg-member-page .bluecg-member-userbar {
        display: grid;
        gap: .08rem;
        min-width: 8.6rem;
        max-width: 15rem;
        padding: .54rem .78rem;
        border: 1px solid rgba(36, 120, 117, .18);
        border-radius: 12px;
        background: linear-gradient(180deg, rgba(246, 255, 252, .96), rgba(239, 246, 255, .82));
        color: #2d2a24;
        line-height: 1.2;
    }

    body.bluecg-admin-page .bluecg-admin-userbar span,
    body.bluecg-member-page .bluecg-member-userbar span {
        color: #66736f;
        font-size: .72rem;
        font-weight: 850;
        letter-spacing: 0;
    }

    body.bluecg-admin-page .bluecg-admin-userbar strong,
    body.bluecg-member-page .bluecg-member-userbar strong {
        overflow: hidden;
        color: #1e655f;
        font-size: .9rem;
        font-weight: 950;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body.bluecg-admin-page .bluecg-panel.quest,
    body.bluecg-admin-page .bluecg-card.quest-card,
    body.bluecg-admin-page .bluecg-form-card {
        border-color: rgba(42, 98, 112, .16);
    }

    body.bluecg-admin-page .bluecg-brand.compact {
        margin-bottom: .45rem;
    }

    body.bluecg-admin-page .bluecg-admin-strip {
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
        gap: .72rem;
    }

    body.bluecg-admin-page .bluecg-card.quest-card {
        min-height: 7rem;
        padding: .9rem;
    }

    body.bluecg-admin-page a.bluecg-card.quest-card {
        display: grid;
        align-content: start;
        gap: .32rem;
    }

    body.bluecg-admin-page .bluecg-table-wrap {
        border: 1px solid rgba(42, 98, 112, .13);
        border-radius: 14px;
        background: rgba(255, 255, 255, .54);
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .72);
    }

    body.bluecg-admin-page .bluecg-table {
        min-width: 58rem;
        border-collapse: separate;
        border-spacing: 0;
        font-size: .86rem;
    }

    body.bluecg-admin-page .bluecg-table thead th {
        position: sticky;
        top: 0;
        z-index: 2;
        border-bottom: 1px solid rgba(42, 98, 112, .16);
        background: linear-gradient(180deg, rgba(242, 250, 248, .98), rgba(232, 241, 238, .96));
        color: #2f3d38;
        font-size: .76rem;
        letter-spacing: 0;
        text-transform: none;
        white-space: nowrap;
    }

    body.bluecg-admin-page .bluecg-table td {
        vertical-align: top;
        line-height: 1.52;
    }

    body.bluecg-admin-page .bluecg-table tr:hover td {
        background: rgba(235, 249, 246, .46);
    }

    body.bluecg-admin-page .bluecg-table code {
        display: inline-block;
        max-width: 22rem;
        padding: .24rem .42rem;
        border: 1px solid rgba(42, 98, 112, .13);
        border-radius: .45rem;
        background: rgba(245, 250, 247, .8);
        color: #253d39;
        overflow-wrap: anywhere;
        white-space: normal;
    }

    body.bluecg-admin-page .bluecg-table .bluecg-form,
    body.bluecg-admin-page .bluecg-table form {
        display: grid;
        gap: .45rem;
        min-width: 12rem;
        margin: 0;
    }

    body.bluecg-admin-page .bluecg-table input,
    body.bluecg-admin-page .bluecg-table select,
    body.bluecg-admin-page .bluecg-table textarea {
        min-height: 2.35rem;
        border-radius: .62rem;
        font-size: .84rem;
    }

    body.bluecg-admin-page .bluecg-table .bluecg-textarea,
    body.bluecg-admin-page .bluecg-table textarea {
        min-height: 4.6rem;
    }

    body.bluecg-admin-page .bluecg-table .bluecg-button,
    body.bluecg-admin-page .bluecg-table .bluecg-mini-button {
        min-height: 2.35rem;
        padding: .42rem .72rem;
        border-radius: .64rem;
        font-size: .82rem;
    }

    body.bluecg-admin-page .bluecg-inline-form {
        display: flex;
        flex-wrap: wrap;
        gap: .42rem;
        align-items: center;
        min-width: 0;
    }

    body.bluecg-admin-page .bluecg-inline-form select {
        width: auto;
        min-width: 8rem;
    }

    body.bluecg-admin-page .bluecg-checkbox {
        min-height: 2.2rem;
        display: inline-flex;
        align-items: center;
        gap: .42rem;
        padding: .35rem .55rem;
        border: 1px solid rgba(42, 98, 112, .12);
        border-radius: .68rem;
        background: rgba(255, 255, 255, .64);
        font-weight: 850;
    }

    body.bluecg-admin-page .bluecg-statusbar {
        gap: .58rem;
    }

    body.bluecg-admin-page .bluecg-stat {
        border-color: rgba(42, 98, 112, .14);
        background: linear-gradient(180deg, rgba(255, 255, 253, .92), rgba(240, 247, 244, .72));
    }

    body.bluecg-admin-page .bluecg-stat span {
        color: #61716b;
    }

    body.bluecg-admin-page .bluecg-stat strong {
        color: #274f49;
    }

    body.bluecg-admin-page .bluecg-pagination {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: center;
        gap: .5rem;
        margin-top: .9rem;
    }

    body.bluecg-admin-page .bluecg-pagination a,
    body.bluecg-admin-page .bluecg-pagination span {
        min-height: 2.35rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: .44rem .82rem;
        border: 1px solid rgba(42, 98, 112, .14);
        border-radius: .7rem;
        background: rgba(255, 255, 255, .74);
        color: #274f49;
        font-weight: 900;
        text-decoration: none;
    }

    body.bluecg-admin-page .bluecg-pagination a:hover,
    body.bluecg-admin-page .bluecg-pagination a:focus-visible {
        border-color: rgba(36, 120, 117, .34);
        background: rgba(235, 250, 246, .88);
        outline: none;
    }

    body.bluecg-static-entry-page,
    body.bluecg-error-page {
        min-height: 100vh;
    }

    body.bluecg-static-entry-page .bluecg-shell,
    body.bluecg-error-page .bluecg-shell {
        min-height: 100vh;
        display: grid;
        align-items: center;
    }

    body.bluecg-static-entry-page .bluecg-panel.quest,
    body.bluecg-error-page .bluecg-panel.quest {
        max-width: 48rem;
        margin-inline: auto;
    }

    body.bluecg-static-entry-page .bluecg-static-actions,
    body.bluecg-error-page .bluecg-static-actions {
        display: flex;
        flex-wrap: wrap;
        gap: .65rem;
        justify-content: center;
        margin: 1.1rem 0 0;
    }

    body.bluecg-static-entry-page .bluecg-static-actions > *,
    body.bluecg-error-page .bluecg-static-actions > * {
        min-width: min(100%, 10rem);
        justify-content: center;
    }

    body.bluecg-member-page .bluecg-panel.quest,
    body.bluecg-member-page .bluecg-card.quest-card,
    body.bluecg-member-page .bluecg-form-card {
        border-color: rgba(36, 120, 117, .14);
    }

    body.bluecg-member-page .bluecg-section-title,
    body.bluecg-member-page .bluecg-heading {
        align-items: center;
    }

    body.bluecg-member-page .bluecg-button,
    body.bluecg-member-page .bluecg-link-button,
    body.bluecg-member-page .bluecg-mini-button {
        min-height: 2.55rem;
    }

    body.bluecg-member-page .bluecg-current-event-actions {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: .65rem;
        margin: 1rem 0 1.1rem;
        padding: .52rem;
        border: 1px solid rgba(36, 120, 117, .12);
        border-radius: 1.05rem;
        background:
            linear-gradient(180deg, rgba(255, 255, 252, .9), rgba(248, 244, 234, .78));
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .82),
            0 .8rem 1.65rem rgba(48, 38, 26, .07);
    }

    body.bluecg-member-page .bluecg-current-event-action {
        display: grid;
        grid-template-rows: auto auto minmax(0, 1fr);
        gap: .32rem;
        min-height: 7.25rem;
        padding: .82rem .88rem;
        border: 1px solid rgba(36, 120, 117, .14);
        border-radius: .9rem;
        background:
            linear-gradient(180deg, rgba(255, 255, 253, .97), rgba(245, 250, 247, .88));
        color: #2b261f;
        text-decoration: none;
        box-shadow:
            inset 0 1px 0 rgba(255, 255, 255, .78),
            0 .45rem 1rem rgba(35, 28, 20, .045);
        transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease, background .16s ease, color .16s ease;
    }

    body.bluecg-member-page .bluecg-current-event-action.primary {
        border-color: rgba(36, 120, 117, .28);
        background:
            linear-gradient(180deg, rgba(244, 255, 252, .98), rgba(231, 248, 245, .92));
    }

    body.bluecg-member-page .bluecg-current-event-action.vote {
        border-color: rgba(80, 104, 180, .22);
        background:
            linear-gradient(180deg, rgba(248, 250, 255, .98), rgba(233, 239, 255, .86));
    }

    body.bluecg-member-page .bluecg-current-event-action.result {
        border-color: rgba(157, 112, 42, .22);
        background:
            linear-gradient(180deg, rgba(255, 252, 243, .98), rgba(250, 239, 215, .86));
    }

    body.bluecg-member-page .bluecg-current-event-action.is-muted {
        border-color: rgba(88, 78, 66, .12);
        background:
            linear-gradient(180deg, rgba(255, 255, 253, .88), rgba(246, 243, 236, .72));
        color: #6d655d;
    }

    body.bluecg-member-page .bluecg-current-event-action:hover,
    body.bluecg-member-page .bluecg-current-event-action:focus-visible {
        border-color: rgba(36, 120, 117, .34);
        box-shadow: 0 .72rem 1.45rem rgba(36, 120, 117, .1);
        outline: none;
        transform: translateY(-1px);
    }

    body.bluecg-member-page .bluecg-current-event-action span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        justify-self: start;
        min-height: 1.55rem;
        padding: .16rem .48rem;
        border: 1px solid rgba(36, 120, 117, .16);
        border-radius: 999px;
        background: rgba(255, 255, 255, .62);
        color: #247872;
        font-size: .76rem;
        font-weight: 950;
        line-height: 1;
    }

    body.bluecg-member-page .bluecg-current-event-action strong {
        color: #26221e;
        font-size: 1.03rem;
        font-weight: 950;
        line-height: 1.25;
    }

    body.bluecg-member-page .bluecg-current-event-action small {
        color: #70655d;
        line-height: 1.55;
    }

    @media (max-width: 980px) {
        body.bluecg-member-page .bluecg-current-event-actions {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }
    }

    @media (max-width: 620px) {
        body.bluecg-member-page .bluecg-current-event-actions {
            grid-template-columns: 1fr;
        }
    }

    body.bluecg-member-page .bluecg-event-status-map {
        display: grid;
        grid-template-columns: repeat(5, minmax(0, 1fr));
        gap: .48rem;
        margin: 1rem 0 .35rem;
        padding: .45rem;
        border: 1px solid rgba(36, 120, 117, .12);
        border-radius: 14px;
        background: linear-gradient(180deg, rgba(255, 255, 253, .72), rgba(241, 247, 243, .62));
    }

    body.bluecg-member-page .bluecg-event-schedule-title {
        display: flex;
        align-items: center;
        min-height: 2.6rem;
        margin: 1.25rem 0 .75rem;
        padding-left: .72rem;
        border-left: .18rem solid #247872;
    }

    body.bluecg-member-page .bluecg-event-schedule-title h2 {
        margin: 0;
        color: #24211d;
        font-size: clamp(1.25rem, 2vw, 1.55rem);
        font-weight: 950;
        line-height: 1.18;
    }

    body.bluecg-member-page .bluecg-event-status {
        position: relative;
        display: grid;
        grid-template-rows: auto auto auto 1fr;
        gap: .22rem;
        min-width: 0;
        min-height: 7.2rem;
        padding: .78rem .72rem;
        border: 1px solid rgba(91, 77, 59, .1);
        border-radius: 11px;
        background: rgba(255, 255, 255, .72);
        color: #2d2923;
        overflow: hidden;
    }

    body.bluecg-member-page .bluecg-event-status::before {
        content: "";
        position: absolute;
        inset: 0 auto 0 0;
        width: .22rem;
        background: #b7aea1;
    }

    body.bluecg-member-page .bluecg-event-status.is-done::before {
        background: #9a7d34;
    }

    body.bluecg-member-page .bluecg-event-status.is-active,
    body.bluecg-member-page .bluecg-event-status.is-open {
        border-color: rgba(36, 120, 117, .32);
        background: linear-gradient(180deg, rgba(241, 255, 251, .94), rgba(232, 249, 245, .78));
        box-shadow: inset 0 0 0 1px rgba(36, 120, 117, .08);
    }

    body.bluecg-member-page .bluecg-event-status.is-active::before,
    body.bluecg-member-page .bluecg-event-status.is-open::before {
        background: #247872;
    }

    body.bluecg-member-page .bluecg-event-status.is-locked {
        color: #746c63;
        background: rgba(247, 245, 240, .64);
    }

    body.bluecg-member-page .bluecg-event-status-num {
        color: #247872;
        font-size: .72rem;
        font-weight: 950;
        line-height: 1;
    }

    body.bluecg-member-page .bluecg-event-status strong {
        overflow-wrap: anywhere;
        font-size: .95rem;
        font-weight: 950;
        line-height: 1.24;
    }

    body.bluecg-member-page .bluecg-event-status em {
        width: fit-content;
        max-width: 100%;
        padding: .18rem .48rem;
        border-radius: 999px;
        background: rgba(151, 122, 52, .11);
        color: #7c6124;
        font-size: .72rem;
        font-style: normal;
        font-weight: 950;
        line-height: 1.25;
    }

    body.bluecg-member-page .bluecg-event-status.is-active em,
    body.bluecg-member-page .bluecg-event-status.is-open em {
        background: rgba(36, 120, 117, .12);
        color: #1f6f69;
    }

    body.bluecg-member-page .bluecg-event-status.is-locked em {
        background: rgba(115, 103, 92, .11);
        color: #6c6258;
    }

    body.bluecg-member-page .bluecg-event-status small {
        color: #70655d;
        font-size: .78rem;
        line-height: 1.5;
    }

    body.bluecg-member-page .bluecg-event-phase-summary {
        display: grid;
        grid-template-columns: auto minmax(0, auto) minmax(0, 1fr);
        gap: .55rem;
        align-items: center;
        margin: .7rem 0 .25rem;
        padding: .68rem .82rem;
        border: 1px solid rgba(36, 120, 117, .14);
        border-radius: 13px;
        background:
            linear-gradient(90deg, rgba(239, 251, 248, .92), rgba(255, 252, 244, .72));
        box-shadow: inset 0 1px 0 rgba(255, 255, 255, .76);
    }

    body.bluecg-member-page .bluecg-event-phase-summary span {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 1.75rem;
        padding: .18rem .55rem;
        border-radius: 999px;
        background: rgba(36, 120, 117, .12);
        color: #247872;
        font-size: .74rem;
        font-weight: 950;
        white-space: nowrap;
    }

    body.bluecg-member-page .bluecg-event-phase-summary strong {
        color: #24211d;
        font-size: .98rem;
        font-weight: 950;
        line-height: 1.25;
        white-space: nowrap;
    }

    body.bluecg-member-page .bluecg-event-phase-summary p {
        margin: 0;
        color: #6f655c;
        font-size: .86rem;
        font-weight: 760;
        line-height: 1.5;
    }

    body.bluecg-member-page .bluecg-event-home-actions {
        margin-top: .85rem;
        margin-bottom: .2rem;
    }

    body.bluecg-dashboard-page .bluecg-member-next-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
        gap: .72rem;
        margin-top: .9rem;
    }

    body.bluecg-dashboard-page .bluecg-member-next-card {
        display: grid;
        gap: .28rem;
        min-height: 7.4rem;
        padding: .9rem;
        border: 1px solid rgba(36, 120, 117, .14);
        border-radius: 14px;
        background: linear-gradient(180deg, rgba(255, 255, 253, .96), rgba(242, 249, 247, .86));
        color: #28241f;
        text-decoration: none;
        box-shadow: 0 .5rem 1.35rem rgba(36, 30, 22, .055);
    }

    body.bluecg-dashboard-page .bluecg-member-next-card:hover,
    body.bluecg-dashboard-page .bluecg-member-next-card:focus-visible {
        border-color: rgba(36, 120, 117, .34);
        transform: translateY(-1px);
        outline: none;
    }

    body.bluecg-dashboard-page .bluecg-member-next-card span {
        color: #247872;
        font-size: .76rem;
        font-weight: 950;
    }

    body.bluecg-dashboard-page .bluecg-member-next-card strong {
        font-size: .98rem;
        font-weight: 950;
        line-height: 1.28;
    }

    body.bluecg-dashboard-page .bluecg-member-next-card small {
        color: #70655d;
        line-height: 1.55;
    }

    @media (max-width: 760px) {
        body.bluecg-admin-page .bluecg-admin-topbar,
        body.bluecg-member-page .bluecg-member-topbar {
            position: static;
            grid-template-columns: 1fr;
            gap: .5rem;
            margin-top: .55rem;
            border-radius: 14px;
        }

        body.bluecg-admin-page .bluecg-admin-nav,
        body.bluecg-member-page .bluecg-member-nav {
            grid-template-columns: repeat(2, minmax(0, 1fr));
            overflow: visible;
        }

        body.bluecg-admin-page .bluecg-admin-userbar,
        body.bluecg-member-page .bluecg-member-userbar {
            display: flex;
            justify-content: space-between;
            align-items: center;
            min-width: 0;
            max-width: none;
        }

        body.bluecg-member-page .bluecg-event-status-map {
            grid-template-columns: repeat(2, minmax(0, 1fr));
        }

        body.bluecg-member-page .bluecg-event-phase-summary {
            grid-template-columns: 1fr;
            gap: .38rem;
        }

        body.bluecg-member-page .bluecg-event-phase-summary span,
        body.bluecg-member-page .bluecg-event-phase-summary strong {
            justify-self: start;
            white-space: normal;
        }

        body.bluecg-login-page .bluecg-webgl-layer,
        body.bluecg-member-page .bluecg-webgl-layer {
            opacity: .16;
        }

        body.bluecg-admin-page .bluecg-webgl-layer {
            opacity: .08;
        }
    }

    @media (max-width: 430px) {
        body.bluecg-admin-page .bluecg-admin-nav,
        body.bluecg-member-page .bluecg-member-nav {
            grid-template-columns: 1fr;
        }

        body.bluecg-admin-page .bluecg-admin-nav a,
        body.bluecg-member-page .bluecg-member-nav a {
            min-height: 2.8rem;
        }

        body.bluecg-member-page .bluecg-event-status-map {
            grid-template-columns: 1fr;
        }

        body.bluecg-static-entry-page .bluecg-static-actions,
        body.bluecg-error-page .bluecg-static-actions {
            display: grid;
            grid-template-columns: 1fr;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        body.bluecg-page .bluecg-webgl-layer {
            display: none;
        }
    }
}
