.login-page { margin:0; background:var(--bg); color:var(--text); font-family:"Segoe UI",Arial,sans-serif; font-size:15px; line-height:1.5; }
.login-page .login-card h1 { font-size:clamp(1.5rem,4vw,1.9rem); line-height:1.25; overflow-wrap:anywhere; }
.login-page .login-card p { line-height:1.6; }
.login-page .login-card input, .login-page .login-card button { font:inherit; min-height:44px; }
.login-page .login-card button.primary { background:var(--accent); border-color:var(--accent); color:#fff; font-weight:600; }
.login-page .login-card a { color:var(--accent); text-underline-offset:3px; }
.login-page .login-card .error { color:var(--bad); }
.login-page .login-card .external-login-button { width:100%; margin-top:12px; padding:10px 16px; border:1px solid var(--accent); border-radius:8px; background:transparent; color:var(--text); cursor:pointer; font-weight:600; }
.login-page .login-card form { display:grid; gap:12px; }
.login-page .login-card input:focus-visible, .login-page .login-card button:focus-visible, .login-page .login-card a:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.login-page .login-card a.home-brand-link { color:var(--text); text-decoration:none; }

.external-provider-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.login-page .login-card .external-provider-list .external-login-button { margin: 0; padding: 10px 4px; font-size: 13px; width: 100%; min-width: 0; }
.login-page .login-card .external-provider-list .provider-vk { color: #0077ff; }
.login-page .login-card .external-provider-list .provider-mail { color: #995500; }
.login-page .login-card .external-provider-list .provider-ok { color: #b34b00; }
[data-theme="dark"] .login-page .login-card .external-provider-list .provider-mail { color: #ffbc5c; }
[data-theme="dark"] .login-page .login-card .external-provider-list .provider-ok { color: #ffad75; }
@media (max-width: 480px) { .external-provider-list { grid-template-columns: 1fr; } }
