/* =============================================================================
   МОДАЛЬНЫЕ ОКНА
   =============================================================================
   Централизованные стили для всех модальных окон приложения.
   Использует дизайн-токены из tokens.css
   ============================================================================= */

/* =========================================================================
   БАЗОВЫЙ КЛАСС МОДАЛЬНОГО ОКНА
   ========================================================================= */

.win-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--color-overlay);
    backdrop-filter: blur(var(--blur-lg));
    -webkit-backdrop-filter: blur(var(--blur-lg));
    z-index: 1000;
    opacity: 0;
    transition: opacity var(--transition-normal);
    pointer-events: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--space-5);
    box-sizing: border-box;
    overflow-y: auto;
}

.win-modal.show {
    display: flex;
    opacity: 1;
    pointer-events: auto;
    overflow-y: auto;
    animation: modal-appear 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

/* =========================================================================
   КОНТЕНТ МОДАЛЬНОГО ОКНА
   ========================================================================= */

.modal-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 340px;
    margin: auto;
    padding-bottom: var(--space-5);
    transform-origin: center center;
}

.win-modal-content {
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* =========================================================================
   ЗАГОЛОВКИ МОДАЛЬНЫХ ОКОН
   ========================================================================= */

.win-modal h2 {
    margin-bottom: var(--space-2);
    text-align: center;
    color: var(--color-text);
    font-size: var(--text-xl);
    max-width: 340px;
    width: 100%;
    font-weight: var(--weight-semibold);
}

/* =========================================================================
   ОТОБРАЖЕНИЕ ПОДАРКА В МОДАЛЬНОМ ОКНЕ
   ========================================================================= */

.won-gift {
    margin: var(--space-3) auto;
    width: 180px;
    height: 180px;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
}

.gift-emoji {
    font-size: 90px;
    text-align: center;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.gift-name {
    font-size: var(--text-lg);
    color: var(--color-text);
    margin-bottom: var(--space-8);
    font-weight: var(--weight-medium);
    text-align: center;
    max-width: 340px;
    width: 100%;
}

/* =========================================================================
   КНОПКИ ДЕЙСТВИЙ В МОДАЛЬНЫХ ОКНАХ
   ========================================================================= */

.win-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
    max-width: 340px;
    width: 100%;
    margin-top: 0;
}

.action-button {
    background: var(--gradient-button);
    color: #FFFFFF;
    border: none;
    border-radius: var(--radius-full);
    padding: var(--space-4) var(--space-6);
    font-size: var(--text-md);
    font-weight: var(--weight-medium);
    cursor: pointer;
    transition: all var(--transition-fast);
    width: 100%;
    pointer-events: auto;
    height: calc(16px + 16px + 17px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.action-button:active {
    opacity: 0.8;
    transform: scale(0.98);
}

.action-button[disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Стили для кнопок получения/профиля с градиентной обводкой */
#receiveGift, #keepGift,
#receiveModalGift, #shareModalGift, #sendGift {
    border: 1px solid transparent !important;
    background: 
        linear-gradient(var(--color-surface-secondary), var(--color-surface-secondary)) padding-box,
        linear-gradient(to bottom left, var(--border-gradient-start), var(--border-gradient-end)) border-box !important;
    color: var(--color-text) !important;
}

#receiveGift:active, #keepGift:active,
#receiveModalGift:active, #shareModalGift:active, #sendGift:active {
    background: var(--color-surface);
}

/* Стили для кнопки продажи */
#sellGift, #sellModalGift {
    height: calc(2 * (16px + 16px + 17px));
    grid-column: 1 / -1;
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 0;
    background: var(--gradient-button);
}

/* Контент внутри кнопки продажи */
.sell-button-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 100%;
}

.sell-button-main {
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
    display: flex;
    align-items: center;
    justify-content: center;
}

.sell-button-sub {
    font-size: var(--text-base);
    font-weight: var(--weight-normal);
    opacity: 0.85;
    margin-top: 3px;
}

/* Стили для двух кнопок (crystals подарки) */
.win-actions.two-buttons {
    grid-template-columns: 1fr;
}

.win-actions.two-buttons .action-button {
    grid-column: 1 / -1;
    font-size: var(--text-lg);
    font-weight: var(--weight-semibold);
}

/* =========================================================================
   КНОПКА ЗАКРЫТИЯ
   ========================================================================= */

.close-button {
    position: absolute;
    top: calc(var(--space-4) + var(--tg-safe-area-inset-top, 0px) + var(--tg-content-safe-area-inset-top, 0px));
    right: var(--space-4);
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-1);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}

.close-icon {
    width: 24px;
    height: 24px;
    fill: var(--color-text);
    transform: rotate(45deg);
    transition: transform var(--transition-fast);
}

