.training-container {
    min-height: 100vh;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 20px;

    background: radial-gradient(circle at top, #1e1e2f, #0d0d14);

    font-family: "Inter", sans-serif;
}

/* =========================
   CARD
========================= */

.training-card {
    background: #151520;

    padding: 32px 40px;

    border-radius: 16px;

    width: 100%;
    max-width: 380px;

    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);

    text-align: center;
}

/* =========================
   TITLES
========================= */

.training-title {
    color: #fff;

    font-size: 1.5rem;

    margin-bottom: 8px;

    line-height: 1.3;
}

.training-subtitle {
    color: #94a3b8;

    font-size: 0.95rem;

    margin-bottom: 20px;

    line-height: 1.5;
}

.section-title {
    margin-bottom: 16px;

    font-weight: 700;

    color: #ffffff;

    line-height: 1.4;
}

/* =========================
   BUTTON GROUP
========================= */

.button-group {
    display: flex;
    gap: 12px;

    justify-content: center;

    margin-bottom: 16px;

    width: 100%;
}

/* =========================
   BUTTONS
========================= */

.color-btn,
.opponent-btn {
    flex: 1;

    padding: 12px 14px;

    border-radius: 10px;

    border: none;

    cursor: pointer;

    font-weight: 600;

    transition: all 0.2s ease;

    min-height: 48px;

    font-size: 14px;
}

.color-btn {
    background: #2b2b3c;
    color: #fff;
}

.color-btn:hover {
    background: #3b3b52;
}

.color-btn.selected {
    outline: 2px solid #818cf8;

    box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.18);
}

/* =========================
   OPPONENT LEVELS
========================= */

.opponent-btn.easy {
    background: #2e7d32;
    color: #fff;
}

.opponent-btn.medium {
    background: #f9a825;
    color: #000;
}

.opponent-btn.hard {
    background: #c62828;
    color: #fff;
}

.opponent-btn:hover {
    transform: translateY(-2px);
    filter: brightness(1.1);
}

/* =========================
   TEXTS
========================= */

.hint-text {
    color: #aaa;

    font-size: 14px;

    margin-top: 8px;

    line-height: 1.5;
}

.error-message {
    color: #ff4d4f;

    text-align: center;

    margin-top: 40px;

    padding: 0 10px;
}

/* =========================
   TABLET
========================= */

@media (max-width: 768px) {

    .training-container {
        padding: 16px;
    }

    .training-card {
        padding: 28px 24px;
    }

    .training-title {
        font-size: 1.35rem;
    }

    .training-subtitle {
        font-size: 0.9rem;
    }

    .button-group {
        gap: 10px;
    }
}

/* =========================
   MOBILE
========================= */

@media (max-width: 520px) {

    .training-container {
        padding: 12px;
        align-items: flex-start;
    }

    .training-card {
        margin-top: 20px;

        padding: 22px 18px;

        border-radius: 14px;
    }

    .training-title {
        font-size: 1.2rem;
    }

    .training-subtitle {
        font-size: 0.85rem;
        margin-bottom: 18px;
    }

    .section-title {
        font-size: 15px;
    }

    .button-group {
        flex-direction: column;
        gap: 10px;
    }

    .color-btn,
    .opponent-btn {
        width: 100%;

        font-size: 14px;

        padding: 13px;
    }

    .hint-text {
        font-size: 13px;
    }
}

/* =========================
   SMALL DEVICES
========================= */

@media (max-width: 360px) {

    .training-card {
        padding: 18px 14px;
    }

    .training-title {
        font-size: 1.05rem;
    }

    .training-subtitle {
        font-size: 0.8rem;
    }

    .color-btn,
    .opponent-btn {
        font-size: 13px;
        padding: 12px;
    }
}