/* Billing and no-charge admin */
.billing-page,
.admin-billing-page {
    background: var(--ln-bg);
    color: var(--ln-text);
    display: grid;
    gap: 1.45rem;
    margin: 0 auto;
    max-width: 1180px;
    min-height: 100vh;
    min-width: 0;
    padding: clamp(1rem, 2.7vw, 2rem);
    width: 100%;
}

.billing-header {
    align-items: center;
    border-bottom: 1px solid #202630;
    display: grid;
    gap: 1.5rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-bottom: 1.65rem;
}

.billing-header > *,
.admin-dashboard-workspace > *,
.admin-panel-stage > *,
.admin-health-grid > *,
.admin-table-row > *,
.admin-compact-row > *,
.no-charge-item > * {
    min-width: 0;
}

.billing-header h1 {
    color: var(--ln-text);
    font-size: clamp(3rem, 6vw, 4.4rem);
    font-weight: 900;
    letter-spacing: 0;
    line-height: .92;
    margin: .75rem 0 1rem;
}

.billing-header p:not(.system-label),
.billing-card p {
    color: var(--ln-muted);
    font-size: 1.02rem;
    font-weight: 650;
    line-height: 1.48;
    margin: 0;
}

.billing-card {
    background: #0b0f15;
    border: 1px solid var(--ln-border);
    border-radius: 24px;
    box-shadow: none;
    display: grid;
    gap: 1rem;
    justify-self: center;
    max-width: 760px;
    padding: clamp(1.25rem, 2.6vw, 1.8rem);
    width: 100%;
}

