:root{--bg-primary: #0f172a;--bg-surface: #1e293b;--bg-elevated: #334155;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--accent-lesson: #f59e0b;--accent-milestone: #10b981;--accent-danger: #ef4444;--accent-info: #3b82f6;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}*{box-sizing:border-box;margin:0;padding:0}html{font-size:18px}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;-webkit-font-smoothing:antialiased}input,textarea,button,select{font-family:inherit;font-size:1rem}button{min-height:48px;min-width:48px;cursor:pointer;border:none;border-radius:var(--radius-sm)}input,textarea,select{min-height:48px;border-radius:var(--radius-sm);border:2px solid var(--bg-elevated);background:var(--bg-surface);color:var(--text-primary);padding:12px 16px;width:100%}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent-info);outline-offset:2px}.glass-panel{background:#16213e99;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);border-radius:12px}.glass-elevated{background:#16213ecc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 24px #0000004d;border-radius:12px}.glass-card{background:#16213e80;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:all .3s cubic-bezier(.4,0,.2,1)}.glass-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000004d;border-color:#5dcaa54d}.glass-input{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:.625rem .875rem;color:#e8e8e8;outline:none;transition:border-color .15s,box-shadow .15s}.glass-input:focus{border-color:#5dcaa5;box-shadow:0 0 0 3px #5dcaa51f}.stagger-in{animation:staggerIn .4s ease-out both}.stagger-in:nth-child(1){animation-delay:0ms}.stagger-in:nth-child(2){animation-delay:50ms}.stagger-in:nth-child(3){animation-delay:.1s}.stagger-in:nth-child(4){animation-delay:.15s}.stagger-in:nth-child(5){animation-delay:.2s}.stagger-in:nth-child(n+6){animation-delay:.25s}@keyframes staggerIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn-press{transition:transform .15s ease-out,box-shadow .15s ease-out}.btn-press:active{transform:scale(.96);box-shadow:inset 0 2px 4px #0003}.shimmer{background:linear-gradient(90deg,#80808014 25%,#80808029,#80808014 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.pop-in{animation:popIn .3s cubic-bezier(.34,1.56,.64,1) both}@keyframes popIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em}h2{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}h3{font-size:1rem;font-weight:600}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
