/* Phase 10: extracted from user_reactivate.html. */
.reactivate-shell {
        width: 100%;
        max-width: 1040px;
        margin: 0 auto;
    }
    .reactivate-hero {
        position: relative;
        overflow: hidden;
        display: grid;
        grid-template-columns: minmax(0, 1.15fr) minmax(290px, .85fr);
        border: 1px solid var(--border-strong);
        border-radius: 26px;
        background:
            radial-gradient(circle at 10% 5%, rgba(34, 211, 238, .17), transparent 34%),
            radial-gradient(circle at 92% 88%, rgba(124, 58, 237, .20), transparent 36%),
            var(--card);
        box-shadow: var(--card-shadow);
    }
    .reactivate-copy {
        position: relative;
        z-index: 1;
        padding: clamp(28px, 5vw, 54px);
    }
    .eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin-bottom: 15px;
        color: var(--primary);
        font-size: .76rem;
        font-weight: 850;
        letter-spacing: .13em;
        text-transform: uppercase;
    }
    .reactivate-copy h1 {
        max-width: 600px;
        margin: 0 0 14px;
        color: var(--text);
        font-size: clamp(2rem, 5vw, 3.65rem);
        line-height: 1.02;
        letter-spacing: -.035em;
    }
    .reactivate-copy > p {
        max-width: 610px;
        margin: 0 0 30px;
        color: var(--text-muted);
        font-size: 1rem;
        line-height: 1.7;
    }
    .reactivate-card {
        position: relative;
        z-index: 1;
        align-self: center;
        margin: 26px 26px 26px 0;
        padding: 26px;
        border: 1px solid var(--border-strong);
        border-radius: 20px;
        background: rgba(255, 255, 255, .055);
        backdrop-filter: blur(18px);
    }
    .reactivate-card h2 {
        margin: 0 0 7px;
        color: var(--text);
        font-size: 1.2rem;
    }
    .card-intro {
        margin: 0 0 22px;
        color: var(--text-muted);
        font-size: .85rem;
        line-height: 1.5;
    }
    .steps {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 10px;
        margin-top: 28px;
    }
    .step {
        padding: 15px;
        border: 1px solid var(--border);
        border-radius: 15px;
        background: var(--surface-muted);
    }
    .step strong {
        display: block;
        margin-bottom: 5px;
        color: var(--text);
        font-size: .82rem;
    }
    .step span {
        color: var(--text-muted);
        font-size: .73rem;
        line-height: 1.4;
    }
    .step-number {
        display: grid;
        width: 27px;
        height: 27px;
        margin-bottom: 10px;
        place-items: center;
        border-radius: 9px;
        background: rgba(34, 211, 238, .11);
        color: var(--primary);
        font-size: .75rem;
        font-weight: 900;
    }
    .field label {
        display: block;
        margin-bottom: 8px;
        color: var(--text);
        font-size: .8rem;
        font-weight: 800;
    }
    .field input {
        width: 100%;
        min-height: 48px;
        padding: 12px 14px;
        border: 1px solid var(--border);
        border-radius: 12px;
        outline: none;
        background: var(--surface-muted);
        color: var(--text);
        font: inherit;
        transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
    }
    .field input:focus {
        border-color: var(--primary);
        background: var(--card);
        box-shadow: 0 0 0 3px rgba(34, 211, 238, .12);
    }
    .reactivate-button,
    .invite-button {
        display: inline-flex;
        width: 100%;
        min-height: 49px;
        align-items: center;
        justify-content: center;
        margin-top: 16px;
        padding: 0 18px;
        border: 0;
        border-radius: 13px;
        background: linear-gradient(135deg, var(--primary), #7c3aed);
        color: #fff;
        box-shadow: 0 11px 28px rgba(124, 58, 237, .22);
        cursor: pointer;
        font: inherit;
        font-weight: 850;
        text-decoration: none;
        transition: transform .18s ease, filter .18s ease;
    }
    .reactivate-button:hover,
    .invite-button:hover { transform: translateY(-2px); filter: brightness(1.06); }
    .rules {
        display: grid;
        gap: 8px;
        margin-top: 18px;
    }
    .rule {
        display: flex;
        gap: 9px;
        align-items: center;
        color: var(--text-muted);
        font-size: .74rem;
    }
    .rule-dot {
        width: 7px;
        height: 7px;
        flex: 0 0 7px;
        border-radius: 50%;
        background: var(--primary);
        box-shadow: 0 0 0 4px rgba(34, 211, 238, .09);
    }
    .state-box {
        padding: 20px;
        border: 1px solid var(--border);
        border-radius: 16px;
        background: var(--surface-muted);
    }
    .state-icon {
        display: grid;
        width: 46px;
        height: 46px;
        margin-bottom: 15px;
        place-items: center;
        border-radius: 14px;
        font-size: 1.35rem;
    }
    .state-box h3 { margin: 0 0 8px; color: var(--text); font-size: 1.08rem; }
    .state-box p { margin: 0; color: var(--text-muted); font-size: .84rem; line-height: 1.55; }
    .state-success { border-color: rgba(16, 185, 129, .28); }
    .state-success .state-icon { background: rgba(16, 185, 129, .12); color: var(--success); }
    .state-cooldown { border-color: rgba(245, 158, 11, .28); }
    .state-cooldown .state-icon { background: rgba(245, 158, 11, .12); color: var(--warning); }
    .invite-url {
        margin-top: 13px;
        padding: 10px;
        border: 1px solid var(--border);
        border-radius: 10px;
        color: var(--text-muted);
        font-size: .68rem;
        line-height: 1.4;
        overflow-wrap: anywhere;
    }
    .login-back {
        display: block;
        margin-top: 20px;
        color: var(--text-muted);
        font-size: .78rem;
        font-weight: 700;
        text-align: center;
        text-decoration: none;
    }
    .login-back:hover { color: var(--primary); }
    @media (max-width: 820px) {
        .reactivate-hero { grid-template-columns: 1fr; }
        .reactivate-card { margin: 0 22px 22px; }
    }
    @media (max-width: 560px) {
        .reactivate-hero { border-radius: 20px; }
        .reactivate-copy { padding: 28px 22px 22px; }
        .reactivate-card { margin: 0 14px 14px; padding: 20px; }
        .steps { grid-template-columns: 1fr; }
    }
