[hidden]{display:none!important}
body:has(#auth-shell:not([hidden])){margin:0;background:#f2f5fc;color:#243554;font-family:system-ui,'Noto Sans JP',sans-serif}
#auth-shell{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,1fr);align-items:center;gap:50px;max-width:1240px;margin:auto;padding:50px 30px;box-sizing:border-box}
.auth-intro .auth-brand{font-size:clamp(28px,4vw,48px);font-weight:850;line-height:1.25;color:#446fa8;letter-spacing:.03em}.auth-intro p{line-height:1.9}.auth-art{width:100%;border-radius:24px;margin:24px 0;box-shadow:0 15px 50px #385d8b12}
.auth-card{background:#fff;border:1px solid #dfe5f0;border-radius:26px;padding:32px;box-shadow:0 20px 60px #304b7710}.auth-card h1{font-size:28px;margin:26px 0 14px}.auth-tabs{display:flex;gap:8px}.auth-tabs button{flex:1;padding:12px;background:#f0f3fa;border:0;border-radius:12px;color:#4b6185;font-weight:700}.auth-tabs button[aria-pressed=true]{background:#4e79bc;color:white}.auth-card label{display:block;margin:16px 0;font-weight:600}.auth-card input{display:block;box-sizing:border-box;width:100%;margin-top:7px;padding:13px;border:1px solid #cbd6e6;border-radius:10px;font:inherit;color:#243554;background:#fff;min-height:46px}.auth-card input:focus{outline:3px solid #9ec6ff;outline-offset:2px}.auth-card button{cursor:pointer;font:inherit;min-height:44px}.auth-submit{width:100%;padding:14px;background:#4e79bc;color:white;border:0;border-radius:12px;font-weight:700!important}.auth-card button:disabled{opacity:.55;cursor:wait}.auth-link{display:block;background:transparent;color:#446fa8;border:0;margin-top:12px;padding:4px 0}.auth-note{color:#64738a;font-size:13px;line-height:1.8}.auth-message{line-height:1.8;min-height:28px;color:#354e79;overflow-wrap:anywhere}.auth-intro .auth-tag{color:#7d92b2;font-size:12px;letter-spacing:.16em}
@media(max-width:760px){#auth-shell{grid-template-columns:1fr;gap:16px;padding:26px 18px}.auth-intro .auth-brand{font-size:27px}.auth-art{margin:14px 0;max-height:160px;object-fit:cover}.auth-intro p{margin:8px 0}.auth-card{padding:24px}.auth-intro .auth-tag{display:none}}
