:root{--color-primary: #3149c8;--color-primary-dark: #26379b;--color-primary-soft: #c5d0f2;--color-text: #1b2147;--color-text-muted: #4a5586;--color-bg: #e8efff;--color-surface: #ffffff;--color-border: #c9d5f5;--color-danger: #c2410c;--color-danger-bg: #ffe0cf;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--radius-md: .75rem;--radius-lg: 1rem;--font-size-sm: .8125rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.75rem;--tap-target: 3rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;min-height:100dvh;background:var(--color-bg);color:var(--color-text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:var(--font-size-md);line-height:1.4;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}h1,h2,h3,p{margin:0}a{color:var(--color-primary);font-weight:700}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.m-1{margin:var(--space-1)}.mt-1{margin-top:var(--space-1)}.mb-1{margin-bottom:var(--space-1)}.p-1{padding:var(--space-1)}.px-1{padding-inline:var(--space-1)}.py-1{padding-block:var(--space-1)}.gap-1{gap:var(--space-1)}.m-2{margin:var(--space-2)}.mt-2{margin-top:var(--space-2)}.mb-2{margin-bottom:var(--space-2)}.p-2{padding:var(--space-2)}.px-2{padding-inline:var(--space-2)}.py-2{padding-block:var(--space-2)}.gap-2{gap:var(--space-2)}.m-3{margin:var(--space-3)}.mt-3{margin-top:var(--space-3)}.mb-3{margin-bottom:var(--space-3)}.p-3{padding:var(--space-3)}.px-3{padding-inline:var(--space-3)}.py-3{padding-block:var(--space-3)}.gap-3{gap:var(--space-3)}.m-4{margin:var(--space-4)}.mt-4{margin-top:var(--space-4)}.mb-4{margin-bottom:var(--space-4)}.p-4{padding:var(--space-4)}.px-4{padding-inline:var(--space-4)}.py-4{padding-block:var(--space-4)}.gap-4{gap:var(--space-4)}.m-5{margin:var(--space-5)}.mt-5{margin-top:var(--space-5)}.mb-5{margin-bottom:var(--space-5)}.p-5{padding:var(--space-5)}.px-5{padding-inline:var(--space-5)}.py-5{padding-block:var(--space-5)}.gap-5{gap:var(--space-5)}.m-6{margin:var(--space-6)}.mt-6{margin-top:var(--space-6)}.mb-6{margin-bottom:var(--space-6)}.p-6{padding:var(--space-6)}.px-6{padding-inline:var(--space-6)}.py-6{padding-block:var(--space-6)}.gap-6{gap:var(--space-6)}.m-7{margin:var(--space-7)}.mt-7{margin-top:var(--space-7)}.mb-7{margin-bottom:var(--space-7)}.p-7{padding:var(--space-7)}.px-7{padding-inline:var(--space-7)}.py-7{padding-block:var(--space-7)}.gap-7{gap:var(--space-7)}.flex{display:flex}.flex-col{flex-direction:column}.flex-1{flex:1}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.w-full{width:100%}.min-h-screen{min-height:100dvh}.mx-auto{margin-inline:auto}.max-w-mobile{max-width:26rem}.relative{position:relative}.text-center{text-align:center}.text-sm{font-size:var(--font-size-sm)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.text-muted{color:var(--color-text-muted)}.text-danger{color:var(--color-danger)}.text-primary{color:var(--color-primary)}.input{width:100%;min-height:var(--tap-target);padding:0 var(--space-4);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:400}.input::placeholder{color:#8e99c4}.input.invalid{border-color:var(--color-danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--tap-target);padding:0 var(--space-5);border:2px solid transparent;border-radius:var(--radius-md);font-weight:800;cursor:pointer;box-shadow:0 4px #0000002e}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff}.btn-outline{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.btn-link{background:none;border:0;padding:0;color:var(--color-primary);font-weight:700;text-decoration:underline;cursor:pointer}.alert-danger{padding:var(--space-3) var(--space-4);background:var(--color-danger-bg);border-radius:var(--radius-md);color:var(--color-danger);font-size:var(--font-size-sm);font-weight:700}.divider{display:flex;align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:var(--font-size-sm)}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--color-border)}.checkbox{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--font-size-sm);font-weight:600}.checkbox input{width:1.25rem;height:1.25rem;margin:0;accent-color:var(--color-primary);flex-shrink:0}.strength{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-1)}.strength>span{height:.25rem;border-radius:1rem;background:var(--color-border)}.strength>span.on{background:var(--color-primary)}.field-error{color:var(--color-danger);font-size:var(--font-size-sm);font-weight:700}.btn-icon{width:2.5rem;min-height:2.5rem;padding:0;border-radius:50%}.ml-auto{margin-left:auto}.icon{display:inline-block;flex-shrink:0;width:var(--icon-size, 1.25rem);height:var(--icon-size, 1.25rem);background-color:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.input-action{position:absolute;right:var(--space-2);top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;background:none;border:0;color:var(--color-text-muted);cursor:pointer}.btn-dark{background:#000;color:#fff}.text-body{color:var(--color-text)}.card{padding:var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg)}.steps{margin:0;list-style:none}.step-badge{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;flex-shrink:0;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary-dark);font-size:var(--font-size-sm);font-weight:800}.code-input{text-align:center;font-size:var(--font-size-xl);font-weight:800;letter-spacing:.4em}
