:root{--bg-dark: #ffffff;--bg-card: #ffffff;--bg-input: #ffffff;--border-color: #949494;--border-focus: #3b82f6;--text-primary: #ffffff;--text-secondary: #949494;--text-muted: #949494;--text-error: #f87171;--accent-purple: #7c3aed;--accent-purple-light: #a78bfa;--accent-blue: #2563eb;--accent-blue-light: #60a5fa;--accent-green: #059669;--accent-green-light: #34d399;--success: #10b981;--warning: #f59e0b;--danger: #ef4444}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans KR,Inter,sans-serif;background:#fff;min-height:100vh;color:#000;display:flex;flex-direction:column;padding:0}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}.login-layout{position:relative;width:100%;min-height:100vh;display:flex;flex-direction:column}.login-top-header{display:flex;align-items:center;justify-content:center;gap:13px;padding:0 32px;height:115px;flex-shrink:0}.login-top-header .logo-icon{width:30px;height:30px;background:#d9d9d9;border-radius:10px;flex-shrink:0}.login-top-header .logo-text{font-size:28px;font-weight:700;color:#000;font-family:Inter,sans-serif}.login-header-line{width:100%;height:1px;background:#949494;flex-shrink:0}.login-container{width:100%;max-width:626px;margin:0 auto;flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 20px}.login-title{font-size:36px;font-weight:700;text-align:center;color:#000;margin-bottom:40px;font-family:Inter,Noto Sans KR,sans-serif}.login-card{background:transparent;border:none;border-radius:0;padding:0}.form-group{margin-bottom:20px}.form-label{display:none}.form-input{width:100%;padding:14px 20px;background:#fff;border:1px solid #949494;border-radius:10px;font-size:16px;font-weight:700;font-family:Inter,Noto Sans KR,sans-serif;color:#000;transition:border-color .2s;height:49px}.form-input:focus{outline:none;border-color:#008cff;border-width:2px}.form-input::-moz-placeholder{color:#949494;font-weight:700}.form-input::placeholder{color:#949494;font-weight:700}.form-input.error{border-color:var(--danger)}.password-field{position:relative}.password-field .form-input{padding-right:48px}.password-toggle{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;color:#949494}.form-error{font-size:.75rem;color:var(--danger);margin-top:6px}.login-error-message{font-size:14px;font-family:Inter,Noto Sans KR,sans-serif;font-weight:400;color:#ff3535;line-height:1.4;margin-top:22px;margin-bottom:22px;white-space:pre-wrap}.options-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.remember-me{display:flex;align-items:center;gap:8px;cursor:pointer}.remember-me input{display:none}.remember-me .check-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#949494;transition:color .2s}.remember-me input:checked+.check-icon{color:#434343}.remember-me span{font-size:14px;font-weight:700;color:#949494}.options-links{display:flex;align-items:center;gap:16px}.forgot-link{font-size:14px;font-weight:500;color:#949494;text-decoration:none}.forgot-link:hover{text-decoration:none}.options-links-separator{width:1px;height:14px;background:#949494}.btn{width:100%;padding:16px 24px;border:none;border-radius:10px;font-size:16px;font-weight:700;font-family:Inter,Noto Sans KR,sans-serif;cursor:pointer;transition:all .2s;height:58px}.btn-primary{background:#313131;color:#fff}.btn-primary:hover:not(:disabled){background:#434343}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn.loading{position:relative;color:transparent}.btn.loading:after{content:"";position:absolute;width:20px;height:20px;top:50%;left:50%;margin:-10px 0 0 -10px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:14px 16px;border-radius:8px;font-size:.875rem;margin-bottom:20px;display:flex;align-items:center;gap:10px}.alert.success{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:var(--success)}.alert.error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:var(--danger)}.alert.warning{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);color:var(--warning)}.alert.info{background:#2563eb1a;border:1px solid rgba(37,99,235,.3);color:var(--accent-blue-light)}.divider{display:flex;align-items:center;margin:24px 0}.divider:before,.divider:after{content:"";flex:1;height:1px;background:#949494}.divider span{padding:0 16px;font-size:14px;font-weight:700;color:#949494}.demo-panel{position:fixed;right:24px;top:50%;transform:translateY(-50%);width:300px;background:var(--bg-card);border:1px dashed var(--border-color);border-radius:16px;padding:20px;opacity:.75;transition:opacity .2s;max-height:calc(100vh - 48px);overflow-y:auto}.demo-panel:hover{opacity:1}.demo-panel-header{font-size:.875rem;font-weight:700;color:var(--accent-blue-light);margin-bottom:4px}.demo-panel-desc{font-size:.7rem;color:var(--text-muted);margin-bottom:16px}@media(max-width:1100px){.demo-panel{position:static;transform:none;width:100%;max-width:420px;margin:24px auto 0}}.demo-grid{display:flex;flex-direction:column;gap:14px}.demo-company-title{width:100%;font-size:.7rem;color:#60a5fa;font-weight:600;margin:0 0 6px}.demo-company-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.demo-btn{padding:10px 12px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);font-size:.75rem;font-family:inherit;cursor:pointer;transition:all .2s;text-align:left}.demo-btn:hover{border-color:var(--accent-blue);color:var(--text-primary)}.demo-btn .role-label{display:block;font-weight:600}.demo-btn.production .role-label{color:var(--accent-blue-light)}.btn-google{width:100%;height:54px;background:#fff;border:1px solid #000000;border-radius:10px;font-size:16px;font-weight:500;font-family:Inter,Noto Sans KR,sans-serif;color:#313131;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:12px}.btn-google:hover:not(:disabled){background:#f5f5f5}.btn-google .google-icon{width:40px;height:40px;background:#d9d9d9;border-radius:10px;display:flex;align-items:center;justify-content:center}.footer{text-align:center;margin-top:24px}.footer-text{font-size:14px;font-weight:700;color:#434343}.footer-text a{color:#161616;text-decoration:none;font-weight:700}.footer-text a:hover{text-decoration:underline}.pending-banner{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:12px;padding:20px;margin-bottom:24px}.pending-banner-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.pending-banner-icon{width:40px;height:40px;background:#f59e0b33;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.pending-banner-title{font-size:1rem;font-weight:600;color:var(--warning)}.pending-banner-desc{font-size:.8125rem;color:var(--text-secondary);line-height:1.5;margin-bottom:12px}.pending-banner-info{background:var(--bg-input);border-radius:8px;padding:12px;font-size:.75rem;color:var(--text-muted)}.pending-banner-info dt{display:inline;color:var(--text-secondary)}.pending-banner-info dd{display:inline;margin-left:8px;color:var(--text-primary)}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;visibility:hidden;transition:all .3s}.modal-overlay.show{opacity:1;visibility:visible}.modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;width:100%;max-width:440px;max-height:90vh;overflow-y:auto;transform:translateY(20px);transition:transform .3s}.modal-overlay.show .modal{transform:translateY(0)}.modal-header{padding:24px 24px 0;display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:1.125rem;font-weight:600}.modal-close{width:32px;height:32px;border:none;background:var(--bg-input);border-radius:8px;color:var(--text-secondary);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-close:hover{background:var(--border-color);color:var(--text-primary)}.modal-body{padding:24px}.modal-footer{padding:0 24px 24px;display:flex;gap:12px}.modal-footer .btn{flex:1}.btn-secondary{background:#0f172a;border:1px solid #334155;color:#94a3b8}.btn-secondary:hover{background:#334155;color:#f8fafc}.kyc-upgrade-info{text-align:center;margin-bottom:24px}.kyc-upgrade-icon{width:64px;height:64px;background:#f59e0b1a;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;margin:0 auto 16px}.kyc-upgrade-title{font-size:1rem;font-weight:600;margin-bottom:8px}.kyc-upgrade-desc{font-size:.8125rem;color:var(--text-secondary);line-height:1.5}.kyc-benefit-list{background:var(--bg-input);border-radius:10px;padding:16px;margin-bottom:20px;list-style:none}.kyc-benefit-list li{display:flex;align-items:center;gap:10px;font-size:.8125rem;color:var(--text-secondary);padding:8px 0;border-bottom:1px solid var(--border-color)}.kyc-benefit-list li:last-child{border-bottom:none}.kyc-benefit-list li:before{content:"✓";width:20px;height:20px;background:#10b98133;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.6875rem;color:var(--success);flex-shrink:0}.bank-form .form-group{margin-bottom:16px}.file-upload-mini{border:2px dashed var(--border-color);border-radius:10px;padding:20px;text-align:center;cursor:pointer;transition:all .2s}.file-upload-mini:hover{border-color:var(--accent-blue);background:#2563eb0d}.file-upload-mini.has-file{border-style:solid;border-color:var(--success)}.file-upload-mini input{display:none}.file-upload-mini-text{font-size:.8125rem;color:var(--text-secondary)}.file-upload-mini-hint{font-size:.6875rem;color:var(--text-muted);margin-top:4px}.login-lang-switcher{display:flex;justify-content:center;gap:6px;margin-bottom:12px}.login-lang-btn{padding:4px 12px;background:transparent;border:1px solid var(--border-color);border-radius:4px;font-size:.75rem;color:var(--text-secondary);cursor:pointer;font-family:inherit;transition:all .15s}.login-lang-btn:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.login-lang-btn.active{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}
