/**
 * Стили модального окна входа/регистрации
 * Дизайн: оранжевый акцент #FF8C42, белый фон, мягкие тени, скругления 16px.
 * Точно по скрину пользователя.
 *
 * ВАЖНО: используются !important для защиты от перебивания стилями темы WordPress.
 */

/* Оверлей - затемнение фона */
.diagnosis-auth-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: rgba(0, 0, 0, 0.5) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    z-index: 99999 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    animation: diagnosis-auth-fade-in 0.25s ease-out !important;
    margin: 0 !important;
    border: none !important;
}

.diagnosis-auth-overlay.is-open {
    display: flex !important;
}

@keyframes diagnosis-auth-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Модальное окно */
.diagnosis-auth-overlay .diagnosis-auth-modal {
    position: relative !important;
    background: #ffffff !important;
    width: 100% !important;
    max-width: 400px !important;
    border-radius: 16px !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
    padding: 32px 32px 36px !important;
    box-sizing: border-box !important;
    max-height: calc(100vh - 40px) !important;
    overflow-y: auto !important;
    animation: diagnosis-auth-slide-up 0.3s ease-out !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
    margin: 0 !important;
    border: none !important;
    color: #111827 !important;
}

@keyframes diagnosis-auth-slide-up {
    from {
        transform: translateY(20px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Кнопка закрытия */
.diagnosis-auth-overlay .diagnosis-auth-close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    width: 32px !important;
    height: 32px !important;
    background: transparent !important;
    border: none !important;
    color: #9ca3af !important;
    font-size: 28px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
    font-family: inherit !important;
    box-shadow: none !important;
    text-indent: 0 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-close:hover {
    background: #f3f4f6 !important;
    color: #374151 !important;
}

/* Иконка замка в круге */
.diagnosis-auth-overlay .diagnosis-auth-icon {
    width: 64px !important;
    height: 64px !important;
    margin: 0 auto 16px !important;
    background: #fff5eb !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #ff8c42 !important;
    box-shadow: 0 4px 14px rgba(255, 140, 66, 0.18) !important;
    border: none !important;
}

/* Заголовок */
.diagnosis-auth-overlay .diagnosis-auth-title {
    text-align: center !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    color: #1a1a1a !important;
    margin: 0 0 8px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Подзаголовок */
.diagnosis-auth-overlay .diagnosis-auth-subtitle {
    text-align: center !important;
    font-size: 13px !important;
    color: #6b7280 !important;
    margin: 0 auto 20px !important;
    line-height: 1.5 !important;
    max-width: 300px !important;
    background: transparent !important;
    padding: 0 !important;
}

/* Постоянная оранжевая плашка-уведомление */
.diagnosis-auth-overlay .diagnosis-auth-banner {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    background: #fff7ed !important;
    border: 1px solid #fed7aa !important;
    border-radius: 8px !important;
    padding: 10px 14px !important;
    margin: 0 0 20px 0 !important;
    font-size: 13px !important;
    color: #ea580c !important;
    line-height: 1.4 !important;
    box-sizing: border-box !important;
    font-weight: 500 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-banner-icon {
    flex-shrink: 0 !important;
    width: 18px !important;
    height: 18px !important;
    background: #ff8c42 !important;
    color: #ffffff !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
    line-height: 1 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-banner-icon svg {
    display: block !important;
    width: 12px !important;
    height: 12px !important;
    fill: #ffffff !important;
}

.diagnosis-auth-overlay .diagnosis-auth-banner-text {
    flex: 1 !important;
    display: block !important;
    color: #ea580c !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    text-align: left !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Переключатель вкладок — слитные табы в общем контейнере */
.diagnosis-auth-overlay .diagnosis-auth-tabs {
    display: flex !important;
    background: #f5f5f5 !important;
    border-radius: 10px !important;
    padding: 4px !important;
    margin: 0 0 24px 0 !important;
    gap: 4px !important;
    box-sizing: border-box !important;
    border: none !important;
    box-shadow: none !important;
}

.diagnosis-auth-overlay .diagnosis-auth-tab {
    flex: 1 !important;
    background: transparent !important;
    border: none !important;
    padding: 0 16px !important;
    height: 44px !important;
    line-height: 1 !important;
    font-size: 15px !important;
    font-weight: 500 !important;
    color: #6b7280 !important;
    cursor: pointer !important;
    border-radius: 8px !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    font-family: inherit !important;
    position: relative !important;
    box-shadow: none !important;
    outline: none !important;
    text-decoration: none !important;
    margin: 0 !important;
    text-indent: 0 !important;
    /* Используем grid с place-items: center — самое надёжное центрирование.
       Текст обёрнут в <span class="diagnosis-auth-tab-text">. */
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Span с текстом вкладки */
.diagnosis-auth-overlay .diagnosis-auth-tab-text {
    display: inline-block !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    font: inherit !important;
    color: inherit !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}

.diagnosis-auth-overlay .diagnosis-auth-tab:hover:not(.active) {
    color: #374151 !important;
    background: rgba(255, 255, 255, 0.5) !important;
}

.diagnosis-auth-overlay .diagnosis-auth-tab.active {
    background: #ffffff !important;
    color: #ff8c42 !important;
    font-weight: 600 !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04) !important;
}

/* Простое текстовое уведомление об ошибках / успехе (без иконки) */
.diagnosis-auth-overlay .diagnosis-auth-message {
    display: none !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    margin: 0 0 16px 0 !important;
    font-size: 13px !important;
    line-height: 1.4 !important;
    text-align: center !important;
    box-sizing: border-box !important;
    background: transparent !important;
    color: #4b5563 !important;
    border: none !important;
    font-weight: 500 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-message.is-error {
    background: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    color: #b91c1c !important;
    display: block !important;
}

.diagnosis-auth-overlay .diagnosis-auth-message.is-success {
    background: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
    color: #15803d !important;
    display: block !important;
}

.diagnosis-auth-overlay .diagnosis-auth-message.is-info {
    background: #fff7ed !important;
    border: 1px solid #fed7aa !important;
    color: #ea580c !important;
    display: block !important;
}

/* Форма */
.diagnosis-auth-overlay .diagnosis-auth-form {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

.diagnosis-auth-overlay .diagnosis-auth-form.active {
    display: block !important;
}

/* Поле ввода */
.diagnosis-auth-overlay .diagnosis-auth-field {
    margin-bottom: 12px !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

.diagnosis-auth-overlay .diagnosis-auth-field > label {
    display: block !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    color: #374151 !important;
    margin: 0 0 5px 0 !important;
    padding: 0 !important;
    background: transparent !important;
    line-height: 1.4 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-field > input {
    width: 100% !important;
    height: 40px !important;
    padding: 0 12px !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    background: #ffffff !important;
    font-size: 14px !important;
    color: #111827 !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    box-sizing: border-box !important;
    font-family: inherit !important;
    outline: none !important;
    margin: 0 !important;
    box-shadow: none !important;
    line-height: normal !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.diagnosis-auth-overlay .diagnosis-auth-field > input:focus {
    border-color: #ff8c42 !important;
    box-shadow: 0 0 0 3px rgba(255, 140, 66, 0.12) !important;
    background: #ffffff !important;
}

.diagnosis-auth-overlay .diagnosis-auth-field > input::placeholder {
    color: #9ca3af !important;
}

/* Хинт под полем */
.diagnosis-auth-overlay .diagnosis-auth-field-hint {
    display: block !important;
    font-size: 12px !important;
    margin: 5px 0 0 0 !important;
    min-height: 0 !important;
    color: #6b7280 !important;
    padding: 0 !important;
    background: transparent !important;
}

.diagnosis-auth-overlay .diagnosis-auth-field-hint.is-error {
    color: #b91c1c !important;
}

.diagnosis-auth-overlay .diagnosis-auth-field-hint.is-success {
    color: #15803d !important;
}

/* Поле логина с кнопкой генерации */
.diagnosis-auth-overlay .diagnosis-auth-login-wrapper {
    position: relative !important;
    display: flex !important;
    align-items: stretch !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

.diagnosis-auth-overlay .diagnosis-auth-login-wrapper > input {
    flex: 1 !important;
    border-top-right-radius: 8px !important;
    border-bottom-right-radius: 8px !important;
    min-width: 0 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-generate-btn {
    flex-shrink: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    padding: 0 12px !important;
    height: 40px !important;
    line-height: 1 !important;
    background: #fff5eb !important;
    border: 1px solid #ffd5b8 !important;
    border-radius: 8px !important;
    color: #ea580c !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
    font-family: inherit !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    outline: none !important;
    margin: 0 !important;
    text-align: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

.diagnosis-auth-overlay .diagnosis-auth-generate-btn:hover {
    background: #ffe9d6 !important;
    border-color: #ff8c42 !important;
    color: #ea580c !important;
}

.diagnosis-auth-overlay .diagnosis-auth-generate-btn svg {
    flex-shrink: 0 !important;
    display: block !important;
}

/* Строка с чекбоксом и ссылкой */
.diagnosis-auth-overlay .diagnosis-auth-row {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 12px !important;
    margin: 0 0 16px 0 !important;
    flex-wrap: wrap !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
}

.diagnosis-auth-overlay .diagnosis-auth-row.two-cols {
    gap: 12px !important;
    align-items: stretch !important;
    margin: 0 0 0 0 !important;
    padding: 0 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-row.two-cols .diagnosis-auth-field {
    flex: 1 !important;
    min-width: 0 !important;
    margin-bottom: 16px !important;
}

/* Чекбокс */
.diagnosis-auth-overlay .diagnosis-auth-checkbox {
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    cursor: pointer !important;
    font-size: 13px !important;
    color: #4b5563 !important;
    user-select: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    font-weight: 400 !important;
    line-height: 1.4 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-checkbox input[type="checkbox"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    border: 1px solid #d1d5db !important;
    border-radius: 4px !important;
    background: #ffffff !important;
    cursor: pointer !important;
    margin: 0 !important;
    position: relative !important;
    transition: background-color 0.2s ease, border-color 0.2s ease !important;
    flex-shrink: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 0 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-checkbox input[type="checkbox"]:checked {
    background: #ff8c42 !important;
    border-color: #ff8c42 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-checkbox input[type="checkbox"]:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -60%) rotate(45deg) !important;
    width: 4px !important;
    height: 8px !important;
    border: solid #ffffff !important;
    border-width: 0 2px 2px 0 !important;
    display: block !important;
}

.diagnosis-auth-overlay .diagnosis-auth-checkbox input[type="checkbox"]:focus {
    outline: 2px solid rgba(255, 140, 66, 0.4) !important;
    outline-offset: 2px !important;
}

/* Ссылка */
.diagnosis-auth-overlay .diagnosis-auth-link {
    color: #ff8c42 !important;
    font-size: 13px !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    transition: color 0.2s ease !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    cursor: pointer !important;
    display: inline-block !important;
    line-height: 1.4 !important;
}

.diagnosis-auth-overlay .diagnosis-auth-link:hover {
    color: #ea580c !important;
    text-decoration: underline !important;
}

/* Кнопка сабмита */
.diagnosis-auth-overlay .diagnosis-auth-submit {
    width: 100% !important;
    height: 44px !important;
    line-height: 1 !important;
    background: #ff8c42 !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 8px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease, transform 0.1s ease, box-shadow 0.2s ease !important;
    font-family: inherit !important;
    box-shadow: 0 4px 12px rgba(255, 140, 66, 0.3) !important;
    position: relative !important;
    letter-spacing: 0.01em !important;
    padding: 0 16px !important;
    margin: 0 !important;
    outline: none !important;
    text-transform: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    /* Используем grid с place-items: center — самое надёжное центрирование.
       Текст обёрнут в <span class="diagnosis-auth-btn-text">. */
    display: grid !important;
    place-items: center !important;
    text-align: center !important;
    text-indent: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
}

/* Span с текстом кнопки */
.diagnosis-auth-overlay .diagnosis-auth-btn-text {
    display: inline-block !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    font: inherit !important;
    color: inherit !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
}

.diagnosis-auth-overlay .diagnosis-auth-submit:hover {
    background: #f97316 !important;
    box-shadow: 0 6px 16px rgba(255, 140, 66, 0.4) !important;
    transform: translateY(-1px) !important;
}

.diagnosis-auth-overlay .diagnosis-auth-submit:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 8px rgba(255, 140, 66, 0.3) !important;
}

.diagnosis-auth-overlay .diagnosis-auth-submit:disabled {
    opacity: 0.7 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

.diagnosis-auth-overlay .diagnosis-auth-submit.is-loading {
    pointer-events: none !important;
    opacity: 0.85 !important;
    color: transparent !important;
}

.diagnosis-auth-overlay .diagnosis-auth-submit.is-loading::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 18px !important;
    height: 18px !important;
    margin: -9px 0 0 -9px !important;
    border: 2px solid rgba(255, 255, 255, 0.4) !important;
    border-top-color: #ffffff !important;
    border-radius: 50% !important;
    animation: diagnosis-auth-spin 0.8s linear infinite !important;
}

@keyframes diagnosis-auth-spin {
    to { transform: rotate(360deg); }
}

/* Адаптивность */
@media (max-width: 480px) {
    /* Оверлей: он сам становится скроллируемым контейнером на мобильных.
       ВАЖНО: НЕ задаём display здесь — он наследуется из базовых стилей:
       - display: none !important (когда модалка закрыта)
       - display: flex !important (когда есть класс .is-open)
       Раньше тут стояло display: block !important, которое перебивало display: none —
       из-за этого обе модалки были всегда видимы на мобильных и перекрывали друг друга. */
    .diagnosis-auth-overlay {
        padding: 0 !important;
        align-items: flex-start !important;
        justify-content: stretch !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        height: 100dvh !important;
        height: 100vh !important;
    }

    /* Когда модалка открыта — display: flex (как в базовом стиле .is-open).
       Дублируем тут с большей специфенностью для мобильных на всякий случай. */
    .diagnosis-auth-overlay.is-open {
        display: flex !important;
    }

    /* Модалка: занимает естественную высоту контента (без max-height).
       Скроллится оверлей, а не модалка — это надёжнее работает на iOS. */
    .diagnosis-auth-overlay .diagnosis-auth-modal {
        max-width: 100% !important;
        min-height: 100% !important;
        min-height: 100dvh !important;
        border-radius: 0 !important;
        padding: 24px 18px 24px !important;
        /* Безопасные зоны для iPhone X+ */
        padding-top: env(safe-area-inset-top, 24px) !important;
        padding-bottom: calc(20px + env(safe-area-inset-bottom, 24px)) !important;
        max-height: none !important;
        overflow: visible !important;
        box-sizing: border-box !important;
        margin: 0 !important;
    }

    /* Кнопка закрытия — абсолютное позиционирование в правом верхнем углу модалки.
       position: absolute (а не sticky) — надёжнее работает, всегда кликабельна.
       z-index: 100 — чтобы быть поверх любого контента. */
    .diagnosis-auth-overlay .diagnosis-auth-close {
        position: absolute !important;
        top: calc(12px + env(safe-area-inset-top, 0px)) !important;
        right: 12px !important;
        margin: 0 !important;
        float: none !important;
        z-index: 100 !important;
        width: 36px !important;
        height: 36px !important;
        background: rgba(255, 255, 255, 0.9) !important;
        border-radius: 50% !important;
    }

    /* Иконка замка — меньше на мобильных */
    .diagnosis-auth-overlay .diagnosis-auth-icon {
        width: 52px !important;
        height: 52px !important;
        margin: 0 auto 12px !important;
    }

    .diagnosis-auth-overlay .diagnosis-auth-icon svg {
        width: 24px !important;
        height: 24px !important;
    }

    /* Заголовок и подзаголовок — компактнее */
    .diagnosis-auth-overlay .diagnosis-auth-title {
        font-size: 18px !important;
        margin: 0 0 6px !important;
    }

    .diagnosis-auth-overlay .diagnosis-auth-subtitle {
        font-size: 12px !important;
        margin: 0 auto 16px !important;
        max-width: 260px !important;
    }

    /* Вкладки — компактнее */
    .diagnosis-auth-overlay .diagnosis-auth-tabs {
        margin: 0 0 16px 0 !important;
    }

    .diagnosis-auth-overlay .diagnosis-auth-tab {
        padding: 9px 12px !important;
        font-size: 14px !important;
    }

    /* Поля — немного меньше для мобильных */
    .diagnosis-auth-overlay .diagnosis-auth-field {
        margin-bottom: 10px !important;
    }

    .diagnosis-auth-overlay .diagnosis-auth-field > label {
        font-size: 11px !important;
        margin: 0 0 4px 0 !important;
    }

    .diagnosis-auth-overlay .diagnosis-auth-field > input {
        height: 38px !important;
        padding: 0 10px !important;
        font-size: 13px !important;
    }

    /* Подсказки под полями — компактнее */
    .diagnosis-auth-overlay .diagnosis-auth-field-hint {
        font-size: 11px !important;
        margin-top: 3px !important;
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        color: #6b7280 !important;
    }

    /* Строки в две колонки — в одну колонку на мобильных */
    .diagnosis-auth-overlay .diagnosis-auth-row.two-cols {
        flex-direction: column !important;
        gap: 0 !important;
    }

    .diagnosis-auth-overlay .diagnosis-auth-row.two-cols .diagnosis-auth-field {
        margin-bottom: 10px !important;
    }

    /* Строка с чекбоксом и ссылкой — меньше отступ */
    .diagnosis-auth-overlay .diagnosis-auth-row {
        margin: 0 0 14px 0 !important;
    }

    /* Кнопка "Сгенерировать" — только иконка на мобильных */
    .diagnosis-auth-overlay .diagnosis-auth-generate-btn span {
        display: none !important;
    }

    .diagnosis-auth-overlay .diagnosis-auth-generate-btn {
        padding: 0 10px !important;
        height: 38px !important;
    }

    /* Кнопка сабмита — всегда видна, с отступом снизу */
    .diagnosis-auth-overlay .diagnosis-auth-submit {
        height: 44px !important;
        font-size: 14px !important;
        margin-top: 8px !important;
        margin-bottom: 0 !important;
    }
}

/* Если body имеет блокировку прокрутки — только на десктопе.
   На мобильных не блокируем body, потому что overlay сам по себе
   скроллируемый контейнер (position: fixed + overflow-y: auto).
   Блокировка body на iOS может мешать нативному скроллу внутри overlay. */
body.diagnosis-auth-locked {
    overflow: hidden !important;
}

@media (max-width: 480px) {
    body.diagnosis-auth-locked {
        overflow: auto !important;
        position: fixed !important;
        width: 100% !important;
        top: 0 !important;
        left: 0 !important;
    }
}

/* Блок "уже авторизован" */
.diagnosis-already-logged-in {
    text-align: center !important;
    padding: 30px !important;
    background: #f9fafb !important;
    border-radius: 10px !important;
    color: #4b5563 !important;
}

.diagnosis-already-logged-in a {
    color: #ff8c42 !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}

.diagnosis-already-logged-in a:hover {
    text-decoration: underline !important;
}

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

/* Кнопка "Вернуться ко входу" */
#diagnosis-reset-overlay .diagnosis-auth-back-btn,
.diagnosis-auth-overlay .diagnosis-auth-back-btn {
    width: 100% !important;
    height: 40px !important;
    line-height: 1 !important;
    background: transparent !important;
    color: #6b7280 !important;
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
    margin: 12px 0 0 0 !important;
    padding: 0 16px !important;
    outline: none !important;
    text-decoration: none !important;
    text-transform: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    display: grid !important;
    place-items: center !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    box-shadow: none !important;
}

#diagnosis-reset-overlay .diagnosis-auth-back-btn:hover,
.diagnosis-auth-overlay .diagnosis-auth-back-btn:hover {
    background: #f9fafb !important;
    border-color: #ff8c42 !important;
    color: #ff8c42 !important;
}

#diagnosis-reset-overlay .diagnosis-auth-back-text,
.diagnosis-auth-overlay .diagnosis-auth-back-text {
    display: inline-block !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    background: transparent !important;
    border: none !important;
    outline: none !important;
    font: inherit !important;
    color: inherit !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    max-width: 100% !important;
    text-decoration: none !important;
}

/* Иконка ключа — вместо замка в модалке восстановления */
#diagnosis-reset-overlay .diagnosis-reset-icon {
    /* наследует все стили от .diagnosis-auth-icon */
}

/* ===== СТРАНИЧНЫЙ РЕЖИМ ВХОДА/РЕГИСТРАЦИИ (шорткод [diagnosis_auth_page]) ===== */
/* Обёртка #diagnosis-auth-overlay с классом .diagnosis-auth-page-mode рендерится
   inline на обычной странице. Отменяем fixed-позиционирование, затемнение,
   z-index и блокировку прокрутки — карточка остаётся с тем же дизайном.
   Специфичность выше базовых правил + !important — перебивает надёжно. */

.diagnosis-auth-overlay.diagnosis-auth-page-mode {
    position: static !important;
    top: auto !important;
    left: auto !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    z-index: auto !important;
    padding: 40px 16px !important;
    overflow: visible !important;
    animation: none !important;
}

/* Карточка формы — по центру страницы, без ограничения по высоте экрана */
.diagnosis-auth-page-mode .diagnosis-auth-modal {
    margin: 0 auto !important;
    max-height: none !important;
    overflow: visible !important;
    animation: diagnosis-auth-slide-up 0.3s ease-out !important;
}

/* На мобильных карточка остаётся «карточкой» (не растягивается на весь экран,
   как модалка) */
@media (max-width: 480px) {
    .diagnosis-auth-overlay.diagnosis-auth-page-mode {
        padding: 16px 10px !important;
    }

    .diagnosis-auth-overlay.diagnosis-auth-page-mode .diagnosis-auth-modal {
        min-height: 0 !important;
        min-height: unset !important;
        max-width: 400px !important;
        border-radius: 16px !important;
        padding: 24px 18px 28px !important;
        padding-top: 24px !important;
        padding-bottom: calc(28px + env(safe-area-inset-bottom, 0px)) !important;
        box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
    }
}

/* =========================================================
   УВЕДОМЛЕНИЕ «ВХОД ВЫПОЛНЕН!» (v1.6.1)
   Показывается администратору после успешного входа через модалку.
   Дизайн идентичен auth-modal: оранжевый #FF8C42, белая карточка
   460px, скругление 16px, иконка-галочка в круге.
   ========================================================= */

/* Оверлей — затемнение + blur, поверх всего */
.diagnosis-logged-notice-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    height: 100dvh !important;
    background: rgba(0, 0, 0, 0.5) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    backdrop-filter: blur(4px) !important;
    z-index: 99999 !important;
    display: none !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 20px !important;
    box-sizing: border-box !important;
    animation: diagnosis-notice-fade-in 0.2s ease-out !important;
}

.diagnosis-logged-notice-overlay.is-open {
    display: flex !important;
}

@keyframes diagnosis-notice-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

@keyframes diagnosis-notice-slide-up {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Карточка */
.diagnosis-logged-notice-modal {
    position: relative !important;
    background: #FFFFFF !important;
    border-radius: 16px !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15), 0 4px 12px rgba(0, 0, 0, 0.08) !important;
    padding: 36px 32px 32px !important;
    max-width: 460px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: center !important;
    animation: diagnosis-notice-slide-up 0.3s ease-out !important;
    margin: 0 !important;
}

/* Кнопка закрытия (×) — общая с auth-modal: .diagnosis-auth-close */
.diagnosis-logged-notice-modal .diagnosis-auth-close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    background: transparent !important;
    border: none !important;
    border-radius: 50% !important;
    color: #9CA3AF !important;
    font-size: 22px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: background 0.15s ease, color 0.15s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-shadow: none !important;
    outline: none !important;
    z-index: 5 !important;
}

.diagnosis-logged-notice-modal .diagnosis-auth-close:hover {
    background: #F3F4F6 !important;
    color: #1A1A1A !important;
}

/* Иконка-галочка в круге */
.diagnosis-logged-notice-icon {
    width: 64px !important;
    height: 64px !important;
    background: #FFF5EB !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto 16px !important;
    color: #FF8C42 !important;
    border: none !important;
    padding: 0 !important;
    animation: diagnosis-notice-pop 0.4s ease-out !important;
}

@keyframes diagnosis-notice-pop {
    0%   { transform: scale(0); opacity: 0; }
    60%  { transform: scale(1.1); opacity: 1; }
    100% { transform: scale(1); }
}

/* Заголовок */
.diagnosis-logged-notice-title {
    font-size: 22px !important;
    font-weight: 700 !important;
    color: #1A1A1A !important;
    margin: 0 0 8px !important;
    padding: 0 !important;
    background: transparent !important;
    line-height: 1.3 !important;
    text-align: center !important;
}

/* Подзаголовок (Здравствуйте, X. Вы вошли как Y.) */
.diagnosis-logged-notice-subtitle {
    font-size: 14px !important;
    color: #6B7280 !important;
    line-height: 1.5 !important;
    margin: 0 0 24px !important;
    padding: 0 !important;
    background: transparent !important;
    max-width: 340px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

.diagnosis-logged-notice-subtitle strong {
    color: #1A1A1A !important;
    font-weight: 600 !important;
}

/* Контейнер кнопок */
.diagnosis-logged-notice-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin-top: 8px !important;
}

/* Базовый стиль кнопок */
.diagnosis-logged-notice-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    height: 44px !important;
    padding: 0 16px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    box-sizing: border-box !important;
    line-height: 1 !important;
    text-transform: none !important;
    text-indent: 0 !important;
    outline: none !important;
    box-shadow: none !important;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif !important;
}

.diagnosis-logged-notice-btn-text {
    display: inline-block !important;
    line-height: 1 !important;
}

.diagnosis-logged-notice-btn svg {
    flex-shrink: 0 !important;
    display: block !important;
}

/* Основная кнопка «В админку» — оранжевый фон */
.diagnosis-logged-notice-btn-primary {
    background: #FF8C42 !important;
    color: #FFFFFF !important;
    border: 1px solid #FF8C42 !important;
    box-shadow: 0 4px 12px rgba(255, 140, 66, 0.3) !important;
}

.diagnosis-logged-notice-btn-primary:hover {
    background: #F97316 !important;
    border-color: #F97316 !important;
    color: #FFFFFF !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 16px rgba(255, 140, 66, 0.4) !important;
}

.diagnosis-logged-notice-btn-primary:active {
    transform: translateY(0) !important;
    box-shadow: 0 2px 8px rgba(255, 140, 66, 0.3) !important;
}

/* Вторичная кнопка «К программам» — outline стиль */
.diagnosis-logged-notice-btn-secondary {
    background: #FFFFFF !important;
    color: #FF8C42 !important;
    border: 1px solid #FF8C42 !important;
    box-shadow: none !important;
}

.diagnosis-logged-notice-btn-secondary:hover {
    background: #FFF5EB !important;
    color: #EA580C !important;
    border-color: #F97316 !important;
    transform: translateY(-1px) !important;
}

.diagnosis-logged-notice-btn-secondary:active {
    transform: translateY(0) !important;
    background: #FFF7ED !important;
}

/* Адаптивность на мобильных */
@media (max-width: 480px) {
    .diagnosis-logged-notice-overlay {
        padding: 16px !important;
        align-items: flex-start !important;
        overflow-y: auto !important;
    }

    .diagnosis-logged-notice-modal {
        max-width: 100% !important;
        padding: 32px 20px 24px !important;
        margin-top: env(safe-area-inset-top, 0px) !important;
    }

    .diagnosis-logged-notice-icon {
        width: 56px !important;
        height: 56px !important;
        margin-bottom: 14px !important;
    }

    .diagnosis-logged-notice-title {
        font-size: 20px !important;
        margin-bottom: 6px !important;
    }

    .diagnosis-logged-notice-subtitle {
        font-size: 13px !important;
        margin-bottom: 20px !important;
    }

    .diagnosis-logged-notice-actions {
        gap: 8px !important;
    }

    .diagnosis-logged-notice-btn {
        height: 42px !important;
        font-size: 13px !important;
        padding: 0 14px !important;
    }
}

/* =========================================================
   СОГЛАСИЕ НА ПД + HONEYPOT (v1.9.0, v1.9.1 — CAPTCHA удалена)
   ========================================================= */

/* Блок согласия на ПД */
.diagnosis-consent-field {
    margin-bottom: 16px !important;
    padding: 12px 14px !important;
    background: #F9FAFB !important;
    border: 1px solid #F3F4F6 !important;
    border-radius: 8px !important;
}

.diagnosis-consent-checkbox {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    cursor: pointer !important;
    margin: 0 !important;
    padding: 0 !important;
}

.diagnosis-consent-checkbox input[type="checkbox"] {
    flex-shrink: 0 !important;
    margin-top: 3px !important;
    margin-right: 0 !important;
}

.diagnosis-consent-checkbox span {
    font-size: 12px !important;
    color: #4B5563 !important;
    line-height: 1.5 !important;
    display: block !important;
}

.diagnosis-consent-checkbox a {
    color: #FF8C42 !important;
    text-decoration: underline !important;
}

.diagnosis-consent-checkbox a:hover {
    color: #EA580C !important;
}

/* v1.9.0: Honeypot-поле — скрыто от реальных пользователей */
.diagnosis-honeypot-field {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* Для ботов, у которых отключён CSS — показываем как обычное поле.
   Но визуально для людей с CSS — скрыто. */
.diagnosis-honeypot-field input {
    width: 100% !important;
    height: 30px !important;
    border: 1px solid #E5E7EB !important;
    border-radius: 6px !important;
    padding: 0 10px !important;
    font-size: 13px !important;
}