/* First-zone launch panel on the campaign details page.
 *
 * The server renders the shell; the panel script keeps the actions and the
 * one "preparing" spinner live from the bootstrapped status JSON and every
 * poll. Small, theme-consistent rules only — no inline styles. */

/* The description gives way; the actions keep their own width inside the card. */
.campaign-game-launch > div:first-child {
    flex: 1 1 0;
    min-width: 0;
}

.campaign-launch-actions {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 0.75rem;
    max-width: 100%;
}

/* A button never leaves the card: long labels wrap inside it. */
.campaign-launch-actions .btn {
    max-width: 100%;
    white-space: normal;
}

.campaign-launch-actions form {
    max-width: 100%;
}

.campaign-launch-preparing {
    align-items: center;
    color: #ded0b7;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    text-align: center;
}

.campaign-launch-preparing[hidden] {
    display: none;
}
