@charset "UTF-8";
:root{--navy:#17243b;--blue:#315cf5;--text:#24334b;--muted:#8492a8;--line:#e2e8f2;--danger:#bb5369}
*{box-sizing:border-box}body{margin:0;color:var(--text);background:#f7f9fd;font-family:"Pretendard","Noto Sans KR","Malgun Gothic",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.6;letter-spacing:-.4px}button,input{font:inherit;letter-spacing:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #a9baf8;outline-offset:4px}button,input{-webkit-tap-highlight-color:transparent}svg{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}a{color:var(--blue);text-decoration:none}[hidden]{display:none!important}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(350px,42%) 1fr}.brand-panel{background:var(--navy);color:white;display:flex;flex-direction:column;padding:43px 58px 31px;position:relative;overflow:hidden}.brand-panel:before{content:"";position:absolute;width:550px;height:550px;background:radial-gradient(circle,#4567b528 0%,transparent 68%);left:-130px;top:80px;pointer-events:none}.brand{display:flex;gap:12px;align-items:center;color:white;font-weight:700;font-size:25px;letter-spacing:-1.5px;line-height:1.15;position:relative;z-index:1}.brand small{display:block;font-size:8px;letter-spacing:3.3px;color:#9fafd0;margin-top:8px}.brand-mark{width:31px;height:35px;display:flex;gap:4px;align-items:flex-end;transform:skewY(-15deg)}.brand-mark i{width:7px;border-radius:3px;background:#7499ff;display:block}.brand-mark i:nth-child(1){height:19px;background:#4c77ff}.brand-mark i:nth-child(2){height:28px}.brand-mark i:nth-child(3){height:35px;background:#afc4ff}.brand-story{margin:auto 0;padding:60px 0 55px;position:relative;z-index:1}.story-eyebrow{font-size:10px;font-weight:500;letter-spacing:2px;color:#7e9ac9}.brand-story h1{font-size:41px;line-height:1.5;letter-spacing:-2.4px;font-weight:550;margin:16px 0 18px}.brand-story>p{font-size:13px;line-height:1.95;color:#9aacc8;margin:0}.workspace-preview{max-width:340px;margin-top:34px;border:1px solid #3c4c68;background:#21314b;border-radius:12px;box-shadow:0 20px 60px #09152835;padding:18px 20px 15px;transform:rotate(-2deg)}.preview-top{display:flex;align-items:center;gap:5px;color:#7f94b8;font-size:7px;letter-spacing:1.3px}.preview-logo{width:8px;height:8px;background:#779cff;border-radius:2px;margin-right:1px}.preview-top i{width:3px;height:3px;background:#627997;border-radius:50%}.preview-top i:first-of-type{margin-left:auto}.preview-heading{display:flex;flex-direction:column;margin-top:20px;color:#9db1d4;font-size:10px}.preview-heading b{font-size:17px;color:#ecf2ff;margin-top:2px;font-weight:550;letter-spacing:-1px}.preview-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 13px}.preview-stats>div{border:1px solid #425571;border-radius:6px;padding:10px 12px;position:relative}.preview-stats span{font-size:8px;color:#8da3c4;display:block}.preview-stats b{color:#d6e4ff;font-size:13px;font-weight:500;margin-top:2px;display:block}.preview-stats i{position:absolute;right:11px;top:15px;width:10px;height:10px;border:2px solid #7e9ad0;border-radius:3px}.preview-stats>div:last-child i{border-color:#72a99f;border-radius:50%}.preview-row{display:flex;align-items:center;gap:8px;border-bottom:1px solid #364865;padding:11px 1px;color:#a7b8d4;font-size:9px}.preview-check{width:14px;height:14px;display:grid;place-items:center;background:#344f62;color:#83c3ad;border-radius:50%;font-size:8px}.preview-row small{margin-left:auto;color:#9bc4b9;background:#2c4855;border-radius:3px;padding:2px 5px;font-size:7px}.preview-bottom{display:flex;align-items:center;gap:5px;color:#7f98bd;font-size:7px;margin-top:14px}.preview-bottom i,.secure-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:#78baa5}.brand-footer{display:flex;align-items:center;gap:7px;font-size:10px;color:#7f96b9;z-index:1}.auth-panel{display:flex;flex-direction:column;min-width:0;padding:38px 45px 25px}.auth-top{display:flex;justify-content:flex-end}.private-badge{display:flex;align-items:center;gap:6px;font-size:9px;letter-spacing:1.2px;color:#8a9bb7}.private-badge svg{width:13px;height:13px;color:#8297bc}.auth-content{width:100%;max-width:396px;margin:auto;position:relative;padding:48px 0 52px}.auth-eyebrow{font-size:10px;color:#9baac0;letter-spacing:1.5px;font-weight:550;margin-bottom:11px}.auth-content h2{font-size:27px;letter-spacing:-1.3px;font-weight:650;line-height:1.45;margin:0 0 12px}.auth-description{font-size:13px;color:#8a98ae;line-height:1.9;margin:0 0 29px}.auth-form{margin:0}.field{margin-bottom:21px}.field label{display:block;font-size:12px;font-weight:550;color:#647891;margin-bottom:9px}.field input{width:100%;min-height:48px;padding:12px 14px;border:1px solid #dce4f0;background:white;border-radius:7px;color:#4b607d;font-size:14px;box-shadow:0 2px 5px #25334e03}.field input::placeholder{color:#b5bed0}.field input:focus{border-color:#829cf0;outline:3px solid #dce5ff80}.field input.otp-input{font-size:29px;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:17px;min-height:67px;text-align:center;padding:10px 0 10px 17px;color:#37578d}.field input.otp-input::placeholder{color:#d6dfed;font-weight:400}.field-hint{font-size:11px;line-height:1.8;color:#9ba8bb;margin:7px 0 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid #dce4f0;border-radius:7px;color:#7586a0;background:white;font-size:12px;font-weight:550;padding:11px 16px;min-height:43px;text-decoration:none;transition:background .15s}.btn:hover{background:#f0f4fc}.btn.primary{background:var(--blue);color:white;border-color:var(--blue);box-shadow:0 5px 13px #315cf51a}.btn.primary:hover{background:#254bd5}.btn.wide{width:100%;min-height:47px}.btn svg{width:16px;height:16px}.btn.ghost{background:none;border-color:transparent;color:#8799b5;font-size:11px;padding:8px 5px}.btn.download{color:#5577c6;background:#eef3ff;border-color:#dce5fa}.btn .spinner{width:14px;height:14px;border-color:#ffffff40;border-top-color:white}.form-error{padding:12px 14px;border:1px solid #f1d8df;background:#fff4f7;border-radius:7px;color:var(--danger);font-size:12px;line-height:1.8;margin-bottom:17px;overflow-wrap:anywhere}.helper-card{display:flex;gap:10px;align-items:flex-start;font-size:11px;color:#91a1ba;border:1px solid #e5ebf5;border-radius:7px;background:#f1f5fc;padding:13px 14px;line-height:1.9;margin:22px 0}.helper-card svg{width:16px;height:16px;flex-shrink:0;margin-top:2px;color:#8fa6cf}.helper-card strong{color:#6b83a8;font-weight:550}.helper-card.warning{color:#a58d5b;background:#fffaf0;border-color:#f0e5c7}.helper-card.warning svg{color:#b7a276}.auth-links{display:flex;justify-content:center;margin-top:19px}.auth-links .btn{line-height:1.8}.auth-divider{height:1px;background:#e6ebf3;margin:26px 0 18px}.auth-bottom-note{text-align:center;color:#b0bbcc;font-size:10px;margin:18px 0 0;line-height:1.9}.auth-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;color:#aab5c7;font-size:10px;margin-top:10px}.auth-footer>span:first-child{font-weight:600}.spinner{width:20px;height:20px;border:2px solid #dce5f6;border-top-color:#6081df;border-radius:50%;display:inline-block;animation:spin .8s linear infinite}.auth-loading{text-align:center;padding:70px 0;color:#9ba9be;font-size:12px}.auth-loading p{margin-top:16px}.auth-steps{display:flex;gap:5px;align-items:center;margin:0 0 25px}.auth-step{font-size:10px;color:#b0bdd0;display:flex;gap:5px;align-items:center}.auth-step i{font-size:9px;line-height:17px;text-align:center;font-style:normal;width:18px;height:18px;border:1px solid #e0e6f0;border-radius:50%;background:#fff;color:#acb9ce}.auth-step.active{color:#6788d8}.auth-step.active i{background:#eaf0ff;border-color:#d3dffc;color:#6788d8}.auth-steps>span{height:1px;width:15px;background:#e0e6f1;margin:0 2px}.qr-layout{display:flex;justify-content:center;padding:17px;border:1px solid #e0e7f2;background:white;border-radius:9px;margin:20px 0 12px}.qr-layout canvas{display:block;width:232px;max-width:100%;height:auto;image-rendering:pixelated}.qr-caption{text-align:center;font-size:11px;color:#9aaac2;line-height:1.8}.setup-expiry{display:inline-block;font-variant-numeric:tabular-nums;color:#7f97bd;margin-left:4px}.setup-expiry.urgent{color:#be7382}.manual-key{font-size:11px;color:#869ab8;padding:10px 0 0;margin-bottom:24px}.manual-key summary{cursor:pointer;color:#91a4c2;text-align:center;list-style:none}.manual-key summary::-webkit-details-marker{display:none}.manual-key summary:after{content:'⌄';display:inline-block;margin-left:6px;color:#a4b2c7}.manual-key[open] summary:after{transform:rotate(180deg)}.manual-key code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1.3px;line-height:1.9;display:block;text-align:center;font-size:13px;padding:15px 10px 12px;background:#edf2fb;border:1px solid #dfe7f5;border-radius:6px;color:#7188af;margin-top:13px;overflow-wrap:anywhere;user-select:all}.manual-key p{font-size:10px;color:#a1afc2;margin:8px 0 0;text-align:center}.enrollment-description{font-size:12px;margin-bottom:15px;line-height:1.9;color:#8b9cb6}.auth-content.enrolling{padding-top:30px;padding-bottom:34px;max-width:420px}.auth-content.enrolling h2{font-size:24px}.enroll-confirm{margin-top:23px}.enroll-confirm .field{margin-bottom:15px}.enroll-confirm .field input.otp-input{font-size:25px;min-height:58px;letter-spacing:15px;padding-left:15px}.auth-content.recovery-backup{max-width:430px}.backup-icon{width:44px;height:44px;background:#e9f4f0;border:1px solid #d5e9e0;color:#78a796;display:grid;place-items:center;border-radius:12px;margin-bottom:20px}.backup-icon svg{width:23px;height:23px}.backup-codes{display:grid;grid-template-columns:1fr 1fr;gap:9px;border:1px solid #dfe7f5;background:white;border-radius:8px;padding:16px;margin:23px 0 15px}.backup-code{background:#f5f7fc;border:1px solid #e9eef7;border-radius:4px;color:#6e84a6;padding:7px;text-align:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:1px;font-size:12px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.backup-saved{display:flex;gap:9px;align-items:flex-start;color:#889bb7;font-size:12px;line-height:1.8;margin:24px 0 20px}.backup-saved input{width:16px;height:16px;margin:3px 0 0;flex-shrink:0;accent-color:var(--blue)}.backup-single-note{color:#9babc1;font-size:11px;line-height:1.8;text-align:center;margin:10px 0 0}.noscript{position:fixed;inset:auto 20px 20px;background:white;border:1px solid #e0e5ef;box-shadow:0 5px 25px #17243b22;border-radius:8px;padding:18px;text-align:center;color:#7e8da5;z-index:10}.small-link{font-size:11px;color:#91a4c3;border:0;background:transparent;padding:3px;cursor:pointer}.recovery-warning{font-size:11px;color:#a08c68;background:#fffaf0;border:1px solid #f0e6cf;padding:13px 14px;border-radius:7px;line-height:1.9;margin:0 0 23px}.recovery-warning strong{color:#9b8457;font-weight:550}.setup-warning{color:#9aabc3;font-size:10px;line-height:1.9;margin:18px 0 0}.loading-button-note{min-height:18px;margin:7px 0 0;font-size:10px;color:#9aabc4;text-align:center}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1600px){.brand-panel{padding-left:80px;padding-right:75px}.brand-story{max-width:390px;margin-left:auto;margin-right:auto;width:100%}.brand-story h1{font-size:46px}.workspace-preview{max-width:370px}.auth-content{max-width:415px}.auth-panel{padding-left:65px;padding-right:65px}.brand-story>p{font-size:14px}}
@media(max-width:1100px){.login-shell{grid-template-columns:38% 62%}.brand-panel{padding:35px 34px 28px}.brand{font-size:22px}.brand-story h1{font-size:34px}.brand-story>p{font-size:12px}.workspace-preview{padding:15px;transform:none}.preview-heading b{font-size:16px}.preview-row{font-size:8px}.brand-story{padding-top:45px;padding-bottom:45px}.auth-panel{padding:30px 35px 24px}.auth-content{max-width:365px}.auth-content h2{font-size:25px}.story-eyebrow{font-size:8px;letter-spacing:1.5px}.brand-footer{font-size:9px}}
@media(max-width:760px){.login-shell{display:block;min-height:100vh}.brand-panel{padding:22px 25px 25px;min-height:auto;border-radius:0 0 20px 20px}.brand{font-size:21px;gap:10px}.brand small{font-size:7px;letter-spacing:2.6px;margin-top:6px}.brand-mark{width:27px;height:29px;gap:4px}.brand-mark i{width:6px}.brand-mark i:nth-child(1){height:16px}.brand-mark i:nth-child(2){height:24px}.brand-mark i:nth-child(3){height:29px}.brand-story{padding:23px 0 0;margin:0;display:block}.story-eyebrow,.workspace-preview,.brand-footer{display:none}.brand-story h1{font-size:21px;line-height:1.55;letter-spacing:-1px;margin:0}.brand-story h1 br{display:none}.brand-story>p{margin-top:6px;font-size:11px;color:#8fa4c4}.brand-story>p br{display:none}.auth-panel{padding:21px 25px 20px;min-height:calc(100vh - 185px)}.auth-top{display:none}.auth-content{max-width:420px;padding:35px 0 40px;margin:auto}.auth-content h2{font-size:25px}.auth-description{font-size:12px;margin-bottom:25px}.auth-footer{font-size:9px}.auth-content.enrolling{padding:28px 0 30px}.auth-content.enrolling h2{font-size:23px}.auth-eyebrow{font-size:9px}.qr-layout{padding:15px}.qr-layout canvas{width:220px}.qr-caption{font-size:10px}.auth-steps{margin-bottom:23px}.auth-content.recovery-backup{padding-top:28px}.private-badge{font-size:8px}.backup-codes{gap:8px;padding:13px}.backup-code{font-size:12px}.helper-card{font-size:11px}.auth-bottom-note{font-size:10px}}
@media(max-width:370px){.auth-panel{padding-left:20px;padding-right:20px}.brand-panel{padding-left:22px;padding-right:22px}.field input.otp-input{font-size:26px;letter-spacing:14px;padding-left:14px}.auth-content h2{font-size:23px}.backup-code{font-size:11px;letter-spacing:.5px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
