:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#0f1015;--bg-elev:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--completed-bg:color-mix(in srgb, var(--accent) 18%, transparent);--completed-border:color-mix(in srgb, var(--accent) 38%, transparent);--status-purple:#7c6fe0;--danger:#ef4444;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--text:#6b6375;--text-h:#08060d;--bg:#f8f8fa;--bg-elev:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff14;--accent-border:#aa3bff80;--completed-bg:color-mix(in srgb, var(--accent) 14%, transparent);--completed-border:color-mix(in srgb, var(--accent) 32%, transparent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}:root[data-theme=light]{--text:#6b6375;--text-h:#08060d;--bg:#f8f8fa;--bg-elev:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff14;--accent-border:#aa3bff80;--completed-bg:color-mix(in srgb, var(--accent) 14%, transparent);--completed-border:color-mix(in srgb, var(--accent) 32%, transparent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--text:#9ca3af;--text-h:#f3f4f6;--bg:#0f1015;--bg-elev:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--completed-bg:color-mix(in srgb, var(--accent) 18%, transparent);--completed-border:color-mix(in srgb, var(--accent) 38%, transparent);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{margin:0}#root{min-height:100svh}h1,h2,h3{color:var(--text-h);margin:0;font-weight:600}p{margin:0}code{font-family:var(--mono);background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:2px 6px;font-size:.9em}input,textarea,select{font:inherit;color:var(--text-h);background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;outline:none;padding:10px 12px;transition:border-color .15s}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}select:hover{border-color:var(--accent)}select option{background:var(--bg-elev);color:var(--text-h);padding:8px}input:focus,textarea:focus,select:focus{border-color:var(--accent)}textarea{resize:vertical;font-family:var(--mono)}button{font:inherit}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.app-shell{flex-direction:column;min-height:100svh;padding-bottom:72px;display:flex}.loading-bar{pointer-events:none;z-index:9999;opacity:0;background:0 0;height:2px;transition:opacity .2s;position:fixed;top:0;left:0;right:0}.loading-bar.active{opacity:1}.loading-bar-fill{background:linear-gradient(90deg, transparent, var(--accent), transparent);width:30%;height:100%;animation:1.2s linear infinite loading-slide}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}.top-bar{padding:12px max(12px, env(safe-area-inset-right)) 12px max(12px, env(safe-area-inset-left));background:var(--bg-elev);border-bottom:1px solid var(--border);z-index:50;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:0}.top-bar-right{flex-shrink:0;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.top-bar-profile{color:var(--text-h);align-items:center;gap:12px;min-height:44px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.top-bar-avatar{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:600;display:flex}.top-bar-name{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.brand{border-radius:10px;align-items:center;gap:8px;min-width:0;padding:6px 8px;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.brand:hover{background:var(--accent-bg)}.brand:active{transform:scale(.97)}.brand-mark{background:var(--accent);color:#fff;border-radius:8px;justify-content:center;align-items:center;width:30px;height:30px;transition:transform .2s;display:inline-flex}.brand:hover .brand-mark{transform:translate(2px)}.brand-text{color:var(--text-h);gap:4px;font-size:17px;font-weight:700;display:inline-flex}.brand-text-accent{color:var(--accent)}.top-bar-nav{flex:1;justify-content:center;gap:4px;min-width:0;display:none}.top-bar-link{color:var(--text);border-radius:8px;align-items:center;gap:7px;padding:8px 14px;font-size:15px;line-height:1.3;text-decoration:none;transition:color .15s,background .15s,transform .1s;display:inline-flex}.top-bar-link:hover{color:var(--text-h);background:var(--accent-bg)}.top-bar-link.active{color:var(--accent);background:var(--accent-bg)}@media (width>=640px){.top-bar-nav{display:flex}}.bottom-nav{background:var(--bg-elev);border-top:1px solid var(--border);z-index:50;padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{color:var(--text);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;min-height:60px;padding:8px 4px;font-size:11px;text-decoration:none;transition:color .15s,background .15s;display:flex}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-icon{width:22px;height:22px}.nav-icon{color:var(--text);fill:currentColor;stroke:none;opacity:.78;flex-shrink:0;transition:color .18s,opacity .18s,transform .12s}.top-bar-link .nav-icon{width:17px;height:17px}.top-bar-link:hover .nav-icon,.bottom-nav-item:hover .nav-icon,.requests-bell-trigger:hover .nav-icon,.user-menu-item:hover .menu-icon,.top-bar-link.active .nav-icon,.bottom-nav-item.active .nav-icon{color:var(--accent);opacity:1}.bottom-nav-item.active .nav-icon{transform:translateY(-1px)}.bottom-nav-label{font-weight:500}.app-content{box-sizing:border-box;flex:1;width:100%;max-width:900px;margin:0 auto;padding:16px}.deck{flex-direction:column;gap:16px;display:flex}.deck-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.deck-header h1{letter-spacing:-.5px;font-size:24px;line-height:1.2}.deck-progress{color:var(--text);font-size:13px}.deck-btn{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-h);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;min-height:44px;padding:10px 16px;font-size:14px;font-weight:500;transition:all .15s}.deck-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.deck-btn:active:not(:disabled){transform:scale(.97)}.deck-btn:disabled{opacity:.4;cursor:not-allowed}.deck-btn.icon-btn,.icon-btn{justify-content:center;align-items:center;gap:6px;display:inline-flex}.deck-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.deck-btn.primary:hover:not(:disabled){opacity:.9;color:#fff}.deck-btn.danger{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);border-color:#ef44444d}.deck-btn.danger:hover{border-color:var(--danger);color:var(--danger);background:#ef444414}.edit-action-row{background:var(--bg-elev);grid-template-columns:1fr 1fr;gap:8px;margin-top:8px;padding:12px 0 0;display:grid}.edit-action-row .deck-btn{border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;min-height:44px;font-weight:600;display:inline-flex}.edit-delete-btn{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger);border-color:#ef44446b}.edit-delete-btn:hover:not(:disabled){border-color:var(--danger);background:color-mix(in srgb, var(--danger) 16%, transparent);color:var(--danger)}.edit-save-btn{background:var(--accent);border-color:var(--accent);color:#fff}.edit-save-btn:hover:not(:disabled){color:#fff;filter:brightness(1.05)}.edit-icon-btn{border:1px solid var(--border);background:var(--bg-elev);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;transition:border-color .15s,background .15s,transform .1s;display:inline-flex}.edit-icon-btn:hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.edit-icon-btn:active:not(:disabled){transform:scale(.97)}.deck-btn.danger-solid{background:var(--danger);border:1px solid var(--danger);color:#fff;flex:1;justify-content:center;align-items:center;gap:6px;display:flex}.deck-btn.danger-solid:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff;opacity:.9}.deck-btn.cancel-btn:hover:not(:disabled){border-color:var(--text);color:var(--text-h)}.confirm-row{background:#ef44440f;border:1px solid #ef444440;border-radius:10px;flex-direction:column;gap:12px;margin-top:8px;padding:14px;animation:.2s ease-out confirm-slide;display:flex}@keyframes confirm-slide{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.confirm-msg{color:var(--text-h);text-align:center;margin:0;font-size:14px;font-weight:500}.confirm-actions{gap:8px;display:flex}.confirm-actions .deck-btn{flex:1}.skeleton-line,.skeleton-avatar,.skeleton-block{background:linear-gradient(90deg, var(--bg-elev), var(--code-bg), var(--bg-elev));background-size:220% 100%;border-radius:999px;flex-shrink:0;animation:1.2s ease-in-out infinite skeleton-shimmer;display:inline-block}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}.skeleton-line{max-width:100%;height:12px}.skeleton-line.short{opacity:.7;height:10px}.skeleton-line.big{height:20px}.skeleton-line.title{height:26px}.skeleton-line.input{border-radius:8px;height:44px}.skeleton-line.button{border-radius:8px;height:40px}.skeleton-line.icon{border-radius:8px;width:32px;height:32px}.skeleton-line.progress{border-radius:999px;height:6px}.skeleton-line.pill{border-radius:999px;height:30px}.skeleton-avatar{border-radius:50%;width:36px;height:36px}.skeleton-avatar.large{width:64px;height:64px}.brand-mark.skeleton-block{background:linear-gradient(90deg, var(--accent-bg), var(--accent-border), var(--accent-bg));background-size:220% 100%}.skeleton-nav{align-items:center}.skeleton-title-stack,.skeleton-row-body,.lookup-skeleton{flex-direction:column;gap:8px;min-width:0;display:flex}.skeleton-row-body{flex:1}.skeleton-list{pointer-events:none}.skeleton-row{align-items:center}.skeleton-card{pointer-events:none}.skeleton-section{flex-direction:column;gap:12px;display:flex}.lookup-skeleton{padding:4px 0}.requests-skeleton{flex-direction:column;gap:4px;display:flex}.card-section{flex-direction:column;align-items:center;gap:16px;display:flex}.deck-controls{gap:8px;width:100%;max-width:480px;display:flex}.deck-controls .deck-btn{flex:1}.deck-dots{flex-wrap:wrap;justify-content:center;gap:6px;max-width:100%;display:flex}.dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:10px;height:10px;padding:0;transition:all .15s}.dot-active{background:var(--accent);transform:scale(1.3)}.flashcard-container{perspective:1200px;cursor:pointer;width:100%;max-width:480px;height:280px;position:relative}.flashcard-speaker{z-index:2;border:1px solid var(--border);background:var(--bg-elev);width:36px;height:36px;color:var(--text-h);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-flex;position:absolute;top:10px;right:10px}.flashcard-speaker:hover,.flashcard-speaker.speaking{border-color:var(--accent);color:var(--accent)}.flashcard-tts-error{z-index:2;background:var(--bg-elev);border:1px solid var(--border);color:var(--text-h);pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px;position:absolute;top:52px;right:10px}.flashcard{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.flashcard.flipped{transform:rotateY(180deg)}.flashcard-face{backface-visibility:hidden;border:1px solid var(--border);background:var(--bg-elev);box-shadow:var(--shadow);box-sizing:border-box;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.flashcard-back{background:var(--accent-bg);border-color:var(--accent-border);transform:rotateY(180deg)}.card-label{text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);font-size:11px;font-weight:600}.card-word{color:var(--text-h);text-align:center;word-break:break-word;margin:0;font-size:28px;font-weight:500}.card-prompt{color:var(--text);opacity:.6;font-size:11px;position:absolute;bottom:16px}.form-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.form-row.horizontal{flex-flow:wrap;align-items:center}.form-row input,.form-row textarea,.form-row select{background:var(--bg);font-size:16px}.form-row .row-actions{flex-wrap:wrap;gap:8px;display:flex}.hint{color:var(--text);opacity:.8;margin:0;font-size:13px;line-height:1.5}.tab-toggle{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;gap:4px;padding:4px;display:flex}.tab-toggle-btn{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;min-height:40px;padding:8px 12px;font-size:13px;transition:all .15s}.tab-toggle-btn.active{background:var(--accent-bg);color:var(--accent)}.deck-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.deck-item{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s;display:flex}.deck-item:active{background:var(--bg)}.deck-item-main{color:var(--text-h);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;min-height:44px;padding:4px 0;font-size:15px}.deck-item-count{opacity:.6;font-size:.9em}.deck-item-icon{width:22px;height:22px;color:var(--text-h);opacity:.7;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.deck-item--passage .deck-item-icon{color:var(--text-h);opacity:.55}.deck-item--completed{border-left:3px solid var(--status-purple);background:var(--bg-elev);border-color:var(--border);border-left-color:var(--status-purple)}.deck-item--completed .deck-item-main{color:var(--text)}.deck-item--completed strong{color:var(--text);font-weight:500}.deck-item--completed .edit-icon-btn{opacity:0;transition:opacity .15s}.deck-item--completed:hover .edit-icon-btn,.deck-item--completed:focus-within .edit-icon-btn{opacity:1}.deck-item--wordset.deck-item--completed .deck-item-icon{color:var(--status-purple);opacity:1}.status-meta-pill{background:color-mix(in srgb, var(--status-purple) 14%, transparent);color:var(--status-purple);white-space:nowrap;border-radius:100px;align-items:center;gap:3px;padding:1px 7px;font-size:11px;font-weight:500;display:inline-flex}.starter-level--accent{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--accent);border-color:var(--accent-border,var(--accent))}.offline-banner{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--danger,#e85a5a) 12%, var(--bg-elev));color:var(--text-h);align-items:center;gap:8px;padding:8px 16px;font-size:12px;font-weight:500;display:flex}.offline-banner.syncing{background:color-mix(in srgb, var(--accent) 10%, var(--bg-elev))}.offline-banner .offline-dot{background:var(--danger,#e85a5a);border-radius:50%;flex-shrink:0;width:7px;height:7px}.offline-banner.syncing .offline-dot{background:var(--accent);animation:1s ease-in-out infinite pulse-dot}html[data-offline=true] button:not(.offline-allow):not(.sheet-close){opacity:.4;cursor:not-allowed;pointer-events:none}@keyframes pulse-dot{0%,to{opacity:.4}50%{opacity:1}}.data-table{border-collapse:collapse;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;width:100%;overflow:hidden}.data-table th{text-align:left;background:var(--bg);color:var(--text-h);border-bottom:1px solid var(--border);padding:12px 14px;font-size:13px;font-weight:600}.data-table td{border-bottom:1px solid var(--border);padding:12px 14px;font-size:14px}.data-table tr:last-child td{border-bottom:none}.data-table .col-deck{opacity:.7;font-size:.9em}@media (width<=640px){.data-table,.data-table thead,.data-table tbody,.data-table tr,.data-table td{display:block}.data-table{background:0 0;border:none}.data-table thead{display:none}.data-table tr{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;padding:12px 14px}.data-table td{border:none;padding:4px 0;font-size:14px}.data-table td:first-child{color:var(--text-h);margin-bottom:4px;font-size:16px;font-weight:600}}.study-action{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 70%, black));color:#fff;cursor:pointer;text-align:left;width:100%;box-shadow:var(--shadow);z-index:20;border:none;border-radius:14px;align-items:center;gap:14px;padding:16px 18px;transition:all .15s;display:flex;position:sticky;top:72px}.study-action:active{opacity:.95;transform:scale(.99)}.study-action-icon{background:var(--accent-bg);width:44px;height:44px;color:var(--accent);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.study-action-body{flex-direction:column;flex:1;gap:2px;display:flex}.study-action-title{font-size:17px;font-weight:600}.study-action-sub{opacity:.85;font-size:13px}.study-action-arrow{opacity:.7;flex-shrink:0;font-size:22px}.grade-buttons{gap:12px;width:100%;max-width:480px;display:flex}.grade-btn{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-h);cursor:pointer;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:80px;padding:18px 12px;font-size:15px;font-weight:600;transition:all .15s;display:flex}.grade-btn:active{transform:scale(.97)}.grade-miss{border-color:#ef44444d}.grade-miss:hover{border-color:var(--danger);color:var(--danger);background:#ef44441f}.grade-learn{border-color:var(--accent-border)}.grade-learn:hover{background:var(--accent-bg);color:var(--accent);border-color:var(--accent)}.grade-icon{font-size:28px;line-height:1}.study-progress-bar{background:var(--border);border-radius:999px;width:100%;max-width:480px;height:4px;overflow:hidden}.study-progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.study-counters{justify-content:center;gap:12px;width:100%;max-width:480px;display:flex}.counter-chip{background:var(--bg-elev);border:1px solid var(--border);color:var(--text);opacity:.5;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.counter-chip.active{opacity:1}.counter-dot{background:currentColor;border-radius:50%;width:8px;height:8px}.counter-learn.active{color:var(--accent);border-color:var(--accent-border);background:var(--accent-bg)}.counter-miss.active{color:var(--danger);background:#ef44441a;border-color:#ef44444d}.study-summary{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:24px 16px;display:flex}.study-summary-stats{gap:24px;margin:8px 0;display:flex}.summary-stat{flex-direction:column;align-items:center;gap:4px;display:flex}.summary-stat-num{font-size:48px;font-weight:700;line-height:1}.summary-stat-label{text-transform:uppercase;letter-spacing:1px;color:var(--text);font-size:12px}.study-summary-actions{flex-direction:column;gap:8px;width:100%;max-width:360px;display:flex}.study-summary-actions .deck-btn{width:100%}.user-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.user-row{background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s;display:flex}.user-row:hover{border-color:var(--accent)}.user-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:15px;font-weight:600;text-decoration:none;display:flex}.user-row-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex;overflow:hidden}.user-row-text strong{color:var(--text-h);font-size:14px}.user-row-text a,.friend-text a,.requests-bell-row a{color:inherit;text-decoration:none}.user-row-text a:hover,.friend-text a:hover,.requests-bell-row a:hover{color:var(--accent)}.user-row-text span{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.role-badge{border:1px solid;border-radius:999px;flex-shrink:0;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.user-header-block{align-items:center;gap:14px;padding:4px 0;display:flex}.user-avatar-big{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;font-weight:700;display:flex}.user-header-text{flex-direction:column;gap:2px;min-width:0;display:flex}.user-header-text strong{color:var(--text-h);font-size:16px}.role-picker{flex-direction:column;gap:8px;display:flex}.role-option{background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.role-option:hover:not(:disabled){border-color:var(--accent)}.role-option.active{border-color:var(--accent);background:var(--accent-bg)}.role-option:disabled{opacity:.5;cursor:not-allowed}.role-icon{flex-shrink:0;font-size:22px}.role-text{flex-direction:column;flex:1;gap:2px;display:flex}.role-label{color:var(--text-h);font-size:14px;font-weight:600}.role-desc{color:var(--text);font-size:12px;line-height:1.4}.role-check{color:var(--accent);flex-shrink:0;font-size:18px;font-weight:700}.sheet-overlay{z-index:200;background:#0009;justify-content:center;align-items:flex-end;animation:.2s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.sheet{background:var(--bg-elev);border:1px solid var(--border);border-bottom:none;border-radius:18px 18px 0 0;flex-direction:column;width:100%;max-width:600px;max-height:92vh;animation:.25s cubic-bezier(.4,0,.2,1) sheet-up;display:flex;overflow:hidden}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-header{border-bottom:1px solid var(--border);background:var(--bg-elev);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.sheet-header h2{margin:0;font-size:18px}.sheet-close{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:24px;line-height:1}.sheet-close:hover{background:var(--bg);color:var(--text-h)}.sheet-body{flex-direction:column;gap:14px;padding:16px 20px 20px;display:flex;overflow-y:auto}.sheet-tabs{border-bottom:1px solid var(--border);background:var(--bg-elev);flex-shrink:0;padding:0 20px;display:flex}.sheet-tab{color:var(--text-sub);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 18px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s}.sheet-tab:hover:not(.active){color:var(--text-h)}.sheet-tab.active{color:var(--accent);border-bottom-color:var(--accent)}@media (width>=640px){.sheet-overlay{align-items:center;padding:24px}.sheet{border-bottom:1px solid var(--border);border-radius:14px;animation:.2s ease-out sheet-pop}@keyframes sheet-pop{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}}.visibility-toggle{background:var(--bg-elev);border:1px solid var(--border);width:100%;color:var(--text-h);cursor:pointer;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;transition:border-color .15s;display:flex}.visibility-toggle:hover:not(:disabled){border-color:var(--accent)}.visibility-toggle:disabled{opacity:.55;cursor:not-allowed}.visibility-toggle-compact{gap:12px;width:auto;padding:8px 12px}.visibility-toggle-compact .visibility-toggle-title{font-size:13px}.visibility-toggle-text{flex-direction:column;gap:2px;display:flex}.visibility-toggle-title{font-size:14px;font-weight:600}.visibility-toggle-sub{color:var(--text);opacity:.7;font-size:12px}.visibility-switch{background:var(--border);border-radius:999px;flex-shrink:0;width:42px;height:24px;transition:background .2s;position:relative}.visibility-switch.on{background:var(--accent)}.visibility-switch-knob{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:2px;left:2px}.visibility-switch.on .visibility-switch-knob{transform:translate(18px)}.collapse-toggle{background:var(--bg-elev);border:1px solid var(--border);width:100%;color:var(--text-h);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;font-size:14px;font-weight:600;transition:border-color .15s;display:flex}.collapse-toggle:hover{border-color:var(--accent)}.collapse-content{flex-direction:column;gap:12px;margin-top:-4px;padding:8px 4px 4px;display:flex}.sticky-toggle{z-index:5;background:var(--bg-elev);position:sticky;top:0}.word-card-editing{background:var(--accent-bg);border-color:var(--accent-border);cursor:default!important}.word-card-editing .word-card-body{gap:8px}.word-card-editing input{box-sizing:border-box;width:100%;min-width:0;padding:8px 10px;font-size:15px}.set-header{flex-direction:column;gap:14px;display:flex}.set-header-top{align-items:flex-start;gap:8px;display:flex}.set-header-top h1{flex:1;margin:0;line-height:1.2}.set-header-actions{flex-shrink:0;gap:8px;display:flex}.meta-pills{flex-wrap:wrap;gap:6px;display:flex}.meta-pill{background:var(--bg-elev);border:1px solid var(--border);color:var(--text);border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.meta-pill-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.creator-pill{color:var(--accent);border-color:var(--accent-border);background:var(--accent-bg);cursor:pointer;text-decoration:none}.creator-pill:hover{filter:brightness(1.05)}.creator-link{color:var(--accent);cursor:pointer;font-weight:500;text-decoration:none}.creator-link:hover{text-decoration:underline}.set-header-title-block{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.set-subtitle{color:var(--text);opacity:.75;margin:0;font-size:13px;line-height:1.4}.hold-confirm{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;box-sizing:border-box;border-radius:999px;justify-content:center;align-items:center;width:fit-content;margin:0;padding:4px 10px;font-family:inherit;font-size:12px;font-weight:500;line-height:1.5;transition:transform .1s;animation:4s ease-in-out infinite hold-breath;display:inline-flex;position:relative;overflow:hidden}@keyframes hold-breath{0%,to{border-color:var(--accent-border)}50%{border-color:var(--accent)}}.hold-confirm.delete-hold{width:100%;color:var(--danger);background:#ef444414;border-color:#ef44444d;margin-top:8px;padding:12px 16px;font-size:14px;animation:4s ease-in-out infinite delete-breath}@keyframes delete-breath{0%,to{border-color:#ef44444d}50%{border-color:var(--danger)}}.delete-hold .hold-confirm-fill{background:var(--danger)}.delete-circle{background:var(--danger)!important}.hold-confirm.holding{animation:none}.check-circle{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;margin-right:6px;line-height:0;display:inline-flex}.chip-label{align-items:center;margin-top:2px;line-height:1;display:inline-flex}.check-circle svg{display:block}.hold-confirm:active{transform:scale(.97)}.hold-confirm-content{z-index:2;align-items:center;display:inline-flex;position:relative}.hold-confirm-hint{z-index:2;opacity:.55;border-left:1px solid var(--accent-border);padding-left:6px;font-size:11px;font-weight:500;position:relative}.hold-confirm-fill{background:var(--accent);opacity:.35;z-index:1;position:absolute;top:0;bottom:0;left:0}.hold-confirm.holding,.hold-confirm.holding .hold-confirm-content{color:#fff}.user-menu{align-items:center;gap:8px;display:flex;position:relative}.streak-badge{background:var(--accent-bg);border:1px solid var(--accent-border);min-width:50px;height:36px;color:var(--accent);box-sizing:border-box;border-radius:999px;justify-content:center;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.streak-badge.streak-cold{border-color:var(--border);color:var(--text);opacity:.7;background:0 0}.streak-badge.streak-at-risk{border-color:var(--border);color:var(--text-h);background:0 0}.streak-icon{fill:currentColor;flex-shrink:0;width:16px;height:16px}.user-menu-trigger{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;padding:0;transition:transform .1s,border-color .15s,background .15s}.user-menu-trigger:hover{background:var(--accent-bg);border-color:var(--accent-border)}.user-menu-trigger:active{transform:scale(.93)}.user-menu-avatar{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex}.user-menu-avatar.large{width:48px;height:48px;font-size:18px}.user-menu-dropdown{top:58px;right:max(12px, env(safe-area-inset-right));background:var(--bg-elev);border:1px solid var(--border);width:min(300px,100vw - 24px);box-shadow:var(--shadow);z-index:100;border-radius:12px;padding:10px;animation:.15s ease-out menu-pop;position:fixed}@keyframes menu-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{align-items:center;gap:14px;padding:12px 12px 14px;display:flex}.user-menu-info{flex-direction:column;gap:2px;min-width:0;display:flex;overflow:hidden}.user-menu-info strong{color:var(--text-h);font-size:15px}.user-menu-info span{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.user-menu-divider{background:var(--border);height:1px;margin:6px 0}.user-menu-item{width:100%;color:var(--text-h);text-align:left;cursor:pointer;box-sizing:border-box;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;padding:12px 14px;font-size:14px;text-decoration:none;transition:background .1s,color .15s;display:flex}.user-menu-item:hover{background:var(--accent-bg);color:var(--accent)}.user-menu-dropdown{overflow:hidden}.menu-icon{width:18px;height:18px;color:var(--text);flex-shrink:0;transition:color .15s}.requests-bell{align-items:center;display:flex;position:relative}.requests-bell-trigger{border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text);background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:background .1s,transform .1s,border-color .15s;display:flex;position:relative}.requests-bell-trigger:hover{background:var(--accent-bg);border-color:var(--accent-border)}.requests-bell-trigger:active{transform:scale(.93)}.requests-bell-badge{color:#fff;box-sizing:border-box;background:#c33;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 4px;font-size:11px;font-weight:700;display:flex;position:absolute;top:-2px;right:-2px}.requests-bell-dropdown{top:58px;right:max(12px, env(safe-area-inset-right));background:var(--bg-elev);border:1px solid var(--border);width:min(380px,100vw - 24px);min-width:0;max-height:480px;box-shadow:var(--shadow);z-index:100;border-radius:12px;padding:8px;animation:.15s ease-out menu-pop;position:fixed;overflow-y:auto}.requests-bell-header{color:var(--text-h);padding:8px 8px 4px;font-size:14px}.requests-bell-section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text);opacity:.7;padding:6px 8px;font-size:11px}.requests-bell-empty{color:var(--text);opacity:.7;padding:8px 12px;font-size:13px}.requests-bell-row{border-radius:8px;align-items:center;gap:8px;min-width:0;padding:6px 8px;display:flex}.requests-bell-row:hover{background:var(--accent-bg)}.requests-bell-name{min-width:0;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;overflow:hidden}.profile-hero{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;align-items:center;gap:16px;padding:16px;display:flex}.profile-hero>div{flex-direction:column;gap:4px;min-width:0;display:flex}.profile-hero strong{color:var(--text-h);font-size:16px}.streak-row{align-items:center;gap:12px;display:flex}.profile-actions{flex-wrap:wrap;gap:12px;display:flex}.collapsible{border:1px solid var(--border);background:var(--bg-elev);border-radius:12px;overflow:hidden}.collapsible-header{width:100%;color:var(--text-h);cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.collapsible-header:hover{background:var(--accent-bg)}.collapsible-body{padding:8px 16px 16px}.activity-feed{flex-direction:column;gap:2px;margin:0 0 12px;padding:0;list-style:none;display:flex}.activity-row{border-bottom:1px solid var(--border,#e5e5e5);align-items:flex-start;gap:10px;padding:8px 6px;display:flex}.activity-row:last-child{border-bottom:none}.activity-icon{text-align:center;flex:none;width:22px;font-size:16px;line-height:1.4}.activity-text{flex-direction:column;flex:auto;gap:1px;min-width:0;font-size:14px;display:flex}.activity-text .hint{font-size:12px}.activity-target{color:var(--accent);word-break:break-word}.activity-link{text-decoration:none}.activity-link:hover{opacity:.8;text-decoration:none}.activity-time{color:var(--text-muted,#888);white-space:nowrap;flex:none;font-size:12px}@media (width<=520px){.activity-row{flex-wrap:wrap}.activity-time{width:100%;padding-left:32px}}.passage-mode-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.passage-mode-pill{color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:5px;padding:5px 10px;font-size:12px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.passage-mode-pill svg{display:block}.passage-mode-pill:hover:not(.active){color:var(--text-h);background:color-mix(in srgb, var(--accent-bg) 35%, transparent)}.passage-mode-pill.active{background:var(--accent);color:#fff}.passage-audio,.passage-audio audio{width:100%}.audio-player{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:12px;padding:14px 16px;transition:border-color .2s,box-shadow .2s;display:flex;box-shadow:0 1px 2px #0000000a}.audio-player[data-playing=true]{border-color:var(--accent-border);box-shadow:0 2px 12px #0000000f}.audio-player-main{align-items:center;gap:14px;display:flex}.audio-player-play{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;transition:transform .15s,background .15s,box-shadow .15s;display:flex;box-shadow:0 4px 10px #00000014}.audio-player-play:hover{transform:scale(1.06)}.audio-player-play:active{transform:scale(.95)}.audio-player-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite audio-spin}@keyframes audio-spin{to{transform:rotate(360deg)}}.audio-player-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.audio-player-row{align-items:center;gap:12px;display:flex}.audio-player-time{font-variant-numeric:tabular-nums;color:var(--text);opacity:.75;flex-shrink:0;min-width:36px;font-size:12px}.audio-player-track{background:var(--border);border-radius:999px;flex:1;height:6px;position:relative;overflow:visible}.audio-player-track-fill{background:var(--accent);pointer-events:none;border-radius:999px;height:100%;transition:width .1s linear;position:absolute;top:0;left:0}.audio-player-track input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:calc(100% + 16px);margin:0;padding:0;position:absolute;inset:-8px 0}.audio-player-track input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid var(--bg-elev);cursor:pointer;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0003}.audio-player-track input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--bg-elev);cursor:pointer;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0003}.audio-player-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.audio-player-control{border:1px solid var(--border);color:var(--text-h);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.audio-player-control:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.audio-player-control:active{transform:scale(.96)}.audio-player-speed{justify-content:center;min-width:44px}.audio-player-error{color:var(--danger);border-color:var(--danger)}.audio-player-error:hover{border-color:var(--danger);color:var(--danger);background:#ef44441f}@media (width<=480px){.audio-player{padding:12px}.audio-player-play{width:44px;height:44px}.audio-player-controls{justify-content:space-between}}.passage-audio-admin{border-top:1px dashed var(--border);flex-direction:column;gap:6px;padding-top:12px;display:flex}.status-chip{border:1px solid var(--accent-border);background:var(--accent-bg);color:var(--accent);border-radius:999px;align-items:center;gap:6px;width:fit-content;margin-top:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}button.status-chip{cursor:pointer;transition:all .15s}button.status-chip:hover{background:var(--accent);color:#fff}.status-chip-x{opacity:.5;margin-left:2px;font-size:16px;line-height:1}button.status-chip:hover .status-chip-x{opacity:1}.bookmark-btn{border:1px solid var(--border);background:var(--bg-elev);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;line-height:1;transition:all .15s;display:flex}.bookmark-btn:hover{border-color:var(--accent);color:var(--accent)}.bookmark-btn.active{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.bookmark-btn:active{transform:scale(.92)}.toast{background:var(--text-h);color:var(--bg);box-shadow:var(--shadow);z-index:100;border-radius:10px;align-items:center;gap:16px;max-width:90vw;padding:12px 16px;font-size:14px;font-weight:500;animation:.2s ease-out toast-in;display:flex;position:fixed;bottom:88px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}.toast-undo{color:var(--accent);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:0 0;border:none;padding:4px 8px;font-size:14px;font-weight:700}.update-toast{z-index:120;border:1px solid var(--accent-border);background:var(--bg-elev);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:12px;padding:12px;animation:.2s ease-out toast-in-mobile;display:flex;position:fixed;bottom:88px;left:16px;right:16px}.update-toast>div{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.update-toast strong{color:var(--text-h);font-size:14px}.update-toast span{color:var(--text);font-size:12px}.update-toast .deck-btn{min-height:38px;padding:8px 12px}@keyframes toast-in-mobile{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width>=640px){.toast{bottom:24px}.update-toast{width:min(420px,100vw - 48px);bottom:24px;left:auto;right:24px}}.confirm-overlay{z-index:240;align-items:center;padding:18px}.confirm-dialog{background:var(--bg-elev);border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;gap:12px;padding:22px;animation:.2s ease-out pop-in;display:flex}.confirm-dialog-icon{width:42px;height:42px;color:var(--danger);background:#ef44441a;border:1px solid #ef444440;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.confirm-dialog h2{font-size:20px}.confirm-dialog p{color:var(--text);font-size:14px;line-height:1.5}.confirm-dialog-actions{gap:8px;margin-top:4px;display:flex}.confirm-dialog-actions .deck-btn{flex:1}.word-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.word-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;padding:14px 16px;transition:border-color .15s;display:flex}.word-card-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.word-card-front{color:var(--text-h);font-size:16px;font-weight:600;line-height:1.3}.word-card-back{color:var(--text);font-size:14px;line-height:1.3}.word-card-context{color:var(--text);opacity:.7;border-left:2px solid var(--accent-border);margin-top:4px;padding-left:8px;font-size:12px;font-style:italic}.word-card-delete{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;font-size:22px;line-height:1;transition:all .15s}.word-card-clickable{cursor:pointer}.word-card-clickable:hover{border-color:var(--accent-border)}.word-speaker{border:1px solid var(--border);width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.word-speaker:hover{border-color:var(--accent);color:var(--accent)}.alphabet-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:12px;display:grid}.letter-card{background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;color:var(--text-h);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:14px 10px 10px;transition:all .15s;display:flex}.letter-card:hover{border-color:var(--accent);transform:translateY(-2px)}.letter-glyph{text-align:center;color:var(--accent);font-size:28px;font-weight:700}.letter-speaker{color:var(--text);flex-shrink:0}.letter-card:hover .letter-speaker{color:var(--accent)}.word-card-delete:hover{background:var(--accent-bg);color:var(--danger)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar input[type=text]{flex:1;min-width:0}.empty-state{text-align:center;color:var(--text);padding:32px 16px}.error-view{text-align:center;background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;gap:14px;max-width:460px;margin:24px auto;padding:56px 24px;display:flex}.error-icon{background:var(--accent-bg);width:64px;height:64px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 4px;display:flex}.error-title{color:var(--text-h);margin:0;font-size:22px;line-height:1.3}.error-body{color:var(--text);max-width:360px;margin:0;font-size:14px;line-height:1.6}.error-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:12px;display:flex}.error-actions .deck-btn,.error-actions a.deck-btn{justify-content:center;align-items:center;min-width:130px;text-decoration:none;display:inline-flex}.error-compact{text-align:left;background:var(--bg);border:1px solid var(--accent-border);border-radius:10px;flex-direction:row;align-items:center;gap:12px;max-width:none;margin:8px 0 0;padding:12px 14px;display:flex}.error-compact-icon{color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.error-compact-icon svg{width:22px;height:22px}.error-compact-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.error-compact-text strong{color:var(--text-h);font-size:13px}.error-compact-text span{color:var(--text);font-size:12px;line-height:1.4}.error-compact-actions{flex-shrink:0;gap:6px;display:flex}.error-compact-actions .deck-btn,.error-compact-actions a.deck-btn{justify-content:center;align-items:center;min-width:0;min-height:32px;padding:6px 12px;font-size:12px;line-height:1;text-decoration:none;display:inline-flex}@media (width<=500px){.error-compact{flex-direction:column;align-items:flex-start}.error-compact-actions{width:100%}.error-compact-actions .deck-btn{flex:1}}input[type=file]{padding:6px;font-size:13px}.file-picker{width:100%;display:inline-flex;position:relative}.file-picker-input{clip:rect(0, 0, 0, 0);white-space:nowrap;opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-picker-trigger{background:var(--bg-elev);border:1px dashed var(--border);width:100%;color:var(--text-h);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,background .15s,transform .1s;display:flex}.file-picker-trigger:hover:not(:disabled){border-color:var(--accent);background:var(--accent-bg)}.file-picker-trigger:active:not(:disabled){transform:scale(.99)}.file-picker-trigger:disabled{opacity:.55;cursor:not-allowed}.file-picker.has-file .file-picker-trigger{border-style:solid;border-color:var(--accent-border);background:var(--accent-bg)}.file-picker-icon{background:var(--accent);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.file-picker.has-file .file-picker-icon{background:var(--accent)}.file-picker-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.file-picker-label{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.file-picker-sub{color:var(--text);opacity:.7;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.file-picker-clear{background:var(--border);width:24px;height:24px;color:var(--text-h);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.file-picker-clear:hover{background:var(--danger,#c33);color:#fff}input[type=checkbox]{cursor:pointer;width:20px;height:20px;accent-color:var(--accent)}.section-title{color:var(--text-h);margin-top:8px;font-size:16px;font-weight:600}.section-header{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.section-header-toggle{cursor:pointer;width:100%;color:var(--text-h);text-align:left;background:0 0;border:none;padding:0}.section-header-toggle .section-title{margin-top:0}.section-header-toggle:hover .section-title{color:var(--accent)}.auth-wrap{justify-content:center;align-items:center;min-height:100svh;padding:16px;display:flex}.auth-card{background:var(--bg-elev);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:14px;padding:24px}.auth-title{letter-spacing:-1px;color:var(--accent);text-align:center;margin-bottom:4px;font-size:28px}.auth-subtitle{text-align:center;color:var(--text);margin-bottom:20px;font-size:14px}.auth-form{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.auth-form input{min-height:48px;padding:12px;font-size:16px}.auth-form .deck-btn{min-height:48px;font-size:15px}.auth-error{color:var(--danger);margin:0;font-size:13px}.auth-toggle{color:var(--accent);cursor:pointer;text-align:center;background:0 0;border:none;width:100%;padding:12px;font-size:14px;text-decoration:none;display:block}.stats-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.stat-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;padding:14px;display:flex}.stat-label{color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:11px}.stat-value{color:var(--text-h);font-size:26px;font-weight:600;line-height:1}.action-grid{grid-template-columns:1fr;gap:8px;display:grid}@media (width>=500px){.action-grid{grid-template-columns:repeat(2,1fr)}.stats-grid{grid-template-columns:repeat(4,1fr)}}.action-card{background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;text-align:left;color:var(--text-h);border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;min-height:80px;padding:16px;transition:all .15s;display:flex}.action-card:active{transform:scale(.98)}.action-icon{background:var(--accent-bg);width:40px;height:40px;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.lookup-panel{background:var(--bg);border:1px solid var(--accent-border);border-radius:8px;margin-top:8px;padding:12px 14px}.lookup-header{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:6px;display:flex}.lookup-header strong{color:var(--accent);font-size:16px}.lookup-defs{flex-direction:column;gap:6px;margin:8px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.lookup-defs em{color:var(--text);margin-right:6px;font-style:italic}.reader-layout{flex-direction:column;gap:16px;display:flex}.reader-main{flex-direction:column;gap:16px;min-width:0;display:flex}.reader-side{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;padding:14px}@media (width>=900px){.reader-layout{grid-template-columns:1fr 320px;display:grid}.reader-side{align-self:flex-start;max-height:calc(100svh - 100px);position:sticky;top:80px;overflow-y:auto}}.reader-side-content{flex-direction:column;gap:8px;display:flex}.reader-text{background:var(--bg-elev);border:1px solid var(--border);color:var(--text-h);border-radius:10px;padding:16px;font-size:16px;line-height:1.8}.reader-panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 1px 2px #0000000a}.reader-panel-audio{border-bottom:1px solid var(--border);background:linear-gradient(180deg, var(--accent-bg), transparent);padding:14px 16px}.reader-panel .audio-player{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.reader-panel .audio-player[data-playing=true]{box-shadow:none;border:none}.reader-panel-text{color:var(--text-h);padding:18px 20px 20px;font-size:16px;line-height:1.85}.reader-panel-footer{border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg-elev) 92%, var(--accent) 8%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex}.reader-panel-legend{color:var(--text);align-items:center;gap:14px;font-size:12px;display:inline-flex}.reader-panel-legend-item{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.reader-panel-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.reader-panel-legend-dot.is-day{background:#fbbf24}.reader-panel-legend-dot.is-saved{background:#7f77dd}.reader-panel-legend-dot.is-audio{background:var(--accent)}.reader-panel-legend-text-short{display:none}@media (width<=480px){.reader-panel-legend{gap:10px;font-size:11px}.reader-panel-legend-text-full{display:none}.reader-panel-legend-text-short{display:inline}.reader-panel-text{padding:16px}}.reader-panel-translation{opacity:0;max-height:0;transition:max-height .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.reader-panel-translation.is-open{opacity:1;max-height:2400px}.reader-panel-translation-inner{border-top:1px solid var(--border);background:var(--accent-bg);flex-direction:column;gap:6px;padding:14px 18px 16px;display:flex}.reader-panel-translation-label{text-transform:uppercase;letter-spacing:1.4px;color:var(--accent);font-size:11px;font-weight:600}.reader-panel-translation-body{color:var(--text-h);margin:0;font-size:15px;font-style:italic;line-height:1.75}@media (width<=480px){.reader-panel-translation-body{font-size:13px}}.reader-word{cursor:pointer;border-radius:3px;padding:1px 2px;transition:background .1s,color .1s}.reader-word:hover,.reader-word:active{background:#ffffff0f}.reader-word.is-day{color:#fbbf24;border-bottom:2px dotted #fbbf24bf;font-weight:500}.reader-word.is-saved{color:#c4a3ff;border-bottom:2px solid #a882ffcc;font-weight:500}.reader-word.is-day.is-saved{color:#fbbf24;border-bottom:2px dotted #fbbf24bf;box-shadow:0 3px #a882ff99}.reader-word[data-synced]{background:var(--accent-bg);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent-border)}.word-legend{color:var(--text);border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:6px 14px;margin-top:12px;padding-top:10px;font-size:11px;display:flex}.word-legend-item{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.word-legend-chip{background:0 0;border-radius:2px;width:12px;height:8px;display:inline-block}.word-legend-chip.is-day{border-bottom:2px dotted #fbbf24d9}.word-legend-chip.is-saved{border-bottom:2px solid #a882ffd9}.word-legend-chip.is-both{border-bottom:2px dotted #fbbf24d9;box-shadow:0 3px #a882ff99}.word-legend-chip.is-audio{background:var(--accent);border-radius:2px}.reader-toolbar{align-items:stretch;gap:8px;display:flex}.reader-toolbar .reader-search-wrap{flex:1}.reader-filter-btn{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-h);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.reader-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.reader-filter-btn.is-open,.reader-filter-btn.has-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.reader-filter-badge{background:var(--accent);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:600;display:inline-flex}.reader-filter-panel{background:var(--bg-elev);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.reader-section{flex-direction:column;gap:8px;display:flex}.reader-search-wrap{align-items:center;display:flex;position:relative}.reader-search-icon{pointer-events:none;color:var(--text);opacity:.4;position:absolute;left:11px}.reader-search-input{width:100%;padding-left:34px!important;padding-right:32px!important}.reader-search-clear{color:var(--text);opacity:.45;cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:16px;line-height:1;position:absolute;right:8px}.reader-search-clear:hover{opacity:.8}.reader-filter-divider{background:var(--border);height:1px;margin:0 -2px}.reader-filter-row{flex-direction:column;gap:7px;display:flex}.reader-filter-label{letter-spacing:.07em;text-transform:uppercase;color:var(--text);opacity:.45;font-size:10px;font-weight:700}.filter-chips{flex-wrap:wrap;gap:6px;display:flex}.filter-chip{border:1px solid var(--border);color:var(--text-h);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:5px 13px;font-size:13px;transition:border-color .13s,background .13s,color .13s}.filter-chip:hover{border-color:var(--accent);color:var(--accent)}.filter-chip.active{background:var(--accent-bg);border-color:var(--accent-border,var(--accent));color:var(--accent);font-weight:500}.reader-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.reader-text-card{background:var(--bg-elev);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:10px;width:100%;padding:14px 16px;transition:border-color .13s,background .13s;display:flex}.reader-text-card:hover,.reader-text-card:focus-visible{border-color:var(--accent-border,var(--accent))}.reader-text-card-body{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.reader-text-card-top{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.reader-text-card-title{color:var(--text-h);font-size:15px;font-weight:600}.reader-text-card-badges{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.reader-official-badge{background:color-mix(in srgb, var(--status-purple) 12%, transparent);color:var(--status-purple);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:500}.reader-audio-badge{font-size:13px}.reader-q-badge{background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:500}.reader-text-card-sub{color:var(--text);opacity:.5;align-items:center;gap:5px;font-size:12px;display:flex}.reader-locked{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:40px 20px;display:flex}.reader-locked-icon{background:var(--accent-bg);width:56px;height:56px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.reader-locked h2{margin:0;font-size:18px}.reader-locked p{color:var(--text);opacity:.65;max-width:300px;margin:0}.translate-block{flex-direction:column;display:flex}.translate-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.translate-legend{color:var(--text);align-items:center;gap:14px;font-size:12px;display:inline-flex}.translate-legend-item{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.translate-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.translate-legend-dot.is-saved{background:#7f77dd}.translate-legend-dot.is-audio{background:var(--accent)}.translate-legend-text-short{display:none}@media (width<=480px){.translate-legend{gap:10px;font-size:11px}.translate-legend-text-full{display:none}.translate-legend-text-short{display:inline}}.translate-toggle{border:1px solid var(--border);color:var(--text-h);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.translate-toggle:hover:not(:disabled){color:#7f77dd;border-color:#7f77dd}.translate-toggle:disabled{opacity:.6;cursor:not-allowed}.translate-toggle.is-active{color:#534ab7;background:#7f77dd1a;border-color:#7f77dd}@media (prefers-color-scheme:dark){.translate-toggle.is-active{color:#b8b1ff}}:root[data-theme=dark] .translate-toggle.is-active{color:#b8b1ff}.translate-toggle-text-short{display:none}@media (width<=480px){.translate-toggle-text-full{display:none}.translate-toggle-text-short{display:inline}}.translate-panel{opacity:0;max-height:0;margin-top:0;transition:max-height .35s cubic-bezier(.4,0,.2,1),opacity .35s cubic-bezier(.4,0,.2,1),margin-top .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.translate-panel.is-open{opacity:1;max-height:2400px;margin-top:10px}.translate-panel-inner{background:var(--bg-elev);border-left:3px solid #7f77dd;border-radius:0 8px 8px 0;flex-direction:column;gap:6px;padding:12px 14px;display:flex}.translate-panel-label{text-transform:uppercase;letter-spacing:1.4px;color:#7f77dd;align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.translate-panel-body{color:var(--text);margin:0;font-size:15px;font-style:italic;line-height:1.75}@media (width<=480px){.translate-panel-body{font-size:13px}}.reader-context{background:var(--bg);border-left:3px solid var(--accent);border-radius:4px;margin-top:8px;padding:12px 14px;font-size:13px;font-style:italic}.reader-context .card-label{margin-bottom:4px;display:block}.streak-hero{background:linear-gradient(135deg, var(--accent-bg), var(--bg-elev));border:1px solid var(--accent-border);border-radius:12px;align-items:center;gap:14px;padding:16px 18px;display:flex}.streak-hero-icon{background:var(--accent-bg);width:40px;height:40px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.streak-hero-text{flex-direction:column;gap:2px;display:flex}.streak-hero-text strong{color:var(--text-h);font-size:22px;line-height:1}.friend-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.friend-row{background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;align-items:center;gap:12px;padding:12px 14px;display:flex}.friend-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.friend-text strong{color:var(--text-h);font-size:14px}.friend-progress-bar{background:var(--border);border-radius:999px;width:100%;height:4px;margin-top:2px;overflow:hidden}.friend-progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.homework-card{background:linear-gradient(135deg, var(--accent-bg), var(--bg-elev));border:1px solid var(--accent-border);border-radius:12px;padding:18px}.homework-header{justify-content:space-between;align-items:center;display:flex}.hw-done{color:var(--accent);font-size:13px;font-weight:600}.weeks-grid{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=600px){.weeks-grid{grid-template-columns:repeat(2,1fr)}}.week-card{background:var(--bg-elev);border:1px solid var(--border);text-align:left;cursor:pointer;color:var(--text-h);border-radius:12px;flex-direction:column;gap:6px;padding:16px;transition:all .15s;display:flex}.week-card--completed{border-left:3px solid var(--status-purple);background:var(--bg-elev);border-color:var(--border);border-left-color:var(--status-purple)}.week-card--completed .week-card-title{color:var(--text);font-weight:500}.tag-step{border:1px solid var(--border);background:0 0;border-radius:8px;align-items:center;gap:10px;padding:12px;display:flex}.tag-step--done{border-left:3px solid var(--status-purple);border-color:var(--border);border-left-color:var(--status-purple)}.tag-step--done .tag-step-label{color:var(--text);font-weight:500}.tag-step-label{font-weight:500}.week-card:active{transform:scale(.99)}.week-card-num{text-transform:uppercase;letter-spacing:1.5px;color:var(--accent);font-size:11px;font-weight:600}.week-card-title{font-size:17px;font-weight:600}.week-progress-bar{background:var(--border);border-radius:999px;width:100%;height:6px;margin-top:8px;overflow:hidden}.week-progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.starter-level{background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:2px 8px;font-size:10px;font-weight:600}.merge-bar{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;display:flex}.preview-row-invalid{opacity:.4}@media (width>=640px){.deck-header h1{font-size:28px}.card-word{font-size:32px}.app-shell{padding-bottom:0}.bottom-nav{display:none}}.app-fab,.reader-fab{right:20px;bottom:calc(88px + env(safe-area-inset-bottom));background:var(--accent);color:#fff;cursor:pointer;z-index:50;border:none;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;padding:0;line-height:0;transition:transform .1s,box-shadow .1s;display:inline-flex;position:fixed;box-shadow:0 6px 18px #0000004d,0 2px 6px #00000026}.app-fab>svg,.reader-fab>svg{display:block}.app-fab:hover,.reader-fab:hover{transform:translateY(-2px);box-shadow:0 8px 22px #00000059,0 3px 8px #0003}.app-fab:active,.reader-fab:active{transform:translateY(0)}@media (width>=768px){.app-fab,.reader-fab{bottom:24px}}.word-popup-backdrop{-webkit-backdrop-filter:blur(2px);z-index:60;background:#00000059;animation:.12s ease-out word-popup-backdrop-in;position:fixed;inset:0}@keyframes word-popup-backdrop-in{0%{opacity:0}to{opacity:1}}.word-popup{background:var(--bg-elev);border:1px solid var(--border);z-index:61;border-radius:12px;width:320px;max-width:calc(100vw - 16px);padding:12px 14px;animation:.12s ease-out word-popup-in;box-shadow:0 12px 32px #00000059,0 4px 12px #0003}@keyframes word-popup-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.word-popup-translation{flex-direction:column;gap:4px;display:flex}.word-popup-translation-row{align-items:center;gap:6px;display:flex;position:relative}.word-popup-translation-input{background:var(--bg);cursor:default;min-width:0;color:var(--text-h);flex:1;padding-right:36px!important}.word-popup-translation-row.is-editing .word-popup-translation-input{background:var(--bg-elev);border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg);cursor:text}.word-popup-edit-btn{width:26px;height:26px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s,border-color .15s;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.word-popup-edit-btn:hover{color:var(--accent);border-color:var(--accent-border);background:var(--accent-bg)}.word-popup-translation-row.is-editing .word-popup-edit-btn{color:var(--accent)}.question-card-missing{text-transform:uppercase;letter-spacing:1.2px;color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 50%, transparent);background:color-mix(in srgb, var(--danger) 12%, transparent);border-radius:999px;padding:4px 8px;font-size:10px;font-weight:700}.question-card.is-missing{border-color:color-mix(in srgb, var(--danger) 45%, transparent)}.audio-source-choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}@media (width<=480px){.audio-source-choices{grid-template-columns:1fr}}.audio-source-card{border:1px solid var(--border);background:var(--bg);cursor:pointer;text-align:left;border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;transition:border-color .15s,background .15s,transform 50ms;display:flex}.audio-source-card:hover{border-color:var(--accent-border);background:color-mix(in srgb, var(--accent-bg) 30%, var(--bg-elev))}.audio-source-card:active{transform:scale(.995)}.audio-source-card-icon{background:var(--accent-bg);width:36px;height:36px;color:var(--accent);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.audio-source-card-title{color:var(--text-h);font-weight:600}.audio-source-card-sub{color:var(--text);opacity:.75;font-size:12px}.audio-source-active{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.audio-source-active-row{align-items:center;gap:12px;display:flex}.audio-source-active-icon{background:var(--bg-elev);width:36px;height:36px;color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.audio-source-active-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.audio-source-active-body strong{color:var(--text-h)}.audio-source-actions{flex-wrap:wrap;gap:8px;display:flex}.audio-source-card-upload.is-disabled{opacity:.55;pointer-events:none}.ai-config-sheet{max-width:480px}.ai-config-chips{flex-wrap:wrap;gap:6px;display:flex}.ai-config-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s}.ai-config-chip:hover:not(.is-active){border-color:var(--accent-border);color:var(--accent)}.ai-config-chip.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.ai-config-types{flex-direction:column;gap:8px;display:flex}.ai-config-type{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:14px;font-weight:500;transition:background .15s,border-color .15s;display:flex}.ai-config-type:hover:not(.is-active){border-color:var(--accent-border);background:color-mix(in srgb, var(--accent-bg) 30%, var(--bg-elev))}.ai-config-type.is-active{border-color:var(--accent);background:var(--accent-bg)}.ai-config-type-check{border:1.5px solid var(--border);background:var(--bg-elev);width:20px;height:20px;color:var(--accent);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ai-config-type.is-active .ai-config-type-check{border-color:var(--accent);background:var(--accent);color:#fff}.sheet-wide{max-width:720px}.question-editor{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;gap:6px;padding:12px;display:flex}.question-view{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;flex-direction:column;gap:4px;padding:12px;display:flex}.question-view.correct{border-color:var(--accent);background:var(--accent-bg)}.question-view.wrong{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.answer-option{cursor:pointer;align-items:center;gap:8px;padding:4px 0;display:flex}.answer-option:has(input:disabled){cursor:default}.questions-section{flex-direction:column;gap:14px;margin-top:4px;display:flex}.questions-header{align-items:center;gap:10px;display:flex}.questions-title{color:var(--text-h);margin:0;font-size:18px;font-weight:600}.questions-count{background:var(--accent-bg);min-width:24px;height:24px;color:var(--accent);border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.questions-gated{border:1px dashed var(--border);background:var(--bg-elev);border-radius:12px;margin:0;padding:14px 16px}.questions-list{flex-direction:column;gap:12px;display:flex}.question-card{border:1px solid var(--border);background:var(--bg-elev);border-radius:14px;flex-direction:column;gap:14px;padding:18px;transition:border-color .2s,background .2s,box-shadow .2s;display:flex}.question-card.is-checked{background:color-mix(in srgb, var(--bg-elev) 96%, var(--text) 4%)}.question-card.is-correct{border-color:var(--accent-border);background:color-mix(in srgb, var(--accent-bg) 60%, var(--bg-elev));box-shadow:0 0 0 1px var(--accent-border)}.question-card.is-wrong{border-color:color-mix(in srgb, var(--danger) 55%, transparent);background:color-mix(in srgb, var(--danger) 6%, var(--bg-elev))}.question-card-head{align-items:flex-start;gap:12px;display:flex}.question-card-num{background:var(--accent-bg);width:30px;height:30px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:700;display:inline-flex}.question-card-head-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.question-card-type{text-transform:uppercase;letter-spacing:1.2px;color:var(--text);opacity:.7;font-size:10px;font-weight:600}.question-card-prompt{color:var(--text-h);margin:0;font-size:15px;line-height:1.5}.question-card-status{background:var(--bg-elev);border:1px solid var(--border);width:24px;height:24px;color:var(--text);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.question-card-status.is-correct{background:var(--accent);border-color:var(--accent);color:#fff}.question-card-status.is-wrong{background:var(--danger);border-color:var(--danger);color:#fff}.question-card-options{flex-direction:column;gap:8px;display:flex}.question-option{border:1px solid var(--border);background:var(--bg);cursor:pointer;border-radius:10px;align-items:center;gap:12px;padding:12px 14px;transition:border-color .15s,background .15s,transform 50ms;display:flex;position:relative}.question-option input{opacity:0;pointer-events:none;position:absolute}.question-option:hover:not(.is-selected):not(:has(input:disabled)){border-color:var(--accent-border);background:color-mix(in srgb, var(--accent-bg) 35%, var(--bg-elev))}.question-option:active:not(:has(input:disabled)){transform:scale(.995)}.question-option-marker{border:2px solid var(--border);background:var(--bg-elev);border-radius:50%;flex-shrink:0;width:18px;height:18px;transition:border-color .15s,background .15s;position:relative}.question-option.is-selected{border-color:var(--accent);background:var(--accent-bg)}.question-option.is-selected .question-option-marker{border-color:var(--accent);background:var(--accent)}.question-option.is-selected .question-option-marker:after{content:"";background:#fff;border-radius:50%;position:absolute;inset:4px}.question-option-text{color:var(--text-h);font-size:14px;line-height:1.5}.question-option.is-answer{border-color:var(--accent);background:color-mix(in srgb, var(--accent-bg) 70%, var(--bg-elev))}.question-option.is-answer .question-option-marker{border-color:var(--accent);background:var(--accent)}.question-option.is-answer .question-option-marker:after{content:"";clip-path:polygon(15% 50%,40% 75%,90% 25%,85% 20%,40% 65%,20% 45%);background:#fff;border-radius:50%;position:absolute;inset:3px}.question-option.is-miss{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, var(--bg-elev))}.question-option.is-miss .question-option-marker{border-color:var(--danger);background:var(--danger)}.question-card-tf{grid-template-columns:1fr 1fr;gap:10px;display:grid}.question-tf-pill{border:1px solid var(--border);background:var(--bg);color:var(--text-h);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:14px 16px;font-size:14px;font-weight:600;transition:border-color .15s,background .15s,color .15s,transform 50ms;display:inline-flex;position:relative}.question-tf-pill input{opacity:0;pointer-events:none;position:absolute}.question-tf-pill:hover:not(.is-selected):not(:has(input:disabled)){border-color:var(--accent-border);background:color-mix(in srgb, var(--accent-bg) 35%, var(--bg-elev))}.question-tf-pill:active:not(:has(input:disabled)){transform:scale(.98)}.question-tf-pill.is-selected{border-color:var(--accent);background:var(--accent);color:#fff}.question-tf-pill.is-answer{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}.question-tf-pill.is-selected.is-answer{background:var(--accent);color:#fff}.question-tf-pill.is-miss{border-color:var(--danger);background:color-mix(in srgb, var(--danger) 18%, var(--bg-elev));color:var(--danger)}.question-input-wrap{flex-direction:column;gap:6px;display:flex}.question-input,.question-textarea{box-sizing:border-box;border:1px solid var(--border);background:var(--bg);width:100%;max-width:100%;font:inherit;color:var(--text-h);border-radius:10px;padding:12px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s;display:block}.question-input:focus,.question-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.question-input:disabled,.question-textarea:disabled{opacity:.85;cursor:default}.question-textarea{resize:vertical;min-height:80px;max-height:320px;font-family:inherit;line-height:1.55}.question-card .question-input-wrap{min-width:0}.question-input-hint{color:var(--text);opacity:.7;text-transform:uppercase;letter-spacing:1px;font-size:11px}.question-card-reveal{background:color-mix(in srgb, var(--accent-bg) 60%, var(--bg-elev));color:var(--text-h);border-radius:8px;align-items:center;gap:8px;margin:0;padding:10px 12px;font-size:13px;display:flex}.question-card-reveal span{text-transform:uppercase;letter-spacing:1.2px;color:var(--accent);font-size:10px;font-weight:600}.questions-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-top:4px;display:flex}.check-answers-btn{align-items:center;gap:8px;padding:12px 20px;font-weight:600;display:inline-flex}.questions-score{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent);border-radius:999px;align-items:center;gap:8px;margin-right:auto;padding:8px 14px;font-weight:600;display:inline-flex}.questions-score-label{text-transform:uppercase;letter-spacing:1.2px;font-size:10px}.questions-score-value{font-variant-numeric:tabular-nums;font-size:15px}.logs-stats-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;display:grid}.logs-stat-card{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.logs-stat-card.accent{border-color:var(--accent-border);background:var(--accent-bg)}.logs-stat-card strong{color:var(--text-h);font-size:24px}.logs-chip-row{flex-wrap:wrap;gap:6px;display:flex}.logs-chip{border:1px solid var(--border);background:var(--bg);cursor:pointer;font-size:12px;font-family:var(--mono,ui-monospace, monospace);border-radius:999px;gap:6px;padding:4px 10px;display:inline-flex}.logs-chip.level-warning{border-color:#c08800}.logs-chip.level-error{border-color:var(--danger);color:var(--danger)}.logs-chip.level-critical{border-color:var(--danger);background:var(--danger);color:#fff}.logs-filters{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:center;gap:8px;display:grid}.logs-window-picker{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;display:flex}.logs-window-picker .hint{margin-right:4px}.logs-table-wrap{border:1px solid var(--border);background:var(--bg-elev);border-radius:10px;overflow-x:auto}.logs-table{border-collapse:collapse;width:100%;font-size:13px}.logs-table th,.logs-table td{text-align:left;border-bottom:1px solid var(--border);padding:8px 10px}.logs-table th{background:var(--bg);text-transform:uppercase;letter-spacing:.05em;color:var(--text);font-size:11px;font-weight:600}.logs-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.log-row{cursor:pointer}.log-row:hover{background:var(--bg)}.log-row.level-warning{background:#c0880014}.log-row.level-error{background:color-mix(in srgb, var(--danger) 10%, transparent)}.log-row.level-critical{background:color-mix(in srgb, var(--danger) 22%, transparent)}.log-level-badge{text-align:center;color:#fff;background:var(--text);border-radius:50%;width:18px;height:18px;font-size:11px;font-weight:700;line-height:18px;display:inline-block}.log-level-badge.level-info{background:var(--text)}.log-level-badge.level-warning{background:#c08800}.log-level-badge.level-error{background:var(--danger)}.log-level-badge.level-critical{background:var(--danger);box-shadow:0 0 0 2px var(--danger)}.log-row-detail td{background:var(--bg);padding:10px 14px;font-size:12px}.log-meta{background:var(--bg-elev);border-radius:6px;max-height:240px;margin:6px 0 0;padding:10px;font-size:11px;overflow-x:auto}.diag-section{flex-direction:column;gap:8px;display:flex}.diag-card{border:1px solid var(--border);border-left:4px solid var(--border);background:var(--bg-elev);border-radius:8px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.diag-card.sev-high{border-left-color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, var(--bg-elev))}.diag-card.sev-medium{background:color-mix(in srgb, #c08800 6%, var(--bg-elev));border-left-color:#c08800}.diag-card.sev-low{border-left-color:var(--accent)}.diag-card.sev-info{border-left-color:var(--border);opacity:.85}.diag-card strong{color:var(--text-h);font-size:14px}.diag-card p{color:var(--text);margin:0;font-size:13px}.diag-sev-badge{text-transform:uppercase;letter-spacing:.05em;color:#fff;background:var(--text);border-radius:999px;margin-right:8px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.diag-sev-badge.sev-high{background:var(--danger)}.diag-sev-badge.sev-medium{background:#c08800}.diag-sev-badge.sev-low{background:var(--accent)}.diag-sev-badge.sev-info{background:var(--text);opacity:.6}.diag-category{text-transform:uppercase;letter-spacing:.05em;color:var(--text);opacity:.7;font-size:11px}.diag-card details{font-size:12px}.diag-card details summary{cursor:pointer;opacity:.7}.install-prompt{left:50%;bottom:calc(72px + env(safe-area-inset-bottom,0px) + 12px);z-index:900;background:var(--bg-elev);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:min(560px,100vw - 24px);padding:12px 14px;animation:.25s ease-out install-prompt-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 8px 24px #00000059}@keyframes install-prompt-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}.install-prompt-body{align-items:center;gap:12px;min-width:0;display:flex}.install-prompt-icon{font-size:22px;line-height:1}.install-prompt-text{min-width:0}.install-prompt-title{color:var(--text-h);font-size:14px;font-weight:600}.install-prompt-desc{color:var(--text);opacity:.85;margin-top:2px;font-size:12px}.install-prompt-kbd{background:var(--bg);border:1px solid var(--border);border-radius:6px;margin:0 2px;padding:1px 6px;font-size:11px;display:inline-block}.install-prompt-actions{flex-shrink:0;gap:6px;display:flex}.install-prompt-btn{font:inherit;border:1px solid var(--border);color:var(--text-h);cursor:pointer;background:0 0;border-radius:10px;padding:8px 12px;font-size:13px}.install-prompt-btn:hover{background:var(--bg)}.install-prompt-btn.primary{background:var(--accent);color:#0f1015;border-color:var(--accent);font-weight:600}.install-prompt-btn.primary:hover{filter:brightness(1.05)}@media (width<=480px){.install-prompt{flex-direction:column;align-items:stretch;gap:12px}.install-prompt-actions{justify-content:flex-end}}.nav-pair{gap:8px;display:flex}.nav-pair .deck-btn{flex:1}.step-progress{flex-direction:column;gap:6px;display:flex}.step-progress-head{color:var(--text);justify-content:space-between;align-items:baseline;font-size:12px;display:flex}.step-progress-label{text-transform:uppercase;letter-spacing:1.2px;color:var(--accent);font-size:11px;font-weight:600}.step-progress-count{color:var(--text)}.step-progress-count strong{color:var(--text-h)}.step-progress-segments{gap:4px;display:flex}.step-progress-seg{background:var(--border);border-radius:999px;flex:1;height:4px;transition:background .2s}.step-progress-seg.is-done{background:var(--accent);opacity:.7}.step-progress-seg.is-current{background:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}.neue-woerter-card{border:1px solid var(--border);background:var(--bg-elev);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;gap:12px;padding:24px 20px 28px;display:flex}.neue-woerter-card-head{justify-content:space-between;align-items:center;display:flex}.neue-woerter-front{color:var(--text-h);text-align:center;word-break:break-word;margin:0;font-size:30px;font-weight:600}.neue-woerter-back{color:var(--accent);text-align:center;margin:0;font-size:18px;font-weight:500}.neue-woerter-context{color:var(--text);text-align:center;opacity:.85;margin:4px 0 0;font-size:13px;font-style:italic}.tag-step{overflow:hidden;padding:0!important}.tag-step-row{text-align:left;width:100%;color:var(--text-h);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;padding:12px;transition:background .15s;display:flex}.tag-step-row:hover:not(:disabled){background:var(--accent-bg)}.tag-step-row:active:not(:disabled){background:color-mix(in srgb, var(--accent) 18%, transparent)}.tag-step-row:disabled{cursor:not-allowed}.tag-step-chevron{color:var(--text);opacity:.5;margin-left:auto;display:inline-flex}.tag-step--locked{opacity:.55;background:repeating-linear-gradient(45deg, transparent 0 6px, color-mix(in srgb, var(--text) 5%, transparent) 6px 7px)}.tag-step--locked .tag-step-label{color:var(--text)}.tag-step--skipped{border-left:3px dashed var(--border);background:repeating-linear-gradient(-45deg, transparent 0 6px, color-mix(in srgb, var(--text) 6%, transparent) 6px 7px)}.tag-step--skipped .tag-step-label{color:var(--text);opacity:.9}.tag-step-skip-tag{text-transform:uppercase;letter-spacing:1px;color:var(--text);border:1px dashed var(--border);background:0 0;border-radius:999px;margin-left:auto;padding:2px 8px;font-size:10px;font-weight:700}.question-view.unanswered{box-shadow:0 0 0 1px var(--accent-border) inset;position:relative;border-color:var(--accent-border)!important}.question-missing-tag{text-transform:uppercase;letter-spacing:1px;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;margin-bottom:6px;padding:2px 8px;font-size:10px;font-weight:700;display:inline-block}.hint.hint-warn{color:var(--accent);margin:0;font-weight:500}.deck-btn.skip-btn{border:1px dashed var(--border);color:var(--text);background:0 0;font-style:italic}.deck-btn.skip-btn:hover:not(:disabled){border-color:var(--accent-border);color:var(--accent)}.audio-player-track.is-readonly{cursor:default;opacity:.85}.audio-player-track.is-readonly .audio-player-track-fill{cursor:default}
