@font-face {
font-family: 'GothamSSm';
src: url('/assets/fonts/GothamSSm-Book.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'GothamSSm';
src: url('/assets/fonts/GothamSSm-Medium.woff2') format('woff2');
font-weight: 500;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'GothamSSm';
src: url('/assets/fonts/GothamSSm-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}

* {
box-sizing: border-box;
}

html,
body {
margin: 0;
padding: 0;
min-height: 100%;
background: linear-gradient(180deg, #eef2f7 0%, #e5e9ef 100%);
color: #2f3133;
font-family: 'GothamSSm', Arial, Helvetica, sans-serif;
}

body {
display: flex;
flex-direction: column;
}

a {
color: #2f67c8;
text-decoration: none;
}

a:hover {
text-decoration: underline;
}

.site-header {
height: 74px;
background: linear-gradient(180deg, #3a6fc9 0%, #2f5fb5 100%);
border-bottom: 1px solid #244f99;
display: flex;
align-items: center;
justify-content: center;
padding: 0 18px;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.12) inset;
}

.nexora-logo {
height: 34px;
width: auto;
object-fit: contain;
}

.auth-wrapper {
flex: 1;
display: flex;
align-items: flex-start;
justify-content: center;
padding: 42px 16px 54px;
}

.auth-box {
width: 100%;
max-width: 430px;
background: #ffffff;
border: 1px solid #d3d9e2;
border-radius: 10px;
box-shadow:
0 10px 28px rgba(25, 40, 72, 0.08),
0 2px 6px rgba(25, 40, 72, 0.05);
padding: 28px 28px 24px;
}

.auth-title {
margin: 0 0 20px;
font-size: 29px;
font-weight: 700;
line-height: 1.15;
color: #2f3133;
text-align: center;
}

label {
display: block;
margin: 0 0 7px;
font-size: 14px;
font-weight: 500;
color: #3b3f45;
}

input[type="text"],
input[type="email"],
input[type="password"],
select {
width: 100%;
height: 44px;
border: 1px solid #c2ccd8;
border-radius: 8px;
background: #fdfefe;
color: #2f3133;
font-size: 14px;
padding: 0 13px;
outline: none;
margin-bottom: 14px;
transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

input:focus,
select:focus {
border-color: #3a6fc9;
background: #ffffff;
box-shadow: 0 0 0 3px rgba(58, 111, 201, 0.12);
}

input::placeholder {
color: #8591a1;
}

.birthday-row {
display: grid;
grid-template-columns: 1.2fr 0.9fr 1fr;
gap: 8px;
margin-bottom: 14px;
}

.gender-row {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 10px;
margin-bottom: 16px;
}

.gender-option {
border: 1px solid #ccd5df;
border-radius: 8px;
background: #f7f9fc;
min-height: 84px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 5px;
cursor: pointer;
position: relative;
text-align: center;
transition: border-color 0.15s ease, background 0.15s ease, transform 0.1s ease;
}

.gender-option:hover {
border-color: #b7c4d5;
background: #f2f6fb;
}

.gender-option input {
position: absolute;
opacity: 0;
pointer-events: none;
}

.gender-option:has(input:checked) {
border-color: #3a6fc9;
background: #edf4ff;
box-shadow: 0 0 0 3px rgba(58, 111, 201, 0.10);
}

.gender-symbol {
font-size: 22px;
line-height: 1;
color: #315b96;
}

.gender-option span {
font-size: 13px;
font-weight: 500;
color: #393b3d;
}

.auth-btn {
width: 100%;
height: 46px;
border-radius: 8px;
color: #ffffff;
font-size: 16px;
font-weight: 700;
cursor: pointer;
margin-top: 4px;
transition: transform 0.06s ease, opacity 0.15s ease, background 0.15s ease;
}

.auth-btn:hover {
transform: translateY(-1px);
}

.auth-btn:active {
transform: translateY(0);
}

.auth-btn-login {
border: 1px solid #2856a4;
background: linear-gradient(180deg, #3d7ae0 0%, #2f67c8 100%);
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.auth-btn-login:hover {
background: linear-gradient(180deg, #3772d6 0%, #2b5fbc 100%);
}

.auth-btn-register {
    border: 1px solid #2e7d32;
    background: linear-gradient(180deg, #5cd96a 0%, #3fb94a 100%);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25);
}

.auth-btn-register:hover {
    background: linear-gradient(180deg, #6ae878 0%, #45c652 100%);
}


.auth-legal {
margin: 18px 0 0;
font-size: 12px;
line-height: 1.55;
color: #6f7b89;
text-align: center;
}

.auth-switch {
margin: 16px 0 0;
font-size: 14px;
color: #55606f;
text-align: center;
}

.field-note {
margin-top: -8px;
margin-bottom: 12px;
min-height: 16px;
font-size: 12px;
}

.field-note.ok {
color: #1b9441;
}

.field-note.bad {
color: #d14a4a;
}

#loginError,
#registerError {
margin-top: 12px;
margin-bottom: 0;
font-size: 13px;
color: #d14a4a !important;
text-align: center;
}

.auth-btn[disabled] {
opacity: 0.7;
cursor: not-allowed;
transform: none;
}

@media (max-width: 520px) {
.site-header {
height: 66px;
}

.nexora-logo {
height: 30px;
}

.auth-wrapper {
padding: 24px 12px 34px;
}

.auth-box {
padding: 22px 16px 18px;
border-radius: 8px;
}

.auth-title {
font-size: 24px;
}

.birthday-row,
.gender-row {
grid-template-columns: 1fr;
}
}