html, body {
    height: 100%;
}

body {
    /* flex уже задан классами, но дублируем на случай загрузки без классов */
    display: flex;
    flex-direction: column;
    min-height: 100vh; /* dvh учитывает UI браузера */
    min-height: 100dvh;
    min-height: 100svh;

    margin: 0;               /* убрали старый margin-bottom:60px */
    overflow-x: hidden;
    font-size: 14px;
}

/* Основной контент растягивается */
main {
    flex: 1 0 auto;
    /* Если появится редкий «1px скролл» из-за субпикселей — раскомментируйте:
       padding-bottom: 0.01px;
    */
}

/* Футер просто в потоке (flex решает позиционирование) */
footer {
    flex-shrink: 0;
}

/* Адаптивный шаг шрифта */
@media (min-width: 768px) {
    body { font-size: 16px; }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

/* Опционально: убрать вертикальный скролл для конкретной страницы (НЕ применять глобально!) */
/* body.no-vertical-scroll { overflow-y: hidden; } */

/* (Пример) утилита, если нужна обрезка контента без скролла в отдельном блоке }
// .no-scroll-area { overflow: hidden; }

/* Место для ваших доп. кастомизаций ниже ------------------------------------ */
/* Beta banner */
.beta-banner {
    position: fixed;
    inset: 0 0 auto 0;
    background: linear-gradient(90deg,#ff9800,#ff7043,#ff5722);
    color: #fff;
    z-index: 1060;
    padding: .35rem 0;
    font-weight: 500;
    box-shadow: 0 2px 6px rgba(0,0,0,.25);
}
.beta-banner a { color: #fff; text-decoration: underline; }
.beta-banner a:hover { text-decoration: none; }
html { --beta-banner-height: 0px; }
header { margin-top: var(--beta-banner-height); transition: margin-top .15s ease; }

/* Mobile tweaks for beta banner */
@media (max-width: 576px) {
    .beta-banner { font-size: .72rem; }
    .beta-banner .container {
        position: relative;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: .25rem !important;
        padding: .25rem .5rem;
    }
    .beta-banner .btn {
        width: 100%;
    }
    .beta-banner .btn-close {
        position: absolute;
        top: .35rem;
        right: .35rem;
        margin: 0 !important;
    }
}

/* Feedback modal tweaks */
#feedback-files-list div { padding:2px 0; }
:root {
    --tutor-primary: #2563eb;
    --tutor-primary-dark: #1e40af;
    --tutor-accent: #facc15; /* цвет замочка */
    --navbar-height: 56px; /* если у тебя navbar другой — поправь */
}

/* кнопки: основной (синий) и акцент (замочек-жёлтый) */
.btn-tutor {
    background-color: var(--tutor-primary);
    border-color: var(--tutor-primary);
    color: #fff;
}

    .btn-tutor:hover {
        background-color: var(--tutor-primary-dark);
        border-color: var(--tutor-primary-dark);
    }

.btn-tutor-accent {
    background-color: var(--tutor-accent);
    border-color: var(--tutor-accent);
    color: #222; /* темный текст на жёлтом */
}

    .btn-tutor-accent:hover {
        filter: brightness(0.95);
    }

/* титул с акцентной полоской */
.tutor-title {
    position: relative;
}

    .tutor-title::after {
        content: "";
        display: block;
        width: 48px;
        height: 4px;
        background: var(--tutor-accent);
        margin: 8px auto 0;
        border-radius: 3px;
    }

/* контейнеры: гибкая высота без вертикального скролла на нормальных экранах */
.auth-wrapper {
    display: flex;
    justify-content: center;
    align-items: center;
    /*height: calc(100vh - var(--navbar-height));*/
    padding: 1rem;
    box-sizing: border-box;
    overflow: hidden; /* предотвращает глобальный скролл, внутренние формы сами прокрутятся при необходимости */
}

/* карточка - ограничиваем высоту и даём внутренняя прокрутку, если содержимого много */
.auth-card {
    max-width: 520px;
    width: 100%;
    max-height: calc(100vh - (var(--navbar-height) + 40px));
    overflow: auto; /* прокрутка ВНУТРИ карточки, а не всей страницы */
    padding: 1.25rem;
}

/* чуть компактнее поля (уменьшенные отступы) */
.form-floating.mb-2 {
    margin-bottom: .5rem !important;
}

/* мобильный кейс: когда высота экрана маленькая (виртуальная клавиатура) — позволяем странице расти */
@media (max-height: 680px) {
    .auth-wrapper {
        height: auto;
        min-height: calc(100vh - var(--navbar-height));
        overflow: auto;
    }

    .auth-card {
        max-height: none;
        overflow: visible;
    }
}

/* ещё: body/html без дополнительных отступов */
html, body {
    height: 100%;
    margin: 0;
    padding: 0;
}

/* мелкая доступность: ссылки */
.tutor-link {
    color: var(--tutor-primary);
    text-decoration: none;
}

    .tutor-link:hover {
        text-decoration: underline;
    }
/* Responsive width utility: full width на XS, auto начиная с SM */
@media (min-width: 576px) {
    .w-sm-auto { width: auto !important; }
}
