:root{font-family:'Noto Sans KR','Malgun Gothic',Arial,sans-serif;color:#0b2435;background:#eaf0f1}
*{box-sizing:border-box}
body{margin:0;min-width:320px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 15% 10%,#ffffff 0 14%,transparent 45%),linear-gradient(145deg,#eff5f5,#d8e5e5)}
.login-dialog{width:min(100%,460px);background:#fff;border:1px solid #d8e2e4;border-radius:18px;padding:38px;box-shadow:0 24px 70px #183b4430}
.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}
.login-brand img{width:42px;height:42px;object-fit:contain}
.login-brand strong{display:block;font-size:26px;line-height:1;font-weight:800;letter-spacing:-1.2px}
.login-brand span{display:block;font-size:9px;letter-spacing:1.7px;margin-top:7px}
.login-kicker{margin:0 0 7px;color:#6f858b;font-size:12px;font-weight:700;letter-spacing:2px}
h1{margin:0;font-size:27px;letter-spacing:-1.2px}
.login-description{margin:10px 0 28px;color:#6f7f85;font-size:15px}
label{display:block;margin:18px 0 7px;font-size:14px;font-weight:700;color:#364d55}
input{width:100%;height:50px;border:1px solid #cbd7da;border-radius:9px;padding:0 14px;font:inherit;color:#102e38;background:#fff;outline:none}
input:focus{border-color:#11877f;box-shadow:0 0 0 3px #11877f20}
.login-error{min-height:23px;margin:12px 0 4px;color:#c53d35;font-size:13px}
button{width:100%;height:52px;border:0;border-radius:9px;background:#11877f;color:#fff;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 10px 24px #11877f30}
button:hover{background:#0c746e}
button:focus-visible{outline:3px solid #7ad8d1;outline-offset:3px}
button:disabled{opacity:.65;cursor:wait}
.login-note{margin:22px 0 0;text-align:center;color:#89979b;font-size:12px}
@media(max-width:520px){.login-page{padding:14px}.login-dialog{padding:28px 22px;border-radius:14px}h1{font-size:24px}}
