the-subscription {
    width: calc(100% - 2rem);
    max-width: 60rem;
    align-self: center;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: stretch;
    overflow: hidden;

    padding: 1rem;
    gap: 1rem;
    border: 1px solid rgba(var(--primary-rgb), .5);
    background: rgba(0, 0, 0, .75);
    border-radius: .25rem;
    position: relative;
    /* backdrop-filter: blur(1rem); */
    box-shadow: 0px .25rem 1rem 0 rgb(0 0 0 / 50%), inset 0 0 2rem 0 rgba(var(--primary-rgb), calc(var(--glow-intensity) / 3));
}

the-subscription div.divider {
    flex: 0 0 1px;
    background-color: rgba(var(--primary-rgb), .25);
    align-self: stretch;
}

the-subscription h2 {
    color: var(--primary-color);
    margin: 0;
    padding: 0;
    font-size: 1.25rem;
}

the-subscription p {
    margin: 0;
    padding: 0;
    color: var(--secondary-color);
    font-size: .9rem;
    margin-bottom: .5rem;
}

the-subscription p a {
    color: var(--secondary-color);
    font-weight: 600;
    border: none;
    background: none;
    text-decoration: none;
    box-shadow: none;
    text-shadow: none;
    padding: 0;
}


the-subscription .plans-container {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
    justify-content: center;
    gap: 1rem;
}


the-subscription .plans-container .plan {
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
    gap: 1rem;
}
the-subscription .plans-container .plan.active {
}

the-subscription .plans-container .plan ul.features {
    margin: 0;
    list-style-type: '✓';
    padding-left: 1rem;
}

the-subscription .plans-container .plan ul.prices {
    margin: 0;
    list-style-type: '';
    padding-left: 1rem;
}

the-subscription .plans-container .plan .currPaymentStatuses {
    margin: 0;
    font-size: .8rem;
}

the-subscription .plans-container .plan ul.prices:empty {
    display: none;
}

the-subscription .plans-container .plan ul li {
    margin: 0;
    padding: 0;
    font-style: italic;
    font-size: .8rem;
    padding-left: .5rem;
}

the-subscription .plans-container .plan ul.features li {
    color: var(--input-color);
}
the-subscription .plans-container .plan ul.prices li {
    color: var(--secondary-color);
}
the-subscription .plans-container .plan ul li::marker {
    color: var(--secondary-color);
}

the-subscription a, the-subscription button {
    border: 1px solid var(--primary-color);
    color: var(--primary-color);
    background: #000000;
    border-radius: .25rem;
    padding: .25rem .5rem;
    outline: none;
    cursor: pointer;
    font-weight: 600;
    box-shadow: 0 .25rem .5rem 0 rgba(var(--primary-rgb), calc(1 / 4));
    text-decoration: none;
    text-shadow: 0 .25rem .75rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 1.5));
    font-size: 1rem;
    /* Removed large commented block */
}

the-subscription button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
    pointer-events: none;
    box-shadow: none;
    text-shadow: none;
}

the-subscription .buttons {
    flex: 0 0 auto;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    gap: 1rem;
    margin-top: auto;
    /* border-top: 1px solid rgba(var(--primary-rgb), .25);
    padding-top: 1rem; */
}

.redeem-gift-card-input {
    padding: 0.5rem;
    border: 1px solid var(--primary-color);
    border-radius: .25rem;
    width: 40%; /* Full width input */
    font-size: 1rem;
}

/* --- Base Subscription Button Styles --- */
.subscription-button-cancel {
    border: none;
    background: rgba(0, 0, 0, 0);
    outline: none;
    cursor: pointer;
    font-weight: 400;
    color: var(--secondary-color);
    text-transform: uppercase;
    text-shadow: 0 .5rem 1.5rem rgba(var(--secondary-rgb), calc(var(--glow-intensity) / 5));
    /* Note: padding/font-size not defined here, inherited or specific */
}

.subscription-button-redeem {
    background: rgba(0, 0, 0, 0);
    outline: none;
    cursor: pointer;
    font-weight: 800;
    color: var(--primary-color);
    border: 1px solid var(--primary-color);
    border-radius: .25rem;
    text-shadow: 0 .5rem 1.5rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 5));
    box-shadow: 0 .5rem 1.5rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 5));
    padding: .30rem .75rem; /* Specific padding */
    text-transform: uppercase;
    font-size: 1rem;
}
/* --- End Base Subscription Button Styles --- */


the-subscription .buttons button.cancel {
    /* Apply base style */
    composes: subscription-button-cancel; /* Note: 'composes' is illustrative */
    border: none;
    background: rgba(0, 0, 0, 0);
    outline: none;
    cursor: pointer;
    font-weight: 400;
    color: var(--secondary-color);
    text-transform: uppercase;
    text-shadow: 0 .5rem 1.5rem rgba(var(--secondary-rgb), calc(var(--glow-intensity) / 5));
}
the-subscription .buttons button.redeem {
     /* Apply base style */
    composes: subscription-button-redeem; /* Note: 'composes' is illustrative */
    background: rgba(0, 0, 0, 0);
    outline: none;
    cursor: pointer;
    font-weight: 800;
    color: var(--primary-color);
    border: 1px solid var(--primary-color);
    border-radius: .25rem;
    text-shadow: 0 .5rem 1.5rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 5));
    box-shadow: 0 .5rem 1.5rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 5));
    padding: .30rem .75rem;
    text-transform: uppercase;
    font-size: 1rem;
}

