:root{--bg: #0f172a;--fg: #e5e7eb;--muted: #94a3b8;--card: #111827;--border: #1f2937;--button: #1f2937;--good: #16a34a;--bad: #ef4444;color-scheme:light dark;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--fg);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;padding:0rem 1rem 1rem;-webkit-text-size-adjust:100%;text-size-adjust:100%}h1{font-size:3.2em;line-height:1.1}a{font-weight:500;color:#127bd3;text-decoration:inherit;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}@media (hover: hover) and (pointer: fine){a:hover{color:#32dcb8}}button{border-radius:8px;border:1px solid var(--border);padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--button);color:var(--fg);cursor:pointer;transition:filter .2s;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}button svg{vertical-align:middle;flex-shrink:0;transform:translateZ(0);will-change:transform}button:focus,button:focus-visible{outline:none}@media (hover: hover) and (pointer: fine){button:hover:not(:disabled){filter:brightness(.925)}}@media (prefers-color-scheme: light){:root{--bg: #f8fafc;--fg: #0f172a;--muted: #475569;--card: #ffffff;--border: #e5e7eb;--button: #f3f4f6}a:hover{color:#0e5f9a}}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem}.card:hover{border-color:color-mix(in oklab,var(--fg) 15%,var(--border))}.toggle-switch{position:relative;flex-shrink:0;width:44px;height:24px;padding:0;border:none;border-radius:999px;background-color:var(--muted);transition:background-color .2s}.toggle-switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0000004d;transition:transform .2s}.toggle-switch[aria-checked=true]{background-color:#127bd3}.toggle-switch[aria-checked=true]:after{transform:translate(20px)}.toggle-switch:focus-visible{outline:2px solid #32dcb8;outline-offset:2px}@media (prefers-reduced-motion: reduce){.toggle-switch,.toggle-switch:after{transition:none}}.centered{min-height:calc(80dvh - 64px);display:flex;align-items:center;justify-content:center;padding:0rem}.card.review{max-width:700px;width:100%}.btn{border-radius:8px;border:1px solid var(--border);background:var(--button);color:var(--fg);padding:.55rem .9rem;font-size:.95rem;display:inline-flex;align-items:center;gap:.5rem}.btn.good{background:color-mix(in oklab,var(--good) 25%,var(--button));border-color:color-mix(in oklab,var(--good) 35%,var(--border))}.btn.good:hover:not(:disabled){filter:brightness(1) saturate(2)}.btn.bad{background:color-mix(in oklab,var(--bad) 25%,var(--button));border-color:color-mix(in oklab,var(--bad) 35%,var(--border))}.btn.bad:hover:not(:disabled){filter:brightness(1) saturate(2)}.btn:disabled{opacity:.6;cursor:not-allowed;filter:grayscale(.2)}.btn__label{display:none}@media (min-width: 1050px){.btn__label{display:inline}}@media (max-width: 768px){.btn-text{display:none}}.hint{color:var(--muted);font-size:.95rem}input[type=search],input[type=url],input[type=text],textarea,select{width:100%;padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--fg);box-sizing:border-box;font-family:inherit}input:focus,input:focus-visible,textarea:focus,select:focus{outline:none;box-shadow:none}.front{font-weight:600;font-size:1.1rem;margin-bottom:.75rem;text-align:center}.back{border-top:1px dashed var(--border);margin-top:.75rem;padding-top:.75rem}.front img,.back img{max-width:min(100%,500px);max-height:400px;width:auto;height:auto;display:block;margin:.5em auto;object-fit:contain}.front img+br,.back img+br{display:none!important}.front iframe,.back iframe{max-width:min(100%,500px);width:100%;aspect-ratio:16 / 9;display:block;margin:.5em auto;border:none}.front video,.back video{max-width:min(100%,500px);width:100%;height:auto;display:block;margin:.5em auto}.front audio,.back audio{max-width:100%;display:block;margin:.5em auto}.front ul,.front ol,.back ul,.back ol{margin:.75em 0;padding-left:1.5em;line-height:1.6}.front li,.back li{margin:.5em 0}.card.review .back{overflow-x:hidden}.history-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;max-width:870px;margin:24px auto 15px}@media (max-width: 768px){.history-grid{grid-template-columns:1fr}}.nav-link{color:var(--fg);opacity:.8;display:inline-flex;align-items:center;gap:.4rem;line-height:1;padding:.25rem .5rem;position:relative;transition:opacity .3s ease}.nav-link svg{display:block}.nav-link:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform .3s ease}.nav-link.active{opacity:1}.nav-link.active:after{transform:scaleX(.7)}@media (max-width: 768px){.nav-link .nav-label{display:none}.nav-link{padding:.35rem .45rem}}.topbar{position:sticky;top:0;z-index:50;background:color-mix(in oklab,var(--bg) 85%,transparent);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border)}.topbar__nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem;max-width:1100px;margin:0 auto;padding:1rem}.topbar__links{display:flex;gap:.75rem;align-items:center;flex:1;justify-content:flex-end}@media (max-width: 768px){.topbar__links{gap:.6rem}}.topbar__profile{display:flex;align-items:center}.brand{text-decoration:none;display:flex;align-items:center;gap:.5rem}.brand h1{margin:0;font-size:1rem;font-weight:700;background:linear-gradient(135deg,#127bd3,#32dcb8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.container{max-width:1100px;margin:0 auto;padding:0rem}.modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem 1.5rem;animation:fadeIn .2s ease-out}.modal-dialog{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1.5rem;max-width:540px;width:100%;box-shadow:0 20px 40px #0000004d;animation:slideUp .25s ease-out}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-header h3{margin:0;font-size:1.25rem;font-weight:600}.modal-close{background:transparent;border:none;padding:.25rem;cursor:pointer;color:var(--muted);display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:var(--button);color:var(--fg)}.modal-body{margin-bottom:1rem}.modal-footer{display:flex;gap:.5rem;justify-content:flex-end}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.preview-modal{max-width:1200px;max-height:90vh;display:flex;flex-direction:column}.preview-modal .modal-body{overflow-y:auto;flex:1;padding:1rem}.preview-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.card-count{font-size:.95rem;color:var(--muted);font-weight:600;flex-shrink:0}.search-input{padding:.55rem .75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg);font-size:.95rem;min-width:250px;flex:1;transition:border-color .2s}.preview-cards-grid{display:flex;flex-direction:column;gap:1.5rem}.preview-card-row{display:flex;flex-direction:column;gap:.75rem;border:1px solid var(--border);border-radius:8px;padding:1rem;background:var(--card);transition:box-shadow .2s}.preview-card-row:hover{box-shadow:0 2px 8px #0000001a}.card-number{font-size:.85rem;font-weight:700;color:var(--muted);min-width:2rem;text-align:center;flex-shrink:0}.card-columns{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;flex:1}.card-column{display:flex;flex-direction:column;gap:.5rem;min-width:0}.column-label{font-size:.75rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.preview-card-content{padding:1rem;border:1px solid var(--border);border-radius:6px;background:var(--bg);min-height:60px;font-size:.95rem;line-height:1.6;overflow-x:hidden}.preview-card-content iframe{max-width:min(100%,500px);max-height:300px;width:100%;aspect-ratio:16 / 9;display:block;margin:0 auto;border:none}.preview-card-content video{max-width:min(100%,500px);max-height:300px;width:100%;height:auto;display:block;margin:0 auto}.preview-card-content img{max-width:min(100%,500px);max-height:300px;width:auto;height:auto;display:block;margin:0 auto;object-fit:contain}.preview-card-content audio{max-width:100%;display:block;margin:0 auto}.preview-card-content.front{font-weight:600;text-align:center}.preview-card-content.back{border-top:1px solid var(--border);margin-top:0;padding-top:1rem}.card-header-bar{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.card-srs-info{display:flex;align-items:center;gap:.75rem}.card-status-badge{display:inline-flex;padding:.15rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;border:1px solid;white-space:nowrap}.card-next-review{font-size:.65rem;color:var(--muted)}@media (max-width: 768px){.modal-overlay:has(.preview-modal){padding:0}.preview-modal{max-width:100vw;max-height:100vh;height:100vh;border-radius:0}.modal-dialog.preview-modal{padding:1rem 0 0}.preview-modal .modal-header,.preview-modal .modal-footer{margin-left:1rem;margin-right:1rem;padding-left:1rem;padding-right:1rem}.card-number{font-size:.8rem}.card-columns{grid-template-columns:1fr;gap:1rem}.card-srs-info{flex-direction:column;align-items:flex-end;gap:.25rem}.preview-controls{flex-direction:column;align-items:stretch}.search-input{min-width:100%}.card-count{text-align:center}}@media (prefers-color-scheme: light){.preview-card-row:hover{box-shadow:0 2px 8px #00000014}}mjx-container{max-width:100%;overflow-x:auto;overflow-y:hidden}mjx-container[display=true]{display:block}mjx-container[display=true]+br,mjx-container[display=true]+br+br,br:has(+mjx-container[display=true]),br:has(+br+mjx-container[display=true]){display:none}.front table,.back table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.9em}.front th,.front td,.back th,.back td{border:1px solid #ddd;padding:.5em .75em;text-align:left}.front th,.back th{background:#f5f5f5;font-weight:600}@media (prefers-color-scheme: dark){.front th,.front td,.back th,.back td{border-color:#444}.front th,.back th{background:#2a2a2a}}.front pre,.back pre{background:#f5f5f5;border:1px solid #ddd;border-radius:3px;padding:.75em 1em;overflow-x:auto;font-size:.9em;margin:.5em 0}.front code,.back code{background:#f5f5f5;border:1px solid #ddd;border-radius:2px;padding:.1em .3em;font-size:.9em;font-family:Courier New,monospace}.front pre code,.back pre code{border:none;padding:0;background:transparent}@media (prefers-color-scheme: dark){.front pre,.back pre,.front code,.back code{background:#2a2a2a;border-color:#444}}@media (max-width: 768px){mjx-container{font-size:.9em}}.user-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .75rem;background:color-mix(in oklab,#127bd3 15%,var(--button));border:1px solid color-mix(in oklab,#127bd3 30%,var(--border));border-radius:8px;font-size:.9rem;font-weight:500;color:var(--fg);text-decoration:none;transition:all .2s}.user-badge:hover{background:color-mix(in oklab,#127bd3 25%,var(--button));border-color:#127bd3;transform:translateY(-1px)}@media (max-width: 768px){.user-badge{padding:.35rem .5rem;font-size:.85rem}}.profile-list{display:flex;flex-direction:column;gap:.5rem}.profile-item{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:var(--button);border:1px solid var(--border);border-radius:8px;transition:all .2s}.profile-item:hover{background:color-mix(in oklab,var(--fg) 5%,var(--button));border-color:color-mix(in oklab,var(--fg) 20%,var(--border))}.profile-item>div:first-child{flex:1;margin:0}.group-section{border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:all .2s;background:color-mix(in oklab,#32dcb8 5%,var(--card))}.group-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.75rem 1rem;background:transparent;border-bottom:0;cursor:pointer;transition:background .2s,border-bottom .2s;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}.group-section.expanded .group-header{border-bottom:1px solid color-mix(in oklab,#32dcb8 20%,var(--border))}@media (hover: hover) and (pointer: fine){.group-section:hover{border-color:color-mix(in oklab,#32dcb8 30%,var(--border));background:color-mix(in oklab,#32dcb8 10%,var(--card))}.group-header:hover{background:color-mix(in oklab,#32dcb8 8%,transparent)}.principal-section:hover{border-color:color-mix(in oklab,#127bd3 40%,var(--border))}}.group-users-container{overflow:hidden;max-height:0;opacity:0;transition:max-height .3s ease,opacity .25s ease}.group-users-container.open{max-height:1000px;opacity:1}.group-users{display:flex;flex-direction:column;gap:0}.group-users .profile-item{border:0;border-bottom:0px solid var(--border);border-radius:0}.group-users .profile-item:last-child{border-bottom:none}.principal-section{border-color:color-mix(in oklab,#127bd3 30%,var(--border));background:color-mix(in oklab,#127bd3 3%,var(--card))}.principal-section .group-header{background:color-mix(in oklab,#127bd3 8%,var(--card));border-bottom-color:color-mix(in oklab,#127bd3 20%,var(--border))}.ungrouped-section{border-style:dashed;opacity:.9}.ungrouped-section .group-header{background:transparent}.menu-trigger-btn{border-radius:8px;border:1px solid transparent;background:transparent;color:var(--fg);padding:.3rem .5rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}@media (hover: hover) and (pointer: fine){.menu-trigger-btn:hover:not(:disabled){background:var(--button);filter:brightness(.925)}.group-header .menu-trigger-btn:hover:not(:disabled){background:color-mix(in oklab,#32dcb8 25%,transparent);filter:none}}.context-menu{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0000004d;padding:.5rem;min-width:200px;z-index:1000;animation:fadeIn .15s ease-out}@media (prefers-color-scheme: light){.context-menu{box-shadow:0 4px 16px #00000026}}.context-menu-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border:none;background:transparent;color:var(--fg);text-align:left;border-radius:6px;cursor:pointer;transition:background .15s;font-size:.95rem}.context-menu-item:hover:not(:disabled){background:color-mix(in oklab,var(--fg) 8%,transparent)}.context-menu-item.danger{color:var(--bad)}.context-menu-item.danger:hover:not(:disabled){background:color-mix(in oklab,var(--bad) 15%,transparent)}.context-menu-item:disabled{opacity:.5;cursor:not-allowed}.context-menu-item svg{flex-shrink:0}.bottom-sheet-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn .2s ease-out}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;width:100%;background:var(--card);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -4px 24px #0000004d;z-index:1001;animation:slideUpFromBottom .25s ease-out;max-height:85vh;overflow-y:auto}@media (prefers-color-scheme: light){.bottom-sheet{box-shadow:0 -4px 24px #00000026}}.bottom-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);z-index:1}.bottom-sheet-header h3{margin:0;font-size:1.1rem;font-weight:600}.bottom-sheet-close{padding:.3rem .5rem}.bottom-sheet-content{padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.bottom-sheet-item{width:100%;display:flex;align-items:center;gap:1rem;padding:.85rem 1rem;border:1px solid var(--border);background:var(--button);color:var(--fg);text-align:left;border-radius:8px;cursor:pointer;transition:all .2s;font-size:1rem}.bottom-sheet-item:hover:not(:disabled){background:color-mix(in oklab,var(--fg) 10%,var(--button))}.bottom-sheet-item.danger{color:var(--bad);border-color:color-mix(in oklab,var(--bad) 30%,var(--border));background:color-mix(in oklab,var(--bad) 8%,var(--button))}.bottom-sheet-item.danger:hover:not(:disabled){background:color-mix(in oklab,var(--bad) 18%,var(--button));border-color:var(--bad)}.bottom-sheet-item:disabled{opacity:.5;cursor:not-allowed}.bottom-sheet-item svg{flex-shrink:0}@keyframes slideUpFromBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (min-width: 768px){.bottom-sheet,.bottom-sheet-overlay{display:none}}@media (max-width: 767px){.context-menu{display:none}}.profile-item-draggable{cursor:grab;transition:opacity .2s,transform .2s;touch-action:manipulation}.profile-item-draggable:active{cursor:grabbing}.profile-item-overlay{opacity:.8;cursor:grabbing;box-shadow:0 8px 16px #0003;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.drop-zone-active{background:#8080800d;border:1px dashed var(--border);border-radius:8px;padding:.5rem;transition:all .2s ease}.browser-redirect{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1rem;background:var(--bg)}.browser-redirect__container{max-width:500px;width:100%;text-align:center}.browser-redirect__card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:2rem}.browser-redirect__emoji{font-size:3rem;margin-bottom:1rem}.browser-redirect__title{margin:0 0 1rem;font-size:1.5rem;background:linear-gradient(135deg,#127bd3,#32dcb8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.browser-redirect__description{color:var(--muted);margin-bottom:1rem;line-height:1.6}.browser-redirect__steps{background:color-mix(in oklab,#127bd3 10%,var(--card));border:1px solid color-mix(in oklab,#127bd3 25%,var(--border));border-radius:8px;padding:1rem;margin-bottom:1.5rem;text-align:left}.browser-redirect__step{margin:0;font-size:.9rem;font-weight:600}.browser-redirect__step:not(:last-child){margin-bottom:.5rem}.browser-redirect__btn-primary{width:100%;justify-content:center;font-size:1.05rem;padding:.75rem 1.5rem;margin-bottom:.75rem}.browser-redirect__btn-secondary{width:100%;justify-content:center;font-size:.95rem;padding:.6rem 1.2rem;opacity:.8}.browser-redirect__hint{font-size:.85rem;text-align:center;margin-top:1rem}.due-badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .45rem;border-radius:12px;font-size:.75rem;font-weight:600;line-height:1;white-space:nowrap;flex-shrink:0;animation:fade-in .3s ease-out}.due-badge[data-urgency=low]{background:color-mix(in oklab,#ff8800 20%,var(--button));border:1px solid color-mix(in oklab,#ff8800 40%,var(--border));color:#f80}.due-badge[data-urgency=medium]{background:color-mix(in oklab,#ff6600 25%,var(--button));border:1px solid color-mix(in oklab,#ff6600 45%,var(--border));color:#f60}.due-badge[data-urgency=high]{background:color-mix(in oklab,#ff4444 25%,var(--button));border:1px solid color-mix(in oklab,#ff4444 45%,var(--border));color:#f44}@keyframes fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.due-badge{font-size:.7rem;padding:.1rem .35rem}}.page-container{max-width:940px;margin:0 auto}.faq-container{max-width:870px;margin:0 auto}.faq-header{text-align:center;margin-bottom:2rem}.faq-title{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:2rem 0}.faq-category{margin-bottom:1.5rem}.faq-category-title{margin-top:0;display:flex;align-items:center;gap:.5rem}.faq-questions{display:flex;flex-direction:column;gap:.75rem}.faq-item{border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:all .2s}.faq-question-btn{width:100%;padding:.75rem 1rem;border:none;text-align:left;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:1rem;font-weight:600;color:var(--fg);transition:background .2s,border-radius .2s;background:transparent}.faq-question-btn.open{background:var(--button);border-radius:8px 8px 0 0}.faq-question-btn:not(.open){border-radius:8px}.faq-arrow{transition:transform .2s;font-size:1.2rem}.faq-arrow.open{transform:rotate(180deg)}.faq-answer{max-height:0;overflow:hidden;padding:0 1rem;background:var(--card);border-top:1px solid transparent;white-space:pre-line;line-height:1.6;transition:none}.faq-answer.open{max-height:5000px;padding:1rem;border-top:1px solid var(--border);transition:max-height .3s ease,padding .3s ease,border-color .3s ease}.faq-answer code{background-color:var(--button)!important;color:var(--fg)!important;padding:2px 6px;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.9em}.faq-footer{background:color-mix(in oklab,var(--good) 10%,var(--card));border:1px solid color-mix(in oklab,var(--good) 25%,var(--border));text-align:center}.faq-footer p{margin:0}.home-title{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:2rem 0}.home-actions{display:flex;gap:.5rem;align-items:center;margin:.5rem auto 1.5rem;max-width:870px}.home-actions input[type=search]{flex:1;min-width:200px;font-size:.95rem}.home-file-input{display:none}.due-today-toast{position:fixed;z-index:500;display:flex;align-items:center;gap:.75rem;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #00000026;padding:.75rem 1rem}.due-today-toast-message{font-size:.95rem}.due-today-toast-close{display:flex;align-items:center;justify-content:center;padding:.25rem;border:none;background:transparent;color:var(--muted);flex-shrink:0}@keyframes due-today-toast-in-desktop{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes due-today-toast-out-desktop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}@keyframes due-today-toast-in-mobile{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes due-today-toast-out-mobile{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}@media (min-width: 768px){.due-today-toast{top:1.5rem;right:1.5rem;animation:due-today-toast-in-desktop .25s ease-out}.due-today-toast.closing{animation:due-today-toast-out-desktop .25s ease-in forwards}}@media (max-width: 767px){.due-today-toast{bottom:1rem;left:1rem;right:1rem;justify-content:center;animation:due-today-toast-in-mobile .25s ease-out}.due-today-toast.closing{animation:due-today-toast-out-mobile .25s ease-in forwards}}@media (prefers-reduced-motion: reduce){.due-today-toast,.due-today-toast.closing{animation:none}}.empty-state{text-align:center;padding:3rem 2rem;margin-top:2rem}.empty-state-icon{width:56px;height:56px;margin:0 auto 1rem;opacity:.5}.empty-state-sparkle{margin:0 auto 1rem;color:#127bd3}.empty-state h3{margin-top:0;margin-bottom:.5rem}.empty-state-hint{margin:0}.empty-state-welcome-hint{margin-bottom:1.5rem}.empty-state-welcome{background:linear-gradient(135deg,color-mix(in oklab,#127bd3 10%,var(--card)),color-mix(in oklab,#32dcb8 10%,var(--card)));border:1px solid color-mix(in oklab,#127bd3 25%,var(--border))}.empty-state-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.empty-state-link{text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}.empty-state-btn{display:inline-flex;align-items:center;gap:.5rem}.deck-card{display:flex;flex-direction:column;cursor:default}@property --due-ring-angle{syntax: "<angle>"; inherits: false; initial-value: 0deg;}.deck-card.has-due{position:relative;z-index:0;border-width:0;transition:transform .2s,box-shadow .2s}.deck-card.has-due:before{content:"";position:absolute;inset:0;border-radius:12px;padding:1px;pointer-events:none;--due-ring-angle: 0deg;background:conic-gradient(from var(--due-ring-angle),#127bd3,#32dcb8,#127bd3);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:due-ring-rotate 2.67s linear infinite}.deck-card.has-due:after{content:"";position:absolute;inset:0;border-radius:12px;z-index:-1;pointer-events:none;animation:due-glow-pulse 2.67s ease-in-out infinite}@keyframes due-ring-rotate{to{--due-ring-angle: 360deg}}@keyframes due-glow-pulse{0%,to{box-shadow:0 0 10px color-mix(in oklab,#127bd3 35%,transparent)}50%{box-shadow:0 0 10px color-mix(in oklab,#32dcb8 35%,transparent)}}@media (prefers-reduced-motion: reduce){.deck-card.has-due:before,.deck-card.has-due:after{animation:none}}.deck-card:not(.has-due):hover{border-color:var(--border)}@media (hover: hover) and (pointer: fine){.deck-card.has-due:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}}.deck-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;margin-bottom:1rem}.deck-card-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.favorite-btn{border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);padding:.3rem .5rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0}.favorite-btn:has(svg[fill="#fbbf24"]){color:#fbbf24}@media (hover: hover) and (pointer: fine){.favorite-btn:hover:not(:disabled){background:var(--button);filter:brightness(.925)}.favorite-btn:has(svg[fill="#fbbf24"]):hover:not(:disabled){background:color-mix(in oklab,#fbbf24 15%,var(--button));filter:brightness(1.1)}}.deck-card-title-wrapper{flex:1}.deck-card-title{font-weight:600;font-size:1.05rem}.deck-card-info{margin-top:auto;margin-bottom:.5rem;font-size:.9rem}.deck-card-learning{margin-top:.5rem;font-size:.85rem;color:var(--muted);font-style:italic}.deck-card-progress-section{margin-top:.5rem}.deck-card-progress-labels{display:flex;justify-content:space-between;align-items:center;margin-bottom:.375rem;font-size:13px;color:var(--muted)}.deck-card-progress-label-left{font-weight:500}.deck-card-progress-label-right{font-weight:400;opacity:.85}.deck-card-progress-bar{height:8px;background:color-mix(in oklab,var(--muted) 15%,var(--card));border-radius:4px;overflow:hidden;position:relative}.deck-card-progress-fill{height:100%;border-radius:4px;transition:width .4s ease,background-color .4s ease;min-width:2px}@media (max-width: 768px){.deck-card-progress-labels{font-size:13px}.deck-card-progress-bar{height:8px}}.profiles-title{display:flex;align-items:center;justify-content:center;gap:.5rem;margin:2rem 0}.profiles-actions{display:flex;gap:.5rem;align-items:center;justify-content:flex-end;margin:.5rem 0}.profiles-main-card{margin-top:1rem}.profiles-hint{margin-top:0;margin-bottom:1.5rem}.profiles-section{margin-bottom:1.5rem}.profile-item-content{display:flex;align-items:center;gap:.5rem;flex:1}.profile-item-radio{width:auto;cursor:pointer}.profile-item-name{font-weight:400}.profile-item-name.active{font-weight:600}.profile-item-draggable{cursor:grab}.profile-item-editing{cursor:default}.profile-item-editing-content{display:flex;align-items:center;gap:.5rem;flex:1}.profile-item-editing-input{flex:1}.profile-item-editing-btn{padding:.3rem .5rem}.groups-section{margin-bottom:1rem}.group-header{cursor:pointer}.group-header-editing{cursor:default}.group-header-content{display:flex;align-items:center;gap:.5rem;flex:1}.group-header-editing-input{flex:1}.group-header-editing-btn{padding:.3rem .5rem}.group-header-button{background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;gap:.5rem;flex:1;text-align:left;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}.group-header-icon{color:#32dcb8}.group-header-title{margin:0;font-size:1rem;font-weight:600}.group-header-count{font-size:.85rem}.group-header-actions{display:flex;gap:.5rem}.profiles-modal-hint,.profiles-modal-input{margin-bottom:.75rem}.profiles-modal-label{display:block;margin-bottom:.5rem;font-size:.9rem;font-weight:500}.profiles-file-input{display:none}.bottom-sheet-close-btn{padding:.3rem .5rem}.group-chevron{transition:transform .2s ease;transform:rotate(0);color:var(--text-secondary);-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}.group-chevron.open{transform:rotate(180deg)}.migration-screen{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:9999}.migration-container{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:48px 40px;max-width:500px;width:90%;text-align:center}.migration-logo{color:#32dcb8;margin-bottom:24px;display:flex;justify-content:center}.migration-title{font-size:24px;font-weight:600;color:var(--fg);margin-bottom:32px}.migration-status{display:flex;align-items:center;justify-content:center;gap:12px;font-size:16px;margin-bottom:24px;padding:12px;border-radius:8px}.migration-status--pending{color:#4a5568;background:#f7fafc}.migration-status--migrating{color:#2b6cb0;background:#bee3f8}.migration-status--success{color:#22543d;background:#c6f6d5}.migration-status--error{color:#742a2a;background:#fed7d7}.migration-screen .spinner{width:20px;height:20px;border:3px solid rgba(0,0,0,.1);border-top-color:currentColor;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.migration-progress{margin-bottom:16px}.migration-progress-bar{height:12px;background:#e2e8f0;border-radius:6px;overflow:hidden;margin-bottom:8px}.migration-progress-fill{height:100%;background:linear-gradient(90deg,#32dcb8,#38b2ac);transition:width .3s ease;border-radius:6px}.migration-progress-text{font-size:14px;color:#718096}.migration-errors{margin-top:24px;padding:16px;background:#fff5f5;border-radius:8px;text-align:left}.migration-errors h3{font-size:16px;color:#c53030;margin-bottom:12px}.migration-errors ul{list-style:disc;padding-left:20px;margin-bottom:12px}.migration-errors li{font-size:14px;color:#742a2a;margin-bottom:8px}.migration-help{font-size:14px;color:#718096;font-style:italic}.migration-success-message{margin-top:16px;padding:12px;background:#f0fff4;color:#22543d;border-radius:8px;font-size:14px}.section-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;background:var(--bg-secondary);border-radius:8px;cursor:grab;transition:background-color .2s ease;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}.section-header:active{cursor:grabbing}.section-header-left{display:flex;align-items:center;gap:.75rem;flex:1;cursor:pointer;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}.section-chevron{transition:transform .2s ease,opacity .2s ease;transform:rotate(0);color:var(--text-secondary);opacity:0;padding:.3rem .5rem;cursor:pointer;font-size:1rem;-webkit-tap-highlight-color:transparent;tap-highlight-color:transparent}.section-chevron.open{transform:rotate(180deg)}.section-header .menu-trigger-btn{opacity:0;transition:opacity .2s ease}@media (hover: hover) and (pointer: fine){.section-header:hover{background:var(--bg-hover)}.section-header:hover .section-chevron,.section-header:hover .menu-trigger-btn{opacity:1}}@media (max-width: 768px),(hover: none){.section-chevron,.section-header .menu-trigger-btn{opacity:1}}.section-title{margin:0;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.section-count{color:var(--text-secondary);font-size:.9rem}.section-header-editing{display:flex;align-items:center;gap:.5rem;flex:1;padding:.25rem 0}.section-editing-input{flex:1;padding:.55rem .75rem;font-size:1rem;border:1px solid var(--border);border-radius:8px;background-color:var(--card);color:var(--fg)}.section-editing-input:focus{outline:none;box-shadow:none}.section-editing-btn{padding:.5rem;min-width:auto;flex-shrink:0}.section-drop-zone{height:4px;margin:.5rem 0;transition:all .2s ease;border-radius:2px}.section-drop-zone-active{height:40px;background-color:#8080800d;border:1px dashed var(--border);margin:1rem 0}.section-content{animation:slideDown .2s ease}.section-empty-state{padding:2rem;text-align:center;color:var(--muted);font-style:italic;border:1px dashed var(--border);border-radius:8px;margin:1rem 0;background:var(--bg)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.drag-overlay{opacity:.8;cursor:grabbing;box-shadow:0 8px 16px #0003}
