:root {
    --auth-primary: #ff665b;
    --auth-secondary: #079da6;
    --auth-ink: #18243a;
    --auth-muted: #68737d;
    --auth-line: #dfe8ea;
}

.auth-page-shell {
    min-height: calc(100vh - 165px);
    display: grid;
    place-items: center;
    padding: 56px 20px 72px;
    background:
        radial-gradient(circle at 12% 18%, rgba(255, 102, 91, .12), transparent 30%),
        radial-gradient(circle at 88% 82%, rgba(7, 157, 166, .14), transparent 32%),
        #f7fbfc;
}

.auth-card {
    width: min(100%, 510px);
    padding: 34px;
    border: 1px solid rgba(7, 157, 166, .16);
    border-radius: 24px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 24px 70px rgba(24, 36, 58, .12);
}

.auth-back { color: var(--auth-secondary); font-size: 13px; font-weight: 700; }
.auth-icon { width: 58px; height: 58px; margin: 24px 0 18px; display: grid; place-items: center; border-radius: 18px; color: #fff; background: linear-gradient(135deg, var(--auth-secondary), #087a91); }
.auth-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.auth-card h1 { margin: 0; color: var(--auth-ink); font-size: clamp(26px, 5vw, 34px); line-height: 1.15; }
.auth-lead { margin: 10px 0 26px; color: var(--auth-muted); font-size: 14px; line-height: 1.6; }
.auth-form { display: grid; gap: 9px; }
.auth-form > label:not(.auth-check) { margin-top: 8px; color: var(--auth-ink); font-size: 13px; font-weight: 750; }
.auth-form > input { width: 100%; min-height: 48px; padding: 0 14px; border: 1px solid var(--auth-line); border-radius: 11px; color: var(--auth-ink); background: #fff; outline: none; transition: border-color .2s, box-shadow .2s; }
.auth-form > input:focus { border-color: var(--auth-secondary); box-shadow: 0 0 0 4px rgba(7, 157, 166, .1); }
.auth-form > input.is-invalid { border-color: #c93f48; }
.auth-error { color: #b52e3a; font-size: 12px; }
.auth-options { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: 12px 0 4px; font-size: 13px; }
.auth-options > a, .auth-policy a, .auth-consent a { color: var(--auth-secondary); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.auth-check { display: flex; align-items: flex-start; gap: 9px; color: var(--auth-muted); font-size: 13px; line-height: 1.45; cursor: pointer; }
.auth-check input { width: 17px; height: 17px; margin: 1px 0 0; accent-color: var(--auth-secondary); flex: 0 0 auto; }
.auth-consent { margin: 14px 0 3px; }
.auth-submit { min-height: 50px; margin-top: 12px; border: 0; border-radius: 11px; color: #fff; background: linear-gradient(135deg, var(--auth-primary), #ef514a); font-size: 14px; font-weight: 850; cursor: pointer; box-shadow: 0 10px 24px rgba(255, 102, 91, .22); }
.auth-submit:hover { filter: brightness(.98); transform: translateY(-1px); }
.auth-policy { margin: 20px 0 0; color: var(--auth-muted); font-size: 12px; line-height: 1.55; }

.auth-entry { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(7, 157, 166, .35); border-radius: 10px; color: var(--secondary); background: #fff; transition: color .2s, background .2s, transform .2s; }
.auth-entry:hover { color: #fff; background: var(--secondary); transform: translateY(-1px); }
.auth-entry svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.footer-bottom-row > a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 560px) {
    .auth-page-shell { padding: 30px 14px 48px; }
    .auth-card { padding: 25px 20px; border-radius: 19px; }
    .auth-options { align-items: flex-start; flex-direction: column; }
    .auth-entry { width: 40px; height: 40px; }
}
