:root{color-scheme:dark;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;--accent: #6366f1;--accent-hover: #818cf8;--success: #22c55e;--danger: #ef4444;--surface: rgba(255, 255, 255, .04);--surface-hover: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .1);--muted: rgba(255, 255, 255, .55)}*{box-sizing:border-box;margin:0}html,body,#root{min-height:100vh;background:#0a0a0a;color:#fafafa}.shell{min-height:100vh;display:flex;justify-content:center;padding:2rem 1rem}.app-container{width:100%;max-width:52rem}.app-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:1rem;flex-wrap:wrap}.app-title{font-size:2rem;font-weight:700;letter-spacing:-.03em}.app-subtitle{color:var(--muted);font-size:.95rem;margin-top:.25rem}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;margin-bottom:2rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1rem;text-align:center;display:flex;flex-direction:column;gap:.2rem}.stat-value{font-size:1.6rem;font-weight:700;letter-spacing:-.02em;color:var(--accent-hover)}.stat-label{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;font-family:inherit;font-size:.875rem;font-weight:500;border:1px solid transparent;border-radius:.5rem;padding:.55rem 1rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-success{background:var(--success);color:#000}.btn-success:hover:not(:disabled){opacity:.85}.btn-outline{background:transparent;border-color:var(--border);color:var(--muted)}.btn-outline:hover:not(:disabled){border-color:var(--accent);color:var(--accent-hover)}.btn-ghost{background:transparent;color:var(--muted)}.btn-ghost:hover:not(:disabled){color:#fafafa;background:var(--surface)}.btn-sm{font-size:.8rem;padding:.4rem .75rem}.icon-btn{background:none;border:none;color:var(--muted);font-size:1.3rem;cursor:pointer;line-height:1;padding:.2rem;border-radius:.25rem}.icon-btn:hover{color:var(--danger);background:var(--surface)}.icon-btn-sm{background:none;border:none;color:var(--muted);font-size:1rem;cursor:pointer;padding:.15rem .35rem;border-radius:.25rem}.icon-btn-sm:hover{color:#fafafa;background:var(--surface)}.mastered-btn{color:var(--success)}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem}.lesson-card{background:var(--surface);border:1px solid var(--border);border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column;gap:.6rem}.lesson-card h3{font-size:1.05rem;font-weight:600;letter-spacing:-.01em;flex:1}.lesson-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.lesson-meta{font-size:.8rem;color:var(--muted)}.lesson-card-actions{display:flex;gap:.5rem;margin-top:auto;padding-top:.4rem}.progress-bar-track{width:100%;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.progress-bar-track.small{height:4px}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:3px;transition:width .4s ease}.card-list{margin-top:.5rem;font-size:.85rem}.card-list summary{cursor:pointer;color:var(--muted);font-size:.8rem}.card-list summary:hover{color:#fafafa}.card-list ul{list-style:none;padding:.5rem 0 0;display:flex;flex-direction:column;gap:.3rem}.card-list-item{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:.35rem;background:#ffffff05}.card-list-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.mastered-text{color:var(--success)}.card-list-actions{display:flex;gap:.25rem;flex-shrink:0}.empty{text-align:center;padding:4rem 1rem;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:center;z-index:100;padding:1rem}.modal{background:#141414;border:1px solid var(--border);border-radius:.75rem;padding:1.5rem;width:100%;max-width:26rem;display:flex;flex-direction:column;gap:.75rem}.modal h2{font-size:1.15rem;font-weight:600}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.label{font-size:.8rem;color:var(--muted);margin-bottom:-.25rem}.input{font-family:inherit;font-size:.9rem;background:#ffffff0d;border:1px solid var(--border);border-radius:.5rem;padding:.6rem .75rem;color:#fafafa;outline:none;width:100%;transition:border-color .15s}.input:focus{border-color:var(--accent)}.input::placeholder{color:#ffffff40}.textarea{resize:vertical;min-height:3rem}.review{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.review-header{width:100%;display:flex;align-items:center;gap:1rem}.review-title{font-size:1.15rem;font-weight:600;flex:1;text-align:center}.review-count{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.progress-label{font-size:.8rem;color:var(--muted)}.flashcard{width:100%;max-width:28rem;aspect-ratio:3 / 2;perspective:800px;cursor:pointer}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .5s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d}.flashcard.flipped .flashcard-inner{transform:rotateY(180deg)}.flashcard-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:1rem;border:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center}.flashcard-front{background:linear-gradient(135deg,#1a1a2e,#16213e)}.flashcard-back{background:linear-gradient(135deg,#0f3460,#1a1a2e);transform:rotateY(180deg)}.flashcard-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--muted);margin-bottom:.75rem}.flashcard-face p{font-size:1.15rem;font-weight:500;line-height:1.5}.hint{font-size:.75rem;color:#ffffff4d}.review-controls{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;justify-content:center}.complete-banner{width:100%;max-width:28rem;text-align:center;background:#22c55e1f;border:1px solid rgba(34,197,94,.3);border-radius:.75rem;padding:1rem;color:var(--success);font-weight:600}@media(max-width:640px){.stats-row{grid-template-columns:repeat(2,1fr)}.app-header{flex-direction:column}.flashcard-face p{font-size:1rem}}
