:root {
    color-scheme: light;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif;
    color: #243447;
    background: #f6f8fa;
    font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; font-size: 16px; line-height: 1.6; }
.auth-shell { width: min(100%, 440px); margin: 0 auto; padding: 64px 20px 32px; }
.auth-header { margin-bottom: 28px; text-align: center; }
.auth-brand { margin: 0; font-size: 26px; font-weight: 750; letter-spacing: -.5px; }
.auth-tagline { margin: 8px 0 0; color: #536273; font-size: 14px; }
.auth-panel { padding: 28px; border: 1px solid #e0e6ec; border-radius: 12px; background: white; }
h1 { margin: 0; font-size: 22px; line-height: 1.4; }
.auth-intro { margin: 8px 0 24px; color: #536273; font-size: 14px; }
.auth-form { display: grid; gap: 20px; }
.auth-field { min-width: 0; }
label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 600; }
input { display: block; width: 100%; min-width: 0; height: 48px; padding: 10px 12px; border: 1px solid #9caab8; border-radius: 6px; background: white; color: #243447; font: inherit; }
button { width: 100%; min-height: 48px; padding: 12px; border: 0; border-radius: 6px; background: #2c3e50; color: white; font: inherit; font-weight: 600; cursor: pointer; }
button:hover { background: #203040; }
input:focus-visible, button:focus-visible, a:focus-visible { outline: 3px solid #4285b4; outline-offset: 3px; }
.auth-secondary { margin-top: 24px; padding-top: 20px; border-top: 1px solid #e0e6ec; text-align: center; }
.auth-secondary p { margin: 0; color: #536273; font-size: 14px; }
.auth-secondary a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: #254f73; font-weight: 600; text-underline-offset: 4px; }
.auth-about { margin: 24px 0 0; color: #536273; text-align: center; font-size: 13px; overflow-wrap: anywhere; }
.auth-error { padding: 12px; margin: 0 0 20px; border: 1px solid #edb4b4; border-radius: 6px; background: #fff4f4; color: #9e2020; font-size: 14px; overflow-wrap: anywhere; }
@media (max-width: 480px) {
    .auth-shell { padding-top: 32px; }
    .auth-header { margin-bottom: 24px; }
    .auth-panel { padding: 24px 20px; }
    .desktop-break { display: none; }
}
