:root{--bg:#f6f7f9;--surface:#ffffff;--text:#1a1d21;--muted:#6b7280;--border:#e2e5ea;--accent:#2563eb;--accent-dark:#1d4ed8;--green:#16a34a;--green-dark:#15803d;--red:#dc2626;--red-dark:#b91c1c;--radius:10px;--good:#16a34a;--good-dark:#15803d;--hard:#b45309;--hard-dark:#92400e;--again:#dc2626;--again-tint:rgba(220,38,38,0.09);--easy:#0d9488;--easy-tint:rgba(13,148,136,0.1);--bottom-nav-h:56px}@media (prefers-color-scheme:dark){:root{--bg:#0b0d10;--surface:#16191d;--text:#e6e8eb;--muted:#9ca3af;--border:#2a2e35;--accent:#3b82f6;--accent-dark:#2563eb;--green:#22c55e;--green-dark:#16a34a;--red:#ef4444;--red-dark:#dc2626;--good:#22c55e;--good-dark:#16a34a;--hard:#d97706;--hard-dark:#b45309;--again:#ef4444;--again-tint:rgba(239,68,68,0.14);--easy:#2dd4bf;--easy-tint:rgba(45,212,191,0.14)}}*{box-sizing:border-box}[role=button],a,button,input,label,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:640px;margin:0 auto;padding:1rem}.site-header{background:var(--surface);border-bottom:1px solid var(--border);padding-top:env(safe-area-inset-top)}.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.75rem;padding-bottom:.75rem}.site-header .brand{font-weight:700;color:var(--text)}.site-header nav{gap:1rem;margin-left:auto}.avatar-btn,.site-header nav{display:flex;align-items:center}.avatar-btn{justify-content:center;width:2.75rem;height:2.75rem;padding:0;border:1px solid var(--border);border-radius:50%;background:var(--surface);cursor:pointer;overflow:hidden;flex-shrink:0}.avatar-btn:active,.avatar-btn:hover{outline:2px solid var(--accent);outline-offset:1px}.avatar-img{width:100%;height:100%;object-fit:cover}.avatar-fallback{font-size:.9rem;font-weight:600;color:var(--muted)}.modal-overlay{position:fixed;inset:0;background:rgba(26,29,33,.4);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100}.modal{position:relative;width:100%;max-width:320px;text-align:center}.modal-close{position:absolute;top:.5rem;right:.5rem;border:none;background:none;font-size:1.25rem;line-height:1;color:var(--muted);cursor:pointer;padding:.25rem}.modal-close:hover{color:var(--text)}.modal-email{margin:.5rem 0 1.25rem;overflow-wrap:break-word}.modal-note{margin:.75rem 0 0;color:var(--muted);font-size:.875rem}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.5rem 1rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:1rem;cursor:pointer}.btn:hover{background:var(--bg)}.btn:active{filter:brightness(.94)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-dark)}.btn-danger{color:var(--red)}.btn-sm{padding:.25rem .6rem;font-size:.875rem}.btn:disabled{opacity:.6;cursor:not-allowed}.spinner{width:1em;height:1em;margin-right:.5rem;border:2px solid;border-right:2px solid transparent;border-radius:50%;animation:spinner-rotate .6s linear infinite}@keyframes spinner-rotate{to{transform:rotate(1turn)}}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.review-card{margin-top:1.5rem;text-align:center;padding:0}.review-card .question{font-size:1.25rem}.review-card>.question{display:block;margin:1.25rem}.review-card .answer{font-size:1.15rem;margin:1rem 1.25rem 1.5rem;padding-top:1rem;border-top:1px dashed var(--border)}.card-front-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;width:100%;min-height:8rem;padding:2rem 1.25rem;border:none;border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer;font:inherit}.card-front-btn .reveal-hint{font-size:.85rem;color:var(--muted)}.card-front-btn:active{background:var(--bg)}.grade-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.6rem;gap:.6rem;margin:0 1.25rem 1.25rem}.gbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;min-height:54px;padding:.5rem;border-radius:var(--radius);border:1.5px solid transparent;font:inherit;font-weight:650;cursor:pointer}.gbtn:active{filter:brightness(.96)}.gbtn .lbl{font-size:1rem}.gbtn .hint{font-size:.72rem;font-weight:500;opacity:.9}.b-good{grid-column:1/-1;min-height:60px;background:var(--good);border-color:var(--good);color:#fff}.b-good .lbl{font-size:1.1rem}.b-hard{background:var(--hard);border-color:var(--hard);color:#fff}.b-easy{background:var(--easy-tint);border-color:var(--easy);color:var(--easy)}.b-again{background:var(--again-tint);border-color:var(--again);color:var(--again)}.review-card .error-text{margin:0 1.25rem 1rem}.review-progress{font-size:.875rem;margin-top:1rem}.empty-state,.review-progress{color:var(--muted);text-align:center}.empty-state{margin-top:3rem;font-size:1.1rem}.form-field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.form-field label{font-weight:600;font-size:.9rem}.form-field textarea{font:inherit;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);resize:vertical;min-height:4rem}.form-field textarea:focus{outline:2px solid var(--accent);outline-offset:-1px}.md-editor{position:relative}.md-editor-input{font:inherit;padding:.5rem;border:1px solid var(--border);border-radius:var(--radius);min-height:4rem;background:var(--surface);color:var(--text);overflow-wrap:break-word}.md-editor-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.md-editor-image{max-width:100%;height:auto;border-radius:var(--radius);vertical-align:middle}.md-editor a{color:var(--accent)}.md-editor-loading{min-height:4rem;background:var(--bg)}.mode-toggle{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}.mode-toggle-btn{padding:.4rem .9rem;border:none;background:var(--surface);color:var(--text);font:inherit;font-size:.875rem;cursor:pointer}.mode-toggle-btn+.mode-toggle-btn{border-left:1px solid var(--border)}.mode-toggle-btn-active{background:var(--accent);color:#fff}.card-fields-grid{display:grid;grid-template-columns:1fr;grid-gap:1.25rem;gap:1.25rem;align-items:start}@media (min-width:768px){.card-fields-grid-split{grid-template-columns:1fr 1fr}}.card-fields-preview-label{font-weight:600;font-size:.9rem;margin:0 0 .25rem}.card-preview{margin-top:0}.card-list{list-style:none;padding:0;margin:1rem 0 0;gap:.75rem}.card-list,.card-row{display:flex;flex-direction:column}.card-row{gap:.35rem;width:100%;text-align:left;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);cursor:pointer;font:inherit}.card-row:active{background:var(--bg)}.card-row .q{font-weight:600;overflow-wrap:break-word}.card-row .due{color:var(--muted);font-size:.85rem}.card-row-enter{animation:card-row-enter 1.6s ease}@keyframes card-row-enter{0%{opacity:0;transform:translateY(-12px);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}25%{opacity:1;transform:translateY(0);border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}to{border-color:var(--border);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 0%,transparent)}}.modal-card{max-width:420px;text-align:left}.card-detail-question{font-size:1.15rem;font-weight:600;overflow-wrap:break-word;margin:.25rem 2rem .75rem 0}.answer-accordion{margin:1rem 0;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.answer-accordion summary{cursor:pointer;padding:.6rem .85rem;font-weight:600;font-size:.9rem;list-style:none}.answer-accordion summary::-webkit-details-marker{display:none}.answer-accordion summary:after{content:"▾";float:right;color:var(--muted);transition:transform .15s ease}.answer-accordion[open] summary:after{transform:rotate(180deg)}.answer-accordion .answer-body{padding:.25rem .85rem .85rem;overflow-wrap:break-word}.card-detail-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.card-detail-actions .confirm-text{font-size:.9rem;margin-right:auto}.status-badge{display:inline-block;font-size:.75rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--border);color:var(--muted);margin-top:.35rem}.status-badge.new{color:var(--accent);border-color:var(--accent)}.status-badge.mastered{color:var(--green);border-color:var(--green)}.sign-in-screen{text-align:center;margin-top:4rem}.sign-in-screen h1{margin-bottom:.5rem}.sign-in-screen p{color:var(--muted);margin-bottom:2rem}.error-text{color:var(--red);font-size:.9rem;margin:.5rem 0}h1{font-size:1.5rem}h2{font-size:1.15rem}.retention-form{display:flex;flex-direction:column;gap:.75rem;align-items:flex-start;margin-top:.75rem}.retention-form input[type=range]{width:100%;max-width:24rem}.retention-form .hint{margin:0}.retention-form .hint,.share-hint{color:var(--muted);font-size:.875rem}.share-hint{margin:0 0 1rem}.form-error{font-size:.85rem;margin:.5rem 0 0}.card-entering{animation:card-enter .28s ease}@keyframes card-enter{0%{opacity:0;transform:translateY(24px)}}.undo-toast-wrap{position:fixed;left:0;right:0;bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + .75rem);z-index:40;display:flex;justify-content:center;padding:0 1rem;pointer-events:none}.undo-toast{pointer-events:auto;display:flex;align-items:center;gap:.6rem;width:100%;max-width:640px;padding:.6rem .9rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:0 4px 16px rgba(0,0,0,.15);animation:toast-enter .22s ease}.undo-toast.toast-leaving{animation:toast-leave .32s ease forwards}@keyframes toast-enter{0%{opacity:0;transform:translateY(12px)}}@keyframes toast-leave{to{opacity:0;transform:translateY(12px)}}.undo-toast-grade{font-weight:700;white-space:nowrap}.undo-toast-grade.cg-again{color:var(--again)}.undo-toast-grade.cg-hard{color:var(--hard)}.undo-toast-grade.cg-good{color:var(--good)}.undo-toast-grade.cg-easy{color:var(--easy)}.undo-toast-iv{flex:1 1;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;overflow-wrap:break-word}.undo-toast-undo{flex-shrink:0;margin-left:auto}@media (prefers-reduced-motion:reduce){.card-entering,.undo-toast,.undo-toast.toast-leaving{animation:none}.spinner{animation-duration:1.4s}.card-row-enter{animation:card-row-flash .9s ease}}@keyframes card-row-flash{0%,60%{border-color:var(--accent)}to{border-color:var(--border)}}.rating-help-link{display:block;margin:1rem auto 0;padding:.25rem;border:none;background:none;color:var(--muted);font:inherit;font-size:.85rem;text-decoration:underline;cursor:pointer}.rating-help-title{margin:0 2rem .5rem 0}.rating-help-intro{color:var(--muted);font-size:.9rem;margin:0 0 1rem}.rating-help-list{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-direction:column;gap:.7rem}.rating-help-list li{display:flex;align-items:flex-start;gap:.6rem;font-size:.92rem}.rating-help-list .muted{color:var(--muted)}.rating-help-list .sw{flex-shrink:0;width:14px;height:14px;margin-top:4px;border-radius:4px;border:1.5px solid transparent}.sw-good{background:var(--good);border-color:var(--good)}.sw-hard{background:var(--hard);border-color:var(--hard)}.rating-help-list .sw-easy{background:var(--easy-tint);border-color:var(--easy)}.rating-help-list .sw-again{background:var(--again-tint);border-color:var(--again)}.rating-help-rule{margin:0;padding:.7rem .85rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);font-size:.9rem}.markdown-help-group{margin:1rem 0 .4rem;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.markdown-help-group:first-of-type{margin-top:.5rem}.markdown-help-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.markdown-help-list li{display:flex;align-items:baseline;gap:.75rem;font-size:.92rem}.markdown-help-list code{flex-shrink:0;padding:.15rem .4rem;border:1px solid var(--border);border-radius:5px;background:var(--bg);font-size:.82rem;white-space:nowrap}.markdown-help-list li>span{overflow-wrap:anywhere}.markdown-help-list .muted{color:var(--muted)}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-inner{display:flex;width:100%;max-width:640px}.bottom-nav .tab{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;min-height:var(--bottom-nav-h);padding:.4rem .25rem;color:var(--muted);font-size:.7rem;font-weight:500}.bottom-nav .tab,.bottom-nav .tab:hover{text-decoration:none}.bottom-nav .tab:active{background:var(--bg)}.bottom-nav .tab.active{color:var(--accent)}.bottom-nav .tab svg{width:24px;height:24px}main.container.has-bottom-nav{padding-bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom) + 5rem)}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md ol,.md p,.md ul{margin:0 0 .6em}.md ol,.md ul{padding-left:1.4em}.md a{color:var(--accent);overflow-wrap:break-word}.md img{max-width:100%;height:auto;border-radius:var(--radius);margin:.25rem 0}.md code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;border:1px solid var(--border);border-radius:4px;padding:.1em .3em}.md code,.md pre{background:var(--bg)}.md pre{border:1px solid var(--border);border-radius:var(--radius);padding:.75rem;overflow-x:auto}.md pre code{background:none;border:none;padding:0}.md blockquote{margin:0 0 .6em;padding-left:.85rem;border-left:3px solid var(--border);color:var(--muted)}.form-hint{margin:-.25rem 0 .85rem;font-size:.8rem;color:var(--muted);overflow-wrap:break-word}