:root{--font-heading: "Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-body: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--bg-primary: #f8fafc;--bg-secondary: #ffffff;--bg-card: #ffffff;--bg-elevated: #f1f5f9;--bg-hover: #f1f5f9;--accent-primary: #2563eb;--accent-primary-hover: #1d4ed8;--accent-indigo: #4f46e5;--accent-teal: #0d9488;--accent-amber: #d97706;--accent-rose: #e11d48;--text-main: #0f172a;--text-muted: #64748b;--text-dim: #94a3b8;--border-color: #e2e8f0;--border-focus: #2563eb;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 2px 4px -1px rgba(0, 0, 0, .03);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -2px rgba(0, 0, 0, .03)}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);letter-spacing:-.02em;color:var(--text-main)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.glass-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:border-color .15s ease,box-shadow .15s ease}.glass-card:hover{border-color:#cbd5e1}.glass-card-interactive:hover{border-color:var(--accent-primary);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-body);font-weight:600;font-size:.9rem;padding:9px 16px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .15s ease;-webkit-user-select:none;user-select:none;text-decoration:none}.btn-primary{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.btn-primary:hover{background:var(--accent-primary-hover);border-color:var(--accent-primary-hover)}.btn-secondary{background:#fff;color:var(--text-main);border-color:var(--border-color)}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.btn-accent-cyan{background:var(--accent-teal);color:#fff;border-color:var(--accent-teal)}.btn-accent-cyan:hover{background:#0f766e}.btn-accent-emerald{background:#16a34a;color:#fff;border-color:#16a34a}.btn-accent-emerald:hover{background:#15803d}.btn-danger{background:#fef2f2;color:#dc2626;border-color:#fecaca}.btn-danger:hover{background:#fee2e2}.btn-sm{padding:6px 12px;font-size:.82rem;border-radius:var(--radius-sm)}.btn-lg{padding:12px 24px;font-size:1rem;border-radius:var(--radius-md)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--radius-sm);font-size:.75rem;font-weight:600;letter-spacing:.02em}.badge-public{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.badge-unlisted{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.badge-private{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.badge-invite{background:#f5f3ff;color:#5b21b6;border:1px solid #ddd6fe}.input-field{width:100%;background:#fff;border:1px solid var(--border-color);color:var(--text-main);padding:10px 14px;border-radius:var(--radius-md);font-family:var(--font-body);font-size:.92rem;outline:none;transition:border-color .15s,box-shadow .15s}.input-field:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb1f}textarea.input-field{resize:vertical;min-height:80px}select.input-field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2364748b'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;padding-right:36px}.flashcard-wrapper{perspective:1000px;width:100%;max-width:640px;height:360px;margin:0 auto;position:relative;overflow:hidden;border-radius:var(--radius-lg)}.card-slide-container{width:100%;height:100%;border-radius:var(--radius-lg);will-change:transform,opacity}.card-slide-out-left{transform:translate(-120px);opacity:0;transition:transform .16s cubic-bezier(.4,0,1,1),opacity .16s ease}.card-slide-out-right{transform:translate(120px);opacity:0;transition:transform .16s cubic-bezier(.4,0,1,1),opacity .16s ease}.card-slide-in-right{transform:translate(120px);opacity:0;transition:none!important}.card-slide-in-left{transform:translate(-120px);opacity:0;transition:none!important}.card-slide-active{transform:translate(0);opacity:1;transition:transform .18s cubic-bezier(0,0,.2,1),opacity .18s ease}.flashcard-inner{position:relative;width:100%;height:100%;transition:transform .28s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;cursor:pointer;border-radius:var(--radius-lg)}.flashcard-inner.is-flipped{transform:rotateY(180deg)}.flashcard-face{position:absolute;width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:var(--radius-lg);display:flex;flex-direction:column;justify-content:space-between;padding:32px;background:#fff;border:1px solid var(--border-color);box-shadow:var(--shadow-md)}.flashcard-back{transform:rotateY(180deg);background:#f8fafc;border-color:#cbd5e1}.flashcard-content{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1;font-size:1.5rem;font-weight:600;line-height:1.4;color:var(--text-main);padding:10px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease-out}.modal-content{background:#fff;border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg);padding:24px}@keyframes fadeIn{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.cat-tag{font-size:.75rem;font-weight:600;padding:3px 8px;border-radius:var(--radius-sm);background:#f1f5f9;color:#475569}
