.auth-overlay{position:fixed;inset:0;background:rgba(4,8,35,.74);backdrop-filter:blur(6px);z-index:120;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease} .auth-overlay.open{opacity:1;visibility:visible} .auth-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.98);width:min(960px,calc(100vw - 24px));max-height:min(92vh,820px);display:grid;grid-template-columns:minmax(300px,42%) minmax(0,58%);background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,.42);z-index:130;opacity:0;visibility:hidden;transition:opacity .22s ease,transform .22s ease,visibility .22s ease;color:#0f172a} .auth-modal.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)} .auth-visual{position:relative;min-height:100%;padding:32px 28px;background:radial-gradient(circle at 18% 18%, rgba(89,138,255,.35), transparent 24%),linear-gradient(180deg,#1b2b78 0%,#131d57 100%);display:flex;flex-direction:column;justify-content:space-between;color:#fff;overflow:hidden} .auth-visual:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 18%, rgba(52,211,153,.16), transparent 22%), radial-gradient(circle at 20% 78%, rgba(255,255,255,.1), transparent 18%);pointer-events:none} .auth-visual-content,.auth-visual-footer{position:relative;z-index:1} .auth-visual-badge{display:inline-flex;align-items:center;padding:10px 16px;border-radius:999px;background:rgba(255,255,255,.14);font-size:12px;font-weight:800;letter-spacing:.08em} .auth-visual-title{margin:18px 0 12px;font-size:42px;line-height:.98;font-weight:900;letter-spacing:-.04em} .auth-visual-text{max-width:320px;font-size:15px;line-height:1.7;color:rgba(255,255,255,.78)} .auth-visual-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px} .auth-visual-point{border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.08);padding:14px 10px;text-align:center;font-size:13px;line-height:1.4} .auth-visual-point i{display:block;font-size:18px;margin-bottom:8px;color:#34d399} .auth-panel-shell{display:flex;flex-direction:column;min-height:0;background:#fff} .auth-panel-head{display:flex;align-items:flex-start;justify-content:space-between;padding:26px 24px 14px;border-bottom:1px solid rgba(15,23,42,.08);gap:16px} .auth-panel-title{font-size:16px;font-weight:900;letter-spacing:.05em;color:#0f172a} .auth-panel-subtitle{margin-top:8px;font-size:15px;color:#6b7280;line-height:1.5} .auth-panel-switch{color:#10b981;font-weight:700} .auth-close{width:40px;height:40px;border-radius:999px;border:none;background:#f2f4f7;color:#475569;font-size:18px;cursor:pointer;flex-shrink:0} .auth-panel-body{padding:20px 24px 24px;overflow:auto;min-height:0} .auth-panel{display:none} .auth-panel.active{display:block} .auth-form{display:flex;flex-direction:column;gap:16px} .auth-field{display:flex;flex-direction:column;gap:8px} .auth-field label{font-size:13px;font-weight:700;color:#475569} .auth-input,.auth-select{width:100%;height:52px;border:1px solid #d6dae4;border-radius:14px;padding:0 16px;font-size:15px;color:#111827;background:#fff;outline:none;transition:border-color .18s ease, box-shadow .18s ease} .auth-input::placeholder{color:#9ca3af} .auth-input:-webkit-autofill,.auth-input:-webkit-autofill:hover,.auth-input:-webkit-autofill:focus,.auth-select:-webkit-autofill{ -webkit-text-fill-color:#111827; -webkit-box-shadow:0 0 0 1000px #ffffff inset; box-shadow:0 0 0 1000px #ffffff inset; transition:background-color 9999s ease-out 0s;} .auth-input:focus,.auth-select:focus{border-color:#22c55e;box-shadow:0 0 0 4px rgba(34,197,94,.12)} .auth-input.is-invalid,.auth-select.is-invalid{border-color:#ef4444;box-shadow:none} .auth-row-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px} .auth-submit,.auth-secondary-btn{height:56px;border:none;border-radius:14px;font-size:16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0 20px} .auth-submit{width:100%;background:linear-gradient(180deg,#28dba8 0%,#13c590 100%);color:#fff;box-shadow:0 16px 30px rgba(19,197,144,.24)} .auth-secondary-btn{background:#eef2f7;color:#334155} .auth-helper{text-align:center;font-size:14px;color:#64748b} .auth-link{color:#10b981;font-weight:700} .auth-register-steps{display:flex;align-items:center;gap:10px;margin-bottom:18px} .auth-step-dot{width:34px;height:34px;border-radius:999px;background:#e5e7eb;color:#64748b;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800} .auth-step-dot.active{background:#10b981;color:#fff} .auth-step-line{flex:1;height:4px;border-radius:999px;background:#e5e7eb} .auth-step-line.active{background:#10b981} .auth-register-step{display:none} .auth-register-step.active{display:block} .auth-register-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px} .auth-note{font-size:12px;color:#94a3b8;line-height:1.6;margin-top:14px;text-align:center} .auth-error-box,.auth-success-box{border-radius:14px;padding:14px 16px;font-size:14px;line-height:1.6;margin-bottom:16px} .auth-error-box{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c} .auth-success-box{background:#ecfdf5;border:1px solid #a7f3d0;color:#047857} .auth-modal-success{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.98);width:min(460px,calc(100vw - 24px));background:#fff;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.42);z-index:135;padding:28px 24px 24px;opacity:0;visibility:hidden;transition:opacity .2s ease, transform .2s ease, visibility .2s ease;color:#0f172a;text-align:center} .auth-modal-success.open{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)} .auth-success-icon{width:78px;height:78px;border-radius:999px;margin:0 auto 16px;background:linear-gradient(180deg,#34d399 0%,#10b981 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:34px;box-shadow:0 18px 36px rgba(16,185,129,.24)} .auth-success-title{font-size:28px;font-weight:900;letter-spacing:-.03em;margin-bottom:10px;color:#0f172a} .auth-success-text{font-size:15px;line-height:1.7;color:#64748b;margin-bottom:18px} .auth-success-btn{width:100%;height:54px;border:none;border-radius:14px;background:linear-gradient(180deg,#28dba8 0%,#13c590 100%);color:#fff;font-size:16px;font-weight:800;cursor:pointer} @media(max-width:991px){.auth-modal{width:min(720px,calc(100vw - 20px));grid-template-columns:1fr}.auth-visual{min-height:240px;padding:24px}.auth-visual-title{font-size:34px}.auth-visual-points{grid-template-columns:repeat(3,minmax(0,1fr))}} @media(max-width:767px){.auth-modal{width:min(100vw - 12px,560px);max-height:min(96vh,900px);border-radius:18px}.auth-overlay{background:rgba(4,8,35,.82)}.auth-visual{padding:20px;min-height:auto}.auth-visual-title{font-size:28px}.auth-visual-text{font-size:14px;max-width:none}.auth-visual-points{grid-template-columns:1fr 1fr 1fr;gap:8px}.auth-panel-head{padding:20px 18px 12px}.auth-panel-body{padding:16px 18px 18px;max-height:min(58vh,480px)}.auth-row-2{grid-template-columns:1fr}.auth-register-actions{flex-direction:column-reverse;align-items:stretch}.auth-submit,.auth-secondary-btn{width:100%;height:58px}.auth-modal-success{padding:24px 18px 20px;border-radius:18px}}