.tp-login{--violet-950:#23004f;--violet-900:#320073;--violet-800:#43149a;--violet-600:#6c16d6;--violet-500:#8618ff;--violet-100:#ede3ff;--violet-50:#f7f2ff;--l-slate-900:#0f172a;--l-slate-700:#334155;--l-slate-500:#64748b;--l-slate-400:#94a3b8;--l-slate-300:#cbd5e1;--l-slate-200:#e2e8f0;--l-slate-100:#f1f5f9;--l-slate-50:#f8fafc;--l-rose-700:#ab2546;--l-text:var(--l-slate-900);--l-text-secondary:var(--l-slate-700);--l-text-muted:var(--l-slate-500);--l-text-faint:var(--l-slate-400);--l-border:var(--l-slate-200);--l-ease:cubic-bezier(.22,1,.36,1);--l-dur:.5s;--l-focus-ring:0 0 0 3px #8618ff38;font-family:"Plus Jakarta Sans",var(--font-tp-sans),system-ui,-apple-system,sans-serif;color:var(--l-text);background:var(--violet-950);font-size:15px;position:fixed;inset:0;overflow:hidden}.tp-login *,.tp-login :before,.tp-login :after{box-sizing:border-box}.tp-login button{font:inherit;cursor:pointer}.tp-login input{font:inherit}.tp-login a{color:var(--violet-600);font-weight:600;text-decoration:none}.tp-login a:hover{text-underline-offset:3px;text-decoration:underline}.tp-login :focus-visible{box-shadow:var(--l-focus-ring);border-radius:8px;outline:none}.tp-login ::selection{color:var(--violet-950);background:#8618ff38}.tp-login .shell{grid-template-columns:minmax(420px,65%) minmax(350px,1fr);height:100%;display:grid}.tp-login .brand-panel{background:linear-gradient(160deg,var(--violet-900)0%,var(--violet-950)82%);color:var(--violet-100);isolation:isolate;position:relative;overflow:hidden}.tp-login .brand-pattern{z-index:-1;object-fit:cover;object-position:center;opacity:.9;width:100%;height:calc(100% + 61px);position:absolute;top:-61px;left:0;right:0;-webkit-mask-image:linear-gradient(to bottom left,#000 35%,#00000026 88%);mask-image:linear-gradient(to bottom left,#000 35%,#00000026 88%)}.tp-login .brand-pattern path,.tp-login .brand-pattern line{stroke:var(--violet-500)}.tp-login .brand-panel:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle,#8618ff47,#0000 65%);border-radius:50%;width:620px;height:620px;position:absolute;bottom:-260px;left:-180px}.tp-login .brand-logo{z-index:2;width:clamp(180px,15vw,220px);height:auto;margin-inline:auto;display:block;position:absolute;top:clamp(28px,4.5vh,52px);left:0;right:0;overflow:visible}.tp-login .brand-hero{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(16px,2.4vh,28px);padding:clamp(96px,13vh,146px) clamp(28px,4vw,56px) clamp(96px,12vh,128px);display:flex;position:absolute;inset:0}.tp-login .hero-frame{flex:auto;width:min(480px,100%);min-height:0;position:relative}.tp-login .hero-frame img{object-fit:contain;object-position:center;opacity:0;pointer-events:none;filter:drop-shadow(0 22px 44px #0000006b);width:100%;height:100%;transition:opacity .7s;position:absolute;inset:0}.tp-login .hero-frame img.active{opacity:1}.tp-login .brand-copy{flex-shrink:0;max-width:42ch}.tp-login .brand-title{letter-spacing:-.025em;color:#fff;font-size:clamp(24px,2.6vw,34px);font-weight:800;line-height:1.14}.tp-login .brand-title em{color:#d9bcff;font-style:normal}.tp-login .brand-sub{color:#ede3ffc7;margin-top:12px;max-width:44ch;margin-inline:auto;font-size:15px;font-weight:500;line-height:1.6}.tp-login .hero-dots{flex-shrink:0;justify-content:center;gap:7px;display:flex}.tp-login .hero-dots button{width:6px;height:6px;transition:width .25s var(--l-ease),background .25s var(--l-ease);background:#ffffff4d;border:0;border-radius:3px;padding:0}.tp-login .hero-dots button.active{background:#d9bcff;width:22px}.tp-login .brand-meta{z-index:2;color:#ede3ffb8;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;width:fit-content;max-width:calc(100% - 48px);margin-inline:auto;font-size:12px;font-weight:600;display:flex;position:absolute;bottom:clamp(24px,3.5vh,44px);left:0;right:0}.tp-login .brand-meta span{background:#ede3ff0d;border:1px solid #ede3ff2e;border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 10px;display:inline-flex}.tp-login .brand-meta svg{opacity:.85;color:#c9a5ff;width:14px;height:14px}@keyframes tpLoginRise{0%{opacity:0;translate:0 16px}to{opacity:1;translate:0}}@media (prefers-reduced-motion:no-preference){.tp-login.anim-in .brand-logo{animation:tpLoginRise var(--l-dur)var(--l-ease)both}.tp-login.anim-in .brand-hero{animation:tpLoginRise var(--l-dur)var(--l-ease)80ms both}.tp-login.anim-in .brand-meta{animation:tpLoginRise var(--l-dur)var(--l-ease).16s both}.tp-login.anim-in .form-panel-inner{animation:tpLoginRise var(--l-dur)var(--l-ease).12s both}}.tp-login .form-panel{scrollbar-width:thin;scrollbar-color:var(--l-slate-300)transparent;background:#fff;flex-direction:column;min-height:0;padding:clamp(20px,3.5vh,56px) clamp(24px,4vw,56px) clamp(28px,4vw,56px);display:flex;overflow-y:auto}.tp-login .form-panel-inner{flex-direction:column;flex:auto;justify-content:center;width:100%;max-width:400px;margin-inline:auto;display:flex}.tp-login .form-head{margin-bottom:32px}.tp-login .form-title{letter-spacing:-.02em;font-size:26px;font-weight:800;line-height:1.2}.tp-login .form-sub{color:var(--l-text-muted);margin-top:8px;font-size:13.5px;font-weight:500;line-height:1.55}.tp-login .field{margin-bottom:20px}.tp-login .field-label{color:var(--l-text-secondary);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13.5px;font-weight:600;display:flex}.tp-login .field-label a{font-size:12px}.tp-login .field:focus-within>.field-label{color:var(--violet-800)}.tp-login .input:-webkit-autofill{-webkit-text-fill-color:var(--l-text);caret-color:var(--l-text);-webkit-box-shadow:inset 0 0 0 40px #fff}.tp-login .input:-webkit-autofill:hover{-webkit-text-fill-color:var(--l-text);caret-color:var(--l-text);-webkit-box-shadow:inset 0 0 0 40px #fff}.tp-login .input:-webkit-autofill:focus{-webkit-text-fill-color:var(--l-text);caret-color:var(--l-text);-webkit-box-shadow:inset 0 0 0 40px #fff}.tp-login .input{border:1px solid var(--l-border);width:100%;height:46px;color:var(--l-text);background:#fff;border-radius:11px;padding:0 14px;font-size:15px;font-weight:500;transition:border-color .15s,box-shadow .15s}.tp-login .input::placeholder{color:var(--l-text-faint);font-weight:500}.tp-login .input:hover{border-color:var(--l-slate-300)}.tp-login .input:focus{border-color:var(--violet-500);box-shadow:var(--l-focus-ring);outline:none}.tp-login .input.error{border-color:var(--l-rose-700)}.tp-login .input.error:focus{box-shadow:0 0 0 3px #ab254629}.tp-login .field-error{color:var(--l-rose-700);align-items:center;gap:6px;margin-top:7px;font-size:12px;font-weight:600;display:none}.tp-login .field-error.show{display:flex}.tp-login .field-error svg{flex-shrink:0;width:13px;height:13px}.tp-login .input-wrap{display:block;position:relative}.tp-login .input-wrap .input{padding-right:46px}.tp-login .pw-toggle{width:34px;height:34px;color:var(--l-text-faint);background:0 0;border:0;border-radius:8px;place-items:center;transition:background .15s,color .15s;display:grid;position:absolute;top:50%;right:6px;translate:0 -50%}.tp-login .pw-toggle:hover{background:var(--l-slate-100);color:var(--l-text-secondary)}.tp-login .pw-toggle svg{width:17px;height:17px}.tp-login .row-between{justify-content:space-between;align-items:center;margin:-6px 0 20px;display:flex}.tp-login .check{color:var(--l-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;font-size:13.5px;font-weight:500;display:inline-flex}.tp-login .check input{opacity:0;pointer-events:none;position:absolute}.tp-login .check .box{border:1.5px solid var(--l-slate-300);background:#fff;border-radius:5.5px;flex-shrink:0;place-items:center;width:18px;height:18px;transition:all .15s;display:grid}.tp-login .check .box svg{color:#fff;opacity:0;width:11px;height:11px;transition:all .15s;scale:.6}.tp-login .check input:checked+.box{background:var(--violet-600);border-color:var(--violet-600)}.tp-login .check input:checked+.box svg{opacity:1;scale:1}.tp-login .check input:focus-visible+.box{box-shadow:var(--l-focus-ring)}.tp-login .mock-switch{color:var(--l-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:7px;font-size:12.5px;font-weight:500;display:inline-flex}.tp-login .mock-switch input{opacity:0;pointer-events:none;position:absolute}.tp-login .mock-switch .track{background:var(--l-slate-300);border-radius:999px;flex-shrink:0;width:34px;height:19px;transition:background .15s;position:relative}.tp-login .mock-switch .thumb{background:#fff;border-radius:50%;width:15px;height:15px;transition:translate .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.tp-login .mock-switch.on{color:var(--violet-600)}.tp-login .mock-switch.on .track{background:var(--violet-600)}.tp-login .mock-switch.on .thumb{translate:15px}.tp-login .mock-switch input:focus-visible+.track{box-shadow:var(--l-focus-ring)}.tp-login .btn-primary{background:linear-gradient(180deg,var(--violet-500)0%,var(--violet-600)55%,var(--violet-800)100%);color:#fff;letter-spacing:.01em;width:100%;height:48px;transition:translate .15s var(--l-ease),scale .1s ease,box-shadow .15s ease,filter .15s ease;border:0;border-radius:12px;justify-content:center;align-items:center;gap:9px;font-size:15px;font-weight:700;display:inline-flex;box-shadow:0 2px 6px -1px #23004f59,inset 0 1px #ffffff2e}.tp-login .btn-primary:hover{filter:brightness(1.06);translate:0 -1px;box-shadow:0 6px 16px -4px #23004f73,inset 0 1px #ffffff38}.tp-login .btn-primary:active{translate:0;scale:.98;box-shadow:0 1px 3px #23004f59,inset 0 1px #ffffff24}.tp-login .btn-primary:disabled{opacity:.6;cursor:default}.tp-login .btn-primary .spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite tpLoginSpin}@keyframes tpLoginSpin{to{rotate:360deg}}.tp-login .social-row{gap:12px;display:flex}.tp-login .social-btn{border:1px solid var(--l-border);height:46px;color:var(--l-text-secondary);transition:background .15s ease,border-color .15s ease,scale .1s ease,translate .15s var(--l-ease),box-shadow .15s ease;background:#fff;border-radius:12px;flex:1;justify-content:center;align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:inline-flex}.tp-login .social-btn:hover{background:var(--l-slate-50);border-color:var(--l-slate-300);translate:0 -1px;box-shadow:0 6px 14px -5px #0f172a1f}.tp-login .social-btn:active{box-shadow:none;translate:0;scale:.97}.tp-login .social-btn svg{flex-shrink:0;width:20px;height:20px}.tp-login .divider{color:var(--l-text-faint);align-items:center;gap:12px;margin:24px 0;font-size:12px;font-weight:600;display:flex}.tp-login .divider:before,.tp-login .divider:after{content:"";background:var(--l-border);flex:1;height:1px}.tp-login .method-links{flex-direction:column;gap:8px;margin-top:24px;display:flex}.tp-login .method-link{width:100%;color:var(--l-text-secondary);text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:11px;padding:11px 12px;font-size:13.5px;font-weight:600;transition:background .15s,color .15s;display:flex}.tp-login .method-link:hover{background:var(--violet-50);color:var(--violet-800)}.tp-login .method-link .mi{background:var(--violet-50);width:32px;height:32px;color:var(--violet-600);border-radius:9px;flex-shrink:0;place-items:center;transition:background .15s;display:grid}.tp-login .method-link:hover .mi{background:#e5d5ff}.tp-login .method-link .mi svg{width:16px;height:16px}.tp-login .method-link .arr{width:15px;height:15px;color:var(--l-text-faint);transition:translate .15s var(--l-ease);margin-left:auto}.tp-login .method-link:hover .arr{color:var(--violet-600);translate:3px}.tp-login .form-foot{width:100%;max-width:400px;color:var(--l-text-faint);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;margin-inline:auto;font-size:12px;font-weight:500;display:flex}.tp-login .form-foot a{color:var(--l-text-muted);font-weight:600}.tp-login .form-foot a:hover{color:var(--violet-600)}@media (max-height:780px){.tp-login .form-head{margin-bottom:20px}.tp-login .form-title{font-size:22px}.tp-login .field{margin-bottom:16px}.tp-login .input,.tp-login .btn-primary,.tp-login .social-btn{height:42px}.tp-login .divider{margin:16px 0}.tp-login .method-links{margin-top:16px}.tp-login .method-link{padding:8px 12px}.tp-login .method-link .mi{width:28px;height:28px}.tp-login .brand-logo{width:150px;top:clamp(20px,3vh,36px)}.tp-login .brand-title{font-size:clamp(20px,2.2vw,26px)}.tp-login .brand-sub{margin-top:10px;font-size:14px}.tp-login .brand-meta{bottom:16px}.tp-login .brand-hero{gap:16px;padding-top:clamp(72px,10vh,108px);padding-bottom:clamp(76px,10vh,104px)}}@media (max-height:620px){.tp-login .row-between,.tp-login .form-head{margin-bottom:12px}.tp-login .form-sub,.tp-login .brand-meta,.tp-login .brand-sub{display:none}.tp-login .brand-hero{gap:12px;padding-top:clamp(56px,9vh,88px);padding-bottom:clamp(40px,7vh,68px)}.tp-login .form-foot{display:none}.tp-login .field{margin-bottom:12px}.tp-login .divider{margin:12px 0}.tp-login .method-links{gap:0;margin-top:12px}.tp-login .method-link{padding:6px 10px}.tp-login .method-link .mi{display:none}}@media (max-width:880px){.tp-login .shell{grid-template-rows:auto 1fr;grid-template-columns:1fr}.tp-login .brand-panel{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:0;padding:26px 28px 28px;display:flex}.tp-login .brand-pattern{display:none}.tp-login .brand-panel:after{width:460px;height:460px;top:50%;bottom:auto;left:50%;translate:-50% -50%}.tp-login .brand-logo{width:124px;margin:0 auto;position:static;top:auto}.tp-login .brand-hero{flex:none;gap:0;padding:0;position:static;inset:auto}.tp-login .hero-frame,.tp-login .hero-dots{display:none}.tp-login .brand-copy{max-width:42ch;margin:0 auto}.tp-login .brand-title{font-size:clamp(20px,5vw,28px)}.tp-login .brand-title br{display:none}.tp-login .brand-sub{margin-top:8px;font-size:14px}.tp-login .brand-meta{display:none}.tp-login .form-panel-inner{margin:auto}.tp-login .form-head{margin-bottom:20px}.tp-login .form-title{font-size:22px}.tp-login .form-sub{display:none}.tp-login .field{margin-bottom:16px}.tp-login .input,.tp-login .btn-primary,.tp-login .social-btn{height:44px}.tp-login .divider{margin:16px 0}.tp-login .method-links{margin-top:12px}.tp-login .method-link{padding:8px 12px}.tp-login .form-foot{display:none}}@media (max-width:880px) and (max-height:620px){.tp-login .brand-panel{padding-top:6px;padding-bottom:6px}.tp-login .brand-logo{width:82px}.tp-login .brand-copy,.tp-login .brand-meta{display:none}.tp-login .form-head{margin-bottom:12px}}@media (max-height:560px){.tp-login .divider{display:none}.tp-login .social-row{margin-top:8px}}@media (max-height:520px){.tp-login .form-panel{padding-top:8px;padding-bottom:8px}.tp-login .input,.tp-login .btn-primary,.tp-login .social-btn{height:38px}.tp-login .field-label{margin-bottom:4px}.tp-login .field{margin-bottom:8px}.tp-login .method-links{flex-direction:row;gap:8px}.tp-login .method-link{justify-content:center;padding:7px 6px;font-size:12.5px}.tp-login .method-link .arr{display:none}}@media (prefers-reduced-motion:reduce){.tp-login *,.tp-login :before,.tp-login :after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
