:root{--ink: #17211b;--muted: #5c6b62;--paper: #f4efe4;--card: #fffdf8;--line: #e4d8c4;--pine: #1b4d3e;--pine-2: #0f3329;--moss: #3d7a5f;--clay: #c45c26;--gold: #d9a441;--good: #2f7d4a;--warn: #c47a14;--bad: #b33a2b;--shadow: 0 10px 30px rgba(23, 33, 27, .08)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:IBM Plex Sans,sans-serif}button,input{font:inherit}a{color:inherit}.de{font-family:IBM Plex Sans,Fraunces,sans-serif;direction:ltr;unicode-bidi:isolate}.de-display{font-family:Fraunces,Georgia,serif;direction:ltr;unicode-bidi:isolate}.app-shell{max-width:480px;margin:0 auto;min-height:100dvh;padding-bottom:92px}.studio-shell{max-width:1100px;margin:0 auto;padding:24px 20px 64px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:18px 18px 8px}.brand{font-weight:700;letter-spacing:-.03em}.brand span{color:var(--clay)}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.hero{margin:8px 16px 16px;padding:22px;background:linear-gradient(160deg,var(--brand) 0%,var(--brand-2) 70%,var(--brand-2) 100%);color:var(--brand-ink);border-radius:28px}.hero h1{margin:8px 0 4px;font-size:1.7rem;font-weight:700}.hero p{margin:0;opacity:.82}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:color-mix(in srgb,var(--brand-ink) 12%,transparent);border-radius:16px;padding:12px}.stat b{display:block;font-size:1.4rem}.section{padding:0 16px 16px}.section h2{font-size:1.05rem;margin:18px 4px 10px}.activity{display:flex;gap:12px;align-items:center;padding:14px;margin-bottom:10px}.activity .count{width:44px;height:44px;border-radius:14px;background:var(--surface-3);display:grid;place-items:center;font-weight:700;color:var(--pine)}.primary{width:calc(100% - 32px);margin:6px 16px 18px;background:var(--clay);color:#fff;border:0;border-radius:18px;padding:16px;font-weight:700;font-size:1.05rem}.ghost,.chip,.nav-item,.opt{border:1px solid var(--line);background:var(--card)}.nav{position:fixed;bottom:0;inset-inline:0;margin-inline:auto;max-width:480px;display:grid;grid-template-columns:repeat(5,1fr);background:color-mix(in srgb,var(--surface-1) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:8px 4px calc(8px + env(safe-area-inset-bottom))}.nav a{text-decoration:none;text-align:center;font-size:.72rem;color:var(--muted);padding:6px 0}.nav a.active{color:var(--pine);font-weight:700}.nav .ico{display:block;font-size:1.15rem;margin-bottom:2px}.lesson-row,.skill-row{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;margin-bottom:8px}.badge{font-size:.75rem;padding:4px 8px;border-radius:999px;background:var(--surface-3)}.badge.done{background:var(--ok-soft);color:var(--good)}.badge.current{background:var(--accent-soft);color:var(--clay)}.badge.lock{background:var(--surface-3);color:var(--ink-3)}.bar{height:8px;background:var(--surface-3);border-radius:99px;overflow:hidden;width:88px}.bar>i{display:block;height:100%;background:var(--moss)}.bar.weak>i{background:var(--bad)}.bar.mid>i{background:var(--warn)}.login{min-height:100dvh;display:grid;place-items:center;padding:24px}.login .card{width:min(420px,100%);padding:28px}.login h1{margin:8px 0 4px}label{display:block;margin:12px 0 6px;font-size:.9rem;color:var(--muted)}input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--surface-1)}.err{color:var(--bad);font-size:.9rem}.demo{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.demo button{border-radius:999px;padding:8px 12px;cursor:pointer}.exercise-card{margin:16px}.prompt{font-size:1.25rem;margin:8px 0 16px}.opt{display:block;width:100%;text-align:left;padding:14px;border-radius:14px;margin-bottom:8px;cursor:pointer}.opt.ltr{text-align:left}.opt.pick{border-color:var(--pine);background:var(--brand-soft)}.opt.good{border-color:var(--good);background:var(--ok-soft)}.opt.bad{border-color:var(--bad);background:var(--danger-soft)}.feedback{margin-top:12px;padding:14px;border-radius:16px;background:var(--surface-2)}.tokens{display:flex;flex-wrap:wrap;gap:8px;direction:ltr}.tokens button{padding:8px 12px;border-radius:12px;cursor:pointer}.heatmap{width:100%;border-collapse:collapse;font-size:.9rem}.heatmap th,.heatmap td{padding:8px;border-bottom:1px solid var(--line);text-align:center}.dot{display:inline-block;min-width:42px;padding:4px 6px;border-radius:8px;color:var(--surface-1)}.dot.g{background:var(--good)}.dot.m{background:var(--warn)}.dot.b{background:var(--bad)}.dot.z{background:var(--ink-3)}.studio-nav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.studio-nav a{text-decoration:none;padding:8px 14px;border-radius:999px;background:var(--surface-1);border:1px solid var(--line)}.studio-nav a.active{background:var(--pine);color:var(--surface-1);border-color:var(--pine)}@media(min-width:900px){.app-shell.student,.nav{max-width:680px}}:root{--radius: 18px}[dir=rtl] body{text-align:right}.de,.ar{text-align:start}.ar{direction:rtl;unicode-bidi:isolate}.small{font-size:.85rem}.muted{color:var(--muted)}.ok{color:var(--good)}.row-between{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.list-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.plain-list{list-style:none;padding:0;margin:8px 0}.plain-list li{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.plain-list li:last-child{border-bottom:0}.link{background:none;border:0;color:var(--pine);font-weight:600;cursor:pointer;padding:0}button{cursor:pointer}.primary.secondary{background:var(--pine)}.danger{background:var(--bad);color:var(--surface-1);border-color:var(--bad)}.ghost{border-radius:12px;padding:10px 14px}.ghost.small,.primary.small,.danger.small{padding:6px 10px;font-size:.85rem;border-radius:10px;width:auto;margin:0}.chip{border-radius:999px;padding:6px 12px;font-size:.8rem;display:inline-flex;gap:6px;align-items:center}.chip.on{background:var(--pine);color:var(--surface-1);border-color:var(--pine)}.chip.warn{background:var(--danger-soft);color:var(--bad);border-color:var(--danger)}.chip.draft{background:var(--surface-3)}.chip.published,.chip.done{background:var(--ok-soft);color:var(--good)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.tabs{display:flex;gap:8px;margin:10px 0 16px;flex-wrap:wrap}.tabs button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:8px 14px}.tabs button.active{background:var(--pine);color:var(--surface-1);border-color:var(--pine)}textarea{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--surface-1);font:inherit}select{padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-1);font:inherit}.search{margin-bottom:14px}.blocks{display:flex;flex-direction:column;gap:14px}.block{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.block-divider,.block-heading{background:none;border:0;padding:0}.block-heading{display:flex;flex-direction:column;gap:2px;margin:6px 0}.prose .de{line-height:1.7;white-space:pre-wrap}.prose .ar{line-height:1.9;color:var(--muted);white-space:pre-wrap;margin-top:6px}.box-note{background:var(--surface-2)}.box-tip{background:var(--ok-soft)}.box-warning{background:var(--danger-soft)}.rich h4,.rich h5{margin:12px 0 4px}.rich .exbox,.rich .notebox{background:var(--surface-2);padding:10px 12px;border-radius:12px;margin:8px 0}.rich .ar{display:block;color:var(--muted)}.rich table{width:100%;border-collapse:collapse}.rich td,.rich th{border:1px solid var(--line);padding:6px 8px}.grammar-note{padding:0}.grammar-head{width:100%;display:flex;gap:10px;align-items:center;justify-content:space-between;background:none;border:0;font:inherit;font-weight:700;text-align:inherit;padding:4px 0}.grammar-body{margin-top:10px}.examples{list-style:none;padding:0}.examples li{padding:8px 0;border-top:1px dashed var(--line)}.examples .ar{color:var(--muted)}.reading .glossary{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0;font-size:.9rem}.reading-questions{padding-inline-start:18px}.options{display:flex;flex-direction:column;gap:8px;margin:10px 0}.option{border:1px solid var(--line);background:var(--surface-1);border-radius:14px;padding:12px 14px;text-align:start;font:inherit}.option.chosen{border-color:var(--pine);background:var(--brand-soft)}.option.right{border-color:var(--good);background:var(--ok-soft)}.option.wrong{border-color:var(--bad);background:var(--danger-soft)}.dialogue-lines{list-style:none;padding:0;display:flex;flex-direction:column;gap:10px}.dialogue-lines li{border-inline-start:3px solid var(--line);padding-inline-start:10px}.dialogue-lines .speaker{color:var(--pine);font-size:.85rem}.file-block{display:inline-block;padding:10px 14px;border-radius:12px;background:var(--surface-2);text-decoration:none}.divider{border:0;border-top:1px dashed var(--line)}.block-unknown{background:var(--surface-2)}.hint-line{color:var(--muted);font-size:.85rem}.word-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.word-card{position:relative;border:1px solid var(--line);background:var(--surface-1);border-radius:16px;padding:10px;text-align:center;font:inherit;overflow:hidden}.word-card img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;margin-bottom:6px}.word-front{font-weight:600}.word-back{margin-top:6px}.word-audio{position:absolute;inset-inline-end:8px;top:8px}.word-list{list-style:none;padding:0}.word-list li{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line)}.vocab-card{display:flex;flex-direction:column;align-items:center;gap:6px}.vocab-image{width:min(260px,70%);aspect-ratio:1;object-fit:cover;border-radius:18px}.lookup-word{cursor:pointer;border-bottom:1px dotted transparent}.lookup-word:hover{border-bottom-color:var(--moss)}.lookup-pop{position:fixed;inset-inline:12px;bottom:90px;z-index:30;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:var(--shadow);display:flex;gap:10px;align-items:baseline}.video-facade,.video-wrap{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:var(--ink);border:0;padding:0;display:block}.video-facade img{width:100%;height:100%;object-fit:cover;opacity:.85}.video-facade-blank{width:100%;height:100%;background:linear-gradient(150deg,var(--brand),var(--brand-2))}.video-play{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:64px;height:64px;border-radius:50%;background:color-mix(in srgb,var(--surface-1) 92%,transparent);color:var(--brand);display:grid;place-items:center;font-size:24px}.video-title,.video-resume{position:absolute;inset-inline-start:12px;color:var(--surface-1);font-size:.85rem;text-shadow:0 1px 4px rgba(0,0,0,.6)}.video-title{top:10px}.video-resume{bottom:10px}.video-wrap iframe,.video-wrap video{width:100%;height:100%;border:0;display:block}.video-speed{position:absolute;bottom:8px;inset-inline-end:8px;display:flex;gap:4px}.video-speed button{border:0;background:color-mix(in srgb,var(--surface-1) 85%,transparent);color:var(--ink);border-radius:8px;padding:2px 8px;font-size:.8rem}.video-speed button.active{background:var(--pine);color:var(--surface-1)}.video-empty{padding:20px;background:var(--surface-2);border-radius:16px;color:var(--muted)}.meet-frame{width:100%;height:420px;border:0;border-radius:16px;margin-top:12px}.audio-player{background:var(--surface-2);border-radius:16px;padding:12px}.audio-row{display:flex;align-items:center;gap:10px}.audio-main{width:44px;height:44px;border-radius:50%;border:0;background:var(--pine);color:var(--surface-1);font-size:16px}.audio-bar{flex:1;min-width:0;height:44px;margin:0;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;cursor:pointer}.audio-bar::-webkit-slider-runnable-track{height:8px;border-radius:99px;background:linear-gradient(to var(--played-dir, right),var(--moss) var(--played, 0%),var(--line) 0)}.audio-bar::-moz-range-track{height:8px;border-radius:99px;background:var(--line)}.audio-bar::-moz-range-progress{height:8px;border-radius:99px;background:var(--moss)}.audio-bar::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;margin-top:-5px;border-radius:50%;background:var(--pine);border:2px solid var(--card)}.audio-bar::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--pine);border:2px solid var(--card)}[dir=rtl] .audio-bar{--played-dir: left}.audio-time{font-variant-numeric:tabular-nums;font-size:.8rem;color:var(--muted)}.audio-tools{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.audio-tools button{border:1px solid var(--line);background:var(--surface-1);border-radius:10px;padding:4px 10px;font-size:.8rem}.audio-tools button.active{background:var(--pine);color:var(--surface-1);border-color:var(--pine)}.audio-chip{border:1px solid var(--line);background:var(--surface-1);border-radius:999px;padding:4px 10px}.transcript{margin-top:8px}.block-image img,.gallery img{width:100%;border-radius:14px;display:block}.block-image figcaption,.gallery figcaption{color:var(--muted);font-size:.85rem;margin-top:6px}.gallery{display:grid;grid-template-columns:repeat(var(--cols, 3),1fr);gap:8px}.gallery figure{margin:0}.runner{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.runner-top{display:flex;justify-content:space-between;color:var(--muted);font-size:.85rem}.runner-prompt{font-size:1.15rem;margin:10px 0}.answer-input{margin:8px 0}.runner-result{border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:4px;margin:10px 0}.runner-result.right{background:var(--ok-soft)}.runner-result.wrong{background:var(--danger-soft)}.runner-actions{display:flex;gap:8px;justify-content:flex-end}.runner-actions .primary{width:auto;margin:0;padding:12px 20px}.reorder-line,.reorder-pool{display:flex;flex-wrap:wrap;gap:6px;min-height:44px}.reorder-line{border-bottom:2px dashed var(--line);padding-bottom:8px;margin-bottom:8px}.token{border:1px solid var(--line);background:var(--surface-1);border-radius:10px;padding:8px 12px}.match-row{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:6px 0}.quiz-item{padding:10px 0;border-bottom:1px solid var(--line)}.quiz-score{font-weight:700}.runner-done{text-align:center}.record-preview{width:100%;margin-top:10px}.checklist{color:var(--muted)}.feedback-box{background:var(--surface-2);border-radius:14px;padding:12px;margin-top:10px}.studio-shell{max-width:1240px}.studio-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.studio-top .brand small{color:var(--muted);font-weight:500}.studio-tools{margin-inline-start:auto;display:flex;gap:8px}.studio-title{font-size:1.5rem;margin:6px 0 16px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:18px}.tile{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;text-decoration:none;color:inherit;display:block}.tile b{display:block;font-size:1.6rem}.tile span{color:var(--muted);font-size:.85rem}.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.group-card{background:var(--card);border:1px solid var(--line);border-top:4px solid var(--pine);border-radius:16px;padding:14px}.group-card h3{margin:0 0 4px}.group-card a{text-decoration:none}.bars{margin:10px 0;display:flex;flex-direction:column;gap:6px}.bar-row{display:flex;gap:8px;align-items:center;font-size:.85rem}.bar-row .bar{flex:1;width:auto}.bar span{display:block;height:100%;background:var(--moss)}.form-card{margin-bottom:16px}.form-card .primary,.card .primary{width:auto;margin:8px 0 0;padding:12px 18px}.course-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:14px}.unit,.unit-block{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.unit-head{width:100%;display:flex;justify-content:space-between;background:none;border:0;font:inherit;font-weight:600;padding:8px 0;text-align:inherit}.lesson-rows{list-style:none;padding:0;margin:0}.lesson-rows li{display:flex;gap:10px;align-items:center;padding:8px 0;border-top:1px dashed var(--line)}.lesson-rows a{text-decoration:none;flex:1}.editor-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.editor-title{flex:1;min-width:220px;font-size:1.1rem;font-weight:600}.editor-bar .primary{width:auto;margin:0;padding:10px 16px}.save-state{font-size:.85rem;color:var(--muted)}.save-state.saved{color:var(--good)}.save-state.error,.save-state.conflict{color:var(--bad)}.editor-grid{display:grid;grid-template-columns:260px minmax(0,1fr) 360px;gap:16px;align-items:start}.editor-blocks,.editor-form,.editor-preview{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px}.block-row{display:flex;gap:8px;align-items:center;padding:8px;border-radius:12px;cursor:grab}.block-row.active{background:var(--brand-soft)}.block-row .grip{color:var(--muted)}.block-row .block-kind{font-size:.8rem;color:var(--muted)}.block-row .block-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.palette h4{margin:8px 0 4px;font-size:.8rem;color:var(--muted)}.palette-items{display:flex;flex-wrap:wrap;gap:6px}.palette-items button{border:1px solid var(--line);background:var(--surface-1);border-radius:10px;padding:6px 10px;font-size:.85rem}.field{display:block;margin:10px 0}.field-label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:4px}.field-help{color:var(--muted);font-size:.8rem}.field-error{color:var(--bad);font-size:.85rem}.list-widget{display:flex;flex-direction:column;gap:6px}.list-widget .list-row input{flex:1}.question-card{border:1px solid var(--line);border-radius:12px;padding:10px}.question-card button.correct{background:var(--good);color:var(--surface-1);border-color:var(--good)}.switch{width:46px;height:26px;border-radius:999px;border:1px solid var(--line);background:var(--surface-3);position:relative}.switch span{position:absolute;top:2px;inset-inline-start:2px;width:20px;height:20px;border-radius:50%;background:var(--surface-1);transition:.15s}.switch.on{background:var(--moss)}.switch.on span{inset-inline-start:22px}.phone{border:10px solid var(--ink);border-radius:32px;height:640px;overflow:hidden;background:var(--paper)}.phone-inner{height:100%;overflow-y:auto;padding:14px}.media-picker{display:flex;flex-direction:column;gap:6px}.media-current img{max-width:120px;border-radius:10px}.upload-bar{height:6px;background:var(--line);border-radius:99px;overflow:hidden}.upload-bar span{display:block;height:100%;background:var(--moss)}.picker-sheet{border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--surface-1)}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;max-height:260px;overflow:auto}.picker-item{border:1px solid var(--line);border-radius:10px;padding:4px;background:var(--surface-1)}.picker-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}.picker .results{display:flex;flex-direction:column;gap:4px;max-height:220px;overflow:auto}.picker .result{text-align:start;border:1px solid var(--line);background:var(--surface-1);border-radius:10px;padding:6px 10px;font-size:.9rem}.picker .result.active{border-color:var(--pine);background:var(--brand-soft)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 40%,transparent);display:grid;place-items:center;padding:16px;z-index:40}.sheet-card{background:var(--card);border-radius:20px;padding:20px;width:min(720px,100%);max-height:86vh;overflow:auto;display:flex;flex-direction:column;gap:10px}.preview-table,.report-table{width:100%;border-collapse:collapse;font-size:.9rem}.preview-table th,.preview-table td,.report-table th,.report-table td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:start}.preview-table tr.warn{background:var(--danger-soft)}.draft-list{list-style:none;padding:0;max-height:260px;overflow:auto}.draft-list li{display:flex;gap:8px;align-items:baseline;padding:6px 0;border-bottom:1px dashed var(--line)}.version-list{list-style:none;padding:0}.version-list li{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.chat-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:16px}.thread-list{display:flex;flex-direction:column;gap:6px;max-height:70vh;overflow:auto}.thread{text-align:start;border:1px solid var(--line);background:var(--surface-1);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:2px}.thread.active{border-color:var(--pine);background:var(--brand-soft)}.chat-panel{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px}.chat-messages{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto}.bubble{background:var(--surface-2);border-radius:14px;padding:10px 12px;max-width:80%}.bubble.mine{background:var(--ok-soft);margin-inline-start:auto}.bubble small{color:var(--muted);font-size:.72rem}.bubble p{margin:0 0 4px}.lesson-footer{display:flex;flex-direction:column;gap:8px}.lesson-footer .primary{width:100%;margin:0}@media(max-width:1000px){.editor-grid{grid-template-columns:1fr}.editor-preview{display:none}.chat-grid{grid-template-columns:1fr}}.ghost.danger{color:var(--bad);border-color:var(--danger);background:var(--card)}.ghost.danger:hover{background:var(--danger-soft)}.armed,.ghost.danger.armed{background:var(--bad);color:var(--surface-1);border-color:var(--bad)}.thumb{width:34px;height:34px;object-fit:cover;border-radius:8px}.plain-list li input[type=checkbox]{width:auto;margin:0}@media(max-width:620px){.studio-shell{padding:14px 12px 40px}.studio-top{gap:8px;align-items:flex-start}.studio-nav{order:3;width:100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px;margin-bottom:4px}.studio-nav::-webkit-scrollbar{display:none}.studio-nav a{white-space:nowrap;padding:7px 12px;font-size:.9rem}.studio-tools{margin-inline-start:auto}.studio-title{font-size:1.25rem;margin:4px 0 12px}.tiles{grid-template-columns:repeat(2,1fr)}.plain-list li{padding:10px 4px}.sheet-card{padding:16px}.phone{display:none}}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px)}.app-shell{padding-top:var(--safe-top);padding-bottom:calc(92px + var(--safe-bottom));padding-inline-start:var(--safe-left);padding-inline-end:var(--safe-right)}.studio-shell{padding-top:calc(24px + var(--safe-top));padding-inline-start:calc(20px + var(--safe-left));padding-inline-end:calc(20px + var(--safe-right))}.sheet{padding-top:calc(16px + var(--safe-top));padding-bottom:calc(16px + var(--safe-bottom))}.lookup-pop{bottom:calc(90px + var(--safe-bottom))}.app-shell:before{content:"";position:fixed;inset-block-start:0;inset-inline:0;height:var(--safe-top);background:var(--paper);z-index:20;pointer-events:none}@media(max-width:620px){.studio-shell{padding-top:calc(14px + var(--safe-top));padding-inline-start:calc(12px + var(--safe-left));padding-inline-end:calc(12px + var(--safe-right))}}.nav{padding-bottom:calc(8px + var(--safe-bottom));padding-inline-start:calc(4px + var(--safe-left));padding-inline-end:calc(4px + var(--safe-right))}@media(pointer:coarse),(max-width:760px){.ghost,.chip,.opt,.option,.token,.tabs button,.studio-nav a{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.chip{padding:0 14px}.ghost.small,.primary.small,.danger.small{min-height:44px;padding:0 14px;font-size:.9rem}input,select,textarea{font-size:16px;min-height:46px}.audio-tools button,.video-speed button,.palette-items button{min-height:40px;padding:0 12px}.word-audio .audio-chip{min-height:40px;min-width:40px}}:root{--bg: #f4efe4;--surface-1: #fffdf8;--surface-2: #f7f1e4;--surface-3: #efe6d4;--line: #e4d8c4;--line-strong: #cfc0a6;--ink: #17211b;--ink-2: #3c4a42;--ink-3: #5c6b62;--brand: #1b4d3e;--brand-2: #2a6b54;--brand-ink: #f8f3e8;--brand-soft: #e6efe9;--accent: #b04d1c;--accent-ink: #fffaf6;--accent-soft: #f7e4d7;--ok: #266b3d;--ok-soft: #dfefe4;--ok-ink: #f4fbf6;--warn: #8a5606;--warn-soft: #f7e9cf;--warn-ink: #1f1503;--danger: #a5301f;--danger-soft: #f8ded9;--danger-ink: #fff6f4;--info: #1a5f80;--info-soft: #dcecf4;--info-ink: #f4fafd;--shadow-1: 0 1px 2px rgba(23, 33, 27, .06);--shadow-2: 0 10px 30px -18px rgba(23, 33, 27, .5);--shadow-3: 0 24px 60px -28px rgba(23, 33, 27, .55);--ring: 0 0 0 3px color-mix(in srgb, var(--brand) 25%, transparent);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--radius-full: 999px;--font-ui: "IBM Plex Sans Arabic", "Segoe UI", system-ui, sans-serif;--font-display: Fraunces, Georgia, serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 15px;--text-md: 17px;--text-lg: 20px;--text-xl: 26px;--text-2xl: 34px;--motion-fast: .12s;--motion: .18s;--motion-slow: .24s;--ease: cubic-bezier(.2, .7, .3, 1);--paper: var(--bg);--card: var(--surface-1);--muted: var(--ink-3);--pine: var(--brand);--pine-2: var(--brand);--moss: var(--brand-2);--clay: var(--accent);--gold: var(--warn);--good: var(--ok);--bad: var(--danger);--shadow: var(--shadow-2)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #10160f;--surface-1: #18211a;--surface-2: #1e2a21;--surface-3: #26332a;--line: #2c3b2f;--line-strong: #3d5142;--ink: #e9efe7;--ink-2: #c2cec3;--ink-3: #92a197;--brand: #6fc0a0;--brand-2: #8ad3b6;--brand-ink: #0e1710;--brand-soft: #172b21;--accent: #e28450;--accent-ink: #21110a;--accent-soft: #33210f;--ok: #7ecfa1;--ok-soft: #16301f;--ok-ink: #0d2113;--warn: #e0ac5c;--warn-soft: #33270f;--warn-ink: #241a06;--danger: #ee9184;--danger-soft: #341a16;--danger-ink: #2b110c;--info: #6bb3d6;--info-soft: #12252f;--info-ink: #0b1b23;--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 12px 30px -18px rgba(0, 0, 0, .9);--shadow-3: 0 26px 60px -28px rgba(0, 0, 0, .95)}}:root[data-theme=dark]{--bg: #10160f;--surface-1: #18211a;--surface-2: #1e2a21;--surface-3: #26332a;--line: #2c3b2f;--line-strong: #3d5142;--ink: #e9efe7;--ink-2: #c2cec3;--ink-3: #92a197;--brand: #6fc0a0;--brand-2: #8ad3b6;--brand-ink: #0e1710;--brand-soft: #172b21;--accent: #e28450;--accent-ink: #21110a;--accent-soft: #33210f;--ok: #7ecfa1;--ok-soft: #16301f;--ok-ink: #0d2113;--warn: #e0ac5c;--warn-soft: #33270f;--warn-ink: #241a06;--danger: #ee9184;--danger-soft: #341a16;--danger-ink: #2b110c;--info: #6bb3d6;--info-soft: #12252f;--info-ink: #0b1b23;--shadow-1: 0 1px 2px rgba(0, 0, 0, .5);--shadow-2: 0 12px 30px -18px rgba(0, 0, 0, .9);--shadow-3: 0 26px 60px -28px rgba(0, 0, 0, .95)}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui)}.app-shell:before{background:var(--bg)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--radius-sm)}.icon{flex:none}.icon.flip{transform:rotate(180deg)}.u-btn{font:inherit;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease),transform var(--motion-fast) var(--ease)}.u-btn:active{transform:translateY(1px)}.u-btn[disabled]{opacity:.55;cursor:not-allowed}.u-btn-md{font-size:var(--text-base);padding:10px 16px;min-height:42px}.u-btn-sm{font-size:var(--text-sm);padding:6px 12px;min-height:32px}.u-btn-primary{background:var(--accent);color:var(--accent-ink)}.u-btn-primary:hover{background:color-mix(in srgb,var(--accent) 88%,black)}.u-btn-brand{background:var(--brand);color:var(--brand-ink)}.u-btn-brand:hover{background:var(--brand-2)}.u-btn-secondary{background:var(--surface-1);color:var(--ink);border-color:var(--line-strong)}.u-btn-secondary:hover{background:var(--surface-2)}.u-btn-ghost{background:transparent;color:var(--ink-2);border-color:transparent}.u-btn-ghost:hover{background:var(--surface-2)}.u-btn-danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.u-btn-danger:hover{background:var(--danger-soft)}.u-icon-btn{display:inline-grid;place-items:center;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;color:var(--ink-2);background:transparent;transition:background var(--motion-fast) var(--ease)}.u-icon-btn.u-btn-md{width:40px;height:40px}.u-icon-btn.u-btn-sm{width:32px;height:32px}.u-icon-btn:hover{background:var(--surface-2)}.u-icon-btn.u-btn-danger{color:var(--danger)}.u-spinner{width:15px;height:15px;border-radius:50%;border:2px solid currentColor;border-top-color:transparent;animation:u-spin .7s linear infinite}@keyframes u-spin{to{transform:rotate(360deg)}}.u-field{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.u-field.wide{flex:1}.u-field>label{font-size:var(--text-sm);color:var(--ink-3);font-weight:500}.u-req{color:var(--danger);margin-inline-start:3px}.u-hint{font-size:var(--text-xs);color:var(--ink-3);margin:0}.u-error{font-size:var(--text-xs);color:var(--danger);margin:0}.u-input{font:inherit;font-size:var(--text-base);width:100%;background:var(--surface-1);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:10px 12px;min-height:42px;transition:border-color var(--motion-fast) var(--ease),box-shadow var(--motion-fast) var(--ease)}.u-input::placeholder{color:var(--ink-3)}.u-input:focus{outline:none;border-color:var(--brand);box-shadow:var(--ring)}.u-textarea{min-height:96px;resize:vertical;line-height:1.7}.u-select-wrap{position:relative;display:block}.u-select-wrap>.icon{position:absolute;inset-inline-end:10px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--ink-3)}.u-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-inline-end:32px}.u-switch{display:inline-flex;align-items:center;gap:var(--space-2);background:none;border:0;cursor:pointer;color:inherit;font:inherit;padding:0}.u-switch>span{width:42px;height:24px;border-radius:var(--radius-full);background:var(--surface-3);border:1px solid var(--line-strong);position:relative;transition:background var(--motion) var(--ease)}.u-switch>span:after{content:"";position:absolute;top:2px;inset-inline-start:2px;width:18px;height:18px;border-radius:50%;background:var(--surface-1);box-shadow:var(--shadow-1);transition:inset-inline-start var(--motion) var(--ease)}.u-switch.on>span{background:var(--brand);border-color:var(--brand)}.u-switch.on>span:after{inset-inline-start:21px;background:var(--brand-ink)}.u-switch em{font-style:normal;font-size:var(--text-base)}.u-check{display:inline-flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--text-base)}.u-check input{position:absolute;opacity:0;width:0;height:0}.u-check-box{width:20px;height:20px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface-1);display:grid;place-items:center;color:var(--brand-ink);flex:none}.u-check input:checked+.u-check-box{background:var(--brand);border-color:var(--brand)}.u-check input:focus-visible+.u-check-box{box-shadow:var(--ring)}.u-segment{display:inline-flex;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);padding:3px;gap:2px}.u-segment button{font:inherit;font-size:var(--text-sm);font-weight:600;border:0;background:transparent;color:var(--ink-3);padding:6px 12px;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;gap:6px}.u-segment button.on{background:var(--surface-1);color:var(--ink);box-shadow:var(--shadow-1)}.u-chip{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:var(--text-sm);background:var(--surface-1);color:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius-full);padding:5px 12px;cursor:default}button.u-chip{cursor:pointer}button.u-chip:hover{background:var(--surface-2)}.u-chip.on{background:var(--brand);color:var(--brand-ink);border-color:var(--brand)}.u-chip-x{display:inline-grid;place-items:center;cursor:pointer;opacity:.7}.u-chip-x:hover{opacity:1}.u-pill{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);padding:3px 10px;white-space:nowrap}.u-pill.tone-neutral{background:var(--surface-3);color:var(--ink-2)}.u-pill.tone-ok{background:var(--ok-soft);color:var(--ok)}.u-pill.tone-warn{background:var(--warn-soft);color:var(--warn)}.u-pill.tone-danger{background:var(--danger-soft);color:var(--danger)}.u-pill.tone-info{background:var(--info-soft);color:var(--info)}.u-avatar{display:inline-grid;place-items:center;border-radius:50%;color:var(--brand-ink);font-weight:700;flex:none;letter-spacing:-.02em}.u-card{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-1)}.u-panel{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.u-panel>header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.u-panel>header h3{margin:0;font-size:var(--text-sm);color:var(--ink-3);font-weight:600;letter-spacing:.02em}.u-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--line);overflow-x:auto}.u-tabs button{font:inherit;font-size:var(--text-base);font-weight:600;background:none;border:0;color:var(--ink-3);padding:10px 14px;cursor:pointer;white-space:nowrap;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:6px}.u-tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.u-tab-badge{background:var(--danger);color:var(--danger-ink);font-size:11px;border-radius:var(--radius-full);padding:0 6px;min-width:18px;text-align:center}.u-progress{height:8px;background:var(--surface-3);border-radius:var(--radius-full);overflow:hidden;min-width:60px}.u-progress>span{display:block;height:100%;border-radius:inherit;transition:width var(--motion-slow) var(--ease)}.u-ring{border-radius:50%;display:grid;place-items:center;flex:none;background:conic-gradient(var(--accent) calc(var(--p) * 1%),var(--surface-3) 0)}.u-ring>span{width:74%;height:74%;border-radius:50%;background:var(--surface-1);display:grid;place-items:center;text-align:center;line-height:1.2}.u-ring b{font-family:var(--font-mono);font-size:var(--text-base)}.u-ring small{color:var(--ink-3);font-size:10px}.u-spark{display:inline-flex;align-items:flex-end;gap:3px;flex:1;min-width:60px}.u-spark i{flex:1;background:var(--brand);border-radius:2px 2px 0 0;opacity:.5;display:block}.u-spark i:last-child{opacity:1}.u-skeleton{display:block;background:linear-gradient(90deg,var(--surface-3),var(--surface-2),var(--surface-3));background-size:200% 100%;animation:u-shimmer 1.4s linear infinite}@keyframes u-shimmer{to{background-position:-200% 0}}.u-skeleton-list{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-2) 0}.u-skeleton-list>div{display:flex;gap:var(--space-3);align-items:center}.u-skeleton-list>div>div{display:flex;flex-direction:column;gap:6px;flex:1}.u-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);text-align:center;color:var(--ink-3)}.u-empty-icon{width:52px;height:52px;border-radius:var(--radius-lg);background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}.u-empty b{color:var(--ink);font-size:var(--text-md)}.u-empty p{margin:0;max-width:42ch}.u-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:color-mix(in srgb,var(--ink) 45%,transparent);display:grid;place-items:center;padding:calc(var(--space-4) + var(--safe-top, 0px)) var(--space-4) calc(var(--space-4) + var(--safe-bottom, 0px));animation:u-fade var(--motion) var(--ease)}@keyframes u-fade{0%{opacity:0}}.u-sheet-card{background:var(--surface-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);width:min(680px,100%);max-height:88vh;display:flex;flex-direction:column;animation:u-rise var(--motion) var(--ease)}.u-sheet-card.size-lg{width:min(940px,100%)}.u-sheet-card.size-sm{width:min(440px,100%)}@keyframes u-rise{0%{transform:translateY(10px);opacity:0}}.u-sheet-card>header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--line)}.u-sheet-card>header h3{margin:0;font-size:var(--text-md)}.u-sheet-body{padding:var(--space-4);overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3)}.u-sheet-card>footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:var(--space-2)}.u-toasts{position:fixed;z-index:80;inset-inline:0;bottom:calc(var(--space-4) + var(--safe-bottom, 0px));display:flex;flex-direction:column;align-items:center;gap:var(--space-2);pointer-events:none}.u-toast{pointer-events:auto;display:flex;align-items:center;gap:var(--space-3);background:var(--ink);color:var(--bg);border-radius:var(--radius-md);padding:10px 12px 10px var(--space-4);box-shadow:var(--shadow-3);font-size:var(--text-base);max-width:min(520px,calc(100vw - 32px));animation:u-rise var(--motion) var(--ease)}.u-toast.tone-danger{background:var(--danger);color:var(--danger-ink)}.u-toast.tone-info{background:var(--info);color:var(--info-ink)}.u-toast button{font:inherit;font-weight:700;background:none;border:0;cursor:pointer;color:var(--brand-2);padding:4px 8px;border-radius:var(--radius-sm)}.u-toast .u-icon-btn{color:inherit;opacity:.7}.u-toast .u-icon-btn:hover{background:color-mix(in srgb,currentColor 15%,transparent)}.u-table-wrap{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface-1);overflow:auto;max-width:100%}.u-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.u-table th,.u-table td{text-align:start;padding:11px var(--space-4);border-bottom:1px solid var(--line);vertical-align:middle}.u-table thead th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--ink-3);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.u-table tbody tr:last-child td{border-bottom:0}.u-table tbody tr:hover{background:var(--surface-2)}.u-table tbody tr.picked{background:var(--brand-soft)}.u-table tbody tr.clickable{cursor:pointer}.u-table .end{text-align:end}.u-table .pick{width:44px}.u-table td.actions{white-space:nowrap;opacity:0;transition:opacity var(--motion-fast) var(--ease)}.u-table tr:hover td.actions,.u-table tr:focus-within td.actions{opacity:1}.u-sort{font:inherit;font-weight:600;color:inherit;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}.u-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}@media(hover:none){.u-table td.actions{opacity:1}}.u-sheet.palette{align-items:flex-start;padding-top:12vh}.u-palette{width:min(600px,100%);background:var(--surface-1);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);overflow:hidden;animation:u-rise var(--motion) var(--ease)}.u-palette-input{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);color:var(--ink-3)}.u-palette-input input{flex:1;font:inherit;font-size:var(--text-md);background:none;border:0;color:var(--ink);outline:none}.u-palette-input kbd{font-family:var(--font-mono);font-size:11px;border:1px solid var(--line-strong);border-radius:5px;padding:1px 6px;color:var(--ink-3)}.u-palette-list{max-height:52vh;overflow-y:auto;padding:var(--space-2)}.u-palette-list h4{margin:var(--space-2) var(--space-2) var(--space-1);font-size:var(--text-xs);color:var(--ink-3);font-weight:600;letter-spacing:.04em}.u-palette-list button{width:100%;display:flex;align-items:center;gap:var(--space-3);font:inherit;font-size:var(--text-base);text-align:start;color:var(--ink);background:none;border:0;border-radius:var(--radius-md);padding:9px var(--space-3);cursor:pointer}.u-palette-list button:hover{background:var(--surface-2)}.u-palette-list button small{margin-inline-start:auto;color:var(--ink-3);font-size:var(--text-xs)}.u-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.u-row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.u-stack{display:flex;flex-direction:column;gap:var(--space-3)}.u-grow{flex:1;min-width:0}.u-de{direction:ltr;unicode-bidi:isolate;text-align:start}@media(pointer:coarse),(max-width:760px){.u-btn-sm{min-height:44px;padding:8px 14px}.u-btn-md{min-height:46px}.u-icon-btn.u-btn-sm{width:44px;height:44px}.u-icon-btn.u-btn-md{width:46px;height:46px}.u-input,.u-select{min-height:46px;font-size:16px}.u-textarea{font-size:16px}.u-check-box{width:24px;height:24px}.u-switch{width:52px;height:30px}.u-switch>span{width:24px;height:24px}.u-sort{min-height:44px;min-width:44px;justify-content:flex-start}.t-user{width:44px;height:44px;display:grid;place-items:center}.u-table th,.u-table td{padding:13px var(--space-4)}.u-tabs button,.u-segment button{min-height:44px}.u-palette-list button{min-height:48px}}@supports (-webkit-touch-callout: none){.u-input,.u-select,.u-textarea{font-size:16px}}@media(hover:none){.u-table td.actions,.m-bubble .m-del,.e-block-actions,.c-lesson .lesson-actions{opacity:1}}.t-shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100dvh;background:var(--bg)}.t-shell.collapsed{grid-template-columns:68px minmax(0,1fr)}.t-side{background:var(--surface-2);border-inline-end:1px solid var(--line);padding:calc(var(--space-3) + var(--safe-top, 0px)) var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2);position:sticky;top:0;height:100dvh}.t-brand{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);font-size:var(--text-md);color:var(--ink)}.t-brand b{color:var(--accent);font-weight:700}.t-logo{width:30px;height:30px;border-radius:var(--radius-sm);background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-weight:700;font-size:13px;flex:none}.t-collapse{margin-inline-start:auto}.t-shell.collapsed .t-collapse{margin-inline-start:0}.t-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto}.t-nav a{display:flex;align-items:center;gap:var(--space-3);padding:9px var(--space-3);border-radius:var(--radius-md);color:var(--ink-2);text-decoration:none;font-size:var(--text-base);font-weight:500;transition:background var(--motion-fast) var(--ease)}.t-nav a:hover{background:var(--surface-3)}.t-nav a.on{background:var(--brand);color:var(--brand-ink);font-weight:600}.t-sep{height:1px;background:var(--line);margin:var(--space-2) var(--space-2)}.t-side-foot{margin-top:auto;display:flex;align-items:center;gap:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--line)}.t-side-foot .u-hint{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-shell.collapsed .t-nav a{justify-content:center;padding-inline:0}.t-main{display:flex;flex-direction:column;min-width:0}.t-top{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:var(--space-3);min-width:0;max-width:100%;padding:calc(var(--space-3) + var(--safe-top, 0px)) var(--space-5) var(--space-3);background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.t-group-picker{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex-shrink:1;background:var(--surface-1);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:0 var(--space-3);height:38px;color:var(--ink-3)}.t-group-picker select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;font:inherit;font-weight:600;color:var(--ink);padding:0 4px;max-width:190px;min-width:0;outline:none;cursor:pointer;text-overflow:ellipsis}.t-search{flex:1;max-width:460px;height:38px;display:flex;align-items:center;gap:var(--space-2);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink-3);font:inherit;font-size:var(--text-sm);padding:0 var(--space-3);cursor:pointer}.t-search:hover{border-color:var(--line-strong)}.t-search kbd{margin-inline-start:auto;font-family:var(--font-mono);font-size:11px;border:1px solid var(--line-strong);border-radius:5px;padding:1px 5px}.t-top-actions{margin-inline-start:auto;display:flex;align-items:center;gap:var(--space-2);position:relative;min-width:0;flex-shrink:0}.t-user{background:none;border:0;padding:0;cursor:pointer;border-radius:50%}.t-user-menu{position:absolute;top:44px;inset-inline-end:0;z-index:40;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--space-2);min-width:200px;display:flex;flex-direction:column;gap:var(--space-1)}.t-user-menu button{display:flex;align-items:center;gap:var(--space-2);font:inherit;font-size:var(--text-base);background:none;border:0;color:var(--ink);padding:8px var(--space-2);border-radius:var(--radius-sm);cursor:pointer;text-align:start}.t-user-menu button:hover{background:var(--surface-2)}.t-content{padding:var(--space-5);padding-bottom:calc(var(--space-7) + var(--safe-bottom, 0px));display:flex;flex-direction:column;gap:var(--space-4);max-width:1180px;width:100%}.t-content.wide{max-width:none}.t-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-3)}.t-page-head h1{margin:0;font-size:var(--text-xl);font-weight:600}.t-bottom{display:none}.t-greet{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-5);border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--brand-soft),var(--surface-1) 72%)}.t-greet>div{display:flex;flex-direction:column;gap:var(--space-1)}.t-greet h1{margin:0;font-size:clamp(var(--text-xl),3vw,var(--text-2xl));color:var(--brand)}.t-greet p{margin:0;max-width:62ch;color:var(--ink-2);font-size:var(--text-base)}.t-greet span{color:var(--ink-3);font-size:var(--text-sm)}.u-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.u-form-grid>.wide{grid-column:1 / -1}.lib-pages{margin-top:var(--space-4);padding:var(--space-2) 0}@media(max-width:680px){.u-form-grid{grid-template-columns:1fr}.u-form-grid>.wide{grid-column:auto}}.t-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-4);align-items:start}.t-agenda{display:flex;flex-direction:column;gap:var(--space-2)}.t-slot{display:grid;grid-template-columns:56px minmax(0,1fr);gap:var(--space-3)}.t-slot .time{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-3);padding-top:10px;text-align:center;direction:ltr}.t-slot .body{background:var(--surface-2);border-inline-start:3px solid var(--brand);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.t-slot:nth-child(2n) .body{border-inline-start-color:var(--accent)}.t-slot .body b{font-size:var(--text-base)}.t-queue{display:flex;flex-direction:column;gap:var(--space-2)}.t-qitem{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-2)}.t-qicon{width:30px;height:30px;border-radius:var(--radius-sm);display:grid;place-items:center;flex:none}.t-qicon.warn{background:var(--warn-soft);color:var(--warn)}.t-qicon.ok{background:var(--ok-soft);color:var(--ok)}.t-qicon.info{background:var(--info-soft);color:var(--info)}.t-qicon.danger{background:var(--danger-soft);color:var(--danger)}.t-qbody{display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.t-qbody b{font-size:var(--text-base)}.t-qbody span{color:var(--ink-3);font-size:var(--text-sm)}.t-pulse{display:flex;flex-direction:column;gap:var(--space-2)}.t-pulse-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm)}.t-pulse-row .label{min-width:62px;color:var(--ink-3)}.t-pulse-row b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;min-width:48px;text-align:end}.t-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:var(--space-3)}.t-stat{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);display:flex;align-items:center;gap:var(--space-3);text-decoration:none;color:inherit}.t-stat .t-qicon{width:34px;height:34px}.t-stat b{font-family:var(--font-display);font-size:var(--text-xl);line-height:1}.t-stat span{color:var(--ink-3);font-size:var(--text-sm)}.t-stat:hover{border-color:var(--line-strong)}.t-group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--space-3)}.t-group-card{background:var(--surface-1);border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.t-group-card h3{margin:0;font-size:var(--text-md)}.t-group-card a{text-decoration:none;color:inherit}@media(max-width:900px){.t-cols{grid-template-columns:1fr}}@media(max-width:760px){.t-shell,.t-shell.collapsed{grid-template-columns:1fr}.t-side{display:none}.t-top{padding-inline:var(--space-4);gap:var(--space-2);overflow:hidden}.t-search span{display:none}.t-search{flex:0 0 44px;width:44px;max-width:44px;min-height:44px;justify-content:center}.t-search kbd{display:none}.t-group-picker{flex:1 1 auto;min-width:0;overflow:hidden}.t-group-picker select{max-width:100%}.t-top-actions{gap:var(--space-1)}.t-content{padding:var(--space-4);padding-bottom:calc(86px + var(--safe-bottom, 0px))}.t-bottom{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset-inline:0;bottom:0;z-index:40;background:color-mix(in srgb,var(--surface-1) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 4px calc(6px + var(--safe-bottom, 0px))}.t-bottom a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--ink-3);font-size:11px;padding:4px 0}.t-bottom a.on{color:var(--brand);font-weight:600}}.e-bar{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);position:sticky;top:calc(58px + var(--safe-top, 0px));z-index:20}.e-title{flex:1;min-width:180px;font:inherit;font-size:var(--text-md);font-weight:600;background:none;border:0;color:var(--ink);padding:6px 8px;border-radius:var(--radius-sm)}.e-title:hover{background:var(--surface-2)}.e-title:focus{outline:none;background:var(--surface-2);box-shadow:var(--ring)}.e-save{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--ink-3)}.e-save.saved{color:var(--ok)}.e-save.error,.e-save.conflict{color:var(--danger)}.e-bar-actions{display:flex;align-items:center;gap:var(--space-1);margin-inline-start:auto;flex-wrap:wrap}.e-grid{display:grid;grid-template-columns:274px minmax(0,1fr) 320px;gap:var(--space-3);align-items:start}.e-blocks,.e-form,.e-preview{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-3)}.e-blocks{display:flex;flex-direction:column;gap:6px;position:sticky;top:118px;max-height:calc(100dvh - 150px);overflow-y:auto}.e-form{min-height:320px}.e-preview{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);background:var(--surface-2);position:sticky;top:118px}.e-block{display:flex;align-items:center;gap:var(--space-2);padding:8px;border-radius:var(--radius-md);border:1px solid transparent;cursor:grab;background:var(--surface-1)}.e-block:hover{background:var(--surface-2)}.e-block.on{border-color:var(--brand);background:var(--brand-soft)}.e-grip{color:var(--ink-3);display:grid;place-items:center}.e-block-icon{width:28px;height:28px;border-radius:var(--radius-sm);flex:none;background:var(--surface-3);color:var(--ink-2);display:grid;place-items:center}.e-block.on .e-block-icon{background:var(--brand);color:var(--brand-ink)}.e-block-text{display:flex;flex-direction:column;min-width:0;flex:1}.e-block-text b{font-size:var(--text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-block-text small{color:var(--ink-3);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-block-actions{display:flex;gap:2px;opacity:0;transition:opacity var(--motion-fast) var(--ease)}.e-block:hover .e-block-actions,.e-block.on .e-block-actions{opacity:1}.e-insert{margin-top:var(--space-2)}.e-insert .u-btn{width:100%;justify-content:center}.e-insert kbd{font-family:var(--font-mono);font-size:11px;border:1px solid var(--line-strong);border-radius:5px;padding:0 5px;color:var(--ink-3)}.e-insert-list button small{max-width:46%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.e-frame{border:8px solid var(--ink);border-radius:26px;background:var(--bg);width:100%;max-width:280px;height:520px;overflow:hidden}.e-frame.desktop{max-width:100%;height:460px;border-radius:12px;border-width:6px}.e-frame-inner{height:100%;overflow-y:auto;padding:var(--space-3)}.e-frame-inner h2{font-size:var(--text-md);margin:0 0 var(--space-2)}.e-mobile-tabs{display:none}@media(max-width:1100px){.e-grid{grid-template-columns:240px minmax(0,1fr)}.e-preview{display:none}}@media(max-width:820px){.e-bar{position:static}.e-mobile-tabs{display:block}.e-grid{grid-template-columns:1fr}.e-blocks,.e-form,.e-preview{position:static;max-height:none}.e-grid.tab-blocks .e-form,.e-grid.tab-blocks .e-preview,.e-grid.tab-edit .e-blocks,.e-grid.tab-edit .e-preview,.e-grid.tab-preview .e-blocks,.e-grid.tab-preview .e-form{display:none}.e-grid.tab-preview .e-preview{display:flex}.e-block-actions{opacity:1}}.s-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-4);align-items:center;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4)}.s-head h1{margin:0;font-size:var(--text-xl)}.s-rings{display:flex;gap:var(--space-3)}.s-actions{grid-column:1 / -1;display:flex;gap:var(--space-2);flex-wrap:wrap;align-items:center}.s-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--space-4);align-items:start}.s-error{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:6px 0;border-bottom:1px dashed var(--line)}.s-error:last-child{border-bottom:0}.s-error s{color:var(--danger)}.s-note{padding:6px 0;border-bottom:1px dashed var(--line)}.s-note:last-child{border-bottom:0}@media(max-width:760px){.s-head{grid-template-columns:auto minmax(0,1fr)}.s-rings{grid-column:1 / -1;justify-content:space-between}}.lib-bar{gap:var(--space-2);margin-bottom:var(--space-1)}.lib-thumb{width:34px;height:34px;border-radius:var(--radius-sm);object-fit:cover;flex:none;background:var(--surface-3)}.lib-thumb.empty{display:grid;place-items:center;color:var(--ink-3)}.c-course{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.c-course>header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-2);border-bottom:1px solid var(--line);flex-wrap:wrap}.c-course>header h3{margin:0;font-size:var(--text-md)}.c-unit{border-bottom:1px solid var(--line)}.c-unit:last-child{border-bottom:0}.c-unit-head{width:100%;display:flex;align-items:center;gap:var(--space-2);padding-inline-end:var(--space-2)}.c-unit-head:hover{background:var(--surface-2)}.c-unit-toggle{flex:1;display:flex;align-items:center;gap:var(--space-2);background:none;border:0;font:inherit;font-weight:600;color:var(--ink);padding:var(--space-3) var(--space-4);cursor:pointer;text-align:start;min-height:44px}.c-unit-head .count{margin-inline-start:auto;color:var(--ink-3);font-weight:400;font-size:var(--text-sm)}.c-lessons{list-style:none;margin:0;padding:0 var(--space-4) var(--space-3);display:flex;flex-direction:column;gap:2px}.c-lesson{display:flex;align-items:center;gap:var(--space-3);padding:8px var(--space-3);border-radius:var(--radius-md)}.c-lesson:hover{background:var(--surface-2)}.c-lesson a{text-decoration:none;color:inherit;flex:1;min-width:0}.c-lesson .lesson-actions{opacity:0;display:flex;gap:2px}.c-lesson:hover .lesson-actions{opacity:1}@media(hover:none){.c-lesson .lesson-actions{opacity:1}}.cr-shell{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr);gap:var(--space-4);align-items:start}.cr-index{position:sticky;top:calc(70px + var(--safe-top, 0px));max-height:calc(100dvh - 92px);overflow:hidden;display:flex;flex-direction:column;gap:var(--space-3);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-3)}.cr-search{position:relative}.cr-search>.icon{position:absolute;inset-inline-start:11px;top:11px;color:var(--ink-3);pointer-events:none}.cr-search .u-input{padding-inline-start:34px}.cr-index nav{overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);padding-inline-end:3px}.cr-index nav section{display:flex;flex-direction:column;gap:2px}.cr-index nav h3{margin:0;padding:5px var(--space-2);color:var(--ink-3);font-size:var(--text-xs);font-weight:700}.cr-index nav button{width:100%;min-height:42px;display:flex;align-items:center;gap:var(--space-2);border:0;border-radius:var(--radius-md);background:transparent;padding:7px var(--space-2);color:var(--ink-2);font:inherit;text-align:start;cursor:pointer}.cr-index nav button:hover{background:var(--surface-2)}.cr-index nav button.on{background:var(--brand-soft);color:var(--brand);font-weight:650}.cr-index nav button span{flex:1;min-width:0}.cr-index nav button small{color:var(--ink-3);white-space:nowrap;font-weight:400}.cr-reader{min-width:0;max-width:900px;min-height:70dvh;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-xl);padding:clamp(var(--space-4),4vw,var(--space-6));box-shadow:var(--shadow-1)}.cr-lesson-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.cr-lesson-head h2{margin:var(--space-2) 0 0;font-size:clamp(1.7rem,4vw,2.45rem)}.cr-lesson-head p{margin:5px 0 0}.cr-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;color:var(--ink-3);font-size:var(--text-sm)}.cr-preview-note{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--brand-soft);color:var(--ink-2);font-size:var(--text-sm)}.cr-summary{color:var(--ink-2);font-size:var(--text-md);line-height:1.7}.cr-error{color:var(--danger)}.cr-pager{display:flex;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--line)}.preview-exercises{display:flex;flex-direction:column;gap:var(--space-3)}.preview-exercise{display:grid;grid-template-columns:30px minmax(0,1fr);gap:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.preview-exercise p{margin:0 0 5px}.preview-exercise-number{width:28px;height:28px;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--surface-1);font-weight:700}.preview-exercise-options{display:flex;gap:6px;flex-wrap:wrap;margin-top:var(--space-2)}.preview-exercise-options span{padding:5px 9px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-1)}.preview-answer-line{margin-top:var(--space-2);padding:8px 10px;border-bottom:1px solid var(--line-strong);color:var(--ink-3);font-size:var(--text-sm)}@media(max-width:980px){.cr-shell{grid-template-columns:230px minmax(0,1fr)}}@media(max-width:760px){.cr-shell{grid-template-columns:1fr}.cr-index{position:static;max-height:none}.cr-index nav{max-height:210px}.cr-reader{padding:var(--space-4);border-radius:var(--radius-lg)}.cr-lesson-head{flex-wrap:wrap}.cr-pager .u-btn{flex:1}}.hw-steps{display:flex;gap:var(--space-3);font-size:var(--text-sm);color:var(--ink-3)}.hw-steps span.on{color:var(--ink);font-weight:600}.hw-steps span.done{color:var(--ok)}.hw-summary{display:flex;gap:var(--space-2);align-items:flex-start;background:var(--surface-2);border-radius:var(--radius-md);padding:var(--space-3);font-size:var(--text-sm);color:var(--ink-2)}.hw-review{display:flex;flex-direction:column;gap:var(--space-4)}.hw-review-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.hw-review-summary>div{display:flex;flex-direction:column;gap:2px;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.hw-review-summary b{font-family:var(--font-display);font-size:var(--text-xl)}.hw-review-summary span{color:var(--ink-3);font-size:var(--text-xs)}.hw-review-summary .ok b{color:var(--ok)}.hw-review-summary .bad b{color:var(--danger)}.hw-score-note{margin:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--warn-soft);color:var(--ink-2)}.hw-review-filters{flex-wrap:wrap}.hw-question-list{display:flex;flex-direction:column;gap:var(--space-3)}.hw-question{border:1px solid var(--line);border-inline-start-width:4px;border-radius:var(--radius-lg);padding:var(--space-4);background:var(--surface-1)}.hw-question.is-correct{border-inline-start-color:var(--ok)}.hw-question.is-wrong{border-inline-start-color:var(--danger)}.hw-question.is-unanswered{border-inline-start-color:var(--ink-3)}.hw-question>header{display:flex;align-items:flex-start;gap:var(--space-3)}.hw-question>header small{display:block;color:var(--ink-3);margin-top:3px}.hw-question-number{width:28px;height:28px;flex:0 0 28px;display:grid;place-items:center;border-radius:var(--radius-full);background:var(--surface-2);color:var(--ink-2);font-weight:700}.hw-outcome{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:700}.hw-outcome.correct{color:var(--ok)}.hw-outcome.wrong{color:var(--danger)}.hw-outcome.unanswered{color:var(--ink-3)}.hw-answer-compare{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin-top:var(--space-3)}.hw-answer-compare>div{display:flex;flex-direction:column;gap:4px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-2)}.hw-answer-compare span{color:var(--ink-3);font-size:var(--text-xs)}.hw-attempts{margin-top:var(--space-3);color:var(--ink-2);font-size:var(--text-sm)}.hw-attempts summary{cursor:pointer;font-weight:600}.hw-attempts>div{display:grid;grid-template-columns:24px 1fr 20px;gap:var(--space-2);padding:6px 0;border-bottom:1px solid var(--line)}.hw-attempts>div.right{color:var(--ok)}.hw-attempts>div.wrong{color:var(--danger)}@media(max-width:620px){.hw-review-summary{grid-template-columns:1fr 1fr}.hw-answer-compare{grid-template-columns:1fr}.hw-question{padding:var(--space-3)}}.ca-shell{display:flex;flex-direction:column;gap:var(--space-4)}.ca-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.ca-controls label{display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm);font-weight:600}.ca-rule{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--brand-soft);color:var(--ink-2);font-size:var(--text-sm)}.ca-course{border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface-1)}.ca-course>header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--surface-2)}.ca-course h4{margin:var(--space-3) var(--space-4) var(--space-2);color:var(--ink-3);font-size:var(--text-xs)}.ca-lesson{display:flex;align-items:center;gap:var(--space-3);padding:9px var(--space-4);border-top:1px solid var(--line)}.ca-lesson small{display:block;color:var(--ink-3);margin-top:2px}@media(max-width:620px){.ca-controls{grid-template-columns:1fr}.ca-lesson{align-items:flex-start;flex-wrap:wrap}.ca-lesson .u-switch{margin-inline-start:auto}}.m-grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:var(--space-3);align-items:start}.m-threads{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-2);display:flex;flex-direction:column;gap:2px;max-height:70dvh;overflow-y:auto}.m-thread{display:flex;gap:var(--space-2);align-items:center;width:100%;background:none;border:0;text-align:start;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-md);color:inherit;font:inherit}.m-thread:hover{background:var(--surface-2)}.m-thread.on{background:var(--brand-soft)}.m-thread-text{display:flex;flex-direction:column;min-width:0;flex:1}.m-thread-text b{font-size:var(--text-base)}.m-thread-text small{color:var(--ink-3);font-size:var(--text-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.m-unread{background:var(--danger);color:var(--danger-ink);border-radius:var(--radius-full);font-size:11px;min-width:20px;text-align:center;padding:1px 5px}.m-panel{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);display:flex;flex-direction:column;min-height:60dvh}.m-panel>header{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);display:flex;gap:var(--space-2);align-items:center}.m-list{flex:1;overflow-y:auto;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.m-bubble{max-width:78%;background:var(--surface-2);border-radius:var(--radius-lg);padding:9px var(--space-3);position:relative}.m-bubble.mine{background:var(--brand-soft);margin-inline-start:auto}.m-bubble p{margin:0 0 4px}.m-bubble time{color:var(--ink-3);font-size:11px}.m-bubble .m-del{position:absolute;top:2px;inset-inline-start:2px;opacity:0}.m-bubble:hover .m-del{opacity:1}.m-compose{border-top:1px solid var(--line);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.live-focus{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-4);align-items:start}.live-card{background:var(--brand);color:var(--brand-ink);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.live-card h2{margin:0;font-size:var(--text-xl)}.live-code{font-family:var(--font-mono);font-size:var(--text-2xl);letter-spacing:.12em;background:color-mix(in srgb,var(--brand-ink) 14%,transparent);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);display:inline-block}.live-card .u-btn-secondary{background:var(--brand-ink);color:var(--brand);border-color:transparent}.live-frame{width:100%;height:420px;border:0;border-radius:var(--radius-lg)}.live-tally{display:flex;flex-direction:column;gap:var(--space-2)}.live-tally-row{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-base)}.r-head{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.r-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3)}.r-stat{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:2px}.r-stat b{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1}.r-stat span{color:var(--ink-3);font-size:var(--text-sm)}@media(max-width:860px){.m-grid,.live-focus{grid-template-columns:1fr}}@media print{.t-side,.t-top,.t-bottom,.t-more,.t-more-veil,.u-btn,.u-icon-btn{display:none!important}.t-content{padding:0;max-width:none}body{background:var(--surface-1)}.u-table-wrap{overflow:visible!important;border:0}.u-table{font-size:11px;table-layout:fixed;width:100%}.u-table th,.u-table td{padding:4px 6px;word-break:break-word}.u-table thead th{position:static}.u-panel,.r-stat,.u-card{break-inside:avoid}.u-progress{border:1px solid var(--ink-3)}}.e-move{display:flex;flex-direction:column;gap:1px;flex:none}.e-move button{width:26px;height:20px;padding:0;display:grid;place-items:center;background:none;border:0;border-radius:4px;color:var(--ink-3);cursor:pointer}.e-move button:hover:not(:disabled){background:var(--surface-3);color:var(--ink)}.e-move button:disabled{opacity:.3;cursor:default}.e-move .icon.flip{transform:rotate(180deg)}@media(pointer:coarse),(max-width:760px){.e-move button{width:40px;height:30px}.e-block{padding:10px 8px}}.t-bottom button{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;font:inherit;font-size:11px;color:var(--ink-3);padding:4px 0;cursor:pointer}.t-bottom button.on{color:var(--brand);font-weight:600}.t-more-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:41;background:color-mix(in srgb,var(--ink) 34%,transparent)}.t-more{position:fixed;z-index:42;inset-inline:var(--space-3);inset-block-end:calc(76px + var(--safe-bottom, 0px));background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);padding:var(--space-2);display:flex;flex-direction:column;gap:2px}.t-more a{display:flex;align-items:center;gap:var(--space-3);min-height:48px;padding:0 var(--space-3);border-radius:var(--radius-md);text-decoration:none;color:var(--ink);font-size:var(--text-base)}.t-more a.on{background:var(--brand-soft);color:var(--brand);font-weight:600}.st-streak{display:inline-flex;align-items:center;gap:4px;background:var(--warn-soft);color:var(--warn);border-radius:var(--radius-full);padding:3px 10px;font-size:var(--text-sm);font-weight:600}.st-hero{margin:var(--space-2) var(--space-4) var(--space-4);padding:var(--space-4) var(--space-5);background:linear-gradient(160deg,var(--brand) 0%,var(--brand-2) 120%);color:var(--brand-ink);border-radius:26px;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.st-hero-text{display:flex;flex-direction:column;gap:2px;min-width:0}.st-hero h1{margin:2px 0;font-size:var(--text-xl);font-weight:700}.st-hero p{margin:0;opacity:.85;font-size:var(--text-sm)}.st-hero .small{opacity:.8;font-size:var(--text-sm)}.st-hero .u-ring{--ring-bg: rgba(255, 255, 255, .22);background:conic-gradient(var(--brand-ink) calc(var(--p) * 1%),rgba(255,255,255,.2) 0)}.st-hero .u-ring>span{background:var(--brand);color:var(--brand-ink)}.st-hero .u-ring b{color:var(--brand-ink)}.st-done{display:flex;align-items:center;gap:var(--space-2);background:var(--ok-soft);color:var(--ok);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);font-weight:600}.st-note{display:flex;gap:var(--space-3);align-items:flex-start;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);color:var(--ink-2)}.st-note p{margin:2px 0 0}.st-tasks{display:flex;flex-direction:column;gap:var(--space-2)}.st-task{display:flex;align-items:center;gap:var(--space-3);width:100%;background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);text-align:start;font:inherit;color:inherit;min-height:64px;cursor:pointer;transition:transform var(--motion-fast) var(--ease),border-color var(--motion-fast) var(--ease)}.st-task:active{transform:scale(.99)}.st-task.done{opacity:.6}.st-task-icon{width:42px;height:42px;border-radius:var(--radius-md);flex:none;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}.st-task.done .st-task-icon{background:var(--ok-soft);color:var(--ok)}.st-task-text{display:flex;flex-direction:column;min-width:0;flex:1}.st-task-text b{font-size:var(--text-base)}.st-task-text small{color:var(--ink-3);font-size:var(--text-sm)}.st-task-meta{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink-3)}.st-task-meta em{font-style:normal;font-family:var(--font-mono);font-weight:600;font-size:var(--text-base);background:var(--surface-3);border-radius:var(--radius-sm);padding:1px 8px;color:var(--ink-2)}.st-task-meta small{font-size:11px}.st-lesson{display:flex;align-items:center;gap:var(--space-3);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-3);margin-bottom:var(--space-2);text-decoration:none;color:inherit}.st-lesson.locked{opacity:.55}.st-lesson-cover{width:54px;height:54px;border-radius:var(--radius-md);object-fit:cover;flex:none;background:var(--surface-3);display:grid;place-items:center;color:var(--ink-3)}.st-lesson-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.st-lesson-text b{font-size:var(--text-base)}.st-lesson-text small{color:var(--ink-3);font-size:var(--text-sm)}.st-runner-top{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-4) var(--space-2)}.st-runner-top .u-progress{flex:1}.st-runner-top span{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--ink-3)}.runner .option{min-height:54px;font-size:var(--text-md)}.runner-result{animation:st-pop var(--motion) var(--ease)}@keyframes st-pop{0%{transform:translateY(6px);opacity:0}}.st-card-wrap{perspective:1200px;padding:0 var(--space-4)}.st-card{position:relative;width:100%;min-height:320px;transform-style:preserve-3d;transition:transform var(--motion-slow) var(--ease);border:0;background:none;padding:0;cursor:pointer}.st-card.flipped{transform:rotateY(180deg)}.st-card-face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;background:var(--surface-1);border:1px solid var(--line);border-radius:26px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-5);box-shadow:var(--shadow-1)}.st-card-face.back{transform:rotateY(180deg)}.st-card img{width:min(220px,62%);aspect-ratio:1;object-fit:cover;border-radius:var(--radius-lg)}.st-card .word{font-family:var(--font-display);font-size:30px;direction:ltr}.st-card .meaning{font-size:var(--text-lg)}.st-swipe-hint{color:var(--ink-3);font-size:var(--text-sm);text-align:center;padding:var(--space-3)}.st-rate{display:flex;gap:var(--space-3);padding:var(--space-4)}.st-rate button{flex:1;min-height:56px;border-radius:var(--radius-lg);border:1px solid var(--line);font:inherit;font-size:var(--text-md);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2)}.st-rate .forgot{background:var(--danger-soft);color:var(--danger);border-color:transparent}.st-rate .knew{background:var(--ok-soft);color:var(--ok);border-color:transparent}.st-offline{position:fixed;top:var(--safe-top, 0px);inset-inline:0;z-index:50;background:var(--warn);color:var(--warn-ink);text-align:center;font-size:var(--text-sm);padding:4px;font-weight:600}.nav .ico{display:grid;place-items:center;margin-bottom:2px}.topbar-actions{display:flex;gap:var(--space-2);align-items:center}.st-tap{min-height:44px;min-width:44px;padding:0 var(--space-3);display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--surface-1);color:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius-full);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.st-tap:active{background:var(--surface-2)}.st-me{max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.st-bell{position:relative}.st-badge{position:absolute;inset-block-start:4px;inset-inline-end:4px;min-width:18px;height:18px;padding:0 4px;background:var(--danger);color:var(--danger-ink);border-radius:var(--radius-full);font-size:11px;font-weight:700;display:grid;place-items:center;line-height:1}.st-menu-wrap{position:relative}.st-menu{position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0;z-index:60;min-width:190px;padding:var(--space-1);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-3);display:flex;flex-direction:column;gap:2px}.st-menu button{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-3);background:none;border:0;border-radius:var(--radius-sm);font:inherit;font-size:var(--text-base);color:var(--ink);text-align:start;cursor:pointer}.st-menu button:active{background:var(--surface-2)}.st-menu button.danger{color:var(--danger)}.st-settings{display:flex;flex-direction:column;gap:var(--space-3)}.st-set-group{background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3)}.st-set-group>h2{margin:0;font-size:var(--text-md)}.st-set-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;min-height:44px}.st-set-row>span{color:var(--ink-2);font-size:var(--text-base)}.st-choice{display:flex;gap:var(--space-2);flex-wrap:wrap}.st-choice button{min-height:44px;padding:0 var(--space-4);background:var(--surface-1);color:var(--ink-2);border:1px solid var(--line);border-radius:var(--radius-full);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.st-choice button.on{background:var(--brand);color:var(--brand-ink);border-color:transparent}.st-retry{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--ink-2)}.st-retry button{min-height:44px;padding:0 var(--space-5);background:var(--brand);color:var(--brand-ink);border:0;border-radius:var(--radius-full);font:inherit;font-size:var(--text-base);font-weight:600;cursor:pointer}.login-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.login .ghost{min-height:44px}.login .demo button{min-height:40px}.st-mistake{margin-bottom:var(--space-2);display:flex;flex-direction:column;gap:var(--space-2)}.st-mistake .wrong{color:var(--danger)}.st-mistake .right{color:var(--ok)}.st-mistake-foot{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);color:var(--ink-3)}.st-rule{margin-bottom:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.st-rule p{margin:0;color:var(--ink-2)}.st-rule-examples{background:var(--surface-2);border-radius:var(--radius-md);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1)}.st-rule .wrong{color:var(--danger)}.st-rule .right{color:var(--ok)}.st-alert{margin-bottom:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.st-alert.read{opacity:.6}.st-alert p{margin:0}.st-mark-read{margin-bottom:var(--space-3)}.st-skill{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-2)}.st-skill-name{display:flex;flex-direction:column;min-width:0}.st-skill-name small{color:var(--ink-3);font-size:var(--text-sm)}.st-skill-bar{display:flex;align-items:center;gap:var(--space-2);flex:none}.st-skill-bar .u-progress{width:90px}.st-link-row{text-decoration:none;color:inherit}.st-objectives{list-style:none;padding:0;margin:0 0 var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.st-objectives li{display:flex;align-items:center;gap:var(--space-2);background:var(--surface-1);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3);color:var(--ink-2)}.st-objectives li.hit{background:var(--ok-soft);color:var(--ok);border-color:transparent}.st-chat{margin:var(--space-3) 0}.st-chat .bubble small{display:block;color:var(--ink-3);font-size:var(--text-xs);margin-bottom:2px}.st-task .st-task-text{text-decoration:none;color:inherit}.st-task-icon.done{background:var(--ok-soft);color:var(--ok)}.unit-head{min-height:48px}.st-narrow-only{display:none}@media(max-width:379px){.st-wide-only{display:none}.st-narrow-only{display:flex}.st-me{max-width:84px}.topbar{padding-inline:var(--space-3);gap:var(--space-2)}.topbar>div:first-child{min-width:0}.topbar>div:first-child>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.block-image img:not([width]),.gallery img:not([width]){aspect-ratio:4 / 3;object-fit:contain;width:100%;background:var(--surface-2)}html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}body{overscroll-behavior:none}button,.nav a,.st-tap,.option,.lv-btn,[role=button]{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.prose,.reading,.grammar-note,input,textarea{-webkit-user-select:text;user-select:text}.lv-strip,.e-blocks,.st-tasks{-webkit-overflow-scrolling:touch}@media(prefers-reduced-motion:no-preference){::view-transition-old(root){animation:df-fade-out 90ms ease-in both}::view-transition-new(root){animation:df-fade-in .14s ease-out both}}@keyframes df-fade-out{to{opacity:0}}@keyframes df-fade-in{0%{opacity:0;transform:translateY(4px)}}:root[data-standalone=true] .app-shell{min-height:100dvh}:root[data-standalone=true] .topbar{padding-block-start:calc(18px + env(safe-area-inset-top,0px))}:root[data-standalone=true] .nav{padding-block-end:calc(8px + env(safe-area-inset-bottom,0px))}.lv-shell{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0d130f;color:#eef3ee;display:flex;flex-direction:column;gap:8px;padding:calc(8px + env(safe-area-inset-top,0px)) 8px calc(8px + env(safe-area-inset-bottom,0px));overscroll-behavior:none;touch-action:manipulation}.lv-message{align-items:center;justify-content:center;text-align:center;gap:16px}.lv-message p{max-width:28ch;line-height:1.6;margin:0}.lv-pulse{width:44px;height:44px;border-radius:50%;background:var(--brand, #1b4d3e);animation:lv-pulse 1.4s ease-in-out infinite}@keyframes lv-pulse{0%,to{transform:scale(.85);opacity:.55}50%{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.lv-pulse{animation:none}}.lv-banner{background:#8a5606;color:#fff;border-radius:10px;padding:6px 12px;font-size:14px;font-weight:600;text-align:center}.lv-audio-banner{display:flex;align-items:center;justify-content:center;gap:10px}.lv-audio-banner button{border:0;border-radius:999px;padding:6px 12px;background:#fff;color:#5f3900;font:inherit;font-weight:700;cursor:pointer}.lv-audio-root{display:none}.lv-content{flex:1;min-height:0;display:grid;grid-template-rows:minmax(0,1fr);gap:8px}.lv-content.lv-with-tools{grid-template-rows:minmax(0,1fr) minmax(120px,38vh)}.lv-stage{min-width:0;min-height:0;display:flex;flex-direction:column;gap:8px}.lv-tools{min-width:0;min-height:0;overflow:auto;border-radius:14px;padding:10px;background:#f4f7f4;color:#15231b;overscroll-behavior:contain}.lv-tools>*{margin-block:0}.lv-tile{position:relative;background:#16201a;border-radius:14px;overflow:hidden;min-height:0;display:grid;place-items:center}.lv-large{flex:1}.lv-tile video{width:100%;height:100%;object-fit:cover;display:block}.lv-hidden{display:none!important}.lv-avatar{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--brand, #1b4d3e);color:#fff;font-size:26px;font-weight:700}.lv-speaking{outline:2px solid #6fc0a0;outline-offset:-2px}.lv-name{position:absolute;inset-block-end:6px;inset-inline-start:6px;display:flex;align-items:center;gap:4px;background:#0000008c;color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;max-width:calc(100% - 12px)}.lv-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lv-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.lv-strip .lv-tile{flex:0 0 96px;height:96px;scroll-snap-align:start}.lv-bar{display:flex;justify-content:center;gap:14px}.lv-btn{width:56px;height:56px;border-radius:50%;border:0;cursor:pointer;background:#26332a;color:#eef3ee;display:grid;place-items:center;transition:transform .12s ease,background .12s ease}.lv-btn:active{transform:scale(.92)}.lv-off{background:#eef3ee;color:#16201a}.lv-leave{background:#a5301f;color:#fff}.lv-count{text-align:center;font-size:12px;opacity:.65;margin:0}@media(min-width:700px){.lv-strip .lv-tile{flex-basis:132px;height:132px}.lv-shell{padding-inline:16px}.lv-content.lv-with-tools{grid-template-columns:minmax(0,1fr) minmax(300px,360px);grid-template-rows:minmax(0,1fr)}}