.billing-card-success {
    background: linear-gradient(135deg, rgba(216, 255, 53, .12), #0b0f15 72%);
    border-color: rgba(216, 255, 53, .36);
}

.billing-card h2 {
    color: var(--ln-text);
    font-size: clamp(2rem, 3.3vw, 2.55rem);
    font-weight: 900;
    line-height: 1;
    margin: .25rem 0;
}

.billing-price {
    background: #15191f;
    border: 1px solid #282e38;
    border-radius: 18px;
    display: grid;
    gap: .25rem;
    padding: 1rem;
}

.billing-price strong {
    color: var(--ln-text);
    font-size: clamp(2.2rem, 4vw, 3rem);
    font-weight: 950;
    line-height: 1;
}

.billing-price span,
.no-charge-item span {
    color: #8f97a3;
    font-size: .82rem;
    font-weight: 900;
}

.billing-alert {
    background: rgba(216, 255, 53, .1);
    border: 1px solid rgba(216, 255, 53, .3);
    border-radius: 14px;
    color: var(--ln-text);
    font-weight: 800;
    line-height: 1.45;
    padding: .95rem 1rem;
}

.billing-action {
    justify-self: start;
    max-width: 240px;
}

.admin-billing-layout {
    align-items: start;
    display: grid;
    gap: 1.45rem;
    grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
}

.admin-billing-layout .billing-card {
    justify-self: stretch;
    max-width: none;
}

.no-charge-list {
    display: grid;
    gap: .8rem;
}

.no-charge-item {
    align-items: center;
    background: #15191f;
    border: 1px solid #282e38;
    border-radius: 16px;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 1rem;
}

.no-charge-item.is-inactive {
    opacity: .56;
}

.no-charge-item strong {
    color: var(--ln-text);
    display: block;
    font-size: 1.05rem;
    font-weight: 900;
    overflow-wrap: anywhere;
}

.no-charge-item p {
    font-size: .92rem;
    margin-top: .45rem;
}

.workout-history-filters {
    align-items: end;
    background: #080c11;
    border: 1px solid #202733;
    border-radius: 16px;
    display: grid;
    gap: .75rem;
    grid-template-columns: minmax(0, 1fr) minmax(132px, .28fr) minmax(132px, .28fr);
    padding: .9rem;
}

.active-last-hint {
    background: rgba(216, 255, 53, .1);
    border: 1px solid rgba(216, 255, 53, .25);
    border-radius: 999px;
    color: var(--ln-lime, #d7ff63);
    display: inline-flex;
    font-size: .84rem;
    font-weight: 900;
    justify-self: start;
    padding: .42rem .7rem;
}

.exercise-governance-note {
    background: rgba(255, 255, 255, .04);
    border: 1px solid #252c36;
    border-radius: 14px;
    color: var(--ln-muted, #a7aab3);
    font-size: .95rem;
    font-weight: 700;
    line-height: 1.45;
    margin: 0 0 .7rem;
    padding: .85rem;
}

.admin-status-grid {
    display: grid;
    gap: .9rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-dashboard-page {
    gap: 1rem;
    max-width: 1280px;
    padding-top: clamp(.85rem, 2vw, 1.45rem);
}

.admin-dashboard-header {
    align-items: end;
    padding-bottom: 1rem;
}

.admin-dashboard-header h1 {
    font-size: clamp(2.35rem, 4.5vw, 3.4rem);
    margin: .45rem 0 .55rem;
}

.admin-dashboard-header p:not(.system-label) {
    max-width: 760px;
}

.admin-dashboard-workspace {
    align-items: start;
    display: grid;
    gap: 1rem;
    grid-template-columns: 220px minmax(0, 1fr);
    min-width: 0;
}

.admin-status-rail {
    gap: .45rem;
    grid-template-columns: 1fr;
    position: sticky;
    top: 1rem;
}

.admin-status-card {
    align-content: start;
    justify-self: stretch;
    max-width: none;
    min-height: 154px;
}

.admin-status-rail .admin-status-card {
    align-items: center;
    background: #10141a;
    border-radius: 13px;
    gap: .08rem .55rem;
    grid-template-areas:
        "label value"
        "copy value";
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 0;
    padding: .58rem .68rem;
}

.admin-dashboard-toggle {
    appearance: none;
    color: inherit;
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.admin-dashboard-toggle:hover,
.admin-dashboard-toggle.is-active {
    background: linear-gradient(135deg, rgba(216, 255, 53, .14), #121820 78%);
    border-color: rgba(216, 255, 53, .45);
    transform: translateX(2px);
}

.admin-status-card span {
    color: #8f97a3;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.admin-status-rail .admin-status-card span {
    font-size: .62rem;
    letter-spacing: .08em;
    grid-area: label;
}

.admin-status-card strong {
    color: var(--ln-text);
    font-size: clamp(2.15rem, 4vw, 3.1rem);
    font-weight: 950;
    line-height: 1;
}

.admin-status-rail .admin-status-card strong {
    font-size: 1.15rem;
    grid-area: value;
    text-align: right;
}

.admin-status-rail .admin-status-card p {
    color: #7f8895;
    font-size: .72rem;
    grid-area: copy;
    line-height: 1.15;
}

.admin-status-card.needs-attention {
    border-color: rgba(255, 184, 77, .48);
}

.admin-warning-card {
    border-color: rgba(255, 184, 77, .42);
    justify-self: stretch;
    max-width: none;
}

.admin-expanded-panel,
.admin-wide-card {
    justify-self: stretch;
    max-width: none;
}

.admin-panel-stage {
    align-content: start;
    max-height: calc(100vh - 215px);
    min-height: min(580px, calc(100vh - 215px));
    min-width: 0;
    overflow: auto;
}

.admin-panel-stage h2 {
    font-size: clamp(1.7rem, 2.5vw, 2.35rem);
}

.admin-user-search {
    align-items: end;
    background: #10141a;
    border: 1px solid #252c36;
    border-radius: 14px;
    display: grid;
    gap: .8rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .85rem;
}

.admin-user-search .profile-field {
    margin: 0;
}

.admin-user-search > span {
    color: #8f97a3;
    font-size: .82rem;
    font-weight: 900;
    padding-bottom: .65rem;
    white-space: nowrap;
}

.admin-panel-count {
    color: #8f97a3;
    font-size: .82rem;
    font-weight: 900;
}

.admin-table-list,
.admin-compact-list,
.admin-event-list {
    display: grid;
    gap: .75rem;
}

.admin-table-row,
.admin-compact-row {
    align-items: center;
    background: #15191f;
    border: 1px solid #282e38;
    border-radius: 16px;
    display: grid;
    gap: 1rem;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: .95rem 1rem;
}

.admin-table-row strong,
.admin-compact-row strong {
    color: var(--ln-text);
    display: block;
    font-size: 1rem;
    font-weight: 950;
    overflow-wrap: anywhere;
}

.admin-table-row span,
.admin-compact-row span,
.admin-billing-meta span {
    color: #8f97a3;
    font-size: .82rem;
    font-weight: 850;
}

.admin-badge-row,
.admin-billing-meta {
    align-items: end;
    display: flex;
    flex-direction: column;
    gap: .45rem;
    min-width: 150px;
}

.admin-pill {
    align-items: center;
    background: rgba(216, 255, 53, .16);
    border: 1px solid rgba(216, 255, 53, .28);
    border-radius: 999px;
    color: var(--ln-lime, #d7ff63) !important;
    display: inline-flex;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: .72rem !important;
    font-weight: 950 !important;
    justify-content: center;
    letter-spacing: .06em;
    min-height: 1.6rem;
    padding: .28rem .62rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.admin-pill.paid {
    background: rgba(92, 200, 255, .14);
    border-color: rgba(92, 200, 255, .3);
    color: #8fdcff !important;
}

.admin-pill.warning {
    background: rgba(255, 184, 77, .14);
    border-color: rgba(255, 184, 77, .35);
    color: #ffca7a !important;
}

.admin-pill.muted {
    background: #20252e;
    border-color: #303744;
    color: #a0a8b4 !important;
}

.admin-health-grid {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-health-grid div {
    background: #15191f;
    border: 1px solid #282e38;
    border-radius: 16px;
    display: grid;
    gap: .35rem;
    min-height: 86px;
    padding: .9rem;
}

.admin-health-grid span {
    color: #8f97a3;
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.admin-health-grid strong {
    color: var(--ln-text);
    font-size: 1.2rem;
    font-weight: 950;
    overflow-wrap: anywhere;
}

.admin-management-layout {
    grid-template-columns: minmax(280px, 420px) minmax(0, 1fr);
}

.admin-subsection {
    border-top: 1px solid #202733;
    display: grid;
    gap: .75rem;
    padding-top: 1rem;
}

.admin-confirmation-alert {
    display: grid;
    gap: .35rem;
}

.admin-confirmation-alert a {
    color: var(--ln-text);
    font-weight: 950;
}

.admin-floating-status {
    background: #15191f;
    border: 1px solid #282e38;
    border-radius: 999px;
    color: var(--ln-text);
    font-weight: 850;
    justify-self: start;
    margin: 0;
    padding: .75rem 1rem;
}

.admin-confirm-action {
    color: #05070a;
    display: inline-flex;
    text-decoration: none;
}

.admin-error-list {
    display: grid;
    gap: .75rem;
}

.admin-error-item {
    background: #15191f;
    border: 1px solid #282e38;
    border-radius: 16px;
    display: grid;
    gap: .35rem;
    padding: .9rem;
}

.admin-error-item span {
    color: #8f97a3;
    font-size: .78rem;
    font-weight: 800;
}

.admin-error-item strong {
    color: var(--ln-text);
    overflow-wrap: anywhere;
}

.admin-error-item p {
    overflow-wrap: anywhere;
}

.auth-submit:disabled,
.secondary-action:disabled,
.workout-action-button:disabled,
.template-button:disabled {
    cursor: not-allowed;
    opacity: .55;
}

@media (max-width: 900px) {
    .billing-page,
    .admin-billing-page {
        max-width: 100%;
        overflow-x: clip;
    }

    .billing-header,
    .admin-billing-layout,
    .admin-management-layout,
    .admin-health-grid,
    .admin-dashboard-workspace,
    .admin-user-search,
    .admin-table-row,
    .admin-compact-row,
    .no-charge-item {
        grid-template-columns: 1fr;
    }

    .admin-status-grid,
    .workout-history-filters {
        grid-template-columns: 1fr;
    }

    .admin-dashboard-header {
        align-items: stretch;
    }

    .admin-status-rail {
        position: static;
    }

    .admin-panel-stage {
        max-height: none;
        min-height: 0;
        overflow: visible;
    }

    .billing-action,
    .billing-header .secondary-action,
    .no-charge-item .secondary-action {
        max-width: none;
        width: 100%;
    }

    .admin-badge-row,
    .admin-billing-meta {
        align-items: start;
        min-width: 0;
    }
}
