/* ==== СТРАНИЦА ВХОДА (/login) ==== */

/* Фон и базовый текст (совпадает по стилю с админкой) */
body {
    margin: 0;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: radial-gradient(circle at top left, #1d4ed8 0, #0f172a 42%, #020617 100%);
    color: #0f172a;
}

/* Центрирование карточки */
.auth-shell {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px 16px;
    box-sizing: border-box;
}

/* Карточка логина */
.login-card {
    background: #ffffff;
    border-radius: 22px;
    max-width: 420px;
    width: 100%;
    padding: 26px 24px 24px;
    box-shadow: 0 18px 45px rgba(15, 23, 42, 0.35);
    border: 1px solid rgba(148, 163, 184, 0.18);
}

.login-card h1 {
    margin: 0 0 6px;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    color: #111827;
}

.login-subtitle {
    margin: 0 0 16px;
    font-size: 13px;
    text-align: center;
    color: #6b7280;
}

/* Сообщение об ошибке */
.auth-error {
    margin-bottom: 14px;
    padding: 9px 11px;
    border-radius: 12px;
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #b91c1c;
    font-size: 13px;
}

/* Поля формы */
.login-card .form-group {
    margin-bottom: 14px;
}

.login-card label {
    display: block;
    margin-bottom: 4px;
    font-size: 13px;
    font-weight: 600;
    color: #374151;
}

.login-card input {
    width: 100%;
    padding: 9px 11px;
    border-radius: 10px;
    border: 1px solid #d1d5db;
    box-sizing: border-box;
    font-size: 14px;
    background: #f9fafb;
    transition: border-color 0.15s ease-out, box-shadow 0.15s ease-out, background 0.15s ease-out;
}

.login-card input:focus {
    outline: none;
    border-color: #2563eb;
    background: #ffffff;
    box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.18);
}

/* Кнопка на всю ширину */
.btn-full {
    width: 100%;
    justify-content: center;
    margin-top: 6px;
}

/* Подпись под формой */
.auth-note {
    margin-top: 14px;
    font-size: 12px;
    color: #9ca3af;
    text-align: center;
}

/* Registration */
.register-shell {
    align-items: flex-start;
    padding: 32px 16px;
    overflow-x: hidden;
}

.register-card {
    max-width: 560px;
    padding: 30px 34px 28px;
}

.auth-logo {
    display: block;
    width: 190px;
    max-width: 70%;
    height: auto;
    margin: 0 auto 18px;
    object-fit: contain;
}

.register-form {
    display: grid;
    gap: 2px;
}

.login-card select {
    width: 100%;
    min-height: 46px;
    padding: 9px 38px 9px 11px;
    border-radius: 10px;
    border: 1px solid #d1d5db;
    box-sizing: border-box;
    font-size: 14px;
    background: #f9fafb;
    color: #111827;
    transition: border-color 0.15s ease-out, box-shadow 0.15s ease-out, background 0.15s ease-out;
}

.login-card select:focus {
    outline: none;
    border-color: #10b981;
    background: #ffffff;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.16);
}

.register-card .btn-full {
    min-height: 48px;
    margin-top: 10px;
}

/* Адаптив */
@media (max-width: 480px) {
    .login-card {
        padding: 22px 18px 20px;
        border-radius: 18px;
    }

    .login-card h1 {
        font-size: 20px;
    }

    .register-card {
        padding: 24px 18px 22px;
    }

    .auth-logo {
        width: 160px;
    }
}

/* Project typography normalization */
:root{
  --font-sans:Inter,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --type-sm:13px;
  --type-base:15px;
  --type-lg:18px;
  --type-xl:24px;
  --type-2xl:30px;
}
body,button,input,select,textarea{font-family:var(--font-sans);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
body{font-size:var(--type-base);line-height:1.55;}
h1{font-size:var(--type-2xl);line-height:1.18;font-weight:850;letter-spacing:0;}
h2{font-size:var(--type-xl);line-height:1.2;font-weight:800;letter-spacing:0;}
h3{font-size:var(--type-lg);line-height:1.25;font-weight:800;letter-spacing:0;}
p{font-size:var(--type-base);line-height:1.55;}
small,label,.muted,.muted-text{font-size:var(--type-sm);line-height:1.45;}
input,select,textarea{font-size:var(--type-base);line-height:1.35;}
button,.btn,input[type="submit"]{font-size:14px;line-height:1.2;font-weight:700;}
table{font-size:14px;}
th{font-size:12px;letter-spacing:0;}
@media(max-width:768px){h1{font-size:26px;}h2{font-size:21px;}h3{font-size:17px;}body{font-size:15px;}}

/* Weight normalization: lighter UI text */
body{font-weight:400;}
h1,h2,h3,h4,.admin-page-title,.page-title{font-weight:700;}
.card h2,.card h3,.tab-header h2,.item-header h3,.modal-content h3{font-weight:700;}
.sidebar-logo__icon,.dashboard-brand__mark,.app-brand-mark{font-weight:700;}
.sidebar-logo__text:after,.dashboard-brand>span:last-child,.app-brand>span:last-child{font-weight:700;}
.sidebar-nav__item,.sidebar-footer__link,.dashboard-nav__link,.app-nav-link,.app-logout{font-weight:600;}
.sidebar-nav__item--active,.dashboard-nav__link.is-active,.app-nav-link.active{font-weight:650;}
.btn,button,input[type="submit"]{font-weight:600;}
label{font-weight:600;}
th{font-weight:700;}
.status-badge{font-weight:600;}
.stat-card{font-weight:400;}
.stat-number{font-weight:700;}
.nav-tab{font-weight:600;}
strong,b{font-weight:650;}

/* Weight tuning: calmer dashboard */
h1,h2,h3,h4,.admin-page-title,.page-title{font-weight:600;}
.card h2,.card h3,.tab-header h2,.item-header h3,.modal-content h3{font-weight:600;}
.sidebar-nav__item,.sidebar-footer__link,.dashboard-nav__link,.app-nav-link,.app-logout{font-weight:500;}
.sidebar-nav__item--active,.dashboard-nav__link.is-active,.app-nav-link.active{font-weight:600;}
.btn,button,input[type="submit"]{font-weight:600;}
label{font-weight:500;}
th{font-weight:600;}
.status-badge{font-weight:500;}
.stat-card{font-weight:400;}
.stat-number{font-weight:700;}
.nav-tab{font-weight:500;}
strong,b{font-weight:600;}

@media (max-width: 640px) {
    body {
        min-height: 100svh;
    }

    .auth-shell {
        min-height: 100svh;
        align-items: flex-start;
        padding: max(72px, env(safe-area-inset-top)) 16px 24px;
    }

    .login-card {
        width: 100%;
        max-width: 420px;
        padding: 26px 20px 24px;
        border-radius: 18px;
    }

    .login-card h1 {
        font-size: 24px;
    }

    .login-subtitle {
        font-size: 14px;
    }

    .login-card label {
        font-size: 14px;
    }

    .login-card input,
    .login-card select {
        min-height: 48px;
        font-size: 16px;
    }

    .btn-full {
        min-height: 48px;
        font-size: 16px;
    }

    .auth-note {
        font-size: 13px;
    }
}