the-subscription .payment-error {
    padding: .75rem 1rem;
    border: 1px solid #ff4444;
    border-radius: .25rem;
    background: rgba(255, 68, 68, .1);
}

the-subscription .payment-error p {
    margin: 0;
    color: #ff4444;
    font-size: .95rem;
}

the-subscription .trial-banner {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    padding: .75rem 1rem;
    border: 1px solid rgba(var(--primary-rgb), .3);
    border-radius: .25rem;
    background: rgba(var(--primary-rgb), .05);
}

the-subscription .trial-banner p {
    margin: 0;
    font-size: .95rem;
    color: var(--input-color);
}

the-subscription .trial-banner .trial-btn {
    white-space: nowrap;
    font-size: .9rem;
    padding: .4rem .75rem;
}

the-subscription .max-tier-msg {
    color: var(--primary-color);
    font-weight: 600;
    font-size: .95rem;
    text-align: center;
    padding: .5rem;
}

the-subscription .upgrade-contact-msg {
    font-size: .9rem;
    text-align: center;
    padding: .5rem;
}

the-subscription .upgrade-cancelled-msg {
    color: #e8a838;
    font-size: .9rem;
    text-align: center;
    padding: .5rem;
}

the-subscription .current-higher-msg {
    color: var(--secondary-color);
    font-size: .85rem;
    font-style: italic;
    text-align: center;
    padding: .5rem;
}

/* === Buy Generation Time === */

the-subscription .gpu-time-section {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

the-subscription .gpu-time-header {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    flex-wrap: wrap;
}

the-subscription .gpu-time-section h2 {
    margin: 0;
    padding: 0;
}

the-subscription .gpu-time-icon {
    display: inline-block;
    margin-right: .25rem;
    color: var(--primary-color);
}

/* Balance chip in the section header */
the-subscription .gpu-time-balance-chip {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .25rem .65rem;
    border: 1px solid rgba(var(--primary-rgb), .3);
    border-radius: 999px;
    background: rgba(var(--primary-rgb), .05);
    font-size: .8rem;
    color: var(--secondary-color);
}

the-subscription .gpu-time-balance-chip .balance-chip-icon {
    color: var(--secondary-color);
}

the-subscription .gpu-time-balance-chip .balance-chip-value {
    color: var(--input-color);
    font-weight: 600;
}

the-subscription .gpu-time-balance-chip.has-balance {
    border-color: rgba(var(--primary-rgb), .7);
    background: rgba(var(--primary-rgb), .15);
    box-shadow: 0 .25rem .75rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 4));
}

the-subscription .gpu-time-balance-chip.has-balance .balance-chip-icon,
the-subscription .gpu-time-balance-chip.has-balance .balance-chip-value {
    color: var(--primary-color);
}

/* Package grid */
the-subscription .gpu-time-packages {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
    gap: .75rem;
}

/* Individual package card */
the-subscription .gpu-time-package {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 1.5rem 1rem 1.25rem;
    border: 1px solid rgba(var(--primary-rgb), .25);
    border-radius: .5rem;
    background: rgba(0, 0, 0, .35);
}

the-subscription .gpu-time-package:hover {
    border-color: rgba(var(--primary-rgb), .6);
}

the-subscription .gpu-time-package.featured {
    border-color: var(--primary-color);
    background: linear-gradient(180deg, rgba(0, 0, 0, .35) 0%, rgba(var(--primary-rgb), .12) 100%);
    box-shadow: 0 0 0 1px rgba(var(--primary-rgb), .25),
                0 .5rem 1.5rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 3));
}

the-subscription .gpu-time-package-badge {
    position: absolute;
    top: -.65rem;
    left: 50%;
    transform: translateX(-50%);
    padding: .15rem .65rem;
    background: #22c55e;
    color: #fff;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-radius: 999px;
    white-space: nowrap;
    box-shadow: 0 .25rem .5rem rgba(34, 197, 94, .35);
}

the-subscription .gpu-time-package-hours {
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}

the-subscription .gpu-time-package-hours .hours-value {
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--input-color);
    letter-spacing: -.02em;
    text-shadow: 0 .25rem .75rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 4));
}

the-subscription .gpu-time-package-hours .hours-label {
    font-size: .7rem;
    color: var(--secondary-color);
    text-transform: uppercase;
    letter-spacing: .1em;
    margin-top: .25rem;
}

the-subscription .gpu-time-package-divider {
    width: 2rem;
    height: 1px;
    background: rgba(var(--primary-rgb), .25);
    margin: .85rem 0 .75rem;
}

the-subscription .gpu-time-package-price {
    color: var(--primary-color);
    line-height: 1;
    display: flex;
    align-items: baseline;
    gap: 1px;
}

