/* Login page: local Bootstrap with a dedicated visual layer. */
:root{--ink:#172744;--muted:#77849b;--accent:#a8c5ff;--line:#e0e6f0}
*{box-sizing:border-box}body{margin:0;background:#f4f6fa;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans KR","Malgun Gothic",sans-serif;-webkit-font-smoothing:antialiased}.login-shell{min-height:100vh;display:flex;padding:20px;gap:0}.brand-panel{width:51%;position:relative;overflow:hidden;background:#101e3b;border-radius:12px;color:#fff;display:flex;flex-direction:column;padding:46px 55px;min-height:720px}.brand-panel:before{content:"";position:absolute;width:660px;height:660px;border:1px solid #ffffff09;border-radius:50%;right:-310px;top:90px;box-shadow:0 0 0 65px #ffffff03,0 0 0 130px #ffffff02;pointer-events:none}.brand{position:relative;display:flex;align-items:center;gap:12px;font-size:24px;font-weight:700;letter-spacing:-1px;color:#fff}.brand:hover,.brand:focus{color:#fff;text-decoration:none}.brand-mark{width:43px;height:43px;border:1px solid #a8c5ff66;border-radius:12px;display:grid;place-items:center;font-size:29px;color:var(--accent);line-height:1}.brand-mark>span{display:none}.brand-light{font-weight:400;margin-left:4px}.brand small{display:block;font-size:8px;font-weight:500;letter-spacing:2.4px;color:#a3b2cb;margin-top:4px}.brand-story{position:relative;margin:auto 0;padding:75px 0}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;color:#a8c5ff;display:flex;align-items:center;gap:12px}.small-line{height:1px;width:27px;background:var(--accent)}h1{font-size:clamp(29px,3.1vw,46px);font-weight:500;line-height:1.55;letter-spacing:-2px;margin:25px 0 23px}.brand-story>p{color:#a3b4ce;font-size:14px;line-height:1.95;font-weight:400}.workflow{margin-top:48px;max-width:420px;padding:20px 23px;border:1px solid #ffffff1c;border-radius:12px;background:#ffffff04}.flow-top,.flow-bottom{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px;color:#8d9fbc}.flow-dots{letter-spacing:3px}.flow-track{display:flex;justify-content:space-between;align-items:center;padding:25px 0 27px}.flow-track>div{display:flex;align-items:center;flex-direction:column;gap:11px}.flow-track i{color:#cbdcff;font-size:22px}.flow-track span{font-size:11px;color:#c5d1e5}.flow-track b{font-weight:400;color:#627ba2}.flow-bottom{border-top:1px solid #ffffff10;padding-top:14px;font-size:9px;letter-spacing:0}.flow-bottom i{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-right:6px}.brand-footer{position:relative;display:flex;justify-content:space-between;font-size:10px;color:#8298ba;letter-spacing:1px}.form-panel{width:49%;padding:25px 45px 8px;display:flex;flex-direction:column}.panel-top{display:flex;justify-content:space-between;font-size:11px;color:#858e87}.access-label{display:flex;gap:6px;align-items:center}.form-content{width:100%;max-width:370px;margin:auto;padding:65px 0}.welcome-icon{display:grid;place-items:center;width:45px;height:45px;border:1px solid #dbe3f3;border-radius:13px;background:#e9effa;color:#436397;font-size:20px;margin-bottom:29px}.form-eyebrow{font-size:9px;color:#7289ad;letter-spacing:2px}h2{font-size:32px;letter-spacing:-1.3px;font-weight:600;margin:14px 0}.form-description{font-size:13px;color:var(--muted);line-height:1.7;margin:0 0 33px}.form-group{margin-bottom:22px}.form-group label{font-size:12px;font-weight:600;margin-bottom:10px}.field-wrap{position:relative}.field-icon{position:absolute;left:16px;top:19px;color:#8c9ab2;font-size:15px;pointer-events:none}.form-control{height:52px;padding:12px 44px;background:#fff;border:1px solid #dce3ef;border-radius:7px;box-shadow:none;font-size:13px;color:var(--ink)}.form-control::placeholder{color:#9da8bb;font-size:12px}.form-control:focus{border-color:#5a80bb;box-shadow:0 0 0 3px #5a80bb18}.password-toggle{position:absolute;right:5px;top:5px;width:42px;height:42px;border:0;background:transparent;color:#8c9ab2;border-radius:5px}.password-toggle:hover{color:var(--ink);background:#edf2fa}.password-toggle:focus-visible,.login-button:focus-visible,.brand:focus-visible{outline:3px solid #7095d0;outline-offset:3px}.account-note{display:flex;gap:7px;font-size:11px;line-height:1.7;color:#7f8ea7;margin:0 0 27px}.account-note i{padding-top:3px}.login-button{height:53px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;border:1px solid #203e73;border-radius:7px;background:#203e73;font-size:13px;font-weight:600;box-shadow:0 4px 10px #142c290b;transition:background .15s,transform .15s}.login-button:hover,.login-button:focus,.login-button:active{background:#294e8c!important;border-color:#294e8c!important}.login-button:active{transform:translateY(1px)}.login-button i{font-size:12px;color:#c3d6fa}.private-note{display:flex;justify-content:center;gap:7px;align-items:center;border-top:1px solid var(--line);padding-top:24px;margin-top:29px;color:#8c9ab0;font-size:10px}.private-note i{font-size:13px}.form-footer{text-align:center;font-size:9px;color:#99a5ba;letter-spacing:.3px}.form-footer span{margin-left:3px}.login-message{font-size:12px;line-height:1.7;border-radius:7px}.login-message[hidden]{display:none!important}
@media(min-width:1500px){.login-shell{padding:30px}.brand-panel{padding:55px 75px}.form-panel{padding:30px 65px 14px}}
@media(max-width:991px){.brand-panel{padding:35px 30px;width:46%}.form-panel{width:54%;padding:23px 30px 10px}h1{font-size:29px;letter-spacing:-1.5px}.eyebrow{font-size:8px;letter-spacing:1.3px}.workflow{padding:17px}.brand-story{padding:55px 0}.flow-bottom>span:last-child{display:none}}
@media(max-width:700px){.login-shell{display:block;padding:12px}.brand-panel{width:100%;min-height:auto;padding:25px;border-radius:10px}.brand{font-size:20px}.brand-mark{width:36px;height:36px;font-size:24px}.brand-story{padding:25px 0 5px}.brand-story .eyebrow,.brand-story>p,.workflow,.brand-footer{display:none}h1{font-size:25px;line-height:1.55;margin:0;letter-spacing:-1px}.form-panel{width:100%;padding:24px 15px 18px}.panel-top{font-size:10px}.form-content{padding:34px 0 35px;max-width:390px}.welcome-icon{display:none}.form-description{margin-bottom:28px}h2{font-size:28px}.form-footer{font-size:9px}.private-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
