:root{color-scheme:light dark;--bg: light-dark(#f7f7f8, #121317);--surface: light-dark(#ffffff, #1b1d23);--border: light-dark(#e6e6ea, #2b2e37);--text: light-dark(#1f2328, #e8e9ec);--muted: light-dark(#6b7080, #9a9fae);--hover: light-dark(#f0f0f3, #23262e);--accent: #4f46e5;--radius: 8px;--space: 8px;--text-size: 16px;--sidebar-width: 260px;font-family:system-ui,sans-serif;font-size:var(--text-size);background:var(--bg);color:var(--text)}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}body{margin:0}button,input{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer;padding:0}h1{font-size:1.5em;font-weight:600;margin:0}h2{font-size:1.15em;margin:0}.app{height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space) calc(var(--space) * 2);background:var(--surface);border-bottom:1px solid var(--border)}.brand{font-weight:600}.topbar{gap:calc(var(--space) * 2)}.search{position:relative;flex:1;max-width:520px}.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);display:inline-flex;color:var(--muted);pointer-events:none}.search input{width:100%;box-sizing:border-box;padding:8px 12px 8px 36px;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius)}.search input:focus{outline:none;border-color:var(--accent)}.search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:10;max-height:60dvh;overflow:auto;padding:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000026}.search-results button{display:flex;align-items:center;gap:var(--space);width:100%;min-height:40px;padding:6px 10px;border-radius:var(--radius);text-align:left}.search-results button:hover{background:var(--hover)}.search-results .card-result{flex-direction:column;align-items:flex-start;gap:2px}.search-results .hint{padding:6px 10px}.search-results .card-result .hint{padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.body{flex:1;display:flex;min-height:0}.sidebar{width:var(--sidebar-width);flex-shrink:0;overflow:auto;padding:var(--space);background:var(--surface);border-right:1px solid var(--border)}.main{flex:1;overflow:auto;padding:calc(var(--space) * 3)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius);color:var(--muted)}.icon-button:hover{background:var(--hover);color:var(--text)}.button{display:inline-flex;align-items:center;gap:6px;padding:var(--space) calc(var(--space) * 1.75);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.button:hover{border-color:var(--accent);color:var(--accent)}.tree-row{display:flex;align-items:center;border-radius:var(--radius);min-height:36px}.tree-row:hover{background:var(--hover)}.tree-row.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.chevron{display:inline-flex;align-items:center;justify-content:center;width:28px;flex-shrink:0;color:var(--muted)}.tree-name{flex:1;min-width:0;display:flex;align-items:center;gap:6px;text-align:left;padding:6px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-name svg{flex-shrink:0;color:var(--muted)}.tree-row.active .tree-name svg{color:var(--accent)}.tree-delete{display:inline-flex;padding:6px;border-radius:var(--radius);color:var(--muted)}.tree-delete:hover{color:var(--drill, #e5484d);background:var(--hover)}@media(hover:hover){.tree-delete{opacity:0}.tree-row:hover .tree-delete,.tree-delete:focus-visible{opacity:1}}.breadcrumb{display:flex;flex-wrap:wrap;color:var(--muted);font-size:.9em;margin-bottom:var(--space)}.breadcrumb button:hover{color:var(--accent)}.separator{margin:0 6px}.back-title{display:flex;align-items:center;gap:var(--space)}.breadcrumb+.back-title .icon-button{display:none}.toolbar{display:flex;gap:var(--space);margin:calc(var(--space) * 2) 0}.empty{color:var(--muted)}.item-list{list-style:none;margin:0;padding:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.item-list:empty{display:none}.item-row{display:flex;align-items:center;gap:calc(var(--space) * 1.5);min-height:48px;padding:0 calc(var(--space) * 2)}.item-list>li+li{border-top:1px solid var(--border)}.item-row:hover{background:var(--hover)}.item-icon{display:inline-flex;color:var(--accent)}.item-name{flex:1;text-align:left;padding:var(--space) 0}.name-input{flex:1;padding:6px var(--space);border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);outline:none}.item-meta{color:var(--muted);font-size:.9em}.item-actions{display:flex;gap:calc(var(--space) * 1.5);font-size:.85em}.item-actions button{color:var(--muted)}.item-actions button:hover{color:var(--accent)}@media(hover:hover){.item-actions{opacity:0}.item-row:hover .item-actions,.item-row:focus-within .item-actions{opacity:1}}.overlay{position:fixed;inset:0;background:#00000040;display:flex;justify-content:flex-end}.panel{width:min(340px,100%);height:100%;overflow:auto;box-sizing:border-box;padding:calc(var(--space) * 2.5);background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;gap:calc(var(--space) * 2.5)}.panel-head{display:flex;align-items:center;justify-content:space-between}.field{display:flex;flex-direction:column;gap:6px}.field output{float:right;color:var(--muted)}.field input[type=range]{accent-color:var(--accent)}.field input[type=color]{width:56px;height:36px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:none}.segmented{display:flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.segmented button{flex:1;padding:6px 10px;white-space:nowrap}.segmented button.on{background:var(--accent);color:#fff}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{filter:brightness(1.1)}.drop-over{outline:2px dashed var(--accent);outline-offset:-2px;border-radius:var(--radius)}.back-title .item-meta{margin-left:auto}.card-editor{display:flex;flex-direction:column;gap:var(--space);margin:calc(var(--space) * 2) 0}.tools{flex-wrap:wrap;align-items:center;gap:2px;margin:0}.tool{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;border-radius:var(--radius);color:var(--muted);cursor:pointer}.tool:hover{background:var(--hover);color:var(--text)}.tool.on{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.tool-gap{width:1px;height:20px;margin:0 6px;background:var(--border)}.swatch{width:18px;height:18px;border-radius:50%;border:1px solid rgb(0 0 0 / .15)}.swatch.rainbow{background:conic-gradient(#f87171,#fbbf24,#4ade80,#60a5fa,#c084fc,#f87171)}.swatch-row{display:flex;gap:var(--space)}.swatch-row input[type=color]{width:40px;height:32px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:none}.card-faces{display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--space) * 2)}.card-face{position:relative;display:flex;min-height:140px;padding:calc(var(--space) * 3) calc(var(--space) * 2) calc(var(--space) * 2);background:var(--card-bg, var(--surface));color:var(--card-text, inherit);font-family:var(--card-font, inherit);border:2px solid var(--card-border, var(--border));border-radius:calc(var(--radius) * 1.5);box-shadow:0 2px 8px #0000000f}.card-face:focus-within{box-shadow:0 0 0 2px var(--accent)}.editor-body.with-style{display:grid;grid-template-columns:1fr 300px;gap:calc(var(--space) * 2);align-items:start}.style-panel{display:flex;flex-direction:column;gap:calc(var(--space) * 1.5);padding:calc(var(--space) * 1.5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.style-panel .swatch-row{flex-wrap:wrap;gap:6px}.swatch-button{width:24px;height:24px;border-radius:50%;border:1px solid rgb(128 128 128 / .6);cursor:pointer}.swatch-button.on{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.swatch-button.rainbow{background:conic-gradient(#f87171,#fbbf24,#4ade80,#60a5fa,#c084fc,#f87171)}.link{margin-left:var(--space);color:var(--accent);font-size:.85em}.warning{margin:0;padding:6px var(--space);border-radius:var(--radius);background:color-mix(in srgb,#f76b15 15%,transparent);font-size:.9em}.theme-chips{display:flex;flex-wrap:wrap;gap:6px}.theme-chip{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:999px;overflow:hidden}.theme-chip button:first-child{padding:4px 10px;border-right:1px solid var(--border)}.theme-chip button:last-child{display:inline-flex;padding:4px 6px;color:var(--muted)}.theme-save{display:flex;gap:6px}.theme-save .text-input{flex:1;min-width:0}.tool-menu{position:relative;display:inline-flex}.tool-popover{position:absolute;top:calc(100% + 4px);left:0;z-index:5;display:flex;align-items:center;gap:6px;padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #00000026;white-space:nowrap}.text-color-icon{font-weight:700;line-height:1;border-bottom:3px solid;padding:0 2px}.tape{--tape: #ecdca6;border-radius:2px;padding:0 2px;background:repeating-linear-gradient(-55deg,rgb(255 255 255 / .18) 0 3px,transparent 3px 7px),var(--tape);box-decoration-break:clone;-webkit-box-decoration-break:clone}.card-face .tape{background:repeating-linear-gradient(-55deg,rgb(236 220 166 / .55) 0 3px,transparent 3px 7px),#ecdca640;outline:1px dashed #c9b36a}.flip-face .tape{cursor:pointer;transition:background .2s,color .2s}.flip-face .tape:not(.peeled),.flip-face .tape:not(.peeled) *{color:transparent!important;background-color:transparent}.flip-face .tape:not(.peeled){background:repeating-linear-gradient(-55deg,rgb(255 255 255 / .18) 0 3px,transparent 3px 7px),var(--tape);box-shadow:0 1px 2px #0003}.flip-face .tape.peeled{background:#ecdca64d}.choices-editor{display:flex;flex-direction:column;gap:6px;padding:calc(var(--space) * 1.5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.choice-row{display:flex;align-items:center;gap:var(--space)}.choice-row .text-input{flex:1;min-width:0}.choice-row input[type=checkbox]{width:18px;height:18px;accent-color:#2f9e62}.choice-letter{width:1.2em;font-weight:600;color:var(--muted)}.choice-footer{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--space) * 2)}.kind-switch{align-self:flex-start}.kind-switch button{padding:4px 14px;white-space:nowrap}.tape-hint{margin-right:auto}.kind-badge{padding:1px 8px;border-radius:3px;background:color-mix(in srgb,#2f9e62 18%,transparent);font-size:.8em}.tape-badge{padding:1px 8px;border-radius:3px;background:#ecdca6;color:#1f2328;font-size:.8em}.tape-tool{background:#ecdca6;color:#1f2328;border-radius:3px}.tool-label{padding:0 6px;font-size:.9em}.dialog.base-format{width:min(460px,calc(100% - 32px));box-sizing:border-box;display:flex;flex-direction:column;gap:calc(var(--space) * 1.5)}.card-faces.sample{grid-template-columns:1fr}.card-faces.sample .card-face{min-height:110px;align-items:center;justify-content:center;font-size:1.15em}.card-editor.large .card-face{aspect-ratio:3 / 2}.face-label{position:absolute;top:var(--space);left:calc(var(--space) * 1.5);font-size:.75em;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.card-face>div{flex:1;display:flex;min-width:0}.card-face .ProseMirror{flex:1;align-self:center;max-height:100%;overflow:auto;outline:none;text-align:center;font-size:1.15em;overflow-wrap:anywhere}.card-face .ProseMirror p{margin:.25em 0}.card-face .ProseMirror ul,.card-face .ProseMirror ol{text-align:left;margin:.25em 0;padding-left:1.4em}.card-image{display:flex;justify-content:center;margin:.25em 0}.card-image img{max-width:100%;max-height:120px;border-radius:var(--radius)}.card-editor.large .card-image img{max-height:200px}.card-image.selected img{outline:2px solid var(--accent);outline-offset:2px}mark{color:#1f2328!important;border-radius:3px;padding:0 2px}.dialog.editor{width:min(900px,calc(100% - 32px));box-sizing:border-box}.dialog.editor .card-editor{margin:0}.form-actions{grid-column:1 / -1;display:flex;align-items:center;justify-content:flex-end;gap:var(--space)}.hint{color:var(--muted);font-size:.8em}.error{color:#d14343;margin-right:auto}.card-row{align-items:flex-start;padding-top:var(--space);padding-bottom:var(--space)}.card-row.editing{list-style:none;padding:0 calc(var(--space) * 2)}.card-front,.card-back{flex:1;white-space:pre-wrap;overflow-wrap:anywhere}.card-back{color:var(--muted)}.overlay.centered{justify-content:center;align-items:center}.dialog{width:min(400px,calc(100% - 32px));max-height:80dvh;overflow:auto;padding:calc(var(--space) * 2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.move-list{list-style:none;margin:var(--space) 0 0;padding:0}.move-list button{display:flex;align-items:center;gap:var(--space);width:100%;min-height:40px;padding:0 12px;border-radius:var(--radius);text-align:left}.move-list button:hover:not(:disabled){background:var(--hover)}.mix-row,.mix-folder{display:flex;align-items:center;gap:var(--space);min-height:40px;padding-right:12px;border-radius:var(--radius)}.mix-row{cursor:pointer}.mix-row:hover{background:var(--hover)}.mix-row input{accent-color:var(--accent)}.mix-row:has(input:disabled){opacity:.45;cursor:default}.mix-folder{color:var(--muted)}.move-list .move-list{margin:0}.merge-target .hint{margin-left:auto;opacity:0}.merge-target:hover .hint{opacity:1}.detail{color:var(--muted);margin:var(--space) 0 calc(var(--space) * 2)}.move-list button:disabled{opacity:.4;cursor:default}.crash{max-width:480px;margin:15vh auto 0;padding:0 16px;text-align:center}.crash .hint{margin-top:calc(var(--space) * 3);overflow-wrap:anywhere}.account-form{display:flex;flex-direction:column;gap:var(--space)}.account-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space)}.account-links .link{margin-left:0}.hint.or{margin:0;text-align:center}.help-row{display:flex;gap:var(--space)}.help-row .button{flex:1;justify-content:center;color:inherit;text-decoration:none;white-space:nowrap}.dialog.help{width:min(560px,calc(100% - 32px));box-sizing:border-box;line-height:1.55}.chatgpt-helper{padding:calc(var(--space) * 1.5);border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.chatgpt-helper summary{cursor:pointer;font-weight:600;color:var(--accent)}.chatgpt-helper ol{margin:var(--space) 0;padding-left:1.4em;color:var(--muted);font-size:.9em}.helper-options{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space);margin-bottom:var(--space)}.prompt-preview{width:100%;box-sizing:border-box;min-height:140px;font-size:.85em;color:var(--muted)}.choice-detect{padding:var(--space) calc(var(--space) * 1.5);border-left:3px solid #2f9e62;background:color-mix(in srgb,#2f9e62 8%,transparent);border-radius:var(--radius)}.form-actions{flex-wrap:wrap}.share-body{display:flex;flex-direction:column;gap:calc(var(--space) * 1.5)}.dialog.wide{width:min(640px,calc(100% - 32px));box-sizing:border-box}.import-start,.import-review{display:flex;flex-direction:column;gap:calc(var(--space) * 2);margin-top:calc(var(--space) * 2)}.drop-zone{display:flex;flex-direction:column;align-items:center;gap:var(--space);padding:calc(var(--space) * 4);border:2px dashed var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer}.drop-zone:hover{border-color:var(--accent);color:var(--accent)}.paste-box,.text-input,select{font:inherit;color:inherit;padding:var(--space);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.paste-box{min-height:96px;resize:vertical}.paste-box:focus,.text-input:focus,select:focus{outline:none;border-color:var(--accent)}.field-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space)}.check{display:flex;align-items:center;gap:var(--space)}.check input{accent-color:var(--accent)}.preview{width:100%;border-collapse:collapse;font-size:.9em}.preview th,.preview td{text-align:left;padding:6px var(--space);border-bottom:1px solid var(--border);overflow-wrap:anywhere}.preview th{color:var(--muted);font-weight:500}.button:disabled{opacity:.5;cursor:default}.toast{position:fixed;left:50%;bottom:calc(var(--space) * 3);transform:translate(-50%);display:flex;align-items:center;gap:calc(var(--space) * 2);padding:var(--space) calc(var(--space) * 2);background:var(--text);color:var(--bg);border-radius:var(--radius);box-shadow:0 4px 16px #0003}.toast button{color:var(--accent);font-weight:600;filter:brightness(1.4)}.study-chip{padding:4px 12px;border:1px solid var(--accent);border-radius:999px;color:var(--accent);font-size:.85em}.study-chip:hover{background:var(--accent);color:#fff}.study{--drill: #e5484d;--hard: #f76b15;--needsWork: #3e63dd;--known: #2f9e62;position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;background:var(--bg)}.study{overflow-y:auto}.study-stage.compact{flex:none;padding-bottom:0}.study-stage.compact .flip-card{aspect-ratio:auto}.study-stage.compact .flip-inner{height:auto}.study-stage.compact .flip-face{position:relative;min-height:120px;max-height:40dvh;padding:calc(var(--space) * 2.5)}.study-bar{display:flex;align-items:center;gap:calc(var(--space) * 1.5);padding:var(--space) calc(var(--space) * 2)}.study-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:30%}.progress{flex:1;height:6px;background:var(--border);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:var(--accent);transition:width .3s}.icon-button.on{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.icon-button.sync-error{box-shadow:inset 0 0 0 2px #f76b15}.icon-button:disabled{opacity:.35;cursor:default}.study-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:calc(var(--space) * 2);min-height:0}.flip-card{width:min(720px,100%);aspect-ratio:3 / 2;max-height:100%;perspective:1600px;text-align:inherit}.flip-inner{position:relative;width:100%;height:100%;transition:transform .35s ease;transform-style:preserve-3d}.flip-card.flipped .flip-inner{transform:rotateY(180deg)}.flip-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:calc(var(--space) * 4);overflow:auto;backface-visibility:hidden;background:var(--card-bg, var(--surface));color:var(--card-text, inherit);font-family:var(--card-font, inherit);border:2px solid var(--card-border, var(--border));border-radius:calc(var(--radius) * 2);box-shadow:0 8px 30px #0000001f;font-size:1.6em;text-align:center;overflow-wrap:anywhere}.flip-face.back{transform:rotateY(180deg)}.flip-face .ProseMirror{outline:none}.flip-face .ProseMirror p{margin:.25em 0}.flip-face ul,.flip-face ol{text-align:left}.flip-face .card-image img{max-height:260px}@media(prefers-reduced-motion:reduce){.flip-inner{transition:none}}.study-actions{display:flex;justify-content:center;gap:var(--space);padding:calc(var(--space) * 2) calc(var(--space) * 2) calc(var(--space) * 4)}.show-answer{min-width:240px;min-height:52px;justify-content:center;font-size:1.05em}.rate{flex:0 1 160px;min-height:56px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space);border-radius:var(--radius);color:#fff;font-weight:600}.rate:hover{filter:brightness(1.1)}.rate-drill{background:var(--drill)}.rate-hard{background:var(--hard)}.rate-needsWork{background:var(--needsWork)}.rate-known{background:var(--known)}kbd{font:inherit;font-size:.75em;padding:1px 6px;border-radius:4px;background:#ffffff38}.choice-answers{display:flex;flex-direction:column;gap:var(--space);width:min(720px,100%)}.choice-button{display:flex;align-items:center;gap:calc(var(--space) * 1.5);min-height:52px;padding:var(--space) calc(var(--space) * 2);text-align:left;background:var(--surface);border:2px solid var(--border);border-radius:var(--radius);font-size:1.05em}.choice-button:hover{border-color:var(--accent)}.choice-button kbd{background:var(--hover);color:var(--muted)}.choice-button.picked{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface))}.choice-button.right{border-color:var(--known);background:color-mix(in srgb,var(--known) 18%,var(--surface))}.choice-button.wrong{border-color:var(--drill);background:color-mix(in srgb,var(--drill) 15%,var(--surface))}.choice-button.missed{border-color:var(--known);border-style:dashed}.choice-result{margin:0;font-weight:600}.choice-result.right{color:var(--known)}.choice-result.wrong{color:var(--drill)}.choice-explanation{padding:var(--space) calc(var(--space) * 2);background:var(--surface);border-left:3px solid var(--accent);border-radius:var(--radius)}.choice-explanation .ProseMirror{outline:none}.choice-answers .show-answer{align-self:center}.study-done{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(var(--space) * 3)}@media(max-width:700px){.flip-card{aspect-ratio:3 / 4}.flip-face{font-size:1.3em;padding:calc(var(--space) * 2)}.rate{flex:1;flex-direction:column;gap:2px;font-size:.9em}.brand{display:none}.field-row,.card-faces,.editor-body.with-style{grid-template-columns:1fr}.card-row{flex-direction:column}.sidebar,.breadcrumb{display:none}.breadcrumb+.back-title .icon-button{display:inline-flex}.main{padding:calc(var(--space) * 2)}.item-row{min-height:56px}}