the-subscription .gpu-time-package-price .price-currency {
    font-size: 1rem;
    font-weight: 600;
    color: var(--secondary-color);
}

the-subscription .gpu-time-package-price .price-value {
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: -.02em;
    text-shadow: 0 .25rem .75rem rgba(var(--primary-rgb), calc(var(--glow-intensity) / 3));
}

the-subscription .gpu-time-package-meta {
    font-size: .75rem;
    color: var(--secondary-color);
    margin-top: .35rem;
    margin-bottom: 1rem;
    font-style: italic;
}

the-subscription .buy-gpu-time-btn {
    /* Inherits base styles from `the-subscription button` */
    width: 100%;
    white-space: nowrap;
    font-size: .85rem;
}

the-subscription .gpu-time-empty {
    grid-column: 1 / -1;
    color: var(--secondary-color);
    font-style: italic;
    text-align: center;
    padding: .5rem;
}

/* Locked / free-tier state */
the-subscription .gpu-time-locked {
    /* Just subtler styling — no big visual change needed */
}

the-subscription .gpu-time-lock-state {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: .85rem;
    padding: .85rem 1rem;
    border: 1px solid rgba(var(--primary-rgb), .2);
    border-radius: .5rem;
    background: rgba(var(--primary-rgb), .05);
}

the-subscription .gpu-time-lock-icon {
    flex-shrink: 0;
    width: 2.25rem;
    height: 2.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--primary-rgb), .1);
    color: var(--primary-color);
    border-radius: 50%;
    font-size: 1rem;
}

the-subscription .gpu-time-lock-state p {
    margin: 0;
    color: var(--secondary-color);
    font-size: .85rem;
}

the-subscription .gpu-time-lock-state strong {
    color: var(--input-color);
}

/*********** MEDIA QUERIES START HERE ***********/
@media only screen and (max-width: 720px) {

    the-subscription {
        width: calc(100% - 1rem);
        padding: .5rem;
        gap: .5rem;
    }

    the-subscription .plans-container {
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: .5rem;
    }

    the-subscription .plans-container .plan {
        gap: .5rem;
    }

    the-subscription .trial-banner {
        flex-direction: column;
        text-align: center;
        gap: .5rem;
    }

    the-subscription .gift-cards {
        gap: .5rem;
    }

    the-subscription .gpu-time-header {
        flex-direction: column;
        align-items: flex-start;
        gap: .5rem;
    }

    the-subscription .gpu-time-packages {
        grid-template-columns: 1fr;
    }

    the-subscription .gpu-time-package-hours .hours-value {
        font-size: 2.25rem;
    }

    the-subscription .gpu-time-package-price .price-value {
        font-size: 1.75rem;
    }

    .redeem-gift-card-input {
        width: 100%;
    }

    the-subscription a, the-subscription button {
        align-self: center;
        width: 22rem;
        max-width: calc(100% - 1rem);
    }

}
/*********** MEDIA QUERIES END HERE ***********/

/* Promo code section */
the-subscription .promo-code-section {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: .75rem 1rem;
    border: 1px solid rgba(var(--primary-rgb), .35);
    border-radius: .25rem;
    background: rgba(0, 0, 0, .3);
}

the-subscription .promo-code-label {
    color: var(--secondary-color);
    font-size: .8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05rem;
}

the-subscription .promo-code-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .5rem;
    align-items: center;
}

the-subscription .promo-code-input {
    flex: 1 1 12rem;
    max-width: 18rem;
    padding: .5rem .75rem;
    font-size: .9rem;
    font-family: inherit;
    color: var(--primary-color);
    background: rgba(0, 0, 0, .5);
    border: 1px solid rgba(var(--primary-rgb), .4);
    border-radius: .2rem;
    outline: none;
}

the-subscription .promo-code-input:focus {
    border-color: var(--primary-color);
}

the-subscription .promo-apply-btn,
the-subscription .promo-clear-btn {
    width: auto;
    align-self: auto;
    padding: .5rem 1rem;
}

the-subscription .promo-code-feedback {
    font-size: .85rem;
    color: var(--secondary-color);
    min-height: 1rem;
}

the-subscription .promo-code-feedback.success {
    color: #6bd970;
}

the-subscription .promo-code-feedback.error {
    color: #ff7a6b;
}

/* Discount price visuals */
the-subscription .price-orig {
    color: var(--secondary-color);
    margin-right: .3rem;
    opacity: .7;
}

the-subscription .price-orig s {
    color: inherit;
}

the-subscription .price-discounted {
    color: #6bd970;
    font-weight: 600;
}

the-subscription .promo-applied-badge {
    display: inline-block;
    margin-left: .5rem;
    padding: .15rem .5rem;
    font-size: .7rem;
    font-weight: 600;
    color: #6bd970;
    border: 1px solid rgba(107, 217, 112, .4);
    background: rgba(107, 217, 112, .12);
    border-radius: .2rem;
    letter-spacing: .02rem;
    vertical-align: middle;
}