.close-button:hover .close-icon {
    transform: rotate(45deg) scale(1.1);
}

/* Белый цвет иконки для тёмного модального окна пополнения */
#topUpModal .close-icon {
    fill: white;
}

/* =========================================================================
   СООБЩЕНИЯ В МОДАЛЬНЫХ ОКНАХ
   ========================================================================= */

.gift-unavailable-message {
    color: var(--color-error);
    font-size: var(--text-md);
    margin: var(--space-4) 0;
    text-align: center;
    font-weight: var(--weight-bold);
    max-width: 340px;
    width: 100%;
}

.gift-exclusive-message,
.exclusive-gift-message {
    color: var(--color-text);
    font-size: var(--text-md);
    margin: var(--space-4) 0 var(--space-6);
    text-align: center;
    font-weight: var(--weight-bold);
    max-width: 340px;
    width: 100%;
}

.modal-exclusive-message {
    margin-bottom: var(--space-4);
}

.modal-gift-name-hidden {
    display: none;
}

/* =========================================================================
   НАЗВАНИЕ ПОДАРКА СВЕРХУ (новый дизайн)
   ========================================================================= */

.gift-name-top {
    font-size: var(--text-lg);
    color: var(--color-text);
    font-weight: var(--weight-medium);
    text-align: center;
    max-width: 340px;
    width: 100%;
    margin-bottom: 0;
}

/* =========================================================================
   ЦЕНОВАЯ ПЛАШКА ПОД АНИМАЦИЕЙ (использует .gift-price-tag из style.css)
   ========================================================================= */

.win-modal .gift-price-tag {
    margin: 0 auto var(--space-3);
}

/* =========================================================================
   СЕТКА КНОПОК 2x2 (новый дизайн)
   ========================================================================= */

.win-actions-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: var(--space-2) !important;
    max-width: 340px;
    width: 100%;
    margin-top: var(--space-2);
}

.win-actions-grid .action-button {
    grid-column: auto !important;
    height: auto !important;
    min-height: 52px;
}

/* Базовый стиль для кнопок действий в новом дизайне */
.win-action-btn {
    position: relative;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: var(--space-2);
    padding: var(--space-3) var(--space-4) !important;
    border: 1px solid transparent !important;
    background: 
        linear-gradient(var(--color-surface-secondary), var(--color-surface-secondary)) padding-box,
        linear-gradient(to bottom left, var(--border-gradient-start), var(--border-gradient-end)) border-box !important;
    color: var(--color-text) !important;
    border-radius: var(--radius-full) !important;
    font-size: var(--text-md) !important;
    font-weight: var(--weight-medium) !important;
    transition: all var(--transition-fast);
}

.win-action-btn:active {
    opacity: 0.8;
    transform: scale(0.98);
}

/* Неактивная кнопка (Поделиться, Получить для exclusive/crystals) */
.win-action-btn--disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    pointer-events: auto !important;
}

.win-action-btn--disabled:active {
    transform: none;
}

/* Кнопка Продать с градиентом (без обводки) */
.win-action-btn--sell {
    border: none !important;
    background: var(--gradient-button) !important;
    color: #FFFFFF !important;
    padding: var(--space-4) var(--space-6) !important;
}

/* Иконки в кнопках - унифицированный размер */
.win-action-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

/* Светлая тема - иконки серые как текст (#353a45) */
[data-theme="light"] .win-action-btn .win-action-icon {
    /* Трансформируем белый (#FFFFFF) в серый (#353a45) - примерно 20.8% яркости */
    filter: brightness(0.208);
}

/* Тёмная тема - иконки белые как текст */
[data-theme="dark"] .win-action-btn .win-action-icon {
    /* Иконки уже белые, не нужен фильтр */
    filter: none;
}

/* Кнопка Продать - иконка всегда белая (независимо от темы) */
.win-action-btn--sell .win-action-icon {
    filter: none !important;
}

/* Текст в кнопках - унифицированный размер */
.win-action-btn > span {
    font-size: var(--text-md);
    font-weight: var(--weight-medium);
}

/* Тег с наградой (badge) в правом верхнем углу кнопки */
.win-action-badge {
    position: absolute;
    top: -2px;
    right: 4px;
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 2px 6px;
    background: var(--gradient-button);
    border-radius: var(--radius-full);
    font-size: var(--text-xs);
    font-weight: var(--weight-semibold);
    color: #FFFFFF;
    box-shadow: var(--shadow-sm);
}

/* Иконка в badge - используем оригинальные цвета без фильтров (как в кнопке Продать) */
.win-action-badge .win-action-icon {
    filter: none !important;
    width: 10px;
    height: 10px;
}

