:root { color-scheme: light; font-family: "Yu Gothic UI", "Noto Sans JP", Meiryo, sans-serif; }
* { box-sizing: border-box; }
body.login-page { min-height: 100vh; margin: 0; color: #16213d; background: linear-gradient(145deg,#eef3fb 0%,#f8fafc 52%,#e8eef8 100%); }
.login-shell { min-height: 100vh; display: grid; place-items: center; padding: 1.25rem; }
.login-card { width: min(28rem,100%); padding: 2.35rem 2.5rem 2.5rem; background: #fff; border: 1px solid #dce2ed; border-radius: .9rem; box-shadow: 0 18px 55px rgba(26,39,72,.14); }
.login-brand { color: #263a78; font-size: .83rem; font-weight: 760; letter-spacing: .12em; }
.login-card h1 { margin: .65rem 0 .35rem; color: #101c3b; font-size: 1.75rem; }
.login-description { margin: 0 0 1.7rem; color: #687188; font-size: .86rem; }
.login-card form { display: grid; gap: .5rem; }
.login-card label { margin-top: .65rem; color: #2d3956; font-size: .82rem; font-weight: 720; }
.login-card input[type="text"],.login-card input[type="password"] { width: 100%; min-height: 2.85rem; padding: .65rem .8rem; color: #17213b; background: #fbfcfe; border: 1px solid #bbc5d7; border-radius: .45rem; font: inherit; }
.login-card input:focus { outline: 3px solid rgba(48,73,163,.16); border-color: #4b62b2; }
.login-remember { display: flex; align-items: center; gap: .55rem; margin: .75rem 0 .55rem !important; font-weight: 550 !important; cursor: pointer; }
.login-remember input { width: 1rem; height: 1rem; accent-color: #314ca3; }
.login-card button { min-height: 3rem; margin-top: .3rem; color: #fff; background: #263f98; border: 0; border-radius: .48rem; font: 760 .95rem/1 inherit; cursor: pointer; }
.login-card button:hover { background: #1d337f; }
.login-error,.login-field-error { color: #a12635; font-size: .78rem; }
.login-error ul { margin: 0 0 .35rem; padding: .65rem .8rem .65rem 1.8rem; background: #fff2f3; border: 1px solid #edc4c8; border-radius: .4rem; }
.validation-summary-valid,.field-validation-valid { display: none; }
@media (max-width: 520px) { .login-card { padding: 1.7rem 1.3rem 1.8rem; } }
