@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/dm-sans-400.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/dm-sans-500.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/dm-sans-600.ttf)format("truetype")}@font-face{font-family:DM Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/dm-sans-700.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/playfair-display-400.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/playfair-display-500.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/playfair-display-600.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/playfair-display-700.ttf)format("truetype")}@font-face{font-family:Playfair Display;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/playfair-display-800.ttf)format("truetype")}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--slate-50:#faf8f3;--slate-100:#f2eee6;--slate-200:#e6ded2;--slate-300:#d4c8b8;--slate-400:#a99b88;--slate-500:#7e725f;--slate-600:#625747;--slate-700:#4b4236;--slate-800:#372f27;--slate-900:#27221c;--sage-50:#f4f5ed;--sage-100:#e6e9d8;--sage-200:#cdd3b8;--sage-300:#aeb894;--sage-400:#8a9a5e;--sage-500:#6b7c3f;--sage-600:#5a6a34;--sage-700:#49582a;--sage-800:#3a4722;--sage-900:#2e3a1c;--emerald-50:#ecfdf5;--emerald-100:#d1fae5;--emerald-500:#10b981;--emerald-600:#059669;--emerald-700:#047857;--amber-50:#fffbeb;--amber-100:#fef3c7;--amber-500:#f59e0b;--amber-600:#d97706;--amber-700:#b45309;--red-50:#fef2f2;--red-100:#fee2e2;--red-500:#ef4444;--red-600:#dc2626;--red-700:#b91c1c;--teal-50:#ecf6f1;--teal-100:#d8eee5;--teal-500:#6fae99;--teal-600:#4e8e7a;--teal-700:#3d7564;--color-bg-page:#faf8f3;--color-bg-card:#fff;--color-bg-sidebar:#f2eee6;--color-bg-topbar:#faf8f3;--color-bg-hover:#efe9de;--color-bg-selected:var(--sage-50);--color-bg-disabled:var(--slate-100);--color-bg-overlay:#2f2b2480;--color-border-default:#e3d9cc;--color-border-strong:#cfc1b0;--color-border-focus:var(--sage-500);--color-border-error:var(--red-500);--color-border-success:var(--emerald-500);--color-text-primary:#2f2b24;--color-text-secondary:#5e5548;--color-text-tertiary:#6b5f4d;--color-text-placeholder:#6b5f4d;--color-text-disabled:#8a7e6b;--color-text-inverse:#fff;--color-text-link:var(--sage-600);--color-text-link-hover:var(--sage-700);--color-state-correct:var(--emerald-600);--color-state-correct-bg:var(--emerald-50);--color-state-correct-border:var(--emerald-500);--color-state-wrong:var(--red-600);--color-state-wrong-bg:var(--red-50);--color-state-wrong-border:var(--red-500);--color-state-marked:var(--amber-700);--color-state-marked-bg:var(--amber-50);--color-state-marked-border:var(--amber-500);--color-state-ai:var(--teal-700);--color-state-ai-bg:var(--teal-50);--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--leading-tight:1.2;--leading-snug:1.33;--leading-normal:1.5;--leading-relaxed:1.6;--leading-loose:1.8;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-extrabold:800;--font-display:"Playfair Display", "Noto Serif SC", Georgia, serif;--font-body:"DM Sans", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--breakpoint-sm:480px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1280px;--breakpoint-2xl:1536px;--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--rounded-none:0px;--rounded-sm:6px;--rounded-md:10px;--rounded-lg:14px;--rounded-xl:20px;--rounded-full:9999px;--shadow-sm:0 1px 3px #2f2b240a, 0 1px 2px #2f2b2408;--shadow-md:0 4px 12px #2f2b240f, 0 2px 4px #2f2b240a;--shadow-lg:0 12px 28px #2f2b2414, 0 4px 8px #2f2b240a;--shadow-xl:0 24px 48px #2f2b241a, 0 8px 16px #2f2b240d;--shadow-focus:0 0 0 3px #6b7c3f38;--shadow-glow:0 0 20px #6b7c3f24;--shadow-sage-xs:0 2px 8px #6b7c3f0a;--shadow-sage-sm:0 4px 12px #6b7c3f0f;--shadow-sage-md:0 4px 16px #6b7c3f1f;--shadow-sage-lg:0 4px 20px #6b7c3f2e;--shadow-sage-xl:0 4px 24px #6b7c3f3d;--ring-sage:0 0 0 2px #6b7c3f2e;--ring-sage-lg:0 0 0 2px #6b7c3f33;--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-bounce:cubic-bezier(.68, -.55, .265, 1.55);--duration-fast:.15s;--duration-normal:.25s;--duration-slow:.4s;--duration-slower:.6s;--sidebar-width-expanded:260px;--sidebar-width-collapsed:72px;--topbar-height:64px;--mobile-tabbar-height:60px;--color-bg-editor:#fdfbf7}html{scroll-behavior:smooth}body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text-primary);background-color:var(--color-bg-page);font-size:var(--text-base);line-height:var(--leading-normal);letter-spacing:0}#root{min-height:100vh}.ant-layout{background:var(--color-bg-page)!important}.ant-layout-sider{background:var(--color-bg-sidebar)!important;box-shadow:2px 0 12px #2f2b240f!important}.ant-menu.ant-menu-dark,.ant-menu.ant-menu-light{background:0 0!important}.ant-menu-dark .ant-menu-item-selected,.ant-menu-light .ant-menu-item-selected{background:var(--sage-50)!important;color:var(--sage-700)!important;border-radius:8px!important}.ant-menu-dark .ant-menu-item,.ant-menu-light .ant-menu-item{border-radius:8px!important;margin:2px 8px!important;transition:all .2s!important}.ant-menu-dark .ant-menu-item:hover,.ant-menu-light .ant-menu-item:hover{background:var(--color-bg-hover)!important;color:var(--sage-700)!important}.ant-card{border-radius:var(--rounded-lg)!important;border:1px solid var(--color-border-default)!important;box-shadow:var(--shadow-sm)!important;transition:all var(--duration-normal) var(--ease-default)!important}.ant-card:hover{box-shadow:var(--shadow-md)!important}.ant-card-hoverable:hover{box-shadow:var(--shadow-lg)!important}.ant-btn-primary{background:var(--sage-500)!important;border-color:var(--sage-500)!important;transition:all var(--duration-fast) var(--ease-default)!important;font-weight:600!important;box-shadow:0 2px 8px #6b7c3f3d!important}.ant-btn-primary:hover{background:var(--sage-600)!important;border-color:var(--sage-600)!important;transform:translateY(-1px)!important;box-shadow:0 4px 14px #6b7c3f47!important}.ant-btn-primary:active{transition:transform .1s!important;transform:scale(.98)!important;box-shadow:0 1px 2px #6b7c3f29!important}.input-match .ant-input-affix-wrapper,.input-match .ant-input{border-color:var(--emerald-500)!important}.ant-input,.ant-input-affix-wrapper{border-radius:var(--rounded-md)!important;border:1.5px solid var(--color-border-default)!important;transition:all var(--duration-fast) var(--ease-default)!important;font-family:var(--font-body)!important;box-shadow:none!important}.ant-input-affix-wrapper .ant-input{box-shadow:none!important;background:0 0!important;border:none!important}.ant-input:hover,.ant-input-affix-wrapper:hover{border-color:var(--color-border-strong)!important}.ant-input:focus,.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus,.ant-input:focus-visible{border-color:var(--color-border-strong)!important;box-shadow:none!important;outline:none!important}.ant-input-affix-wrapper-focused{border-color:var(--color-border-strong)!important;box-shadow:none!important}.ant-form-item-label>label{color:var(--color-text-primary)!important;font-weight:600!important;font-size:var(--text-sm)!important}.ant-statistic-title{font-family:var(--font-body)!important;color:var(--color-text-tertiary)!important;font-weight:500!important;font-size:var(--text-sm)!important}.ant-statistic-content{font-family:var(--font-display)!important;color:var(--color-text-primary)!important;font-weight:700!important}.ant-skeleton-content .ant-skeleton-title,.ant-skeleton-content .ant-skeleton-paragraph>li{border-radius:var(--rounded-sm)!important}button,a,input,textarea,select{transition:all var(--duration-fast) var(--ease-default)}:focus-visible{outline:2px solid var(--color-border-strong);outline-offset:1px}.ant-input:focus,.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus,.ant-select-focused .ant-select-selector,.ant-picker-focused,.ant-input-number-focused,.ant-select-selector:focus,.ant-picker:focus,.ant-input-number:focus{box-shadow:none!important;outline:none!important}.ant-table-tbody>tr.ant-table-row:hover>td{background:var(--sage-50)!important}.ant-table-tbody>tr.ant-table-row:hover>td.ant-table-cell-row-hover{background:var(--sage-100)!important}.admin-form .ant-input:focus,.admin-form .ant-input-focused,.admin-form .ant-input-affix-wrapper:focus,.admin-form .ant-input-affix-wrapper-focused,.admin-form .ant-select-focused .ant-select-selector,.admin-form .ant-input-number-focused{border-color:var(--sage-500)!important;outline:none!important;box-shadow:0 0 0 3px #6b7c3f26!important}.ant-modal-content{animation:.3s cubic-bezier(.34,1.56,.64,1) admin-modal-slide-up}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--slate-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--slate-400)}.action-card:hover{transition:transform var(--duration-fast), box-shadow var(--duration-fast);transform:translateY(-2px);box-shadow:0 4px 12px #2f2b2414}.action-card:hover .action-card-icon{transform:scale(1.2)}.action-card:focus-visible{outline:2px solid var(--sage-500);outline-offset:2px}@keyframes admin-modal-slide-up{0%{opacity:0;transform:translateY(40px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse-soft{0%,to{opacity:1}50%{opacity:.7}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.fade-in-up{animation:.4s cubic-bezier(.22,1,.36,1) both fadeInUp}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton-shimmer{background:linear-gradient(90deg, var(--slate-100) 25%, var(--slate-50) 50%, var(--slate-100) 75%);background-size:800px 100%;border-radius:8px;animation:1.5s linear infinite shimmer}.noise-overlay{pointer-events:none;z-index:9999;opacity:.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.fade-in-up-1{animation-delay:50ms}.fade-in-up-2{animation-delay:.1s}.fade-in-up-3{animation-delay:.15s}.fade-in-up-4{animation-delay:.2s}.fade-in-up-5{animation-delay:.25s}.fade-in-up-6{animation-delay:.3s}.stagger-1{animation:fadeInUp .5s var(--ease-out) both;animation-delay:50ms}.stagger-2{animation:fadeInUp .5s var(--ease-out) both;animation-delay:.1s}.stagger-3{animation:fadeInUp .5s var(--ease-out) both;animation-delay:.15s}.stagger-4{animation:fadeInUp .5s var(--ease-out) both;animation-delay:.2s}.stagger-5{animation:fadeInUp .5s var(--ease-out) both;animation-delay:.25s}.stagger-6{animation:fadeInUp .5s var(--ease-out) both;animation-delay:.3s}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.ant-spin-dot-holder,.ant-spin-dot-holder *,.page-loading,.page-loading *{animation-duration:1.6s!important;animation-iteration-count:infinite!important}}[data-placeholder]:empty:before{content:attr(data-placeholder);color:var(--color-text-placeholder);pointer-events:none}[data-placeholder]:focus{outline:none}.reading-practice-layout{gap:var(--space-4);grid-template-columns:minmax(0,2fr) minmax(320px,1fr);align-items:start;display:grid}.reading-practice-passage{top:calc(var(--topbar-height) + var(--space-4));max-height:calc(100vh - var(--topbar-height) - var(--space-8));position:sticky;overflow:auto}.reading-practice-questions{max-height:calc(100vh - var(--topbar-height) - var(--space-8));overflow:auto}.writing-issue{background:var(--red-50,#fef2f2);border-bottom:2px wavy var(--red-500,#ef4444);cursor:pointer;transition:background .2s}.writing-issue:hover,.writing-issue.active{background:var(--red-100,#fee2e2)}.writing-issue-item{border:1px solid var(--color-border-default);cursor:pointer;background:var(--color-bg-card);border-radius:8px;padding:8px 12px;transition:all .2s}.writing-issue-item:hover{background:var(--color-bg-hover)}.writing-issue-item.active{border-color:var(--sage-500);background:var(--sage-50);box-shadow:0 0 0 2px #6b7c3f33}@media (width<=768px){.reading-practice-layout{gap:var(--space-4);padding-bottom:var(--mobile-tabbar-height);grid-template-columns:1fr}.reading-practice-passage,.reading-practice-questions{min-width:0;max-height:none;overflow:visible}}:root{--auth-terracotta:#6b7c3f;--auth-terracotta-deep:#5a6a34;--auth-terracotta-light:#b5c49e;--auth-cream:#faf8f5;--auth-warm-white:#fffdfa;--auth-charcoal:#2d2926;--auth-muted:#8c8580}.auth-page{background:var(--auth-cream);display:flex;position:fixed;inset:0;overflow:hidden}.auth-grain{pointer-events:none;z-index:10;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.auth-hero{background:linear-gradient(160deg,#b5c49e 0%,#c8d4b5 50%,#f3e8e3 100%);justify-content:center;align-items:center;width:36%;min-width:320px;display:flex;position:relative;overflow:hidden}.auth-hero-content{z-index:2;max-width:480px;padding:60px;position:relative}.auth-hero-badge{-webkit-backdrop-filter:blur(12px);color:#3a4a2c;letter-spacing:2px;background:#ffffffe0;border:1px solid #fff9;border-radius:16px;align-items:center;gap:10px;margin-bottom:40px;padding:12px 28px;font-family:DM Sans,PingFang SC,Microsoft YaHei,sans-serif;font-size:24px;font-weight:700;animation:.6s ease-out both auth-hero-fade-in;display:inline-flex;box-shadow:0 2px 12px #0000000f}.auth-hero-badge-dot{background:#d46a5a;border-radius:50%;width:8px;height:8px;animation:2s ease-in-out infinite auth-pulse-dot;box-shadow:0 0 6px #d46a5a66}.auth-hero-heading{color:#e8edd8;letter-spacing:-.02em;text-shadow:0 2px 16px #00000014;opacity:0;clip-path:inset(0 100% 0 0);margin:0 0 24px;font-family:DM Sans,PingFang SC,Microsoft YaHei,sans-serif;font-size:clamp(38px,4vw,52px);font-weight:800;line-height:1.2;animation:.8s cubic-bezier(.22,1,.36,1) .15s forwards auth-hero-reveal}.auth-hero-sub{font-family:var(--font-body);color:#ffffffd9;max-width:320px;margin:0 0 24px;font-size:16px;font-weight:400;line-height:1.7;animation:.6s ease-out .3s both auth-hero-fade-in}.auth-hero-illustration{opacity:.9;z-index:1;width:260px;height:auto;animation:.6s ease-out .4s both auth-hero-fade-in,6s ease-in-out 1s infinite auth-illustration-float;display:block;position:relative}.auth-hero-illustration-wrapper{margin-bottom:24px;display:inline-block;position:relative}.auth-hero-illustration-wrapper:before{content:"";pointer-events:none;border:1.5px solid #ffffff26;border-radius:20px;animation:.6s ease-out .5s both auth-hero-fade-in;position:absolute;inset:-16px}.auth-hero-illustration-wrapper:after{content:"";pointer-events:none;background:radial-gradient(#00000014 0%,#0000 70%);border-radius:50%;width:60%;height:12px;transition:width .4s,opacity .4s;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.auth-hero-illustration-wrapper:hover:after{opacity:.7;width:70%}.auth-hero-illustration-wrapper:hover .auth-hero-illustration{animation-play-state:paused}@keyframes auth-illustration-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.auth-hero-stats{align-items:center;gap:20px;margin-top:24px;animation:.6s ease-out .45s both auth-hero-fade-in;display:flex}.auth-hero-stat{flex-direction:column;gap:2px;display:flex}.auth-hero-stat strong{color:#fff;letter-spacing:-.02em;font-family:DM Sans,sans-serif;font-size:20px;font-weight:700;line-height:1.2}.auth-hero-stat span{font-family:var(--font-body);color:#ffffffa6;letter-spacing:.3px;font-size:12px;font-weight:500}.auth-hero-stat-sep{background:#fff3;width:1px;height:28px}.auth-shape{pointer-events:none;z-index:1;border-radius:50%;position:absolute}.auth-shape-1{background:radial-gradient(circle,#ffffff1f 0%,#0000 70%);width:300px;height:300px;animation:18s ease-in-out infinite auth-float-1;top:-80px;right:-60px}.auth-form-area{background:var(--auth-warm-white);flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden auto}.auth-form-area:before{content:"";background:linear-gradient(to bottom, var(--auth-terracotta-light), transparent 60%);pointer-events:none;width:3px;height:100%;position:absolute;top:0;left:0}.auth-form-area:after{content:"";pointer-events:none;background:radial-gradient(#6b7c3f1f 0%,#0000 70%);width:320px;height:220px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.auth-form-inner{border-radius:16px;width:100%;max-width:400px;padding:48px 40px;transition:box-shadow .4s,transform .4s cubic-bezier(.34,1.56,.64,1);animation:.5s ease-out .2s both auth-form-enter;position:relative}.auth-form-inner:before{content:"";background:conic-gradient(from 0deg, transparent 0deg, transparent 290deg, var(--auth-terracotta) 320deg, var(--auth-terracotta-light) 345deg, var(--auth-terracotta) 360deg);-webkit-mask-composite:xor;opacity:0;z-index:-1;will-change:transform;border-radius:18px;padding:2px;transition:opacity .3s;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.auth-form-inner:hover{transform:translateY(-6px);box-shadow:0 12px 40px #6b7c3f1f,0 4px 12px #6b7c3f0f}.auth-form-inner:hover:before{opacity:1;animation:.8s cubic-bezier(.4,0,.2,1) forwards auth-border-trace}.auth-form-inner:has(.ant-input:focus,.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus){box-shadow:0 0 0 1px #6b7c3f1f,0 8px 32px #6b7c3f14}.auth-form-inner:has(.ant-input:focus,.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus):before{opacity:1;background:linear-gradient(90deg, transparent, var(--auth-terracotta), transparent);background-size:200% 100%;border-radius:1px;height:2px;padding:0;animation:2s linear infinite auth-border-shimmer;inset:-1px 24px auto;transform:none;-webkit-mask:none;mask:none}.auth-form-heading{color:var(--auth-charcoal);letter-spacing:-.015em;margin:0 0 8px;font-family:DM Sans,PingFang SC,Microsoft YaHei,sans-serif;font-size:32px;font-weight:700;line-height:1.3}.auth-form-sub{font-family:var(--font-body);color:var(--auth-muted);margin:0 0 36px;font-size:15px;line-height:1.5}.auth-form-wrapper{opacity:1;transition:opacity .3s,transform .3s;transform:translateY(0)}.auth-form-wrapper--exiting{opacity:0;transform:translateY(-10px)}.auth-form-item{margin-bottom:20px!important}.auth-form-item--password{margin-bottom:28px!important}.auth-form-item--submit{margin-bottom:20px!important}.auth-form-footer{text-align:center}.auth-form-footer-text{color:var(--auth-muted);font-size:14px}.auth-hint{font-family:var(--font-body);color:var(--color-text-disabled);text-align:right;font-size:12px}.auth-step-panel{animation:.25s ease-out both auth-step-enter}.auth-step-panel--exit-left{animation:.2s ease-in forwards auth-step-exit-left}.auth-step-panel--exit-right{animation:.2s ease-in forwards auth-step-exit-right}.auth-step-back-wrapper{text-align:center;margin-bottom:4px}.auth-step-back-btn{color:var(--auth-terracotta);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;margin-bottom:12px;padding:0;font-size:13px;font-weight:600;transition:color .15s;display:inline-flex}.auth-step-back-btn:hover{color:var(--auth-terracotta-deep);text-underline-offset:3px;text-decoration:underline}.auth-strength{margin-bottom:20px;animation:.2s auth-form-enter}.auth-strength-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.auth-strength-label{min-width:32px;font-size:12px;font-weight:600}.auth-strength-checks{flex-wrap:wrap;gap:12px;display:flex}.auth-strength-check{color:var(--auth-muted);align-items:center;gap:4px;font-size:12px;font-weight:400;transition:color .2s;display:flex}.auth-strength-check--pass{color:var(--emerald-600);font-weight:500}.auth-strength-check--warn{color:var(--red-500);font-weight:500}.auth-strength-check-icon{font-size:10px}.auth-form-item--password-compact{margin-bottom:4px!important}.auth-form-area .ant-input,.auth-form-area .ant-input-affix-wrapper{border-color:#6b7c3f1f!important;transition:border-color .2s,box-shadow .2s!important}.auth-form-area .ant-input:hover,.auth-form-area .ant-input-affix-wrapper:hover{border-color:#6b7c3f4d!important}.auth-cta-btn.ant-btn-primary{border-radius:10px;height:48px;font-size:16px;font-weight:600;background:var(--auth-terracotta)!important;border-color:var(--auth-terracotta)!important;box-shadow:0 2px 12px #6b7c3f4d!important}.auth-cta-btn.ant-btn-primary:hover{background:var(--auth-terracotta-deep)!important;border-color:var(--auth-terracotta-deep)!important;transform:translateY(-1px)!important;box-shadow:0 4px 20px #6b7c3f59!important}.auth-cta-btn.ant-btn-primary:active{transform:scale(.98)!important;box-shadow:0 1px 4px #6b7c3f33!important}.auth-cta-btn.ant-btn-loading{opacity:.85}.auth-error-box{font-size:13px;font-family:var(--font-body);border-radius:8px;margin-bottom:16px;padding:10px 14px;line-height:1.5;animation:.3s ease-out auth-shake-in}.auth-error-box--error{color:var(--red-600);background:var(--red-50);border:1px solid #ef444426}.auth-error-box--warn{color:var(--amber-700);background:var(--amber-50);border:1px solid #f59e0b33}.auth-form-area .ant-input:focus,.auth-form-area .ant-input-focused,.auth-form-area .ant-input-affix-wrapper:focus,.auth-form-area .ant-input-affix-wrapper-focused{border-color:var(--auth-terracotta)!important;box-shadow:0 0 0 2px #6b7c3f26!important}.auth-link{color:var(--auth-terracotta);font-size:14px;font-weight:600;text-decoration:none;transition:color .15s}.auth-link:hover{color:var(--auth-terracotta-deep);text-underline-offset:3px;text-decoration:underline}.auth-strength-bar{border-radius:2px;flex:1;gap:3px;height:4px;display:flex;overflow:hidden}.auth-strength-seg{transform-origin:0;border-radius:2px;flex:1;height:100%;transition:background .3s ease-out}.auth-strength-seg--bounce{animation:.35s cubic-bezier(.34,1.56,.64,1) auth-strength-bounce}.auth-step-dots{justify-content:center;align-items:center;gap:12px;margin-bottom:32px;display:flex}.auth-step-dot{width:32px;height:32px;font-family:var(--font-body);border-radius:50%;justify-content:center;align-items:center;font-size:13px;font-weight:700;transition:all .3s;display:flex}.auth-step-dot--active{background:var(--auth-terracotta);color:#fff;animation:.4s cubic-bezier(.34,1.56,.64,1) auth-step-pulse;box-shadow:0 2px 10px #6b7c3f4d}.auth-step-dot--inactive{color:var(--auth-muted);background:#ede8e0}.auth-step-line{border-radius:1px;width:40px;height:2px;transition:background .4s;position:relative;overflow:hidden}.auth-step-line--active{background:var(--auth-terracotta)}.auth-step-line--active:after{content:"";background:var(--auth-terracotta);animation:.4s ease-out auth-step-fill;position:absolute;inset:0}.auth-step-line--inactive{background:#ede8e0}.auth-login-success{flex-direction:column;justify-content:center;align-items:center;min-height:280px;animation:.5s ease-out auth-success-enter;display:flex}.auth-login-success-ring{background:var(--emerald-50);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;animation:.4s cubic-bezier(.34,1.56,.64,1) auth-success-ring-pop;display:flex}.auth-login-success-circle{stroke-dasharray:176;stroke-dashoffset:176px;animation:.4s ease-out .15s forwards auth-success-draw}.auth-login-success-check{stroke-dasharray:40;stroke-dashoffset:40px;animation:.25s ease-out .4s forwards auth-success-draw}.auth-login-success-text{font-family:var(--font-body);color:var(--emerald-600);opacity:0;margin-top:16px;font-size:15px;font-weight:600;animation:.3s ease-out .5s forwards auth-hero-fade-in}@keyframes auth-hero-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-hero-reveal{0%{opacity:0;clip-path:inset(0 100% 0 0);filter:blur(8px)}60%{opacity:1;filter:blur()}to{opacity:1;clip-path:inset(0 0% 0 0);filter:blur()}}@keyframes auth-form-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes auth-step-enter{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes auth-step-exit-left{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-20px)}}@keyframes auth-step-exit-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}@keyframes auth-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}@keyframes auth-shake-in{0%{opacity:0;transform:translate(-6px)}25%{transform:translate(4px)}50%{transform:translate(-2px)}75%{transform:translate(1px)}to{opacity:1;transform:translate(0)}}@keyframes auth-step-fill{0%{transform-origin:0;transform:scaleX(0)}to{transform-origin:0;transform:scaleX(1)}}@keyframes auth-success-enter{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes auth-success-ring-pop{0%{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}@keyframes auth-success-draw{to{stroke-dashoffset:0}}@keyframes auth-border-trace{0%{transform:rotate(0)}to{transform:rotate(180deg)}}@keyframes auth-float-1{0%,to{transform:translate(0)scale(1)}33%{transform:translate(15px,-20px)scale(1.08)}66%{transform:translate(-10px,10px)scale(.95)}}@keyframes auth-border-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes auth-strength-bounce{0%{transform:scaleY(1)}40%{transform:scaleY(1.6)}to{transform:scaleY(1)}}@keyframes auth-step-pulse{0%{opacity:.5;transform:scale(.8)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@media (width<=1024px){.auth-hero{min-width:320px}.auth-hero-content{padding:48px 40px}}@media (width<=767px){.auth-page{flex-direction:column}.auth-hero{width:100%;min-width:unset;min-height:unset;padding:24px;box-shadow:0 2px 12px #0000000f}.auth-hero-content{text-align:center;max-width:100%;padding:0}.auth-hero-badge{letter-spacing:1.5px;margin:0;padding:8px 20px;font-size:18px}.auth-hero-heading,.auth-hero-sub,.auth-hero-stats,.auth-hero-illustration,.auth-hero-illustration-wrapper{display:none}.auth-hero-illustration-wrapper:before{animation:none!important}.auth-form-inner:has(.ant-input:focus,.ant-input-affix-wrapper-focused):before{animation:none!important}.auth-shape{opacity:.4}.auth-shape-1{width:140px;height:140px}.auth-form-area{flex:1;align-items:flex-start;padding-top:8px}.auth-form-inner{max-width:100%;padding:28px 24px 40px}.auth-form-heading{font-size:28px}}@media (width<=374px){.auth-hero{padding:20px}.auth-hero-badge{padding:7px 18px;font-size:16px}.auth-form-inner{padding:24px 20px 32px}}.ant-spin-dot-holder{animation:1.6s linear infinite spin-dot-rotate}@keyframes spin-dot-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ant-spin-dot-holder .ant-spin-dot-item{border-radius:50%;animation:1.6s ease-in-out infinite spin-dot-seq}.ant-spin-dot-holder .ant-spin-dot-item:first-child{background:var(--sage-400);animation-delay:0s}.ant-spin-dot-holder .ant-spin-dot-item:nth-child(2){background:var(--sage-500);animation-delay:.2s}.ant-spin-dot-holder .ant-spin-dot-item:nth-child(3){background:var(--sage-600);animation-delay:.4s}.ant-spin-dot-holder .ant-spin-dot-item:nth-child(4){background:var(--sage-700);animation-delay:.6s}@keyframes spin-dot-seq{0%,to{opacity:.2;transform:scale(.3)}12.5%{opacity:1;transform:scale(1.1)}25%,75%{opacity:.4;transform:scale(.6)}}.page-loading{box-sizing:border-box;background:var(--color-bg-page,#faf7f2);justify-content:center;align-items:center;display:flex;position:relative}.page-loading--fullscreen{contain:layout style;width:100%;height:100dvh;min-height:100dvh}.page-loading--half{min-height:50dvh}.page-loading .ant-spin{min-width:64px;min-height:64px}@media (prefers-reduced-motion:reduce){.page-loading .ant-spin-dot-holder{animation:1.6s ease-in-out infinite page-loading-breathe!important}.page-loading .ant-spin-dot-holder .ant-spin-dot-item{opacity:.7;transform:scale(.8);animation:none!important}}@keyframes page-loading-breathe{0%,to{opacity:.55}50%{opacity:1}}