/* =========================================================================
   КОНТЕЙНЕР ВОПРОСА
   ========================================================================= */

.question-container {
    width: 100%;
    max-width: 340px;
    margin-bottom: var(--space-2);
    text-align: center;
}

.question-text {
    font-size: var(--text-md);
    color: var(--color-text);
    transition: opacity var(--transition-normal);
}

/* =========================================================================
   ОПЦИИ ОТПРАВКИ
   ========================================================================= */

.send-options-container {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(0);
    transition: max-height 0.4s cubic-bezier(0.215, 0.61, 0.355, 1),
                opacity 0.4s cubic-bezier(0.215, 0.61, 0.355, 1);
    z-index: 2;
}

.send-options-container.show {
    max-height: 150px;
    opacity: 1;
}

.send-button-container {
    position: relative;
    grid-column: 1 / -1;
    height: calc(16px + 16px + 17px);
}

#sendGift {
    position: absolute;
    width: 100%;
    top: 0;
    left: 0;
    opacity: 1;
    transition: opacity var(--transition-normal);
}

#sendGift.hidden {
    opacity: 0;
    pointer-events: none;
}

.send-options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
    width: 100%;
}

/* Конфети внутри модальных окон */
.win-modal .confetti-container {
    border-radius: var(--radius-l);
}

/* =========================================================================
   СПЕЦИФИЧНЫЕ МОДАЛЬНЫЕ ОКНА
   ========================================================================= */

/* Модальное окно выигрыша */
#winModal, #demoWinModal, #giftModal {
    justify-content: center;
    background: var(--color-overlay);
}

#winModal .win-actions, #demoWinModal .win-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
    max-width: 340px;
    width: 100%;
    margin-top: var(--space-2);
}

/* Демо модальное окно */
#demoWinModal .win-actions {
    grid-template-columns: 1fr !important;
}

#demoWinModal .action-button {
    font-weight: var(--weight-medium) !important;
}

/* Модальное окно пополнения */
#topUpModal {
    justify-content: flex-start;
    overflow-y: auto;
}

#topUpModal .modal-content {
    margin-top: var(--space-3);
    margin-bottom: var(--space-3);
}

#topUpModal h2 {
    font-size: var(--text-xl);
    font-weight: var(--weight-semibold);
    margin-bottom: var(--space-1);
    margin-top: var(--space-3);
    text-align: center;
}

#topUpModal p {
    color: var(--color-text);
    opacity: 0.8;
    max-width: 280px;
    margin: 0 auto var(--space-4);
    font-size: var(--text-md);
    text-align: center;
}

/* Контейнер подарка в модальном окне */
#giftModalGift,
#modalGift {
    width: 150px;
    height: 150px;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: var(--space-5) auto;
}

.won-gift, #modalGift {
    overflow: visible;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 150px;
    height: 150px;
    margin: var(--space-5) auto;
}

/* =========================================================================
   ДИАЛОГ ПОДТВЕРЖДЕНИЯ
   ========================================================================= */

.confirmation-dialog {
    max-width: 300px;
    text-align: center;
    padding: var(--space-5);
    background: var(--color-surface);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-lg);
}

.confirmation-message {
    margin: var(--space-4) 0;
    font-size: var(--text-md);
    line-height: 1.4;
    white-space: pre-line;
    color: var(--color-text);
}

.confirmation-actions {
    display: flex;
    justify-content: space-between;
    margin-top: var(--space-5);
}

.confirmation-actions .action-button {
    flex: 1;
    margin: 0 var(--space-1);
}

.confirmation-actions .confirm-button {
    background: var(--color-success);
    color: #FFFFFF;
}

.confirmation-actions .cancel-button {
    background: var(--color-error);
    color: #FFFFFF;
}

/* =========================================================================
   ВРЕМЕННОЕ СООБЩЕНИЕ
   ========================================================================= */

.temporary-message {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) scale(0.9);
    background-color: var(--color-surface-elevated);
    color: var(--color-text);
    padding: var(--space-4) var(--space-5);
    border-radius: var(--radius-m);
    z-index: 2000;
    text-align: center;
    max-width: 90%;
    opacity: 0;
    transition: opacity var(--transition-normal), transform var(--transition-normal);
    box-shadow: var(--shadow-lg);
}

.temporary-message.show {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
}

/* =========================================================================
   АДАПТИВНОСТЬ
   ========================================================================= */

@media (max-height: 700px) {
    .won-gift {
        margin: var(--space-5) auto;
        width: 150px;
        height: 150px;
    }
    
    .gift-name {
        margin-bottom: var(--space-5);
    }
}

@media (max-width: 340px) {
    .modal-content {
        padding: 0 var(--space-1);
    }
}
