*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--brand-50: #eef2ff;--brand-100: #e0e7ff;--brand-400: #818cf8;--brand-500: #4f6ef7;--brand-600: #4338ca;--brand-900: #1e1b4b;--success: #22c55e;--danger: #ef4444;--warning: #f59e0b}[data-theme=dark],:root{--bg: #020617;--bg-card: #0f172a;--bg-secondary: #1e293b;--border: #1e293b;--border-strong: #334155;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #475569;--input-bg: #1e293b;--header-bg: rgba(2,6,23,.9);--nav-bg: rgba(15,23,42,.95);--scrollbar: #334155;--shadow: rgba(0,0,0,.4)}[data-theme=light]{--bg: #f8fafc;--bg-card: #ffffff;--bg-secondary: #f1f5f9;--border: #e2e8f0;--border-strong: #cbd5e1;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--input-bg: #f8fafc;--header-bg: rgba(248,250,252,.92);--nav-bg: rgba(255,255,255,.95);--scrollbar: #cbd5e1;--shadow: rgba(0,0,0,.08)}html{font-size:16px}body{font-family:Inter,Segoe UI,sans-serif;background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;overscroll-behavior:none;transition:background .25s,color .25s}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg-card)}::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:4px}button{font-family:inherit;cursor:pointer}textarea,input{font-family:inherit}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:1.25rem;transition:border-color .2s,box-shadow .2s}.card-hover:hover{border-color:var(--brand-500);box-shadow:0 4px 24px #4f6ef71f;transform:translateY(-1px)}.btn-primary{background:var(--brand-500);color:#fff;border:none;border-radius:12px;padding:.85rem 1.5rem;font-size:.95rem;font-weight:600;width:100%;transition:background .2s,transform .1s,box-shadow .2s,opacity .2s;box-shadow:0 4px 14px #4f6ef759}.btn-primary:hover:not(:disabled){background:var(--brand-600);box-shadow:0 6px 20px #4f6ef773;transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary:disabled{background:var(--border-strong);color:var(--text-muted);cursor:not-allowed;box-shadow:none}.btn-secondary{background:transparent;color:var(--text-secondary);border:1px solid var(--border-strong);border-radius:12px;padding:.85rem 1.5rem;font-size:.95rem;font-weight:500;transition:background .2s,border-color .2s,transform .1s}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--text-muted)}.btn-secondary:active:not(:disabled){transform:scale(.98)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-muted);border:none;padding:.5rem;border-radius:8px;transition:background .2s,color .2s,transform .1s}.btn-ghost:hover{background:var(--bg-secondary);color:var(--text-primary)}.btn-ghost:active{transform:scale(.95)}.input-field{width:100%;background:var(--input-bg);border:1px solid var(--border-strong);border-radius:12px;padding:.875rem 1rem;color:var(--text-primary);font-size:.95rem;resize:vertical;transition:border-color .2s,box-shadow .2s;line-height:1.6}.input-field:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px #4f6ef71f}.input-field::placeholder{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:500}.progress-bar{width:100%;height:6px;background:var(--bg-secondary);border-radius:99px;overflow:hidden}.progress-fill{height:100%;border-radius:99px;transition:width .5s cubic-bezier(.4,0,.2,1)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.55}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes timerPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes bounceIn{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes wiggle{0%,to{transform:rotate(0)}25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}.animate-fadeIn{animation:fadeIn .3s ease forwards}.animate-slideUp{animation:slideUp .35s cubic-bezier(.4,0,.2,1) forwards}.animate-slideDown{animation:slideDown .3s ease forwards}.animate-scaleIn{animation:scaleIn .25s ease forwards}.animate-pulseSoft{animation:pulseSoft 2s ease infinite}.animate-spin{animation:spin .8s linear infinite}.animate-timerPulse{animation:timerPulse .5s ease infinite}.animate-bounceIn{animation:bounceIn .4s cubic-bezier(.4,0,.2,1) forwards}.animate-wiggle{animation:wiggle .4s ease}.stagger>*:nth-child(1){animation-delay:0ms}.stagger>*:nth-child(2){animation-delay:60ms}.stagger>*:nth-child(3){animation-delay:.12s}.stagger>*:nth-child(4){animation-delay:.18s}.stagger>*:nth-child(5){animation-delay:.24s}.page{padding-bottom:calc(80px + env(safe-area-inset-bottom))}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:#020617eb;display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .3s ease}.toast-custom{background:var(--bg-card)!important;color:var(--text-primary)!important;border:1px solid var(--border)!important;border-radius:12px!important;font-size:.875rem!important;box-shadow:0 8px 24px var(--shadow)!important}.mcq-option{cursor:pointer;transition:all .18s cubic-bezier(.4,0,.2,1)}.mcq-option:active{transform:scale(.98)}.tab-page{animation:slideUp .28s cubic-bezier(.4,0,.2,1) forwards}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem;text-align:center;gap:1rem}.empty-icon{width:80px;height:80px;border-radius:24px;display:flex;align-items:center;justify-content:center;font-size:2.2rem;background:var(--bg-secondary);border:1px solid var(--border);animation:bounceIn .5s cubic-bezier(.4,0,.2,1) forwards}
