:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;--background:#f4f6fa;--surface:#fbfcfe;--surface-strong:#fff;--surface-soft:#edf1f8;--text-primary:#10223f;--text-muted:#59667a;--border:#dbe1ea;--border-strong:#c8d0dc;--accent:#173f94;--accent-strong:#102f75;--accent-soft:#e8eef9;--action:#173f94;--action-hover:#102f75;--danger:#c92234;--success:#187454;--shadow-card:0 28px 80px #233c691f;font-family:Avenir Next,Avenir,Helvetica Neue,Helvetica,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--background:#0e1728;--surface:#131f34;--surface-strong:#17253d;--surface-soft:#1b2b46;--text-primary:#edf3ff;--text-muted:#aebbd0;--border:#2b3b56;--border-strong:#3a4c69;--accent:#7fa6ff;--accent-strong:#a8c1ff;--accent-soft:#20345c;--action:#355fb8;--action-hover:#294c96;--danger:#ff7b89;--success:#72c9a7;--shadow-card:0 30px 90px #02081470}}*{box-sizing:border-box}html{background:var(--background);min-width:320px}body{min-width:320px;min-height:100vh;min-height:100dvh;color:var(--text-primary);background:radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--accent-soft) 72%, transparent), transparent 40%), linear-gradient(145deg, var(--background), color-mix(in srgb, var(--surface-soft) 48%, var(--background)));margin:0}button,input{font:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.auth-shell{width:min(100% - 32px,1440px);min-height:100vh;min-height:100dvh;margin:0 auto}.auth-stage{min-height:100vh;place-items:center;min-height:100dvh;padding:clamp(32px,7vh,72px) 0;display:grid}.login-area{justify-items:center;gap:clamp(28px,5vh,44px);width:min(100%,440px);display:grid}.practice-logo{filter:drop-shadow(0 12px 28px #09163124);width:min(250px,68vw);height:auto;display:block}.auth-card{border:1px solid var(--border);background:color-mix(in srgb, var(--surface-strong) 94%, transparent);width:100%;min-width:0;box-shadow:var(--shadow-card), inset 0 1px 0 color-mix(in srgb, var(--surface-strong) 80%, transparent);border-radius:20px;padding:32px;animation:.36s cubic-bezier(.16,1,.3,1) both view-enter;position:relative;overflow:hidden}@keyframes view-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.progress-track{background:var(--accent-soft);opacity:0;pointer-events:none;height:3px;position:absolute;inset:0 0 auto;overflow:hidden}.progress-track:has(span.active){opacity:1}.progress-track span{background:var(--accent);opacity:0;border-radius:999px;width:32%;height:100%;display:block;transform:translate(-115%)}.progress-track span.active{opacity:1;animation:1.05s ease-in-out infinite progress}@keyframes progress{50%{transform:translate(170%)}to{transform:translate(350%)}}.step-label{color:var(--accent);letter-spacing:.09em;text-transform:uppercase;margin:0 0 14px;font-size:11px;font-weight:700}.auth-card h2{letter-spacing:-.04em;max-width:440px;margin:0;font-size:clamp(30px,8vw,42px);font-weight:590;line-height:1.05}.intro{max-width:380px;color:var(--text-muted);margin:14px 0 24px;font-size:13px;line-height:1.55}form{display:grid}label{color:var(--text-primary);margin:0 0 7px;font-size:12px;font-weight:650}label:not(:first-child){margin-top:18px}input{border:1px solid var(--border-strong);width:100%;min-height:52px;color:var(--text-primary);background:var(--surface);border-radius:10px;outline:0;padding:0 14px;transition:border-color .18s,box-shadow .18s,background .18s}input:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border-strong))}input:focus{border-color:var(--accent);background:var(--surface-strong);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent)}.code-input{letter-spacing:.2em;font-variant-numeric:tabular-nums;max-width:250px;font-size:28px;font-weight:650}.primary-button,.factor-button{border:1px solid var(--action);color:#f8faff;background:var(--action);cursor:pointer;border-radius:10px;min-height:50px;transition:background .18s,border-color .18s,box-shadow .18s,transform .18s}.primary-button{justify-content:space-between;align-items:center;width:100%;margin-top:26px;padding:0 16px;font-size:13px;font-weight:650;text-decoration:none;display:flex}.primary-button:hover,.factor-button:hover{border-color:var(--action-hover);background:var(--action-hover);box-shadow:0 10px 26px color-mix(in srgb, var(--action) 30%, transparent);transform:translateY(-1px)}.primary-button:active,.factor-button:active{transform:translateY(1px)}.primary-button:focus-visible,.factor-button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:3px}.form-error{border:1px solid color-mix(in srgb, var(--danger) 34%, var(--border));color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--surface));border-radius:10px;margin:14px 0 0;padding:11px 12px;font-size:12px;line-height:1.5}.factor-list{gap:9px;margin-top:24px;display:grid}.factor-button{text-align:left;justify-content:space-between;padding:14px 16px;display:flex}.qr-wrap{border:1px solid var(--border);background:#fff;border-radius:14px;width:-moz-fit-content;width:fit-content;margin:20px 0 14px;padding:10px}.qr-wrap img{border-radius:8px;width:180px;height:180px;display:block}details{color:var(--text-muted);margin:0 0 10px;font-size:12px}details code{overflow-wrap:anywhere;color:var(--text-primary);background:var(--surface-soft);border-radius:10px;margin-top:8px;padding:10px;display:block}.success-mark{border:1px solid color-mix(in srgb, var(--success) 45%, var(--border));width:44px;height:44px;color:var(--success);background:color-mix(in srgb, var(--success) 9%, var(--surface));border-radius:14px;place-items:center;margin-bottom:24px;font-size:18px;font-weight:700;display:grid}@media (max-width:600px){.auth-shell{width:min(100% - 24px,1440px)}.auth-stage{padding:28px 0}.login-area{gap:26px}.practice-logo{width:min(220px,66vw)}.auth-card{border-radius:18px;padding:26px 22px}.code-input{max-width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
