:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fafaf7;--color-surface:#fff;--color-text:#1c1b1a;--color-muted:#6b6a66;--color-primary:#046a38;--color-primary-contrast:#fff;--color-accent:#da291c;--color-border:#e3e2de;--color-danger:#b3261e;--shadow-pop:0 4px 16px #0000001f;--radius:8px;--space:1rem;--font:system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#171614;--color-surface:#201f1c;--color-text:#eceae4;--color-muted:#a6a39b;--color-primary:#4cbd84;--color-primary-contrast:#0b2b1b;--color-accent:#ff8b80;--color-border:#3a3835;--color-danger:#ff8b80;--shadow-pop:0 4px 16px #00000080}}*{box-sizing:border-box}body{font-family:var(--font);background:var(--color-bg);color:var(--color-text);margin:0}.auth-card{max-width:22rem;padding:calc(var(--space) * 1.5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:10vh auto}.auth-card h1{color:var(--color-primary);margin:0 0 .25rem;font-size:1.1rem}.auth-card h2{margin:0 0 var(--space);font-size:1.4rem}.auth-card form{gap:var(--space);display:grid}.auth-card label{color:var(--color-muted);gap:.25rem;font-size:.9rem;display:grid}.auth-card input{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;padding:.5rem .6rem}.auth-card [role=alert]{color:var(--color-accent);margin:0}button{border-radius:var(--radius);background:var(--color-primary);color:var(--color-primary-contrast);font:inherit;cursor:pointer;border:none;padding:.5rem 1rem}button:disabled{opacity:.6;cursor:default}.area-header{align-items:center;gap:.5rem var(--space);padding:.6rem var(--space);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-wrap:wrap;display:flex}.area-header .brand{color:var(--color-primary);font-weight:600}.area-header nav{flex-wrap:wrap;gap:.75rem;display:flex}.area-header a{color:var(--color-text);border-radius:var(--radius);padding:.25rem .5rem;text-decoration:none}.area-header a.active{background:var(--color-primary);color:var(--color-primary-contrast)}.area-header .spacer{flex:1}.area-header .who{color:var(--color-muted);font-size:.9rem}.area-body{padding:var(--space);max-width:60rem;margin:0 auto}.loading{text-align:center;color:var(--color-muted);margin-top:20vh}.error{color:var(--color-accent)}.muted{color:var(--color-muted)}.badge{text-align:center;border-radius:var(--radius);background:var(--color-bg);border:1px solid var(--color-border);min-width:2.5rem;padding:.1rem .4rem;font-size:.85rem;display:inline-block}.level-list details,.module-row{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin-bottom:.5rem}.level-list summary{cursor:pointer;align-items:center;gap:.75rem;padding:.6rem .8rem;display:flex}.level-code{color:var(--color-primary);font-weight:600}.level-title{flex:1}.module-list{margin:0;padding:.5rem;list-style:none}.module-toggle{width:100%;color:var(--color-text);background:0 0;justify-content:space-between;padding:.5rem;display:flex}.lesson-list{margin:0;padding:0 .5rem .5rem;list-style:none}.lesson-list a{color:var(--color-text);border-radius:var(--radius);align-items:center;gap:.5rem;padding:.4rem .5rem;text-decoration:none;display:flex}.lesson-list a:hover{background:var(--color-bg)}.kind{text-transform:uppercase;letter-spacing:.03em;color:var(--color-muted);min-width:3.5rem;font-size:.7rem}.kind-assessment{color:var(--color-accent)}.lesson-title{flex:1}.check{color:var(--color-primary);font-size:.85rem}.lesson-head h1{margin:.5rem 0 .1rem;font-size:1.6rem}.translation{color:var(--color-muted);font-size:.9rem}.lesson-head .study-time{margin:.2rem 0 0;font-size:.85rem}.lesson-toc{gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:grid}.lesson-toc-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;align-items:center;gap:.6rem;padding:.6rem .8rem;display:flex}.lesson-toc-item:hover{border-color:var(--color-primary)}.lesson-toc-item.current{border-color:var(--color-primary);box-shadow:inset 3px 0 0 var(--color-primary)}.step-kind{text-transform:capitalize;letter-spacing:.03em;min-width:5.5rem;color:var(--color-muted);border:1px solid var(--color-border);text-align:center;border-radius:999px;flex:none;padding:.1rem .45rem;font-size:.7rem}.step-kind.kind-exercise,.step-kind.kind-game{color:var(--color-primary);border-color:var(--color-primary)}.step-label{overflow-wrap:anywhere;flex:1}.step-here{color:var(--color-primary);white-space:nowrap;font-size:.72rem}.step-status{font-variant-numeric:tabular-nums;flex:none;font-size:.85rem}.step-status.done{color:var(--color-primary);font-weight:600}.step-status.muted{color:var(--color-muted)}.lesson-stepbar,.lesson-crumb{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.5rem 0 1rem;display:flex}.lesson-stepbar .muted{margin-left:auto}.lesson-stepnav{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:1rem;margin-top:1.5rem;padding-top:1rem;display:flex}.lesson-summary-list{gap:.35rem;margin:1rem 0;padding:0;list-style:none;display:grid}.lesson-summary-list li{border-bottom:1px solid var(--color-border);align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.lesson-status{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.6rem;display:flex}.grade-badge{border:1px solid var(--color-border);background:var(--color-surface);border-radius:999px;align-items:baseline;gap:.3rem;padding:.15rem .5rem;font-size:.85rem;display:inline-flex}.grade-badge strong{font-size:1rem}.grade-badge.grade-A,.grade-badge.grade-B{border-color:var(--color-primary);color:var(--color-primary)}.grade-badge.grade-C,.grade-badge.grade-D{border-color:var(--color-accent)}.grade-badge.grade-F{border-color:var(--color-danger);color:var(--color-danger)}.grade-badge[data-passed=false]{opacity:.9}.lesson-progress{flex:1;align-items:center;gap:.5rem;min-width:8rem;display:inline-flex}.lesson-progress-track{background:var(--color-border);border-radius:999px;flex:1;min-width:4rem;height:.4rem;overflow:hidden}.lesson-progress-fill{background:var(--color-primary);border-radius:999px;height:100%;display:block}.lesson-section{margin:2rem 0}.lesson-section>h2{border-bottom:1px solid var(--color-border);margin:0 0 .75rem;padding-bottom:.3rem;font-size:1.25rem}.lesson-body,.lesson-head{overflow-wrap:break-word}.bilingual{flex-direction:column;display:inline-flex}.word.in-corpus{background:color-mix(in srgb, var(--color-primary) 15%, transparent);border-radius:3px;padding:0 .15rem}.word.not-in-corpus{border-bottom:1px dotted var(--color-primary)}.lesson-markdown h3,.lesson-markdown h4,.lesson-markdown h5,.lesson-markdown h6{margin:1.4rem 0 .4rem}.lesson-markdown h3{font-size:1.1rem}.lesson-markdown h4{font-size:1rem}.lesson-markdown h5,.lesson-markdown h6{color:var(--color-muted);font-size:.9rem}.lesson-markdown hr{border:none;border-top:1px solid var(--color-border);margin:1.2rem 0}.lesson-markdown ul,.lesson-markdown ol{padding-left:1.4rem}.lesson-markdown li{margin:.25rem 0}.table-scroll{margin:.8rem 0;overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%}.table-scroll th,.table-scroll td{text-align:left;border-bottom:1px solid var(--color-border);padding:.35rem .6rem}.table-scroll th{border-bottom:2px solid var(--color-border);font-weight:600}.term{background:color-mix(in srgb, var(--color-primary) 12%, transparent);border-radius:3px;padding:0 .2rem;font-weight:500}.term:has(.word){font-weight:inherit;background:0 0;padding:0}.lesson-markdown p.pair-pt{margin-bottom:.1rem}.lesson-markdown p.translation{margin-top:0}.blank{border-bottom:2px solid var(--color-muted);vertical-align:baseline;min-width:5rem;display:inline-block}.callout{border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius);background:var(--color-surface);margin:.8rem 0;padding:.6rem .9rem}.callout-title{margin:0 0 .3rem;font-weight:600}summary.callout-title{cursor:pointer;margin:0}.callout-important,.callout-warning{border-left-color:var(--color-accent)}.callout-important .callout-title,.callout-warning .callout-title{color:var(--color-accent)}.callout-success .callout-title,.callout-note .callout-title{color:var(--color-primary)}.dialogue-line{margin:.4rem 0}.speaker{font-weight:600}.exercise{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin-bottom:.8rem;padding:.8rem}.prompt{margin-top:0;font-weight:500}.mcq-options{gap:.4rem;padding:0;list-style:none;display:grid}.mcq-options button{text-align:left;background:var(--color-bg);width:100%;color:var(--color-text);border:1px solid var(--color-border)}.mcq-options button:hover:not(:disabled){border-color:var(--color-primary)}.fill-in,.matching{flex-direction:column;gap:.5rem;display:flex}.fill-in{flex-direction:row}.fill-in input,.matching select{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;padding:.4rem}.matching ul{gap:.4rem;padding:0;list-style:none;display:grid}.matching li{align-items:center;gap:.5rem;display:flex}.match-left{min-width:8rem}.feedback{border-radius:var(--radius);margin-top:.5rem;padding:.5rem .7rem}.feedback.correct{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.feedback.wrong{background:color-mix(in srgb, var(--color-accent) 12%, transparent);color:var(--color-accent)}.corpus-added{margin:.3rem 0 0;font-size:.85rem}.answer-reveal{margin:.3rem 0 0;font-size:.9rem}.answer-solution{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:700;text-decoration:underline}.answer-add{margin-left:.5rem;font-size:.8rem}.answer-add-error{color:var(--color-danger);margin-left:.5rem;font-size:.8rem}.answer-entry{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:.5rem;display:block}.answer-meaning{margin-bottom:.4rem;display:block}.lesson-foot{margin:1.5rem 0 3rem}.progress-level{margin-bottom:1.2rem}.progress-modules{gap:.3rem;padding:0;list-style:none;display:grid}.progress-modules li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.progress-modules li span:first-child{flex:1}.review-ready{color:var(--color-primary);border:1px solid var(--color-primary);border-radius:var(--radius);padding:0 .35rem;font-size:.75rem}.learner-grades .progress-level h3{margin:0 0 .5rem;font-size:1.05rem}.grade-module{margin:0 0 .9rem}.grade-module-head{align-items:center;gap:.5rem;margin-bottom:.35rem;font-weight:600;display:flex}.grade-module-title{flex:1}.grade-lessons{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.grade-lesson{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);overflow:hidden}.grade-lesson-head{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .7rem;display:flex}.grade-lesson-title{flex:1;align-items:center;gap:.4rem;display:flex}.grade-lesson-caret{color:var(--color-muted)}.grade-blocks{padding:.3rem .7rem .7rem}.grade-block-table{border-collapse:collapse;width:100%;font-size:.9rem}.grade-block-table th,.grade-block-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.35rem .5rem}.grade-block-table th:nth-child(2),.grade-block-table td:nth-child(2),.grade-block-table th:last-child,.grade-block-table td:last-child{text-align:right;white-space:nowrap}.grade-block-table tr:not([data-graded]) td{color:var(--color-muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.word-pop{display:inline-block;position:relative}button.word{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none;border-radius:3px;padding:0 .15rem}button.word.in-corpus{background:color-mix(in srgb, var(--color-primary) 15%, transparent)}button.word.not-in-corpus{border-bottom:1px dotted var(--color-primary);border-radius:3px 3px 0 0}.popover{z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);min-width:12rem;max-width:min(18rem,100vw - 1rem);box-shadow:var(--shadow-pop);flex-direction:column;gap:.4rem;padding:.6rem;display:flex;position:absolute;top:100%;left:0}.pop-pt{font-weight:600}.pop-en{color:var(--color-muted);font-size:.9rem}.add-to-corpus{align-self:flex-start;font-size:.9rem}.pop-error,.corpus-error{color:var(--color-danger);font-size:.85rem}.status-control{gap:.25rem;display:flex}.status-control button{background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);flex:1;padding:.2rem .4rem;font-size:.8rem}.status-control button.active{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.corpus-filters{gap:1rem;margin-bottom:1rem;display:flex}.corpus-filters label{color:var(--color-muted);gap:.2rem;font-size:.85rem;display:grid}.corpus-filters input,.corpus-filters select{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;padding:.35rem}.corpus-counts{color:var(--color-muted);font-size:.9rem}.corpus-list{gap:.4rem;padding:0;list-style:none;display:grid}.corpus-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);grid-template-columns:1fr 1fr auto auto;align-items:center;gap:.75rem;padding:.5rem .7rem;display:grid}.corpus-pt{font-weight:600}.corpus-en{color:var(--color-muted)}.corpus-list:not(.readonly) .corpus-row{flex-direction:column;align-items:stretch;gap:.4rem;display:flex}.corpus-row-main{grid-template-columns:1fr auto auto;align-items:center;gap:.75rem;display:grid}.corpus-expand{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;grid-template-columns:1rem 1fr 1fr;align-items:baseline;gap:.6rem;padding:0;display:grid}.corpus-expand:before{content:"▸";color:var(--color-muted)}.corpus-expand[aria-expanded=true]:before{content:"▾"}.corpus-expand:hover .corpus-pt{text-decoration:underline}.corpus-details{border-top:1px solid var(--color-border);padding-top:.6rem}.dict-entry{gap:.6rem;display:grid}.dict-meta{flex-wrap:wrap;gap:.4rem;margin:0;display:flex}.dict-tag{text-transform:uppercase;letter-spacing:.03em;background:var(--color-bg);border:1px solid var(--color-border);color:var(--color-muted);border-radius:999px;padding:.1rem .45rem;font-size:.75rem}.dict-forms{flex-wrap:wrap;gap:.3rem 1.5rem;margin:0;display:flex}.dict-forms div{align-items:baseline;gap:.4rem;display:flex}.dict-forms dt{color:var(--color-muted);font-size:.85rem}.dict-forms dd{margin:0;font-weight:600}.dict-conj-wrap{overflow-x:auto}.dict-conj{border-collapse:collapse;font-size:.9rem}.dict-conj th,.dict-conj td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.25rem .6rem}.dict-conj thead th{color:var(--color-muted);font-weight:600}.dict-conj tbody th{color:var(--color-muted);font-weight:500}.dict-examples h4{margin:0 0 .3rem;font-size:.9rem}.dict-examples ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.dict-examples li{display:grid}.dict-ex-pt{font-weight:500}.dict-ex-en{color:var(--color-muted);font-size:.9rem}.dict-notes{margin:0;font-size:.9rem}.dict-added{margin:0;font-size:.8rem}.settings-levels{gap:.4rem;padding:0;list-style:none;display:grid}.settings-levels li{align-items:center;gap:.5rem;display:flex}.settings-levels label{align-items:center;gap:.4rem;display:flex}.wordle{text-align:center;max-width:22rem;margin:0 auto}.wordle-grid{justify-content:center;gap:.3rem;margin:1rem 0;display:grid}.wordle-row{justify-content:center;gap:.3rem;display:flex}.wordle-cell{text-transform:uppercase;border:2px solid var(--color-border);border-radius:4px;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1.4rem;font-weight:700;display:flex}.wordle-cell[data-state=correct]{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.wordle-cell[data-state=present]{color:#fff;background:#c9a227;border-color:#c9a227}.wordle-cell[data-state=absent]{background:var(--color-muted);color:#fff;border-color:var(--color-muted)}.wordle-remaining{color:var(--color-muted)}.wordle-invalid{color:var(--color-danger);margin:.4rem 0 0}.revealed{margin:.3rem 0 0}.wordle-tried{margin-top:1.5rem}.wordle-tried h2{margin:0 0 .2rem;font-size:1.05rem}.wordle-word-list{gap:.4rem;margin:.6rem 0 0;padding:0;list-style:none;display:grid}.wordle-word{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:.45rem .7rem}.wordle-word-main{align-items:baseline;gap:.75rem;display:flex}.wordle-word-toggle{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;flex:1;align-items:baseline;gap:.6rem;padding:0;display:flex}.wordle-word-toggle:disabled{cursor:default}.wordle-word-pt{font-weight:600}.wordle-word-en{color:var(--color-muted);font-size:.9rem}.wordle-word-add{flex:none;font-size:.8rem}.wordle-word-details{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:.5rem}.wordle-keyboard{gap:.3rem;margin-top:1rem;display:grid}.kb-row{justify-content:center;gap:.25rem;display:flex}.kb-key{background:var(--color-bg);min-width:1.8rem;color:var(--color-text);border:1px solid var(--color-border);border-radius:4px;padding:.6rem .4rem;font-weight:600}.kb-key.kb-wide{min-width:3.2rem;font-size:.8rem}.kb-key[data-state=correct]{background:var(--color-primary);color:#fff}.kb-key[data-state=present]{color:#fff;background:#c9a227}.kb-key[data-state=absent]{background:var(--color-muted);color:#fff}.games-grid{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.75rem;padding:0;list-style:none;display:grid}.game-card{color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.3rem;padding:1rem;text-decoration:none;display:flex}.game-card:hover{border-color:var(--color-primary)}.game-title{color:var(--color-primary);font-weight:600}.game-blurb{color:var(--color-muted);font-size:.85rem}.game-start{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.game-empty{color:var(--color-accent)}.game-score{color:var(--color-muted)}.game-items{gap:.8rem;display:grid}.game-item{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:.8rem}.game-item[data-answered]{opacity:.92}.image-options{grid-template-columns:repeat(2,1fr);gap:.5rem;padding:0;list-style:none;display:grid}.image-options button{border:2px solid var(--color-border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:0;overflow:hidden}.image-options button:hover:not(:disabled){border-color:var(--color-primary)}.image-options img{object-fit:cover;width:100%;height:8rem;display:block}.game-summary{margin-top:1rem}.game-summary p{margin:.3rem 0 .6rem}.invite-form,.redeem-form{flex-wrap:wrap;align-items:flex-end;gap:1rem;margin:1rem 0;display:flex}.invite-form label,.redeem-form label{color:var(--color-muted);gap:.2rem;font-size:.85rem;display:grid}.invite-form input,.redeem-form input{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;width:8rem;padding:.4rem}.invite-list,.educator-list{gap:.4rem;padding:0;list-style:none;display:grid}.invite-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:.75rem;padding:.5rem .7rem;display:flex}.invite-row[data-dead]{opacity:.55}.invite-code{letter-spacing:.05em;font-size:1.05rem;font-weight:600}.invite-uses{color:var(--color-muted);font-size:.9rem}.tag{text-transform:uppercase;border-radius:var(--radius);padding:.05rem .35rem;font-size:.7rem}.tag-dead{background:var(--color-accent);color:#fff}.link-button{color:var(--color-primary);cursor:pointer;font:inherit;background:0 0;border:none;padding:0}.link-button.danger{color:var(--color-accent)}.roster{border-collapse:collapse;width:100%}.roster th,.roster td{text-align:left;border-bottom:1px solid var(--color-border);padding:.5rem .6rem}.roster th{color:var(--color-muted);font-size:.85rem;font-weight:600}.access-denied{color:var(--color-accent)}.corpus-list.readonly .corpus-row{grid-template-columns:1fr 1fr auto auto}.educator-list li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:.4rem .6rem;display:flex}.my-educators{margin-top:2rem}.content-tabs{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.content-tabs a{color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius);padding:.35rem .7rem;text-decoration:none}.content-tabs a.active{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.content-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1rem;display:flex}.filters{flex-wrap:wrap;gap:.75rem;display:flex}.filters label{color:var(--color-muted);gap:.2rem;font-size:.8rem;display:grid}.filters input{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;width:8rem;padding:.35rem}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top;padding:.45rem .6rem}.admin-table th{color:var(--color-muted);font-size:.8rem}.row-actions{white-space:nowrap;gap:.6rem;display:flex}.modal-backdrop{z-index:50;background:#00000080;justify-content:center;align-items:flex-start;padding:2rem 1rem;display:flex;position:fixed;inset:0;overflow-y:auto}.modal-dialog{width:100%;max-width:40rem;margin:auto}.content-form{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);gap:.7rem;padding:1rem;display:grid;box-shadow:0 12px 40px #00000059}.content-form label,.spec-editor label,.json-field{gap:.2rem;font-size:.85rem;display:grid}.content-form input,.content-form select,.spec-editor input,.spec-editor textarea,.json-field textarea{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;padding:.4rem}.json-field textarea,.spec-editor textarea{font-family:ui-monospace,monospace}.field-error{color:var(--color-accent);font-size:.85rem}.field-label{color:var(--color-muted);font-size:.85rem}.mcq-fields{gap:.4rem;display:grid}.mcq-option-row{align-items:center;gap:.4rem;display:flex}.mcq-option-row input[type=text]{flex:1}.mcq-correct{white-space:nowrap;color:var(--color-muted);cursor:pointer;align-items:center;gap:.25rem;font-size:.8rem;display:inline-flex}.mcq-option-row:has(input[type=radio]:checked) .mcq-correct{color:var(--color-primary);font-weight:600}.form-actions{align-items:center;gap:1rem;display:flex}.spec-editor{border:1px dashed var(--color-border);border-radius:var(--radius);gap:.6rem;padding:.6rem;display:grid}.wordle-columns{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;display:grid}.wordle-word-list{gap:.4rem;padding:0;list-style:none;display:grid}.wordle-word-list li{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.dw-folded{letter-spacing:.05em;font-weight:600}.dw-word{color:var(--color-muted)}.dw-actions{align-items:center;gap:.3rem;margin-left:auto;display:flex}.dw-actions input[type=date]{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;padding:.25rem}.attach-panel{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);gap:.6rem;margin:1rem 0;padding:.75rem;display:grid}.attach-panel-title{align-items:center;gap:.6rem;margin:0;font-size:1rem;display:flex}.attach-panel-actions{align-items:center;gap:.75rem;display:flex}.corpus-picked{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);justify-content:space-between;align-items:center;gap:.6rem;padding:.4rem .6rem;display:flex}.corpus-results [role=option]{cursor:pointer}.corpus-result.active{background:var(--color-bg)}.asset-thumb{object-fit:cover;border-radius:4px;width:3rem;height:3rem}.asset-list{gap:.8rem;margin:0;padding:0;list-style:none;display:grid}.asset-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);gap:.9rem;padding:.8rem;display:flex}.asset-card-thumb{object-fit:cover;border-radius:var(--radius);background:var(--color-bg);flex-shrink:0;width:6rem;height:6rem}.asset-card-body{flex:1;gap:.5rem;min-width:0;display:grid}.asset-card-head{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.asset-card-name{overflow-wrap:anywhere;font-weight:600}.asset-caption{gap:.2rem;font-size:.85rem;display:grid}.asset-caption input{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;background:var(--color-surface);color:var(--color-text);padding:.4rem}.asset-attachments{gap:.3rem;display:grid}.attachment-list{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.attachment-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;display:flex}.asset-card-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.link-button.active{color:var(--color-text);font-weight:600}.modal-dialog.wizard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);max-width:56rem;max-height:calc(100vh - 4rem);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;overflow:hidden}.wizard-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:.9rem 1.1rem;display:flex}.wizard-head h2{margin:0;font-size:1.05rem}.wizard-steps{border-bottom:1px solid var(--color-border);background:var(--color-bg);flex-wrap:wrap;gap:.3rem;padding:.7rem 1.1rem;display:flex}.wizard-step{color:var(--color-muted);cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.35rem .7rem;font-size:.85rem;display:inline-flex}.wizard-step.active{color:var(--color-text);border-color:var(--color-border);background:var(--color-surface);font-weight:600}.wizard-step-no{background:var(--color-border);width:1.3rem;height:1.3rem;color:var(--color-text);border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.wizard-step.active .wizard-step-no{background:var(--color-primary);color:var(--color-primary-contrast)}.wizard-body{flex:1;padding:1.1rem;overflow-y:auto}.wizard-error{margin:0 1.1rem}.wizard-foot{border-top:1px solid var(--color-border);background:var(--color-bg);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.1rem;display:flex}.wizard-foot-left,.wizard-foot-right{align-items:center;gap:.8rem;display:flex}.saved-note{color:var(--color-primary);font-size:.85rem}.wizard-grid{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.8rem;display:grid}.wizard-grid label,.wizard-list label,.exercise-meta label{gap:.2rem;font-size:.85rem;display:grid}.wizard-grid input,.wizard-grid select,.wizard-list input,.wizard-list select,.wizard-list textarea,.exercise-meta select{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;background:var(--color-surface);color:var(--color-text);padding:.4rem}.wizard-span{grid-column:1/-1;gap:.3rem;display:grid}.checkbox-row{align-items:start;gap:.5rem;font-size:.9rem;display:flex}.wizard-list{gap:.9rem;display:grid}.list-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);gap:.6rem;padding:.8rem;display:grid}.list-card-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.row-controls{white-space:nowrap;gap:.4rem;display:flex}.content-step{gap:.9rem;display:grid}.editing-lang{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lang-chip{cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:inherit;border-radius:999px;padding:.15rem .6rem;font-size:.8rem}.lang-chip.active{background:var(--color-primary);color:var(--color-primary-contrast);border-color:var(--color-primary)}.editing-lang-hint{flex:1;min-width:12rem;font-size:.8rem}.block-list{counter-reset:block;gap:.9rem;margin:0;padding:0;list-style:none;display:grid}.block-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);gap:.6rem;padding:.8rem;display:grid}.block-card-head{align-items:center;gap:.6rem;display:flex}.block-handle{cursor:grab;color:var(--color-muted);background:0 0;border:none;padding:0 .2rem;font-size:1.1rem;line-height:1}.block-number{background:var(--color-primary);min-width:1.5rem;height:1.5rem;color:var(--color-primary-contrast);border-radius:999px;justify-content:center;align-items:center;padding:0 .35rem;font-size:.8rem;font-weight:600;display:inline-flex}.block-kind{text-transform:capitalize}.lang-fallback{letter-spacing:.04em;text-transform:uppercase;color:var(--color-muted);border:1px solid var(--color-border);vertical-align:middle;border-radius:999px;margin-left:.4rem;padding:.05rem .35rem;font-size:.6rem;font-weight:600}.block-card-head .row-controls{margin-left:auto}.block-card-foot{border-top:1px dashed var(--color-border);flex-wrap:wrap;align-items:center;gap:1rem;padding-top:.6rem;display:flex}.block-weight{align-items:center;gap:.4rem;display:inline-flex}.block-weight input{width:4.5rem}.block-practice{align-items:center;gap:.4rem;display:inline-flex}.block-card-foot>button:last-child{margin-left:auto}.block-add{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.material-editor,.vocab-block-editor,.dialogue-editor,.exercise-block-editor{gap:.5rem;display:grid}.material-editor label,.dialogue-editor label,.exercise-block-meta label{gap:.25rem;display:grid}.exercise-block-meta{flex-wrap:wrap;gap:1rem;display:flex}.dialogue-line-row{align-items:center;gap:.4rem;display:flex}.dialogue-line-row input{flex:1;min-width:5rem}.string-list{gap:.4rem;display:grid}.string-row{align-items:center;gap:.4rem;display:flex}.string-row input{flex:1}.section-body{gap:.3rem;display:grid}.section-body-tabs{gap:.8rem;display:flex}.markdown-input{resize:vertical;width:100%;font-family:ui-monospace,monospace}.section-preview{border:1px dashed var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:.6rem .8rem}.vocab-editor{gap:.4rem;display:grid}.vocab-editor-head,.vocab-editor-row{grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:.5rem;display:grid}.vocab-editor-head{color:var(--color-muted);font-size:.75rem}.vocab-term{align-items:center;gap:.4rem;font-weight:600;display:inline-flex}.corpus-search{gap:.4rem;display:grid}.corpus-search-input{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;background:var(--color-surface);color:var(--color-text);padding:.5rem}.corpus-results{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);gap:.2rem;max-height:15rem;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.corpus-results>li,.corpus-results>div{padding:.4rem .6rem}.corpus-result{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.corpus-result:hover{background:var(--color-bg)}.corpus-result-text{flex-wrap:wrap;align-items:center;gap:.4rem;min-width:0;display:flex}.dialogue-editor{gap:.5rem;display:grid}.dialogue-editor-row{grid-template-columns:8rem 1fr auto;align-items:start;gap:.5rem;display:grid}.dialogue-editor-text{gap:.3rem;display:grid}.prompt-field{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.pairs-fields,.ordering-fields{gap:.4rem;display:grid}.pair-row{grid-template-columns:1fr auto 1fr auto;align-items:center;gap:.5rem;display:grid}.ordering-row{grid-template-columns:1fr auto;align-items:center;gap:.5rem;display:grid}.add-exercise{align-items:center;gap:.6rem;display:flex}.exercise-summary{text-align:left;flex:1;align-items:center;gap:.5rem;min-width:0;display:flex}.exercise-prompt{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.exercise-meta{flex-wrap:wrap;gap:.8rem;display:flex}.exercise-body{gap:.7rem;display:grid}.chip{background:var(--color-primary);color:var(--color-primary-contrast);text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;display:inline-block}.chip.subtle{background:var(--color-border);color:var(--color-text)}.games-picker{gap:.6rem;display:grid}.game-option{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);cursor:pointer;align-items:start;gap:.6rem;padding:.7rem;display:flex}.game-option-body{gap:.2rem;font-size:.9rem;display:grid}.wizard-review{gap:.8rem;display:grid}.review-grid{grid-template-columns:auto 1fr;gap:.4rem 1rem;margin:0;display:grid}.review-grid dt{color:var(--color-muted);font-size:.85rem}.review-grid dd{margin:0}.lang-switch{border:1px solid var(--color-border);border-radius:999px;display:inline-flex;overflow:hidden}.lang-option{color:var(--color-muted);cursor:pointer;font:inherit;background:0 0;border:none;padding:.2rem .6rem;font-size:.8rem}.lang-option.active{background:var(--color-primary);color:var(--color-primary-contrast);font-weight:600}.range-slider{gap:.3rem;display:grid}.range-slider .range-readout{font-size:.9rem;font-weight:600}.range-slider input[type=range]{width:100%;accent-color:var(--color-primary)}.md-field{gap:.3rem;display:grid}.md-toolbar{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.3rem .4rem;display:flex}.md-toolbar-spacer{flex:1}.md-hint{margin:0;font-size:.8rem}.md-image{border-radius:var(--radius);max-width:100%;height:auto}.md-preview,.note-read-body{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);min-height:6rem;padding:.6rem .8rem}.notes-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.notes-toolbar{flex-wrap:wrap;align-items:center;gap:.8rem;margin:.8rem 0;display:flex}.notes-search{border:1px solid var(--color-border);border-radius:var(--radius);min-width:12rem;font:inherit;background:var(--color-surface);color:var(--color-text);flex:1;padding:.5rem}.notes-scope{gap:.2rem;display:flex}.scope-tab{border:1px solid var(--color-border);color:var(--color-muted);cursor:pointer;font:inherit;background:0 0;border-radius:999px;padding:.35rem .7rem;font-size:.85rem}.scope-tab.active{color:var(--color-text);background:var(--color-surface);font-weight:600}.notes-list{gap:.6rem;margin:0;padding:0;list-style:none;display:grid}.note-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);align-items:stretch;gap:.4rem;display:flex}.note-card-open{text-align:left;cursor:pointer;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;gap:.3rem;padding:.7rem .9rem;display:grid}.note-card-open:hover{background:var(--color-bg)}.note-card-title{font-weight:600}.note-card-snippet{font-size:.85rem}.note-card-meta{flex-wrap:wrap;align-items:center;gap:.6rem;font-size:.8rem;display:flex}.note-card-delete{padding:0 .7rem}.note-dialog{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);max-height:calc(100vh - 4rem);box-shadow:var(--shadow-pop);flex-direction:column;display:flex;overflow:hidden}.note-form,.note-read{gap:.7rem;padding:1rem;display:grid;overflow-y:auto}.note-read-head{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.note-read-head h2{margin:0}.note-title-input{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;background:var(--color-surface);color:var(--color-text);flex:1;padding:.5rem;font-size:1.05rem;font-weight:600}.note-form-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.note-visibility{gap:.2rem;font-size:.85rem;display:grid}.note-visibility select{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;background:var(--color-surface);color:var(--color-text);padding:.4rem}.note-form-actions{align-items:center;gap:.8rem;display:flex}.topic-tree h1{margin-bottom:.2rem}.tree-level{margin:1.2rem 0}.tree-level-head{border-bottom:2px solid var(--color-border);align-items:center;gap:.6rem;margin-bottom:.5rem;padding:.4rem 0;display:flex}.tree-topic{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);margin:.4rem 0 .4rem .5rem}.tree-topic-head{align-items:center;gap:.5rem;padding:.5rem .6rem;display:flex}.tree-topic-title{font-weight:600}.tree-topic-count{font-size:.8rem}.tree-spacer{flex:1}.tree-handle{cursor:grab;color:var(--color-muted);background:0 0;border:none;padding:0 .2rem;font-size:1.1rem;line-height:1}.tree-collapse{color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:0 .2rem;font-size:.9rem}.tree-lessons{gap:.25rem;min-height:1.5rem;margin:0;padding:.2rem .6rem .5rem 1.6rem;list-style:none;display:grid}.tree-lesson{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);align-items:center;gap:.5rem;padding:.3rem .4rem;display:flex}.tree-lesson-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tree-empty{padding:.2rem 0;font-size:.85rem}.tree-rename{border:1px solid var(--color-border);border-radius:var(--radius);font:inherit;padding:.25rem .4rem}
