:root{--color-bg:#f7f8fc;--color-surface:#fff;--color-text:#1a1d29;--color-text-muted:#5b6072;--color-border:#e4e6ef;--color-primary:#3a3ff0;--color-primary-dark:#2c2fc7;--color-primary-light:#eceafe;--color-accent:#ff8a3d;--color-accent-text:#a04407;--color-success:#1c9d63;--focus-ring:0 0 0 3px #3a3ff059;--shadow-sm:0 1px 3px #14142b0f;--shadow-md:0 8px 24px #14142b14;--radius-md:12px;--radius-lg:20px;--max-width:1160px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,Arial,sans-serif;line-height:1.6}.skip-link{z-index:1000;background:var(--color-primary-dark);color:#fff;border-radius:var(--radius-md);padding:10px 18px;font-weight:600;text-decoration:none;transition:top .15s;position:absolute;top:-100px;left:12px}.skip-link:focus{box-shadow:var(--focus-ring);top:12px}#root{flex-direction:column;min-height:100vh;display:flex}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0 0 .5em;line-height:1.25}p{margin:0 0 1em}button,input,textarea{font-family:inherit}.container{max-width:var(--max-width);width:100%;margin:0 auto;padding:0 24px}.btn{cursor:pointer;white-space:nowrap;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--color-primary-dark)}.btn-accent{background:var(--color-accent);color:#fff}.btn-accent:hover{filter:brightness(.95)}.btn-outline{color:var(--color-primary);border:1.5px solid var(--color-primary);background:0 0}.btn-outline:hover{background:var(--color-primary-light)}.btn-block{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.badge{letter-spacing:.02em;background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.badge-success{color:var(--color-success);background:#e2f6ec}.page-hero{padding:40px 0 24px}.page-hero h1{font-size:2rem}.section-title{margin-bottom:4px;font-size:1.6rem}.section-subtitle{color:var(--color-text-muted);margin-bottom:28px}.form-field{flex-direction:column;gap:6px;margin-bottom:18px;display:flex}.form-field label{color:var(--color-text-muted);font-size:.9rem;font-weight:600}.form-field input{border-radius:var(--radius-md);border:1.5px solid var(--color-border);outline:none;padding:12px 14px;font-size:1rem;transition:border-color .15s}.form-field input:focus{border-color:var(--color-primary);box-shadow:var(--focus-ring)}.alert{border-radius:var(--radius-md);margin-bottom:16px;padding:12px 16px;font-size:.9rem}.alert-error{color:#b3261e;background:#fdeceb;border:1px solid #f6c9c6}.alert-success{color:var(--color-success);background:#e2f6ec;border:1px solid #bfe9d3}.spinner-wrap{color:var(--color-text-muted);justify-content:center;padding:60px 0;display:flex}.progress-bar{background:var(--color-border);border-radius:999px;height:8px;overflow:hidden}.progress-bar-fill{background:var(--color-success);border-radius:999px;height:100%;transition:width .3s}@media (width<=640px){.page-hero h1{font-size:1.6rem}}.lang-switcher{background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex}.lang-switcher-btn{color:var(--color-text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:700}.lang-switcher-btn.active{background:var(--color-primary);color:#fff}.navbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:20;position:sticky;top:0}.navbar-inner{justify-content:space-between;align-items:center;height:68px;display:flex}.navbar-brand{white-space:nowrap;color:var(--color-primary-dark);flex:none;align-items:center;gap:8px;font-size:1.15rem;font-weight:800;display:flex}.navbar-logo{font-size:1.5rem}.navbar-toggle{cursor:pointer;color:var(--color-text);background:0 0;border:none;font-size:1.4rem;display:none}.navbar-links{color:var(--color-text-muted);align-items:center;gap:24px;font-size:.95rem;font-weight:600;display:flex}.navbar-links a{white-space:nowrap}.navbar-links a.active,.navbar-links a:hover{color:var(--color-primary)}.navbar-user{color:var(--color-text);white-space:nowrap}.navbar .container{max-width:1280px}@media (width<=1260px){.navbar-toggle{display:block}.navbar-links{background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-direction:column;align-items:flex-start;gap:16px;padding:20px 24px;display:none;position:absolute;top:68px;left:0;right:0}.navbar-links.open{display:flex}}.footer{color:#c7c9db;background:#14152b;margin-top:auto;padding-top:48px}.footer-inner{grid-template-columns:2fr 1fr 1fr;gap:32px;padding-bottom:32px;display:grid}.footer-brand{color:#fff;margin-bottom:12px;font-size:1.1rem;font-weight:800}.footer-col h4{color:#fff;margin-bottom:12px;font-size:.95rem}.footer-col a,.footer-col p{color:#c7c9db;margin-bottom:8px;font-size:.92rem;display:block}.footer-col a:hover{color:#fff}.footer-bottom{color:#8d8fa8;border-top:1px solid #2b2c47;padding:18px 24px;font-size:.85rem}@media (width<=700px){.footer-inner{grid-template-columns:1fr}}.verify-banner{color:#7a4a05;text-align:center;background:#fff6e8;border-bottom:1px solid #f3dcb5;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 14px;padding:10px 16px;font-size:.9rem;display:flex}.verify-banner-action{color:var(--color-primary);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.verify-banner-action:disabled{opacity:.6;cursor:default}.error-boundary{max-width:600px}.error-boundary h1{margin-top:0}.error-boundary-ref{color:var(--color-text-muted);font-size:.9rem}.error-boundary-ref code{background:var(--color-bg);border-radius:4px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.error-boundary-actions{gap:10px;margin-top:16px;display:flex}.error-boundary-home{border:1px solid var(--color-border);color:var(--color-text);align-items:center;text-decoration:none;display:inline-flex}.hero{background:linear-gradient(135deg,#eceafe 0%,#f7f8fc 60%);padding:56px 0;overflow:hidden}.hero-inner{justify-content:space-between;align-items:center;gap:32px;display:flex}.hero-copy{max-width:620px}.hero-copy h1{margin-top:16px;font-size:2.4rem}.hero-subtitle{color:var(--color-text-muted);font-size:1.05rem}.hero-actions{flex-wrap:wrap;gap:14px;display:flex}.hero-visual{filter:drop-shadow(0 20px 30px #3a3ff040);flex-shrink:0;font-size:9rem;line-height:1}.section{padding-top:48px;padding-bottom:48px}.feature-grid{grid-template-columns:repeat(4,1fr);gap:20px;display:grid}.feature-card{padding:24px}.feature-icon{margin-bottom:12px;font-size:2rem}.feature-card h3{font-size:1.05rem}.feature-card p{color:var(--color-text-muted);margin-bottom:0;font-size:.9rem}.category-grid{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.category-card{padding:22px;transition:transform .15s,box-shadow .15s;display:block}.category-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.category-icon{margin-bottom:10px;font-size:1.8rem}.category-card p{color:var(--color-text-muted);margin-bottom:0;font-size:.88rem}.section-cta{text-align:center;margin-top:24px}.teacher-strip{padding-bottom:64px}.teacher-card{align-items:center;gap:24px;padding:28px;display:flex}.teacher-avatar{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;font-size:1.3rem;font-weight:800;display:flex}.teacher-card p{color:var(--color-text-muted);margin-bottom:14px}@media (width<=900px){.hero-inner{text-align:center;flex-direction:column}.hero-actions{justify-content:center}.feature-grid,.category-grid{grid-template-columns:repeat(2,1fr)}.teacher-card{text-align:center;flex-direction:column}}@media (width<=560px){.feature-grid,.category-grid{grid-template-columns:1fr}}
