:root{--bg:#0d0d12;--surface:#131319;--elevated:#1b1b24;--border:#20202c;--border-hi:#2e2e40;--text:#eeeef8;--text-2:#7575a0;--text-3:#454565;--accent:oklch(63% .19 268);--accent-h:oklch(69% .19 268);--accent-dim:oklch(63% .19 268/.12);--accent-dim2:oklch(63% .19 268/.28);--success:oklch(72% .17 148);--success-dim:oklch(72% .17 148/.12);--warning:oklch(76% .16 72);--warning-dim:oklch(76% .16 72/.12);--danger:oklch(63% .21 28);--danger-dim:oklch(63% .21 28/.12);--danger-dim2:oklch(63% .21 28/.3)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;overflow-x:hidden}*{-webkit-tap-highlight-color:transparent}p,span,div,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}button{font-family:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes scaleIn{0%{opacity:0;transform:scale(.94)translateY(-6px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes slideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.fz-btn{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:10px;outline:none;justify-content:center;align-items:center;gap:7px;width:100%;padding:10px 18px;font-family:inherit;font-size:14px;font-weight:600;line-height:1;transition:background .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}.fz-btn:disabled{opacity:.38;cursor:not-allowed;pointer-events:none}.fz-btn:active:not(:disabled){transform:scale(.98)}.fz-btn-auto{width:auto}.fz-btn-sm{border-radius:8px;padding:7px 13px;font-size:13px}.fz-btn-lg{padding:13px 24px;font-size:15px}.fz-btn-primary{background:var(--accent);color:#fff}.fz-btn-primary:hover:not(:disabled){background:var(--accent-h)}.fz-btn-secondary{color:var(--text-2);border-color:var(--border-hi);background:0 0}.fz-btn-secondary:hover:not(:disabled){color:var(--text);background:#ffffff0a}.fz-btn-danger{background:var(--danger-dim);color:var(--danger);border-color:var(--danger-dim2)}.fz-btn-danger:hover:not(:disabled){background:var(--danger);color:#fff;border-color:#0000}.fz-btn-ghost{color:var(--text-2);background:0 0}.fz-btn-ghost:hover:not(:disabled){color:var(--text);background:#ffffff0d}.fz-input,.fz-textarea,.fz-select{background:var(--elevated);width:100%;color:var(--text);border:1px solid var(--border-hi);border-radius:10px;outline:none;padding:10px 14px;font-family:inherit;font-size:14px;font-weight:400;transition:border-color .15s,box-shadow .15s}.fz-input::placeholder,.fz-textarea::placeholder{color:var(--text-3)}.fz-input:focus,.fz-textarea:focus,.fz-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.fz-input.error,.fz-textarea.error{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-dim)}.fz-textarea{resize:none;min-height:80px;line-height:1.5}.fz-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%237575A0' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.fz-label{color:var(--text-2);letter-spacing:.01em;margin-bottom:7px;font-size:12px;font-weight:600;display:block}.fz-overlay{z-index:50;background:#000000c7;justify-content:center;align-items:center;padding:16px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.fz-modal{background:var(--elevated);border:1px solid var(--border-hi);border-radius:20px;width:100%;max-height:calc(100svh - 32px);padding:28px 24px;animation:.22s cubic-bezier(.34,1.4,.64,1) scaleIn;box-shadow:0 32px 80px #000000b3,inset 0 1px #ffffff0a}@media (width>=640px){.fz-modal{padding:36px}}.fz-navbar{z-index:40;-webkit-backdrop-filter:blur(24px);border-bottom:1px solid var(--border);background:#0d0d12e0;justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex;position:fixed;top:0;left:0;right:0}@media (width>=640px){.fz-navbar{padding:0 32px}}.fz-card{background:var(--surface);border:1px solid var(--border);border-radius:14px}.fz-metric{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px}.fz-deck-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:14px;padding:20px 20px 18px;transition:border-color .2s,background .2s,box-shadow .2s;position:relative}.fz-deck-card:hover{border-color:var(--accent);background:#171720;box-shadow:0 8px 28px #00000073}.fz-flashcard-scene{perspective:1100px;width:100%}.fz-flashcard-inner{width:100%;min-height:260px;transform-style:preserve-3d;transition:transform .48s cubic-bezier(.4,0,.2,1);position:relative}.fz-flashcard-inner.flipped{transform:rotateY(180deg)}.fz-flashcard-face{background:var(--surface);border:1px solid var(--border);backface-visibility:hidden;cursor:pointer;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:260px;padding:36px 28px;transition:border-color .2s,box-shadow .2s;display:flex;position:absolute;inset:0;box-shadow:0 8px 36px #0006}.fz-flashcard-face:hover{border-color:var(--border-hi)}.fz-flashcard-face.back{transform:rotateY(180deg)}.fz-rating-btn{cursor:pointer;border:1px solid;border-radius:12px;outline:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:66px;padding:14px 8px;font-family:inherit;font-size:14px;font-weight:700;transition:all .15s;display:flex}.fz-rating-btn:active{transform:scale(.97)}.fz-again{background:var(--danger-dim);color:var(--danger);border-color:oklch(63% .21 28/.22)}.fz-again:hover{background:oklch(63% .21 28/.2);border-color:oklch(63% .21 28/.5)}.fz-hard{background:var(--warning-dim);color:var(--warning);border-color:oklch(76% .16 72/.22)}.fz-hard:hover{background:oklch(76% .16 72/.2);border-color:oklch(76% .16 72/.5)}.fz-easy{background:var(--success-dim);color:var(--success);border-color:oklch(72% .17 148/.22)}.fz-easy:hover{background:oklch(72% .17 148/.2);border-color:oklch(72% .17 148/.5)}.fz-rating-btn.highlighted{box-shadow:0 0 0 2px}.fz-timer-track{background:var(--border);border-radius:2px;width:100%;height:3px;overflow:hidden}.fz-timer-fill{border-radius:2px;height:100%;transition:background .6s}.fz-badge{letter-spacing:.02em;border:1px solid #0000;border-radius:100px;align-items:center;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.badge-accent{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim2)}.badge-success{background:var(--success-dim);color:var(--success)}.badge-warning{background:var(--warning-dim);color:var(--warning)}.badge-danger{background:var(--danger-dim);color:var(--danger)}.badge-subtle{color:var(--text-2);background:#ffffff0f}.badge-blue{color:#60a5fa;background:#60a5fa1f}.fz-menu-dropdown{background:var(--elevated);border:1px solid var(--border-hi);z-index:30;transform-origin:100% 0;border-radius:12px;min-width:168px;padding:5px;animation:.14s scaleIn;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 20px 52px #000000a6}.fz-menu-item{width:100%;color:var(--text-2);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:8px 10px;font-family:inherit;font-size:13px;font-weight:500;transition:background .1s,color .1s;display:flex}.fz-menu-item:hover{color:var(--text);background:#ffffff0f}.fz-menu-item-del:hover{background:var(--danger-dim);color:var(--danger)}.fz-menu-sep{background:var(--border);height:1px;margin:4px 0}.fz-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:700}.fz-divider{background:var(--border);height:1px}.fz-mono{font-family:JetBrains Mono,Fira Mono,monospace}.fz-error-banner{background:var(--danger-dim);border:1px solid var(--danger-dim2);color:var(--danger);border-radius:10px;padding:10px 14px;font-size:13px;line-height:1.5}.fz-progress-bar{background:var(--border);border-radius:2px;flex:1;height:4px;overflow:hidden}.fz-progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .45s}.fz-auth-wrap{flex-direction:column;justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.fz-auth-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;width:100%;max-width:400px;padding:32px 28px;animation:.3s fadeUp;box-shadow:0 24px 64px #00000080}.fz-page{min-height:100%;padding-top:60px}.fz-content{max-width:1120px;margin:0 auto;padding:32px 16px 110px}@media (width>=640px){.fz-content{padding:40px 24px 110px}}@media (width>=1024px){.fz-content{padding:48px 32px 110px}}.grid-metrics{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}@media (width>=640px){.grid-metrics{grid-template-columns:repeat(4,1fr)}}.grid-decks{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=640px){.grid-decks{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.grid-decks{grid-template-columns:repeat(3,1fr)}}.grid-cards{grid-template-columns:1fr;gap:10px;display:grid}@media (width>=640px){.grid-cards{grid-template-columns:repeat(2,1fr)}}.hide-sm{display:none}@media (width>=640px){.hide-sm{display:block}}.fz-review-page{background:var(--bg);flex-direction:column;height:100vh;display:flex}.fz-review-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;height:60px;padding:0 20px;display:flex}.fz-review-main{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:20px;padding:24px 16px;display:flex;overflow-y:auto}.fz-review-footer{border-top:1px solid var(--border);flex-shrink:0;padding:14px 20px 22px}@media (width>=640px){.fz-review-header{padding:0 32px}.fz-review-footer{padding:16px 32px 28px}}.type-badge{letter-spacing:.01em;border:1px solid;border-radius:7px;align-items:center;gap:0;padding:3px 9px;font-size:11px;font-weight:600;display:inline-flex}.type-basic{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim2)}.type-reversed{background:var(--warning-dim);color:var(--warning);border-color:oklch(76% .16 72/.25)}.type-manual{background:var(--success-dim);color:var(--success);border-color:oklch(72% .17 148/.25)}.fz-link-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;font-weight:600}.fz-link-btn:hover{text-decoration:underline}.fz-complete-page{justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.kb-hint{opacity:.45;font-family:JetBrains Mono,monospace;font-size:10px}.card-item{position:relative}.card-item-actions{gap:4px;display:flex;position:absolute;top:10px;right:10px}.card-action-btn{cursor:pointer;width:30px;height:30px;color:var(--text-2);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:flex}.card-action-btn.edit:hover{background:var(--accent-dim);color:var(--accent)}.card-action-btn.trash:hover{background:var(--danger-dim);color:var(--danger)}
